pax_global_header00006660000000000000000000000064144520021300014501gustar00rootroot0000000000000052 comment=cb3fabd3ef656df8ff416b5a7fe09a6ad9b0fb05 gluon-0.17.0/000077500000000000000000000000001445200213000127125ustar00rootroot00000000000000gluon-0.17.0/.github/000077500000000000000000000000001445200213000142525ustar00rootroot00000000000000gluon-0.17.0/.github/workflows/000077500000000000000000000000001445200213000163075ustar00rootroot00000000000000gluon-0.17.0/.github/workflows/pull-request.yml000066400000000000000000000025771445200213000215070ustar00rootroot00000000000000name: Test on: pull_request: branches: dev jobs: test: strategy: matrix: os: [ubuntu-20.04, macos-12, windows-latest] runs-on: ${{ matrix.os }} steps: - name: Get sources uses: actions/checkout@v3 - name: Set up Go 1.20 uses: actions/setup-go@v3 with: go-version: '1.20' - name: Run go mod tidy run: go mod tidy - name: Run golangci-lint run: | go install github.com/golangci/golangci-lint/cmd/golangci-lint@251ceaa228607dd3e0371694a1ab2c45d21cb744 golangci-lint run --timeout=500s - name: Run tests run: go test -timeout 15m -v ./... - name: Run tests with race check if: runner.os != 'Windows' run: go test -race -v ./tests Fuzzing: runs-on: ubuntu-latest steps: - name: Build Fuzzers id: build uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master with: oss-fuzz-project-name: 'gluon' language: go - name: Run Fuzzers uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master with: oss-fuzz-project-name: 'gluon' language: go fuzz-seconds: 300 - name: Upload Crash uses: actions/upload-artifact@v3 if: failure() && steps.build.outcome == 'success' with: name: artifacts path: ./out/artifacts gluon-0.17.0/.github/workflows/release.yml000066400000000000000000000004311445200213000204500ustar00rootroot00000000000000name: Release workflow on: push: branches: master jobs: release: runs-on: ubuntu-latest steps: - name: Get sources uses: actions/checkout@v3 - uses: cycjimmy/semantic-release-action@v3 env: GITHUB_TOKEN: ${{ github.token }} gluon-0.17.0/.gitignore000066400000000000000000000000161445200213000146770ustar00rootroot00000000000000.vscode .idea gluon-0.17.0/.golangci.yml000066400000000000000000000010651445200213000153000ustar00rootroot00000000000000run: go: 1.18 skip-files: - internal/parser/parser.go - internal/parser/extern linters: presets: - bugs - comment enable: - wsl disable: - godox # Annoying, we have too many TODOs at the moment :p - scopelint # Deprecated, replaced by exportloopref, which is enabled by default. - errorlint # Too many false positives issues: exclude-rules: - path: benchmarks linters: - gosec - dupword - path: tests linters: - dupword - path: _test\.go linters: - dupword gluon-0.17.0/.releaserc000066400000000000000000000003621445200213000146610ustar00rootroot00000000000000{ "plugins": [ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", "@semantic-release/changelog", ["@semantic-release/git", { "assets": ["internal/parser/lib"] }], "@semantic-release/github" ] } gluon-0.17.0/COPYING_NOTES.md000066400000000000000000000130741445200213000153210ustar00rootroot00000000000000# Copying The MIT License (MIT) Copyright (c) 2020 James Houlahan Copyright (c) 2021 Proton AG Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # Dependencies Gluon includes the following 3rd party software: * [The Go Project libraries](https://golang.org/project/) | Available under [BSD license](https://golang.org/LICENSE) * [ent](https://entgo.io/ent) available under [license](https://pkg.go.dev/entgo.io/ent?tab=licenses) * [go-mbox](https://github.com/ProtonMail/go-mbox) available under [license](https://github.com/ProtonMail/go-mbox/blob/master/LICENSE) * [juniper](https://github.com/bradenaw/juniper) available under [license](https://github.com/bradenaw/juniper/blob/master/LICENSE) * [go-imap](https://github.com/emersion/go-imap) available under [license](https://github.com/emersion/go-imap/blob/master/LICENSE) * [go-imap-uidplus](https://github.com/emersion/go-imap-uidplus) available under [license](https://github.com/emersion/go-imap-uidplus/blob/master/LICENSE) * [mock](https://github.com/golang/mock) available under [license](https://github.com/golang/mock/blob/master/LICENSE) * [uuid](https://github.com/google/uuid) available under [license](https://github.com/google/uuid/blob/master/LICENSE) * [go-sqlite3](https://github.com/mattn/go-sqlite3) available under [license](https://github.com/mattn/go-sqlite3/blob/master/LICENSE) * [lz4](https://github.com/pierrec/lz4/v4) available under [license](https://github.com/pierrec/lz4/v4/blob/master/LICENSE) * [profile](https://github.com/pkg/profile) available under [license](https://github.com/pkg/profile/blob/master/LICENSE) * [logrus](https://github.com/sirupsen/logrus) available under [license](https://github.com/sirupsen/logrus/blob/master/LICENSE) * [testify](https://github.com/stretchr/testify) available under [license](https://github.com/stretchr/testify/blob/master/LICENSE) * [goleak](https://go.uber.org/goleak) available under [license](https://pkg.go.dev/go.uber.org/goleak?tab=licenses) * [exp](https://golang.org/x/exp) available under [license](https://cs.opensource.google/go/x/exp/+/master:LICENSE) * [sys](https://golang.org/x/sys) available under [license](https://cs.opensource.google/go/x/sys/+/master:LICENSE) * [text](https://golang.org/x/text) available under [license](https://cs.opensource.google/go/x/text/+/master:LICENSE) * [yaml](https://gopkg.in/yaml.v3) available under [license](https://github.com/go-yaml/yaml/blob/v3.0.1/LICENSE) * [atlas](https://ariga.io/atlas) available under [license](https://github.com/ariga/atlas/blob/master/LICENSE) * [levenshtein](https://github.com/agext/levenshtein) available under [license](https://github.com/agext/levenshtein/blob/master/LICENSE) * [go-textseg](https://github.com/apparentlymart/go-textseg/v13) available under [license](https://github.com/apparentlymart/go-textseg/v13/blob/master/LICENSE) * [go-spew](https://github.com/davecgh/go-spew) available under [license](https://github.com/davecgh/go-spew/blob/master/LICENSE) * [go-sasl](https://github.com/emersion/go-sasl) available under [license](https://github.com/emersion/go-sasl/blob/master/LICENSE) * [fgprof](https://github.com/felixge/fgprof) available under [license](https://github.com/felixge/fgprof/blob/master/LICENSE) * [inflect](https://github.com/go-openapi/inflect) available under [license](https://github.com/go-openapi/inflect/blob/master/LICENSE) * [go-cmp](https://github.com/google/go-cmp) available under [license](https://github.com/google/go-cmp/blob/master/LICENSE) * [pprof](https://github.com/google/pprof) available under [license](https://github.com/google/pprof/blob/master/LICENSE) * [hcl](https://github.com/hashicorp/hcl/v2) available under [license](https://github.com/hashicorp/hcl/v2/blob/master/LICENSE) * [pretty](https://github.com/kr/pretty) available under [license](https://github.com/kr/pretty/blob/master/LICENSE) * [go-wordwrap](https://github.com/mitchellh/go-wordwrap) available under [license](https://github.com/mitchellh/go-wordwrap/blob/master/LICENSE) * [go-difflib](https://github.com/pmezard/go-difflib) available under [license](https://github.com/pmezard/go-difflib/blob/master/LICENSE) * [go-cty](https://github.com/zclconf/go-cty) available under [license](https://github.com/zclconf/go-cty/blob/master/LICENSE) * [mod](https://golang.org/x/mod) available under [license](https://cs.opensource.google/go/x/mod/+/master:LICENSE) * [sync](https://golang.org/x/sync) available under [license](https://cs.opensource.google/go/x/sync/+/master:LICENSE) * [check](https://gopkg.in/check.v1) available under [license](https://github.com/go-check/check/blob/v1/LICENSE) gluon-0.17.0/LICENSE000066400000000000000000000021261445200213000137200ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2020 James Houlahan Copyright (c) 2021 Proton AG Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. gluon-0.17.0/README.md000066400000000000000000000060041445200213000141710ustar00rootroot00000000000000

Gluon

An IMAP4rev1 library focusing on correctness, stability and performance.

CI Status GoDoc Go Report Card License

# Demo The demo server can be started with: ``` $ GLUON_LOG_LEVEL=trace go run demo/demo.go DEBU[0000] Applying update update="MailboxCreated: Mailbox.ID = 0, Mailbox.Name = INBOX" user-id=ac8970c5-cdb7-4043-ad85-ad9b9defcfb8 DEBU[0000] Applying update update="MessagesCreated: MessageCount=0 Messages=[]" user-id=ac8970c5-cdb7-4043-ad85-ad9b9defcfb8 INFO[0000] User added to server userID=ac8970c5-cdb7-4043-ad85-ad9b9defcfb8 DEBU[0000] Applying update update="MailboxCreated: Mailbox.ID = 0, Mailbox.Name = INBOX" user-id=a51fad46-9bde-462a-a467-6c30f9a40a63 DEBU[0000] Applying update update="MessagesCreated: MessageCount=0 Messages=[]" user-id=a51fad46-9bde-462a-a467-6c30f9a40a63 INFO[0000] User added to server userID=a51fad46-9bde-462a-a467-6c30f9a40a63 INFO[0000] Server is listening on 127.0.0.1:1143 ``` By default, the demo server includes two demo users, both with password `pass`. The first has addresses `user1@example.com` and `alias1@example.com`. The second has addresses `user2@example.com` and `alias2@example.com`. Once started, connect to the demo server with an email client (e.g. thunderbird) or via telnet: ``` $ telnet 127.0.0.1 1143 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK [CAPABILITY IDLE IMAP4rev1 MOVE UIDPLUS UNSELECT] 00.00.00 - gluon session ID 2 tag login user1@example.com pass tag OK [CAPABILITY IDLE IMAP4rev1 MOVE UIDPLUS UNSELECT] Logged in tag append inbox (\Seen) {14} + Ready To: user@pm.me tag OK [APPENDUID 1 1] APPEND tag select inbox * FLAGS (\Answered \Deleted \Flagged \Seen) * 1 EXISTS * 1 RECENT * OK [PERMANENTFLAGS (\Answered \Deleted \Flagged \Seen)] Flags permitted * OK [UIDNEXT 2] Predicted next UID * OK [UIDVALIDITY 1] UIDs valid tag OK [READ-WRITE] SELECT tag fetch 1:* (UID BODY.PEEK[]) * 1 FETCH (UID 1 BODY[] {32} X-Pm-Gluon-Id: 1 To: user@pm.me) tag OK command completed in 1.030958ms ``` # Changing DB schema Do not forget to re-generate ent code after changing the DB schema in `./internal/db/ent/schema`. ``` pushd ./internal/db/ent && go generate . && popd gluon-0.17.0/async/000077500000000000000000000000001445200213000140275ustar00rootroot00000000000000gluon-0.17.0/async/bool.go000066400000000000000000000007671445200213000153230ustar00rootroot00000000000000package async import "sync/atomic" // atomicBool is an atomic boolean value. // The zero value is false. type atomicBool struct { v uint32 } // Load atomically loads and returns the value stored in x. func (x *atomicBool) load() bool { return atomic.LoadUint32(&x.v) != 0 } // Store atomically stores val into x. func (x *atomicBool) store(val bool) { atomic.StoreUint32(&x.v, b32(val)) } // b32 returns a uint32 0 or 1 representing b. func b32(b bool) uint32 { if b { return 1 } return 0 } gluon-0.17.0/async/context.go000066400000000000000000000023701445200213000160440ustar00rootroot00000000000000package async import ( "context" "sync" ) // Abortable collects groups of functions that can be aborted by calling Abort. type Abortable struct { abortFunc []context.CancelFunc abortLock sync.RWMutex } func (a *Abortable) Do(ctx context.Context, fn func(context.Context)) { fn(a.newCancelCtx(ctx)) } func (a *Abortable) Abort() { a.abortLock.RLock() defer a.abortLock.RUnlock() for _, fn := range a.abortFunc { fn() } } func (a *Abortable) newCancelCtx(ctx context.Context) context.Context { a.abortLock.Lock() defer a.abortLock.Unlock() ctx, cancel := context.WithCancel(ctx) a.abortFunc = append(a.abortFunc, cancel) return ctx } // RangeContext iterates over the given channel until the context is canceled or the // channel is closed. func RangeContext[T any](ctx context.Context, ch <-chan T, fn func(T)) { for { select { case v, ok := <-ch: if !ok { return } fn(v) case <-ctx.Done(): return } } } // ForwardContext forwards all values from the src channel to the dst channel until the // context is canceled or the src channel is closed. func ForwardContext[T any](ctx context.Context, dst chan<- T, src <-chan T) { RangeContext(ctx, src, func(v T) { select { case dst <- v: case <-ctx.Done(): } }) } gluon-0.17.0/async/group.go000066400000000000000000000110501445200213000155070ustar00rootroot00000000000000package async import ( "context" "math/rand" "sync" "time" ) // Group is forked and improved version of "github.com/bradenaw/juniper/xsync.Group". // // It manages a group of goroutines. The main change to original is posibility // to wait passed function to finish without canceling it's context and adding // PanicHandler. type Group struct { baseCtx context.Context ctx context.Context jobCtx context.Context cancel context.CancelFunc finish context.CancelFunc wg sync.WaitGroup panicHandler PanicHandler } // NewGroup returns a Group ready for use. The context passed to any of the f functions will be a // descendant of ctx. func NewGroup(ctx context.Context, panicHandler PanicHandler) *Group { bgCtx, cancel := context.WithCancel(ctx) jobCtx, finish := context.WithCancel(ctx) return &Group{ baseCtx: ctx, ctx: bgCtx, jobCtx: jobCtx, cancel: cancel, finish: finish, panicHandler: panicHandler, } } // Once calls f once from another goroutine. func (g *Group) Once(f func(ctx context.Context)) { g.wg.Add(1) go func() { defer HandlePanic(g.panicHandler) defer g.wg.Done() f(g.ctx) }() } // jitterDuration returns a random duration in [d - jitter, d + jitter]. func jitterDuration(d time.Duration, jitter time.Duration) time.Duration { return d + time.Duration(float64(jitter)*((rand.Float64()*2)-1)) //nolint:gosec } // Periodic spawns a goroutine that calls f once per interval +/- jitter. func (g *Group) Periodic( interval time.Duration, jitter time.Duration, f func(ctx context.Context), ) { g.wg.Add(1) go func() { defer HandlePanic(g.panicHandler) defer g.wg.Done() t := time.NewTimer(jitterDuration(interval, jitter)) defer t.Stop() for { if g.ctx.Err() != nil { return } select { case <-g.jobCtx.Done(): return case <-t.C: } t.Reset(jitterDuration(interval, jitter)) f(g.ctx) } }() } // Trigger spawns a goroutine which calls f whenever the returned function is called. If f is // already running when triggered, f will run again immediately when it finishes. func (g *Group) Trigger(f func(ctx context.Context)) func() { c := make(chan struct{}, 1) g.wg.Add(1) go func() { defer HandlePanic(g.panicHandler) defer g.wg.Done() for { if g.ctx.Err() != nil { return } select { case <-g.jobCtx.Done(): return case <-c: } f(g.ctx) } }() return func() { select { case c <- struct{}{}: default: } } } // PeriodicOrTrigger spawns a goroutine which calls f whenever the returned function is called. If // f is already running when triggered, f will run again immediately when it finishes. Also calls f // when it has been interval+/-jitter since the last trigger. func (g *Group) PeriodicOrTrigger( interval time.Duration, jitter time.Duration, f func(ctx context.Context), ) func() { c := make(chan struct{}, 1) g.wg.Add(1) go func() { defer HandlePanic(g.panicHandler) defer g.wg.Done() t := time.NewTimer(jitterDuration(interval, jitter)) defer t.Stop() for { if g.ctx.Err() != nil { return } select { case <-g.jobCtx.Done(): return case <-t.C: t.Reset(jitterDuration(interval, jitter)) case <-c: if !t.Stop() { <-t.C } t.Reset(jitterDuration(interval, jitter)) } f(g.ctx) } }() return func() { select { case c <- struct{}{}: default: } } } func (g *Group) resetCtx() { g.jobCtx, g.finish = context.WithCancel(g.baseCtx) g.ctx, g.cancel = context.WithCancel(g.baseCtx) } // Cancel is send to all of the spawn goroutines and ends periodic // or trigger routines. func (g *Group) Cancel() { g.cancel() g.finish() g.resetCtx() } // Finish will ends all periodic or polls routines. It will let // currently running functions to finish (cancel is not sent). // // It is not safe to call Wait concurrently with any other method on g. func (g *Group) Finish() { g.finish() g.jobCtx, g.finish = context.WithCancel(g.baseCtx) } // CancelAndWait cancels the context passed to any of the spawned goroutines and waits for all spawned // goroutines to exit. // // It is not safe to call Wait concurrently with any other method on g. func (g *Group) CancelAndWait() { g.finish() g.cancel() g.wg.Wait() g.resetCtx() } // WaitToFinish will ends all periodic or polls routines. It will wait for // currently running functions to finish (cancel is not sent). // // It is not safe to call Wait concurrently with any other method on g. func (g *Group) WaitToFinish() { g.finish() g.wg.Wait() g.jobCtx, g.finish = context.WithCancel(g.baseCtx) } gluon-0.17.0/async/logging.go000066400000000000000000000004511445200213000160040ustar00rootroot00000000000000package async import ( "context" "github.com/ProtonMail/gluon/logging" ) func GoAnnotated(ctx context.Context, panicHandler PanicHandler, fn func(context.Context), labelMap ...logging.Labels) { go func() { defer HandlePanic(panicHandler) logging.DoAnnotated(ctx, fn, labelMap...) }() } gluon-0.17.0/async/panic_handler.go000066400000000000000000000006401445200213000171450ustar00rootroot00000000000000package async type PanicHandler interface { HandlePanic(interface{}) } type NoopPanicHandler struct{} func (n NoopPanicHandler) HandlePanic(r interface{}) {} func HandlePanic(panicHandler PanicHandler) { if panicHandler == nil { return } if _, ok := panicHandler.(NoopPanicHandler); ok { return } if _, ok := panicHandler.(*NoopPanicHandler); ok { return } panicHandler.HandlePanic(recover()) } gluon-0.17.0/async/panic_handler_test.go000066400000000000000000000015341445200213000202070ustar00rootroot00000000000000package async import ( "fmt" "testing" "github.com/stretchr/testify/require" ) type recoverHandler struct{} func (h recoverHandler) HandlePanic(r interface{}) { fmt.Println("recoverHandler", r) } func TestPanicHandler(t *testing.T) { require.NotPanics(t, func() { defer HandlePanic(recoverHandler{}) panic("there") }) require.PanicsWithValue(t, "where", func() { defer HandlePanic(NoopPanicHandler{}) panic("where") }) require.PanicsWithValue(t, "everywhere", func() { defer HandlePanic(nil) panic("everywhere") }) require.NotPanics(t, func() { defer HandlePanic(recoverHandler{}) panic(nil) }) require.NotPanics(t, func() { defer HandlePanic(recoverHandler{}) }) require.NotPanics(t, func() { defer HandlePanic(NoopPanicHandler{}) }) require.NotPanics(t, func() { defer HandlePanic(&NoopPanicHandler{}) }) } gluon-0.17.0/async/queued_channel.go000066400000000000000000000043171445200213000173430ustar00rootroot00000000000000package async import ( "context" "sync" ) // QueuedChannel represents a channel on which queued items can be published without having to worry if the reader // has actually consumed existing items first or if there's no way of knowing ahead of time what the ideal channel // buffer size should be. type QueuedChannel[T any] struct { ch chan T stopCh chan struct{} items []T cond *sync.Cond closed atomicBool // Should use atomic.Bool once we use Go 1.19! } func NewQueuedChannel[T any](chanBufferSize, queueCapacity int, panicHandler PanicHandler) *QueuedChannel[T] { queue := &QueuedChannel[T]{ ch: make(chan T, chanBufferSize), stopCh: make(chan struct{}), items: make([]T, 0, queueCapacity), cond: sync.NewCond(&sync.Mutex{}), } // The queue is initially not closed. queue.closed.store(false) // Start the queue consumer. GoAnnotated(context.Background(), panicHandler, func(ctx context.Context) { defer close(queue.ch) for { item, ok := queue.pop() if !ok { return } select { case queue.ch <- item: continue case <-queue.stopCh: return } } }) return queue } func (q *QueuedChannel[T]) Enqueue(items ...T) bool { if q.closed.load() { return false } q.cond.L.Lock() defer q.cond.L.Unlock() q.items = append(q.items, items...) q.cond.Broadcast() return true } func (q *QueuedChannel[T]) GetChannel() <-chan T { return q.ch } func (q *QueuedChannel[T]) Close() { q.closed.store(true) q.cond.L.Lock() defer q.cond.L.Unlock() q.cond.Broadcast() } // CloseAndDiscardQueued force closes the channel and does not guarantee that the remaining queued items will be read. func (q *QueuedChannel[T]) CloseAndDiscardQueued() { close(q.stopCh) q.Close() } func (q *QueuedChannel[T]) pop() (T, bool) { q.cond.L.Lock() defer q.cond.L.Unlock() var item T // Wait until there are items to pop, returning false immediately if the queue is closed. // This allows the queue to continue popping elements if it's closed, // but will prevent it from hanging indefinitely once it runs out of items. for len(q.items) == 0 { if q.closed.load() { return item, false } q.cond.Wait() } item, q.items = q.items[0], q.items[1:] return item, true } gluon-0.17.0/async/queued_channel_test.go000066400000000000000000000023651445200213000204030ustar00rootroot00000000000000package async import ( "testing" "github.com/stretchr/testify/require" "go.uber.org/goleak" ) func TestQueuedChannel(t *testing.T) { defer goleak.VerifyNone(t) // Create a new queued channel. queue := NewQueuedChannel[int](3, 3, NoopPanicHandler{}) // Push some items to the queue. require.True(t, queue.Enqueue(1, 2, 3)) // Get a go channel to read from the queue. resCh := queue.GetChannel() // Check we can initially read items off the channel. require.Equal(t, 1, <-resCh) require.Equal(t, 2, <-resCh) require.Equal(t, 3, <-resCh) // Push some more items to the queue. require.True(t, queue.Enqueue(4, 5, 6)) // Close the queue before reading the items. queue.Close() // Check we can still read the three items. require.Equal(t, 4, <-resCh) require.Equal(t, 5, <-resCh) require.Equal(t, 6, <-resCh) // Enqueuing more items after the queue is closed should return false. require.False(t, queue.Enqueue(7, 8, 9)) } func TestQueuedChannelDoesNotLeakIfThereAreNoReadersOnCloseAndDiscard(t *testing.T) { defer goleak.VerifyNone(t) // Create a new queued channel. queue := NewQueuedChannel[int](1, 3, NoopPanicHandler{}) // Push some items to the queue. require.True(t, queue.Enqueue(1, 2, 3)) queue.CloseAndDiscardQueued() } gluon-0.17.0/async/wait_group.go000066400000000000000000000006231445200213000165370ustar00rootroot00000000000000package async import "sync" type WaitGroup struct { wg sync.WaitGroup panicHandler PanicHandler } func MakeWaitGroup(panicHandler PanicHandler) WaitGroup { return WaitGroup{panicHandler: panicHandler} } func (wg *WaitGroup) Go(f func()) { wg.wg.Add(1) go func() { defer HandlePanic(wg.panicHandler) defer wg.wg.Done() f() }() } func (wg *WaitGroup) Wait() { wg.wg.Wait() } gluon-0.17.0/benchmarks/000077500000000000000000000000001445200213000150275ustar00rootroot00000000000000gluon-0.17.0/benchmarks/README.md000066400000000000000000000026701445200213000163130ustar00rootroot00000000000000# Gluon Benchmarks Collection of benchmarks and/or tools to test and/or profile Gluon performance. See each folder's `README.md` for more information. ## Capturing Profiles You can use the gluon demo binary as a way to profile Gluon. Be sure to build the binary with `go build`. You need to run the benchmark for each type of profile you wish to generate as it is not possible to profile multiple items at the same time. Example: ```bash ./demo -profile-cpu -profile-path=$PWD # Generates $PWD/cpu.pprof - CPU Profiling. ./demo -profile-mem -profile-path=$PWD # Generates $PWD/mem.pprof - Memory Profiling. ./demo -profile-lock -profile-path=$PWD # Generates $PWD/block.pprof - Locking/blocking profiling. ``` When the benchmark has finished execution kill the demo binary and the profile data will be written out. ## Analysing the data You need to install the pprof tool (`go install github.com/google/pprof`) to analyse the generated data. After the tool is installed you can analyse the data with `pprof `. See [this blog post](1) and [this tutorial](2) for an introduction to pprof. For a more comprehensible overview you can also launch pprof's web interface which includes many additions such as a flamegraph. ```bash pprof -http 127.0.0.1:8080 ``` ## Available Benchmarks/Tools * [imaptest](imaptest) ## References [1]: https://www.youtube.com/watch?v=N3PWzBeLX2M [2]: https://go.dev/blog/pprofgluon-0.17.0/benchmarks/gluon_bench/000077500000000000000000000000001445200213000173125ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/README.md000066400000000000000000000022561445200213000205760ustar00rootroot00000000000000# Gluon Bench - IMAP benchmarks Gluon bench provides a collection of benchmarks that operate either at the IMAP client level or directly on Gluon itself (e.g: sync). All IMAP command related benchmarks can be run against a local gluon server which will be started with the benchmark or an externally running IMAP server. If running against a local server, it's possible to record the execution times of every individual command. Finally, it is also possible to produce a JSON report rather than printing to the console. ## Building ```bash # In benchmarks/gluon_bench go build main.go -o gluon_bench ``` ## Running Gluon Bench To run Gluon Bench specify a set of options followed by a set of benchmarks you wish to run: ```bash gluon_bench -verbose -parallel-client=4 fetch append ``` Please consult the output of `gluon_bench -h` for all available options/modifiers and benchmarks. ## Integrating Gluon Bench in other projects When integrating Gluon Bench in other projects which may contain other gluon connectors: * Register your connector with `utils.RegisterConnector()` * Specify the connector with the option `-connector=<...>` * In your `main` call `benchmark.RunMain()`gluon-0.17.0/benchmarks/gluon_bench/benchmark/000077500000000000000000000000001445200213000212445ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/benchmark/bench_dir_config.go000066400000000000000000000015511445200213000250370ustar00rootroot00000000000000package benchmark import ( "os" ) // BenchDirConfig controls the directory where the benchmark data will be generated. type BenchDirConfig interface { Get() (string, error) } // FixedBenchDirConfig always returns a known path. type FixedBenchDirConfig struct { path string } func NewFixedBenchDirConfig(path string) *FixedBenchDirConfig { return &FixedBenchDirConfig{path: path} } func (p *FixedBenchDirConfig) Get() (string, error) { if err := os.MkdirAll(p.path, 0o777); err != nil { return "", err } return p.path, nil } // TmpBenchDirConfig returns a temporary path that is generated on first use. type TmpBenchDirConfig struct { path string } func (t *TmpBenchDirConfig) Get() (string, error) { if len(t.path) == 0 { path, err := os.MkdirTemp("", "gluon-bench-*") if err != nil { return "", err } t.path = path } return t.path, nil } gluon-0.17.0/benchmarks/gluon_bench/benchmark/benchmark.go000066400000000000000000000015551445200213000235330ustar00rootroot00000000000000package benchmark import ( "context" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter" ) type Benchmark interface { // Name should return the name of the benchmark. It will also be used to match against cli args. Name() string // Setup sets up the benchmark state, this is not timed. Setup(ctx context.Context, benchmarkDir string) error // Run performs the actual benchmark, this is timed. Run(ctx context.Context) (*reporter.BenchmarkRun, error) // TearDown clear the benchmark state, this is not timed. TearDown(ctx context.Context) error } var benchmarks = make(map[string]Benchmark) func RegisterBenchmark(benchmark Benchmark) { if _, ok := benchmarks[benchmark.Name()]; ok { panic("Benchmark with this name already exists") } benchmarks[benchmark.Name()] = benchmark } func GetBenchmarks() map[string]Benchmark { return benchmarks } gluon-0.17.0/benchmarks/gluon_bench/benchmark/run.go000066400000000000000000000071041445200213000224010ustar00rootroot00000000000000package benchmark import ( "context" "flag" "fmt" "os" "path/filepath" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter" "golang.org/x/exp/slices" ) func RunMain() { flag.Usage = func() { fmt.Printf("Usage %v [options] benchmark0 benchmark1 ... benchmarkN\n", os.Args[0]) fmt.Printf("\nAvailable Benchmarks:\n") var benchmarks []string for k := range GetBenchmarks() { benchmarks = append(benchmarks, k) } slices.Sort(benchmarks) for _, k := range benchmarks { fmt.Printf(" * %v\n", k) } fmt.Printf("\nOptions:\n") flag.PrintDefaults() } flag.Parse() var benchmarks []Benchmark args := flag.Args() if len(args) == 0 { flag.Usage() return } for _, arg := range args { if v, ok := GetBenchmarks()[arg]; ok { benchmarks = append(benchmarks, v) } } if len(benchmarks) == 0 { panic("No benchmarks selected") } var benchmarkReporter reporter.BenchmarkReporter if len(*flags.JsonReporter) != 0 { benchmarkReporter = reporter.NewJSONReporter(*flags.JsonReporter) } else { benchmarkReporter = &reporter.StdOutReporter{} } var benchDirConfig BenchDirConfig if len(*flags.BenchPath) != 0 { benchDirConfig = NewFixedBenchDirConfig(*flags.BenchPath) } else { benchDirConfig = &TmpBenchDirConfig{} } benchmarkReports := make([]*reporter.BenchmarkReport, 0, len(benchmarks)) for _, v := range benchmarks { if *flags.Verbose { fmt.Printf("Begin Benchmark: %v\n", v.Name()) } numRuns := *flags.BenchmarkRuns benchmarkStats := make([]*reporter.BenchmarkStatistics, 0, numRuns) for r := uint(0); r < numRuns; r++ { if *flags.Verbose { fmt.Printf("Benchmark Run: %v\n", r) } benchStat := measureBenchmark(benchDirConfig, r, v) benchmarkStats = append(benchmarkStats, benchStat) } benchmarkReports = append(benchmarkReports, reporter.NewBenchmarkReport(v.Name(), benchmarkStats...)) if *flags.Verbose { fmt.Printf("End Benchmark: %v\n", v.Name()) } } if benchmarkReporter != nil { if *flags.Verbose { fmt.Printf("Generating Report\n") } if err := benchmarkReporter.ProduceReport(benchmarkReports); err != nil { panic(fmt.Sprintf("Failed to produce benchmark report: %v", err)) } } if *flags.Verbose { fmt.Printf("Finished\n") } } func measureBenchmark(dirConfig BenchDirConfig, iteration uint, bench Benchmark) *reporter.BenchmarkStatistics { benchPath, err := dirConfig.Get() if err != nil { panic(fmt.Sprintf("Failed to get server directory: %v", err)) } benchPath = filepath.Join(benchPath, fmt.Sprintf("%v-%d", bench.Name(), iteration)) if *flags.Verbose { fmt.Printf("Benchmark Data Path: %v\n", benchPath) } if err := os.MkdirAll(benchPath, 0o777); err != nil { panic(fmt.Sprintf("Failed to create server directory '%v' : %v", benchPath, err)) } ctx := context.Background() if err := bench.Setup(ctx, benchPath); err != nil { panic(fmt.Sprintf("Failed to setup benchmark %v: %v", bench.Name(), err)) } benchRun, benchErr := bench.Run(ctx) if benchErr != nil { panic(fmt.Sprintf("Failed to run benchmark %v: %v", bench.Name(), err)) } if err := bench.TearDown(ctx); err != nil { panic(fmt.Sprintf("Failed to teardown benchmark %v: %v", bench.Name(), err)) } if !*flags.SkipClean { if *flags.Verbose { fmt.Printf("Cleaning benchmark dir: %v\n", benchPath) } if err := os.RemoveAll(benchPath); err != nil { fmt.Fprintf(os.Stderr, "Failed to remote benchmark data dir '%v': %v\n", benchPath, err) } } return reporter.NewBenchmarkStatistics(benchRun.Extra, benchRun.Durations...) } gluon-0.17.0/benchmarks/gluon_bench/flags/000077500000000000000000000000001445200213000204065ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/flags/general.go000066400000000000000000000015441445200213000223560ustar00rootroot00000000000000package flags import "flag" var ( BenchPath = flag.String("path", "", "Filepath where to write the database data. If not set a temp folder will be used.") Verbose = flag.Bool("verbose", false, "Enable verbose logging.") JsonReporter = flag.String("json-reporter", "", "If specified, will generate a json report with the given filename.") BenchmarkRuns = flag.Uint("bench-runs", 1, "Number of runs per benchmark.") Connector = flag.String("connector", "dummy", "Key of the connector implementation registered with ConnectorFactory.") UserName = flag.String("user-name", "user", "Username for the connector user, defaults to 'user'.") UserPassword = flag.String("user-pwd", "password", "Password for the connector user, defaults to 'password'.") SkipClean = flag.Bool("skip-clean", false, "Do not cleanup benchmark data directory.") ) gluon-0.17.0/benchmarks/gluon_bench/flags/imap_benchmarks.go000066400000000000000000000015471445200213000240670ustar00rootroot00000000000000package flags import "flag" var ( IMAPRemoteServer = flag.String("imap-remote-server", "", "IP address and port of the remote IMAP server to run against. E.g. 127.0.0.1:1143.") IMAPMessageCount = flag.Uint("imap-msg-count", 1000, "Number of messages to add to the mailbox before each benchmark") IMAPRandomSeqSetIntervals = flag.Bool("imap-random-seqset-intervals", false, "When set, generate random sequence intervals rather than single numbers.") IMAPUIDMode = flag.Bool("imap-uid-mode", false, "When set, will run benchmarks in UID mode if available.") IMAPParallelClients = flag.Uint("imap-parallel-clients", 1, "Set the number of clients to be run in parallel during the benchmark.") IMAPMailboxMessageDir = flag.String("imap-mbox-file-dir", "", "Folder path to load *.eml messages instead of builtin selection.") ) gluon-0.17.0/benchmarks/gluon_bench/flags/store_benchmarks.go000066400000000000000000000010051445200213000242620ustar00rootroot00000000000000package flags import "flag" var ( Store = flag.String("store", "default", "Name of the storage implementation to benchmark. Defaults to regular on disk storage by default.") StoreWorkers = flag.Uint("store-workers", 1, "Number of concurrent workers for store operations.") StoreItemCount = flag.Uint("store-item-count", 1000, "Number of items to generate in the store benchmarks.") StoreItemSize = flag.Uint("store-item-size", 15*1024*1024, "Number of items to generate in the store benchmarks.") ) gluon-0.17.0/benchmarks/gluon_bench/gluon_benchmarks/000077500000000000000000000000001445200213000226335ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/gluon_benchmarks/sync.go000066400000000000000000000064061445200213000241440ustar00rootroot00000000000000package gluon_benchmarks import ( "context" "flag" "math/rand" "time" "github.com/ProtonMail/gluon" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/timing" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/utils" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/hash" "github.com/google/uuid" _ "github.com/mattn/go-sqlite3" "github.com/sirupsen/logrus" ) var ( syncMessageCountFlag = flag.Uint("sync-msg-count", 1000, "Number of messages to sync.") syncMBoxCountFlag = flag.Uint("sync-mbox-count", 1, "Number of mailboxes to sync.") ) type Sync struct { connector utils.ConnectorImpl server *gluon.Server mailboxes []imap.MailboxID } func NewSync() benchmark.Benchmark { return &Sync{} } func (s *Sync) Name() string { return "gluon-sync" } func (s *Sync) Setup(ctx context.Context, benchmarkDir string) error { loggerIn := logrus.StandardLogger().WriterLevel(logrus.TraceLevel) loggerOut := logrus.StandardLogger().WriterLevel(logrus.TraceLevel) opts := []gluon.Option{ gluon.WithDataDir(benchmarkDir), gluon.WithDatabaseDir(benchmarkDir), gluon.WithLogger(loggerIn, loggerOut), } server, err := gluon.New(opts...) if err != nil { return err } s.server = server connector, err := s.setupConnector(ctx) if err != nil { return err } s.connector = connector return nil } func (s *Sync) setupConnector(ctx context.Context) (utils.ConnectorImpl, error) { c, err := utils.NewConnector(*flags.Connector) if err != nil { return nil, err } mboxIDs := make([]imap.MailboxID, 0, *syncMBoxCountFlag) for i := uint(0); i < *syncMBoxCountFlag; i++ { mbox, err := c.Connector().CreateMailbox(ctx, []string{uuid.NewString()}) if err != nil { return nil, err } mboxIDs = append(mboxIDs, mbox.ID) } messages := [][]byte{ []byte(utils.MessageEmbedded), []byte(utils.MessageMultiPartMixed), []byte(utils.MessageAfterNoonMeeting), } flagSet := imap.NewFlagSet("\\Recent", "\\Draft", "\\Foo") s.mailboxes = make([]imap.MailboxID, 0, len(mboxIDs)) for _, mboxID := range mboxIDs { for i := uint(0); i < *syncMessageCountFlag; i++ { randIndex := rand.Intn(len(messages)) if _, _, err := c.Connector().CreateMessage(ctx, mboxID, messages[randIndex], flagSet, time.Now()); err != nil { return nil, err } } s.mailboxes = append(s.mailboxes, mboxID) } if _, err = s.server.AddUser( ctx, c.Connector(), hash.SHA256([]byte(*flags.UserPassword)), ); err != nil { return nil, err } return c, nil } func (s *Sync) Run(ctx context.Context) (*reporter.BenchmarkRun, error) { timer := timing.Timer{} timer.Start() err := s.connector.Sync(ctx) timer.Stop() if err != nil { return nil, err } return reporter.NewBenchmarkRunSingle(timer.Elapsed(), nil), nil } func (s *Sync) TearDown(ctx context.Context) error { for _, id := range s.mailboxes { if err := s.connector.Connector().DeleteMailbox(ctx, id); err != nil { return err } } if s.server != nil { if err := s.server.Close(ctx); err != nil { return err } } return nil } func init() { benchmark.RegisterBenchmark(NewSync()) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/000077500000000000000000000000001445200213000224355ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/append.go000066400000000000000000000023111445200213000242300ustar00rootroot00000000000000package imap_benchmarks import ( "context" "fmt" "net" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/emersion/go-imap/client" ) type Append struct { *stateTracker } func NewAppend() benchmark.Benchmark { return NewIMAPBenchmarkRunner(&Append{stateTracker: newStateTracker()}) } func (a *Append) Name() string { return "imap-append" } func (a *Append) Setup(ctx context.Context, addr net.Addr) error { if *flags.IMAPMessageCount == 0 { return fmt.Errorf("invalid message count") } return WithClient(addr, func(cl *client.Client) error { for i := uint(0); i < *flags.IMAPParallelClients; i++ { if _, err := a.createRandomMBox(cl); err != nil { return err } } return nil }) } func (a *Append) TearDown(ctx context.Context, addr net.Addr) error { //return a.cleanupWithAddr(addr) return nil } func (a *Append) Run(ctx context.Context, addr net.Addr) error { RunParallelClients(addr, func(c *client.Client, u uint) { if err := BuildMailbox(c, a.MBoxes[u], int(*flags.IMAPMessageCount)); err != nil { panic(err) } }) return nil } func init() { benchmark.RegisterBenchmark(NewAppend()) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/build_mailbox.go000066400000000000000000000025011445200213000255740ustar00rootroot00000000000000package imap_benchmarks import ( "fmt" "time" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/utils" "github.com/emersion/go-imap/client" "github.com/google/uuid" ) // BuildMailbox creates a mailbox of name `mailbox` and fills it up with `messageCount` random messages. func BuildMailbox(cl *client.Client, mailbox string, messageCount int) error { var messages []string if len(*flags.IMAPMailboxMessageDir) != 0 { msgs, err := utils.LoadEMLFilesFromDirectory(*flags.IMAPMailboxMessageDir) if err != nil { return err } if *flags.Verbose { fmt.Printf("Loaded %v messages from '%v'\n", len(msgs), *flags.IMAPMailboxMessageDir) } messages = msgs } else { messages = []string{utils.MessageAfterNoonMeeting, utils.MessageMultiPartMixed, utils.MessageEmbedded} } return BuildMailboxWithMessages(cl, mailbox, messageCount, messages) } func BuildMailboxWithMessages(cl *client.Client, mailbox string, messageCount int, messages []string) error { messagesLen := len(messages) for i := 0; i < messageCount; i++ { literal := fmt.Sprintf("To: %v@a.com\r\nFrom: %v@a.com\r\n", uuid.NewString(), uuid.NewString()) + messages[i%messagesLen] if err := AppendToMailbox(cl, mailbox, literal, time.Now()); err != nil { return err } } return nil } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/client.go000066400000000000000000000115341445200213000242460ustar00rootroot00000000000000package imap_benchmarks import ( "bufio" "fmt" "math/rand" "net" "os" "strings" "sync" "time" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/bradenaw/juniper/xslices" "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" ) func AppendToMailbox(cl *client.Client, mailboxName string, literal string, time time.Time, flags ...string) error { return cl.Append(mailboxName, flags, time, strings.NewReader(literal)) } func FetchMessage(cl *client.Client, sequenceSet *imap.SeqSet, items ...imap.FetchItem) error { ch := make(chan *imap.Message) go func() { for { if _, ok := <-ch; !ok { break } } }() return cl.Fetch(sequenceSet, items, ch) } func flagsToInterface(flags ...string) []interface{} { return xslices.Map(flags, func(f string) interface{} { return interface{}(f) }) } func Store(cl *client.Client, sequenceSet *imap.SeqSet, item string, silent bool, flags ...string) error { if !silent { ch := make(chan *imap.Message) go func() { for { if _, ok := <-ch; !ok { break } } }() return cl.Store(sequenceSet, imap.StoreItem(item), flagsToInterface(flags...), ch) } else { return cl.Store(sequenceSet, imap.StoreItem(item), flagsToInterface(flags...), nil) } } func UIDStore(cl *client.Client, sequenceSet *imap.SeqSet, item string, silent bool, flags ...string) error { if !silent { ch := make(chan *imap.Message) go func() { for { if _, ok := <-ch; !ok { break } } }() return cl.UidStore(sequenceSet, imap.StoreItem(item), flagsToInterface(flags...), ch) } else { return cl.UidStore(sequenceSet, imap.StoreItem(item), flagsToInterface(flags...), nil) } } func UIDFetchMessage(cl *client.Client, sequenceSet *imap.SeqSet, items ...imap.FetchItem) error { ch := make(chan *imap.Message) go func() { for { if _, ok := <-ch; !ok { break } } }() return cl.UidFetch(sequenceSet, items, ch) } func SequenceListFromFile(path string) ([]*imap.SeqSet, error) { result := make([]*imap.SeqSet, 0, 64) readFile, err := os.Open(path) if err != nil { return nil, err } defer readFile.Close() fileScanner := bufio.NewScanner(readFile) fileScanner.Split(bufio.ScanLines) for fileScanner.Scan() { seqSet, err := imap.ParseSeqSet(fileScanner.Text()) if err != nil { return nil, err } result = append(result, seqSet) } return result, nil } func NewSequenceSetAll() *imap.SeqSet { seq := &imap.SeqSet{} seq.AddRange(1, 0) return seq } func RandomSequenceSetNum(max uint32) *imap.SeqSet { var num uint32 for num == 0 { num = rand.Uint32() % max } r := &imap.SeqSet{} r.AddNum(num) return r } func RandomSequenceSetRange(max uint32) *imap.SeqSet { var start uint32 for start == 0 { start = rand.Uint32() % max } stop := start if start != max-1 { for stop <= start { stop = rand.Uint32() % max } } r := &imap.SeqSet{} r.AddRange(start, stop) return r } type MailboxInfo struct { Name string ReadOnly bool } func RunParallelClientsWithMailbox(addr net.Addr, mbox string, readOnly bool, fn func(*client.Client, uint)) { mailboxes := make([]MailboxInfo, *flags.IMAPParallelClients) for i := uint(0); i < *flags.IMAPParallelClients; i++ { mailboxes[i] = MailboxInfo{Name: mbox, ReadOnly: readOnly} } RunParallelClientsWithMailboxes(addr, mailboxes, fn) } func RunParallelClientsWithMailboxes(addr net.Addr, mailboxes []MailboxInfo, fn func(*client.Client, uint)) { if len(mailboxes) != int(*flags.IMAPParallelClients) { panic("Mailbox count doesn't match worker count") } RunParallelClients(addr, func(cl *client.Client, index uint) { mbox := mailboxes[index] if _, err := cl.Select(mbox.Name, mbox.ReadOnly); err != nil { panic(err) } fn(cl, index) }) } func RunParallelClients(addr net.Addr, fn func(*client.Client, uint)) { wg := sync.WaitGroup{} for i := uint(0); i < *flags.IMAPParallelClients; i++ { wg.Add(1) go func(index uint) { defer wg.Done() if err := WithClient(addr, func(c *client.Client) error { fn(c, index) return nil }); err != nil { panic(err) } }(i) } wg.Wait() } func FillMailbox(cl *client.Client, mbox string) error { if *flags.IMAPMessageCount == 0 { return fmt.Errorf("message count can't be 0") } return BuildMailbox(cl, mbox, int(*flags.IMAPMessageCount)) } func WithClient(addr net.Addr, fn func(*client.Client) error) error { cl, err := newClient(addr.String()) if err != nil { return err } defer closeClient(cl) return fn(cl) } func newClient(addr string) (*client.Client, error) { client, err := client.Dial(addr) if err != nil { return nil, err } if err := client.Login(*flags.UserName, *flags.UserPassword); err != nil { return nil, err } return client, nil } func closeClient(cl *client.Client) { if err := cl.Logout(); err != nil { fmt.Fprintf(os.Stderr, "Failed to close client: %v\n", err) } } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/copy.go000066400000000000000000000044121445200213000237370ustar00rootroot00000000000000package imap_benchmarks import ( "context" "flag" "net" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" ) var ( copyCountFlag = flag.Uint("imap-copy-count", 0, "Total number of messages to copy during copy benchmarks.") copyListFlag = flag.String("imap-copy-list", "", "Use a list of predefined sequences to copy rather than random generated.") copyAllFlag = flag.Bool("imap-copy-all", false, "If set, perform a copy of the all messages.") ) type Copy struct { *stateTracker seqSets *ParallelSeqSet } func NewCopy() benchmark.Benchmark { return NewIMAPBenchmarkRunner(&Copy{ stateTracker: newStateTracker(), }) } func (*Copy) Name() string { return "imap-copy" } func (c *Copy) Setup(ctx context.Context, addr net.Addr) error { return WithClient(addr, func(cl *client.Client) error { if _, err := c.createAndFillRandomMBox(cl); err != nil { return err } if _, err := c.createRandomMBox(cl); err != nil { return err } copyCount := uint32(*copyCountFlag) if copyCount == 0 { copyCount = uint32(*flags.IMAPMessageCount) } seqSets, err := NewParallelSeqSet(copyCount, *flags.IMAPParallelClients, *copyListFlag, *copyAllFlag, *flags.IMAPRandomSeqSetIntervals, false, *flags.IMAPUIDMode) if err != nil { return err } c.seqSets = seqSets return nil }) } func (c *Copy) TearDown(ctx context.Context, addr net.Addr) error { return c.cleanupWithAddr(addr) } func (c *Copy) Run(ctx context.Context, addr net.Addr) error { srcMBox := c.MBoxes[0] dstMBox := c.MBoxes[1] RunParallelClientsWithMailbox(addr, srcMBox, true, func(cl *client.Client, index uint) { var copyFn func(*client.Client, *imap.SeqSet, string) error if *flags.IMAPUIDMode { copyFn = func(cl *client.Client, set *imap.SeqSet, mailbox string) error { return cl.UidCopy(set, mailbox) } } else { copyFn = func(cl *client.Client, set *imap.SeqSet, mailbox string) error { return cl.Copy(set, mailbox) } } for _, v := range c.seqSets.Get(index) { if err := copyFn(cl, v, dstMBox); err != nil { panic(err) } } }) return nil } func init() { benchmark.RegisterBenchmark(NewCopy()) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/expunge.go000066400000000000000000000066101445200213000244420ustar00rootroot00000000000000package imap_benchmarks import ( "context" "flag" "fmt" "net" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/bradenaw/juniper/xslices" "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" ) var ( expungeCountFlag = flag.Uint("imap-expunge-count", 0, "Total number of messages to expunge during expunge benchmarks.") expungeSameMBoxFlag = flag.Bool("imap-expunge-same-mbox", false, "When true run all the expunge test on the same inbox rather than separate ones in parallel.") expungeListFlag = flag.String("imap-expunge-list", "", "Use a list of predefined sequences to expunge rather than random generated. Only works when -expunge-same-mbox is not set.") expungeAllFlag = flag.Bool("imap-expunge-all", false, "If set, perform a expunge of the all messages. Only works when -expunge-same-mbox is not set.") ) type Expunge struct { *stateTracker seqSets *ParallelSeqSet mboxInfo []MailboxInfo } func NewExpunge() benchmark.Benchmark { return NewIMAPBenchmarkRunner(&Expunge{stateTracker: newStateTracker()}) } func (*Expunge) Name() string { return "imap-expunge" } func (e *Expunge) Setup(ctx context.Context, addr net.Addr) error { return WithClient(addr, func(cl *client.Client) error { if *expungeSameMBoxFlag { if _, err := e.createAndFillRandomMBox(cl); err != nil { return err } expungeCount := uint32(*expungeCountFlag) if expungeCount == 0 { expungeCount = uint32(*flags.IMAPMessageCount) } e.seqSets = NewParallelSeqSetExpunge(expungeCount, *flags.IMAPParallelClients, *flags.IMAPRandomSeqSetIntervals, *flags.IMAPUIDMode, ) e.mboxInfo = make([]MailboxInfo, *flags.IMAPParallelClients) for i := 0; i < len(e.mboxInfo); i++ { e.mboxInfo[i] = MailboxInfo{Name: e.MBoxes[0], ReadOnly: false} } } else { for i := uint(0); i < *flags.IMAPParallelClients; i++ { if _, err := e.createAndFillRandomMBox(cl); err != nil { return err } } seqSets, err := NewParallelSeqSet(uint32(*flags.IMAPMessageCount), *flags.IMAPParallelClients, *expungeListFlag, *expungeAllFlag, *flags.IMAPRandomSeqSetIntervals, true, *flags.IMAPUIDMode) if err != nil { return err } e.seqSets = seqSets e.mboxInfo = xslices.Map(e.MBoxes, func(m string) MailboxInfo { return MailboxInfo{Name: m, ReadOnly: false} }) } return nil }) } func (e *Expunge) TearDown(ctx context.Context, addr net.Addr) error { return e.cleanupWithAddr(addr) } func (e *Expunge) Run(ctx context.Context, addr net.Addr) error { RunParallelClientsWithMailboxes(addr, e.mboxInfo, func(cl *client.Client, index uint) { var expungeFn func(*client.Client, *imap.SeqSet) error if *flags.IMAPUIDMode { expungeFn = func(cl *client.Client, set *imap.SeqSet) error { if err := UIDStore(cl, set, "+FLAGS", true, imap.DeletedFlag); err != nil { return err } return cl.Expunge(nil) } } else { expungeFn = func(cl *client.Client, set *imap.SeqSet) error { if err := Store(cl, set, "+FLAGS", true, imap.DeletedFlag); err != nil { return err } return cl.Expunge(nil) } } for _, v := range e.seqSets.Get(index) { if err := expungeFn(cl, v); err != nil { panic(fmt.Sprintf("Seq:%v err:%v", v, err)) } } }) return nil } func init() { benchmark.RegisterBenchmark(NewExpunge()) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/fetch.go000066400000000000000000000047541445200213000240670ustar00rootroot00000000000000package imap_benchmarks import ( "context" "flag" "net" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" ) var ( fetchCountFlag = flag.Uint("imap-fetch-count", 0, "Total number of messages to fetch during fetch benchmarks.") fetchListFlag = flag.String("imap-fetch-list", "", "Use a list of predefined sequences to fetch rather than random generated.") fetchReadOnly = flag.Bool("imap-fetch-read-only", false, "If set, perform fetches in read-only mode.") fetchAllFlag = flag.Bool("imap-fetch-all", false, "If set, perform one fetch for all messages.") ) type Fetch struct { *stateTracker seqSets *ParallelSeqSet } func NewFetch() benchmark.Benchmark { return NewIMAPBenchmarkRunner(&Fetch{stateTracker: newStateTracker()}) } func (*Fetch) Name() string { return "imap-fetch" } func (f *Fetch) Setup(ctx context.Context, addr net.Addr) error { return WithClient(addr, func(cl *client.Client) error { if _, err := f.createAndFillRandomMBox(cl); err != nil { return err } fetchCount := uint32(*fetchCountFlag) if fetchCount == 0 { fetchCount = uint32(*flags.IMAPMessageCount) } seqSets, err := NewParallelSeqSet(fetchCount, *flags.IMAPParallelClients, *fetchListFlag, *fetchAllFlag, *flags.IMAPRandomSeqSetIntervals, false, *flags.IMAPUIDMode) if err != nil { return err } f.seqSets = seqSets return nil }) } func (f *Fetch) TearDown(ctx context.Context, addr net.Addr) error { return f.cleanupWithAddr(addr) } func (f *Fetch) Run(ctx context.Context, addr net.Addr) error { attributes := []imap.FetchItem{ imap.FetchFlags, imap.FetchRFC822Size, imap.FetchRFC822Header, imap.FetchInternalDate, imap.FetchRFC822, imap.FetchRFC822Text, imap.FetchBody, "BODY[]", "BODY[HEADER]", } RunParallelClientsWithMailbox(addr, f.MBoxes[0], *fetchReadOnly, func(cl *client.Client, index uint) { var fetchFn func(*client.Client, *imap.SeqSet) error if *flags.IMAPUIDMode { fetchFn = func(cl *client.Client, set *imap.SeqSet) error { return UIDFetchMessage(cl, set, attributes...) } } else { fetchFn = func(cl *client.Client, set *imap.SeqSet) error { return FetchMessage(cl, set, attributes...) } } for _, v := range f.seqSets.Get(index) { if err := fetchFn(cl, v); err != nil { panic(err) } } }) return nil } func init() { benchmark.RegisterBenchmark(NewFetch()) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/imap_benchmark.go000066400000000000000000000030041445200213000257210ustar00rootroot00000000000000package imap_benchmarks import ( "context" "fmt" "net" "strings" "time" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter" "github.com/ProtonMail/gluon/profiling" ) // IMAPBenchmark is intended to be used to build benchmarks which bench IMAP commands on a given server. type IMAPBenchmark interface { // Name should return the name of the benchmark. It will also be used to match against cli args. Name() string // Setup sets up the benchmark state, this is not timed. Setup(ctx context.Context, addr net.Addr) error // Run performs the actual benchmark, this is timed. Run(ctx context.Context, addr net.Addr) error // TearDown clear the benchmark state, this is not timed. TearDown(ctx context.Context, addr net.Addr) error } type IMAPBenchmarkExtra struct { CMDStatistic [profiling.CmdTypeTotal]*reporter.BenchmarkStatistics } func (i *IMAPBenchmarkExtra) String() string { builder := strings.Builder{} for n, v := range i.CMDStatistic { if v.SampleCount == 0 { continue } builder.WriteString(fmt.Sprintf("[%v] %v\n", profiling.CmdTypeToString(n), v.String())) } return builder.String() } func NewIMAPBenchmarkRun(duration time.Duration, cmdTimings [profiling.CmdTypeTotal][]time.Duration) *reporter.BenchmarkRun { var cmdStatistic [profiling.CmdTypeTotal]*reporter.BenchmarkStatistics for i, v := range cmdTimings { cmdStatistic[i] = reporter.NewBenchmarkStatistics(nil, v...) } return reporter.NewBenchmarkRunSingle(duration, &IMAPBenchmarkExtra{CMDStatistic: cmdStatistic}) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/imap_benchmark_runner.go000066400000000000000000000044111445200213000273150ustar00rootroot00000000000000package imap_benchmarks import ( "context" "fmt" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/imap_benchmarks/server" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/timing" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/utils" ) type IMAPBenchmarkRunner struct { benchmark IMAPBenchmark cmdProfilerBuilder *utils.DurationCmdProfilerBuilder server server.Server } func (i *IMAPBenchmarkRunner) Name() string { return i.benchmark.Name() } // Setup sets up the benchmark state, this is not timed. func (i *IMAPBenchmarkRunner) Setup(ctx context.Context, benchmarkDir string) error { var serverBuilder server.ServerBuilder if len(*flags.IMAPRemoteServer) != 0 { builder, err := server.NewRemoteServerBuilder(*flags.IMAPRemoteServer) if err != nil { panic(fmt.Sprintf("Invalid Server address: %v", err)) } serverBuilder = builder } else { serverBuilder = &server.LocalServerBuilder{} } i.cmdProfilerBuilder.Clear() server, err := serverBuilder.New(ctx, benchmarkDir, i.cmdProfilerBuilder) if err != nil { return err } i.server = server if err := i.benchmark.Setup(ctx, i.server.Address()); err != nil { return err } return nil } // Run performs the actual benchmark, this is timed. func (i *IMAPBenchmarkRunner) Run(ctx context.Context) (*reporter.BenchmarkRun, error) { scopedTimer := timing.Timer{} scopedTimer.Start() err := i.benchmark.Run(ctx, i.server.Address()) scopedTimer.Stop() if err != nil { return nil, err } return NewIMAPBenchmarkRun(scopedTimer.Elapsed(), i.cmdProfilerBuilder.Merge()), nil } // TearDown clear the benchmark state, this is not timed. func (i *IMAPBenchmarkRunner) TearDown(ctx context.Context) error { if i.server != nil { if err := i.benchmark.TearDown(ctx, i.server.Address()); err != nil { return err } if err := i.server.Close(ctx); err != nil { return err } } return nil } func NewIMAPBenchmarkRunner(bench IMAPBenchmark) benchmark.Benchmark { return &IMAPBenchmarkRunner{ benchmark: bench, cmdProfilerBuilder: utils.NewDurationCmdProfilerBuilder(), } } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/move.go000066400000000000000000000062671445200213000237450ustar00rootroot00000000000000package imap_benchmarks import ( "context" "flag" "fmt" "net" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/bradenaw/juniper/xslices" "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" ) var ( moveListFlag = flag.String("imap-move-list", "", "Use a list of predefined sequences to move rather than random generated.") moveAllFlag = flag.Bool("imap-move-all", false, "If set, perform a move of the all messages.") moveIntoSameDstFlag = flag.Bool("imap-move-into-same-dst", false, "If set, rather than moving each unique mailbox into separate unique mailboxes, move all messages into one common destination mailbox.") ) type Move struct { *stateTracker seqSets *ParallelSeqSet srcMailboxes []string dstMailboxes []string } func NewMove() benchmark.Benchmark { return NewIMAPBenchmarkRunner(&Move{stateTracker: newStateTracker()}) } func (*Move) Name() string { return "imap-move" } func (m *Move) Setup(ctx context.Context, addr net.Addr) error { if *flags.IMAPMessageCount == 0 { return fmt.Errorf("move benchmark requires a message count > 0") } return WithClient(addr, func(cl *client.Client) error { m.srcMailboxes = make([]string, 0, *flags.IMAPParallelClients) m.dstMailboxes = make([]string, 0, *flags.IMAPParallelClients) for i := uint(0); i < *flags.IMAPParallelClients; i++ { mbox, err := m.createAndFillRandomMBox(cl) if err != nil { return err } m.srcMailboxes = append(m.srcMailboxes, mbox) } var dstMboxCount uint if *moveIntoSameDstFlag { dstMboxCount = 1 } else { dstMboxCount = *flags.IMAPParallelClients } for i := uint(0); i < dstMboxCount; i++ { mbox, err := m.createRandomMBox(cl) if err != nil { return err } m.dstMailboxes = append(m.dstMailboxes, mbox) } seqSets, err := NewParallelSeqSet(uint32(*flags.IMAPMessageCount), *flags.IMAPParallelClients, *moveListFlag, *moveAllFlag, *flags.IMAPRandomSeqSetIntervals, true, *flags.IMAPUIDMode) if err != nil { return err } m.seqSets = seqSets return nil }) } func (m *Move) TearDown(ctx context.Context, addr net.Addr) error { return m.cleanupWithAddr(addr) } func (m *Move) Run(ctx context.Context, addr net.Addr) error { mboxInfos := xslices.Map(m.srcMailboxes, func(name string) MailboxInfo { return MailboxInfo{ Name: name, ReadOnly: true, } }) RunParallelClientsWithMailboxes(addr, mboxInfos, func(cl *client.Client, index uint) { var moveFn func(*client.Client, *imap.SeqSet, string) error if *flags.IMAPUIDMode { moveFn = func(cl *client.Client, set *imap.SeqSet, mailbox string) error { return cl.UidMove(set, mailbox) } } else { moveFn = func(cl *client.Client, set *imap.SeqSet, mailbox string) error { return cl.Move(set, mailbox) } } for _, v := range m.seqSets.Get(index) { if *moveIntoSameDstFlag { if err := moveFn(cl, v, m.dstMailboxes[0]); err != nil { panic(err) } } else { if err := moveFn(cl, v, m.dstMailboxes[index]); err != nil { panic(err) } } } }) return nil } func init() { benchmark.RegisterBenchmark(NewMove()) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/parallel_seqset.go000066400000000000000000000143531445200213000261520ustar00rootroot00000000000000package imap_benchmarks import ( "fmt" "math/rand" "github.com/emersion/go-imap" ) // ParallelSeqSet contains a list of sequence sets which can be used by the benchmarks. Use one of the several new // functions to initialize the state. Internally it holds one list per expected worker. type ParallelSeqSet struct { seqSets [][]*imap.SeqSet } func (p *ParallelSeqSet) Get(i uint) []*imap.SeqSet { return p.seqSets[i] } // NewParallelSeqSetFromFile load the sequence sets from a file. The same sequence set will be assigned to // all workers. func NewParallelSeqSetFromFile(path string, numWorkers uint) (*ParallelSeqSet, error) { list, err := SequenceListFromFile(path) if err != nil { return nil, err } seqSets := make([][]*imap.SeqSet, numWorkers) for i := uint(0); i < numWorkers; i++ { seqSets[i] = list } return &ParallelSeqSet{ seqSets: seqSets, }, nil } // NewParallelSeqSetExpunge generates sequence ids or intervals that can be used in cases where the data is expunged // and/or moved from the original inbox. It also makes sure that concurrent workers can't overlap to avoid operations // on messages that no longer exist. func NewParallelSeqSetExpunge(count uint32, numWorkers uint, generateIntervals, uid bool) *ParallelSeqSet { lists := make([][]*imap.SeqSet, numWorkers) workerSplit := count / uint32(numWorkers) available := make([]uint32, count) for r := uint32(0); r < count; r++ { available[r] = r + 1 } for i := uint(0); i < numWorkers; i++ { available := available[(uint32(i) * workerSplit):(uint32(i+1) * workerSplit)] list := make([]*imap.SeqSet, 0, workerSplit) if generateIntervals { const maxIntervalRange = uint32(40) for len(available) > 0 { intervalRange := rand.Uint32() % maxIntervalRange itemsLeft := uint32(len(available)) index := rand.Uint32() % itemsLeft if index > intervalRange { index -= intervalRange } else { index = 0 } if index+intervalRange >= itemsLeft { intervalRange = itemsLeft - index } seqSet := &imap.SeqSet{} if uid { seqSet.AddRange(available[index], available[index+intervalRange-1]) } else { seqSet.AddRange(index+1, index+intervalRange) } list = append(list, seqSet) available = append(available[:index], available[index+intervalRange:]...) } } else { count := uint32(len(available)) for r := uint32(0); r < count; r++ { index := rand.Uint32() % (count - r) seqSet := &imap.SeqSet{} if uid { tmp := available[index] available[index] = available[count-r-1] seqSet.AddNum(tmp) } else { seqSet.AddNum(index) } list = append(list, seqSet) } } lists[i] = list } return &ParallelSeqSet{seqSets: lists} } // NewParallelSeqSetRandom generates count random sequence set for each worker. If generateIntervals is set to true, // it will generate intervals rather than a single number. If randomDrain is set to true it will generate unique // values that eventually exhaust the problem space. func NewParallelSeqSetRandom(count uint32, numWorkers uint, generateIntervals, randomDrain, uid bool) *ParallelSeqSet { lists := make([][]*imap.SeqSet, numWorkers) for i := uint(0); i < numWorkers; i++ { list := make([]*imap.SeqSet, 0, count) if randomDrain { available := make([]uint32, count) for r := uint32(0); r < count; r++ { available[r] = r + 1 } if generateIntervals { const maxIntervalRange = uint32(40) for len(available) > 0 { intervalRange := rand.Uint32() % maxIntervalRange itemsLeft := uint32(len(available)) index := rand.Uint32() % itemsLeft if index >= itemsLeft { index = 0 } if index+intervalRange >= itemsLeft { intervalRange = itemsLeft - index } seqSet := &imap.SeqSet{} if uid { seqSet.AddRange(available[index], available[index+intervalRange-1]) } else { endSeq := index + intervalRange + 1 if endSeq > itemsLeft { endSeq = itemsLeft } seqSet.AddRange(index+1, endSeq) } list = append(list, seqSet) cutIndex := index if index > 0 { cutIndex-- } available = append(available[:cutIndex], available[index+intervalRange:]...) } } else { for r := uint32(0); r < count; r++ { index := rand.Uint32() % (count - r) seqSet := &imap.SeqSet{} if uid { tmp := available[index] available[index] = available[count-r-1] seqSet.AddNum(tmp) } else { seqSet.AddNum(index) } list = append(list, seqSet) } } } else { for r := uint32(0); r < count; r++ { var seqSet *imap.SeqSet if !generateIntervals { seqSet = RandomSequenceSetNum(count) } else { seqSet = RandomSequenceSetRange(count) } list = append(list, seqSet) } } lists[i] = list } return &ParallelSeqSet{seqSets: lists} } // NewParallelSeqSetAll generates once sequence set for each worker which covers everything (1:*). func NewParallelSeqSetAll(numWorkers uint) *ParallelSeqSet { lists := make([][]*imap.SeqSet, numWorkers) for i := uint(0); i < numWorkers; i++ { lists[i] = []*imap.SeqSet{NewSequenceSetAll()} } return &ParallelSeqSet{seqSets: lists} } // NewParallelSeqSet generates a parallel SeqSet based on the following conditions: // - If a listFile is not empty, it will load the sequence sets from that file. // - If generateAll is set to true, it will call NewParallelSeqSetAll. // - If none of the above are valid it will generate random collection of sequence sets which can be single or intervals // based on whether generateIntervals is set to true. // If randomDrain is set to true, it will generate non repeating sequences. E.g. Useful for move or delete benchmarks. // If uid is set to true, it will assume the values are UIDs rather than sequence IDs. func NewParallelSeqSet(count uint32, numWorkers uint, listFile string, generateAll, generateIntervals, randomDrain, uid bool) (*ParallelSeqSet, error) { if count == 0 { return nil, fmt.Errorf("count can not be 0") } if len(listFile) != 0 { return NewParallelSeqSetFromFile(listFile, numWorkers) } else if generateAll { return NewParallelSeqSetAll(numWorkers), nil } else { return NewParallelSeqSetRandom(count, numWorkers, generateIntervals, randomDrain, uid), nil } } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/search.go000066400000000000000000000136461445200213000242430ustar00rootroot00000000000000package imap_benchmarks import ( "context" "flag" "fmt" "math/rand" "net" "strings" "time" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/utils" "github.com/bradenaw/juniper/xslices" "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" ) var ( searchCountFlag = flag.Uint("imap-search-count", 0, "Total number of messages to search during search benchmarks.") searchTextListFlag = flag.String("imap-search-text-list", "", "Use a list of new line separate search queries instead instead of the default list.") searchSinceListFlag = flag.String("imap-search-since-list", "", "Use a list of new line dates instead of random generated.") searchCmdQueryFlag = flag.String("imap-search-cmd", "", "Search command to execute e.g.: \"OR BEFORE <> SINCE <>\"") ) type SearchQuery interface { Name() string Setup(context.Context, *client.Client, uint32) error Run(context.Context, *client.Client, uint) error TearDown(context.Context, *client.Client) error } type Search struct { *stateTracker query SearchQuery } func NewSearch(query SearchQuery) benchmark.Benchmark { return NewIMAPBenchmarkRunner(&Search{stateTracker: newStateTracker(), query: query}) } func (s *Search) Name() string { return s.query.Name() } func (s *Search) Setup(ctx context.Context, addr net.Addr) error { return WithClient(addr, func(cl *client.Client) error { if _, err := s.createAndFillRandomMBox(cl); err != nil { return err } searchCount := uint32(*searchCountFlag) if searchCount == 0 { searchCount = uint32(*flags.IMAPMessageCount) } if err := s.query.Setup(ctx, cl, searchCount); err != nil { return err } return nil }) } func (s *Search) TearDown(ctx context.Context, addr net.Addr) error { return WithClient(addr, func(cl *client.Client) error { if err := s.query.TearDown(ctx, cl); err != nil { return err } return s.cleanup(cl) }) } func (s *Search) Run(ctx context.Context, addr net.Addr) error { RunParallelClientsWithMailbox(addr, s.MBoxes[0], true, func(cl *client.Client, index uint) { if err := s.query.Run(ctx, cl, index); err != nil { panic(err) } }) return nil } type SearchTextQuery struct { queries []string searchCount uint32 } func (s *SearchTextQuery) Name() string { return "imap-search-text" } func (s *SearchTextQuery) Setup(ctx context.Context, cl *client.Client, searchCount uint32) error { if len(*searchTextListFlag) != 0 { queries, err := utils.ReadLinesFromFile(*searchTextListFlag) if err != nil { return err } s.queries = queries } else { s.queries = strings.Split(utils.MessageEmbedded, " ") } s.searchCount = searchCount return nil } func (s *SearchTextQuery) TearDown(ctx context.Context, cl *client.Client) error { return nil } func (s *SearchTextQuery) Run(ctx context.Context, cl *client.Client, workerIndex uint) error { for i := uint32(0); i < s.searchCount; i++ { keywordIndex := rand.Intn(len(s.queries)) criteria := imap.NewSearchCriteria() fieldsStr := []string{"TEXT", s.queries[keywordIndex]} fields := xslices.Map(fieldsStr, func(v string) interface{} { return interface{}(v) }) if err := criteria.ParseWithCharset(fields, nil); err != nil { panic(err) } if _, err := cl.Search(criteria); err != nil { panic(err) } } return nil } type SearchSinceQuery struct { dates []string } func (*SearchSinceQuery) Name() string { return "imap-search-since" } func (s *SearchSinceQuery) Setup(ctx context.Context, cl *client.Client, searchCount uint32) error { if len(*searchSinceListFlag) != 0 { dates, err := utils.ReadLinesFromFile(*searchSinceListFlag) if err != nil { return err } // validate date formats for _, v := range dates { if _, err := time.Parse("_2-Jan-2006", v); err != nil { return fmt.Errorf("invalid date format in list file: %v", v) } } s.dates = dates } else { s.dates = make([]string, 0, searchCount) for i := uint32(0); i < searchCount; i++ { t := time.Date(1980+rand.Intn(40), time.Month(rand.Intn(12)), rand.Intn(28), 0, 0, 0, 0, time.UTC) s.dates = append(s.dates, t.Format("02-Jan-2006")) } } return nil } func (*SearchSinceQuery) TearDown(ctx context.Context, cl *client.Client) error { return nil } func (s *SearchSinceQuery) Run(ctx context.Context, cl *client.Client, workerIndex uint) error { for _, d := range s.dates { criteria := imap.NewSearchCriteria() fieldsStr := []string{"SINCE", d} fields := xslices.Map(fieldsStr, func(v string) interface{} { return interface{}(v) }) if err := criteria.ParseWithCharset(fields, nil); err != nil { panic(err) } if _, err := cl.Search(criteria); err != nil { panic(err) } } return nil } type SearchCmdQuery struct { criteria *imap.SearchCriteria searchCount uint32 } func (*SearchCmdQuery) Name() string { return "imap-search-cmd" } func (s *SearchCmdQuery) Setup(ctx context.Context, cl *client.Client, searchCount uint32) error { s.criteria = imap.NewSearchCriteria() if len(*searchCmdQueryFlag) == 0 { return fmt.Errorf("please provide a query with -imap-search-cmd") } queries := strings.Split(*searchCmdQueryFlag, " ") fields := xslices.Map(queries, func(v string) interface{} { return interface{}(v) }) if err := s.criteria.ParseWithCharset(fields, nil); err != nil { return err } s.searchCount = searchCount return nil } func (*SearchCmdQuery) TearDown(ctx context.Context, cl *client.Client) error { return nil } func (s *SearchCmdQuery) Run(ctx context.Context, cl *client.Client, workerIndex uint) error { for i := uint32(0); i < s.searchCount; i++ { if _, err := cl.Search(s.criteria); err != nil { return err } } return nil } func init() { benchmark.RegisterBenchmark(NewSearch(&SearchSinceQuery{})) benchmark.RegisterBenchmark(NewSearch(&SearchTextQuery{})) benchmark.RegisterBenchmark(NewSearch(&SearchCmdQuery{})) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/select.go000066400000000000000000000025551445200213000242520ustar00rootroot00000000000000package imap_benchmarks import ( "context" "flag" "net" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/emersion/go-imap/client" ) var ( selectReadOnlyFlag = flag.Bool("imap-select-readonly", false, "If set to true, perform a read only select (examine).") selectCallCountFlag = flag.Uint("imap-select-count", 1000, "Number of times to call select.") ) type Select struct { *stateTracker } func NewSelect() benchmark.Benchmark { return NewIMAPBenchmarkRunner(&Select{stateTracker: newStateTracker()}) } func (*Select) Name() string { return "imap-select" } func (s *Select) Setup(ctx context.Context, addr net.Addr) error { return WithClient(addr, func(cl *client.Client) error { if _, err := s.createAndFillRandomMBox(cl); err != nil { return err } return nil }) } func (s *Select) TearDown(ctx context.Context, addr net.Addr) error { return s.cleanupWithAddr(addr) } func (s *Select) Run(ctx context.Context, addr net.Addr) error { RunParallelClientsWithMailbox(addr, s.MBoxes[0], *fetchReadOnly, func(cl *client.Client, index uint) { for i := uint(0); i < *selectCallCountFlag; i++ { _, err := cl.Select(s.MBoxes[0], *selectReadOnlyFlag) if err != nil { panic(err) } if err := cl.Unselect(); err != nil { panic(err) } } }) return nil } func init() { benchmark.RegisterBenchmark(NewSelect()) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/select_fetch.go000066400000000000000000000032451445200213000254200ustar00rootroot00000000000000package imap_benchmarks import ( "context" "flag" "github.com/emersion/go-imap" "net" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/bradenaw/juniper/xslices" "github.com/emersion/go-imap/client" ) var ( selectFetchRepetitionsFlag = flag.Uint("imap-select-fetch-repeat", 50, "Number of times to repeat the request.") ) type SelectFetch struct { *stateTracker mboxInfo []MailboxInfo } func NewSelectFetch() benchmark.Benchmark { return NewIMAPBenchmarkRunner(&SelectFetch{stateTracker: newStateTracker()}) } func (*SelectFetch) Name() string { return "imap-select-fetch" } func (e *SelectFetch) Setup(ctx context.Context, addr net.Addr) error { return WithClient(addr, func(cl *client.Client) error { for i := uint(0); i < *selectFetchRepetitionsFlag; i++ { if _, err := e.createAndFillRandomMBox(cl); err != nil { return err } } e.mboxInfo = xslices.Map(e.MBoxes, func(m string) MailboxInfo { return MailboxInfo{Name: m, ReadOnly: false} }) return nil }) } func (e *SelectFetch) TearDown(ctx context.Context, addr net.Addr) error { return e.cleanupWithAddr(addr) } func (e *SelectFetch) Run(ctx context.Context, addr net.Addr) error { RunParallelClients(addr, func(cl *client.Client, u uint) { for i := uint(0); i < *selectFetchRepetitionsFlag; i++ { if _, err := cl.Select(e.mboxInfo[i].Name, e.mboxInfo[i].ReadOnly); err != nil { panic(err) } if err := FetchMessage(cl, NewSequenceSetAll(), imap.FetchUid, imap.FetchFlags); err != nil { panic(err) } if err := cl.Unselect(); err != nil { panic(err) } } }) return nil } func init() { benchmark.RegisterBenchmark(NewSelectFetch()) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/server/000077500000000000000000000000001445200213000237435ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/server/local.go000066400000000000000000000042341445200213000253670ustar00rootroot00000000000000package server import ( "context" "fmt" "net" "github.com/ProtonMail/gluon" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/utils" "github.com/ProtonMail/gluon/internal/hash" "github.com/ProtonMail/gluon/profiling" _ "github.com/mattn/go-sqlite3" "github.com/sirupsen/logrus" ) // LocalServer runs a gluon server in the same process as the benchmark process. type LocalServer struct { server *gluon.Server listener net.Listener } func (l *LocalServer) Address() net.Addr { return l.listener.Addr() } func (l *LocalServer) Close(ctx context.Context) error { if err := l.server.Close(ctx); err != nil { return err } return l.listener.Close() } type LocalServerBuilder struct{} func (*LocalServerBuilder) New(ctx context.Context, serverPath string, profiler profiling.CmdProfilerBuilder) (Server, error) { loggerIn := logrus.StandardLogger().WriterLevel(logrus.TraceLevel) loggerOut := logrus.StandardLogger().WriterLevel(logrus.TraceLevel) var opts []gluon.Option opts = append(opts, gluon.WithLogger(loggerIn, loggerOut)) opts = append(opts, gluon.WithCmdProfiler(profiler)) opts = append(opts, gluon.WithDataDir(serverPath)) opts = append(opts, gluon.WithDatabaseDir(serverPath)) server, err := gluon.New(opts...) if err != nil { return nil, err } if err := addUser(ctx, server); err != nil { return nil, err } listener, err := net.Listen("tcp", "localhost:1143") if err != nil { return nil, err } if err := server.Serve(ctx, listener); err != nil { return nil, err } go func() { for err := range server.GetErrorCh() { logrus.WithError(err).Error("Error while serving") } }() return &LocalServer{ server: server, listener: listener, }, nil } func addUser(ctx context.Context, server *gluon.Server) error { c, err := utils.NewConnector(*flags.Connector) if err != nil { return err } userID, err := server.AddUser( ctx, c.Connector(), hash.SHA256([]byte(*flags.UserPassword)), ) if err != nil { return err } if *flags.Verbose { fmt.Printf("Adding user ID=%v\n", userID) } if err := c.Sync(ctx); err != nil { return err } return nil } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/server/remote.go000066400000000000000000000015401445200213000255650ustar00rootroot00000000000000package server import ( "context" "net" "github.com/ProtonMail/gluon/profiling" ) // RemoteServer can't control the start or stopping of the server but can still be used to run the benchmarks // against an existing server. type RemoteServer struct { address net.Addr } func (*RemoteServer) Close(ctx context.Context) error { return nil } func (r *RemoteServer) Address() net.Addr { return r.address } type RemoteServerBuilder struct { address net.Addr } func NewRemoteServerBuilder(address string) (*RemoteServerBuilder, error) { addr, err := net.ResolveTCPAddr("tcp", address) if err != nil { return nil, err } return &RemoteServerBuilder{address: addr}, nil } func (r *RemoteServerBuilder) New(ctx context.Context, serverPath string, profiler profiling.CmdProfilerBuilder) (Server, error) { return &RemoteServer{address: r.address}, nil } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/server/server.go000066400000000000000000000010021445200213000255710ustar00rootroot00000000000000package server import ( "context" "net" "github.com/ProtonMail/gluon/profiling" ) type Server interface { // Close should close all server connections or shut down the server. Close(ctx context.Context) error // Address should return the server address. Address() net.Addr } type ServerBuilder interface { // New Create new Server instance at a given path and use the command profiler, if possible. New(ctx context.Context, serverPath string, profiler profiling.CmdProfilerBuilder) (Server, error) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/state_tracker.go000066400000000000000000000020111445200213000256110ustar00rootroot00000000000000package imap_benchmarks import ( "net" "github.com/emersion/go-imap/client" "github.com/google/uuid" ) type stateTracker struct { MBoxes []string } func newStateTracker() *stateTracker { return &stateTracker{} } func (s *stateTracker) createRandomMBox(cl *client.Client) (string, error) { mbox := "Folders/" + uuid.NewString() if err := cl.Create(mbox); err != nil { return "", err } s.MBoxes = append(s.MBoxes, mbox) return mbox, nil } func (s *stateTracker) createAndFillRandomMBox(cl *client.Client) (string, error) { mbox, err := s.createRandomMBox(cl) if err != nil { return "", err } if err := FillMailbox(cl, mbox); err != nil { return "", err } return mbox, nil } func (s *stateTracker) cleanup(cl *client.Client) error { for _, v := range s.MBoxes { if err := cl.Delete(v); err != nil { return err } } s.MBoxes = nil return nil } func (s *stateTracker) cleanupWithAddr(addr net.Addr) error { return WithClient(addr, func(c *client.Client) error { return s.cleanup(c) }) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/status.go000066400000000000000000000025101445200213000243050ustar00rootroot00000000000000package imap_benchmarks import ( "context" "flag" "net" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" ) var statusCallCountFlag = flag.Uint("imap-status-count", 1000, "Number of times to call status.") type Status struct { *stateTracker } func NewStatus() benchmark.Benchmark { return NewIMAPBenchmarkRunner(&Status{stateTracker: newStateTracker()}) } func (*Status) Name() string { return "imap-status" } func (s *Status) Setup(ctx context.Context, addr net.Addr) error { return WithClient(addr, func(cl *client.Client) error { if _, err := s.createAndFillRandomMBox(cl); err != nil { return err } return nil }) } func (s *Status) TearDown(ctx context.Context, addr net.Addr) error { return s.cleanupWithAddr(addr) } func (s *Status) Run(ctx context.Context, addr net.Addr) error { RunParallelClientsWithMailbox(addr, s.MBoxes[0], *fetchReadOnly, func(cl *client.Client, index uint) { for i := uint(0); i < *statusCallCountFlag; i++ { _, err := cl.Status(s.MBoxes[0], []imap.StatusItem{imap.StatusRecent, imap.StatusMessages, imap.StatusRecent, imap.StatusUnseen, imap.StatusUidNext, imap.StatusUidValidity}) if err != nil { panic(err) } } }) return nil } func init() { benchmark.RegisterBenchmark(NewStatus()) } gluon-0.17.0/benchmarks/gluon_bench/imap_benchmarks/store.go000066400000000000000000000051261445200213000241240ustar00rootroot00000000000000package imap_benchmarks import ( "context" "flag" "net" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" ) var ( storeCountFlag = flag.Uint("imap-store-count", 0, "Total number of messages to store during store benchmarks.") storeListFlag = flag.String("imap-store-list", "", "Use a list of predefined sequences to store rather than random generated.") storeSilentFlag = flag.Bool("imap-store-silent", false, "When set to true, request silent updates that do not produce any responses") storeAllFlag = flag.Bool("imap-store-all", false, "If set, perform one store for all messages.") ) type StoreBench struct { *stateTracker seqSets *ParallelSeqSet } func NewStore() benchmark.Benchmark { return NewIMAPBenchmarkRunner(&StoreBench{stateTracker: newStateTracker()}) } func (*StoreBench) Name() string { return "imap-store" } func (s *StoreBench) Setup(ctx context.Context, addr net.Addr) error { return WithClient(addr, func(cl *client.Client) error { if _, err := s.createAndFillRandomMBox(cl); err != nil { return err } storeCount := uint32(*storeCountFlag) if storeCount == 0 { storeCount = uint32(*flags.IMAPMessageCount) } seqSets, err := NewParallelSeqSet(storeCount, *flags.IMAPParallelClients, *storeListFlag, *storeAllFlag, *flags.IMAPRandomSeqSetIntervals, false, *flags.IMAPUIDMode) if err != nil { return err } s.seqSets = seqSets return nil }) } func (s *StoreBench) TearDown(ctx context.Context, addr net.Addr) error { return s.cleanupWithAddr(addr) } func (s *StoreBench) Run(ctx context.Context, addr net.Addr) error { items := []string{"FLAGS", "-FLAGS", "+FLAGS"} flagList := []string{imap.DeletedFlag, imap.SeenFlag, imap.AnsweredFlag, imap.FlaggedFlag} RunParallelClientsWithMailbox(addr, s.MBoxes[0], false, func(cl *client.Client, index uint) { var storeFn func(*client.Client, *imap.SeqSet, int) error if *flags.IMAPUIDMode { storeFn = func(cl *client.Client, set *imap.SeqSet, index int) error { return UIDStore(cl, set, items[index%len(items)], *storeSilentFlag, flagList[index%len(flagList)]) } } else { storeFn = func(cl *client.Client, set *imap.SeqSet, index int) error { return Store(cl, set, items[index%len(items)], *storeSilentFlag, flagList[index%len(flagList)]) } } for s, v := range s.seqSets.Get(index) { if err := storeFn(cl, v, s); err != nil { panic(err) } } }) return nil } func init() { benchmark.RegisterBenchmark(NewStore()) } gluon-0.17.0/benchmarks/gluon_bench/main.go000066400000000000000000000006331445200213000205670ustar00rootroot00000000000000package main import ( "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" _ "github.com/ProtonMail/gluon/benchmarks/gluon_bench/gluon_benchmarks" _ "github.com/ProtonMail/gluon/benchmarks/gluon_bench/imap_benchmarks" _ "github.com/ProtonMail/gluon/benchmarks/gluon_bench/store_benchmarks" "github.com/sirupsen/logrus" ) func main() { logrus.SetLevel(logrus.ErrorLevel) benchmark.RunMain() } gluon-0.17.0/benchmarks/gluon_bench/reporter/000077500000000000000000000000001445200213000211545ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/reporter/json_reporter.go000066400000000000000000000007421445200213000244010ustar00rootroot00000000000000package reporter import ( "encoding/json" "os" ) // JSONReporter produces a JSON data file with all the benchmark information. type JSONReporter struct { outputPath string } func (j *JSONReporter) ProduceReport(reports []*BenchmarkReport) error { result, err := json.Marshal(reports) if err != nil { return err } return os.WriteFile(j.outputPath, []byte(result), 0o600) } func NewJSONReporter(output string) *JSONReporter { return &JSONReporter{outputPath: output} } gluon-0.17.0/benchmarks/gluon_bench/reporter/reporter.go000066400000000000000000000074361445200213000233570ustar00rootroot00000000000000package reporter import ( "fmt" "math" "sort" "strings" "time" "github.com/bradenaw/juniper/xslices" ) type BenchmarkStatistics struct { Total time.Duration Average time.Duration Fastest time.Duration Slowest time.Duration Median time.Duration Percentile90 time.Duration Percentile10 time.Duration RMS time.Duration SampleCount int Extra BenchmarkExtra } func (b *BenchmarkStatistics) String() string { builder := strings.Builder{} builder.WriteString(fmt.Sprintf("SampleCount:%04d Total:%v Fastest:%v Slowest:%v Average:%v Median:%v 90thPercentile:%v 10thPercentile:%v RMS:%v", b.SampleCount, b.Total, b.Fastest, b.Slowest, b.Average, b.Median, b.Percentile90, b.Percentile10, b.RMS, )) if b.Extra != nil { builder.WriteString(" Extra:\n") builder.WriteString(b.Extra.String()) } return builder.String() } func NewBenchmarkStatistics(extra BenchmarkExtra, durations ...time.Duration) *BenchmarkStatistics { sortedDurations := durations sort.Slice(sortedDurations, func(i1, i2 int) bool { return sortedDurations[i1] < sortedDurations[i2] }) statistics := &BenchmarkStatistics{ Extra: extra, } statistics.SampleCount = len(sortedDurations) if statistics.SampleCount == 1 { statistics.Fastest = sortedDurations[0] statistics.Slowest = sortedDurations[0] statistics.Average = sortedDurations[0] statistics.Total = sortedDurations[0] statistics.Median = sortedDurations[0] statistics.Percentile90 = sortedDurations[0] statistics.Percentile10 = sortedDurations[0] statistics.RMS = sortedDurations[0] } else if statistics.SampleCount > 1 { statistics.Fastest = sortedDurations[0] statistics.Slowest = sortedDurations[statistics.SampleCount-1] statistics.Total = xslices.Reduce(sortedDurations, 0, func(v1 time.Duration, v2 time.Duration) time.Duration { return v1 + v2 }) statistics.Average = statistics.Total / time.Duration(statistics.SampleCount) if statistics.Total%2 == 0 { halfPoint := statistics.SampleCount / 2 statistics.Median = (sortedDurations[halfPoint-1] + sortedDurations[halfPoint]) / 2 } else { statistics.Median = sortedDurations[((statistics.SampleCount+1)/2)-1] } statistics.Percentile90 = sortedDurations[int(math.Floor(float64(statistics.SampleCount)*(90.0/100.0)))] statistics.Percentile10 = sortedDurations[int(math.Floor(float64(statistics.SampleCount)*(10.0/100.0)))] var sumSquaredWithDiv float64 for i := 0; i < statistics.SampleCount; i++ { // Dividing now rather than later or else we will trigger overflow. f64Duration := float64(sortedDurations[i]) sumSquaredWithDiv += (f64Duration * f64Duration) / float64(statistics.SampleCount) } statistics.RMS = time.Duration(math.Round(math.Sqrt(sumSquaredWithDiv))) } return statistics } type BenchmarkExtra interface { String() string } type BenchmarkRun struct { Durations []time.Duration Extra BenchmarkExtra } func NewBenchmarkRunSingle(duration time.Duration, extra BenchmarkExtra) *BenchmarkRun { return &BenchmarkRun{Durations: []time.Duration{duration}, Extra: extra} } func NewBenchmarkRun(durations []time.Duration, extra BenchmarkExtra) *BenchmarkRun { return &BenchmarkRun{Durations: durations, Extra: extra} } type BenchmarkReport struct { Name string Runs []*BenchmarkStatistics Statistics *BenchmarkStatistics } func NewBenchmarkReport(name string, runs ...*BenchmarkStatistics) *BenchmarkReport { durations := xslices.Map(runs, func(r *BenchmarkStatistics) time.Duration { return r.Total }) return &BenchmarkReport{Name: name, Runs: runs, Statistics: NewBenchmarkStatistics(nil, durations...)} } // BenchmarkReporter is the interface that is required to be implemented by any report generation tool. type BenchmarkReporter interface { ProduceReport(reports []*BenchmarkReport) error } gluon-0.17.0/benchmarks/gluon_bench/reporter/stdout_reporter.go000066400000000000000000000006721445200213000247540ustar00rootroot00000000000000package reporter import ( "fmt" ) // StdOutReporter prints the benchmark report to os.Stdout. type StdOutReporter struct{} func (*StdOutReporter) ProduceReport(reports []*BenchmarkReport) error { for i, v := range reports { fmt.Printf("[%02d] Benchmark %v\n", i, v.Name) fmt.Printf("[%02d] %v\n", i, v.Statistics.String()) for r, v := range v.Runs { fmt.Printf("[%02d] Run %02d - %v\n", i, r, v.String()) } } return nil } gluon-0.17.0/benchmarks/gluon_bench/store_benchmarks/000077500000000000000000000000001445200213000226435ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/store_benchmarks/create.go000066400000000000000000000022321445200213000244340ustar00rootroot00000000000000package store_benchmarks import ( "bytes" "context" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/timing" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/store" ) type Create struct{} func (*Create) Name() string { return "store-create" } func (*Create) Setup(ctx context.Context, store store.Store) error { return nil } func (*Create) TearDown(ctx context.Context, store store.Store) error { return nil } func (*Create) Run(ctx context.Context, st store.Store) (*reporter.BenchmarkRun, error) { return RunStoreWorkers(ctx, st, func(ctx context.Context, s store.Store, dc *timing.Collector, u uint) error { data := make([]byte, *flags.StoreItemSize) for i := uint(0); i < *flags.StoreItemCount; i++ { dc.Start() err := s.Set(imap.NewInternalMessageID(), bytes.NewReader(data)) dc.Stop() if err != nil { return err } } return nil }), nil } func init() { benchmark.RegisterBenchmark(NewStoreBenchmarkRunner(&Create{})) } gluon-0.17.0/benchmarks/gluon_bench/store_benchmarks/delete.go000066400000000000000000000023411445200213000244340ustar00rootroot00000000000000package store_benchmarks import ( "context" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/timing" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/store" ) type Delete struct { uuids []imap.InternalMessageID } func (*Delete) Name() string { return "store-delete" } func (d *Delete) Setup(ctx context.Context, s store.Store) error { uuids, err := CreateRandomState(s, *flags.StoreItemCount) if err != nil { return err } d.uuids = uuids return nil } func (*Delete) TearDown(ctx context.Context, store store.Store) error { return nil } func (d *Delete) Run(ctx context.Context, st store.Store) (*reporter.BenchmarkRun, error) { return RunStoreWorkersSplitRange(ctx, st, uint(len(d.uuids)), func(ctx context.Context, s store.Store, dc *timing.Collector, start, end uint) error { for i := start; i < end; i++ { dc.Start() err := s.Delete(d.uuids[i]) dc.Stop() if err != nil { panic(err) } } return nil }), nil } func init() { benchmark.RegisterBenchmark(NewStoreBenchmarkRunner(&Delete{})) } gluon-0.17.0/benchmarks/gluon_bench/store_benchmarks/get.go000066400000000000000000000023611445200213000237530ustar00rootroot00000000000000package store_benchmarks import ( "context" "math/rand" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/timing" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/store" ) type Get struct { uuids []imap.InternalMessageID } func (*Get) Name() string { return "store-get" } func (g *Get) Setup(ctx context.Context, s store.Store) error { uuids, err := CreateRandomState(s, *flags.StoreItemCount) if err != nil { return err } g.uuids = uuids return nil } func (*Get) TearDown(ctx context.Context, store store.Store) error { return nil } func (g *Get) Run(ctx context.Context, st store.Store) (*reporter.BenchmarkRun, error) { uuidLen := len(g.uuids) return RunStoreWorkers(ctx, st, func(ctx context.Context, s store.Store, dc *timing.Collector, u uint) error { for i := 0; i < uuidLen; i++ { index := rand.Intn(uuidLen) dc.Start() _, err := s.Get(g.uuids[index]) dc.Stop() if err != nil { panic(err) } } return nil }), nil } func init() { benchmark.RegisterBenchmark(NewStoreBenchmarkRunner(&Get{})) } gluon-0.17.0/benchmarks/gluon_bench/store_benchmarks/store.go000066400000000000000000000007041445200213000243270ustar00rootroot00000000000000package store_benchmarks import ( "path/filepath" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/store" "github.com/google/uuid" ) type OnDiskStoreBuilder struct{} func (*OnDiskStoreBuilder) New(path string) (store.Store, error) { return store.NewOnDiskStore(filepath.Join(path, uuid.NewString()), []byte(*flags.UserPassword)) } func init() { RegisterStoreBuilder("default", &OnDiskStoreBuilder{}) } gluon-0.17.0/benchmarks/gluon_bench/store_benchmarks/store_benchmark.go000066400000000000000000000033611445200213000263430ustar00rootroot00000000000000package store_benchmarks import ( "context" "os" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/benchmark" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter" "github.com/ProtonMail/gluon/store" ) type StoreBenchmark interface { // Name returns benchmark's name. Name() string // Setup should prepare the benchmark. Setup(ctx context.Context, store store.Store) error // TearDown should clean the benchmark. TearDown(ctx context.Context, store store.Store) error // Run the benchmark. Run(ctx context.Context, store store.Store) (*reporter.BenchmarkRun, error) } type StoreBenchmarkRunner struct { benchmark StoreBenchmark benchmarkDir string store store.Store } func (s *StoreBenchmarkRunner) Name() string { return s.benchmark.Name() } func (s *StoreBenchmarkRunner) Setup(ctx context.Context, benchmarkDir string) error { store, err := NewStore(*flags.Store, benchmarkDir) if err != nil { return err } s.store = store s.benchmarkDir = benchmarkDir if err := s.benchmark.Setup(ctx, s.store); err != nil { return err } return nil } func (s *StoreBenchmarkRunner) Run(ctx context.Context) (*reporter.BenchmarkRun, error) { benchRuns, err := s.benchmark.Run(ctx, s.store) if err != nil { return nil, err } return benchRuns, nil } func (s *StoreBenchmarkRunner) TearDown(ctx context.Context) error { if err := s.benchmark.TearDown(ctx, s.store); err != nil { return err } if err := s.store.Close(); err != nil { return err } if err := os.RemoveAll(s.benchmarkDir); err != nil { return err } return nil } func NewStoreBenchmarkRunner(bench StoreBenchmark) benchmark.Benchmark { return &StoreBenchmarkRunner{benchmark: bench} } gluon-0.17.0/benchmarks/gluon_bench/store_benchmarks/store_factory.go000066400000000000000000000020221445200213000260510ustar00rootroot00000000000000package store_benchmarks import ( "fmt" "github.com/ProtonMail/gluon/store" ) type StoreBuilder interface { New(path string) (store.Store, error) } type storeFactory struct { builders map[string]StoreBuilder } func newStoreFactory() *storeFactory { return &storeFactory{builders: make(map[string]StoreBuilder)} } func (sf *storeFactory) Register(name string, builder StoreBuilder) error { if _, ok := sf.builders[name]; ok { return fmt.Errorf("builder already exists") } sf.builders[name] = builder return nil } func (sf *storeFactory) New(name, path string) (store.Store, error) { builder, ok := sf.builders[name] if !ok { return nil, fmt.Errorf("no such builder exists") } return builder.New(path) } var storeFactoryInstance = newStoreFactory() func RegisterStoreBuilder(name string, storeBuilder StoreBuilder) { if err := storeFactoryInstance.Register(name, storeBuilder); err != nil { panic(err) } } func NewStore(name, path string) (store.Store, error) { return storeFactoryInstance.New(name, path) } gluon-0.17.0/benchmarks/gluon_bench/store_benchmarks/utils.go000066400000000000000000000037031445200213000243350ustar00rootroot00000000000000package store_benchmarks import ( "bytes" "context" "sync" "time" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/reporter" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/timing" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/store" ) func CreateRandomState(st store.Store, count uint) ([]imap.InternalMessageID, error) { uuids := make([]imap.InternalMessageID, 0, count) data := make([]byte, *flags.StoreItemSize) for i := uint(0); i < count; i++ { uuid := imap.NewInternalMessageID() if err := st.Set(uuid, bytes.NewReader(data)); err != nil { return nil, err } uuids = append(uuids, uuid) } return uuids, nil } func RunStoreWorkers(ctx context.Context, st store.Store, fn func(context.Context, store.Store, *timing.Collector, uint) error) *reporter.BenchmarkRun { wg := sync.WaitGroup{} durations := make([]time.Duration, 0, *flags.StoreWorkers**flags.StoreItemCount) collectors := make([]*timing.Collector, *flags.StoreWorkers) for i := uint(0); i < *flags.StoreWorkers; i++ { wg.Add(1) go func(index uint) { defer wg.Done() collector := timing.NewDurationCollector(int(*flags.StoreItemCount)) if err := fn(ctx, st, collector, index); err != nil { panic(err) } collectors[index] = collector }(i) } wg.Wait() for _, v := range collectors { durations = append(durations, v.Durations()...) } return reporter.NewBenchmarkRun(durations, nil) } func RunStoreWorkersSplitRange(ctx context.Context, st store.Store, length uint, fn func(context.Context, store.Store, *timing.Collector, uint, uint) error) *reporter.BenchmarkRun { workDivision := length / *flags.StoreWorkers return RunStoreWorkers(ctx, st, func(ctx context.Context, s store.Store, collector *timing.Collector, u uint) error { end := workDivision * (u + 1) if end > length { end = length } return fn(ctx, st, collector, u*workDivision, end) }) } gluon-0.17.0/benchmarks/gluon_bench/timing/000077500000000000000000000000001445200213000206015ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/timing/timing.go000066400000000000000000000013561445200213000224240ustar00rootroot00000000000000package timing import "time" // Timer tracks the duration between invocations to Start and Stop. type Timer struct { start time.Time end time.Time } func (s *Timer) Start() { s.start = time.Now() } func (s *Timer) Stop() { s.end = time.Now() } func (s *Timer) Elapsed() time.Duration { return s.end.Sub(s.start) } type Collector struct { durations []time.Duration timer Timer } func NewDurationCollector(capacity int) *Collector { return &Collector{ durations: make([]time.Duration, 0, capacity), } } func (d *Collector) Start() { d.timer.Start() } func (d *Collector) Stop() { d.timer.Stop() d.durations = append(d.durations, d.timer.Elapsed()) } func (d *Collector) Durations() []time.Duration { return d.durations } gluon-0.17.0/benchmarks/gluon_bench/tools/000077500000000000000000000000001445200213000204525ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/tools/compare_bench_output.go000066400000000000000000000050411445200213000252060ustar00rootroot00000000000000package main import ( "encoding/json" "fmt" "os" "time" ) // we redefine the json statistic types here since we don't care about the extra information type JSONBenchmarkStatistics struct { Total time.Duration Average time.Duration Fastest time.Duration Slowest time.Duration Median time.Duration Percentile90 time.Duration Percentile10 time.Duration RMS time.Duration SampleCount int } type JSONBenchmarkReport struct { Name string Runs []*JSONBenchmarkStatistics Statistics *JSONBenchmarkStatistics } func loadReportFromFile(path string) ([]*JSONBenchmarkReport, error) { contents, err := os.ReadFile(path) if err != nil { return nil, err } var reports []*JSONBenchmarkReport if err := json.Unmarshal(contents, &reports); err != nil { return nil, err } return reports, nil } type BenchmarkRun struct { fileIndex int statistics *JSONBenchmarkStatistics } func main() { if len(os.Args) < 3 { fmt.Fprintf(os.Stderr, "Usage %v json_report0 json_report1... json_report N\n", os.Args[0]) return } // load reports reportFiles := os.Args[1:] reports := make([][]*JSONBenchmarkReport, 0, len(reportFiles)) for _, v := range reportFiles { report, err := loadReportFromFile(v) if err != nil { panic(fmt.Errorf("failed to load report: %w", err)) } reports = append(reports, report) } benchMap := map[string][]BenchmarkRun{} for idx, report := range reports { for _, run := range report { b := BenchmarkRun{fileIndex: idx, statistics: run.Statistics} v, ok := benchMap[run.Name] if ok { v = append(v, b) } else { v = []BenchmarkRun{b} } benchMap[run.Name] = v } } for k, v := range benchMap { if len(v) == 1 { fmt.Printf("Benchmark %v: Only has one run\n", k) continue } // check if all benchmarks have the same benchmark runs { expectedRuns := v[0].statistics.SampleCount for i := 1; i < len(v); i++ { if v[i].statistics.SampleCount != expectedRuns { fmt.Fprintf(os.Stderr, "Benchmark %v: File '%v' does not have the expected sample count (%v)\n", k, reportFiles[v[i].fileIndex], expectedRuns) continue } } } // Check which run has the best 90th percentile { fastest := v[0].statistics.Percentile90 fastestIndex := 0 for i := 1; i < len(v); i++ { if v[i].statistics.Percentile90 < fastest { fastestIndex = i fastest = v[i].statistics.Percentile90 } } fmt.Printf("Benchmark %v: Fastest (90th Percentile=%v) %v\n", k, fastest, reportFiles[fastestIndex]) } } } gluon-0.17.0/benchmarks/gluon_bench/utils/000077500000000000000000000000001445200213000204525ustar00rootroot00000000000000gluon-0.17.0/benchmarks/gluon_bench/utils/cmd_profiler.go000066400000000000000000000036021445200213000234470ustar00rootroot00000000000000package utils import ( "sync" "time" "github.com/ProtonMail/gluon/profiling" ) // DurationCmdProfiler records the duration of the duration between invocations of IMAP Commands. type DurationCmdProfiler struct { durations [profiling.CmdTypeTotal][]time.Duration start [profiling.CmdTypeTotal]time.Time } func (c *DurationCmdProfiler) Start(cmdType int) { // We can use time since Go 1.9 they have switch to monotonic clocks. c.start[cmdType] = time.Now() } func (c *DurationCmdProfiler) Stop(cmdType int) { elapsed := time.Since(c.start[cmdType]) c.durations[cmdType] = append(c.durations[cmdType], elapsed) } func NewDurationCmdProfiler() *DurationCmdProfiler { profiler := &DurationCmdProfiler{} for i := 0; i < len(profiler.durations); i++ { profiler.durations[i] = make([]time.Duration, 0, 128) } return profiler } type DurationCmdProfilerBuilder struct { mutex sync.Mutex profilers []*DurationCmdProfiler } func (c *DurationCmdProfilerBuilder) New() profiling.CmdProfiler { return NewDurationCmdProfiler() } func (c *DurationCmdProfilerBuilder) Collect(profiler profiling.CmdProfiler) { switch v := profiler.(type) { case *DurationCmdProfiler: c.mutex.Lock() defer c.mutex.Unlock() c.profilers = append(c.profilers, v) } } // Merge merges all collected command profilers into a single timing Calculator for each IMAP command. func (c *DurationCmdProfilerBuilder) Merge() [profiling.CmdTypeTotal][]time.Duration { c.mutex.Lock() defer c.mutex.Unlock() var result [profiling.CmdTypeTotal][]time.Duration for _, v := range c.profilers { for i := 0; i < len(result); i++ { result[i] = append(result[i], v.durations[i]...) } } return result } func (c *DurationCmdProfilerBuilder) Clear() { c.mutex.Lock() defer c.mutex.Unlock() c.profilers = nil } func NewDurationCmdProfilerBuilder() *DurationCmdProfilerBuilder { return &DurationCmdProfilerBuilder{} } gluon-0.17.0/benchmarks/gluon_bench/utils/connector_factory.go000066400000000000000000000040611445200213000245230ustar00rootroot00000000000000package utils import ( "context" "fmt" "time" "github.com/ProtonMail/gluon/benchmarks/gluon_bench/flags" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/imap" ) type ConnectorImpl interface { Connector() connector.Connector Sync(ctx context.Context) error } type ConnectorBuilder interface { New() (ConnectorImpl, error) } type connectorFactory struct { connectors map[string]ConnectorBuilder } func newConnectorFactory() *connectorFactory { return &connectorFactory{ connectors: make(map[string]ConnectorBuilder), } } func (c *connectorFactory) register(name string, builder ConnectorBuilder) error { if _, ok := c.connectors[name]; ok { return fmt.Errorf("connector '%v' already exists", name) } c.connectors[name] = builder return nil } func (c *connectorFactory) new(name string) (ConnectorImpl, error) { builder, ok := c.connectors[name] if !ok { return nil, fmt.Errorf("no such connector available: '%v'", name) } return builder.New() } var connectorFactoryInstance = newConnectorFactory() func RegisterConnector(name string, builder ConnectorBuilder) error { return connectorFactoryInstance.register(name, builder) } func NewConnector(name string) (ConnectorImpl, error) { return connectorFactoryInstance.new(name) } type DummyConnectorBuilder struct{} type DummyConnectorImpl struct { dummy *connector.Dummy } func (d *DummyConnectorImpl) Connector() connector.Connector { return d.dummy } func (d *DummyConnectorImpl) Sync(ctx context.Context) error { d.dummy.ClearUpdates() return d.dummy.Sync(ctx) } func (*DummyConnectorBuilder) New() (ConnectorImpl, error) { addresses := []string{*flags.UserName} connector := connector.NewDummy( addresses, []byte(*flags.UserPassword), time.Second, imap.NewFlagSet(`\Answered`, `\Seen`, `\Flagged`, `\Deleted`), imap.NewFlagSet(`\Answered`, `\Seen`, `\Flagged`, `\Deleted`), imap.NewFlagSet(), ) return &DummyConnectorImpl{dummy: connector}, nil } func init() { if err := RegisterConnector("dummy", &DummyConnectorBuilder{}); err != nil { panic(err) } } gluon-0.17.0/benchmarks/gluon_bench/utils/messages.go000066400000000000000000000061511445200213000226130ustar00rootroot00000000000000package utils // Hardcoded messages used to generate mailboxes const MessageMultiPartMixed = `Return-Path: Received: from [10.1.1.121] ([185.159.157.131]) by smtp.gmail.com with ESMTPSA id t8sm14889112wrr.10.2021.03.26.12.01.23 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 26 Mar 2021 12:01:24 -0700 (PDT) To: somebody@gmail.com From: BQA Subject: Simple test mail Message-ID: Date: Fri, 26 Mar 2021 20:01:23 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------4AC5F36D876D5EED478B5FF9" Content-Language: en-US This is a multi-part message in MIME format. --------------4AC5F36D876D5EED478B5FF9 Content-Type: multipart/alternative; boundary="------------62DCF50B21CF279F489F0184" --------------62DCF50B21CF279F489F0184 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit *this */is**/_html_ ** --------------62DCF50B21CF279F489F0184 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit this is html
--------------62DCF50B21CF279F489F0184-- --------------4AC5F36D876D5EED478B5FF9 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="thing.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="thing.txt" dGhpcyBpcyBteSBhdHRhY2htZW50Cg== --------------4AC5F36D876D5EED478B5FF9-- ` const MessageAfterNoonMeeting = `Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting Date: Fri, 26 Mar 2021 20:01:23 +0100 To: mooch@owatagu.siam.edu Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Hello Joe, do you think we can meet at 3:30 tomorrow? ` const MessageEmbedded = `From: Nathaniel Borenstein To: Ned Freed Subject: Sample message MIME-Version: 1.0 Date: Fri, 26 Mar 2021 20:01:23 +0100 Content-type: multipart/mixed; boundary="simple boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --simple boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --simple boundary Content-Disposition: attachment; filename=test.eml Content-Type: message/rfc822; name=test.eml X-Pm-Content-Encryption: on-import To: someone Subject: Fwd: embedded Content-type: multipart/mixed; boundary="embedded-boundary" --embedded-boundary Content-type: text/plain; charset=us-ascii This part is embedded -- From me --embedded-boundary Content-type: text/plain; charset=us-ascii This part is also embedded --embedded-boundary-- --simple boundary-- This is the epilogue. It is also to be ignored.` gluon-0.17.0/benchmarks/gluon_bench/utils/utils.go000066400000000000000000000021361445200213000221430ustar00rootroot00000000000000package utils import ( "bufio" "io/fs" "os" "path/filepath" "strings" ) func ReadLinesFromFile(path string) ([]string, error) { readFile, err := os.Open(path) if err != nil { return nil, err } defer readFile.Close() fileScanner := bufio.NewScanner(readFile) fileScanner.Split(bufio.ScanLines) lines := make([]string, 0, 16) for fileScanner.Scan() { lines = append(lines, fileScanner.Text()) } return lines, nil } func LoadFilesFromDirectory(path string, filter func(string, fs.FileInfo) bool) ([]string, error) { var files []string if err := filepath.Walk(path, func(path string, info fs.FileInfo, err error) error { if err != nil { return err } if !filter(path, info) { return nil } bytes, err := os.ReadFile(path) if err != nil { return err } files = append(files, string(bytes)) return nil }); err != nil { return nil, err } return files, nil } func LoadEMLFilesFromDirectory(path string) ([]string, error) { return LoadFilesFromDirectory(path, func(s string, info fs.FileInfo) bool { return !info.IsDir() && strings.HasSuffix(s, ".eml") }) } gluon-0.17.0/benchmarks/imaptest/000077500000000000000000000000001445200213000166555ustar00rootroot00000000000000gluon-0.17.0/benchmarks/imaptest/README.md000066400000000000000000000033431445200213000201370ustar00rootroot00000000000000# ImapTest - Profiling & Compliance This "benchmark" uses [Dovecot's ImapTest tool](https://imapwiki.org/ImapTest) to profile the performance of Gluon. The information present here can also be used to verify the compliance of Gluon with the IMAP protocol. Build gluon demo in project root folder: ```bash go build -o gluon-demo ./demo/demo.go ``` ## Installation of ImapTest Follow the instructions outlined in [the tools' installation page](https://imapwiki.org/ImapTest/Installation) to build the binary. The test mailbox is already present in this folder. ## Simple ImapTest run Assuming gluon demo is running, the bare minimum required for running ImapTest is a username and a password: ```bash imaptest host=127.0.0.1 port=1143 user=user1@example.com pass=password1 ``` ## Advance testing The multiple scenario coverage can be run by ``` go test ``` The test cases are defined in `benchmark.yml`. Each case defines a number of clients and users to be used by ImapTest. One case can have multiple settings defined by name. The options are specified in `settings` section. The settings reflects ImapTest options as described in [here](https://imapwiki.org/ImapTest/Running). The ImapTest states are described in [here](https://imapwiki.org/ImapTest/States). We don't use for now the ImapTest scriptable scenarios but it is possible by defining the new test settings in file `./benchmark.yml` and creating separate definition file like example [here](https://github.com/dovecot/imaptest/tree/main/src/tests) ## Note about this tool The execution of this tool is non-deterministic, this means it can't be used to compare profile runs of two different versions. It should be only be used to profile and/or stress the codebase in an isolation. gluon-0.17.0/benchmarks/imaptest/benchmark.yml000066400000000000000000000016211445200213000213320ustar00rootroot00000000000000 --- cases: - users: 1 clients: 1 settings: - simple - full - users: 1 clients: 10 settings: - simple - users: 1 clients: 100 settings: - simple - users: 10 clients: 10 settings: - simple - users: 10 clients: 100 settings: - simple - users: 100 clients: 100 settings: - simple settings: simple: mbox: dovecot-crlf secs: 10 no_pipelining: true simple-with-checks: mbox: dovecot-crlf secs: 10 checkpoint: 3 no_pipelining: true own_msgs: true own_flags: true full: mbox: dovecot-crlf no_pipelining: false secs: 60 mcreate: 50 mdelete: 50 uidf: 50 search: 30 noop: 15 fetch: 50 login: 100 logout: 100 list: 50 select: 100 fet2: 100,30 copy: 30,5 store: 50 delete: 100 expunge: 100 append: 100,5 gluon-0.17.0/benchmarks/imaptest/dovecot-crlf000066400000000000000000507640771445200213000212210ustar00rootroot00000000000000From cras@irccrew.org Tue Jul 23 19:39:23 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 23 Jul 2002 19:39:23 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 434B423848 for ; Tue, 23 Jul 2002 19:39:23 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 175FA4C0A0; Tue, 23 Jul 2002 19:39:23 +0300 (EEST) Date: Tue, 23 Jul 2002 19:39:23 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] first test mail Message-ID: <20020723193923.J22431@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 1 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-IMAPbase: 1096038620 0000010517 X-UID: 1 Status: O lets see if it works From cras@irccrew.org Mon Jul 29 02:17:12 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 29 Jul 2002 02:17:12 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 8D21723848 for ; Mon, 29 Jul 2002 02:17:12 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 8BAD24C0A0; Mon, 29 Jul 2002 02:17:11 +0300 (EEST) Date: Mon, 29 Jul 2002 02:17:11 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Dovecot 0.93 released Message-ID: <20020729021711.W22431@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 2 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 2 Status: O First alpha quality release, everything critical is now implemented. From now on it's mostly stabilization and optimization. Features that can't break existing code could still be added, especially SSL and authentication stuff. From cras@irccrew.org Wed Jul 31 22:48:41 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 31 Jul 2002 22:48:41 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id F141123829 for ; Wed, 31 Jul 2002 22:48:40 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 42ED44C0A0; Wed, 31 Jul 2002 22:48:40 +0300 (EEST) Date: Wed, 31 Jul 2002 22:48:39 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] v0.95 released Message-ID: <20020731224839.H22431@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 3 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 3 Status: O v0.95 2002-07-31 Timo Sirainen + Initial SSL support using GNU TLS, tested with v0.5.1. TLS support is still missing. + Digest-MD5 authentication method + passwd-file authentication backend + Code cleanups - Found several bugs from mempool and ioloop code, now we should be stable? :) - A few corrections for long header field handling From return@trafficmagnet.com Mon Aug 5 19:26:52 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 05 Aug 2002 19:26:52 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from ns5.trafficmagnet.net (unknown [211.157.101.52]) by danu.procontrol.fi (Postfix) with ESMTP id 48C2C23831 for ; Mon, 5 Aug 2002 19:26:51 +0300 (EEST) Received: from 181-Dispatcher ([211.101.236.181]) by ns5.trafficmagnet.net (8.11.6/8.11.6) with SMTP id g765MXt31378 for ; Tue, 6 Aug 2002 00:22:34 -0500 Message-Id: <200208060522.g765MXt31378@ns5.trafficmagnet.net> From: Sarah Williams To: "dovecot@procontrol.fi" Subject: [dovecot] DOVECOT.PROCONTROL.FI Date: Tue, 6 Aug 2002 0:29:18 +0800 X-Mailer: CSMTPConnection v2.17 MIME-Version: 1.0 Content-Type: multipart/related; boundary="956bff02-8aec-485e-a58c-40fda617ecbe" Content-Transfer-Encoding: quoted-printable Reply-To: Sarah Williams X-archive-position: 4 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: return@trafficmagnet.com Precedence: bulk X-list: dovecot X-UID: 4 Status: O Content-Length: 2421 This is a multi-part message in MIME format --956bff02-8aec-485e-a58c-40fda617ecbe Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable
Hi

I visited DOVECOT.PROCONTROL.FI, = and noticed that you're not listed on some search engines! I think we can offer = you a service which can help you increase traffic and the number of visitors = to your website.

I would like to introduce you to TrafficMagnet.com. We = offer a unique technology that will submit your website to over 300,000 search engines and directories = every month.

 

You'll be surprised by the low cost, and by how effective this website = promotion method can be.

To find out more about TrafficMagnet and the cost for submitting your = website to over 300,000 search engines and directories, visit www.TrafficMagnet.com.

I would love to hear from you.


Best Regards,

Sarah Williams
Sales and Marketing
E-mail: sarah_williams@trafficmagnet.com
http://www.TrafficMagnet.com=
--956bff02-8aec-485e-a58c-40fda617ecbe-- From reply@seekercenter.net Tue Aug 6 13:01:17 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 06 Aug 2002 13:01:17 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from XXXXXX (unknown [211.101.236.162]) by danu.procontrol.fi (Postfix) with ESMTP id C6D0823832 for ; Tue, 6 Aug 2002 13:01:15 +0300 (EEST) From: "Vanessa Lintner" Subject: [dovecot] I have visited DOVECOT.PROCONTROL.FI and noticed that ... To: dovecot@procontrol.fi Content-Type: text/html; Reply-To: "Vanessa Lintner" Date: Tue, 6 Aug 2002 18:05:01 +0800 X-Priority: 3 X-Library: Business Promotion Message-Id: <20020806100115.C6D0823832@danu.procontrol.fi> X-archive-position: 5 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: reply@seekercenter.net Precedence: bulk X-list: dovecot X-UID: 5 Status: O Content-Length: 5137
 

Hello,

I have visited dovecot.procontrol.fi and noticed that your website is not listed on some search engines. I am sure that through our service the number of people who visit your website will definitely increase. SeekerCenter is a unique technology that instantly submits your website to over 500,000 search engines and directories -- a really low-cost and effective way to advertise your site. For more details please go to SeekerCenter.net.

Give your website maximum exposure today!
Looking forward to hearing from you.

Best Regards,
Vanessa Lintner
Sales & Marketing
www.SeekerCenter.net

     
     
From cras@irccrew.org Tue Aug 6 13:34:34 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 06 Aug 2002 13:34:34 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 1EC3C23831 for ; Tue, 6 Aug 2002 13:34:34 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id E37C74C0A0; Tue, 6 Aug 2002 13:34:33 +0300 (EEST) Date: Tue, 6 Aug 2002 13:34:33 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] spam / updates Message-ID: <20020806133433.T22431@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 6 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 6 Status: O I guess I underestimated the spammers :) This list is subscribers-only now. As for dovecot, I've been cleaning the code and probably will continue with that some time. I was also thinking about moving the authentication code into separate (SASL) library which could then be plugged into other software, such as postfix. From darix@linux.taugt.net Tue Aug 6 20:54:39 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 06 Aug 2002 20:54:39 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from linux.taugt.net (wh5035.stw.uni-rostock.de [139.30.105.35]) by danu.procontrol.fi (Postfix) with ESMTP id 99FC923829 for ; Tue, 6 Aug 2002 20:54:39 +0300 (EEST) Received: by linux.taugt.net (none of your biz, from userid 500) id 28A8D29F49; Tue, 6 Aug 2002 19:54:41 +0200 (CEST) Date: Tue, 6 Aug 2002 19:54:41 +0200 From: Marcus Rueckert To: dovecot mailing list Subject: [dovecot] mbox support Message-ID: <20020806175441.GA7148@linux.taugt.net> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.4i X-archive-position: 7 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: rueckert@informatik.uni-rostock.de Precedence: bulk X-list: dovecot X-UID: 7 Status: O hi could you explain the following sentence from the readme.txt: "mbox support is available but currently it relies a little bit on good luck, ..." what kind of luck do i need? why do you think the mbox support isnt this reliable? Marcus Rückert -- irssi - the client of the smart and beautiful people From marcelo@carpa.ciagri.usp.br Wed Aug 7 02:39:26 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 Aug 2002 02:39:26 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from carpa.ciagri.usp.br (carpa.ciagri.usp.br [143.107.209.25]) by danu.procontrol.fi (Postfix) with SMTP id 42D5323829 for ; Wed, 7 Aug 2002 02:39:25 +0300 (EEST) Received: (qmail 32442 invoked by uid 1000); 6 Aug 2002 23:40:54 -0000 From: marcelo@carpa.ciagri.usp.br Date: Tue, 6 Aug 2002 20:40:54 -0300 To: dovecot@procontrol.fi Subject: [dovecot] starting Message-ID: <20020806234054.GA30820@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-archive-position: 8 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: marcelo@carpa.ciagri.usp.br Precedence: bulk X-list: dovecot X-UID: 8 Status: O Hi. Sorry for the basic question but... how do I start the server? From inetd or in standalone mode (which binary)? Thanks From cras@irccrew.org Wed Aug 7 06:54:12 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 Aug 2002 06:54:12 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id EA9D623829 for ; Wed, 7 Aug 2002 06:54:11 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id D125E4C0A0; Wed, 7 Aug 2002 06:54:11 +0300 (EEST) Date: Wed, 7 Aug 2002 06:54:11 +0300 From: Timo Sirainen To: dovecot mailing list Subject: [dovecot] Re: mbox support Message-ID: <20020807065411.A16470@irccrew.org> References: <20020806175441.GA7148@linux.taugt.net> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020806175441.GA7148@linux.taugt.net>; from rueckert@informatik.uni-rostock.de on Tue, Aug 06, 2002 at 07:54:41PM +0200 Content-Type: text/plain; charset=us-ascii X-archive-position: 9 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 9 Status: O On Tue, Aug 06, 2002 at 07:54:41PM +0200, Marcus Rueckert wrote: > could you explain the following sentence from the readme.txt: > "mbox support is available but currently it relies a little bit on good > luck, ..." > > what kind of luck do i need? > why do you think the mbox support isnt this reliable? mbox files are locked only while they're being modified. If only dovecot was accessing the mailbox I guess there wouldn't be any problem since it properly locks the index files as well. But if any other MUA was just modifying the mbox file (deleting messages) while dovecot was reading it, it's possible that you end up having data from some random message. Storing MD5 sum of all messages and making sure they match would fix this. From cras@irccrew.org Wed Aug 7 06:58:27 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 Aug 2002 06:58:27 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id B90D723829 for ; Wed, 7 Aug 2002 06:58:27 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 443C64C0A0; Wed, 7 Aug 2002 06:58:24 +0300 (EEST) Date: Wed, 7 Aug 2002 06:58:24 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: starting Message-ID: <20020807065824.C16470@irccrew.org> References: <20020806234054.GA30820@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020806234054.GA30820@carpa.ciagri.usp.br>; from marcelo@carpa.ciagri.usp.br on Tue, Aug 06, 2002 at 08:40:54PM -0300 Content-Type: text/plain; charset=us-ascii X-archive-position: 10 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 10 Status: O On Tue, Aug 06, 2002 at 08:40:54PM -0300, marcelo@carpa.ciagri.usp.br wrote: > Hi. Sorry for the basic question but... how do I > start the server? From inetd or in standalone mode > (which binary)? Run imap-master From cras@irccrew.org Wed Aug 7 06:59:01 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 Aug 2002 06:59:01 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 05B9423829 for ; Wed, 7 Aug 2002 06:59:01 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id E84874C0A0; Wed, 7 Aug 2002 06:59:00 +0300 (EEST) Date: Wed, 7 Aug 2002 06:59:00 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: starting Message-ID: <20020807065900.D16470@irccrew.org> References: <20020806234054.GA30820@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020806234054.GA30820@carpa.ciagri.usp.br>; from marcelo@carpa.ciagri.usp.br on Tue, Aug 06, 2002 at 08:40:54PM -0300 Content-Type: text/plain; charset=us-ascii X-archive-position: 11 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 11 Status: O On Tue, Aug 06, 2002 at 08:40:54PM -0300, marcelo@carpa.ciagri.usp.br wrote: > Hi. Sorry for the basic question but... how do I > start the server? From inetd or in standalone mode > (which binary)? Oh, and standalone :) Maybe I should support inetd too later. From marcelo@carpa.ciagri.usp.br Thu Aug 8 02:18:19 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 02:18:19 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from carpa.ciagri.usp.br (carpa.ciagri.usp.br [143.107.209.25]) by danu.procontrol.fi (Postfix) with SMTP id 348EE23829 for ; Thu, 8 Aug 2002 02:18:18 +0300 (EEST) Received: (qmail 18910 invoked by uid 1000); 7 Aug 2002 23:19:56 -0000 From: marcelo@carpa.ciagri.usp.br Date: Wed, 7 Aug 2002 20:19:56 -0300 To: dovecot@procontrol.fi Subject: [dovecot] SELECT Message-ID: <20020807231956.GA11240@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-archive-position: 12 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: marcelo@carpa.ciagri.usp.br Precedence: bulk X-list: dovecot X-UID: 12 Status: O Content-Length: 1024 Hi, all. Thanks Timo for answering my previous post. It's starting fine now :) I must be doing something wrong again but I can't connect from any imap client. If I telnet to the server I get: $ telnet carpa 11143 Trying 143.107.209.25... Connected to carpa.ciagri.usp.br. Escape character is '^]'. * OK dovecot ready. a001 login marcelo ##### a001 OK Logged in. a002 select INBOX a002 NO Broken INBOX: Permission denied a003 select "" * FLAGS (\Answered \Flagged \Deleted \Seen \Draft \Recent) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft)] Flags permitted. * 246 EXISTS * 246 RECENT * OK [UNSEEN 1] First unseen. * OK [UIDVALIDITY 1028760751] UIDs valid a003 OK [READ-WRITE] Select completed. a004 close a004 OK Close completed. a005 logout * BYE Logging out a005 OK Logout completed. Connection closed by foreign host. "INBOX" seems not be a valid mailbox name to Dovecot but it works with others servers (courier, at least). The server uses Maildirs and runs qmail and courier (by now). Thanks. From cras@irccrew.org Thu Aug 8 07:13:04 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 07:13:04 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 65BF823831 for ; Thu, 8 Aug 2002 07:13:04 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 3BB134C0A0; Thu, 8 Aug 2002 07:13:03 +0300 (EEST) Date: Thu, 8 Aug 2002 07:13:03 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: SELECT Message-ID: <20020808071303.F16470@irccrew.org> References: <20020807231956.GA11240@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020807231956.GA11240@carpa.ciagri.usp.br>; from marcelo@carpa.ciagri.usp.br on Wed, Aug 07, 2002 at 08:19:56PM -0300 Content-Type: text/plain; charset=us-ascii X-archive-position: 13 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 13 Status: O On Wed, Aug 07, 2002 at 08:19:56PM -0300, marcelo@carpa.ciagri.usp.br wrote: > a002 NO Broken INBOX: Permission denied You use normal passwd/shadow/pam authentication? Where does the home directory point to, to your real home dir under which Maildir/ is? Anyway, one of the following failed (under Maildir/): mkdir .INBOX ln -s ../cur .INBOX/cur ln -s ../new .INBOX/new ln -s ../tmp .INBOX/tmp Next release will tell exactly which of them failed :) > a003 select "" I don't think this should be allowed :) From marcelo@carpa.ciagri.usp.br Thu Aug 8 16:11:45 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 16:11:45 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from carpa.ciagri.usp.br (carpa.ciagri.usp.br [143.107.209.25]) by danu.procontrol.fi (Postfix) with SMTP id 88CF423831 for ; Thu, 8 Aug 2002 16:11:44 +0300 (EEST) Received: (qmail 9606 invoked by uid 1000); 8 Aug 2002 13:13:30 -0000 From: marcelo@carpa.ciagri.usp.br Date: Thu, 8 Aug 2002 10:13:30 -0300 To: dovecot@procontrol.fi Subject: [dovecot] Re: SELECT Message-ID: <20020808131329.GA30775@carpa.ciagri.usp.br> References: <20020807231956.GA11240@carpa.ciagri.usp.br> <20020808071303.F16470@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020808071303.F16470@irccrew.org> User-Agent: Mutt/1.3.28i X-archive-position: 14 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: marcelo@carpa.ciagri.usp.br Precedence: bulk X-list: dovecot X-UID: 14 Status: O On Thu, Aug 08, 2002 at 07:13:03AM +0300, Timo Sirainen wrote: > On Wed, Aug 07, 2002 at 08:19:56PM -0300, marcelo@carpa.ciagri.usp.br wrote: > > > a002 NO Broken INBOX: Permission denied > > You use normal passwd/shadow/pam authentication? Well, in dovecot.conf I have: auth = default auth_methods = plain auth_userinfo = shadow auth_user = root > Where does the home > directory point to, to your real home dir under which Maildir/ is? Maildir is in the real users' home (/home/user/Maildir) > Anyway, > one of the following failed (under Maildir/): > > mkdir .INBOX > ln -s ../cur .INBOX/cur > ln -s ../new .INBOX/new > ln -s ../tmp .INBOX/tmp > > Next release will tell exactly which of them failed :) > Shouldn't it be: mkdir .INBOX ln -s cur .INBOX/ ln -s new .INBOX/ ln -s tmp .INBOX/ ? Anyway, "mkdir .INBOX" succeeds but it is created with perms 070 and trying to create the links inside it causes the permission errors. From cras@irccrew.org Thu Aug 8 18:04:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 18:04:54 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id C053623831 for ; Thu, 8 Aug 2002 18:04:54 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 6E2674C0A0; Thu, 8 Aug 2002 18:04:53 +0300 (EEST) Date: Thu, 8 Aug 2002 18:04:53 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: SELECT Message-ID: <20020808180453.J16470@irccrew.org> References: <20020807231956.GA11240@carpa.ciagri.usp.br> <20020808071303.F16470@irccrew.org> <20020808131329.GA30775@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020808131329.GA30775@carpa.ciagri.usp.br>; from marcelo@carpa.ciagri.usp.br on Thu, Aug 08, 2002 at 10:13:30AM -0300 Content-Type: text/plain; charset=us-ascii X-archive-position: 15 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 15 Status: O On Thu, Aug 08, 2002 at 10:13:30AM -0300, marcelo@carpa.ciagri.usp.br wrote: > Shouldn't it be: > > mkdir .INBOX > ln -s cur .INBOX/ > ln -s new .INBOX/ > ln -s tmp .INBOX/ > ? No, if that was done the symlinks would point to themselves. ln -s behaviour looks a bit weird if you're not doing it from the destination directory :) > Anyway, "mkdir .INBOX" succeeds but it is created with > perms 070 and trying to create the links inside it > causes the permission errors. Ah, and this was because I was stupid and set the default umask to 0700 instead of 0077 :) You could fix this by uncommenting the umask-line in dovecot.conf. btw. 0.95 also has problems with bad network connections or large mailboxes, I'll probably release 0.96 soon which fixes it. From cras@irccrew.org Thu Aug 8 19:00:00 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 19:00:00 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 5A8E723829 for ; Thu, 8 Aug 2002 19:00:00 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 36C274C0A0; Thu, 8 Aug 2002 19:00:00 +0300 (EEST) Date: Thu, 8 Aug 2002 19:00:00 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] v0.96 released Message-ID: <20020808190000.K16470@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 16 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 16 Status: O Content-Length: 1072 This release was actually tested with reading my inbox (500+ messages, mbox, Solaris 8) using Outlook and Evolution v0.96 2002-08-08 Timo Sirainen * Changed to LGPL v2.1 license + STARTTLS support and optional disabling of plaintext authentication (LOGINDISABLED capability) + Support for custom message flags, each folder can have 26 different. + New configuration file options: imap_listen, max_logging_users, max_imap_processes + You can specify config file location to imap-master with -c + All IMAP processes can now write to specified log file instead of syslog. Either do this by setting IMAP_LOGFILE environment, or give -l parameter to imap-master. + Some cleanups to remove warnings with BSDs + Changed all %s .. strerror(errno) -> %m + Rewritten memory pool code - imap-master didn't close all the fds for executed processes - iobuffer code was buggy and caused the connection to terminate sometimes - make install overwrote the existing dovecot.conf file, so it's now named as dovecot-example.conf From marcelo@carpa.ciagri.usp.br Thu Aug 8 22:33:47 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 22:33:47 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from carpa.ciagri.usp.br (carpa.ciagri.usp.br [143.107.209.25]) by danu.procontrol.fi (Postfix) with SMTP id 18B9C23829 for ; Thu, 8 Aug 2002 22:33:45 +0300 (EEST) Received: (qmail 23496 invoked by uid 1000); 8 Aug 2002 19:35:33 -0000 From: marcelo@carpa.ciagri.usp.br Date: Thu, 8 Aug 2002 16:35:33 -0300 To: dovecot@procontrol.fi Subject: [dovecot] Disk quotas (was: SELECT) Message-ID: <20020808193533.GA28619@carpa.ciagri.usp.br> References: <20020807231956.GA11240@carpa.ciagri.usp.br> <20020808071303.F16470@irccrew.org> <20020808131329.GA30775@carpa.ciagri.usp.br> <20020808180453.J16470@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020808180453.J16470@irccrew.org> User-Agent: Mutt/1.3.28i X-archive-position: 17 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: marcelo@carpa.ciagri.usp.br Precedence: bulk X-list: dovecot X-UID: 17 Status: O Content-Length: 1136 On Thu, Aug 08, 2002 at 06:04:53PM +0300, Timo Sirainen wrote: > > Anyway, "mkdir .INBOX" succeeds but it is created with > > perms 070 and trying to create the links inside it > > causes the permission errors. > > Ah, and this was because I was stupid and set the default umask to 0700 > instead of 0077 :) You could fix this by uncommenting the umask-line in > dovecot.conf. Hey, it works! :) > > btw. 0.95 also has problems with bad network connections or large mailboxes, > I'll probably release 0.96 soon which fixes it. > Yes, confirmed. Using 0.96 my inbox shows up with all my ~200 messages now. Now, one last question (for a while): would be possible/desirable make Dovecot work when an user is with her disk quota completely full (hard quota)? The main reason I'm looking for an alternative imap server is that neither WU-Imapd nor Courier work "properly" (from an user point of view) in that situation (the user can not login or delete her messages to clean up the mailbox). If Dovecot could handle this problem (creating its scratch files in /tmp, perhaps) it'd be big plus, IMHO. Thanks for the great support :) From cras@irccrew.org Fri Aug 9 07:03:02 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 09 Aug 2002 07:03:02 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id A2CE123829 for ; Fri, 9 Aug 2002 07:03:02 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 30A774C0A0; Fri, 9 Aug 2002 07:03:01 +0300 (EEST) Date: Fri, 9 Aug 2002 07:03:01 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Disk quotas (was: SELECT) Message-ID: <20020809070301.L16470@irccrew.org> References: <20020807231956.GA11240@carpa.ciagri.usp.br> <20020808071303.F16470@irccrew.org> <20020808131329.GA30775@carpa.ciagri.usp.br> <20020808180453.J16470@irccrew.org> <20020808193533.GA28619@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020808193533.GA28619@carpa.ciagri.usp.br>; from marcelo@carpa.ciagri.usp.br on Thu, Aug 08, 2002 at 04:35:33PM -0300 Content-Type: text/plain; charset=us-ascii X-archive-position: 18 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 18 Status: O Content-Length: 1031 On Thu, Aug 08, 2002 at 04:35:33PM -0300, marcelo@carpa.ciagri.usp.br wrote: > Now, one last question (for a while): would be possible/desirable make > Dovecot work when an user is with her disk quota completely full (hard > quota)? The main reason I'm looking for an alternative imap server is that > neither WU-Imapd nor Courier work "properly" (from an user point of view) in > that situation (the user can not login or delete her messages to clean up > the mailbox). If Dovecot could handle this problem (creating its scratch > files in /tmp, perhaps) it'd be big plus, IMHO. Well, that is a bit difficult to handle.. It's mostly the index files that dovecot has to create/grow. I think I should support keeping them only in memory when disk quota is exceeded. But what about clients, I think some of them just copy the mail to trash folder instead of deleting the mail? But maybe with maildir_copy_with_hardlinks=yes that'd be possible even with quota full. I guess I'll have to install quota support and start fixing. From marcelo@carpa.ciagri.usp.br Fri Aug 9 22:05:26 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 09 Aug 2002 22:05:26 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from carpa.ciagri.usp.br (carpa.ciagri.usp.br [143.107.209.25]) by danu.procontrol.fi (Postfix) with SMTP id 41E5B23831 for ; Fri, 9 Aug 2002 22:03:46 +0300 (EEST) Received: (qmail 27100 invoked by uid 1000); 9 Aug 2002 19:03:39 -0000 From: marcelo@carpa.ciagri.usp.br Date: Fri, 9 Aug 2002 16:03:39 -0300 To: dovecot@procontrol.fi Subject: [dovecot] Re: Disk quotas Message-ID: <20020809190339.GA2063@carpa.ciagri.usp.br> References: <20020807231956.GA11240@carpa.ciagri.usp.br> <20020808071303.F16470@irccrew.org> <20020808131329.GA30775@carpa.ciagri.usp.br> <20020808180453.J16470@irccrew.org> <20020808193533.GA28619@carpa.ciagri.usp.br> <20020809070301.L16470@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020809070301.L16470@irccrew.org> User-Agent: Mutt/1.3.28i X-archive-position: 19 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: marcelo@carpa.ciagri.usp.br Precedence: bulk X-list: dovecot X-UID: 19 Status: O On Fri, Aug 09, 2002 at 07:03:01AM +0300, Timo Sirainen wrote: > > Well, that is a bit difficult to handle.. It's mostly the index files that > dovecot has to create/grow. I think I should support keeping them only in > memory when disk quota is exceeded. > I see... > But what about clients, I think some of them just copy the mail to trash > folder instead of deleting the mail? But maybe with > maildir_copy_with_hardlinks=yes that'd be possible even with quota full. > When a user or his imap client asks for a "write" operation (like saving in Trash) I think it's fair for an imap server just fail the operation and return an error (he's overquota :). But using "good" clients that offer the option to just delete the messages (not copy/move them) it would be nice if they could have the chance to at least login and delete the spam. > I guess I'll have to install quota support and start fixing. > I'm by no means a decent C programmer but if I could help somehow, just ask. Thanks, Marcelo. From ev@kernel.ping-viini.org Mon Aug 12 01:09:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 12 Aug 2002 01:09:37 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from ping-viini.at.home.telekarelia.fi (ping-viini.at.home.telekarelia.fi [195.197.199.46]) by danu.procontrol.fi (Postfix) with SMTP id C8B3423833 for ; Mon, 12 Aug 2002 01:09:37 +0300 (EEST) Received: (qmail 17429 invoked from network); 11 Aug 2002 21:32:33 -0000 Received: from unknown (HELO eero) (192.168.0.2) by 0 with SMTP; 11 Aug 2002 21:32:33 -0000 Message-ID: <006701c24183$c7f10d60$0200a8c0@eero> From: "Eero Volotinen" To: Subject: [dovecot] vpopmail authentication support Date: Mon, 12 Aug 2002 01:09:37 +0300 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 20 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ev@kernel.ping-viini.org Precedence: bulk X-list: dovecot X-UID: 20 Status: O is nice feature to get soon if possible? -- Eero From cras@irccrew.org Thu Aug 22 16:25:52 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 22 Aug 2002 16:25:52 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 926902386D for ; Thu, 22 Aug 2002 16:25:52 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id C96234C0A0; Thu, 22 Aug 2002 16:25:51 +0300 (EEST) Date: Thu, 22 Aug 2002 16:25:51 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] status update / cvs repository Message-ID: <20020822132551.GD12341@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 21 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 21 Status: O Past few weeks went mostly while rewriting small part of code. It really wouldn't have needed to take that long, but I always got really tired after just looking at that code for a few seconds :) Anyway, now messages are parsed in 256kB blocks (maybe I should make it configurable), so large messages don't eat all memory anymore. Maildir support seems to work with the new code, though I haven't tested it too well yet. mbox is currently broken. If you want to test it, dovecot's CVS is available with rsync. I don't think I'll bother setting up pserver since that CVS has also other sources that aren't public. With rsync you'd do it something like: # initialize new cvs repository (do it just once) cvs -d ~/cvs init # update cvs repository rsync -avz --delete dovecot.procontrol.fi::dovecotcvs ~/cvs/dovecot # checkout the sources from your cvs repository cd ~/src cvs -d ~/cvs checkout dovecot From cras@irccrew.org Mon Aug 26 18:23:16 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 26 Aug 2002 18:23:16 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id AB6572386D for ; Mon, 26 Aug 2002 18:23:16 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id ADE354C0A0; Mon, 26 Aug 2002 18:23:12 +0300 (EEST) Date: Mon, 26 Aug 2002 18:23:12 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: vpopmail authentication support Message-ID: <20020826152312.GI7103@irccrew.org> References: <006701c24183$c7f10d60$0200a8c0@eero> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <006701c24183$c7f10d60$0200a8c0@eero> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 22 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 22 Status: O On Mon, Aug 12, 2002 at 01:09:37AM +0300, Eero Volotinen wrote: > is nice feature to get soon if possible? OK, I finally remembered to put this in TODO :) I also looked at vpopmail before but it had at least one very weird thing which I thought about asking about it's authors (gid field actually contains just flags). From cras@irccrew.org Thu Aug 29 03:17:57 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 29 Aug 2002 03:17:57 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 56E0223831 for ; Thu, 29 Aug 2002 03:17:57 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id A9A3B4C0A0; Thu, 29 Aug 2002 03:17:56 +0300 (EEST) Date: Thu, 29 Aug 2002 03:17:56 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] v0.97 released Message-ID: <20020829001756.GU7103@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 23 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 23 Status: O Content-Length: 2242 This is a major cleanup release. My near future goal is to make it impossible to crash Dovecot no matter what you did. This release also adds support for files larger than 2GB with Linux and Solaris. Also mbox support seems to work quite well now, except EXPUNGE and STORE are still not implemented. The "impossible to crash" should already be quite true, at least when it comes to index files. You can try to corrupt indexes in any way you want, and Dovecot should not crash. There's one exception to this: modifying the files while dovecot is reading them may crash it, this is too difficult to fix as long as shared memory maps are used, and I don't see much point in it anyway. I mostly want dovecot to survive corrupted files, not intentional crashing :) This release is the first I'd almost like to call beta-quality. But not quite. It still lacks testing and several features, but it's very close :) Changelog: v0.97 2002-08-29 Timo Sirainen + Large mails are handled in 256kB blocks, so mail size no longer has hardly any effect on memory usage + 64bit file offsets are used if supported by system. This means Dovecot is fully capable of handling >2G mails in those systems. With 32bit offsets >2G mails may not behave too well, but should not crash either. + I fixed lots of potential integer overflows. This should make us fully crash-free no matter what happens (index file corruption mostly). I didn't verify everything too carefully yet, so more auditing is still needed before we fully reach that goal. + Implemented several missing tasks / optimizations to index handling. It should now stay fast after longer usage periods. + New configuration file options: log_path, log_timestamp, imaps_listen + "Critical errors" are now hidden from users, ie. any error message that is not a direct reply to user error is written into log file and user gets only "Internal error [timestamp]". + Nonblocking SSL handshaking + Lots of code cleanups - Lots of mbox fixes, it seems to be somewhat reliable now - Year in Date-field was parsed wrong - Appending mail to mbox didn't work right - Always verify that mailbox names are valid (especially they shouldn't contain "../") From svrmarty@gmx.net Sat Sep 14 23:50:41 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 14 Sep 2002 23:50:41 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from svrmarty.gnome.at (unknown [213.225.45.83]) by danu.procontrol.fi (Postfix) with ESMTP id 0964B23831 for ; Sat, 14 Sep 2002 23:50:40 +0300 (EEST) Received: from silent (silent.svrmarty.gnome.at [192.168.1.8]) by svrmarty.gnome.at (8.12.3/8.12.3/Debian -4) with SMTP id g8EM00he027169 for ; Sun, 15 Sep 2002 00:00:01 +0200 Message-ID: <059101c25c30$da8c2b40$0801a8c0@svrmarty.gnome.at> From: "SvR Marty" To: Subject: [dovecot] Problems with it Date: Sat, 14 Sep 2002 22:54:00 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700 X-archive-position: 24 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: svrmarty@gmx.net Precedence: bulk X-list: dovecot X-UID: 24 Status: O i've install it, used the example config and started tryed to access my mailbox via Outlook Express here's the syslog: Sep 14 22:42:17 p133 imap-login: Logged in. [192.168.1.8] Sep 15 00:42:17 p133 imap(svrmarty): MAIL environment missing and autodetection failed (home /home/svrmarty) Sep 15 00:42:17 p133 imap-master: child 20960 (imap) returned error 98 Sep 14 22:42:19 p133 imap-login: Logged in. [192.168.1.8] Sep 15 00:42:19 p133 imap(svrmarty): MAIL environment missing and autodetection failed (home /home/svrmarty) Sep 15 00:42:19 p133 imap-master: child 20961 (imap) returned error 98 it fails and i don't see any message From cras@irccrew.org Sun Sep 15 00:50:10 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 15 Sep 2002 00:50:10 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 75F9423837 for ; Sun, 15 Sep 2002 00:50:10 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 4AA2C4C0A5; Sun, 15 Sep 2002 00:50:09 +0300 (EEST) Date: Sun, 15 Sep 2002 00:50:08 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Problems with it Message-ID: <20020914215008.GU9842@irccrew.org> References: <059101c25c30$da8c2b40$0801a8c0@svrmarty.gnome.at> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <059101c25c30$da8c2b40$0801a8c0@svrmarty.gnome.at> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 25 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 25 Status: O On Sat, Sep 14, 2002 at 10:54:00PM +0200, SvR Marty wrote: > Sep 15 00:42:17 p133 imap(svrmarty): MAIL environment missing and > autodetection failed (home /home/svrmarty) Are you using mbox or maildir? It looks only for ~/Maildir with maildir. With mbox it looks for ~/Mail and ~/mail directories, and they must contain either "inbox" or "mbox" file. If your mail is in /var/mail, that's not supported yet, and I'm not sure if it will be. You could create symlink from it to ~/mail though. From svrmarty@gmx.net Sun Sep 15 15:46:31 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 15 Sep 2002 15:46:31 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from svrmarty.gnome.at (unknown [213.225.45.83]) by danu.procontrol.fi (Postfix) with ESMTP id B6BA023831 for ; Sun, 15 Sep 2002 15:46:28 +0300 (EEST) Received: from silent (silent.svrmarty.gnome.at [192.168.1.8]) by svrmarty.gnome.at (8.12.3/8.12.3/Debian -4) with SMTP id g8FDuEhe013158 for ; Sun, 15 Sep 2002 15:56:15 +0200 Message-ID: <009601c25cb6$b1e567c0$0801a8c0@svrmarty.gnome.at> From: "SvR Marty" To: References: <059101c25c30$da8c2b40$0801a8c0@svrmarty.gnome.at> <20020914215008.GU9842@irccrew.org> Subject: [dovecot] Re: Problems with it Date: Sun, 15 Sep 2002 14:52:03 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700 X-archive-position: 26 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: svrmarty@gmx.net Precedence: bulk X-list: dovecot X-UID: 26 Status: O Content-Length: 1045 i can't find a good howto doc. can you put ls -laR of the special folders into a mail an send it ? i don't know how this should work seems i'm using maildir Internal error [2002-09-15 16:42:35] Sep 15 16:42:35 p133 imap(svrmarty): Can't open index data /home/svrmarty/Maildir/.INBOX/.imap.index.data: No such file or directory dunno what to do ----- Original Message ----- From: "Timo Sirainen" To: Sent: Saturday, September 14, 2002 11:50 PM Subject: [dovecot] Re: Problems with it > On Sat, Sep 14, 2002 at 10:54:00PM +0200, SvR Marty wrote: > > > Sep 15 00:42:17 p133 imap(svrmarty): MAIL environment missing and > > autodetection failed (home /home/svrmarty) > > Are you using mbox or maildir? It looks only for ~/Maildir with maildir. > With mbox it looks for ~/Mail and ~/mail directories, and they must contain > either "inbox" or "mbox" file. > > If your mail is in /var/mail, that's not supported yet, and I'm not sure if > it will be. You could create symlink from it to ~/mail though. > > From cras@irccrew.org Mon Sep 16 07:41:59 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 16 Sep 2002 07:41:59 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id A05B423831 for ; Mon, 16 Sep 2002 07:41:59 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 4D5EF4C0A5; Mon, 16 Sep 2002 07:41:56 +0300 (EEST) Date: Mon, 16 Sep 2002 07:41:56 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Problems with it Message-ID: <20020916044155.GY9842@irccrew.org> References: <059101c25c30$da8c2b40$0801a8c0@svrmarty.gnome.at> <20020914215008.GU9842@irccrew.org> <009601c25cb6$b1e567c0$0801a8c0@svrmarty.gnome.at> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <009601c25cb6$b1e567c0$0801a8c0@svrmarty.gnome.at> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 27 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 27 Status: O On Sun, Sep 15, 2002 at 02:52:03PM +0200, SvR Marty wrote: > seems i'm using maildir > Internal error [2002-09-15 16:42:35] > Sep 15 16:42:35 p133 imap(svrmarty): Can't open index data > /home/svrmarty/Maildir/.INBOX/.imap.index.data: No such file or directory Looks like some bug .. rm -f /home/svrmarty/Maildir/.INBOX/.imap.index* might help. Anyway, the 0.97 version isn't very usable. I think I'll release new version today or tomorrow, which has had quite a lot of testing. I'll just have to see if all those changes I did last weekend broke everything or fixed the last few problems :) From cras@irccrew.org Fri Sep 20 14:30:45 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 20 Sep 2002 14:30:45 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 8FDD82383F for ; Fri, 20 Sep 2002 14:30:45 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 63BF44C0A5; Fri, 20 Sep 2002 14:30:45 +0300 (EEST) Date: Fri, 20 Sep 2002 14:30:45 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] vpopmail authentication Message-ID: <20020920113045.GC8225@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 28 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 28 Status: O CVS has now support for vpopmail authentication. .c file compiles, but I'm not sure if I did the other checks properly and if it actually works :) If someone here is using it, could you test it? At least to see if configure detects it and if it compiles/links. BTW. I think maildir support is now working quite well, 0.98 isn't far away. From cras@irccrew.org Fri Sep 20 15:19:11 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 20 Sep 2002 15:19:11 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 202B223831 for ; Fri, 20 Sep 2002 15:19:11 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id F03784C0A5; Fri, 20 Sep 2002 15:19:10 +0300 (EEST) Date: Fri, 20 Sep 2002 15:19:10 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: vpopmail authentication Message-ID: <20020920121910.GA27866@irccrew.org> References: <20020920113045.GC8225@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20020920113045.GC8225@irccrew.org> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 29 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 29 Status: O On Fri, Sep 20, 2002 at 02:30:45PM +0300, Timo Sirainen wrote: > CVS has now support for vpopmail authentication. .c file compiles, but I'm > not sure if I did the other checks properly and if it actually works :) Yes, it works. From tss@iki.fi Mon Sep 23 20:42:43 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 23 Sep 2002 20:42:44 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D7B9D2383F for ; Mon, 23 Sep 2002 20:42:43 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 9D32C5E01F4F; Mon, 23 Sep 2002 20:42:43 +0300 (EEST) Subject: [dovecot] 0.98 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 23 Sep 2002 20:42:43 +0300 Message-Id: <1032802963.15743.2.camel@hurina> Mime-Version: 1.0 X-archive-position: 30 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 30 Status: O Content-Length: 1061 0.98 released. This release includes LOTS of bugfixes after almost 4 weeks of actual use. We've mostly tested with Outlook 2000, Outlook Express 6 and Evolution 1.0.8. I haven't heard of a single bug in maildir for several days, and mbox worked quite well first time today :) New features include vpopmail authentication, ability to run properly when there's no disk space left to allow user to delete mail, and full support for mbox. v0.98 2002-09-23 Timo Sirainen + mbox support is finally working. There's still some reliability fixes left but overall it should be quite usable. + vpopmail authentication support + We should be able to deal with "out of diskspace/quota" conditions properly, by keeping the indexes in memory and allowing user to delete mails to get more space. + Several speed enhancements + New configuration file option: overwrite_incompatible_index to force using ".imap.index" file, overwriting it if it isn't compatible - Handle invalid message headers reliably - Tons of bugfixes and code cleanups everywhere From tss@iki.fi Tue Sep 24 20:04:30 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 24 Sep 2002 20:04:30 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6B45C23831 for ; Tue, 24 Sep 2002 20:04:30 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 2AD7C5E01F42; Tue, 24 Sep 2002 20:04:30 +0300 (EEST) Subject: [dovecot] 0.98.1 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 24 Sep 2002 20:04:30 +0300 Message-Id: <1032887070.27868.0.camel@hurina> Mime-Version: 1.0 X-archive-position: 31 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 31 Status: O Guess I should have waited one more day before releasing 0.98 :) This fixes a few mbox problems and should finally make it safe to use. Also fixes a bug of not allowing to save mail larger than 8kB. From tss@iki.fi Mon Sep 30 23:53:10 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 30 Sep 2002 23:53:10 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6FE262383F for ; Mon, 30 Sep 2002 23:53:10 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 69C545E03E5C; Mon, 30 Sep 2002 23:53:09 +0300 (EEST) Subject: [dovecot] 0.98.2 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1033419189.14835.2.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 30 Sep 2002 23:53:09 +0300 X-archive-position: 32 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 32 Status: O Content-Length: 1080 Lets see if I fixed all the nasty bugs now. v0.98.2 2002-09-30 Timo Sirainen + --with-file-offset-size=32 can now be used to select 32bit file offsets. Using them should be a bit faster and take a bit less disk and memory (also needed to compile Dovecot successfully with TinyCC). + maildir_copy_with_hardlinks option works now + Check new mail and notify about it to client also after commands which don't allow full syncing (FETCH, STORE, SEARCH). Also always send RECENT after EXISTS notify. + If we're out of disk space while opening mailbox, notify about it with ALERT. - STORE and SEARCH didn't handle properly message sequence numbers when some in the middle were externally deleted - SEARCH: Only first search condition was checked. - mbox: Message flags given to APPEND were ignored. - mbox: index was corrupted when changing flags for multipart MIME messages - Out of disk space-handling wasn't working properly with .customflags file - if auth processes were killed, login processes weren't reconnecting to them From tss@iki.fi Tue Oct 1 00:28:31 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 01 Oct 2002 00:28:31 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3D1E123831 for ; Tue, 1 Oct 2002 00:28:31 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id D03AB5E03E5C; Tue, 1 Oct 2002 00:28:30 +0300 (EEST) Subject: [dovecot] 0.98.3 released. From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1033421310.19032.0.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 01 Oct 2002 00:28:30 +0300 X-archive-position: 33 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 33 Status: O v0.98.3 2002-10-01 Timo Sirainen * Sorry, just noticed a very stupid bug which caused evolution 1.2 beta to crash. I always thought it was just evolution's fault :) - Several fields in BODY / BODYSTRUCTURE replies weren't quoted From tss@iki.fi Sun Oct 6 00:39:51 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 06 Oct 2002 00:39:51 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 14CF32382D for ; Sun, 6 Oct 2002 00:39:51 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id BDD015E03E5C; Sun, 6 Oct 2002 00:39:50 +0300 (EEST) Subject: [dovecot] 0.98.4 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1033853990.9860.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 06 Oct 2002 00:39:50 +0300 X-archive-position: 34 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 34 Status: O v0.99 will be next, having the new great binary tree code which should make huge mailboxes possible. With smaller mailboxes I think it still makes it better than the old code, even while it is slower in some cases (hash lookups are faster than btree search in optimal cases). v0.98.4 2002-10-06 Timo Sirainen * Just a final release before replacing hash file with a binary tree. - When fetching messages larger than 256k, sometimes Dovecot missed to send CR causing corrupted data at end of message and possibly complete failure depending on IMAP client. - Fetching BODY or BODYSTRUCTURE for message having content-type of message/rfc822 didn't correctly add () around the envelope data. - Several fixes to make it compile with HP/UX ANSI C compiler. Also fixed several warnings it showed up. From tss@iki.fi Tue Oct 8 00:43:16 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Oct 2002 00:43:16 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 786252382B for ; Tue, 8 Oct 2002 00:43:16 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id E5EDA5E015A0; Tue, 8 Oct 2002 00:43:15 +0300 (EEST) Subject: [dovecot] Benchmarks From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034026995.782.15.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 08 Oct 2002 00:43:15 +0300 X-archive-position: 35 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 35 Status: O Just tried Dovecot with 85k mails from Linux kernel mailing list, total of 357MB. I mostly wanted to see if the new binary tree file works well. And it does :) Nothing gets slowed down after deleting messages all around the mailbox. I tried several things with Dovecot, UW-IMAPd and Courier. You'll see that Dovecot is faster in everything else except raw I/O which is a bit strange, have to look why. I think the most important thing anyway is the time spent opening mailbox. Clients are doing "STATUS mailbox (UNSEEN)" very often and that has to be fast. With Dovecot it's so small that I didn't even bother adding it to the benchmarks, with UW-IMAPd it's 16 seconds, with courier 2 seconds. Full results can be found at http://dovecot.procontrol.fi/dovecot-benchmark.txt From tss@iki.fi Tue Oct 8 03:33:27 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Oct 2002 03:33:27 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1C9832382D for ; Tue, 8 Oct 2002 03:33:27 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 469EE5E015A0; Tue, 8 Oct 2002 03:33:26 +0300 (EEST) Subject: [dovecot] Re: Benchmarks - updated for Cyrus From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1034026995.782.15.camel@hurina> References: <1034026995.782.15.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034037205.770.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 08 Oct 2002 03:33:26 +0300 X-archive-position: 36 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 36 Status: O On Tue, 2002-10-08 at 00:43, Timo Sirainen wrote: > Full results can be found at > http://dovecot.procontrol.fi/dovecot-benchmark.txt Updated to contain Cyrus benchmarks as well. Cyrus' BODY and ENVELOPE fetches are equilevant to Dovecot's "BODY and ENVELOPE cached" benchmarks. So, we slightly beat Cyrus in many things, EXPUNGE most notably. BODY[] fetching is slower probably because of our I/O problems, and possibly also because we didn't store messages with CR+LFs (in which case we would use sendfile(), and that should be _fast_). We're also slow with message flag changes because maildir requires rename()ing the mail files, we could later add optimization not to do it but rely on flags specified in index file. From tss@iki.fi Tue Oct 8 06:23:31 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Oct 2002 06:23:31 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6DFF12382B for ; Tue, 8 Oct 2002 06:23:31 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 466A25E015A0; Tue, 8 Oct 2002 06:23:31 +0300 (EEST) Subject: [dovecot] Re: Benchmarks - updated for Cyrus From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1034037205.770.6.camel@hurina> References: <1034026995.782.15.camel@hurina> <1034037205.770.6.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034047411.780.5.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 08 Oct 2002 06:23:31 +0300 X-archive-position: 37 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 37 Status: O On Tue, 2002-10-08 at 03:33, Timo Sirainen wrote: > So, we slightly beat Cyrus in many things, EXPUNGE most notably. BODY[] > fetching is slower probably because of our I/O problems, and possibly > also because we didn't store messages with CR+LFs (in which case we > would use sendfile(), and that should be _fast_). Actually, after trying again a few more times (rebooting between), Cyrus' BODY[] got much slower. Updated the benchmark once more, now added Dovecot with CR+LF and Dovecot with 32bit file offsets (default is 64bit). From tss@iki.fi Thu Oct 10 04:40:09 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 10 Oct 2002 04:40:09 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 745FB2382B for ; Thu, 10 Oct 2002 04:40:09 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id F269E5E03E5C; Thu, 10 Oct 2002 04:40:08 +0300 (EEST) Subject: [dovecot] Re: Benchmarks - updated for Cyrus From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1034047411.780.5.camel@hurina> References: <1034026995.782.15.camel@hurina> <1034037205.770.6.camel@hurina> <1034047411.780.5.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034214008.770.7.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 10 Oct 2002 04:40:08 +0300 X-archive-position: 38 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 38 Status: O On Tue, 2002-10-08 at 06:23, Timo Sirainen wrote: > Actually, after trying again a few more times (rebooting between), > Cyrus' BODY[] got much slower. Updated the benchmark once more, now > added Dovecot with CR+LF and Dovecot with 32bit file offsets (default is > 64bit). After 3 hours of tweaking which didn't make much difference, I finally tried if filesystem had any effect on the speed. It had. A lot. Using the same mail files as Cyrus, I got the time going from 2:32 down to 1:41. Cyrus used 2:25 to do the same, meaning we easily beat Cyrus. Now, uw-imapd is still faster with mbox handling.. From faulerhund@faulerhund.net Sat Oct 12 18:26:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 12 Oct 2002 18:26:55 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.200]) by danu.procontrol.fi (Postfix) with ESMTP id D6D972382D for ; Sat, 12 Oct 2002 18:26:54 +0300 (EEST) Received: from [195.20.224.206] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 180OAI-0001FX-00 for dovecot@procontrol.fi; Sat, 12 Oct 2002 17:26:54 +0200 Received: from [217.84.28.114] (helo=mobilo) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 180OAH-0002wH-00 for dovecot@procontrol.fi; Sat, 12 Oct 2002 17:26:53 +0200 Message-ID: <000e01c27203$e947a450$1964a8c0@mobilo> From: "Korbinian Riedhammer" To: Subject: [dovecot] auth problem Date: Sat, 12 Oct 2002 17:27:43 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 39 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 39 Status: O hi, im facing this problem: Fatal: can't listen in UNIX socket /var/rin/dovecot/login/ /usr/lib/dovecot/imap-login: No such file or directory Errror: child xxxxx (auth) returned error 98 any idea? - bini From sean@tcob1.net Sat Oct 12 19:18:50 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 12 Oct 2002 19:18:50 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from s2.uklinux.net (smtp2.uklinux.net [80.84.64.30]) by danu.procontrol.fi (Postfix) with ESMTP id 17E9D2382B for ; Sat, 12 Oct 2002 19:18:50 +0300 (EEST) Received: from tcob1.net (y-airlock008.esatclear.ie [213.202.165.8]) (authenticated) by s2.uklinux.net (8.11.6/8.11.6) with ESMTP id g9CGIm916110 for ; Sat, 12 Oct 2002 17:18:48 +0100 Envelope-To: Received: from [192.168.0.1] (helo=tcob1.net.tcob1.net ident=sean) by tcob1.net with asmtp (Exim 4.10) id 180OyZ-00020q-00 for dovecot@procontrol.fi; Sat, 12 Oct 2002 17:18:51 +0100 Date: Sat, 12 Oct 2002 17:18:38 +0100 Message-ID: From: Sean Rima To: dovecot@procontrol.fi Subject: [dovecot] replacing Courier imapd User-Agent: Wanderlust/2.9.15 (Unchained Melody) SEMI/1.14.3 (Ushinoya) FLIM/1.14.3 (=?ISO-8859-4?Q?Unebigory=F2mae?=) APEL/10.3 Emacs/21.2 (i586-pc-linux-gnu) MULE/5.0 (SAKAKI) Organization: There Can Only Be 1 X-Home-Page: http://www.tcob1.net X-GPG-Key-FingerPrint: AB0A 3748 9565 1BFD 4E77 D9D5 1CC9 D25A 7DA7 0294 X-GPG-Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x7DA70294 X-OS: Linux 2.4.19 MIME-Version: 1.0 (generated by SEMI 1.14.3 - "Ushinoya") Content-Type: text/plain; charset=US-ASCII X-archive-position: 40 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: sean@tcob1.net Precedence: bulk X-list: dovecot X-UID: 40 Status: O -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi folks, I currently use courier imapd, exim and ldap on my mail box. There are no users on this box, all info is taken from the ldap server. I note that dovecot does not use ldap as a backend, but curious if this in on the cards, or even mysql backend. Sean - -- Sean Rima http://www.tcob1.net Linux User: 231986 Jabber: tcobone@jabber.org THE VIEWS EXPRESSED HERE ARE NOT NECESSARILY THOSE OF MY WIFE. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux) Comment: Use GPG for Secure Mail iD8DBQE9qEs4HMnSWn2nApQRAn22AJ4xdGWfpxAuY8dLDuHM/XUAXms0mwCfZJzk ZD8cTK98j7f7CGcu1OENJXI= =BS5M -----END PGP SIGNATURE----- From tss@iki.fi Sat Oct 12 20:42:41 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 12 Oct 2002 20:42:41 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B9BC12382D for ; Sat, 12 Oct 2002 20:42:41 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 7E8C95E03E5C; Sat, 12 Oct 2002 20:42:41 +0300 (EEST) Subject: [dovecot] Re: auth problem From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <000e01c27203$e947a450$1964a8c0@mobilo> References: <000e01c27203$e947a450$1964a8c0@mobilo> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034444559.30856.52.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 12 Oct 2002 20:42:41 +0300 X-archive-position: 41 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 41 Status: O On Sat, 2002-10-12 at 18:27, Korbinian Riedhammer wrote: > hi, im facing this problem: > Fatal: can't listen in UNIX socket /var/rin/dovecot/login/ > /usr/lib/dovecot/imap-login: No such file or directory > Errror: child xxxxx (auth) returned error 98 Well, that error message at least looks a bit strange. Is that one or two error messages? The first one should continue but it instead shows two paths .. plus typo in /var/rin. Anyway, probably something wrong in your config file, maybe you've tried to add some path to "auth = xxx"? If not, send the whole file to me and I'll see what's wrong. Does /var/run/dovecot/login exist? And /usr/lib/dovecot/imap-login? You did do make install, right? From tss@iki.fi Sat Oct 12 20:46:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 12 Oct 2002 20:46:54 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 770472382D for ; Sat, 12 Oct 2002 20:46:54 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 42A2D5E03E5C; Sat, 12 Oct 2002 20:46:54 +0300 (EEST) Subject: [dovecot] Re: replacing Courier imapd From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034444814.30856.58.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 12 Oct 2002 20:46:54 +0300 X-archive-position: 42 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 42 Status: O On Sat, 2002-10-12 at 19:18, Sean Rima wrote: > I currently use courier imapd, exim and ldap on my mail box. There are > no users on this box, all info is taken from the ldap server. I note > that dovecot does not use ldap as a backend, but curious if this in on > the cards, or even mysql backend. It wouldn't be hard to implement them, but they're not high on my TODO-list yet. If anyone else doesn't write them, I eventually will. They would be possible through vpopmail though, since it supports them and Dovecot supports vpopmail. I wouldn't really encourage using vpopmail though, doesn't look very secure. From tss@iki.fi Tue Oct 15 04:16:57 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Oct 2002 04:16:57 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 13D9A2382D for ; Tue, 15 Oct 2002 04:16:57 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id D9E845E015A0; Tue, 15 Oct 2002 04:16:56 +0300 (EEST) Subject: [dovecot] More documentation From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034644616.24679.4.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 15 Oct 2002 04:16:56 +0300 X-archive-position: 43 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 43 Status: O I just wrote a bit of documentation. Probably not very well organized, improvement suggestions welcome :) http://dovecot.procontrol.fi/doc/INSTALL http://dovecot.procontrol.fi/doc/configuration.txt http://dovecot.procontrol.fi/doc/mail-storages.txt Those are also in the main dovecot.procontrol.fi web page. They also talk about a few features not yet in CVS.. From faulerhund@faulerhund.net Tue Oct 15 22:47:16 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Oct 2002 22:47:16 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.131]) by danu.procontrol.fi (Postfix) with ESMTP id 76DA02382D for ; Tue, 15 Oct 2002 22:47:16 +0300 (EEST) Received: from [195.20.224.206] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 181Xes-0007dC-00 for dovecot@procontrol.fi; Tue, 15 Oct 2002 21:47:14 +0200 Received: from [217.235.92.239] (helo=Bini) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 181Xer-0001oK-00 for dovecot@procontrol.fi; Tue, 15 Oct 2002 21:47:13 +0200 Message-ID: <000b01c27484$608af620$0164a8c0@Bini> From: "Korbinian Riedhammer" To: Subject: [dovecot] still problems getting it to work Date: Tue, 15 Oct 2002 21:52:21 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 44 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 44 Status: O Content-Length: 1645 hi all, after havong some other trouble with my server i finally managed to recompile and install dovecot. installed it in /usr/local (the dafault). below u see a dump of my config file. i want to use "normal" shadow passwords for authentification. i adjustet the pathes from /usr/ to /usr/local/. when i login with outlook express 4 example i get the error: unsupported authentification method. (my system isn't configured for shadow md5). in the error log i get the the /dev/urandom is needed but not found, well but i have it :) maybe a chroot setting? thx bini imap_port = 143 #imaps_port = 993 imap_listen = #imaps_listen = #ssl_cert_file = /etc/ssl/certs/imapd.pem #ssl_key_file = /etc/ssl/private/imapd.pem disable_plaintext_auth = no log_path = /var/log/imapd.log log_timestamp = %d %H:%M:%S login_executable = /usr/local/lib/dovecot/imap-login login_user = imapd login_dir = /var/run/dovecot/login login_chroot = yes login_processes_count = 1 max_logging_users = 256 imap_executable = /usr/local/lib/dovecot/imap max_imap_processes = 1024 first_valid_uid = 1000 #last_valid_uid = 0 first_valid_gid = 101 last_valid_gid = 101 valid_chroot_dirs = /var/run/dovecot maildir_copy_with_hardlinks = no maildir_check_content_changes = no overwrite_incompatible_index = yes umask = 0077 auth = default auth_methods = plain #auth_realms = auth_userinfo = shadow auth_executable = /usr/local/lib/dovecot/imap-auth auth_user = root auth_chroot = /var/run/dovecot auth_count = 1 #auth = digest_md5 #auth_methods = digest-md5 #auth_realms = #auth_userinfo = passwd-file /etc/passwd.imap #auth_user = imapauth #auth_chroot = /var/run/dovecot/auth From tss@iki.fi Tue Oct 15 23:38:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Oct 2002 23:38:37 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D3448238A3 for ; Tue, 15 Oct 2002 23:38:37 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 4EC045E107F9; Tue, 15 Oct 2002 23:38:34 +0300 (EEST) Subject: [dovecot] Re: still problems getting it to work From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <000b01c27484$608af620$0164a8c0@Bini> References: <000b01c27484$608af620$0164a8c0@Bini> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034714314.24679.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 15 Oct 2002 23:38:34 +0300 X-archive-position: 45 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 45 Status: O On Tue, 2002-10-15 at 22:52, Korbinian Riedhammer wrote: > hi all, > after havong some other trouble with my server i finally managed to > recompile and install dovecot. installed it in /usr/local (the dafault). > below u see a dump of my config file. i want to use "normal" shadow > passwords for authentification. i adjustet the pathes from /usr/ to > /usr/local/. when i login with outlook express 4 example i get the error: > unsupported authentification method. (my system isn't configured for shadow > md5). in the error log i get the the /dev/urandom is needed but not found, > well but i have it :) > maybe a chroot setting? You're right, it's the auth_chroot which breaks it. I fixed it in CVS now. But your auth process is still running as root, which makes chrooting pretty useless, so just disable it. From tss@iki.fi Tue Oct 15 23:57:35 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Oct 2002 23:57:35 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BD343238A3 for ; Tue, 15 Oct 2002 23:57:35 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 801965E107F9; Tue, 15 Oct 2002 23:57:35 +0300 (EEST) Subject: [dovecot] Re: still problems getting it to work From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <000b01c27484$608af620$0164a8c0@Bini> References: <000b01c27484$608af620$0164a8c0@Bini> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034715455.24679.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 15 Oct 2002 23:57:35 +0300 X-archive-position: 46 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 46 Status: O On Tue, 2002-10-15 at 22:52, Korbinian Riedhammer wrote: > hi all, > after havong some other trouble with my server i finally managed to > recompile and install dovecot. installed it in /usr/local (the dafault). > below u see a dump of my config file. i want to use "normal" shadow > passwords for authentification. i adjustet the pathes from /usr/ to > /usr/local/. Path changing isn't needed btw. Dovecot uses automatically the paths given with --prefix if they're not set in config file. > when i login with outlook express 4 example i get the error: > unsupported authentification method. (my system isn't configured for shadow > md5). in the error log i get the the /dev/urandom is needed but not found, > well but i have it :) > maybe a chroot setting? Also chrooting wouldn't work anyway with shadow authentication since it can't open /etc/shadow. I also just tried to see if opening shadow database before chrooting would work, but it doesn't, probably because it wants to reopen the file if it has changed. From thomas@xs4all.net Sat Oct 19 15:39:57 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 15:39:57 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id 163C1238A7 for ; Sat, 19 Oct 2002 15:39:57 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9JCdus7052057 for ; Sat, 19 Oct 2002 14:39:56 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id D6EDC2268; Sat, 19 Oct 2002 14:38:46 +0200 (CEST) Date: Sat, 19 Oct 2002 14:38:46 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Architectural questions Message-ID: <20021019123846.GK543@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 47 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 47 Status: O Content-Length: 8111 Greetings, I have some architectural questions regarding dovecot, and though I've half answered them by looking at the source, I'm also interested in hearing whether my (our) wishes and suggestions are already being considered (or can be considered, once built) for inclusion in dovecot itself. Let me first explain why I'm doing this. I work for XS4ALL, a fairly large ISP in the Netherlands. We provide a wide variety of services, including shell access, pop3, webmail, et cetera. We use Sendmail on several clusters of FreeBSD machines (loadbalanced using layer-4 ethernet switches) and several NetApp Filers (dedicated NFS servers with fail-safe disk-arrays and such) for backend. Several years ago (when we were a lot smaller) we noticed the typical use of the mailboxes included leaving much old email on the server, at least for a while, and that this is a bothersome thing when using mbox mailboxes. (The mboxes basically have to be copied over whenever the status of an email changes, leading to a lot of I/O.) We briefly played with modifying sendmail and the pop server to avoid the full copy in the common case (only status changes) by doing in-place edits of a pre-generated Status line, as well as avoid full scanning of the mbox file by creating special headers to mark the 'real' length of an email. It worked, for a while, but it wasn't going to scale very well. So we switched to maildir mailboxes for the mail spool. A modified mail.local (which we need for other reasons as well) delivers in /var/spool/mail/u/s/username, and mutt, uqwk, a modified pine and qmail's pop3 daemon read it from there. Until last week our clients could choose to have mbox inboxes, to use with 'elm' or 'mail', but we decided to discontinue that support. Our new shell servers, which are in test, don't have elm installed anymore anyway. We still have support for mbox mailboxes in a user's homedirectory though, by using procmail and such. So when we needed an IMAP server for use with our webmail (based on SquirrelMail), we were forced to go with the UW-IMAP server, with the maildir patch that's been scattered around the 'net. This worked, for a while; we also use the maildir patch with pine after all. However, the maildir patch is not very good. Not at all, even, and it only seems to work by pure chance. Pine works for the average user who does not get a lot of new mail while his pine is open or does not use procmail, and fortunately a lot of the people that do get a lot of email use mutt, which does work properly. The UW-IMAP server worked fine because SquirrelMail only uses (used) a small subset of the available functionality. But that's changing, as SquirrelMail gets actively developed, and we're also considering other IMAP-based services. But we can't switch to Courier or Cyrus because we need mbox support. And while looking for mbox patches for either of those two, I ran across dovecot. Yay! :) Dovecot is not everything we'd want, but it comes very close, and contrary to UW-IMAP both the design and the actual source code are clean, readable and logical, which means we can add the features we need and support them. What we need and want to add is fairly simple, but I've only been looking at dovecot since yesterday so I'd be happy to hear if any of it is possible, feasible, unwise or unacceptable. - First off, we need the maildir support to be 'correct' in that it does not rely on the naming of the files in the mailbox, other than the very loose specification DJB gives (doesn't contain a colon or slash and doesn't start with a dot.) The pine/UW-imap patch breaks here because it depends on the first part of the filename being time() or something else that, when sorted alphanumerically, puts new mail at the end. Our LDA does this, but procmail does not, and it shouldn't have to. - Second, we need the maildir support to be 'correct' in that it does not rely on the directory order being persistant. The NetApp Filers use btree-indexed directories, so the order of readdir() can change completely whenever a file is added or removed. The pine/uw-imap patch relies on the '.uidvalidity' file being modified whenever the maildir sort order changed, and this isn't happening. I *think*, from reading the sources, both of those are correct already. If they aren't, I'd strongly urge you to fix it, as #1 is a problem for anyone using procmail and #2 is a problem for anyone with 'indexed' directories (including such new filesystems as reiserfs, and I assume FreeBSD's new hashed directories.) - We need to avoid using fcntl(). The Netapps support it, but file-locking over NFS is very, very poorly designed and we've had too much problems of various kinds before, with fcntl. We also don't like the idea of having thousands of fcntl locks at the same time ;P Instead, we've switched to the locking method described in the Linux open(2) manpage under O_EXCL. (We call it 'dot-locking', I'm not sure where the name came from.) The actual implementation of that method is pretty simple, and I have a C version and a Python version hanging around here somewhere (the Python version is being used by GNU Mailman, last I looked.) If we're going to use dovecot, we will replace most, if not all, fcntl()s with dot-locking, the question is whether you want it contributed to dovecot :) - Every user's incoming mailbox is /var/spool/u/s/username. Other mailboxes are in /home/u/username/mail or /home/u/username/Mail (the second if the first does not exist.) We are not yet certain whether we want the inbox to be able to have subdir-mailboxes, as /var/spool and /home have different quotas and we urge people not to store their mail on /var/spool. (for one thing, it doesn't get backed-up.) We want these things to work without magical symlinks or empty files, because people _will_ delete them and cause unnecessary helpdesk calls :) Again, the question is mostly whether this is desirable in dovecot (or something enough like it to reduce local changes.) - We have over 300k mailboxes at the moment. We expect that number to keep growing. The indexer process (as described by design.txt) does not sound as a good idea in our case :) How necessary is it, really ? Especially since we do not expect more than 10% of those mailboxes to be actually used by IMAP, not even once. If disabling the indexer completely just means longer startup times for IMAP sessions, we can live with that. - The UW-IMAP maildir patch stores UID's in the indiviual filenames, using a 'U' flag. Will this interfere with dovecot ? We don't really need dovecot and UW-IMAP to share UIDs, but we would like to have an as painless transition as possible, without having to rename millions of files to remove the U flag and other flags :P It would also be nice to keep pine using the existing maildir patch, even though very few IMAP-users would use pine. - Would dovecot scale, architecturally speaking, to 500k+ active mailboxes ? The amount of hardware is not really an issue, we can add a lot of machines (off-the-shelve intel hadware) to each cluster, but if each dovecot process has to load in an index of all possible mailboxes... that would be a problem. Doing an inordinate number of file-accesses over NFS would also be a problem, but I haven't seen any indication of that in the source, yet. In case it wasn't clear yet, I'm very happy to have found dovecot. The lack of a decent mbox IMAP server has always dismayed me, let alone an mbox+maildir one :) I should also point out that even though XS4ALL is a commercial company, we would contribute our changes even if the licence didn't require it, and we want to contribute them back the way you want them, not necessarily the way it's easiest for us. We have a lot of experience with opensource software, as a simple google on my name should indicate ;P Regards, -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Sat Oct 19 17:01:56 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 17:01:56 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B8F982382D for ; Sat, 19 Oct 2002 17:01:55 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 822415E03E5C; Sat, 19 Oct 2002 17:01:55 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021019123846.GK543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035036115.1674.81.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 17:01:55 +0300 X-archive-position: 48 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 48 Status: O Content-Length: 8886 On Sat, 2002-10-19 at 15:38, Thomas Wouters wrote: > We briefly played with modifying sendmail and the pop server to avoid the > full copy in the common case (only status changes) by doing in-place edits > of a pre-generated Status line, UW-imapd does this as well, creating "X-Keywords: " line for each mail. I had thought about this first with dovecot too, but since mutt rewrote the whole mailbox always I figured I might as well. But with larger mailboxes this is really slow, so I think I'll support the X-keywords trick myself too. > as well as avoid full scanning of the mbox > file by creating special headers to mark the 'real' length of an email. For each mail? Content-Length? With my tests that didn't seem to help much, rather made it just slower.. Could be that I just did something badly, have to look into it more when I begin optimizing mbox handling more. Have to get it at least as fast as UW-imapd :) > We still have support for mbox mailboxes in a user's homedirectory though, > by using procmail and such. So when we needed an IMAP server for use with > our webmail (based on SquirrelMail), we were forced to go with the UW-IMAP > server, with the maildir patch that's been scattered around the 'net. This Hm. Squirrelmail requires SORT extension which Dovecot doesn't support yet. Notes about SORT from CVS's TODO: - sort (draft-ietf-imapext-sort) - basically sorted SEARCH, requiring CHARSET support for UTF-8 and ASCII - we could create alternative binary tree file(s) for different sort conditions, ".tree-sort" or something. or if we decide to just keep it in memory, btree could still be best choice. - required by squirrelmail (webmail) > - First off, we need the maildir support to be 'correct' in that it does > not rely on the naming of the files in the mailbox, other than the very > loose specification DJB gives (doesn't contain a colon or slash and > doesn't start with a dot.) The pine/UW-imap patch breaks here because it > depends on the first part of the filename being time() or something else > that, when sorted alphanumerically, puts new mail at the end. Our > LDA does this, but procmail does not, and it shouldn't have to. Dovecot doesn't care as long as the file name stays same before the ':' character. > - Second, we need the maildir support to be 'correct' in that it does not > rely on the directory order being persistant. The NetApp Filers use > btree-indexed directories, so the order of readdir() can change > completely whenever a file is added or removed. The pine/uw-imap patch > relies on the '.uidvalidity' file being modified whenever the maildir sort > order changed, and this isn't happening. Dovecot reads them into hash so it doesn't depend on readdir() behaviour. > - We need to avoid using fcntl(). The Netapps support it, but file-locking > over NFS is very, very poorly designed and we've had too much problems of > various kinds before, with fcntl. We also don't like the idea of having > thousands of fcntl locks at the same time ;P Instead, we've switched to > the locking method described in the Linux open(2) manpage under O_EXCL. > (We call it 'dot-locking', I'm not sure where the name came from.) Hmm. The dot-lock means the "mbox.lock" file which gets created when someone wants it exclusively locked. Dovecot supports it, and maildir itself doesn't need locking at all. Dovecot's index files currently use fcntl()-locking, but it would be possible to replace them with lock files. Then there's modify log file. Dovecot uses fcntl() locking for it as a way to figure out if it's the only one using the log file. Like make everyone read-lock the file, then if someone wants to know if it's the only one using it it tries to set write-lock on, if it fails it knows someone else it using it as well. I'm not sure if there's any good way to replace that by using files, I had pretty complicated (desperate) plans before figuring out fcntl() could be used to do it easily. It would be possible to just assume that there's always someone else using the modify log, but each flag change or expunge would always write a few bytes to it then, and when log file is switched (there's .log and .log.2) it wouldn't be truncated after last process is finished with it which is not too bad since after the next switch it will be truncated. Also it would be possible not to use index files at all but just keep them in memory. I've been fixing code to make this possible and somewhat fast. > If we're going to > use dovecot, we will replace most, if not all, fcntl()s with dot-locking, > the question is whether you want it contributed to dovecot :) All locking goes through file_*_lock() or mbox_lock_*() functions. mbox locking supports it already, and file_*_lock() could be made to support it. It doesn't get currently file name but that could be done. > - Every user's incoming mailbox is /var/spool/u/s/username. Other mailboxes > are in /home/u/username/mail or /home/u/username/Mail (the second if the > first does not exist.) We are not yet certain whether we want the inbox > to be able to have subdir-mailboxes, as /var/spool and /home have > different quotas and we urge people not to store their mail on > /var/spool. (for one thing, it doesn't get backed-up.) We want these > things to work without magical symlinks or empty files, because people > _will_ delete them and cause unnecessary helpdesk calls :) Again, the > question is mostly whether this is desirable in dovecot (or something > enough like it to reduce local changes.) Are maildir inboxes also in /var/spool? With mbox sub-inboxes wouldn't be even possible because dir structure == mailbox structure, and since inbox file exists there can't be inbox-dir (except maybe with different case but that's kludgy). I've also thought I might as well make it possible to read the mbox inbox from /var/mail or whereever it is. Pretty easy to do, but .lock file is problematic if new files can't be added to the /var/mail directory. > - We have over 300k mailboxes at the moment. We expect that number to keep > growing. The indexer process (as described by design.txt) does not sound > as a good idea in our case :) How necessary is it, really ? Especially > since we do not expect more than 10% of those mailboxes to be actually > used by IMAP, not even once. If disabling the indexer completely just > means longer startup times for IMAP sessions, we can live with that. Indexer doesn't exist yet, and wouldn't be really needed even. I still think it could be somewhat nice idea, the system load is probably less during night so we could use the extra time to make mailboxes perform faster next day. It'd be difficult to know when exactly there is "extra time" which is why I haven't yet done the indexer. Probably needs some external program (script) which tells it by maybe looking at some I/O statistics from /proc or doing a few file operations and checking the latency. Am I right in that CPU usage still isn't any problem but rather the I/O? > - The UW-IMAP maildir patch stores UID's in the indiviual filenames, using > a 'U' flag. Will this interfere with dovecot ? We don't really need > dovecot and UW-IMAP to share UIDs, but we would like to have an as > painless transition as possible, without having to rename millions of > files to remove the U flag and other flags :P It would also be nice to > keep pine using the existing maildir patch, even though very few > IMAP-users would use pine. How exactly does the U flag work? I hope it's before the ':' character like Courier's S=filesize? Otherwise U=1234 would be thought of as 6 different flags which isn't very good since Dovecot reorders them as 1234=U. > - Would dovecot scale, architecturally speaking, to 500k+ active mailboxes ? > The amount of hardware is not really an issue, we can add a lot of > machines (off-the-shelve intel hadware) to each cluster, but if each > dovecot process has to load in an index of all possible mailboxes... that > would be a problem. Doing an inordinate number of file-accesses over NFS > would also be a problem, but I haven't seen any indication of that in the > source, yet. Dovecot opens the index when opening mailbox. It doesn't open other mailboxes indexes. Also the indexes should make the file accesses less than otherwise, especially with mbox since it wouldn't need to read and parse the whole mbox file. In general I've tried to keep the file I/O as little as possible. If your clusters access the files through NFS, there should be no problem. Except I've never tried Dovecot through NFS, and I'm not sure how well mmap()ing works through NFS. I know there's been problems before but hopefully they've been fixed already. From thomas@xs4all.net Sat Oct 19 18:11:38 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 18:11:38 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id F2204238A7 for ; Sat, 19 Oct 2002 18:11:37 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9JFBbW0074539; Sat, 19 Oct 2002 17:11:37 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 9191F2268; Sat, 19 Oct 2002 17:10:26 +0200 (CEST) Date: Sat, 19 Oct 2002 17:10:26 +0200 From: Thomas Wouters To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021019151026.GM543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035036115.1674.81.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 49 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 49 Status: O Content-Length: 7406 On Sat, Oct 19, 2002 at 05:01:55PM +0300, Timo Sirainen wrote: > On Sat, 2002-10-19 at 15:38, Thomas Wouters wrote: > > We briefly played with modifying sendmail and the pop server to avoid the > > full copy in the common case (only status changes) by doing in-place edits > > of a pre-generated Status line, > UW-imapd does this as well, creating "X-Keywords: " line for > each mail. I had thought about this first with dovecot too, but since > mutt rewrote the whole mailbox always I figured I might as well. But > with larger mailboxes this is really slow, so I think I'll support the > X-keywords trick myself too. Well, for POP3 servers the story is a bit different than IMAP. The typical use we were seeing was "user", "pass", "list", "retr ", "quit". Sometimes (for some users) every few minutes. In that case, having to write a 'RO' at a specific location in a large mbox is oodles more efficient than copying the whole thing to local disk and back again (which is what the popserver would do.) I'm not sure if it matters much with typical IMAP usage. > > as well as avoid full scanning of the mbox file by creating special > > headers to mark the 'real' length of an email. > For each mail? Content-Length? With my tests that didn't seem to help > much, rather made it just slower.. Could be that I just did something > badly, have to look into it more when I begin optimizing mbox handling > more. Have to get it at least as fast as UW-imapd :) Well, if I recall correctly, we added an 'X-Offset' header which pointed to the exact (relative) byte offset for the next 'From ' line. It made our pop3d (a modified qpopper 2.3 by the way) a much happier puppy. I'm not sure what the difference with Content-Length was. I could find the sources, I suppose; since we disabled mbox-inbox support we aren't using that code anymore. > > We still have support for mbox mailboxes in a user's homedirectory though, > > by using procmail and such. So when we needed an IMAP server for use with > > our webmail (based on SquirrelMail), we were forced to go with the UW-IMAP > > server, with the maildir patch that's been scattered around the 'net. This > Hm. Squirrelmail requires SORT extension which Dovecot doesn't support > yet. Ah, that's a shame. It means we can't use dovecot for our internal SquirrelMail+IMAP testing yet :) We likely wouldn't start using dovecot for production SquirrelMail anytime soon anyway, so it's not a big issue right now... We'll have to see if our other uses of IMAP require it or not. > Dovecot doesn't care [about maildir-message filenames] as long as the file > name stays same before the ':' character. They do. > It would be possible to just assume that there's always someone else > using the modify log, but each flag change or expunge would always write > a few bytes to it then, and when log file is switched (there's .log and > .log.2) it wouldn't be truncated after last process is finished with it > which is not too bad since after the next switch it will be truncated. > Also it would be possible not to use index files at all but just keep > them in memory. I've been fixing code to make this possible and somewhat > fast. Hmm. I'd have to look at the code to say for sure, but I think we could live with keeping them in memory. Accessing the same mailbox from two different clients at the same time is not something we're too worried about, at the moment. > > - Every user's incoming mailbox is /var/spool/u/s/username. > Are maildir inboxes also in /var/spool? Yes. We don't use the ~/Maildir structure at all. We've always simply used maildir mailboxes as a directly replacement of mbox mailboxes; a directory instead of a file, and no sub-boxes :) I guess it's a philosphical difference. To me, and to my colleagues, everything can be a mailbox, not just something stored in an arbitrary directory somewhere. I guess we could change that position, if necessary, but so far it hasn't proven to be. > With mbox sub-inboxes wouldn't be even possible because dir structure == > mailbox structure, and since inbox file exists there can't be inbox-dir > (except maybe with different case but that's kludgy). Yes... don't worry, we don't even want to consider mbox-subboxes :) > I've also thought I might as well make it possible to read the mbox > inbox from /var/mail or whereever it is. Pretty easy to do, but .lock > file is problematic if new files can't be added to the /var/mail > directory. Our /var/spool/mail subdirectories are mode 01733 (drwx-wx-wt) owned by root, so creating files and removing them is not an issue, but reading the directory is. You can of course still check for existance of specific filenames. > Am I right in that CPU usage still isn't any problem but rather the I/O? Yes. As I said, we use several netapp filers (currently two for /home and two for /var/spool/mail, with several hundred gigabytes filespace each) and though they're great boxes, their performance does tend to drop off when it gets flooded with I/O requests :) And they're used by a lot of machines, so if they are slow to respond, a lot of our services do too. > > - The UW-IMAP maildir patch stores UID's in the indiviual filenames, using > > a 'U' flag. Will this interfere with dovecot ? We don't really need > > dovecot and UW-IMAP to share UIDs, but we would like to have an as > > painless transition as possible, without having to rename millions of > > files to remove the U flag and other flags :P It would also be nice to > > keep pine using the existing maildir patch, even though very few > > IMAP-users would use pine. > How exactly does the U flag work? I hope it's before the ':' character > like Courier's S=filesize? Otherwise U=1234 would be thought of as 6 > different flags which isn't very good since Dovecot reorders them as > 1234=U. No, it can't be before the :, because the UID is generated by UW-IMAP, and the maildir spec says you can't change the uniqe part of the name, just the info :) Here are some examples. The ',U*' is the UID. _k2,6NtZ9.maildrop4.xs4all.nl:2,S,U1030712092 _fmT,O63l8.maildrop8.xs4all.nl:2,RS,U1026644784 990612135.16312.000000002.maildrop2.xs4all.nl:2,S,U991994304 993058841.maildrop7.49267:2,S,U993058888 (In case you're wondering, the first two files were created by standard procmail, the third by our modified procmail which tries to allow for the pine/uw-imap maildir patch, and the last is our mail.local's format.) As long as dovecot doesn't read a different meaning into those flags (ignoring them is just fine) we should be fine. I don't think we'll have many customers switching back and forth between dovecot and UW-IMAP, just people switching from UW-IMAP to dovecot. > If your clusters access the files through NFS, there should be no > problem. Except I've never tried Dovecot through NFS, and I'm not sure > how well mmap()ing works through NFS. I know there's been problems > before but hopefully they've been fixed already. I'm not too worried about bugs. I've yet to see a piece of software that we don't find oodles of small and large bugs in just by installing and trying to run on our clientbase. That's what testing is for :) But I wouldn't mind being happily suprised by dovecot, we'll see :) -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Sat Oct 19 18:53:44 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 18:53:44 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C511F2382D for ; Sat, 19 Oct 2002 18:53:43 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 941B65E03E5C; Sat, 19 Oct 2002 18:53:43 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021019151026.GM543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021019151026.GM543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035042823.1679.127.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 18:53:43 +0300 X-archive-position: 50 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 50 Status: O Content-Length: 4750 On Sat, 2002-10-19 at 18:10, Thomas Wouters wrote: > Well, if I recall correctly, we added an 'X-Offset' header which pointed to > the exact (relative) byte offset for the next 'From ' line. It made our > pop3d (a modified qpopper 2.3 by the way) a much happier puppy. I'm not sure > what the difference with Content-Length was. I could find the sources, I > suppose; since we disabled mbox-inbox support we aren't using that code > anymore. Content-Length saves just the size of mail body, so it can be skipped over. I implemented it mostly because mutt doesn't escape the "From " lines when saving mails so it was a bit difficult sometimes to figure out if the From-line means a new mail or if it was just written into the mail body. I'm not sure what I should do with Dovecot, both From-line escaping and Content-Length writing makes it annoyingly slower then now with more code.. > > Also it would be possible not to use index files at all but just keep > > them in memory. I've been fixing code to make this possible and somewhat > > fast. > > Hmm. I'd have to look at the code to say for sure, but I think we could live > with keeping them in memory. Accessing the same mailbox from two different > clients at the same time is not something we're too worried about, at the > moment. Well, Outlook (and OE I think) opens two simultaneous connections sometimes to fetch mails. Not having index files doesn't affect the possibility to have multiple connections, but it affects the overall performance because it needs to do more I/O, especially with mbox. > > I've also thought I might as well make it possible to read the mbox > > inbox from /var/mail or whereever it is. Pretty easy to do, but .lock > > file is problematic if new files can't be added to the /var/mail > > directory. > > Our /var/spool/mail subdirectories are mode 01733 (drwx-wx-wt) owned by > root, so creating files and removing them is not an issue, but reading the > directory is. You can of course still check for existance of specific > filenames. OK, no problem then. > > How exactly does the U flag work? I hope it's before the ':' character > > like Courier's S=filesize? Otherwise U=1234 would be thought of as 6 > > different flags which isn't very good since Dovecot reorders them as > > 1234=U. > > No, it can't be before the :, because the UID is generated by UW-IMAP, and > the maildir spec says you can't change the uniqe part of the name, just the > info :) Here are some examples. The ',U*' is the UID. > > _k2,6NtZ9.maildrop4.xs4all.nl:2,S,U1030712092 > _fmT,O63l8.maildrop8.xs4all.nl:2,RS,U1026644784 > 990612135.16312.000000002.maildrop2.xs4all.nl:2,S,U991994304 > 993058841.maildrop7.49267:2,S,U993058888 Well, maildir spec also doesn't say you can add flags with parameters using comma separators :) But I think that's good enough extension that Dovecot could support as well. Programs supporting Courier's Maildir++ quota writes the mails immediately like "something,S=size". Something like that could have been done by UID-capable mailers too, since UID won't change. > As long as dovecot doesn't read a different meaning into those flags > (ignoring them is just fine) we should be fine. I don't think we'll have > many customers switching back and forth between dovecot and UW-IMAP, just > people switching from UW-IMAP to dovecot. Keeping the UIDs untouched when changing could be important to some people whose mail clients can save some extra information related to specific messages and use UID to identify the mails. I think Evolution does this with it's labels and Follow-Up marks, but I'm not sure. Dovecot currently doesn't try to keep the UIDs too heavily itself either, if it notices some corruption it just recreates the index files with new UIDs. Supporting in-memory indexes requires still saving the UIDs somewhere in disk so this should get fixed while doing it. > I'm not too worried about bugs. I've yet to see a piece of software that we > don't find oodles of small and large bugs in just by installing and trying > to run on our clientbase. That's what testing is for :) But I wouldn't mind > being happily suprised by dovecot, we'll see :) We've had 3 people using it for a few months now, one of them still gets sometimes "message not found" error from Outlook Express, I've yet to figure out when exactly that happens. The mail isn't lost and restarting OE helps, so it's probably something to do with having those two simultaneous connections (and I'm just now making bigger changes there). Other than that it's worked quite fine :) Then of course CVS has a lot large changes which haven't been tested much yet. Hopefully I'll get them fixed well enough this weekend to be able to start using it myself. From tss@iki.fi Sat Oct 19 19:11:49 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 19:11:49 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D02AC2382D for ; Sat, 19 Oct 2002 19:11:49 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 9813D5E03E5C; Sat, 19 Oct 2002 19:11:49 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021019151026.GM543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021019151026.GM543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035043909.31051.140.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 19:11:49 +0300 X-archive-position: 51 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 51 Status: O Content-Length: 1060 On Sat, 2002-10-19 at 18:10, Thomas Wouters wrote: > > Am I right in that CPU usage still isn't any problem but rather the I/O? > > Yes. As I said, we use several netapp filers (currently two for /home and > two for /var/spool/mail, with several hundred gigabytes filespace each) and > though they're great boxes, their performance does tend to drop off when it > gets flooded with I/O requests :) And they're used by a lot of machines, so > if they are slow to respond, a lot of our services do too. I was mostly wondering with this if the reason to add more computers to cluster is because the imap processes are taking too much memory, too much CPU or if neither of them is any problem and the cluster is just for redundancy or because of other running programs. I'd be interested to know how many dovecot processes could actually run in a single computer especially with fast NFS file access :) I'd guess it could run a lot, but when memory gets low the I/O usage raises since it needs to read again the parts of indexes which got dropped from memory. From faulerhund@faulerhund.net Sat Oct 19 19:24:01 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 19:24:02 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.130]) by danu.procontrol.fi (Postfix) with ESMTP id D51E6238A7 for ; Sat, 19 Oct 2002 19:24:01 +0300 (EEST) Received: from [212.227.126.220] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 182wON-00080b-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 18:23:59 +0200 Received: from [217.229.166.89] (helo=Bini) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 182wON-0001BG-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 18:23:59 +0200 Message-ID: <003b01c2778c$a6884370$0164a8c0@Bini> From: "Korbinian Riedhammer" To: "Dovecot Mailinglist" Subject: [dovecot] still problems gettin it to work Date: Sat, 19 Oct 2002 18:29:08 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 52 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 52 Status: O i checked all my options again. could it be, that it is a problem with my compiler? does dovecot support gcc3.2 with glibc 2.2.5? korbinian From tss@iki.fi Sat Oct 19 19:27:45 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 19:27:45 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4F2F5238A7 for ; Sat, 19 Oct 2002 19:27:45 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 0ECE55E03E5C; Sat, 19 Oct 2002 19:27:45 +0300 (EEST) Subject: [dovecot] Re: still problems gettin it to work From: Timo Sirainen To: Korbinian Riedhammer Cc: Dovecot Mailinglist In-Reply-To: <003b01c2778c$a6884370$0164a8c0@Bini> References: <003b01c2778c$a6884370$0164a8c0@Bini> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035044864.1674.143.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 19:27:44 +0300 X-archive-position: 53 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 53 Status: O On Sat, 2002-10-19 at 19:29, Korbinian Riedhammer wrote: > i checked all my options again. could it be, that it is a problem with my > compiler? does dovecot support gcc3.2 with glibc 2.2.5? Well, what's the problem with it now? Didn't that /dev/urandom problem go away with unsetting auth_chroot setting? From faulerhund@faulerhund.net Sat Oct 19 19:56:55 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 19:56:55 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.149]) by danu.procontrol.fi (Postfix) with ESMTP id 699AF238A7 for ; Sat, 19 Oct 2002 19:56:55 +0300 (EEST) Received: from [212.227.126.220] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 182wuE-0005AD-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 18:56:54 +0200 Received: from [217.229.166.89] (helo=Bini) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 182wuE-0002u1-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 18:56:54 +0200 Message-ID: <005d01c27791$4011d930$0164a8c0@Bini> From: "Korbinian Riedhammer" To: "Dovecot Mailinglist" Subject: [dovecot] Re: still problems gettin it to work Date: Sat, 19 Oct 2002 19:02:03 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 54 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 54 Status: O well i didn't know what to change, cause u wrote that this change u did is pretty useless rinning the prog as root, what i do. next thing that i dont have any idea about cvs (beside knowing its meaning) and dont hav it installed yet. From tss@iki.fi Sat Oct 19 19:59:22 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 19:59:22 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C7B16238A7 for ; Sat, 19 Oct 2002 19:59:22 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 99EA15E03E5C; Sat, 19 Oct 2002 19:59:22 +0300 (EEST) Subject: [dovecot] Re: still problems gettin it to work From: Timo Sirainen To: Korbinian Riedhammer Cc: Dovecot Mailinglist In-Reply-To: <005d01c27791$4011d930$0164a8c0@Bini> References: <005d01c27791$4011d930$0164a8c0@Bini> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035046762.1674.148.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 19:59:22 +0300 X-archive-position: 55 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 55 Status: O On Sat, 2002-10-19 at 20:02, Korbinian Riedhammer wrote: > well i didn't know what to change, cause u wrote that this change u did is > pretty useless rinning the prog as root, what i do. next thing that i dont > have any idea about cvs (beside knowing its meaning) and dont hav it > installed yet. Well, just don't set the auth_chroot and ignores the rest of what I said. That should get it working. From faulerhund@faulerhund.net Sat Oct 19 20:04:30 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 20:04:30 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.200]) by danu.procontrol.fi (Postfix) with ESMTP id 969F2238A7 for ; Sat, 19 Oct 2002 20:04:30 +0300 (EEST) Received: from [195.20.224.206] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 182x1a-0002pK-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 19:04:30 +0200 Received: from [217.229.166.89] (helo=Bini) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 182x1Z-0003C1-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 19:04:30 +0200 Message-ID: <006701c27792$4f863040$0164a8c0@Bini> From: "Korbinian Riedhammer" To: "Dovecot Mailinglist" Subject: [dovecot] Re: still problems gettin it to work Date: Sat, 19 Oct 2002 19:09:39 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 56 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 56 Status: O yeah, the nasty error msgs are gone :) well next question. where looks the dovcot imapd for the mail dir? /var/mail or the homedir? 'cause i saved my Maildir in /home/user From tss@iki.fi Sat Oct 19 20:08:34 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 20:08:34 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4C086238A7 for ; Sat, 19 Oct 2002 20:08:34 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 0FC605E03E5C; Sat, 19 Oct 2002 20:08:31 +0300 (EEST) Subject: [dovecot] Re: still problems gettin it to work From: Timo Sirainen To: Dovecot Mailinglist In-Reply-To: <006701c27792$4f863040$0164a8c0@Bini> References: <006701c27792$4f863040$0164a8c0@Bini> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035047310.1674.152.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 20:08:30 +0300 X-archive-position: 57 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 57 Status: O On Sat, 2002-10-19 at 20:09, Korbinian Riedhammer wrote: > yeah, the nasty error msgs are gone :) > well next question. where looks the dovcot imapd for the mail dir? /var/mail > or the homedir? 'cause i saved my Maildir in /home/user It uses ~/Maildir always. From faulerhund@faulerhund.net Sat Oct 19 20:17:48 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 20:17:48 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.131]) by danu.procontrol.fi (Postfix) with ESMTP id 555172382D for ; Sat, 19 Oct 2002 20:17:48 +0300 (EEST) Received: from [212.227.126.220] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 182xES-0000X5-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 19:17:48 +0200 Received: from [217.229.166.89] (helo=Bini) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 182xER-0003ij-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 19:17:47 +0200 Message-ID: <008901c27794$2b0de030$0164a8c0@Bini> From: "Korbinian Riedhammer" To: "Dovecot Mailinglist" Subject: [dovecot] Re: still problems gettin it to work Date: Sat, 19 Oct 2002 19:22:57 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 58 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 58 Status: O well finally it was my own stupidness! i just forgot to set some correct permissions, now everythings fine! thx anyway korbinian From ianj@ian-justman.com Sun Oct 20 09:38:35 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 20 Oct 2002 09:38:35 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from narshe.chocobo.org (dsl-207-126-72-242.dsl.netasset.net [207.126.72.242]) by danu.procontrol.fi (Postfix) with ESMTP id C321D238A7 for ; Sun, 20 Oct 2002 09:38:34 +0300 (EEST) Received: from zozo.intrn.chocobo.org (zozo.chocobo.org [207.126.72.244]) by narshe.chocobo.org (Postfix) with ESMTP id 18975311609 for ; Sat, 19 Oct 2002 23:38:31 -0700 (PDT) Received: by zozo.intrn.chocobo.org (Postfix, from userid 501) id 5C94C870704; Sat, 19 Oct 2002 23:38:30 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zozo.intrn.chocobo.org (Postfix) with ESMTP id 10A40449AD4 for ; Sat, 19 Oct 2002 23:38:29 -0700 (PDT) Date: Sat, 19 Oct 2002 23:38:29 -0700 (PDT) From: "Ian R. Justman" X-X-Sender: ianj@zozo.chocobo.org To: Dovecot Mailinglist Subject: [dovecot] observations/qestions of mbox concurrency ability (Yay!) on current CVS Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 59 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 59 Status: O Hi, all. Just been testing out the latest "CVS" (in quotes because I'm rsyncing the source tree) versions of Dovecot lately. Tested having Pine on the machine on which Dovecot was running, talking IMAP, as well as another Pine instance, this time from my Windows machine over the wire. Things seem to be working wonderfully. Deleted a message using one instance, then refreshed the list on the other. *poof* Gone. Though I'm seeing periodic "IMAP protocol error" messages in Pine, but they don't seem to be affecting the software's operation that I can see. Anything in particular I should be on the lookout for? Otherwise, you just made my day. Correction; week. :D --Ian. From tss@iki.fi Sun Oct 20 16:47:50 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 20 Oct 2002 16:47:50 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 84B752382D for ; Sun, 20 Oct 2002 16:47:50 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 6AC945E03E5C; Sun, 20 Oct 2002 16:47:49 +0300 (EEST) Subject: [dovecot] Re: observations/qestions of mbox concurrency ability (Yay!) on current CVS From: Timo Sirainen To: "Ian R. Justman" Cc: Dovecot Mailinglist In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035121669.24867.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 20 Oct 2002 16:47:49 +0300 X-archive-position: 60 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 60 Status: O Content-Length: 1458 On Sun, 2002-10-20 at 09:38, Ian R. Justman wrote: > Tested having Pine on the machine on which Dovecot was running, talking > IMAP, as well as another Pine instance, this time from my Windows machine > over the wire. Things seem to be working wonderfully. Deleted a message > using one instance, then refreshed the list on the other. *poof* Gone. > > Though I'm seeing periodic "IMAP protocol error" messages in Pine, but > they don't seem to be affecting the software's operation that I can see. > > Anything in particular I should be on the lookout for? By default Dovecot uses .lock file and flock() locking. Some programs may use fcntl() which doesn't work with flock(), but most use .lock file as well so it doesn't really matter. I'm going to make the locking style configurable later. Anyway, I don't know of any reasons for mailbox corruption, but we don't lock the mailbox when reading from it, so it is possible that someone else might modify (expunge) the mailbox while Dovecot is reading it and the IMAP client gets corrupted message. I was thinking about fixing this using read-locking fcntl() / flock(). Maybe it could optionally create the .lock file as well, but that'd slow down simultaneous reads. Oh, and the mbox parsing code could use better checking, if there's any bugs it will corrupt the mailbox at expunge/flag rewrite. I haven't seen those though for the month or two that I've been using Dovecot+mbox to read my mail. From thomas@xs4all.net Mon Oct 21 14:53:07 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 14:53:07 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla1.xs4all.nl (smtpzilla1.xs4all.nl [194.109.127.137]) by danu.procontrol.fi (Postfix) with ESMTP id 4333B2382D for ; Mon, 21 Oct 2002 14:53:07 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla1.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9LBr6ni040943 for ; Mon, 21 Oct 2002 13:53:06 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id DC6BB224C; Mon, 21 Oct 2002 13:51:43 +0200 (CEST) Date: Mon, 21 Oct 2002 13:51:43 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021021115143.GS543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035036115.1674.81.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 61 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 61 Status: O Content-Length: 1279 On Sat, Oct 19, 2002 at 05:01:55PM +0300, Timo Sirainen wrote: > If your clusters access the files through NFS, there should be no > problem. Except I've never tried Dovecot through NFS, and I'm not sure > how well mmap()ing works through NFS. I know there's been problems > before but hopefully they've been fixed already. Hmm. I'm not sure what kind of behaviour you're looking for, but here's what I see, using a little Python script on our FreeBSD servers with a netapp-mounted filesystem. Mapping MAP_SHARED and PROT_READ|PROT_WRITE, two different machines mounting the same directory, two processes on each machine mmap()ing the same file. When one process alters the data, the other process on the same machine sees it instantly. The processes on the other machine do not see it at all, not even when re-opening the mmap or being restarted. After doing an msync() in the process that altered the data, the processes on the other machine still don't see the change; they have to re-open the mmap or be restarted before they see the change -- but when one of the processes re-opens or restarts, the other does see the change without doing anything. -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From thomas@xs4all.net Mon Oct 21 15:40:02 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 15:40:02 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id 868CD23837 for ; Mon, 21 Oct 2002 15:40:02 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9LCe2wC017139 for ; Mon, 21 Oct 2002 14:40:02 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 19E90224C; Mon, 21 Oct 2002 14:38:39 +0200 (CEST) Date: Mon, 21 Oct 2002 14:38:39 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021021123839.GW543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021019151026.GM543@xs4all.nl> <1035042823.1679.127.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035042823.1679.127.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 62 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 62 Status: O On Sat, Oct 19, 2002 at 06:53:43PM +0300, Timo Sirainen wrote: > > As long as dovecot doesn't read a different meaning into those flags > > (ignoring them is just fine) we should be fine. I don't think we'll have > > many customers switching back and forth between dovecot and UW-IMAP, just > > people switching from UW-IMAP to dovecot. > Keeping the UIDs untouched when changing could be important to some > people whose mail clients can save some extra information related to > specific messages and use UID to identify the mails. I think Evolution > does this with it's labels and Follow-Up marks, but I'm not sure. Well, what I meant was that currently, IMAP is being used only by SquirrelMail, and I'm fairly sure SquirrelMail doesn't store UIDs anywhere. Other IMAP clients would be an issue only if we allowed other IMAP clients to connect, which we don't (except in internal tests :). -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From thomas@xs4all.net Mon Oct 21 16:04:50 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 16:04:50 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla5.xs4all.nl (smtpzilla5.xs4all.nl [194.109.127.141]) by danu.procontrol.fi (Postfix) with ESMTP id 3F98523837 for ; Mon, 21 Oct 2002 16:04:50 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla5.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9LD4gEH017726; Mon, 21 Oct 2002 15:04:47 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 4840D224C; Mon, 21 Oct 2002 15:03:19 +0200 (CEST) Date: Mon, 21 Oct 2002 15:03:19 +0200 From: Thomas Wouters To: Charlie Brady Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021021130319.GX543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 63 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 63 Status: O Content-Length: 2995 On Sat, Oct 19, 2002 at 12:42:25PM -0400, Charlie Brady wrote: > > So when we needed an IMAP server for use with our webmail (based on > > SquirrelMail), we were forced to go with the UW-IMAP server, with the > > maildir patch that's been scattered around the 'net. This worked, for a > > while; we also use the maildir patch with pine after all. However, the > > maildir patch is not very good. Not at all, even, and it only seems to > > work by pure chance. > The best one I've found is the patch last modified AFAICT by Miquel van > Smoorenburg, which has maildir filenames like: > time.pid.host,U=xxx,W=yyy:2,flags We use two different patches, both of which have a bit of Mike in them. One is for the IMAP server, which is an old version ('uw-imap-2000' or something like that comes to mind, but it came from the pine 4.10 source) from before the mailbox->append prototype changed (but with Mike's bilennium-patch.) A big problem with later patches was that the append method changed in the pine source, but not in the maildir patch. We considered using a newer uw-imap but decided that the current one works good enough ;P For pine we currently use the patch that comes with Debian's 'pine-tracker' package (which is an installer for pine with patches, since you aren't allowed to distributed modified binaries.) This patch also has some Mike in it, but I'm not sure howmuch, as at least parts of it seem to be backed out later. This patch works okay except for the two problems I noted in my original mail: it depends on directory order not to change except when '.uidvalidity' gets touched, and it depends on alphanumerical sort order of files matching chronological (or at least uid-based, which should be the same) sort order. The latter breaks with (standard) procmail, the former occasionally with btree and (presumably) hashed directory indices. > The storage of RFC822.SIZE, aka the on-the-wire size, in the filename > makes a very big difference to performance. That's interesting. I'll keep that in mind for when we begin to see performance issues with UW-IMAP. (I'm hoping I never have to look at the pine source again, though.) > But even this patch (from, e.g. > http://www.star.le.ac.uk/~tjg/misc/uw_imap-2001a_maildir-02.patch) has a > number of bugs. I've fixed a few of them. You can find a source RPM at > ftp://ftp.e-smith.org/pub/e-smith/dev/5.6dev/SRPMS/. The fixes are: I couldn't find the source RPM for pine or (uw-)imap in that directory, but it doesn't sound like your changes solve our fundamental problems. It's not that big a deal, I think we've decided internally (I know _I_ have :) that we can't offer real IMAP services based on UW-IMAP; we'd sooner go for Cyrus or Courier, even if it does mean disallowing mboxes with IMAP. But dovecot is an even better alternative, once it has all the features we need :) -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Mon Oct 21 16:15:30 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 16:15:30 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6091723837 for ; Mon, 21 Oct 2002 16:15:30 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id B84CA5E03E5C; Mon, 21 Oct 2002 16:15:28 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021021115143.GS543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035206128.613.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 21 Oct 2002 16:15:28 +0300 X-archive-position: 64 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 64 Status: O Content-Length: 1114 On Mon, 2002-10-21 at 14:51, Thomas Wouters wrote: > Hmm. I'm not sure what kind of behaviour you're looking for, but here's what > I see, using a little Python script on our FreeBSD servers with a > netapp-mounted filesystem. Mapping MAP_SHARED and PROT_READ|PROT_WRITE, two > different machines mounting the same directory, two processes on each > machine mmap()ing the same file. > > When one process alters the data, the other process on the same machine sees > it instantly. The processes on the other machine do not see it at all, not > even when re-opening the mmap or being restarted. After doing an msync() in > the process that altered the data, the processes on the other machine still > don't see the change; they have to re-open the mmap or be restarted before > they see the change -- but when one of the processes re-opens or restarts, > the other does see the change without doing anything. Requiring msync() is fine, that's done after each change, but there should be better solution than re-mmap()ing to notice the changes. I think FreeBSD checked the changes after fcntl() locking changes :) From thomas@xs4all.net Mon Oct 21 17:20:52 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 17:20:52 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id BA14223837 for ; Mon, 21 Oct 2002 17:20:52 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9LEKqkc068326 for ; Mon, 21 Oct 2002 16:20:52 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 1D65A4ACB; Mon, 21 Oct 2002 16:19:29 +0200 (CEST) Date: Mon, 21 Oct 2002 16:19:29 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021021141929.GY543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035206128.613.8.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 65 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 65 Status: O Content-Length: 1435 On Mon, Oct 21, 2002 at 04:15:28PM +0300, Timo Sirainen wrote: > Requiring msync() is fine, that's done after each change, but there > should be better solution than re-mmap()ing to notice the changes. I > think FreeBSD checked the changes after fcntl() locking changes :) Hmm. More bad news; flock() doesn't work over NFS. That is, local processes see and honor the lock even on NFS filesystems, but other machines don't see the lock at all. fcntl() doesn't work at all (but that's probably because we're not running lockd.) I've tried various ways of forcing other machines to update their filesystem cache without doing something on those machines (so you can optionally do that after the msync()) by changing atime, mtime, nlinks, but so far, nothing. I should point out that the file-metadata (mtime/ctime/nlinks) returned by fstat() sometimes do get updated, and sometimes they don't. Same for stat(). That aside, this issue isn't that big an issue for us. The same-client-connecting-twice case we can solve by configuring the layer-4 ethernet switch to connect the same ipaddress to the same real server, so that mmaps() are properly shared and all. We might want per-mailbox locks so that only one real server can open a specific mailbox (but do so multiple times) but I'll figure that one out later. -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Mon Oct 21 17:49:30 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 17:49:30 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4035223837 for ; Mon, 21 Oct 2002 17:49:30 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 115105E03E5C; Mon, 21 Oct 2002 17:49:30 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021021141929.GY543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035211769.613.48.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 21 Oct 2002 17:49:29 +0300 X-archive-position: 66 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 66 Status: O Content-Length: 1820 On Mon, 2002-10-21 at 17:19, Thomas Wouters wrote: > > Requiring msync() is fine, that's done after each change, but there > > should be better solution than re-mmap()ing to notice the changes. I > > think FreeBSD checked the changes after fcntl() locking changes :) > > Hmm. More bad news; flock() doesn't work over NFS. That is, local processes > see and honor the lock even on NFS filesystems, but other machines don't see > the lock at all. fcntl() doesn't work at all (but that's probably because > we're not running lockd.) flock() doesn't matter, it's used only for mbox locking where .lock file would work instead just as well. > That aside, this issue isn't that big an issue for us. The > same-client-connecting-twice case we can solve by configuring the layer-4 > ethernet switch to connect the same ipaddress to the same real server, so > that mmaps() are properly shared and all. We might want > per-mailbox locks so that only one real server can open a specific mailbox > (but do so multiple times) but I'll figure that one out later. OK. I think this could be fixed internally too. Or this is mostly a problem with index files, mbox/maildir files are currently re-mmap()ed every time they're accessed (but I'll change mbox not to do that later). Indexes currently have "sync_id" in their header, it's changed whenever the file size is changed so other processes then know to re-mmap() it. This could be optionally changed to be updated every time the file itself has changed to force others to mmap() again. The sync_id change itself could be checked using lseek() + read(). If fstat() or stat() doesn't show mtime changes, that could be a bit worse problem. I think I'm relying on that with some things.. At least new mail is checked by seeing if Maildir/cur's mtime matches .imap.index's mtime. From tss@iki.fi Tue Oct 22 04:24:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 04:24:55 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D2C9F2382D for ; Tue, 22 Oct 2002 04:24:54 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 8C06D5E03E5C; Tue, 22 Oct 2002 04:24:54 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021021141929.GY543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035249894.5044.28.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 22 Oct 2002 04:24:54 +0300 X-archive-position: 67 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 67 Status: O Content-Length: 1572 On Mon, 2002-10-21 at 17:19, Thomas Wouters wrote: > That aside, this issue isn't that big an issue for us. The > same-client-connecting-twice case we can solve by configuring the layer-4 > ethernet switch to connect the same ipaddress to the same real server, so > that mmaps() are properly shared and all. We might want > per-mailbox locks so that only one real server can open a specific mailbox > (but do so multiple times) but I'll figure that one out later. Just had a thought. Would it be feasible to _try_ to permanently assign users to one or few specific servers (via ip or maybe login proxy)? If those servers were down, it could fallback to any random one. I was thinking Dovecot's indexes could just as well be stored in local hard disk - they're not required to exist and they're not required to be in sync when opening, so it's possible to keep multiple indexes lying around in different servers. That would take care of most of the mmap() and locking problems and should make it perform a _lot_ better than through NFS. I don't know how NFS works internally, but I doubt it has any way for remote OS to determine what parts of file has changed, so re-mmap()ing would most likely always reread the whole file (or the parts that it accesses) which is quite inefficient. I really like this idea, keeping indexes in local disk where they may be considered as fast non-permanent data and then reading the actual mail data via backed up NFS server. This gets me thinking of a lot more possible optimizations to reduce NFS I/O at the cost of more local.. :) From tss@iki.fi Tue Oct 22 05:31:22 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 05:31:22 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A8EB723837 for ; Tue, 22 Oct 2002 05:31:22 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 6BF085E03E5C; Tue, 22 Oct 2002 05:31:22 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1035249894.5044.28.camel@hurina> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035253882.5041.34.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 22 Oct 2002 05:31:22 +0300 X-archive-position: 68 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 68 Status: O On Tue, 2002-10-22 at 04:24, Timo Sirainen wrote: > Just had a thought. Would it be feasible to _try_ to permanently assign > users to one or few specific servers (via ip or maybe login proxy)? If > those servers were down, it could fallback to any random one. Dovecot could actually do that itself too, authenticate user and then either locally handle it or transfer it to another node based on some configuration. > I really like this idea, keeping indexes in local disk where they may be > considered as fast non-permanent data and then reading the actual mail > data via backed up NFS server. This gets me thinking of a lot more > possible optimizations to reduce NFS I/O at the cost of more local.. :) This again makes the indexer process possible and useful, since it would be accessing only local disks. It could also delete some of the older indexes if disk space is getting full. From thomas@xs4all.net Tue Oct 22 14:50:52 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 14:50:52 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla1.xs4all.nl (smtpzilla1.xs4all.nl [194.109.127.137]) by danu.procontrol.fi (Postfix) with ESMTP id 631112382D for ; Tue, 22 Oct 2002 14:50:52 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla1.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MBoqol023592 for ; Tue, 22 Oct 2002 13:50:52 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 939694BC7; Tue, 22 Oct 2002 13:49:22 +0200 (CEST) Date: Tue, 22 Oct 2002 13:49:22 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022114922.GF543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035253882.5041.34.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 69 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 69 Status: O Content-Length: 2956 On Tue, Oct 22, 2002 at 05:31:22AM +0300, Timo Sirainen wrote: > On Tue, 2002-10-22 at 04:24, Timo Sirainen wrote: > > Just had a thought. Would it be feasible to _try_ to permanently assign > > users to one or few specific servers (via ip or maybe login proxy)? If > > those servers were down, it could fallback to any random one. Yes, the Alteons we use can be configured quite flexibly. We can easily configure, e.g., two servers as 'primary' and two fallback servers, or do load-balancing based on the output of a script, or any number of things. We only use the general load-balancing (actually just active-connection-balancing) while keeping sessions on the same server (based on remote IP) but we could look into the more intricate methods. A single IMAP server with a backup is a good start though. > Dovecot could actually do that itself too, authenticate user and then > either locally handle it or transfer it to another node based on some > configuration. You mean if you have a frontend with several backends, and the frontend proxies for the backends (with several frontends possible, for redundancy,) hmm, that might work. Diablo (the news server software) works like this, somewhat, too, and we also use it behind Alteon switches :) > > I really like this idea, keeping indexes in local disk where they may be > > considered as fast non-permanent data and then reading the actual mail > > data via backed up NFS server. This gets me thinking of a lot more > > possible optimizations to reduce NFS I/O at the cost of more local.. :) > This again makes the indexer process possible and useful, since it would > be accessing only local disks. It could also delete some of the older > indexes if disk space is getting full. Yes. Keeping things on local disk sounds good. As long as opening the same mailbox on another server doesn't break anything (or breaks 'cleanly', doesn't delete the wrong mails etc) we can definately live with much worse performance for those cases. My professional estimate is that they will be very, very rare ;P But for the time being we're more concerned with the SORT extention :) I've read the spec, and besides the natural "ugh" at having to parse the subject that way, it seems doable... except that charset support for UTF-8, as well as US-ASCII, is mandatory. I don't know any libraries that convert to/from UTF-8 (though ASCII<->UTF-8 is obviously simple :) and though it's probably easy to roll your own for iso8859-1 I'm not sure if you had a solution in mind yet. Also, supporting the other character sets (like UW-IMAP does) is probably a lot trickier. Other than the charset issues I could probably whip up a working SORT implementation given enough time... but it probably wouldn't be super-efficient, as quicksort is so much easier to start with than, say, a mergesort ;P -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From rueckert@informatik.uni-rostock.de Tue Oct 22 15:47:21 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 15:47:21 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from linux.taugt.net (wh5035.stw.uni-rostock.de [139.30.105.35]) by danu.procontrol.fi (Postfix) with ESMTP id D3C8D23837 for ; Tue, 22 Oct 2002 15:47:21 +0300 (EEST) Received: by linux.taugt.net (postwixer on board, from userid 500) id 827F82A150; Tue, 22 Oct 2002 14:47:22 +0200 (CEST) Date: Tue, 22 Oct 2002 14:47:22 +0200 From: Marcus Rueckert To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022124722.GA942@linux.taugt.net> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035253882.5041.34.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 70 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: rueckert@informatik.uni-rostock.de Precedence: bulk X-list: dovecot X-UID: 70 Status: O On 2002-10-22 05:31:22 +0000, Timo Sirainen wrote: > Subject: [dovecot] Re: Architectural questions > From: Timo Sirainen > To: dovecot@procontrol.fi > X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) > Date: 22 Oct 2002 05:31:22 +0300 > > On Tue, 2002-10-22 at 04:24, Timo Sirainen wrote: > > Just had a thought. Would it be feasible to _try_ to permanently assign > > users to one or few specific servers (via ip or maybe login proxy)? If > > those servers were down, it could fallback to any random one. > > Dovecot could actually do that itself too, authenticate user and then > either locally handle it or transfer it to another node based on some > configuration. hmm i just wanted to suggest http://www.vergenet.net/linux/perdition/ for proxying. but if dovecot could do something similar by it self this is not needed :) bow before god aehm cras ^^ marcus -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From cras@irccrew.org Tue Oct 22 16:01:46 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 16:01:46 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id B564623837 for ; Tue, 22 Oct 2002 16:01:46 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 172F74C0A0; Tue, 22 Oct 2002 16:01:46 +0300 (EEST) Date: Tue, 22 Oct 2002 16:01:46 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022130146.GB8122@irccrew.org> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20021022114922.GF543@xs4all.nl> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 71 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 71 Status: O Content-Length: 3419 On Tue, Oct 22, 2002 at 01:49:22PM +0200, Thomas Wouters wrote: > Yes, the Alteons we use can be configured quite flexibly. We can easily > configure, e.g., two servers as 'primary' and two fallback servers, or do > load-balancing based on the output of a script, or any number of things. We > only use the general load-balancing (actually just > active-connection-balancing) while keeping sessions on the same server > (based on remote IP) but we could look into the more intricate methods. A > single IMAP server with a backup is a good start though. OK, they'd probably be better than any Dovecot proxies I think. > > Dovecot could actually do that itself too, authenticate user and then > > either locally handle it or transfer it to another node based on some > > configuration. > > You mean if you have a frontend with several backends, and the frontend > proxies for the backends (with several frontends possible, for redundancy,) > hmm, that might work. Diablo (the news server software) works like this, > somewhat, too, and we also use it behind Alteon switches :) Not necessarily split to frontend/backend.. Well, that's possible too but I was thinking that every running dovecot could handle authentication and transferring connection elsewhere (via another TCP connection, login using some internal password, maybe use TLS too). > Yes. Keeping things on local disk sounds good. As long as opening the same > mailbox on another server doesn't break anything (or breaks 'cleanly', > doesn't delete the wrong mails etc) we can definately live with much worse > performance for those cases. My professional estimate is that they will be > very, very rare ;P Nothing breaks if same mailbox is opened from different computers with different indexes (or no indexes). > But for the time being we're more concerned with the SORT extention :) I've > read the spec, and besides the natural "ugh" at having to parse the subject > that way, it seems doable... The subject sorting looked very "ugh" to me too :) > except that charset support for UTF-8, as well > as US-ASCII, is mandatory. I don't know any libraries that convert to/from > UTF-8 (though ASCII<->UTF-8 is obviously simple :) and though it's probably > easy to roll your own for iso8859-1 I'm not sure if you had a solution in > mind yet. Also, supporting the other character sets (like UW-IMAP does) is > probably a lot trickier. iconv() does it all, comes with glibc. Only bigger thing to do is to parse the headers and convert the =?xxx?yyy?= things. I think everything should go either through UTF8 or without any conversion if both header and search charsets are same. > Other than the charset issues I could probably whip up a working SORT > implementation given enough time... but it probably wouldn't be > super-efficient, as quicksort is so much easier to start with than, say, > a mergesort ;P I can think of two ways to do it: 1) save search results to array, sort the array, send it to clients, delete the array. 2) sort all mails writing results into btree file, keep the file updated whenever new mails are added or deleted. then do the search in that order so we can just write out the results without any sorting. I like the 2) more, but that works only if the sort condition isn't changed. Or if it is changed, then we'd need to have multiple btree files.. And in general it slows down things if sorting isn't done often. From cras@irccrew.org Tue Oct 22 16:06:50 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 16:06:50 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id D7F1023837 for ; Tue, 22 Oct 2002 16:06:50 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id A49264C0A0; Tue, 22 Oct 2002 16:06:50 +0300 (EEST) Date: Tue, 22 Oct 2002 16:06:50 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022130650.GC8122@irccrew.org> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20021022130146.GB8122@irccrew.org> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 72 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 72 Status: O On Tue, Oct 22, 2002 at 04:01:46PM +0300, Timo Sirainen wrote: > > except that charset support for UTF-8, as well > > as US-ASCII, is mandatory. I don't know any libraries that convert to/from > > UTF-8 (though ASCII<->UTF-8 is obviously simple :) and though it's probably > > easy to roll your own for iso8859-1 I'm not sure if you had a solution in > > mind yet. Also, supporting the other character sets (like UW-IMAP does) is > > probably a lot trickier. > > iconv() does it all, comes with glibc. Um. Of course FreeBSD didn't have glibc, but iconv() is anyway pretty standard, man page says "Conforming to UNIX98". It comes as a separate library as well. BTW. does SquirrelMail also require THREAD extension? It's not much more different from SORT luckily. From thomas@xs4all.net Tue Oct 22 16:23:59 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 16:23:59 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla2.xs4all.nl (smtpzilla2.xs4all.nl [194.109.127.138]) by danu.procontrol.fi (Postfix) with ESMTP id E953E2382D for ; Tue, 22 Oct 2002 16:23:58 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla2.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MDNwHg059572 for ; Tue, 22 Oct 2002 15:23:58 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id A25BF2D43; Tue, 22 Oct 2002 15:22:28 +0200 (CEST) Date: Tue, 22 Oct 2002 15:22:28 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022132228.GG543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021022130650.GC8122@irccrew.org> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 73 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 73 Status: O Content-Length: 1288 On Tue, Oct 22, 2002 at 04:06:50PM +0300, Timo Sirainen wrote: > On Tue, Oct 22, 2002 at 04:01:46PM +0300, Timo Sirainen wrote: > > > except that charset support for UTF-8, as well > > > as US-ASCII, is mandatory. I don't know any libraries that convert to/from > > > UTF-8 (though ASCII<->UTF-8 is obviously simple :) and though it's probably > > > easy to roll your own for iso8859-1 I'm not sure if you had a solution in > > > mind yet. Also, supporting the other character sets (like UW-IMAP does) is > > > probably a lot trickier. > > iconv() does it all, comes with glibc. > Um. Of course FreeBSD didn't have glibc, but iconv() is anyway pretty > standard, man page says "Conforming to UNIX98". It comes as a separate > library as well. Yeah, I noticed the same thing :) But it still has to be a concious decision, as not all platforms come with libiconv and I wasn't sure what your target audience is, and might become. > BTW. does SquirrelMail also require THREAD extension? It's not much more > different from SORT luckily. It looks like it's optional. As a matter of fact, so is SORT :) But both would be very nice to have, not just for SquirrelMail. -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From thomas@xs4all.net Tue Oct 22 16:41:38 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 16:41:38 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id 5975F2382D for ; Tue, 22 Oct 2002 16:41:38 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MDfbcj029432 for ; Tue, 22 Oct 2002 15:41:38 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id DF54A2D43; Tue, 22 Oct 2002 15:40:07 +0200 (CEST) Date: Tue, 22 Oct 2002 15:40:07 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022134007.GH543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021022130146.GB8122@irccrew.org> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 74 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 74 Status: O Content-Length: 1983 On Tue, Oct 22, 2002 at 04:01:46PM +0300, Timo Sirainen wrote: > Only bigger thing to do is to parse the headers and convert the > =?xxx?yyy?= things. I think everything should go either through UTF8 or > without any conversion if both header and search charsets are same. I assume you only want to convert to UTF-8 or the other character sets when it's really necessary, not store all data internally as UTF-8 or wchar_t ? > I can think of two ways to do it: > 1) save search results to array, sort the array, send it to clients, delete > the array. > 2) sort all mails writing results into btree file, keep the file updated > whenever new mails are added or deleted. then do the search in that order so > we can just write out the results without any sorting. > I like the 2) more, but that works only if the sort condition isn't changed. > Or if it is changed, then we'd need to have multiple btree files.. And in > general it slows down things if sorting isn't done often. I think 2) might be an option if you're dealing with very specific SORTs. SquirrelMail, for instance, allows sorting on date, from, subject, arrival and to (but the last one only in 'sent-mail' mailbox, oddly enough) and all reverses, and in various order as well, by little buttony things on the mailbox-index page... easy to play with. (Don't forget, you can . SORT (SUBJECT REVERSE FROM REVERSE TO REVERSE DATE ARRIVAL) UTF-8 ALL and which btrees would you use how, in that case ? :) Anyway, in SquirrelMail at least, I don't think there is a system-wide 'default' for the criterium that's most often SORTed on. Simply storing the last SORT might be the optimal solution, as I think (after the initial toying with the mailbox sort order, and the occasional switch to search faster) most people won't touch their sort order once they like or are used with what they have. -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From cras@irccrew.org Tue Oct 22 17:00:13 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 17:00:13 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id C9D3B2382D for ; Tue, 22 Oct 2002 17:00:13 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 93B514C0A0; Tue, 22 Oct 2002 17:00:13 +0300 (EEST) Date: Tue, 22 Oct 2002 17:00:13 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022140013.GD8122@irccrew.org> References: <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> <20021022132228.GG543@xs4all.nl> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20021022132228.GG543@xs4all.nl> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 75 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 75 Status: O Content-Length: 1066 On Tue, Oct 22, 2002 at 03:22:28PM +0200, Thomas Wouters wrote: > > Um. Of course FreeBSD didn't have glibc, but iconv() is anyway pretty > > standard, man page says "Conforming to UNIX98". It comes as a separate > > library as well. > > Yeah, I noticed the same thing :) But it still has to be a concious > decision, as not all platforms come with libiconv and I wasn't sure what > your target audience is, and might become. Well, target audience should be as large as possible :) But I think it'd be good enough to make iconv() required for charset-support, without iconv() it would support only charsets which don't need any conversion (ascii and "search charset foo" with "=?foo?..?=") > > BTW. does SquirrelMail also require THREAD extension? It's not much more > > different from SORT luckily. > > It looks like it's optional. As a matter of fact, so is SORT :) But both > would be very nice to have, not just for SquirrelMail. Yeah. I'll add support for both later, currently there's a bit more important things to do which you'll want fixed as well :) From cras@irccrew.org Tue Oct 22 17:12:23 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 17:12:23 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 1E2272382D for ; Tue, 22 Oct 2002 17:12:23 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 2C1CE4C0A0; Tue, 22 Oct 2002 17:12:20 +0300 (EEST) Date: Tue, 22 Oct 2002 17:12:20 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022141220.GE8122@irccrew.org> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022134007.GH543@xs4all.nl> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20021022134007.GH543@xs4all.nl> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 76 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 76 Status: O Content-Length: 1875 On Tue, Oct 22, 2002 at 03:40:07PM +0200, Thomas Wouters wrote: > > Only bigger thing to do is to parse the headers and convert the > > =?xxx?yyy?= things. I think everything should go either through UTF8 or > > without any conversion if both header and search charsets are same. > > I assume you only want to convert to UTF-8 or the other character sets when > it's really necessary, not store all data internally as UTF-8 or wchar_t ? Well, there's not much stored in memory, and index files store mostly just FETCH ENVELOPE. The envelope is better to be in format where it's suitable for directly sending to IMAP client and those few things that are stored in memory aren't used by search at all. I think it'll be easier if everything was just converted when needed and it's just more CPU (and maybe memory) usage - there should be plenty of that left :) > I think 2) might be an option if you're dealing with very specific SORTs. > SquirrelMail, for instance, allows sorting on date, from, subject, arrival > and to (but the last one only in 'sent-mail' mailbox, oddly enough) and all > reverses, and in various order as well, by little buttony things on the > mailbox-index page... easy to play with. (Don't forget, you can > > . SORT (SUBJECT REVERSE FROM REVERSE TO REVERSE DATE ARRIVAL) UTF-8 ALL > > and which btrees would you use how, in that case ? :) Anyway, in Primary condition could be enough to store in the btree, the other conditions are used only when primary compares equal between mails, so we can just read those into memory and then apply the rest of the sorting. Still faster and takes less memory than reading everything into memory and then sorting. Or the btree could be fully sorted with some condition, but if it's not exactly the same we want we could just use the primary condition. (uh, a bit badly said, hope it makes some sense :) From thomas@xs4all.net Tue Oct 22 21:19:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 21:19:54 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla1.xs4all.nl (smtpzilla1.xs4all.nl [194.109.127.137]) by danu.procontrol.fi (Postfix) with ESMTP id 08BA423837 for ; Tue, 22 Oct 2002 21:19:54 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla1.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MIJoWS075157 for ; Tue, 22 Oct 2002 20:19:50 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 761CB2D43; Tue, 22 Oct 2002 20:18:19 +0200 (CEST) Date: Tue, 22 Oct 2002 20:18:19 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022181819.GI543@xs4all.nl> References: <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> <20021022132228.GG543@xs4all.nl> <20021022140013.GD8122@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021022140013.GD8122@irccrew.org> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 77 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 77 Status: O On Tue, Oct 22, 2002 at 05:00:13PM +0300, Timo Sirainen wrote: > Yeah. I'll add support for both later, currently there's a bit more > important things to do which you'll want fixed as well :) Heh. That reminds me... Have you considered using, for instance, SourceForge to host dovecot ? Or at least use something like syncmail, which mails out CVS diffs on each checkin ? I use syncmail on every CVS project, both internal and external, and I find I've grown very attached to it, and am too used to seeing what goes on in an project just by looking at the checkins :) (Not that I'm actively pushing you to use SourceForge or anything... it definately has its downsides too, if you're capable of running your own CVS server anyway.) -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From thomas@xs4all.net Tue Oct 22 21:51:09 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 21:51:09 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla5.xs4all.nl (smtpzilla5.xs4all.nl [194.109.127.141]) by danu.procontrol.fi (Postfix) with ESMTP id DA74523837 for ; Tue, 22 Oct 2002 21:51:08 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla5.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MIp8pE020363 for ; Tue, 22 Oct 2002 20:51:08 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 1F1D22D43; Tue, 22 Oct 2002 20:49:37 +0200 (CEST) Date: Tue, 22 Oct 2002 20:49:37 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022184937.GJ543@xs4all.nl> References: <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> <20021022132228.GG543@xs4all.nl> <20021022140013.GD8122@irccrew.org> <20021022181819.GI543@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021022181819.GI543@xs4all.nl> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 78 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 78 Status: O Content-Length: 1919 On Tue, Oct 22, 2002 at 08:18:19PM +0200, Thomas Wouters wrote: > Heh. That reminds me... Have you considered using, for instance, > SourceForge to host dovecot ? And while on *that* subject, the current CVS tree needs a patch like this to compile. (And the usual Makefile rebuilds.) But I'm sure you already noticed :-) Index: src/login/Makefile.am =================================================================== RCS file: /home/thomas/cvs-root/dovecot/src/login/Makefile.am,v retrieving revision 1.1.1.1 diff -c -r1.1.1.1 Makefile.am *** src/login/Makefile.am 9 Aug 2002 09:15:53 -0000 1.1.1.1 --- src/login/Makefile.am 22 Oct 2002 18:48:32 -0000 *************** *** 1,7 **** pkglib_PROGRAMS = imap-login INCLUDES = \ ! -I$(top_srcdir)/src/lib imap_login_LDADD = \ ../lib/liblib.a \ --- 1,8 ---- pkglib_PROGRAMS = imap-login INCLUDES = \ ! -I$(top_srcdir)/src/lib \ ! -DPACKAGE=\""$(PACKAGE)"\" imap_login_LDADD = \ ../lib/liblib.a \ Index: src/master/Makefile.am =================================================================== RCS file: /home/thomas/cvs-root/dovecot/src/master/Makefile.am,v retrieving revision 1.1.1.1 diff -c -r1.1.1.1 Makefile.am *** src/master/Makefile.am 9 Aug 2002 09:15:55 -0000 1.1.1.1 --- src/master/Makefile.am 22 Oct 2002 18:48:12 -0000 *************** *** 4,10 **** -I$(top_srcdir)/src/lib \ -DSYSCONFDIR=\""$(sysconfdir)"\" \ -DPKG_RUNDIR=\""$(localstatedir)/run/$(PACKAGE)"\" \ ! -DPKG_LIBDIR=\""$(pkglibdir)"\" imap_master_LDADD = \ ../lib/liblib.a --- 4,11 ---- -I$(top_srcdir)/src/lib \ -DSYSCONFDIR=\""$(sysconfdir)"\" \ -DPKG_RUNDIR=\""$(localstatedir)/run/$(PACKAGE)"\" \ ! -DPKG_LIBDIR=\""$(pkglibdir)"\" \ ! -DPACKAGE=\""$(PACKAGE)"\" imap_master_LDADD = \ ../lib/liblib.a -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Tue Oct 22 23:50:41 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 23:50:41 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BF23A23837 for ; Tue, 22 Oct 2002 23:50:41 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 408425E01F42; Tue, 22 Oct 2002 23:50:40 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021022184937.GJ543@xs4all.nl> References: <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> <20021022132228.GG543@xs4all.nl> <20021022140013.GD8122@irccrew.org> <20021022181819.GI543@xs4all.nl> <20021022184937.GJ543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035319840.1665.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 22 Oct 2002 23:50:40 +0300 X-archive-position: 79 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 79 Status: O On Tue, 2002-10-22 at 21:49, Thomas Wouters wrote: > And while on *that* subject, the current CVS tree needs a patch like this to > compile. (And the usual Makefile rebuilds.) But I'm sure you already noticed > :-) config.h should define the PACKAGE, and it does for me with both autoconf 2.13 and 2.5. Did you use GNU make? automake doesn't work very well without. > Index: src/login/Makefile.am > =================================================================== > RCS file: /home/thomas/cvs-root/dovecot/src/login/Makefile.am,v > retrieving revision 1.1.1.1 > diff -c -r1.1.1.1 Makefile.am and diff -u in future please :) From thomas@xs4all.net Wed Oct 23 00:21:33 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 00:21:33 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla5.xs4all.nl (smtpzilla5.xs4all.nl [194.109.127.141]) by danu.procontrol.fi (Postfix) with ESMTP id 151F02382D for ; Wed, 23 Oct 2002 00:21:33 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla5.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MLLWBC050470 for ; Tue, 22 Oct 2002 23:21:32 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id D36752D43; Tue, 22 Oct 2002 23:20:00 +0200 (CEST) Date: Tue, 22 Oct 2002 23:20:00 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022212000.GK543@xs4all.nl> References: <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> <20021022132228.GG543@xs4all.nl> <20021022140013.GD8122@irccrew.org> <20021022181819.GI543@xs4all.nl> <20021022184937.GJ543@xs4all.nl> <1035319840.1665.6.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035319840.1665.6.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 80 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 80 Status: O On Tue, Oct 22, 2002 at 11:50:40PM +0300, Timo Sirainen wrote: > On Tue, 2002-10-22 at 21:49, Thomas Wouters wrote: > > And while on *that* subject, the current CVS tree needs a patch like this to > > compile. (And the usual Makefile rebuilds.) But I'm sure you already noticed > > :-) > config.h should define the PACKAGE, and it does for me with both > autoconf 2.13 and 2.5. Did you use GNU make? automake doesn't work very > well without. Ah, hm, I must have done something wrong with the aclocal/autoheader/automake/autoconf dance. It wasn't in my config.h or config.h.in, but I reran aclocal and now it's in config.h.in. I'm not used to using automake, just autoconf/autoheader :) > > diff -c -r1.1.1.1 Makefile.am > and diff -u in future please :) But, but, diff -c is so much more readable! :P Sigh :) -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Wed Oct 23 00:46:21 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 00:46:21 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 17B3F2382D for ; Wed, 23 Oct 2002 00:46:21 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id ADF1E5E01F42; Wed, 23 Oct 2002 00:46:15 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021022124722.GA942@linux.taugt.net> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022124722.GA942@linux.taugt.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035323175.1665.31.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 23 Oct 2002 00:46:15 +0300 X-archive-position: 81 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 81 Status: O On Tue, 2002-10-22 at 15:47, Marcus Rueckert wrote: > i just wanted to suggest http://www.vergenet.net/linux/perdition/ > for proxying. but if dovecot could do something similar by it self this > is not needed :) It wouldn't be difficult to add proxying for dovecot, since it already does authentication and can SSL connections are pretty much proxied already through separate process. Anyway I looked at Perdition. It doesn't support AUTHENTICATE, plus I just found buffer overflow from it without even trying much. From tss@iki.fi Wed Oct 23 02:52:25 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 02:52:25 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CBF5A2382D for ; Wed, 23 Oct 2002 02:52:25 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 4A2335E01F42; Wed, 23 Oct 2002 02:52:25 +0300 (EEST) Subject: [dovecot] New mailing list: dovecot-cvs From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035330745.1664.71.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 23 Oct 2002 02:52:25 +0300 X-archive-position: 82 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 82 Status: O Installed syncmail program what Thomas was wanting. It sends a mail of each cvs commit, including the actual changes in source. Otherwise the mailing list is read-only. Subscribing happens the same way as to dovecot list, ie. dovecot-cvs-request@procontrol.fi with subscribe in subject. Hmm. I think I should also separate the private/public cvs repositories running in that computer and provide anonymous pserver access.. From tss@iki.fi Wed Oct 23 04:20:15 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 04:20:15 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7FDEB2382C for ; Wed, 23 Oct 2002 04:20:15 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id E1A4A5E01F42; Wed, 23 Oct 2002 04:20:14 +0300 (EEST) Subject: [dovecot] anonymous CVS access From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035336014.21702.41.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 23 Oct 2002 04:20:14 +0300 X-archive-position: 83 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 83 Status: O OK, added anon-pserver: cvs -d :pserver:anonymous@dovecot.procontrol.fi:/home/cvs co dovecot From thomas@xs4all.net Wed Oct 23 14:20:20 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 14:20:20 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id 06A182382C for ; Wed, 23 Oct 2002 14:20:20 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9NBKJFY030421 for ; Wed, 23 Oct 2002 13:20:19 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id BA1222E31; Wed, 23 Oct 2002 13:18:43 +0200 (CEST) Date: Wed, 23 Oct 2002 13:18:43 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] vsnprintf() Message-ID: <20021023111843.GA3563@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 84 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 84 Status: O I think I stumbled upon a bug in the i_snprintf() function. In the case of vnsprintf() being available, it depends on vnsprintf() returning -1 when the string was longer than the passed-in limit (or it won't terminate the string.). But this isn't the C99-standardized behaviour, and newer glibc's don't do that anymore either, so you can end up with a non-terminated string. This patch should fix it, I think. Index: strfuncs.c =================================================================== RCS file: /home/cvs/dovecot/src/lib/strfuncs.c,v retrieving revision 1.14 diff -c -u -r1.14 strfuncs.c --- strfuncs.c 20 Oct 2002 03:19:10 -0000 1.14 +++ strfuncs.c 23 Oct 2002 11:19:39 -0000 @@ -401,7 +401,7 @@ va_end(args); t_pop(); - if (ret < 0) { + if (ret < 0 || ret >= max_chars) { str[max_chars-1] = '\0'; ret = strlen(str); } -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Wed Oct 23 16:16:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 16:16:37 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2E1882382C for ; Wed, 23 Oct 2002 16:16:37 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 934505E01F42; Wed, 23 Oct 2002 16:16:36 +0300 (EEST) Subject: [dovecot] Re: vsnprintf() From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021023111843.GA3563@xs4all.nl> References: <20021023111843.GA3563@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035378996.28683.11.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 23 Oct 2002 16:16:36 +0300 X-archive-position: 85 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 85 Status: O On Wed, 2002-10-23 at 14:18, Thomas Wouters wrote: > I think I stumbled upon a bug in the i_snprintf() function. In the case of > vnsprintf() being available, it depends on vnsprintf() returning -1 when the > string was longer than the passed-in limit (or it won't terminate the > string.). But this isn't the C99-standardized behaviour, and newer glibc's > don't do that anymore either, so you can end up with a non-terminated > string. This patch should fix it, I think. Hm. vsnprintf() does terminate the string with \0 always, unless it returns -1. But I'll apply the patch anyway just to be sure :) Also my_vsyslog() didn't check the vsnprintf() return value at all. Have to go through that lib code more carefully some day.. From thomas@xs4all.net Wed Oct 23 16:38:07 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 16:38:07 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla1.xs4all.nl (smtpzilla1.xs4all.nl [194.109.127.137]) by danu.procontrol.fi (Postfix) with ESMTP id 07B272382C for ; Wed, 23 Oct 2002 16:38:07 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla1.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9NDc6YL048557 for ; Wed, 23 Oct 2002 15:38:06 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id E44094CF0; Wed, 23 Oct 2002 15:36:29 +0200 (CEST) Date: Wed, 23 Oct 2002 15:36:29 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: vsnprintf() Message-ID: <20021023133629.GM543@xs4all.nl> References: <20021023111843.GA3563@xs4all.nl> <1035378996.28683.11.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035378996.28683.11.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 86 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 86 Status: O Content-Length: 1204 On Wed, Oct 23, 2002 at 04:16:36PM +0300, Timo Sirainen wrote: > On Wed, 2002-10-23 at 14:18, Thomas Wouters wrote: > > I think I stumbled upon a bug in the i_snprintf() function. In the case of > > vnsprintf() being available, it depends on vnsprintf() returning -1 when the > > string was longer than the passed-in limit (or it won't terminate the > > string.). But this isn't the C99-standardized behaviour, and newer glibc's > > don't do that anymore either, so you can end up with a non-terminated > > string. This patch should fix it, I think. > Hm. vsnprintf() does terminate the string with \0 always, unless it > returns -1. But I'll apply the patch anyway just to be sure :) Hmm. Yeah, testing confirms you are right, I was just confused by the Linux manpage on the printf-functions. The FreeBSD manpage states it unambigiously: Snprintf() and vsnprintf() will write at most size-1 of the characters printed into the output string (the size'th character then gets the terminating `\0') Hey, that means I can go back and clean up some of my old code :-P -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From dgc@uchicago.edu Wed Oct 23 20:13:44 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 20:13:45 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id 4AEA12382D for ; Wed, 23 Oct 2002 20:13:44 +0300 (EEST) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id g9NHDd720129; Wed, 23 Oct 2002 12:13:39 -0500 (CDT) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Wed, 23 Oct 2002 12:13:39 -0500 From: David Champion To: Thomas Wouters Cc: dovecot@procontrol.fi Subject: [dovecot] Re: vsnprintf() Message-ID: <20021023171339.GO4662@dust.uchicago.edu> References: <20021023111843.GA3563@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021023111843.GA3563@xs4all.nl> User-Agent: Mutt/1.5.1i X-archive-position: 87 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dgc@uchicago.edu Precedence: bulk X-list: dovecot X-UID: 87 Status: O Content-Length: 2444 * On 2002.10.23, in <20021023111843.GA3563@xs4all.nl>, * "Thomas Wouters" wrote: > > I think I stumbled upon a bug in the i_snprintf() function. In the case of > vnsprintf() being available, it depends on vnsprintf() returning -1 when the > string was longer than the passed-in limit (or it won't terminate the > string.). But this isn't the C99-standardized behaviour, and newer glibc's > don't do that anymore either, so you can end up with a non-terminated > string. This patch should fix it, I think. Ah, I'm glad glibc has fixed this. (Have they fixed snprintf(), too?) This patch looks correct for Solaris, as well. There's an alternative approach that depends on the newer vsnprintf() behavior. You can use { char c, *buf; length = vsnprintf(&c, 1, fmt, vp); buf = malloc(length+1); vsnprintf(buf, length, fmt, vp); } to dynamically size the buffer as large as it needs to be. For general formatting routines, I sometimes use this idiom (not totally valid C, and no error-checking): format(...) { static char *buf = NULL; /* workspace */ static int buf_len = 0; /* usable area in buf (size - '\0') */ int fmt_len; /* length of formatted string */ ... if (buf == NULL) { /* init to minimum size */ buf = malloc(128+1); buf_len = 128; } /* Format once, and find out how long the formatted data was */ fmt_len = vsnprintf(buf, buf_len+1, fmt, vp); /* If longer than buf, resize buf amnd try again */ if (fmt_len > buf_len) { realloc(buf, (buf_len = fmt_len) + 1); vsnprintf(buf, buf_len+1, fmt, vp); } ... } This makes sure I always have a big-enough buffer, without lots of unneeded mallocing and freeing. The down-side is that it only works on modern systems, because of the issue with [v]snprintf()'s return value. And it sometimes formats the string twice, which is perhaps not good, but perhaps alright. And I guess it's not re-entrant, which could be a problem, though it could be made re-entrant with some work. :) Anyway, this is perhaps a little much for a first post to a list from someone who hasn't found time to look at or compile the code yet, but off it goes.... -- -D. We establised a fine coffee. What everybody can say Sun Project, APC/UCCO TASTY! It's fresh, so-mild, with some special coffee's University of Chicago bitter and sourtaste. "LET'S HAVE SUCH A COFFEE! NOW!" dgc@uchicago.edu Please love CAFE MIAMI. Many thanks. From tss@iki.fi Wed Oct 23 20:21:57 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 20:21:57 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A6D332382C for ; Wed, 23 Oct 2002 20:21:56 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id C67185E01F42; Wed, 23 Oct 2002 20:21:55 +0300 (EEST) Subject: [dovecot] Re: vsnprintf() From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021023171339.GO4662@dust.uchicago.edu> References: <20021023111843.GA3563@xs4all.nl> <20021023171339.GO4662@dust.uchicago.edu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035393715.29469.5.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 23 Oct 2002 20:21:55 +0300 X-archive-position: 88 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 88 Status: O On Wed, 2002-10-23 at 20:13, David Champion wrote: > There's an alternative approach that depends on the newer vsnprintf() > behavior. You can use > > { > char c, *buf; > length = vsnprintf(&c, 1, fmt, vp); > buf = malloc(length+1); > vsnprintf(buf, length, fmt, vp); > } > > to dynamically size the buffer as large as it needs to be. For general > formatting routines, I sometimes use this idiom (not totally valid C, > and no error-checking): Not too bad idea :) Dovecot currently uses a bit modified GLIB's g_printf_string_upper_bound() and then allocates enough memory based on it. Maybe using vsnprintf() could be optional (detected by configure if it works), if it's better/faster than my upper_bound() function. From tss@iki.fi Tue Oct 29 05:26:31 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 29 Oct 2002 05:26:31 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6C4712382C for ; Tue, 29 Oct 2002 05:26:31 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id CB8525E01F42; Tue, 29 Oct 2002 05:26:30 +0200 (EET) Subject: [dovecot] Re: pam + radius From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021028190110.D22448@misato.nikojet.com> References: <20021028190110.D22448@misato.nikojet.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035861990.781.23.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 29 Oct 2002 05:26:30 +0200 X-archive-position: 89 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 89 Status: O On Tue, 2002-10-29 at 05:01, Hielke Christian Braun wrote: > i am trying to use dovecot with pam and radius. My users have names > in the format joe@somedomain.com. When i have pam configured to use > the normal passwd/shadow files it works fine. With radius it does not. > I see at the radius server that the domain part of my usernames > is always replaced with the same domain @nikojet.com. I don't think > it is a problem with the pam radius, as the same library works fine > with the solid state pop3 server. Is this a fundamental problem and > dovecot/imap does not work with usernames which have a domain part or > is it a bug? You probably don't have the users in /etc/passwd file too, right? Dovecot currently wants the users to exist there too to get their UID, GID and home directory. I'll change this later so that you could give "gid=123 uid=456 homeroot=/var/mail" options to pam auth and it'd use them for all users. Or did PAM also support getting that information in some way? I'm not sure exactly.. From tss@iki.fi Tue Oct 29 07:01:47 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 29 Oct 2002 07:01:47 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 49C7F2382D for ; Tue, 29 Oct 2002 07:01:47 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 14E5B5E01F42; Tue, 29 Oct 2002 07:01:47 +0200 (EET) Subject: [dovecot] Re: pam + radius From: Timo Sirainen To: Hielke Christian Braun Cc: dovecot@procontrol.fi In-Reply-To: <20021028200037.A27315@misato.nikojet.com> References: <20021028190110.D22448@misato.nikojet.com> <1035861990.781.23.camel@hurina> <20021028200037.A27315@misato.nikojet.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035867706.779.38.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 29 Oct 2002 07:01:46 +0200 X-archive-position: 90 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 90 Status: O Content-Length: 1099 On Tue, 2002-10-29 at 06:00, Hielke Christian Braun wrote: > > You probably don't have the users in /etc/passwd file too, right? > > I have the users in the passwd and shadow files as i need that for quotas > to work. Though in the shadow file i don't have the password and only a x. > The problem must be something else. Well .. I don't know then really. Since you did get it to work by changing PAM to use shadow auth, Dovecot is doing it at least partly right. Maybe the radius PAM module requires something that Dovecot didn't do.. Looking at Courier's PAM handling, it does pam_setcred() which dovecot doesn't. You could try if doing that helps: src/auth/userinfo-pam.c, around line 169, insert between pam_authenticate() and pam_acct_mgmt(): if ((status = pam_setcred(pamh, PAM_ESTABLISH_CRED)) != PAM_SUCCESS) { if (status == PAM_ABORT) i_fatal("pam_setcred_mgmt() requested abort"); return FALSE; } > Maybe it dovecot sets a realm, which is then mistakenly used by > the pam radius module, but not by the passwd/shadow module? PAM doesn't have any support for realms AFAIK. From tss@iki.fi Sun Nov 3 02:11:15 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 03 Nov 2002 02:11:15 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A5E602382D for ; Sun, 3 Nov 2002 02:11:15 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 5B5EF5E01F55; Sun, 3 Nov 2002 02:11:15 +0200 (EET) Subject: [dovecot] Re: pam + radius From: Timo Sirainen To: Hielke Christian Braun Cc: dovecot@procontrol.fi In-Reply-To: <20021031113245.W22448@misato.nikojet.com> References: <20021028190110.D22448@misato.nikojet.com> <1035861990.781.23.camel@hurina> <20021028200037.A27315@misato.nikojet.com> <1035867706.779.38.camel@hurina> <20021031113245.W22448@misato.nikojet.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1036282275.263.1.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 03 Nov 2002 02:11:15 +0200 X-archive-position: 91 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 91 Status: O On Thu, 2002-10-31 at 21:32, Hielke Christian Braun wrote: > It helped a bit. Now the first login to dovecot works fine. The domainpart > of my username is not changed. But after the first login, dovecot > always sents the username from the first login to the radius server even when > i login from a different client with a complete different username. OK, fixed now in CVS. I implemented PAM support pretty wrong. From simon@lindgren.no Tue Nov 12 15:27:35 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 12 Nov 2002 15:27:35 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail46.fg.online.no (mail46-s.fg.online.no [148.122.161.46]) by danu.procontrol.fi (Postfix) with ESMTP id 5629F2382D for ; Tue, 12 Nov 2002 15:27:35 +0200 (EET) Received: from ti211310a080-1828.bb.online.no (ti211310a080-1828.bb.online.no [80.212.71.36]) by mail46.fg.online.no (8.9.3/8.9.3) with ESMTP id OAA04851 for ; Tue, 12 Nov 2002 14:27:34 +0100 (MET) From: Simon Lindgren To: dovecot@procontrol.fi Subject: [dovecot] Seen bug? Date: Tue, 12 Nov 2002 14:27:33 +0100 User-Agent: KMail/1.5 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200211121427.33943.simon@lindgren.no> X-archive-position: 92 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: simon@lindgren.no Precedence: bulk X-list: dovecot X-UID: 92 Status: O Content-Length: 3096 Hi, I'm using Kmail and dovecot for my IMAP pleasure, and have had some problems, which are evident from the following exchange with some kmail developers. My patch to the imap protocol in KDE fixed my problem, but should dovecot be changed instead? Thank you for any insight! I've included the discussion on kmail-devel so far: [ I wrote: ] -- I've recently switched to IMAP for email (using dovecot as the server, http://dovecot.procontrol.fi/) and have a small problem: Clicking a message brings it up, but doesn't seem to mark it read on the server. I need to select 'Message -> Mark Message -> Mark Message as Read' in order for it to "stay read" when I check for new mails on the server. Is anyone else seeing this behaviour? Is this a bug, or a feature? I've assigned a shortcut key for 'Mark Message as Read' so I get by, but with a large number of messages and folders, it quickly becomes annoying. -- [ Carsten Burghardt wrote in reply: ] -- As your imap-server is not really common you should check with ethereal the communication between kmail and your server. -- [ I wrote in reply: ] -- Thanks for the replies... snooping with ethereal, I get the following: (quoting only the data sent from kmail) When viewing a mail in kmail: UID FETCH 203 (UID RFC822) When specifically flagging it as 'read' in kmail: UID STORE 203 -FLAGS.SILENT (\SEEN \ANSWERED \FLAGGED \DRAFT) UID STORE 203 +FLAGS.SILENT (\SEEN) It would seem that my problem would be solved if kmail also sent the +FLAGS stuff when viewing a message... but I don't know if this would be according to the IMAP specification - or if the server should flag the message as 'seen' when the client does the 'fetch' ? I do have 'Mark selected message as read after 0 sec' checked - and the message is flagged in kmail as read, but without specifically marking it as read in kmail, it's still 'unread' after the next 'check mail' run. I hope I'm being clear. If you still think this is a bug with my (non standard, I agree!) IMAP server I'll try another one. -- [ I wrote another reply: ] -- I made a change to imap4.cc, and it magically works for me - I've not tested this one very much, but it seems to do the trick so far. I would be very interested if someone knowledgeable would tell me just how wrong this piece of code is, as I'm working on learning these things. --- imap4.cc Tue Oct 15 21:52:43 2002 +++ imap4.cc Tue Nov 12 01:36:05 2002 @@ -289,6 +289,11 @@ } completeQueue.removeRef (cmd); + + if (aSection.find ("ENVELOPE", 0, false) == -1) { + doCommand (imapCommand:: + clientStore (aSequence, "+FLAGS.SILENT", "\\SEEN")); + } } } -- [ Carsten Burghardt wrote: ] -- No, everything is alright here, you should check a different server. -- [ Bo Thorsen wrote: ] -- It is definately a bug in the server. The IMAP RFC specifies that a server must only once serve a file flagged as new. So your server violates this principle. From tss@iki.fi Wed Nov 13 02:10:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 13 Nov 2002 02:10:37 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0CFC82382C for ; Wed, 13 Nov 2002 02:10:37 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 881095E01F42; Wed, 13 Nov 2002 02:10:36 +0200 (EET) Subject: [dovecot] Re: Seen bug? From: Timo Sirainen To: Simon Lindgren Cc: dovecot@procontrol.fi In-Reply-To: <200211121427.33943.simon@lindgren.no> References: <200211121427.33943.simon@lindgren.no> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1037146236.32041.102.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 13 Nov 2002 02:10:36 +0200 X-archive-position: 93 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 93 Status: O On Tue, 2002-11-12 at 15:27, Simon Lindgren wrote: > My patch to the imap protocol in KDE fixed my problem, but should dovecot be > changed instead? Yes, it's a bug in Dovecot. > When viewing a mail in kmail: > UID FETCH 203 (UID RFC822) Fetching BODY[] always marks the message read, but I didn't before think of RFC822 and RFC822.TEXT which should do that too. Fixing.. From tss@iki.fi Sun Nov 24 21:01:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 24 Nov 2002 21:01:37 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 71F052382F for ; Sun, 24 Nov 2002 21:01:37 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id ACC765E01F27; Sun, 24 Nov 2002 21:01:36 +0200 (EET) Subject: [dovecot] 0.99.0 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038164496.787.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 24 Nov 2002 21:01:36 +0200 X-archive-position: 94 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 94 Status: O Content-Length: 1571 I figured now would be a good time for new release. All the major changes are pretty much done now. v0.99.0 2002-11-24 Timo Sirainen + Replaced hash file with binary tree file which makes Dovecot stay fast with large mailboxes after expunging multiple mails. + Several speed improvements with SEARCH + SEARCH CHARSET support using iconv(), although case-insensitive searching is currently supported only for ASCII characters. + OpenSSL support. + Support for regenerating Diffie Hellman and RSA parameters with specified intervals. NOTE: currently doesn't work with OpenSSL. + Support for each login connection being handled in it's own process. This is the default as it's more safe especially with SSL. + mbox locking is now safe, other processes can't modify the mbox file while we're reading it. + Notify clients with "EXISTS" almost immediately after new mail is received. + Rawlog: Support for saving user connections into files - useful for debugging. + Content-Language is finally parsed correctly + Lots of smaller speed optimizations - Partial BODY[] fetches weren't working properly - BODY[section] was buggy with message/rfc822 MIME parts - STARTTLS wasn't working - \* flag was missing from PERMANENTFLAGS. - Comments inside <> mail addresses crashed. - imap-login printed UTC timestamps to logfiles - passwd-file wasn't reread the the file changed - PAM authentication was implemented wrong, which caused it to break with some PAM plugins. - Lots of smaller fixes, mostly to do with reliability From me@squeakyweasel.net Sun Nov 24 22:25:42 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 24 Nov 2002 22:25:42 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.stratius.com (unknown [207.44.131.172]) by danu.procontrol.fi (Postfix) with SMTP id 6F03B2382C for ; Sun, 24 Nov 2002 22:25:41 +0200 (EET) Received: (qmail 26597 invoked from network); 24 Nov 2002 20:25:36 -0000 Received: from unknown (HELO cobalt) (4.47.73.34) by 207.44.131.176 with SMTP; 24 Nov 2002 20:25:36 -0000 Date: Sun, 24 Nov 2002 12:25:45 -0800 From: "Kyle Symonds" Reply-To: me@squeakyweasel.net To: dovecot@procontrol.fi Subject: [dovecot] vpopmail support? X-mailer: Foxmail 4.1 [eg] Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <20021124202541.6F03B2382C@danu.procontrol.fi> X-archive-position: 95 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: me@squeakyweasel.net Precedence: bulk X-list: dovecot X-UID: 95 Status: O Well, I read that back in 0.98 or so vpopmail support should work so I assumed it would be enabled in 0.99 but here's what I get. gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I/usr/local/vpopmail/include -g -O2 -Wall -W -g -O2 -Wall -W -c userinfo-vpopmail.c In file included from userinfo-vpopmail.c:12: /usr/local/vpopmail/include/vpopmail.h:133: syntax error before `*' *** Error code 1 Stop in /root/dovecot/src/auth. *** Error code 1 Stop in /root/dovecot/src. *** Error code 1 Stop in /root/dovecot. *** Error code 1 Stop in /root/dovecot. Someone want to throw a bone? =) --Weasel weasel@squeakyweasel.net http://squeakyweasel.net From me@squeakyweasel.net Sun Nov 24 22:32:44 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 24 Nov 2002 22:32:44 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.stratius.com (unknown [207.44.131.172]) by danu.procontrol.fi (Postfix) with SMTP id C3A332382C for ; Sun, 24 Nov 2002 22:32:43 +0200 (EET) Received: (qmail 26623 invoked from network); 24 Nov 2002 20:32:42 -0000 Received: from unknown (HELO cobalt) (4.47.73.34) by 207.44.131.176 with SMTP; 24 Nov 2002 20:32:42 -0000 Date: Sun, 24 Nov 2002 12:32:51 -0800 From: "Kyle Symonds" Reply-To: me@squeakyweasel.net To: dovecot@procontrol.fi Subject: [dovecot] Re: vpopmail support? X-mailer: Foxmail 4.1 [eg] Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <20021124203243.C3A332382C@danu.procontrol.fi> X-archive-position: 96 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: me@squeakyweasel.net Precedence: bulk X-list: dovecot X-UID: 96 Status: O Oh yeah, the system's FreeBSD 4.7-RELEASE. Trying to do a qmail+vpopmail+pop3+imap setup. --Weasel weasel@squeakyweasel.net http://squeakyweasel.net ======= At 2002-11-24, 12:25:00 you wrote: ======= >Well, I read that back in 0.98 or so vpopmail support should work so I assumed it would be enabled in 0.99 but here's what I get. > >gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I/usr/local/vpopmail/include -g -O2 -Wall -W -g -O2 -Wall -W -c userinfo-vpopmail.c >In file included from userinfo-vpopmail.c:12: >/usr/local/vpopmail/include/vpopmail.h:133: syntax error before `*' >*** Error code 1 > >Stop in /root/dovecot/src/auth. >*** Error code 1 > >Stop in /root/dovecot/src. >*** Error code 1 > >Stop in /root/dovecot. >*** Error code 1 > >Stop in /root/dovecot. > >Someone want to throw a bone? =) > >--Weasel >weasel@squeakyweasel.net >http://squeakyweasel.net From tss@iki.fi Mon Nov 25 00:24:40 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 25 Nov 2002 00:24:40 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 156622382C for ; Mon, 25 Nov 2002 00:24:40 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 6FDA15E01F27; Mon, 25 Nov 2002 00:24:39 +0200 (EET) Subject: [dovecot] Re: vpopmail support? From: Timo Sirainen To: me@squeakyweasel.net Cc: "dovecot@procontrol.fi" In-Reply-To: <20021124202541.6F03B2382C@danu.procontrol.fi> References: <20021124202541.6F03B2382C@danu.procontrol.fi> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038176679.789.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 25 Nov 2002 00:24:39 +0200 X-archive-position: 97 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 97 Status: O On Sun, 2002-11-24 at 22:25, Kyle Symonds wrote: > Well, I read that back in 0.98 or so vpopmail support should work so I assumed it would be enabled in 0.99 but here's what I get. > > gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I/usr/local/vpopmail/include -g -O2 -Wall -W -g -O2 -Wall -W -c userinfo-vpopmail.c > In file included from userinfo-vpopmail.c:12: > /usr/local/vpopmail/include/vpopmail.h:133: syntax error before `*' > *** Error code 1 Well, I hadn't tested it for some time, so it missed one include file. Add #include to userinfo-vpopmail.c before the vpopmail-include and it should work. Maybe it's time for 0.99.1 soon, there's quite a few build fixes/changes now in CVS :) From tss@iki.fi Mon Nov 25 12:59:34 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 25 Nov 2002 12:59:34 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0483A2382F for ; Mon, 25 Nov 2002 12:59:34 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 516875E01F27; Mon, 25 Nov 2002 12:59:33 +0200 (EET) Subject: [dovecot] 0.99.1 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038221973.787.18.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 25 Nov 2002 12:59:33 +0200 X-archive-position: 98 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 98 Status: O Nothing new, just a few compiling/configuration issues fixed. Dovecot should also be in NetBSD pkgsrc soon. Now who would want to get it into Debian? :) v0.99.1 2002-11-25 Timo Sirainen + Added doc/mkcert.sh script to easily generate yourself a self-signed certificate. Modify doc/dovecot-openssl.cnf before running it. + --with-ssldir configure option to specify default path for /etc/ssl + Added ssl_disable setting to config file - OpenSSL wasn't checked properly by configure - vpopmail authentication module didn't compile - We should install the binaries into libexec dir, not lib - doc/configuration.txt and doc/mail-storages.txt were missing From tss@iki.fi Tue Nov 26 23:16:04 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 26 Nov 2002 23:16:04 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CADA92382F for ; Tue, 26 Nov 2002 23:16:04 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 670385E01F27; Tue, 26 Nov 2002 23:16:02 +0200 (EET) Subject: [dovecot] 0.99.2 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038345362.2676.31.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 26 Nov 2002 23:16:02 +0200 X-archive-position: 99 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 99 Status: O Mostly compiling cleanups but also one bugfix when index wasn't exclusively locked while it was being fsck'ed - that doesn't normally happen without crashing/whatever. v0.99.2 2002-11-26 Timo Sirainen + If we have to wait for a lock longer, the client is now notified about it every 30 seconds. - Default settings still pointed to lib directory instead of the libexec directory where the binaries were actually installed - vpopmail support had to be kludged to fix a bug in vpopmail library which sometimes left extra character after the user name. - Login process crashed if master process didn't let some user login. Normally this couldn't happen without error in configuration. - select() based I/O loop wasn't working so Dovecot didn't work in eg. OSX. Also PAM authentication wasn't detected with OSX. - Didn't compile with NetBSD-current From tss@iki.fi Tue Nov 26 23:52:42 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 26 Nov 2002 23:52:42 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B3BBB2382F for ; Tue, 26 Nov 2002 23:52:42 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 6F4C65E01F27; Tue, 26 Nov 2002 23:52:37 +0200 (EET) Subject: [dovecot] mbox problems From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038347557.6700.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 26 Nov 2002 23:52:37 +0200 X-archive-position: 100 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 100 Status: O Strange .. I didn't think I had done anything that could break things too badly. Anyway, at least with Solaris EXPUNGE may corrupt part of the mbox file, so don't do that for now. From email@pbryan.net Wed Nov 27 00:03:25 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 27 Nov 2002 00:03:25 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.creatia.net (fozzie.creatia.net [64.180.101.199]) by danu.procontrol.fi (Postfix) with ESMTP id 1EDB92382C for ; Wed, 27 Nov 2002 00:03:25 +0200 (EET) Received: from pbryan.net (grover.creatia.net [64.180.101.78]) by mail.creatia.net (Postfix) with ESMTP id 75DCA88C002 for ; Tue, 26 Nov 2002 14:03:18 -0800 (PST) Message-ID: <3DE3EEBD.1040700@pbryan.net> Date: Tue, 26 Nov 2002 13:59:25 -0800 From: "Paul C. Bryan" User-Agent: Mozilla/5.5 (X11; U; Linux i686; en-US; rv 0.9.2) Gecko/20010726 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] dovecot and pop3 X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 101 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: email@pbryan.net Precedence: bulk X-list: dovecot X-UID: 101 Status: O Dear dovecotters: I'm becoming interested in dovecot as a replacement for UW-IMAPD. Any project that claims it's the "postfix of ____ servers" deserves a looksee. If indeed I were to going to switch at some point, I'd need to replace the UW POP3 server (which is a part of the UW package). I would prefer one that actually used the dovecot IMAP server instead of going to the filesystem directly. Question 1: Anyone know of such a POP3 daemon that connects to the IMAP server. Question 2: If the answer to Q1 is "no", would anyone be interested in such a package? Yours truly, Paul C. Bryan email@pbryan.net From tss@iki.fi Wed Nov 27 00:11:30 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 27 Nov 2002 00:11:30 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 13CC22382C for ; Wed, 27 Nov 2002 00:11:30 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id DECD85E01F27; Wed, 27 Nov 2002 00:11:26 +0200 (EET) Subject: [dovecot] 0.99.3 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038348686.9437.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 27 Nov 2002 00:11:26 +0200 X-archive-position: 102 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 102 Status: O OK, this one will be the final release for a while, I promise (or hope). Fixes mbox corruption when expunging mails from the middle of mailbox with mail_read_mmaped=no which is the default. This bug was already in 0.99.0 release. I had been using Dovecot like that for 5 days or so without noticing the bug.. Wonder if I lost any mails. From skvidal@phy.duke.edu Wed Nov 27 00:14:00 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 27 Nov 2002 00:14:00 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id ABC782382C for ; Wed, 27 Nov 2002 00:14:00 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id 86EF0301C4 for ; Tue, 26 Nov 2002 17:13:59 -0500 (EST) Subject: [dovecot] rpm and srpm for dovecot From: seth vidal To: dovecot@procontrol.fi Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-J1qXPoyGtE2XNN5N6Z6j" X-Mailer: Ximian Evolution 1.0.3 (1.0.3-6) Date: 26 Nov 2002 17:13:58 -0500 Message-Id: <1038348839.7478.78.camel@opus> Mime-Version: 1.0 X-archive-position: 103 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 103 Status: O --=-J1qXPoyGtE2XNN5N6Z6j Content-Type: text/plain Content-Transfer-Encoding: quoted-printable hi, I put an rpm and srpm for dovecot on: http://www.dulug.duke.edu/~skvidal/RPMS/ They are made under rhl 7.3 - should build on 8.x I'd bet. I added an init script to start up imap-master I've done exactly ZERO testing on these and I'd welcome some feedback, thanks. -sv --=-J1qXPoyGtE2XNN5N6Z6j Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA94/Im1Aj3x2mIbMcRAsVNAJsHS5eeEEoVxiIlSJIjEEajoIzv2wCbBt8Y N+5gsWClWJw24n05hC3PuDI= =AzFn -----END PGP SIGNATURE----- --=-J1qXPoyGtE2XNN5N6Z6j-- From skvidal@phy.duke.edu Wed Nov 27 00:17:10 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 27 Nov 2002 00:17:10 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id B92DC2382C for ; Wed, 27 Nov 2002 00:17:10 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id CA9D430374; Tue, 26 Nov 2002 17:17:09 -0500 (EST) Subject: [dovecot] Re: dovecot and pop3 From: seth vidal To: "Paul C. Bryan" Cc: dovecot@procontrol.fi In-Reply-To: <3DE3EEBD.1040700@pbryan.net> References: <3DE3EEBD.1040700@pbryan.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-TMdi3/Oz0IXxsiNNlMkO" X-Mailer: Ximian Evolution 1.0.3 (1.0.3-6) Date: 26 Nov 2002 17:17:08 -0500 Message-Id: <1038349029.7480.80.camel@opus> Mime-Version: 1.0 X-archive-position: 104 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 104 Status: O Content-Length: 1314 --=-TMdi3/Oz0IXxsiNNlMkO Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2002-11-26 at 16:59, Paul C. Bryan wrote: > Dear dovecotters: >=20 > I'm becoming interested in dovecot as a replacement for UW-IMAPD. Any=20 > project that claims it's the "postfix of ____ servers" deserves a looksee= . >=20 > If indeed I were to going to switch at some point, I'd need to replace=20 > the UW POP3 server (which is a part of the UW package). I would prefer=20 > one that actually used the dovecot IMAP server instead of going to the=20 > filesystem directly. >=20 > Question 1: Anyone know of such a POP3 daemon that connects to the IMAP=20 > server. not aware of one, no. >=20 > Question 2: If the answer to Q1 is "no", would anyone be interested in=20 > such a package? I think it would be a good idea to duplicate the functionality of uw-'s imap - though my general view is pop3 should be beaten profusely :) -sv =20 --=-TMdi3/Oz0IXxsiNNlMkO Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA94/Lk1Aj3x2mIbMcRAgWtAJ9IuTYEVnFLgwovHBo3K/8dHlmTsACfbchd OAQUSmRqqv+1HHSerKpjd9U= =2lbE -----END PGP SIGNATURE----- --=-TMdi3/Oz0IXxsiNNlMkO-- From tss@iki.fi Wed Nov 27 00:21:49 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 27 Nov 2002 00:21:49 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B637A2382C for ; Wed, 27 Nov 2002 00:21:48 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 790205E01F27; Wed, 27 Nov 2002 00:21:48 +0200 (EET) Subject: [dovecot] Re: dovecot and pop3 From: Timo Sirainen To: "Paul C. Bryan" Cc: dovecot@procontrol.fi In-Reply-To: <3DE3EEBD.1040700@pbryan.net> References: <3DE3EEBD.1040700@pbryan.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038349308.9437.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 27 Nov 2002 00:21:48 +0200 X-archive-position: 105 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 105 Status: O On Tue, 2002-11-26 at 23:59, Paul C. Bryan wrote: > If indeed I were to going to switch at some point, I'd need to replace > the UW POP3 server (which is a part of the UW package). I would prefer > one that actually used the dovecot IMAP server instead of going to the > filesystem directly. Why? Smaller chance of screwups if they don't have compatible file locking, or making authentication configuration easier? I don't think either is much of a problem though. I've been thinking of making a Dovecot POP3 daemon as well. POP3 protocol is so simple that it doesn't take many hours to implement it, especially because I've tried to keep the IMAP protocol isolated from the actual functionality (I didn't fully succeed in it, but well enough). Anyway, this probably won't come that soon, IMAP part still needs much to do. If you really need mbox POP3 server, I'd suggest popa3d. From cloos@jhcloos.com Wed Nov 27 00:53:27 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 27 Nov 2002 00:53:27 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from ore.jhcloos.com (ore.jhcloos.com [64.240.156.239]) by danu.procontrol.fi (Postfix) with ESMTP id 616852382C for ; Wed, 27 Nov 2002 00:53:27 +0200 (EET) Received: from lugabout.jhcloos.org (ppp25.pm3-7.buf-ch.ny.localnet.com [207.251.196.89]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (Client CN "lugabout.jhcloos.org", Issuer "ca.jhcloos.com" (verified OK)) by ore.jhcloos.com (Postfix) with ESMTP id 3BC861D02B; Tue, 26 Nov 2002 16:51:41 -0600 (CST) Received: from lugabout.jhcloos.org (localhost [127.0.0.1]) by lugabout.jhcloos.org (Postfix on SuSE Linux 7.3 (i386)) with ESMTP id 6C49AB146; Tue, 26 Nov 2002 22:47:22 +0000 (GMT) To: "Paul C. Bryan" Cc: dovecot@procontrol.fi Subject: [dovecot] Re: dovecot and pop3 References: <3DE3EEBD.1040700@pbryan.net> From: "James H. Cloos Jr." In-Reply-To: <3DE3EEBD.1040700@pbryan.net> Date: 26 Nov 2002 17:47:22 -0500 Message-ID: Lines: 15 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-archive-position: 106 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: cloos@jhcloos.com Precedence: bulk X-list: dovecot X-UID: 106 Status: O >>>>> "Paul" == Paul C Bryan writes: Paul> I'd need to replace the UW POP3 server ... Paul> I would prefer one that actually used the dovecot IMAP server ... Paul> Anyone know of such a POP3 daemon that connects to the IMAP server. Doesn't the UW pops3 server do that? I believe it at least used to use the imap server as a backend. (Though it may have done so by evec(2)ing imapd(8) rather than via tcp; does dovecot support that method of imap access?) Other that that, I'd suggest a search on freshmeat.... -JimC From me@squeakyweasel.net Wed Nov 27 00:57:42 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 27 Nov 2002 00:57:42 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.stratius.com (unknown [207.44.131.172]) by danu.procontrol.fi (Postfix) with SMTP id 873E62382F for ; Wed, 27 Nov 2002 00:57:41 +0200 (EET) Received: (qmail 3203 invoked from network); 26 Nov 2002 22:57:29 -0000 Received: from unknown (HELO cobalt) (4.47.73.34) by 207.44.131.176 with SMTP; 26 Nov 2002 22:57:29 -0000 Date: Tue, 26 Nov 2002 14:57:39 -0800 From: "Kyle Symonds" Reply-To: me@squeakyweasel.net To: dovecot@procontrol.fi Subject: [dovecot] vpopmail - again X-mailer: Foxmail 4.1 [eg] Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <20021126225741.873E62382F@danu.procontrol.fi> X-archive-position: 107 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: me@squeakyweasel.net Precedence: bulk X-list: dovecot X-UID: 107 Status: O OK, dovecot compiles fine and starts up. I changed the auth_userinfo var to vpopmail, fired up imap-master and tried to login via webmail and my log spits out the following: imap-login: Nov 26 14:50:50 Error: Can't connect to imap-auth at auth: Connection Refused imap-login: Nov 26 14:50:51 Error: Can't connect to imap-auth at vpopmail: Connection Refused Any ideas? --Weasel weasel@squeakyweasel.net http://squeakyweasel.net From tss@iki.fi Wed Nov 27 01:12:04 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 27 Nov 2002 01:12:04 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5D4D62382F for ; Wed, 27 Nov 2002 01:12:04 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id CA3EC5E01F27; Wed, 27 Nov 2002 01:12:03 +0200 (EET) Subject: [dovecot] Re: vpopmail - again From: Timo Sirainen To: me@squeakyweasel.net Cc: "dovecot@procontrol.fi" In-Reply-To: <20021126225741.873E62382F@danu.procontrol.fi> References: <20021126225741.873E62382F@danu.procontrol.fi> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038352323.9437.27.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 27 Nov 2002 01:12:03 +0200 X-archive-position: 108 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 108 Status: O On Wed, 2002-11-27 at 00:57, Kyle Symonds wrote: > OK, dovecot compiles fine and starts up. I changed the auth_userinfo var to vpopmail, fired up imap-master and tried to login via webmail and my log spits out the following: > > imap-login: Nov 26 14:50:50 Error: Can't connect to imap-auth at auth: Connection Refused > imap-login: Nov 26 14:50:51 Error: Can't connect to imap-auth at vpopmail: Connection Refused Well, do you see any imap-auth processes running? Also try deleting everything from login processes directory (/usr/local/var/run/dovecot/login/ by default), you probably have some stale socket files in there. And what does your "auth" variable contain? At least you've changed it to both "auth" and "vpopmail" before :) From tss@iki.fi Wed Nov 27 01:16:47 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 27 Nov 2002 01:16:47 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F23652382F for ; Wed, 27 Nov 2002 01:16:46 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id A8D775E01F27; Wed, 27 Nov 2002 01:16:46 +0200 (EET) Subject: [dovecot] Re: dovecot and pop3 From: Timo Sirainen To: "James H. Cloos Jr." Cc: "Paul C. Bryan" , dovecot@procontrol.fi In-Reply-To: References: <3DE3EEBD.1040700@pbryan.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038352606.9438.33.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 27 Nov 2002 01:16:46 +0200 X-archive-position: 109 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 109 Status: O On Wed, 2002-11-27 at 00:47, James H. Cloos Jr. wrote: > Paul> Anyone know of such a POP3 daemon that connects to the IMAP server. > > Doesn't the UW pops3 server do that? I believe it at least used to > use the imap server as a backend. (Though it may have done so by > evec(2)ing imapd(8) rather than via tcp; does dovecot support that > method of imap access?) Yes, Dovecot's imap process talks to stdin/stdout. All configuration is read from environment variables, mostly it needs just USER and maybe MAIL if it can't figure that out itself. From email@pbryan.net Wed Nov 27 01:26:39 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 27 Nov 2002 01:26:39 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.creatia.net (fozzie.creatia.net [64.180.101.199]) by danu.procontrol.fi (Postfix) with ESMTP id EBB812382F for ; Wed, 27 Nov 2002 01:26:38 +0200 (EET) Received: from pbryan.net (grover.creatia.net [64.180.101.78]) by mail.creatia.net (Postfix) with ESMTP id 5303488C002 for ; Tue, 26 Nov 2002 15:26:35 -0800 (PST) Message-ID: <3DE40241.5060002@pbryan.net> Date: Tue, 26 Nov 2002 15:22:41 -0800 From: "Paul C. Bryan" User-Agent: Mozilla/5.5 (X11; U; Linux i686; en-US; rv 0.9.2) Gecko/20010726 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: dovecot and pop3 References: <3DE3EEBD.1040700@pbryan.net> <1038349308.9437.14.camel@hurina> In-Reply-To: <3DE3EEBD.1040700@pbryan.net> X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 110 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: email@pbryan.net Precedence: bulk X-list: dovecot X-UID: 110 Status: O Timo Sirainen wrote: > Why? Smaller chance of screwups if they don't have compatible file > locking, or making authentication configuration easier? I don't think > either is much of a problem though. It makes sense to leave authentication, authorization, mailbox handling to one reliable program. Hopefully, that can be the IMAP daemon. A POP3 gateway would need only pass along the user's credentials to the IMAP server, and have no concern about mailbox format or locations, and not worry about file locking or implementing any concurrency mechanisms. Thoughts? Paul C. Bryan email@pbryan.net From tss@iki.fi Sun Dec 1 18:44:43 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 01 Dec 2002 18:44:43 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C26202382C for ; Sun, 1 Dec 2002 18:44:42 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 88E035E01F27; Sun, 1 Dec 2002 18:44:42 +0200 (EET) Subject: [dovecot] 0.99.4 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038761082.24501.2.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 01 Dec 2002 18:44:42 +0200 X-archive-position: 111 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 111 Status: O This fixes the last weird bugs that I know of. Now just a few more missing features and 1.0 should be there :) v0.99.4 2002-12-01 Timo Sirainen - Command parser had several bugs when it didn't have enough data to parse the full command in one call, ie. network lags etc. triggered those bugs sometimes. This was the last "weird bug" I know of. - Mbox indexes got broken when updating cached fields - Fixed a few memory leaks and unneededly high memory usage while caching envelopes - Fixes to searching from message body and header - --with-ssldir didn't do anything and the default was empty From skvidal@phy.duke.edu Sun Dec 1 19:52:33 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 01 Dec 2002 19:52:33 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 12F4B2382F for ; Sun, 1 Dec 2002 19:52:33 +0200 (EET) Received: from user-152-16-65-11.adsl.duke.edu (user-152-16-65-11.adsl.duke.edu [152.16.65.11]) by mail.phy.duke.edu (Postfix) with ESMTP id 477B130399; Sun, 1 Dec 2002 12:52:31 -0500 (EST) Subject: [dovecot] Re: 0.99.4 released From: seth vidal To: Timo Sirainen Cc: dovecot@procontrol.fi In-Reply-To: <1038761082.24501.2.camel@hurina> References: <1038761082.24501.2.camel@hurina> Content-Type: text/plain Organization: Message-Id: <1038764851.1454.29.camel@binkley> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 (1.2.0-1) Date: 01 Dec 2002 12:47:31 -0500 Content-Transfer-Encoding: 7bit X-archive-position: 112 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 112 Status: O On Sun, 2002-12-01 at 11:44, Timo Sirainen wrote: > This fixes the last weird bugs that I know of. Now just a few more > missing features and 1.0 should be there :) > > v0.99.4 2002-12-01 Timo Sirainen > > - Command parser had several bugs when it didn't have enough data to > parse the full command in one call, ie. network lags etc. triggered > those bugs sometimes. This was the last "weird bug" I know of. > - Mbox indexes got broken when updating cached fields > - Fixed a few memory leaks and unneededly high memory usage while > caching envelopes > - Fixes to searching from message body and header > - --with-ssldir didn't do anything and the default was empty rpms for 0.99.4 are up at: http://www.dulug.duke.edu/~skvidal/RPMS/ These should actually start dovecot and not vsftpd :) - a poor cut and paste job on my part. -sv From hellhound@geek.be Sun Dec 1 22:43:46 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 01 Dec 2002 22:43:46 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from fry.linugen.com (geek.be [213.193.156.242]) by danu.procontrol.fi (Postfix) with SMTP id 01E022382C for ; Sun, 1 Dec 2002 22:43:45 +0200 (EET) Received: (qmail 131 invoked by uid 1001); 1 Dec 2002 20:42:42 -0000 Date: Sun, 1 Dec 2002 21:42:42 +0100 From: hellhound@geek.be To: dovecot@procontrol.fi Subject: [dovecot] Sieve Message-ID: <20021201204242.GB6027@destructance> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-archive-position: 113 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: hellhound@geek.be Precedence: bulk X-list: dovecot X-UID: 113 Status: O Hi all, I'm using Dovecot for some months now, and I love it! I also saw that there are 'plans' to integrate Sieve support. Well, some days ago I saw the following on freshmeat: libSieve - http://libsieve.sourceforge.net/ libSieve is a standalone library pulled from CMU's implementation of their Sieve mail sorting library in the Cyrus mail server. Either shared or statically linked, libSieve will help to bring mail sorting functionality into your mail server application without the need to reinvent the wheel. As a library, it is not intended for end users expecting a ready-to-run program. Maybe this could ease the Sieve integration ? If I got some spare time I'm going to contribute some code for it myself. greets From tss@iki.fi Sun Dec 1 23:07:08 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 01 Dec 2002 23:07:08 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id ACB552382F for ; Sun, 1 Dec 2002 23:07:08 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 0F6A45E01F27; Sun, 1 Dec 2002 23:07:08 +0200 (EET) Subject: [dovecot] Re: compiling From: Timo Sirainen To: weasel@squeakyweasel.net Cc: "dovecot@procontrol.fi" In-Reply-To: <20021201205407.UKKG4558.pop018.verizon.net@cobalt> References: <20021201205407.UKKG4558.pop018.verizon.net@cobalt> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038776827.1181.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 01 Dec 2002 23:07:07 +0200 X-archive-position: 114 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 114 Status: O On Sun, 2002-12-01 at 22:54, Kyle Symonds wrote: > Just thought I'd pass this along. While trying to compile 0.99.4 the following happens: > > restrict-process-size.c: In function `restrict_process_size': > restrict-process-size.c:41: `RLIMIT_AS' undeclared (first use in this function) > restrict-process-size.c:41: (Each undeclared identifier is reported only once > restrict-process-size.c:41: for each function it appears in.) Thanks. I thought that would have been portable since it was in UNIX98. You could change that to RLIMIT_DATA and it should be somewhat equilevant. I'll change it in CVS so that it does both DATA and AS if it exists. From tss@iki.fi Mon Dec 2 00:29:10 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 02 Dec 2002 00:29:10 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5CC602382C for ; Mon, 2 Dec 2002 00:29:10 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id DB3275E01F27; Mon, 2 Dec 2002 00:29:09 +0200 (EET) Subject: [dovecot] Re: Sieve From: Timo Sirainen To: hellhound@geek.be Cc: dovecot@procontrol.fi In-Reply-To: <20021201204242.GB6027@destructance> References: <20021201204242.GB6027@destructance> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038781749.1173.44.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 02 Dec 2002 00:29:09 +0200 X-archive-position: 115 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 115 Status: O On Sun, 2002-12-01 at 22:42, hellhound@geek.be wrote: > I'm using Dovecot for some months now, and I love it! > I also saw that there are 'plans' to integrate Sieve support. > Well, some days ago I saw the following on freshmeat: > libSieve - http://libsieve.sourceforge.net/ I'm not sure actually what kind of sieve support Dovecot should/could have. It's more of a job of SMTP server than IMAP server I think. Unless I want to create some dovecot-deliver binary (like cyrdeliver with Cyrus) which can be used to store messages into specified folders. Advantages with that would be that SMTP server wouldn't need to know where exactly the messages are stored and how. Possibly a good idea if I begin using some of those extensions to mbox and Maildir. Well. The sources don't look too bad, although I think I found a couple of buffer overflows already, but once I get those fixed I guess the library should be just fine :) From tss@iki.fi Mon Dec 2 13:50:56 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 02 Dec 2002 13:50:56 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B3BA32382F for ; Mon, 2 Dec 2002 13:50:56 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 6B5195E01F27; Mon, 2 Dec 2002 13:50:56 +0200 (EET) Subject: [dovecot] Re: sick of me yet? From: Timo Sirainen To: weasel@squeakyweasel.net Cc: dovecot@procontrol.fi In-Reply-To: <20021201233733.PZCP9711.out003.verizon.net@cobalt> References: <20021201233733.PZCP9711.out003.verizon.net@cobalt> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038829856.6544.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 02 Dec 2002 13:50:56 +0200 X-archive-position: 116 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 116 Status: O On Mon, 2002-12-02 at 01:37, Kyle Symonds wrote: > x login weasel@squeakyweasel.net ******** > x NO Authentication failed: Authentication process died Well, you should definitely see something about this in log files. Like: imap-auth: Dec 01 17:59:32 Warning: Killed with signal 11 And if it was killed with signal 11 or 6 you should also find core file in the directory where you started imap-master? From lfarkas@bnap.hu Thu Dec 5 17:56:45 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 05 Dec 2002 17:56:45 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from portal.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by danu.procontrol.fi (Postfix) with ESMTP id 77FC02382F for ; Thu, 5 Dec 2002 17:56:43 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with ESMTP id 96BB53F19 for ; Thu, 5 Dec 2002 16:56:39 +0100 (CET) Received: from portal.bppiac.hu ([127.0.0.1]) by localhost (portal.bppiac.hu [127.0.0.1]) (amavisd-new) with ESMTP id 01529-08 for ; cs, 5 dec 2002 16:56:39 -0000 (CET) Received: from garfield.int.bppiac.hu (garfield.int.bppiac.hu [192.168.0.50]) by portal.bppiac.hu (Postfix) with ESMTP id 6FE0A3F16 for ; Thu, 5 Dec 2002 16:56:39 +0100 (CET) Subject: [dovecot] questions From: Farkas Levente To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 (1.0.8-10) Date: 05 Dec 2002 16:56:41 +0100 Message-Id: <1039103801.4482.18.camel@garfield.int.bppiac.hu> Mime-Version: 1.0 X-Virus-Scanned: on portal.bnap.hu by AMaViS X-archive-position: 117 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 117 Status: O Content-Length: 1113 hi, I'm look around to find a usable imap server and find dovecot. I read all the docs, but I've got a few questions: - currently we use courier (since we find and install it quickly). can we switch from it to dovecot smoothly? or we have to convert the maildirs somehow? - I've got a few plan in my mind it it possible to do it with dovecot now or in the near future (if yes what is the estimated time)?: - authenticate from LDAP, the best would be trough PAM? - use the same user with different domain. eg: lfarkas@bnap.hu, lfarkas@bppiac.hu with the same imap server? handle more domains. - use imaps and use Digest-MD5 and/or CRAM-MD5? - put a database backend under imap and store the mails in a database. - use WITHOUT local users? it's very important! most case a user never ever log into the local system and I would not like to put them into /etc/password. - do it all the above at the same time!? thanks. -- Levente http://petition.eurolinux.org/ "The only thing worse than not knowing the truth is ruining the bliss of ignorance." From tss@iki.fi Thu Dec 5 19:46:16 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 05 Dec 2002 19:46:16 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 803C42382F for ; Thu, 5 Dec 2002 19:46:16 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 4EB1C5E01F4F; Thu, 5 Dec 2002 19:46:16 +0200 (EET) Subject: [dovecot] Re: questions From: Timo Sirainen To: Farkas Levente Cc: dovecot@procontrol.fi In-Reply-To: <1039103801.4482.18.camel@garfield.int.bppiac.hu> References: <1039103801.4482.18.camel@garfield.int.bppiac.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1039110376.28873.138.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 05 Dec 2002 19:46:16 +0200 X-archive-position: 118 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 118 Status: O Content-Length: 2073 On Thu, 2002-12-05 at 17:56, Farkas Levente wrote: > hi, > I'm look around to find a usable imap server and find dovecot. > I read all the docs, but I've got a few questions: > - currently we use courier (since we find and install it quickly). > can we switch from it to dovecot smoothly? > or we have to convert the maildirs somehow? Dovecot works fine with Courier. We were using both simultaneously for months. Message UIDs aren't shared though. > - I've got a few plan in my mind it it possible to do it with dovecot > now or in the near future (if yes what is the estimated time)?: > - authenticate from LDAP, the best would be trough PAM? I don't have much LDAP plans right now .. PAM would likely already have existing LDAP plugins, but you'd also have to keep the users in /etc/passwd then (without passwords). > - use the same user with different domain. eg: lfarkas@bnap.hu, > lfarkas@bppiac.hu with the same imap server? handle more domains. Authentication issue mostly, with plain authentication Dovecot would just treat the whole user@domain as a username. Some other mechanisms do support realms, and Dovecot's Digest-MD5 and passwd-file support realms already. > - use imaps and use Digest-MD5 and/or CRAM-MD5? imaps and Digest-MD5 are already there. Digest-MD5 can't work (and can't be made to work) with PAM authentication though. > - put a database backend under imap and store the mails in a database. I've been thinking about SQL database support from the beginning. However it'd probably be slower and require a bit more memory than with the current indexes. > - use WITHOUT local users? it's very important! most case a user never > ever log into the local system and I would not like to put them into > /etc/password. Currently Dovecot supports passwd-like file where you could store the users. For example /etc/imap.passwd. Oh, and there's also vpopmail support which should handle virtual domains and LDAP and everything. Maybe you should try that. Although it again only support plaintext authentication. From tss@iki.fi Fri Dec 6 13:24:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 06 Dec 2002 13:24:37 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CA15A2382F for ; Fri, 6 Dec 2002 13:24:37 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 6F80F5E01F50; Fri, 6 Dec 2002 13:24:37 +0200 (EET) Subject: [dovecot] Re: questions From: Timo Sirainen To: Farkas Levente Cc: dovecot@procontrol.fi In-Reply-To: <1039172976.2172.17.camel@garfield.int.bppiac.hu> References: <1039103801.4482.18.camel@garfield.int.bppiac.hu> <1039110376.28873.138.camel@hurina> <1039172976.2172.17.camel@garfield.int.bppiac.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1039173877.1050.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 06 Dec 2002 13:24:37 +0200 X-archive-position: 119 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 119 Status: O Content-Length: 1196 On Fri, 2002-12-06 at 13:09, Farkas Levente wrote: > > I don't have much LDAP plans right now .. PAM would likely already have > > existing LDAP plugins, but you'd also have to keep the users in > > /etc/passwd then (without passwords). > why??? that's what I realy would like to avoid!!! is there any reason? PAM can only be used for checking if user/password matches, so it's missing the passwd information that Dovecot needs, at least home dir and uid. Although I had been thinking of making those some global settings in config file, so you could say homedir=/var/user/$USER$ uid=imapusers. > > I've been thinking about SQL database support from the beginning. > > However it'd probably be slower and require a bit more memory than with > > the current indexes. > > ohh? I assume a database should have to be faster, but this is just an > assumption... That's mostly because of a few tricks that Dovecot does with it's index files that aren't really possible with SQL databases. Multiuser mailboxes which are modified a lot are one thing where they could be faster than Dovecot's index files because of better locking. Besides, Dovecot's indexes could be called as a simple database.. From jpeterson275@attbi.com Thu Dec 12 05:14:16 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 12 Dec 2002 05:14:16 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc51.attbi.com (rwcrmhc51.attbi.com [204.127.198.38]) by danu.procontrol.fi (Postfix) with ESMTP id 989E923840 for ; Thu, 12 Dec 2002 05:14:15 +0200 (EET) Received: from attbi.com (12-228-39-116.client.attbi.com[12.228.39.116]) by rwcrmhc51.attbi.com (rwcrmhc51) with SMTP id <2002121203141005100ja0rie>; Thu, 12 Dec 2002 03:14:11 +0000 Message-ID: <3DF7FF12.7040506@attbi.com> Date: Wed, 11 Dec 2002 19:14:26 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Maildir detection.. Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 120 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 120 Status: O It would seem that dovecot cannot detect my maildir. The system DO NOT use "~/Maildir". It is arbitrary across a few systems, actualy, and am curious if there is a way to "force" in the config file where the maildir explicitly resides, much like Postfix's "home_mailbox" configuration parameter. On a side note, I compiled dovecot 0.99.4 on a NetBSD 1.6-release i386 machine, it when imap_listen is not set in the config file, it only binds to the tcp6 ::1 address. Any clues? -- Jesse Peterson erage@softhome.net From tss@iki.fi Thu Dec 12 08:25:10 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 12 Dec 2002 08:25:10 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2572C2382C for ; Thu, 12 Dec 2002 08:25:10 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 616785E01F68; Thu, 12 Dec 2002 08:25:09 +0200 (EET) Subject: [dovecot] Re: Maildir detection.. From: Timo Sirainen To: Jesse Peterson Cc: Dovecot Mail List In-Reply-To: <3DF7FF12.7040506@attbi.com> References: <3DF7FF12.7040506@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1039674309.28950.20.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 12 Dec 2002 08:25:09 +0200 X-archive-position: 121 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 121 Status: O On Thu, 2002-12-12 at 05:14, Jesse Peterson wrote: > It would seem that dovecot cannot detect my maildir. The system DO NOT > use "~/Maildir". It is arbitrary across a few systems, actualy, and am > curious if there is a way to "force" in the config file where the > maildir explicitly resides, much like Postfix's "home_mailbox" > configuration parameter. OK, I added "default_mail_env" setting to config file. You can get it from CVS, or maybe I should release 0.99.5. There's still a few nasty problems with .4 anyway.. > On a side note, I compiled dovecot 0.99.4 on a NetBSD 1.6-release i386 > machine, it when imap_listen is not set in the config file, it only > binds to the tcp6 ::1 address. Any clues? Hmm. Looks like NetBSD doesn't listen in IPv4 addresses when I bind to "in6addr_any". Wonder how others have solved this.. Configuring Dovecot with --disable-ipv6 fixes this anyway. From jpeterson275@attbi.com Mon Dec 16 09:52:38 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 16 Dec 2002 09:52:38 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc02.attbi.com (sccrmhc02.attbi.com [204.127.202.62]) by danu.procontrol.fi (Postfix) with ESMTP id 446E723840 for ; Mon, 16 Dec 2002 09:52:38 +0200 (EET) Received: from attbi.com (12-228-39-116.client.attbi.com[12.228.39.116]) by sccrmhc02.attbi.com (sccrmhc02) with SMTP id <2002121607523500200eell5e>; Mon, 16 Dec 2002 07:52:35 +0000 Message-ID: <3DFD8655.7000504@attbi.com> Date: Sun, 15 Dec 2002 23:52:53 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Maildir problem.. Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 122 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 122 Status: O I have the most interesting problem... I've compiled dovecot from CVS with a checkout on 2002-12-15 around 23:00 PST. When I select a message in my MUA I can view it and stuff, however, if I select another message, or folder, the message disappears. It appears that dovecot shortens the Maildir message name to ":2,S" and then you can't access the message from the MUA again. The same happens if you try and move a message from a foler to another folder.. Any ideas? -- Jesse Peterson erage@softhome.net From tss@iki.fi Mon Dec 16 10:07:36 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 16 Dec 2002 10:07:36 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AE98B2382C for ; Mon, 16 Dec 2002 10:07:36 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 77DD15E01F68; Mon, 16 Dec 2002 10:07:36 +0200 (EET) Subject: [dovecot] Re: Maildir problem.. From: Timo Sirainen To: Jesse Peterson Cc: Dovecot Mail List In-Reply-To: <3DFD8655.7000504@attbi.com> References: <3DFD8655.7000504@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1040026056.5724.237.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 16 Dec 2002 10:07:36 +0200 X-archive-position: 123 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 123 Status: O On Mon, 2002-12-16 at 09:52, Jesse Peterson wrote: > I have the most interesting problem... > > I've compiled dovecot from CVS with a checkout on 2002-12-15 around > 23:00 PST. > > When I select a message in my MUA I can view it and stuff, however, if I > select another message, or folder, the message disappears. It appears > that dovecot shortens the Maildir message name to ":2,S" and then you > can't access the message from the MUA again. The same happens if you > try and move a message from a foler to another folder.. Any ideas? Thanks for noticing. Buffer changes broke it some days ago, fixed now. From jpeterson275@attbi.com Mon Dec 16 10:24:45 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 16 Dec 2002 10:24:45 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc52.attbi.com (rwcrmhc52.attbi.com [216.148.227.88]) by danu.procontrol.fi (Postfix) with ESMTP id C4DF52382C for ; Mon, 16 Dec 2002 10:24:44 +0200 (EET) Received: from attbi.com (12-228-39-116.client.attbi.com[12.228.39.116]) by rwcrmhc52.attbi.com (rwcrmhc52) with SMTP id <2002121608244205200qodm0e>; Mon, 16 Dec 2002 08:24:43 +0000 Message-ID: <3DFD8DDD.5080302@attbi.com> Date: Mon, 16 Dec 2002 00:25:01 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] SSL + default_mail_env Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 124 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 124 Status: O in the config file i have "ssl_disable = yes", however, i get this in my LOG_MAIL syslog: "Dec 17 00:21:07 host imap-master: Can't create temporary SSL parameters file /default/configured/directory/ssl-parameters.dat.tmp: No such file or directory" I know what the error is, and how to fix it, but it's an SSL thing which should have been disable according the config file, correct? It would seem that if you surround the value given to default_mail_env in quotes (as listed in the sample config file) you get errors like: Dec 17 00:21:13 host imap(testuser): Failed to create storage with data: "maildir:/home/testuser/mail/" -- Jesse Peterson erage@softhome.net From jpeterson275@attbi.com Mon Dec 16 10:28:13 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 16 Dec 2002 10:28:13 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc53.attbi.com (rwcrmhc53.attbi.com [204.127.198.39]) by danu.procontrol.fi (Postfix) with ESMTP id AACA22382C for ; Mon, 16 Dec 2002 10:28:12 +0200 (EET) Received: from attbi.com (12-228-39-116.client.attbi.com[12.228.39.116]) by rwcrmhc53.attbi.com (rwcrmhc53) with SMTP id <2002121608281105300n5o3fe>; Mon, 16 Dec 2002 08:28:11 +0000 Message-ID: <3DFD8EAE.3020304@attbi.com> Date: Mon, 16 Dec 2002 00:28:30 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: Maildir problem.. References: <3DFD8655.7000504@attbi.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 125 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 125 Status: O In my maildir, I can rename the ":2,S" to something like "101010101.host:2,S" and i can see the file again, and can read it, however if I move it out of it's directory, it gets corrupted to ":2,S" again, this time in the directory i moved it to /cur. Jesse Peterson wrote: > I have the most interesting problem... > > I've compiled dovecot from CVS with a checkout on 2002-12-15 around > 23:00 PST. > > When I select a message in my MUA I can view it and stuff, however, if I > select another message, or folder, the message disappears. It appears > that dovecot shortens the Maildir message name to ":2,S" and then you > can't access the message from the MUA again. The same happens if you > try and move a message from a foler to another folder.. Any ideas? > > -- Jesse Peterson erage@softhome.net From tss@iki.fi Mon Dec 16 10:35:12 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 16 Dec 2002 10:35:12 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 25C022382C for ; Mon, 16 Dec 2002 10:35:12 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id E1FE85E01F68; Mon, 16 Dec 2002 10:35:11 +0200 (EET) Subject: [dovecot] Re: SSL + default_mail_env From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3DFD8DDD.5080302@attbi.com> References: <3DFD8DDD.5080302@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1040027711.5724.253.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 16 Dec 2002 10:35:11 +0200 X-archive-position: 126 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 126 Status: O On Mon, 2002-12-16 at 10:25, Jesse Peterson wrote: > in the config file i have "ssl_disable = yes", however, i get this in my > LOG_MAIL syslog: "Dec 17 00:21:07 host imap-master: Can't create > temporary SSL parameters file > /default/configured/directory/ssl-parameters.dat.tmp: No such file or > directory" > I know what the error is, and how to fix it, but it's an SSL thing which > should have been disable according the config file, correct? Right. Fixed. > It would seem that if you surround the value given to default_mail_env > in quotes (as listed in the sample config file) you get errors like: > Dec 17 00:21:13 host imap(testuser): Failed to create storage with data: > "maildir:/home/testuser/mail/" They're not supposed to be put into quotes :) I guess I should change the comment somehow. Ideas? # Some examples: maildir:/var/mail/$U/Maildir, mbox:~/mail/ or just # Some examples (use without quotes): "maildir:/var/mail/$U/Maildir", # "mbox:~/mail/" From jpeterson275@attbi.com Mon Dec 16 10:40:44 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 16 Dec 2002 10:40:44 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc52.attbi.com (rwcrmhc52.attbi.com [216.148.227.88]) by danu.procontrol.fi (Postfix) with ESMTP id 576F82382C for ; Mon, 16 Dec 2002 10:40:44 +0200 (EET) Received: from attbi.com (12-228-39-116.client.attbi.com[12.228.39.116]) by rwcrmhc52.attbi.com (rwcrmhc52) with SMTP id <2002121608404305200l4oi3e>; Mon, 16 Dec 2002 08:40:43 +0000 Message-ID: <3DFD919D.7080300@attbi.com> Date: Mon, 16 Dec 2002 00:41:01 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: SSL + default_mail_env References: <3DFD8DDD.5080302@attbi.com> <1040027711.5724.253.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 127 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 127 Status: O Content-Length: 1145 I like the (without quotes) "(without quotes)" =). Timo Sirainen wrote: > On Mon, 2002-12-16 at 10:25, Jesse Peterson wrote: > >>in the config file i have "ssl_disable = yes", however, i get this in my >> LOG_MAIL syslog: "Dec 17 00:21:07 host imap-master: Can't create >>temporary SSL parameters file >>/default/configured/directory/ssl-parameters.dat.tmp: No such file or >>directory" >>I know what the error is, and how to fix it, but it's an SSL thing which >>should have been disable according the config file, correct? > > > Right. Fixed. > > >>It would seem that if you surround the value given to default_mail_env >>in quotes (as listed in the sample config file) you get errors like: >>Dec 17 00:21:13 host imap(testuser): Failed to create storage with data: >>"maildir:/home/testuser/mail/" > > > They're not supposed to be put into quotes :) I guess I should change > the comment somehow. Ideas? > > # Some examples: maildir:/var/mail/$U/Maildir, mbox:~/mail/ > > or just > > # Some examples (use without quotes): "maildir:/var/mail/$U/Maildir", > # "mbox:~/mail/" > > > -- Jesse Peterson erage@softhome.net From jpeterson275@attbi.com Mon Dec 16 11:02:39 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 16 Dec 2002 11:02:39 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc01.attbi.com (sccrmhc01.attbi.com [204.127.202.61]) by danu.procontrol.fi (Postfix) with ESMTP id 6ED1423840 for ; Mon, 16 Dec 2002 11:02:39 +0200 (EET) Received: from attbi.com (12-228-39-116.client.attbi.com[12.228.39.116]) by sccrmhc01.attbi.com (sccrmhc01) with SMTP id <2002121609023500100q0nnde>; Mon, 16 Dec 2002 09:02:35 +0000 Message-ID: <3DFD96BE.6050207@attbi.com> Date: Mon, 16 Dec 2002 01:02:54 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Dovecot Pronunciation/Meaning Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 128 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 128 Status: O Timo, What is the "official" way to pronounce Dovecot? Is there a meaning to the word? A background on why you chose it? -- Jesse Peterson erage@softhome.net From tss@iki.fi Mon Dec 16 11:23:09 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 16 Dec 2002 11:23:09 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AC78223840 for ; Mon, 16 Dec 2002 11:23:09 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 790325E01F68; Mon, 16 Dec 2002 11:23:09 +0200 (EET) Subject: [dovecot] Re: Dovecot Pronunciation/Meaning From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3DFD96BE.6050207@attbi.com> References: <3DFD96BE.6050207@attbi.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Organization: Message-Id: <1040030589.5727.260.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 16 Dec 2002 11:23:09 +0200 X-archive-position: 129 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 129 Status: O On Mon, 2002-12-16 at 11:02, Jesse Peterson wrote: > What is the "official" way to pronounce Dovecot? Is there a meaning to=20 > the word? A background on why you chose it? It's a real english word, pronounced as such. Dovecot \Dove"cot`\, Dovecote \Dove"cote`\, n. A small house or box, raised to a considerable height above the ground, and having compartments, in which domestic pigeons breed; a dove house. It was suggested by Bostik (Mika Bostr=F6m) in IRC when I was still calling it just "imapd" and asking for naming ideas. From jpeterson275@attbi.com Tue Dec 17 03:50:31 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 17 Dec 2002 03:50:31 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc03.attbi.com (sccrmhc03.attbi.com [204.127.202.63]) by danu.procontrol.fi (Postfix) with ESMTP id 57B9223840 for ; Tue, 17 Dec 2002 03:50:31 +0200 (EET) Received: from attbi.com (12-228-39-116.client.attbi.com[12.228.39.116]) by sccrmhc03.attbi.com (sccrmhc03) with SMTP id <20021217015030003006jh0ce>; Tue, 17 Dec 2002 01:50:30 +0000 Message-ID: <3DFE82FF.4090007@attbi.com> Date: Mon, 16 Dec 2002 17:50:55 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] passwd-file access Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 130 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 130 Status: O Using passwd-file authentication I run into some problems.. This is my passwd file: user:0cc175b9c0f1b6a831c399e269772661[34]:6660:6660:0:/some/mail/directory/user:0::: My MUA tells me after enter my user/pass that the server disconnected, OK. So I netcat into the imap server, and issue an "C: LOGIN user a" in which case I get the error "Fatal: USER environment missing". So I search for this in the src and find in 'src/imap/main.c' on line 30 it checks for the environment variable USER.. which I assume it can't find because it's not an actual system user, it's a ficticious user in a passwd-file. Any ideas? -- Jesse Peterson erage@softhome.net From tss@iki.fi Tue Dec 17 05:02:01 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 17 Dec 2002 05:02:01 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4EF5B23840 for ; Tue, 17 Dec 2002 05:02:01 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 594EA5E01F68; Tue, 17 Dec 2002 05:02:00 +0200 (EET) Subject: [dovecot] Re: passwd-file access From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3DFE82FF.4090007@attbi.com> References: <3DFE82FF.4090007@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1040094120.5727.320.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 17 Dec 2002 05:02:00 +0200 X-archive-position: 131 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 131 Status: O On Tue, 2002-12-17 at 03:50, Jesse Peterson wrote: > Using passwd-file authentication I run into some problems.. > This is my passwd file: > > user:0cc175b9c0f1b6a831c399e269772661[34]:6660:6660:0:/some/mail/directory/user:0::: > > My MUA tells me after enter my user/pass that the server disconnected, > OK. So I netcat into the imap server, and issue an "C: LOGIN user a" in > which case I get the error "Fatal: USER environment missing". So I > search for this in the src and find in 'src/imap/main.c' on line 30 it > checks for the environment variable USER.. which I assume it can't find > because it's not an actual system user, it's a ficticious user in a > passwd-file. So it seems, fixed. From jaldhar@debian.org Wed Dec 18 17:47:44 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 18 Dec 2002 17:47:44 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id D7EAA23840 for ; Wed, 18 Dec 2002 17:47:43 +0200 (EET) Received: from jyoti.intranet.braincells.com (bgp384497bgs.jersyc01.nj.comcast.net [68.36.31.111]) by mail.braincells.com (Postfix) with ESMTP id 362B28010 for ; Wed, 18 Dec 2002 10:47:41 -0500 (EST) Date: Wed, 18 Dec 2002 10:47:53 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@jyoti.intranet.braincells.com Reply-To: "Jaldhar H. Vyas" To: dovecot@procontrol.fi Subject: [dovecot] 0.99.4 uploaded to Debian Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 132 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 132 Status: O Hi, I'm the Debian maintainer of UW-Imap. Like many I'm somewhat frustrated with the limitations of it so I am very pleased to see that Dovecot is becoming a strong alternative. I have uploaded packages of 0.99.4 to the Debian unstable distribution (sid). Because this is a new package it has to be added by hand so it may be a while before it shows up in sid. In the mean time, I have made the packages (also for stable or woody) available from http://www.braincells.com/open/ Debian users, please take a look and give me some feedback. Unfortunately much to my embarrasment I can't currently use dovecot on my own account. I get a meesage like this in /var/log/syslog: Dec 18 09:01:31 samadhi imap(jaldhar): Error indexing mbox file /home/jaldhar/mail/inbox: LF not found where expected The mbox in question is about 17MB and opens fine in uw-imapd. Any clues? -- Jaldhar H. Vyas It's a girl! See the pictures - http://www.braincells.com/shailaja/ From tss@iki.fi Thu Dec 19 00:28:03 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 19 Dec 2002 00:28:03 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7D14D2382C for ; Thu, 19 Dec 2002 00:28:03 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 3B8C35E01F68; Thu, 19 Dec 2002 00:28:03 +0200 (EET) Subject: [dovecot] Re: 0.99.4 uploaded to Debian From: Timo Sirainen To: "Jaldhar H. Vyas" Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1040250482.5724.432.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 19 Dec 2002 00:28:03 +0200 X-archive-position: 133 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 133 Status: O Content-Length: 1039 On Wed, 2002-12-18 at 17:47, Jaldhar H. Vyas wrote: > I'm the Debian maintainer of UW-Imap. Like many I'm somewhat frustrated > with the limitations of it so I am very pleased to see that Dovecot is > becoming a strong alternative. I have uploaded packages of 0.99.4 to the > Debian unstable distribution (sid). Great, I've been waiting for that a few months now :) 0.99.5 should probably come soon too, if I only figured why Dovecot's indexes sometimes break when deleting mails with mutt. > Dec 18 09:01:31 samadhi imap(jaldhar): Error indexing mbox file > /home/jaldhar/mail/inbox: LF not found where expected > > The mbox in question is about 17MB and opens fine in uw-imapd. Any clues? Do you happen to have two From lines next to each others there? Like: >From a@b ... >From b@c ... I think that's the only case Dovecot doesn't currently handle. I tried to fix it for that a few times but the code just gets uglier and I figured it's not worth the trouble since only time I've had it happen is with some Dovecot bugs. From skvidal@phy.duke.edu Thu Dec 19 17:29:26 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 19 Dec 2002 17:29:26 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id D341523840 for ; Thu, 19 Dec 2002 17:29:25 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id 1EBD030444 for ; Thu, 19 Dec 2002 10:29:25 -0500 (EST) Subject: [dovecot] dovecot replacing uw-imap From: seth vidal To: dovecot@procontrol.fi Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-F3zn4PSpbkDxMChtw2Hc" X-Mailer: Ximian Evolution 1.0.3 (1.0.3-6) Date: 19 Dec 2002 10:29:24 -0500 Message-Id: <1040311765.17838.12.camel@opus> Mime-Version: 1.0 X-archive-position: 134 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 134 Status: O Content-Length: 1158 --=-F3zn4PSpbkDxMChtw2Hc Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hey, I'm trying to sort out how to make dovecot replace uw-imap cleanly. But I have the following problems/questions: 1. Why is mbox support limited to user-owned directories? 2. Would it be possible to have dovecot target a different place than ~user/mail by default, specfically some place like /var/path/to/maildirs/userdir/ I'd like to move all my mail storage out of user homedirs and to central space on my mail server, increasing reliability and helping me manage disk space usage for readily.=20 In order to use dovecot I need a migration path and that path looks like it will need mbox outside of the users homedirs and pottentially outside of solely user-owned directories. -sv --=-F3zn4PSpbkDxMChtw2Hc Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+AeXU1Aj3x2mIbMcRAkoZAJ93nMV5AQX6zEvP3q8/quJk35HE2QCgnudz UMDJ6LSjY99I6ZjpeB+yd+8= =KQ6/ -----END PGP SIGNATURE----- --=-F3zn4PSpbkDxMChtw2Hc-- From dgc@uchicago.edu Fri Dec 20 03:31:26 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 20 Dec 2002 03:31:26 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id 3D31623840 for ; Fri, 20 Dec 2002 03:31:26 +0200 (EET) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id gBK1Sau26739; Thu, 19 Dec 2002 19:28:36 -0600 (CST) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Thu, 19 Dec 2002 19:28:36 -0600 From: David Champion To: seth vidal Cc: dovecot@procontrol.fi Subject: [dovecot] Re: dovecot replacing uw-imap Message-ID: <20021220012836.GV4526@dust.uchicago.edu> References: <1040311765.17838.12.camel@opus> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="x4pBfXISqBoDm8sr" Content-Disposition: inline In-Reply-To: <1040311765.17838.12.camel@opus> User-Agent: Mutt/1.5.2i X-archive-position: 135 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dgc@uchicago.edu Precedence: bulk X-list: dovecot X-UID: 135 Status: O Content-Length: 1868 --x4pBfXISqBoDm8sr Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * On 2002.12.19, in <1040311765.17838.12.camel@opus>, * "seth vidal" wrote: > > 2. Would it be possible to have dovecot target a different place than > ~user/mail by default, specfically some place like > /var/path/to/maildirs/userdir/ > ... > In order to use dovecot I need a migration path and that path looks like > it will need mbox outside of the users homedirs and pottentially outside > of solely user-owned directories. We had a similar need with uw-imap -- we had 25,000 users in /var/mail, and wanted to split them out across multiple subdirectories. The route we chose for this is actually pretty flexible, and configurable from outside of the imap server process. It should be usable in dovecot, too, if anyone wants to investigate. It's just a link library, and using it inside any arbitrary application can be as simple as 1 or 2 lines of C. There's a readme at http://home.uchicago.edu/~dgc/sw/mailpath/README and the package itself is at http://home.uchicago.edu/~dgc/sw/mailpath/mailpath-1.0.tar.gz http://home.uchicago.edu/~dgc/sw/mailpath/mailpath-1.0.tar.gz.sig This isn't a product in any formal sense, and it's not supported by anyone in particular; it's just what I wrote for internal use at our site. But if it seems useful, I'd be glad to answer questions once you read the README. :) --=20 -D. dgc@uchicago.edu NSIT University of Chicago We're the colon in :// --x4pBfXISqBoDm8sr Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (SunOS) iEYEARECAAYFAj4CckQACgkQv9e3s61/wOWRMACeJ44zrwjcpIhpDzQsAtd/ZbyU 1SUAniFNWuCCJswJAkjt1zxcK6xggLKV =niXE -----END PGP SIGNATURE----- --x4pBfXISqBoDm8sr-- From cras@irccrew.org Fri Dec 20 04:10:22 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 20 Dec 2002 04:10:22 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 24A662382C for ; Fri, 20 Dec 2002 04:10:22 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 182254C0CD; Fri, 20 Dec 2002 04:10:17 +0200 (EET) Date: Fri, 20 Dec 2002 04:10:17 +0200 From: Timo Sirainen To: David Champion Cc: seth vidal , dovecot@procontrol.fi Subject: [dovecot] Re: dovecot replacing uw-imap Message-ID: <20021220021017.GA26615@irccrew.org> References: <1040311765.17838.12.camel@opus> <20021220012836.GV4526@dust.uchicago.edu> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20021220012836.GV4526@dust.uchicago.edu> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 136 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 136 Status: O On Thu, Dec 19, 2002 at 07:28:36PM -0600, David Champion wrote: > We had a similar need with uw-imap -- we had 25,000 users in /var/mail, > and wanted to split them out across multiple subdirectories. The route > we chose for this is actually pretty flexible, and configurable from > outside of the imap server process. It should be usable in dovecot, too, > if anyone wants to investigate. It's just a link library, and using it > inside any arbitrary application can be as simple as 1 or 2 lines of C. '"Overkill" is my middle name.' Yeah. :) CVS Dovecot has already default_mail_path which supports $U as username. Using your idea of supporting $1U $2U etc. to limit it to first 1 or 2 chars could be good enough idea to implement by default. Other than that, I don't see much use for the rest of the variables. Hmm. Except maybe separating "user@domain" username so that you could use path like /var/mail/domain/user/. From cras@irccrew.org Fri Dec 20 04:19:30 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 20 Dec 2002 04:19:30 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id DE3152382C for ; Fri, 20 Dec 2002 04:19:30 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id AC5F04C0CD; Fri, 20 Dec 2002 04:19:30 +0200 (EET) Date: Fri, 20 Dec 2002 04:19:30 +0200 From: Timo Sirainen To: seth vidal Cc: dovecot@procontrol.fi Subject: [dovecot] Re: dovecot replacing uw-imap Message-ID: <20021220021930.GB26615@irccrew.org> References: <1040311765.17838.12.camel@opus> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <1040311765.17838.12.camel@opus> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 137 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 137 Status: O Content-Length: 1403 On Thu, Dec 19, 2002 at 10:29:24AM -0500, seth vidal wrote: > I'm trying to sort out how to make dovecot replace uw-imap cleanly. But > I have the following problems/questions: > > 1. Why is mbox support limited to user-owned directories? Dovecot currently only supports keeping all IMAP folders in under one drectory. You'd want keep INBOX elsewhere than rest of the IMAP folders? Symlinks would allow that currently. Maybe I should allow inbox elsewhere too .. only problem is that I'm not sure how that should be configured. Maybe the MAIL environment would have multiple parts with mbox, like: mbox:/home/$U/mail:INBOX=/var/mail/$U:Trash=/tmp/$U First being the default IMAP folder path, rest being named mailboxes or folders elsewhere. > 2. Would it be possible to have dovecot target a different place than > ~user/mail by default, specfically some place like > /var/path/to/maildirs/userdir/ default_mail_env = /var/path/to/maildirs/$U/ Works in CVS. > In order to use dovecot I need a migration path and that path looks like > it will need mbox outside of the users homedirs and pottentially outside > of solely user-owned directories. Hm. Or did I understand it right above, what do you mean with "outside user-owned directories"? Single mailboxes in non-owned dir or folders just outsde home dir? Latter shouldn't matter where they are, as long as Dovecot has write access to them. From dgc@uchicago.edu Fri Dec 20 04:53:28 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 20 Dec 2002 04:53:28 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id E4C872382C for ; Fri, 20 Dec 2002 04:53:27 +0200 (EET) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id gBK2rKW27565; Thu, 19 Dec 2002 20:53:20 -0600 (CST) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Thu, 19 Dec 2002 20:53:20 -0600 From: David Champion To: Timo Sirainen Cc: seth vidal , dovecot@procontrol.fi Subject: [dovecot] Re: dovecot replacing uw-imap Message-ID: <20021220025320.GA27540@dust.uchicago.edu> Mail-Followup-To: Timo Sirainen , seth vidal , dovecot@procontrol.fi References: <1040311765.17838.12.camel@opus> <20021220012836.GV4526@dust.uchicago.edu> <20021220021017.GA26615@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021220021017.GA26615@irccrew.org> User-Agent: Mutt/1.5.2i X-archive-position: 138 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dgc@uchicago.edu Precedence: bulk X-list: dovecot X-UID: 138 Status: O Content-Length: 1899 * On 2002.12.19, in <20021220021017.GA26615@irccrew.org>, * "Timo Sirainen" wrote: > > Yeah. :) CVS Dovecot has already default_mail_path which supports $U as > username. Using your idea of supporting $1U $2U etc. to limit it to first 1 > or 2 chars could be good enough idea to implement by default. Other than > that, I don't see much use for the rest of the variables. Hmm. Except maybe No, there's not a lot of use in most cases, but most of them were possibilities we had pondered at one point or another. The real value of the library, to me, is just the flexiblity it affords -- because a site might have many products that need to interoperate, tying the admins to a particular arrangement of folder paths can be frustrating. Especially when making transitions from one product to another. Using home directories embedded in the path to folders is something we might yet switch to -- with so many users on a single system, it's all about balancing users across multiple filesystems. Because our users exist on the mail server and, separately, on a login server, the home directory path is a useful way of tracking that for multiple systems. The modulus operator was useful at one point, too... but I'm not sure how much use it is for me to go defending each thing mailpath can do, when the real point is that it can satisfy lots of needs without binding particular software to particular disk configurations. Everything gets weird when you support many thousands of users in one place.... Anyway, just an offering -- if anyone does need this, it's out there. We've gotten to where we don't particularly expect our applications to fit our environment without some patching. :) > separating "user@domain" username so that you could use path like > /var/mail/domain/user/. That would be handy. -- -D. dgc@uchicago.edu NSIT University of Chicago We're the colon in :// From tss@iki.fi Sun Dec 22 20:28:34 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 22 Dec 2002 20:28:34 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C965823840 for ; Sun, 22 Dec 2002 20:28:34 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 9BC925E01F68; Sun, 22 Dec 2002 20:28:30 +0200 (EET) Subject: [dovecot] 0.99.5rc1 From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1040581710.29604.35.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 22 Dec 2002 20:28:30 +0200 X-archive-position: 139 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 139 Status: O Current CVS contains a lot of code cleanups which aren't too well tested. Seems to be working with me, but I'm still a bit worried I left some very nasty bug lying around somewhere. There's anyway been many nasty fixes since 0.99.4, most importantly with mbox handling and SEARCH command. I've also added support for SORT extension. It's not very fast currently, but it should work. I tested with squirrelmail and it looked fine. So, those people wanting to use Dovecot with webmail might try it now. :) THREAD extension is still missing though. So, here's a 0.99.5 release candidate 1. I wouldn't recommend it for production usage yet, but I'd hope some people to test it before I'll put out a real release. Just so that I won't be (again) releasing n+3 versions in a few days :) You can get the sources from http://dovecot.procontrol.fi/rc/ I'm going away for christmas tomorrow, once I get back I'll do some more testing and auditing and get the final release out. Next weekend probably. From jpeterson275@attbi.com Sun Dec 22 21:55:56 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 22 Dec 2002 21:55:56 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc01.attbi.com (sccrmhc01.attbi.com [204.127.202.61]) by danu.procontrol.fi (Postfix) with ESMTP id D104B2382C for ; Sun, 22 Dec 2002 21:55:55 +0200 (EET) Received: from attbi.com (12-228-39-116.client.attbi.com[12.228.39.116]) by sccrmhc01.attbi.com (sccrmhc01) with SMTP id <20021222195553001003mesie>; Sun, 22 Dec 2002 19:55:53 +0000 Message-ID: <3E0618ED.9060108@attbi.com> Date: Sun, 22 Dec 2002 11:56:29 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] [Fwd: ./configure options..] Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 140 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 140 Status: O Content-Length: 1343 Oops, wrong address.. -------- Original Message -------- Message-ID: <3E0618CB.1060106@is.a.fakepope.com> Date: Sun, 22 Dec 2002 11:55:55 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: ./configure options.. Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit [CVS from ~ 10:30am PST] It would seem that --without-passwd produces gcc -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -o imap-auth auth.o auth-plain.o auth-digest-md5.o cookie.o login-connection.o main.o master.o mycrypt.o userinfo.o userinfo-passwd.o userinfo-shadow.o userinfo-pam.o userinfo-passwd-file.o userinfo-vpopmail.o ../lib/liblib.a -lcrypt userinfo-passwd-file.o: In function `get_reply_data': dovecot/cvs/dovecot/src/auth/userinfo-passwd-file.c:72: undefined reference to `passwd_fill_cookie_reply' grep of the source tree says: src/auth/userinfo-passwd.c:16:void passwd_fill_cookie_reply(struct passwd *pw, AuthCookieReplyData *reply) Also pam, shadow, and passwd-file all seem to call this function in them. Ideas? -- Jesse Peterson erage@softhome.net From tss@iki.fi Sun Dec 22 22:34:36 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 22 Dec 2002 22:34:36 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0C32723840 for ; Sun, 22 Dec 2002 22:34:36 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 664605E01F68; Sun, 22 Dec 2002 22:34:35 +0200 (EET) Subject: [dovecot] Re: [Fwd: ./configure options..] From: Timo Sirainen To: Jesse Peterson Cc: Dovecot Mail List In-Reply-To: <3E0618ED.9060108@attbi.com> References: <3E0618ED.9060108@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1040589275.29609.53.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 22 Dec 2002 22:34:35 +0200 X-archive-position: 141 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 141 Status: O On Sun, 2002-12-22 at 21:56, Jesse Peterson wrote: > It would seem that --without-passwd produces .. > dovecot/cvs/dovecot/src/auth/userinfo-passwd-file.c:72: undefined > reference to `passwd_fill_cookie_reply' Never occured to me before someone might actually want to disable passwd support :) > Ideas? Fixed, that function is now always compiled in. From hon@1b6.net Thu Dec 26 16:17:01 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 26 Dec 2002 16:17:01 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from bagic.net (nshosting.net [202.181.240.106]) by danu.procontrol.fi (Postfix) with SMTP id 91F5323840 for ; Thu, 26 Dec 2002 16:17:00 +0200 (EET) Received: (qmail 20561 invoked from network); 26 Dec 2002 14:16:59 -0000 Received: from unknown (HELO 1b6.net) (218.252.199.60) by 0 with SMTP; 26 Dec 2002 14:16:59 -0000 Message-ID: <3E0B0F5A.6020000@1b6.net> Date: Thu, 26 Dec 2002 22:16:58 +0800 From: Hon User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.3b) Gecko/20021225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Dovecot splited fetch problem Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 142 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: hon@1b6.net Precedence: bulk X-list: dovecot X-UID: 142 Status: O Content-Length: 1078 Hello, When I was trying out the IMAP server (using Mozilla as client), I have no success of receving mail with attachments. Looking it down further I've found that Mozilla fetches the message in 10k blocks, and the server seems missed a couple of bytes at where the split occurs... Mozilla start the fetch by saying: * 413 FETCH (UID 827 RFC822.SIZE 106371 BODY[]<0> {10240} -- snip to place of split -- zmmAWdUxYA6Aobczv4BguxSZGqdYs6ELNIpgjiPUdYLxsHy) 7 OK Fetch completed. 8 UID fetch 827 (UID RFC822.SIZE BODY[]<10240.10240>) * 413 FETCH (UID 827 RFC822.SIZE 106371 BODY[]<10240> {10240} 6BilWYuUJGA4YeNYFJbI1gL The resulting line (saved from Mozilla view source) is: zmmAWdUxYA6Aobczv4BguxSZGqdYs6ELNIpgjiPUdYLxsHy6BilWYuUJGA4YeNYFJbI1gL ^^ Two bytes missing Where the original is: zmmAWdUxYA6Aobczv4BguxSZGqdYs6ELNIpgjiPUdYLxsHygZ6BilWYuUJGA4YeNYFJbI1gL ^^ I have tried this using Debian packaged (0.99.4-1) and self compiled 0.99.5rc1. Both exhibit this problem. From tss@iki.fi Fri Dec 27 15:09:46 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 27 Dec 2002 15:09:46 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7D56A2382C for ; Fri, 27 Dec 2002 15:09:46 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 15F315E01F68; Fri, 27 Dec 2002 15:09:43 +0200 (EET) Subject: [dovecot] Re: Dovecot splited fetch problem From: Timo Sirainen To: Hon Cc: dovecot@procontrol.fi In-Reply-To: <3E0B0F5A.6020000@1b6.net> References: <3E0B0F5A.6020000@1b6.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1040994582.29611.121.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 27 Dec 2002 15:09:42 +0200 X-archive-position: 143 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 143 Status: O On Thu, 2002-12-26 at 16:16, Hon wrote: > When I was trying out the IMAP server (using Mozilla as client), I have > no success of receving mail with attachments. Looking it down further > I've found that Mozilla fetches the message in 10k blocks, and the > server seems missed a couple of bytes at where the split occurs... Thanks, should be fixed in CVS now. I'll probably release 0.9.5rc2 soon after a few more fixes. Handling partial fetches is pretty annoying since IMAP protocol wants to output only \r\n linefeeds, but in message data the \r is optional. So I have to pass all around information to find out if \n is just \n or \r\n.. From js@debian.org Fri Dec 27 19:44:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 27 Dec 2002 19:44:54 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from auryn.jones.dk (unknown [62.79.77.233]) by danu.procontrol.fi (Postfix) with ESMTP id 176222382C for ; Fri, 27 Dec 2002 19:44:54 +0200 (EET) Received: from localhost (auryn.jones.dk [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id BAB6E270A4 for ; Fri, 27 Dec 2002 18:44:55 +0100 (CET) Date: Fri, 27 Dec 2002 18:44:55 +0100 (CET) From: Jonas Smedegaard X-X-Sender: jonas@auryn.jones.dk Reply-To: Jonas Smedegaard To: dovecot@procontrol.fi Subject: [dovecot] o.99rc2 works on PowerPC - sort of... Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 144 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: js@debian.org Precedence: bulk X-list: dovecot X-UID: 144 Status: O Hi all, The new release starts on PowerPC now. On to the next problem... :-) When accessing my folders through Pine (setup to always go through IMAP, even local mboxes) I get "kicked out" it seems, pretty often. Here's what shows in the logfile: imap(jonas): file imap-bodystructure.c: line 342 (part_write_body): assertion failed: (part->children->next == NULL) - Jonas -- Debian GNU/Linux developer http://www.debian.org/ Jonas Smedegaard +45 40843136 http://dr.jones.dk/ Consulting for machines and humans: Spiff ApS From dom@moo.cus.org.uk Fri Dec 27 20:28:23 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 27 Dec 2002 20:28:23 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moo.cus.org.uk (host213-106-240-81.no-dns-yet.ntli.net [213.106.240.81]) by danu.procontrol.fi (Postfix) with ESMTP id E118A23840 for ; Fri, 27 Dec 2002 20:28:22 +0200 (EET) Received: from moo.cus.org.uk (localhost.cus.org.uk [127.0.0.1]) by moo.cus.org.uk (8.12.5/8.11.3) with ESMTP id gBRIVMOS030899 for ; Fri, 27 Dec 2002 18:31:22 GMT (envelope-from dom@moo.cus.org.uk) Received: (from dom@localhost) by moo.cus.org.uk (8.12.5/8.12.5/Submit) id gBRIVLTB030898 for dovecot@procontrol.fi; Fri, 27 Dec 2002 18:31:21 GMT Date: Fri, 27 Dec 2002 18:31:21 +0000 From: Dominic Marks To: dovecot@procontrol.fi Subject: [dovecot] RLIMIT_AS patch for FreeBSD Message-ID: <20021227183121.B30698@cus.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i X-archive-position: 145 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dom@cus.org.uk Precedence: bulk X-list: dovecot X-UID: 145 Status: O Hey, I've just updated the FreeBSD dovecot port to the 0.99.4 beta release, the following patch was needed as FreeBSD has setrlimit(2) but does not define RLIMIT_AS (I believe). I switched the code the require both, alternatively find a parallel option in the FreeBSD setrlimit(2) manual page. ( http://www.freebsd.org/cgi/man.cgi?setrlimit ) You may be interested in integrating this patch. --- src/lib/restrict-process-size.c Fri Dec 27 18:19:41 2002 +++ src/lib/restrict-process-size.c-new Fri Dec 27 18:19:22 2002 @@ -32,7 +32,8 @@ void restrict_process_size(unsigned int size __attr_unused__) { -#ifdef HAVE_SETRLIMIT +#if defined(HAVE_SETRLIMIT) && defined(RLIMIT_AS) +/* FreeBSD has setrlimit(2) but does not define RLIMIT_AS */ struct rlimit rlim; rlim.rlim_max = rlim.rlim_cur = Thanks, -- Dominic From tss@iki.fi Fri Dec 27 20:38:39 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 27 Dec 2002 20:38:39 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3E2A723840 for ; Fri, 27 Dec 2002 20:38:39 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 061FE5E01F68; Fri, 27 Dec 2002 20:38:39 +0200 (EET) Subject: [dovecot] Re: RLIMIT_AS patch for FreeBSD From: Timo Sirainen To: Dominic Marks Cc: dovecot@procontrol.fi In-Reply-To: <20021227183121.B30698@cus.org.uk> References: <20021227183121.B30698@cus.org.uk> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041014318.29611.145.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 27 Dec 2002 20:38:38 +0200 X-archive-position: 146 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 146 Status: O On Fri, 2002-12-27 at 20:31, Dominic Marks wrote: > I've just updated the FreeBSD dovecot port to the 0.99.4 beta release, > the following patch was needed as FreeBSD has setrlimit(2) but does not > define RLIMIT_AS (I believe). I fixed this some time ago by using RLIMIT_DATA which should be defined everywhere. RLIMIT_AS is also used with systems that have it. It's mostly useful with Linux/glibc2.3 where RLIMIT_DATA doesn't have much effect since malloc() uses mmap() for larger allocations. 0.99.5 should be out soon I think :) From cras@irccrew.org Fri Dec 27 21:03:32 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 27 Dec 2002 21:03:32 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 1AE0B2382C for ; Fri, 27 Dec 2002 21:03:32 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 74EFE4C0CF; Fri, 27 Dec 2002 21:03:31 +0200 (EET) Date: Fri, 27 Dec 2002 21:03:31 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: o.99rc2 works on PowerPC - sort of... Message-ID: <20021227190331.GA13985@irccrew.org> References: Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 147 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 147 Status: O Content-Length: 1049 (whops, Evolution's reply window really needs something to remind me that I'm (accidentally) doing a private reply instead of mailing list reply..) On Fri, 2002-12-27 at 19:44, Jonas Smedegaard wrote: > When accessing my folders through Pine (setup to always go through IMAP, > even local mboxes) I get "kicked out" it seems, pretty often. Here's what > shows in the logfile: > > imap(jonas): file imap-bodystructure.c: line 342 (part_write_body): assertion failed: (part->children->next == NULL) Hmm. Usually that should happen only if index files are corrupted. But I don't think you've had any time to corrupt them yet :) You could try anyway rm -rf ~/mail/.imap/ I'll anyway look more closely how that could happen and maybe fix it with index rebuilding rather than dying, but could you get the backtrace of that? It probably doesn't core dump, but you could try it manually: gdb /usr/lib/dovecot/imap r x select inbox x fetch 1:* body bt Probably crashes with that. Might also be some weird email message that Dovecot doesn't like.. From jpeterson275@attbi.com Sat Dec 28 09:57:18 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 28 Dec 2002 09:57:18 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc03.attbi.com (sccrmhc03.attbi.com [204.127.202.63]) by danu.procontrol.fi (Postfix) with ESMTP id C54E22382C for ; Sat, 28 Dec 2002 09:57:17 +0200 (EET) Received: from attbi.com (12-228-125-138.client.attbi.com[12.228.125.138]) by sccrmhc03.attbi.com (sccrmhc03) with SMTP id <2002122807571000300logf2e>; Sat, 28 Dec 2002 07:57:11 +0000 Message-ID: <3E0D5959.7080300@attbi.com> Date: Fri, 27 Dec 2002 23:57:13 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] passwd-file; configure args.. Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 148 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 148 Status: O Content-Length: 1134 I couldn't reproduce this again (because i can't get imap-master running due to problem below..) but.. When compiling without shadow, passwd, or pam, when logging in I get after a successful login (in my syslog): Dec 28 22:39:38 badcase imap(username): MAIL environment missing and autodetection failed (home /some/home/directory) Now I thought this was covered in a previous fix before (ChangeLog: "2002-12-17 03:00 Timo Sirainen ") but for some reason it's broken again..? The configure args problem has to do with --localstatedir. If i leave it default (PREFIX/var) it forces me (even with non-relative pathnames in the config file) for the socket-files (ssl_parameters_file, login_dir) that should go in /var/run to be put under PREFIX, (/usr/local for NetBSD 1.6). Not too bad, if I could override it in the config file, which I can't. So I ./configure'd with --localstatedir=/, and when I run imap-master I now get: Fatal: Can't create directory //run/dovecot: No such file or directory Somewhat odd. Any clues on either of these would be helpful, thanks. -- Jesse Peterson erage@softhome.net From tss@iki.fi Sat Dec 28 10:32:33 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 28 Dec 2002 10:32:33 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9481123840 for ; Sat, 28 Dec 2002 10:32:33 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 42D915E01F68; Sat, 28 Dec 2002 10:32:33 +0200 (EET) Subject: [dovecot] Re: passwd-file; configure args.. From: Timo Sirainen To: Jesse Peterson Cc: Dovecot Mail List In-Reply-To: <3E0D5959.7080300@attbi.com> References: <3E0D5959.7080300@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041064352.29611.164.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 28 Dec 2002 10:32:33 +0200 X-archive-position: 149 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 149 Status: O Content-Length: 1566 On Sat, 2002-12-28 at 09:57, Jesse Peterson wrote: > I couldn't reproduce this again (because i can't get imap-master running > due to problem below..) but.. When compiling without shadow, passwd, or > pam, when logging in I get after a successful login (in my syslog): > Dec 28 22:39:38 badcase imap(username): MAIL environment missing and > autodetection failed (home /some/home/directory) > Now I thought this was covered in a previous fix before (ChangeLog: > "2002-12-17 03:00 Timo Sirainen ") but for some reason > it's broken again..? This is different problem. The mailbox location detection isn't working for some reason with you. Did it used to work, or is this just a different user? ~/mail (mbox) or ~/Maildir has to exist to make Dovecot know what to use. > The configure args problem has to do with --localstatedir. If i leave > it default (PREFIX/var) it forces me (even with non-relative pathnames > in the config file) for the socket-files (ssl_parameters_file, > login_dir) that should go in /var/run to be put under PREFIX, > (/usr/local for NetBSD 1.6). Not too bad, if I could override it in the > config file, which I can't. So I ./configure'd with --localstatedir=/, > and when I run imap-master I now get: > Fatal: Can't create directory //run/dovecot: No such file or directory > Somewhat odd. Well, since the default is PREFIX/var, you'd just drop out the PREFIX. ie. --localstatedir=/var. But I'm also a bit annoyed at this change, have to do something about it so that it can be overridden in config file. From jpeterson275@attbi.com Sat Dec 28 11:07:59 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 28 Dec 2002 11:07:59 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc02.attbi.com (sccrmhc02.attbi.com [204.127.202.62]) by danu.procontrol.fi (Postfix) with ESMTP id 961932382C for ; Sat, 28 Dec 2002 11:07:58 +0200 (EET) Received: from attbi.com (12-228-125-138.client.attbi.com[12.228.125.138]) by sccrmhc02.attbi.com (sccrmhc02) with SMTP id <20021228090756002000d0nle>; Sat, 28 Dec 2002 09:07:57 +0000 Message-ID: <3E0D69EF.7020306@attbi.com> Date: Sat, 28 Dec 2002 01:07:59 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: passwd-file; configure args.. References: <3E0D5959.7080300@attbi.com> <1041064352.29611.164.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 150 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 150 Status: O Content-Length: 2369 Timo Sirainen wrote: > On Sat, 2002-12-28 at 09:57, Jesse Peterson wrote: > >>I couldn't reproduce this again (because i can't get imap-master running >>due to problem below..) but.. When compiling without shadow, passwd, or >>pam, when logging in I get after a successful login (in my syslog): >>Dec 28 22:39:38 badcase imap(username): MAIL environment missing and >>autodetection failed (home /some/home/directory) >>Now I thought this was covered in a previous fix before (ChangeLog: >>"2002-12-17 03:00 Timo Sirainen ") but for some reason >>it's broken again..? > > > This is different problem. The mailbox location detection isn't working > for some reason with you. Did it used to work, or is this just a > different user? ~/mail (mbox) or ~/Maildir has to exist to make Dovecot > know what to use. > > >>The configure args problem has to do with --localstatedir. If i leave >>it default (PREFIX/var) it forces me (even with non-relative pathnames >>in the config file) for the socket-files (ssl_parameters_file, >>login_dir) that should go in /var/run to be put under PREFIX, >>(/usr/local for NetBSD 1.6). Not too bad, if I could override it in the >>config file, which I can't. So I ./configure'd with --localstatedir=/, >>and when I run imap-master I now get: >>Fatal: Can't create directory //run/dovecot: No such file or directory >>Somewhat odd. > > > Well, since the default is PREFIX/var, you'd just drop out the PREFIX. > ie. --localstatedir=/var. But I'm also a bit annoyed at this change, > have to do something about it so that it can be overridden in config > file. I've tried that, and it starts, with a message about fixing permissions of /var/run/dovecot, and then all I get is: Dec 29 01:05:48 badcase imap-master: child 9660 (auth) killed with signal 6 Dec 29 01:05:49 badcase imap-master: child 9662 (auth) killed with signal 6 Dec 29 01:05:51 badcase imap-master: child 9663 (auth) killed with signal 6 Dec 29 01:05:52 badcase imap-master: child 9664 (auth) killed with signal 6 Dec 29 01:05:53 badcase imap-master: child 9665 (auth) killed with signal 6 Dec 29 01:05:54 badcase imap-master: child 9666 (auth) killed with signal 6 If try to connect to the server, I get alternating (auth) and (login) "killed with signal 6" every second or so... weird. > > -- Jesse Peterson erage@softhome.net From jpeterson275@attbi.com Sat Dec 28 11:15:19 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 28 Dec 2002 11:15:19 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc03.attbi.com (sccrmhc03.attbi.com [204.127.202.63]) by danu.procontrol.fi (Postfix) with ESMTP id B9BD92382C for ; Sat, 28 Dec 2002 11:15:18 +0200 (EET) Received: from attbi.com (12-228-125-138.client.attbi.com[12.228.125.138]) by sccrmhc03.attbi.com (sccrmhc03) with SMTP id <2002122809151700300logn9e>; Sat, 28 Dec 2002 09:15:17 +0000 Message-ID: <3E0D6BA7.9040300@attbi.com> Date: Sat, 28 Dec 2002 01:15:19 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: passwd-file; configure args.. References: <3E0D5959.7080300@attbi.com> <1041064352.29611.164.camel@hurina> <3E0D69EF.7020306@attbi.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 151 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 151 Status: O Content-Length: 2567 Fixed... Jesse Peterson wrote: > Timo Sirainen wrote: > >> On Sat, 2002-12-28 at 09:57, Jesse Peterson wrote: >> >>> I couldn't reproduce this again (because i can't get imap-master >>> running due to problem below..) but.. When compiling without shadow, >>> passwd, or pam, when logging in I get after a successful login (in my >>> syslog): >>> Dec 28 22:39:38 badcase imap(username): MAIL environment missing and >>> autodetection failed (home /some/home/directory) >>> Now I thought this was covered in a previous fix before (ChangeLog: >>> "2002-12-17 03:00 Timo Sirainen ") but for some reason >>> it's broken again..? >> >> >> >> This is different problem. The mailbox location detection isn't working >> for some reason with you. Did it used to work, or is this just a >> different user? ~/mail (mbox) or ~/Maildir has to exist to make Dovecot >> know what to use. >> >> >>> The configure args problem has to do with --localstatedir. If i >>> leave it default (PREFIX/var) it forces me (even with non-relative >>> pathnames in the config file) for the socket-files >>> (ssl_parameters_file, login_dir) that should go in /var/run to be put >>> under PREFIX, (/usr/local for NetBSD 1.6). Not too bad, if I could >>> override it in the config file, which I can't. So I ./configure'd >>> with --localstatedir=/, and when I run imap-master I now get: >>> Fatal: Can't create directory //run/dovecot: No such file or directory >>> Somewhat odd. >> >> >> >> Well, since the default is PREFIX/var, you'd just drop out the PREFIX. >> ie. --localstatedir=/var. But I'm also a bit annoyed at this change, >> have to do something about it so that it can be overridden in config >> file. > > > I've tried that, and it starts, with a message about fixing permissions > of /var/run/dovecot, and then all I get is: > Dec 29 01:05:48 badcase imap-master: child 9660 (auth) killed with signal 6 > Dec 29 01:05:49 badcase imap-master: child 9662 (auth) killed with signal 6 > Dec 29 01:05:51 badcase imap-master: child 9663 (auth) killed with signal 6 > Dec 29 01:05:52 badcase imap-master: child 9664 (auth) killed with signal 6 > Dec 29 01:05:53 badcase imap-master: child 9665 (auth) killed with signal 6 > Dec 29 01:05:54 badcase imap-master: child 9666 (auth) killed with signal 6 > > If try to connect to the server, I get alternating (auth) and (login) > "killed with signal 6" every second or so... weird. For an odd reason, auth_user has to be root for it to not do this... > > > >> >> > -- Jesse Peterson erage@softhome.net From tss@iki.fi Sat Dec 28 11:19:08 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 28 Dec 2002 11:19:08 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7AE632382C for ; Sat, 28 Dec 2002 11:19:08 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 3E5A15E01F68; Sat, 28 Dec 2002 11:19:08 +0200 (EET) Subject: [dovecot] Re: passwd-file; configure args.. From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3E0D6BA7.9040300@attbi.com> References: <3E0D5959.7080300@attbi.com> <1041064352.29611.164.camel@hurina> <3E0D69EF.7020306@attbi.com> <3E0D6BA7.9040300@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041067147.29611.168.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 28 Dec 2002 11:19:07 +0200 X-archive-position: 152 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 152 Status: O Content-Length: 1053 On Sat, 2002-12-28 at 11:15, Jesse Peterson wrote: > > I've tried that, and it starts, with a message about fixing permissions > > of /var/run/dovecot, and then all I get is: > > Dec 29 01:05:48 badcase imap-master: child 9660 (auth) killed with signal 6 > > Dec 29 01:05:49 badcase imap-master: child 9662 (auth) killed with signal 6 > > Dec 29 01:05:51 badcase imap-master: child 9663 (auth) killed with signal 6 > > Dec 29 01:05:52 badcase imap-master: child 9664 (auth) killed with signal 6 > > Dec 29 01:05:53 badcase imap-master: child 9665 (auth) killed with signal 6 > > Dec 29 01:05:54 badcase imap-master: child 9666 (auth) killed with signal 6 These are because of some bugs in syslog failure handler which I fixed a few hours ago. It tried to print an error message but died instead. > > If try to connect to the server, I get alternating (auth) and (login) > > "killed with signal 6" every second or so... weird. > > For an odd reason, auth_user has to be root for it to not do this... It didn't have read-access to the passwd file? From jpeterson275@attbi.com Sat Dec 28 11:32:03 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 28 Dec 2002 11:32:03 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc01.attbi.com (sccrmhc01.attbi.com [204.127.202.61]) by danu.procontrol.fi (Postfix) with ESMTP id EEFA52382C for ; Sat, 28 Dec 2002 11:32:02 +0200 (EET) Received: from attbi.com (12-228-125-138.client.attbi.com[12.228.125.138]) by sccrmhc01.attbi.com (sccrmhc01) with SMTP id <20021228093201001003l8t1e>; Sat, 28 Dec 2002 09:32:01 +0000 Message-ID: <3E0D6F93.7080700@attbi.com> Date: Sat, 28 Dec 2002 01:32:03 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: passwd-file; configure args.. References: <3E0D5959.7080300@attbi.com> <1041064352.29611.164.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 153 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 153 Status: O Content-Length: 2077 Timo Sirainen wrote: > On Sat, 2002-12-28 at 09:57, Jesse Peterson wrote: > >>I couldn't reproduce this again (because i can't get imap-master running >>due to problem below..) but.. When compiling without shadow, passwd, or >>pam, when logging in I get after a successful login (in my syslog): >>Dec 28 22:39:38 badcase imap(username): MAIL environment missing and >>autodetection failed (home /some/home/directory) >>Now I thought this was covered in a previous fix before (ChangeLog: >>"2002-12-17 03:00 Timo Sirainen ") but for some reason >>it's broken again..? > > > This is different problem. The mailbox location detection isn't working > for some reason with you. Did it used to work, or is this just a > different user? ~/mail (mbox) or ~/Maildir has to exist to make Dovecot > know what to use. > More investigation brings some light into this. If I create and move everything into a ~/Maildir, it seems to do okay, however, I want to set my default_mail_env to "maildir:%h" or "mbox:%h" and have that work, but so far, nothing. Is there anything preventing this defualt_mail_env from working correctly? It doesn't seem to work with these parameters as it is right now. > >>The configure args problem has to do with --localstatedir. If i leave >>it default (PREFIX/var) it forces me (even with non-relative pathnames >>in the config file) for the socket-files (ssl_parameters_file, >>login_dir) that should go in /var/run to be put under PREFIX, >>(/usr/local for NetBSD 1.6). Not too bad, if I could override it in the >>config file, which I can't. So I ./configure'd with --localstatedir=/, >>and when I run imap-master I now get: >>Fatal: Can't create directory //run/dovecot: No such file or directory >>Somewhat odd. > > > Well, since the default is PREFIX/var, you'd just drop out the PREFIX. > ie. --localstatedir=/var. But I'm also a bit annoyed at this change, > have to do something about it so that it can be overridden in config > file. Right, this works. > > > -- Jesse Peterson erage@softhome.net From jpeterson275@attbi.com Sat Dec 28 11:34:40 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 28 Dec 2002 11:34:40 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc01.attbi.com (sccrmhc01.attbi.com [204.127.202.61]) by danu.procontrol.fi (Postfix) with ESMTP id 832652382C for ; Sat, 28 Dec 2002 11:34:40 +0200 (EET) Received: from attbi.com (12-228-125-138.client.attbi.com[12.228.125.138]) by sccrmhc01.attbi.com (sccrmhc01) with SMTP id <20021228093439001003kut9e>; Sat, 28 Dec 2002 09:34:39 +0000 Message-ID: <3E0D7031.9040306@attbi.com> Date: Sat, 28 Dec 2002 01:34:41 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: passwd-file; configure args.. References: <3E0D5959.7080300@attbi.com> <1041064352.29611.164.camel@hurina> <3E0D69EF.7020306@attbi.com> <3E0D6BA7.9040300@attbi.com> <1041067147.29611.168.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 154 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 154 Status: O Timo Sirainen wrote: > It didn't have read-access to the passwd file? Actually, it didn't, I'll bet that was the problem. Sorry for bugging you with my incompetence. =) > > > -- Jesse Peterson erage@softhome.net From tss@iki.fi Sat Dec 28 11:56:17 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 28 Dec 2002 11:56:17 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 606E42382C for ; Sat, 28 Dec 2002 11:56:17 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 32EE35E01F68; Sat, 28 Dec 2002 11:56:17 +0200 (EET) Subject: [dovecot] Re: passwd-file; configure args.. From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3E0D6F93.7080700@attbi.com> References: <3E0D5959.7080300@attbi.com> <1041064352.29611.164.camel@hurina> <3E0D6F93.7080700@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041069376.29609.170.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 28 Dec 2002 11:56:16 +0200 X-archive-position: 155 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 155 Status: O On Sat, 2002-12-28 at 11:32, Jesse Peterson wrote: > More investigation brings some light into this. If I create and move > everything into a ~/Maildir, it seems to do okay, however, I want to set > my default_mail_env to "maildir:%h" or "mbox:%h" and have that work, but > so far, nothing. Is there anything preventing this defualt_mail_env > from working correctly? It doesn't seem to work with these parameters > as it is right now. Yes, a stupid bug that I fixed now :) From gareth@wiked.org Mon Dec 30 05:10:14 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 30 Dec 2002 05:10:14 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mulder.wiked.org (3dlci148-2.icsfm.com [207.151.143.148]) by danu.procontrol.fi (Postfix) with ESMTP id E39E82382C for ; Mon, 30 Dec 2002 05:10:13 +0200 (EET) Received: by mulder.wiked.org (Postfix, from userid 1000) id 2180210F20; Sun, 29 Dec 2002 19:10:07 -0800 (PST) Date: Sun, 29 Dec 2002 19:10:06 -0800 To: dovecot@procontrol.fi Subject: [dovecot] Maildir format Message-ID: <20021230031006.GB23626@mulder.wiked.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i From: gareth@wiked.org (Gareth J. Greenaway) X-archive-position: 156 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: gareth@wiked.org Precedence: bulk X-list: dovecot X-UID: 156 Status: O Started using dovecot and I am very impressed by its speed. I am confused by what it is expecting the format of the Maildir directory to be in. I currently have ~/Maildir which contains new, cur, and tmp all containing email that should be in my inbox and it pops up correctly as such when I connect to dovecot using Mutt. After the connection a new .INBOX is created under ~/Maildir with sym links back to new, cur, and tmp. The problem arrises when I want to view email from another folder, I have a folder called "test" which contains some email also in Maildir format, however when I attempt to view this email I only get an empty listing with the ".." to go one directory up. Thanks. Gareth Greenaway -- "My friends say I should act my age, What's my age again?" Gareth J. Greenaway | gareth@wiked.org From tss@iki.fi Mon Dec 30 08:51:22 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 30 Dec 2002 08:51:22 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0EBCD23839 for ; Mon, 30 Dec 2002 08:51:22 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id BEF515E01F68; Mon, 30 Dec 2002 08:51:21 +0200 (EET) Subject: [dovecot] Re: Maildir format From: Timo Sirainen To: "Gareth J. Greenaway" Cc: dovecot@procontrol.fi In-Reply-To: <20021230031006.GB23626@mulder.wiked.org> References: <20021230031006.GB23626@mulder.wiked.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041231081.29604.226.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 30 Dec 2002 08:51:21 +0200 X-archive-position: 157 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 157 Status: O On Mon, 2002-12-30 at 05:10, Gareth J. Greenaway wrote: > to new, cur, and tmp. The problem arrises when I want to view email > from another folder, I have a folder called "test" which contains some > email also in Maildir format, however when I attempt to view this > email I only get an empty listing with the ".." to go one directory > up. Thanks. Dovecot wants the folders directory names to begin with a dot, so name it ".test". Subfolders would be named as ".test.subfolder". This is compatible with Courier's Maildir++ format. From tss@iki.fi Mon Dec 30 09:47:13 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 30 Dec 2002 09:47:13 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E810A2382C for ; Mon, 30 Dec 2002 09:47:12 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 981315E01F68; Mon, 30 Dec 2002 09:47:12 +0200 (EET) Subject: [dovecot] Re: Maildir format From: Timo Sirainen To: "Gareth J. Greenaway" Cc: dovecot@procontrol.fi In-Reply-To: <20021230072514.GC23626@mulder.wiked.org> References: <20021230031006.GB23626@mulder.wiked.org> <1041231081.29604.226.camel@hurina> <20021230072514.GC23626@mulder.wiked.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041234432.29611.242.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 30 Dec 2002 09:47:12 +0200 X-archive-position: 158 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 158 Status: O On Mon, 2002-12-30 at 09:25, Gareth J. Greenaway wrote: > On Mon, Dec 30, 2002 at 08:51:21AM +0200, Timo Sirainen wrote: > > Dovecot wants the folders directory names to begin with a dot, so name > > it ".test". Subfolders would be named as ".test.subfolder". This is > > compatible with Courier's Maildir++ format. > > Right. that is what I have as im using the Maildir folders from > Courier but I still do not see mail showing up in them. The folder > itself shows up but no mail. Oh, I think then you're just using mutt a bit wrong :) Enter-key goes inside a subfolder, space-key selects the folder. A folder can itself contain mail but it can also contain subfolders, so this is needed. With Courier you probably got away with just enter-key because you didn't have such subfolders and Courier gives mutt hints about if folders have subfolders. Dovecot doesn't yet support that extension so mutt always assumes they have subfolders. From tss@iki.fi Thu Jan 2 16:02:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 02 Jan 2003 16:02:17 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A5EA323839 for ; Thu, 2 Jan 2003 16:02:16 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 5F85E5E01F96; Thu, 2 Jan 2003 16:02:16 +0200 (EET) Subject: [dovecot] 0.99.5 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041516136.29604.315.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 02 Jan 2003 16:02:16 +0200 X-archive-position: 159 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 159 Status: O Content-Length: 2613 v0.99.5 2003-01-02 Timo Sirainen * This release includes a lot of code cleanups, especially related to security. Direct buffer modifying was replaced in several places with a new buffer API, which provides a safe way to do it. Code that looks unsafe contains @UNSAFE tag to make auditing easier. + Support for SORT extension. Originally I thought about not implementing any extensions before 1.0, but too many people want webmails which want SORT. THREAD is another extension which they want, but we don't support it yet. + imap_listen and imaps_listen settings now accept "*" and "::" to specify if we want to listen in IPv4 or IPv6 addresses. "::" may also listen in all IPv4 addresses depending on the OS (Linux does, BSD doesn't) + New setting: default_mail_env can be used to specify where to find users mailbox. Default is still to use autodetection. + New setting: imap_log_path to log logins etc. informational messages to different file. + We support now separate mbox file for INBOX folder, no need for symlink kludging anymore. + Support for keeping index files in different location than actual mailboxes. ? Disabled mailbox_check_interval setting by default, it breaks Evolution. - SEARCH was still somewhat buggy, especially with laggy networks. Also body/header searches might have crashed or at least used memory too much - Deleting messages in the middle of mbox caused dovecot to reindex the following messages as new messages (ie. change UIDs and set \Recent flag). - Digest-MD5 auth: Initial server challenge packet was missing a comma, which might have made it incompatible with some implementations. - Some more fixes to unnecessarily high memory usage - SELECT and EXAMINE often printed UNSEEN reply or maybe complained about corrupted indexes. Happened usually only with mbox. - FETCH BODYSTRUCTURE gave incorrect reply, breaking pine - LIST was pretty buggy with mbox subfolders - CHECK command returned just "missing parameters" error - DELETE didn't work with mbox folders - CREATE mailbox failed always. - CREATE and RENAME didn't create required hierarchies with mbox - RFC822 date parser didn't handle single digit days correctly. - login_process_per_connection = yes didn't work with imaps port connections which is exactly where it was mostly wanted. - ssl_disabled = yes didn't disable listening in imaps port - process limiting code didn't compile everywhere (eg. FreeBSD). - Linux sendfile() was never detected - We didn't work at all with gcc/PowerPC From bradf@mailgate.tpi.com Fri Jan 3 01:58:37 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 03 Jan 2003 01:58:37 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mailgate.tpi.com (ftp.tpi.com [198.107.51.136]) by danu.procontrol.fi (Postfix) with ESMTP id 9069C23839 for ; Fri, 3 Jan 2003 01:58:36 +0200 (EET) Received: from norbert (norbert.tpi.com [198.107.51.144]) by mailgate.tpi.com (Post.Office MTA v3.5.3 release 223 ID# 0-60229U100L100S0V35) with ESMTP id com for ; Thu, 2 Jan 2003 15:58:35 -0800 Content-Type: text/plain; charset="us-ascii" From: Brad Figg To: dovecot@procontrol.fi Subject: [dovecot] Util for pop3 to dovecot? Date: Thu, 2 Jan 2003 15:59:38 -0800 User-Agent: KMail/1.4.3 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200301021559.38857.brad@tpi.com> X-archive-position: 160 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: brad@tpi.com Precedence: bulk X-list: dovecot X-UID: 160 Status: O What I want to do is pop my email off of a Pop3 server and give it to dovecot for imap serving. Does anyone know of a utility that will allow me to do this? I looked at fetchmail but it seems to want to talk to an SMTP server. Thanks, Brad --=20 Brad Figg - brad@tpi.com 503.601.0235 ext. 105 TriplePoint, Inc. - http://www.tpi.com From amyzing@talsever.com Fri Jan 3 04:02:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 03 Jan 2003 04:02:16 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from granger.mail.mindspring.net (granger.mail.mindspring.net [207.69.200.148]) by danu.procontrol.fi (Postfix) with ESMTP id 2531323839 for ; Fri, 3 Jan 2003 04:02:16 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by granger.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18UHA4-0006K8-00 for dovecot@procontrol.fi; Thu, 02 Jan 2003 21:02:12 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id DAF0C817E; Thu, 2 Jan 2003 21:07:03 -0500 (EST) Date: Thu, 2 Jan 2003 21:07:03 -0500 From: Amelia A.Lewis To: dovecot@procontrol.fi Subject: [dovecot] maildirmake, shared folders Message-Id: <20030102210703.34a45879.amyzing@talsever.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.8.5 (GTK+ 1.2.10; alpha-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 161 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 161 Status: O Content-Length: 2407 Does dovecot support shared folders, maildir style? I've set it up, using the maildirmake from debian maildrop to create folders. I have a number of as-yet unresolved issues, so I haven't been able to test with many clients. It's interesting that dovecot manages to present folders as siblings (rather than children) of INBOX. But mutt, at least, doesn't seem to see the shared maildir (created per instructions in the maildirmake man page). I find in the debian archives that courier is unable to see messages delivered to new in a shared maildir. This doesn't seem to be the same set of symptoms, though. It appears, instead, that dovecot isn't recognizing (and then advertising) the shared-maildirs file (a text file that describes the name and the location). Is that the case? I don't think it's a high priority, mind, just wondering. Another question: can the dovecot distribution include a maildirmake utility? The documentation is pretty blunt about the significant advantages of maildirs, but one has to go to the courier distribution to find a utility to pre-create these (which dovecot seems to want, since it's recognizing the mail type by looking for the dir). This is most significant when setting up new users, of course. Possibly this is inappropriate, and I should instead ask the debian package maintainer to 'recommend' or 'suggest' the maildrop package in order to get the required utility. Nice stuff, though. I really like the ease of administration; dovecot looks to me like a sort of equivalent to postfix, for IMAP instead of SMTP. A request for the website: perhaps developers could supply information on clients used with the server, and what oddities are encountered? I know that IMAP client support is spotty, at best (for instance, I can't find a client that can do digest-md5; mutt is supposedly capable, but my installation doesn't even admit that that's a valid authenticator). This is partly significant because setting up a system that uses options for which there is little or no client support is, perhaps, an exercise in futility. Amy! -- Amelia A. Lewis amyzing {at} talsever.com Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise. -- The Duchess [Lewis Carroll] From gareth@wiked.org Fri Jan 3 04:48:52 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 03 Jan 2003 04:48:52 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mulder.wiked.org (3dlci148-2.icsfm.com [207.151.143.148]) by danu.procontrol.fi (Postfix) with ESMTP id 59C4923839 for ; Fri, 3 Jan 2003 04:48:52 +0200 (EET) Received: by mulder.wiked.org (Postfix, from userid 1000) id 07DC710F20; Thu, 2 Jan 2003 18:48:46 -0800 (PST) Date: Thu, 2 Jan 2003 18:48:45 -0800 To: dovecot@procontrol.fi Subject: [dovecot] Re: Util for pop3 to dovecot? Message-ID: <20030103024845.GA32431@mulder.wiked.org> References: <200301021559.38857.brad@tpi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200301021559.38857.brad@tpi.com> User-Agent: Mutt/1.4i From: gareth@wiked.org (Gareth J. Greenaway) X-archive-position: 162 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: gareth@wiked.org Precedence: bulk X-list: dovecot X-UID: 162 Status: O On Thu, Jan 02, 2003 at 03:59:38PM -0800, Brad Figg wrote: > > What I want to do is pop my email off of a Pop3 server > and give it to dovecot for imap serving. Does anyone > know of a utility that will allow me to do this? I looked > at fetchmail but it seems to want to talk to an SMTP > server. > > fetchmail talks to a pop3 server, smtp is for sending email. You could use fetchmail to bring the mail down from the pop3 server and then use procmail to filter to filter out to the folders that imap will serve from. Gareth -- "My friends say I should act my age, What's my age again?" Gareth J. Greenaway | gareth@wiked.org From tss@iki.fi Fri Jan 3 07:31:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 03 Jan 2003 07:31:31 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CBBE12382C for ; Fri, 3 Jan 2003 07:31:30 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 6A8325E01F96; Fri, 3 Jan 2003 07:31:30 +0200 (EET) Subject: [dovecot] Re: maildirmake, shared folders From: Timo Sirainen To: "Amelia A.Lewis" Cc: dovecot@procontrol.fi In-Reply-To: <20030102210703.34a45879.amyzing@talsever.com> References: <20030102210703.34a45879.amyzing@talsever.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041571890.29609.441.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 03 Jan 2003 07:31:30 +0200 X-archive-position: 163 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 163 Status: O Content-Length: 1976 On Fri, 2003-01-03 at 04:07, Amelia A.Lewis wrote: > Does dovecot support shared folders, maildir style? No shared folder support yet, sorry. > It's interesting that dovecot manages to present folders as siblings > (rather than children) of INBOX. Yeah, I got annoyed at that with Courier. It was probably done so that there would be a completely private namespace for the user, but I don't think it's that bad to reserve a couple of folder names to specify shared namespaces. Although I'll probably make it optional to specify a separate namespace for private folders too. > Another question: can the dovecot distribution include a maildirmake > utility? Well, maybe. It might confuse people though, since Dovecot doesn't yet support shared folders and quota. Also Dovecot itself doesn't really care about the contents of maildir, it's enough to simply create ~/Maildir and Dovecot creates the missing folders. qmail and others might not do that though. > Nice stuff, though. I really like the ease of administration; dovecot > looks to me like a sort of equivalent to postfix, for IMAP instead of > SMTP. I'm trying to make it fool proof :) > A request for the website: perhaps developers could supply > information on clients used with the server, and what oddities are > encountered? Yes, I guess I could. I haven't found many oddities yet though. > I know that IMAP client support is spotty, at best (for instance, I > can't find a client that can do digest-md5; mutt is supposedly > capable, but my installation doesn't even admit that that's a valid > authenticator). This is partly significant because setting up a > system that uses options for which there is little or no client > support is, perhaps, an exercise in futility. Evolution can do digest-md5 and I'm using it all the time. mutt uses Cyrus SASL library, so you'll have to install libsasl-digestmd5-plain in Debian. Except it doesn't seem to like Dovecot's implementation, have to fix.. From jaldhar@debian.org Fri Jan 3 07:46:29 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 03 Jan 2003 07:46:29 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 3702A2382C for ; Fri, 3 Jan 2003 07:46:29 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 1D0C68130; Fri, 3 Jan 2003 00:46:26 -0500 (EST) Date: Fri, 3 Jan 2003 00:46:26 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: "Amelia A.Lewis" Cc: dovecot@procontrol.fi Subject: [dovecot] Re: maildirmake, shared folders In-Reply-To: <20030102210703.34a45879.amyzing@talsever.com> Message-ID: References: <20030102210703.34a45879.amyzing@talsever.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 164 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 164 Status: O Content-Length: 1380 On Thu, 2 Jan 2003, Amelia A.Lewis wrote: > Another question: can the dovecot distribution include a maildirmake > utility? The documentation is pretty blunt about the significant > advantages of maildirs, but one has to go to the courier distribution to > find a utility to pre-create these (which dovecot seems to want, since > it's recognizing the mail type by looking for the dir). This is most > significant when setting up new users, of course. Possibly this is > inappropriate, and I should instead ask the debian package maintainer to > 'recommend' or 'suggest' the maildrop package in order to get the > required utility. > Good thing I checked this list before I made the 0.99.5 packages. rather than depend on another package, i'm going to include the following script as /usr/bin/maildirmake.dovecot (to avoid treading on the others.) #!/bin/sh # # maildirmake.dovecot -- create maildirs # Copyright (c) 2003, Jaldhar H. Vyas # "Do what thou wilt" shall be the whole of the license. # dir=$1 if [ -z "$dir" ]; then echo "Must supply a directory path" exit 1 fi if [ "$dir" = "-h" ]; then echo "usage: $0 directory" exit 0 fi umask 077 mkdir -p $dir/{cur,new,tmp} || echo "$!" && exit 1 chmod u+rwxg-a- $dir $dir/{cur,new,tmp} || echo "$!" && exit 1 exit 0 If Timo wants to borrow this, he is welcome to it. -- Jaldhar H. Vyas From dgc@uchicago.edu Sat Jan 4 01:41:29 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 04 Jan 2003 01:41:29 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id 0560C2382C for ; Sat, 4 Jan 2003 01:41:15 +0200 (EET) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id h03Nf3p07313; Fri, 3 Jan 2003 17:41:03 -0600 (CST) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Fri, 3 Jan 2003 17:41:03 -0600 From: David Champion To: "Gareth J. Greenaway" Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Util for pop3 to dovecot? Message-ID: <20030103234103.GM27418@dust.uchicago.edu> Mail-Followup-To: "Gareth J. Greenaway" , dovecot@procontrol.fi References: <200301021559.38857.brad@tpi.com> <20030103024845.GA32431@mulder.wiked.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030103024845.GA32431@mulder.wiked.org> User-Agent: Mutt/1.5.2i X-archive-position: 165 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dgc@uchicago.edu Precedence: bulk X-list: dovecot X-UID: 165 Status: O Content-Length: 1241 * On 2003.01.02, in <20030103024845.GA32431@mulder.wiked.org>, * "Gareth J. Greenaway" wrote: > > > > know of a utility that will allow me to do this? I looked > > at fetchmail but it seems to want to talk to an SMTP > > server. > > fetchmail talks to a pop3 server, smtp is for sending email. You > could use fetchmail to bring the mail down from the pop3 server and > then use procmail to filter to filter out to the folders that imap > will serve from. There's a misunderstanding here. In some configurations, fetchmail wants to relay mail that it pops through a local MTA (SMTP server). This is what Brad was referring to: it connects to the POP server, downloads mail, and connects to the local SMTP service to relay the new messages. The ostensible reasons for this are a certain kind of simplicity, and the ability to take advantage of whatever filtering hooks you have plugged into your local MTA. But for another kind of simplicity, fetchmail can be configured instead to use a local MDA instead of a local MTA. Procmail works fine for this purpose, as does any other program designed to deliver mail locally on sendmail's behalf. -- -D. dgc@uchicago.edu NSIT University of Chicago We're the colon in :// From amyzing@talsever.com Sun Jan 5 06:40:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 05 Jan 2003 06:40:44 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from granger.mail.mindspring.net (granger.mail.mindspring.net [207.69.200.148]) by danu.procontrol.fi (Postfix) with ESMTP id E90A323839 for ; Sun, 5 Jan 2003 06:40:43 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by granger.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18V2aV-0006Sv-00 for dovecot@procontrol.fi; Sat, 04 Jan 2003 23:40:39 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id 446A78051; Sat, 4 Jan 2003 23:46:01 -0500 (EST) Date: Sat, 4 Jan 2003 23:46:01 -0500 From: Amelia A.Lewis To: dovecot Subject: [dovecot] Some experiences Message-Id: <20030104234601.11360cfc.amyzing@talsever.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.8.5 (GTK+ 1.2.10; alpha-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 166 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 166 Status: O Content-Length: 3190 Heyas ... I'm trying to use dovecot to set up a 'closed server' (actually, mixed) sort of environment, for a box to be deployed co-located. I wanted to talk about some of that, and see if some of my experience qualifies as 'bug'. Note that I'm notoriously verbose, so if that bothers you, read no further .... Since it's a more-or-less closed server, I didn't want to use pam (well, I wouldn't mind, for users with shell accounts, but I can't see a way to mix pam and passwd-file ... is there a way to do that?). It turns out that digest-md5 support for clients is, well, not very widespread. I expect this box to be used by various windoze clients, eventually, and while I'm willing to lay down the law a little, I can't find enough digest-md5 support to lay down that law. So, regretfully, I abandoned that plan. This kinda bothers me, since I think TLS/STARTTLS is absolutely the *wrong* solution for mailbox access (or for anything that deals with a store-and-forward transport). I therefore tried md5 passwords in a passwd-file, with STARTTLS enabled. Didn't work. I turned off SSL, and reenabled plain-text, and watched the login go by. Very sniffable, of course. But correct username and password ... failed. There are instructions for creating digest-md5 style secrets in auth.txt, but none for md5 passwords; I used openssl passwd -1 [password] (and cut and paste). It seems odd to me that this didn't work; does that command use a different algorithm than dovecot? Falling back ... since it *shouldn't* matter if the passwords are weak, as long as they're inside TLS (along with the entire rest of the transaction, ugh), I used mkpasswd to generate a standard unix passwd (and cut and paste). This worked. It worked with TLS, and it worked without (as long as I remembered to allow sniffable logins). One more oddity: I originally had a realm in the passwd-file, which also established the mail location and 'home' directory (most of the users can't actually log in and don't have accounts in /etc/passwd, so it's not a real home directory). There was an odd message in syslog, approximately like so (where 'user' represents the username, and 'domain.realm' represents both my domain name and the realm in the passwd-file): imap(user:@omain.realm): Failed to create storage with data: domain.realm Note the missing first letter after user:@ And I don't know what it was trying to do; the maildirs already exist. /etc/dovecot.conf sets the default mail location to /home/users/%n/Maildir (non-shell users are all inside /home/users; shell users have mail there, with symlinks to ~/Maildir); the passwd-file establishes the location of the INBOX pretty definitively, I would think. The solution was to remove the realm (which isn't useful except for digest md5, anway, right?). Hey, it's working! Wahoo! *laugh* Anyway, if someone can offer suggestions on what's up with the pieces that *aren't* working, I'd be interested to know. It might give me a greater range of options. Amy! -- Amelia A. Lewis amyzing {at} talsever.com The less I seek my source for some definitive, the closer I am to fine. -- Indigo Girls From jpeterson275@attbi.com Sun Jan 5 07:05:37 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 05 Jan 2003 07:05:37 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc01.attbi.com (sccrmhc01.attbi.com [204.127.202.61]) by danu.procontrol.fi (Postfix) with ESMTP id CE7152382C for ; Sun, 5 Jan 2003 07:05:36 +0200 (EET) Received: from attbi.com (12-228-125-138.client.attbi.com[12.228.125.138]) by sccrmhc01.attbi.com (sccrmhc01) with SMTP id <20030105050533001005gcn3e>; Sun, 5 Jan 2003 05:05:33 +0000 Message-ID: <3E17BD2C.9020906@attbi.com> Date: Sat, 04 Jan 2003 21:05:48 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: Some experiences References: <20030104234601.11360cfc.amyzing@talsever.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 167 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 167 Status: O Content-Length: 3374 Amelia A.Lewis wrote: > Heyas ... > > I'm trying to use dovecot to set up a 'closed server' (actually, mixed) sort of environment, for a box to be deployed co-located. I wanted to talk about some of that, and see if some of my experience qualifies as 'bug'. > > Note that I'm notoriously verbose, so if that bothers you, read no further .... > > Since it's a more-or-less closed server, I didn't want to use pam (well, I wouldn't mind, for users with shell accounts, but I can't see a way to mix pam and passwd-file ... is there a way to do that?). > > It turns out that digest-md5 support for clients is, well, not very widespread. I expect this box to be used by various windoze clients, eventually, and while I'm willing to lay down the law a little, I can't find enough digest-md5 support to lay down that law. So, regretfully, I abandoned that plan. This kinda bothers me, since I think TLS/STARTTLS is absolutely the *wrong* solution for mailbox access (or for anything that deals with a store-and-forward transport). > > I therefore tried md5 passwords in a passwd-file, with STARTTLS enabled. Didn't work. I turned off SSL, and reenabled plain-text, and watched the login go by. Very sniffable, of course. But correct username and password ... failed. There are instructions for creating digest-md5 style secrets in auth.txt, but none for md5 passwords; I used openssl passwd -1 [password] (and cut and paste). It seems odd to me that this didn't work; does that command use a different algorithm than dovecot? > > Falling back ... since it *shouldn't* matter if the passwords are weak, as long as they're inside TLS (along with the entire rest of the transaughction, ugh), I used mkpasswd to generate a standard unix passwd (and cut and paste). This worked. It worked with TLS, and it worked without (as long as I remembered to allow sniffable logins). Not to be confrontational at all, but I'm very curious as to why you have such an aversion to SSL/TLS for IMAP access? I think actualy an entirely encrypted transport for something as (possibly sensitive) email is a good thing. > > One more oddity: I originally had a realm in the passwd-file, which also established the mail location and 'home' directory (most of the users can't actually log in and don't have accounts in /etc/passwd, so it's not a real home directory). There was an odd message in syslog, approximately like so (where 'user' represents the username, and 'domain.realm' represents both my domain name and the realm in the passwd-file): > > imap(user:@omain.realm): Failed to create storage with data: domain.realm > > Note the missing first letter after user:@ And I don't know what it was trying to do; the maildirs already exist. /etc/dovecot.conf sets the default mail location to /home/users/%n/Maildir (non-shell users are all inside /home/users; shell users have mail there, with symlinks to ~/Maildir); the passwd-file establishes the location of the INBOX pretty definitively, I would think. The solution was to remove the realm (which isn't useful except for digest md5, anway, right?). > > Hey, it's working! Wahoo! *laugh* Anyway, if someone can offer suggestions on what's up with the pieces that *aren't* working, I'd be interested to know. It might give me a greater range of options. > > Amy! -- Jesse Peterson / jesse@pixeltechs.com From amyzing@talsever.com Sun Jan 5 07:25:13 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 05 Jan 2003 07:25:13 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from barry.mail.mindspring.net (barry.mail.mindspring.net [207.69.200.25]) by danu.procontrol.fi (Postfix) with ESMTP id C48362382C for ; Sun, 5 Jan 2003 07:25:13 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by barry.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18V3Ha-0004NP-00; Sun, 05 Jan 2003 00:25:10 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id 941EE8051; Sun, 5 Jan 2003 00:30:32 -0500 (EST) Date: Sun, 5 Jan 2003 00:30:32 -0500 From: Amelia A.Lewis To: Jesse Peterson Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Some experiences Message-Id: <20030105003032.475dc84b.amyzing@talsever.com> In-Reply-To: <3E17BD2C.9020906@attbi.com> References: <20030104234601.11360cfc.amyzing@talsever.com> <3E17BD2C.9020906@attbi.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.8.5 (GTK+ 1.2.10; alpha-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 168 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 168 Status: O Content-Length: 2646 On Sat, 04 Jan 2003 21:05:48 -0800 Jesse Peterson wrote: > Amelia A.Lewis wrote: > > It turns out that digest-md5 support for clients is, well, not very > > widespread. I expect this box to be used by various windoze > > clients, eventually, and while I'm willing to lay down the law a > > little, I can't find enough digest-md5 support to lay down that law. > > So, regretfully, I abandoned that plan. This kinda bothers me, > > since I think TLS/STARTTLS is absolutely the *wrong* solution for > > mailbox access (or for anything that deals with a store-and-forward > > transport). > > Not to be confrontational at all, but I'm very curious as to why you > have such an aversion to SSL/TLS for IMAP access? I think actualy an > entirely encrypted transport for something as (possibly sensitive) > email is a good thing. That's exactly why. TLS doesn't secure email. It secures this particular transaction over IMAP. Worse, from my particular perspective, it's the preferred solution to secure authentication, which means that lighter-weight solutions that protect only the authentication secret are much less available. TLS also tends to be associated with ecommerce, and the famous (or possibly notorious) lock icon. It has a widespread connotation of comfortable security which, of course, IMAP+TLS alone cannot by any means actually guarantee. My particular installation is supposed to protect the authentication secret, only, because I don't want someone using the system to think "my email is secure" because it runs over a TLS session. It isn't. Secure email means end-to-end, an agreement between the people who are exchanging it and a willingness to encrypt (and usually to store encrypted). I dislike the impression given by TLS that it's a magical solution to the problem of security (which one hears from programmers that ought to know better, btw ... create an insecure system, and answer questions about security with "anyone worried about it can use SSL!"). But we're off topic, I think, and I'm ranting, because I ended up needing to use the heavyweight solution as client support for the solutions I prefer doesn't seem to be out there. Which is prolly why I made the snide and unnecessary remarks in the first place. Amy! -- Amelia A. Lewis amyzing {at} talsever.com Light is the left hand of darkness and darkness the right hand of light. Two are one, life and death, lying together like lovers in kemmer, like hands joined together, like the end and the way. -- Tormer's Lay [Ursula K. Le Guin, "The Left Hand of Darkness"] From tss@iki.fi Sun Jan 5 11:32:26 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 05 Jan 2003 11:32:26 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 076B62382C for ; Sun, 5 Jan 2003 11:32:26 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 5990E5E01F96; Sun, 5 Jan 2003 11:32:25 +0200 (EET) Subject: [dovecot] Re: Some experiences From: Timo Sirainen To: "Amelia A.Lewis" Cc: dovecot In-Reply-To: <20030104234601.11360cfc.amyzing@talsever.com> References: <20030104234601.11360cfc.amyzing@talsever.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041759144.6219.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 05 Jan 2003 11:32:25 +0200 X-archive-position: 169 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 169 Status: O Content-Length: 3033 On Sun, 2003-01-05 at 06:46, Amelia A.Lewis wrote: > Since it's a more-or-less closed server, I didn't want to use pam > (well, I wouldn't mind, for users with shell accounts, but I can't see > a way to mix pam and passwd-file ... is there a way to do that?). Not really. I don't think it'd be worth the trouble. > It turns out that digest-md5 support for clients is, well, not very > widespread. I expect this box to be used by various windoze clients, > eventually, and while I'm willing to lay down the law a little, I > can't find enough digest-md5 support to lay down that law. So, > regretfully, I abandoned that plan. This kinda bothers me, since I > think TLS/STARTTLS is absolutely the *wrong* solution for mailbox > access (or for anything that deals with a store-and-forward > transport). I think Outlook supported only NTLM besides the plaintext auth. There's specs for it now so it would be possible to be supported too. > I therefore tried md5 passwords in a passwd-file, with STARTTLS > enabled. Didn't work. I turned off SSL, and reenabled plain-text, > and watched the login go by. Very sniffable, of course. But correct > username and password ... failed. There are instructions for creating > digest-md5 style secrets in auth.txt, but none for md5 passwords; I > used openssl passwd -1 [password] (and cut and paste). It seems odd > to me that this didn't work; does that command use a different > algorithm than dovecot? It uses different algorithm, although Dovecot could be made to support that too.. The Dovecot's algorithm is very simple and is compatible with pwdfile PAM module, it's simply the MD5 sum of a given text, eg: perl -MDigest::MD5 -e 'print Digest::MD5::md5_hex("pass")."[34]\n"' Digest-MD5 passwords should probably rather be used so that could be used also by people who can. The description was a bit broken it seems, for plaintext authentication it works only if the realm is empty, so this should work: perl -MDigest::MD5 -e 'print Digest::MD5::md5_hex("user::pass")."[56]\n"' > imap(user:@omain.realm): Failed to create storage with data: > domain.realm Guess I should have actually tested this :) It tried to replace the ':' char with '@'. Fixed. > Note the missing first letter after user:@ And I don't know what it > was trying to do; the maildirs already exist. /etc/dovecot.conf sets > the default mail location to /home/users/%n/Maildir (non-shell users %n was then "user:", so it didn't work. > The solution was to remove the realm (which isn't useful except for > digest md5, anway, right?). It's not really useful for digest-md5 either. It's mostly to support multiple realms running in same server. I'm not yet sure how I'd actually even properly support those .. probably fallback to user@realm style in plaintext passwords. Maybe I should consider anyway using Cyrus SASL library, at least optionally. Would make life so much easier :) Everyone keeps wanting LDAP and MySQL and whatever support, but I'd rather concentrate on the IMAP side for now. From amyzing@talsever.com Sun Jan 5 13:45:05 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 05 Jan 2003 13:45:05 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hall.mail.mindspring.net (hall.mail.mindspring.net [207.69.200.60]) by danu.procontrol.fi (Postfix) with ESMTP id 0CA692382C for ; Sun, 5 Jan 2003 13:45:05 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by hall.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18V9D9-0001TB-00; Sun, 05 Jan 2003 06:45:00 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id D93DA8051; Sun, 5 Jan 2003 06:44:30 -0500 (EST) Date: Sun, 5 Jan 2003 06:44:30 -0500 From: Amelia A.Lewis To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Some experiences Message-Id: <20030105064430.3af19f56.amyzing@talsever.com> In-Reply-To: <1041759144.6219.26.camel@hurina> References: <20030104234601.11360cfc.amyzing@talsever.com> <1041759144.6219.26.camel@hurina> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.8.5 (GTK+ 1.2.10; alpha-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 170 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 170 Status: O Content-Length: 3565 Quick replies from the man who knows! Thanks, Timo! A request for clarification ... On 05 Jan 2003 11:32:25 +0200 Timo Sirainen wrote: > On Sun, 2003-01-05 at 06:46, Amelia A.Lewis wrote: > I think Outlook supported only NTLM besides the plaintext auth. There's > specs for it now so it would be possible to be supported too. If I could think of a way to break outlook without breaking other windows clients, I'd do it. As a service to the community (reduction of virus infections). But prolly you want to be compatible. > > I therefore tried md5 passwords in a passwd-file, with STARTTLS > > enabled. Didn't work. I turned off SSL, and reenabled plain-text, > > and watched the login go by. Very sniffable, of course. But correct > > username and password ... failed. There are instructions for creating > > digest-md5 style secrets in auth.txt, but none for md5 passwords; I > > used openssl passwd -1 [password] (and cut and paste). It seems odd > > to me that this didn't work; does that command use a different > > algorithm than dovecot? > > It uses different algorithm, although Dovecot could be made to support > that too.. The Dovecot's algorithm is very simple and is compatible with > pwdfile PAM module, it's simply the MD5 sum of a given text, eg: > > perl -MDigest::MD5 -e 'print Digest::MD5::md5_hex("pass")."[34]\n"' > > Digest-MD5 passwords should probably rather be used so that could be > used also by people who can. The description was a bit broken it seems, > for plaintext authentication it works only if the realm is empty, so > this should work: > > perl -MDigest::MD5 -e 'print Digest::MD5::md5_hex("user::pass")."[56]\n"' Okay. In other words, any of the three password styles will work with plaintext auth and no realm? And digest-md5 with no realm can be used both in plaintext, and in digest-md5 (making sure that dovecot.conf has an empty realms list)? If the latter is true, I think that that's what I want to do .... I think some clarifications to auth.txt might be in order; perhaps I'll write some bits and offer the diff? Or the modified file? > Maybe I should consider anyway using Cyrus SASL library, at least > optionally. Would make life so much easier :) Everyone keeps wanting > LDAP and MySQL and whatever support, but I'd rather concentrate on the > IMAP side for now. I *like* your focus. I like dovecot and its ease of setup very much. If lots of features are addded, then complexity is likely to rise ... in that case, perhaps the postfix pattern of config files would be worth emulating? Because basic postfix configuration remains simple; certain sorts of more complex configuration (like virtual alias domains and virtual mailbox domains) live in their own files, referenced from main, but documented separately. I'm unthrilled with the current state of SASL; it seems to be in flux between version 1.5 and version 2.1, which are not mutually compatible (I'm pretty sure that this is why mutt doesn't do digest-md5 on my system). That will eventually get straightened out, I'm sure. But the current state of auth in dovecot seems to allow most things that SASL might offer, so perhaps it isn't yet worth the hassle of linking. Amy! -- Amelia A. Lewis amyzing {at} talsever.com alicorn@mindspring.com I stopped by the bar at 3 a.m. to seek solace in a bottle, or possibly a friend. I woke up with a headache like my head against a board, twice as cloudy as I'd been the night before. I went in seeking clarity. -- Indigo Girls From email@pbryan.net Sun Jan 5 21:45:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 05 Jan 2003 21:45:33 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.creatia.net (fozzie.creatia.net [64.180.101.199]) by danu.procontrol.fi (Postfix) with ESMTP id 670EA2382C for ; Sun, 5 Jan 2003 21:45:33 +0200 (EET) Received: from pbryan.net (grover.creatia.net [64.180.101.78]) by mail.creatia.net (Postfix) with ESMTP id 32DFE88C065; Sun, 5 Jan 2003 11:45:27 -0800 (PST) Message-ID: <3E18892F.1010700@pbryan.net> Date: Sun, 05 Jan 2003 11:36:15 -0800 From: "Paul C. Bryan" User-Agent: Mozilla/5.5 (X11; U; Linux i686; en-US; rv 0.9.2) Gecko/20010726 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Some experiences References: <20030104234601.11360cfc.amyzing@talsever.com> <1041759144.6219.26.camel@hurina> In-Reply-To: <1041759144.6219.26.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 171 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: email@pbryan.net Precedence: bulk X-list: dovecot X-UID: 171 Status: O Timo Sirainen wrote: > Maybe I should consider anyway using Cyrus SASL library, at least > optionally. Please do! It works, it's flexible, it's secure, and allows central administration of authentication. Yours truly, Paul C. Bryan email@pbryan.net From tss@iki.fi Sun Jan 5 22:33:05 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 05 Jan 2003 22:33:05 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9C5F323839 for ; Sun, 5 Jan 2003 22:33:05 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 696ED5E01F96; Sun, 5 Jan 2003 22:33:05 +0200 (EET) Subject: [dovecot] Re: Some experiences From: Timo Sirainen To: "Paul C. Bryan" Cc: dovecot@procontrol.fi In-Reply-To: <3E18892F.1010700@pbryan.net> References: <20030104234601.11360cfc.amyzing@talsever.com> <1041759144.6219.26.camel@hurina> <3E18892F.1010700@pbryan.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041798785.6218.36.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 05 Jan 2003 22:33:05 +0200 X-archive-position: 172 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 172 Status: O On Sun, 2003-01-05 at 21:36, Paul C. Bryan wrote: > > Maybe I should consider anyway using Cyrus SASL library, at least > > optionally. > > Please do! It works, it's flexible, it's secure, and allows central > administration of authentication. Well, current CVS has some code for it, but it's still missing some configuration. Actually I'm not really sure how I should do that, I found one way but Postfix doesn't seem to doing that.. And secure? I doubt it, I did a quick audit to it a month ago and found 3 buffer overflows. I checked mostly just PLAIN mechanism which I use with Postfix, so there may well be more left in other auth mechanisms. From kiwi@oav.net Sun Jan 5 23:25:58 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 05 Jan 2003 23:25:58 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from kaneda.oav.net (kaneda.oav.net [195.154.210.144]) by danu.procontrol.fi (Postfix) with ESMTP id 7A3F62382C for ; Sun, 5 Jan 2003 23:25:58 +0200 (EET) Received: from oav.net (kiwi.adsl.isdnet.net [195.154.177.33]) (using TLSv1 with cipher DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by kaneda.oav.net (Postfix) with ESMTP id 688B815750; Sun, 5 Jan 2003 22:25:53 +0100 (CET) (envelope-from kiwi@oav.net) Date: Sun, 5 Jan 2003 22:26:00 +0100 Subject: [dovecot] Re: Some experiences Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v551) Cc: dovecot@procontrol.fi To: Timo Sirainen From: Xavier Beaudouin In-Reply-To: <1041798785.6218.36.camel@hurina> Message-Id: <495397B0-20F4-11D7-9440-000393B64262@oav.net> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.551) X-archive-position: 173 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: kiwi@oav.net Precedence: bulk X-list: dovecot X-UID: 173 Status: O Content-Length: 1603 Hi ;-) [...] > Well, current CVS has some code for it, but it's still missing some > configuration. Actually I'm not really sure how I should do that, I > found one way but Postfix doesn't seem to doing that.. > > And secure? I doubt it, I did a quick audit to it a month ago and found > 3 buffer overflows. I checked mostly just PLAIN mechanism which I use > with Postfix, so there may well be more left in other auth mechanisms. > Personaly I don't like too mutch Cyrus SASL for lots of reasons : - I don't trust it a lot - this yet another lib to add to the thousands of lib used for authentication eg : server code (here dovecot) -> sasl -> pam -> mod_someth -> something lib -> something server -> db .. Yes I know there is patch for sasl 1.x and there some other backend for sasl 2.x but I still don't like it. Adding some lines of code into dovecot for authentication against MySQL (for example) or LDAP should not too mutch and mutch easy to debug / audit than a big library like SASL. For my point of view, I going, when time available a patch for dovecot to do mysql auth, since I want to move from courier-imap (sorry) to a better solution that is dovecot.... (that I use at home using pam)... to get a 100% virtual account solution without adding 3rd party code... ;-) my 0.02c /Xavier -- Xavier Beaudouin - Unix System Administrator & Projects Leader. For mail address, please check header of this mail. Spams are not accepted. Caudium: http://caudium.net/ Making friends with FreeBSD: Just because the system has panicked doesn't mean that you should panic too From email@pbryan.net Mon Jan 6 01:15:18 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 01:15:18 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.creatia.net (fozzie.creatia.net [64.180.101.199]) by danu.procontrol.fi (Postfix) with ESMTP id 0DA292382C for ; Mon, 6 Jan 2003 01:15:18 +0200 (EET) Received: from pbryan.net (grover.creatia.net [64.180.101.78]) by mail.creatia.net (Postfix) with ESMTP id 86A4E88C065; Sun, 5 Jan 2003 15:15:15 -0800 (PST) Message-ID: <3E18BC80.4050209@pbryan.net> Date: Sun, 05 Jan 2003 15:15:12 -0800 From: "Paul C. Bryan" User-Agent: Mozilla/5.5 (X11; U; Linux i686; en-US; rv 0.9.2) Gecko/20010726 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Some experiences References: <20030104234601.11360cfc.amyzing@talsever.com> <1041759144.6219.26.camel@hurina> <3E18892F.1010700@pbryan.net> <1041798785.6218.36.camel@hurina> In-Reply-To: <1041798785.6218.36.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 174 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: email@pbryan.net Precedence: bulk X-list: dovecot X-UID: 174 Status: O Timo Sirainen wrote: > And secure? I doubt it, I did a quick audit to it a month ago and found > 3 buffer overflows. I checked mostly just PLAIN mechanism which I use > with Postfix, so there may well be more left in other auth mechanisms. Was this version 1 or version 2? Paul From dave@tamos.net Mon Jan 6 01:48:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 01:48:04 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from grue.tamos.net (dsl093-083-029.wdc1.dsl.speakeasy.net [66.93.83.29]) by danu.procontrol.fi (Postfix) with SMTP id EC6AC2382C for ; Mon, 6 Jan 2003 01:48:03 +0200 (EET) Received: (qmail 4226 invoked from network); 5 Jan 2003 23:46:27 -0000 Received: from unknown (HELO ?192.168.1.100?) (dave@127.0.0.1) by localhost with SMTP; 5 Jan 2003 23:46:27 -0000 Subject: [dovecot] Re: Some experiences From: "David E. Storey" To: dovecot@procontrol.fi In-Reply-To: <20030105003032.475dc84b.amyzing@talsever.com> References: <20030104234601.11360cfc.amyzing@talsever.com> <3E17BD2C.9020906@attbi.com> <20030105003032.475dc84b.amyzing@talsever.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-IcXBB1OTlJnpl7zpPDh6" Organization: tamos Message-Id: <1041810481.13155.116.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 05 Jan 2003 18:48:01 -0500 X-archive-position: 175 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dave@tamos.net Precedence: bulk X-list: dovecot X-UID: 175 Status: O Content-Length: 4308 --=-IcXBB1OTlJnpl7zpPDh6 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2003-01-05 at 00:30, Amelia A.Lewis wrote: > > Not to be confrontational at all, but I'm very curious as to why you=20 > > have such an aversion to SSL/TLS for IMAP access? I think actualy an=20 > > entirely encrypted transport for something as (possibly sensitive) > > email is a good thing. >=20 > That's exactly why. >=20 > TLS doesn't secure email. =3D) if email was secure, I wouldn't be spending a truly significant amount of time dealing with spam. But you're right in saying that TLS/SSL does not create a truly end-to-end secure email solution. Then again, neither does dovecot by itself. Nor should it. It should do one thing and do it well. While digest-md5 is fairly secure from a transport perspective, it's a nightmare on the server side. In order for it to work, you've got to store account passwords in plain text on the server. In my opinion, this is "plain" wrong. (pun intended) Passwords should be hashed: even for closed systems. The fallacy lies with the wetware and people tend to forget passwords. Therefore, a lot of people have only one (or a set of) password(s) for everything they do. You can lobby against it, but people can be a hard species to change. If an attacker (or administrator) gained access to the database that a system relied upon for authentication (in the context of md5-digest), not only is that system's (or application's) security compromised for every other user, but so are many, many other systems that that user accesses. With hashed passwords, my users don't have to trust me to be honest enough not to look, but I can still reset their password. TLS/SSL is merely a mechanism to provide privacy. In my case, I want my PLAIN password to remain private across a transport session. As a side note, most SSL/TLS sessions tend to use rc4 for their cipher. WEP uses rc4 too. I'm not that familiar with the details of SSL/TLS (and I just skimmed over RFC2246), so I might be talking out of the wrong hole, but as far as I know, it doesn't renegotiate keys during long sessions like IPsec or OpenVPN do. Think about that next time you spend all day with an IMAP-over-SSL connection open, transferring megabyte after megabyte of email around. Personally, I just use stunnel to manage all my SSL connections. It beats having to manage every other application's unique method for handling SSL/TLS. I use PAM with pam_ldap to manage my logins. It just allows for much greater flexibility than what most application developers can bloat with their apps. (but it can also screw you up if you're not careful.) Using LDAP has complicated things a little, but that extra complexity has saved me BIG-TIME. (that whole idea of replication... yeah, decentralizing your data can be VERY handy when your system drive fails catastrophicly.) What really ticked me off about Courier-imap is that it over-wrote my pam-configs for imap every time I did a "make install". I emailed Sam about it and his take was that I shouldn't be installing the imap server from source on a production box anyway. Now, I'm a from-source kinda guy. Daniel J. Bernstein is a from-source kinda guy. Package management has a high up-front cost and doesn't allow for the kind of customization that I do on everything box that I have.... and RPM won't even compile for me. (dpkg will and while I like the format and the design, I have some issues with a lot of the code that has been written for it.) I have a few production systems that handle email. Half run uw imap and the other half, courier. dovecot seemed like a perfect solution for converting to. It still has a couple deployment issues that I'm trying to resolve, but I'll probably bring them up soon enough. (some of which have already been addressed since my last attempt) so anyway... first time poster, had to make my comments. Am I speaking to the choir? d! --=-IcXBB1OTlJnpl7zpPDh6 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux) iD8DBQA+GMQx+5sC2muyxOMRAnnKAJ976Bhh5j6aV24Lq6tFncmIKoLPvgCfYYu5 Sb0H6MiWQlOQB6i77CzPHe4= =qwLM -----END PGP SIGNATURE----- --=-IcXBB1OTlJnpl7zpPDh6-- From amyzing@talsever.com Mon Jan 6 02:00:52 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 02:00:52 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hall.mail.mindspring.net (hall.mail.mindspring.net [207.69.200.60]) by danu.procontrol.fi (Postfix) with ESMTP id BA90D23839 for ; Mon, 6 Jan 2003 02:00:52 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by hall.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18VKhH-0000VL-00; Sun, 05 Jan 2003 19:00:51 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id F24238051; Sun, 5 Jan 2003 19:00:29 -0500 (EST) Date: Sun, 5 Jan 2003 19:00:29 -0500 From: Amelia A.Lewis To: "David E. Storey" Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Some experiences Message-Id: <20030105190029.0c2ae046.amyzing@talsever.com> In-Reply-To: <1041810481.13155.116.camel@localhost> References: <20030104234601.11360cfc.amyzing@talsever.com> <3E17BD2C.9020906@attbi.com> <20030105003032.475dc84b.amyzing@talsever.com> <1041810481.13155.116.camel@localhost> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.8.5 (GTK+ 1.2.10; alpha-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 176 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 176 Status: O Content-Length: 1119 On 05 Jan 2003 18:48:01 -0500 "David E. Storey" wrote: > While digest-md5 is fairly secure from a transport perspective, it's a > nightmare on the server side. In order for it to work, you've got to > store account passwords in plain text on the server. In my opinion, this > is "plain" wrong. (pun intended) Passwords should be hashed: even for > closed systems. The fallacy lies with the wetware and people tend to Umm, forgive me, but as I understand DIGEST-MD5, it does store hashed. Are you thinking of CRAM-MD5? As far as I know, that requires plain-text storage on the server, and I agree with your criticisms. I happen to like DIGEST-MD5 because it looks like someone finally came along and got the SASL auth mechanism right. But perhaps I'm the one that's mistaken. Amy! -- Amelia A. Lewis amyzing {at} talsever.com Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise. -- The Duchess [Lewis Carroll] From dave@tamos.net Mon Jan 6 02:37:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 02:37:30 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from grue.tamos.net (dsl093-083-029.wdc1.dsl.speakeasy.net [66.93.83.29]) by danu.procontrol.fi (Postfix) with SMTP id 095D323839 for ; Mon, 6 Jan 2003 02:37:30 +0200 (EET) Received: (qmail 4605 invoked from network); 6 Jan 2003 00:35:55 -0000 Received: from unknown (HELO ?192.168.1.100?) (dave@127.0.0.1) by localhost with SMTP; 6 Jan 2003 00:35:55 -0000 Subject: [dovecot] Re: Some experiences From: "David E. Storey" To: dovecot@procontrol.fi In-Reply-To: <20030105190029.0c2ae046.amyzing@talsever.com> References: <20030104234601.11360cfc.amyzing@talsever.com> <3E17BD2C.9020906@attbi.com> <20030105003032.475dc84b.amyzing@talsever.com> <1041810481.13155.116.camel@localhost> <20030105190029.0c2ae046.amyzing@talsever.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-+lWSc3ZPo/hz0IJENUct" Organization: tamos Message-Id: <1041813449.26054.136.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 05 Jan 2003 19:37:29 -0500 X-archive-position: 177 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dave@tamos.net Precedence: bulk X-list: dovecot X-UID: 177 Status: O Content-Length: 2379 --=-+lWSc3ZPo/hz0IJENUct Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2003-01-05 at 19:00, Amelia A.Lewis wrote: > Umm, forgive me, but as I understand DIGEST-MD5, it does store hashed.=20 > Are you thinking of CRAM-MD5? As far as I know, that requires > plain-text storage on the server, and I agree with your criticisms. I > happen to like DIGEST-MD5 because it looks like someone finally came > along and got the SASL auth mechanism right. >=20 > But perhaps I'm the one that's mistaken. =3D) no, you're right in that it's stored hashed. I was thinking of CRAM-MD5 specifically, but after reviewing section 3.9 of RFC2831, I'm still thinking that DIGEST-MD5 isn't really for me. What's hashed is the username + ":" + realm + ":" + password. This is used to compute a part of the protocol. (referenced as A1) To quote the RFC: There are two important security consequences of this. First the password file must be protected as if it contained plaintext passwords, because for the purpose of accessing documents in its realm, it effectively does. A second consequence of this is that the realm string should be unique among all realms that any single user is likely to use. In particular a realm string should include the name of the host doing the authentication. To me, this means a few things: 1. You can no longer simply change a user's name. 2) you can no longer simply change a host's name if you follow the RF= C and finally 3) you can't efficiently use digest-md5 in a distributed authentication environment. (just doesn't scale well) Since I deal with system-level accounts across multiple systems with=20 occasional username changes (such as when someone marries) and system migrations where users and mail get shifted over to systems with different names or domains, then digest-md5 looks more and more like the wrong tools for the job. Your requirements may be different, however and digest-md5 may be the perfect solution. =3D) d! --=-+lWSc3ZPo/hz0IJENUct Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux) iD8DBQA+GM/J+5sC2muyxOMRAggqAJ9aUwz+qpimpiVy7/cg9cNMcpVCUACfUaIT vdP9kOY6Ti5ftObmAE5v6Xc= =sOeL -----END PGP SIGNATURE----- --=-+lWSc3ZPo/hz0IJENUct-- From dave@tamos.net Mon Jan 6 03:35:42 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 03:35:42 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from grue.tamos.net (dsl093-083-029.wdc1.dsl.speakeasy.net [66.93.83.29]) by danu.procontrol.fi (Postfix) with SMTP id BF8682382C for ; Mon, 6 Jan 2003 03:35:41 +0200 (EET) Received: (qmail 5061 invoked from network); 6 Jan 2003 01:34:06 -0000 Received: from unknown (HELO ?192.168.1.100?) (dave@127.0.0.1) by localhost with SMTP; 6 Jan 2003 01:34:06 -0000 Subject: [dovecot] wierdness with mailboxes From: "David E. Storey" To: dovecot@procontrol.fi Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Qf4/UfqMr+s8XcyLG0/T" Organization: tamos Message-Id: <1041816940.21963.10.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 05 Jan 2003 20:35:40 -0500 X-archive-position: 178 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dave@tamos.net Precedence: bulk X-list: dovecot X-UID: 178 Status: O Content-Length: 1459 --=-Qf4/UfqMr+s8XcyLG0/T Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Mail has always been the bane of my sys-admin life. I've been looking long and hard for a small, C-based, simple IMAP server that worked well with maildirs *and* mboxes and nothing else. wu-imap is so bloated and rife with decrepit, cross-platform, insecure code that I avoid it for any new servers. Courier-imap only supports maildirs but has some wierdnesses that I've come to live with. dovecot promises to be exactly what I'm looking for with just the right footprint and feature-set. =3D) I was surprised when I tried creating subfolders of mbox's. woohoo! The only problem is that dovecot manages to rename the parent, appending a '.'. So when we have: folder we now have: folder. folder.subfolder Evolution freaks out and thinks it can't store folders in 'folder.' and ends up with two subfolders: null and subfolder, which can contain messages. If I rename the parent folder without the trailing '.', everything works as expected. I'm trying to test some other imap clients now. d! --=-Qf4/UfqMr+s8XcyLG0/T Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux) iD8DBQA+GN1s+5sC2muyxOMRArpiAJ4rv5ThtK272HPenzDRXcrwfCKIlgCeIdpb SU9ELo0GzYN7kMnjhziik1M= =CIc0 -----END PGP SIGNATURE----- --=-Qf4/UfqMr+s8XcyLG0/T-- From amyzing@talsever.com Mon Jan 6 04:59:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 04:59:56 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from barry.mail.mindspring.net (barry.mail.mindspring.net [207.69.200.25]) by danu.procontrol.fi (Postfix) with ESMTP id DE3DD2382C for ; Mon, 6 Jan 2003 04:59:55 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by barry.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18VNUX-0007RV-00 for dovecot@procontrol.fi; Sun, 05 Jan 2003 21:59:54 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id 5B2428051; Sun, 5 Jan 2003 21:59:34 -0500 (EST) Date: Sun, 5 Jan 2003 21:59:34 -0500 From: Amelia A.Lewis To: dovecot Subject: [dovecot] Weird problem on Alpha Message-Id: <20030105215934.4ae8fd70.amyzing@talsever.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.8.5 (GTK+ 1.2.10; alpha-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 179 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 179 Status: O Content-Length: 3098 Heyas ... Hope you aren't tired of me already .... I have a very strange problem, I think. Having become happy-happy with dovecot, I decided to install it on another machine that runs on an internal network and provides mailboxes for system monitoring. The setup is, or should be, quite straightforward. TLS is disabled, plaintext is not (I'll change this later, probably; this way is in theory easier to debug). Maildir; the MAIL environment variable is correctly set. Authentication via pam, for real users on the system, auth_user root. Pretty much as-distributed, except for disabling TLS. On attempted login, the client hangs. The following two messages appear in syslog: Jan 5 21:42:43 talifane imap-master: login: received another "not listening" notification Jan 5 21:43:43 talifane imap-login: Disconnected: Inactivity [127.0.0.1] Watching on lo via tcpdump, interesting things happen. If I login with the wrong password, the disconnect is quick (the message in syslog is different, just "Disconnected [127.0.0.1]" from imap-login). The server responds to the a0001 LOGIN command with a0001 NO Authentication failed. That's as expected. If I give the correct password, though, the server never responds. Note that the 'not listening' message appears sixty seconds before the disconnection for inactivity message. In tcpdump, it's clear that the client never gets anything that would give it reason to try another command. So ... have I managed to pull a total bimbo and misconfigure? Or is this a problem with the Alpha platform? I wanted to check before reporting a bug, but this is kinda strange, since it's about the simplest configuration that I can think of. Suggestions (for testing, or for fixing) would be welcome. Is there a way to start the daemon in a particularly verbose mode? In case it's useful, here's what the debian reportbug system generates for dependencies and stuff (0.99.5-1): -- System Information: Debian Release: testing/unstable Architecture: alpha Kernel: Linux talifane 2.4.19 #1 Sat Aug 3 10:33:38 EDT 2002 alpha Locale: LANG=en_US, LC_CTYPE=en_US Versions of packages dovecot depends on: ii libc6.1 2.3.1-9 GNU C Library: Shared libraries an ii libgcrypt1 1.1.10-2 LGPL Crypto library - runtime libr ii libgnutls5 0.6.0-2 GNU TLS library - runtime library ii libpam0g 0.76-9 Pluggable Authentication Modules l ii libtasn1-0 0.1.2-1 Manage ASN.1 structures (runtime) ii openssl 0.9.6g-10 Secure Socket Layer (SSL) binary a ii zlib1g 1:1.1.4-8 compression library - runtime It's specifically a PC164LX/533, 512MB RAM. Thanks for reading. Amy! -- Amelia A. Lewis amyzing {at} talsever.com You like the taste of danger, it shines like sugar on your lips, and you like to stand in the line of fire just to show you can shoot straight from your hip. There must be a 1000 things you would die for; I can hardly think of two. -- Emily Saliers From tss@iki.fi Mon Jan 6 12:54:09 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 12:54:09 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6107223839 for ; Mon, 6 Jan 2003 12:54:09 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 297335E01F96; Mon, 6 Jan 2003 12:54:04 +0200 (EET) Subject: [dovecot] Re: Some experiences From: Timo Sirainen To: "Paul C. Bryan" Cc: dovecot@procontrol.fi In-Reply-To: <3E18BC80.4050209@pbryan.net> References: <20030104234601.11360cfc.amyzing@talsever.com> <1041759144.6219.26.camel@hurina> <3E18892F.1010700@pbryan.net> <1041798785.6218.36.camel@hurina> <3E18BC80.4050209@pbryan.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041850443.6217.42.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 06 Jan 2003 12:54:04 +0200 X-archive-position: 180 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 180 Status: O On Mon, 2003-01-06 at 01:15, Paul C. Bryan wrote: > > And secure? I doubt it, I did a quick audit to it a month ago and found > > 3 buffer overflows. I checked mostly just PLAIN mechanism which I use > > with Postfix, so there may well be more left in other auth mechanisms. > > Was this version 1 or version 2? 2. 1.5.x didn't have the same problems, because it didn't even have those features (or two of them). From tss@iki.fi Mon Jan 6 13:22:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 13:22:44 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DC8462382C for ; Mon, 6 Jan 2003 13:22:44 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id B47B55E01F96; Mon, 6 Jan 2003 13:22:44 +0200 (EET) Subject: [dovecot] Re: wierdness with mailboxes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1041816940.21963.10.camel@localhost> References: <1041816940.21963.10.camel@localhost> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041852164.16978.16.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 06 Jan 2003 13:22:44 +0200 X-archive-position: 181 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 181 Status: O On Mon, 2003-01-06 at 03:35, David E. Storey wrote: > I was surprised when I tried creating subfolders of mbox's. woohoo! The > only problem is that dovecot manages to rename the parent, appending a > '.'. So when we have: > > folder > > we now have: > > folder. > folder.subfolder Huh? This doesn't really make any sense to me :) mboxes use '/' as hierarchy separator, and I couldn't create subfolders to mboxes with evolution in any way. With maildir I didn't see any problems. From tss@iki.fi Mon Jan 6 13:38:38 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 13:38:38 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5B6252382C for ; Mon, 6 Jan 2003 13:38:38 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 80C6D5E01F96; Mon, 6 Jan 2003 13:38:37 +0200 (EET) Subject: [dovecot] Re: Weird problem on Alpha From: Timo Sirainen To: "Amelia A.Lewis" Cc: dovecot In-Reply-To: <20030105215934.4ae8fd70.amyzing@talsever.com> References: <20030105215934.4ae8fd70.amyzing@talsever.com> Content-Type: multipart/mixed; boundary="=-fNn5MgtxeZhEmaeqR3VT" Organization: Message-Id: <1041853117.18769.33.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 06 Jan 2003 13:38:37 +0200 X-archive-position: 182 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 182 Status: O Content-Length: 4077 --=-fNn5MgtxeZhEmaeqR3VT Content-Type: text/plain Content-Transfer-Encoding: 7bit On Mon, 2003-01-06 at 04:59, Amelia A.Lewis wrote: > Jan 5 21:42:43 talifane imap-master: login: received another "not listening" notification > So ... have I managed to pull a total bimbo and misconfigure? Or is > this a problem with the Alpha platform? src/lib/fdpass.c is most likely the problem. Hmm. Try if the attached version works? > Is there a way to start the daemon in a particularly verbose mode? I think I should do this some day :) At least with authentication it's much easier to find out the problem if there was a reason in log why it failed. --=-fNn5MgtxeZhEmaeqR3VT Content-Disposition: attachment; filename=fdpass.c Content-Type: text/x-c; name=fdpass.c; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable /* fdpass.c - FD passing Copyright (c) 2002 Timo Sirainen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #define _XPG4_2 #include "lib.h" #include "fdpass.h" #include #include #include #ifndef CMSG_SPACE # define CMSG_ALIGN(len) \ (((len) + sizeof(size_t) - 1) & ~(sizeof(size_t) - 1)) # define CMSG_SPACE(len) \ (CMSG_ALIGN(len) + CMSG_ALIGN(sizeof(struct cmsghdr))) # define CMSG_LEN(len) \ (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len)) #endif ssize_t fd_send(int handle, int send_fd, const void *data, size_t size) { struct msghdr msg; struct iovec iov; struct cmsghdr *cmsg; char buf[CMSG_SPACE(sizeof(int))]; /* at least one byte is required to be sent with fd passing */ i_assert(size > 0 && size < SSIZE_T_MAX); memset(&msg, 0, sizeof (struct msghdr)); iov.iov_base =3D (void *) data; iov.iov_len =3D size; msg.msg_iov =3D &iov; msg.msg_iovlen =3D 1; if (send_fd !=3D -1) { /* set the control and controllen before CMSG_FIRSTHDR() */ msg.msg_control =3D buf; msg.msg_controllen =3D sizeof(buf); cmsg =3D CMSG_FIRSTHDR(&msg); cmsg->cmsg_level =3D SOL_SOCKET; cmsg->cmsg_type =3D SCM_RIGHTS; cmsg->cmsg_len =3D CMSG_LEN(sizeof(int)); *((int *) CMSG_DATA(cmsg)) =3D send_fd; /* set the real length we want to use. it's different than sizeof(buf) in 64bit systems. */ msg.msg_controllen =3D cmsg->cmsg_len; } return sendmsg(handle, &msg, 0); } ssize_t fd_read(int handle, void *data, size_t size, int *fd) { struct msghdr msg; struct iovec iov; struct cmsghdr *cmsg; ssize_t ret; char buf[CMSG_SPACE(sizeof(int))]; i_assert(size > 0 && size < SSIZE_T_MAX); memset(&msg, 0, sizeof (struct msghdr)); iov.iov_base =3D data; iov.iov_len =3D size; msg.msg_iov =3D &iov; msg.msg_iovlen =3D 1; msg.msg_control =3D buf; msg.msg_controllen =3D sizeof(buf); ret =3D recvmsg(handle, &msg, 0); if (ret <=3D 0) return ret; /* at least one byte transferred - we should have the fd now */ cmsg =3D CMSG_FIRSTHDR(&msg); if (cmsg =3D=3D NULL) *fd =3D -1; else *fd =3D *((int *) CMSG_DATA(cmsg)); return ret; } --=-fNn5MgtxeZhEmaeqR3VT-- From bradf@mailgate.tpi.com Mon Jan 6 19:03:41 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 19:03:41 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mailgate.tpi.com (ftp.tpi.com [198.107.51.136]) by danu.procontrol.fi (Postfix) with ESMTP id 7D9492382C for ; Mon, 6 Jan 2003 19:03:40 +0200 (EET) Received: from fire ([198.107.51.42]) by mailgate.tpi.com (Post.Office MTA v3.5.3 release 223 ID# 0-60229U100L100S0V35) with ESMTP id com for ; Mon, 6 Jan 2003 09:03:36 -0800 Content-Type: text/plain; charset="us-ascii" From: Brad Figg Reply-To: brad@tpi.com To: dovecot@procontrol.fi Subject: [dovecot] Assert in imap-bodystructure.c Date: Mon, 6 Jan 2003 09:03:32 -0800 User-Agent: KMail/1.4.3 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200301060903.32380.brad@tpi.com> X-archive-position: 183 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: brad@tpi.com Precedence: bulk X-list: dovecot X-UID: 183 Status: O Content-Length: 1446 First let me thank you for my initial newby question about poping from a pop3 server and delivering into my Dovecot maildir folders. Now I'm getting an assertion in imap-bodystructure.c and one of=20 my imap folders is now inaccessable. I think the two are related. Whenever I select the folder from my email client (kmail) I get two log entries in the dovecot log of the format: "imap-master: Error: child (imap) killed with signal 6" Also in the log are several lines with an assertion failure. I've include= d a portion of the log below. I am running dovecot 0.99.5. Thanks, Brad -------------------------------------------------------------------------= --------------------- imap-master: Jan 06 08:38:44Error: child 22222 (imap) killed with signal = 6 imap(brad): Jan 06 08:46:28Panic: file imap-bodystructure.c: line 346=20 (part_write_body): assertion failed: (part->children->next =3D=3D NULL) imap-master: Jan 06 08:46:28Error: child 22262 (imap) killed with signal = 6 imap(brad): Jan 06 08:53:01Panic: file imap-bodystructure.c: line 346=20 (part_write_body): assertion failed: (part->children->next =3D=3D NULL) imap(brad): Jan 06 08:53:01Panic: file imap-bodystructure.c: line 346=20 (part_write_body): assertion failed: (part->children->next =3D=3D NULL) imap-master: Jan 06 08:53:01Error: child 22273 (imap) killed with signal = 6 imap-master: Jan 06 08:53:01Error: child 22270 (imap) killed with signal = 6 From tss@iki.fi Mon Jan 6 19:40:24 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 19:40:24 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 30D462382C for ; Mon, 6 Jan 2003 19:40:24 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 89B9E5E01F96; Mon, 6 Jan 2003 19:40:23 +0200 (EET) Subject: [dovecot] Re: Assert in imap-bodystructure.c From: Timo Sirainen To: brad@tpi.com Cc: dovecot@procontrol.fi In-Reply-To: <200301060903.32380.brad@tpi.com> References: <200301060903.32380.brad@tpi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041874822.18760.49.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 06 Jan 2003 19:40:23 +0200 X-archive-position: 184 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 184 Status: O On Mon, 2003-01-06 at 19:03, Brad Figg wrote: > imap(brad): Jan 06 08:46:28Panic: file imap-bodystructure.c: line 346 > (part_write_body): assertion failed: (part->children->next == NULL) Annoying, you're the second person now who sees this. Is this Linux/x86 system? Maildir? Would it be possible for you to send me that mail folder's indexes? They contain some headers of the mails (from, to, subject, ..) and are located in ~/Maildir/.folder/.imap.index* or ~/mail/.imap/folder/.imap.index*. I didn't find any obvious reason for this problem last I looked, so getting those indexes would help to find why they're corrupted. Anyway, fixing this would most likely work by just deleting those index files. If that didn't help either, it's some mail in there that Dovecot doesn't like for some reason. From tss@iki.fi Mon Jan 6 21:46:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 21:46:16 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 89ABE2382C for ; Mon, 6 Jan 2003 21:46:16 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id E731C5E01F96; Mon, 6 Jan 2003 21:46:15 +0200 (EET) Subject: [dovecot] Re: Assert in imap-bodystructure.c From: Timo Sirainen To: brad@tpi.com Cc: dovecot@procontrol.fi In-Reply-To: <1041874822.18760.49.camel@hurina> References: <200301060903.32380.brad@tpi.com> <1041874822.18760.49.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041882375.18760.77.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 06 Jan 2003 21:46:15 +0200 X-archive-position: 185 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 185 Status: O Content-Length: 1055 On Mon, 2003-01-06 at 19:40, Timo Sirainen wrote: > On Mon, 2003-01-06 at 19:03, Brad Figg wrote: > > imap(brad): Jan 06 08:46:28Panic: file imap-bodystructure.c: line 346 > > (part_write_body): assertion failed: (part->children->next == NULL) > > Annoying, you're the second person now who sees this. Is this Linux/x86 > system? Maildir? OK, I think I've fixed it now. Some data was saved incorrectly to index files for messages with attachments. This showed up mostly with BODY and BODYSTRUCTURE fetches giving incorrect replies or crashing with messages that had multiple nested MIME parts. I never saw this since Dovecot starts caching the BODY data to index files after the client has issued BODY query a couple of times. After that there was no problems with them, so this happened mostly with new users. Also I fixed this properly now, instead of crashing at such invalid data in indexes we'll print a nice error message to log file and the indexes will be rebuilt. So, "strange bug" count again at zero. Maybe time for a new release soon.. From bradf@mailgate.tpi.com Mon Jan 6 22:19:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 22:19:54 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mailgate.tpi.com (ftp.tpi.com [198.107.51.136]) by danu.procontrol.fi (Postfix) with ESMTP id 871DA23839 for ; Mon, 6 Jan 2003 22:19:53 +0200 (EET) Received: from fire ([198.107.51.42]) by mailgate.tpi.com (Post.Office MTA v3.5.3 release 223 ID# 0-60229U100L100S0V35) with ESMTP id com; Mon, 6 Jan 2003 12:19:50 -0800 Content-Type: text/plain; charset="iso-8859-1" From: Brad Figg Reply-To: brad@tpi.com To: Timo Sirainen Subject: [dovecot] Re: Assert in imap-bodystructure.c Date: Mon, 6 Jan 2003 12:19:32 -0800 User-Agent: KMail/1.4.3 References: <200301060903.32380.brad@tpi.com> <1041874822.18760.49.camel@hurina> In-Reply-To: <1041874822.18760.49.camel@hurina> Cc: dovecot@procontrol.fi MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200301061219.32732.brad@tpi.com> X-archive-position: 186 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: brad@tpi.com Precedence: bulk X-list: dovecot X-UID: 186 Status: O Content-Length: 1414 On Monday 06 January 2003 09:40 am, you wrote: > On Mon, 2003-01-06 at 19:03, Brad Figg wrote: > > imap(brad): Jan 06 08:46:28Panic: file imap-bodystructure.c: line 346 > > (part_write_body): assertion failed: (part->children->next =3D=3D NUL= L) > > Annoying, you're the second person now who sees this. Is this Linux/x86 > system? Maildir? > > Would it be possible for you to send me that mail folder's indexes? The= y > contain some headers of the mails (from, to, subject, ..) and are > located in ~/Maildir/.folder/.imap.index* or > ~/mail/.imap/folder/.imap.index*. I didn't find any obvious reason for > this problem last I looked, so getting those indexes would help to find > why they're corrupted. > > Anyway, fixing this would most likely work by just deleting those index > files. If that didn't help either, it's some mail in there that Dovecot > doesn't like for some reason. I removed the .imap.index* files. I can now see most of the email in that= folder. The email that I can see are messages that I moved via drag-n-drop from my em= ail client. The messages that I can't see are ones that procmail put in the f= older. There is a difference in the message name format between the two. Messages that I can see are named like "1041543929.7991_300.norbert:2,S". The ones I can not see are named like "1041620504.14350.norbert:2,S". Any ideas why this is happening and how I fix it? Thanks, Brad From bradf@mailgate.tpi.com Mon Jan 6 22:25:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 22:25:33 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mailgate.tpi.com (ftp.tpi.com [198.107.51.136]) by danu.procontrol.fi (Postfix) with ESMTP id E886423839 for ; Mon, 6 Jan 2003 22:25:30 +0200 (EET) Received: from fire ([198.107.51.42]) by mailgate.tpi.com (Post.Office MTA v3.5.3 release 223 ID# 0-60229U100L100S0V35) with ESMTP id com; Mon, 6 Jan 2003 12:25:30 -0800 Content-Type: text/plain; charset="iso-8859-1" From: Brad Figg Reply-To: brad@tpi.com To: Timo Sirainen Subject: [dovecot] Re: Assert in imap-bodystructure.c Date: Mon, 6 Jan 2003 12:25:12 -0800 User-Agent: KMail/1.4.3 Cc: dovecot@procontrol.fi References: <200301060903.32380.brad@tpi.com> <1041874822.18760.49.camel@hurina> <200301061219.32732.brad@tpi.com> In-Reply-To: <200301061219.32732.brad@tpi.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200301061225.12293.brad@tpi.com> X-archive-position: 187 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: brad@tpi.com Precedence: bulk X-list: dovecot X-UID: 187 Status: O Content-Length: 1910 On Monday 06 January 2003 12:19 pm, Brad Figg wrote: > On Monday 06 January 2003 09:40 am, you wrote: > > On Mon, 2003-01-06 at 19:03, Brad Figg wrote: > > > imap(brad): Jan 06 08:46:28Panic: file imap-bodystructure.c: line 3= 46 > > > (part_write_body): assertion failed: (part->children->next =3D=3D N= ULL) > > > > Annoying, you're the second person now who sees this. Is this Linux/x= 86 > > system? Maildir? > > > > Would it be possible for you to send me that mail folder's indexes? T= hey > > contain some headers of the mails (from, to, subject, ..) and are > > located in ~/Maildir/.folder/.imap.index* or > > ~/mail/.imap/folder/.imap.index*. I didn't find any obvious reason fo= r > > this problem last I looked, so getting those indexes would help to fi= nd > > why they're corrupted. > > > > Anyway, fixing this would most likely work by just deleting those ind= ex > > files. If that didn't help either, it's some mail in there that Dovec= ot > > doesn't like for some reason. > > I removed the .imap.index* files. I can now see most of the email in th= at > folder. The email that I can see are messages that I moved via drag-n-d= rop > from my email client. The messages that I can't see are ones that procm= ail > put in the folder. There is a difference in the message name format bet= ween > the two. Messages that I can see are named like > "1041543929.7991_300.norbert:2,S". The ones I can not see are named lik= e > "1041620504.14350.norbert:2,S". Any ideas why this is happening and how= I > fix it? > I should have pointed out that I have other folders that have messages that were put in via drag-n-drop and via procmail and I can see all of th= em. And that before the folder just quit working I could see all of the email= in the folder that I removed the index files from. It's like the indexes did= n't=20 handle all of the messages in the folder correctly. Thanks again, Brad From tss@iki.fi Mon Jan 6 22:29:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 22:29:04 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1290023839 for ; Mon, 6 Jan 2003 22:29:04 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 73BC55E01F96; Mon, 6 Jan 2003 22:29:03 +0200 (EET) Subject: [dovecot] Re: Assert in imap-bodystructure.c From: Timo Sirainen To: brad@tpi.com Cc: dovecot@procontrol.fi In-Reply-To: <200301061219.32732.brad@tpi.com> References: <200301060903.32380.brad@tpi.com> <1041874822.18760.49.camel@hurina> <200301061219.32732.brad@tpi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041884943.28650.4.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 06 Jan 2003 22:29:03 +0200 X-archive-position: 188 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 188 Status: O On Mon, 2003-01-06 at 22:19, Brad Figg wrote: > I removed the .imap.index* files. I can now see most of the email in that folder. The > email that I can see are messages that I moved via drag-n-drop from my email > client. The messages that I can't see are ones that procmail put in the folder. There > is a difference in the message name format between the two. Messages > that I can see are named like "1041543929.7991_300.norbert:2,S". The ones > I can not see are named like "1041620504.14350.norbert:2,S". Any ideas > why this is happening and how I fix it? File names don't matter to Dovecot at all, so it's not that. Are file permissions correct? Do you see anything in log files? Maybe your email client is caching the messages incorrectly and just doesn't want to see the other mails? If there's nothing in logs, I'd blame the client then. You could verify it by talking directly to dovecot: x login user pass x select inbox x fetch 1:* envelope From tss@iki.fi Mon Jan 6 22:36:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 06 Jan 2003 22:36:16 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A207B23837 for ; Mon, 6 Jan 2003 22:36:16 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 7120E5E01F96; Mon, 6 Jan 2003 22:36:16 +0200 (EET) Subject: [dovecot] 0.99.6rc1 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041885376.28651.13.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 06 Jan 2003 22:36:16 +0200 X-archive-position: 189 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 189 Status: O Again rc, just in case I broke something. Or maybe I should just start creating nightly CVS snapshots. Anyway, fixes the few bugs people have reported lately: - Mails with nested MIME parts might have caused incorrect BODY and BODYSTRUCTURE fetches and sometimes might have crashed dovecot (assert at imap-bodystructure.c). If client had already successfully done the BODY fetching a couple of times, the bug couldn't happen anymore since Dovecot then began caching the BODY data. So, this mostly happened with new users. - If authentication was aborted by client ("*" reply to AUTHENTICATE), the login process crashed later. - Digest-MD5: We used "qop-options" instead of "qop", which was incompatible with at least Cyrus SASL. - We didn't work with some 64bit systems - Realms in passwd-file were buggy * Some coding style changes (less typedefs) From bradf@mailgate.tpi.com Tue Jan 7 00:18:58 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 07 Jan 2003 00:18:58 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mailgate.tpi.com (ftp.tpi.com [198.107.51.136]) by danu.procontrol.fi (Postfix) with ESMTP id 1008423837 for ; Tue, 7 Jan 2003 00:18:58 +0200 (EET) Received: from fire ([198.107.51.42]) by mailgate.tpi.com (Post.Office MTA v3.5.3 release 223 ID# 0-60229U100L100S0V35) with ESMTP id com; Mon, 6 Jan 2003 14:18:56 -0800 Content-Type: text/plain; charset="iso-8859-1" From: Brad Figg Reply-To: brad@tpi.com To: Timo Sirainen , dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.6rc1 released Date: Mon, 6 Jan 2003 14:18:31 -0800 User-Agent: KMail/1.4.3 References: <1041885376.28651.13.camel@hurina> In-Reply-To: <1041885376.28651.13.camel@hurina> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200301061418.31353.brad@tpi.com> X-archive-position: 190 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: brad@tpi.com Precedence: bulk X-list: dovecot X-UID: 190 Status: O Content-Length: 1059 On Monday 06 January 2003 12:36 pm, Timo Sirainen wrote: > Again rc, just in case I broke something. Or maybe I should just start > creating nightly CVS snapshots. Anyway, fixes the few bugs people have > reported lately: > > =09- Mails with nested MIME parts might have caused incorrect BODY and > =09 BODYSTRUCTURE fetches and sometimes might have crashed dovecot > =09 (assert at imap-bodystructure.c). If client had already successful= ly > =09 done the BODY fetching a couple of times, the bug couldn't happen > =09 anymore since Dovecot then began caching the BODY data. So, this > =09 mostly happened with new users. > =09- If authentication was aborted by client ("*" reply to AUTHENTICATE= ), > =09 the login process crashed later. > =09- Digest-MD5: We used "qop-options" instead of "qop", which was > =09 incompatible with at least Cyrus SASL. > =09- We didn't work with some 64bit systems > =09- Realms in passwd-file were buggy > =09* Some coding style changes (less typedefs) The file auth-mech-desc.h is missing from the release. Brad From tss@iki.fi Tue Jan 7 01:32:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 07 Jan 2003 01:32:34 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9632F2382C for ; Tue, 7 Jan 2003 01:32:34 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id F13E75E01F96; Tue, 7 Jan 2003 01:32:33 +0200 (EET) Subject: [dovecot] 0.99.6rc2 released From: Timo Sirainen To: brad@tpi.com Cc: dovecot@procontrol.fi In-Reply-To: <200301061418.31353.brad@tpi.com> References: <1041885376.28651.13.camel@hurina> <200301061418.31353.brad@tpi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1041895953.28652.18.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 07 Jan 2003 01:32:33 +0200 X-archive-position: 191 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 191 Status: O On Tue, 2003-01-07 at 00:18, Brad Figg wrote: > The file auth-mech-desc.h is missing from the release. Duh. rc2 out. This time I tested that it actually compiles :) From tss@iki.fi Wed Jan 8 12:47:52 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 08 Jan 2003 12:47:52 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5AA4423837 for ; Wed, 8 Jan 2003 12:47:52 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id E33D85E01F60; Wed, 8 Jan 2003 12:47:51 +0200 (EET) Subject: [dovecot] Logging suggestions? From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042022871.28651.93.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 08 Jan 2003 12:47:51 +0200 X-archive-position: 192 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 192 Status: O Any suggestions how user login/logouts should look like in log files? I was thinking: (connected to imaps port) Login: username [IP 1.2.3.4, imaps, compressed] Logout: username [IP 1.2.3.4, imaps, compressed] [1000/100000 bytes (50%), 00:00:12] Bytes being upload/download and the 50% meaning compression ratio for downloaded bytes, probably not worth it for upload. Or if uncompressed, it'd show the extra space used by SSL/TLS protocol: (using STARTTLS) Login: username [IP 1.2.3.4, TLS] Logout: username [IP 1.2.3.4, TLS] [2020/202000 bytes (101%), 00:00:12] (no SSL) Login: username [IP 1.2.3.4] Logout: username [IP 1.2.3.4] [2000/200000 bytes, 00:00:12] I think the only configuration needed would be if to log login, logout or both. From tss@iki.fi Wed Jan 8 12:56:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 08 Jan 2003 12:56:56 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7408023837 for ; Wed, 8 Jan 2003 12:56:56 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 214DA5E01F60; Wed, 8 Jan 2003 12:56:56 +0200 (EET) Subject: [dovecot] Re: Logging suggestions? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1042022871.28651.93.camel@hurina> References: <1042022871.28651.93.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042023415.28652.96.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 08 Jan 2003 12:56:56 +0200 X-archive-position: 193 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 193 Status: O On Wed, 2003-01-08 at 12:47, Timo Sirainen wrote: > Bytes being upload/download and the 50% meaning compression ratio for > downloaded bytes, probably not worth it for upload. Or if uncompressed, > it'd show the extra space used by SSL/TLS protocol: Or not. I remembered the SSL code worked a bit differently, so I don't think there is any simple way to find out the compression ratio or SSL overhead. From dgc@uchicago.edu Wed Jan 8 19:50:20 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 08 Jan 2003 19:50:20 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id 817032382C for ; Wed, 8 Jan 2003 19:50:19 +0200 (EET) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id h08Ho6u28505; Wed, 8 Jan 2003 11:50:06 -0600 (CST) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Wed, 8 Jan 2003 11:50:06 -0600 From: David Champion To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Logging suggestions? Message-ID: <20030108175006.GB27418@dust.uchicago.edu> Mail-Followup-To: Timo Sirainen , dovecot@procontrol.fi References: <1042022871.28651.93.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1042022871.28651.93.camel@hurina> User-Agent: Mutt/1.5.2i X-archive-position: 194 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dgc@uchicago.edu Precedence: bulk X-list: dovecot X-UID: 194 Status: O Content-Length: 2361 * On 2003.01.08, in <1042022871.28651.93.camel@hurina>, * "Timo Sirainen" wrote: > Any suggestions how user login/logouts should look like in log files? I > was thinking: > > (connected to imaps port) > Login: username [IP 1.2.3.4, imaps, compressed] > Logout: username [IP 1.2.3.4, imaps, compressed] [1000/100000 bytes (50%), 00:00:12] I like things that are easy to parse with shell and awk scripts. E.g.: Login: username 1.2.3.4:1025 5.6.7.8:143 imaps,compressed Logout: username 1.2.3.4:1025 5.6.7.8:143 imaps,compressed in:1000 out:1000000 [whatever SSL summary data is available] I like seeing both the source and destination sockaddrs. (Why not run two instances on different interfaces?) In fact, I like seeing both hostname and ip address, and an indicator if a reverse map doesn't match, but that's probably just me. In this example, flags occupy one space-delimited field, and are separated by commas. It's useful for performance analysis to tally bytes transferred; this is what "in:" and "out:" are for. It would also be nice for perf. anal. to know how much I/O to storage (disk) was performed by the imap process, but I don't imagine those figures are presently available anyway. That's just an illustration; it doesn't matter to me whether it's like that particularly. I just want to show what I mean by ease of parsing -- whitespace-separated fields, well-known field values, related flags and such compounded within fields. The whole line structure should be well-known and not require perl or sscanf()s or such; scripts should be able to extract a lot of data from these quickly. (We're watching dovecot for possible use on a system that supports about 300,000 logins per day, and we want to be able to produce stats on that.) > I think the only configuration needed would be if to log login, logout > or both. That's generous. :) I'd always want both, and can't imagine not wanting both, but I suppose some might prefer less. I actually wouldn't mind seeing more optional logs -- for example, logout-like summaries for folder accesses (when users change folders). This can help in balancing storage devices when folders can reside on multiple devices. In an ideal world, everything would be loggable, but not everything would be logged. -- -D. dgc@uchicago.edu NSIT University of Chicago We're the colon in :// From amyzing@talsever.com Wed Jan 8 20:12:03 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 08 Jan 2003 20:12:03 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from maynard.mail.mindspring.net (maynard.mail.mindspring.net [207.69.200.243]) by danu.procontrol.fi (Postfix) with ESMTP id 6F80323837 for ; Wed, 8 Jan 2003 20:12:03 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by maynard.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18WKgJ-0007i6-00; Wed, 08 Jan 2003 13:11:59 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id 364978151; Wed, 8 Jan 2003 13:11:43 -0500 (EST) Date: Wed, 8 Jan 2003 13:11:43 -0500 From: Amelia A Lewis To: Timo Sirainen , dovecot@procontrol.fi Subject: [dovecot] Re: Logging suggestions? Message-ID: <20030108181142.GB12010@talsever.com> References: <1042022871.28651.93.camel@hurina> <20030108175006.GB27418@dust.uchicago.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030108175006.GB27418@dust.uchicago.edu> User-Agent: Mutt/1.4i X-archive-position: 195 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 195 Status: O Content-Length: 1434 On Wed, Jan 08, 2003 at 11:50:06AM -0600, David Champion wrote: >* On 2003.01.08, in <1042022871.28651.93.camel@hurina>, >* "Timo Sirainen" wrote: >> Any suggestions how user login/logouts should look like in log files? I >> was thinking: [snip] >> I think the only configuration needed would be if to log login, logout >> or both. > >That's generous. :) I'd always want both, and can't imagine not wanting >both, but I suppose some might prefer less. I'd like to see at least the option of showing failed logins, for security monitoring. In some ways, I want to see this more than I want to see successful logins. >I actually wouldn't mind seeing more optional logs -- for example, >logout-like summaries for folder accesses (when users change folders). >This can help in balancing storage devices when folders can reside on >multiple devices. +1 Might think about what can be logged per-module. That is, imap-login knows about connection attempts; imap-auth about who and how (auth mechanism); imap about folders accessed, bytes transferred. Might think about a set of keywords for each, then, like this: imap_login_logging: connection login logout starttls imap_auth_logging: user auth success failure imap_logging: folders num_messages num_bytes per_folder Amy! -- Amelia A. Lewis amyzing {at} talsever.com Better to have thirty minutes of wonderful than a lifetime of nothing special. From jaldhar@debian.org Wed Jan 8 21:34:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 08 Jan 2003 21:34:15 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 8B7DE2382C for ; Wed, 8 Jan 2003 21:34:15 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 83F218138 for ; Wed, 8 Jan 2003 14:34:15 -0500 (EST) Date: Wed, 8 Jan 2003 14:34:15 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: dovecot@procontrol.fi Subject: [dovecot] Bug reports from Debian BTS Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 196 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 196 Status: O Timo, Are you (or any other interested list readers for that matter) interested in directly receiving bug reports about dovecot sent to Debian? If you are, you can go to http://packages.qa.debian.org/d/dovecot.html and sign up to have notifications sent to you or the list or wherever. Or I can screen them and only send you ones I think are relevant as I'm doing now. -- Jaldhar H. Vyas It's a girl! See the pictures - http://www.braincells.com/shailaja/ From jaldhar@debian.org Wed Jan 8 21:41:08 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 08 Jan 2003 21:41:08 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 8DD2C2382C for ; Wed, 8 Jan 2003 21:41:08 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 5828E8138; Wed, 8 Jan 2003 14:41:09 -0500 (EST) Date: Wed, 8 Jan 2003 14:41:09 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: dovecot@procontrol.fi Cc: 175509@bugs.debian.org, debian-bugs-dist@lists.debian.org, dovecot@packages.qa.debian.org Subject: [dovecot] Bug#175509: dovecot: init.d script should add some syslog statements on startup/shutdown (fwd) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 197 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 197 Status: O [Amelia and Timo. As you are both on the dovecot list, I'm replying there to avoid cluttering up your inboxes.] This bug was reported to Debian but I feel it should be fixed upstream. Adding logging in th init script itself would require adding additional dependencies to the package and not be as convenient. ---------- Forwarded message ---------- From: Amelia A Lewis It would be nice if the init.d script could add some statements in the system log on startup and shutdown. For postfix, postfix-script (called from the init script) uses: starting the Postfix mail system stopping the Postfix mail system These are useful; one can start the daemon and check that it's initialized (netstat works as well, I suppose, but this is still useful docco). -- Jaldhar H. Vyas From jaldhar@debian.org Wed Jan 8 21:50:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 08 Jan 2003 21:50:33 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id C28E82382C for ; Wed, 8 Jan 2003 21:50:33 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 9482E8138; Wed, 8 Jan 2003 14:50:34 -0500 (EST) Date: Wed, 8 Jan 2003 14:50:34 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: dovecot@procontrol.fi, 175507@bugs.debian.org Cc: debian-bugs-dist@lists.debian.org, dovecot@packages.qa.debian.org Subject: [dovecot] Re: Bug#175507: dovecot: Accidental denial of service via syslog In-Reply-To: <20030105034215.23AE3FECE@ythgin.talsever.com> Message-ID: References: <20030105034215.23AE3FECE@ythgin.talsever.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 198 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 198 Status: O Content-Length: 1160 This bug was reported to Debian but I feel it is an upstream issue. On Sat, 4 Jan 2003, Amelia A Lewis wrote: > If dovecot is misconfigured, such that imap-auth cannot find passwd.imap > (which probably needs to get copied; maybe need more docco in the config > file? This happens if the digest-md5 auth method is uncommented and the > auth_userinfo is set to passwd-file /etc/passwd.imap), imap-auth dies once a > second with error 89, which it reports to imap-master, and both log to > syslog. > > I've got 30,000 line pairs from a ten hour run. I would think that if it > dies more than, say, a thousand times in a single hour, imap-master maybe > ought to consider that there's a serious configuration problem preventing > use, and exit instead of continuing to fill the log. > > Granted, it's a shoot-yourself sort of error. But still ... after a certain > point, the program ought to be able to die *gracefully* if the sysadmin has > shot it, by accident or not. > Personally, I would be even stricter than Amelia is suggesting. If there is a serious configuration error, dovecot should die immediately. -- Jaldhar H. Vyas From tss@iki.fi Wed Jan 8 23:16:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 08 Jan 2003 23:16:21 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DE63D2382C for ; Wed, 8 Jan 2003 23:16:20 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 672045E01F60; Wed, 8 Jan 2003 23:16:20 +0200 (EET) Subject: [dovecot] Re: Bug#175507: dovecot: Accidental denial of service via syslog From: Timo Sirainen To: "Jaldhar H. Vyas" Cc: dovecot@procontrol.fi, 175507@bugs.debian.org, debian-bugs-dist@lists.debian.org, dovecot@packages.qa.debian.org In-Reply-To: References: <20030105034215.23AE3FECE@ythgin.talsever.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042060580.28651.106.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 08 Jan 2003 23:16:20 +0200 X-archive-position: 199 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 199 Status: O On Wed, 2003-01-08 at 21:50, Jaldhar H. Vyas wrote: > > I've got 30,000 line pairs from a ten hour run. I would think that if it > > dies more than, say, a thousand times in a single hour, imap-master maybe > > ought to consider that there's a serious configuration problem preventing > > use, and exit instead of continuing to fill the log. > Personally, I would be even stricter than Amelia is suggesting. If there > is a serious configuration error, dovecot should die immediately. Agreed. CVS contains such code now. If login or auth process die before master receives an "we're ok" notification from them, master shuts itself down. Only problem with this could be some temporary failure (eg. out of memory) which unneededly kills the whole Dovecot, but I think these are quite rare. From tss@iki.fi Wed Jan 8 23:22:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 08 Jan 2003 23:22:34 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9EAF92382C for ; Wed, 8 Jan 2003 23:22:34 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 62B9F5E01F60; Wed, 8 Jan 2003 23:22:34 +0200 (EET) Subject: [dovecot] Re: Bug#175509: dovecot: init.d script should add some syslog statements on startup/shutdown (fwd) From: Timo Sirainen To: dovecot@procontrol.fi Cc: 175509@bugs.debian.org, debian-bugs-dist@lists.debian.org, dovecot@packages.qa.debian.org In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042060953.28651.112.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 08 Jan 2003 23:22:34 +0200 X-archive-position: 200 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 200 Status: O On Wed, 2003-01-08 at 21:41, Jaldhar H. Vyas wrote: > It would be nice if the init.d script could add some statements in the > system log on startup and shutdown. For postfix, postfix-script (called > from the init script) uses: > starting the Postfix mail system > stopping the Postfix mail system > > These are useful; one can start the daemon and check that it's initialized > (netstat works as well, I suppose, but this is still useful docco). Yes, I've heard this request before but forgot to add it. I'll add "Dovecot starting up" (or better suggestions?) but I don't think I'll add any specific shutdown message, since either there will be some error message or "Warning: Killed with signal x". From jpeterson275@attbi.com Wed Jan 8 23:45:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 08 Jan 2003 23:45:04 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc01.attbi.com (sccrmhc01.attbi.com [204.127.202.61]) by danu.procontrol.fi (Postfix) with ESMTP id 412A82382C for ; Wed, 8 Jan 2003 23:45:04 +0200 (EET) Received: from attbi.com (12-228-125-138.client.attbi.com[12.228.125.138]) by sccrmhc01.attbi.com (sccrmhc01) with SMTP id <20030108214502001004ij5ge>; Wed, 8 Jan 2003 21:45:02 +0000 Message-ID: <3E1C9BF6.9040908@attbi.com> Date: Wed, 08 Jan 2003 13:45:26 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: Logging suggestions? References: <1042022871.28651.93.camel@hurina> <20030108175006.GB27418@dust.uchicago.edu> <20030108181142.GB12010@talsever.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 201 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 201 Status: O Amelia A Lewis wrote: > Might think about what can be logged per-module. That is, imap-login knows > about connection attempts; imap-auth about who and how (auth mechanism); > imap about folders accessed, bytes transferred. Might think about a set of > keywords for each, then, like this: > > imap_login_logging: connection login logout starttls > imap_auth_logging: user auth success failure > imap_logging: folders num_messages num_bytes per_folder I have to second this idea, as well. I also like David Champion's idea of easily-parsable logs. -- Jesse Peterson / jesse@pixeltechs.com From tss@iki.fi Thu Jan 9 00:54:50 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 09 Jan 2003 00:54:50 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E18AC23837 for ; Thu, 9 Jan 2003 00:54:49 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 9DD445E01F60; Thu, 9 Jan 2003 00:54:49 +0200 (EET) Subject: [dovecot] Re: Logging suggestions? From: Timo Sirainen To: David Champion Cc: dovecot@procontrol.fi In-Reply-To: <20030108175006.GB27418@dust.uchicago.edu> References: <1042022871.28651.93.camel@hurina> <20030108175006.GB27418@dust.uchicago.edu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042066489.28650.138.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 09 Jan 2003 00:54:49 +0200 X-archive-position: 202 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 202 Status: O Content-Length: 2843 On Wed, 2003-01-08 at 19:50, David Champion wrote: > I like things that are easy to parse with shell and awk scripts. E.g.: > > Login: username 1.2.3.4:1025 5.6.7.8:143 imaps,compressed > Logout: username 1.2.3.4:1025 5.6.7.8:143 imaps,compressed in:1000 out:1000000 [whatever SSL summary data is available] > > I like seeing both the source and destination sockaddrs. (Why not run > two instances on different interfaces?) In fact, I like seeing both > hostname and ip address, and an indicator if a reverse map doesn't > match, but that's probably just me. Hmm. I'm not sure about the destination address. Destination port would be useful, but I don't personally care about seeing the address. Probably not worth doing it optionally either. Guess I'd add it then. DNS lookups then .. Not by default, and rather not with having to distribute some DNS library. I don't see any simple way to do that. Also only IPv6 capable async DNS library I know of is patched libadns. > It would also > be nice for perf. anal. to know how much I/O to storage (disk) was > performed by the imap process, but I don't imagine those figures are > presently available anyway. Not very easily, especially about the indexes since they're just mmap()ed and accessed randomly. Reading the mailbox files is more possible, but probably not worth the trouble. Maybe that could be done in OS-level by some existing patch? > That's just an illustration; it doesn't matter to me whether it's like > that particularly. I just want to show what I mean by ease of parsing > -- whitespace-separated fields, well-known field values, related flags > and such compounded within fields. The whole line structure should be > well-known and not require perl or sscanf()s or such; scripts should be > able to extract a lot of data from these quickly. Yes, agreed. I just tend to forget this :) > > I think the only configuration needed would be if to log login, logout > > or both. > > That's generous. :) I'd always want both, and can't imagine not wanting > both, but I suppose some might prefer less. I don't care about the I/O or time used in those small systems that I use. Login might not be very useful to others who only wish to see the stats, not who has most recently logged in. Of course disabling logins could hide some of them if the process crashes. > I actually wouldn't mind seeing more optional logs -- for example, > logout-like summaries for folder accesses (when users change folders). > This can help in balancing storage devices when folders can reside on > multiple devices. > > In an ideal world, everything would be loggable, but not everything > would be logged. Want to give a larger list that you'd think would be useful to log? I can't think of many user actions that'd be worth logging. There's already rawlog for logging _everything_ :) From tss@iki.fi Thu Jan 9 00:59:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 09 Jan 2003 00:59:21 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 58F922382C for ; Thu, 9 Jan 2003 00:59:21 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 2A96E5E01F60; Thu, 9 Jan 2003 00:59:21 +0200 (EET) Subject: [dovecot] Re: Logging suggestions? From: Timo Sirainen To: Amelia A Lewis Cc: dovecot@procontrol.fi In-Reply-To: <20030108181142.GB12010@talsever.com> References: <1042022871.28651.93.camel@hurina> <20030108175006.GB27418@dust.uchicago.edu> <20030108181142.GB12010@talsever.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042066760.28651.144.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 09 Jan 2003 00:59:20 +0200 X-archive-position: 203 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 203 Status: O On Wed, 2003-01-08 at 20:11, Amelia A Lewis wrote: > I'd like to see at least the option of showing failed logins, for security > monitoring. In some ways, I want to see this more than I want to see > successful logins. Currently it just says "Aborted login". I was planning on adding "n failed login attempts" before that or actual login. > Might think about what can be logged per-module. That is, imap-login knows > about connection attempts; imap-auth about who and how (auth mechanism); > imap about folders accessed, bytes transferred. Might think about a set of > keywords for each, then, like this: > > imap_login_logging: connection login logout starttls > imap_auth_logging: user auth success failure > imap_logging: folders num_messages num_bytes per_folder Something like that, yes. I'd like to avoid adding too many (mostly) useless options though. From jpeterson275@attbi.com Thu Jan 9 01:29:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 09 Jan 2003 01:29:16 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc03.attbi.com (sccrmhc03.attbi.com [204.127.202.63]) by danu.procontrol.fi (Postfix) with ESMTP id 49DF42382C for ; Thu, 9 Jan 2003 01:29:16 +0200 (EET) Received: from attbi.com (12-228-125-138.client.attbi.com[12.228.125.138]) by sccrmhc03.attbi.com (sccrmhc03) with SMTP id <2003010823291400300latdke>; Wed, 8 Jan 2003 23:29:15 +0000 Message-ID: <3E1CB462.3040502@attbi.com> Date: Wed, 08 Jan 2003 15:29:38 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: Logging suggestions? Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 204 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 204 Status: O Content-Length: 1034 -------- Original Message -------- From: - Wed Jan 08 15:28:42 2003 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00800000 Message-ID: <3E1CB429.3040704@attbi.com> Date: Wed, 08 Jan 2003 15:28:41 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [dovecot] Re: Logging suggestions? References: <1042022871.28651.93.camel@hurina> <20030108175006.GB27418@dust.uchicago.edu> <20030108181142.GB12010@talsever.com> <1042066760.28651.144.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Timo Sirainen wrote: > > Something like that, yes. I'd like to avoid adding too many (mostly) > useless options though. > Make it customizable! =) Maybe something similar to Apache LogFormat-style or similar? Just a suggestion, -- Jesse Peterson / jesse@pixeltechs.com -- Jesse Peterson / jesse@pixeltechs.com From tss@iki.fi Fri Jan 10 03:24:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 10 Jan 2003 03:24:28 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AAFFE2382C for ; Fri, 10 Jan 2003 03:24:28 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 65D875E01F60; Fri, 10 Jan 2003 03:24:28 +0200 (EET) Subject: [dovecot] Thread extension From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042161868.32389.112.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 10 Jan 2003 03:24:28 +0200 X-archive-position: 205 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 205 Status: O Content-Length: 1137 Just figured I'd mention that CVS supports now THREAD extension. I also did a bit of benchmarking using a folder with 4685 mails (evolution mailing list): dovecot+mbox: - 0.59s user 0.01s system 98% cpu 0.608 total - malloc() memory usage 45072 -> 825685 dovecot+maildir: - 0.60s user 0.17s system 98% cpu 0.780 total - malloc() memory usage: 45003 -> 825480 Meaning it takes almost 800kbytes of memory and it's quite fast :) Comparing to other servers then: uw-imap: - 1.11s user 0.27s system 100% cpu 1.376 total - malloc() memory usage: 529408 -> ~4348k courier: - 7.27s user 0.28s system 99% cpu 7.567 total - malloc() memory usage: 181689 -> ~850k cyrus: - 1.403 total (through TCP connection, I couldn't figure out how to start it separately) Whoa, we beat everyone :) Courier uses a bit less memory though, but that's most likely because we allocate it in larger chunks which is faster. I ran the tests several times and picked the best values, although the changes were minimal once they got the messages into OS's cache. Also it looks like I've found a couple of bugs in uw-imap and courier's implementation.. From tss@iki.fi Fri Jan 10 13:20:22 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 10 Jan 2003 13:20:22 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 596082382C for ; Fri, 10 Jan 2003 13:20:22 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 284F05E01F60; Fri, 10 Jan 2003 13:20:19 +0200 (EET) Subject: [dovecot] Re: Thread extension From: Timo Sirainen To: Jonas Smedegaard Cc: dovecot@procontrol.fi In-Reply-To: References: <1042161868.32389.112.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042197618.32389.154.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 10 Jan 2003 13:20:19 +0200 X-archive-position: 206 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 206 Status: O On Fri, 2003-01-10 at 06:00, Jonas Smedegaard wrote: > > Also it looks like I've found a couple of bugs in uw-imap and courier's > > implementation.. > > Something you want to reveal? Well, one was just my misunderstanding of the specs, but another still exists: These should be grouped together, but aren't: Subject: =?iso-8859-1?Q?foo?= Subject: =?iso-8859-1?Q?RE=3A_foo?= UW doesn't seem to handle MIME encoded-words properly. I mentioned this already to Mark Crispin who apparently has a lot to do with UW's code. I didn't look too closely at Courier's output, except it was somewhat different from Dovecot's. Also, Crispin said it was totally broken. From martin.sillence@ntlworld.com Fri Jan 10 22:52:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 10 Jan 2003 22:52:34 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mta06-svc.ntlworld.com (mta06-svc.ntlworld.com [62.253.162.46]) by danu.procontrol.fi (Postfix) with ESMTP id 13B8423837 for ; Fri, 10 Jan 2003 22:52:34 +0200 (EET) Received: from wild ([62.253.45.219]) by mta06-svc.ntlworld.com (InterMail vM.4.01.03.27 201-229-121-127-20010626) with ESMTP id <20030110205230.GOMY20174.mta06-svc.ntlworld.com@wild> for ; Fri, 10 Jan 2003 20:52:30 +0000 Received: from griffin.mad ([10.10.30.3] ident=martin) by wild with smtp (Exim 3.35 #1 (Debian)) id 18Wt8A-0000UI-00 for ; Fri, 10 Jan 2003 06:59:03 +0000 Date: Fri, 10 Jan 2003 20:53:19 +0000 From: M To: dovecot@procontrol.fi Subject: [dovecot] Failed to create storage Message-Id: <20030110205319.2d7a36a1.martin.sillence@ntlworld.com> X-Mailer: Sylpheed version 0.8.8 (GTK+ 1.2.10; i386-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 207 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: martin.sillence@ntlworld.com Precedence: bulk X-list: dovecot X-UID: 207 Status: O Hi, I'm impressed so far, I tested this before trying to run it on a mail server and it worked find. However on the mail server with the same config I get the following message when I try and authenticate, and it drops the connection. Failed to create storage with data: mbox:/var/mail/martin The test box is running debian unstable and the mail server is running debian stable so I had to recompile and install. I'm failry sure that I got all the permissions right, I feel like I'm missing something obvious, can anyone advise? The file and permissions on the mailbox look right: -rw-rw---- 1 martin mail 14743740 Jan 10 06:29 /var/mail/martin -- Thanks, M From tss@iki.fi Fri Jan 10 23:02:45 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 10 Jan 2003 23:02:45 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 85E362382C for ; Fri, 10 Jan 2003 23:02:45 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 48FA95E01F60; Fri, 10 Jan 2003 23:02:45 +0200 (EET) Subject: [dovecot] Re: Failed to create storage From: Timo Sirainen To: M Cc: dovecot@procontrol.fi In-Reply-To: <20030110205319.2d7a36a1.martin.sillence@ntlworld.com> References: <20030110205319.2d7a36a1.martin.sillence@ntlworld.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042232565.32394.188.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 10 Jan 2003 23:02:45 +0200 X-archive-position: 208 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 208 Status: O On Fri, 2003-01-10 at 22:53, M wrote: > Hi, > > I'm impressed so far, I tested this before trying to run it on a mail server and it worked find. > However on the mail server with the same config I get the following message when I try and authenticate, and it drops the connection. > > Failed to create storage with data: mbox:/var/mail/martin You most likely don't have ~/mail directory. Maybe Dovecot should create it if it's missing.. From martin.sillence@ntlworld.com Fri Jan 10 23:36:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 10 Jan 2003 23:36:28 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mta05-svc.ntlworld.com (mta05-svc.ntlworld.com [62.253.162.45]) by danu.procontrol.fi (Postfix) with ESMTP id 0EBA32382C for ; Fri, 10 Jan 2003 23:36:28 +0200 (EET) Received: from wild ([62.253.45.219]) by mta05-svc.ntlworld.com (InterMail vM.4.01.03.27 201-229-121-127-20010626) with ESMTP id <20030110213627.HMOH900.mta05-svc.ntlworld.com@wild> for ; Fri, 10 Jan 2003 21:36:27 +0000 Received: from griffin.mad ([10.10.30.3] ident=martin) by wild with smtp (Exim 3.35 #1 (Debian)) id 18Wtof-0000ZD-00 for ; Fri, 10 Jan 2003 07:42:57 +0000 Date: Fri, 10 Jan 2003 21:37:14 +0000 From: M To: dovecot@procontrol.fi Subject: [dovecot] Re: Failed to create storage Message-Id: <20030110213714.4caecbe4.martin.sillence@ntlworld.com> In-Reply-To: <1042232565.32394.188.camel@hurina> References: <20030110205319.2d7a36a1.martin.sillence@ntlworld.com> <1042232565.32394.188.camel@hurina> X-Mailer: Sylpheed version 0.8.8 (GTK+ 1.2.10; i386-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 209 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: martin.sillence@ntlworld.com Precedence: bulk X-list: dovecot X-UID: 209 Status: O On 10 Jan 2003 23:02:45 +0200 Timo Sirainen wrote: ... > > Failed to create storage with data: mbox:/var/mail/martin > > You most likely don't have ~/mail directory. Maybe Dovecot should create > it if it's missing.. > You star, that's the one. I just installed the debian package and was still mystified at the same problem when I saw your reply. I think creating it would be nice but a message that its /home/martin/mail thats missing might be better as it may fail to create it... -- Many thanks, M PS If you get the bounced messages that have the wrong from address, I'm having a little trouble remembering to adjust my mail clients ;) From tss@iki.fi Sat Jan 11 22:22:32 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 11 Jan 2003 22:22:32 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6FD8323837 for ; Sat, 11 Jan 2003 22:22:32 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id BD5365E01F60; Sat, 11 Jan 2003 22:22:31 +0200 (EET) Subject: [dovecot] 0.99.6rc3 From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042316551.32394.199.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 11 Jan 2003 22:22:31 +0200 X-archive-position: 210 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 210 Status: O Content-Length: 2020 Well, "release candidate" wasn't really right name for last two versions. Maybe not for this one either, it has a few changes that could potentially break things badly (new hash table code especially). Anyway, seems to work with me. If I don't see any problems with it for a few days it'll be the final. The really great news is that we support threading. A lot of people have not used Dovecot simply because it couldn't be used for webmails. Hmm. What's the next most important feature? .. Better mbox support? Shared folders? Quota? LDAP/MySQL/etc. authentication? Here's the change summary: v0.99.6 2003-01-xx Timo Sirainen + THREAD=REFERENCES extension support. ORDEREDSUBJECT would be easy to add, but I think it's pretty useless. + SORT is much faster now. + mbox: If ~/mail directory isn't found, create it. + Log login usernames * Some coding style changes (less typedefs) - Mails with nested MIME parts might have caused incorrect BODY and BODYSTRUCTURE fetches and sometimes might have crashed dovecot (assert at imap-bodystructure.c). If client had already successfully done the BODY fetching a couple of times, the bug couldn't happen anymore since Dovecot then began caching the BODY data. So, this mostly happened with new users. - non-UID SEARCH might gave wrong replies in certain conditions. - SORT replied always with UIDs instead of sequences. - If authentication was aborted by client ("*" reply to AUTHENTICATE), the login process crashed later. - STATUS command gave invalid reply for mailboxes with spaces in name - Timezones were parsed wrong with message dates - Digest-MD5: We used "qop-options" instead of "qop", which was incompatible with at least Cyrus SASL. - Realms in passwd-file were buggy - Literals didn't work when logging in - Crashed if it had to wait for mbox lock - With invalid configuration auth and login processes were just dying and master filling log files infinitely. - We didn't work with some 64bit systems From skvidal@phy.duke.edu Sat Jan 11 22:26:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 11 Jan 2003 22:26:34 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id E428023837 for ; Sat, 11 Jan 2003 22:26:33 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id BC10B30191; Sat, 11 Jan 2003 15:26:30 -0500 (EST) Subject: [dovecot] Re: 0.99.6rc3 From: seth vidal To: Timo Sirainen Cc: dovecot@procontrol.fi In-Reply-To: <1042316551.32394.199.camel@hurina> References: <1042316551.32394.199.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-WfSqz3NYT5uCm0ZuT0iy" X-Mailer: Ximian Evolution 1.0.3 (1.0.3-6) Date: 11 Jan 2003 15:26:29 -0500 Message-Id: <1042316791.19970.1.camel@opus> Mime-Version: 1.0 X-archive-position: 211 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 211 Status: O Content-Length: 1455 --=-WfSqz3NYT5uCm0ZuT0iy Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2003-01-11 at 15:22, Timo Sirainen wrote: > Well, "release candidate" wasn't really right name for last two > versions. Maybe not for this one either, it has a few changes that could > potentially break things badly (new hash table code especially). Anyway, > seems to work with me. If I don't see any problems with it for a few > days it'll be the final. >=20 > The really great news is that we support threading. A lot of people have > not used Dovecot simply because it couldn't be used for webmails. Hmm. > What's the next most important feature? .. Better mbox support? Shared > folders? Quota? LDAP/MySQL/etc. authentication? >=20 I know this has been asked before. But I know a fair number of people would like dovecot to drop-in replace uw-imapd/ipopd so two things - can you make it possible to drop in replace uw-imapd/ipopd by having a pop3 daemon come along w/it and will dovecot now handle a /var/mail/$user mbox as an inbox but allow ~/mail maildir/mbox folders? -sv --=-WfSqz3NYT5uCm0ZuT0iy Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+IH311Aj3x2mIbMcRAviJAKCc/fmBh50Lgw7bxoKd78bnR+SJeQCfVmwu ZK+O9lC7QkiPeDOt1sj+v5A= =Gk0i -----END PGP SIGNATURE----- --=-WfSqz3NYT5uCm0ZuT0iy-- From tss@iki.fi Sat Jan 11 22:34:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 11 Jan 2003 22:34:53 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4800523837 for ; Sat, 11 Jan 2003 22:34:53 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 013C45E01F60; Sat, 11 Jan 2003 22:34:52 +0200 (EET) Subject: [dovecot] Re: 0.99.6rc3 From: Timo Sirainen To: seth vidal Cc: dovecot@procontrol.fi In-Reply-To: <1042316791.19970.1.camel@opus> References: <1042316551.32394.199.camel@hurina> <1042316791.19970.1.camel@opus> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042317292.32389.206.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 11 Jan 2003 22:34:52 +0200 X-archive-position: 212 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 212 Status: O On Sat, 2003-01-11 at 22:26, seth vidal wrote: > I know this has been asked before. But I know a fair number of people > would like dovecot to drop-in replace uw-imapd/ipopd > > so two things - can you make it possible to drop in replace > uw-imapd/ipopd by having a pop3 daemon come along w/it Yes, I think. pop3 should so simple enough to write in a few hours, unless I have to redesign some interfaces for accessing mail. I'll read the pop3 spec and see then. > and will dovecot > now handle a /var/mail/$user mbox as an inbox but allow ~/mail > maildir/mbox folders? Yes. default_mail_env=mbox:/var/mail/$U to config file does that. Except maildir and mboxes can't be mixed for now - wouldn't be too difficult to support though. From tss@iki.fi Mon Jan 13 00:53:24 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 13 Jan 2003 00:53:24 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EDA8123837 for ; Mon, 13 Jan 2003 00:53:23 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 2A5E15E01F60; Mon, 13 Jan 2003 00:53:23 +0200 (EET) Subject: [dovecot] Re: 0.99.6rc3 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1042317292.32389.206.camel@hurina> References: <1042316551.32394.199.camel@hurina> <1042316791.19970.1.camel@opus> <1042317292.32389.206.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042412002.8610.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 13 Jan 2003 00:53:23 +0200 X-archive-position: 213 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 213 Status: O On Sat, 2003-01-11 at 22:34, Timo Sirainen wrote: > > so two things - can you make it possible to drop in replace > > uw-imapd/ipopd by having a pop3 daemon come along w/it > > Yes, I think. pop3 should so simple enough to write in a few hours, > unless I have to redesign some interfaces for accessing mail. I'll read > the pop3 spec and see then. Well, it requires a few changes it seems. Another related problem is that with mbox we should hide some of the message headers, with current code that'd messy and slow. I've also thought about supporting SQL databases to store mails, but a bit too much of the logic is index file-specific now. So, time for a cleanup to fix all these at once. FETCH and SEARCH are the only commands whose logic should be moved, after that the lib-storage won't have hardly any IMAP specific features anymore. Any other protocols that we could support? :) From skvidal@phy.duke.edu Mon Jan 13 21:00:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 13 Jan 2003 21:00:18 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id AEF7F238C3 for ; Mon, 13 Jan 2003 21:00:17 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id 1507930358; Mon, 13 Jan 2003 14:00:16 -0500 (EST) Subject: [dovecot] Re: 0.99.6rc3 From: seth vidal To: Timo Sirainen Cc: dovecot@procontrol.fi In-Reply-To: <1042412002.8610.14.camel@hurina> References: <1042316551.32394.199.camel@hurina> <1042316791.19970.1.camel@opus> <1042317292.32389.206.camel@hurina> <1042412002.8610.14.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-vd0IzJ/NAm1j+ZKYHevp" X-Mailer: Ximian Evolution 1.0.3 (1.0.3-6) Date: 13 Jan 2003 14:00:14 -0500 Message-Id: <1042484415.4224.33.camel@opus> Mime-Version: 1.0 X-archive-position: 214 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 214 Status: O Content-Length: 1556 --=-vd0IzJ/NAm1j+ZKYHevp Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2003-01-12 at 17:53, Timo Sirainen wrote: > On Sat, 2003-01-11 at 22:34, Timo Sirainen wrote: > > > so two things - can you make it possible to drop in replace > > > uw-imapd/ipopd by having a pop3 daemon come along w/it=20 > >=20 > > Yes, I think. pop3 should so simple enough to write in a few hours, > > unless I have to redesign some interfaces for accessing mail. I'll read > > the pop3 spec and see then. >=20 > Well, it requires a few changes it seems. Another related problem is > that with mbox we should hide some of the message headers, with current > code that'd messy and slow. I've also thought about supporting SQL > databases to store mails, but a bit too much of the logic is index > file-specific now. >=20 > So, time for a cleanup to fix all these at once. FETCH and SEARCH are > the only commands whose logic should be moved, after that the > lib-storage won't have hardly any IMAP specific features anymore. Any > other protocols that we could support? :) >=20 well if you're bored and feel like working on an acap server I'm sure no one would be pissed. ;) -sv --=-vd0IzJ/NAm1j+ZKYHevp Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+Iwy+1Aj3x2mIbMcRAgFxAJ4zXMOHkzzTlqaZJI58A3JEp6EmJQCfZ6S4 uGyO9Tu22SWQrrB1Biu7drk= =KLbm -----END PGP SIGNATURE----- --=-vd0IzJ/NAm1j+ZKYHevp-- From griffin@legonet.org Mon Jan 13 22:54:13 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 13 Jan 2003 22:54:13 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from spelaroll.campus.luth.se (spelaroll.campus.luth.se [130.240.202.203]) by danu.procontrol.fi (Postfix) with ESMTP id 7EC3E23837 for ; Mon, 13 Jan 2003 22:54:13 +0200 (EET) Received: from spelaroll.campus.luth.se (griffin@localhost [127.0.0.1]) by spelaroll.campus.luth.se (8.12.2/8.12.2) with ESMTP id h0DKsCnc015564 (version=TLSv1/SSLv3 cipher=EDH-DSS-DES-CBC3-SHA bits=168 verify=NO) for ; Mon, 13 Jan 2003 21:54:12 +0100 (CET) Received: from localhost (griffin@localhost) by spelaroll.campus.luth.se (8.12.2/8.12.2/Submit) with ESMTP id h0DKsCLN025198 for ; Mon, 13 Jan 2003 21:54:12 +0100 (CET) X-Authentication-Warning: spelaroll.campus.luth.se: griffin owned process doing -bs Date: Mon, 13 Jan 2003 21:54:12 +0100 (CET) From: Johan Fredin X-X-Sender: griffin@spelaroll.campus.luth.se To: dovecot@procontrol.fi Subject: [dovecot] dovecot-0.99.6rc3 compilation problems on (Open|Free)BSD Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 215 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: griffin@legonet.org Precedence: bulk X-list: dovecot X-UID: 215 Status: O Content-Length: 1117 Hi there! Dovecot-0.99.6rc3 barfs at me when I try to compile it on OpenBSD 3.2 or FreeBSD 4.7, both with the same error: [ ..snip.. ] gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c charset-iconv.c gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c charset-utf8.c charset-utf8.c:42: storage size of `ascii_translation' isn't known charset-utf8.c:42: storage size of `utf8_translation' isn't known *** Error code 1 Stop in /usr/home/griffin/dovecot-0.99.6rc3/src/lib-charset. *** Error code 1 Stop in /usr/home/griffin/dovecot-0.99.6rc3/src (line 134 of Makefile). *** Error code 1 Stop in /usr/home/griffin/dovecot-0.99.6rc3 (line 202 of Makefile). *** Error code 1 Stop in /usr/home/griffin/dovecot-0.99.6rc3 (line 330 of Makefile). I didn't use any fancy parameters for ./configure. Any config.* files I can post to help? /Regards, Johan From tss@iki.fi Mon Jan 13 22:58:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 13 Jan 2003 22:58:10 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A8887238C3 for ; Mon, 13 Jan 2003 22:58:10 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 7FC885E01F60; Mon, 13 Jan 2003 22:58:10 +0200 (EET) Subject: [dovecot] Re: dovecot-0.99.6rc3 compilation problems on (Open|Free)BSD From: Timo Sirainen To: Johan Fredin Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042491490.8609.77.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 13 Jan 2003 22:58:10 +0200 X-archive-position: 216 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 216 Status: O On Mon, 2003-01-13 at 22:54, Johan Fredin wrote: > Dovecot-0.99.6rc3 barfs at me when I try to compile it on OpenBSD 3.2 or > FreeBSD 4.7, both with the same error: Thanks, I was just about to release the final version. It compiled only if iconv() existed in your system, otherwise it fallbacks to ASCII+UTF8-only support which I had left broken. From skvidal@phy.duke.edu Mon Jan 13 23:30:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 13 Jan 2003 23:30:48 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id C08AB238C3 for ; Mon, 13 Jan 2003 23:30:48 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id AD0FA3040D for ; Mon, 13 Jan 2003 16:30:48 -0500 (EST) Subject: [dovecot] security audit of the code From: seth vidal To: dovecot@procontrol.fi Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-9gRgtShvlKHIoddZRra6" X-Mailer: Ximian Evolution 1.0.3 (1.0.3-6) Date: 13 Jan 2003 16:30:32 -0500 Message-Id: <1042493447.7008.17.camel@opus> Mime-Version: 1.0 X-archive-position: 217 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 217 Status: O --=-9gRgtShvlKHIoddZRra6 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Timo, I know that you're taking an effort to make sure that dovecot is written securely, but I was wondering if you've asked any third party to audit the code yet. I don't have the skills necessary to do this but I bet there is someone out there who does and might be willing to do so. -sv --=-9gRgtShvlKHIoddZRra6 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+Iy/41Aj3x2mIbMcRAl2mAKCI5nfE871P7CkFmTi39Y9disIAbwCfQ85R w6bnBI37YNgHbKtf0EFQKwo= =o+2B -----END PGP SIGNATURE----- --=-9gRgtShvlKHIoddZRra6-- From griffin@legonet.org Mon Jan 13 23:42:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 13 Jan 2003 23:42:39 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from spelaroll.campus.luth.se (spelaroll.campus.luth.se [130.240.202.203]) by danu.procontrol.fi (Postfix) with ESMTP id 2E784238C3 for ; Mon, 13 Jan 2003 23:42:39 +0200 (EET) Received: from spelaroll.campus.luth.se (griffin@localhost [127.0.0.1]) by spelaroll.campus.luth.se (8.12.2/8.12.2) with ESMTP id h0DLgbnc004860 (version=TLSv1/SSLv3 cipher=EDH-DSS-DES-CBC3-SHA bits=168 verify=NO); Mon, 13 Jan 2003 22:42:37 +0100 (CET) Received: from localhost (griffin@localhost) by spelaroll.campus.luth.se (8.12.2/8.12.2/Submit) with ESMTP id h0DLgb1n031361; Mon, 13 Jan 2003 22:42:37 +0100 (CET) X-Authentication-Warning: spelaroll.campus.luth.se: griffin owned process doing -bs Date: Mon, 13 Jan 2003 22:42:37 +0100 (CET) From: Johan Fredin X-X-Sender: griffin@spelaroll.campus.luth.se To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: dovecot-0.99.6rc3 compilation problems on (Open|Free)BSD In-Reply-To: <1042491490.8609.77.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 218 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: griffin@legonet.org Precedence: bulk X-list: dovecot X-UID: 218 Status: O Content-Length: 1463 On 13 Jan 2003, Timo Sirainen wrote: > Thanks, I was just about to release the final version. It compiled only > if iconv() existed in your system, otherwise it fallbacks to > ASCII+UTF8-only support which I had left broken. But, I do have libiconv (GNU libiconv from ports) installed. Got iconv.h in /usr/local/include/. If I make /usr/include/iconv.h a symlink to that one it works through that error. But instead it barfs again further down the road :/. [ ..snip.. ] gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I../../src/lib-imap -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c ssl-proxy-openssl.c ssl-proxy-openssl.c: In function `plain_block_input': ssl-proxy-openssl.c:58: `IOFunc' undeclared (first use in this function) ssl-proxy-openssl.c:58: (Each undeclared identifier is reported only once ssl-proxy-openssl.c:58: for each function it appears in.) ssl-proxy-openssl.c:58: syntax error before `plain_read' ssl-proxy-openssl.c: In function `plain_write': ssl-proxy-openssl.c:119: `IOFunc' undeclared (first use in this function) ssl-proxy-openssl.c:119: syntax error before `plain_write' ssl-proxy-openssl.c: At top level: ssl-proxy-openssl.c:81: warning: `plain_read' defined but not used *** Error code 1 Stop in /usr/home/griffin/dovecot-0.99.6rc3/src/login. *** Error code 1 This is OpenBSD 3.2 with OpenSSL 0.9.7-beta3 30 Jul 2002. /Regards, Johan From tss@iki.fi Mon Jan 13 23:56:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 13 Jan 2003 23:56:17 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4D5CF238C3 for ; Mon, 13 Jan 2003 23:56:17 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 1E2565E01F60; Mon, 13 Jan 2003 23:56:17 +0200 (EET) Subject: [dovecot] Re: dovecot-0.99.6rc3 compilation problems on (Open|Free)BSD From: Timo Sirainen To: Johan Fredin Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042494976.8609.83.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 13 Jan 2003 23:56:16 +0200 X-archive-position: 219 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 219 Status: O On Mon, 2003-01-13 at 23:42, Johan Fredin wrote: > On 13 Jan 2003, Timo Sirainen wrote: > > Thanks, I was just about to release the final version. It compiled only > > if iconv() existed in your system, otherwise it fallbacks to > > ASCII+UTF8-only support which I had left broken. > > But, I do have libiconv (GNU libiconv from ports) installed. Got iconv.h > in /usr/local/include/. If I make /usr/include/iconv.h a symlink to that > one it works through that error. CPPFLAGS='-I /usr/local/include' ./configure would be a bit more correct way to fix it. > But instead it barfs again further down > the road :/. Thanks again, would have missed this one too :) Get 0.99.6 in a few minutes. From tss@iki.fi Tue Jan 14 00:12:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 14 Jan 2003 00:12:44 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8215C23837 for ; Tue, 14 Jan 2003 00:12:44 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 532BC5E01F60; Tue, 14 Jan 2003 00:12:44 +0200 (EET) Subject: [dovecot] Re: security audit of the code From: Timo Sirainen To: seth vidal Cc: dovecot@procontrol.fi In-Reply-To: <1042493447.7008.17.camel@opus> References: <1042493447.7008.17.camel@opus> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042495964.8610.91.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 14 Jan 2003 00:12:44 +0200 X-archive-position: 220 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 220 Status: O On Mon, 2003-01-13 at 23:30, seth vidal wrote: > Timo, > I know that you're taking an effort to make sure that dovecot is > written securely, but I was wondering if you've asked any third party to > audit the code yet. I don't have the skills necessary to do this but I > bet there is someone out there who does and might be willing to do so. I don't really know who or where to ask. I'd be interested of getting people to audit Dovecot too. From tss@iki.fi Tue Jan 14 00:14:25 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 14 Jan 2003 00:14:25 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9356E23837 for ; Tue, 14 Jan 2003 00:14:25 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 64C565E01F60; Tue, 14 Jan 2003 00:14:25 +0200 (EET) Subject: [dovecot] 0.99.6 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042496065.8609.94.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 14 Jan 2003 00:14:25 +0200 X-archive-position: 221 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 221 Status: O Content-Length: 1504 Several bugfixes since 0.99.6rc3. Here's again the change summary since 0.99.5: v0.99.6 2003-01-13 Timo Sirainen + THREAD=REFERENCES extension support. ORDEREDSUBJECT would be easy to add, but I think it's pretty useless. + SORT is much faster now. + mbox: If ~/mail directory isn't found, create it. + Log login usernames * Some coding style changes (less typedefs) - Mails with nested MIME parts might have caused incorrect BODY and BODYSTRUCTURE fetches and sometimes might have crashed dovecot (assert at imap-bodystructure.c). If client had already successfully done the BODY fetching a couple of times, the bug couldn't happen anymore since Dovecot then began caching the BODY data. So, this mostly happened with new users. - non-UID SEARCH might gave wrong replies in certain conditions. - SORT replied always with UIDs instead of sequences. - If authentication was aborted by client ("*" reply to AUTHENTICATE), the login process crashed later. - STATUS command gave invalid reply for mailboxes with spaces in name - Timezones were parsed wrong with message dates - Digest-MD5: We used "qop-options" instead of "qop", which was incompatible with at least Cyrus SASL. - Realms in passwd-file were buggy - Literals didn't work when logging in - Crashed if it had to wait for mbox lock - With invalid configuration auth and login processes were just dying and master filling log files infinitely. - We didn't work with some 64bit systems From skvidal@phy.duke.edu Tue Jan 14 00:16:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 14 Jan 2003 00:16:17 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 4622523837 for ; Tue, 14 Jan 2003 00:16:17 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id CFC9530195; Mon, 13 Jan 2003 17:16:16 -0500 (EST) Subject: [dovecot] Re: security audit of the code From: seth vidal To: Timo Sirainen Cc: dovecot@procontrol.fi In-Reply-To: <1042495964.8610.91.camel@hurina> References: <1042493447.7008.17.camel@opus> <1042495964.8610.91.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-P98wT82RzHPspQTnUp3U" X-Mailer: Ximian Evolution 1.0.3 (1.0.3-6) Date: 13 Jan 2003 17:16:16 -0500 Message-Id: <1042496176.7276.57.camel@opus> Mime-Version: 1.0 X-archive-position: 222 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 222 Status: O Content-Length: 1192 --=-P98wT82RzHPspQTnUp3U Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2003-01-13 at 17:12, Timo Sirainen wrote: > On Mon, 2003-01-13 at 23:30, seth vidal wrote: > > Timo, > > I know that you're taking an effort to make sure that dovecot is > > written securely, but I was wondering if you've asked any third party t= o > > audit the code yet. I don't have the skills necessary to do this but I > > bet there is someone out there who does and might be willing to do so. >=20 > I don't really know who or where to ask. I'd be interested of getting > people to audit Dovecot too. >=20 Would it be reasonable to ask on bugtraq? What about Chris Evans? - he wrote vsftpd and audited a bunch of Red Hat's releases iirc. Maybe worth bugging him to see if he'd be willing to look it over? -sv --=-P98wT82RzHPspQTnUp3U Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+Izqw1Aj3x2mIbMcRAsWZAJ9/9TmFzIOc7zBVvLperLR8+BlSqQCcCTlz dZ5SGk3ueyk6cwVxaRj6UoQ= =B7NS -----END PGP SIGNATURE----- --=-P98wT82RzHPspQTnUp3U-- From skvidal@phy.duke.edu Tue Jan 14 00:18:11 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 14 Jan 2003 00:18:11 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 3691623837 for ; Tue, 14 Jan 2003 00:18:11 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id C7ECE30195; Mon, 13 Jan 2003 17:18:10 -0500 (EST) Subject: [dovecot] Re: security audit of the code From: seth vidal To: seth vidal Cc: Timo Sirainen , dovecot@procontrol.fi In-Reply-To: <1042496176.7276.57.camel@opus> References: <1042493447.7008.17.camel@opus> <1042495964.8610.91.camel@hurina> <1042496176.7276.57.camel@opus> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-viYehhu+8f0tHfzj8JVW" X-Mailer: Ximian Evolution 1.0.3 (1.0.3-6) Date: 13 Jan 2003 17:18:10 -0500 Message-Id: <1042496290.6891.59.camel@opus> Mime-Version: 1.0 X-archive-position: 223 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 223 Status: O Content-Length: 1414 --=-viYehhu+8f0tHfzj8JVW Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2003-01-13 at 17:16, seth vidal wrote: > On Mon, 2003-01-13 at 17:12, Timo Sirainen wrote: > > On Mon, 2003-01-13 at 23:30, seth vidal wrote: > > > Timo, > > > I know that you're taking an effort to make sure that dovecot is > > > written securely, but I was wondering if you've asked any third party= to > > > audit the code yet. I don't have the skills necessary to do this but = I > > > bet there is someone out there who does and might be willing to do so= . > >=20 > > I don't really know who or where to ask. I'd be interested of getting > > people to audit Dovecot too. > >=20 >=20 >=20 > Would it be reasonable to ask on bugtraq? >=20 > What about Chris Evans? - he wrote vsftpd and audited a bunch of Red > Hat's releases iirc. Maybe worth bugging him to see if he'd be willing > to look it over? >=20 heh the above should read: He wrote vsftpd and audited a variety of programs, and one of Red Hat's releases iirc. -sv --=-viYehhu+8f0tHfzj8JVW Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+Izsi1Aj3x2mIbMcRAmjjAJ9rkllCa6XrcNdVA5MelLXlpe02pQCfe45U f7WJYN+m5RuNVtRP+j3hLlk= =fWJB -----END PGP SIGNATURE----- --=-viYehhu+8f0tHfzj8JVW-- From tss@iki.fi Tue Jan 14 00:23:07 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 14 Jan 2003 00:23:07 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5782923837 for ; Tue, 14 Jan 2003 00:23:07 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 2553E5E01F60; Tue, 14 Jan 2003 00:23:07 +0200 (EET) Subject: [dovecot] Re: security audit of the code From: Timo Sirainen To: seth vidal Cc: dovecot@procontrol.fi In-Reply-To: <1042496176.7276.57.camel@opus> References: <1042493447.7008.17.camel@opus> <1042495964.8610.91.camel@hurina> <1042496176.7276.57.camel@opus> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042496586.8610.102.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 14 Jan 2003 00:23:07 +0200 X-archive-position: 224 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 224 Status: O On Tue, 2003-01-14 at 00:16, seth vidal wrote: > > I don't really know who or where to ask. I'd be interested of getting > > people to audit Dovecot too. > Would it be reasonable to ask on bugtraq? > > What about Chris Evans? - he wrote vsftpd and audited a bunch of Red > Hat's releases iirc. Maybe worth bugging him to see if he'd be willing > to look it over? I don't think it's a good idea to bug people with auditing requests, unless they've stated they don't mind. I usually audit only software that I use myself. From skvidal@phy.duke.edu Tue Jan 14 00:25:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 14 Jan 2003 00:25:10 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 222C423837 for ; Tue, 14 Jan 2003 00:25:10 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id CEA0930195; Mon, 13 Jan 2003 17:25:09 -0500 (EST) Received: by opus.phy.duke.edu (Postfix, from userid 875) id 345F95F0F2; Mon, 13 Jan 2003 17:25:09 -0500 (EST) Date: Mon, 13 Jan 2003 17:25:09 -0500 (EST) From: Seth Vidal X-X-Sender: skvidal@localhost.localdomain To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: security audit of the code In-Reply-To: <1042496586.8610.102.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 225 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 225 Status: O > I don't think it's a good idea to bug people with auditing requests, > unless they've stated they don't mind. I usually audit only software > that I use myself. makes sense. I dunno who/where to ask. I'm sorta surprised the securityfocus folks don't have a mailing list for this sort of request. It might not actually be a useful list but I'm surprised they don't have one :) -sv From lfarkas@bnap.hu Tue Jan 14 00:59:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 14 Jan 2003 00:59:56 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 13386238C3 for ; Tue, 14 Jan 2003 00:59:56 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 7CE25754021 for ; Tue, 14 Jan 2003 00:00:06 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by mail2.bppiac.hu (Postfix) with ESMTP id 099FA404F for ; Mon, 13 Jan 2003 23:59:53 +0100 (CET) Received: from mail2.bppiac.hu ([127.0.0.1]) by localhost (portal.bppiac.hu [127.0.0.1]) (amavisd-new) with ESMTP id 15148-08 for ; Mon, 13 Jan 2003 23:59:52 -0000 (CET) Message-ID: <3E2344E8.1020008@bnap.hu> Date: Mon, 13 Jan 2003 23:59:52 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021218 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: security audit of the code References: <1042493447.7008.17.camel@opus> <1042495964.8610.91.camel@hurina> <1042496176.7276.57.camel@opus> In-Reply-To: <1042496176.7276.57.camel@opus> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: on portal.bnap.hu by AMaViS X-archive-position: 226 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 226 Status: O seth vidal wrote: > On Mon, 2003-01-13 at 17:12, Timo Sirainen wrote: > >>On Mon, 2003-01-13 at 23:30, seth vidal wrote: >> >>>Timo, >>> I know that you're taking an effort to make sure that dovecot is >>>written securely, but I was wondering if you've asked any third party to >>>audit the code yet. I don't have the skills necessary to do this but I >>>bet there is someone out there who does and might be willing to do so. >> >>I don't really know who or where to ask. I'd be interested of getting >>people to audit Dovecot too. >> > > > > Would it be reasonable to ask on bugtraq? > > What about Chris Evans? - he wrote vsftpd and audited a bunch of Red > Hat's releases iirc. Maybe worth bugging him to see if he'd be willing > to look it over? if he do that, than everybody accept it as "secure".. -- Levente http://petition.eurolinux.org/index_html "The only thing worse than not knowing the truth is ruining the bliss of ignorance." From disco@pervert.ca Tue Jan 14 03:35:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 14 Jan 2003 03:35:36 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from iridium.pervert.ca (CPE0050bad0aa3e.cpe.net.cable.rogers.com [24.112.138.163]) by danu.procontrol.fi (Postfix) with ESMTP id 548F9238C3 for ; Tue, 14 Jan 2003 03:35:36 +0200 (EET) Received: from PHOTEK (photek.pervert.ca [192.168.1.100]) by iridium.pervert.ca (8.12.5/8.12.5) with ESMTP id h0DLSGOw031678 for ; Mon, 13 Jan 2003 21:28:20 GMT (envelope-from disco@pervert.ca) Reply-To: From: "Rick Stewart" To: Subject: [dovecot] Re: security audit of the code Date: Mon, 13 Jan 2003 20:37:15 -0500 Organization: Misc. Perversion Message-ID: <000001c2bb6d$78264ac0$6401a8c0@PHOTEK> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4024 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Importance: Normal In-Reply-To: <3E2344E8.1020008@bnap.hu> X-archive-position: 227 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: disco@pervert.ca Precedence: bulk X-list: dovecot X-UID: 227 Status: O Content-Length: 1439 I don't think that's the point. The point is to have some fresh eyes go over code that is thought to be secure. Once audited, it doesn't mean Its any more secure, but at least were on the way to cover any if not most angles. Cheers, ./r -----Original Message----- From: dovecot-bounce@procontrol.fi [mailto:dovecot-bounce@procontrol.fi] On Behalf Of Farkas Levente Sent: January 13, 2003 6:00 PM To: dovecot@procontrol.fi Subject: [dovecot] Re: security audit of the code seth vidal wrote: > On Mon, 2003-01-13 at 17:12, Timo Sirainen wrote: > >>On Mon, 2003-01-13 at 23:30, seth vidal wrote: >> >>>Timo, >>> I know that you're taking an effort to make sure that dovecot is >>>written securely, but I was wondering if you've asked any third party to >>>audit the code yet. I don't have the skills necessary to do this but I >>>bet there is someone out there who does and might be willing to do so. >> >>I don't really know who or where to ask. I'd be interested of getting >>people to audit Dovecot too. >> > > > > Would it be reasonable to ask on bugtraq? > > What about Chris Evans? - he wrote vsftpd and audited a bunch of Red > Hat's releases iirc. Maybe worth bugging him to see if he'd be willing > to look it over? if he do that, than everybody accept it as "secure".. -- Levente http://petition.eurolinux.org/index_html "The only thing worse than not knowing the truth is ruining the bliss of ignorance." From tss@iki.fi Tue Jan 14 13:07:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 14 Jan 2003 13:07:36 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2A4C7238C3 for ; Tue, 14 Jan 2003 13:07:36 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 027235E01F60; Tue, 14 Jan 2003 13:07:35 +0200 (EET) Subject: [dovecot] 0.99.6 buggy From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042542455.8610.117.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 14 Jan 2003 13:07:35 +0200 X-archive-position: 228 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 228 Status: O Just a note, the hash table code in it was still buggy. Especially with maildir it could leave the processes to infinite loop. Have to think a bit more how to fix this properly.. From tss@iki.fi Tue Jan 14 15:33:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 14 Jan 2003 15:33:16 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 28250238C3 for ; Tue, 14 Jan 2003 15:33:16 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 001A45E01F60; Tue, 14 Jan 2003 15:33:15 +0200 (EET) Subject: [dovecot] 0.99.7 out From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042551195.8610.160.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 14 Jan 2003 15:33:15 +0200 X-archive-position: 229 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 229 Status: O This one seems to be actually working. Also rewrote doc/index.txt in case someone is interested. From pekka.jalonen@mediatraffic.fi Wed Jan 15 09:49:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 15 Jan 2003 09:49:44 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from scan.mediatraffic.fi (scan.mediatraffic.fi [212.83.107.130]) by danu.procontrol.fi (Postfix) with ESMTP id BBCAC238C3 for ; Wed, 15 Jan 2003 09:49:44 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by scan.mediatraffic.fi (Postfix) with ESMTP id C2C9C1FD16; Wed, 15 Jan 2003 09:41:08 +0200 (EET) Received: from intra (intra.mediatraffic.fi [212.83.107.187]) by scan.mediatraffic.fi (Postfix) with ESMTP id 6364B1FD15; Wed, 15 Jan 2003 09:41:08 +0200 (EET) Received: from mediatraffic-1.mediatraffic.fi (unknown [192.168.0.5]) by intra (Postfix) with ESMTP id 2D73240A7; Wed, 15 Jan 2003 09:50:21 +0200 (EET) Message-Id: <5.2.0.9.0.20030115094314.02f263c8@beta.mediatraffic.fi> X-Sender: peja@beta.mediatraffic.fi (Unverified) X-Mailer: QUALCOMM Windows Eudora Version 5.2.0.9 Date: Wed, 15 Jan 2003 09:50:35 +0200 To: dovecot@procontrol.fi From: Pekka Jalonen Subject: [dovecot] Re: 0.99.7 out Cc: Timo Sirainen In-Reply-To: <1042551195.8610.160.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Virus-Scanned: on scan.mediatraffic.fi X-archive-position: 230 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: pekka.jalonen@mediatraffic.fi Precedence: bulk X-list: dovecot X-UID: 230 Status: O Content-Length: 1922 At 15:33 14.1.2003 +0200, Timo Sirainen wrote: >This one seems to be actually working. Deb-build failed (woody-debian) at vpopmail.c like parse errors. Source download from: deb-src http://src.braincells.com/debian woody/ Wchar-subscripts -Wformat=2 -Wbad-function-cast -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c userinfo-passwd-file.c gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I/home/vpopmail/include -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c userinfo-vpopmail.c userinfo-vpopmail.c:25: parse error before `AuthCookieReplyData' userinfo-vpopmail.c: In function `vpopmail_verify_plain': userinfo-vpopmail.c:37: `user' undeclared (first use in this function) userinfo-vpopmail.c:37: (Each undeclared identifier is reported only once userinfo-vpopmail.c:37: for each function it appears in.) userinfo-vpopmail.c:46: `reply' undeclared (first use in this function) userinfo-vpopmail.c:79: `password' undeclared (first use in this function) make[4]: *** [userinfo-vpopmail.o] Error 1 make[4]: Leaving directory `/root/deb2/dovecot-0.99.7/src/auth' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/root/deb2/dovecot-0.99.7/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/root/deb2/dovecot-0.99.7' make[1]: *** [all-recursive-am] Error 2 make[1]: Leaving directory `/root/deb2/dovecot-0.99.7' make: *** [build-stamp] Error 2 Build command 'cd dovecot-0.99.7 && dpkg-buildpackage -b -uc' failed. E: Child process failed -- Pekka Jalonen System Administrator Mediatraffic Oy Mobile: +358 400 519 905 Fax: +358 2 765 1195 Email: pekka.jalonen@mediatraffic.fi From jaldhar@debian.org Wed Jan 15 16:40:37 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 15 Jan 2003 16:40:37 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 8919D23837 for ; Wed, 15 Jan 2003 16:40:37 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 0E5D58138; Wed, 15 Jan 2003 09:40:36 -0500 (EST) Date: Wed, 15 Jan 2003 09:40:35 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: Pekka Jalonen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.7 out In-Reply-To: <5.2.0.9.0.20030115094314.02f263c8@beta.mediatraffic.fi> Message-ID: References: <5.2.0.9.0.20030115094314.02f263c8@beta.mediatraffic.fi> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 231 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 231 Status: O Content-Length: 2165 On Wed, 15 Jan 2003, Pekka Jalonen wrote: > At 15:33 14.1.2003 +0200, Timo Sirainen wrote: > >This one seems to be actually working. > > Deb-build failed (woody-debian) at vpopmail.c like parse errors. > Source download from: deb-src http://src.braincells.com/debian woody/ > > Wchar-subscripts -Wformat=2 -Wbad-function-cast -g -O2 -Wall -W > -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith > -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c userinfo-passwd-file.c > gcc -DHAVE_CONFIG_H -I. -I. -I../.. > -I../../src/lib -I/home/vpopmail/include -g -O2 -Wall -W > -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith > -Wchar-subscripts -Wformat=2 -Wbad-function-cast -g -O2 -Wall -W > -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith > -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c userinfo-vpopmail.c > userinfo-vpopmail.c:25: parse error before `AuthCookieReplyData' > userinfo-vpopmail.c: In function `vpopmail_verify_plain': > userinfo-vpopmail.c:37: `user' undeclared (first use in this function) > userinfo-vpopmail.c:37: (Each undeclared identifier is reported only once > userinfo-vpopmail.c:37: for each function it appears in.) > userinfo-vpopmail.c:46: `reply' undeclared (first use in this function) > userinfo-vpopmail.c:79: `password' undeclared (first use in this function) > make[4]: *** [userinfo-vpopmail.o] Error 1 > make[4]: Leaving directory `/root/deb2/dovecot-0.99.7/src/auth' > make[3]: *** [all-recursive] Error 1 > make[3]: Leaving directory `/root/deb2/dovecot-0.99.7/src' > make[2]: *** [all-recursive] Error 1 > make[2]: Leaving directory `/root/deb2/dovecot-0.99.7' > make[1]: *** [all-recursive-am] Error 2 > make[1]: Leaving directory `/root/deb2/dovecot-0.99.7' > make: *** [build-stamp] Error 2 > Build command 'cd dovecot-0.99.7 && dpkg-buildpackage -b -uc' failed. > E: Child process failed > > Hmm I just tried this and I can't reproduce the error. So there must be something in your local setup. Are you running pure woody? Nothing backported from sid? Did you make any changes to debian/rules? We should take this off-list. -- Jaldhar H. Vyas From tss@iki.fi Wed Jan 15 16:49:59 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 15 Jan 2003 16:49:59 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E594E23837 for ; Wed, 15 Jan 2003 16:49:58 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id A97385E01F60; Wed, 15 Jan 2003 16:49:58 +0200 (EET) Subject: [dovecot] Re: 0.99.7 out From: Timo Sirainen To: Pekka Jalonen Cc: dovecot@procontrol.fi In-Reply-To: <5.2.0.9.0.20030115094314.02f263c8@beta.mediatraffic.fi> References: <5.2.0.9.0.20030115094314.02f263c8@beta.mediatraffic.fi> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042642198.8610.173.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 15 Jan 2003 16:49:58 +0200 X-archive-position: 232 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 232 Status: O On Wed, 2003-01-15 at 09:50, Pekka Jalonen wrote: > At 15:33 14.1.2003 +0200, Timo Sirainen wrote: > >This one seems to be actually working. > > Deb-build failed (woody-debian) at vpopmail.c like parse errors. > Source download from: deb-src http://src.braincells.com/debian woody/ Yes, so it seems. This patch fixes it: Index: userinfo-vpopmail.c =================================================================== RCS file: /home/cvs/dovecot/src/auth/userinfo-vpopmail.c,v retrieving revision 1.12 diff -u -r1.12 userinfo-vpopmail.c --- userinfo-vpopmail.c 5 Jan 2003 13:09:51 -0000 1.12 +++ userinfo-vpopmail.c 15 Jan 2003 14:48:48 -0000 @@ -22,7 +22,7 @@ #define VPOPMAIL_LIMIT 81 static int vpopmail_verify_plain(const char *user, const char *password, - AuthCookieReplyData *reply) + struct auth_cookie_reply_data *reply) { char vpop_user[VPOPMAIL_LIMIT], vpop_domain[VPOPMAIL_LIMIT]; struct vqpasswd *vpw; From jaldhar@debian.org Fri Jan 17 05:11:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 17 Jan 2003 05:11:33 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 3B7D1238C3 for ; Fri, 17 Jan 2003 05:11:33 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 031428010 for ; Thu, 16 Jan 2003 22:11:34 -0500 (EST) Date: Thu, 16 Jan 2003 22:11:34 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.7 out In-Reply-To: <1042642198.8610.173.camel@hurina> Message-ID: References: <5.2.0.9.0.20030115094314.02f263c8@beta.mediatraffic.fi> <1042642198.8610.173.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 233 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 233 Status: O On Wed, 15 Jan 2003, Timo Sirainen wrote: > > Deb-build failed (woody-debian) at vpopmail.c like parse errors. > > Source download from: deb-src http://src.braincells.com/debian woody/ > > Yes, so it seems. This patch fixes it: > So I imagined the .debs I put up on my site?????? Weird. Very weird. Should I update the packages with the patch or will it be ok to wait for the next stable release? -- Jaldhar H. Vyas From mw@lanfear.com Fri Jan 17 07:56:49 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 17 Jan 2003 07:56:49 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from akira.lanfear.com (akira.lanfear.com [216.168.61.84]) by danu.procontrol.fi (Postfix) with SMTP id E0BDE238C3 for ; Fri, 17 Jan 2003 07:56:48 +0200 (EET) Received: (qmail 94368 invoked from network); 17 Jan 2003 05:56:47 -0000 Received: from localhost.lanfear.com (HELO localhost) (127.0.0.1) by localhost.lanfear.com with SMTP; 17 Jan 2003 05:56:47 -0000 Subject: [dovecot] Unable to Log in on FreeBSD server? From: Mark To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 16 Jan 2003 21:56:57 -0800 Message-Id: <1042783017.5740.9.camel@donburi> Mime-Version: 1.0 X-archive-position: 234 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mw@lanfear.com Precedence: bulk X-list: dovecot X-UID: 234 Status: O Content-Length: 1118 Hello! I recently compiled dovecot 0.99.7 on a FreeBSD 4.3 server, and have been having problems with logging in and password authentication. a. I can't seem to get it to compile MD5 support -- it only seems to support plain, plain-file, and pam. b. Whenever I try to log in, I always get something along the following lines in /var/log/messages .... Jan 16 17:52:15 akira imap-login: close(master) failed: Bad file descriptor Jan 16 17:55:33 akira imap-auth: Userinfo pam doesn't support DIGEST-MD5 method Jan 16 18:08:28 akira imap-master: Login process died too early - shutting down (I also included one about MD5 in there too! :-)) Basically, the imap-login process is dying every time I try to do a login from a remote machine (I've tried Evolution and Outlook Express ....) I've tried telling it to use port 143 and port 993 (where it correctly generates a warning about a certificate that it can't verify, since i created that certificate with mkcert.sh ) Is there something I haven't configured correctly? The only things I've changed in dovecot.conf are: Any suggestions? Thanks, Marc. From tss@iki.fi Fri Jan 17 13:59:12 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 17 Jan 2003 13:59:12 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 177EE238C3 for ; Fri, 17 Jan 2003 13:59:12 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id DAEB05E01F60; Fri, 17 Jan 2003 13:59:11 +0200 (EET) Subject: [dovecot] Re: 0.99.7 out From: Timo Sirainen To: "Jaldhar H. Vyas" Cc: dovecot@procontrol.fi In-Reply-To: References: <5.2.0.9.0.20030115094314.02f263c8@beta.mediatraffic.fi> <1042642198.8610.173.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042804751.8602.222.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Jan 2003 13:59:11 +0200 X-archive-position: 235 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 235 Status: O On Fri, 2003-01-17 at 05:11, Jaldhar H. Vyas wrote: > On Wed, 15 Jan 2003, Timo Sirainen wrote: > > > > Deb-build failed (woody-debian) at vpopmail.c like parse errors. > > > Source download from: deb-src http://src.braincells.com/debian woody/ > > > > Yes, so it seems. This patch fixes it: > > > > So I imagined the .debs I put up on my site?????? > > Weird. Very weird. > > Should I update the packages with the patch or will it be ok to wait for > the next stable release? You just didn't build the debs with vpopmail support. Probably shouldn't either, it'd require extra libraries to be linked with. From tss@iki.fi Fri Jan 17 14:06:50 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 17 Jan 2003 14:06:50 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2C6C323837 for ; Fri, 17 Jan 2003 14:06:50 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id EB70D5E01F60; Fri, 17 Jan 2003 14:06:49 +0200 (EET) Subject: [dovecot] Re: Unable to Log in on FreeBSD server? From: Timo Sirainen To: Mark Cc: dovecot@procontrol.fi In-Reply-To: <1042783017.5740.9.camel@donburi> References: <1042783017.5740.9.camel@donburi> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042805209.8610.230.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Jan 2003 14:06:49 +0200 X-archive-position: 236 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 236 Status: O On Fri, 2003-01-17 at 07:56, Mark wrote: > I recently compiled dovecot 0.99.7 on a FreeBSD 4.3 server, and have > been having problems with logging in and password authentication. > > a. I can't seem to get it to compile MD5 support -- it only seems to > support plain, plain-file, and pam. Do you mean Digest-MD5? That's an authentication mechanism, like plain. PAM and passwd-file are different things, they're used to check if password is correct. > b. Whenever I try to log in, I always get something along the following > lines in /var/log/messages .... > > > Jan 16 17:55:33 akira imap-auth: Userinfo pam doesn't support DIGEST-MD5 > method PAM and Digest-MD5 can't work together, so it complains. Digest-MD5 requires that the passwords are stored in special format, currently supported only by passwd-file. From tss@iki.fi Fri Jan 17 14:37:32 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 17 Jan 2003 14:37:32 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 56AA923837 for ; Fri, 17 Jan 2003 14:37:32 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 239435E01F60; Fri, 17 Jan 2003 14:37:32 +0200 (EET) Subject: [dovecot] Plain auth broken From: Timo Sirainen To: james broermann Cc: dovecot@procontrol.fi In-Reply-To: <1042805732.8610.235.camel@hurina> References: <1042509723.8609.113.camel@hurina> <1042592701.8610.171.camel@hurina> <1042668222.8602.203.camel@hurina> <1042805732.8610.235.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042807051.8610.243.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Jan 2003 14:37:32 +0200 X-archive-position: 237 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 237 Status: O On Fri, 2003-01-17 at 14:15, Timo Sirainen wrote: > On Thu, 2003-01-16 at 03:31, james broermann wrote: > > pine still doesn't want to work. It does detect that the server is using > > plain text passwords. I'll try the sniffer and see what turns up. > > Whops, you're right. I've tested pine only with digest-md5 > authentication before. Looks like my PLAIN authentication isn't working > properly. Normally other clients just use LOGIN command which is > different. Patch is now available at http://dovecot.procontrol.fi/ From pekka.jalonen@mediatraffic.fi Fri Jan 17 18:02:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 17 Jan 2003 18:02:30 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mx1.lansilinkki.net (mx1.lansilinkki.net [212.83.96.242]) by danu.procontrol.fi (Postfix) with ESMTP id D8FE323837 for ; Fri, 17 Jan 2003 18:02:30 +0200 (EET) Received: from zool.mediatraffic.fi (xdsl-228.mediatraffic.fi [212.83.107.228]) by mx1.lansilinkki.net (8.11.4/8.11.2) with ESMTP id h0HG2Gf18256; Fri, 17 Jan 2003 18:02:16 +0200 (EET) Message-Id: <5.2.0.9.0.20030117175726.00d42988@beta.mediatraffic.fi> X-Sender: peja@beta.mediatraffic.fi X-Mailer: QUALCOMM Windows Eudora Version 5.2.0.9 Date: Fri, 17 Jan 2003 18:02:17 +0200 To: Timo Sirainen , "Jaldhar H. Vyas" From: Pekka Jalonen Subject: [dovecot] Re: 0.99.7 out Cc: dovecot@procontrol.fi In-Reply-To: <1042804751.8602.222.camel@hurina> References: <5.2.0.9.0.20030115094314.02f263c8@beta.mediatraffic.fi> <1042642198.8610.173.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-archive-position: 238 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: pekka.jalonen@mediatraffic.fi Precedence: bulk X-list: dovecot X-UID: 238 Status: O At 13:59 17.1.2003 +0200, Timo Sirainen wrote: >On Fri, 2003-01-17 at 05:11, Jaldhar H. Vyas wrote: > > On Wed, 15 Jan 2003, Timo Sirainen wrote: > > > > > > Deb-build failed (woody-debian) at vpopmail.c like parse errors. > > > > Source download from: deb-src http://src.braincells.com/debian woody/ > > > > > > Yes, so it seems. This patch fixes it: > > > > > > > So I imagined the .debs I put up on my site?????? > > > > Weird. Very weird. > > > > Should I update the packages with the patch or will it be ok to wait for > > the next stable release? > >You just didn't build the debs with vpopmail support. Probably shouldn't >either, it'd require extra libraries to be linked with. I build my own debs so configure found vpopmail libs.... 'checking for vpopmail configuration at /home/vpopmail/etc/lib_deps... found' Hmm what extra libs I need to build to deb-packages? -- peja From jaldhar@debian.org Fri Jan 17 18:08:35 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 17 Jan 2003 18:08:35 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 7CFF923837 for ; Fri, 17 Jan 2003 18:08:35 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 0A1628010; Fri, 17 Jan 2003 11:08:34 -0500 (EST) Date: Fri, 17 Jan 2003 11:08:34 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: Pekka Jalonen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.7 out In-Reply-To: <5.2.0.9.0.20030117175726.00d42988@beta.mediatraffic.fi> Message-ID: References: <5.2.0.9.0.20030115094314.02f263c8@beta.mediatraffic.fi> <1042642198.8610.173.camel@hurina> <5.2.0.9.0.20030117175726.00d42988@beta.mediatraffic.fi> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 239 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 239 Status: O On Fri, 17 Jan 2003, Pekka Jalonen wrote: > > I build my own debs so configure found vpopmail libs.... > > 'checking for vpopmail configuration at /home/vpopmail/etc/lib_deps... found' > Ok now I understand. > Hmm what extra libs I need to build to deb-packages? > I think Timo meant there would have to be an extra dependency on libvpopmail1. I don't want to do that for the main dovecot package as for most people it would just be extra bloat but I'll consider making an extra dovecot-vpopmail package. That will have to wait for -3 though as new packages cause a delay in entering the archive and I want to get -2 with the patches installed quickly. -- Jaldhar H. Vyas From james@hwr.arizona.edu Fri Jan 17 23:52:23 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 17 Jan 2003 23:52:23 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail1.hwr.arizona.edu (mail1.hwr.Arizona.EDU [128.196.72.31]) by danu.procontrol.fi (Postfix) with ESMTP id 39F83238C3 for ; Fri, 17 Jan 2003 23:52:23 +0200 (EET) Received: from mail1 (localhost [127.0.0.1]) by mail1.hwr.arizona.edu (8.12.7/8.12.7) with ESMTP id h0HLqBXW021558 for ; Fri, 17 Jan 2003 14:52:11 -0700 (MST) Date: Fri, 17 Jan 2003 14:48:23 -0700 (MST) From: james broermann To: dovecot@procontrol.fi Subject: [dovecot] mbox & Maildir Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 240 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: james@hwr.arizona.edu Precedence: bulk X-list: dovecot X-UID: 240 Status: O Hi, Is it possible for a client to read both mbox and Maildir formats from one server running dovecot? Without changing default_mail_env in dovecot.conf, Maildir folders are working ... they're located in ~/Maildir. No /var/mail/username exists. I have mbox format folders in ~/mail and have been trying to get pine to find them by adding pine folder collections. I always end up back in ~/Maildir, though. Thanks, Jim From tss@iki.fi Sat Jan 18 02:05:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 18 Jan 2003 02:05:51 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AA7B523837 for ; Sat, 18 Jan 2003 02:05:51 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 6EB675E01F60; Sat, 18 Jan 2003 02:05:50 +0200 (EET) Subject: [dovecot] Re: mbox & Maildir From: Timo Sirainen To: james broermann Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042848350.11439.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 18 Jan 2003 02:05:50 +0200 X-archive-position: 241 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 241 Status: O On Fri, 2003-01-17 at 23:48, james broermann wrote: > Is it possible for a client to read both mbox and Maildir formats from one > server running dovecot? > > Without changing default_mail_env in dovecot.conf, Maildir folders are > working ... they're located in ~/Maildir. No /var/mail/username exists. I > have mbox format folders in ~/mail and have been trying to get pine to find > them by adding pine folder collections. I always end up back in ~/Maildir, > though. Within same session it's currently not possible to use both mbox and maildir folders. Different users could access both mbox and maildir with the autodetection code (~/Maildir if exists, fallbacks to ~/mail). Accessing both with same user would mostly be a configuration and namespace issue. I'd rather not add code for those before supporting shared folders. From amyzing@talsever.com Sat Jan 18 19:01:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 18 Jan 2003 19:01:48 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mclean.mail.mindspring.net (mclean.mail.mindspring.net [207.69.200.57]) by danu.procontrol.fi (Postfix) with ESMTP id 42811238C3 for ; Sat, 18 Jan 2003 19:01:48 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by mclean.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18ZwLk-0004BY-00; Sat, 18 Jan 2003 12:01:40 -0500 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id 976628044; Sat, 18 Jan 2003 12:03:30 -0500 (EST) Date: Sat, 18 Jan 2003 12:01:37 -0500 From: Amelia A.Lewis To: Timo Sirainen Cc: james@hwr.arizona.edu, dovecot@procontrol.fi Subject: [dovecot] Re: Plain auth broken Message-Id: <20030118120137.794e417b.amyzing@talsever.com> In-Reply-To: <1042807051.8610.243.camel@hurina> References: <1042509723.8609.113.camel@hurina> <1042592701.8610.171.camel@hurina> <1042668222.8602.203.camel@hurina> <1042805732.8610.235.camel@hurina> <1042807051.8610.243.camel@hurina> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.8.8 (GTK+ 1.2.10; i386-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 242 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 242 Status: O Content-Length: 1201 On 17 Jan 2003 14:37:32 +0200 Timo Sirainen wrote: > On Fri, 2003-01-17 at 14:15, Timo Sirainen wrote: > > On Thu, 2003-01-16 at 03:31, james broermann wrote: > > > pine still doesn't want to work. It does detect that the server > > > is using plain text passwords. I'll try the sniffer and see what > > > turns up. > > > > Whops, you're right. I've tested pine only with digest-md5 > > authentication before. Looks like my PLAIN authentication isn't > > working properly. Normally other clients just use LOGIN command > > which is different. > > Patch is now available at http://dovecot.procontrol.fi/ Hmm. I'm running the debian package 0.99.7-2. If I turn off SSL, and allow plaintext, I can log in. If I turn SSL on (comment out ssl_diable = yes), then I can't. It was working in 0.99.6, I know. Same situation using 0.99.7-1 alpha (it takes longer for alpha builds to make it into debian). I can provide more information, as necessary. All that's logged is "disconnected for inactivity". Monitoring via tcpdump doesn't seem too useful, given that TLS is negotiated. Amy! -- Amelia A. Lewis amyzing {at} talsever.com Igne natura renovatur integra. From mw@lanfear.com Sat Jan 18 21:56:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 18 Jan 2003 21:56:28 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from akira.lanfear.com (akira.lanfear.com [216.168.61.84]) by danu.procontrol.fi (Postfix) with SMTP id D1D83238C3 for ; Sat, 18 Jan 2003 21:56:27 +0200 (EET) Received: (qmail 17378 invoked from network); 18 Jan 2003 19:56:25 -0000 Received: from localhost.lanfear.com (HELO localhost) (127.0.0.1) by localhost.lanfear.com with SMTP; 18 Jan 2003 19:56:25 -0000 Subject: [dovecot] Re: Unable to Log in on FreeBSD server? From: Mark To: Timo Sirainen Cc: dovecot@procontrol.fi In-Reply-To: <1042805209.8610.230.camel@hurina> References: <1042783017.5740.9.camel@donburi> <1042805209.8610.230.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 18 Jan 2003 11:56:33 -0800 Message-Id: <1042919794.7750.17.camel@donburi> Mime-Version: 1.0 X-archive-position: 243 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mw@lanfear.com Precedence: bulk X-list: dovecot X-UID: 243 Status: O Content-Length: 1616 I was more just asking about the other problems (I can worry about MD5 later ...). Even with the 99.7-2 patch, I cannot get any logins to work to my server. I always get the "Authentication process died" message on my client, and messages in my /var/log/mess such as: Jan 16 17:52:15 akira imap-login: close(master) failed: Bad file descriptor Jan 16 18:08:28 akira imap-master: Login process died too early - shutting down - I can only connect to port 993, not 143 - I have the following changes in my dovecot.conf: default_mail_env = mbox:~/.imapmail:INBOX=~/Mailbox # (incoming mail is ~/Mailbox, I want mail in ~/.imapmail) Any ideas at all? Thanks much! ciao, mark. On Fri, 2003-01-17 at 04:06, Timo Sirainen wrote: > On Fri, 2003-01-17 at 07:56, Mark wrote: > > I recently compiled dovecot 0.99.7 on a FreeBSD 4.3 server, and have > > been having problems with logging in and password authentication. > > > > a. I can't seem to get it to compile MD5 support -- it only seems to > > support plain, plain-file, and pam. > > Do you mean Digest-MD5? That's an authentication mechanism, like plain. > PAM and passwd-file are different things, they're used to check if > password is correct. > > > b. Whenever I try to log in, I always get something along the following > > lines in /var/log/messages .... > > > > > > Jan 16 17:55:33 akira imap-auth: Userinfo pam doesn't support DIGEST-MD5 > > method > > PAM and Digest-MD5 can't work together, so it complains. Digest-MD5 > requires that the passwords are stored in special format, currently > supported only by passwd-file. > > > From tss@iki.fi Sat Jan 18 22:20:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 18 Jan 2003 22:20:56 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2A51823837 for ; Sat, 18 Jan 2003 22:20:56 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 7F92E5E01F96; Sat, 18 Jan 2003 22:20:55 +0200 (EET) Subject: [dovecot] Re: Unable to Log in on FreeBSD server? From: Timo Sirainen To: Mark Cc: dovecot@procontrol.fi In-Reply-To: <1042919794.7750.17.camel@donburi> References: <1042783017.5740.9.camel@donburi> <1042805209.8610.230.camel@hurina> <1042919794.7750.17.camel@donburi> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1042921255.11444.64.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 18 Jan 2003 22:20:55 +0200 X-archive-position: 244 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 244 Status: O On Sat, 2003-01-18 at 21:56, Mark wrote: > Jan 16 17:52:15 akira imap-login: close(master) failed: Bad file > descriptor > Jan 16 18:08:28 akira imap-master: Login process died too early - > shutting down Well, if those happen all the time, it's not because of the configuration. FreeBSD 4.3 is a bit old, but I'd think it supports everything that Dovecot wants. Hard to say, that'd require some debugging with the system.. > "Authentication process died" message on my client, and messages in my > /var/log/mess such as: It doesn't say anything about auth process in log files? From mw@lanfear.com Sun Jan 19 05:36:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 19 Jan 2003 05:36:30 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from akira.lanfear.com (akira.lanfear.com [216.168.61.84]) by danu.procontrol.fi (Postfix) with SMTP id 39576238C3 for ; Sun, 19 Jan 2003 05:36:29 +0200 (EET) Received: (qmail 25432 invoked from network); 19 Jan 2003 03:36:27 -0000 Received: from localhost.lanfear.com (HELO localhost) (127.0.0.1) by localhost.lanfear.com with SMTP; 19 Jan 2003 03:36:27 -0000 Subject: [dovecot] Re: Unable to Log in on FreeBSD server? From: Mark To: Timo Sirainen Cc: dovecot@procontrol.fi In-Reply-To: <1042921255.11444.64.camel@hurina> References: <1042783017.5740.9.camel@donburi> <1042805209.8610.230.camel@hurina> <1042919794.7750.17.camel@donburi> <1042921255.11444.64.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 18 Jan 2003 19:36:43 -0800 Message-Id: <1042947403.1373.4.camel@donburi> Mime-Version: 1.0 X-archive-position: 245 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mw@lanfear.com Precedence: bulk X-list: dovecot X-UID: 245 Status: O Content-Length: 1263 I recently recompiled with --enable-asserts and --enable-debug, and I when trying to log in to either port 143 or port 993 using Outlook Express, the following happens: 1. Outlook Express complains that the authentication failed with "Login Process died unexpectedly" 2. The imap-master and all other processes die on my FreeBSD machine. 3. I see the following in the logs: Jan 18 19:32:21 akira imap-master: Login process died too early - shutting down That's it. Btw -- FreeBSD 4.3 isn't all that old -- perhaps 18 months. I've had uptimes longer than that !! :-) ciao, mark. On Sat, 2003-01-18 at 12:20, Timo Sirainen wrote: > On Sat, 2003-01-18 at 21:56, Mark wrote: > > Jan 16 17:52:15 akira imap-login: close(master) failed: Bad file > > descriptor > > Jan 16 18:08:28 akira imap-master: Login process died too early - > > shutting down > > Well, if those happen all the time, it's not because of the > configuration. FreeBSD 4.3 is a bit old, but I'd think it supports > everything that Dovecot wants. Hard to say, that'd require some > debugging with the system.. > > > "Authentication process died" message on my client, and messages in my > > /var/log/mess such as: > > It doesn't say anything about auth process in log files? > > > From tss@iki.fi Tue Jan 21 09:43:08 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 21 Jan 2003 09:43:08 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7D3AA238C5 for ; Tue, 21 Jan 2003 09:43:07 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id BE12C5E01F96; Tue, 21 Jan 2003 09:43:06 +0200 (EET) Subject: [dovecot] Re: Plain auth broken From: Timo Sirainen To: "Amelia A.Lewis" Cc: dovecot@procontrol.fi In-Reply-To: <20030118120137.794e417b.amyzing@talsever.com> References: <1042509723.8609.113.camel@hurina> <1042592701.8610.171.camel@hurina> <1042668222.8602.203.camel@hurina> <1042805732.8610.235.camel@hurina> <1042807051.8610.243.camel@hurina> <20030118120137.794e417b.amyzing@talsever.com> Content-Type: multipart/mixed; boundary="=-Jf/Oz1qqyUMq6k680+bK" Organization: Message-Id: <1043134986.11439.337.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 21 Jan 2003 09:43:06 +0200 X-archive-position: 246 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 246 Status: O Content-Length: 15348 --=-Jf/Oz1qqyUMq6k680+bK Content-Type: text/plain Content-Transfer-Encoding: 7bit On Sat, 2003-01-18 at 19:01, Amelia A.Lewis wrote: > I'm running the debian package 0.99.7-2. If I turn off SSL, and allow > plaintext, I can log in. If I turn SSL on (comment out ssl_diable = > yes), then I can't. It was working in 0.99.6, I know. If it was working in .6, I can't think of what could have broken. But here's a patch for more verbose logging if "auth_verbose = yes" in config file. --=-Jf/Oz1qqyUMq6k680+bK Content-Disposition: attachment; filename=verbose.diff Content-Type: text/x-patch; name=verbose.diff; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable diff -ru dovecot-0.99.7/src/auth/auth-digest-md5.c dovecot-0.99.7p1/src/aut= h/auth-digest-md5.c --- dovecot-0.99.7/src/auth/auth-digest-md5.c 2003-01-11 21:55:56.000000000= +0200 +++ dovecot-0.99.7p1/src/auth/auth-digest-md5.c 2003-01-21 09:39:28.0000000= 00 +0200 @@ -195,8 +195,14 @@ =20 if (i =3D=3D 0) { /* verify response */ - if (memcmp(response_hex, auth->response, 32) !=3D 0) + if (memcmp(response_hex, auth->response, 32) !=3D 0) { + if (verbose) { + i_info("digest-md5(%s): " + "password mismatch", + auth->username); + } return FALSE; + } } else { auth->rspauth =3D p_strconcat(auth->pool, "rspauth=3D", response_hex, NULL); @@ -506,7 +512,7 @@ auth->qop_value =3D p_strdup(auth->pool, "auth"); =20 if (!failed && !verify_auth(auth)) { - *error =3D "Authentication failed"; + *error =3D NULL; failed =3D TRUE; } =20 @@ -557,6 +563,11 @@ return; } =20 + if (error =3D=3D NULL) + error =3D "Authentication failed"; + else if (verbose) + i_info("digest-md5: %s", error); + /* failed */ reply.result =3D AUTH_RESULT_FAILURE; callback(&reply, error, context); diff -ru dovecot-0.99.7/src/auth/common.h dovecot-0.99.7p1/src/auth/common.= h --- dovecot-0.99.7/src/auth/common.h 2003-01-05 15:09:51.000000000 +0200 +++ dovecot-0.99.7p1/src/auth/common.h 2003-01-21 09:39:28.000000000 +0200 @@ -8,5 +8,6 @@ #define LOGIN_LISTEN_FD 3 =20 extern struct ioloop *ioloop; +extern int verbose; =20 #endif diff -ru dovecot-0.99.7/src/auth/login-connection.c dovecot-0.99.7p1/src/au= th/login-connection.c --- dovecot-0.99.7/src/auth/login-connection.c 2003-01-05 17:19:50.00000000= 0 +0200 +++ dovecot-0.99.7p1/src/auth/login-connection.c 2003-01-21 09:39:28.000000= 000 +0200 @@ -84,6 +84,10 @@ login_connection_destroy(conn); } else { conn->pid =3D rec.pid; + if (verbose) { + i_info("Login process %d sent handshake: PID %s", + conn->fd, dec2str(conn->pid)); + } } } =20 @@ -173,6 +177,9 @@ { struct login_connection *conn; =20 + if (verbose) + i_info("Login process %d connected", fd); + conn =3D i_new(struct login_connection, 1); =20 conn->fd =3D fd; @@ -199,6 +206,9 @@ { struct login_connection **pos; =20 + if (verbose) + i_info("Login process %d disconnected", conn->fd); + for (pos =3D &connections; *pos !=3D NULL; pos =3D &(*pos)->next) { if (*pos =3D=3D conn) { *pos =3D conn->next; diff -ru dovecot-0.99.7/src/auth/main.c dovecot-0.99.7p1/src/auth/main.c --- dovecot-0.99.7/src/auth/main.c 2003-01-08 23:13:05.000000000 +0200 +++ dovecot-0.99.7p1/src/auth/main.c 2003-01-21 09:39:28.000000000 +0200 @@ -17,6 +17,8 @@ #include =20 struct ioloop *ioloop; +int verbose =3D FALSE; + static struct io *io_listen; =20 static void sig_quit(int signo __attr_unused__) @@ -69,6 +71,8 @@ { lib_init_signals(sig_quit); =20 + verbose =3D getenv("VERBOSE") !=3D NULL; + auth_init(); cookies_init(); login_connections_init(); diff -ru dovecot-0.99.7/src/auth/userinfo-pam.c dovecot-0.99.7p1/src/auth/u= serinfo-pam.c --- dovecot-0.99.7/src/auth/userinfo-pam.c 2003-01-05 15:09:51.000000000 +0= 200 +++ dovecot-0.99.7p1/src/auth/userinfo-pam.c 2003-01-21 09:39:28.000000000 = +0200 @@ -148,25 +148,45 @@ return PAM_SUCCESS; } =20 -static int pam_auth(pam_handle_t *pamh) +static int pam_auth(pam_handle_t *pamh, const char *user) { char *item; int status; =20 - if ((status =3D pam_authenticate(pamh, 0)) !=3D PAM_SUCCESS) + if ((status =3D pam_authenticate(pamh, 0)) !=3D PAM_SUCCESS) { + if (verbose) { + i_info("PAM: pam_authenticate(%s) failed: %s", + user, pam_strerror(pamh, status)); + } return status; + } =20 #ifdef HAVE_PAM_SETCRED - if ((status =3D pam_setcred(pamh, PAM_ESTABLISH_CRED)) !=3D PAM_SUCCESS) + if ((status =3D pam_setcred(pamh, PAM_ESTABLISH_CRED)) !=3D PAM_SUCCESS) = { + if (verbose) { + i_info("PAM: pam_setcred(%s) failed: %s", + user, pam_strerror(pamh, status)); + } return status; + } #endif =20 - if ((status =3D pam_acct_mgmt(pamh, 0)) !=3D PAM_SUCCESS) + if ((status =3D pam_acct_mgmt(pamh, 0)) !=3D PAM_SUCCESS) { + if (verbose) { + i_info("PAM: pam_acct_mgmt(%s) failed: %s", + user, pam_strerror(pamh, status)); + } return status; + } =20 status =3D pam_get_item(pamh, PAM_USER, (linux_const void **)&item); - if (status !=3D PAM_SUCCESS) + if (status !=3D PAM_SUCCESS) { + if (verbose) { + i_info("PAM: pam_get_item(%s) failed: %s", + user, pam_strerror(pamh, status)); + } return status; + } =20 return PAM_SUCCESS; } @@ -187,12 +207,18 @@ userpass.pass =3D password; =20 status =3D pam_start(service_name, user, &conv, &pamh); - if (status !=3D PAM_SUCCESS) + if (status !=3D PAM_SUCCESS) { + if (verbose) { + i_info("PAM: pam_start(%s) failed: %s", + user, pam_strerror(pamh, status)); + } return FALSE; + } =20 - status =3D pam_auth(pamh); + status =3D pam_auth(pamh, user); if ((status2 =3D pam_end(pamh, status)) !=3D PAM_SUCCESS) { - i_error("pam_end() failed: %s", pam_strerror(pamh, status2)); + i_error("pam_end(%s) failed: %s", + user, pam_strerror(pamh, status2)); return FALSE; } =20 @@ -201,8 +227,10 @@ =20 /* password ok, save the user info */ pw =3D getpwnam(user); - if (pw =3D=3D NULL) + if (pw =3D=3D NULL) { + i_error("PAM: getpwnam(%s) failed: %m", user); return FALSE; + } =20 safe_memset(pw->pw_passwd, 0, strlen(pw->pw_passwd)); passwd_fill_cookie_reply(pw, reply); diff -ru dovecot-0.99.7/src/auth/userinfo-passwd-file.c dovecot-0.99.7p1/sr= c/auth/userinfo-passwd-file.c --- dovecot-0.99.7/src/auth/userinfo-passwd-file.c 2003-01-11 21:55:56.0000= 00000 +0200 +++ dovecot-0.99.7p1/src/auth/userinfo-passwd-file.c 2003-01-21 09:39:28.00= 0000000 +0200 @@ -67,8 +67,11 @@ strlen(pu->realm) - 1); =20 pw =3D getpwnam(user); - if (pw =3D=3D NULL) + if (pw =3D=3D NULL) { + i_error("passwd-file(%s): missing info and " + "not found with getpwnam()", user); return FALSE; + } =20 passwd_fill_cookie_reply(pw, reply); } @@ -115,21 +118,35 @@ =20 /* find it from all realms */ pu =3D hash_lookup(passwd_file->users, user); - if (pu =3D=3D NULL) + if (pu =3D=3D NULL) { + if (verbose) + i_info("passwd-file(%s): unknown user", user); return FALSE; + } =20 /* verify that password matches */ switch (pu->password_type) { case PASSWORD_DES: - if (strcmp(mycrypt(password, pu->password), pu->password) !=3D 0) + if (strcmp(mycrypt(password, pu->password), + pu->password) !=3D 0) { + if (verbose) { + i_info("passwd-file(%s): DES password mismatch", + user); + } return FALSE; + } break; case PASSWORD_MD5: md5_get_digest(password, strlen(password), digest); str =3D binary_to_hex(digest, sizeof(digest)); =20 - if (strcmp(str, pu->password) !=3D 0) + if (strcmp(str, pu->password) !=3D 0) { + if (verbose) { + i_info("passwd-file(%s): MD5 password mismatch", + user); + } return FALSE; + } break; case PASSWORD_DIGEST_MD5: /* user:realm:passwd */ @@ -140,8 +157,13 @@ md5_get_digest(str, strlen(str), digest); str =3D binary_to_hex(digest, sizeof(digest)); =20 - if (strcmp(str, pu->password) !=3D 0) + if (strcmp(str, pu->password) !=3D 0) { + if (verbose) { + i_info("passwd-file(%s): " + "DIGEST-MD5 password mismatch", user); + } return FALSE; + } break; default: i_unreached(); @@ -167,16 +189,22 @@ t_strconcat(user, ":", realm, NULL); =20 pu =3D hash_lookup(passwd_file->users, id); - if (pu =3D=3D NULL) + if (pu =3D=3D NULL) { + if (verbose) + i_info("passwd-file(%s): unknown user", user); return FALSE; + } =20 /* found */ i_assert(strlen(pu->password) =3D=3D 32); =20 buf =3D buffer_create_data(data_stack_pool, digest, 16); - if (!hex_to_binary(pu->password, buf)) + if (!hex_to_binary(pu->password, buf)) { + if (verbose) + i_info("passwd-file(%s): invalid password field", user); return FALSE; -=09 + } + return get_reply_data(pu, reply); } =20 diff -ru dovecot-0.99.7/src/auth/userinfo-passwd.c dovecot-0.99.7p1/src/aut= h/userinfo-passwd.c --- dovecot-0.99.7/src/auth/userinfo-passwd.c 2003-01-05 15:09:51.000000000= +0200 +++ dovecot-0.99.7p1/src/auth/userinfo-passwd.c 2003-01-21 09:39:28.0000000= 00 +0200 @@ -37,8 +37,21 @@ int result; =20 pw =3D getpwnam(user); - if (pw =3D=3D NULL || !IS_VALID_PASSWD(pw->pw_passwd)) + if (pw =3D=3D NULL) { + if (errno !=3D 0) + i_error("getpwnam(%s) failed: %m", user); + else if (verbose) + i_info("passwd(%s): unknown user", user); return FALSE; + } + + if (!IS_VALID_PASSWD(pw->pw_passwd)) { + if (verbose) { + i_info("passwd(%s): invalid password field '%s'", + user, pw->pw_passwd); + } + return FALSE; + } =20 /* check if the password is valid */ result =3D strcmp(mycrypt(password, pw->pw_passwd), pw->pw_passwd) =3D=3D= 0; @@ -46,8 +59,11 @@ /* clear the passwords from memory */ safe_memset(pw->pw_passwd, 0, strlen(pw->pw_passwd)); =20 - if (!result) + if (!result) { + if (verbose) + i_info("passwd(%s): password mismatch", user); return FALSE; + } =20 /* password ok, save the user info */ passwd_fill_cookie_reply(pw, reply); diff -ru dovecot-0.99.7/src/auth/userinfo-shadow.c dovecot-0.99.7p1/src/aut= h/userinfo-shadow.c --- dovecot-0.99.7/src/auth/userinfo-shadow.c 2003-01-05 15:09:51.000000000= +0200 +++ dovecot-0.99.7p1/src/auth/userinfo-shadow.c 2003-01-21 09:39:28.0000000= 00 +0200 @@ -23,8 +23,21 @@ int result; =20 spw =3D getspnam(user); - if (spw =3D=3D NULL || !IS_VALID_PASSWD(spw->sp_pwdp)) + if (spw =3D=3D NULL) { + if (errno !=3D 0) + i_error("getspnam(%s) failed: %m", user); + else if (verbose) + i_info("shadow(%s): unknown user", user); return FALSE; + } + + if (!IS_VALID_PASSWD(spw->sp_pwdp)) { + if (verbose) { + i_info("shadow(%s): invalid password field '%s'", + user, spw->sp_pwdp); + } + return FALSE; + } =20 /* check if the password is valid */ result =3D strcmp(mycrypt(password, spw->sp_pwdp), spw->sp_pwdp) =3D=3D 0= ; @@ -32,13 +45,18 @@ /* clear the passwords from memory */ safe_memset(spw->sp_pwdp, 0, strlen(spw->sp_pwdp)); =20 - if (!result) + if (!result) { + if (verbose) + i_info("shadow(%s): password mismatch", user); return FALSE; + } =20 /* password ok, save the user info */ pw =3D getpwnam(user); - if (pw =3D=3D NULL) + if (pw =3D=3D NULL) { + i_error("shadow(%s): getpwnam() failed: %m", user); return FALSE; + } =20 passwd_fill_cookie_reply(pw, reply); return TRUE; diff -ru dovecot-0.99.7/src/auth/userinfo-vpopmail.c dovecot-0.99.7p1/src/a= uth/userinfo-vpopmail.c --- dovecot-0.99.7/src/auth/userinfo-vpopmail.c 2003-01-05 15:09:51.0000000= 00 +0200 +++ dovecot-0.99.7p1/src/auth/userinfo-vpopmail.c 2003-01-21 09:39:28.00000= 0000 +0200 @@ -14,8 +14,6 @@ #include #include =20 -#define I_DEBUG(x) /* i_warning x */ - /* Limit user and domain to 80 chars each (+1 for \0). I wouldn't recommen= d raising this limit at least much, vpopmail is full of potential buffer overflows. */ @@ -36,7 +34,8 @@ =20 if (parse_email(t_strdup_noconst(user), vpop_user, vpop_domain, sizeof(vpop_user)-1) < 0) { - I_DEBUG(("vpopmail: parse_email(%s) failed", user)); + if (verbose) + i_info("vpopmail(%s): parse_email() failed", user); return FALSE; } =20 @@ -44,19 +43,25 @@ struct vqpasswd isn't really gid at all but just some flags... */ if (vget_assign(vpop_domain, NULL, 0, &reply->uid, &reply->gid) =3D=3D NULL) { - I_DEBUG(("vpopmail: vget_assign(%s) failed", vpop_domain)); + if (verbose) { + i_info("vpopmail(%s): vget_assign(%s) failed", + user, vpop_domain); + } return FALSE; } =20 vpw =3D vauth_getpw(vpop_user, vpop_domain); if (vpw !=3D NULL && (vpw->pw_dir =3D=3D NULL || vpw->pw_dir[0] =3D=3D '\= 0')) { /* user's homedir doesn't exist yet, create it */ - I_DEBUG(("vpopmail: pw_dir isn't set, creating")); + if (verbose) { + i_info("vpopmail(%s): pw_dir isn't set, creating", + user); + } =20 if (make_user_dir(vpop_user, vpop_domain, reply->uid, reply->gid) =3D=3D NULL) { - i_error("vpopmail: make_user_dir(%s, %s) failed", - vpop_user, vpop_domain); + i_error("vpopmail(%s): make_user_dir(%s, %s) failed", + user, vpop_user, vpop_domain); return FALSE; } =20 @@ -64,14 +69,16 @@ } =20 if (vpw =3D=3D NULL) { - I_DEBUG(("vpopmail: vauth_getpw(%s, %s) failed", - vpop_user, vpop_domain)); + if (verbose) { + i_info("vpopmail(%s): vauth_getpw(%s, %s) failed", + user, vpop_user, vpop_domain); + } return FALSE; } =20 if (vpw->pw_gid & NO_IMAP) { - I_DEBUG(("vpopmail: IMAP disabled for %s@%s", - vpop_user, vpop_domain)); + if (verbose) + i_info("vpopmail(%s): IMAP disabled", user); return FALSE; } =20 @@ -80,8 +87,8 @@ safe_memset(vpw->pw_passwd, 0, strlen(vpw->pw_passwd)); =20 if (!result) { - I_DEBUG(("vpopmail: password mismatch for user %s@%s", - vpop_user, vpop_domain)); + if (verbose) + i_info("vpopmail(%s): password mismatch", user); return FALSE; } =20 diff -ru dovecot-0.99.7/src/master/auth-process.c dovecot-0.99.7p1/src/mast= er/auth-process.c --- dovecot-0.99.7/src/master/auth-process.c 2003-01-11 21:55:57.000000000 = +0200 +++ dovecot-0.99.7p1/src/master/auth-process.c 2003-01-21 09:39:28.00000000= 0 +0200 @@ -278,6 +278,8 @@ =20 if (config->use_cyrus_sasl) env_put("USE_CYRUS_SASL=3D1"); + if (config->verbose) + env_put("VERBOSE=3D1"); =20 restrict_process_size(config->process_size); =20 diff -ru dovecot-0.99.7/src/master/settings.c dovecot-0.99.7p1/src/master/s= ettings.c --- dovecot-0.99.7/src/master/settings.c 2003-01-05 17:19:50.000000000 +020= 0 +++ dovecot-0.99.7p1/src/master/settings.c 2003-01-21 09:39:28.000000000 +0= 200 @@ -417,6 +417,9 @@ if (strcmp(key, "auth_cyrus_sasl") =3D=3D 0) return get_bool(value, &auth->use_cyrus_sasl); =20 + if (strcmp(key, "auth_verbose") =3D=3D 0) + return get_bool(value, &auth->verbose); + if (strcmp(key, "auth_count") =3D=3D 0) { int num; =20 diff -ru dovecot-0.99.7/src/master/settings.h dovecot-0.99.7p1/src/master/s= ettings.h --- dovecot-0.99.7/src/master/settings.h 2003-01-05 17:19:50.000000000 +020= 0 +++ dovecot-0.99.7p1/src/master/settings.h 2003-01-21 09:39:28.000000000 +0= 200 @@ -71,7 +71,7 @@ char *user; char *chroot; =20 - int use_cyrus_sasl; + int use_cyrus_sasl, verbose; =20 unsigned int count; unsigned int process_size; --=-Jf/Oz1qqyUMq6k680+bK-- From tss@iki.fi Tue Jan 21 10:00:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 21 Jan 2003 10:00:56 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9DD3723837 for ; Tue, 21 Jan 2003 10:00:56 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 5460B5E01F96; Tue, 21 Jan 2003 10:00:56 +0200 (EET) Subject: [dovecot] Re: Unable to Log in on FreeBSD server? From: Timo Sirainen To: Mark Cc: dovecot@procontrol.fi In-Reply-To: <1042947403.1373.4.camel@donburi> References: <1042783017.5740.9.camel@donburi> <1042805209.8610.230.camel@hurina> <1042919794.7750.17.camel@donburi> <1042921255.11444.64.camel@hurina> <1042947403.1373.4.camel@donburi> Content-Type: multipart/mixed; boundary="=-DWonjSm/fUvyITU9LhZD" Organization: Message-Id: <1043136055.11445.356.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 21 Jan 2003 10:00:56 +0200 X-archive-position: 247 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 247 Status: O Content-Length: 4617 --=-DWonjSm/fUvyITU9LhZD Content-Type: text/plain Content-Transfer-Encoding: 7bit On Sun, 2003-01-19 at 05:36, Mark wrote: > I recently recompiled with --enable-asserts and --enable-debug, and I > when trying to log in to either port 143 or port 993 using Outlook > Express, the following happens: --enable-asserts is actually the default. --enable-debug does only some internal sanity checks and bad performance warnings. > 1. Outlook Express complains that the authentication failed with "Login > Process died unexpectedly" > 2. The imap-master and all other processes die on my FreeBSD machine. > 3. I see the following in the logs: > > Jan 18 19:32:21 akira imap-master: Login process died too early - > shutting down That "close(master) failed: Bad file descriptor" you had in log is the only indicator that something wrong even happened. But it still should have logged something more. Hmm. Looks like the new code that complains about auth/login process dying too soon doesn't tell the reason for it if the process crashed or exited without logging a failure. See if the attached patch shows something more in the logs? It doesn't fix the problem, but at least I'll know if it crashes or something else. --=-DWonjSm/fUvyITU9LhZD Content-Disposition: attachment; filename=master.diff Content-Type: text/plain; name=master.diff; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable ? src/master/gmon.out Index: src/master/auth-process.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/master/auth-process.c,v retrieving revision 1.26 diff -u -r1.26 auth-process.c --- src/master/auth-process.c 21 Jan 2003 07:40:54 -0000 1.26 +++ src/master/auth-process.c 21 Jan 2003 07:57:29 -0000 @@ -160,8 +160,10 @@ struct auth_process **pos; struct waiting_request *next; =20 - if (!p->initialized) - i_fatal("Auth process died too early - shutting down"); + if (!p->initialized) { + i_error("Auth process died too early - shutting down"); + io_loop_stop(ioloop); + } =20 for (pos =3D &processes; *pos !=3D NULL; pos =3D &(*pos)->next) { if (*pos =3D=3D p) { Index: src/master/common.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/master/common.h,v retrieving revision 1.9 diff -u -r1.9 common.h --- src/master/common.h 5 Jan 2003 13:09:53 -0000 1.9 +++ src/master/common.h 21 Jan 2003 07:57:29 -0000 @@ -18,6 +18,7 @@ PROCESS_TYPE_MAX }; =20 +extern struct ioloop *ioloop; extern struct hash_table *pids; extern int null_fd, imap_fd, imaps_fd; =20 Index: src/master/login-process.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/master/login-process.c,v retrieving revision 1.28 diff -u -r1.28 login-process.c --- src/master/login-process.c 11 Jan 2003 15:29:47 -0000 1.28 +++ src/master/login-process.c 21 Jan 2003 07:57:29 -0000 @@ -223,8 +223,10 @@ return; p->destroyed =3D TRUE; =20 - if (!p->initialized) - i_fatal("Login process died too early - shutting down"); + if (!p->initialized) { + i_error("Login process died too early - shutting down"); + io_loop_stop(ioloop); + } if (p->listening) listening_processes--; =20 Index: src/master/main.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/master/main.c,v retrieving revision 1.27 diff -u -r1.27 main.c --- src/master/main.c 11 Jan 2003 15:29:47 -0000 1.27 +++ src/master/main.c 21 Jan 2003 07:57:29 -0000 @@ -28,9 +28,9 @@ }; =20 static const char *configfile =3D SYSCONFDIR "/" PACKAGE ".conf"; -static struct ioloop *ioloop; static struct timeout *to; =20 +struct ioloop *ioloop; struct hash_table *pids; int null_fd, imap_fd, imaps_fd; =20 @@ -258,6 +258,9 @@ { if (lib_signal_kill !=3D 0) i_warning("Killed with signal %d", lib_signal_kill); + + /* make sure we log if child processes died unexpectedly */ + timeout_handler(NULL, NULL); =20 login_processes_deinit(); auth_processes_deinit(); --=-DWonjSm/fUvyITU9LhZD-- From jpeterson275@attbi.com Fri Jan 24 06:33:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 24 Jan 2003 06:33:51 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from sccrmhc03.attbi.com (sccrmhc03.attbi.com [204.127.202.63]) by danu.procontrol.fi (Postfix) with ESMTP id 01CF0238C6 for ; Fri, 24 Jan 2003 06:33:50 +0200 (EET) Received: from attbi.com (12-228-160-142.client.attbi.com[12.228.160.142]) by sccrmhc03.attbi.com (sccrmhc03) with SMTP id <200301240433460030005i33e>; Fri, 24 Jan 2003 04:33:47 +0000 Message-ID: <3E30C231.7020702@attbi.com> Date: Thu, 23 Jan 2003 20:33:53 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] cvs down? Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 248 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 248 Status: O (Logging in to anonymous@dovecot.procontrol.fi) CVS password: cvs [login aborted]: connect to dovecot.procontrol.fi:2401 failed: Connection refused cvs [checkout aborted]: connect to dovecot.procontrol.fi:2401 failed: Connection refused Was the CVS server taken down? -- Jesse Peterson / jesse@pixeltechs.com From tss@iki.fi Fri Jan 24 07:07:47 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 24 Jan 2003 07:07:47 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6D32F238C5 for ; Fri, 24 Jan 2003 07:07:47 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 24B1D5E01F60; Fri, 24 Jan 2003 07:07:46 +0200 (EET) Subject: [dovecot] Re: cvs down? From: Timo Sirainen To: Jesse Peterson Cc: Dovecot Mail List In-Reply-To: <3E30C231.7020702@attbi.com> References: <3E30C231.7020702@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1043384865.29567.89.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 24 Jan 2003 07:07:46 +0200 X-archive-position: 249 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 249 Status: O On Fri, 2003-01-24 at 06:33, Jesse Peterson wrote: > Was the CVS server taken down? Yes, until either CVS package is updated in Debian/unstable or I patch it myself. I'll probably set it up today in any case. BTW. CVS is getting some neat new code :) Mail storage API is now better which had a side effect of making Dovecot a bit faster and take a bit less memory than before. I'm also rewriting authentication code. It's now split into three parts: authentication (SASL) mechanism, user database and password database. This means you can mix them in any possible way, for example use digest-md5 for users in /etc/passwd, but the passwords being in SQL database. And yes, SQL support will likely come soon, both for authentication and storing mails. From amyzing@talsever.com Sun Feb 2 08:28:50 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 02 Feb 2003 08:28:50 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtp10.atl.mindspring.net (smtp10.atl.mindspring.net [207.69.200.246]) by danu.procontrol.fi (Postfix) with ESMTP id CBB1F239A7 for ; Sun, 2 Feb 2003 08:28:49 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by smtp10.atl.mindspring.net with esmtp (Exim 3.33 #1) id 18fDcR-0003XG-00; Sun, 02 Feb 2003 01:28:43 -0500 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id 6E7CB8044; Sun, 2 Feb 2003 01:30:07 -0500 (EST) Date: Sun, 2 Feb 2003 01:28:42 -0500 From: Amelia A.Lewis To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] STARTTLS hangs due to client_skip_line (Was: Re: Plain auth broken) Message-Id: <20030202012842.5b9972cb.amyzing@talsever.com> In-Reply-To: <1043134986.11439.337.camel@hurina> References: <1042509723.8609.113.camel@hurina> <1042592701.8610.171.camel@hurina> <1042668222.8602.203.camel@hurina> <1042805732.8610.235.camel@hurina> <1042807051.8610.243.camel@hurina> <20030118120137.794e417b.amyzing@talsever.com> <1043134986.11439.337.camel@hurina> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.8.9 (GTK+ 1.2.10; i386-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 250 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 250 Status: O Content-Length: 2468 Dear Timo, Thanks for the patch. It shows the connections, but auth never gets called. I finally pulled my act together so that I could compile from source. So, I thought I would be a little more clear. If I turn on ssl (comment out ssl_disable = yes, the default) and turn off plaintext (uncomment disable_plaintext_auth = yes), then immediately after SSL negotiation, my client hangs (I'm testing with mutt). Eventually, I determined what's happening, to some degree. Alas, I've been programming in Java for five years, so I have trouble debugging a real programming language. However: in login/client.c, client_handle_input, the first part of the function checks for client->cmd_finished, and if so, clears client->cmd_tag and client->cmd_name. It then checks client->skip_line, and if true, calls client_skip_line. Adding debugging to client_skip_line (i_info with the contents of data) shows that, after the starttls command, client_skip_line discards the whole next command (in my case, a0002 CAPABILITY). The client is waiting for a response. The server is waiting for a command (having discarded one). login times out sixty seconds later, for inactivity. There's where my skills prove inadequate, I'm afraid, because bypassing client_skip_line if the last command was STARTTLS doesn't seem to do any good; the server never sees the capability command. I'm between a rock and a hard place, it appears; if the server sees the command, it discards it and then times out, but if it doesn't, it times out anyway. *sigh* No one else seems to be having this sort of problem, though. Is that because most folks are using TLS on the imaps port? Or have I got a misconfiguration that runs somehow deeper? I don't *think* I'm chasing a wild hare. Sorry to be a bother. Amy! On 21 Jan 2003 09:43:06 +0200 Timo Sirainen wrote: > On Sat, 2003-01-18 at 19:01, Amelia A.Lewis wrote: > > I'm running the debian package 0.99.7-2. If I turn off SSL, and > > allow plaintext, I can log in. If I turn SSL on (comment out > > ssl_diable = yes), then I can't. It was working in 0.99.6, I know. > > If it was working in .6, I can't think of what could have broken. But > here's a patch for more verbose logging if "auth_verbose = yes" in > config file. > > -- Amelia A. Lewis amyzing {at} talsever.com There are two major products that came out of Berkeley: LSD and BSD Unix. We don't believe this to be a coincidence. From tss@iki.fi Sun Feb 2 09:15:26 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 02 Feb 2003 09:15:26 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E4AD3239AF for ; Sun, 2 Feb 2003 09:15:25 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 27FE75E017E8; Sun, 2 Feb 2003 09:15:20 +0200 (EET) Subject: [dovecot] Re: STARTTLS hangs due to client_skip_line (Was: Re: Plain auth broken) From: Timo Sirainen To: "Amelia A.Lewis" Cc: dovecot@procontrol.fi In-Reply-To: <20030202012842.5b9972cb.amyzing@talsever.com> References: <1042509723.8609.113.camel@hurina> <1042592701.8610.171.camel@hurina> <1042668222.8602.203.camel@hurina> <1042805732.8610.235.camel@hurina> <1042807051.8610.243.camel@hurina> <20030118120137.794e417b.amyzing@talsever.com> <1043134986.11439.337.camel@hurina> <20030202012842.5b9972cb.amyzing@talsever.com> Content-Type: multipart/mixed; boundary="=-vQk1xOrFZGaBhlVjmokm" Organization: Message-Id: <1044170119.27230.2.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 02 Feb 2003 09:15:19 +0200 X-archive-position: 251 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 251 Status: O Content-Length: 1816 --=-vQk1xOrFZGaBhlVjmokm Content-Type: text/plain Content-Transfer-Encoding: 7bit On Sun, 2003-02-02 at 08:28, Amelia A.Lewis wrote: > Eventually, I determined what's happening, to some degree. Alas, I've > been programming in Java for five years, so I have trouble debugging a > real programming language. Java is real too :) > Adding debugging to client_skip_line (i_info with the > contents of data) shows that, after the starttls command, > client_skip_line discards the whole next command (in my case, a0002 > CAPABILITY). The client is waiting for a response. The server is > waiting for a command (having discarded one). login times out sixty > seconds later, for inactivity. Yes, so it seems. > No one else seems to be having this sort of problem, though. Is that > because most folks are using TLS on the imaps port? Or have I got a > misconfiguration that runs somehow deeper? I don't *think* I'm chasing > a wild hare. I've tested STARTTLS only with Evolution which I guess didn't mind about not getting a reply to next command. Here's a patch, thanks for bug report :) --=-vQk1xOrFZGaBhlVjmokm Content-Disposition: attachment; filename=dovecot-starttls.diff Content-Type: text/x-patch; name=dovecot-starttls.diff; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable diff -ru dovecot-0.99.7/src/login/client.c dovecot-0.99.7p1/src/login/clien= t.c --- dovecot-0.99.7/src/login/client.c 2003-01-11 17:29:47.000000000 +0200 +++ dovecot-0.99.7p1/src/login/client.c 2003-02-02 09:11:18.000000000 +0200 @@ -91,6 +91,9 @@ client->tls =3D TRUE; client_set_title(client); =20 + /* we skipped it already, so don't ignore next command */ + client->skip_line =3D FALSE; + client->fd =3D fd_ssl; =20 i_stream_unref(client->input); --=-vQk1xOrFZGaBhlVjmokm-- From amyzing@talsever.com Sun Feb 2 18:06:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 02 Feb 2003 18:06:48 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from maynard.mail.mindspring.net (maynard.mail.mindspring.net [207.69.200.243]) by danu.procontrol.fi (Postfix) with ESMTP id E1B3B239AF for ; Sun, 2 Feb 2003 18:06:47 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by maynard.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18fMdk-000396-00; Sun, 02 Feb 2003 11:06:40 -0500 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id 34CE38044; Sun, 2 Feb 2003 11:08:09 -0500 (EST) Date: Sun, 2 Feb 2003 11:06:39 -0500 From: Amelia A.Lewis To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: STARTTLS hangs due to client_skip_line (Was: Re: Plain auth broken) Message-Id: <20030202110639.4e452d33.amyzing@talsever.com> In-Reply-To: <1044170119.27230.2.camel@hurina> References: <1042509723.8609.113.camel@hurina> <1042592701.8610.171.camel@hurina> <1042668222.8602.203.camel@hurina> <1042805732.8610.235.camel@hurina> <1042807051.8610.243.camel@hurina> <20030118120137.794e417b.amyzing@talsever.com> <1043134986.11439.337.camel@hurina> <20030202012842.5b9972cb.amyzing@talsever.com> <1044170119.27230.2.camel@hurina> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.8.9 (GTK+ 1.2.10; i386-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 252 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 252 Status: O Content-Length: 5450 Dear Timo, On 02 Feb 2003 09:15:19 +0200 Timo Sirainen wrote: > On Sun, 2003-02-02 at 08:28, Amelia A.Lewis wrote: > > Adding debugging to client_skip_line (i_info with the > > contents of data) shows that, after the starttls command, > > client_skip_line discards the whole next command (in my case, a0002 > > CAPABILITY). The client is waiting for a response. The server is > > waiting for a command (having discarded one). login times out sixty > > seconds later, for inactivity. > > Yes, so it seems. > > > No one else seems to be having this sort of problem, though. Is > > that because most folks are using TLS on the imaps port? Or have I > > got a misconfiguration that runs somehow deeper? I don't *think* > > I'm chasing a wild hare. > > I've tested STARTTLS only with Evolution which I guess didn't mind > about not getting a reply to next command. > > Here's a patch, thanks for bug report :) Thank you! Only it doesn't work. I don't quite know why, either (it's almost exactly what I tried, but skipping over the skip_line seems to mean that it can't find the tag to read). Which seems weird. Is it possible that client->parser->input != client->input? Such that client->parser->input still points at the original fd? For whatever it might be worth, here's two runs of mutt, one without, and one with the patch. Most of the stuff occurs inside client_handle_input. Feb 2 10:55:51 talifane imap-master: Dovecot starting up Feb 2 10:55:52 talifane imap-auth: Login process 6 connected Feb 2 10:55:52 talifane imap-auth: Login process 7 connected Feb 2 10:55:52 talifane imap-auth: Login process 8 connected Feb 2 10:55:52 talifane imap-auth: Login process 8 sent handshake: PID 9137 Feb 2 10:55:52 talifane imap-auth: Login process 7 sent handshake: PID 9138 Feb 2 10:55:52 talifane imap-auth: Login process 6 sent handshake: PID 9139 Feb 2 10:55:53 talifane imap-login: client_handle_input: cmd_tag is null Feb 2 10:55:53 talifane imap-login: client_handle_input: cmd_name is null Feb 2 10:55:53 talifane imap-login: client_handle_input: cmd_finished: cmd_tag: a0000 ; cmd_name: CAPABILITY Feb 2 10:55:53 talifane imap-login: Skipping line in data: Feb 2 10:55:53 talifane imap-login: Skipped 2 chars Feb 2 10:55:53 talifane imap-login: client_handle_input: cmd_tag is null Feb 2 10:55:53 talifane imap-login: client_handle_input: cmd_name is null Feb 2 10:55:53 talifane imap-login: gnutls ssl_proxy_new Feb 2 10:55:54 talifane imap-auth: Login process 9 connected Feb 2 10:55:54 talifane imap-auth: Login process 9 sent handshake: PID 9141 Feb 2 10:55:54 talifane imap-login: client_handle_input: cmd_finished: cmd_tag: a0001 ; cmd_name: STARTTLS Feb 2 10:55:54 talifane imap-login: Skipping line in data: a0002 CAPABILITY Feb 2 10:55:54 talifane imap-login: Skipped 18 chars Feb 2 10:55:54 talifane imap-login: client_handle_input: cmd_tag is null Feb 2 10:55:54 talifane imap-login: client_handle_input: can't fill cmd_tag (need more data) Feb 2 10:56:54 talifane imap-login: Disconnected: Inactivity [127.0.0.1] Feb 2 10:56:54 talifane imap-auth: Login process 8 disconnected The next one is with the patch applied. Feb 2 11:00:41 talifane imap-master: Dovecot starting up Feb 2 11:00:42 talifane imap-auth: Login process 6 connected Feb 2 11:00:42 talifane imap-auth: Login process 7 connected Feb 2 11:00:42 talifane imap-auth: Login process 8 connected Feb 2 11:00:42 talifane imap-auth: Login process 8 sent handshake: PID 9361 Feb 2 11:00:42 talifane imap-auth: Login process 7 sent handshake: PID 9362 Feb 2 11:00:42 talifane imap-auth: Login process 6 sent handshake: PID 9363 Feb 2 11:00:47 talifane imap-login: client_handle_input: cmd_tag is null Feb 2 11:00:47 talifane imap-login: client_handle_input: cmd_name is null Feb 2 11:00:47 talifane imap-login: client_handle_input: cmd_finished: cmd_tag: a0000 ; cmd_name: CAPABILITY Feb 2 11:00:47 talifane imap-login: Skipping line in data: Feb 2 11:00:47 talifane imap-login: Skipped 2 chars Feb 2 11:00:47 talifane imap-login: client_handle_input: cmd_tag is null Feb 2 11:00:47 talifane imap-login: client_handle_input: cmd_name is null Feb 2 11:00:47 talifane imap-login: gnutls ssl_proxy_new Feb 2 11:00:47 talifane imap-auth: Login process 9 connected Feb 2 11:00:47 talifane imap-auth: Login process 9 sent handshake: PID 9365 Feb 2 11:00:48 talifane imap-login: client_handle_input: cmd_finished: cmd_tag: a0001 ; cmd_name: STARTTLS Feb 2 11:00:48 talifane imap-login: client_handle_input: cmd_tag is null Feb 2 11:00:48 talifane imap-login: client_handle_input: can't fill cmd_tag (need more data) Feb 2 11:01:48 talifane imap-login: Disconnected: Inactivity [127.0.0.1] Feb 2 11:01:48 talifane imap-auth: Login process 8 disconnected As you can see, the major difference is that it doesn't discard the command, but it still can't seem to see it (client_handle_input: can't fill cmd_tag (need more data) happens in just the place where "need more data" appears as a comment). Now, looking around, it appears that skip_line uses i_stream_get_data on client->input, while filling the tag calls imap_parser_read_word, which uses i_stream_get_data on parser->input. Does all the necessary information for the parser get reset in starttls? Amy! -- Amelia A. Lewis amyzing {at} talsever.com Early to bed and early to rise makes a man stupid and blind in the eyes. From kaeesalm@cc.jyu.fi Sun Feb 2 18:23:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 02 Feb 2003 18:23:17 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from yabba.kortex.jyu.fi (yabba.kortex.jyu.fi [130.234.182.31]) by danu.procontrol.fi (Postfix) with ESMTP id CE3B1239AF for ; Sun, 2 Feb 2003 18:23:17 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by yabba.kortex.jyu.fi (Postfix) with ESMTP id 897613DD for ; Sun, 2 Feb 2003 18:23:17 +0200 (EET) From: Karo Salminen Organization: University of =?iso-8859-1?q?Jyv=E4skyl=E4?= To: dovecot@procontrol.fi Subject: [dovecot] Dovecot on FreeBSD Date: Sun, 2 Feb 2003 18:23:11 +0200 User-Agent: KMail/1.5 MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200302021823.16801.kaeesalm@cc.jyu.fi> X-archive-position: 253 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: kaeesalm@cc.jyu.fi Precedence: bulk X-list: dovecot X-UID: 253 Status: O =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, I built Dovecot (0.99.5) from Ports on FreeBSD 5.0. The mail client (Kmail)= =20 cannot login and it complains that authentication process died. The only=20 thing in the logs is: =46eb 2 18:13:01 karo imap-login: Disconnected [client-ip] I tried also passwd authentication method, but its symptoms are the very sa= me. My configure can be found at http://people.jyu.fi/~kaeesalm/dovecot.conf I also tried CVS version in hope of fix and more comprehensive debug messag= es.=20 The compilation failes when it tries to look for passwd.h even though I set= =20 =2D --disable-passwd and --without-passwd to configure parameters. Could so= meone=20 fix that. =2D --=20 Karo Salminen =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQE+PUX0vt6lNXuj7xcRAp70AJ0R+zhmgF+WBaXaX2V2j+07eVyJRACgh6Ze Pmep2Uy2OnVe/EVuo9O3b80=3D =3DeqOO =2D----END PGP SIGNATURE----- From overflow@eurielec.etsit.upm.es Sun Feb 2 19:18:50 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 02 Feb 2003 19:18:50 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from eurielec.etsit.upm.es (uno.eurielec.etsit.upm.es [138.100.31.227]) by danu.procontrol.fi (Postfix) with ESMTP id 05F97239A7 for ; Sun, 2 Feb 2003 19:18:50 +0200 (EET) Received: from dos.eurielec.etsit.upm.es (dos.eurielec.etsit.upm.es [138.100.31.228]) by eurielec.etsit.upm.es (Postfix) with SMTP id 03906B5D for ; Sun, 2 Feb 2003 18:19:55 +0100 (CET) Received: by dos.eurielec.etsit.upm.es (sSMTP sendmail emulation); Sun, 2 Feb 2003 18:18:46 +0100 Date: Sun, 2 Feb 2003 18:18:46 +0100 From: Jaime Medrano To: dovecot@procontrol.fi Subject: [dovecot] Recent messages Message-ID: <20030202171846.GA4164@eurielec.etsit.upm.es> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline User-Agent: Mutt/1.5.3i X-archive-position: 254 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: overflow@eurielec.etsit.upm.es Precedence: bulk X-list: dovecot X-UID: 254 Status: O Dovecot seems to manage \Recent messages in a weird way. When a STATUS command is performed in a mailbox, then the \Recent flag of its messages disappear and latter STATUS commands report that there are no recent messagges. I don't know exactly the behavior of the RFC. But other imap servers (UW-imapd, Netscape Messenger...) report the same number of recent messages when two STATUS commands are performed together. -- Jaime. From amyzing@talsever.com Sun Feb 2 20:14:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 02 Feb 2003 20:14:53 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from maynard.mail.mindspring.net (maynard.mail.mindspring.net [207.69.200.243]) by danu.procontrol.fi (Postfix) with ESMTP id 9208F239AF for ; Sun, 2 Feb 2003 20:14:51 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by maynard.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18fOdj-0007S2-00; Sun, 02 Feb 2003 13:14:47 -0500 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id 04FDE8044; Sun, 2 Feb 2003 13:16:16 -0500 (EST) Date: Sun, 2 Feb 2003 13:14:46 -0500 From: Amelia A.Lewis To: "Amelia A.Lewis" Cc: tss@iki.fi, dovecot@procontrol.fi Subject: [dovecot] Re: STARTTLS hangs due to client_skip_line (Was: Re: Plain auth broken) Message-Id: <20030202131446.7178cbcc.amyzing@talsever.com> In-Reply-To: <20030202110639.4e452d33.amyzing@talsever.com> References: <1042509723.8609.113.camel@hurina> <1042592701.8610.171.camel@hurina> <1042668222.8602.203.camel@hurina> <1042805732.8610.235.camel@hurina> <1042807051.8610.243.camel@hurina> <20030118120137.794e417b.amyzing@talsever.com> <1043134986.11439.337.camel@hurina> <20030202012842.5b9972cb.amyzing@talsever.com> <1044170119.27230.2.camel@hurina> <20030202110639.4e452d33.amyzing@talsever.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.8.9 (GTK+ 1.2.10; i386-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 255 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 255 Status: O Content-Length: 2101 Replying to myself, what fun. On Sun, 2 Feb 2003 11:06:39 -0500 "Amelia A.Lewis" wrote: > On 02 Feb 2003 09:15:19 +0200 > Timo Sirainen wrote: > > Here's a patch, thanks for bug report :) > > Thank you! Only it doesn't work. I don't quite know why, either > (it's almost exactly what I tried, but skipping over the skip_line > seems to mean that it can't find the tag to read). Which seems weird. > Is it > possible that client->parser->input != client->input? Such that > client->parser->input still points at the original fd? Seems to solve the problem. Here's the patch (inlined), modified to make a new parser attached to the new fds. diff -ru dovecot-0.99.7/src/login/client.c dovecot-0.99.7p1/src/login/client.c --- dovecot-0.99.7/src/login/client.c 2003-01-11 17:29:47.000000000 +0200 +++ dovecot-0.99.7p1/src/login/client.c 2003-02-02 09:11:18.000000000 +0200 @@ -91,6 +91,9 @@ client->tls = TRUE; client_set_title(client); + /* we skipped it already, so don't ignore next command */ + client->skip_line = FALSE; + client->fd = fd_ssl; i_stream_unref(client->input); o_stream_unref(client->output); client->input = i_stream_create_file(fd_ssl, default_pool, 8192, FALSE); client->output = o_stream_create_file(fd_ssl, default_pool, 1024, IO_PRIORITY_DEFAULT, FALSE); + + imap_parser_destroy(client->parser); + client->parser = imap_parser_create(client->input, client->output, + MAX_INBUF_SIZE, + MAX_IMAP_ARG_ELEMENTS); } else { client_send_line(client, " * BYE TLS handehake failed."); client_destroy(client, "TLS handshake failed"); Amy! -- Amelia A. Lewis amyzing {at} talsever.com A hundred thousand lemmings can't be wrong. From tss@iki.fi Mon Feb 3 07:08:18 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 03 Feb 2003 07:08:18 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 44427239A7 for ; Mon, 3 Feb 2003 07:08:18 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 2CC8E5E017E8; Mon, 3 Feb 2003 07:08:16 +0200 (EET) Subject: [dovecot] Re: STARTTLS hangs due to client_skip_line (Was: Re: Plain auth broken) From: Timo Sirainen To: "Amelia A.Lewis" Cc: dovecot@procontrol.fi In-Reply-To: <20030202131446.7178cbcc.amyzing@talsever.com> References: <1042509723.8609.113.camel@hurina> <1042592701.8610.171.camel@hurina> <1042668222.8602.203.camel@hurina> <1042805732.8610.235.camel@hurina> <1042807051.8610.243.camel@hurina> <20030118120137.794e417b.amyzing@talsever.com> <1043134986.11439.337.camel@hurina> <20030202012842.5b9972cb.amyzing@talsever.com> <1044170119.27230.2.camel@hurina> <20030202110639.4e452d33.amyzing@talsever.com> <20030202131446.7178cbcc.amyzing@talsever.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044248895.27239.12.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 03 Feb 2003 07:08:15 +0200 X-archive-position: 256 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 256 Status: O On Sun, 2003-02-02 at 20:14, Amelia A.Lewis wrote: > > Is it > > possible that client->parser->input != client->input? Such that > > client->parser->input still points at the original fd? > > Seems to solve the problem. Here's the patch (inlined), modified to > make a new parser attached to the new fds. Hmm. I had fixed that already in CVS, but I though it was because I had changed something that required it. Wonder why that ever even worked.. From tss@iki.fi Mon Feb 3 07:12:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 03 Feb 2003 07:12:48 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 18577239A7 for ; Mon, 3 Feb 2003 07:12:48 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id DC5D45E017E8; Mon, 3 Feb 2003 07:12:47 +0200 (EET) Subject: [dovecot] Re: Recent messages From: Timo Sirainen To: Jaime Medrano Cc: dovecot@procontrol.fi In-Reply-To: <20030202171846.GA4164@eurielec.etsit.upm.es> References: <20030202171846.GA4164@eurielec.etsit.upm.es> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044249167.13761.16.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 03 Feb 2003 07:12:47 +0200 X-archive-position: 257 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 257 Status: O Content-Length: 1028 On Sun, 2003-02-02 at 19:18, Jaime Medrano wrote: > Dovecot seems to manage \Recent messages in a weird way. When a STATUS > command is performed in a mailbox, then the \Recent flag of its messages > disappear and latter STATUS commands report that there are no recent > messagges. Whops, fixed. Index: src/imap/cmd-status.c =================================================================== RCS file: /home/cvs/dovecot/src/imap/cmd-status.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- src/imap/cmd-status.c 10 Jan 2003 11:02:10 -0000 1.9 +++ src/imap/cmd-status.c 3 Feb 2003 05:11:16 -0000 1.10 @@ -65,7 +65,7 @@ } else { /* open the mailbox */ box = client->storage->open_mailbox(client->storage, - mailbox, FALSE, TRUE); + mailbox, TRUE, TRUE); if (box == NULL) return FALSE; } From tss@iki.fi Mon Feb 3 07:17:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 03 Feb 2003 07:17:27 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1020D239B4 for ; Mon, 3 Feb 2003 07:17:27 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id C999D5E017E8; Mon, 3 Feb 2003 07:17:26 +0200 (EET) Subject: [dovecot] Re: Dovecot on FreeBSD From: Timo Sirainen To: Karo Salminen Cc: dovecot@procontrol.fi In-Reply-To: <200302021823.16801.kaeesalm@cc.jyu.fi> References: <200302021823.16801.kaeesalm@cc.jyu.fi> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044249446.27239.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 03 Feb 2003 07:17:26 +0200 X-archive-position: 258 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 258 Status: O On Sun, 2003-02-02 at 18:23, Karo Salminen wrote: > I also tried CVS version in hope of fix and more comprehensive debug messages. > The compilation failes when it tries to look for passwd.h even though I set > - --disable-passwd and --without-passwd to configure parameters. Could someone > fix that. You said shadow.h in IRC :) --without-shadow would have disabled that. Does FreeBSD really have getspnam() function elsewhere? Anyway I added now check to configure to check for shadow.h too before assuming it exists. From jaldhar@debian.org Mon Feb 3 08:45:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 03 Feb 2003 08:45:28 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id D6862239AF for ; Mon, 3 Feb 2003 08:45:27 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 044577FBB for ; Mon, 3 Feb 2003 01:45:30 -0500 (EST) Date: Mon, 3 Feb 2003 01:45:29 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: dovecot@procontrol.fi Subject: [dovecot] About the dovecot package (fwd) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: 8BIT X-archive-position: 259 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 259 Status: O Content-Length: 1610 Dear Timo, What do you think of this? Fyi, I've been getting the same thing lately and I'm wondering if gnutls is to blame? (i've had inexlicable SIGSEGVs in other apps before due to it.) Tomorrow I'll try with openssl but I was wondering if you had any other ideas? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ ---------- Forwarded message ---------- From: Guille -bisho- To: jaldhar@debian.org Date: Mon, 3 Feb 2003 02:08:19 +0100 Subject: About the dovecot package Hello! First of all thanks for maintain such a good imap server. It's trully fast and lightweight!!! I was trying Courier, but it is not very interoperable with others linux tools like procmail and others, and uw-imapd performance was really bad. I only have one problem: If I put a lot of folders to check in mutt the imapd server closes de connection saying in the logs: Jan 31 02:50:25 www imap-login: Login: bisho Jan 31 02:50:44 www imap-master: child 22234 (imap) killed with signal 11 It only happens when mutt is configured with a lot of folders. Maybe covecot loads too much indexes in memory and reachs some limit, but I have readed carefully the conf file and hadn't found anything related. Do you have any thought about that? Thanks a lot again See you -- .,,, Guillermo Pérez -=] 03/02/2003 [=- _' .,,,, - bisho@ ( onirica.com | eurielec.etsit.upm.es ) (v)/ ,'' ( \/ :: "Nuestras mayores tonterias pueden ser muy sabias." :: bisho! ``\\ :: -- Leonardo Da Vinci :: From tss@iki.fi Mon Feb 3 09:03:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 03 Feb 2003 09:03:54 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4B85B239A7 for ; Mon, 3 Feb 2003 09:03:54 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 0A62D5E017E8; Mon, 3 Feb 2003 09:03:54 +0200 (EET) Subject: [dovecot] Re: About the dovecot package (fwd) From: Timo Sirainen To: "Jaldhar H. Vyas" Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044255833.13761.35.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 03 Feb 2003 09:03:53 +0200 X-archive-position: 260 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 260 Status: O Content-Length: 1594 On Mon, 2003-02-03 at 08:45, Jaldhar H. Vyas wrote: > Dear Timo, > > What do you think of this? Fyi, I've been getting the same thing lately > and I'm wondering if gnutls is to blame? (i've had inexlicable SIGSEGVs > in other apps before due to it.) Tomorrow I'll try with openssl but I was > wondering if you had any other ideas? .. > Jan 31 02:50:44 www imap-master: child 22234 (imap) killed with signal 11 SSL connections are handled by imap-login process, so it can't be that. Can't really say what would be crashing it .. Well, I'm not sure what commands mutt uses, but I've found at least a few bugs with SEARCH command that could crash. Best way to find out would be to get stacktrace of the crash. imap processes won't core dump because they've called setuid() (which is kind of annoying), so you'd have to attach gdb to the running process: gdb /usr/lib/dovecot/imap c bt > It only happens when mutt is configured with a lot of folders. Maybe > covecot loads too much indexes in memory and reachs some limit, but I > have readed carefully the conf file and hadn't found anything related. Indexes are loaded only one at a time (or two sometimes) to memory. Amount of folders shouldn't affect anything, but maybe one of the folders contained something Dovecot didn't like. CVS has quite a lot of rewritten code for many things though and has fixed at least a couple of possible crashes.. I think it's now in pretty usable state, maybe I should put some test-version out of it. New things are at least POP3 server and (not quite finished) LDAP support. From kaeesalm@cc.jyu.fi Mon Feb 3 18:13:12 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 03 Feb 2003 18:13:12 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from yabba.kortex.jyu.fi (yabba.kortex.jyu.fi [130.234.182.31]) by danu.procontrol.fi (Postfix) with ESMTP id 2CF93238C9 for ; Mon, 3 Feb 2003 18:13:12 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by yabba.kortex.jyu.fi (Postfix) with ESMTP id 7AD4038; Mon, 3 Feb 2003 18:13:10 +0200 (EET) From: Karo Salminen Organization: University of =?iso-8859-1?q?Jyv=E4skyl=E4?= To: Timo Sirainen Subject: [dovecot] Re: Dovecot on FreeBSD Date: Mon, 3 Feb 2003 18:13:06 +0200 User-Agent: KMail/1.5 References: <200302021823.16801.kaeesalm@cc.jyu.fi> <1044249446.27239.22.camel@hurina> In-Reply-To: <1044249446.27239.22.camel@hurina> Cc: dovecot@procontrol.fi MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200302031813.10033.kaeesalm@cc.jyu.fi> X-archive-position: 261 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: kaeesalm@cc.jyu.fi Precedence: bulk X-list: dovecot X-UID: 261 Status: O Content-Length: 2134 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Monday 03 February 2003 07:17, Timo Sirainen wrote: > You said shadow.h in IRC :) --without-shadow would have disabled that. > Does FreeBSD really have getspnam() function elsewhere? Anyway I added > now check to configure to check for shadow.h too before assuming it > exists. I was mixing the terms. Sorry for that. I mean shadow.h of course and=20 =2D --without-shadow. I did configure with: ./configure --prefix=3D/opt/dovecot --without-shadow= =20 =2D --without-pop3d --disable-ipv6 ran make and get: source=3D'passdb-shadow.c' object=3D'passdb-shadow.o' libtool=3Dno =20 depfile=3D'.deps/passdb-shadow.Po' tmpdepfile=3D'.deps/passdb-shadow.TPo' = =20 depmode=3Dgcc3 /bin/sh ../../depcomp gcc -DHAVE_CONFIG_H -I. -I. -I../..=20 =2D -I../../src/lib -I../../src/lib-settings -g -O2 -Wall -W=20 =2D -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subs= cripts=20 =2D -Wformat=3D2 -Wbad-function-cast -c `test -f passdb-shadow.c || echo=20 './'`passdb-shadow.c passdb-shadow.c:13:20: shadow.h: No such file or directory passdb-shadow.c: In function `shadow_verify_plain': passdb-shadow.c:28: warning: implicit declaration of function `getspnam' passdb-shadow.c:28: warning: assignment makes pointer from integer without = a=20 cast passdb-shadow.c:38: dereferencing pointer to incomplete type passdb-shadow.c:38: dereferencing pointer to incomplete type passdb-shadow.c:38: dereferencing pointer to incomplete type passdb-shadow.c:41: dereferencing pointer to incomplete type passdb-shadow.c:48: dereferencing pointer to incomplete type passdb-shadow.c:48: dereferencing pointer to incomplete type passdb-shadow.c:51: dereferencing pointer to incomplete type passdb-shadow.c:51: dereferencing pointer to incomplete type passdb-shadow.c: In function `shadow_deinit': passdb-shadow.c:65: warning: implicit declaration of function `endspent' *** Error code 1 =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQE+PpUVvt6lNXuj7xcRAl2xAJ9CRJPD1/ul0HtaECQmCsSkz2TQowCgiHf8 zB8A/+ilTJeP5mCwzbBBzHA=3D =3D3jvm =2D----END PGP SIGNATURE----- From tss@iki.fi Tue Feb 4 02:36:03 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 02:36:03 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1D528238CB for ; Tue, 4 Feb 2003 02:36:03 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 9C47C5E017E8; Tue, 4 Feb 2003 02:36:02 +0200 (EET) Subject: [dovecot] Re: Dovecot on FreeBSD From: Timo Sirainen To: Karo Salminen Cc: dovecot@procontrol.fi In-Reply-To: <200302031813.10033.kaeesalm@cc.jyu.fi> References: <200302021823.16801.kaeesalm@cc.jyu.fi> <1044249446.27239.22.camel@hurina> <200302031813.10033.kaeesalm@cc.jyu.fi> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044318962.1886.0.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 04 Feb 2003 02:36:02 +0200 X-archive-position: 262 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 262 Status: O On Mon, 2003-02-03 at 18:13, Karo Salminen wrote: > I was mixing the terms. Sorry for that. I mean shadow.h of course and > - --without-shadow. Whops, cvs update for fix :) From tss@iki.fi Tue Feb 4 05:45:19 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 05:45:20 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BBB49238C9 for ; Tue, 4 Feb 2003 05:45:19 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 6FB8D5E017E8; Tue, 4 Feb 2003 05:45:19 +0200 (EET) Subject: [dovecot] 0.99.8-test1 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044330319.1885.50.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 04 Feb 2003 05:45:19 +0200 X-archive-position: 263 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 263 Status: O Content-Length: 1560 I think all of the reported bugs are again fixed in CVS, so I made a tarball of it. I'd like to hear if there's any problems with it. Here's the most important changes: v0.99.8 2003-02-xx Timo Sirainen * NOTE: Configuration file has changed a bit: auth_userinfo was replaced by userdb and passdb. *_port were merged into *_listen. Disabling listening in imaps port is now done by changing protocols setting. + Fully featured POP3 server included. Disabled by default. + Support for LITERAL+, MULTIAPPEND and UNSELECT extensions. + Internal API cleanups made Dovecot faster and take less memory + auth_verbose logs now all authentication failures + Support for Solaris 9 sendfilev() (not really tested) - COPY now behaves as RFC2060 says: "If the COPY command is unsuccessful for any reason, server implementations MUST restore the destination mailbox to its state before the COPY attempt." - maildir_copy_with_hardlinks = yes was broken. - mboxes in subfolders weren't selectable. - STORE didn't accept multiple flags without () around them - PLAIN SASL-authentication was a bit broken. - IMAP dates were parsed a few hours wrong - If auth/login process died unexpectedly at startup, the exit status or killing signal wasn't logged. - mbox parsing might have crashed sometimes - Next command after STARTTLS was ignored which left the connection stuck sometimes - STATUS command removed \Recent flags from messages - Several bugfixes to SEARCH command, especially related to multiple search conditions From kaeesalm@cc.jyu.fi Tue Feb 4 08:57:08 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 08:57:08 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from yabba.kortex.jyu.fi (yabba.kortex.jyu.fi [130.234.182.31]) by danu.procontrol.fi (Postfix) with ESMTP id 19E48238CB for ; Tue, 4 Feb 2003 08:57:08 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by yabba.kortex.jyu.fi (Postfix) with ESMTP id A15B738; Tue, 4 Feb 2003 08:57:07 +0200 (EET) From: Karo Salminen Organization: University of =?iso-8859-1?q?Jyv=E4skyl=E4?= To: Timo Sirainen Subject: [dovecot] Re: Dovecot on FreeBSD Date: Tue, 4 Feb 2003 08:57:03 +0200 User-Agent: KMail/1.5 References: <200302021823.16801.kaeesalm@cc.jyu.fi> <200302031813.10033.kaeesalm@cc.jyu.fi> <1044318962.1886.0.camel@hurina> In-Reply-To: <1044318962.1886.0.camel@hurina> Cc: dovecot@procontrol.fi MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200302040857.07068.kaeesalm@cc.jyu.fi> X-archive-position: 264 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: kaeesalm@cc.jyu.fi Precedence: bulk X-list: dovecot X-UID: 264 Status: O =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tuesday 04 February 2003 02:36, Timo Sirainen wrote: > > I was mixing the terms. Sorry for that. I mean shadow.h of course and > > - --without-shadow. > > Whops, cvs update for fix :) You should fix this too: If building with --without-pop3d dovecot still looks for pop3-login executa= ble=20 at startup. The prefix for -login bins should also be put as examples=20 referring to $PREFIX set when building instead of /usr/libexec. =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQE+P2RDvt6lNXuj7xcRAjiPAJ4h3T+JCSAwFR3LrhKurDLm7XvaUwCfUtS/ H0oB3+cikZSqvvs8hWbaGOE=3D =3DjVA9 =2D----END PGP SIGNATURE----- From kaeesalm@cc.jyu.fi Tue Feb 4 08:59:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 08:59:53 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from yabba.kortex.jyu.fi (yabba.kortex.jyu.fi [130.234.182.31]) by danu.procontrol.fi (Postfix) with ESMTP id 8417D238CB for ; Tue, 4 Feb 2003 08:59:53 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by yabba.kortex.jyu.fi (Postfix) with ESMTP id 11BCB38; Tue, 4 Feb 2003 08:59:53 +0200 (EET) From: Karo Salminen Organization: University of =?iso-8859-1?q?Jyv=E4skyl=E4?= To: Timo Sirainen Subject: [dovecot] Re: Dovecot on FreeBSD Date: Tue, 4 Feb 2003 08:59:48 +0200 User-Agent: KMail/1.5 References: <200302021823.16801.kaeesalm@cc.jyu.fi> <1044318962.1886.0.camel@hurina> <200302040857.07068.kaeesalm@cc.jyu.fi> In-Reply-To: <200302040857.07068.kaeesalm@cc.jyu.fi> Cc: dovecot@procontrol.fi MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200302040859.52553.kaeesalm@cc.jyu.fi> X-archive-position: 265 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: kaeesalm@cc.jyu.fi Precedence: bulk X-list: dovecot X-UID: 265 Status: O =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tuesday 04 February 2003 08:57, Karo Salminen wrote: > You should fix this too: And this: base_dir variable has $PREFIX/var/run/dovecot as its value by default.=20 Shouldn't it be /var/run/dovecot? =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQE+P2Tovt6lNXuj7xcRAgXgAKCDa3BVBdXiNJd8TqIlVKnsWNilaQCfQ3RQ 5fPGBq+sRkbadmv7K/87dtg=3D =3D9PEz =2D----END PGP SIGNATURE----- From tss@iki.fi Tue Feb 4 09:15:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 09:15:10 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 305EE238C7 for ; Tue, 4 Feb 2003 09:15:10 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id D7F275E11664; Tue, 4 Feb 2003 09:09:01 +0200 (EET) Subject: [dovecot] Re: Dovecot on FreeBSD From: Timo Sirainen To: Karo Salminen Cc: dovecot@procontrol.fi In-Reply-To: <200302040857.07068.kaeesalm@cc.jyu.fi> References: <200302021823.16801.kaeesalm@cc.jyu.fi> <200302031813.10033.kaeesalm@cc.jyu.fi> <1044318962.1886.0.camel@hurina> <200302040857.07068.kaeesalm@cc.jyu.fi> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044342541.1885.109.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 04 Feb 2003 09:09:01 +0200 X-archive-position: 266 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 266 Status: O On Tue, 2003-02-04 at 08:57, Karo Salminen wrote: > You should fix this too: > If building with --without-pop3d dovecot still looks for pop3-login executable > at startup. Or rather only if protocols setting contains it. Added that check. > The prefix for -login bins should also be put as examples > referring to $PREFIX set when building instead of /usr/libexec. No, they would just look stupid there. The beginning of the config file says what paths are being used, and those are the preferred locations that package maintainers should use. From kaeesalm@cc.jyu.fi Tue Feb 4 09:15:46 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 09:15:46 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from yabba.kortex.jyu.fi (yabba.kortex.jyu.fi [130.234.182.31]) by danu.procontrol.fi (Postfix) with ESMTP id 9D5AD238C7 for ; Tue, 4 Feb 2003 09:15:46 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by yabba.kortex.jyu.fi (Postfix) with ESMTP id 96B1638; Tue, 4 Feb 2003 09:15:45 +0200 (EET) From: Karo Salminen Organization: University of =?iso-8859-1?q?Jyv=E4skyl=E4?= To: Timo Sirainen Subject: [dovecot] Re: Dovecot on FreeBSD Date: Tue, 4 Feb 2003 09:15:41 +0200 User-Agent: KMail/1.5 Cc: dovecot@procontrol.fi References: <200302021823.16801.kaeesalm@cc.jyu.fi> <200302040857.07068.kaeesalm@cc.jyu.fi> <200302040859.52553.kaeesalm@cc.jyu.fi> In-Reply-To: <200302040859.52553.kaeesalm@cc.jyu.fi> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200302040915.44997.kaeesalm@cc.jyu.fi> X-archive-position: 267 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: kaeesalm@cc.jyu.fi Precedence: bulk X-list: dovecot X-UID: 267 Status: O =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tuesday 04 February 2003 08:59, Karo Salminen wrote: > And this: > base_dir variable has $PREFIX/var/run/dovecot as its value by default. > Shouldn't it be /var/run/dovecot? i built Dovecot again, but with --with-pop3d in order to get it running. It= =20 seems to execute fine, but it isn't running after all and there are a coupl= e=20 of critical lines in logs: =46eb 4 09:11:49 karo dovecot: fcntl(F_GETFD) failed: Bad file descriptor =46eb 4 09:11:49 karo imap-login: fd_send() failed: Broken pipe Looks fun. =2D --=20 Karo Salminen GSM: +358 45 6728280 WWW: http://www.cc.jyu.fi/~kaeesalm/ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQE+P2igvt6lNXuj7xcRAtE8AJ9VNv9DdZWpyheN8YSKO68Hfy/S0wCdFhEw hbSa9wdcO78FUAWd9jbxkRU=3D =3DyAj3 =2D----END PGP SIGNATURE----- From lfarkas@bnap.hu Tue Feb 4 13:43:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 13:43:54 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 465F4238C7 for ; Tue, 4 Feb 2003 13:43:54 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 2EBB775401D for ; Tue, 4 Feb 2003 12:47:21 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id CD9223EAF for ; Tue, 4 Feb 2003 12:43:52 +0100 (CET) Message-ID: <3E3FA779.9070107@bnap.hu> Date: Tue, 04 Feb 2003 12:43:53 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2) Gecko/20021202 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] bincimap Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 268 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 268 Status: O hi, what do you tyhink about it? especially the faq comment about dovecot? http://www.bincimap.andreas.hanssen.name/ -- Levente "Si vis pacem para bellum!" From tss@iki.fi Tue Feb 4 15:36:13 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 15:36:13 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C221A238C7 for ; Tue, 4 Feb 2003 15:36:12 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 0FC055E015A9; Tue, 4 Feb 2003 15:36:11 +0200 (EET) Subject: [dovecot] Re: bincimap From: Timo Sirainen To: Farkas Levente Cc: dovecot@procontrol.fi, andreas@hanssen.name In-Reply-To: <3E3FA779.9070107@bnap.hu> References: <3E3FA779.9070107@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044365771.942.62.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 04 Feb 2003 15:36:11 +0200 X-archive-position: 269 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 269 Status: O Content-Length: 2633 [oh well, let's cc the author as well] On Tue, 2003-02-04 at 13:43, Farkas Levente wrote: > hi, > what do you tyhink about it? especially the faq comment about dovecot? > http://www.bincimap.andreas.hanssen.name/ That's interesting. Haven't noticed it before. Author's name is actually familiar from imap mailing list :) Initial impressions: It uses C++, so why is it still using sprintf() in a few places, just waiting to be exploited? That alone actually makes me question his "C++ security experience" (well, that's not C++ exactly..). The ones in COPY and APPEND handling actually can cause buffer overflows if host has long enough hostname. Says it's a replacement for Courier IMAP, and the design looks that way too. Currently at least maildir-specific (there was some empty mbox dir though) and without any kind of smart indexing, meaning it's quite likely close to Courier's performance. I don't really get his comments about TCP wrappers. Meaning that I do network I/O instead of letting inetd handle it? That's only minimal part of the code and I'd say it has near-zero possibility for any security related problems, or any kind of all really. Well, of course doing it in inetd allows /etc/hosts.deny and such. I guess his server runs as root until user is authenticated. That requires that all IMAP commands check properly that they're not run before authentication, that everything that is run before authentication must have perfect security or attacker can get roots. SSL communication is likely also done as root. That's very different from Dovecot's design, where login process has been designed so that even in case of a security flaw (eg. SSL library), there's no way for the attacker to do _anything_ before being properly authenticated (chrooted, non-privileged user, only access to communicate with auth process via pipe but no way to get other users' passwords or anything). Post-login SSL communication is also done by the same login process, so that exploiting SSL library bugs even then won't do any good. It wouldn't be too difficult to allow Dovecot to be run from inetd, but I don't think there's much point. It's certainly less secure since it initially requires roots. Hmm. What else .. I would have expected C++ code to be more .. prettier. It's 10k lines count may be partially because of C++ and using lex instead of writing own parsers, but I think it's mostly because it doesn't really do much. Plaintext authentication + maildir + IMAP4rev1 is pretty much what it does now, without anything special in design or implementation (except for being C++). Very much like Courier or UW imapd. From cras@irccrew.org Tue Feb 4 17:14:18 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 17:14:18 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id B32E1238C7 for ; Tue, 4 Feb 2003 17:14:18 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id B2EA74C0A0; Tue, 4 Feb 2003 17:14:16 +0200 (EET) Date: Tue, 4 Feb 2003 17:14:16 +0200 From: Timo Sirainen To: Binc IMAP Cc: dovecot@procontrol.fi Subject: [dovecot] Re: bincimap Message-ID: <20030204151416.GA21151@irccrew.org> References: <1044365771.942.62.camel@hurina> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 270 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 270 Status: O Content-Length: 2111 On Tue, Feb 04, 2003 at 02:54:47PM +0100, Andreas Aardal Hanssen wrote: > I can change the words in the FAQ if you feel offended by it, but you'll > have to address points individually. I never made remarks about your > personal code conventions, and I never claimed that my server "focuses on > security" in the extent that Dovecot does. > > If you want to discuss our different designs, please do it seriously, > point for point, and don't just troll around like this. Sorry, I just got a bit disappointed after reading the the web page first. Your lines of code comparisions just seemed to imply that your server does everything that others would but with only a fraction of code. There was also something about Dovecot's design being too complex, so I thought you might have solved those problems more elegantly. When you write something from scratch, I think it's a good idea to design it so that it's superior to existing implementations in at least some ways, not just make a clone with slightly different coding style. If all you wanted was a clone with some changes (and better maintainer), forking the project would be much smaller job. Well, here's some design thoughts: Maildir implementation could be hidden behind a class to access it. That would keep the ugly details hidden from the rest of the code, as well as allow easily implementing other mail storages. Restricting yourself to only plaintext authentication doesn't sound very good plan. Separating the pre-login process from post-login process would probably be a good idea to keep their functionality completely separated. It would also be easier to audit the pre-login code if you knew exactly what there is. After logging in, you could just exec() the post-login process. Don't use sprintf(). > Actually I don't get why you guys CC'd me personally on this. If you have > anything in particular you want to discuss you can post it to the mailing > list. I just thought you'd rather want to see it now than months later in google. I know I would. I didn't think it was really relevant to your mailing list, but if you say so.. From disco@pervert.ca Tue Feb 4 18:18:50 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 18:18:50 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from iridium.pervert.ca (CPE0050bad0aa3e-CM.cpe.net.cable.rogers.com [24.112.138.163]) by danu.procontrol.fi (Postfix) with ESMTP id 35586238C7 for ; Tue, 4 Feb 2003 18:18:48 +0200 (EET) Received: from PHOTEK (photek.pervert.ca [192.168.1.100]) by iridium.pervert.ca (8.12.5/8.12.5) with ESMTP id h14CBjOw012085 for ; Tue, 4 Feb 2003 12:11:52 GMT (envelope-from disco@pervert.ca) Reply-To: From: "Rick Stewart" To: Subject: [dovecot] Re: bincimap Date: Tue, 4 Feb 2003 11:21:19 -0500 Organization: Misc. Perversion Message-ID: <000001c2cc69$7b963870$6401a8c0@PHOTEK> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4024 In-Reply-To: <1044365771.942.62.camel@hurina> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Importance: Normal X-archive-position: 271 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: disco@pervert.ca Precedence: bulk X-list: dovecot X-UID: 271 Status: O Wait a sec, so dovecot isn't supposed to run from inetd or xinetd? I'm just wondering cause that's how I've been running it for about 2 months. If not then how "should" I be running it? ./disco P.S. Thanks for a slick imap program. I've been using it and am very happy with its performance and features. Cheers Timo. -----Original Message----- From: dovecot-bounce@procontrol.fi [mailto:dovecot-bounce@procontrol.fi] On Behalf Of Timo Sirainen Sent: February 4, 2003 8:36 AM To: Farkas Levente Cc: dovecot@procontrol.fi; andreas@hanssen.name Subject: [dovecot] Re: bincimap ---[ snip ]--- It wouldn't be too difficult to allow Dovecot to be run from inetd, but I don't think there's much point. It's certainly less secure since it initially requires roots. ---[ snip ]--- From tss@iki.fi Tue Feb 4 19:19:47 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Feb 2003 19:19:47 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 676F5238C9 for ; Tue, 4 Feb 2003 19:19:47 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 9B5995E015A9; Tue, 4 Feb 2003 19:19:46 +0200 (EET) Subject: [dovecot] Re: bincimap From: Timo Sirainen To: disco@pervert.ca Cc: dovecot@procontrol.fi In-Reply-To: <000001c2cc69$7b963870$6401a8c0@PHOTEK> References: <000001c2cc69$7b963870$6401a8c0@PHOTEK> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044379186.941.81.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 04 Feb 2003 19:19:46 +0200 X-archive-position: 272 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 272 Status: O On Tue, 2003-02-04 at 18:21, Rick Stewart wrote: > Wait a sec, so dovecot isn't supposed to run from inetd or > xinetd? I'm just wondering cause that's how I've been running it for > about 2 months. If not then how "should" I be running it? Uh. Have you set it to run the imap binary? It doesn't require any authentication then, just connecting to the port gives direct access. Not a good idea :) You should have run imap-master binary. Or dovecot binary in next version. From kaeesalm@cc.jyu.fi Wed Feb 5 22:21:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 05 Feb 2003 22:21:33 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from yabba.kortex.jyu.fi (yabba.kortex.jyu.fi [130.234.182.31]) by danu.procontrol.fi (Postfix) with ESMTP id 000042382E for ; Wed, 5 Feb 2003 22:21:32 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by yabba.kortex.jyu.fi (Postfix) with ESMTP id A577E59; Wed, 5 Feb 2003 22:21:32 +0200 (EET) From: Karo Salminen Organization: University of =?iso-8859-1?q?Jyv=E4skyl=E4?= To: Timo Sirainen Subject: [dovecot] Re: Dovecot on FreeBSD Date: Wed, 5 Feb 2003 22:21:32 +0200 User-Agent: KMail/1.5 Cc: dovecot@procontrol.fi References: <200302021823.16801.kaeesalm@cc.jyu.fi> <200302040859.52553.kaeesalm@cc.jyu.fi> <200302040915.44997.kaeesalm@cc.jyu.fi> In-Reply-To: <200302040915.44997.kaeesalm@cc.jyu.fi> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200302052221.32110.kaeesalm@cc.jyu.fi> X-archive-position: 273 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: kaeesalm@cc.jyu.fi Precedence: bulk X-list: dovecot X-UID: 273 Status: O On Tuesday 04 February 2003 09:15, Karo Salminen wrote: > i built Dovecot again, but with --with-pop3d in order to get it running. It > seems to execute fine, but it isn't running after all and there are a > couple of critical lines in logs: > Feb 4 09:11:49 karo dovecot: fcntl(F_GETFD) failed: Bad file descriptor > Feb 4 09:11:49 karo imap-login: fd_send() failed: Broken pipe Still no advices? -- Karo Salminen GSM: +358 45 6728280 WWW: http://www.cc.jyu.fi/~kaeesalm/ From tss@iki.fi Thu Feb 6 04:35:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Feb 2003 04:35:16 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 802D82382E for ; Thu, 6 Feb 2003 04:35:16 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id AC4CA5E015A9; Thu, 6 Feb 2003 04:35:13 +0200 (EET) Subject: [dovecot] Re: Dovecot on FreeBSD From: Timo Sirainen To: Karo Salminen Cc: dovecot@procontrol.fi In-Reply-To: <200302052221.32110.kaeesalm@cc.jyu.fi> References: <200302021823.16801.kaeesalm@cc.jyu.fi> <200302040859.52553.kaeesalm@cc.jyu.fi> <200302040915.44997.kaeesalm@cc.jyu.fi> <200302052221.32110.kaeesalm@cc.jyu.fi> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044498913.943.89.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 06 Feb 2003 04:35:13 +0200 X-archive-position: 274 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 274 Status: O On Wed, 2003-02-05 at 22:21, Karo Salminen wrote: > > i built Dovecot again, but with --with-pop3d in order to get it running. It > > seems to execute fine, but it isn't running after all and there are a > > couple of critical lines in logs: > > Feb 4 09:11:49 karo dovecot: fcntl(F_GETFD) failed: Bad file descriptor > > Feb 4 09:11:49 karo imap-login: fd_send() failed: Broken pipe > > Still no advices? Does it happen right after startup or only after trying to log in? I'll probably install FreeBSD 5 soon myself too so I can try then.. From kiwi@oav.net Thu Feb 6 13:27:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Feb 2003 13:27:56 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from kaneda.oav.net (kaneda.oav.net [195.154.210.144]) by danu.procontrol.fi (Postfix) with ESMTP id D6516238C5 for ; Thu, 6 Feb 2003 13:27:55 +0200 (EET) Received: from oav.net (localhost.oav.net [127.0.0.1]) by localhost.oav.net (Postfix) with ESMTP id 01E9C1575A; Thu, 6 Feb 2003 12:27:51 +0100 (CET) (envelope-from kiwi@oav.net) X-MessageWall-Score: 0 (oav.net) Received: from [127.0.0.1] by oav.net (MessageWall 1.0.8) with SMTP; 6 Feb 2003 11:27:46 -0000 Received: from oav.net (kiwi.adsl.isdnet.net [195.154.177.33]) (using TLSv1 with cipher DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by kaneda.oav.net (Postfix) with ESMTP id 29A8815759; Thu, 6 Feb 2003 12:27:46 +0100 (CET) (envelope-from kiwi@oav.net) Date: Thu, 6 Feb 2003 12:27:44 +0100 Subject: [dovecot] Re: Dovecot on FreeBSD Content-Type: text/plain; charset=ISO-8859-1; format=flowed Mime-Version: 1.0 (Apple Message framework v551) Cc: dovecot@procontrol.fi To: Timo Sirainen From: Xavier Beaudouin In-Reply-To: <1044498913.943.89.camel@hurina> Message-Id: <0318CC6C-39C6-11D7-AA02-000393B64262@oav.net> Content-Transfer-Encoding: quoted-printable X-Mailer: Apple Mail (2.551) X-archive-position: 275 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: kiwi@oav.net Precedence: bulk X-list: dovecot X-UID: 275 Status: O Content-Length: 1038 Le jeudi, 6 f=E9v 2003, =E0 03:35 Europe/Paris, Timo Sirainen a =E9crit = : > On Wed, 2003-02-05 at 22:21, Karo Salminen wrote: >>> i built Dovecot again, but with --with-pop3d in order to get it=20 >>> running. It >>> seems to execute fine, but it isn't running after all and there are = a >>> couple of critical lines in logs: >>> Feb 4 09:11:49 karo dovecot: fcntl(F_GETFD) failed: Bad file=20 >>> descriptor >>> Feb 4 09:11:49 karo imap-login: fd_send() failed: Broken pipe >> >> Still no advices? > > Does it happen right after startup or only after trying to log in? = I'll > probably install FreeBSD 5 soon myself too so I can try then.. > I had such thing with FreeBSD 4.7-RELEASE-p2 on alpha with a old dovecot (0.98.4) using the freebsd port ... Maybe it has been updated. I will have a look at that. /Xavier -- Xavier Beaudouin - Unix System Administrator & Projects Leader. Please visit http://caudium.net/, home of Caudium & Camas projects O ascii ribbon campaign against html email |\ and Microsoft attachments= From jaldhar@debian.org Fri Feb 7 09:08:47 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 07 Feb 2003 09:08:47 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 889EC238C5 for ; Fri, 7 Feb 2003 09:08:47 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 7CF4484F5; Fri, 7 Feb 2003 00:43:53 -0500 (EST) Date: Fri, 7 Feb 2003 00:43:53 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: dovecot@procontrol.fi Cc: bisho@eurielec.etsit.upm.es Subject: [dovecot] Re: About the dovecot package (fwd) In-Reply-To: <1044255833.13761.35.camel@hurina> Message-ID: References: <1044255833.13761.35.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 276 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 276 Status: O On Mon, 3 Feb 2003, Timo Sirainen wrote: > SSL connections are handled by imap-login process, so it can't be that. > Can't really say what would be crashing it .. Well, I'm not sure what > commands mutt uses, but I've found at least a few bugs with SEARCH > command that could crash. > just FYI, 0.99.8.test1 appears to have fixed the problems. Unfortunately as a number of things have changed, I can't upload new Debian packages until I make a clean upgrade possible. Any idea when 0.99.8 final will be released? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From tss@iki.fi Fri Feb 7 09:18:37 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 07 Feb 2003 09:18:37 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E8F43238C5 for ; Fri, 7 Feb 2003 09:18:36 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 39B495E017E9; Fri, 7 Feb 2003 09:18:36 +0200 (EET) Subject: [dovecot] Re: About the dovecot package (fwd) From: Timo Sirainen To: "Jaldhar H. Vyas" Cc: dovecot@procontrol.fi, bisho@eurielec.etsit.upm.es In-Reply-To: References: <1044255833.13761.35.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044602316.5777.10.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 07 Feb 2003 09:18:36 +0200 X-archive-position: 277 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 277 Status: O On Fri, 2003-02-07 at 07:43, Jaldhar H. Vyas wrote: > just FYI, 0.99.8.test1 appears to have fixed the problems. Unfortunately > as a number of things have changed, I can't upload new Debian packages > until I make a clean upgrade possible. > > Any idea when 0.99.8 final will be released? There's still some problems with it. At least this doesn't look good: dovecot: Feb 06 14:22:01 Error: login: Authentication process 0 doesn't exist imap-login: Feb 06 14:22:01 Fatal: Master sent reply with unknown tag 0 I haven't yet figured out why that happened. Maybe it's also related to the FreeBSD problems. Anyway, I'll start looking into it again. I didn't get much done for the past week after seeing first episode of Alias in TV, I had to get and watch them all ;) From tss@iki.fi Sat Feb 8 21:14:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 08 Feb 2003 21:14:48 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8C60F2384B for ; Sat, 8 Feb 2003 21:14:48 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 426855E01F68; Sat, 8 Feb 2003 21:14:48 +0200 (EET) Subject: [dovecot] 0.99.8-test2 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044731688.29839.101.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 08 Feb 2003 21:14:48 +0200 X-archive-position: 278 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 278 Status: O Fixes several smaller bugs. Finally works with FreeBSD (tested with 4.7 and 5.0). I think there's still some problems with authentication failing sometimes due to memory/ipc corruption. I haven't seen those today, but I don't think I've fixed that either.. One behaviour change is that if default_mail_env isn't set and mbox format is detected (~/mail dir), /var/mail/user or /var/spool/mail/user is used as INBOX if found. From tss@iki.fi Tue Feb 11 13:17:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 11 Feb 2003 13:17:17 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8FC762384D for ; Tue, 11 Feb 2003 13:17:17 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 61E8C5E01F68; Tue, 11 Feb 2003 13:17:17 +0200 (EET) Subject: [dovecot] 0.99.8-test3 From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1044962237.29839.243.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 11 Feb 2003 13:17:17 +0200 X-archive-position: 279 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 279 Status: O It includes full LDAP support now, can anyone test if it really works? It has worked with some of my tests, but I don't know too much about LDAP so I might have missed something important. The authentication problem in test1 and test2 is also fixed now. From lfarkas@bnap.hu Tue Feb 11 13:34:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 11 Feb 2003 13:34:55 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id BBB172384D for ; Tue, 11 Feb 2003 13:34:55 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id EBB7975401B for ; Tue, 11 Feb 2003 12:35:43 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id E9D193EAD for ; Tue, 11 Feb 2003 12:34:53 +0100 (CET) Message-ID: <3E48E008.8010701@bnap.hu> Date: Tue, 11 Feb 2003 12:35:36 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2) Gecko/20021202 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] Re: 0.99.8-test3 References: <1044962237.29839.243.camel@hurina> In-Reply-To: <1044962237.29839.243.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 280 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 280 Status: O Timo Sirainen wrote: > It includes full LDAP support now, can anyone test if it really works? > It has worked with some of my tests, but I don't know too much about > LDAP so I might have missed something important. ohh? and is there any doc about this part? did you see http://jamm.sourceforge.net/howto/html/ we plan to use it, but I'm not realy like courier... -- Levente "Si vis pacem para bellum!" From mark@mercurial-mouth.com Fri Feb 14 14:19:23 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 14 Feb 2003 14:19:23 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nmail1.systems.pipex.net (nmail1.systems.pipex.net [62.241.160.130]) by danu.procontrol.fi (Postfix) with ESMTP id AF8142384E for ; Fri, 14 Feb 2003 14:19:23 +0200 (EET) Received: from nmail1.systems.pipex.net (localhost [127.0.0.1]) by nmail1.systems.pipex.net (8.12.4/8.12.4) with ESMTP id h1ECJNcL013530 for ; Fri, 14 Feb 2003 12:19:23 GMT Received: (from nobody@localhost) by nmail1.systems.pipex.net (8.12.4/8.12.4/Submit) id h1ECJNtl013529 for dovecot@procontrol.fi; Fri, 14 Feb 2003 12:19:23 GMT To: Subject: [dovecot] Brain bubbles Message-ID: <1045225163.3e4cdecb57871@netmail.pipex.net> Date: Fri, 14 Feb 2003 12:19:23 +0000 From: Mark Lancaster MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit User-Agent: PIPEX NetMail 2.2.0-pre13 X-PIPEX-username: aonz04%dsl.pipex.com X-Originating-IP: 62.189.158.225 X-Usage: Use of PIPEX NetMail is subject to the PIPEX Terms and Conditions of use X-archive-position: 281 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mark@mercurial-mouth.com Precedence: bulk X-list: dovecot X-UID: 281 Status: O Hi Bit of a newbie to imap servers re: the article on webmonkey! http://hotwired.lycos.com/webmonkey/03/04/index3a_page4.html?tw=backend Been trying to set up SSL support with the latest ver. of dovecote I'm guessing that the following line from STDOUT is the problem. How to fix it is beyond my grasp currently. checking for SSL_read in -lssl... (cached) no Any ideas. ttfn Mark From charlieb-dovecot@e-smith.com Mon Feb 17 05:01:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 05:01:14 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 7E9CE23839 for ; Mon, 17 Feb 2003 05:01:13 +0200 (EET) Received: (qmail 20052 invoked by uid 404); 17 Feb 2003 03:01:11 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 16 Feb 2003 22:01:10 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 17 Feb 2003 03:01:10 -0000 Received: (qmail 21592 invoked by uid 5008); 17 Feb 2003 03:01:10 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 17 Feb 2003 03:01:10 -0000 Date: Sun, 16 Feb 2003 22:01:09 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Timo Sirainen Cc: Binc IMAP , Subject: [dovecot] Re: bincimap In-Reply-To: <20030204151416.GA21151@irccrew.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 282 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 282 Status: O Content-Length: 1890 On Tue, 4 Feb 2003, Timo Sirainen wrote: > Sorry, I just got a bit disappointed after reading the the web page first. > Your lines of code comparisions just seemed to imply that your server does > everything that others would but with only a fraction of code. Well, it doesn't claim to support other than Maildir, but it does claim to be a full IMAP4rev1 implementation. > When you write something from scratch, I think it's a good idea to design it > so that it's superior to existing implementations in at least some ways Are you suggesting that Andreas hasn't done this? > just make a clone with slightly different coding style. If all you wanted > was a clone with some changes (and better maintainer), forking the project > would be much smaller job. Who would want a clone of Courier IMAP? :-) > Separating the pre-login process from post-login process would probably be a > good idea to keep their functionality completely separated. It would also be > easier to audit the pre-login code if you knew exactly what there is. > After logging in, you could just exec() the post-login process. Agreed. Given that qmail-pop3d was an inspiration, I'm surprised this hasn't been done. You might look at http://www.untroubled.org/mailfront/imapfront.html for a pre-existing pre-login imapd. Doesn't handle STARTTLS though. Timo, my preferred way to run network servers is to have tcpserver running under supervise, and logging to multilog. bincimap is designed to run this way. I don't know how dovecot executes - there's no mention of either init.d or inetd in the documentation AFAICT. Can dovecot be used in a supervise/tcpserver/multilog environment, and if so, how? -- Charlie Brady Lead Product Developer Network Server Solutions Group Mitel Networks Corporation http://www.mitel.com/smallbusiness Phone: +1 (613) 592 5660 or 592 2122 Fax: +1 (613) 592 1175 From tss@iki.fi Mon Feb 17 10:45:42 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 10:45:42 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 59B3E23839 for ; Mon, 17 Feb 2003 10:45:42 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 29CC75E01F68; Mon, 17 Feb 2003 10:45:42 +0200 (EET) Subject: [dovecot] Re: Brain bubbles From: Timo Sirainen To: Mark Lancaster Cc: dovecot@procontrol.fi In-Reply-To: <1045225163.3e4cdecb57871@netmail.pipex.net> References: <1045225163.3e4cdecb57871@netmail.pipex.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045471541.4604.110.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Feb 2003 10:45:42 +0200 X-archive-position: 283 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 283 Status: O On Fri, 2003-02-14 at 14:19, Mark Lancaster wrote: > Been trying to set up SSL support with the latest ver. of dovecote I'm guessing > that the following line from STDOUT is the problem. How to fix it is beyond my > grasp currently. > > checking for SSL_read in -lssl... (cached) no Install OpenSSL. Depending on your os/distribution it's likely in libssl* packages. libssl-dev is also needed. Or you could get the sources from www.openssl.org Also remove config.cache file after installing so that the check runs again. From tss@iki.fi Mon Feb 17 11:14:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 11:14:36 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CEAFF23839 for ; Mon, 17 Feb 2003 11:14:35 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 826DA5E01F68; Mon, 17 Feb 2003 11:14:35 +0200 (EET) Subject: [dovecot] Re: [bincimap] Re: Re: bincimap From: Timo Sirainen To: Binc IMAP Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045473275.4601.140.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Feb 2003 11:14:35 +0200 X-archive-position: 284 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 284 Status: O Content-Length: 1243 On Mon, 2003-02-17 at 08:28, Andreas Aardal Hanssen wrote: > I wonder what the motives for the author of Dovecot IMAP was when he > started his project. Lack of securely written code in other servers, although Courier did prove to be quite secure after all. > I wouldn't want to comment on Dovecot's design, since I'm no fan of > trolling. I don't think commenting is trolling, as long as there's truth in it, or at least honest opinions. > The project clearly has different goals than Binc. Dovecot wants > excellent features, indexing and an advanced security promoting design. Implementation security as well. I'm not sure about features. It's more about trying to be fast and light. Indexes make Dovecot comparable to Cyrus in speed, but updating them isn't required so it's still drop-in replacement for UW imapd and Courier. Index files themselves aren't really required either, but there's no option currently to disable them. > It even recently included a POP server. What's the reasoning there? Someone wanted it so it'd be easy to run both POP3 and IMAP servers without having to configure them twice. I don't see any harm in it anyway, it took only few hours to write, it's optional and doesn't take much space in sources. From tss@iki.fi Mon Feb 17 11:29:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 11:29:48 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 33D8523839 for ; Mon, 17 Feb 2003 11:29:48 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id F0A915E01F68; Mon, 17 Feb 2003 11:29:47 +0200 (EET) Subject: [dovecot] Re: bincimap From: Timo Sirainen To: Charlie Brady Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045474187.4604.155.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Feb 2003 11:29:47 +0200 X-archive-position: 285 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 285 Status: O On Mon, 2003-02-17 at 05:01, Charlie Brady wrote: > Timo, my preferred way to run network servers is to have tcpserver > running under supervise, and logging to multilog. bincimap is designed to > run this way. I don't know how dovecot executes - there's no mention of > either init.d or inetd in the documentation AFAICT. Can dovecot be used in > a supervise/tcpserver/multilog environment, and if so, how? I haven't looked too deeply into daemontools, but CVS supports logging into /dev/stderr (it was before closed or used for other purposes) which I've heard is enough for multilog. I don't think it could be made to run with tcpserver without changes. Dovecot is executed by running a master binary (imap-master before, dovecot in CVS) which creates rest of the required processes (authentication, pre-auth imap, post-auth imap) From tss@iki.fi Mon Feb 17 12:09:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 12:09:02 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 552A423839 for ; Mon, 17 Feb 2003 12:09:02 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 174945E01F68; Mon, 17 Feb 2003 12:09:02 +0200 (EET) Subject: [dovecot] Re: [bincimap] bincimap From: Timo Sirainen To: Binc IMAP Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045476541.4601.189.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Feb 2003 12:09:01 +0200 X-archive-position: 286 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 286 Status: O Content-Length: 1615 On Mon, 2003-02-17 at 11:33, Andreas Aardal Hanssen wrote: > Binc IMAP's approaches are to use a secure programming language with > secure well-known contructs, and with an as-simple-as-possible design, > making it very easy for everyone to grasp how the server works. This will > also help the community find and fix bugs. I kind of agree, but not at the expense of security. I have tried to keep my code clean and ugly-optimization-free anyway. > Here's where I would say - there are hundreds of working POP3 servers > around, both in closed and open source, so adding a POP3 server to the > Dovecot project just introduces more lines of code where bugs may appear > ;). Yes, and I wouldn't have done it if it hadn't been so easy. I don't really encourage people to use it anyway, it's even disabled by default. If it has bugs, it doesn't affect the IMAP side. If people really need to run both IMAP and POP3 servers, it is simpler to use the same configuration for both, especially if the configuration isn't "standard" (eg. LDAP or SQL authentication, mailboxes in special locations, etc). All other major IMAP servers provide their own POP3 servers as well, if you haven't noticed :) > Donald Knuth said in a seminar that I attended that the best way to keep a > program free from bugs it to complete it. Finish off the project, work on > fixing bugs. That's Binc IMAP's philosophy. That's the ideal situation, and even possible if you keep the original goals. But there are IMAP extensions which may require large changes, new mail storage formats and ways to deliver mail into them, clustering, etc. From ianj@ian-justman.com Mon Feb 17 12:15:49 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 12:15:49 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from narshe.chocobo.org (dsl-207-126-72-242.dsl.netasset.net [207.126.72.242]) by danu.procontrol.fi (Postfix) with ESMTP id B596523839 for ; Mon, 17 Feb 2003 12:15:48 +0200 (EET) Received: from zozo.intrn.chocobo.org (zozo.chocobo.org [207.126.72.244]) by narshe.chocobo.org (Postfix) with ESMTP id C4C8430FE72 for ; Mon, 17 Feb 2003 02:15:46 -0800 (PST) Received: by zozo.intrn.chocobo.org (Postfix, from userid 501) id A43ED86E3BF; Mon, 17 Feb 2003 02:15:46 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zozo.intrn.chocobo.org (Postfix) with ESMTP id 95531449AD3 for ; Mon, 17 Feb 2003 02:15:46 -0800 (PST) Date: Mon, 17 Feb 2003 02:14:47 -0800 (PST) From: "Ian R. Justman" X-X-Sender: ianj@zozo.chocobo.org To: Binc IMAP Subject: [dovecot] Re: [bincimap] Re: Re: bincimap In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII ReSent-Date: Mon, 17 Feb 2003 02:15:42 -0800 (PST) Resent-From: "Ian R. Justman" Resent-To: dovecot@procontrol.fi ReSent-Subject: Re: [dovecot] Re: [bincimap] Re: Re: bincimap ReSent-Message-ID: X-archive-position: 287 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 287 Status: O Content-Length: 2089 On Mon, 17 Feb 2003, Andreas Aardal Hanssen wrote: > >> It even recently included a POP server. What's the reasoning there? > >Someone wanted it so it'd be easy to run both POP3 and IMAP servers > >without having to configure them twice. I don't see any harm in it > >anyway, it took only few hours to write, it's optional and doesn't take > >much space in sources. > > Here's where I would say - there are hundreds of working POP3 servers > around, both in closed and open source, so adding a POP3 server to the > Dovecot project just introduces more lines of code where bugs may appear > ;). Here is what -I- would say: I use mbox on all my servers which I have absolutely no intention of changing despite the issues concerning file locking inherent in the whole mbox format. So please, --NO-- attempts to convince me to go to maildir. My take is that if I am going to use an IMAP server, it would be VERY nice if a POP3 server also came bundled with it. Dovecot's having both IMAP and POP3 servers is great because they will likely use the same file-locking schemes (in fact, probably even share the same locking settings). That way if I inadvertently start up a POP3 session while I am connected via IMAP, if they use identical locking mechanisms, I don't screw up my mailboxes should I inadvertently tell my system that I want to delete the messages from my mailbox. Basically, if you open via IMAP using a server with a diffent locking scheme while your hung POP3 session is still running AND you modify your mailbox, you are screwed. Especially if that mailstore is NFS-shared, which is always a dicey proposition. Additionally, the number of mbox POP3 servers which Do Not Suck(R) is rather low right now. Timo finally introduced an mbox IMAP server which definitely Does Not Suck, notably it allows for multiple clients accessing the same mbox mailstore, something previously only offered by Cyrus and perhaps maildir ("perhaps" only because I do not use maildir). Not to mention, quite frankly, most mbox POP3 implementations suck pretty badly anyway. :P --Ian. From tss@iki.fi Mon Feb 17 19:34:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 19:34:04 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F06C52384D for ; Mon, 17 Feb 2003 19:34:03 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id B465A5E01F68; Mon, 17 Feb 2003 19:34:03 +0200 (EET) Subject: [dovecot] Re: [bincimap] Re: Re: bincimap From: Timo Sirainen To: "Ian R. Justman" Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045503243.4601.422.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Feb 2003 19:34:03 +0200 X-archive-position: 288 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 288 Status: O On Mon, 2003-02-17 at 12:14, Ian R. Justman wrote: > Additionally, the number of mbox POP3 servers which Do Not Suck(R) is > rather low right now. Timo finally introduced an mbox IMAP server which > definitely Does Not Suck, notably it allows for multiple clients accessing > the same mbox mailstore, something previously only offered by Cyrus and > perhaps maildir ("perhaps" only because I do not use maildir). I don't actually understand why UW imapd doesn't allow it. It needs to be able to deal with unexpected mbox changes anyway, so why allow only one IMAP session for it? Or maybe it deals with unexpected changes just by killing the IMAP connection? I'd have to try some day. Few days ago I was also wondering how UW imapd even knows how to kill the older connection. It seems that it writes PID to /tmp/... When another IMAP process tries to access the same mbox it sees the file, sends SIGUSR2 to the PID inside it and waits for a while to see if the lock file goes away. Strange. From dovecot@andreas.hanssen.name Mon Feb 17 20:07:22 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 20:09:57 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from krs-dhcp401.studby.uio.no (krs-dhcp054.studby.uio.no [129.240.106.84]) by danu.procontrol.fi (Postfix) with SMTP id 6A70C23839 for ; Mon, 17 Feb 2003 20:07:22 +0200 (EET) Received: (qmail 7066 invoked by uid 500); 17 Feb 2003 18:07:39 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 17 Feb 2003 18:07:39 -0000 Date: Mon, 17 Feb 2003 19:07:36 +0100 (CET) From: Andreas Aardal Hanssen X-X-Sender: andreaha@krs-dhcp401.studby.uio.no To: dovecot@procontrol.fi Subject: [dovecot] Re: [bincimap] Re: Re: bincimap In-Reply-To: Message-ID: X-Sent-From-Infeline: Yes MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 289 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dovecot@andreas.hanssen.name Precedence: bulk X-list: dovecot X-UID: 289 Status: O Content-Length: 3198 Hi, Ian. Cross-posting discussions like this is usually not appreciated by those who subscribe to both foras, so I'll limit it to the Dovecot list. On Mon, 17 Feb 2003, Ian R. Justman wrote: >On Mon, 17 Feb 2003, Andreas Aardal Hanssen wrote: >My take is that if I am going to use an IMAP server, it would be VERY nice >if a POP3 server also came bundled with it. Dovecot's having both IMAP >and POP3 servers is great because they will likely use the same >file-locking schemes (in fact, probably even share the same locking >settings). I agree with you. But any shared mailbox format that makes assumptions on the type of locking used by other accessors, and does not provide a standard locking mechanism bundled with the format specification, is b0rken. But nobody ever claimed that mbox was anything else, did they? ;) mbox is yesterday's format, and the only reason people cling to it is for convenience and "if it works, don't fix it". Today we can exploit concurrency and rapid access in ways that were unthinkable back when mbox was designed. It's only natural that the old and worn fall by the swords of the young and strong. :-) >Basically, if you open via IMAP using a server with a diffent locking >Additionally, the number of mbox POP3 servers which Do Not Suck(R) is >rather low right now. Timo finally introduced an mbox IMAP server which This I don't agree with. Most existing POP3 servers are quite ok, and one POP3 Maildir server that is excellent and bug free since 1998, qmail-pop3d, is quite a piece of art. >Not to mention, quite frankly, most mbox POP3 implementations suck pretty >badly anyway. :P This I do agree with. Don't confuse POP3 servers in general with mbox POP3 servers. The root, the source of the evil is the storage format mbox. Now I will not claim that Maildir is indefinitely much better, but it's almost, but not quite, much much better than mbox. With Maildir there's no need to lock the depository when deleting or delivering mails (even on NFS), but you can't store (append) a message with a timestamp nor with flags without breaking consistency, and servers have to search for lost messages when an external client changes a flag. With mbox you have to rewrite the entire mailbox after expunging message #1, and exclusive access is required when doing so. With no indexes, mboxes also need to be more or less parsed on every login - I understand that Dovecot has done some smart stuff here, but that's a workaround for one of the big headaches of a crappy storage format. Nobody with their wits intact would come up with something as pathetic as the mbox storage format in 2003. That's _my_ personal opinion on this matter. Now Binc IMAP does not support this format, but that's not because I don't want it to. Rather, I'd like to investigate neat ways to make it work just like Timo has with Dovecot. But rather than breathing fresh air into the wrinkled nostrels of one of the Internet age's uglier artifacts, I'd like to find a way to move all users away from mbox and into a new mailbox format. One box to rule them all. ;) btw, Flames are happily accepted. :-) Andy -- Andreas Aardal Hanssen http://www.andreas.hanssen.name/gpg From skvidal@phy.duke.edu Mon Feb 17 20:17:01 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 20:17:01 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 5FB2423839 for ; Mon, 17 Feb 2003 20:17:01 +0200 (EET) Received: from user-152-16-65-11.adsl.duke.edu (user-152-16-65-11.adsl.duke.edu [152.16.65.11]) by mail.phy.duke.edu (Postfix) with ESMTP id 722A0301AF; Mon, 17 Feb 2003 13:16:56 -0500 (EST) Subject: [dovecot] Re: [bincimap] Re: Re: bincimap From: seth vidal To: Andreas Aardal Hanssen Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Organization: Message-Id: <1045505809.23411.93.camel@binkley> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-0) Date: 17 Feb 2003 13:16:50 -0500 Content-Transfer-Encoding: 7bit X-archive-position: 290 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 290 Status: O Content-Length: 1566 > I agree with you. > > But any shared mailbox format that makes assumptions on the type of > locking used by other accessors, and does not provide a standard locking > mechanism bundled with the format specification, is b0rken. But nobody > ever claimed that mbox was anything else, did they? ;) mbox is yesterday's > format, and the only reason people cling to it is for convenience and "if > it works, don't fix it". Actually, there are a number of reasons why I still have mbox format. Most of them are legacy. But keep in mind this is 10yrs of legacy in the same format. That kind of inertia takes effort to break free of and in some cases there are political situations which make breaking free just about impossible. But thanks for only attributing laziness to those of us who need to use mbox. The reason I want an imap and pop server than can handle both mbox and maildir is so I can gradually migrate my users over. I can take them in batches and move their mail spools to maildir w/o massively disrupting their normal activities. 200-400 users at 2-4 a day will take me 1/3 of a year. Doing them all in one day will take me a lifetime of cleaning up problems and also trying to explain to those above me why I put all of our users through it. > Nobody with their wits intact would come up with something as pathetic as > the mbox storage format in 2003. That's _my_ personal opinion on this > matter. We're not disputing that. But mbox is going to HAVE to be there for migration, otherwise you'll not be able to get the users moved over. -sv From tss@iki.fi Mon Feb 17 20:39:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 20:39:02 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E42942384D for ; Mon, 17 Feb 2003 20:39:01 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id A30D45E01F68; Mon, 17 Feb 2003 20:39:01 +0200 (EET) Subject: [dovecot] Re: [bincimap] Re: Re: bincimap From: Timo Sirainen To: Andreas Aardal Hanssen Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045507141.4601.450.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Feb 2003 20:39:01 +0200 X-archive-position: 291 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 291 Status: O Content-Length: 1668 On Mon, 2003-02-17 at 20:07, Andreas Aardal Hanssen wrote: > Now I will not claim that Maildir is indefinitely much better, but it's > almost, but not quite, much much better than mbox. The main difference is if there should be one file per message or one file per mailbox. Per-mailbox files are faster (less syscalls, less filesystem stress) as long as mails aren't being expunged from the middle of it. I'm still personally using mbox and I know I usually delete only mails that I've received recently so only small parts of the file needs to be rewritten. So which one is faster depends mostly on the user. I'm not sure about "better" argument. mbox needs a more work to make it work well. UW imapd supports also another flat file format "mbx" which should be more IMAP-friendly. UW imapd author also says that mbox is slow and changing to mbx would give a lot higher performance, but I think that's mostly commenting UW imapd implementation than mbox format itself. There are some ugly slowing hacks that have to be done, but they're not _that_ slow if implemented well. And that slowness shows just in CPU usage which is cheap in IMAP servers compared to I/O. > With Maildir there's no need to lock the depository when deleting or > delivering mails (even on NFS), but you can't store (append) a message > with a timestamp nor with flags without breaking consistency, I don't understand this. What's the problem with setting timestamp or flags when appending a message? You create it in tmp/ with wanted name and timestamp, then rename() it. > and servers > have to search for lost messages when an external client changes a flag. Yes, this is annoying. From dovecot@andreas.hanssen.name Mon Feb 17 20:59:00 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 20:59:00 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from krs-dhcp401.studby.uio.no (krs-dhcp054.studby.uio.no [129.240.106.84]) by danu.procontrol.fi (Postfix) with SMTP id B51692384D for ; Mon, 17 Feb 2003 20:59:00 +0200 (EET) Received: (qmail 10353 invoked by uid 500); 17 Feb 2003 18:59:18 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 17 Feb 2003 18:59:18 -0000 Date: Mon, 17 Feb 2003 19:59:17 +0100 (CET) From: Andreas Aardal Hanssen X-X-Sender: andreaha@krs-dhcp401.studby.uio.no To: dovecot@procontrol.fi Subject: [dovecot] Re: [bincimap] Re: Re: bincimap In-Reply-To: <1045507141.4601.450.camel@hurina> Message-ID: X-Sent-From-Infeline: Yes MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 292 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dovecot@andreas.hanssen.name Precedence: bulk X-list: dovecot X-UID: 292 Status: O Content-Length: 1869 On 17 Feb 2003, Timo Sirainen wrote: >On Mon, 2003-02-17 at 20:07, Andreas Aardal Hanssen wrote: >> With Maildir there's no need to lock the depository when deleting or >> delivering mails (even on NFS), but you can't store (append) a message >> with a timestamp nor with flags without breaking consistency, >I don't understand this. What's the problem with setting timestamp or >flags when appending a message? You create it in tmp/ with wanted name >and timestamp, then rename() it. You use the rename system call for this? From maildir-storage.c, line 325: while (rename(src, dest) < 0 && count < 2) { if (errno != EEXIST) { rename can never return EEXIST in errno. maildir-save.c, line 124. /* move the file into new/ directory - syncing will pick it up from there */ if (rename(tmp_path, new_path) == 0) failed = FALSE; Here you can lose emails if the new/ folder contains a message whose base name is equal. The only way to avoid this is: 1) use link and unlink, not rename 2) leave messages that have a time_t part equal to or higher than time(NULL). Anyway, Maildir has a strict consistency criteria which says that all messages that are linked from tmp/ into new/ _must_ use time(NULL) plus a number that is guaranteed not to lapse within one second, and which does not collide with other messages in new/. new/ is the single entry point into cur/, and messages in new/ can not be "older" than the messages in cur/. The simple reasoning for this is that you can never guarantee that there is no message in cur/ that has the same base name, but perhaps different flags. It follows that when moving a message from new/ to cur/, it is required that the server only picks messages that are older than one second. Andy -- Andreas Aardal Hanssen http://www.andreas.hanssen.name/gpg From dovecot@andreas.hanssen.name Mon Feb 17 21:03:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 21:03:02 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from krs-dhcp401.studby.uio.no (krs-dhcp054.studby.uio.no [129.240.106.84]) by danu.procontrol.fi (Postfix) with SMTP id E3E9A2384D for ; Mon, 17 Feb 2003 21:03:01 +0200 (EET) Received: (qmail 10377 invoked by uid 500); 17 Feb 2003 19:03:19 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 17 Feb 2003 19:03:19 -0000 Date: Mon, 17 Feb 2003 20:03:14 +0100 (CET) From: Andreas Aardal Hanssen X-X-Sender: andreaha@krs-dhcp401.studby.uio.no To: dovecot@procontrol.fi Subject: [dovecot] Re: [bincimap] Re: Re: bincimap In-Reply-To: Message-ID: X-Sent-From-Infeline: Yes MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 293 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dovecot@andreas.hanssen.name Precedence: bulk X-list: dovecot X-UID: 293 Status: O On Mon, 17 Feb 2003, Andreas Aardal Hanssen wrote: >On 17 Feb 2003, Timo Sirainen wrote: >>On Mon, 2003-02-17 at 20:07, Andreas Aardal Hanssen wrote: >From maildir-storage.c, line 325: > while (rename(src, dest) < 0 && count < 2) { > if (errno != EEXIST) { >rename can never return EEXIST in errno. maildir-save.c, line 124. I'd like to stress here that rename can't return EEXIST when moving files. Andy -- Andreas Aardal Hanssen http://www.andreas.hanssen.name/gpg From tss@iki.fi Mon Feb 17 21:39:20 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 21:39:20 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BF7D123839 for ; Mon, 17 Feb 2003 21:39:20 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 86B5F5E01F68; Mon, 17 Feb 2003 21:39:20 +0200 (EET) Subject: [dovecot] Re: [bincimap] Re: Re: bincimap From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045510760.4604.485.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Feb 2003 21:39:20 +0200 X-archive-position: 294 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 294 Status: O Content-Length: 2778 On Mon, 2003-02-17 at 20:59, Andreas Aardal Hanssen wrote: > >From maildir-storage.c, line 325: > > while (rename(src, dest) < 0 && count < 2) { > if (errno != EEXIST) { > > rename can never return EEXIST in errno. Sure it can: ENOTEMPTY or EEXIST newpath is a non-empty directory, i.e., contains entries other than "." and "..". But looks like I've missed the ENOTEMPTY check there, adding. I'm renaming directories there, not files. > /* move the file into new/ directory - syncing will pick it > up from there */ > if (rename(tmp_path, new_path) == 0) > failed = FALSE; > > Here you can lose emails if the new/ folder contains a message whose base > name is equal. In theory, yes. In practice, I'd say not. It can only happen with broken MUAs, are there any? User could of course deliberately break it, but is there some gain in it? > The only way to avoid this is: > > 1) use link and unlink, not rename ..and if it crashes (or loses NFS link) between those calls, you'll suddenly see two mails. I prefer atomic operations. > Anyway, Maildir has a strict consistency criteria which says that all > messages that are linked from tmp/ into new/ _must_ use time(NULL) plus a > number that is guaranteed not to lapse within one second, and which does > not collide with other messages in new/. new/ is the single entry point > into cur/, and messages in new/ can not be "older" than the messages in > cur/. It only has requirement that the file name is unique. There's other ways to do that than time(NULL). http://cr.yp.to/proto/maildir.html lists some. > 2) leave messages that have a time_t part equal to or higher than > time(NULL). .. > The simple reasoning for this is that you can never guarantee that there > is no message in cur/ that has the same base name, but perhaps different > flags. It follows that when moving a message from new/ to cur/, it is > required that the server only picks messages that are older than one > second. I'm not sure what you mean by this.. What's special in files that were just created? What changes after it's older than one second? Or are you changing the base name when moving it to cur/? (What makes you sure that the new base name still doesn't exist?) I don't think you should rely on checking timestamps in any case. What if the maildir is accessed via NFS and some other computer with different time created the file? But about the flags, looks like maildir spec says they could be used only in cur/ directory, so I guess my code is broken because it allows setting them already in new/.. Well, I'll fix it anyway later by moving mails directly from tmp/ into cur/ when implementing UIDPLUS extension. From tss@iki.fi Mon Feb 17 21:48:13 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 21:48:13 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CE19F23839 for ; Mon, 17 Feb 2003 21:48:13 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 663845E01F68; Mon, 17 Feb 2003 21:48:13 +0200 (EET) Subject: [dovecot] Re: [bincimap] Re: Re: bincimap From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1045510760.4604.485.camel@hurina> References: <1045510760.4604.485.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045511293.4604.489.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Feb 2003 21:48:13 +0200 X-archive-position: 295 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 295 Status: O On Mon, 2003-02-17 at 21:39, Timo Sirainen wrote: > > /* move the file into new/ directory - syncing will pick it > > up from there */ > > if (rename(tmp_path, new_path) == 0) > > failed = FALSE; > > > > Here you can lose emails if the new/ folder contains a message whose base > > name is equal. > > In theory, yes. In practice, I'd say not. Courier and qmail-pop3d also use rename() instead of link()+unlink(). I'd say it's safe enough then. From dovecot@andreas.hanssen.name Mon Feb 17 22:07:24 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 22:07:24 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from krs-dhcp401.studby.uio.no (krs-dhcp054.studby.uio.no [129.240.106.84]) by danu.procontrol.fi (Postfix) with SMTP id 8F00023839 for ; Mon, 17 Feb 2003 22:07:24 +0200 (EET) Received: (qmail 11097 invoked by uid 500); 17 Feb 2003 20:07:42 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 17 Feb 2003 20:07:42 -0000 Date: Mon, 17 Feb 2003 21:07:42 +0100 (CET) From: Andreas Aardal Hanssen X-X-Sender: andreaha@krs-dhcp401.studby.uio.no To: dovecot@procontrol.fi Subject: [dovecot] Re: [bincimap] Re: Re: bincimap In-Reply-To: <1045510760.4604.485.camel@hurina> Message-ID: X-Sent-From-Infeline: Yes MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 296 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dovecot@andreas.hanssen.name Precedence: bulk X-list: dovecot X-UID: 296 Status: O Content-Length: 4615 On 17 Feb 2003, Timo Sirainen wrote: >On Mon, 2003-02-17 at 20:59, Andreas Aardal Hanssen wrote: >But looks like I've missed the ENOTEMPTY check there, adding. I'm >renaming directories there, not files. My bad. >> /* move the file into new/ directory - syncing will pick it >> up from there */ >> if (rename(tmp_path, new_path) == 0) >> failed = FALSE; >> Here you can lose emails if the new/ folder contains a message whose base >> name is equal. >In theory, yes. In practice, I'd say not. It can only happen with broken >MUAs, are there any? User could of course deliberately break it, but is >there some gain in it? It seems the qmail community disagrees with you here - I followed the discussion on the qmail mailing list. I guess the Dovecot community will be knocking on your door when important emails start disappearing unprovoked, and Dovecot is the service that deleted them. The bottom line is that you can not rely on other Maildir clients following your server's conventions. They will only oblige to the Maildir standard, and using Dovecot, emails will disappear. But there's no sweat - it's a simple fix. >> The only way to avoid this is: >> 1) use link and unlink, not rename >..and if it crashes (or loses NFS link) between those calls, you'll >suddenly see two mails. I prefer atomic operations. Well, then Dovecot has to have a way to communicate this to the sysadmin as an error condition. It's indefinitely better than deleting innocent (blog) users' emails. >> Anyway, Maildir has a strict consistency criteria which says that all >> messages that are linked from tmp/ into new/ _must_ use time(NULL) plus a >> number that is guaranteed not to lapse within one second, and which does >> not collide with other messages in new/. new/ is the single entry point >> into cur/, and messages in new/ can not be "older" than the messages in >> cur/. >It only has requirement that the file name is unique. There's other ways >to do that than time(NULL). http://cr.yp.to/proto/maildir.html lists >some. "A unique name has three pieces, separated by dots. On the left is the result of time() or the second counter from gettimeofday(). On the right is the result of gethostname(). (To deal with invalid host names, replace / with \057 and : with \072.) In the middle is a delivery identifier, discussed below." Quite clear. >> flags. It follows that when moving a message from new/ to cur/, it is >> required that the server only picks messages that are older than one >> second. >I'm not sure what you mean by this.. What's special in files that were >just created? What changes after it's older than one second? Or are you >changing the base name when moving it to cur/? (What makes you sure that >the new base name still doesn't exist?) 1) I create a message in tmp and link this to new, then unlink the original. 2) I create a new message in tmp. I'm about to link this message to new/, when suddenly 3) You move my original message from new/ to cur/. 4) I now complete my link from tmp/ to new/. 5) You move my new message from new/ to cur. Boom. My original message is gone. What's the point of only moving messages from new/ older than one second? All messages delivered to new/ in the same second will get a new middle-part name, sometimes with a _0, _1 ... _n next to the pid. When you move the messages from new/ to cur/ after one second, all new messages delivered to new/ will have a different time part. No collisions. But if you move the messages _before_ one second has lapsed, then a message in cur/ may be overwritten when you either 1) move the message from new/ to cur/ 2) change the flags of two messages whose base is equal. Using link avoids the loss of emails, and allows the sysadmin to clean up the server's buggy behavior. rename means bye-bye. >I don't think you should rely on checking timestamps in any case. What >if the maildir is accessed via NFS and some other computer with >different time created the file? Maildir relies on timestamps - like it or not. >But about the flags, looks like maildir spec says they could be used >only in cur/ directory, so I guess my code is broken because it allows >setting them already in new/.. Well, I'll fix it anyway later by moving >mails directly from tmp/ into cur/ when implementing UIDPLUS extension. You will lose emails if you move messages from tmp to cur directly. Simply because you have no idea wether or not messages in cur have the same base as your message in tmp. Andy -- Andreas Aardal Hanssen http://www.andreas.hanssen.name/gpg From dovecot@andreas.hanssen.name Mon Feb 17 22:21:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 22:21:27 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from krs-dhcp401.studby.uio.no (krs-dhcp054.studby.uio.no [129.240.106.84]) by danu.procontrol.fi (Postfix) with SMTP id 9D33823839 for ; Mon, 17 Feb 2003 22:21:27 +0200 (EET) Received: (qmail 11240 invoked by uid 500); 17 Feb 2003 20:21:45 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 17 Feb 2003 20:21:45 -0000 Date: Mon, 17 Feb 2003 21:21:44 +0100 (CET) From: Andreas Aardal Hanssen X-X-Sender: andreaha@krs-dhcp401.studby.uio.no To: dovecot@procontrol.fi Subject: [dovecot] Re: [bincimap] Re: Re: bincimap In-Reply-To: <1045511293.4604.489.camel@hurina> Message-ID: X-Sent-From-Infeline: Yes MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 297 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dovecot@andreas.hanssen.name Precedence: bulk X-list: dovecot X-UID: 297 Status: O Content-Length: 1281 On 17 Feb 2003, Timo Sirainen wrote: >On Mon, 2003-02-17 at 21:39, Timo Sirainen wrote: >> > /* move the file into new/ directory - syncing will pick it >> > up from there */ >> > if (rename(tmp_path, new_path) == 0) >> > failed = FALSE; >> > Here you can lose emails if the new/ folder contains a message whose base >> > name is equal. >> In theory, yes. In practice, I'd say not. >Courier and qmail-pop3d also use rename() instead of link()+unlink(). >I'd say it's safe enough then. Quoting a well known friend of ours, Mark Crispin - Two wrongs doesn't make one right. qmail-pop3d doesn't move messages from tmp/ to new/. It only moves messages from new/ to cur/. Messages _can_ get lost there, and it seems like Bernstein accepts this. If a message is lost in this operation, it basically means that a broken server/client has moved a message from new to cur earlier, without taking the one second into consideration. So where is the bug - qmail-pop3d or Dovecot? I'd say both. First and foremost the server that placed the original message in cur/ in the first place, in breach of Maildir, and qmail-pop3d for renaming that message instead of linking it. Andy -- Andreas Aardal Hanssen http://www.andreas.hanssen.name/gpg From tss@iki.fi Mon Feb 17 23:17:19 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 23:17:19 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 75C082384D for ; Mon, 17 Feb 2003 23:17:19 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 3305E5E01F68; Mon, 17 Feb 2003 23:17:19 +0200 (EET) Subject: [dovecot] Re: [bincimap] Re: Re: bincimap From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045516638.4604.563.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 17 Feb 2003 23:17:19 +0200 X-archive-position: 298 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 298 Status: O Content-Length: 2539 On Mon, 2003-02-17 at 22:07, Andreas Aardal Hanssen wrote: > It seems the qmail community disagrees with you here - I followed the > discussion on the qmail mailing list. Do you have URL or something? I didn't find it. > >> 1) use link and unlink, not rename > >..and if it crashes (or loses NFS link) between those calls, you'll > >suddenly see two mails. I prefer atomic operations. > > Well, then Dovecot has to have a way to communicate this to the sysadmin > as an error condition. It's indefinitely better than deleting innocent > (blog) users' emails. Reporting lost NFS link is possible, but what if the whole system crashes in the middle? > >It only has requirement that the file name is unique. There's other ways > >to do that than time(NULL). http://cr.yp.to/proto/maildir.html lists > >some. > > "A unique name has three pieces, separated by dots. On the left is the > result of time() or the second counter from gettimeofday(). Yeah, I should actually read things instead of skipping to interesting part :) > All messages delivered to new/ in the same second will get a new > middle-part name, sometimes with a _0, _1 ... _n next to the pid. When you > move the messages from new/ to cur/ after one second, all new messages > delivered to new/ will have a different time part. No collisions. But if > you move the messages _before_ one second has lapsed, then a message in > cur/ may be overwritten when you either Waiting just has several annoying problems. Either you really wait for one second (ugh), ignore the file (complicates or breaks some new mail checks) or handle it just as if it were in cur/ already (complicates again, you'd have to check if the missing file was actually in new/). > Using link avoids the loss of emails, and allows the sysadmin to clean up > the server's buggy behavior. rename means bye-bye. When moving from tmp/ to new/, I agree that I should have used link() (fixed in CVS) since there's no harm if the unlink() in tmp didn't occur. Moving from new/ to cur/ or renaming within cur/ is more tricky though. MUAs could see both of the mails at the same time which could lead to weird problems. > >I don't think you should rely on checking timestamps in any case. What > >if the maildir is accessed via NFS and some other computer with > >different time created the file? > > Maildir relies on timestamps - like it or not. Only system-wide timestamps since the filename contains hostname part. Nothing should break by itself if two systems have completely different times. From dovecot@andreas.hanssen.name Mon Feb 17 23:31:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Feb 2003 23:31:10 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from krs-dhcp401.studby.uio.no (krs-dhcp054.studby.uio.no [129.240.106.84]) by danu.procontrol.fi (Postfix) with SMTP id 144A72384D for ; Mon, 17 Feb 2003 23:31:10 +0200 (EET) Received: (qmail 11992 invoked by uid 500); 17 Feb 2003 21:31:28 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 17 Feb 2003 21:31:28 -0000 Date: Mon, 17 Feb 2003 22:31:28 +0100 (CET) From: Andreas Aardal Hanssen X-X-Sender: andreaha@krs-dhcp401.studby.uio.no To: dovecot@procontrol.fi Subject: [dovecot] Re: [bincimap] Re: Re: bincimap In-Reply-To: <1045516638.4604.563.camel@hurina> Message-ID: X-Sent-From-Infeline: Yes MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 299 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dovecot@andreas.hanssen.name Precedence: bulk X-list: dovecot X-UID: 299 Status: O Content-Length: 3203 On 17 Feb 2003, Timo Sirainen wrote: >On Mon, 2003-02-17 at 22:07, Andreas Aardal Hanssen wrote: >> It seems the qmail community disagrees with you here - I followed the >> discussion on the qmail mailing list. >Do you have URL or something? I didn't find it. Starts here: http://marc.theaimsgroup.com/?l=qmail&m=104250383122015&w=2 Sam of Courier-IMAP claimed that OpenBSD's random pid assignment broke qmail and Courier-IMAP. It certainly broke Courier-IMAP. >> >> 1) use link and unlink, not rename >> >..and if it crashes (or loses NFS link) between those calls, you'll >> >suddenly see two mails. I prefer atomic operations. >> Well, then Dovecot has to have a way to communicate this to the sysadmin >> as an error condition. It's indefinitely better than deleting innocent >> (blog) users' emails. >Reporting lost NFS link is possible, but what if the whole system >crashes in the middle? Then you have either one A link, two links A and B, or one link B. If you have A and B, the Maildir clients should detect this and report it. >> All messages delivered to new/ in the same second will get a new >> middle-part name, sometimes with a _0, _1 ... _n next to the pid. When you >> move the messages from new/ to cur/ after one second, all new messages >> delivered to new/ will have a different time part. No collisions. But if >> you move the messages _before_ one second has lapsed, then a message in >> cur/ may be overwritten when you either >Waiting just has several annoying problems. Either you really wait for >one second (ugh), ignore the file (complicates or breaks some new mail >checks) or handle it just as if it were in cur/ already (complicates >again, you'd have to check if the missing file was actually in new/). Yes! :-) Waiting one second is quiet intolerable. "Ignoring" the message until it's one second old is the only way that I've found that works. That means that you need to make some precautions with APPEND to currently selected mailbox, but I'm not sure how this works in Dovecot. :-/ >> Using link avoids the loss of emails, and allows the sysadmin to clean up >> the server's buggy behavior. rename means bye-bye. >When moving from tmp/ to new/, I agree that I should have used link() >(fixed in CVS) since there's no harm if the unlink() in tmp didn't >occur. >Moving from new/ to cur/ or renaming within cur/ is more tricky though. >MUAs could see both of the mails at the same time which could lead to >weird problems. Yes - if both mails are present, the client needs to 1) do something smart or 2) ignore the problem and let the sysadmin do something smart. >> >I don't think you should rely on checking timestamps in any case. What >> >if the maildir is accessed via NFS and some other computer with >> >different time created the file? >> Maildir relies on timestamps - like it or not. >Only system-wide timestamps since the filename contains hostname part. >Nothing should break by itself if two systems have completely different >times. True.. but I wish there was a better mailbox storage format out there without little buggers like this messing up the simple design. Andy -- Andreas Aardal Hanssen http://www.andreas.hanssen.name/gpg From tss@iki.fi Tue Feb 18 00:29:38 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Feb 2003 00:29:38 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5BDA623839 for ; Tue, 18 Feb 2003 00:29:38 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id E14745E01F68; Tue, 18 Feb 2003 00:29:37 +0200 (EET) Subject: [dovecot] Re: [bincimap] Re: Re: bincimap From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045520977.4604.579.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 18 Feb 2003 00:29:37 +0200 X-archive-position: 300 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 300 Status: O Content-Length: 1512 On Mon, 2003-02-17 at 23:31, Andreas Aardal Hanssen wrote: > >Do you have URL or something? I didn't find it. > > Starts here: > > http://marc.theaimsgroup.com/?l=qmail&m=104250383122015&w=2 > > Sam of Courier-IMAP claimed that OpenBSD's random pid assignment broke > qmail and Courier-IMAP. It certainly broke Courier-IMAP. Well, that helped some, except most of the suggested "fixes" didn't really help. I can think of one clean solution for this: Make sure the base filename is unique by using inode and/or making sure that process trying to APPEND has existed at least for a second and will exist for at least the next second. That still doesn't help if someone else screwed up and created multiple identical base names, but I'd really rather not use link+unlink. I think I will anyway make my maildir_sync() to check for basename conflicts and fix them. > >Moving from new/ to cur/ or renaming within cur/ is more tricky though. > >MUAs could see both of the mails at the same time which could lead to > >weird problems. > > Yes - if both mails are present, the client needs to 1) do something smart > or 2) ignore the problem and let the sysadmin do something smart. I don't mean that as any failure condition. That could happen in everyday mail usage if there's multiple clients accessing the same mailbox. One client scanning the maildir at the same time as another client is updating mail flag. The same mail could show up twice with readdir() even if the other one is soon after unlink()ed. From ianj@ian-justman.com Tue Feb 18 11:09:32 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Feb 2003 11:09:32 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from narshe.chocobo.org (dsl-207-126-72-242.dsl.netasset.net [207.126.72.242]) by danu.procontrol.fi (Postfix) with ESMTP id 14D7A2384D for ; Tue, 18 Feb 2003 11:09:32 +0200 (EET) Received: from zozo.intrn.chocobo.org (zozo.chocobo.org [207.126.72.244]) by narshe.chocobo.org (Postfix) with ESMTP id 2483A30FE72 for ; Tue, 18 Feb 2003 01:09:31 -0800 (PST) Received: by zozo.intrn.chocobo.org (Postfix, from userid 501) id BB4E586E3BF; Tue, 18 Feb 2003 01:09:30 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zozo.intrn.chocobo.org (Postfix) with ESMTP id 9AFF2449AD0 for ; Tue, 18 Feb 2003 01:09:30 -0800 (PST) Date: Tue, 18 Feb 2003 01:09:30 -0800 (PST) From: "Ian R. Justman" X-X-Sender: ianj@zozo.chocobo.org To: dovecot@procontrol.fi Subject: [dovecot] mbox vs maildir debate (was re: subject concerning binc imap, even though my original message never touched on it or maildir) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 301 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 301 Status: O Content-Length: 3036 Tried sending this message with the original topic On Mon, 17 Feb 2003, Andreas Aardal Hanssen wrote: > Hi, Ian. Cross-posting discussions like this is usually not appreciated > by those who subscribe to both foras, so I'll limit it to the Dovecot > list. Mea culpa. That was an inadvertent mess-up on my part; I did not see the headers, usually going by the list's reply-to headers which are usually there, but not this time. I only "cross-posted" it because the first time, it went to the wrong list (the dovecot list was a CC line). I then remailed it to the correct list. I will be more careful in future. > >Basically, if you open via IMAP using a server with a diffent locking > >Additionally, the number of mbox POP3 servers which Do Not Suck(R) is > >rather low right now. Timo finally introduced an mbox IMAP server which > > This I don't agree with. Most existing POP3 servers are quite ok, and > one POP3 Maildir server that is excellent and bug free since 1998, > qmail-pop3d, is quite a piece of art. You are missing my point. I am not talking about POP3 servers in general. See below. > >Not to mention, quite frankly, most mbox POP3 implementations suck > >pretty badly anyway. :P > > This I do agree with. Don't confuse POP3 servers in general with mbox > POP3 servers. The root, the source of the evil is the storage format > mbox. I am specifcally targeting mbox POP3 servers, of which there are several implementations; Qpopper, GNU POP3 Server, Cucipop, ipop3d to name a few. I am NOT speaking to maildir, nor to Cyrus, nor to SQL-enabled products. Solely to mbox. In fact, I even said that stuff that talks to maildir, in addition to Cyrus, offered the one thing for IMAP you could not get with mbox until Dovecot came along; something resembling robust dealing with multiple clients to the same mbox store. Nor am I particularly insterested in debating the merits of any format over mbox, a format I have stated I -KNOW- has annoying technical limitations and issues. While I would imagine other formats may have advantages over mbox, I continue to use mbox simply because of the sheer amount of stored mail I have accumulated on all my machines for the past seven years. My point is that Dovecot seems to be the most robust IMAP server I have come across at coping with mbox stores, especially if I am trying to access the same mailbox with two different clients, whether intentionally or inadvertnetly. My hope is that Dovecot's POP3 server will prove just as robust at dealing with mailboxes that may also be open by an IMAP client. Whether Dovecot, BINC IMAP, or even Courier IMAP (or whichever POP3 server for that matter) are better for maildir or anything else, I will leave that debate to those who actually use them. In the end, I have made a choice. Not necessarily the best one, but I made the choice with the full understanding of what that choice would entail. However, you never know. I may change my mind later. ;) --Ian. From kevin@kevinlee2001.f2s.com Tue Feb 18 18:56:50 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Feb 2003 18:56:50 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from server0027.freedom2surf.net (server0011.freedom2surf.net [194.106.56.14]) by danu.procontrol.fi (Postfix) with ESMTP id A345E2384D for ; Tue, 18 Feb 2003 18:56:50 +0200 (EET) Received: from kenny ([195.137.105.222]) by server0027.freedom2surf.net (8.12.6/8.12.6/Debian-7) with ESMTP id h1IGutP6012510 for ; Tue, 18 Feb 2003 16:57:03 GMT From: "Kevin Lee" To: Subject: [dovecot] IMAP folder problem Date: Tue, 18 Feb 2003 16:56:43 -0000 Message-ID: <001401c2d76e$b9d31cb0$0a00000a@kenny> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4510 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 X-archive-position: 302 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: kevin@kevinlee2001.f2s.com Precedence: bulk X-list: dovecot X-UID: 302 Status: O Hi, I have tried multiple dovecot versions (0.99 and CVS) and I keep getting the same problem. I connect to the IMAP server fine using outlook xp, but when I try to = create folders it creates them and then they just disappear. In the Maildir on = the IMAP server the folder are there but they don't show up using a client. = I basically can't do anything with folders, including copying outlook = folders to the server or create/delete folders. And when I move mail to = specific folders using procmail it just gets put back into the inbox again... I'm using freebsd 4.7-RELEASE My config file only adds the following lines... auth =3D plain auth_methods =3D plain auth_userinfo =3D password-file /etc/passwd.imap auth_user =3D root My password file (/etc/passwd.imp) only consists of kev:XXXXXchangedXX[13]:1001:1001::/home/kev:::: I've just created a folder /home/kev/Maildir where dovecot created the MailDir hierarchies.=20 Any help would be appreciated. Cheers Kev From tss@iki.fi Tue Feb 18 19:17:31 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Feb 2003 19:17:31 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E80062384D for ; Tue, 18 Feb 2003 19:17:30 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id A612E5E01F68; Tue, 18 Feb 2003 19:17:30 +0200 (EET) Subject: [dovecot] Re: IMAP folder problem From: Timo Sirainen To: Kevin Lee Cc: dovecot@procontrol.fi In-Reply-To: <001401c2d76e$b9d31cb0$0a00000a@kenny> References: <001401c2d76e$b9d31cb0$0a00000a@kenny> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045588650.4601.606.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 18 Feb 2003 19:17:30 +0200 X-archive-position: 303 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 303 Status: O On Tue, 2003-02-18 at 18:56, Kevin Lee wrote: > Hi, > I have tried multiple dovecot versions (0.99 and CVS) and I keep > getting the same problem. > > I connect to the IMAP server fine using outlook xp, but when I try to create > folders it creates them and then they just disappear. In the Maildir on the > IMAP server the folder are there but they don't show up using a client. I > basically can't do anything with folders, including copying outlook folders > to the server or create/delete folders. Just guessing, but maybe you also have to subscribe to the folders before they show up in Outlook XP? Also make sure you haven't set anything to root folder path. > And when I move mail to specific > folders using procmail it just gets put back into the inbox again... This sounds more strange. Dovecot at least doesn't move mails by itself. Is it Outlook moving them back? From ianj@ian-justman.com Tue Feb 18 19:48:59 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Feb 2003 19:48:59 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from narshe.chocobo.org (dsl-207-126-72-242.dsl.netasset.net [207.126.72.242]) by danu.procontrol.fi (Postfix) with ESMTP id 36F9323839 for ; Tue, 18 Feb 2003 19:48:59 +0200 (EET) Received: from zozo.intrn.chocobo.org (zozo.chocobo.org [207.126.72.244]) by narshe.chocobo.org (Postfix) with ESMTP id BD4A130FE72; Tue, 18 Feb 2003 09:48:57 -0800 (PST) Received: by zozo.intrn.chocobo.org (Postfix, from userid 501) id AA12586E3BF; Tue, 18 Feb 2003 09:48:55 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zozo.intrn.chocobo.org (Postfix) with ESMTP id 65165449ADD; Tue, 18 Feb 2003 09:48:55 -0800 (PST) Date: Tue, 18 Feb 2003 09:48:55 -0800 (PST) From: "Ian R. Justman" X-X-Sender: ianj@zozo.chocobo.org To: Timo Sirainen Cc: Kevin Lee , Subject: [dovecot] Re: IMAP folder problem In-Reply-To: <1045588650.4601.606.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 304 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 304 Status: O On 18 Feb 2003, Timo Sirainen wrote: > On Tue, 2003-02-18 at 18:56, Kevin Lee wrote: > > Hi, > > I have tried multiple dovecot versions (0.99 and CVS) and I keep > > getting the same problem. > > > > I connect to the IMAP server fine using outlook xp, but when I try to create > > folders it creates them and then they just disappear. In the Maildir on the > > IMAP server the folder are there but they don't show up using a client. I > > basically can't do anything with folders, including copying outlook folders > > to the server or create/delete folders. > > Just guessing, but maybe you also have to subscribe to the folders > before they show up in Outlook XP? Also make sure you haven't set > anything to root folder path. I know this to be the case with NS7's mail client. --Ian. From kevin@kevinlee2001.f2s.com Tue Feb 18 20:45:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Feb 2003 20:45:56 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from server0027.freedom2surf.net (server0011.freedom2surf.net [194.106.56.14]) by danu.procontrol.fi (Postfix) with ESMTP id A471B2384D for ; Tue, 18 Feb 2003 20:45:56 +0200 (EET) Received: from kenny ([195.137.105.222]) by server0027.freedom2surf.net (8.12.6/8.12.6/Debian-7) with ESMTP id h1IIk1P6023894 for ; Tue, 18 Feb 2003 18:46:09 GMT From: "Kevin Lee" To: Subject: [dovecot] Re: IMAP folder problem Date: Tue, 18 Feb 2003 18:45:49 -0000 Message-ID: <000201c2d77d$f7e180f0$0a00000a@kenny> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4510 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 X-archive-position: 305 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: kevin@kevinlee2001.f2s.com Precedence: bulk X-list: dovecot X-UID: 305 Status: O Content-Length: 1590 Hi, I've tried other outlook installs and setting. When I try to copy a folder to the imap account I get... "Can't move the items. The move operation could not be completed. It is possible that the destination server is unavailable or does not support subfolders." And when I try to copy mail to the imap folder (with subscribed folders) = I get:=20 "Can't move items. This IMAP command could not be sent to the server = before the connection was terminated" I get some corresponding errors in dovecots logs: " imap-master: Feb 18 18:31:41 Error: child 60038 (imap) killed with = signal 6 imap((null)): Feb 18 18:33:49 Panic: file cmd-append.c: line 25 (validate_args): assertion failed: ((unsigned int) ret =3D=3D count) imap-master: Feb 18 18:33:49 Error: child 60042 (imap) killed with = signal 6 " related? > On Tue, 2003-02-18 at 18:56, Kevin Lee wrote: > > Hi, > > I have tried multiple dovecot versions (0.99 and CVS) and I keep > > getting the same problem. > > > > I connect to the IMAP server fine using outlook xp, but when I try = to create > > folders it creates them and then they just disappear. In the = Maildir on the > > IMAP server the folder are there but they don't show up using a = client. I > > basically can't do anything with folders, including copying outlook folders > > to the server or create/delete folders. > > Just guessing, but maybe you also have to subscribe to the folders > before they show up in Outlook XP? Also make sure you haven't set > anything to root folder path. I know this to be the case with NS7's mail client. --Ian. From tss@iki.fi Tue Feb 18 21:06:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Feb 2003 21:06:36 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4A0332384D for ; Tue, 18 Feb 2003 21:06:36 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id EA2CE5E01F68; Tue, 18 Feb 2003 21:06:35 +0200 (EET) Subject: [dovecot] Re: IMAP folder problem From: Timo Sirainen To: Kevin Lee Cc: dovecot@procontrol.fi In-Reply-To: <000201c2d77d$f7e180f0$0a00000a@kenny> References: <000201c2d77d$f7e180f0$0a00000a@kenny> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045595195.21737.10.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 18 Feb 2003 21:06:35 +0200 X-archive-position: 306 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 306 Status: O On Tue, 2003-02-18 at 20:45, Kevin Lee wrote: > I get some corresponding errors in dovecots logs: > > " > imap-master: Feb 18 18:31:41 Error: child 60038 (imap) killed with signal 6 > imap((null)): Feb 18 18:33:49 Panic: file cmd-append.c: line 25 > (validate_args): assertion failed: ((unsigned int) ret == count) > imap-master: Feb 18 18:33:49 Error: child 60042 (imap) killed with signal 6 > " > > related? Could well be. It looks like you're running Dovecot 0.97 which is almost half a year old and quite buggy. From tss@iki.fi Thu Feb 20 03:06:49 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Feb 2003 03:06:49 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B3B2F2384D for ; Thu, 20 Feb 2003 03:06:48 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id DA8005E01F68; Thu, 20 Feb 2003 03:06:47 +0200 (EET) Subject: [dovecot] 0.99.8-test7 From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045703207.16148.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 20 Feb 2003 03:06:47 +0200 X-archive-position: 307 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 307 Status: O OK, I really should release 0.99.8 final soon, but not just yet :) Mostly just documentation updates left I think. There's a few recent changes that might have some nasty bugs: - problems with copying messages from mbox to another should be fixed now - LIST and subscription handling rewritten. - "mail_read_mmaped = no" used to corrupt mboxes when expunging messages. It now enabled again by default, and it seems to be working. I did update my backups though :) Dovecot's LDAP support currently requires that it can read the userPassword field of every user. I'm not sure if I should support "authentication binds" that seems to be more standard way to do LDAP authentication. That's just slower, works only with plaintext authentication and makes my code more complex. From dave@tamos.net Thu Feb 20 05:10:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Feb 2003 05:10:55 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from grue.tamos.net (dsl093-083-029.wdc1.dsl.speakeasy.net [66.93.83.29]) by danu.procontrol.fi (Postfix) with ESMTP id 5CAE42384D for ; Thu, 20 Feb 2003 05:10:54 +0200 (EET) Received: (qmail 12550 invoked from network); 20 Feb 2003 03:10:50 -0000 Received: from unknown (HELO ?192.168.1.20?) (dave@127.0.0.1) by localhost with SMTP; 20 Feb 2003 03:10:50 -0000 Subject: [dovecot] Re: 0.99.8-test7 From: "David E. Storey" To: dovecot@procontrol.fi In-Reply-To: <1045703207.16148.19.camel@hurina> References: <1045703207.16148.19.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-V2G2IWply6qN6dlN+nVX" Organization: tamos Message-Id: <1045710658.23769.42.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 19 Feb 2003 22:10:58 -0500 X-archive-position: 308 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dave@tamos.net Precedence: bulk X-list: dovecot X-UID: 308 Status: O Content-Length: 1333 --=-V2G2IWply6qN6dlN+nVX Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2003-02-19 at 20:06, Timo Sirainen wrote: > Dovecot's LDAP support currently requires that it can read the > userPassword field of every user. I'm not sure if I should support=20 > "authentication binds" that seems to be more standard way to do LDAP > authentication. That's just slower, works only with plaintext > authentication and makes my code more complex. authentication binds are the only "across the board" method for authenticating users i know of. yes, they are slow. suppose i'm authenticating against active directory. i know of no way to expose the userPassword attribute in ad. personally, i wouldn't go near ad, but i don't really have much of a choice in the matter. at best, you could probably get compare rights. authentication binds mean i can support whatever hashing mechanism my ldap server supports without exposing the value itself. d! --=-V2G2IWply6qN6dlN+nVX Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA+VEdC+5sC2muyxOMRAosHAJ42h9gLkZosPVmS+ZhaSbe0XfcpfgCfZHFk mjMZa9AUNSHYjP6tbAIAGwM= =nJYW -----END PGP SIGNATURE----- --=-V2G2IWply6qN6dlN+nVX-- From timsn@thtree.com Fri Feb 21 02:37:58 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 21 Feb 2003 02:37:58 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from cedar.thtree.com (s216-232-27-178.bc.hsia.telus.net [216.232.27.178]) by danu.procontrol.fi (Postfix) with ESMTP id CAB2C23839 for ; Fri, 21 Feb 2003 02:37:57 +0200 (EET) Received: from timsn by cedar.thtree.com with local (Exim 4.04) id 18m1CO-0004os-00 for dovecot@procontrol.fi; Thu, 20 Feb 2003 16:37:56 -0800 Subject: [dovecot] Trouble setting up dovecot From: Tim Snider To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.3 (1.0.3-6) Date: 20 Feb 2003 16:37:56 -0800 Message-Id: <1045787876.18341.54.camel@cedar.thtree.com> Mime-Version: 1.0 X-archive-position: 309 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: timsn@thtree.com Precedence: bulk X-list: dovecot X-UID: 309 Status: O Content-Length: 2856 Hi, I'm new to the list but have been trying to get dovecot configured for the past week and a bit. I've gone through the list archives and solved a few of my problems, but most don't seem to be addressed. First off I want to say thanks for starting this project, I've been hoping that someone would start an IMAP/POP server with some flexibility in the way it's configured and provides both packages in one.I've tried setting up Courier once and found it onerous, UW was easier but forces a bunch of assumption that don't suit the way I wanted to configure virtual mail. I'd love to run dovecot, eventually with LDAP and Jamm, and Exim to handle my virtual domains, however I'm running into a fair number of problems and haven't had any luck getting past them. I'm running a RedHat 7.3 SMP server, with iptables for a firewall, so I've got several cards and thus IPs.I started out with dovecot 99.4 but noted that it was missing the LDAP, tried 99.8-test5 and am now working with 99.8-test7, both seem to have the same problems. I'm currently trying to setup a IMAP server on the inside of the firewall, 192.168.2.X. If I use just imap, turn of SSL/TLS I'm fine, and can do plaintext authentication via shadow, but I can't get PAM authentication working. If I turn on SSL(ssl_disable = no), neither the imap or the imaps respond and a netstat -tp shows that no process owns the socket PID/process = '-', often with characters in the Recv-Q. I've tried turning on all the debugging flags for configure on, --with-rawlog --enable-debug --enable-asserts --with-ssl=openssl as well as verbose_proctitle = yes, and auth_verbose = yes, setup logfiles /var/log/dovecot/messages, yet all I get are authorization messages. And I've noted that a number of them only show up after I've killed the dovecot process, so I'm wondering if there needs to be a bit of flushing somewhere? As well I've also tried to run "dovecot -F", with the log files commented out in the .conf file, but get nothing via stderr. I note that when I try the log_timestamp option, the dates sent from imap-login are completely incorrect and don't change, so I don't think the date is being read correctly. Is log_timestamp operational? One thing I'm not clear on is what process to run it under, I've setup a user/group 'dovecot', but does dovecot have to be a member of wheel? I've also noted in earlier versions you had things running via imapd-master, but that now seems to been replaced by "dovecot", is that correct? Is anyone else running dovecot on a SMP system? Any comments or suggestions? I do have development experience, but my Linux/UNIX programming is a bit rusty. I'd love to help make this a rocking product, but need some help getting it dovecot up and running. Any help is appreciated. Thanks, TJ timsn@thtree.com http://www.thtree.com/People/TJ/Resume.html From tss@iki.fi Fri Feb 21 03:08:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 21 Feb 2003 03:08:53 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 361A22384D for ; Fri, 21 Feb 2003 03:08:53 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id AF8C75E01F68; Fri, 21 Feb 2003 03:08:52 +0200 (EET) Subject: [dovecot] Re: Trouble setting up dovecot From: Timo Sirainen To: Tim Snider Cc: dovecot@procontrol.fi In-Reply-To: <1045787876.18341.54.camel@cedar.thtree.com> References: <1045787876.18341.54.camel@cedar.thtree.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045789732.25367.49.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 21 Feb 2003 03:08:52 +0200 X-archive-position: 310 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 310 Status: O Content-Length: 3211 On Fri, 2003-02-21 at 02:37, Tim Snider wrote: > I'm running a RedHat 7.3 SMP server, with iptables for a firewall, so > I've got several cards and thus IPs.I started out with dovecot 99.4 but > noted that it was missing the LDAP, tried 99.8-test5 and am now working > with 99.8-test7, both seem to have the same problems. Well, I'll put out -test8 now. There's a bit more fixes, although not for any of yours. > I'm currently trying to setup a IMAP server on the inside of the > firewall, 192.168.2.X. If I use just imap, turn of SSL/TLS I'm fine, > and can do plaintext authentication via shadow, but I can't get PAM > authentication working. What error messages does PAM give if auth_verbose = yes? Or is that just PAM configuration problem (pam_ldap?), nothing to do with Dovecot? > If I turn on SSL(ssl_disable = no), neither the imap or the imaps > respond and a netstat -tp shows that no process owns the socket > PID/process = '-', often with characters in the Recv-Q. But the dovecot processes exist? And the imap-login processes? Your certificates are ok? Maybe the processes are stuck at something.. Check if they call poll() every few seconds with strace -p? And what do you mean by doesn't respond - "connection refused" or does it just hang there? > I've tried turning on all the debugging flags for configure on, > --with-rawlog --enable-debug --enable-asserts --with-ssl=openssl > as well as verbose_proctitle = yes, and auth_verbose = yes, setup > logfiles /var/log/dovecot/messages, yet all I get are authorization > messages. And I've noted that a number of them only show up after I've > killed the dovecot process, so I'm wondering if there needs to be a bit > of flushing somewhere? I do call fflush() after each write to log. Killing with SIGTERM will do clean exit which may log more things, maybe it's just that? Also killing child processes makes master process log their exits. > As well I've also tried to run "dovecot -F", with the log files > commented out in the .conf file, but get nothing via stderr. Default is to log with syslog. If you want stderr, set log path to /dev/stderr. > I note that > when I try the log_timestamp option, the dates sent from imap-login are > completely incorrect and don't change, so I don't think the date is > being read correctly. Is log_timestamp operational? What messages do you even get from imap-login? Normally there should never be anything. I didn't anyway notice problems with log_timestamp, what format did you try? imap-logins are also chrooted by default. There used to be a bug that they couldn't get timezone right because of it, but that's the only time related problem I can think of. > One thing I'm not clear on is what process to run it under, I've setup a > user/group 'dovecot', but does dovecot have to be a member of wheel? You should run dovecot as root. The dovecot user should be used only for login processes (defined in config file), and it shouldn't be in wheel group. Actually I think it even refuses to run if it's in wheel group (or gid 0). > I've also noted in earlier versions you had things running via > imapd-master, but that now seems to been replaced by "dovecot", is that > correct? Yes. From jpeterson275@attbi.com Sun Feb 23 01:16:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 23 Feb 2003 01:16:54 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc52.attbi.com (rwcrmhc52.attbi.com [216.148.227.88]) by danu.procontrol.fi (Postfix) with ESMTP id 107FC2384D for ; Sun, 23 Feb 2003 01:16:54 +0200 (EET) Received: from attbi.com (12-228-160-142.client.attbi.com[12.228.160.142]) by rwcrmhc52.attbi.com (rwcrmhc52) with SMTP id <2003022223165105200fo5h6e>; Sat, 22 Feb 2003 23:16:51 +0000 Message-ID: <3E5804E0.1040100@attbi.com> Date: Sat, 22 Feb 2003 15:16:48 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] ./autogen.sh Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 311 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 311 Status: O CVS update @ Sat Feb 22 15:14:52 PST 2003 When ./autogen.sh is run, I get: src/Makefile.am:5: required directory src/lib-settings does not exist Just thought someone would want to know. - Jesse From jpeterson275@attbi.com Sun Feb 23 01:41:45 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 23 Feb 2003 01:41:45 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc51.attbi.com (rwcrmhc51.attbi.com [204.127.198.38]) by danu.procontrol.fi (Postfix) with ESMTP id 20FF023839 for ; Sun, 23 Feb 2003 01:41:45 +0200 (EET) Received: from attbi.com (12-228-160-142.client.attbi.com[12.228.160.142]) by rwcrmhc51.attbi.com (rwcrmhc51) with SMTP id <2003022223414205100a7umoe>; Sat, 22 Feb 2003 23:41:42 +0000 Message-ID: <3E580AB3.7080708@attbi.com> Date: Sat, 22 Feb 2003 15:41:39 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: ./autogen.sh References: <3E5804E0.1040100@attbi.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 312 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 312 Status: O Seems my update was corrupted somehow, I just did a checkout and it worked fine. Jesse Peterson wrote: > CVS update @ Sat Feb 22 15:14:52 PST 2003 > > When ./autogen.sh is run, I get: > > src/Makefile.am:5: required directory src/lib-settings does not exist > > Just thought someone would want to know. > > - Jesse > > > -- Jesse Peterson / jesse@pixeltechs.com From tss@iki.fi Sun Feb 23 02:55:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 23 Feb 2003 02:55:15 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C773D2384D for ; Sun, 23 Feb 2003 02:55:15 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 269B75E01F68; Sun, 23 Feb 2003 02:55:14 +0200 (EET) Subject: [dovecot] Re: ./autogen.sh From: Timo Sirainen To: Jesse Peterson Cc: Dovecot Mail List In-Reply-To: <3E580AB3.7080708@attbi.com> References: <3E5804E0.1040100@attbi.com> <3E580AB3.7080708@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1045961714.13486.0.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 23 Feb 2003 02:55:14 +0200 X-archive-position: 313 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 313 Status: O On Sun, 2003-02-23 at 01:41, Jesse Peterson wrote: > Seems my update was corrupted somehow, I just did a checkout and it > worked fine. > > > src/Makefile.am:5: required directory src/lib-settings does not exist You probably didn't give -P option to cvs update, which is required to get new directories. From timsn@thtree.com Mon Feb 24 00:42:59 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 24 Feb 2003 00:42:59 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from cedar.thtree.com (s216-232-27-178.bc.hsia.telus.net [216.232.27.178]) by danu.procontrol.fi (Postfix) with ESMTP id 208292384D for ; Mon, 24 Feb 2003 00:42:59 +0200 (EET) Received: from timsn by cedar.thtree.com with local (Exim 4.04) id 18n4pk-0001AT-00; Sun, 23 Feb 2003 14:42:56 -0800 Subject: [dovecot] Re: Trouble setting up dovecot From: Tim Snider To: Timo Sirainen Cc: dovecot mailing list In-Reply-To: <1045799208.25366.161.camel@hurina> References: <1045787876.18341.54.camel@cedar.thtree.com> <1045789732.25367.49.camel@hurina> <1045795586.18343.93.camel@cedar.thtree.com> <1045799208.25366.161.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.3 (1.0.3-6) Date: 23 Feb 2003 14:42:56 -0800 Message-Id: <1046040176.4208.96.camel@cedar.thtree.com> Mime-Version: 1.0 X-archive-position: 314 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: timsn@thtree.com Precedence: bulk X-list: dovecot X-UID: 314 Status: O Content-Length: 3984 Thanks Timo, turns out I'm more of a rookie at sysconfiguring than I thought, so perhaps this helps identify stuff that a rookie wouldn't already know... On Thu, 2003-02-20 at 19:46, Timo Sirainen wrote: > > > I've not configured up LDAP on my server yet, so it's just plain PAM for > > now. I'm able to login fine with all my other apps, so I doubt it's a > > problem with PAM, but not impossible. I haven't done anything with PAM > > on this machine yet as it's live. I've been testing things out on > > another machine(NON-SMP/RH8), which I'll try tomorrow if I get a > > chance.) > > You have to have it configured in /etc/pam.d/imap. For example: > > auth required pam_unix.so nullok > account required pam_unix.so Thanks this makes more sense than the options you provide in doc/auth.txt, so you may wish to change that. On both RH7.3 and a RH8.0 box here, I don't have pwdfile, it's apparently been replaced by other functionality. > > > each imap-login is waiting at a read(7, > > That's the problem then. It really shouldn't be blocking there. Could > you get the backtrace to see where it's hanging? ie. run as root: > > gdb /usr/local/libexec/dovecot/imap-login > > and "bt" in it. It's hung up in SSL_CTX_use_PrivateKey() in ssl-proxy-openssl.c, which as you correctly surmised below, is due to a password protected key. I've located and used mkcert.sh. As a note the only docs for doc/mkcert.sh are halfway through the NEWS file and rapidly receeding as you add new releases, (congrats on the fast progress by the way!), however you might consider adding a short note about it to the doc/auth.txt or doc/configuration.txt file for those new to dovecot. > > > I do call fflush() after each write to log. Killing with SIGTERM will do > > > clean exit which may log more things, maybe it's just that? Also killing > > > child processes makes master process log their exits. > > > > I usually note the messages log (watched by a tail -f) show up after I > > kill the dovecot master process.(Kill -9) > > Depends on what the messages are I guess. But if you're kill -9ing the > master process, it's quite likely that the child processes will complain > about losing it. After playing a bit, I think that those messages were due to the kill -9, SIGTERM is nicer. I still end up with little in the way of verbose debugging messages, by my standards. Usually all I see is login and logout messages. Otherwise, I get the occasional lockfile message, which is something that I need to sort out with Exim, and completely on my end. > > dovecot: Feb 20 18:11:51 Info: Dovecot starting up > > imap-login: Dec 31 16:00:00 Fatal: Can't load private key file > > /usr/local/ssl/private/cedarintkey.pem: error:0906406D:PEM > > routines:DEF_CALLBACK:problems getting password > > Err, isn't this the reason why your SSL doesn't work? :) Or was that > just an example? If your private key is crypted with some password, > Dovecot can't use it at least currently.. Correct! Doh! I have been able to use imaps, since I built a non-passworded private key. I was using passworded keys that I'd built for Apache, and would eventually like to have one set of keys that I can reference for each virtual domain. Were you planning on something like the Apache startssl option? I can live with the constraint of one 'connection' key for now. Have you considered allowing each virtual domain to have it's own keys? Kind of difficult as the secure pipe to the server is already in place by the time the login name is seen... Kinda makes it tough for a true virtual presence without explicit assigned IP's. Hmmm, any plans for at least a different keys/identity per IP? If I understand the configuration file for now, it seems to be designed for one cert per machine. Thanks for the help, I've just got to sort out the lockfile differences between Exim and Dovecot and I should then be functional. After that I'll start using LDAP. TJ From tss@iki.fi Mon Feb 24 02:45:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 24 Feb 2003 02:45:54 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6E8E22384D for ; Mon, 24 Feb 2003 02:45:54 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 4795C5E01F94; Mon, 24 Feb 2003 02:45:54 +0200 (EET) Subject: [dovecot] Re: Trouble setting up dovecot From: Timo Sirainen To: Tim Snider Cc: dovecot mailing list In-Reply-To: <1046040176.4208.96.camel@cedar.thtree.com> References: <1045787876.18341.54.camel@cedar.thtree.com> <1045789732.25367.49.camel@hurina> <1045795586.18343.93.camel@cedar.thtree.com> <1045799208.25366.161.camel@hurina> <1046040176.4208.96.camel@cedar.thtree.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046047554.785.44.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 24 Feb 2003 02:45:54 +0200 X-archive-position: 315 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 315 Status: O Content-Length: 2109 On Mon, 2003-02-24 at 00:42, Tim Snider wrote: > > You have to have it configured in /etc/pam.d/imap. For example: > > > > auth required pam_unix.so nullok > > account required pam_unix.so > > Thanks this makes more sense than the options you provide in > doc/auth.txt, so you may wish to change that. I guess it would. The pwdfile was just an example I use elsewhere. It doesn't come with PAM by default. > It's hung up in SSL_CTX_use_PrivateKey() in ssl-proxy-openssl.c, which > as you correctly surmised below, is due to a password protected key. Well, have to fix this in some way. Hanging there isn't very nice way to report errors. > I've located and used mkcert.sh. As a note the only docs for > doc/mkcert.sh are halfway through the NEWS file and rapidly receeding as > you add new releases, (congrats on the fast progress by the way!), > however you might consider adding a short note about it to the > doc/auth.txt or doc/configuration.txt file for those new to dovecot. I've added "quick setup" to beginning of it which says that. > Correct! Doh! I have been able to use imaps, since I built a > non-passworded private key. I was using passworded keys that I'd built > for Apache, and would eventually like to have one set of keys that I can > reference for each virtual domain. Were you planning on something like > the Apache startssl option? I guess that would be nice feature. I'll add in TODO. > I can live with the constraint of one 'connection' key for now. Have you > considered allowing each virtual domain to have it's own keys? Kind of > difficult as the secure pipe to the server is already in place by the > time the login name is seen... Kinda makes it tough for a true virtual > presence without explicit assigned IP's. Hmmm, any plans for at least a > different keys/identity per IP? If I understand the configuration file > for now, it seems to be designed for one cert per machine. .. and I thought I could keep the configuration file simple. Well, it won't come before 1.0 anyway. You could always run multiple dovecots with different config files. From spamfiltered@gmx.net Tue Feb 25 00:42:45 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Feb 2003 00:42:45 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by danu.procontrol.fi (Postfix) with SMTP id A00012384D for ; Tue, 25 Feb 2003 00:42:45 +0200 (EET) Received: (qmail 19593 invoked by uid 0); 24 Feb 2003 22:42:43 -0000 Received: from p5081BCCA.dip.t-dialin.net (HELO data) (80.129.188.202) by mail.gmx.net (mp016-rz3) with SMTP; 24 Feb 2003 22:42:43 -0000 Content-Type: text/plain; charset="us-ascii" From: wolfgang To: dovecot@procontrol.fi Subject: [dovecot] Maildir plus mbox? Date: Mon, 24 Feb 2003 23:42:41 +0100 User-Agent: KMail/1.4.3 Organization: planet earth MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200302242342.41503.spamfiltered@gmx.net> X-archive-position: 316 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: spamfiltered@gmx.net Precedence: bulk X-list: dovecot X-UID: 316 Status: O is it possible with dovecot to have the inbox in Maildir format and addit= ional=20 imap folders in mbox format? regards, wolfgang From tss@iki.fi Tue Feb 25 01:06:31 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Feb 2003 01:06:31 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B26852384D for ; Tue, 25 Feb 2003 01:06:31 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 58BC05E01F94; Tue, 25 Feb 2003 01:06:31 +0200 (EET) Subject: [dovecot] Re: Maildir plus mbox? From: Timo Sirainen To: wolfgang Cc: dovecot@procontrol.fi In-Reply-To: <200302242342.41503.spamfiltered@gmx.net> References: <200302242342.41503.spamfiltered@gmx.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046127991.787.219.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 25 Feb 2003 01:06:31 +0200 X-archive-position: 317 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 317 Status: O On Tue, 2003-02-25 at 00:42, wolfgang wrote: > is it possible with dovecot to have the inbox in Maildir format and additional > imap folders in mbox format? Currently no, but it's mostly just because I haven't figured out how it should be configured. I think they should be in their own namespaces at least. So that default Maildir namespace has your INBOX, and then there would be #mbox/ namespace. That's how uw-imapd supports different mailbox formats. Dovecot doesn't have any namespace configuration support yet, but I'll probably add that soon. If you really wanted it now, it wouldn't be too difficult to kludge into the code though :) From spamfiltered@gmx.net Tue Feb 25 01:26:32 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Feb 2003 01:26:33 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.gmx.net (mail.gmx.net [213.165.65.60]) by danu.procontrol.fi (Postfix) with SMTP id 8FE622384D for ; Tue, 25 Feb 2003 01:26:32 +0200 (EET) Received: (qmail 11777 invoked by uid 0); 24 Feb 2003 23:26:31 -0000 Received: from p5081BCCA.dip.t-dialin.net (HELO data) (80.129.188.202) by mail.gmx.net (mp006-rz3) with SMTP; 24 Feb 2003 23:26:31 -0000 Content-Type: text/plain; charset="iso-8859-1" From: wolfgang Organization: planet earth To: dovecot@procontrol.fi Subject: [dovecot] Re: Maildir plus mbox? Date: Tue, 25 Feb 2003 00:26:29 +0100 User-Agent: KMail/1.4.3 References: <200302242342.41503.spamfiltered@gmx.net> <1046127991.787.219.camel@hurina> In-Reply-To: <1046127991.787.219.camel@hurina> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200302250026.29224.spamfiltered@gmx.net> X-archive-position: 318 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: spamfiltered@gmx.net Precedence: bulk X-list: dovecot X-UID: 318 Status: O In an older episode (Tuesday 25 February 2003 00:06), Timo Sirainen wrote= : > I think they should be in their own namespaces at least. So that defaul= t > Maildir namespace has your INBOX, and then there would be #mbox/ > namespace. That's how uw-imapd supports different mailbox formats. > Dovecot doesn't have any namespace configuration support yet, but I'll > probably add that soon. > > If you really wanted it now, it wouldn't be too difficult to kludge int= o > the code though :) what we would like to do, is have a Maildir INBOX on the server and have = the=20 users create/use additional mbox folders in ~/mail/ via their clients. wolfgang From tss@iki.fi Tue Feb 25 02:11:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Feb 2003 02:11:33 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8329723839 for ; Tue, 25 Feb 2003 02:11:33 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 498E45E01F94; Tue, 25 Feb 2003 02:11:33 +0200 (EET) Subject: [dovecot] Configuration file format changes From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046131893.787.273.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 25 Feb 2003 02:11:33 +0200 X-archive-position: 319 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 319 Status: O Content-Length: 1773 After tomorrow's 0.99.8 release I think it's time for a new config file format. It could be made backwards compatibile with the old format, but there would be new tree-like categories. I was thinking something like this: # global settings protocols = imap # "foo.server.org" is just descriptive name # settings inside server { .. } will override global ones. # groups (namespace, login settings, auth settings) aren't replaced # unless same name is used. server foo.server.org { imap_listen = 1.2.3.4 ssl_cert_file = /etc/ssl/certs/foo.cer # default namespace (no name) namespace { type = private mail = mbox:~/mail } # Have to quote so '#' won't be thought out as comment. # I think quoting should work everywhere actually.. namespace "#maildir" { type = private inbox = yes # this namespace contains INBOX mail = Maildir:~/Maildir } # override global auth default auth default { auth_mechanisms = plain digest-md5 auth_realms = foo.server.org auth_userdb = ldap /etc/dovecot-ldap.conf auth_passdb = ldap /etc/dovecot-ldap.conf } } server bar.server.org { imap_listen = 1.2.3.5 ssl_cert_file = /etc/ssl/certs/bar.cer namespace { type = private #mail = #autodetect } # shared mailboxes between users # eg. user/timo.sirainen/some-shared-folder namespace user { type = user mail = /home/%u/mail/shared } } server baz.server.org { imap_listen = 1.2.3.6 ssl_disable = yes # Only Courier-like INBOX namespace namespace INBOX { type = private } } # common namespace between all instances namespace shared { type = shared mail = mbox:/var/lists:INDEX=~/mail/.shared/ } auth default { auth_mechanisms = plain auth_userdb = passwd auth_passdb = pam } From tss@iki.fi Tue Feb 25 02:17:20 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Feb 2003 02:17:20 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 61ADF23839 for ; Tue, 25 Feb 2003 02:17:20 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 273545E01F94; Tue, 25 Feb 2003 02:17:20 +0200 (EET) Subject: [dovecot] Re: Configuration file format changes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1046131893.787.273.camel@hurina> References: <1046131893.787.273.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046132239.787.277.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 25 Feb 2003 02:17:20 +0200 X-archive-position: 320 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 320 Status: O On Tue, 2003-02-25 at 02:11, Timo Sirainen wrote: > server foo.server.org { Actually, not "server", but "group". This would allow things like: group imap { protocols = imap group foo.server.org { ... } group bar.server.org { ... } } group pop3 { protocols = pop3 ... } From tss@iki.fi Tue Feb 25 03:23:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Feb 2003 03:23:14 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A51672384D for ; Tue, 25 Feb 2003 03:23:14 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 665825E01F94; Tue, 25 Feb 2003 03:23:14 +0200 (EET) Subject: [dovecot] Re: Configuration file format changes From: Timo Sirainen To: Brad Figg Cc: dovecot@procontrol.fi In-Reply-To: <3E5ABF46.8020005@triplepoint.com> References: <1046131893.787.273.camel@hurina> <1046132239.787.277.camel@hurina> <3E5ABF46.8020005@triplepoint.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046136194.788.287.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 25 Feb 2003 03:23:14 +0200 X-archive-position: 321 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 321 Status: O On Tue, 2003-02-25 at 02:56, Brad Figg wrote: > Just my $.02 (and that's probably overcharging). Anytime I need > a config file I use XML and an open source parser. I hate XML config files. Not going to happen. Ever. :) I think they're difficult to read with standard text editor. Even more difficult to modify. And creating read-only parser for just about any config file format doesn't take hardly any time. External XML libraries would also annoy people. From asf@void.at Tue Feb 25 10:30:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Feb 2003 10:30:51 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from ycpmailsrv01.ycn.com (ycpmailsrv01.ycn.com [212.88.160.6]) by danu.procontrol.fi (Postfix) with ESMTP id 8D74123839 for ; Tue, 25 Feb 2003 10:30:51 +0200 (EET) Received: from eris.void.at (212-88-187-152.ADSL.ycn.com [212.88.187.152]) by ycpmailsrv01.ycn.com (8.12.3/8.12.3/Debian -4) with ESMTP id h1P8NuvJ006000; Tue, 25 Feb 2003 09:23:56 +0100 Received: from asf by eris.void.at with local (Exim 3.36 #1 (Debian)) id 18naU2-0002U1-00; Tue, 25 Feb 2003 09:30:38 +0100 Mail-Copies-To: never X-Url: http://asf.void.at/ To: Timo Sirainen Cc: Brad Figg , dovecot@procontrol.fi Subject: [dovecot] Re: Configuration file format changes X-Attribution: asf X-Face: 3*3w/y?I6|`'CYW7F~m0]U1)L\|[x"?/V6^;s3FU#q|F'AL(3C?$eslHvAmR:KjT"&LZeqM 0wMS%HM` References: <1046131893.787.273.camel@hurina> <1046132239.787.277.camel@hurina> <3E5ABF46.8020005@triplepoint.com> <1046136194.788.287.camel@hurina> From: Andreas Fuchs Message-ID: <87ptpgsqxd.fsf@eris.void.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 25 Feb 2003 09:30:38 +0100 X-archive-position: 322 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: asf@void.at Precedence: bulk X-list: dovecot X-UID: 322 Status: O Today, Timo Sirainen wrote: > I hate XML config files. Not going to happen. Ever. :) > > I think they're difficult to read with standard text editor. Even more > difficult to modify. And creating read-only parser for just about any > config file format doesn't take hardly any time. External XML > libraries would also annoy people. Yay for sexp syntax! see http://www.complang.tuwien.ac.at/~schani/lispreader/ for a nice implementation of a suitable reader. Ha, ha, only serious (-: -- Andreas Fuchs, , asf@jabber.at, antifuchs From tss@iki.fi Tue Feb 25 23:33:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Feb 2003 23:33:15 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3E5C12384D for ; Tue, 25 Feb 2003 23:33:14 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 710275E01F94; Tue, 25 Feb 2003 23:33:13 +0200 (EET) Subject: [dovecot] 0.99.8 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046208793.30814.15.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 25 Feb 2003 23:33:13 +0200 X-archive-position: 323 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 323 Status: O Content-Length: 3088 Hope I didn't forget anything :) v0.99.8 2003-02-25 Timo Sirainen * NOTE: Configuration file has changed a bit: auth_userinfo was replaced by userdb and passdb. *_port were merged into *_listen. Disabling listening in imaps port is now done by changing protocols setting. * Maildir: .customflags location has changed for INBOX. If you have set any custom flags, move Maildir/.INBOX/.customflags into Maildir/.customflags or they will be lost. * mbox: Autodetect /var/mail/%u and /var/spool/mail/%u as INBOXes if they're found and mail_default_env isn't set. * passwd-file: File format changed a bit. If you used realm or mail fields, you'll have to fix the file. See doc/auth.txt for description of the format. + Fully featured POP3 server included. Disabled by default. + Support for LITERAL+, MULTIAPPEND, UNSELECT, IDLE, CHILDREN and LISTEXT extensions. + LDAP authentication support. + Internal API cleanups made Dovecot faster and take less memory + auth_verbose logs now all authentication failures + Support for Solaris 9 sendfilev() + New setting: mail_full_filesystem_access allows clients to access the whole filesystem by simply giving the path before the mailbox name (eg. SELECT ~user/mail/box, LIST "" /tmp/%). While this allows users to share mailboxes, it's not recommended since Dovecot's index files can't be safely shared. + New setting: client_workarounds. + Dynamically loadable authentication modules. Binary package builders should consider using it for at least LDAP. + mbox: Content-Length is saved now to each saved message, so it's now safe to have lines beginning with "From ". + mbox: mail_read_mmaped = no works with it now + Indexes can be kept in memory by adding :INDEX=MEMORY to MAIL environment. There's not much point to do this now though, since the UIDs won't be saved. - COPY now behaves as RFC2060 says: "If the COPY command is unsuccessful for any reason, server implementations MUST restore the destination mailbox to its state before the COPY attempt." - LIST and LSUB rewrite, should fix several bugs in them - maildir_copy_with_hardlinks = yes was broken. - mboxes in subfolders weren't selectable. - STORE didn't accept multiple flags without () around them - PLAIN SASL-authentication was a bit broken. - IMAP dates were parsed a few hours wrong - STATUS command removed \Recent flags from messages - Several bugfixes to SEARCH command, especially related to multiple search conditions - If auth/login process died unexpectedly at startup, the exit status or killing signal wasn't logged. - mbox parsing might have crashed sometimes - mbox: when saving mails, internal headers were allowed in input, sometimes causing problems (eg. duplicate headers) when appending and copying messages - mbox: X-Keywords headers were duplicated - Some small fixes to how messages are saved to Maildir - Next command after STARTTLS was ignored which left the connection stuck sometimes - Dovecot was pretty much broken with FreeBSD From tss@iki.fi Wed Feb 26 03:52:42 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Feb 2003 03:52:42 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DEC8623839 for ; Wed, 26 Feb 2003 03:52:41 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 21C6E5E01F94; Wed, 26 Feb 2003 03:52:40 +0200 (EET) Subject: [dovecot] inetd/xinetd/tcpserver support From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046224359.30815.36.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Feb 2003 03:52:40 +0200 X-archive-position: 324 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 324 Status: O I was just thinking how they could be easily supported. This would work, right? : imap stream tcp nowait root /usr/sbin/tcpd /usr/local/libexec/dovecot/imap-login imaps stream tcp nowait root /usr/sbin/tcpd /usr/local/libexec/dovecot/imap-login --ssl imap-login would try to connect to master process using some named socket. If it couldn't, it would create the master process itself. Master process would work as usual (executes auth and imap processes), except it wouldn't be executing login processes. This wouldn't require much code changing, and it would still be using all the same privilege separations as the standalone version so it would be just a secure. Only thing I'm wondering is if any of the TCP wrappers care about the created child processes? The master process would have to stay alive after the connection that created it dies. I guess I'll implement this soon and try if it works. From lfarkas@bnap.hu Wed Feb 26 10:58:31 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Feb 2003 10:58:31 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 75EC32384D for ; Wed, 26 Feb 2003 10:58:31 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 4E3AA75401D for ; Wed, 26 Feb 2003 09:59:03 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 4B1A63EF2 for ; Wed, 26 Feb 2003 09:58:29 +0100 (CET) Message-ID: <3E5C81BC.6090100@bnap.hu> Date: Wed, 26 Feb 2003 09:58:36 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2) Gecko/20021202 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: inetd/xinetd/tcpserver support References: <1046224359.30815.36.camel@hurina> In-Reply-To: <1046224359.30815.36.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 325 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 325 Status: O Content-Length: 1392 I always prefer standalone daemons, and as we see the tendency is that most server run as standalone (apache, vsftpd, ssh...). at the begining they has (x)inetd version later remove it... IMHO ip/tcp filtering should have done in a firewall or some fitering can be implemented in the standalone server too.. but this is just my 2c:-) Timo Sirainen wrote: > I was just thinking how they could be easily supported. This would work, > right? : > > imap stream tcp nowait root /usr/sbin/tcpd /usr/local/libexec/dovecot/imap-login > imaps stream tcp nowait root /usr/sbin/tcpd /usr/local/libexec/dovecot/imap-login --ssl > > imap-login would try to connect to master process using some named > socket. If it couldn't, it would create the master process itself. > Master process would work as usual (executes auth and imap processes), > except it wouldn't be executing login processes. > > This wouldn't require much code changing, and it would still be using > all the same privilege separations as the standalone version so it would > be just a secure. > > Only thing I'm wondering is if any of the TCP wrappers care about the > created child processes? The master process would have to stay alive > after the connection that created it dies. > > I guess I'll implement this soon and try if it works. > > > -- Levente "Si vis pacem para bellum!" From mem@mv.mv.com Wed Feb 26 23:04:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Feb 2003 23:04:56 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 2808A2384D for ; Wed, 26 Feb 2003 23:04:56 +0200 (EET) Received: (qmail 28075 invoked by uid 101); 26 Feb 2003 16:04:54 -0500 From: "Mark E. Mallett" Date: Wed, 26 Feb 2003 16:04:54 -0500 To: dovecot@procontrol.fi Subject: [dovecot] pop3: last, and auth plain Message-ID: <20030226160454.N19224@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i X-archive-position: 326 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 326 Status: O Hi- A couple of comments regarding the POP3 server (I realize the POP3 server is probably low priority though..) One problem is that the "LAST" command is not supported. Some mail clients end up downloading all messages every time because of this (or so I'm told). The biggest source of these remarks is people using the yahoo webmail front end. I wonder if this could be added? Also, under BSD/OS, the "auth plain" mechanism doesn't work. Perusing the mailing list archives, I see that the symptoms appear just like those that were reported earlier for another BSD system. I'm curious as to whether there has been any progress on that front? Yours, -mm- From tss@iki.fi Wed Feb 26 23:26:49 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Feb 2003 23:26:49 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0A9712384D for ; Wed, 26 Feb 2003 23:26:49 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id C895E5E01F94; Wed, 26 Feb 2003 23:26:48 +0200 (EET) Subject: [dovecot] Re: pop3: last, and auth plain From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030226160454.N19224@iridium.mv.net> References: <20030226160454.N19224@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046294808.30811.66.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Feb 2003 23:26:48 +0200 X-archive-position: 327 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 327 Status: O Content-Length: 1149 On Wed, 2003-02-26 at 23:04, Mark E. Mallett wrote: > A couple of comments regarding the POP3 server (I realize the POP3 > server is probably low priority though..) > > One problem is that the "LAST" command is not supported. Some mail > clients end up downloading all messages every time because of this > (or so I'm told). The biggest source of these remarks is people > using the yahoo webmail front end. I wonder if this could be added? http://www.remote.org/jochen/mail/info/pop3-last.html I could add support for it, but how exactly? Maybe return the previous message of the first unseen message? > Also, under BSD/OS, the "auth plain" mechanism doesn't work. Perusing > the mailing list archives, I see that the symptoms appear just like > those that were reported earlier for another BSD system. I'm curious > as to whether there has been any progress on that front? All BSD issues should have been fixed by now. I just tested with FreeBSD 5 and Linux, AUTH PLAIN worked just fine in both. Does USER+PASS work? Try enabling auth_verbose = yes? And what errors exactly do you see now? There's been several different BSD errors :) From ipswitch@apk.net Wed Feb 26 23:29:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Feb 2003 23:29:39 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from cleopatra.apk.net (cleopatra.apk.net [207.54.158.24]) by danu.procontrol.fi (Postfix) with ESMTP id 8537A2384D for ; Wed, 26 Feb 2003 23:29:39 +0200 (EET) Received: from [207.54.133.252] (helo=[10.1.3.2]) by cleopatra.apk.net with esmtp (Exim 4.12) id 18o9AG-0004MQ-00 for dovecot@procontrol.fi; Wed, 26 Feb 2003 16:32:32 -0500 Date: Wed, 26 Feb 2003 16:28:13 -0500 From: Stuart Krivis Reply-To: Stuart Krivis To: dovecot@procontrol.fi Subject: [dovecot] Re: inetd/xinetd/tcpserver support Message-ID: <8165265.1046276893@[10.1.3.2]> In-Reply-To: <3E5C81BC.6090100@bnap.hu> References: <1046224359.30815.36.camel@hurina> <3E5C81BC.6090100@bnap.hu> X-Mailer: Mulberry/3.0.0 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-archive-position: 328 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ipswitch@apk.net Precedence: bulk X-list: dovecot X-UID: 328 Status: O Content-Length: 1374 --On Wednesday, February 26, 2003 9:58 AM +0100 Farkas Levente wrote: > I always prefer standalone daemons, and as we see the tendency is that > most server run as standalone (apache, vsftpd, ssh...). at the begining > they has (x)inetd version later remove it... IMHO ip/tcp filtering should > have done in a firewall or some fitering can be implemented in the > standalone server too.. but this is just my 2c:-) Services that get heavily used can push inetd to its limits - or beyond. :-) Standalone is normally better in this case, with sendmail being a common example. >> >> imap stream tcp nowait root /usr/sbin/tcpd >> /usr/local/libexec/dovecot/imap-login imaps stream tcp nowait root >> /usr/sbin/tcpd /usr/local/libexec/dovecot/imap-login --ssl I don't think this will work for tcpserver. :-) One advantage to using something sitting before the daemon is that you can depend on the other software for certain functionality and keep the daemon simple. I suppose xinetd and tcpwrappers would do the job, or djb's tcpserver. It just depends upon which flavor you like. :-) I'm coming to have more and more respect for djb's software, although there are still some things that make me shake my head. hehe One disadvantage to running daemons standalone is that they if they die, they stay that way. djb's daemontools can help there. From tss@iki.fi Wed Feb 26 23:36:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Feb 2003 23:36:04 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 77CF72384D for ; Wed, 26 Feb 2003 23:36:04 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 4A1855E01F94; Wed, 26 Feb 2003 23:36:04 +0200 (EET) Subject: [dovecot] Re: pop3: last, and auth plain From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <1046294808.30811.66.camel@hurina> References: <20030226160454.N19224@iridium.mv.net> <1046294808.30811.66.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046295364.30814.74.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Feb 2003 23:36:04 +0200 X-archive-position: 329 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 329 Status: O On Wed, 2003-02-26 at 23:26, Timo Sirainen wrote: > http://www.remote.org/jochen/mail/info/pop3-last.html > > I could add support for it, but how exactly? Maybe return the previous > message of the first unseen message? No, RFC1460 defined it differently. I think I'll do it like UW ipop3d. \Seen flags are used to track the "last" message. If RSET command is used, it would clear the \Seen flag from all messages. So it doesn't interact too nicely with IMAP. Maybe this should be optional.. From mem@mv.mv.com Wed Feb 26 23:45:40 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Feb 2003 23:45:41 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 4BDC823839 for ; Wed, 26 Feb 2003 23:45:40 +0200 (EET) Received: (qmail 23276 invoked by uid 101); 26 Feb 2003 16:45:38 -0500 From: "Mark E. Mallett" Date: Wed, 26 Feb 2003 16:45:38 -0500 To: Timo Sirainen Cc: "Mark E. Mallett" , dovecot@procontrol.fi Subject: [dovecot] Re: pop3: last, and auth plain Message-ID: <20030226164538.P19224@iridium.mv.net> References: <20030226160454.N19224@iridium.mv.net> <1046294808.30811.66.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <1046294808.30811.66.camel@hurina>; from tss@iki.fi on Wed, Feb 26, 2003 at 11:26:48PM +0200 X-archive-position: 330 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 330 Status: O Content-Length: 1754 On Wed, Feb 26, 2003 at 11:26:48PM +0200, Timo Sirainen wrote: > On Wed, 2003-02-26 at 23:04, Mark E. Mallett wrote: > > A couple of comments regarding the POP3 server (I realize the POP3 > > server is probably low priority though..) > > > > One problem is that the "LAST" command is not supported. Some mail > > clients end up downloading all messages every time because of this > > (or so I'm told). The biggest source of these remarks is people > > using the yahoo webmail front end. I wonder if this could be added? > > http://www.remote.org/jochen/mail/info/pop3-last.html Yes, of course. Duh. I was just having a conversation a few hours ago with somebody about how the concept of "mailbox order" is not always a valid one. Sometimes I fail to connect the dots. > > Also, under BSD/OS, the "auth plain" mechanism doesn't work. Perusing > > the mailing list archives, I see that the symptoms appear just like > > those that were reported earlier for another BSD system. I'm curious > > as to whether there has been any progress on that front? > > All BSD issues should have been fixed by now. I just tested with FreeBSD > 5 and Linux, AUTH PLAIN worked just fine in both. Does USER+PASS work? > Try enabling auth_verbose = yes? > > And what errors exactly do you see now? There's been several different > BSD errors :) I'll have to investigate further. Unfortunately the main symptom is that people call and say "it doesn't work" -- enabling auth_verbose may help. I had some indications that the dovecot-auth process died prematurely, but that could simply be operator error. BTW for a completely random remark: you might get configure to check whether "lchown()" exists and use "chown()" if it does not (in safe-mkdir.c) -mm- From tss@iki.fi Thu Feb 27 00:00:07 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 27 Feb 2003 00:00:08 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8D07123839 for ; Thu, 27 Feb 2003 00:00:07 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 2F7B65E01F94; Thu, 27 Feb 2003 00:00:07 +0200 (EET) Subject: [dovecot] Re: pop3: last, and auth plain From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030226164538.P19224@iridium.mv.net> References: <20030226160454.N19224@iridium.mv.net> <1046294808.30811.66.camel@hurina> <20030226164538.P19224@iridium.mv.net> Content-Type: multipart/mixed; boundary="=-5aQC1Iv8Ec5otzvmhZZr" Organization: Message-Id: <1046296806.30814.89.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 27 Feb 2003 00:00:07 +0200 X-archive-position: 331 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 331 Status: O Content-Length: 2126 --=-5aQC1Iv8Ec5otzvmhZZr Content-Type: text/plain Content-Transfer-Encoding: 7bit On Wed, 2003-02-26 at 23:45, Mark E. Mallett wrote: > > > Also, under BSD/OS, the "auth plain" mechanism doesn't work. Perusing > I had some indications that the dovecot-auth process died > prematurely, but that could simply be operator error. I noticed that too while testing. It crashes if client sends invalid data to auth plain. It shouldn't affect valid authentications though, except by aborting auth for other people who were just logging in. Well, I'll include the fixpatch. > BTW for a completely random remark: you might get configure to check > whether "lchown()" exists and use "chown()" if it does not > (in safe-mkdir.c) Oh, didn't notice lchown() wasn't posix. I'll make it use fchown() and fchmod(). --=-5aQC1Iv8Ec5otzvmhZZr Content-Disposition: attachment; filename=auth-crashfix.patch Content-Type: text/x-patch; name=auth-crashfix.patch; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Index: mech-plain.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/auth/mech-plain.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- mech-plain.c 18 Feb 2003 19:11:26 -0000 1.9 +++ mech-plain.c 26 Feb 2003 21:27:17 -0000 1.10 @@ -42,12 +42,17 @@ } } =20 - /* split and save user/realm */ - auth_request->user =3D p_strdup(auth_request->pool, authenid); - passdb->verify_plain(auth_request, pass, verify_callback); + if (authenid =3D=3D NULL) { + /* invalid input */ + mech_auth_finish(auth_request, NULL, 0, FALSE); + } else { + /* split and save user/realm */ + auth_request->user =3D p_strdup(auth_request->pool, authenid); + passdb->verify_plain(auth_request, pass, verify_callback); =20 - /* make sure it's cleared */ - safe_memset(pass, 0, strlen(pass)); + /* make sure it's cleared */ + safe_memset(pass, 0, strlen(pass)); + } return TRUE; } =20 --=-5aQC1Iv8Ec5otzvmhZZr-- From skvidal@phy.duke.edu Thu Feb 27 01:16:24 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 27 Feb 2003 01:16:24 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 3CD772384D for ; Thu, 27 Feb 2003 01:16:24 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id 871AE30198 for ; Wed, 26 Feb 2003 18:16:21 -0500 (EST) Subject: [dovecot] zlib support From: seth vidal To: dovecot@procontrol.fi Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-CXdjCwudM9u9+QeyDt39" Organization: Message-Id: <1046301401.16349.123.camel@opus> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-1) Date: 26 Feb 2003 18:16:41 -0500 X-archive-position: 332 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 332 Status: O --=-CXdjCwudM9u9+QeyDt39 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, Silly idea, Ever considered zlib support so the imap server could read through gzipped mbox files or gzipped maildir entries? -sv --=-CXdjCwudM9u9+QeyDt39 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA+XUrZ1Aj3x2mIbMcRAiE8AJwOeb8Vo+/gT/A/Qz06iB/0fBs2RgCglUQY krG7Hax1uyZTUF4J1Jk4ANQ= =/feb -----END PGP SIGNATURE----- --=-CXdjCwudM9u9+QeyDt39-- From tss@iki.fi Thu Feb 27 01:26:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 27 Feb 2003 01:26:48 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AC26E2384D for ; Thu, 27 Feb 2003 01:26:48 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 771875E01F94; Thu, 27 Feb 2003 01:26:48 +0200 (EET) Subject: [dovecot] Re: zlib support From: Timo Sirainen To: seth vidal Cc: dovecot@procontrol.fi In-Reply-To: <1046301401.16349.123.camel@opus> References: <1046301401.16349.123.camel@opus> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046302008.30814.96.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 27 Feb 2003 01:26:48 +0200 X-archive-position: 333 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 333 Status: O On Thu, 2003-02-27 at 01:16, seth vidal wrote: > Silly idea, Ever considered zlib support so the imap server could read > through gzipped mbox files or gzipped maildir entries? Yes, it's been in todo for some time now. mbox support would likely be read-only, read-write would require recreating the whole .gz file on updates. From ianj@ian-justman.com Thu Feb 27 02:18:12 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 27 Feb 2003 02:18:12 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sakura.ian-justman.com (sakura.ian-justman.com [207.126.64.32]) by danu.procontrol.fi (Postfix) with ESMTP id C900B23839 for ; Thu, 27 Feb 2003 02:18:11 +0200 (EET) Received: from localhost.localdomain (localhost [127.0.0.1]) by localhost.ian-justman.com (Postfix) with ESMTP id 09C40611288 for ; Wed, 26 Feb 2003 16:18:10 -0800 (PST) Received: from ian-justman.com (fenchurch.netasset.com [207.126.67.194]) by sakura.ian-justman.com (Postfix) with ESMTP id 11950611288 for ; Wed, 26 Feb 2003 16:18:08 -0800 (PST) Message-ID: <3E5D5940.9000606@ian-justman.com> Date: Wed, 26 Feb 2003 16:18:08 -0800 From: "Ian R. Justman" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20021120 Netscape/7.01 X-Accept-Language: en-us, en, ja MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: zlib support Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 334 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 334 Status: O Timo Sirainen wrote: > Yes, it's been in todo for some time now. mbox support would likely be > read-only, read-write would require recreating the whole .gz file on > updates. Actually, I wouldn't mind seeing something like this so I can compress up my old mail and perhaps store them on CD, for example. I tend to archive mailing list traffic by month (which I store in mbox format), so past months tend to not change much, if at all. :) While not an absolute necessity, it'd be nice to have. --Ian. From kahnert@mail.desy.de Thu Feb 27 20:02:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 27 Feb 2003 20:02:14 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1-195.desy.de (mailserver1.desy.de [131.169.87.109]) by danu.procontrol.fi (Postfix) with ESMTP id 35CE923839 for ; Thu, 27 Feb 2003 20:02:14 +0200 (EET) Received: from pcx3332.desy.de (pcx3332.desy.de [131.169.214.139]) by mail1-195.desy.de (8.8.5/8.8.5/R) with ESMTP id TAA14080 for ; Thu, 27 Feb 2003 19:02:12 +0100 (MET) Received: (from kahnert@localhost) by pcx3332.desy.de (8.11.3/8.8.5) id h1RI2D310522 for dovecot@procontrol.fi; Thu, 27 Feb 2003 19:02:13 +0100 Date: Thu, 27 Feb 2003 19:02:13 +0100 From: Juergen Kahnert To: dovecot@procontrol.fi Subject: [dovecot] IMAP Folder paths Message-ID: <20030227190212.F3097@pcx3332.desy.de> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.3.16i X-archive-position: 335 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: Juergen.Kahnert@DESY.de Precedence: bulk X-list: dovecot X-UID: 335 Status: O Hello, we like to use dovecot, but our old imapd used to store the paths of the folder in the file ~/.mailboxlist. This file contains something like this: mail/read mail/dovecot .netscape/imap/mailbox .Mail/foo Each line with a path to one mbox folder. And please pay attention that there is no path to the inbox, because this is stored on the server... Is there a way to use this files with dovecot? It would be a real pain to change this for a few thousand user... Do you see a chance of using such a file? Or is it already possible and I'd overlooked it? Or is it easy / hard to implement? kind regards, Jürgen Kahnert From skvidal@phy.duke.edu Thu Feb 27 20:23:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 27 Feb 2003 20:23:37 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id C166E23839 for ; Thu, 27 Feb 2003 20:23:36 +0200 (EET) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id 6495930376; Thu, 27 Feb 2003 13:23:35 -0500 (EST) Subject: [dovecot] Re: IMAP Folder paths From: seth vidal To: Juergen Kahnert Cc: dovecot@procontrol.fi In-Reply-To: <20030227190212.F3097@pcx3332.desy.de> References: <20030227190212.F3097@pcx3332.desy.de> Content-Type: text/plain Organization: Message-Id: <1046370236.20267.14.camel@opus> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-1) Date: 27 Feb 2003 13:23:56 -0500 Content-Transfer-Encoding: 7bit X-archive-position: 336 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 336 Status: O On Thu, 2003-02-27 at 13:02, Juergen Kahnert wrote: > Hello, > > we like to use dovecot, but our old imapd used to store the paths of the > folder in the file ~/.mailboxlist. This file contains something like > this: > > mail/read > mail/dovecot > .netscape/imap/mailbox > .Mail/foo > If it were eventually possible to use this file and add to it a tag of what type of mailbox it is (mbox or maildir) that'd be cool too. I know thats Hard(tm) but it would be cool. :) -sv From tss@iki.fi Thu Feb 27 21:19:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 27 Feb 2003 21:19:15 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 94CB02384D for ; Thu, 27 Feb 2003 21:19:15 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id B33E55E01F94; Thu, 27 Feb 2003 21:19:14 +0200 (EET) Subject: [dovecot] Re: IMAP Folder paths From: Timo Sirainen To: Juergen Kahnert Cc: dovecot@procontrol.fi In-Reply-To: <20030227190212.F3097@pcx3332.desy.de> References: <20030227190212.F3097@pcx3332.desy.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046373554.18310.4.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 27 Feb 2003 21:19:14 +0200 X-archive-position: 337 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 337 Status: O On Thu, 2003-02-27 at 20:02, Juergen Kahnert wrote: > we like to use dovecot, but our old imapd used to store the paths of the > folder in the file ~/.mailboxlist. This file contains something like > this: > > mail/read > mail/dovecot > .netscape/imap/mailbox > .Mail/foo That's UW-IMAP's subscription list. > Is there a way to use this files with dovecot? It would be a real pain > to change this for a few thousand user... Set "default_mail_env = mbox:~/" and rename those ".mailboxlist" files to ".subscriptions" file (or modify dovecot's sources to make it use the .mailboxlist directly). From kahnert@mail.desy.de Thu Feb 27 22:21:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 27 Feb 2003 22:21:28 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1-195.desy.de (mailserver1.desy.de [131.169.87.109]) by danu.procontrol.fi (Postfix) with ESMTP id 83EFF23839 for ; Thu, 27 Feb 2003 22:21:28 +0200 (EET) Received: from pcx3332.desy.de (pcx3332.desy.de [131.169.214.139]) by mail1-195.desy.de (8.8.5/8.8.5/R) with ESMTP id VAA29688 for ; Thu, 27 Feb 2003 21:21:28 +0100 (MET) Received: (from kahnert@localhost) by pcx3332.desy.de (8.11.3/8.8.5) id h1RKLRF10992 for dovecot@procontrol.fi; Thu, 27 Feb 2003 21:21:27 +0100 Date: Thu, 27 Feb 2003 21:21:27 +0100 From: Juergen Kahnert To: dovecot@procontrol.fi Subject: [dovecot] Re: IMAP Folder paths Message-ID: <20030227212127.A10927@pcx3332.desy.de> References: <20030227190212.F3097@pcx3332.desy.de> <1046373554.18310.4.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.3.16i In-Reply-To: <1046373554.18310.4.camel@hurina>; from tss@iki.fi on Thu, Feb 27, 2003 at 09:19:14PM +0200 X-archive-position: 338 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: Juergen.Kahnert@DESY.de Precedence: bulk X-list: dovecot X-UID: 338 Status: O On Thu, 27. Feb. 2003 at 21:19:14 +0200, Timo Sirainen wrote: > Set "default_mail_env = mbox:~/" and rename those ".mailboxlist" files > to ".subscriptions" file (or modify dovecot's sources to make it use the > .mailboxlist directly). Yes, that's what I searched for. I guess you'll add something to the config file to change SUBSCRIPTION_FILE_NAME - but so far I change it in the source. And with the new version I'm able to let the inbox in a separate directory and all other folders in the home directories of the users, right? That's perfect. Thanks Timo, good work. :) Jürgen Kahnert From alex@wankwood.com Sat Mar 1 07:23:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 01 Mar 2003 07:23:48 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from net-srv-0001.bvrd.com (mail.bvrd.com [216.216.73.130]) by danu.procontrol.fi (Postfix) with SMTP id E49D82384D for ; Sat, 1 Mar 2003 07:23:47 +0200 (EET) Received: (qmail 19396 invoked from network); 28 Feb 2003 23:23:47 -0600 Received: from psn01.birdview.com (HELO net-srv-0001.bvrd.com) (192.168.254.2) by psn01.birdview.com with SMTP; 28 Feb 2003 23:23:47 -0600 Date: Fri, 28 Feb 2003 23:23:46 -0600 (CST) From: Alex Howansky X-X-Sender: alex@net-srv-0001.bvrd.com To: dovecot@procontrol.fi Subject: [dovecot] patch for src/auth/db-ldap.c Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 339 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: alex@wankwood.com Precedence: bulk X-list: dovecot X-UID: 339 Status: O *** src/auth/db-ldap.c.orig Sat Mar 1 00:20:10 2003 --- src/auth/db-ldap.c Sat Mar 1 00:20:31 2003 *************** *** 35,42 **** DEF(SET_STR, pass_attrs), DEF(SET_STR, pass_filter), DEF(SET_STR, default_pass_scheme), ! DEF(SET_STR, user_global_uid), ! DEF(SET_STR, user_global_gid) }; struct ldap_settings default_ldap_settings = { --- 35,42 ---- DEF(SET_STR, pass_attrs), DEF(SET_STR, pass_filter), DEF(SET_STR, default_pass_scheme), ! DEF(SET_INT, user_global_uid), ! DEF(SET_INT, user_global_gid) }; struct ldap_settings default_ldap_settings = { -- Alex Howansky Wankwood Associates http://www.wankwood.com/ From dave@tamos.net Sat Mar 1 20:10:05 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 01 Mar 2003 20:10:05 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from grue.tamos.net (tamos.net [66.93.83.29]) by danu.procontrol.fi (Postfix) with ESMTP id 14EEA23839 for ; Sat, 1 Mar 2003 20:10:05 +0200 (EET) Received: (qmail 14197 invoked from network); 1 Mar 2003 18:10:03 -0000 Received: from unknown (HELO ?192.168.1.20?) (dave@66.93.83.29) by tamos.net with SMTP; 1 Mar 2003 18:10:03 -0000 Subject: [dovecot] pine/dovecot issues From: "David E. Storey" To: dovecot@procontrol.fi Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-K94EY0OZnYQ/AgA2IJf8" Organization: tamos Message-Id: <1046542211.1240.9.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 01 Mar 2003 13:10:12 -0500 X-archive-position: 340 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dave@tamos.net Precedence: bulk X-list: dovecot X-UID: 340 Status: O Content-Length: 1683 --=-K94EY0OZnYQ/AgA2IJf8 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Folks, I'm running into some issues with pine and dovecot. (dovecot is running mbox for now... plan to switch to maildir soon.) At first I thought it was a funky issue with the way I was using pine to access mailboxes. (I use rsh to invoke imap as pre-authenticated so when I switch to maildirs, I don't have to worry about pine being patched to support it.) But after switching over to using authenticated IMAP over port 143, it still had issues. I'm getting messages like: Junk in start of group Not an Address Junk at end of envelope Unknown Message property Thus far, it seems to only occur in pine. (Squirrelmail and evolution appear to be fine) Is it the client? Is it dovecot? is it easily fixable? It feels like some sort of escaping issue or parsing issue or something. I just don't know enough about IMAP to determine exactly what it is. I'm using dovecot v0.99.8, MAIL=3Dmbox:%h/Mail/:INBOX=3D%h/.mailbox I've just converted off of wu-imap in hopes of someday migrating to maildirs on that box. (anyone know of a good mbox to maildir conversion tool? I used to have on that worked fine, but I've since found a ton that don't work well for me at all. I have about a gig of email to backup and convert) d! --=-K94EY0OZnYQ/AgA2IJf8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA+YPeD+5sC2muyxOMRAuZ2AJ9g6te94e6Mp9JVvMueGbgY2rV2AwCdE24Q 3slxocRXfMeMzljC7Lkqeoo= =JHGo -----END PGP SIGNATURE----- --=-K94EY0OZnYQ/AgA2IJf8-- From ianj@ian-justman.com Sat Mar 1 20:42:43 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 01 Mar 2003 20:42:43 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from narshe.chocobo.org (dsl-207-126-72-242.dsl.netasset.net [207.126.72.242]) by danu.procontrol.fi (Postfix) with ESMTP id 1BE8C2384D for ; Sat, 1 Mar 2003 20:42:43 +0200 (EET) Received: from ian-justman.com (jidoor.chocobo.org [207.126.72.253]) by narshe.chocobo.org (Postfix) with ESMTP id B8C7C30FE42 for ; Sat, 1 Mar 2003 10:42:39 -0800 (PST) Message-ID: <3E60FF1F.5020308@ian-justman.com> Date: Sat, 01 Mar 2003 10:42:39 -0800 From: "Ian R. Justman" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20021120 Netscape/7.01 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: pine/dovecot issues References: <1046542211.1240.9.camel@localhost> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 341 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 341 Status: O Content-Length: 1592 David E. Storey wrote: > Folks, > > I'm running into some issues with pine and dovecot. (dovecot is running > mbox for now... plan to switch to maildir soon.) At first I thought it > was a funky issue with the way I was using pine to access mailboxes. (I > use rsh to invoke imap as pre-authenticated so when I switch to > maildirs, I don't have to worry about pine being patched to support it.) > But after switching over to using authenticated IMAP over port 143, it > still had issues. > > I'm getting messages like: > > Junk in start of group > Not an Address > Junk at end of envelope > Unknown Message property > > Thus far, it seems to only occur in pine. (Squirrelmail and evolution > appear to be fine) Is it the client? Is it dovecot? is it easily > fixable? It feels like some sort of escaping issue or parsing issue or > something. I just don't know enough about IMAP to determine exactly what > it is. Same here, though the only thing I have observed is that when you get a message with just the e-mail address, i.e. no GCOS field, in the To: field, the address field in the message list is blank. Normally with UW IMAP and Pine reading the spools directly, it will just happily replace that field with just the e-mail address. Minor thing, but thought I'd bring it up since we are on the topic of Pine and Dovecot since this issue only seems to affect Pine. Though in this case, I do not think that the mailstore format is the issue here. Since I also saw a headers section in the config file, it could be a peculiarity that could be fixed that way. --Ian. From ianj@ian-justman.com Sat Mar 1 20:47:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 01 Mar 2003 20:47:21 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from narshe.chocobo.org (dsl-207-126-72-242.dsl.netasset.net [207.126.72.242]) by danu.procontrol.fi (Postfix) with ESMTP id 0AAF12384D for ; Sat, 1 Mar 2003 20:47:21 +0200 (EET) Received: from ian-justman.com (jidoor.chocobo.org [207.126.72.253]) by narshe.chocobo.org (Postfix) with ESMTP id C968030FE42 for ; Sat, 1 Mar 2003 10:47:19 -0800 (PST) Message-ID: <3E610037.9040200@ian-justman.com> Date: Sat, 01 Mar 2003 10:47:19 -0800 From: "Ian R. Justman" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20021120 Netscape/7.01 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: pine/dovecot issues References: <1046542211.1240.9.camel@localhost> <3E60FF1F.5020308@ian-justman.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 342 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 342 Status: O Ian R. Justman wrote: > Same here, though the only thing I have observed is that when you get a > message with just the e-mail address, i.e. no GCOS field, in the To: > field, the address field in the message list is blank. Normally with UW > IMAP and Pine reading the spools directly, it will just happily replace > that field with just the e-mail address. Actually, my bad, the From: field gets this treatment, though the To: field gets affected when I'm sending something to a mailing list and the mailing list address is the only thing in the To: field on the message coming back. --Ian. From stefan@sels.com Sun Mar 2 21:26:49 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 02 Mar 2003 21:26:49 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from dsl-mail.kamp.net (mail.kamp-dsl.de [195.62.99.42]) by danu.procontrol.fi (Postfix) with SMTP id 67D712384D for ; Sun, 2 Mar 2003 21:26:49 +0200 (EET) Received: (qmail 23640 invoked by uid 505); 2 Mar 2003 19:26:54 -0000 Received: from stefan@sels.com by dsl-mail by uid 502 with qmail-scanner-1.14 (spamassassin: 2.43. Clear:. Processed in 0.019707 secs); 02 Mar 2003 19:26:54 -0000 Received: from unknown (HELO sels.com) (213.146.112.93) by dsl-mail.kamp.net with SMTP; 2 Mar 2003 19:26:54 -0000 Message-ID: <3E625B08.2000209@sels.com> Date: Sun, 02 Mar 2003 20:27:04 +0100 From: Stefan Sels User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2.1) Gecko/20021130 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] ldap config Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 343 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: stefan@sels.com Precedence: bulk X-list: dovecot X-UID: 343 Status: O Hi, how do I setup the config to use an ldap server for authentification ? I tried : auth_userdb = ldap:/usr/local/dovecot/etc/dovecot-ldap.conf auth_userdb = ldap:/usr/local/dovecot/etc/ auth_userdb = usr/local/dovecot/etc/dovecot-ldap.conf however I got an error. What is the correct syntax for the ldap config ? Regards, Stefan Sels From alex@wankwood.com Mon Mar 3 01:26:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 03 Mar 2003 01:26:48 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from net-srv-0001.bvrd.com (mail.bvrd.com [216.216.73.130]) by danu.procontrol.fi (Postfix) with SMTP id 800802384D for ; Mon, 3 Mar 2003 01:26:47 +0200 (EET) Received: (qmail 31340 invoked from network); 2 Mar 2003 17:26:45 -0600 Received: from psn01.birdview.com (HELO net-srv-0001.bvrd.com) (192.168.254.2) by psn01.birdview.com with SMTP; 2 Mar 2003 17:26:45 -0600 Date: Sun, 2 Mar 2003 17:26:45 -0600 (CST) From: Alex Howansky X-X-Sender: alex@net-srv-0001.bvrd.com To: dovecot@procontrol.fi Subject: [dovecot] Re: ldap config In-Reply-To: <3E625B08.2000209@sels.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 344 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: alex@wankwood.com Precedence: bulk X-list: dovecot X-UID: 344 Status: O > how do I setup the config to use an ldap server for authentification ? > > I tried : > auth_userdb = ldap:/usr/local/dovecot/etc/dovecot-ldap.conf > auth_userdb = ldap:/usr/local/dovecot/etc/ > auth_userdb = usr/local/dovecot/etc/dovecot-ldap.conf > > however I got an error. What is the correct syntax for the ldap config ? I believe it's: auth_userdb = ldap /usr/local/etc/dovecot-ldap.conf -- Alex Howansky Wankwood Associates http://www.wankwood.com/ From tss@iki.fi Tue Mar 4 03:09:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Mar 2003 03:09:28 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C9AE32384D for ; Tue, 4 Mar 2003 03:09:27 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 98AE35E01F94; Tue, 4 Mar 2003 03:09:27 +0200 (EET) Subject: [dovecot] Re: pine/dovecot issues From: Timo Sirainen To: "David E. Storey" Cc: dovecot@procontrol.fi In-Reply-To: <1046542211.1240.9.camel@localhost> References: <1046542211.1240.9.camel@localhost> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046740167.18310.1277.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 04 Mar 2003 03:09:27 +0200 X-archive-position: 345 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 345 Status: O On Sat, 2003-03-01 at 20:10, David E. Storey wrote: > I'm getting messages like: > > Junk in start of group > Not an Address > Junk at end of envelope > Unknown Message property Whops. Looks like I broke it pretty badly in 0.99.8. Several headers containing '"' and maybe '\' characters will break it. Maybe it's time for 0.99.9 earlier than I thought. From tss@iki.fi Tue Mar 4 03:24:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Mar 2003 03:24:16 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EC9172384D for ; Tue, 4 Mar 2003 03:24:15 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id B38D25E01F94; Tue, 4 Mar 2003 03:24:15 +0200 (EET) Subject: [dovecot] Re: pine/dovecot issues From: Timo Sirainen To: "Ian R. Justman" Cc: dovecot@procontrol.fi In-Reply-To: <3E610037.9040200@ian-justman.com> References: <1046542211.1240.9.camel@localhost> <3E60FF1F.5020308@ian-justman.com> <3E610037.9040200@ian-justman.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046741055.18310.1281.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 04 Mar 2003 03:24:15 +0200 X-archive-position: 346 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 346 Status: O On Sat, 2003-03-01 at 20:47, Ian R. Justman wrote: > > Same here, though the only thing I have observed is that when you get a > > message with just the e-mail address, i.e. no GCOS field, in the To: > > field, the address field in the message list is blank. Normally with UW > > IMAP and Pine reading the spools directly, it will just happily replace > > that field with just the e-mail address. > > Actually, my bad, the From: field gets this treatment, though the To: field > gets > affected when I'm sending something to a mailing list and the mailing list > address is the only thing in the To: field on the message coming back. I don't think this happens with 0.99.8 anymore since I changed Dovecot to return NIL instead of "" if the name doesn't exist. If you still see it with old mails that's probably because Dovecot has cached them into indexes - deleting them would fix it. From ianj@ian-justman.com Tue Mar 4 10:17:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Mar 2003 10:17:36 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from vector.chocobo.org (dsl-207-126-72-243.dsl.netasset.net [207.126.72.243]) by danu.procontrol.fi (Postfix) with ESMTP id 6AD4023839 for ; Tue, 4 Mar 2003 10:17:36 +0200 (EET) Received: from ian-justman.com (jidoor.chocobo.org [207.126.72.253]) by vector.chocobo.org (Postfix) with ESMTP id B16AEE2F44A for ; Tue, 4 Mar 2003 00:17:33 -0800 (PST) Message-ID: <3E64611D.8050301@ian-justman.com> Date: Tue, 04 Mar 2003 00:17:33 -0800 From: "Ian R. Justman" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20021120 Netscape/7.01 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Torture tests Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 347 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 347 Status: O Hi, all. I've been so impressed with Dovecot, I'm in the process of moving my mail over to it. In fact, one of my mailboxes got SO huge, it'll likely literally take more than a day to move it all over (in excess of 19,000 mails, about 140 megabytes). So far, the IMAP server shows absolutely no sign of crapping out yet. It should also be noted that I'm moving all this mail out of a Cyrus mailstore into an mbox folder on the same server using Pine. And at work, for my work mail, I recently installed Dovecot 0.99.8, using the POP2 port so I can have test it out while not disturbing my coworkers' ability to retrieve mail. So far, I have yet to see anything bad happen. My IMAP test is taking place under Debian GNU/Linux Woody and my POP3 test under FreeBSD 4.7-STABLE. Though any suggestions in what to keep an eye out for in either case? --Ian. From maildump@jp.pp.ru Tue Mar 4 19:56:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Mar 2003 20:29:51 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from btp212.dyn.ee (3eea18e5.cable.wanadoo.nl [62.234.24.229]) by danu.procontrol.fi (Postfix) with ESMTP id 6758023887 for ; Tue, 4 Mar 2003 19:56:27 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by btp212.dyn.ee (Postfix) with ESMTP id 6914212DC3; Tue, 4 Mar 2003 18:56:14 +0100 (CET) Received: from btp212.dyn.ee ([127.0.0.1]) by localhost (btp212.dyn.ee [127.0.0.1:10024]) (amavisd-new) with ESMTP id 05753-08; Tue, 4 Mar 2003 18:56:10 +0100 (CET) Received: from jp.linux (192.168.1.16 [192.168.1.16]) by btp212.dyn.ee (Postfix) with ESMTP id EE57F12D3C; Tue, 4 Mar 2003 18:56:09 +0100 (CET) Date: Tue, 4 Mar 2003 18:53:07 +0100 From: JP To: dovecot@procontrol.fi Subject: [dovecot] problem with COPY? Message-Id: <20030304185307.7c585230.maildump@jp.pp.ru> Organization: BTP212 X-Mailer: Sylpheed version 0.8.10claws54 (GTK+ 1.2.10; i686-pc-linux-gnu) X-Face: $%1K|-`ahl(-&?b8PZ2v|;z)#GO&6Hb08DYw[uQwBKh-vQn`i9.tLj{qM!UQ.[r-Cx')J}$ d^G9AO5~]UPs6hXAq,!nVW?dX3UMv>;'1iU-co{]~ X-Operating-System: Linux 2.4.21pre4-8mdk Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Scanned: by amavisd-new (spamassassin+clamav) on btp212.dyn.ee X-archive-position: 348 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: maildump@jp.pp.ru Precedence: bulk X-list: dovecot X-UID: 348 Status: O Content-Length: 3021 hi all, I've been trying to use dovecot (from cvs 03.mar.2003, linux 2.2.20, gcc 2.96, openssl 0.9.7a) as an replacement for uw-imap, and it seems to be doing its job, except for one thing: I have my mua (sylpheed-claws from cvs) set up so that it will sort message into certain(imap) directories. so when I check the mail in the INBOX, new mails will be processed automatically and, for example spamcop related emails are moved to their own 'folder'. imap session below. [STARTTLS and LOGIN stuff not included... no errors whatsoever there.] [18:06:39] IMAP4< 5 OK Logged in. [18:06:39] IMAP4> 6 SELECT INBOX [18:06:40] IMAP4< * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) [18:06:40] IMAP4< * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. [18:06:40] IMAP4< * 49 EXISTS [18:06:40] IMAP4< * 3 RECENT [18:06:40] IMAP4< * OK [UNSEEN 47] First unseen. [18:06:40] IMAP4< * OK [UIDVALIDITY 1046109663] UIDs valid [18:06:40] IMAP4< * OK [UIDNEXT 64] Predicted next UID [18:06:40] IMAP4< 6 OK [READ-WRITE] Select completed. [18:06:40] IMAP4> 7 UID SEARCH UID 1:* [18:06:40] IMAP4< * SEARCH 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 49 52 55 56 57 58 61 62 63 [18:06:40] IMAP4< 7 OK Search completed. [18:06:40] IMAP4> 8 STATUS INBOX (MESSAGES RECENT UIDNEXT UIDVALIDITY UNSEEN) [18:06:40] IMAP4< * STATUS "INBOX" (MESSAGES 49 RECENT 3 UIDNEXT 64 UIDVALIDITY 1046109663 UNSEEN 3) [18:06:40] IMAP4< 8 OK Status completed. [18:06:40] IMAP4> 9 UID FETCH 61:63 (UID FLAGS RFC822.SIZE BODY.PEEK[HEADER.FIELDS (Date From To Cc Newsgroups Subject Message-Id References In-Reply-To Content-Type Seen Status X-Status From)]) [18:06:40] IMAP4< * 47 FETCH (UID 61 FLAGS (\Recent) RFC822.SIZE 3111 BODY[HEADER.FIELDS (DATE FROM TO CC NEWSGROUPS SUBJECT MESSAGE-ID REFERENCES IN-REPLY-TO CONTENT-TYPE SEEN STATUS X-STATUS FROM)] {322} [18:06:40] IMAP4< * 48 FETCH (UID 62 FLAGS (\Recent) RFC822.SIZE 3111 BODY[HEADER.FIELDS (DATE FROM TO CC NEWSGROUPS SUBJECT MESSAGE-ID REFERENCES IN-REPLY-TO CONTENT-TYPE SEEN STATUS X-STATUS FROM)] {322} [18:06:40] IMAP4< * 49 FETCH (UID 63 FLAGS (\Recent) RFC822.SIZE 3109 BODY[HEADER.FIELDS (DATE FROM TO CC NEWSGROUPS SUBJECT MESSAGE-ID REFERENCES IN-REPLY-TO CONTENT-TYPE SEEN STATUS X-STATUS FROM)] {322} [18:06:40] IMAP4< 9 OK Fetch completed. [18:06:40] IMAP4> 10 STATUS Spamcop (MESSAGES RECENT UIDNEXT UIDVALIDITY UNSEEN) [18:06:40] IMAP4< * STATUS "Spamcop" (MESSAGES 14 RECENT 0 UIDNEXT 51 UIDVALIDITY 1046109859 UNSEEN 0) [18:06:40] IMAP4< 10 OK Status completed. [18:06:40] IMAP4> 11 UID COPY 61 Spamcop now after this, the conenction goes unresponsive and the following appears in the server log: Mar 4 18:06:42 btp212 imap(jp): file index-save.c: line 61 (write_with_lf): assertion failed:(size > 0 && size <= SSIZE_T_MAX) Mar 4 18:06:42 btp212 dovecot: child 6022 (imap) killed with signal 6 any ideas on what might be causing this? dovecot/mua/some else? regards, JP From tss@iki.fi Tue Mar 4 20:53:43 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Mar 2003 20:53:43 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A4EA82384D for ; Tue, 4 Mar 2003 20:53:43 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 640225E01F94; Tue, 4 Mar 2003 20:53:43 +0200 (EET) Subject: [dovecot] Re: problem with COPY? From: Timo Sirainen To: JP Cc: dovecot@procontrol.fi In-Reply-To: <20030304185307.7c585230.maildump@jp.pp.ru> References: <20030304185307.7c585230.maildump@jp.pp.ru> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046804023.20080.1463.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 04 Mar 2003 20:53:43 +0200 X-archive-position: 349 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 349 Status: O Content-Length: 1395 On Tue, 2003-03-04 at 19:53, JP wrote: > I have my mua (sylpheed-claws from cvs) Just a few comments on that first: > [18:06:39] IMAP4> 6 SELECT INBOX .. > [18:06:40] IMAP4> 8 STATUS INBOX (MESSAGES RECENT UIDNEXT UIDVALIDITY > UNSEEN) It's not considered good behaviour to ask STATUS of selected mailbox, some (old?) servers will break with that. There's also not much reason since the client already received everything except UNSEEN as reply to SELECT. > [18:06:40] IMAP4> 9 UID FETCH 61:63 (UID FLAGS RFC822.SIZE > BODY.PEEK[HEADER.FIELDS (Date From To Cc Newsgroups Subject Message-Id > References In-Reply-To Content-Type Seen Status X-Status From)]) Why is it asking From twice? Why is it asking Status and X-Status at all? These are likely to be fields internally used by mbox format and shouldn't be sent client even if it asks it (well, Dovecot does send them currently, but it will be fixed). I don't know what generates Seen-field, but I think that doesn't belong to Sylpheed either. > Mar 4 18:06:42 btp212 imap(jp): file index-save.c: line 61 > (write_with_lf): assertion failed:(size > 0 && size <= SSIZE_T_MAX) > Mar 4 18:06:42 btp212 dovecot: child 6022 (imap) killed with signal 6 The message probably hasn't been read yet and Dovecot tries to write empty Status-header which triggers the assert. Stupid assert, I should have just ignored if size == 0. Fixed in CVS. From tss@iki.fi Tue Mar 4 21:50:41 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 04 Mar 2003 21:50:41 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3782B23839 for ; Tue, 4 Mar 2003 21:50:41 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id F0DEC5E01F94; Tue, 4 Mar 2003 21:50:40 +0200 (EET) Subject: [dovecot] Re: Torture tests From: Timo Sirainen To: "Ian R. Justman" Cc: dovecot@procontrol.fi In-Reply-To: <3E64611D.8050301@ian-justman.com> References: <3E64611D.8050301@ian-justman.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046807440.18310.1500.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 04 Mar 2003 21:50:40 +0200 X-archive-position: 350 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 350 Status: O On Tue, 2003-03-04 at 10:17, Ian R. Justman wrote: > I've been so impressed with Dovecot, I'm in the process of moving my mail > over to it. In fact, one of my mailboxes got SO huge, it'll likely > literally take more than a day to move it all over (in excess of 19,000 > mails, about 140 megabytes). Well, I have 1,4GB mbox test file with around 367 000 messages :) I also tested 64bit file support with one >4GB mail file in Maildir. I don't think the amount of messages or their sizes should affect Dovecot. Except there's probably a few problems that could happen once UIDs are close to their maximum value (4GB), have to fix those some day. > It should also be noted that I'm moving all this mail out of a Cyrus > mailstore into an mbox folder on the same server using Pine. > > Though any suggestions in what to keep an eye out for in either case? Huge mbox files aren't very good idea if you plan to delete old messages or add new custom flags, they may result in pretty large copying of data. From maildump@jp.pp.ru Wed Mar 5 17:33:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 05 Mar 2003 17:33:54 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from btp212.dyn.ee (3eea169b.cable.wanadoo.nl [62.234.22.155]) by danu.procontrol.fi (Postfix) with ESMTP id C06912384D for ; Wed, 5 Mar 2003 17:33:53 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by btp212.dyn.ee (Postfix) with ESMTP id B8FBB12D35 for ; Wed, 5 Mar 2003 16:33:50 +0100 (CET) Received: from btp212.dyn.ee ([127.0.0.1]) by localhost (btp212.dyn.ee [127.0.0.1:10024]) (amavisd-new) with ESMTP id 16251-09 for ; Wed, 5 Mar 2003 16:33:48 +0100 (CET) Received: from jp.linux (192.168.1.16 [192.168.1.16]) by btp212.dyn.ee (Postfix) with ESMTP id 2F75312932 for ; Wed, 5 Mar 2003 16:33:48 +0100 (CET) Date: Wed, 5 Mar 2003 16:30:45 +0100 From: JP To: dovecot@procontrol.fi Subject: [dovecot] Re: problem with COPY? Message-Id: <20030305163045.10888830.maildump@jp.pp.ru> In-Reply-To: <1046804023.20080.1463.camel@hurina> References: <20030304185307.7c585230.maildump@jp.pp.ru> <1046804023.20080.1463.camel@hurina> Organization: BTP212 X-Mailer: Sylpheed version 0.8.10claws80 (GTK+ 1.2.10; i686-pc-linux-gnu) X-Face: $%1K|-`ahl(-&?b8PZ2v|;z)#GO&6Hb08DYw[uQwBKh-vQn`i9.tLj{qM!UQ.[r-Cx')J}$ d^G9AO5~]UPs6hXAq,!nVW?dX3UMv>;'1iU-co{]~ X-Operating-System: Linux 2.4.21pre4-8mdk Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Scanned: by amavisd-new (spamassassin+clamav) on btp212.dyn.ee X-archive-position: 351 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: maildump@jp.pp.ru Precedence: bulk X-list: dovecot X-UID: 351 Status: O Content-Length: 1399 Timo Sirainen : > On Tue, 2003-03-04 at 19:53, JP wrote: > > I have my mua (sylpheed-claws from cvs) > > Just a few comments on that first: > > It's not considered good behaviour to ask STATUS of selected mailbox, > some (old?) servers will break with that. There's also not much reason > since the client already received everything except UNSEEN as reply to > SELECT. > > Why is it asking From twice? Why is it asking Status and X-Status at > all? These are likely to be fields internally used by mbox format and > shouldn't be sent client even if it asks it (well, Dovecot does send > them currently, but it will be fixed). I don't know what generates > Seen-field, but I think that doesn't belong to Sylpheed either. seems there's still some bugs left to fix in sylpheed-claws too ;-) as i'm not a developer of sylpheed-claws, i have no clue why it asks for all those fields, and what it does with the information. > > Mar 4 18:06:42 btp212 imap(jp): file index-save.c: line 61 > > (write_with_lf): assertion failed:(size > 0 && size <= SSIZE_T_MAX) > > Mar 4 18:06:42 btp212 dovecot: child 6022 (imap) killed with signal 6 > > The message probably hasn't been read yet and Dovecot tries to write > empty Status-header which triggers the assert. Stupid assert, I should > have just ignored if size == 0. Fixed in CVS. indeed, the error is gone. thanks alot. regards, JP From charlieb-dovecot@e-smith.com Thu Mar 6 00:14:52 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 00:14:52 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 7980223839 for ; Thu, 6 Mar 2003 00:14:51 +0200 (EET) Received: (qmail 12159 invoked by uid 404); 5 Mar 2003 22:14:47 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 05 Mar 2003 17:14:47 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 05 Mar 2003 22:14:47 -0000 Received: (qmail 21094 invoked by uid 5008); 5 Mar 2003 22:14:47 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 5 Mar 2003 22:14:47 -0000 Date: Wed, 5 Mar 2003 17:14:47 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Stuart Krivis Cc: dovecot@procontrol.fi Subject: [dovecot] Re: inetd/xinetd/tcpserver support In-Reply-To: <8165265.1046276893@[10.1.3.2]> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 352 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 352 Status: O Content-Length: 1415 On Wed, 26 Feb 2003, Stuart Krivis wrote: > --On Wednesday, February 26, 2003 9:58 AM +0100 Farkas Levente > wrote: > > > I always prefer standalone daemons, and as we see the tendency is that > > most server run as standalone (apache, vsftpd, ssh...). at the begining > > they has (x)inetd version later remove it... IMHO ip/tcp filtering should > > have done in a firewall or some fitering can be implemented in the > > standalone server too.. but this is just my 2c:-) > > Services that get heavily used can push inetd to its limits - or beyond. :-) So avoid inetd. tcpserver does the job very well. > Standalone is normally better in this case, with sendmail being a common > example. sendmail is not such a good example to quote for anything, especially this week. > >> imap stream tcp nowait root /usr/sbin/tcpd > >> /usr/local/libexec/dovecot/imap-login imaps stream tcp nowait root > >> /usr/sbin/tcpd /usr/local/libexec/dovecot/imap-login --ssl > > I don't think this will work for tcpserver. :-) No, but a run script for using tcpserver would be something like: #! /bin/sh exec 2>&1 exec tcpserver \ -c 100 \ -u 0 -g 0\ -l 0 \ -HDRP \ 0 143 \ /usr/local/libexec/dovecot/imap-login > One advantage to using something sitting before the daemon is that you can > depend on the other software for certain functionality and keep the daemon > simple. Yep. -- Charlie From tss@iki.fi Thu Mar 6 02:00:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 02:00:17 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 99FCF23839 for ; Thu, 6 Mar 2003 02:00:17 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id DFFA25E01F94; Thu, 6 Mar 2003 02:00:15 +0200 (EET) Subject: [dovecot] Re: inetd/xinetd/tcpserver support From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046908815.18301.1591.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 06 Mar 2003 02:00:15 +0200 X-archive-position: 353 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 353 Status: O On Thu, 2003-03-06 at 00:14, Charlie Brady wrote: > No, but a run script for using tcpserver would be something like: > > #! /bin/sh > exec 2>&1 > exec tcpserver \ > -c 100 \ > -u 0 -g 0\ > -l 0 \ > -HDRP \ > 0 143 \ > /usr/local/libexec/dovecot/imap-login Anyone want to try this? CVS has now support for inetd at least. I've tested that this works: imap stream tcp nowait root /usr/sbin/tcpd /usr/local/libexec/dovecot/imap-login imaps stream tcp nowait root /usr/sbin/tcpd /usr/local/libexec/dovecot/imap-login --ssl pop3 stream tcp nowait root /usr/sbin/tcpd /usr/local/libexec/dovecot/pop3-login pop3s stream tcp nowait root /usr/sbin/tcpd /usr/local/libexec/dovecot/pop3-login --ssl There's also optional --group parameter to specify which one of the "login = xx" sections in config file to use. Hmm. Maybe I should add parameter to specify path for config file as well.. From lfarkas@bnap.hu Thu Mar 6 14:25:45 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 14:25:45 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id B3A7223839 for ; Thu, 6 Mar 2003 14:25:45 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 69404754024 for ; Thu, 6 Mar 2003 13:25:44 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id AED7D3EFB for ; Thu, 6 Mar 2003 13:25:41 +0100 (CET) Message-ID: <3E673E4E.2070407@bnap.hu> Date: Thu, 06 Mar 2003 13:25:50 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] ldap support Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 354 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 354 Status: O hi, it seem to me that dovecot support only v2 ldap protocol but openldap2.1 support only v3 (or you can enable v2 in the conf file, but it seems they wouldn't like to support it in the future). will dovecot support v3 ldap protocal? thanks. -- Levente "Si vis pacem para bellum!" From tss@iki.fi Thu Mar 6 15:20:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 15:20:33 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C2FD52384D for ; Thu, 6 Mar 2003 15:20:32 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 24CCD5E01F94; Thu, 6 Mar 2003 15:20:32 +0200 (EET) Subject: [dovecot] Re: ldap support From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <3E673E4E.2070407@bnap.hu> References: <3E673E4E.2070407@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046956831.943.24.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 06 Mar 2003 15:20:31 +0200 X-archive-position: 355 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 355 Status: O On Thu, 2003-03-06 at 14:25, Farkas Levente wrote: > it seem to me that dovecot support only v2 ldap protocol but openldap2.1 > support only v3 (or you can enable v2 in the conf file, but it seems > they wouldn't like to support it in the future). will dovecot support v3 > ldap protocal? Why do you think it supports only v2? I don't really know what their difference is, but it should be v3. From lfarkas@bnap.hu Thu Mar 6 17:42:25 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 17:42:25 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 898FB23839 for ; Thu, 6 Mar 2003 17:42:25 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id E626B754011 for ; Thu, 6 Mar 2003 16:42:26 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id A63F03EE4 for ; Thu, 6 Mar 2003 16:42:24 +0100 (CET) Message-ID: <3E676C6B.9070802@bnap.hu> Date: Thu, 06 Mar 2003 16:42:35 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] Re: ldap support References: <3E673E4E.2070407@bnap.hu> <1046956831.943.24.camel@hurina> In-Reply-To: <1046956831.943.24.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 356 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 356 Status: O Timo Sirainen wrote: > On Thu, 2003-03-06 at 14:25, Farkas Levente wrote: > >>it seem to me that dovecot support only v2 ldap protocol but openldap2.1 >>support only v3 (or you can enable v2 in the conf file, but it seems >>they wouldn't like to support it in the future). will dovecot support v3 >>ldap protocal? > > > Why do you think it supports only v2? I don't really know what their > difference is, but it should be v3. for log file: ------------------------- Mar 3 23:02:51 atom dovecot-auth: LDAP: ldap_simple_bind_s() failed (dn cn=proxyuser, ou=People, dc=bnap, dc=hu): Protocol error ------------------------- and when I add allow bind_v2 to slapd.conf the error message disappear... -- Levente "Si vis pacem para bellum!" From dave@tamos.net Thu Mar 6 18:08:41 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 18:08:41 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from grue.tamos.net (tamos.net [66.93.83.29]) by danu.procontrol.fi (Postfix) with ESMTP id A78E423839 for ; Thu, 6 Mar 2003 18:08:40 +0200 (EET) Received: (qmail 10063 invoked from network); 6 Mar 2003 16:08:38 -0000 Received: from unknown (HELO ws229.mclean.va.suprtek.com) (dave@66.93.83.29) by tamos.net with SMTP; 6 Mar 2003 16:08:38 -0000 Subject: [dovecot] Re: ldap support From: "David E. Storey" To: dovecot@procontrol.fi In-Reply-To: <3E676C6B.9070802@bnap.hu> References: <3E673E4E.2070407@bnap.hu> <1046956831.943.24.camel@hurina> <3E676C6B.9070802@bnap.hu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-EiDOiePtZqWbOu1Ad13l" Organization: tamos Message-Id: <1046966947.26387.27.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.1 Date: 06 Mar 2003 11:09:07 -0500 X-archive-position: 357 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dave@tamos.net Precedence: bulk X-list: dovecot X-UID: 357 Status: O Content-Length: 1295 --=-EiDOiePtZqWbOu1Ad13l Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I think it would be trivial to make dovecot support LDAPv3. All it would entail is modifying ldap_conn_open() in src/auth/db-ldap.c. code might look something like: int version =3D LDAP_VERSION3; if (ldap_set_option (conn->ld, LDAP_OPT_PROTOCOL_VERSION, &version)!=3D LDAP_OPT_SUCCESS) { i_fatal ("could not set LDAP_OPT_PROTOCOL_VERSION %d", version); } How Timo would want to integrate with configuration is up to him. But at any rate, if you really NEED LDAPv3, you now have it. d! On Thu, 2003-03-06 at 10:42, Farkas Levente wrote: > >>it seem to me that dovecot support only v2 ldap protocol but openldap2.= 1=20 > >>support only v3 (or you can enable v2 in the conf file, but it seems=20 > >>they wouldn't like to support it in the future). will dovecot support v= 3=20 > >>ldap protocal? --=-EiDOiePtZqWbOu1Ad13l Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA+Z3Kj+5sC2muyxOMRAiv4AJ9HBwRiiqhsY1QiNqhdzuuPx0dM6QCeOFWp cHf8c16tWXgmPyEYWqnwiY4= =kBxS -----END PGP SIGNATURE----- --=-EiDOiePtZqWbOu1Ad13l-- From cras@irccrew.org Thu Mar 6 18:16:06 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 18:16:06 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id D60FF23839 for ; Thu, 6 Mar 2003 18:16:06 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 310F04C0A0; Thu, 6 Mar 2003 18:16:06 +0200 (EET) Date: Thu, 6 Mar 2003 18:16:06 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: ldap support Message-ID: <20030306161606.GB9016@irccrew.org> References: <3E673E4E.2070407@bnap.hu> <1046956831.943.24.camel@hurina> <3E676C6B.9070802@bnap.hu> <1046966947.26387.27.camel@localhost> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <1046966947.26387.27.camel@localhost> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 358 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 358 Status: O On Thu, Mar 06, 2003 at 11:09:07AM -0500, David E. Storey wrote: > I think it would be trivial to make dovecot support LDAPv3. .. Thanks, I thought v3 was default since it's already years old. I'll add option for it to config file. From scott@xs4all.net Thu Mar 6 19:49:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 19:49:53 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from trouble.oink.org (trouble.oink.org [194.109.215.226]) by danu.procontrol.fi (Postfix) with ESMTP id AFA0B23839 for ; Thu, 6 Mar 2003 19:49:52 +0200 (EET) Received: from xs4all.net (vla.gotsiedikkie.nl [194.109.29.21]) by trouble.oink.org (Postfix) with ESMTP id 40C7F3EBC for ; Thu, 6 Mar 2003 18:49:51 +0100 (CET) Date: Thu, 6 Mar 2003 18:49:51 +0100 Mime-Version: 1.0 (Apple Message framework v551) Content-Type: text/plain; charset=US-ASCII; format=flowed Subject: [dovecot] OSX & Authentication From: Scott A.McIntyre To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <07F59BBE-4FFC-11D7-9568-000393AC9622@xs4all.net> X-Mailer: Apple Mail (2.551) X-archive-position: 359 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: scott@xs4all.net Precedence: bulk X-list: dovecot X-UID: 359 Status: O Content-Length: 1307 Hi, Taking a stab at getting OSX Server 10.2.4 running Dovecot -- with a minor tweak of replacing lchown() with chown() in the src/lib/sakfe-mkdir.c, it compiled and installed without any problems. However, oddness in authentication. It works once, but only once. I'm trying to use pam and have the following: auth required pam_securityserver.so auth sufficient pam_unix.so account required pam_unix.so In the dovecot.conf I have (amongst other things): auth_userdb = passwd auth_passdb = pam I start up dovecot and do: Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK dovecot ready. . login scott pass . OK Logged in. . logout * BYE Logging out . OK Logout completed. No problem. However, try it again and: Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK dovecot ready. . login scott pass . NO Authentication failed. . logout * BYE Logging out . OK Logout completed. Perhaps there's a better way to get dovecot playing under osx; I'd tried a number of ways of using pam, but perhaps there's a magic other option I've not got working yet. I do run the password server and my account name is using that as per the Workgroup Manager's settings (as opposed to Basic)... Any thoughts appreciated! Scott From alex@wankwood.com Thu Mar 6 21:32:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 21:32:02 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from net-srv-0001.bvrd.com (mail.bvrd.com [216.216.73.130]) by danu.procontrol.fi (Postfix) with SMTP id 4C3E12384D for ; Thu, 6 Mar 2003 21:32:01 +0200 (EET) Received: (qmail 31019 invoked from network); 6 Mar 2003 13:31:55 -0600 Received: from psn01.birdview.com (HELO net-srv-0001.bvrd.com) (192.168.254.2) by psn01.birdview.com with SMTP; 6 Mar 2003 13:31:55 -0600 Date: Thu, 6 Mar 2003 13:31:55 -0600 (CST) From: Alex Howansky X-X-Sender: alex@net-srv-0001.bvrd.com To: dovecot@procontrol.fi Subject: [dovecot] PostgreSQL support In-Reply-To: <1046908815.18301.1591.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 360 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: alex@wankwood.com Precedence: bulk X-list: dovecot X-UID: 360 Status: O Content-Length: 1240 Timo, I've written passdb and userdb modules for PostgreSQL. My C skills aren't that great, so I borrowed heavily from the LDAP modules, and I've never developed with automake/autoconf before, so I don't know how acceptable my patch to configure.in is. Anyway, it seems to work ok but I haven't done really heavy testing. If you can get past my poor C skills, I hope you will at least find my work useful as a base to expand from. The patch supports arbitrary queries which can use the %h/%n/%d macros, so there's no need to have specific table or field names. For example, in the configuration file, you'd specify something like: password_query = select password from users where userid = '%u' Like the LDAP module, it supports PLAIN, PLAIN-MD5, DIGEST-MD5, and CRYPT. It also tries to be secure by immediately rejecting any auth attempts that don't fit a very strict format. If the user-provided data contains any non-standard characters, the query returns more than one row, etc., auth will immediately fail. Are you interested in my patch, and if so, how should I send it? Does the list accept attachments? (The patch is against current CVS, by the way.) Regards, -- Alex Howansky Wankwood Associates http://www.wankwood.com/ From tss@iki.fi Thu Mar 6 21:58:50 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 21:58:50 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5CA9A23839 for ; Thu, 6 Mar 2003 21:58:50 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 8A04E5E01F94; Thu, 6 Mar 2003 21:58:49 +0200 (EET) Subject: [dovecot] Re: PostgreSQL support From: Timo Sirainen To: Alex Howansky Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046980729.931.47.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 06 Mar 2003 21:58:49 +0200 X-archive-position: 361 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 361 Status: O Content-Length: 1287 On Thu, 2003-03-06 at 21:31, Alex Howansky wrote: > I've written passdb and userdb modules for PostgreSQL. My C skills aren't that > great, so I borrowed heavily from the LDAP modules, and I've never developed > with automake/autoconf before, so I don't know how acceptable my patch to > configure.in is. Anyway, it seems to work ok but I haven't done really heavy > testing. If you can get past my poor C skills, I hope you will at least find my > work useful as a base to expand from. My plans for SQL support was to create a simple SQL wrapper library so that there wouldn't have to be multiple separate authentication modules for different SQL databases. The same library could be used also by SQL mail database code once I get around writing that. But since I haven't managed to write either one yet, I could include separate pgsql auth module for now. And I'd guess that code could be later just modified to use the SQL library instead of direct pgsql calls and renamed to be generic SQL auth module. > Are you interested in my patch, and if so, how should I send it? Does the list > accept attachments? (The patch is against current CVS, by the way.) List accepts attachments, but I'm not sure if anyone else here but me cares about it :) So "cvs diff -u" and mail it to me. From oskar@mail.solls.net Thu Mar 6 21:59:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 21:59:14 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from a.mx.solls.net (puffy.solls.net [212.87.130.100]) by danu.procontrol.fi (Postfix) with SMTP id E73A723839 for ; Thu, 6 Mar 2003 21:59:12 +0200 (EET) Received: (qmail 7062 invoked from network); 6 Mar 2003 19:59:06 -0000 Received: from unknown (HELO mail.solls.net) (127.0.0.1) by puffy.solls.net with SMTP; 6 Mar 2003 19:59:06 -0000 Received: from 217.81.141.223 (SquirrelMail authenticated user oskar@mail.solls.net) by www.solls.net with HTTP; Thu, 6 Mar 2003 20:59:06 +0100 (CET) Message-ID: <57801.217.81.141.223.1046980746.squirrel@www.solls.net> Date: Thu, 6 Mar 2003 20:59:06 +0100 (CET) Subject: [dovecot] vpopmail auth failure From: "Oskar Eyb" To: X-Priority: 3 Importance: Normal X-Mailer: SquirrelMail (version 1.2.10) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-archive-position: 362 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: oskar@mail.solls.net Precedence: bulk X-list: dovecot X-UID: 362 Status: O hello! when is try to use IMP with dovecot and vpopmail i receive the following error-msg: dovecot-auth: Mar 06 20:43:24 Info: vpopmail(test@$DOMAIN): unknown user But this user exists! Where i can search for the mistake? Greets, Oskar From tss@iki.fi Thu Mar 6 23:08:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 23:08:34 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1BC2F2384D for ; Thu, 6 Mar 2003 23:08:34 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 587DE5E01F94; Thu, 6 Mar 2003 23:08:33 +0200 (EET) Subject: [dovecot] Re: vpopmail auth failure From: Timo Sirainen To: Oskar Eyb Cc: dovecot@procontrol.fi In-Reply-To: <57801.217.81.141.223.1046980746.squirrel@www.solls.net> References: <57801.217.81.141.223.1046980746.squirrel@www.solls.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046984913.937.53.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 06 Mar 2003 23:08:33 +0200 X-archive-position: 363 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 363 Status: O On Thu, 2003-03-06 at 21:59, Oskar Eyb wrote: > when is try to use IMP with dovecot and vpopmail i receive the following > error-msg: > > dovecot-auth: Mar 06 20:43:24 Info: vpopmail(test@$DOMAIN): unknown user > > But this user exists! > Where i can search for the mistake? It looks like your client is trying to log in with username "test@$DOMAIN" .. do you really have domain named "$DOMAIN"? Dovecot at least hasn't added it. From tss@iki.fi Thu Mar 6 23:15:50 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 23:15:51 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C51B62384D for ; Thu, 6 Mar 2003 23:15:50 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 94FF85E01F94; Thu, 6 Mar 2003 23:15:50 +0200 (EET) Subject: [dovecot] Re: OSX & Authentication From: Timo Sirainen To: "Scott A.McIntyre" Cc: dovecot@procontrol.fi In-Reply-To: <07F59BBE-4FFC-11D7-9568-000393AC9622@xs4all.net> References: <07F59BBE-4FFC-11D7-9568-000393AC9622@xs4all.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046985350.937.60.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 06 Mar 2003 23:15:50 +0200 X-archive-position: 364 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 364 Status: O On Thu, 2003-03-06 at 19:49, Scott A.McIntyre wrote: > Taking a stab at getting OSX Server 10.2.4 running Dovecot -- with a > minor tweak of replacing lchown() with chown() in the > src/lib/sakfe-mkdir.c, it compiled and installed without any problems. This is fixed in CVS. > However, oddness in authentication. It works once, but only once. I'm > trying to use pam and have the following: Can you login with another user name? What if you kill dovecot-auth process, does that reset it so that you can login again? > auth required pam_securityserver.so What does this do? Does it contain user login limits of any kind? Just thinking if something is waiting for the process that did PAM checking to terminate before allowing to login again.. > . NO Authentication failed. Setting "auth_verbose = yes" in config file would give better error message. From mem@mv.mv.com Thu Mar 6 23:52:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 06 Mar 2003 23:52:14 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id B6C6223839 for ; Thu, 6 Mar 2003 23:52:11 +0200 (EET) Received: (qmail 17312 invoked by uid 101); 6 Mar 2003 16:52:08 -0500 From: "Mark E. Mallett" Date: Thu, 6 Mar 2003 16:52:08 -0500 To: dovecot@procontrol.fi Subject: [dovecot] Re: IMAP Folder paths Message-ID: <20030306165208.F14976@iridium.mv.net> References: <20030227190212.F3097@pcx3332.desy.de> <1046373554.18310.4.camel@hurina> <20030227212127.A10927@pcx3332.desy.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20030227212127.A10927@pcx3332.desy.de>; from Juergen.Kahnert@DESY.de on Thu, Feb 27, 2003 at 09:21:27PM +0100 X-archive-position: 365 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 365 Status: O Content-Length: 1412 On Thu, Feb 27, 2003 at 09:21:27PM +0100, Juergen Kahnert wrote: > On Thu, 27. Feb. 2003 at 21:19:14 +0200, Timo Sirainen wrote: > > Set "default_mail_env = mbox:~/" and rename those ".mailboxlist" files > > to ".subscriptions" file (or modify dovecot's sources to make it use the > > .mailboxlist directly). > > Yes, that's what I searched for. I guess you'll add something to the > config file to change SUBSCRIPTION_FILE_NAME - but so far I change it in > the source. > > And with the new version I'm able to let the inbox in a separate > directory and all other folders in the home directories of the users, > right? That's also what I'd hope for, but so far don't seem to see the solution. Just to step back: The notion of having the ~/Maildir/ be both a mailbox and the root of the folder tree is interesting (I understand it's not unique to dovecot), but limiting. Ideally I would like to be able to specify: - the default inbox (e.g. ~/Maildir/ or ~/Mailbox or /var/mail/user or whatever) - multiple paths to folder directories (e.g. ~/Mail or ~/Private or ~/Work/Mail or ~/Maildir/ or simply set it to ~/ and let the user browse their own home directory through an IMAP client and set up their own subscription). - have the imap server autorecognize the format of any mail folder that the client directs it to look at. Can this be done? Have I missed something? Yours, -mm- From oskar@mail.solls.net Fri Mar 7 00:01:06 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 07 Mar 2003 00:01:06 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from a.mx.solls.net (puffy.solls.net [212.87.130.100]) by danu.procontrol.fi (Postfix) with SMTP id 3C1D523839 for ; Fri, 7 Mar 2003 00:01:06 +0200 (EET) Received: (qmail 26229 invoked from network); 6 Mar 2003 22:00:59 -0000 Received: from unknown (HELO mail.solls.net) (127.0.0.1) by puffy.solls.net with SMTP; 6 Mar 2003 22:00:59 -0000 Received: from 217.81.136.209 (SquirrelMail authenticated user oskar@mail.solls.net) by www.solls.net with HTTP; Thu, 6 Mar 2003 23:00:59 +0100 (CET) Message-ID: <54514.217.81.136.209.1046988059.squirrel@www.solls.net> Date: Thu, 6 Mar 2003 23:00:59 +0100 (CET) Subject: [dovecot] Re: vpopmail auth failure From: "Oskar Eyb" To: In-Reply-To: <1046984913.937.53.camel@hurina> References: <57801.217.81.141.223.1046980746.squirrel@www.solls.net> <1046984913.937.53.camel@hurina> X-Priority: 3 Importance: Normal Cc: X-Mailer: SquirrelMail (version 1.2.10) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-archive-position: 366 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: oskar@mail.solls.net Precedence: bulk X-list: dovecot X-UID: 366 Status: O Timo Sirainen sagte: > It looks like your client is trying to log in with username > "test@$DOMAIN" .. do you really have domain named "$DOMAIN"? Dovecot at > least hasn't added it. oh sorry, i've replaced the real domain name with $DOMAIN. So the username seems to be correkt. -- Oskar From scott@xs4all.net Fri Mar 7 00:07:38 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 07 Mar 2003 00:07:38 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from trouble.oink.org (trouble.oink.org [194.109.215.226]) by danu.procontrol.fi (Postfix) with ESMTP id BBB7323839 for ; Fri, 7 Mar 2003 00:07:38 +0200 (EET) Received: from xs4all.net (vla.gotsiedikkie.nl [194.109.29.21]) by trouble.oink.org (Postfix) with ESMTP id C23323EBC; Thu, 6 Mar 2003 23:07:37 +0100 (CET) Date: Thu, 6 Mar 2003 23:07:37 +0100 Subject: [dovecot] Re: OSX & Authentication Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v551) Cc: dovecot@procontrol.fi To: Timo Sirainen From: Scott A.McIntyre In-Reply-To: <1046985350.937.60.camel@hurina> Message-Id: <0AAFC2BE-5020-11D7-9568-000393AC9622@xs4all.net> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.551) X-archive-position: 367 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: scott@xs4all.net Precedence: bulk X-list: dovecot X-UID: 367 Status: O Content-Length: 1880 > > Can you login with another user name? What if you kill dovecot-auth > process, does that reset it so that you can login again? No -- once dovecot-auth gets a failure back, it repeats failures for any other account logins. If I kill it and try to login again, it will work once, then same problem. >> auth required pam_securityserver.so > > What does this do? Does it contain user login limits of any kind? Just > thinking if something is waiting for the process that did PAM checking > to terminate before allowing to login again.. I stole that from the pam entry for SSH -- however, your questions got me thinking. I changed it to: auth required pam_unix.so auth sufficient pam_netinfo.so account required pam_unix.so And this will work, repeatedly, for accounts which are set to "Basic" authentication and not the password server; the Security Server (same thing as Password Server, I believe) is the element that controls minimum password length, validity period, etc. However, for a different account, which was converted to Password Server from Basic and then converted back again, I'm still unable to authenticate more than once. > >> . NO Authentication failed. > > Setting "auth_verbose = yes" in config file would give better error > message. Not during telnet, however, in the mail logs: Mar 6 21:41:55 alles imap-login: Login: scott [127.0.0.1] Mar 6 22:42:13 alles dovecot-auth: PAM unable to resolve symbol: pam_sm_authenticate Mar 6 22:42:13 alles dovecot-auth: PAM unable to resolve symbol: pam_sm_setcred Mar 6 22:42:13 alles dovecot-auth: PAM: pam_authenticate(scott) failed: Authentication failure Mar 6 21:42:14 alles imap-login: Aborted login [127.0.0.1] It would seem that the problem is tied up with how OSX and Pam and the Security server work -- I'll keep poking at it. Scott From tss@iki.fi Fri Mar 7 01:35:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 07 Mar 2003 01:35:16 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 83D322384D for ; Fri, 7 Mar 2003 01:35:16 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 413165E01F94; Fri, 7 Mar 2003 01:35:16 +0200 (EET) Subject: [dovecot] Re: vpopmail auth failure From: Timo Sirainen To: Oskar Eyb Cc: dovecot@procontrol.fi In-Reply-To: <54514.217.81.136.209.1046988059.squirrel@www.solls.net> References: <57801.217.81.141.223.1046980746.squirrel@www.solls.net> <1046984913.937.53.camel@hurina> <54514.217.81.136.209.1046988059.squirrel@www.solls.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046993715.931.109.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 07 Mar 2003 01:35:16 +0200 X-archive-position: 368 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 368 Status: O Content-Length: 1245 On Fri, 2003-03-07 at 00:00, Oskar Eyb wrote: > > It looks like your client is trying to log in with username > > "test@$DOMAIN" .. do you really have domain named "$DOMAIN"? Dovecot at > > least hasn't added it. > > oh sorry, i've replaced the real domain name with $DOMAIN. > So the username seems to be correkt. Well, unless I've somehow broken vpopmail support, the problem is somewhere in vpopmail side. You could also try if this patch shows different user@domain in log file: Index: userdb-vpopmail.c =================================================================== RCS file: /home/cvs/dovecot/src/auth/userdb-vpopmail.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- userdb-vpopmail.c 18 Feb 2003 19:11:26 -0000 1.4 +++ userdb-vpopmail.c 6 Mar 2003 23:31:43 -0000 1.5 @@ -34,8 +34,10 @@ vpw = vauth_getpw(vpop_user, vpop_domain); if (vpw == NULL) { - if (verbose) - i_info("vpopmail(%s): unknown user", user); + if (verbose) { + i_info("vpopmail(%s): unknown user (%s@%s)", + user, vpop_user, vpop_domain); + } return NULL; } From tss@iki.fi Fri Mar 7 01:58:42 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 07 Mar 2003 01:58:42 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6192023839 for ; Fri, 7 Mar 2003 01:58:42 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 2669A5E01F94; Fri, 7 Mar 2003 01:58:42 +0200 (EET) Subject: [dovecot] Dovecot plans [was: IMAP Folder paths] From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030306165208.F14976@iridium.mv.net> References: <20030227190212.F3097@pcx3332.desy.de> <1046373554.18310.4.camel@hurina> <20030227212127.A10927@pcx3332.desy.de> <20030306165208.F14976@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1046995121.931.134.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 07 Mar 2003 01:58:41 +0200 X-archive-position: 369 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 369 Status: O Content-Length: 1704 On Thu, 2003-03-06 at 23:52, Mark E. Mallett wrote: > The notion of having the ~/Maildir/ be both a mailbox and the root of > the folder tree is interesting (I understand it's not unique to dovecot), > but limiting. Ideally I would like to be able to specify: .. > Can this be done? Have I missed something? Not yet, but they will once I add namespace configuration to config file. My Dovecot plans go something like: 0.99.9: - should come out ASAP because of ENVELOPE/BODYSTRUCTURE quoting bug and SEARCH crashing in some conditions - I should store UIDs permanently somewhere else besides indexes - CVS already supports X-UID headers in mbox - I'd just have to make Courier-like uid database file, also optionally using filename:2,flags,Uuid or filename,U=uid:2,flags style - LIST with Maildir is still a bit buggy. Either do a kludgy fix or rewrite the whole thing once more. 0.99.10: - Version numbers got too high too soon :) I should rather be in 0.8.. - Now that UIDs are stored permanently, I'm fully free to change the index file format in any way I want. There's several optimizations that I have in mind. - Much more optimized mbox rewriting, which requires a few index file modifications - Several mbox-internal headers shouldn't be sent to client. To do this fast, their locations should be stored to index - New config file format - Namespace support 0.99.11: - hopefully the large changes stop here and I could get towards 1.0.. 1.0: - There hasn't been known bugs for at least a few months - I've fully audited the source code at least a few times and I'm sure it doesn't have a single security hole in it :) 1.1: - Shared folders with ACL support - quota From rueckert@informatik.uni-rostock.de Fri Mar 7 02:43:08 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 07 Mar 2003 02:43:09 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from monsters.dnsalias.net (vpn018071.uni-rostock.de [139.30.18.71]) by danu.procontrol.fi (Postfix) with ESMTP id DA1FA2384D for ; Fri, 7 Mar 2003 02:43:08 +0200 (EET) Received: by monsters.dnsalias.net (Postfix, from userid 500) id F08951441E6; Fri, 7 Mar 2003 01:43:13 +0100 (CET) Date: Fri, 7 Mar 2003 01:43:13 +0100 From: Marcus Rueckert To: "Mark E. Mallett" , dovecot@procontrol.fi Subject: [dovecot] Re: IMAP Folder paths Message-ID: <20030307004313.GI30148@irssi.ath.cx> References: <20030227190212.F3097@pcx3332.desy.de> <1046373554.18310.4.camel@hurina> <20030227212127.A10927@pcx3332.desy.de> <20030306165208.F14976@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030306165208.F14976@iridium.mv.net> User-Agent: Mutt/1.5.3i X-archive-position: 370 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: rueckert@informatik.uni-rostock.de Precedence: bulk X-list: dovecot X-UID: 370 Status: O Content-Length: 1211 On 2003-03-06 16:52:08 -0500, Mark E. Mallett wrote: > - multiple paths to folder directories (e.g. ~/Mail or ~/Private or > ~/Work/Mail or ~/Maildir/ or simply set it to ~/ and let the user > browse their own home directory through an IMAP client and set up > their own subscription). this is one of the points i really hated with uw-imapd. if you have a unix home used a bit you will have a lot of folders. everytime you start with a fresh mua it scanned _all_ folders of my homedir if i forgot to say "only look in ~/Mail". it took really _long_ to get the initial list. e.g. some muas like sylpheed try to connect to the imap server after setting up only server/user name. no chance to specify the mail path.... > - have the imap server autorecognize the format of any mail folder > that > the client directs it to look at. hmhm on of the points of maildir+ was using the leading "." to allow a mixed setup with other maildir/mbox formats. so imagine we have: ~/Maildir/.foo/ (maildir+) ~/Maildir/foo (mbox) which one will be shown? > Can this be done? Have I missed something? dunno darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From scott@xs4all.net Fri Mar 7 18:39:11 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 07 Mar 2003 18:39:11 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from trouble.oink.org (trouble.oink.org [194.109.215.226]) by danu.procontrol.fi (Postfix) with ESMTP id 5DE4223839 for ; Fri, 7 Mar 2003 18:39:11 +0200 (EET) Received: from xs4all.net (vla.gotsiedikkie.nl [194.109.29.21]) by trouble.oink.org (Postfix) with ESMTP id 5D3643EBC for ; Fri, 7 Mar 2003 17:39:10 +0100 (CET) Date: Fri, 7 Mar 2003 17:39:10 +0100 Mime-Version: 1.0 (Apple Message framework v551) Content-Type: text/plain; charset=US-ASCII; format=flowed Subject: [dovecot] Apple's Mail.app From: Scott A.McIntyre To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <5281F38E-50BB-11D7-B8C1-000393AC9622@xs4all.net> X-Mailer: Apple Mail (2.551) X-archive-position: 371 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: scott@xs4all.net Precedence: bulk X-list: dovecot X-UID: 371 Status: O Content-Length: 1724 Hi, I solved the OSX Authentication issue; I'm now reliably able to get authenticated using the Password Server with PAM with: # login: auth account password session auth required pam_nologin.so auth sufficient pam_securityserver.so auth sufficient pam_unix.so auth required pam_deny.so account required pam_permit.so password required pam_deny.so session required pam_permit.so As the /etc/pam.d/imap Anyway -- new problem. With Apple's Mail.app and how it wants to download messages into it's cache, I've found that there's a problematic interaction between Dovecot and Mail.app -- but pinning down exactly what and where is proving to be a hassle. I was running Courier-Imap with Mail.app, and that worked without incident (however, the courier-imap server was on Linux, not OSX Server, that will not work (yet) with osx-server). If I use Entourage and Dovecot, it works fine. The primary symptom is that as it downloads messages Mail.app just hangs; no response, the session just freezes. Usually it's when the status bar is saying something akin to "Caching 9 of 506" at which point it stops. The number varies, but it's always in the first couple of dozen. Messages are small, so it's not that it's hanging on a large mail download. I eventually have to forcibly kill Mail.app. The log says nothing of use: dovecot: Mar 07 17:31:23 Info: Dovecot starting up imap-login: Mar 07 16:32:50 Info: Login: scott [194.109.29.21] imap-login: Mar 07 16:33:46 Info: Login: scott [194.109.29.21] imap-login: Mar 07 16:35:38 Info: Login: scott [194.109.29.21] But perhaps there's a more verbose option somewhere. Thoughts? Scott From cras@irccrew.org Fri Mar 7 18:50:00 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 07 Mar 2003 18:50:00 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id C61B92384D for ; Fri, 7 Mar 2003 18:50:00 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 945004C0A0; Fri, 7 Mar 2003 18:50:00 +0200 (EET) Date: Fri, 7 Mar 2003 18:50:00 +0200 From: Timo Sirainen To: "Scott A.McIntyre" Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Apple's Mail.app Message-ID: <20030307165000.GB23022@irccrew.org> References: <5281F38E-50BB-11D7-B8C1-000393AC9622@xs4all.net> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <5281F38E-50BB-11D7-B8C1-000393AC9622@xs4all.net> User-Agent: Mutt/1.4i Content-Type: multipart/mixed; boundary="LZvS9be/3tNcYl/X" X-archive-position: 372 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 372 Status: O Content-Length: 1850 --LZvS9be/3tNcYl/X Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Mar 07, 2003 at 05:39:10PM +0100, Scott A.McIntyre wrote: > The primary symptom is that as it downloads messages Mail.app just > hangs; no response, the session just freezes. Usually it's when the > status bar is saying something akin to "Caching 9 of 506" at which > point it stops. The number varies, but it's always in the first couple > of dozen. Messages are small, so it's not that it's hanging on a large > mail download. I eventually have to forcibly kill Mail.app. My best guess is that it uses FETCH ENVELOPE, which is somewhat broken in 0.99.8 if some headers (subject, in-reply-to mostly) contain '"' characters. BODY and BODYSTRUCTURE fetches can also break but they're less likely to contain '"' chars. Try if the included patch fixes. Dovecot may have cached those replies already, so delete all .imap.index* files. --LZvS9be/3tNcYl/X Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="quote.diff" Index: src/lib-imap/imap-quote.c =================================================================== RCS file: /home/cvs/dovecot/src/lib-imap/imap-quote.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- src/lib-imap/imap-quote.c 13 Feb 2003 21:07:44 -0000 1.8 +++ src/lib-imap/imap-quote.c 4 Mar 2003 01:10:28 -0000 1.9 @@ -19,12 +19,13 @@ if (value[i] == 13 || value[i] == 10) linefeeds++; - if ((value[i] & 0x80) != 0) + if ((value[i] & 0x80) != 0 || + value[i] == '"' || value[i] == '\\') literal = TRUE; } if (!literal) { - /* no 8bit chars, return as "string" */ + /* no 8bit chars or imapspecials, return as "string" */ str_append_c(str, '"'); } else { /* return as literal */ --LZvS9be/3tNcYl/X-- From scott@xs4all.net Fri Mar 7 18:57:05 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 07 Mar 2003 18:57:05 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from trouble.oink.org (trouble.oink.org [194.109.215.226]) by danu.procontrol.fi (Postfix) with ESMTP id C63A92384D for ; Fri, 7 Mar 2003 18:57:05 +0200 (EET) Received: from xs4all.net (vla.gotsiedikkie.nl [194.109.29.21]) by trouble.oink.org (Postfix) with ESMTP id 01ADC3EBC; Fri, 7 Mar 2003 17:57:05 +0100 (CET) Date: Fri, 7 Mar 2003 17:57:05 +0100 Subject: [dovecot] Re: Apple's Mail.app Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v551) Cc: dovecot@procontrol.fi To: Timo Sirainen From: "Scott A. McIntyre" In-Reply-To: <20030307165000.GB23022@irccrew.org> Message-Id: Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.551) X-archive-position: 373 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: scott@xs4all.net Precedence: bulk X-list: dovecot X-UID: 373 Status: O Hi, > Try if the included patch fixes. Dovecot may have cached those replies > already, so delete all .imap.index* files. > Turns out that patch is already in CVS -- I took a stab at trying the CVS version earlier (around 1500 today) just in case whatever it was was fixed from 0.99.8 to CVS. Same result. --version still says 0.99.8, but it's definitely the newer one. I'd have thought it would break with Entourage as well if it were this, though... Scott From tss@iki.fi Sat Mar 8 19:24:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 08 Mar 2003 19:24:55 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 32A8023852 for ; Sat, 8 Mar 2003 19:24:55 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 577485E01F94; Sat, 8 Mar 2003 19:24:54 +0200 (EET) Subject: [dovecot] Re: Apple's Mail.app From: Timo Sirainen To: "Scott A. McIntyre" Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1047144293.937.198.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 08 Mar 2003 19:24:54 +0200 X-archive-position: 374 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 374 Status: O On Fri, 2003-03-07 at 18:57, Scott A. McIntyre wrote: > > Try if the included patch fixes. Dovecot may have cached those replies > > already, so delete all .imap.index* files. > > > > Turns out that patch is already in CVS -- I took a stab at trying the > CVS version earlier (around 1500 today) just in case whatever it was > was fixed from 0.99.8 to CVS. Same result. --version still says > 0.99.8, but it's definitely the newer one. And you tried to delete .imap.index* files too? :) Well, I'd like to know what exactly it's talking to IMAP server. Either use some network sniffer, or configure Dovecot --with-rawlog, and create ~/rawlog directory where they're saved. I think some people have already tried Mail.app with 0.99.7 and it worked.. From jpeterson275@attbi.com Mon Mar 10 19:48:31 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 10 Mar 2003 19:48:31 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc51.attbi.com (rwcrmhc51.attbi.com [204.127.198.38]) by danu.procontrol.fi (Postfix) with ESMTP id 18E9423839 for ; Mon, 10 Mar 2003 19:48:31 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by rwcrmhc51.attbi.com (rwcrmhc51) with SMTP id <2003031017482805100a6c2fe>; Mon, 10 Mar 2003 17:48:28 +0000 Message-ID: <3E6CD002.1020302@attbi.com> Date: Mon, 10 Mar 2003 09:48:50 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: Apple's Mail.app References: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 375 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 375 Status: O I've been using dovecot (a co & build from dec. 28th) without this problem with Mail.app just fine even with it's cacheing option turned on (i have it off now). Granted, the server is on a netbsd/i386 machine, I doubt that'd make a difference. Scott A. McIntyre wrote: > Hi, > >> Try if the included patch fixes. Dovecot may have cached those replies >> already, so delete all .imap.index* files. >> > > > Turns out that patch is already in CVS -- I took a stab at trying the > CVS version earlier (around 1500 today) just in case whatever it was was > fixed from 0.99.8 to CVS. Same result. --version still says 0.99.8, > but it's definitely the newer one. > > I'd have thought it would break with Entourage as well if it were this, > though... > > Scott > > > -- Jesse Peterson / jesse@pixeltechs.com From tss@iki.fi Tue Mar 11 23:40:57 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 11 Mar 2003 23:40:57 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A8C6223839 for ; Tue, 11 Mar 2003 23:40:57 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 82E765E01F94; Tue, 11 Mar 2003 23:24:52 +0200 (EET) Subject: [dovecot] 0.99.8.1 out From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1047417892.32459.33.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 11 Mar 2003 23:24:52 +0200 X-archive-position: 376 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 376 Status: O Content-Length: 1674 Nothing but bugfixes from CVS: * src/lib-storage/index/mbox/mbox-list.c: mbox: LIST "" invalid-directory/% doesn't anymore give internal error * src/lib-storage/index/index-fetch.c: FETCH: \Seen flag updating didn't work (eg. FETCH BODY[]). * src/lib-imap/imap-parser.c: Literal parser broke if \r\n wasn't in buffer at the time '}' was parsed. * src/lib-mail/message-address.c: message_address_write() didn't work. * src/lib-mail/message-address.c: message_address_parse(): allow using data_stack_pool (above two fix SEARCH FROM, TO, CC, BCC crashing) * src/lib-storage/index/index-save.c: Don't crash if something tries to write 0 bytes in headers while saving the message. This happened sometimes with mbox. * src/auth/master-connection.c: Don't crash if auth request wasn't found. * src/lib/failures.c: Handle /dev/stderr directly instead of open()ing. * src/lib-imap/imap-quote.c: Use literals for strings containing '"' and '\' characters too. This wasn't done at all before so FETCH ENVELOPE, BODY and BODYSTRUCTURE could have returned pretty broken results. * src/lib-storage/index/mbox/mbox-storage.c: Selecting INBOX didn't use index files if full_filesystem_access was yes. * src/auth/db-ldap.c: Setting user_global_uid or user_global_gid crashed. * src/lib/safe-mkdir.c: safe_mkdir(): usage fchmod() and fchown(). chmod() wasn't really safe and lchown() wasn't portable. * src/auth/mech-plain.c: Invalid PLAIN auth request crashed auth process. * src/master/main.c: [::] address wasn't treated exactly as "ipv6 any", but looks like gethostbyname() worked with it. * doc/nfs.txt: updated * doc/index.txt: update From jpeterson275@attbi.com Thu Mar 13 07:57:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 07:57:27 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc51.attbi.com (rwcrmhc51.attbi.com [204.127.198.38]) by danu.procontrol.fi (Postfix) with ESMTP id D1E3823839 for ; Thu, 13 Mar 2003 07:57:26 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by rwcrmhc51.attbi.com (rwcrmhc51) with SMTP id <20030313055719051001ot0ue>; Thu, 13 Mar 2003 05:57:19 +0000 Message-ID: <3E701DD8.4010609@attbi.com> Date: Wed, 12 Mar 2003 21:57:44 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] SMTP options Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 377 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 377 Status: O I realize this is not an SMTP discussion list, but... here goes: This is my situation. We have mobile users that need a secure (SSL) SMTP+auth gateway that simply forwards rfc822's to our real MTA. All it would have to do is accept SSL connections, authenticate the user, accept his message, then send that to the MTA. Anybody know of a very minimal software package that can do this? -- Jesse Peterson / jesse@pixeltechs.com From Leslie_Viljoen@icoc.org Thu Mar 13 13:05:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 13:05:16 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from icchub.icoc.org (ns1.icoc.org [209.101.42.2]) by danu.procontrol.fi (Postfix) with ESMTP id 7A28D23852 for ; Thu, 13 Mar 2003 13:05:16 +0200 (EET) Subject: [dovecot] Configure SSL problem To: dovecot@procontrol.fi X-Mailer: Lotus Notes Release 6.0 September 26, 2002 Message-ID: From: Leslie Viljoen Date: Thu, 13 Mar 2003 12:44:52 +0200 X-MIMETrack: Serialize by Router on ICC_Hub/ICC(Release 6.0.1|February 07, 2003) at 03/13/2003 03:05:21 AM MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-archive-position: 378 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: Leslie_Viljoen@icoc.org Precedence: bulk X-list: dovecot X-UID: 378 Status: O Hi everyone I have been trying to get Dovecot installed with OpenSSL support, but no matter what I do, when I run Configure, it says "Building with SSL support.........No". I have even tried configure --with-ssl=openssl, to no avail. I have built and installed OpenSSL, and libssl.so and libcrypto.so are in the /lib directory - what more does Dovecot want? I have tried figuring it out from the Configure script itself but it's cryptic and I am no shell script boffin! Thanks for any tips Les ______________________________________ Leslie Viljoen Africa Missions Systems Administrator Cell: 0836186100 Work: 011 6991700 Fax: 011 7945522 From Leslie_Viljoen@icoc.org Thu Mar 13 14:23:37 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 14:23:38 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from icchub.icoc.org (ns1.icoc.org [209.101.42.2]) by danu.procontrol.fi (Postfix) with ESMTP id 911D523839 for ; Thu, 13 Mar 2003 14:23:37 +0200 (EET) Subject: [dovecot] Starting Dovecot? To: dovecot@procontrol.fi X-Mailer: Lotus Notes Release 6.0 September 26, 2002 Message-ID: From: Leslie Viljoen Date: Thu, 13 Mar 2003 14:23:33 +0200 X-MIMETrack: Serialize by Router on ICC_Hub/ICC(Release 6.0.1|February 07, 2003) at 03/13/2003 04:23:42 AM MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-archive-position: 379 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: Leslie_Viljoen@icoc.org Precedence: bulk X-list: dovecot X-UID: 379 Status: O Hello! I have laid SSL aside for the time being, and continued compiling and installing Dovecot. Now I don't know how to start it! I have been through the config file and mostly left things as-is. I have created the dovecot user and group and put only dovecot user in the dovecot group. Then I tried imap-master, as specified in the INSTALL documentation, but there is no such file! Under src/master, "dovecot" gets built. I tried running this, and /var/log/messages says "dovecot starting", but this process seems to just end. If I run it twice very quickly, I get told that port 143 is busy - so it seems that it is starting up, but only staying up for a very short while. Messages gives no more clues as to why the server quits. Any ideas? Les PS: I am trying dovecot 0.99.8.1. ______________________________________ Leslie Viljoen Africa Missions Systems Administrator Cell: 0836186100 Work: 011 6991700 Fax: 011 7945522 From pomac@vapor.com Thu Mar 13 14:30:47 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 14:30:47 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from pomac.netswarm.net (c-1b0072d5.012-136-6c756e2.cust.bredbandsbolaget.se [213.114.0.27]) by danu.procontrol.fi (Postfix) with ESMTP id 0CB9D23839 for ; Thu, 13 Mar 2003 14:30:47 +0200 (EET) Received: from big.pomac.com (big.pomac.com [10.0.0.254]) by pomac.netswarm.net (Postfix) with ESMTP id C1B879D38B for ; Thu, 13 Mar 2003 13:30:45 +0100 (CET) Subject: [dovecot] Re: Configure SSL problem From: Ian Kumlien To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-1b6FEwpOk0avQOG7URhg" Organization: Message-Id: <1047558645.2217.42.camel@big.pomac.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 13 Mar 2003 13:30:45 +0100 X-archive-position: 380 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: pomac@vapor.com Precedence: bulk X-list: dovecot X-UID: 380 Status: O Content-Length: 1186 --=-1b6FEwpOk0avQOG7URhg Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2003-03-13 at 11:44, Leslie Viljoen wrote: > I have been trying to get Dovecot installed with OpenSSL support, but no > matter what I do, > when I run Configure, it says "Building with SSL support.........No". > I have even tried configure --with-ssl=3Dopenssl, to no avail. >=20 > I have built and installed OpenSSL, and libssl.so and libcrypto.so are in > the /lib directory - > what more does Dovecot want? I have tried figuring it out from the > Configure script itself > but it's cryptic and I am no shell script boffin! I assume that you have to change /etc/ld.so.conf or what's its name. And then do a ldconfig. PS. Can someone make this ml set "Reply-To:" headers? DS. --=20 Ian Kumlien --=-1b6FEwpOk0avQOG7URhg Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+cHn17F3Euyc51N8RAmLoAKCjkHmz/gsUKTyy3JMIGss3QreGNACglFPe bbjJd47y1LzcoJyOFTfz8Vg= =lJqA -----END PGP SIGNATURE----- --=-1b6FEwpOk0avQOG7URhg-- From pomac@vapor.com Thu Mar 13 14:33:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 14:33:39 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from pomac.netswarm.net (c-1b0072d5.012-136-6c756e2.cust.bredbandsbolaget.se [213.114.0.27]) by danu.procontrol.fi (Postfix) with ESMTP id 9E9BE23839 for ; Thu, 13 Mar 2003 14:33:39 +0200 (EET) Received: from big.pomac.com (big.pomac.com [10.0.0.254]) by pomac.netswarm.net (Postfix) with ESMTP id 5E14A9D4B9 for ; Thu, 13 Mar 2003 13:33:39 +0100 (CET) Subject: [dovecot] Re: Starting Dovecot? From: Ian Kumlien To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-fcKDuUFqbX7jYJdW94RC" Organization: Message-Id: <1047558819.2217.48.camel@big.pomac.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 13 Mar 2003 13:33:39 +0100 X-archive-position: 381 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: pomac@vapor.com Precedence: bulk X-list: dovecot X-UID: 381 Status: O Content-Length: 1316 --=-fcKDuUFqbX7jYJdW94RC Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2003-03-13 at 13:23, Leslie Viljoen wrote: > Then I tried imap-master, as specified in the INSTALL documentation, but > there is no such file! > Under src/master, "dovecot" gets built. I tried running this, and > /var/log/messages says > "dovecot starting", but this process seems to just end. If I run it twice > very quickly, I get > told that port 143 is busy - so it seems that it is starting up, but only > staying up for a very short > while. Messages gives no more clues as to why the server quits. run dovecot and then do: netstat -anp |grep dovecot or netstat -anp |grep 143 And you'll most likely find that dovecot is running and listening to port 143, just as it should. Else check your logs for error messages. PS. Sorry, remembered to change the email the first time but not the second= . DS. --=20 Ian Kumlien --=-fcKDuUFqbX7jYJdW94RC Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+cHqj7F3Euyc51N8RAknYAKC2yO8VH2YHPp+mMDdBPBOTtrj90ACgtm65 3kOu+Nz0a0/DvqFVVypfDP8= =6nWC -----END PGP SIGNATURE----- --=-fcKDuUFqbX7jYJdW94RC-- From eskimoe@ananzi.co.za Thu Mar 13 15:12:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 15:12:04 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-171-172.reverse.qdsl-home.de [212.202.171.172]) by danu.procontrol.fi (Postfix) with SMTP id C17EE23852 for ; Thu, 13 Mar 2003 15:12:03 +0200 (EET) Received: (qmail 32144 invoked by uid 1000); 13 Mar 2003 13:12:51 -0000 Date: Thu, 13 Mar 2003 14:12:51 +0100 From: Moe Wibble To: Dovecot Mail List Subject: [dovecot] Shared Folders? Message-ID: <20030313131251.GA21426@woom.net> Mail-Followup-To: Moe Wibble , Dovecot Mail List Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-archive-position: 382 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 382 Status: O Hello everybody (esp. Timo ;)), in an attempt to replace our cyrus imapd with something less bloated I have recently evaluated some of the younger imapd implementations, namely bincimap and also dovecot. Bincimap didn't work properly with mozilla for me, dovecot hasn't failed on any test, yet. Unfornationally, since we have been using cyrus for over 1.5 yrs, we pretty much depend on the "shared folders"-feature. Are there any plans to make shared folders available in dovecot anytime soon? best regards! -- MW From Leslie_Viljoen@icoc.org Thu Mar 13 15:17:13 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 15:17:13 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from icchub.icoc.org (ns1.icoc.org [209.101.42.2]) by danu.procontrol.fi (Postfix) with ESMTP id 47B7E23852 for ; Thu, 13 Mar 2003 15:17:13 +0200 (EET) Subject: [dovecot] Sorry (Starting Dovecot) To: dovecot@procontrol.fi X-Mailer: Lotus Notes Release 6.0 September 26, 2002 Message-ID: From: Leslie Viljoen Date: Thu, 13 Mar 2003 14:25:45 +0200 X-MIMETrack: Serialize by Router on ICC_Hub/ICC(Release 6.0.1|February 07, 2003) at 03/13/2003 05:17:13 AM MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-archive-position: 383 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: Leslie_Viljoen@icoc.org Precedence: bulk X-list: dovecot X-UID: 383 Status: O Sorry, I didn't check all my logs. PAM password DB was not found - it was in syslog. Les ______________________________________ Leslie Viljoen Africa Missions Systems Administrator Cell: 0836186100 Work: 011 6991700 Fax: 011 7945522 From jonas@jones.dk Thu Mar 13 13:23:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 15:47:46 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from auryn.jones.dk (unknown [62.79.77.233]) by danu.procontrol.fi (Postfix) with ESMTP id 8390623852 for ; Thu, 13 Mar 2003 13:23:36 +0200 (EET) Received: from auryn (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id C21233F20D5; Thu, 13 Mar 2003 07:05:17 +0100 (CET) Date: Thu, 13 Mar 2003 07:05:17 +0100 (CET) From: Jonas Smedegaard To: Jesse Peterson Cc: Dovecot Mail List Subject: [dovecot] Re: SMTP options In-Reply-To: <3E701DD8.4010609@attbi.com> Message-ID: References: <3E701DD8.4010609@attbi.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT X-archive-position: 384 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jonas@jones.dk Precedence: bulk X-list: dovecot X-UID: 384 Status: O On Wed, 12 Mar 2003, Jesse Peterson wrote: > This is my situation. We have mobile users that need a secure (SSL) > SMTP+auth gateway that simply forwards rfc822's to our real MTA. All it > would have to do is accept SSL connections, authenticate the user, > accept his message, then send that to the MTA. > > Anybody know of a very minimal software package that can do this? I'd use postfix. It isn't exactly "very minimal" though... - Jonas -- Jeg køber min økologiske sødmælk i 7-eleven! Jonas Smedegaard (+45 40843136) http://dr.jones.dk/articles/7eleven From cras@irccrew.org Thu Mar 13 15:48:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 15:48:53 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 4FEF523839 for ; Thu, 13 Mar 2003 15:48:53 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 3DB394C0A0; Thu, 13 Mar 2003 15:48:53 +0200 (EET) Date: Thu, 13 Mar 2003 15:48:53 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Configure SSL problem Message-ID: <20030313134853.GC22006@irccrew.org> References: Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 385 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 385 Status: O On Thu, Mar 13, 2003 at 12:44:52PM +0200, Leslie Viljoen wrote: > I have been trying to get Dovecot installed with OpenSSL support, but no > matter what I do, > when I run Configure, it says "Building with SSL support.........No". > I have even tried configure --with-ssl=openssl, to no avail. Check config.log what it says about it. Maybe it doesn't find ssl.h. From cras@irccrew.org Thu Mar 13 17:59:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 17:59:04 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 1E1E523839 for ; Thu, 13 Mar 2003 17:59:04 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id DDC4B4C0A0; Thu, 13 Mar 2003 17:59:03 +0200 (EET) Date: Thu, 13 Mar 2003 17:59:03 +0200 From: Timo Sirainen To: Moe Wibble , Dovecot Mail List Subject: [dovecot] Re: Shared Folders? Message-ID: <20030313155903.GE22006@irccrew.org> References: <20030313131251.GA21426@woom.net> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20030313131251.GA21426@woom.net> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 386 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 386 Status: O Content-Length: 1267 On Thu, Mar 13, 2003 at 02:12:51PM +0100, Moe Wibble wrote: > Are there any plans to make shared folders available in dovecot anytime soon? Well .. it's kind of possible already with symlinks, eg.: ln -s /home/shared/Maildir/.shared.folder /home/user/Maildir/ Problems with that: - No way to do it from IMAP client, ie. no ACL support. No plans to support that in near future - Sharing index files may not be that good idea from security point of view, especially if users have direct access to filesystem. Specifying different location for index files would then be good idea so each user would have their own: default_mail_env = Maildir:~/Maildir:INDEX=~/indexes - If indexes aren't shared, there may be occational syncing problems when someone changes message flag and another user just tries to fetch the message. Dovecot will give "message not found" error, but next fetch will work. This will be fixed by re-syncing maildir folder when it can't find some file. - Sharing mbox files won't have the above problem, but flag changes aren't noted by other users until you close the mailbox. I'll probably fix this later so that the flag changes are written to mbox at least once in a few seconds (if not immediately) - All users will have shared mail flags From cras@irccrew.org Thu Mar 13 18:07:20 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 18:07:20 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id A14A223839 for ; Thu, 13 Mar 2003 18:07:20 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 7F95B4C0A0; Thu, 13 Mar 2003 18:07:20 +0200 (EET) Date: Thu, 13 Mar 2003 18:07:20 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Configure SSL problem Message-ID: <20030313160720.GF22006@irccrew.org> References: <1047558645.2217.42.camel@big.pomac.com> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <1047558645.2217.42.camel@big.pomac.com> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 387 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 387 Status: O On Thu, Mar 13, 2003 at 01:30:45PM +0100, Ian Kumlien wrote: > PS. Can someone make this ml set "Reply-To:" headers? I don't think that's generally considered very good behaviour for mailing list. For example it prevents easily replying privately. Some people also prefer to get the replies in private mail as well as to mailing list, which is useful especially with high traffic list. Setting Mail-Followup-To header (or even reply-to) to mails yourself would help. Of course, that doesn't help if you're accidentally replying privately.. http://www.unicom.com/pw/reply-to-harmful.html http://cr.yp.to/proto/replyto.html From eskimoe@ananzi.co.za Thu Mar 13 19:59:01 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 13 Mar 2003 19:59:01 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-171-172.reverse.qdsl-home.de [212.202.171.172]) by danu.procontrol.fi (Postfix) with SMTP id E16C423839 for ; Thu, 13 Mar 2003 19:59:00 +0200 (EET) Received: (qmail 31301 invoked by uid 1000); 13 Mar 2003 17:59:48 -0000 Date: Thu, 13 Mar 2003 18:59:48 +0100 From: Moe Wibble To: Dovecot Mail List Subject: [dovecot] Re: Shared Folders? Message-ID: <20030313175948.GA23796@woom.net> Mail-Followup-To: Moe Wibble , Dovecot Mail List References: <20030313131251.GA21426@woom.net> <20030313155903.GE22006@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030313155903.GE22006@irccrew.org> X-archive-position: 388 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 388 Status: O Content-Length: 2512 On Thu, Mar 13, 2003 at 05:59:03PM +0200, Timo Sirainen wrote: > On Thu, Mar 13, 2003 at 02:12:51PM +0100, Moe Wibble wrote: > > Are there any plans to make shared folders available in dovecot anytime soon? > > Well .. it's kind of possible already with symlinks, eg.: > > ln -s /home/shared/Maildir/.shared.folder /home/user/Maildir/ Interesting. That's exactly what I've tried but it didn't work. The linked folder did show up in the subscribe-dialog but couldn't be subscribed. I didn't save the error-message 'cause it was reproducable so it seemed like dovecot simply didn't feel comfortable with that symlink in a maildir. Humm. I even disabled all the chroot-switches in dovecot.conf during that test. Well, I'll try again tomorrow! > Problems with that: > - No way to do it from IMAP client, ie. no ACL support. No plans to support > that in near future We don't need no ACL, no problem here. :) Read-only folders would be nice to have but that shouldn't be too difficult to achieve thru unix file-permissions/ownership. > - Sharing index files may not be that good idea from security point of > view, especially if users have direct access to filesystem. Specifying > different location for index files would then be good idea so each user > would have their own: default_mail_env = Maildir:~/Maildir:INDEX=~/indexes Gotta look into that. Not really a security issue here since the imapd acts as a blackbox anyways; no user accounts. Doesn't dovecot get confused by multiple users sharing the same index for, say, their INBOX, tho? That default_mail_env line will do for me anyways. :) > - If indexes aren't shared, there may be occational syncing problems when > someone changes message flag and another user just tries to fetch the > message. Dovecot will give "message not found" error, but next fetch will > work. This will be fixed by re-syncing maildir folder when it can't find > some file. Can live with that. > - Sharing mbox files won't have the above problem, but flag changes aren't > noted by other users until you close the mailbox. I'll probably fix this > later so that the flag changes are written to mbox at least once in a few > seconds (if not immediately) mbox is dead and bzipped. ;) > - All users will have shared mail flags I think that's even desirable for our environment. Might be a misfeature for others, tho. Thanks for your quick response! I'll retry that little symlink-stunt tomorrow and let you know about the results. :) best regards -- MW From pomac@vapor.com Fri Mar 14 00:53:03 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 14 Mar 2003 00:53:03 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from pomac.netswarm.net (c-1b0072d5.012-136-6c756e2.cust.bredbandsbolaget.se [213.114.0.27]) by danu.procontrol.fi (Postfix) with ESMTP id 1ADCA23852 for ; Fri, 14 Mar 2003 00:53:03 +0200 (EET) Received: from big.pomac.com (big.pomac.com [10.0.0.254]) by pomac.netswarm.net (Postfix) with ESMTP id 3A3A29D4CD; Thu, 13 Mar 2003 23:53:01 +0100 (CET) Subject: [dovecot] Re: Configure SSL problem From: Ian Kumlien To: Timo Sirainen Cc: dovecot@procontrol.fi In-Reply-To: <20030313160720.GF22006@irccrew.org> References: <1047558645.2217.42.camel@big.pomac.com> <20030313160720.GF22006@irccrew.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-f8dxQyBVhjuHS6JPnxZn" Organization: Message-Id: <1047595981.2216.53.camel@big.pomac.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 13 Mar 2003 23:53:01 +0100 X-archive-position: 389 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: pomac@vapor.com Precedence: bulk X-list: dovecot X-UID: 389 Status: O Content-Length: 1403 --=-f8dxQyBVhjuHS6JPnxZn Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2003-03-13 at 17:07, Timo Sirainen wrote: > On Thu, Mar 13, 2003 at 01:30:45PM +0100, Ian Kumlien wrote: > > PS. Can someone make this ml set "Reply-To:" headers? >=20 > I don't think that's generally considered very good behaviour for mailing > list. For example it prevents easily replying privately. Some people also > prefer to get the replies in private mail as well as to mailing list, whi= ch > is useful especially with high traffic list. >=20 > Setting Mail-Followup-To header (or even reply-to) to mails yourself woul= d > help. Of course, that doesn't help if you're accidentally replying > privately.. >=20 > http://www.unicom.com/pw/reply-to-harmful.html > http://cr.yp.to/proto/replyto.html Ahhh, I generally saw it in the oposite direction since most ppl could benefit from seeing the "full discussion come to an end". But, i never know about the reply to all functionality =3D) --=20 Ian Kumlien --=-f8dxQyBVhjuHS6JPnxZn Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+cQvM7F3Euyc51N8RAnB5AJ94zspVKoNJgoNh+9J64quVeVnFOQCfTiWx Izb6cgCSdmxU3hbsC0Btiqo= =4n/T -----END PGP SIGNATURE----- --=-f8dxQyBVhjuHS6JPnxZn-- From eskimoe@ananzi.co.za Fri Mar 14 19:25:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 14 Mar 2003 19:25:21 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-171-172.reverse.qdsl-home.de [212.202.171.172]) by danu.procontrol.fi (Postfix) with SMTP id DE36623852 for ; Fri, 14 Mar 2003 19:25:20 +0200 (EET) Received: (qmail 20005 invoked by uid 1000); 14 Mar 2003 17:26:07 -0000 Date: Fri, 14 Mar 2003 18:26:07 +0100 From: Moe Wibble To: Dovecot Mail List Subject: [dovecot] Shared Folders seem to work Message-ID: <20030314172607.GA5217@woom.net> Mail-Followup-To: Moe Wibble , Dovecot Mail List References: <20030313131251.GA21426@woom.net> <20030313155903.GE22006@irccrew.org> <20030313175948.GA23796@woom.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030313175948.GA23796@woom.net> X-archive-position: 390 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 390 Status: O Hi, I can't recall what my mistake was when first trying this. Probably wrong directory-permissions. Anyways, it does work fine now. :) We're going to run dovecot in parallel to our cyrus for a while now and if it turns out to be stable enough cyrus will be ceremoniously moved to tape. regards -- MW From umaro@narshe.net Fri Mar 14 23:12:12 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 14 Mar 2003 23:12:12 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from narshe.net (unknown [209.140.74.64]) by danu.procontrol.fi (Postfix) with SMTP id D806A23852 for ; Fri, 14 Mar 2003 23:12:11 +0200 (EET) Received: (qmail 21095 invoked by uid 9001); 14 Mar 2003 21:12:09 -0000 Received: from unknown (HELO terra.slcnet) (209.140.74.61) by mail.narshe.net with SMTP; 14 Mar 2003 21:12:09 -0000 Date: Fri, 14 Mar 2003 14:15:28 -0700 From: Chris Doyle To: dovecot@procontrol.fi Subject: [dovecot] dovecot/vpopmail auth problems Message-Id: <20030314141528.6bdb8bba.umaro@narshe.net> X-Mailer: Sylpheed version 0.8.11claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 391 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: umaro@narshe.net Precedence: bulk X-list: dovecot X-UID: 391 Status: O Hello. I am having problems getting dovecot to authenticate correctly through vpopmail. I have used vpopmail for some time, and I understand how it works. vpopmail is using mysql to store it's authentication data. vpopmail's tools can access the user database just fine, and vchkpw is working so far as authentication goes. I took an "strace -f dovecot", in case it can help. It is about 900k, and can be accessed at http://www.narshe.net/~umaro/dovecot.log please help! Thanks Chris Doyle From tss@iki.fi Sat Mar 15 00:15:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 15 Mar 2003 00:15:51 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7B9EE23839 for ; Sat, 15 Mar 2003 00:15:51 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 60A9B5E01F94; Sat, 15 Mar 2003 00:15:46 +0200 (EET) Subject: [dovecot] Re: dovecot/vpopmail auth problems From: Timo Sirainen To: Chris Doyle Cc: dovecot@procontrol.fi In-Reply-To: <20030314141528.6bdb8bba.umaro@narshe.net> References: <20030314141528.6bdb8bba.umaro@narshe.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1047680146.20734.64.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 15 Mar 2003 00:15:46 +0200 X-archive-position: 392 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 392 Status: O On Fri, 2003-03-14 at 23:15, Chris Doyle wrote: > I took an "strace -f dovecot", in case it can help. It is about 900k, > and can be accessed at http://www.narshe.net/~umaro/dovecot.log I didn't notice anything wrong in that strace, but it's not too easy to follow. What is dovecot's error message if you set auth_verbose = yes? Dovecot's vpopmail support isn't completely broken anyway, one guy just told today that he got it working with 0.99.8.1. From mem@mv.mv.com Sat Mar 15 00:29:26 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 15 Mar 2003 00:29:26 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id B395923839 for ; Sat, 15 Mar 2003 00:29:25 +0200 (EET) Received: (qmail 11118 invoked by uid 101); 14 Mar 2003 17:29:24 -0500 From: "Mark E. Mallett" Date: Fri, 14 Mar 2003 17:29:24 -0500 To: Leslie Viljoen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Configure SSL problem Message-ID: <20030314172924.L7268@iridium.mv.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from Leslie_Viljoen@icoc.org on Thu, Mar 13, 2003 at 12:44:52PM +0200 X-archive-position: 393 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 393 Status: O On Thu, Mar 13, 2003 at 12:44:52PM +0200, Leslie Viljoen wrote: > > > > > Hi everyone > > I have been trying to get Dovecot installed with OpenSSL support, but no > matter what I do, > when I run Configure, it says "Building with SSL support.........No". > I have even tried configure --with-ssl=openssl, to no avail. > > I have built and installed OpenSSL, and libssl.so and libcrypto.so are in > the /lib directory - > what more does Dovecot want? I have tried figuring it out from the > Configure script itself > but it's cryptic and I am no shell script boffin! Did your ssl include files get installed in the fairly standard /usr/local/ssl/include ? If so try something like: ./configure --with-ssl=openssl --includedir=/usr/local/ssl/include Maybe "configure" could be trained to look there by default.. -mm- From jpeterson275@attbi.com Sun Mar 16 08:01:47 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 16 Mar 2003 08:01:47 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc51.attbi.com (rwcrmhc51.attbi.com [204.127.198.38]) by danu.procontrol.fi (Postfix) with ESMTP id 11BA523839 for ; Sun, 16 Mar 2003 08:01:47 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by rwcrmhc51.attbi.com (rwcrmhc51) with SMTP id <2003031606014505100rn5pie>; Sun, 16 Mar 2003 06:01:45 +0000 Message-ID: <3E741348.9080304@attbi.com> Date: Sat, 15 Mar 2003 22:01:44 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] missing files... Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 394 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 394 Status: O I'm probably missing something but.. from cvs: gmake[1]: Entering directory `/usr/home/erage/dovecot/cvs/dovecot/src/lib-index' source='mail-lockdir.c' object='mail-lockdir.o' libtool=no \ depfile='.deps/mail-lockdir.Po' tmpdepfile='.deps/mail-lockdir.TPo' \ depmode=gcc /bin/sh ../../depcomp \ gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I../../src/lib-mail -I../../src/lib-imap -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c `test -f 'mail-lockdir.c' || echo './'`mail-lockdir.c gcc: ./mail-lockdir.c: No such file or directory gcc: No input files Any ideas? From jpeterson275@attbi.com Sun Mar 16 09:43:22 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 16 Mar 2003 09:43:22 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc52.attbi.com (rwcrmhc52.attbi.com [216.148.227.88]) by danu.procontrol.fi (Postfix) with ESMTP id 6878823839 for ; Sun, 16 Mar 2003 09:43:22 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by rwcrmhc52.attbi.com (rwcrmhc52) with SMTP id <2003031607432005200593j2e>; Sun, 16 Mar 2003 07:43:20 +0000 Message-ID: <3E742B17.7000708@attbi.com> Date: Sat, 15 Mar 2003 23:43:19 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Failed to create storage with data: :: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 395 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 395 Status: O # dovecot.conf: protocols = imaps login = imap login_user = mail default_mail_env = maildir:%h/ auth = default auth_mechanisms = plain auth_userdb = passwd-file /tmp/imap.passwd auth_passdb = passwd-file /tmp/imap.passwd auth_user = mail auth_verbose = yes In the log files I get: Mar 15 23:36:30 pos dovecot: Dovecot starting up Mar 15 23:36:37 pos imap-login: Login: testuser [10.0.66.1] Mar 15 23:36:37 pos imap(testuser): Failed to create storage with data: :: Mar 15 23:36:37 pos dovecot: child 23150 (imap) returned error 89 A typical entry in the imap.passwd: testuser:[34]:12345:12345::/some/home/directory/testuser:0:: -- Jesse Peterson / jesse@pixeltechs.com From tss@iki.fi Sun Mar 16 16:40:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 16 Mar 2003 16:40:36 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0C9B0238D5 for ; Sun, 16 Mar 2003 16:40:36 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id A59A95E01F94; Sun, 16 Mar 2003 16:40:35 +0200 (EET) Subject: [dovecot] Re: Failed to create storage with data: :: From: Timo Sirainen To: Jesse Peterson Cc: Dovecot Mail List In-Reply-To: <3E742B17.7000708@attbi.com> References: <3E742B17.7000708@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Message-Id: <1047825287.24446.10.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 16 Mar 2003 16:40:35 +0200 X-archive-position: 396 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 396 Status: O On Sun, 2003-03-16 at 09:43, Jesse Peterson wrote: > Mar 15 23:36:37 pos imap(testuser): Failed to create storage with > data: :: > Mar 15 23:36:37 pos dovecot: child 23150 (imap) returned error 89 > > A typical entry in the imap.passwd: > testuser:[34]:12345:12345::/some/home/directory/testuser:0:: Bug, fixed. You could also just remove the last two ':' characters. From tss@iki.fi Sun Mar 16 16:40:37 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 16 Mar 2003 16:40:37 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3576E23993 for ; Sun, 16 Mar 2003 16:40:37 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id EBCA95E01F95; Sun, 16 Mar 2003 16:40:36 +0200 (EET) Subject: [dovecot] Re: Failed to create storage with data: :: From: Timo Sirainen To: Jesse Peterson Cc: Dovecot Mail List In-Reply-To: <3E742B17.7000708@attbi.com> References: <3E742B17.7000708@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1047825635.26219.0.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 16 Mar 2003 16:40:36 +0200 X-archive-position: 397 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 397 Status: O On Sun, 2003-03-16 at 09:43, Jesse Peterson wrote: > Mar 15 23:36:37 pos imap(testuser): Failed to create storage with > data: :: > Mar 15 23:36:37 pos dovecot: child 23150 (imap) returned error 89 > A typical entry in the imap.passwd: > testuser:[34]:12345:12345::/some/home/directory/testuser:0:: passwd-file parser was buggy, fixed. You could also remove the last two ':' chars to fix it. From jpeterson275@attbi.com Sun Mar 16 21:17:31 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 16 Mar 2003 21:17:32 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc53.attbi.com (rwcrmhc53.attbi.com [204.127.198.39]) by danu.procontrol.fi (Postfix) with ESMTP id 6886B238D5 for ; Sun, 16 Mar 2003 21:17:31 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by rwcrmhc53.attbi.com (rwcrmhc53) with SMTP id <2003031619172905300amug4e>; Sun, 16 Mar 2003 19:17:29 +0000 Message-ID: <3E74CDC7.7000508@attbi.com> Date: Sun, 16 Mar 2003 11:17:27 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: Failed to create storage with data: :: References: <3E742B17.7000708@attbi.com> <1047825635.26219.0.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 398 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 398 Status: O I may have, but I constructed the file to the spec @: http://dovecot.procontrol.fi/doc/auth.txt =) Timo Sirainen wrote: > passwd-file parser was buggy, fixed. You could also remove the last two > ':' chars to fix it. > From jpeterson275@attbi.com Mon Mar 17 02:24:38 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Mar 2003 02:24:38 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc53.attbi.com (rwcrmhc53.attbi.com [204.127.198.39]) by danu.procontrol.fi (Postfix) with ESMTP id 1465423839 for ; Mon, 17 Mar 2003 02:24:38 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by rwcrmhc53.attbi.com (rwcrmhc53) with SMTP id <2003031700243605300hdub6e>; Mon, 17 Mar 2003 00:24:36 +0000 Message-ID: <3E7515C2.90803@attbi.com> Date: Sun, 16 Mar 2003 16:24:34 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: Failed to create storage with data: :: References: <3E742B17.7000708@attbi.com> <1047825635.26219.0.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 399 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 399 Status: O Hrm, I got the new files from CVS, but still: Mar 16 16:19:08 pos imap(testuser): Failed to create storage with data: : Mar 16 16:19:08 pos dovecot: child 24513 (imap) returned error 89 (note: one colon instead of two) So I have to ask, is this still the correct usage: user:password:uid:gid:(gecos):home:(shell):flags:mail (from http://dovecot.procontrol.fi/doc/auth.txt) Or are flags and mail not used? How exactly is mail supposed to function and related to home? Timo Sirainen wrote: > On Sun, 2003-03-16 at 09:43, Jesse Peterson wrote: > >> Mar 15 23:36:37 pos imap(testuser): Failed to create storage with >>data: :: >> Mar 15 23:36:37 pos dovecot: child 23150 (imap) returned error 89 > > >>A typical entry in the imap.passwd: >> testuser:[34]:12345:12345::/some/home/directory/testuser:0:: > > > passwd-file parser was buggy, fixed. You could also remove the last two > ':' chars to fix it. > > -- Jesse Peterson / jesse@pixeltechs.com From tss@iki.fi Mon Mar 17 02:41:19 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Mar 2003 02:41:19 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AB77E238D5 for ; Mon, 17 Mar 2003 02:41:19 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 6D0235E01F94; Mon, 17 Mar 2003 02:41:19 +0200 (EET) Subject: [dovecot] Re: Failed to create storage with data: :: From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3E7515C2.90803@attbi.com> References: <3E742B17.7000708@attbi.com> <1047825635.26219.0.camel@hurina> <3E7515C2.90803@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1047861679.26217.7.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 17 Mar 2003 02:41:19 +0200 X-archive-position: 400 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 400 Status: O Content-Length: 1160 On Mon, 2003-03-17 at 02:24, Jesse Peterson wrote: > Hrm, I got the new files from CVS, but still: > Mar 16 16:19:08 pos imap(testuser): Failed to create storage with data: : > Mar 16 16:19:08 pos dovecot: child 24513 (imap) returned error 89 > > (note: one colon instead of two) > So I have to ask, is this still the correct usage: > > user:password:uid:gid:(gecos):home:(shell):flags:mail > (from http://dovecot.procontrol.fi/doc/auth.txt) Hmm. Strange. It is correct, and this works with me: cras:{md5}$1$foo$A63FZiSi5N4yna6JuqND//:1000:1000::/home/cras::: mail field is a bit special because it needs ':' characters itself, that's why I don't just stop parsing if there's extra ':' characters at end. > Or are flags and mail not used? How exactly is mail supposed to > function and related to home? Either you give home or mail. mail can specify exactly where the mail is, home is used just for autodetection. So you could give each user different location for their mails, eg.: user1:....:mbox:~/mail:INBOX=/var/mail/user1 user2:....:mbox:~/Mail user3:....:Maildir:~/Maildir Autodetection seems to work pretty well so it's not usually needed. From jpeterson275@attbi.com Mon Mar 17 03:08:31 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Mar 2003 03:08:31 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc52.attbi.com (rwcrmhc52.attbi.com [216.148.227.88]) by danu.procontrol.fi (Postfix) with ESMTP id 9F5C2238D5 for ; Mon, 17 Mar 2003 03:08:30 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by rwcrmhc52.attbi.com (rwcrmhc52) with SMTP id <2003031701082905200ptinbe>; Mon, 17 Mar 2003 01:08:29 +0000 Message-ID: <3E75200A.2010407@attbi.com> Date: Sun, 16 Mar 2003 17:08:26 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: Failed to create storage with data: :: References: <3E742B17.7000708@attbi.com> <1047825635.26219.0.camel@hurina> <3E7515C2.90803@attbi.com> <1047861679.26217.7.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 401 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 401 Status: O Content-Length: 1553 I found the problem. It seems as though my older dovecot installation had passwd-file entries that looked like this: testuser::12345:12345::/mailhome/testuser:0::: Note extra 0. Snipping the 0 and a colon makes everything happy. Timo Sirainen wrote: > On Mon, 2003-03-17 at 02:24, Jesse Peterson wrote: > >>Hrm, I got the new files from CVS, but still: >>Mar 16 16:19:08 pos imap(testuser): Failed to create storage with data: : >>Mar 16 16:19:08 pos dovecot: child 24513 (imap) returned error 89 >> >>(note: one colon instead of two) >>So I have to ask, is this still the correct usage: >> >>user:password:uid:gid:(gecos):home:(shell):flags:mail >>(from http://dovecot.procontrol.fi/doc/auth.txt) > > > Hmm. Strange. It is correct, and this works with me: > > cras:{md5}$1$foo$A63FZiSi5N4yna6JuqND//:1000:1000::/home/cras::: > > mail field is a bit special because it needs ':' characters itself, > that's why I don't just stop parsing if there's extra ':' characters at > end. > > >>Or are flags and mail not used? How exactly is mail supposed to >>function and related to home? > > > Either you give home or mail. mail can specify exactly where the mail > is, home is used just for autodetection. So you could give each user > different location for their mails, eg.: > > user1:....:mbox:~/mail:INBOX=/var/mail/user1 > user2:....:mbox:~/Mail > user3:....:Maildir:~/Maildir > > Autodetection seems to work pretty well so it's not usually needed. > > > -- Jesse Peterson / jesse@pixeltechs.com From Leslie_Viljoen@icoc.org Mon Mar 17 12:51:13 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Mar 2003 12:51:13 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from icchub.icoc.org (ns1.icoc.org [209.101.42.2]) by danu.procontrol.fi (Postfix) with ESMTP id 40B55238D5 for ; Mon, 17 Mar 2003 12:51:12 +0200 (EET) In-Reply-To: <20030314172924.L7268@iridium.mv.net> Subject: [dovecot] Re: Configure SSL problem To: "Mark E. Mallett" Cc: dovecot@procontrol.fi X-Mailer: Lotus Notes Release 6.0 September 26, 2002 Message-ID: From: Leslie Viljoen Date: Mon, 17 Mar 2003 12:46:54 +0200 X-MIMETrack: Serialize by Router on ICC_Hub/ICC(Release 6.0.1|February 07, 2003) at 03/17/2003 02:51:15 AM MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-archive-position: 402 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: Leslie_Viljoen@icoc.org Precedence: bulk X-list: dovecot X-UID: 402 Status: O Content-Length: 3484 Thanks, I tried this, but it also didn't work. OpenSSL's .h files are in /usr/local/ssl/include/openssl. I copied all these .h files to /usr/local/ssl/include - and tried both options below - but the configure script still says "Building with SSL support........... no" The problem seems to stem from: checking for SSL_read in -lssl... (cached) no My libcrypto.so and libssl.so files are in /usr/local/ssl/lib - this path has been added to /etc/ld.so.conf and I have run ldconfig. Configure seems to be trying to compile this C file to test the SSL_read function: #line 7757 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char SSL_read(); int main() { SSL_read() ; return 0; } I can compile this myself if I include -I /usr/local/ssl/include and I replace the "confdefs.h" with "ssl.h". So I just don't know! Les ______________________________________ Leslie Viljoen Africa Missions Systems Administrator Cell: 0836186100 Work: 011 6991700 Fax: 011 7945522 "Mark E. Mallett" To: Leslie Viljoen Sent by: cc: dovecot@procontrol.fi dovecot-bounce@pr Subject: [dovecot] Re: Configure SSL problem ocontrol.fi 2003-03-15 12:29 AM On Thu, Mar 13, 2003 at 12:44:52PM +0200, Leslie Viljoen wrote: > > > > > Hi everyone > > I have been trying to get Dovecot installed with OpenSSL support, but no > matter what I do, > when I run Configure, it says "Building with SSL support.........No". > I have even tried configure --with-ssl=openssl, to no avail. > > I have built and installed OpenSSL, and libssl.so and libcrypto.so are in > the /lib directory - > what more does Dovecot want? I have tried figuring it out from the > Configure script itself > but it's cryptic and I am no shell script boffin! Did your ssl include files get installed in the fairly standard /usr/local/ssl/include ? If so try something like: ./configure --with-ssl=openssl --includedir=/usr/local/ssl/include Maybe "configure" could be trained to look there by default.. -mm- From tss@iki.fi Mon Mar 17 16:24:11 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Mar 2003 16:24:11 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C358C23839 for ; Mon, 17 Mar 2003 16:24:11 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 53AD05E03E53; Mon, 17 Mar 2003 16:24:11 +0200 (EET) Subject: [dovecot] Re: Configure SSL problem From: Timo Sirainen To: Leslie Viljoen Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1047911051.12401.36.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 17 Mar 2003 16:24:11 +0200 X-archive-position: 403 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 403 Status: O On Mon, 2003-03-17 at 12:46, Leslie Viljoen wrote: > The problem seems to stem from: > checking for SSL_read in -lssl... (cached) no Maybe it's just because of caching. Delete config.cache file. > I can compile this myself if I include -I /usr/local/ssl/include and I > replace the > "confdefs.h" with "ssl.h". Also you could try to run: CPPFLAGS='-I /usr/local/ssl/include/' ./configure (I don't know if --includedir helps with the configure checks, I should try..) From jaldhar@debian.org Mon Mar 17 17:06:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Mar 2003 17:06:33 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 3C3E9238D5 for ; Mon, 17 Mar 2003 17:06:32 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 9DCEE7F58 for ; Mon, 17 Mar 2003 10:06:31 -0500 (EST) Date: Mon, 17 Mar 2003 10:06:31 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: dovecot@procontrol.fi Subject: [dovecot] debian 0.99.8.1 packages available Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 404 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 404 Status: O I thought I'd mention it here because a lot of people have been waiting for me on this. My personal situation is getting saner now so I finally was able to package up 0.99.8.1. The package for sid was uploaded last night and should appear in the archive today. A backport for woody is available from http://www.braincells.com/open/ I have not included POP3, LDAP or SASL2 support for now as I didn't want anything to delay the package from entering the archive. That will be the next order of business. The only bug I've seen so far is that when my mbox-format inbox was in /home/jaldhar/mail/inbox dovecot thought it ha 0 messages. It only showed up properly after I moved it back to /var/spool/mail/jaldhar but I suspect this is just a configuration error on my part. -- Jaldhar H. Vyas It's a girl! See the pictures - http://www.braincells.com/shailaja/ From jpeterson275@attbi.com Mon Mar 17 22:01:38 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 17 Mar 2003 22:01:38 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sccrmhc01.attbi.com (sccrmhc01.attbi.com [204.127.202.61]) by danu.procontrol.fi (Postfix) with ESMTP id 5EA4723839 for ; Mon, 17 Mar 2003 22:01:38 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by sccrmhc01.attbi.com (sccrmhc01) with SMTP id <20030317200128001008h9qge>; Mon, 17 Mar 2003 20:01:30 +0000 Message-ID: <3E76298F.4010609@attbi.com> Date: Mon, 17 Mar 2003 12:01:19 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] big mail problems.. Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 405 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 405 Status: O Attachments, large mails & etc. seem to have problems with my installations of dovecot. As we know, Mozilla likes to take it's mail in chunks, and after Mozilla, (or Mail.app, it likes to do this, too) takes its first chunk, it doesn't start getting the rest, even though ethereal tells me that dovecot OK'ed the 10K chunk. 9 UID fetch 4 (UID RFC822.SIZE BODY[]<0.10240>) * 4 FETCH (UID 4 RFC822.SIZE 3958069 BODY[]<0> {3958069} 9 OK Fetch completed. Nothing gets transfered beyond this point. I think this would be mozilla's fault, but I dont think this would happen with a release, and I dont think Mail.app would have the same problem, too. Thanks for any help, - Jesse From tss@iki.fi Tue Mar 18 02:34:29 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Mar 2003 02:34:29 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8E96623839 for ; Tue, 18 Mar 2003 02:34:29 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 3506C5E03E53; Tue, 18 Mar 2003 02:34:29 +0200 (EET) Subject: [dovecot] Re: big mail problems.. From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3E76298F.4010609@attbi.com> References: <3E76298F.4010609@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1047947668.12400.45.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 18 Mar 2003 02:34:29 +0200 X-archive-position: 406 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 406 Status: O On Mon, 2003-03-17 at 22:01, Jesse Peterson wrote: > 9 UID fetch 4 (UID RFC822.SIZE BODY[]<0.10240>) > * 4 FETCH (UID 4 RFC822.SIZE 3958069 BODY[]<0> {3958069} It gives too large size for the body data. http://dovecot.procontrol.fi/partial.patch fixes. I really should create some kind of testing suite which tests as much of the commands/features as possible and shows if any of them fails.. From amyzing@talsever.com Tue Mar 18 18:12:31 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Mar 2003 18:12:31 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from blount.mail.mindspring.net (blount.mail.mindspring.net [207.69.200.226]) by danu.procontrol.fi (Postfix) with ESMTP id 1448523839 for ; Tue, 18 Mar 2003 18:12:31 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by blount.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18vJhT-0007ER-00; Tue, 18 Mar 2003 11:12:27 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id A2C4A809D; Tue, 18 Mar 2003 11:12:32 -0500 (EST) Date: Tue, 18 Mar 2003 11:12:32 -0500 From: Amelia A Lewis To: "Jaldhar H. Vyas" Cc: dovecot@procontrol.fi Subject: [dovecot] Re: debian 0.99.8.1 packages available Message-ID: <20030318161232.GA1537@talsever.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.3i X-archive-position: 407 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 407 Status: O Content-Length: 1322 On Mon, Mar 17, 2003 at 10:06:31AM -0500, Jaldhar H. Vyas wrote: >The only bug I've seen so far is that when my mbox-format inbox was in >/home/jaldhar/mail/inbox dovecot thought it ha 0 messages. It only showed >up properly after I moved it back to /var/spool/mail/jaldhar but I suspect >this is just a configuration error on my part. I've got problems, that seem similar, using the 0.99.8.1 .deb. I'm using Maildir. I've got it set up on a user account to accept mail for root (into .admin), for postmaster (into .admin.postmaster), and for webmaster (.admin.webmaster). mutt won't open .admin. The message is "error trying to view file". It will let me open .admin as a container, so I can see the subfolders for postmaster and webmaster, and it will let me open these. sylpheed 0.8.5 (yes, an old version; I'll try a newer one later today when I have access) shows admin as empty. Completely empty, that is, even though its new/ directory actually contains over twenty messages, and it should display two subfolders. So there's something very strange going on with navigation of folders, or so it seems to me. Amy! -- Amelia A. Lewis amyzing {at} talsever.com The flesh is strong. The spirit stronger. So shed your skin, baby. Let it through. Come on over. -- Amy Ray From jaldhar@debian.org Tue Mar 18 18:18:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Mar 2003 18:18:34 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 4F49823839 for ; Tue, 18 Mar 2003 18:18:34 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id A2ADA8043; Tue, 18 Mar 2003 11:18:33 -0500 (EST) Date: Tue, 18 Mar 2003 11:18:33 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: Amelia A Lewis Cc: dovecot@procontrol.fi Subject: [dovecot] Re: debian 0.99.8.1 packages available In-Reply-To: <20030318161232.GA1537@talsever.com> Message-ID: References: <20030318161232.GA1537@talsever.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 408 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 408 Status: O Content-Length: 1057 On Tue, 18 Mar 2003, Amelia A Lewis wrote: > I've got problems, that seem similar, using the 0.99.8.1 .deb. > > I'm using Maildir. I've got it set up on a user account to accept mail for > root (into .admin), for postmaster (into .admin.postmaster), and for > webmaster (.admin.webmaster). > > mutt won't open .admin. The message is "error trying to view file". It > will let me open .admin as a container, so I can see the subfolders for > postmaster and webmaster, and it will let me open these. > > sylpheed 0.8.5 (yes, an old version; I'll try a newer one later today when I > have access) shows admin as empty. Completely empty, that is, even though > its new/ directory actually contains over twenty messages, and it should > display two subfolders. > > So there's something very strange going on with navigation of folders, or so > it seems to me. > Timo suggested I set the default_mail_env in the configuration file. Btw Timo, that worked for me. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From amyzing@talsever.com Tue Mar 18 18:53:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Mar 2003 18:53:15 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mclean.mail.mindspring.net (mclean.mail.mindspring.net [207.69.200.57]) by danu.procontrol.fi (Postfix) with ESMTP id 38B352385F for ; Tue, 18 Mar 2003 18:53:15 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by mclean.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18vKKv-0000Iu-00; Tue, 18 Mar 2003 11:53:14 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id 9D104809D; Tue, 18 Mar 2003 11:53:19 -0500 (EST) Date: Tue, 18 Mar 2003 11:53:19 -0500 From: Amelia A Lewis To: "Jaldhar H. Vyas" Cc: dovecot@procontrol.fi Subject: [dovecot] Re: debian 0.99.8.1 packages available Message-ID: <20030318165319.GA1697@talsever.com> References: <20030318161232.GA1537@talsever.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.3i X-archive-position: 409 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 409 Status: O Content-Length: 1453 On Tue, Mar 18, 2003 at 11:18:33AM -0500, Jaldhar H. Vyas wrote: >On Tue, 18 Mar 2003, Amelia A Lewis wrote: > >> I've got problems, that seem similar, using the 0.99.8.1 .deb. >> >> I'm using Maildir. I've got it set up on a user account to accept mail for >> root (into .admin), for postmaster (into .admin.postmaster), and for >> webmaster (.admin.webmaster). >> >> mutt won't open .admin. The message is "error trying to view file". It >> will let me open .admin as a container, so I can see the subfolders for >> postmaster and webmaster, and it will let me open these. >> >> sylpheed 0.8.5 (yes, an old version; I'll try a newer one later today when I >> have access) shows admin as empty. Completely empty, that is, even though >> its new/ directory actually contains over twenty messages, and it should >> display two subfolders. >> >> So there's something very strange going on with navigation of folders, or so >> it seems to me. >> > >Timo suggested I set the default_mail_env in the configuration file. Already set. Finds the main folder. It's just acting bizarre for folders that hold both messages and child folders (as far as I can tell). Amy! -- Amelia A. Lewis amyzing {at} talsever.com I don't want what's best for you-- where will I be when you've found it? I pray a lot about these bad feelings inside but I can't pray my way through or around it. -- Emily Saliers From amyzing@talsever.com Tue Mar 18 19:05:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Mar 2003 19:05:17 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from hall.mail.mindspring.net (hall.mail.mindspring.net [207.69.200.60]) by danu.procontrol.fi (Postfix) with ESMTP id D0E572385F for ; Tue, 18 Mar 2003 19:05:16 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by hall.mail.mindspring.net with esmtp (Exim 3.33 #1) id 18vKWZ-0002vX-00; Tue, 18 Mar 2003 12:05:15 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id 18CB7809D; Tue, 18 Mar 2003 12:05:21 -0500 (EST) Date: Tue, 18 Mar 2003 12:05:20 -0500 From: Amelia A Lewis To: "Jaldhar H. Vyas" Cc: dovecot@procontrol.fi Subject: [dovecot] Re: debian 0.99.8.1 packages available Message-ID: <20030318170520.GA1766@talsever.com> References: <20030318161232.GA1537@talsever.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.3i X-archive-position: 410 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 410 Status: O Content-Length: 1586 On Tue, Mar 18, 2003 at 11:18:33AM -0500, Jaldhar H. Vyas wrote: >On Tue, 18 Mar 2003, Amelia A Lewis wrote: > >> I've got problems, that seem similar, using the 0.99.8.1 .deb. >> >> I'm using Maildir. I've got it set up on a user account to accept mail for >> root (into .admin), for postmaster (into .admin.postmaster), and for >> webmaster (.admin.webmaster). Update: Created a folder, "test", using Sylpheed. Okay. Copied mail to it. Okay. Tried to create subfolder "child". Error; not created. Created folder "test2". Okay. Tried to create subfolder "child". Error; not created. Using mutt: created folder "test". Okay. Copied mail to it. Okay. Folder opens; mail is visible. Tried to create subfolder "child" (mutt prompts as test.child, accept). Okay. test folder no longer visible as mail container, but child folder is visible. There's something weird happening when you put mail and subfolders in the same folder. Creating a subfolder means that any mail in the folder is no longer accessible. For whatever reason, sylpheed can't even see subfolders (much less create them). I could try to tcpdump this, but it won't help much, I'm afraid: it's set to disable plaintext, so it always does starttls, which means the dump won't have any interesting information. Amy! -- Amelia A. Lewis amyzing {at} talsever.com I don't want what's best for you-- where will I be when you've found it? I pray a lot about these bad feelings inside but I can't pray my way through or around it. -- Emily Saliers From tss@iki.fi Tue Mar 18 19:06:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 18 Mar 2003 19:06:30 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8EA452385F for ; Tue, 18 Mar 2003 19:06:30 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 47B3F5E01F94; Tue, 18 Mar 2003 19:06:29 +0200 (EET) Subject: [dovecot] Re: debian 0.99.8.1 packages available From: Timo Sirainen To: Amelia A Lewis Cc: dovecot@procontrol.fi In-Reply-To: <20030318161232.GA1537@talsever.com> References: <20030318161232.GA1537@talsever.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048007189.863.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 18 Mar 2003 19:06:29 +0200 X-archive-position: 411 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 411 Status: O On Tue, 2003-03-18 at 18:12, Amelia A Lewis wrote: > I'm using Maildir. I've got it set up on a user account to accept mail for > root (into .admin), for postmaster (into .admin.postmaster), and for > webmaster (.admin.webmaster). > > mutt won't open .admin. The message is "error trying to view file". It > will let me open .admin as a container, so I can see the subfolders for > postmaster and webmaster, and it will let me open these. It's probably because LIST handling is a bit buggy. If mutt asks LIST "" admin.%, Dovecot replies that "admin." is \NoSelect folder. I haven't yet got around to fixing this, I think I'll rewrite the LIST handling once again.. From jpeterson275@attbi.com Wed Mar 19 01:03:59 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 01:04:00 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc52.attbi.com (rwcrmhc52.attbi.com [216.148.227.88]) by danu.procontrol.fi (Postfix) with ESMTP id 48C412385F for ; Wed, 19 Mar 2003 01:03:59 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by rwcrmhc52.attbi.com (rwcrmhc52) with SMTP id <2003031823035405200lsv6ne>; Tue, 18 Mar 2003 23:03:54 +0000 Message-ID: <3E77A5D0.5000100@attbi.com> Date: Tue, 18 Mar 2003 15:03:44 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: big mail problems.. References: <3E76298F.4010609@attbi.com> <1047947668.12400.45.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 412 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 412 Status: O Mail.app still has problems. It gets the first chunk just fine: 9 UID FETCH 25 BODY.PEEK[]<0.8192> * 25 FETCH (UID 25 BODY[]<0> {8192} 9 OK Fetch completed. But then it tries to do the decond chunk: 10 UID FETCH 25 BODY.PEEK[]<8192.6813> * 25 FETCH (UID 25 BODY[]<8192> {6813} ) 10 OK Fetch completed. 8192 bytes requested and 2(?) returned? Which is weird becuase it worked for other mails that were very large (MB+). I know Mozilla does a little different method for grabbing chunks then does Mail.app, maybe that has something to do with it. Thanks, Timo Sirainen wrote: > On Mon, 2003-03-17 at 22:01, Jesse Peterson wrote: > >>9 UID fetch 4 (UID RFC822.SIZE BODY[]<0.10240>) >>* 4 FETCH (UID 4 RFC822.SIZE 3958069 BODY[]<0> {3958069} > > > It gives too large size for the body data. > http://dovecot.procontrol.fi/partial.patch fixes. > > I really should create some kind of testing suite which tests as much of > the commands/features as possible and shows if any of them fails.. > From lfarkas@bnap.hu Wed Mar 19 13:35:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 13:35:39 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 125E52385F for ; Wed, 19 Mar 2003 13:35:39 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id BA3F8754025 for ; Wed, 19 Mar 2003 12:37:34 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id A814C3EE4 for ; Wed, 19 Mar 2003 12:35:36 +0100 (CET) From: "Farkas Levente" To: Subject: [dovecot] some problem with dovecot Date: Wed, 19 Mar 2003 12:35:37 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-Id: <20030319113734.BA3F8754025@mail1.bppiac.hu> X-archive-position: 413 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 413 Status: O Content-Length: 1465 hi, yesterday we switch to courir to dovecot the whole company. there is good and bad news. the good one that about 200 people use outlook and outlook works fine (after we make some registry hack to delete the INBOX form imap root folder, which was required for courier but not for dovecot). the bad news we try most of the thing before the switch except outself. since the whole it department use linux and mozilla. and almost nothing is working with mozilla: - first of all the folder list can't be subscribed i.e. only the top level folder can be subscribed. can't subscribe to folder which has subfolders and mail inside. all folders with has subfolders shonw as an empty name folder under itself. and you can't select these folders in mozilla's subscribe window (i.e you are not able to check it even it is there). - you can't send any messages!!! since mozilla can't find the Sent folder and can't move the mail after sending!!! even if you reconfigure mozilla to use that "Sent" folder as Sent folder. - you can't see the mails in a folder which has subfolders i.e. it seem there is no message in that folders. - we store mails in ~/Maildir/. dovecot create a ~/Maildir/.INBOX and put the index files of the ~/Maildir/{cur,new,tmp} into that folder but for all other folders it keep the index files in that folder's directory. it's realy confusing. this is _very_ anoying:-((( is there any dirty trick to use mozilla? when thses will be useable? thanks. From lfarkas@bnap.hu Wed Mar 19 14:14:11 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 14:14:11 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 6164123839 for ; Wed, 19 Mar 2003 14:14:11 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 5C0BF754013 for ; Wed, 19 Mar 2003 13:16:08 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 0A7583EE4 for ; Wed, 19 Mar 2003 13:14:10 +0100 (CET) From: "Farkas Levente" To: References: <20030319113734.BA3F8754025@mail1.bppiac.hu> Subject: [dovecot] Re: some problem with dovecot Date: Wed, 19 Mar 2003 13:14:14 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-Id: <20030319121608.5C0BF754013@mail1.bppiac.hu> X-archive-position: 414 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 414 Status: O Content-Length: 1902 ----- Original Message ----- From: "Farkas Levente" To: Sent: Wednesday, March 19, 2003 12:35 PM Subject: [dovecot] some problem with dovecot > hi, > yesterday we switch to courir to dovecot the whole company. there is good > and bad news. the good one that about 200 people use outlook and outlook > works fine (after we make some registry hack to delete the INBOX form imap > root folder, which was required for courier but not for dovecot). the bad > news we try most of the thing before the switch except outself. since the > whole it department use linux and mozilla. and almost nothing is working > with mozilla: > - first of all the folder list can't be subscribed i.e. only the top level > folder can be subscribed. can't subscribe to folder which has subfolders and > mail inside. all folders with has subfolders shonw as an empty name folder > under itself. and you can't select these folders in mozilla's subscribe > window (i.e you are not able to check it even it is there). > - you can't send any messages!!! since mozilla can't find the Sent folder > and can't move the mail after sending!!! even if you reconfigure mozilla to > use that "Sent" folder as Sent folder. > - you can't see the mails in a folder which has subfolders i.e. it seem > there is no message in that folders. > - we store mails in ~/Maildir/. dovecot create a ~/Maildir/.INBOX and put > the index files of the ~/Maildir/{cur,new,tmp} into that folder but for all > other folders it keep the index files in that folder's directory. it's realy > confusing. > > this is _very_ anoying:-((( > is there any dirty trick to use mozilla? > when thses will be useable? > > thanks. other probles, that the outlook express can't be used when the folders contains big messages (it's died during send/recv), but if we switch folder setting headers only than it's works correctly. From tss@iki.fi Wed Mar 19 14:32:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 14:32:21 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C242223839 for ; Wed, 19 Mar 2003 14:32:21 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 0A2F25E01F94; Wed, 19 Mar 2003 14:32:20 +0200 (EET) Subject: [dovecot] Re: some problem with dovecot From: Timo Sirainen To: Farkas Levente Cc: dovecot@procontrol.fi In-Reply-To: <20030319121608.5C0BF754013@mail1.bppiac.hu> References: <20030319113734.BA3F8754025@mail1.bppiac.hu> <20030319121608.5C0BF754013@mail1.bppiac.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048077140.848.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 19 Mar 2003 14:32:20 +0200 X-archive-position: 415 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 415 Status: O On Wed, 2003-03-19 at 14:14, Farkas Levente wrote: > > - we store mails in ~/Maildir/. dovecot create a ~/Maildir/.INBOX and put > > the index files of the ~/Maildir/{cur,new,tmp} into that folder but for > all > > other folders it keep the index files in that folder's directory. it's > realy > > confusing. I didn't really like having indexes stored in the root directory.. > other probles, that the outlook express can't be used when the folders > contains big messages (it's died during send/recv), but if we switch folder > setting headers only than it's works correctly. Maybe it's because it tries partial fetches then. Did you apply the patch for it? I'll look at the other problems later today/tomorrow.. I think some people have used Dovecot with Mozilla though. From rueckert@informatik.uni-rostock.de Wed Mar 19 14:43:45 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 14:43:45 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from monsters.dnsalias.net (vpn017022.uni-rostock.de [139.30.17.22]) by danu.procontrol.fi (Postfix) with ESMTP id 4B4172385F for ; Wed, 19 Mar 2003 14:43:45 +0200 (EET) Received: by monsters.dnsalias.net (Postfix, from userid 500) id 74FDE1441E3; Wed, 19 Mar 2003 13:46:16 +0100 (CET) Date: Wed, 19 Mar 2003 13:46:16 +0100 From: Marcus Rueckert To: Farkas Levente Cc: dovecot@procontrol.fi Subject: [dovecot] Re: some problem with dovecot Message-ID: <20030319124616.GA10729@irssi.ath.cx> References: <20030319113734.BA3F8754025@mail1.bppiac.hu> <20030319121608.5C0BF754013@mail1.bppiac.hu> <1048077140.848.19.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1048077140.848.19.camel@hurina> User-Agent: Mutt/1.5.3i X-archive-position: 416 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: rueckert@informatik.uni-rostock.de Precedence: bulk X-list: dovecot X-UID: 416 Status: O On 2003-03-19 14:32:20 +0200, Timo Sirainen wrote: > I'll look at the other problems later today/tomorrow.. I think some > people have used Dovecot with Mozilla though. mozilla 1.3b + cvs 2003-03-18 is working well here. with the old 0.99.8.1 i had some problems with attachments. working well after updating dovecot. marcus -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From rueckert@informatik.uni-rostock.de Wed Mar 19 15:58:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 15:58:10 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from monsters.dnsalias.net (vpn017022.uni-rostock.de [139.30.17.22]) by danu.procontrol.fi (Postfix) with ESMTP id 3A70523839 for ; Wed, 19 Mar 2003 15:58:10 +0200 (EET) Received: by monsters.dnsalias.net (Postfix, from userid 500) id EF8EF1441E3; Wed, 19 Mar 2003 15:00:44 +0100 (CET) Date: Wed, 19 Mar 2003 15:00:44 +0100 From: Marcus Rueckert To: Farkas Levente Cc: dovecot@procontrol.fi Subject: [dovecot] Re: some problem with dovecot Message-ID: <20030319140044.GB10729@irssi.ath.cx> References: <20030319113734.BA3F8754025@mail1.bppiac.hu> <20030319121608.5C0BF754013@mail1.bppiac.hu> <1048077140.848.19.camel@hurina> <20030319124616.GA10729@irssi.ath.cx> <3E786802.10403@bnap.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3E786802.10403@bnap.hu> User-Agent: Mutt/1.5.3i X-archive-position: 417 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: rueckert@informatik.uni-rostock.de Precedence: bulk X-list: dovecot X-UID: 417 Status: O On 2003-03-19 13:52:18 +0100, Farkas Levente wrote: > >mozilla 1.3b + cvs 2003-03-18 is working well here. with the old > >0.99.8.1 i had some problems with attachments. working well after > >updating dovecot. > > we also use 1.3b but with 0.99.8.1, so I waiting for 0.100.... try CVS. maybe it solves your problems. marcus -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From jaldhar@debian.org Wed Mar 19 16:04:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 16:04:51 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 52FBF23839 for ; Wed, 19 Mar 2003 16:04:51 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 1B6937F5E for ; Wed, 19 Mar 2003 09:04:51 -0500 (EST) Date: Wed, 19 Mar 2003 09:04:51 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: dovecot@procontrol.fi Subject: [dovecot] Dotlocking doesn't work? Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 418 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 418 Status: O A Debian developer had this to say: > >> Files in the above dir are group mail, and the dir is group mail. However, > > > all binaries in /usr/lib/dovecot are root/root. I have set them all to g+s, > > > and group mail, and now the imap process can lock the INBOX. > > > > > imap should be the only one that needs to be setgid mail. > > Actually, I've looked at the dovecot source code. There is no way having > setgid on the executable will work. The source drops the privledges long > before it tries to do a dotlock. > > This is an upstream problem. > > For now, I've disable dotlock, and use fcntl instead, as that is what exim > uses anyways. Is dotlocking still a work in progress or are we missing something here? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From tss@iki.fi Wed Mar 19 16:23:41 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 16:23:41 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9EB8F23839 for ; Wed, 19 Mar 2003 16:23:41 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 5841C5E01F94; Wed, 19 Mar 2003 16:23:41 +0200 (EET) Subject: [dovecot] Re: Dotlocking doesn't work? From: Timo Sirainen To: "Jaldhar H. Vyas" Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048083821.850.30.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 19 Mar 2003 16:23:41 +0200 X-archive-position: 419 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 419 Status: O On Wed, 2003-03-19 at 16:04, Jaldhar H. Vyas wrote: > > >> Files in the above dir are group mail, and the dir is group mail. However, > > > > all binaries in /usr/lib/dovecot are root/root. I have set them all to g+s, > > > > and group mail, and now the imap process can lock the INBOX. > > Is dotlocking still a work in progress or are we missing something here? Only solution for now is to set /var/mail world-writable and sticky. Another way would be to use more privileged process for handling lock files. Some programs use setuid or setgid binary for that. I was thinking that I'd let imap process request the locks from master process. That would also allow overriding stale lock files created by other users with shared mailboxes. From jaldhar@debian.org Wed Mar 19 16:30:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 16:30:34 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id A8ABB23839 for ; Wed, 19 Mar 2003 16:30:34 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 878BE7F5E; Wed, 19 Mar 2003 09:30:34 -0500 (EST) Date: Wed, 19 Mar 2003 09:30:34 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Dotlocking doesn't work? In-Reply-To: <1048083821.850.30.camel@hurina> Message-ID: References: <1048083821.850.30.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 420 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 420 Status: O On Wed, 19 Mar 2003, Timo Sirainen wrote: > Only solution for now is to set /var/mail world-writable and sticky. > Debian policy doesn't like that. > Another way would be to use more privileged process for handling lock > files. Some programs use setuid or setgid binary for that. I was > thinking that I'd let imap process request the locks from master > process. That would also allow overriding stale lock files created by > other users with shared mailboxes. > I think this is a better idea overall. It would reduce the amount of code which needed elevated privileges and like you said, allow stale lock files to be overriden. I used to have that problem with uw-imap. In the meantime, could you add something to the documentation about this issue? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From lfarkas@bnap.hu Wed Mar 19 17:02:19 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 17:02:19 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 1A59C2385F for ; Wed, 19 Mar 2003 17:02:19 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 2D4D9754031 for ; Wed, 19 Mar 2003 16:04:16 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id CD78C3EE4 for ; Wed, 19 Mar 2003 16:02:16 +0100 (CET) Message-ID: <3E788683.3040803@bnap.hu> Date: Wed, 19 Mar 2003 16:02:27 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: some problem with dovecot References: <20030319113734.BA3F8754025@mail1.bppiac.hu> <20030319121608.5C0BF754013@mail1.bppiac.hu> <1048077140.848.19.camel@hurina> In-Reply-To: <1048077140.848.19.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 421 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 421 Status: O Timo Sirainen wrote: > On Wed, 2003-03-19 at 14:14, Farkas Levente wrote: > >>>- we store mails in ~/Maildir/. dovecot create a ~/Maildir/.INBOX and put >>>the index files of the ~/Maildir/{cur,new,tmp} into that folder but for >> >>all >> >>>other folders it keep the index files in that folder's directory. it's >> >>realy >> >>>confusing. > > > I didn't really like having indexes stored in the root directory.. why? there are other files in the root directory: .subscriptions .customflags and in this case the directory stucture would be consistent. what's more currently e.g. under mozilla's subscribe INDEX shown as a folder to be able to subscribe althougfh there is no such "real" mail folder. which is confusing. what's more what happens if someone would like to create a folder called INBOX? hmm... -- Levente "Si vis pacem para bellum!" From jpeterson275@attbi.com Wed Mar 19 19:30:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 19:30:30 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc53.attbi.com (rwcrmhc53.attbi.com [204.127.198.39]) by danu.procontrol.fi (Postfix) with ESMTP id C76512385F for ; Wed, 19 Mar 2003 19:30:29 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by rwcrmhc53.attbi.com (rwcrmhc53) with SMTP id <2003031917302605300n1l0pe>; Wed, 19 Mar 2003 17:30:26 +0000 Message-ID: <3E78A928.1020708@attbi.com> Date: Wed, 19 Mar 2003 09:30:16 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: some problem with dovecot References: <20030319113734.BA3F8754025@mail1.bppiac.hu> <20030319121608.5C0BF754013@mail1.bppiac.hu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 422 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 422 Status: O Farkas Levente wrote: > other probles, that the outlook express can't be used when the folders > contains big messages (it's died during send/recv), but if we switch folder > setting headers only than it's works corre I think I found a repeatable symptom with large messages: If you get any amount of small messages first (i think) it works fine. The first large message you get, dovecot messes on the second chunk requested. If you just try that message again, dovecot fixes itself, and sends messages fine (i think). Hope that helps, yet to test Mail.app. I'll keep you posted! -- Jesse Peterson / jesse@pixeltechs.com From ianj@ian-justman.com Wed Mar 19 19:50:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 19 Mar 2003 19:50:39 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sakura.ian-justman.com (sakura.ian-justman.com [207.126.64.32]) by danu.procontrol.fi (Postfix) with ESMTP id 32EE823839 for ; Wed, 19 Mar 2003 19:50:39 +0200 (EET) Received: from spampd.localdomain (localhost [127.0.0.1]) by localhost.ian-justman.com (Postfix) with ESMTP id 6D0B661129F for ; Wed, 19 Mar 2003 09:50:37 -0800 (PST) Received: from ian-justman.com (fenchurch.netasset.com [207.126.67.194]) by sakura.ian-justman.com (Postfix) with ESMTP id 2C06B61129F for ; Wed, 19 Mar 2003 09:50:34 -0800 (PST) Message-ID: <3E78ADEA.8010908@ian-justman.com> Date: Wed, 19 Mar 2003 09:50:34 -0800 From: "Ian R. Justman" Organization: Net Asset, Network Operations User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en, ja MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: Dotlocking doesn't work? References: <1048083821.850.30.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 423 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 423 Status: O Content-Length: 1240 Timo Sirainen wrote: > On Wed, 2003-03-19 at 16:04, Jaldhar H. Vyas wrote: > >>>>> Files in the above dir are group mail, and the dir is group mail. However, >>>>>all binaries in /usr/lib/dovecot are root/root. I have set them all to g+s, >>>>>and group mail, and now the imap process can lock the INBOX. >>>> >>Is dotlocking still a work in progress or are we missing something here? > > > Only solution for now is to set /var/mail world-writable and sticky. > > Another way would be to use more privileged process for handling lock > files. Some programs use setuid or setgid binary for that. I was > thinking that I'd let imap process request the locks from master > process. That would also allow overriding stale lock files created by > other users with shared mailboxes. On this tack, this problem bit me yesterday when I migrated one of my public-access machines from Qpopper to Dovecot on the POP3 side of things. The best way I could solve this, until something can be done for dotlocking is to use fcntl(2) for now. Though I seem to remember some manner of warnings using fcntl(2). However, since none of my systems use NFS for their mailstores, I felt this is safe enough. Any thoughts on this matter? --Ian. From charlieb-dovecot@e-smith.com Thu Mar 20 03:30:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 03:30:56 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 20AF82385F for ; Thu, 20 Mar 2003 03:30:56 +0200 (EET) Received: (qmail 16961 invoked by uid 404); 20 Mar 2003 01:30:54 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 19 Mar 2003 20:30:53 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Mar 2003 01:30:53 -0000 Received: (qmail 14140 invoked by uid 5008); 20 Mar 2003 01:30:53 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Mar 2003 01:30:53 -0000 Date: Wed, 19 Mar 2003 20:30:53 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: inetd/xinetd/tcpserver support In-Reply-To: <1046224359.30815.36.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 424 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 424 Status: O Content-Length: 4270 On 26 Feb 2003, Timo Sirainen wrote: > I was just thinking how they could be easily supported. This would work, > right? : > > imap stream tcp nowait root /usr/sbin/tcpd /usr/local/libexec/dovecot/imap-login > imaps stream tcp nowait root /usr/sbin/tcpd /usr/local/libexec/dovecot/imap-login --ssl > > imap-login would try to connect to master process using some named > socket. If it couldn't, it would create the master process itself. > Master process would work as usual (executes auth and imap processes), > except it wouldn't be executing login processes. I have a working tcpserver system, but one using a substantially different process mix. I haven't used imap-login at all, but have used imapfront-auth from Bruce Guenter's mailfront package (http://www.untroubled.org/mailfront/). Here is the run script: #!/bin/sh concurrency=20 ulimitdata=3000000 CVM_SASL_PLAIN=cvm-local:/tmp/.cvm-unix-local export CVM_SASL_PLAIN CVM_ACCOUNT_SPLIT_CHARS= export CVM_ACCOUNT_SPLIT_CHARS exec 2>&1 exec \ softlimit -m $ulimitdata \ tcpserver -dHRvX \ -c "$concurrency" \ -x tcp.cdb \ 0 imap \ /usr/bin/imapfront-auth \ /usr/local/bin/imap And here is the IMAP session: * OK imapfront ready. 001 capability * CAPABILITY IMAP4rev1 001 OK CAPABILITY completed 002 login foo xxxxx * PREAUTH [CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED] Logged in as foo 002 capability * CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED 002 OK Capability completed. 003 select inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 4 EXISTS * 0 RECENT * OK [UIDVALIDITY 1045884314] UIDs valid * OK [UIDNEXT 5] Predicted next UID 003 OK [READ-WRITE] Select completed. 004 create abox 004 OK Create completed. 005 select abox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 0 EXISTS * 0 RECENT * OK [UIDVALIDITY 1045885867] UIDs valid * OK [UIDNEXT 1] Predicted next UID 005 OK [READ-WRITE] Select completed. 006 list "" % * LIST (\UnMarked) "." "Trash" * LIST (\UnMarked) "." "foo" * LIST (\UnMarked) "." "onebox" * LIST (\UnMarked) "." "abox" * LIST (\UnMarked) "." "INBOX" 006 OK List completed. 006 list "" "" * LIST (\Noselect) "." "" 006 OK List completed. 007 logout * BYE Logging out 007 OK Logout completed. This setup can't do STARTTLS, but now that I have it working in plaintext, I can look at adapting Scott Gifford's stunnel TLS proxy work: http://www.suspectclass.com/~sgifford/stunnel-tlsproxy/stunnel-tlsproxy.html I don't expect this to be too difficult. > This wouldn't require much code changing, and it would still be using > all the same privilege separations as the standalone version so it would > be just a secure. Privilege separation is a very good thing. Is there any more detailed documentation of how you have done yours than http://dovecot.procontrol.fi/doc/design.txt? You'll see that in the setup I've detailed above I am only using the "imap" binary from dovecot. I'm happy with the division of labour which has tcpserver doing network connection control, imapfront-auth+cvm doing authentication and uid switching, and imap doing mailbox access and IMAp protocol implementation. I expect to add stunnel doing TLS to that mix tomorrow. Can you provide any reasons why I should use your imap-master, imap-auth and imap-login proceses rather than my mix'n'match setup? I'm confident that my setup has the simple, secure, reliable characteristics that I need, whereas I don't have the same confidence in your process set - it seems unnecessarily complex to me. > Only thing I'm wondering is if any of the TCP wrappers care about the > created child processes? The master process would have to stay alive > after the connection that created it dies. In general they will, as they will do connection counting. This is handled in my setup above, as each process execs the following one: tcpserver forks, and the child execs "imapfront-auth", which then authenticates and execs "imap". -- Charlie From lfarkas@bnap.hu Thu Mar 20 11:38:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 11:38:16 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 4C6832385F for ; Thu, 20 Mar 2003 11:38:16 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id AFCAE754023 for ; Thu, 20 Mar 2003 10:40:21 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id E7F193EEC for ; Thu, 20 Mar 2003 10:38:14 +0100 (CET) Message-ID: <3E798C0E.8000409@bnap.hu> Date: Thu, 20 Mar 2003 10:38:22 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] more problem with Sent Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 425 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 425 Status: O hi, ok it's turn out that not just mozilla not able to put the sent mails into the Sent folder but our webmail frontend (SquirrelMail) can't do it. so those who are using the webmail no longer able to use the mail system:-((( -- Levente "Si vis pacem para bellum!" From rueckert@informatik.uni-rostock.de Thu Mar 20 13:22:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 13:22:28 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from monsters.dnsalias.net (vpn017022.uni-rostock.de [139.30.17.22]) by danu.procontrol.fi (Postfix) with ESMTP id 07C192385F for ; Thu, 20 Mar 2003 13:22:28 +0200 (EET) Received: by monsters.dnsalias.net (Postfix, from userid 500) id BE25B1441E3; Thu, 20 Mar 2003 12:25:17 +0100 (CET) Date: Thu, 20 Mar 2003 12:25:17 +0100 From: Marcus Rueckert To: dovecot@procontrol.fi Subject: [dovecot] Re: inetd/xinetd/tcpserver support Message-ID: <20030320112517.GF10729@irssi.ath.cx> References: <1046224359.30815.36.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.3i X-archive-position: 426 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: rueckert@informatik.uni-rostock.de Precedence: bulk X-list: dovecot X-UID: 426 Status: O Content-Length: 2364 On 2003-03-19 20:30:53 -0500, Charlie Brady wrote: > Privilege separation is a very good thing. Is there any more detailed > documentation of how you have done yours than > http://dovecot.procontrol.fi/doc/design.txt? > > You'll see that in the setup I've detailed above I am only using the > "imap" binary from dovecot. I'm happy with the division of labour > which > has tcpserver doing network connection control, imapfront-auth+cvm > doing > authentication and uid switching, and imap doing mailbox access and > IMAp > protocol implementation. I expect to add stunnel doing TLS to that mix > tomorrow. > > Can you provide any reasons why I should use your imap-master, > imap-auth > and imap-login proceses rather than my mix'n'match setup? I'm > confident > that my setup has the simple, secure, reliable characteristics that I > need, whereas I don't have the same confidence in your process set - > it > seems unnecessarily complex to me. > > > Only thing I'm wondering is if any of the TCP wrappers care about > > the > > created child processes? The master process would have to stay alive > > after the connection that created it dies. > > In general they will, as they will do connection counting. This is > handled > in my setup above, as each process execs the following one: tcpserver > forks, and the child execs "imapfront-auth", which then authenticates > and > execs "imap". hi first of all i want to paste this On Wed, 19 Mar 2003, Timo Sirainen wrote: ( Message-Id: <1048083821.850.30.camel@hurina> ) > Only solution for now is to set /var/mail world-writable and sticky. > Another way would be to use more privileged process for handling lock > files. Some programs use setuid or setgid binary for that. I was > thinking that I'd let imap process request the locks from master > process. That would also allow overriding stale lock files created by > other users with shared mailboxes. another point would be no reusing. you restart all processes on each connection. if i count correctly: 1 tcpserver + 1 imapauth + 1 imap binary per connection forked on every connect. iirc correctly cras implemented resuing of the already spawned processes. maybe a reason. isnt there a lib offering tcp-server like functionality? just my pi cents darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From ggendel@sarnoff.com Thu Mar 20 14:53:47 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 14:53:47 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from ace.sarnoff.com (ace.sarnoff.com [130.33.8.46]) by danu.procontrol.fi (Postfix) with SMTP id 08C512385F for ; Thu, 20 Mar 2003 14:53:47 +0200 (EET) Received: from postoffice.sarnoff.com(130.33.10.147) by ace.sarnoff.com via csmap id 8703; Thu, 20 Mar 2003 07:53:22 -0500 (EST) Received: from sarnoff.com ([130.33.205.137]) by postoffice.sarnoff.com (Netscape Messaging Server 4.15) with ESMTP id HC1T5S00.DLP for ; Thu, 20 Mar 2003 07:53:52 -0500 Message-ID: <3E79B947.2010801@sarnoff.com> Date: Thu, 20 Mar 2003 07:51:19 -0500 From: "GARY GENDEL" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: inetd/xinetd/tcpserver support References: <1046224359.30815.36.camel@hurina> <20030320112517.GF10729@irssi.ath.cx> X-Enigmail-Version: 0.63.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 427 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ggendel@sarnoff.com Precedence: bulk X-list: dovecot X-UID: 427 Status: O Content-Length: 2830 Marcus Rueckert wrote: > On 2003-03-19 20:30:53 -0500, Charlie Brady wrote: > >>Privilege separation is a very good thing. Is there any more detailed >>documentation of how you have done yours than >>http://dovecot.procontrol.fi/doc/design.txt? >> >>You'll see that in the setup I've detailed above I am only using the >>"imap" binary from dovecot. I'm happy with the division of labour >>which >>has tcpserver doing network connection control, imapfront-auth+cvm >>doing >>authentication and uid switching, and imap doing mailbox access and >>IMAp >>protocol implementation. I expect to add stunnel doing TLS to that mix >>tomorrow. >> >>Can you provide any reasons why I should use your imap-master, >>imap-auth >>and imap-login proceses rather than my mix'n'match setup? I'm >>confident >>that my setup has the simple, secure, reliable characteristics that I >>need, whereas I don't have the same confidence in your process set - >>it >>seems unnecessarily complex to me. >> >> >>>Only thing I'm wondering is if any of the TCP wrappers care about >>>the >>>created child processes? The master process would have to stay alive >>>after the connection that created it dies. >> >>In general they will, as they will do connection counting. This is >>handled >>in my setup above, as each process execs the following one: tcpserver >>forks, and the child execs "imapfront-auth", which then authenticates >>and >>execs "imap". > > > hi > first of all i want to paste this > > On Wed, 19 Mar 2003, Timo Sirainen wrote: > ( Message-Id: <1048083821.850.30.camel@hurina> ) > >>Only solution for now is to set /var/mail world-writable and sticky. >>Another way would be to use more privileged process for handling lock >>files. Some programs use setuid or setgid binary for that. I was >>thinking that I'd let imap process request the locks from master >>process. That would also allow overriding stale lock files created by >>other users with shared mailboxes. > > > another point would be no reusing. you restart all processes on each > connection. if i count correctly: > > 1 tcpserver + 1 imapauth + 1 imap binary per connection > > forked on every connect. > > iirc correctly cras implemented resuing of the already spawned > processes. maybe a reason. tcpserver has been used in the high-performance mail system, Qmail. It really doesn't suffer as high an overhead as you think. Three processes are not spawned, instead each one is replaced by the next in the same process space (using execv or execvp). tcpserver either rejects the connection (based upon connecting IP rules), or adds specified variables to the environment and execs the next program in the chain. imapauth negotiates login, fails or execs imap. This kind of exec chaining has shown to be really efficient on unix/linux platforms. Gary From tss@iki.fi Thu Mar 20 15:26:40 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 15:26:40 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 383FB2385F for ; Thu, 20 Mar 2003 15:26:40 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 01FEC5E01F94; Thu, 20 Mar 2003 15:26:39 +0200 (EET) Subject: [dovecot] Re: inetd/xinetd/tcpserver support From: Timo Sirainen To: Charlie Brady Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048166799.5765.93.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 20 Mar 2003 15:26:39 +0200 X-archive-position: 428 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 428 Status: O Content-Length: 2777 On Thu, 2003-03-20 at 03:30, Charlie Brady wrote: > I have a working tcpserver system, but one using a substantially different > process mix. I haven't used imap-login at all, but have used > imapfront-auth from Bruce Guenter's mailfront package > (http://www.untroubled.org/mailfront/). > > 002 login foo xxxxx > * PREAUTH [CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND > UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED] Logged in as foo There's one problem. Dovecot shouldn't reply with PREAUTH but "002 OK". Mailfront gives the 002 in environment variable, so you'd have to modify Dovecot to use it. Dovecot did before use such variable, but I changed it later to send the OK before executing imap process. I don't really remember why anymore, but I think there was a good reason :) > Privilege separation is a very good thing. Is there any more detailed > documentation of how you have done yours than > http://dovecot.procontrol.fi/doc/design.txt? Not really. And I'm not really sure how I could get it more detailed? :) I think that tells the most relevant things. > Can you provide any reasons why I should use your imap-master, imap-auth > and imap-login proceses rather than my mix'n'match setup? I'm confident > that my setup has the simple, secure, reliable characteristics that I > need, whereas I don't have the same confidence in your process set - it > seems unnecessarily complex to me. Well, your setup doesn't have privilege separation :) It runs as root all the way until imap process is started. I looked at mailfront and it looked good, but I wouldn't be that confident after you add SSL support. There's been holes in OpenSSL library, and I think there's still more to be found (or created). Security holes in it gives instant root access with your setup, with Dovecot setup the process executing SSL is non-privileged and chrooted so it's not very likely that attacker could do much there. Another problem with mailfront is that it doesn't support IMAP literals, eg.: x login {4} user {4} pass I don't know if there's any clients that would do it, but it would be valid for them. > > Only thing I'm wondering is if any of the TCP wrappers care about the > > created child processes? The master process would have to stay alive > > after the connection that created it dies. > > In general they will, as they will do connection counting. This is handled > in my setup above, as each process execs the following one: tcpserver > forks, and the child execs "imapfront-auth", which then authenticates and > execs "imap". I implemented this now so that imap-login executes, which forks a new master process. imap-login dies after user logs in, but master stays there. imap process is also forked by master process. From lfarkas@bnap.hu Thu Mar 20 15:41:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 15:41:33 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 5E92823839 for ; Thu, 20 Mar 2003 15:41:33 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 65B8E754019 for ; Thu, 20 Mar 2003 14:41:31 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id ECED13EEC for ; Thu, 20 Mar 2003 14:41:30 +0100 (CET) Message-ID: <3E79C514.7090004@bnap.hu> Date: Thu, 20 Mar 2003 14:41:40 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] Re: more problem with Sent References: <3E798C0E.8000409@bnap.hu> In-Reply-To: <3E798C0E.8000409@bnap.hu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 429 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 429 Status: O Farkas Levente wrote: > hi, > ok it's turn out that not just mozilla not able to put the sent mails > into the Sent folder but our webmail frontend (SquirrelMail) can't do > it. so those who are using the webmail no longer able to use the mail > system:-((( or may be the problem with the attachmnet and the reason can be the same as with large file retriving... -- Levente "Si vis pacem para bellum!" From tss@iki.fi Thu Mar 20 15:42:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 15:42:17 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 41A4E23839 for ; Thu, 20 Mar 2003 15:42:17 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 24C2F5E01F94; Thu, 20 Mar 2003 15:42:17 +0200 (EET) Subject: [dovecot] Re: inetd/xinetd/tcpserver support From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3E79B947.2010801@sarnoff.com> References: <1046224359.30815.36.camel@hurina> <20030320112517.GF10729@irssi.ath.cx> <3E79B947.2010801@sarnoff.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048167736.5765.111.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 20 Mar 2003 15:42:17 +0200 X-archive-position: 430 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 430 Status: O Content-Length: 1971 On Thu, 2003-03-20 at 14:51, GARY GENDEL wrote: > > iirc correctly cras implemented resuing of the already spawned > > processes. maybe a reason. No, I don't reuse processes. They could be reused within same UID, but I'm not sure if it's good idea. At least if the UID is used by multiple users, something sensitive could be left in process memory space from previous user and that's not really good. I've actually been thinking that I could make imap process completely non-blocking which would allow using one process for multiple IMAP connections for same user. The problem cases are mostly just APPEND which blocks for input from user, and the commands which return a lot of data and block on output. After fixing those, there's still the problem that at least SEARCH could block because it's so slow. Maybe have two processes, one handling slow/large queries, other handling quick queries. Well, there's still the annoying problem that by making the output non-blocking, I'd have to be constantly calling poll() to see when I can write more data. That's a lot of useless syscalls compared to the current blocking model. > tcpserver has been used in the high-performance mail system, Qmail. It > really doesn't suffer as high an overhead as you think. Three processes > are not spawned, instead each one is replaced by the next in the same > process space (using execv or execvp). tcpserver either rejects the > connection (based upon connecting IP rules), or adds specified variables > to the environment and execs the next program in the chain. imapauth > negotiates login, fails or execs imap. This kind of exec chaining has > shown to be really efficient on unix/linux platforms. It also has the problem that it has to run as root until user has authenticated. Dovecot can also be setup to use a single process to handle multiple login connections. That means only a single fork+exec per connection, and still never parsing user input as root. From tss@iki.fi Thu Mar 20 16:32:09 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 16:32:09 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F2CF923839 for ; Thu, 20 Mar 2003 16:32:08 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 41B6C5E01F94; Thu, 20 Mar 2003 16:32:08 +0200 (EET) Subject: [dovecot] Re: more problem with Sent From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <3E79C514.7090004@bnap.hu> References: <3E798C0E.8000409@bnap.hu> <3E79C514.7090004@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048170728.5765.118.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 20 Mar 2003 16:32:08 +0200 X-archive-position: 431 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 431 Status: O On Thu, 2003-03-20 at 15:41, Farkas Levente wrote: > > ok it's turn out that not just mozilla not able to put the sent mails > > into the Sent folder but our webmail frontend (SquirrelMail) can't do > > it. so those who are using the webmail no longer able to use the mail > > system:-((( > > or may be the problem with the attachmnet and the reason can be the same > as with large file retriving... Well, at least try if the partial.patch fixes that, you can get it from Dovecot's web page. Anyway, I think I have now time to look at the problems, unless something happens to interrupt me.. From charlieb-dovecot@e-smith.com Thu Mar 20 17:11:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 17:11:51 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 7C5FC2385F for ; Thu, 20 Mar 2003 17:11:50 +0200 (EET) Received: (qmail 28860 invoked by uid 404); 20 Mar 2003 15:11:49 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 20 Mar 2003 10:11:48 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Mar 2003 15:11:48 -0000 Received: (qmail 9474 invoked from network); 20 Mar 2003 15:11:48 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 20 Mar 2003 15:11:48 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Mar 2003 15:15:48 -0000 Date: Thu, 20 Mar 2003 10:15:48 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Marcus Rueckert Cc: dovecot@procontrol.fi Subject: [dovecot] Re: inetd/xinetd/tcpserver support In-Reply-To: <20030320112517.GF10729@irssi.ath.cx> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 432 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 432 Status: O Content-Length: 1585 [Please remember to trim down to minimum quoted text, guys] On Thu, 20 Mar 2003, Marcus Rueckert wrote: > > In general they will, as they will do connection counting. This is > > handled > > in my setup above, as each process execs the following one: tcpserver > > forks, and the child execs "imapfront-auth", which then authenticates > > and > > execs "imap". > > first of all i want to paste this > > On Wed, 19 Mar 2003, Timo Sirainen wrote: > ( Message-Id: <1048083821.850.30.camel@hurina> ) > > Only solution for now is to set /var/mail world-writable and sticky. > > Another way would be to use more privileged process for handling lock > > files. Some programs use setuid or setgid binary for that. I was > > thinking that I'd let imap process request the locks from master > > process. That would also allow overriding stale lock files created by > > other users with shared mailboxes. You haven't said why you wanted to paste that. Could you explain please? > another point would be no reusing. you restart all processes on each > connection. if i count correctly: > > 1 tcpserver + 1 imapauth + 1 imap binary per connection > > forked on every connect. You haven't counted correct, as someone has already pointed out (and as indeed I did in the text you have quoted above). > iirc correctly cras implemented resuing of the already spawned > processes. maybe a reason. I had to use google to find out what "cras" was. ["cras" is Timo.] > isnt there a lib offering tcp-server like functionality? Probably not, but I don't see the relevance anyway. -- Charlie From charlieb-dovecot@e-smith.com Thu Mar 20 17:23:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 17:23:56 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 646822385F for ; Thu, 20 Mar 2003 17:23:55 +0200 (EET) Received: (qmail 923 invoked by uid 404); 20 Mar 2003 15:23:54 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 20 Mar 2003 10:23:53 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Mar 2003 15:23:52 -0000 Received: (qmail 13688 invoked from network); 20 Mar 2003 15:23:40 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 20 Mar 2003 15:23:40 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Mar 2003 15:27:39 -0000 Date: Thu, 20 Mar 2003 10:27:39 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: inetd/xinetd/tcpserver support In-Reply-To: <1048166799.5765.93.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 433 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 433 Status: O Content-Length: 3197 On 20 Mar 2003, Timo Sirainen wrote: > On Thu, 2003-03-20 at 03:30, Charlie Brady wrote: > > I have a working tcpserver system, but one using a substantially different > > process mix. I haven't used imap-login at all, but have used > > imapfront-auth from Bruce Guenter's mailfront package > > (http://www.untroubled.org/mailfront/). > > > > 002 login foo xxxxx > > * PREAUTH [CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND > > UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED] Logged in as foo > > There's one problem. Dovecot shouldn't reply with PREAUTH but "002 OK". > Mailfront gives the 002 in environment variable, so you'd have to modify > Dovecot to use it. I realised that was a problem. I'm happy to hear that you have a solution :-) > Dovecot did before use such variable, but I changed > it later to send the OK before executing imap process. I don't really > remember why anymore, but I think there was a good reason :) Perhaps the reason is to be found in CVS change logs. I'd really appreciate it if you could point out to me where I'd find the code which would make use of the variable. > > Privilege separation is a very good thing. Is there any more detailed > > documentation of how you have done yours than > > http://dovecot.procontrol.fi/doc/design.txt? > > Not really. And I'm not really sure how I could get it more detailed? :) > I think that tells the most relevant things. I guess I asked the wrong question. I shouldn't have asked "how" - I should have asked "why have you done it that way?". The system you have seems over complex. Simple solutions (if they work correctly) are always better. > > Can you provide any reasons why I should use your imap-master, imap-auth > > and imap-login proceses rather than my mix'n'match setup? I'm confident > > that my setup has the simple, secure, reliable characteristics that I > > need, whereas I don't have the same confidence in your process set - it > > seems unnecessarily complex to me. > > Well, your setup doesn't have privilege separation :) It runs as root > all the way until imap process is started. I looked at mailfront and it > looked good, but I wouldn't be that confident after you add SSL support. > There's been holes in OpenSSL library, and I think there's still more to > be found (or created). Security holes in it gives instant root access > with your setup, Not so. See below. > with Dovecot setup the process executing SSL is > non-privileged and chrooted so it's not very likely that attacker could > do much there. If you have a look at Scott Gifford's work, he also runs SSL non-root and chrooted. I agree with you that that is a very significant improvement over established practice. > Another problem with mailfront is that it doesn't support IMAP literals, > eg.: > > x login {4} > user {4} > pass > > I don't know if there's any clients that would do it, but it would be > valid for them. Yes, that is a deficiency, but as you point out, probably not practically relevant at the moment. If it did become a problem, mailfront could be patched - it's GPL software, and Bruce Guenter can be persuaded to do commissioned work. -- Charlie From lfarkas@bnap.hu Thu Mar 20 17:27:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 17:27:02 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id C536C2385F for ; Thu, 20 Mar 2003 17:27:01 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 7ED2F75402A for ; Thu, 20 Mar 2003 16:26:59 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 739CD3EE4 for ; Thu, 20 Mar 2003 16:26:58 +0100 (CET) Message-ID: <3E79DDCD.9000608@bnap.hu> Date: Thu, 20 Mar 2003 16:27:09 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] Re: more problem with Sent References: <3E798C0E.8000409@bnap.hu> <3E79C514.7090004@bnap.hu> <1048170728.5765.118.camel@hurina> In-Reply-To: <1048170728.5765.118.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 434 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 434 Status: O Timo Sirainen wrote: > On Thu, 2003-03-20 at 15:41, Farkas Levente wrote: > >>>ok it's turn out that not just mozilla not able to put the sent mails >>>into the Sent folder but our webmail frontend (SquirrelMail) can't do >>>it. so those who are using the webmail no longer able to use the mail >>>system:-((( >> >>or may be the problem with the attachmnet and the reason can be the same >>as with large file retriving... > > > Well, at least try if the partial.patch fixes that, you can get it from > Dovecot's web page. Anyway, I think I have now time to look at the > problems, unless something happens to interrupt me.. now I able to manage the compile a the latest cvs (libtool are hardcoded and other problems:-) all problems remain:-( - "only header" works in OE6 but "all messages" still not with mailbox with large messages. - squirelmail can't senmd mails with attachments - mozilla can't work. -- Levente "Si vis pacem para bellum!" From charlieb-dovecot@e-smith.com Thu Mar 20 17:44:41 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 17:44:41 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 02E2F23839 for ; Thu, 20 Mar 2003 17:44:41 +0200 (EET) Received: (qmail 5805 invoked by uid 404); 20 Mar 2003 15:44:40 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 20 Mar 2003 10:44:39 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Mar 2003 15:44:38 -0000 Received: (qmail 19213 invoked from network); 20 Mar 2003 15:44:10 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 20 Mar 2003 15:44:10 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Mar 2003 15:48:10 -0000 Date: Thu, 20 Mar 2003 10:48:10 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Subject: [dovecot] Re: inetd/xinetd/tcpserver support In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 435 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 435 Status: O Content-Length: 2329 On Thu, 20 Mar 2003, Charlie Brady wrote: > On 20 Mar 2003, Timo Sirainen wrote: > > > Dovecot did before use such variable, but I changed > > it later to send the OK before executing imap process. I don't really > > remember why anymore, but I think there was a good reason :) > > Perhaps the reason is to be found in CVS change logs. > > I'd really appreciate it if you could point out to me where I'd find the > code which would make use of the variable. Found it. Here's the change which broke mailfront compatibility: revision 1.20 date: 2003/01/27 01:33:40; author: cras; state: Exp; lines: +4 -5 We have now separate "userdb" and "passdb". They aren't tied to each others in any way, so it's possible to use whatever user database with whatever password database. Added "static" userdb, which uses same uid/gid for everyone and generates home directory from given template. This could be useful with PAM, although insecure since everyone uses same uid. Not too well tested, and userdb/passdb API still needs to be changed to asynchronous for sql/ldap/etc lookups. diff -u -r1.19 -r1.20 --- src/imap/main.c 5 Jan 2003 13:09:51 -0000 1.19 +++ src/imap/main.c 27 Jan 2003 01:33:40 -0000 1.20 @@ -12,7 +12,7 @@ #include #define IS_STANDALONE() \ - (getenv("LOGIN_TAG") == NULL) + (getenv("LOGGED_IN") == NULL) struct ioloop *ioloop; static char log_prefix[128]; /* syslog() needs this to be permanent */ @@ -104,9 +104,6 @@ client_send_line(client, t_strconcat( "* PREAUTH [CAPABILITY "CAPABILITY_STRING"] " "Logged in as ", getenv("USER"), NULL)); - } else { - client_send_line(client, t_strconcat(getenv("LOGIN_TAG"), - " OK Logged in.", NULL)); } } @@ -125,8 +122,10 @@ int main(int argc __attr_unused__, char *argv[], char *envp[]) { #ifdef DEBUG - if (getenv("LOGIN_TAG") != NULL) + if (getenv("LOGGED_IN") != NULL) { fd_debug_verify_leaks(3, 1024); + putenv("DISABLE_ALARMHUP=1"); /* annoying when debugging */ + } #endif /* NOTE: we start rooted, so keep the code minimal until restrict_access_by_env() is called */ -- Charlie From tss@iki.fi Thu Mar 20 19:09:58 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 19:09:58 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BAB202385F for ; Thu, 20 Mar 2003 19:09:57 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 376815E01F95; Thu, 20 Mar 2003 19:09:57 +0200 (EET) Subject: [dovecot] Re: more problem with Sent From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <3E798C0E.8000409@bnap.hu> References: <3E798C0E.8000409@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048180196.5765.146.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 20 Mar 2003 19:09:57 +0200 X-archive-position: 436 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 436 Status: O On Thu, 2003-03-20 at 11:38, Farkas Levente wrote: > ok it's turn out that not just mozilla not able to put the sent mails > into the Sent folder but our webmail frontend (SquirrelMail) can't do > it. so those who are using the webmail no longer able to use the mail > system:-((( Using LITERAL+ with APPEND was broken. That's at least why Mozilla couldn't save messages. Fixed in CVS, and I also added patch to web page. From tss@iki.fi Thu Mar 20 19:47:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 19:47:15 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E0C9523839 for ; Thu, 20 Mar 2003 19:47:14 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 895445E01F95; Thu, 20 Mar 2003 19:47:14 +0200 (EET) Subject: [dovecot] Re: some problem with dovecot From: Timo Sirainen To: Farkas Levente Cc: dovecot@procontrol.fi In-Reply-To: <20030319113734.BA3F8754025@mail1.bppiac.hu> References: <20030319113734.BA3F8754025@mail1.bppiac.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048182434.5760.177.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 20 Mar 2003 19:47:14 +0200 X-archive-position: 437 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 437 Status: O Content-Length: 1282 On Wed, 2003-03-19 at 13:35, Farkas Levente wrote: > - first of all the folder list can't be subscribed i.e. only the top level > folder can be subscribed. can't subscribe to folder which has subfolders and > mail inside. all folders with has subfolders shonw as an empty name folder > under itself. and you can't select these folders in mozilla's subscribe > window (i.e you are not able to check it even it is there). Looks like mozilla is a bit buggy here. But Dovecot was too, fixed again in CVS and patch in web page. LIST "" foo.% * LIST () "." "foo." * LIST () "." "foo.bar" Mozilla doesn't like the "foo." in the reply. IMAP protocol says that it should be sent, but Courier and Cyrus doesn't send it either. Also this was buggy in Dovecot anyway since it was always sent as \NoSelect folder, which is why you couldn't subscribe to those folders. Another strange thing that I see is: 3 list "" "%" * LIST (\Children \UnMarked) "." "evolution" .. 4 list "" "%.%" * LIST (\UnMarked) "." "evolution.juttu" .. 11 subscribe "evolution/juttu" 11 NO [TRYCREATE] Mailbox doesn't exist: evolution/juttu Why does it try "/" separator? That's clearly mozilla bug. Actually Dovecot is buggy there too, it shouldn't have said [TRYCREATE] since "/" makes it invalid mailbox name.. From tss@iki.fi Thu Mar 20 19:50:57 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 19:50:57 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 42DC823839 for ; Thu, 20 Mar 2003 19:50:57 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 5349D5E01F95; Thu, 20 Mar 2003 19:50:56 +0200 (EET) Subject: [dovecot] Re: some problem with dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1048182434.5760.177.camel@hurina> References: <20030319113734.BA3F8754025@mail1.bppiac.hu> <1048182434.5760.177.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048182656.5765.179.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 20 Mar 2003 19:50:56 +0200 X-archive-position: 438 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 438 Status: O On Thu, 2003-03-20 at 19:47, Timo Sirainen wrote: > 11 NO [TRYCREATE] Mailbox doesn't exist: evolution/juttu > > Why does it try "/" separator? That's clearly mozilla bug. Actually > Dovecot is buggy there too, it shouldn't have said [TRYCREATE] since "/" > makes it invalid mailbox name.. Whops, no it wasn't, I just had full_filesystem_access = yes. From tss@iki.fi Thu Mar 20 19:56:12 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 19:56:12 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DFA3D23839 for ; Thu, 20 Mar 2003 19:56:11 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 6B7EA5E01F95; Thu, 20 Mar 2003 19:56:11 +0200 (EET) Subject: [dovecot] Re: debian 0.99.8.1 packages available From: Timo Sirainen To: Amelia A Lewis Cc: dovecot@procontrol.fi In-Reply-To: <20030318170520.GA1766@talsever.com> References: <20030318161232.GA1537@talsever.com> <20030318170520.GA1766@talsever.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048182971.5760.181.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 20 Mar 2003 19:56:11 +0200 X-archive-position: 439 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 439 Status: O On Tue, 2003-03-18 at 19:05, Amelia A Lewis wrote: > There's something weird happening when you put mail and subfolders in the > same folder. Creating a subfolder means that any mail in the folder is no > longer accessible. For whatever reason, sylpheed can't even see subfolders > (much less create them). I think these are now fixed in CVS or list.patch in web page. From tss@iki.fi Thu Mar 20 20:09:13 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 20:09:13 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5EE4723839 for ; Thu, 20 Mar 2003 20:09:13 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 34C495E01F95; Thu, 20 Mar 2003 20:09:13 +0200 (EET) Subject: [dovecot] Re: some problem with dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3E788683.3040803@bnap.hu> References: <20030319113734.BA3F8754025@mail1.bppiac.hu> <20030319121608.5C0BF754013@mail1.bppiac.hu> <1048077140.848.19.camel@hurina> <3E788683.3040803@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048183752.5765.195.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 20 Mar 2003 20:09:13 +0200 X-archive-position: 440 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 440 Status: O On Wed, 2003-03-19 at 17:02, Farkas Levente wrote: > > I didn't really like having indexes stored in the root directory.. > > why? > there are other files in the root directory: > .subscriptions > .customflags > and in this case the directory stucture would be consistent. Originally I made the .INBOX because I thought that'd help me with renaming INBOX, so I wouldn't have to rename() all files separately. But I don't even try to support renaming INBOX anymore since it can't be done atomically. I guess I could just put everything in the root dir. But I think I'll do it only after next release so UIDs won't get lost when it gets moved. From ggendel@sarnoff.com Thu Mar 20 20:26:42 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 20:26:42 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from ace.sarnoff.com (ace.sarnoff.com [130.33.8.46]) by danu.procontrol.fi (Postfix) with SMTP id B0D3823839 for ; Thu, 20 Mar 2003 20:26:41 +0200 (EET) Received: from postoffice.sarnoff.com(130.33.10.147) by ace.sarnoff.com via csmap id 1879; Thu, 20 Mar 2003 13:26:17 -0500 (EST) Received: from sarnoff.com ([130.33.205.137]) by postoffice.sarnoff.com (Netscape Messaging Server 4.15) with ESMTP id HC28KM00.GP2; Thu, 20 Mar 2003 13:26:46 -0500 Message-ID: <3E7A074C.9030506@sarnoff.com> Date: Thu, 20 Mar 2003 13:24:12 -0500 From: "GARY GENDEL" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Conformance testing References: <20030319113734.BA3F8754025@mail1.bppiac.hu> <20030319121608.5C0BF754013@mail1.bppiac.hu> <1048077140.848.19.camel@hurina> <3E788683.3040803@bnap.hu> <1048183752.5765.195.camel@hurina> X-Enigmail-Version: 0.63.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 441 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ggendel@sarnoff.com Precedence: bulk X-list: dovecot X-UID: 441 Status: O Timo, I tried Dovecot and think it has some real potential. The version I used had some flakey operation and some correspond to the problems other people are reporting. It could use more documentation so we can come up to speed properly to help develop, test, and expand it's capabilities. As for all the issues with IMAP... Have you tried the following program to test dovecot's conformance? http://www.alphaworks.ibm.com/tech/serverconformancetester If not, I suggest it would be worthwhile. This is the program that UW-IMAP and others use to verify their system. Gary From tss@iki.fi Thu Mar 20 20:46:12 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 20:46:12 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0DD442385F for ; Thu, 20 Mar 2003 20:46:12 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id DAA6E5E01F95; Thu, 20 Mar 2003 20:46:11 +0200 (EET) Subject: [dovecot] Re: inetd/xinetd/tcpserver support From: Timo Sirainen To: Charlie Brady Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048185971.5765.230.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 20 Mar 2003 20:46:11 +0200 X-archive-position: 442 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 442 Status: O Content-Length: 1055 On Thu, 2003-03-20 at 17:27, Charlie Brady wrote: > > > Privilege separation is a very good thing. Is there any more detailed > > > documentation of how you have done yours than > > > http://dovecot.procontrol.fi/doc/design.txt? > > > > Not really. And I'm not really sure how I could get it more detailed? :) > > I think that tells the most relevant things. > > I guess I asked the wrong question. I shouldn't have asked "how" - I > should have asked "why have you done it that way?". The system you have > seems over complex. Simple solutions (if they work correctly) are always > better. It's mostly about running things with least required privileges. I don't think it's really complex either, only thing that makes it more complex is IPC. The current way also makes it possible to having long running auth and login processes. Especially long running auth process can give much higher performance since it doesn't have to keep reconnecting to LDAP or SQL server, or keep reopening and reparsing some passwd files every time a user logs in. From charlieb-dovecot@e-smith.com Thu Mar 20 21:02:01 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 21:02:01 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 9062D2385F for ; Thu, 20 Mar 2003 21:02:00 +0200 (EET) Received: (qmail 29569 invoked by uid 404); 20 Mar 2003 19:01:59 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 20 Mar 2003 14:01:59 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Mar 2003 19:01:58 -0000 Received: (qmail 19501 invoked from network); 20 Mar 2003 19:01:58 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 20 Mar 2003 19:01:58 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Mar 2003 19:05:58 -0000 Date: Thu, 20 Mar 2003 14:05:57 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Long running auth/login processes (was Re: Re: inetd/xinetd/tcpserver support) In-Reply-To: <1048185971.5765.230.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 443 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 443 Status: O On 20 Mar 2003, Timo Sirainen wrote: > The current way also makes it possible to having long running auth and > login processes. Especially long running auth process can give much > higher performance since it doesn't have to keep reconnecting to LDAP or > SQL server, or keep reopening and reparsing some passwd files every time > a user logs in. Why do you care about long running login processes? The long running auth process problem can be solved by using a unix domain socket. This is how Bruce Guenter's mailfront works. The authenticator runs long term, and listens to a socket (unix domain preferred, but there are other options). The login process is run from tcpserver, and gathers information from the client, and then connects to the authenticator and verified the information. -- Charlie From ggendel@sarnoff.com Thu Mar 20 21:42:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 21:42:54 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from ace.sarnoff.com (ace.sarnoff.com [130.33.8.46]) by danu.procontrol.fi (Postfix) with SMTP id 84F6323839 for ; Thu, 20 Mar 2003 21:42:53 +0200 (EET) Received: from postoffice.sarnoff.com(130.33.10.147) by ace.sarnoff.com via csmap id 4391; Thu, 20 Mar 2003 14:42:29 -0500 (EST) Received: from sarnoff.com ([130.33.205.137]) by postoffice.sarnoff.com (Netscape Messaging Server 4.15) with ESMTP id HC2C3M00.BRO for ; Thu, 20 Mar 2003 14:42:58 -0500 Message-ID: <3E7A1928.1060007@sarnoff.com> Date: Thu, 20 Mar 2003 14:40:24 -0500 From: "GARY GENDEL" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en MIME-Version: 1.0 Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Conformance testing References: X-Enigmail-Version: 0.63.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 444 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ggendel@sarnoff.com Precedence: bulk X-list: dovecot X-UID: 444 Status: O Charlie Brady wrote: > On Thu, 20 Mar 2003, GARY GENDEL wrote: > > >>As for all the issues with IMAP... Have you tried the following program >>to test dovecot's conformance? >> >>http://www.alphaworks.ibm.com/tech/serverconformancetester >> >>If not, I suggest it would be worthwhile. > > > Only runs on WIN32 and AIX unfortunately. True, but the server can be running on anything. You must have a kickaround machine that has windows on it. :^( Gary From tss@iki.fi Thu Mar 20 21:46:13 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 21:46:13 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1965A23839 for ; Thu, 20 Mar 2003 21:46:13 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id A80155E01F95; Thu, 20 Mar 2003 21:46:12 +0200 (EET) Subject: [dovecot] Re: Long running auth/login processes (was Re: Re: inetd/xinetd/tcpserver support) From: Timo Sirainen To: Charlie Brady Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048189572.5765.246.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 20 Mar 2003 21:46:12 +0200 X-archive-position: 445 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 445 Status: O Content-Length: 1488 On Thu, 2003-03-20 at 21:05, Charlie Brady wrote: > On 20 Mar 2003, Timo Sirainen wrote: > > > The current way also makes it possible to having long running auth and > > login processes. Especially long running auth process can give much > > higher performance since it doesn't have to keep reconnecting to LDAP or > > SQL server, or keep reopening and reparsing some passwd files every time > > a user logs in. > > Why do you care about long running login processes? That gives less amount of total running processes since you don't need extra one for handling SSL. It also does SSL initialization only once, instead of once per connection. Sure, this could also be done by separate long running SSL process. Anyway, I don't really care much about it since it pretty much means that exploiting it gives access to connections of all users. > The long running auth process problem can be solved by using a unix domain > socket. This is how Bruce Guenter's mailfront works. The authenticator > runs long term, and listens to a socket (unix domain preferred, but there > are other options). The login process is run from tcpserver, and gathers > information from the client, and then connects to the authenticator and > verified the information. So, is it really much different from my design then? Sounds like the only difference is that it runs login code as root and exec()s imap binary after login, where my code sends it through master process which forks new imap process. From charlieb@e-smith.com Thu Mar 20 21:20:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 21:46:54 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 931842385F for ; Thu, 20 Mar 2003 21:20:54 +0200 (EET) Received: (qmail 4468 invoked by uid 404); 20 Mar 2003 19:20:53 -0000 Received: from charlieb@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 20 Mar 2003 14:20:53 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Mar 2003 19:20:52 -0000 Received: (qmail 27591 invoked from network); 20 Mar 2003 19:20:03 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 20 Mar 2003 19:20:03 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Mar 2003 19:24:03 -0000 Date: Thu, 20 Mar 2003 14:24:03 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: GARY GENDEL Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Conformance testing In-Reply-To: <3E7A074C.9030506@sarnoff.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 446 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb@e-smith.com Precedence: bulk X-list: dovecot X-UID: 446 Status: O On Thu, 20 Mar 2003, GARY GENDEL wrote: > As for all the issues with IMAP... Have you tried the following program > to test dovecot's conformance? > > http://www.alphaworks.ibm.com/tech/serverconformancetester > > If not, I suggest it would be worthwhile. Only runs on WIN32 and AIX unfortunately. -- Charlie From charlieb-dovecot@e-smith.com Thu Mar 20 23:23:20 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 20 Mar 2003 23:23:20 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 6FF782385F for ; Thu, 20 Mar 2003 23:23:19 +0200 (EET) Received: (qmail 29420 invoked by uid 404); 20 Mar 2003 21:23:18 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 20 Mar 2003 16:23:18 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Mar 2003 21:23:17 -0000 Received: (qmail 8318 invoked from network); 20 Mar 2003 21:23:17 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 20 Mar 2003 21:23:17 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Mar 2003 21:27:17 -0000 Date: Thu, 20 Mar 2003 16:27:17 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Long running auth/login processes (was Re: Re: inetd/xinetd/tcpserver support) In-Reply-To: <1048189572.5765.246.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 447 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 447 Status: O Content-Length: 2910 On 20 Mar 2003, Timo Sirainen wrote: > On Thu, 2003-03-20 at 21:05, Charlie Brady wrote: > > > > Why do you care about long running login processes? > > That gives less amount of total running processes since you don't need > extra one for handling SSL. You need two processes per connection or you don't have adequate privilege separation. In my case, I have one acting either as a cleartext proxy or as an SSL wrapper, and the other does authentication and then execs the imap daemon. How would you avoid one > It also does SSL initialization only once, instead of once per > connection. Sure, this could also be done by separate long running SSL > process. Yes, it would be nice to do SSL initialization once, but I don't think the performance issue is enough to compomise the security and reliabilty of the system for. > Anyway, I don't really care much about it since it pretty much means > that exploiting it gives access to connections of all users. So you don't want to have a long running login process after all? > > The long running auth process problem can be solved by using a unix domain > > socket. This is how Bruce Guenter's mailfront works. The authenticator > > runs long term, and listens to a socket (unix domain preferred, but there > > are other options). The login process is run from tcpserver, and gathers > > information from the client, and then connects to the authenticator and > > verified the information. > > So, is it really much different from my design then? I don't know, but I'm trying to learn. You know your design and your code; I'm just feeling my way around. Your documentation is good in parts, but there are still big gaps. The installation documentation only covers building - I have yet to find anything which tells me how to execute dovecot (have I missed it?). I'm not sure which processes run when, and exactly what communication occurs between them over what communication channels. > Sounds like the > only difference is that it runs login code as root and exec()s imap > binary after login, where my code sends it through master process which > forks new imap process. I don't know exactly what "sent it through master process" means. I have a preference for running simple software which I already have reason to trust. This is why I want to use tcpserver, and why I have a leaning towards using mailfront and cvm. I know that stunnel isn't completely wonderful, but it is very widely used, and the chroot feature added by Scott Gifford fixes the principal weakness. I am looking for a better IMAP daemon than I have at present, but I would prefer not to have a new system of authentication, and a new network connection monitor. There is a lot of new (to me) code in dovecot, but the only code of high value to me is the imap daemon itself. I hope this explains my line of questioning to you a little. -- Charlie From charlieb-dovecot@e-smith.com Fri Mar 21 00:16:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 21 Mar 2003 00:16:53 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id BDD2C23839 for ; Fri, 21 Mar 2003 00:16:52 +0200 (EET) Received: (qmail 16803 invoked by uid 404); 20 Mar 2003 22:16:52 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 20 Mar 2003 17:16:52 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Mar 2003 22:16:51 -0000 Received: (qmail 28740 invoked from network); 20 Mar 2003 22:16:51 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 20 Mar 2003 22:16:51 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Mar 2003 22:20:51 -0000 Date: Thu, 20 Mar 2003 17:20:51 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Subject: [dovecot] tcpserver/mailfront/stunnel with patch (was Re: inetd/xinetd/tcpserver support) In-Reply-To: <1048166799.5765.93.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="554321423-1746228115-1048198851=:18300" X-archive-position: 448 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 448 Status: O Content-Length: 3242 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --554321423-1746228115-1048198851=:18300 Content-Type: TEXT/PLAIN; charset=US-ASCII On 20 Mar 2003, Timo Sirainen wrote: > On Thu, 2003-03-20 at 03:30, Charlie Brady wrote: > > I have a working tcpserver system, but one using a substantially different > > process mix. I haven't used imap-login at all, but have used > > imapfront-auth from Bruce Guenter's mailfront package > > (http://www.untroubled.org/mailfront/). > > > > 002 login foo xxxxx > > * PREAUTH [CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND > > UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED] Logged in as foo > > There's one problem. Dovecot shouldn't reply with PREAUTH but "002 OK". > Mailfront gives the 002 in environment variable, so you'd have to modify > Dovecot to use it. Done - patch is attached. Here is the run file for running stunnel/mailfront/dovecot under tcpserver: #!/bin/sh concurrency=20 ulimitdata=3000000 CVM_SASL_PLAIN=cvm-local:/tmp/.cvm-unix-local export CVM_SASL_PLAIN CVM_ACCOUNT_SPLIT_CHARS= export CVM_ACCOUNT_SPLIT_CHARS SSLUID=`id -u stunnel` SSLGID=`id -g stunnel` exec 2>&1 exec \ softlimit -m $ulimitdata \ tcpserver -dHRvX \ -c "$concurrency" \ -x tcp.cdb \ 0 imap \ makesock \ stunnel -D debug -/ ssl -s "$SSLUID" -g "$SSLGID" \ -N imap \ -i -R seed -p imapd.pem -n imap- -f -F 3 \ -makesock_connect_to \ /usr/bin/imapfront-auth \ /usr/libexec/dovecot/imap This is the chroot jail required by stunnel: -rw-r----- 1 root stunnel ... ssl/imapd.pem -rw------- 1 stunnel stunnel ... ssl/seed -rw-r--r-- 1 root root ... ssl/usr/share/ssl/openssl.cnf -- Charlie --554321423-1746228115-1048198851=:18300 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="dovecot-0.99.8.1.preauth.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="dovecot-0.99.8.1.preauth.patch" LS0tIHNyYy9pbWFwL21haW4uYy5vcmlnCVRodSBNYXIgMjAgMTY6MzI6NDgg MjAwMw0KKysrIHNyYy9pbWFwL21haW4uYwlUaHUgTWFyIDIwIDE3OjAwOjM3 IDIwMDMNCkBAIC03MCw2ICs3MCw3IEBADQogCXN0cnVjdCBjbGllbnQgKmNs aWVudDsNCiAJc3RydWN0IG1haWxfc3RvcmFnZSAqc3RvcmFnZTsNCiAJY29u c3QgY2hhciAqdXNlciwgKm1haWwsICpzdHI7DQorCWNvbnN0IGNoYXIgKnRh ZzsNCiAJaW50IGhpbiwgaG91dDsNCiANCiAJbGliX2luaXRfc2lnbmFscyhz aWdfcXVpdCk7DQpAQCAtMTI0LDExICsxMjUsMTYgQEANCiANCiAJY2xpZW50 ID0gY2xpZW50X2NyZWF0ZShoaW4sIGhvdXQsIHN0b3JhZ2UpOw0KIA0KLQlp ZiAoSVNfU1RBTkRBTE9ORSgpKSB7DQorCXRhZyA9IGdldGVudigiSU1BUExP R0lOVEFHIik7DQorCWlmICh0YWcgPT0gTlVMTCB8fCAqdGFnID09ICdcMCcp IHsNCiAJCWNsaWVudF9zZW5kX2xpbmUoY2xpZW50LCB0X3N0cmNvbmNhdCgN CiAJCQkiKiBQUkVBVVRIIFtDQVBBQklMSVRZICJDQVBBQklMSVRZX1NUUklO RyJdICINCiAJCQkiTG9nZ2VkIGluIGFzICIsIHVzZXIsIE5VTEwpKTsNCi0J fQ0KKwl9IGVsc2Ugew0KKwkJICAgIGNsaWVudF9zZW5kX2xpbmUoY2xpZW50 LA0KKwkJICAgIHRfc3RyY29uY2F0KHRhZywgIiBPSyBMb2dnZWQgaW4uIiwg TlVMTCkpOw0KKwkgCX0NCisNCiB9DQogDQogc3RhdGljIHZvaWQgbWFpbl9k ZWluaXQodm9pZCkNCg== --554321423-1746228115-1048198851=:18300-- From lfarkas@bnap.hu Fri Mar 21 13:10:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 21 Mar 2003 13:10:53 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 15EB62385F for ; Fri, 21 Mar 2003 13:10:53 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id DF5A5754035 for ; Fri, 21 Mar 2003 12:10:57 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id EFDE63EEC for ; Fri, 21 Mar 2003 12:10:46 +0100 (CET) Message-ID: <3E7AF33D.7030606@bnap.hu> Date: Fri, 21 Mar 2003 12:10:53 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: some problem with dovecot References: <20030319113734.BA3F8754025@mail1.bppiac.hu> <20030319121608.5C0BF754013@mail1.bppiac.hu> <1048077140.848.19.camel@hurina> <3E788683.3040803@bnap.hu> <1048183752.5765.195.camel@hurina> In-Reply-To: <1048183752.5765.195.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 449 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 449 Status: O Timo Sirainen wrote: > On Wed, 2003-03-19 at 17:02, Farkas Levente wrote: > >>>I didn't really like having indexes stored in the root directory.. >> >>why? >>there are other files in the root directory: >>.subscriptions >>.customflags >>and in this case the directory stucture would be consistent. > > > Originally I made the .INBOX because I thought that'd help me with > renaming INBOX, so I wouldn't have to rename() all files separately. But > I don't even try to support renaming INBOX anymore since it can't be > done atomically. > > I guess I could just put everything in the root dir. But I think I'll do > it only after next release so UIDs won't get lost when it gets moved. that's nice:-) I realy would like to see as .INBOX disappear:-) -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Fri Mar 21 13:41:03 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 21 Mar 2003 13:41:03 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 4D7C123839 for ; Fri, 21 Mar 2003 13:41:03 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id EE6D4754031 for ; Fri, 21 Mar 2003 12:41:10 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 9CCEB3EE4 for ; Fri, 21 Mar 2003 12:41:02 +0100 (CET) Message-ID: <3E7AFA55.9060105@bnap.hu> Date: Fri, 21 Mar 2003 12:41:09 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] a bit better Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 450 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 450 Status: O hi, so after test the today version. works: - squirrelmail works ie. it can send mail (even with attachments) and put the sent mail into the sent folder. - mozilla can put sent mail into the imap server's sent folder - mozilla see the right folder list (ie. there is no anoying empty name folder under the folders which has subfolder) and you can subcribe to these folders too. still not works: - in mozilla can't copy/move mails from local folder's sent into any of the imap folders. - in mozilla can't sem messages to Drafts (when I put the save button in the compose window it's hang). - in mozilla there is a folder called INBOX in the subscribe window:-( - in OE6 with large mailbox with large message with the default "all messages" settings in the indox outlook hang (the "headers only" still work). -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Fri Mar 21 13:44:35 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 21 Mar 2003 13:44:35 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 8AABC23839 for ; Fri, 21 Mar 2003 13:44:35 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 49E40754032 for ; Fri, 21 Mar 2003 12:44:43 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id B10533EE4 for ; Fri, 21 Mar 2003 12:44:34 +0100 (CET) Message-ID: <3E7AFB29.9040706@bnap.hu> Date: Fri, 21 Mar 2003 12:44:41 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] a bit better, but... Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 451 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 451 Status: O Content-Length: 1032 this is the correct list the previous was too fast:-( hi, so after test the today version. works: - squirrelmail works ie. it can send mail (even with attachments) and put the sent mail into the sent folder. - mozilla see the right folder list (ie. there is no anoying empty name folder under the folders which has subfolder) and you can subcribe to these folders too. still not works: - mozilla can put sent mail into the imap server's sent folder at the first try, but at the next try (when I compose this mails) it hangs again:-( - in mozilla can't copy/move mails from local folder's sent into any of the imap folders. - in mozilla can't sem messages to Drafts (when I put the save button in the compose window it's hang). - in mozilla there is a folder called INBOX in the subscribe window:-( - in OE6 with large mailbox with large message with the default "all messages" settings in the indox outlook hang (the "headers only" still work). -- Levente "Si vis pacem para bellum!" From Ron.Barker@v-pe.de Tue Mar 25 09:02:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Mar 2003 09:02:36 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from v-pe.de (mail.v-pe.de [193.101.155.209]) by danu.procontrol.fi (Postfix) with ESMTP id A251523825 for ; Tue, 25 Mar 2003 09:02:36 +0200 (EET) X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C2F29C.840FAF69" Subject: [dovecot] dovecot+Solaris 9 Date: Tue, 25 Mar 2003 08:02:36 +0100 Message-ID: <55D9F49A60EF2A44BF1AC7F348D9385229471B@mail.v-pe.de> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: dovecot+Solaris 9 Thread-Index: AcLynIQqvMZNBMtcQXqd4uesoJeoCQ== From: "Barker, Ron, vpe" To: X-archive-position: 452 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: Ron.Barker@v-pe.de Precedence: bulk X-list: dovecot X-UID: 452 Status: O Content-Length: 1318 This is a multi-part message in MIME format. ------_=_NextPart_001_01C2F29C.840FAF69 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Does the /dev/urandom issue apply to Solaris 9 as well??? Thanks Ron --=20 Dr. Ronald Barker Senior Technology Manager Vodafone Group Research & Development - D Vodafone Pilotentwicklung GmbH Chiemgaustrasse 116 81549 Munich=20 Germany Fon: + 49 (89) 95 410-0 Fax: + 49 (89) 95 410-111 mailto:ron.barker@v-pe.de http://www.vodafone-rnd.com <>=20 ------_=_NextPart_001_01C2F29C.840FAF69 Content-Type: text/x-vcard; name="Barker, Ron, vpe.vcf" Content-Transfer-Encoding: base64 Content-Description: Barker, Ron, vpe.vcf Content-Disposition: attachment; filename="Barker, Ron, vpe.vcf" QkVHSU46VkNBUkQNClZFUlNJT046Mi4xDQpOOkJhcmtlcjtSb24NCkZOOkJhcmtlciwgUm9uLCB2 cGUNCk9SRzpWb2RhZm9uZSBQaWxvdGVudHdpY2tsdW5nO01hdXQNClRFTDtXT1JLO1ZPSUNFOjUz OA0KQURSO1dPUks6OztDaGllbWdhdXN0ci4gMTE2O038bmNoZW47QmF5ZXJuOzgxNTQ5O0RFVVRT Q0hMQU5EDQpMQUJFTDtXT1JLO0VOQ09ESU5HPVFVT1RFRC1QUklOVEFCTEU6Q2hpZW1nYXVzdHIu IDExNj0wRD0wQU09RkNuY2hlbiwgQmF5ZXJuIDgxNTQ5PTBEPTBBREVVVFNDSExBTkQNCkVNQUlM O1BSRUY7SU5URVJORVQ6Um9uLkJhcmtlckB2LXBlLmRlDQpSRVY6MjAwMzAzMTdUMTIxOTE0Wg0K RU5EOlZDQVJEDQo= ------_=_NextPart_001_01C2F29C.840FAF69-- From Ron.Barker@v-pe.de Tue Mar 25 15:01:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Mar 2003 15:01:54 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from v-pe.de (mail.v-pe.de [193.101.155.209]) by danu.procontrol.fi (Postfix) with ESMTP id BD91823825 for ; Tue, 25 Mar 2003 15:01:53 +0200 (EET) X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C2F2CE.B514C3AB" Subject: [dovecot] Help Date: Tue, 25 Mar 2003 14:01:53 +0100 Message-ID: <55D9F49A60EF2A44BF1AC7F348D9385229471E@mail.v-pe.de> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: Help Thread-Index: AcLyzrUNSDLstPaBT8eUAh6JVB+MuQ== From: "Barker, Ron, vpe" To: X-archive-position: 453 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: Ron.Barker@v-pe.de Precedence: bulk X-list: dovecot X-UID: 453 Status: O Content-Length: 2094 This is a multi-part message in MIME format. ------_=_NextPart_001_01C2F2CE.B514C3AB Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi to all, =20 We are a bit of newbes to imap etc, so may be we just not doing it right. Nevertheless, We have compiled dovecot to run under Solaris 8/9 for IPv6 test. We are going crazy. After a successful compilation, the troubles really began. Solaris 9 1. Every=B4time we reboot- the directory /var/run/dovecot/auth is gone ???? 2. After the dir is created manually, the server starts. However!!!=20 1. A telnet to host 143 connect to the server fine but no commands are accepted. The server simply returns "bad command" 2. If we try to connect via a e-mail client to the server - we get a login refused - which I suspect is simply the "bad command" error being interpreted as such. We have tried every concivable combination of conf items in the conf file but nothing. Solaris8 Just does not start. Any help apprecialted Ron --=20 Dr. Ronald Barker Senior Technology Manager Vodafone Group Research & Development - D Vodafone Pilotentwicklung GmbH Chiemgaustrasse 116 81549 Munich=20 Germany Fon: + 49 (89) 95 410-0 Fax: + 49 (89) 95 410-111 mailto:ron.barker@v-pe.de http://www.vodafone-rnd.com <>=20 ------_=_NextPart_001_01C2F2CE.B514C3AB Content-Type: text/x-vcard; name="Barker, Ron, vpe.vcf" Content-Transfer-Encoding: base64 Content-Description: Barker, Ron, vpe.vcf Content-Disposition: attachment; filename="Barker, Ron, vpe.vcf" QkVHSU46VkNBUkQNClZFUlNJT046Mi4xDQpOOkJhcmtlcjtSb24NCkZOOkJhcmtlciwgUm9uLCB2 cGUNCk9SRzpWb2RhZm9uZSBQaWxvdGVudHdpY2tsdW5nO01hdXQNClRFTDtXT1JLO1ZPSUNFOjUz OA0KQURSO1dPUks6OztDaGllbWdhdXN0ci4gMTE2O038bmNoZW47QmF5ZXJuOzgxNTQ5O0RFVVRT Q0hMQU5EDQpMQUJFTDtXT1JLO0VOQ09ESU5HPVFVT1RFRC1QUklOVEFCTEU6Q2hpZW1nYXVzdHIu IDExNj0wRD0wQU09RkNuY2hlbiwgQmF5ZXJuIDgxNTQ5PTBEPTBBREVVVFNDSExBTkQNCkVNQUlM O1BSRUY7SU5URVJORVQ6Um9uLkJhcmtlckB2LXBlLmRlDQpSRVY6MjAwMzAzMTdUMTIxOTE0Wg0K RU5EOlZDQVJEDQo= ------_=_NextPart_001_01C2F2CE.B514C3AB-- From maikel@ladot.com Tue Mar 25 16:10:19 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Mar 2003 16:10:19 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 482E923839 for ; Tue, 25 Mar 2003 16:10:18 +0200 (EET) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.8/8.12.6) with ESMTP id h2PEKpmB037823 for ; Tue, 25 Mar 2003 15:20:51 +0100 (CET) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id <1VFZ5L2S>; Tue, 25 Mar 2003 14:56:18 +0100 Message-ID: <410777FC7A66D511911500B0D0783455024C4F78@nlladot05.intern.ladot.com> From: Maikel Verheijen To: dovecot@procontrol.fi Subject: [dovecot] mailbox problem Date: Tue, 25 Mar 2003 14:56:10 +0100 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C2F2D6.4A9B9AB0" X-Spam-Status: No, hits=1.4 required=5.0 tests=EXCHANGE_SERVER,MIME_NULL_BLOCK,SPAM_PHRASE_05_08 version=2.44 X-Spam-Level: * X-archive-position: 454 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: maikel@ladot.com Precedence: bulk X-list: dovecot X-UID: 454 Status: O Content-Length: 2316 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C2F2D6.4A9B9AB0 Content-Type: text/plain Hi list! Since a week I am testing with dovecot, and I must say, I like it a lot :) Keep up the good work :) I do have one questing regarding dovecot: If I login to a mailbox, and the mailbox does NOT exist, and the parent directory does not exist either, I will get disconnected, and dovecot claims it cannot create the directory. (eg: my user blah@test.com has mail directory /var/mail/t/te/test.com/blah/Maildir, and all directories up to /var/mail/t/te/ exist, dovecot does not create the directory test.com/ and on.) Is this by design, or should this be created by dovecot? The problem is solved as soon as the user receives his first email, since my MTA creates the directories... Thank you, Maikel Verheijen ------_=_NextPart_001_01C2F2D6.4A9B9AB0 Content-Type: text/html Content-Transfer-Encoding: quoted-printable mailbox problem

Hi list!

Since a week I am testing with dovecot, and I must = say, I like it a lot :) Keep up the good work :)

I do have one questing regarding dovecot: If I login = to a mailbox, and the mailbox does NOT exist, and the parent directory = does not exist either, I will get disconnected, and dovecot claims it = cannot create the directory. (eg: my user blah@test.com has mail = directory /var/mail/t/te/test.com/blah/Maildir, and all directories up = to /var/mail/t/te/ exist, dovecot does not create the directory = test.com/ and on.)

Is this by design, or should this be created by = dovecot?

The problem is solved as soon as the user receives = his first email, since my MTA creates the directories...


Thank you,

Maikel Verheijen

------_=_NextPart_001_01C2F2D6.4A9B9AB0-- From jpeterson275@attbi.com Tue Mar 25 21:53:47 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 25 Mar 2003 21:53:47 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sccrmhc02.attbi.com (sccrmhc02.attbi.com [204.127.202.62]) by danu.procontrol.fi (Postfix) with ESMTP id CFC4D23839 for ; Tue, 25 Mar 2003 21:53:46 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by sccrmhc02.attbi.com (sccrmhc02) with SMTP id <2003032519534500200jbjg2e>; Tue, 25 Mar 2003 19:53:45 +0000 Message-ID: <3E80B3D3.6050603@attbi.com> Date: Tue, 25 Mar 2003 11:53:55 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] FETCH BODY[part] Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 455 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 455 Status: O 2003-03-24 12:59 Timo Sirainen This CVS update didn't actually seem to fix the problem. I still get the problem as before, like this capture: 10 UID FETCH 60 BODY.PEEK[]<8192.1915> * 60 FETCH (UID 60 BODY[]<8192> {1915} ) 10 OK Fetch completed. Not quite 1,915 bytes =). Perhaps the "[]" (without a part) is confusing it? But still, it grabs the first chunk correctly. At any rate, any input would be great. From mike@innercite.com Wed Mar 26 01:48:20 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 01:48:20 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from knight.innercite.com (knight.innercite.com [158.222.3.8]) by danu.procontrol.fi (Postfix) with ESMTP id 9E65F23839 for ; Wed, 26 Mar 2003 01:48:19 +0200 (EET) Received: from localhost.localdomain (rocket.innercite.com [158.222.7.10]) by knight.innercite.com (8.12.3/8.12.3/Debian -4) with ESMTP id h2PNgvpB026494 for ; Tue, 25 Mar 2003 15:42:57 -0800 Subject: [dovecot] Dovecot and Quotas From: Mike Machado To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 25 Mar 2003 15:48:41 -0800 Message-Id: <1048636121.31457.31.camel@rocket> Mime-Version: 1.0 X-archive-position: 456 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mike@innercite.com Precedence: bulk X-list: dovecot X-UID: 456 Status: O Is there anything that can be done so that when users IMAP to their inbox and have reached their filesystem quota, that they can still DELETE their mail? They can login, but when they go to delete/expunge this is the error I get in syslog. I have tried mail_read_mmaped to yes and no, and same result. Mar 25 14:54:27 penguin1 imap(bob): file_set_size() failed with index data file /home/bob/mail/.imap/INBOX/.imap.index.data: Disk quota exceededMar 25 14:54:27 penguin1 imap(bob): mmap_istream.madvise(): Function not implemented Mar 25 14:54:28 penguin1 last message repeated 65 times When using UW IMAP, sometimes users can delete mail and other times they cannot. I am desperately seeking a solution to have customers be able to delete their own mail when their box is full and not have to call our support center. Any suggestions? Thanks. Debian with kernel 2.4.18. -- Mike Machado mike@innercite.com InnerCite Inc. Engineering Director / CTO From skvidal@phy.duke.edu Wed Mar 26 05:29:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 05:29:15 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 8EC0323825 for ; Wed, 26 Mar 2003 05:29:14 +0200 (EET) Received: from user-152-16-65-11.adsl.duke.edu (user-152-16-65-11.adsl.duke.edu [152.16.65.11]) by mail.phy.duke.edu (Postfix) with ESMTP id 4EEB5A77DC; Tue, 25 Mar 2003 22:29:11 -0500 (EST) Subject: [dovecot] Re: Dovecot and Quotas From: seth vidal To: Mike Machado Cc: dovecot@procontrol.fi In-Reply-To: <1048636121.31457.31.camel@rocket> References: <1048636121.31457.31.camel@rocket> Content-Type: text/plain Organization: Message-Id: <1048649163.5455.0.camel@binkley> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-1) Date: 25 Mar 2003 22:26:03 -0500 Content-Transfer-Encoding: 7bit X-archive-position: 457 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: skvidal@phy.duke.edu Precedence: bulk X-list: dovecot X-UID: 457 Status: O Content-Length: 1142 On Tue, 2003-03-25 at 18:48, Mike Machado wrote: > Is there anything that can be done so that when users IMAP to their > inbox and have reached their filesystem quota, that they can still > DELETE their mail? They can login, but when they go to delete/expunge > this is the error I get in syslog. I have tried mail_read_mmaped to yes > and no, and same result. > > Mar 25 14:54:27 penguin1 imap(bob): file_set_size() failed with index > data file /home/bob/mail/.imap/INBOX/.imap.index.data: Disk quota > exceededMar 25 14:54:27 penguin1 imap(bob): mmap_istream.madvise(): > Function not implemented > Mar 25 14:54:28 penguin1 last message repeated 65 times > > > > When using UW IMAP, sometimes users can delete mail and other times they > cannot. I am desperately seeking a solution to have customers be able to > delete their own mail when their box is full and not have to call our > support center. Any suggestions? Thanks. What about making soft file quotas w/unlimited grace periods. You'd have to lace your mail system into it so it could tell them they are over quota and bounce mail but not actually have a hard limit. -sv From tss@iki.fi Wed Mar 26 10:03:49 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 10:03:50 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C522123839 for ; Wed, 26 Mar 2003 10:03:49 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 749B75E928DF; Wed, 26 Mar 2003 10:03:48 +0200 (EET) Subject: [dovecot] Re: dovecot+Solaris 9 From: Timo Sirainen To: "Barker, Ron, vpe" Cc: dovecot@procontrol.fi In-Reply-To: <55D9F49A60EF2A44BF1AC7F348D9385229471B@mail.v-pe.de> References: <55D9F49A60EF2A44BF1AC7F348D9385229471B@mail.v-pe.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048665828.30187.70.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Mar 2003 10:03:48 +0200 X-archive-position: 458 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 458 Status: O On Tue, 2003-03-25 at 09:02, Barker, Ron, vpe wrote: > Does the /dev/urandom issue apply to Solaris 9 as well??? Solaris 9 has /dev/urandom, so no need to do any patching. From tss@iki.fi Wed Mar 26 10:07:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 10:07:17 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6AE7E23839 for ; Wed, 26 Mar 2003 10:07:17 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id D42665E928DF; Wed, 26 Mar 2003 10:07:16 +0200 (EET) Subject: [dovecot] Re: Help From: Timo Sirainen To: "Barker, Ron, vpe" Cc: dovecot@procontrol.fi In-Reply-To: <55D9F49A60EF2A44BF1AC7F348D9385229471E@mail.v-pe.de> References: <55D9F49A60EF2A44BF1AC7F348D9385229471E@mail.v-pe.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Organization: Message-Id: <1048666036.31565.75.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Mar 2003 10:07:16 +0200 X-archive-position: 459 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 459 Status: O On Tue, 2003-03-25 at 15:01, Barker, Ron, vpe wrote: > Solaris 9 > 1. Every=B4time we reboot- the directory /var/run/dovecot/auth is gone > ???? > 2. After the dir is created manually, the server starts. Hm. You've set auth_chroot then. Looks like I don't check that the directory exists, I'll fix that. >=20 > However!!!=20 > 1. A telnet to host 143 connect to the server fine but no > commands are accepted. The server simply returns "bad command" What commands did you try? IMAP commands are prefixed with a tag, so you'd need to do eg. "1 login user password". > 2. If we try to connect via a e-mail client to the server - we > get a login refused - which I suspect is simply the "bad command" error > being interpreted as such. And this is probably because you set the auth_chroot, and the auth process can't read /etc/passwd (or whatever) when chrooted. So just comment out the auth_chroot line and it would probably work. If not, set auth_verbose =3D yes and see what it shows in log file. From tss@iki.fi Wed Mar 26 10:21:49 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 10:21:49 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8953623839 for ; Wed, 26 Mar 2003 10:21:49 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 607AD5E928DF; Wed, 26 Mar 2003 10:21:49 +0200 (EET) Subject: [dovecot] Re: mailbox problem From: Timo Sirainen To: Maikel Verheijen Cc: dovecot@procontrol.fi In-Reply-To: <410777FC7A66D511911500B0D0783455024C4F78@nlladot05.intern.ladot.com> References: <410777FC7A66D511911500B0D0783455024C4F78@nlladot05.intern.ladot.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048666909.31565.91.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Mar 2003 10:21:49 +0200 X-archive-position: 460 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 460 Status: O Content-Length: 1561 On Tue, 2003-03-25 at 15:56, Maikel Verheijen wrote: > I do have one questing regarding dovecot: If I login to a mailbox, and > the mailbox does NOT exist, and the parent directory does not exist > either, I will get disconnected, and dovecot claims it cannot create > the directory. (eg: my user blah@test.com has mail directory > /var/mail/t/te/test.com/blah/Maildir, and all directories up to > /var/mail/t/te/ exist, dovecot does not create the directory test.com/ > and on.) > > Is this by design, or should this be created by dovecot? Hmm. Unless you're using one UID for everyone, those directories would have be to be created as root. Also test.com should be created with different owner as blah and blah/Maildir. Maybe I could add a new setting for this, but I'm not sure how to do it without making it too kludgy. There would have to be separation of where user directory structure starts, and uid/gid settings what to use for created directories before them. Something like: mail_global_dir = /var/mail/t/te/%d mail_global_uid = root mail_global_gid = mail mail_user_dir = /var/mail/t/te/%d/%n Would be better if the mail_user_dir didn't have to be set at all since it's already in mail_default_env, but the user directory has to be created while still root, and parsing mail_default_env there is kludgy too. Or maybe: mail_global_dir = /var/mail/t/te/%d/%n And the last directory would always be assumed to be user directory. That would prevent creating /var/mail-like shared directories though, but I guess there's no need to create those.. From tss@iki.fi Wed Mar 26 10:29:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 10:29:04 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C113923839 for ; Wed, 26 Mar 2003 10:29:03 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 527865E928DF; Wed, 26 Mar 2003 10:29:03 +0200 (EET) Subject: [dovecot] Re: Dovecot and Quotas From: Timo Sirainen To: Mike Machado Cc: dovecot@procontrol.fi In-Reply-To: <1048636121.31457.31.camel@rocket> References: <1048636121.31457.31.camel@rocket> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048667343.30187.100.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Mar 2003 10:29:03 +0200 X-archive-position: 461 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 461 Status: O On Wed, 2003-03-26 at 01:48, Mike Machado wrote: > Mar 25 14:54:27 penguin1 imap(bob): file_set_size() failed with index > data file /home/bob/mail/.imap/INBOX/.imap.index.data: Disk quota > exceededMar 25 14:54:27 penguin1 imap(bob): mmap_istream.madvise(): > Function not implemented > Mar 25 14:54:28 penguin1 last message repeated 65 times Oh, write() returns EDQUOT instead of ENOSPC when quota is full? Didn't know that before. I'll fix it so that they're both checked. After that Dovecot will just use memory instead if it can't create the index files. From tss@iki.fi Wed Mar 26 10:56:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 10:56:51 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DED8E23825 for ; Wed, 26 Mar 2003 10:56:50 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id A70385E928DF; Wed, 26 Mar 2003 10:56:50 +0200 (EET) Subject: [dovecot] Re: Long running auth/login processes (was Re: Re: inetd/xinetd/tcpserver support) From: Timo Sirainen To: Charlie Brady Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048669010.30187.127.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Mar 2003 10:56:50 +0200 X-archive-position: 462 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 462 Status: O Content-Length: 2554 On Thu, 2003-03-20 at 23:27, Charlie Brady wrote: > > Anyway, I don't really care much about it since it pretty much means > > that exploiting it gives access to connections of all users. > > So you don't want to have a long running login process after all? I don't, but I give option if someone else does who cares more about performance than security. > I don't know, but I'm trying to learn. You know your design and your code; > I'm just feeling my way around. Your documentation is good in parts, but > there are still big gaps. The installation documentation only covers > building - I have yet to find anything which tells me how to execute > dovecot (have I missed it?). I'm not sure which processes run when, and > exactly what communication occurs between them over what communication > channels. It's executed by running "dovecot" :) INSTALL document actually still says imap-master, fixing.. dovecot process anyway executes everything else. They talk to each others only with UNIX sockets. > > Sounds like the > > only difference is that it runs login code as root and exec()s imap > > binary after login, where my code sends it through master process which > > forks new imap process. > > I don't know exactly what "sent it through master process" means. File descriptor passing through UNIX socket. Login process accept()s the new socket and handles everything until client has successfully logged in, after that the socket is passed to master process and closed. Master process executes new imap process and sets the socket as it's stdin/stdout. > I have a preference for running simple software which I already have > reason to trust. This is why I want to use tcpserver, and why I have a > leaning towards using mailfront and cvm. I know that stunnel isn't > completely wonderful, but it is very widely used, and the chroot feature > added by Scott Gifford fixes the principal weakness. Actually Dovecot's SSL tunnel seems to be somewhat broken now. > I am looking for a better IMAP daemon than I have at present, but I would > prefer not to have a new system of authentication, and a new network > connection monitor. There is a lot of new (to me) code in dovecot, but the > only code of high value to me is the imap daemon itself. OK, currently there's no reason why you shouldn't do that. I'll probably add some communication with dovecot master process <-> imap process later, but that will be optional as well. At least for requesting lock files (shared folders or mboxes in /var/mail), maybe something else.. From maikel@ladot.com Wed Mar 26 11:08:43 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 11:08:43 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id DB7DA23825 for ; Wed, 26 Mar 2003 11:08:42 +0200 (EET) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.8/8.12.6) with ESMTP id h2Q9JFmB057931 for ; Wed, 26 Mar 2003 10:19:16 +0100 (CET) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id <1VFZ6C33>; Wed, 26 Mar 2003 09:54:39 +0100 Message-ID: <410777FC7A66D511911500B0D078345501F221F2@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'dovecot@procontrol.fi'" Subject: [dovecot] Re: mailbox problem Date: Wed, 26 Mar 2003 09:54:39 +0100 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C2F375.55A33E00" X-Spam-Status: No, hits=-0.5 required=5.0 tests=EXCHANGE_SERVER,MIME_NULL_BLOCK,QUOTED_EMAIL_TEXT, SPAM_PHRASE_01_02 version=2.44 X-archive-position: 463 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: maikel@ladot.com Precedence: bulk X-list: dovecot X-UID: 463 Status: O Content-Length: 4556 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C2F375.55A33E00 Content-Type: text/plain > Hmm. Unless you're using one UID for everyone, those > directories would have be to be created as root. Also > test.com should be created with different owner as blah and > blah/Maildir. Maybe I could add a new setting for this, but > I'm not sure how to do it without making it too kludgy. There > would have to be separation of where user directory structure > starts, and uid/gid settings what to use for created > directories before them. Something like: I do use 1 UID and 1 GID for everyone. Would that be more simple? > mail_global_dir = /var/mail/t/te/%d > mail_global_uid = root > mail_global_gid = mail > mail_user_dir = /var/mail/t/te/%d/%n > > Would be better if the mail_user_dir didn't have to be set at > all since it's already in mail_default_env, but the user > directory has to be created while still root, and parsing > mail_default_env there is kludgy too. Or maybe: > > mail_global_dir = /var/mail/t/te/%d/%n > > And the last directory would always be assumed to be user > directory. That would prevent creating /var/mail-like shared > directories though, but I guess there's no need to create those.. Maybe there could be a "toggle" to do or don't create the dirs, so you don't need the mail_global_dir setting for "normal" use. My idea was to check the full path to the mailbox, and to create the nonexisting part if necessary. At that point you DO have the full path to the mailbox/maildir, and you can create it, right? Kind regards, Maikel Verheijen. ------_=_NextPart_001_01C2F375.55A33E00 Content-Type: text/html Content-Transfer-Encoding: quoted-printable RE: [dovecot] mailbox problem

> Hmm. Unless you're using one UID for everyone, = those
> directories would have be to be created as = root. Also
> test.com should be created with different owner = as blah and
> blah/Maildir. Maybe I could add a new setting = for this, but
> I'm not sure how to do it without making it too = kludgy. There
> would have to be separation of where user = directory structure
> starts, and uid/gid settings what to use for = created
> directories before them. Something like:

I do use 1 UID and 1 GID for everyone. Would that be = more simple?

> mail_global_dir =3D /var/mail/t/te/%d
> mail_global_uid =3D root
> mail_global_gid =3D mail
> mail_user_dir =3D /var/mail/t/te/%d/%n
>
> Would be better if the mail_user_dir didn't = have to be set at
> all since it's already in mail_default_env, but = the user
> directory has to be created while still root, = and parsing
> mail_default_env there is kludgy too. Or = maybe:
>
> mail_global_dir =3D /var/mail/t/te/%d/%n
>
> And the last directory would always be assumed = to be user
> directory. That would prevent creating = /var/mail-like shared
> directories though, but I guess there's no need = to create those..

Maybe there could be a "toggle" to do or = don't create the dirs, so you don't need the mail_global_dir setting = for "normal" use.

My idea was to check the full path to the mailbox, = and to create the nonexisting part if necessary. At that point you DO = have the full path to the mailbox/maildir, and you can create it, = right?


Kind regards,

Maikel Verheijen.

------_=_NextPart_001_01C2F375.55A33E00-- From tss@iki.fi Wed Mar 26 11:09:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 11:09:53 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9020C23825 for ; Wed, 26 Mar 2003 11:09:53 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 66D785E928DF; Wed, 26 Mar 2003 11:09:53 +0200 (EET) Subject: [dovecot] Re: FETCH BODY[part] From: Timo Sirainen To: Jesse Peterson Cc: Dovecot Mail List In-Reply-To: <3E80B3D3.6050603@attbi.com> References: <3E80B3D3.6050603@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048669793.30187.133.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Mar 2003 11:09:53 +0200 X-archive-position: 464 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 464 Status: O On Tue, 2003-03-25 at 21:53, Jesse Peterson wrote: > This CVS update didn't actually seem to fix the problem. I still get > the problem as before, like this capture: > > > 10 UID FETCH 60 BODY.PEEK[]<8192.1915> > * 60 FETCH (UID 60 BODY[]<8192> {1915} > > ) > 10 OK Fetch completed. Does this happen every time now? What if you run the "imap" binary directly and ask this? What if you skip the first block and ask only the second? Is the message really 10107 bytes long? > Not quite 1,915 bytes =). Perhaps the "[]" (without a part) is > confusing it? But still, it grabs the first chunk correctly. At any > rate, any input would be great. I can't get this to break with me.. From tss@iki.fi Wed Mar 26 11:29:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 11:29:27 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E4A4F23825 for ; Wed, 26 Mar 2003 11:29:26 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id B82FE5E928DF; Wed, 26 Mar 2003 11:29:26 +0200 (EET) Subject: [dovecot] Re: mailbox problem From: Timo Sirainen To: Maikel Verheijen Cc: "'dovecot@procontrol.fi'" In-Reply-To: <410777FC7A66D511911500B0D078345501F221F2@nlladot05.intern.ladot.com> References: <410777FC7A66D511911500B0D078345501F221F2@nlladot05.intern.ladot.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048670966.30186.150.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Mar 2003 11:29:26 +0200 X-archive-position: 465 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 465 Status: O Content-Length: 1204 On Wed, 2003-03-26 at 10:54, Maikel Verheijen wrote: > > Hmm. Unless you're using one UID for everyone, those > > directories would have be to be created as root. Also > > test.com should be created with different owner as blah and > > blah/Maildir. > > I do use 1 UID and 1 GID for everyone. Would that be more simple? For your case, yes.. > Maybe there could be a "toggle" to do or don't create the dirs, so you > don't need the mail_global_dir setting for "normal" use. The toggle would be just not to set mail_global_dir :) > My idea was to check the full path to the mailbox, and to create the > nonexisting part if necessary. At that point you DO have the full path > to the mailbox/maildir, and you can create it, right? Yes, but normally you also don't have permissions to create the directories at that point. I'm not sure if I want to add extra code just for one-uid-for-everyone case. But maybe this could be useful for other cases too .. Such as one-uid-per-domain, or if Maildir isn't directly under home dir. I guess I'll add code for this. If you want some temporary kludges you could call the mkdir()s at end of src/lib-storage/index/maildir/maildir-storage.c:maildir_create() From jpeterson275@attbi.com Wed Mar 26 16:52:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 16:52:15 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sccrmhc03.attbi.com (sccrmhc03.attbi.com [204.127.202.63]) by danu.procontrol.fi (Postfix) with ESMTP id 609F323825 for ; Wed, 26 Mar 2003 16:52:14 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by sccrmhc03.attbi.com (sccrmhc03) with SMTP id <20030326145212003004j77se>; Wed, 26 Mar 2003 14:52:12 +0000 Message-ID: <3E81BEAF.8050803@attbi.com> Date: Wed, 26 Mar 2003 06:52:31 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: FETCH BODY[part] References: <3E80B3D3.6050603@attbi.com> <1048669793.30187.133.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 466 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 466 Status: O Timo Sirainen wrote: > On Tue, 2003-03-25 at 21:53, Jesse Peterson wrote: > >>This CVS update didn't actually seem to fix the problem. I still get >>the problem as before, like this capture: >> >> >>10 UID FETCH 60 BODY.PEEK[]<8192.1915> >>* 60 FETCH (UID 60 BODY[]<8192> {1915} >> >>) >>10 OK Fetch completed. > > > Does this happen every time now? What if you run the "imap" binary > directly and ask this? What if you skip the first block and ask only the > second? Is the message really 10107 bytes long? I'll give all these a try and let you know. > > >>Not quite 1,915 bytes =). Perhaps the "[]" (without a part) is >>confusing it? But still, it grabs the first chunk correctly. At any >>rate, any input would be great. > > > I can't get this to break with me.. Could it possibly be that my indexes (from before the update) were screwed and deleteing them would help? Maybe it cached the body or summin, I'll do it anyways to be sure. From mem@mv.mv.com Wed Mar 26 17:39:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 17:39:55 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 1271E23825 for ; Wed, 26 Mar 2003 17:39:55 +0200 (EET) Received: (qmail 15144 invoked by uid 101); 26 Mar 2003 10:39:53 -0500 From: "Mark E. Mallett" Date: Wed, 26 Mar 2003 10:39:53 -0500 To: dovecot@procontrol.fi Subject: [dovecot] Re: Dovecot and Quotas Message-ID: <20030326103953.D8046@iridium.mv.net> References: <1048636121.31457.31.camel@rocket> <1048667343.30187.100.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <1048667343.30187.100.camel@hurina>; from tss@iki.fi on Wed, Mar 26, 2003 at 10:29:03AM +0200 X-archive-position: 467 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 467 Status: O On Wed, Mar 26, 2003 at 10:29:03AM +0200, Timo Sirainen wrote: > On Wed, 2003-03-26 at 01:48, Mike Machado wrote: > > Mar 25 14:54:27 penguin1 imap(bob): file_set_size() failed with index > > data file /home/bob/mail/.imap/INBOX/.imap.index.data: Disk quota > > exceededMar 25 14:54:27 penguin1 imap(bob): mmap_istream.madvise(): > > Function not implemented > > Mar 25 14:54:28 penguin1 last message repeated 65 times > > Oh, write() returns EDQUOT instead of ENOSPC when quota is full? Didn't > know that before. I'll fix it so that they're both checked. After that > Dovecot will just use memory instead if it can't create the index files. That would be great. (Suffering from the same issue here.) mm From mike@innercite.com Wed Mar 26 18:54:18 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 18:54:19 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from knight.innercite.com (knight.innercite.com [158.222.3.8]) by danu.procontrol.fi (Postfix) with ESMTP id 0B76823839 for ; Wed, 26 Mar 2003 18:54:18 +0200 (EET) Received: from localhost.localdomain (rocket.innercite.com [158.222.7.10]) by knight.innercite.com (8.12.3/8.12.3/Debian -4) with ESMTP id h2QGmqpB029789 for ; Wed, 26 Mar 2003 08:48:52 -0800 Subject: [dovecot] Re: Dovecot and Quotas From: Mike Machado To: dovecot@procontrol.fi In-Reply-To: <1048649163.5455.0.camel@binkley> References: <1048636121.31457.31.camel@rocket> <1048649163.5455.0.camel@binkley> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 26 Mar 2003 08:54:38 -0800 Message-Id: <1048697679.31484.40.camel@rocket> Mime-Version: 1.0 X-archive-position: 468 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mike@innercite.com Precedence: bulk X-list: dovecot X-UID: 468 Status: O I have seen this suggestion elsewhere and would be perfect. The customer only needs a few extra kilobytes when their quota is full, so the hard quota could be just a bit bigger with a long/unlimited grace. The hard part is to get procmail or whatever local delivery agent to stop at the SOFT quota. I could probably quite some funky procmail rules, but that will add an unwanted amount of load to an already busy system. Anyone know if their are some built in sendmail/procmail checking that can aide here? On Tue, 2003-03-25 at 19:26, seth vidal wrote: > What about making soft file quotas w/unlimited grace periods. > > You'd have to lace your mail system into it so it could tell them they > are over quota and bounce mail but not actually have a hard limit. > > -sv > -- Mike Machado mike@innercite.com InnerCite Inc. Engineering Director / CTO From mike@innercite.com Wed Mar 26 18:55:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 18:55:02 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from knight.innercite.com (knight.innercite.com [158.222.3.8]) by danu.procontrol.fi (Postfix) with ESMTP id 3417B23839 for ; Wed, 26 Mar 2003 18:55:02 +0200 (EET) Received: from localhost.localdomain (rocket.innercite.com [158.222.7.10]) by knight.innercite.com (8.12.3/8.12.3/Debian -4) with ESMTP id h2QGnbpB029880 for ; Wed, 26 Mar 2003 08:49:37 -0800 Subject: [dovecot] Re: Dovecot and Quotas From: Mike Machado To: dovecot@procontrol.fi In-Reply-To: <1048667343.30187.100.camel@hurina> References: <1048636121.31457.31.camel@rocket> <1048667343.30187.100.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 26 Mar 2003 08:55:24 -0800 Message-Id: <1048697724.31736.42.camel@rocket> Mime-Version: 1.0 X-archive-position: 469 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mike@innercite.com Precedence: bulk X-list: dovecot X-UID: 469 Status: O > Oh, write() returns EDQUOT instead of ENOSPC when quota is full? Didn't > know that before. I'll fix it so that they're both checked. After that > Dovecot will just use memory instead if it can't create the index files. Thanks a lot! -- Mike Machado mike@innercite.com InnerCite Inc. Engineering Director / CTO From jpeterson275@attbi.com Wed Mar 26 19:59:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 19:59:33 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sccrmhc01.attbi.com (sccrmhc01.attbi.com [204.127.202.61]) by danu.procontrol.fi (Postfix) with ESMTP id 4BCF423825 for ; Wed, 26 Mar 2003 19:59:33 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by sccrmhc01.attbi.com (sccrmhc01) with SMTP id <2003032617593000100ctbmde>; Wed, 26 Mar 2003 17:59:30 +0000 Message-ID: <3E81EA93.5000306@attbi.com> Date: Wed, 26 Mar 2003 09:59:47 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: FETCH BODY[part] References: <3E80B3D3.6050603@attbi.com> <1048669793.30187.133.camel@hurina> <3E81BEAF.8050803@attbi.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 470 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 470 Status: O Content-Length: 1423 I've found a couple of things: When the reply to the fetch is given, it seems to be missing a ")" on the end: 23 UID FETCH 48 BODY.PEEK[]<8192.1915> * 48 FETCH (UID 48 BODY[]<8192> {1915} How does an IMAP client learn the size of a message? Because the size of this particular message is 10107 bytes (header + message, in a maildir file). The IMAP client (Mac OS X Mail.app) asks for two chunks of the body: 8192 and 1915. Together these two make 10107, but that's 1448 bytes too big. In fact, 1448 is the size of the header it requests: 21 UID FETCH 48 BODY.PEEK[HEADER] * 48 FETCH (UID 48 BODY[HEADER] {1448} Together, that is 11555, too much. Further investigation gives me this: For another message that is 11821 bytes (header+body,maildir), this is the request: 37 UID FETCH 20:* (INTERNALDATE UID RFC822.SIZE FLAGS BODY.PEEK[HEADER.FIELDS (date subject from to list-id)]) * 17 FETCH (UID 20 FLAGS (\Recent) INTERNALDATE "26-Mar-2003 09:47:03 -0800" RFC822.SIZE 12116 BODY[HEADER.FIELDS (DATE SUBJECT FROM TO LIST-ID)] {148} If you multiply the simple header returned by this (148) by two, then add that to the filesize of the message, you get 12117 (minus a CR probably). Is this how RFC822.SIZE is defined? Anyway, in conclusion, it now DOES work, it's just that apparently Mail.app cached the old file sizes on the broken messages, so those didn't work (i think). Thanks again Timo. From mem@mv.mv.com Wed Mar 26 20:28:03 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 20:28:03 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id D138C23825 for ; Wed, 26 Mar 2003 20:28:02 +0200 (EET) Received: (qmail 1690 invoked by uid 101); 26 Mar 2003 13:28:01 -0500 From: "Mark E. Mallett" Date: Wed, 26 Mar 2003 13:28:01 -0500 To: dovecot@procontrol.fi Subject: [dovecot] Failure in the presence of too many connections Message-ID: <20030326132801.B26665@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i X-archive-position: 471 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 471 Status: O Had an event today where dovecot refused new connections and would not accept more until restarted, whereupon it worked for a few minutes and locked up again. Looking at the logs it appeared that it had run out of file descriptors. I increased the open files limit and started it again-- which worked but it only pushes off the problem. Does dovecot keep an open file descriptor for every imap or pop3 child? If so, this would argue more towards a tcpserver sort of control. If not, perhaps something is leaking.. -mm- PS: assume you saw recent RFCs 3501 and 3502 ? From tss@iki.fi Wed Mar 26 20:31:46 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 20:31:46 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DA45823825 for ; Wed, 26 Mar 2003 20:31:45 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 1EF855E928E0; Wed, 26 Mar 2003 20:31:45 +0200 (EET) Subject: [dovecot] Re: FETCH BODY[part] From: Timo Sirainen To: Jesse Peterson Cc: Dovecot Mail List In-Reply-To: <3E81EA93.5000306@attbi.com> References: <3E80B3D3.6050603@attbi.com> <1048669793.30187.133.camel@hurina> <3E81BEAF.8050803@attbi.com> <3E81EA93.5000306@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048703504.30186.200.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Mar 2003 20:31:45 +0200 X-archive-position: 472 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 472 Status: O On Wed, 2003-03-26 at 19:59, Jesse Peterson wrote: > When the reply to the fetch is given, it seems to be missing a ")" on > the end: It's sent after the message text. > 23 UID FETCH 48 BODY.PEEK[]<8192.1915> > * 48 FETCH (UID 48 BODY[]<8192> {1915} > > How does an IMAP client learn the size of a message? Because the size > of this particular message is 10107 bytes (header + message, in a > maildir file). IMAP requires that linebreaks are CR+LF. In maildir files you have only LFs. So there's one extra byte per each line. > If you multiply the simple header returned by this (148) by two, then > add that to the filesize of the message, you get 12117 (minus a CR > probably). Is this how RFC822.SIZE is defined? RFC822.SIZE is just the full size of message, again with CR+LFs. > Anyway, in conclusion, it now DOES work, it's just that apparently > Mail.app cached the old file sizes on the broken messages, so those > didn't work (i think). OK, good. Now only thing left to fix is SSL proxy. From tss@iki.fi Wed Mar 26 20:45:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 20:45:04 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 757BD23839 for ; Wed, 26 Mar 2003 20:45:04 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id A43125E928E0; Wed, 26 Mar 2003 20:45:03 +0200 (EET) Subject: [dovecot] Re: Failure in the presence of too many connections From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030326132801.B26665@iridium.mv.net> References: <20030326132801.B26665@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048704303.31565.214.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 Date: 26 Mar 2003 20:45:03 +0200 X-archive-position: 473 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 473 Status: O On Wed, 2003-03-26 at 20:28, Mark E. Mallett wrote: > Had an event today where dovecot refused new connections and would not > accept more until restarted, whereupon it worked for a few minutes and > locked up again. Looking at the logs it appeared that it had run out > of file descriptors. I increased the open files limit and started it > again-- which worked but it only pushes off the problem. Which process ran out of fds? "dovecot"? > Does dovecot keep an open file descriptor for every imap or pop3 > child? No, except imap-login <-> imap does keep one open for SSL connections. > If so, this would argue more towards a tcpserver sort of > control. If not, perhaps something is leaking.. I haven't noticed any leaks. stracing dovecot process kept the fds pretty much the same. > PS: assume you saw recent RFCs 3501 and 3502 ? Yes, I've read both as drafts. From dgc@uchicago.edu Wed Mar 26 21:15:38 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 21:15:38 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id 5943A23839 for ; Wed, 26 Mar 2003 21:15:36 +0200 (EET) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id h2QJFRs29565; Wed, 26 Mar 2003 13:15:27 -0600 (CST) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Wed, 26 Mar 2003 13:15:27 -0600 From: David Champion To: Mike Machado Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Dovecot and Quotas Message-ID: <20030326191527.GB25982@dust.uchicago.edu> Mail-Followup-To: Mike Machado , dovecot@procontrol.fi References: <1048636121.31457.31.camel@rocket> <1048649163.5455.0.camel@binkley> <1048697679.31484.40.camel@rocket> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1048697679.31484.40.camel@rocket> User-Agent: Mutt/1.5.2i X-archive-position: 474 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dgc@uchicago.edu Precedence: bulk X-list: dovecot X-UID: 474 Status: O Content-Length: 2397 * On 2003.03.26, in <1048697679.31484.40.camel@rocket>, * "Mike Machado" wrote: > I have seen this suggestion elsewhere and would be perfect. The customer > only needs a few extra kilobytes when their quota is full, so the hard > quota could be just a bit bigger with a long/unlimited grace. The hard > part is to get procmail or whatever local delivery agent to stop at the > SOFT quota. I could probably quite some funky procmail rules, but that > will add an unwanted amount of load to an already busy system. Anyone > know if their are some built in sendmail/procmail checking that can aide > here? None that I know of. Hard quotas are terrible for a mail system, in my experience. Part of the trouble is the automation -- we run across a lot of cases where automated management isn't very nice to users. There are always exceptions -- Professor Jones is doing field research in Egypt, or somesuch, and has limited access. For such cases, we want longer quota warning periods. We have a nightly job that checks everyone's mail usage nightly. If someone's usage goes above what we consider good, it decrements a counter, set initially to 7 days (5 working days). Each day that this counter is set, it mails the user a warning that mail will be blocked in N days, and when a counter reaches 0 it mails us, the admins, and we run a script to block access. Part of this is sticking a helpful entry in /etc/mail/access to block incoming mail. (We use sendmail.) So that's where you can cause SMTP blocks, but you need your own scripts for managing it. There are two loopholes here -- people can still store as much mail as they want to the server via IMAP, and people can neglect their overuse for as long as they want to. Those might be weaknesses or advantages, depending on how you look at it. But most people want new mail via SMTP, too, and they don't get it until they clear their IMAP. But since we have so many users, the relatively small number of troublesome users never cause major trouble -- their abuses are relatively small. IOW, we don't generally need to keep individuals reined in, just the masses. -- -D. dgc@uchicago.edu NSIT University of Chicago "The whole thrust of the text adventure was one picture was worth a thousand words and we would rather give you the thousand words." - Dave Lebling, Implementor From mem@mv.mv.com Wed Mar 26 21:17:11 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 26 Mar 2003 21:17:11 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 59F4523839 for ; Wed, 26 Mar 2003 21:17:11 +0200 (EET) Received: (qmail 4370 invoked by uid 101); 26 Mar 2003 14:17:09 -0500 From: "Mark E. Mallett" Date: Wed, 26 Mar 2003 14:17:09 -0500 To: Timo Sirainen Cc: "Mark E. Mallett" , dovecot@procontrol.fi Subject: [dovecot] Re: Failure in the presence of too many connections Message-ID: <20030326141709.A2687@iridium.mv.net> References: <20030326132801.B26665@iridium.mv.net> <1048704303.31565.214.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <1048704303.31565.214.camel@hurina>; from tss@iki.fi on Wed, Mar 26, 2003 at 08:45:03PM +0200 X-archive-position: 475 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 475 Status: O On Wed, Mar 26, 2003 at 08:45:03PM +0200, Timo Sirainen wrote: > On Wed, 2003-03-26 at 20:28, Mark E. Mallett wrote: > > Had an event today where dovecot refused new connections and would not > > accept more until restarted, whereupon it worked for a few minutes and > > locked up again. Looking at the logs it appeared that it had run out > > of file descriptors. I increased the open files limit and started it > > again-- which worked but it only pushes off the problem. > > Which process ran out of fds? "dovecot"? Sorry for being non-specific. dovecot-auth was the program that logged the error, like this: dovecot-auth: getpwnam(xxxx) failed: Too many open files mm From jpeterson275@attbi.com Thu Mar 27 01:42:01 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 27 Mar 2003 01:42:01 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from rwcrmhc53.attbi.com (rwcrmhc53.attbi.com [204.127.198.39]) by danu.procontrol.fi (Postfix) with ESMTP id B525823825 for ; Thu, 27 Mar 2003 01:42:00 +0200 (EET) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by rwcrmhc53.attbi.com (rwcrmhc53) with SMTP id <20030326234159053005kae6e>; Wed, 26 Mar 2003 23:41:59 +0000 Message-ID: <3E823AD7.1040300@attbi.com> Date: Wed, 26 Mar 2003 15:42:15 -0800 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: FETCH BODY[part] References: <3E80B3D3.6050603@attbi.com> <1048669793.30187.133.camel@hurina> <3E81BEAF.8050803@attbi.com> <3E81EA93.5000306@attbi.com> <1048703504.30186.200.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 476 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 476 Status: O > > IMAP requires that linebreaks are CR+LF. In maildir files you have only > LFs. So there's one extra byte per each line. > RFC822.SIZE is just the full size of message, again with CR+LFs. D'0h, I feel like an idiot now. =) > > OK, good. Now only thing left to fix is SSL proxy. > > > What happens to be wrong with the SSL proxy? -- Jesse Peterson / jesse@pixeltechs.com From tss@iki.fi Sat Mar 29 11:00:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 29 Mar 2003 11:00:39 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 08A2623839 for ; Sat, 29 Mar 2003 11:00:38 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 8D08D5E017F5; Sat, 29 Mar 2003 11:00:38 +0200 (EET) Subject: [dovecot] Re: FETCH BODY[part] From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3E823AD7.1040300@attbi.com> References: <3E80B3D3.6050603@attbi.com> <1048669793.30187.133.camel@hurina> <3E81BEAF.8050803@attbi.com> <3E81EA93.5000306@attbi.com> <1048703504.30186.200.camel@hurina> <3E823AD7.1040300@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048928438.6856.15.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 29 Mar 2003 11:00:38 +0200 X-archive-position: 477 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 477 Status: O On Thu, 2003-03-27 at 01:42, Jesse Peterson wrote: > > OK, good. Now only thing left to fix is SSL proxy. > What happens to be wrong with the SSL proxy? It seems to get stuck sometimes. I think it's now fixed in CVS. Or this is with openssl at least, I'm not really sure how well gnutls works. From tss@iki.fi Sat Mar 29 11:05:23 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 29 Mar 2003 11:05:23 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8F8ED23839 for ; Sat, 29 Mar 2003 11:05:23 +0200 (EET) Received: by oma.irssi.org (Postfix, from userid 1000) id 59AF85E017F5; Sat, 29 Mar 2003 11:05:23 +0200 (EET) Subject: [dovecot] Re: Failure in the presence of too many connections From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030326141709.A2687@iridium.mv.net> References: <20030326132801.B26665@iridium.mv.net> <1048704303.31565.214.camel@hurina> <20030326141709.A2687@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1048928723.6856.21.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 29 Mar 2003 11:05:23 +0200 X-archive-position: 478 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 478 Status: O On Wed, 2003-03-26 at 21:17, Mark E. Mallett wrote: > Sorry for being non-specific. dovecot-auth was the program that logged > the error, like this: > > dovecot-auth: getpwnam(xxxx) failed: Too many open files What passdb are you using? PAM? Something is leaking fds there, but I don't think it's getpwnam() itself. From mem@mv.mv.com Sat Mar 29 16:39:52 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 29 Mar 2003 16:39:52 +0200 (EET) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 9D80623825 for ; Sat, 29 Mar 2003 16:39:51 +0200 (EET) Received: (qmail 6368 invoked by uid 101); 29 Mar 2003 09:39:49 -0500 From: "Mark E. Mallett" Date: Sat, 29 Mar 2003 09:39:49 -0500 To: Timo Sirainen Cc: "Mark E. Mallett" , dovecot@procontrol.fi Subject: [dovecot] Re: Failure in the presence of too many connections Message-ID: <20030329093949.B18450@iridium.mv.net> References: <20030326132801.B26665@iridium.mv.net> <1048704303.31565.214.camel@hurina> <20030326141709.A2687@iridium.mv.net> <1048928723.6856.21.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <1048928723.6856.21.camel@hurina>; from tss@iki.fi on Sat, Mar 29, 2003 at 11:05:23AM +0200 X-archive-position: 479 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 479 Status: O On Sat, Mar 29, 2003 at 11:05:23AM +0200, Timo Sirainen wrote: > On Wed, 2003-03-26 at 21:17, Mark E. Mallett wrote: > > Sorry for being non-specific. dovecot-auth was the program that logged > > the error, like this: > > > > dovecot-auth: getpwnam(xxxx) failed: Too many open files > > What passdb are you using? PAM? Something is leaking fds there, but I > don't think it's getpwnam() itself. Hi- Plain old passwd file checking. auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = passwd mm From maikel@ladot.com Sun Mar 30 23:38:09 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 30 Mar 2003 23:38:09 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 1E5D12385F for ; Sun, 30 Mar 2003 23:38:09 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.8/8.12.6) with ESMTP id h2UKmpmB033512 for ; Sun, 30 Mar 2003 22:48:51 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id <1VFZ7X2K>; Sun, 30 Mar 2003 22:23:57 +0200 Message-ID: <410777FC7A66D511911500B0D0783455024C4F8F@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "Dovecot (E-mail)" Subject: [dovecot] NFS mounted IMAP dirs Date: Sun, 30 Mar 2003 22:23:56 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C2F6FA.4A1A9C30" X-Spam-Status: No, hits=0.9 required=5.0 tests=EXCHANGE_SERVER,MIME_NULL_BLOCK,SPAM_PHRASE_03_05 version=2.44 X-archive-position: 480 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: maikel@ladot.com Precedence: bulk X-list: dovecot X-UID: 480 Status: O Content-Length: 3333 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C2F6FA.4A1A9C30 Content-Type: text/plain; charset="iso-8859-1" Hi list, I am trying to build an email system that is using multiple frontends, to a clustered backend using nfs. The backend mounts his filesystems from a central storage, and will be running active-active. While reading through the dovecot documentation, I read that I could do without indexes (well: use memory indexes), and could then be able to run dovecot over NFS. Well: that was until friday, when I was reading a little bit better through nfs.txt. :) My problem is now that dovecot writes it's subscriptions to the mailstore. Since I want as little difference between my frondends as possible, (and as static as possible), I would love to see dovecot handle subscriptions in a database, or perhaps a nfs-safe file. Since I am only a junior programmer (my code is really not far from "Hello world", although I am trying to find some time to teach myself more), I might not be able to be of much assistance to you all in coding stuff, but I am willing to help out where-ever possible. Can anyone help me solve my problem in any way, and how can I contribute as well? Thank you all, Maikel Verheijen. ------_=_NextPart_001_01C2F6FA.4A1A9C30 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable NFS mounted IMAP dirs

Hi list,


I am trying to build an email system = that is using multiple frontends, to a clustered backend using nfs. The = backend mounts his filesystems from a central storage, and will be = running active-active.

While reading through the dovecot = documentation, I read that I could do without indexes (well: use memory = indexes), and could then be able to run dovecot over NFS. Well: that = was until friday, when I was reading a little bit better through = nfs.txt. :)

My problem is now that dovecot writes = it's subscriptions to the mailstore. Since I want as little difference = between my frondends as possible, (and as static as possible), I would = love to see dovecot handle subscriptions in a database, or perhaps a = nfs-safe file.

Since I am only a junior programmer = (my code is really not far from "Hello world", although I am = trying to find some time to teach myself more), I might not be able to = be of much assistance to you all in coding stuff, but I am willing to = help out where-ever possible.

Can anyone help me solve my problem in = any way, and how can I contribute as well?


Thank you all,

Maikel Verheijen.

------_=_NextPart_001_01C2F6FA.4A1A9C30-- From tss@iki.fi Mon Mar 31 11:53:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 11:53:48 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4B7BF23839 for ; Mon, 31 Mar 2003 11:53:48 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 131315E017F5; Mon, 31 Mar 2003 11:53:48 +0300 (EEST) Subject: [dovecot] Re: NFS mounted IMAP dirs From: Timo Sirainen To: Maikel Verheijen Cc: "Dovecot (E-mail)" In-Reply-To: <410777FC7A66D511911500B0D0783455024C4F8F@nlladot05.intern.ladot.com> References: <410777FC7A66D511911500B0D0783455024C4F8F@nlladot05.intern.ladot.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049100827.883.119.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 31 Mar 2003 11:53:47 +0300 X-archive-position: 481 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 481 Status: O On Sun, 2003-03-30 at 23:23, Maikel Verheijen wrote: > While reading through the dovecot documentation, I read that I could > do without indexes (well: use memory indexes), Currently that's not really good idea, since message UIDs aren't then stored permanently. In CVS there's support for this with mbox format, and I've also been writing support for Courier-like uidlist-file, but that's still not really working. > My problem is now that dovecot writes it's subscriptions to the > mailstore. Since I want as little difference between my frondends as > possible, (and as static as possible), I would love to see dovecot > handle subscriptions in a database, or perhaps a nfs-safe file. Database? SQL? Another problem is also .customflags file which isn't NFS-safe. With mbox it's not really required, but with Maildir it is if you want custom message flags. It wouldn't be too difficult to change the code to use dotlock files with these files anyway, I've been going to make it configurable. From tss@iki.fi Mon Mar 31 11:59:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 11:59:21 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8902F23839 for ; Mon, 31 Mar 2003 11:59:21 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 50E4B5E017F5; Mon, 31 Mar 2003 11:59:21 +0300 (EEST) Subject: [dovecot] Re: Failure in the presence of too many connections From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030329093949.B18450@iridium.mv.net> References: <20030326132801.B26665@iridium.mv.net> <1048704303.31565.214.camel@hurina> <20030326141709.A2687@iridium.mv.net> <1048928723.6856.21.camel@hurina> <20030329093949.B18450@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049101161.884.126.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 31 Mar 2003 11:59:21 +0300 X-archive-position: 482 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 482 Status: O On Sat, 2003-03-29 at 16:39, Mark E. Mallett wrote: > > > dovecot-auth: getpwnam(xxxx) failed: Too many open files > > > > What passdb are you using? PAM? Something is leaking fds there, but I > > don't think it's getpwnam() itself. > > Plain old passwd file checking. > > auth = default > auth_mechanisms = plain > auth_userdb = passwd > auth_passdb = passwd Well, that's strange. I don't think getpwnam() should leave any fds open. Auth process does keep one fd per login process, but that's also closed when client logs in or closes the connection. Maybe using passwd-file instead would help? From maikel@ladot.com Mon Mar 31 12:06:31 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 12:06:31 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 8ED2C23839 for ; Mon, 31 Mar 2003 12:06:31 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.8/8.12.6) with ESMTP id h2V9GwmB038080; Mon, 31 Mar 2003 11:16:58 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id <1VFZ7X0B>; Mon, 31 Mar 2003 10:52:02 +0200 Message-ID: <410777FC7A66D511911500B0D0783455024C4F94@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'Timo Sirainen'" Cc: "Dovecot (E-mail)" Subject: [dovecot] Re: NFS mounted IMAP dirs Date: Mon, 31 Mar 2003 10:52:01 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C2F762.CB6F2630" X-Spam-Status: No, hits=-0.2 required=5.0 tests=EXCHANGE_SERVER,MIME_NULL_BLOCK,QUOTED_EMAIL_TEXT, SPAM_PHRASE_02_03 version=2.44 X-archive-position: 483 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: maikel@ladot.com Precedence: bulk X-list: dovecot X-UID: 483 Status: O Content-Length: 4712 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C2F762.CB6F2630 Content-Type: text/plain Hi Timo, > On Sun, 2003-03-30 at 23:23, Maikel Verheijen wrote: > > While reading through the dovecot documentation, I read > that I could > > do without indexes (well: use memory indexes), > > Currently that's not really good idea, since message UIDs > aren't then stored permanently. In CVS there's support for > this with mbox format, and I've also been writing support for > Courier-like uidlist-file, but that's still not really working. Well: I am working with Maildir mailstores, so I guess I need to have a uidlist kinda file then? Sorry it wasn't clear in my post that I am using Maildir style mailboxes... But I figured maildir was better than Mbox over nfs... > > My problem is now that dovecot writes it's subscriptions to the > > mailstore. Since I want as little difference between my > frondends as > > possible, (and as static as possible), I would love to see dovecot > > handle subscriptions in a database, or perhaps a nfs-safe file. > > Database? SQL? Another problem is also .customflags file > which isn't NFS-safe. With mbox it's not really required, but > with Maildir it is if you want custom message flags. It > wouldn't be too difficult to change the code to use dotlock > files with these files anyway, I've been going to make it > configurable. My current setup is with postgresql and Maildir. So in a way, a lot of info COULD come from my database, if it isn't safe enough via nfs. Can you make all file locking configurable? Or will you do it on a "per-type" basis? (eg: mailbox locking, index locking, flag-file locking, etc). regards, Maikel Verheijen. ------_=_NextPart_001_01C2F762.CB6F2630 Content-Type: text/html RE: [dovecot] NFS mounted IMAP dirs

Hi Timo,

> On Sun, 2003-03-30 at 23:23, Maikel Verheijen wrote:
> > While reading through the dovecot documentation, I read
> that I could
> > do without indexes (well: use memory indexes),
>
> Currently that's not really good idea, since message UIDs
> aren't then stored permanently. In CVS there's support for
> this with mbox format, and I've also been writing support for
> Courier-like uidlist-file, but that's still not really working.
Well: I am working with Maildir mailstores, so I guess I need to
have a uidlist kinda file then? Sorry it wasn't clear in my post
that I am using Maildir style mailboxes... But I figured maildir was
better than Mbox over nfs...

> > My problem is now that dovecot writes it's subscriptions to the
> > mailstore. Since I want as little difference between my
> frondends as
> > possible, (and as static as possible), I would love to see dovecot
> > handle subscriptions in a database, or perhaps a nfs-safe file.
>
> Database? SQL? Another problem is also .customflags file
> which isn't NFS-safe. With mbox it's not really required, but
> with Maildir it is if you want custom message flags. It
> wouldn't be too difficult to change the code to use dotlock
> files with these files anyway, I've been going to make it
> configurable.
My current setup is with postgresql and Maildir. So in a way, a lot of
info COULD come from my database, if it isn't safe enough via nfs.

Can you make all file locking configurable? Or will you do it on a
"per-type" basis? (eg: mailbox locking, index locking, flag-file locking, etc).

regards,


Maikel Verheijen.

------_=_NextPart_001_01C2F762.CB6F2630-- From charlieb-dovecot@e-smith.com Mon Mar 31 18:08:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 18:08:44 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 0CE8323839 for ; Mon, 31 Mar 2003 18:08:44 +0300 (EEST) Received: (qmail 16267 invoked by uid 404); 31 Mar 2003 15:08:41 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 31 Mar 2003 10:08:41 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 31 Mar 2003 15:08:40 -0000 Received: (qmail 5279 invoked from network); 31 Mar 2003 15:08:40 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 31 Mar 2003 15:08:40 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 31 Mar 2003 15:12:22 -0000 Date: Mon, 31 Mar 2003 10:12:22 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Subject: [dovecot] Re: Failure in the presence of too many connections In-Reply-To: <1049101161.884.126.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 484 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 484 Status: O On 31 Mar 2003, Timo Sirainen wrote: > On Sat, 2003-03-29 at 16:39, Mark E. Mallett wrote: > > > > dovecot-auth: getpwnam(xxxx) failed: Too many open files > > > > > > What passdb are you using? PAM? Something is leaking fds there, but I > > > don't think it's getpwnam() itself. > > > > Plain old passwd file checking. > > > > auth = default > > auth_mechanisms = plain > > auth_userdb = passwd > > auth_passdb = passwd > > Well, that's strange. I don't think getpwnam() should leave any fds > open. Auth process does keep one fd per login process, but that's also > closed when client logs in or closes the connection. Maybe using > passwd-file instead would help? If you are running this on linux then just: ls -l /proc/xxx/fd/* will show you where the file descriptors are going to. -- Charlie From mem@mv.mv.com Mon Mar 31 19:51:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 19:51:27 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id C9B01238B6 for ; Mon, 31 Mar 2003 19:51:26 +0300 (EEST) Received: (qmail 26111 invoked by uid 101); 31 Mar 2003 11:51:00 -0500 From: "Mark E. Mallett" Date: Mon, 31 Mar 2003 11:51:00 -0500 To: Timo Sirainen Cc: "Mark E. Mallett" , dovecot@procontrol.fi Subject: [dovecot] Re: Failure in the presence of too many connections Message-ID: <20030331115059.C11524@iridium.mv.net> References: <20030326132801.B26665@iridium.mv.net> <1048704303.31565.214.camel@hurina> <20030326141709.A2687@iridium.mv.net> <1048928723.6856.21.camel@hurina> <20030329093949.B18450@iridium.mv.net> <1049101161.884.126.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <1049101161.884.126.camel@hurina>; from tss@iki.fi on Mon, Mar 31, 2003 at 11:59:21AM +0300 X-archive-position: 485 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 485 Status: O Content-Length: 1663 On Mon, Mar 31, 2003 at 11:59:21AM +0300, Timo Sirainen wrote: > On Sat, 2003-03-29 at 16:39, Mark E. Mallett wrote: > > > > dovecot-auth: getpwnam(xxxx) failed: Too many open files > > > > > > What passdb are you using? PAM? Something is leaking fds there, but I > > > don't think it's getpwnam() itself. > > > > Plain old passwd file checking. > > > > auth = default > > auth_mechanisms = plain > > auth_userdb = passwd > > auth_passdb = passwd > > Well, that's strange. I don't think getpwnam() should leave any fds > open. Auth process does keep one fd per login process, but that's also > closed when client logs in or closes the connection. Maybe using > passwd-file instead would help? My suspicion (without any basis, admittedly) was that the fds were related to the interprocess communication, not the passwd file access. I was surprised when it happened, as the system ran fine for weeks before I saw this error, and then I saw it recur quickly when I stopped and restarted the dovecot processes before running it again with a higher openfiles limit. I think the fd exhaustion is related to a sudden burst of connections to the POP or IMAP services, not a long-term leakage of FDs (although I did say something like that in my initial mail). The point was not so much that this happens-- but that it doesn't recover when it does happen (thus the subject line). The only way to make the services start responding again is to stop and restart the dovecot suite of control processes. Raising the openfiles limit certainly pushes off the problem, and maybe that's a good enough workaround (as long as there's always a higher limit availble...) mm From mem@mv.mv.com Mon Mar 31 19:54:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 19:54:36 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id F0413238B6 for ; Mon, 31 Mar 2003 19:54:34 +0300 (EEST) Received: (qmail 28910 invoked by uid 101); 31 Mar 2003 11:53:48 -0500 From: "Mark E. Mallett" Date: Mon, 31 Mar 2003 11:53:48 -0500 To: Charlie Brady Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Failure in the presence of too many connections Message-ID: <20030331115348.D11524@iridium.mv.net> References: <1049101161.884.126.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from charlieb-dovecot@e-smith.com on Mon, Mar 31, 2003 at 10:12:22AM -0500 X-archive-position: 486 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 486 Status: O > > If you are running this on linux then just: > > ls -l /proc/xxx/fd/* > > will show you where the file descriptors are going to. no procfs here- yeah I could have done an 'fstat' or 'lsof' and traced it further but did not think to do so. mm From seba@iq.pl Mon Mar 31 22:10:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 22:10:53 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id 9A51A238B6 for ; Mon, 31 Mar 2003 22:10:53 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id C280D6BDB3; Mon, 31 Mar 2003 21:11:20 +0200 (CEST) Date: Mon, 31 Mar 2003 21:11:20 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: [dovecot] dovecot-0.99.8.1 @ old redhat6.2 box Message-ID: <20030331191120.GB32315@iq.pl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-archive-position: 487 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: seba@iq.pl Precedence: bulk X-list: dovecot X-UID: 487 Status: O Hi I have some odd problem with running dovecot. Program dies with message in maillog: Mar 31 21:04:02 test-box dovecot: Dovecot starting up Mar 31 21:04:04 test-box dovecot: execv(imap-login) failed: Resource temporarily unavailable Mar 31 21:04:04 test-box dovecot: execv(imap-login) failed: Resource temporarily unavailable Mar 31 21:04:04 test-box dovecot: Login process died too early - shutting down Mar 31 21:04:04 test-box dovecot: child 28870 (login) returned error 84 (exec() failed) Mar 31 21:04:04 test-box dovecot: child 28869 (login) returned error 84 (exec() failed) Mar 31 21:04:04 test-box dovecot: execv(imap-login) failed: Resource temporarily unavailable System is redhat6.2 (with all updates), kernel is 2.2.25 (with openwall patch). Under rh7.3 dovecot launches fine. From charlieb-dovecot@e-smith.com Mon Mar 31 22:15:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 22:15:48 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 0FDE2238B6 for ; Mon, 31 Mar 2003 22:15:48 +0300 (EEST) Received: (qmail 26423 invoked by uid 404); 31 Mar 2003 19:15:46 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 31 Mar 2003 14:15:46 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 31 Mar 2003 19:15:46 -0000 Received: (qmail 26113 invoked from network); 31 Mar 2003 19:15:46 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 31 Mar 2003 19:15:46 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 31 Mar 2003 19:19:27 -0000 Date: Mon, 31 Mar 2003 14:19:27 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Subject: [dovecot] Re: Failure in the presence of too many connections In-Reply-To: <20030331115059.C11524@iridium.mv.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 488 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 488 Status: O On Mon, 31 Mar 2003, Mark E. Mallett wrote: > The only way to make the services start responding again is to stop and > restart the dovecot suite of control processes. dovecot suite of control > processes. Or you can run things my way (under tcpserver/stunnel/imapfront-auth) and there's one dovecot process for each connection, each unrelated. This illustrates my point about re-using already well trusted simple programs to do as much of the task as possible. > Raising the openfiles limit > certainly pushes off the problem, and maybe that's a good enough > workaround (as long as there's always a higher limit availble...) ... which is something that you can *never* assume. -- Charlie From mem@mv.mv.com Mon Mar 31 22:27:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 22:27:14 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id D83F7238B6 for ; Mon, 31 Mar 2003 22:27:13 +0300 (EEST) Received: (qmail 20536 invoked by uid 101); 31 Mar 2003 14:27:13 -0500 From: "Mark E. Mallett" Date: Mon, 31 Mar 2003 14:27:13 -0500 To: Charlie Brady Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Failure in the presence of too many connections Message-ID: <20030331142713.E20665@iridium.mv.net> References: <20030331115059.C11524@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from charlieb-dovecot@e-smith.com on Mon, Mar 31, 2003 at 02:19:27PM -0500 X-archive-position: 489 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 489 Status: O Content-Length: 1482 On Mon, Mar 31, 2003 at 02:19:27PM -0500, Charlie Brady wrote: > > On Mon, 31 Mar 2003, Mark E. Mallett wrote: > > > The only way to make the services start responding again is to stop and > > restart the dovecot suite of control processes. dovecot suite of control > > processes. > > Or you can run things my way (under tcpserver/stunnel/imapfront-auth) and > there's one dovecot process for each connection, each unrelated. This > illustrates my point about re-using already well trusted simple programs > to do as much of the task as possible. yep- this kind of brings us full circle back to my original message :-) (I had mentioned that this kind of problem may be less likely with a tcpserver approach). Although the distinction is not between using well-trusted simple programs vs large monolitic ones, but how you access those simple programs. Do you use a long-running auth process and talk to it via a UNIX socket (or other inteface), or fire up a new auth process for each need? Personally I'm with you: unless there's an awful lot of state or caching or other long-term need that you lose by creating a new auth process each time (e.g. like innd's "actived" process), I'd vote for a one-time short-running auth process. > > Raising the openfiles limit > > certainly pushes off the problem, and maybe that's a good enough > > workaround (as long as there's always a higher limit availble...) > > ... which is something that you can *never* assume. Amen mm From tss@iki.fi Mon Mar 31 22:30:26 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 22:30:26 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A4F3E238B6 for ; Mon, 31 Mar 2003 22:30:26 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id DFB095E0EC7E; Mon, 31 Mar 2003 22:30:25 +0300 (EEST) Subject: [dovecot] Re: Failure in the presence of too many connections From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049139025.959.7.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 31 Mar 2003 22:30:25 +0300 X-archive-position: 490 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 490 Status: O On Mon, 2003-03-31 at 22:19, Charlie Brady wrote: > Or you can run things my way (under tcpserver/stunnel/imapfront-auth) and > there's one dovecot process for each connection, each unrelated. This > illustrates my point about re-using already well trusted simple programs > to do as much of the task as possible. Didn't you just say imapfront connected to separate auth process via unix socket? From tss@iki.fi Mon Mar 31 22:33:00 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 22:33:00 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D02B0238B6 for ; Mon, 31 Mar 2003 22:33:00 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 995315E0EC7E; Mon, 31 Mar 2003 22:33:00 +0300 (EEST) Subject: [dovecot] Re: dovecot-0.99.8.1 @ old redhat6.2 box From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030331191120.GB32315@iq.pl> References: <20030331191120.GB32315@iq.pl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049139180.831.11.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 31 Mar 2003 22:33:00 +0300 X-archive-position: 491 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 491 Status: O On Mon, 2003-03-31 at 22:11, Sebastian Pachuta wrote: > I have some odd problem with running dovecot. > Program dies with message in maillog: > > Mar 31 21:04:04 test-box dovecot: execv(imap-login) failed: Resource temporarily unavailable > System is redhat6.2 (with all updates), kernel is 2.2.25 (with openwall > patch). Under rh7.3 dovecot launches fine. It's probably because of the openwall patch. Would this patch help? diff -u -r1.38 login-process.c --- src/master/login-process.c 4 Mar 2003 22:38:08 -0000 1.38 +++ src/master/login-process.c 31 Mar 2003 19:31:50 -0000 @@ -474,7 +474,7 @@ i_fatal("chdir(%s) failed: %m", set->login_dir); } - restrict_process_size(group->set->process_size, 0); + restrict_process_size(group->set->process_size, 1); /* make sure we don't leak syslog fd, but do it last so that any errors above will be logged */ From seba@iq.pl Mon Mar 31 22:42:46 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 31 Mar 2003 22:42:46 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id E73872385F for ; Mon, 31 Mar 2003 22:42:45 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id 0E2606BE30; Mon, 31 Mar 2003 21:43:13 +0200 (CEST) Date: Mon, 31 Mar 2003 21:43:13 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: [dovecot] Re: dovecot-0.99.8.1 @ old redhat6.2 box Message-ID: <20030331194312.GA6677@iq.pl> References: <20030331191120.GB32315@iq.pl> <1049139180.831.11.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1049139180.831.11.camel@hurina> X-archive-position: 492 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: seba@iq.pl Precedence: bulk X-list: dovecot X-UID: 492 Status: O Content-Length: 1152 On Mon, Mar 31, 2003 at 22:33:00 +0300, Timo Sirainen wrote: > On Mon, 2003-03-31 at 22:11, Sebastian Pachuta wrote: > > I have some odd problem with running dovecot. > > Program dies with message in maillog: > > > > Mar 31 21:04:04 test-box dovecot: execv(imap-login) failed: Resource temporarily unavailable > > > System is redhat6.2 (with all updates), kernel is 2.2.25 (with openwall > > patch). Under rh7.3 dovecot launches fine. > > It's probably because of the openwall patch. Would this patch help? > > diff -u -r1.38 login-process.c > --- src/master/login-process.c 4 Mar 2003 22:38:08 -0000 1.38 > +++ src/master/login-process.c 31 Mar 2003 19:31:50 -0000 > @@ -474,7 +474,7 @@ > i_fatal("chdir(%s) failed: %m", set->login_dir); > } > > - restrict_process_size(group->set->process_size, 0); > + restrict_process_size(group->set->process_size, 1); > > /* make sure we don't leak syslog fd, but do it last so that > any errors above will be logged */ > Nope :( With and without this patch there is no abuse info generated by openwall in dmesg or /var/log/alert. From tss@iki.fi Tue Apr 1 00:43:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 01 Apr 2003 00:43:28 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0523F2385F for ; Tue, 1 Apr 2003 00:43:28 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id D17075E0EC7E; Tue, 1 Apr 2003 00:43:27 +0300 (EEST) Subject: [dovecot] Re: dovecot-0.99.8.1 @ old redhat6.2 box From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030331194312.GA6677@iq.pl> References: <20030331191120.GB32315@iq.pl> <1049139180.831.11.camel@hurina> <20030331194312.GA6677@iq.pl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049147007.6193.16.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 01 Apr 2003 00:43:27 +0300 X-archive-position: 493 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 493 Status: O On Mon, 2003-03-31 at 22:43, Sebastian Pachuta wrote: > > - restrict_process_size(group->set->process_size, 0); > > + restrict_process_size(group->set->process_size, 1); > > > With and without this patch there is no abuse info generated by openwall in > dmesg or /var/log/alert. Well, changing 0 to (unsigned int)-1 at least should help? From seba@iq.pl Tue Apr 1 00:55:46 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 01 Apr 2003 00:55:46 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id A6A4B2385F for ; Tue, 1 Apr 2003 00:55:46 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id 8D3006BCC7; Mon, 31 Mar 2003 23:56:13 +0200 (CEST) Date: Mon, 31 Mar 2003 23:56:13 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: [dovecot] Re: dovecot-0.99.8.1 @ old redhat6.2 box Message-ID: <20030331215613.GA23630@iq.pl> References: <20030331191120.GB32315@iq.pl> <1049139180.831.11.camel@hurina> <20030331194312.GA6677@iq.pl> <1049147007.6193.16.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1049147007.6193.16.camel@hurina> X-archive-position: 494 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: seba@iq.pl Precedence: bulk X-list: dovecot X-UID: 494 Status: O On Tue, Apr 01, 2003 at 00:43:27 +0300, Timo Sirainen wrote: > On Mon, 2003-03-31 at 22:43, Sebastian Pachuta wrote: > > > - restrict_process_size(group->set->process_size, 0); > > > + restrict_process_size(group->set->process_size, 1); > > > > > With and without this patch there is no abuse info generated by openwall in > > dmesg or /var/log/alert. > > Well, changing 0 to (unsigned int)-1 at least should help? Yes, tx From charlieb-dovecot@e-smith.com Tue Apr 1 06:09:11 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 01 Apr 2003 06:09:11 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id F0ECC238B6 for ; Tue, 1 Apr 2003 06:09:10 +0300 (EEST) Received: (qmail 7080 invoked by uid 404); 1 Apr 2003 03:09:08 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 31 Mar 2003 22:09:08 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 01 Apr 2003 03:09:07 -0000 Received: (qmail 13379 invoked by uid 5008); 1 Apr 2003 03:09:07 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 1 Apr 2003 03:09:07 -0000 Date: Mon, 31 Mar 2003 22:09:07 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: dovecot@procontrol.fi Subject: [dovecot] Re: Failure in the presence of too many connections In-Reply-To: <1049139025.959.7.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 495 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 495 Status: O On 31 Mar 2003, Timo Sirainen wrote: > On Mon, 2003-03-31 at 22:19, Charlie Brady wrote: > > Or you can run things my way (under tcpserver/stunnel/imapfront-auth) and > > there's one dovecot process for each connection, each unrelated. This > > illustrates my point about re-using already well trusted simple programs > > to do as much of the task as possible. > > Didn't you just say imapfront connected to separate auth process via > unix socket? That's one of the options, but you can also run a standalone command. See http://untroubled.org/cvm/cvm.html. In any case, these are still well trusted simple programs :-) -- Charlie From tss@iki.fi Wed Apr 2 03:34:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 02 Apr 2003 03:34:03 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9AD672385F for ; Wed, 2 Apr 2003 03:34:02 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3F35F5E0EC7E; Wed, 2 Apr 2003 03:34:02 +0300 (EEST) Subject: [dovecot] Re: Failure in the presence of too many connections From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030331115059.C11524@iridium.mv.net> References: <20030326132801.B26665@iridium.mv.net> <1048704303.31565.214.camel@hurina> <20030326141709.A2687@iridium.mv.net> <1048928723.6856.21.camel@hurina> <20030329093949.B18450@iridium.mv.net> <1049101161.884.126.camel@hurina> <20030331115059.C11524@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049243642.11879.25.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 02 Apr 2003 03:34:02 +0300 X-archive-position: 496 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 496 Status: O On Mon, 2003-03-31 at 19:51, Mark E. Mallett wrote: > The point was not so much that this happens-- but that it doesn't > recover when it does happen (thus the subject line). The only way to > make the services start responding again is to stop and restart the > dovecot suite of control processes. I don't really see anything in code that would prevent dovecot-auth from working again after some of the connections to login processes die and free file descriptors. I guess I'll have to try myself. > Raising the openfiles limit > certainly pushes off the problem, and maybe that's a good enough > workaround (as long as there's always a higher limit availble...) How much was it before? Dovecot limits the number of login processes to 384 by default (max_logging_users 256 + login_max_processes_count 128). From mem@mv.mv.com Wed Apr 2 03:37:37 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 02 Apr 2003 03:37:37 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id E56E82385F for ; Wed, 2 Apr 2003 03:37:36 +0300 (EEST) Received: (qmail 23777 invoked by uid 101); 1 Apr 2003 19:37:34 -0500 From: "Mark E. Mallett" Date: Tue, 1 Apr 2003 19:37:34 -0500 To: Timo Sirainen Cc: "Mark E. Mallett" , dovecot@procontrol.fi Subject: [dovecot] Re: Failure in the presence of too many connections Message-ID: <20030401193734.P8442@iridium.mv.net> References: <20030326132801.B26665@iridium.mv.net> <1048704303.31565.214.camel@hurina> <20030326141709.A2687@iridium.mv.net> <1048928723.6856.21.camel@hurina> <20030329093949.B18450@iridium.mv.net> <1049101161.884.126.camel@hurina> <20030331115059.C11524@iridium.mv.net> <1049243642.11879.25.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <1049243642.11879.25.camel@hurina>; from tss@iki.fi on Wed, Apr 02, 2003 at 03:34:02AM +0300 X-archive-position: 497 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 497 Status: O > > Raising the openfiles limit > > certainly pushes off the problem, and maybe that's a good enough > > workaround (as long as there's always a higher limit availble...) > > How much was it before? Dovecot limits the number of login processes to > 384 by default (max_logging_users 256 + login_max_processes_count 128). openfiles limit was 64 when the issue occured. I then raised it to some much larger value. From maikel@ladot.com Wed Apr 2 18:43:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 02 Apr 2003 18:43:44 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id D82332385F for ; Wed, 2 Apr 2003 18:43:43 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.8/8.12.6) with ESMTP id h32FsSmB089567 for ; Wed, 2 Apr 2003 17:54:28 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id <1VFZ8BNB>; Wed, 2 Apr 2003 17:29:23 +0200 Message-ID: <410777FC7A66D511911500B0D0783455024C4FA0@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "Dovecot (E-mail)" Subject: [dovecot] Question about the password field in a postgresql database Date: Wed, 2 Apr 2003 17:29:17 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C2F92C.9FD1CFC0" X-Spam-Status: No, hits=1.4 required=5.0 tests=EXCHANGE_SERVER,MIME_NULL_BLOCK,SPAM_PHRASE_05_08 version=2.44 X-Spam-Level: * X-archive-position: 498 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: maikel@ladot.com Precedence: bulk X-list: dovecot X-UID: 498 Status: O Content-Length: 1571 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C2F92C.9FD1CFC0 Content-Type: text/plain Hi List, When I try to set the default_pass_scheme in dovecot-pgsql.conf to CRYPT, the dovecot does not recognize my crypted passwords. If I prepend my encrypted passwords with {CRYPT}, dovecot DOES recognize it. (even when I set default_pass_scheme to PLAIN). Is this supposed to work, or am I misinterpreting things here? Thank you! Maikel Verheijen. ------_=_NextPart_001_01C2F92C.9FD1CFC0 Content-Type: text/html Content-Transfer-Encoding: quoted-printable Question about the password field in a postgresql = database

Hi List,


When I try to set the default_pass_scheme in = dovecot-pgsql.conf to CRYPT, the dovecot does not recognize my crypted = passwords. If I prepend my encrypted passwords with {CRYPT}, dovecot = DOES recognize it. (even when I set default_pass_scheme to = PLAIN).

Is this supposed to work, or am I misinterpreting = things here?


Thank you!

Maikel Verheijen.

------_=_NextPart_001_01C2F92C.9FD1CFC0-- From seba@iq.pl Thu Apr 3 13:10:08 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 03 Apr 2003 13:10:09 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id DA3002385F for ; Thu, 3 Apr 2003 13:10:08 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id 3FE216BD08; Thu, 3 Apr 2003 12:10:27 +0200 (CEST) Date: Thu, 3 Apr 2003 12:10:27 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: [dovecot] INBOX at /var in maildir storage format Message-ID: <20030403101027.GF20161@iq.pl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-archive-position: 499 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: seba@iq.pl Precedence: bulk X-list: dovecot X-UID: 499 Status: O Hi I'm trying to figure out how to set default_mail_env to support such config: INBOX is in '/var/mail/%u/' (note last slash at the end, %u is an folder with new/tmp/cur subdirs - standard maildir structure). Other imap folders are stored as files (in mbox format) in direcotry '%h/Mail/'. Please advise. From eskimoe@ananzi.co.za Thu Apr 3 16:10:00 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 03 Apr 2003 16:10:00 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-174-148.reverse.qdsl-home.de [212.202.174.148]) by danu.procontrol.fi (Postfix) with SMTP id 11712238B6 for ; Thu, 3 Apr 2003 16:10:00 +0300 (EEST) Received: (qmail 20640 invoked by uid 1000); 3 Apr 2003 13:11:09 -0000 Date: Thu, 3 Apr 2003 15:11:09 +0200 From: Moe Wibble To: dovecot@procontrol.fi Subject: [dovecot] Re: INBOX at /var in maildir storage format Message-ID: <20030403131108.GA31390@woom.net> Mail-Followup-To: Moe Wibble , dovecot@procontrol.fi References: <20030403101027.GF20161@iq.pl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030403101027.GF20161@iq.pl> X-archive-position: 500 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 500 Status: O Hi, I'm using: default_mail_env = maildir:/var/imap/%n/Maildir:INDEX=/var/imap/%n/index I like the extra Maildir-subdir to have the dovecot-index outside of it but that's just my personal taste. :) Why do you want to have your mails split over two locations and two different formats (Maildir/mbox)? On Thu, Apr 03, 2003 at 12:10:27PM +0200, Sebastian Pachuta wrote: > Hi > > I'm trying to figure out how to set default_mail_env to support such config: > > INBOX is in '/var/mail/%u/' (note last slash at the end, %u is an folder with > new/tmp/cur subdirs - standard maildir structure). > > Other imap folders are stored as files (in mbox format) in direcotry '%h/Mail/'. > > Please advise. regards -- MW From seba@iq.pl Thu Apr 3 22:22:03 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 03 Apr 2003 22:22:03 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id 24903238B6 for ; Thu, 3 Apr 2003 22:22:03 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id 1ACB06BD8D; Thu, 3 Apr 2003 21:22:23 +0200 (CEST) Date: Thu, 3 Apr 2003 21:22:23 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: [dovecot] Re: INBOX at /var in maildir storage format Message-ID: <20030403192223.GA30832@iq.pl> References: <20030403101027.GF20161@iq.pl> <20030403131108.GA31390@woom.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030403131108.GA31390@woom.net> X-archive-position: 501 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: seba@iq.pl Precedence: bulk X-list: dovecot X-UID: 501 Status: O On Thu, Apr 03, 2003 at 15:11:09 +0200, Moe Wibble wrote: > Hi, > > I'm using: > > default_mail_env = maildir:/var/imap/%n/Maildir:INDEX=/var/imap/%n/index > > I like the extra Maildir-subdir to have the dovecot-index outside of it > but that's just my personal taste. :) > > Why do you want to have your mails split over two locations and two > different formats (Maildir/mbox)? Because in config, who looks very familiar to Yours: default_mail_env = maildir:/var/mail/%u I cannot create imap folders (in maildir format). I've tried patches from project homepage with no luck :( Cvs version is unusable for me because I cannot generate configure file. From tss@iki.fi Thu Apr 3 22:34:47 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 03 Apr 2003 22:34:47 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1861C238B6 for ; Thu, 3 Apr 2003 22:34:47 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id D98E95E01F95; Thu, 3 Apr 2003 22:34:46 +0300 (EEST) Subject: [dovecot] Re: INBOX at /var in maildir storage format From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030403192223.GA30832@iq.pl> References: <20030403101027.GF20161@iq.pl> <20030403131108.GA31390@woom.net> <20030403192223.GA30832@iq.pl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049398486.22903.64.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 03 Apr 2003 22:34:46 +0300 X-archive-position: 502 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 502 Status: O On Thu, 2003-04-03 at 22:22, Sebastian Pachuta wrote: > > Why do you want to have your mails split over two locations and two > > different formats (Maildir/mbox)? Currently this is not possible. > Because in config, who looks very familiar to Yours: > default_mail_env = maildir:/var/mail/%u > I cannot create imap folders (in maildir format). What do you mean by "cannot create"? Does it write something to log? Can you even read the existing mailboxes? /var/mail/username/ directory anyway has to exist, Dovecot doesn't even try to create it. From tss@iki.fi Thu Apr 3 22:45:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 03 Apr 2003 22:45:55 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7B4232385F for ; Thu, 3 Apr 2003 22:45:55 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 49A5B5E01F95; Thu, 3 Apr 2003 22:45:55 +0300 (EEST) Subject: [dovecot] Re: Question about the password field in a postgresql database From: Timo Sirainen To: "Dovecot (E-mail)" In-Reply-To: <410777FC7A66D511911500B0D0783455024C4FA0@nlladot05.intern.ladot.com> References: <410777FC7A66D511911500B0D0783455024C4FA0@nlladot05.intern.ladot.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049399155.22896.72.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 03 Apr 2003 22:45:55 +0300 X-archive-position: 503 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 503 Status: O On Wed, 2003-04-02 at 18:29, Maikel Verheijen wrote: > When I try to set the default_pass_scheme in dovecot-pgsql.conf to > CRYPT, the dovecot does not recognize my crypted passwords. If I > prepend my encrypted passwords with {CRYPT}, dovecot DOES recognize > it. (even when I set default_pass_scheme to PLAIN). > > Is this supposed to work, or am I misinterpreting things here? Works fine with me.. Only thing I can think of is that it's some stupid configuration mistake, like not uncommenting the line :) From tss@iki.fi Thu Apr 3 22:50:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 03 Apr 2003 22:50:30 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9E7CF2385F for ; Thu, 3 Apr 2003 22:50:30 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 69CC35E01F95; Thu, 3 Apr 2003 22:50:30 +0300 (EEST) Subject: [dovecot] Re: NFS mounted IMAP dirs From: Timo Sirainen To: "Dovecot (E-mail)" In-Reply-To: <410777FC7A66D511911500B0D0783455024C4F94@nlladot05.intern.ladot.com> References: <410777FC7A66D511911500B0D0783455024C4F94@nlladot05.intern.ladot.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049399430.22898.78.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 03 Apr 2003 22:50:30 +0300 X-archive-position: 504 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 504 Status: O On Mon, 2003-03-31 at 11:52, Maikel Verheijen wrote: > Well: I am working with Maildir mailstores, so I guess I need to > have a uidlist kinda file then? Sorry it wasn't clear in my post > that I am using Maildir style mailboxes... But I figured maildir was > better than Mbox over nfs... Maildir is much better over NFS and you would need the uidlist file since you can't use indexes. > My current setup is with postgresql and Maildir. So in a way, a lot of > info COULD come from my database, if it isn't safe enough via nfs. Well, I was thinking of supporting PostgreSQL/Oracle mailstores too. Mail bodies could optionally be stored outside the database as files. > Can you make all file locking configurable? Or will you do it on a > "per-type" basis? (eg: mailbox locking, index locking, flag-file > locking, etc). I'll add option to specify if we want NFS-safe locking for .subscriptions and .customflags files. But it isn't really high priority now. From seba@iq.pl Thu Apr 3 22:56:47 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 03 Apr 2003 22:56:47 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id 01AEA2385F for ; Thu, 3 Apr 2003 22:56:46 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id 159AD6BCDF; Thu, 3 Apr 2003 21:57:07 +0200 (CEST) Date: Thu, 3 Apr 2003 21:57:07 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: [dovecot] Re: INBOX at /var in maildir storage format Message-ID: <20030403195707.GB30832@iq.pl> References: <20030403101027.GF20161@iq.pl> <20030403131108.GA31390@woom.net> <20030403192223.GA30832@iq.pl> <1049398486.22903.64.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1049398486.22903.64.camel@hurina> X-archive-position: 505 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: seba@iq.pl Precedence: bulk X-list: dovecot X-UID: 505 Status: O > What do you mean by "cannot create"? Does it write something to log? Can > you even read the existing mailboxes? /var/mail/username/ directory > anyway has to exist, Dovecot doesn't even try to create it. Empty directory /var/mail/username/ owned by username with perm 700 exist. When I connect via imap dovecot automagical creates subfolders .INBOX new tmp cur and .customflags file. Next I'm trying to create folder via webmail software but nothing happens. No info in log. But now I've checked it by telnet to imap and issue rfc3501 'create' and 'list' commands. Works great. Lame on me, but it looks like old webmail software make this mess. From maikel@ladot.com Fri Apr 4 01:09:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 04 Apr 2003 01:09:04 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 475D92385F for ; Fri, 4 Apr 2003 01:09:04 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.8/8.12.6) with ESMTP id h33MJomB044887 for ; Fri, 4 Apr 2003 00:19:50 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id <1VFZ8L5B>; Thu, 3 Apr 2003 23:54:40 +0200 Message-ID: <410777FC7A66D511911500B0D0783455024C4FA6@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "Dovecot (E-mail)" Subject: [dovecot] Re: Question about the password field in a postgres ql database Date: Thu, 3 Apr 2003 23:54:39 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C2FA2B.A00253C0" X-Spam-Status: No, hits=-0.2 required=5.0 tests=EXCHANGE_SERVER,MIME_NULL_BLOCK,QUOTED_EMAIL_TEXT, SPAM_PHRASE_02_03 version=2.44 X-archive-position: 506 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: maikel@ladot.com Precedence: bulk X-list: dovecot X-UID: 506 Status: O Content-Length: 6028 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C2FA2B.A00253C0 Content-Type: text/plain; charset="iso-8859-1" > Works fine with me.. Only thing I can think of is that it's > some stupid > configuration mistake, like not uncommenting the line :) Hi Timo, I just (double) checked my config files, and it LOOKS ok. My dovecot is from cvs, updated yesterday, and running on Redhat 7.3 (if that matters). Here is my dovecot-pgsql.conf: --8<-- # # Postgress connect string. Similar to PHP connect = host=A.B.C.D dbname=maildb user=mailuser password=****** password_query = SELECT password FROM aliases WHERE alias = '%u' AND password != '' AND locked='f'; user_query = SELECT maildir as home, 100 as uid,498 as gid FROM aliases where alias = '%u'; #default_pass_scheme = PLAIN #default_pass_scheme = PLAIN-MD5 default_pass_scheme = CRYPT --8<-- My NON-working DB entry is: --8<-- maildb-> default_pass_scheme = CRYPT maildb-> select * from aliases where alias = 'marc@test.com'; ERROR: parser: parse error at or near "#" maildb=> ; maildb=> select * from aliases where alias = 'marc@test.com'; alias | maildir | password | locked ---------------+------------------------+----------------------------------- -+-------- marc@test.com | test.com/marc/Maildir/ | $1$JJN5H82p$yKs5jnb/csQVYsZZ/4WFS0 | f (1 row) --8<-- and the one that IS working: --8<-- maildb=> select * from aliases where alias = 'maikel@test.com'; alias | maildir | password | locked -----------------+--------------------------+------------------------------- ------------+-------- maikel@test.com | test.com/maikel/Maildir/ | {CRYPT}$1$JJN5H82p$yKs5jnb/csQVYsZZ/4WFS0 | f (1 row) --8<-- Both strings are crypted versions of 'qwerty' Thank you, Maikel Verheijen ------_=_NextPart_001_01C2FA2B.A00253C0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable RE: [dovecot] Re: Question about the password field in a = postgresql database

> Works fine with me.. Only thing I can think of = is that it's
> some stupid
> configuration mistake, like not uncommenting = the line :)

Hi Timo,

I just (double) checked my config files, and it LOOKS = ok.

My dovecot is from cvs, updated yesterday, and = running on Redhat 7.3 (if that matters).

Here is my dovecot-pgsql.conf:

--8<--
#
# Postgress connect string. Similar to PHP
connect =3D host=3DA.B.C.D dbname=3Dmaildb = user=3Dmailuser password=3D******

password_query =3D SELECT password FROM aliases WHERE = alias =3D '%u' AND password !=3D '' AND locked=3D'f';
user_query =3D SELECT maildir as home, 100 as = uid,498 as gid FROM aliases where alias =3D '%u';

#default_pass_scheme =3D PLAIN
#default_pass_scheme =3D PLAIN-MD5
default_pass_scheme =3D CRYPT
--8<--


My NON-working DB entry is:
--8<--
maildb-> default_pass_scheme =3D CRYPT
maildb-> select * from aliases where alias =3D = 'marc@test.com';
ERROR:  parser: parse error at or near = "#"
maildb=3D> ;
maildb=3D> select * from aliases where alias =3D = 'marc@test.com';
     = alias     = |        = maildir         = |            = ;  = password          &nbs= p;   | locked
---------------+------------------------+----------------------= --------------+--------
 marc@test.com | test.com/marc/Maildir/ | = $1$JJN5H82p$yKs5jnb/csQVYsZZ/4WFS0 | f
(1 row)
--8<--

and the one that IS working:
--8<--
maildb=3D> select * from aliases where alias =3D = 'maikel@test.com';
      = alias      = |         = maildir          = |            = ;     = password          &nbs= p;       | locked
-----------------+--------------------------+------------------= -------------------------+--------
 maikel@test.com | test.com/maikel/Maildir/ | = {CRYPT}$1$JJN5H82p$yKs5jnb/csQVYsZZ/4WFS0 | f
(1 row)
--8<--

Both strings are crypted versions of 'qwerty'


Thank you,


Maikel Verheijen

------_=_NextPart_001_01C2FA2B.A00253C0-- From tss@iki.fi Fri Apr 4 02:43:42 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 04 Apr 2003 02:43:42 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 89F262399A for ; Fri, 4 Apr 2003 02:43:42 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 663B15E01F95; Fri, 4 Apr 2003 02:43:42 +0300 (EEST) Subject: [dovecot] Re: Question about the password field in a postgres ql database From: Timo Sirainen To: "Dovecot (E-mail)" In-Reply-To: <410777FC7A66D511911500B0D0783455024C4FA6@nlladot05.intern.ladot.com> References: <410777FC7A66D511911500B0D0783455024C4FA6@nlladot05.intern.ladot.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049413422.22898.116.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 04 Apr 2003 02:43:42 +0300 X-archive-position: 507 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 507 Status: O On Fri, 2003-04-04 at 00:54, Maikel Verheijen wrote: > $1$JJN5H82p$yKs5jnb/csQVYsZZ/4WFS0 | f Oh, you're using MD5 passwords. If password begins with "$1$", Dovecot assumes it's MD5 and handles it internally instead of via crypt(). And their internal handling was buggy, fixed in CVS now. From dovecot@andreas.hanssen.name Fri Apr 4 09:38:58 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 04 Apr 2003 09:38:58 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id 4ED2C238B6 for ; Fri, 4 Apr 2003 09:38:58 +0300 (EEST) Received: (qmail 23217 invoked from network); 4 Apr 2003 06:38:56 -0000 Received: from localhost (HELO krs-dhcp266.studby.uio.no) (andreaha@127.0.0.1) by localhost with SMTP; 4 Apr 2003 06:38:56 -0000 Date: Fri, 4 Apr 2003 08:38:56 +0200 (CEST) From: Andreas Aardal Hanssen To: "Dovecot (E-mail)" Subject: [dovecot] Re: Question about the password field in a postgres ql database In-Reply-To: <1049413422.22898.116.camel@hurina> Message-ID: X-Sent-From-Infeline: Yes MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 508 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dovecot@andreas.hanssen.name Precedence: bulk X-list: dovecot X-UID: 508 Status: O On 4 Apr 2003, Timo Sirainen wrote: >On Fri, 2003-04-04 at 00:54, Maikel Verheijen wrote: >> $1$JJN5H82p$yKs5jnb/csQVYsZZ/4WFS0 | f >Oh, you're using MD5 passwords. If password begins with "$1$", Dovecot >assumes it's MD5 and handles it internally instead of via crypt(). And >their internal handling was buggy, fixed in CVS now. No stupid configuration mistake? ;-) Andy -- Andreas Aardal Hanssen http://www.andreas.hanssen.name/gpg From fuyuki@hadaly.org Sat Apr 5 10:16:05 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 05 Apr 2003 10:16:05 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from t-mta4.odn.ne.jp (mfep4.odn.ne.jp [143.90.131.182]) by danu.procontrol.fi (Postfix) with ESMTP id 24BC22385F for ; Sat, 5 Apr 2003 10:16:03 +0300 (EEST) Received: from hadaly.dyndns.org ([210.237.238.79]) by t-mta4.odn.ne.jp with ESMTP id <20030405071600083.QITS.11456.t-mta4.odn.ne.jp@mta4.odn.ne.jp> for ; Sat, 5 Apr 2003 16:16:00 +0900 Received: from hadaly.dyndns.org (localhost [127.0.0.1]) by hadaly.dyndns.org (Postfix) with ESMTP id A689420D6 for ; Sat, 5 Apr 2003 16:15:58 +0900 (JST) Date: Sat, 05 Apr 2003 16:15:58 +0900 Message-ID: <86smsx5s9d.wl%fuyuki@hadaly.org> From: Kimura Fuyuki To: dovecot@procontrol.fi Subject: [dovecot] message order reversed on copying User-Agent: Wanderlust/2.10.0 (Venus) Emacs/21.2 Mule/5.0 (SAKAKI) X-Public-Key: http://www.hadaly.org/fuyuki/public.key X-Fingerprint: 8D68 1138 1A85 8556 C6A9 274B 2C72 2E56 3AF7 3D89 MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII X-archive-position: 509 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: fuyuki@hadaly.org Precedence: bulk X-list: dovecot X-UID: 509 Status: O Hi, I noticed an annoying behavior of dovecot: the message order (sequence numbering) is reversed on COPYing in the maildir. I suspect that the following code in maildir-save.c is working like "pushing". mf->next = ctx->files; ... ctx->files = mf; Later ctx->files is used like this. for (mf = ctx->files; mf != NULL; mf = mf->next) { -- fuyuki From fuyuki@hadaly.org Sat Apr 5 12:31:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 05 Apr 2003 12:31:02 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from t-mta4.odn.ne.jp (mfep4.odn.ne.jp [143.90.131.182]) by danu.procontrol.fi (Postfix) with ESMTP id AFA672385F for ; Sat, 5 Apr 2003 12:31:01 +0300 (EEST) Received: from hadaly.dyndns.org ([210.237.238.79]) by t-mta4.odn.ne.jp with ESMTP id <20030405093100562.RAKN.11456.t-mta4.odn.ne.jp@mta4.odn.ne.jp> for ; Sat, 5 Apr 2003 18:31:00 +0900 Received: from hadaly.dyndns.org (localhost [127.0.0.1]) by hadaly.dyndns.org (Postfix) with ESMTP id 83A5F2148 for ; Sat, 5 Apr 2003 18:30:59 +0900 (JST) Date: Sat, 05 Apr 2003 18:30:59 +0900 Message-ID: <86r88h5m0c.wl%fuyuki@hadaly.org> From: Kimura Fuyuki To: dovecot@procontrol.fi Subject: [dovecot] maildir_copy_with_hardlinks doesn't work User-Agent: Wanderlust/2.10.0 (Venus) Emacs/21.2 Mule/5.0 (SAKAKI) X-Public-Key: http://www.hadaly.org/fuyuki/public.key X-Fingerprint: 8D68 1138 1A85 8556 C6A9 274B 2C72 2E56 3AF7 3D89 MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII X-archive-position: 510 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: fuyuki@hadaly.org Precedence: bulk X-list: dovecot X-UID: 510 Status: O On my box maildir_copy_with_hardlinks=yes causes the following IMAP error: Some of the requested messages no longer exist. A possible fix follows. --- src/lib-storage/index/maildir/maildir-copy.c 19 Feb 2003 21:32:21 -0000 1.21 +++ src/lib-storage/index/maildir/maildir-copy.c 5 Apr 2003 09:23:34 -0000 @@ -113,7 +113,7 @@ ret2 = index_messageset_deinit(ctx); if (ret2 < 0) ret = -1; - else { + else if (ret2 == 0) { mail_storage_set_error(src->box.storage, "Some of the requested messages no longer exist."); ret = -1; -- fuyuki From tss@iki.fi Sun Apr 6 00:13:29 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 06 Apr 2003 00:13:29 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1399B2385F for ; Sun, 6 Apr 2003 00:13:29 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 4D7B75E01F95; Sun, 6 Apr 2003 00:13:27 +0300 (EEST) Subject: [dovecot] Re: message order reversed on copying From: Timo Sirainen To: Kimura Fuyuki Cc: dovecot@procontrol.fi In-Reply-To: <86smsx5s9d.wl%fuyuki@hadaly.org> References: <86smsx5s9d.wl%fuyuki@hadaly.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049577206.22903.272.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 06 Apr 2003 00:13:27 +0300 X-archive-position: 511 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 511 Status: O On Sat, 2003-04-05 at 10:15, Kimura Fuyuki wrote: > I noticed an annoying behavior of dovecot: the message order (sequence > numbering) is reversed on COPYing in the maildir. > > I suspect that the following code in maildir-save.c is working like > "pushing". Order for new mails is currently the same as the order in which readdir() returns the mails. I guess some filesystems list the files in the order they were written to the directory, but many don't. It anyway can't be relied on, so I won't even try. Better fix for this comes once I add support for UIDPLUS IMAP extension. That requires knowing the new UID for mail in destination mailbox, so I have to update the indexes immediately, which also saves the mail order permanently. From tss@iki.fi Sun Apr 6 00:34:13 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 06 Apr 2003 00:34:13 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 584D02385F for ; Sun, 6 Apr 2003 00:34:13 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 28ACB5E01F95; Sun, 6 Apr 2003 00:34:13 +0300 (EEST) Subject: [dovecot] Re: NFS mounted IMAP dirs From: Timo Sirainen To: "Dovecot (E-mail)" In-Reply-To: <1049399430.22898.78.camel@hurina> References: <410777FC7A66D511911500B0D0783455024C4F94@nlladot05.intern.ladot.com> <1049399430.22898.78.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049578452.22903.279.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 06 Apr 2003 00:34:13 +0300 X-archive-position: 512 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 512 Status: O On Thu, 2003-04-03 at 22:50, Timo Sirainen wrote: > I'll add option to specify if we want NFS-safe locking for > .subscriptions and .customflags files. But it isn't really high priority > now. Actually, I think I'll make them NFS-safe by default. I'll first create a file.lock file where I write the new data, then I rename() it over the old file. This way there's no need to do any read-locking which should speed up the common case to access these files. From charlieb-dovecot@e-smith.com Sun Apr 6 22:12:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 06 Apr 2003 22:12:17 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id C9C232385F for ; Sun, 6 Apr 2003 22:12:16 +0300 (EEST) Received: (qmail 11162 invoked by uid 404); 6 Apr 2003 19:12:12 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 06 Apr 2003 15:12:11 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 06 Apr 2003 19:12:11 -0000 Received: (qmail 19325 invoked by uid 5008); 6 Apr 2003 19:12:11 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 6 Apr 2003 19:12:11 -0000 Date: Sun, 6 Apr 2003 15:12:11 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: dovecot@procontrol.fi Cc: Kimura Fuyuki Subject: [dovecot] Re: message order reversed on copying In-Reply-To: <1049577206.22903.272.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 513 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 513 Status: O Content-Length: 1800 On 6 Apr 2003, Timo Sirainen wrote: > On Sat, 2003-04-05 at 10:15, Kimura Fuyuki wrote: > > I noticed an annoying behavior of dovecot: the message order (sequence > > numbering) is reversed on COPYing in the maildir. > > > > I suspect that the following code in maildir-save.c is working like > > "pushing". > > Order for new mails is currently the same as the order in which > readdir() returns the mails. I guess some filesystems list the files in > the order they were written to the directory, but many don't. It anyway > can't be relied on, so I won't even try. > > Better fix for this comes once I add support for UIDPLUS IMAP extension. > That requires knowing the new UID for mail in destination mailbox, so I > have to update the indexes immediately, which also saves the mail order > permanently. You shouldn't need to do that. All you need to do is to sort the new message files (by name or by mtime - by name will be faster), before processing them. I remember fixing this same problem in the maildir patches for UW-imap, and this is pretty much all it took: - if (!(dir = opendir (tmp))) - return; - while (d = readdir (dir)) { - if (d->d_name[0] == '.') - continue; /* skip .files */ + nfiles = scandir (tmp, &names, NULL, maildir_namesort); + for (i = 0; i < nfiles; i++) + { + struct direct *d = names[i]; sprintf (file,"%s/../new/%s",LOCAL->dir,d->d_name); /* make sure this is a normal file */ - if (stat (file,&sbuf) == 0 && S_ISREG (sbuf.st_mode)) { + if (d->d_name[0] != '.' && stat (file, &sbuf) == 0 && S_ISREG (sbuf.st_mode)) + { As a workaround, Kimura, you can delete dovecot's .imap.* index files, and the new UIDs will be sorted again - until next time. -- Charlie From tss@iki.fi Sun Apr 6 22:55:29 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 06 Apr 2003 22:55:29 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6F6A42387F for ; Sun, 6 Apr 2003 22:55:29 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 367675E01F95; Sun, 6 Apr 2003 22:55:29 +0300 (EEST) Subject: [dovecot] Re: message order reversed on copying From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049658928.22898.360.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 06 Apr 2003 22:55:29 +0300 X-archive-position: 514 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 514 Status: O Content-Length: 1063 On Sun, 2003-04-06 at 22:12, Charlie Brady wrote: > > Better fix for this comes once I add support for UIDPLUS IMAP extension. > > That requires knowing the new UID for mail in destination mailbox, so I > > have to update the indexes immediately, which also saves the mail order > > permanently. > > You shouldn't need to do that. All you need to do is to sort the new > message files (by name or by mtime - by name will be faster), before > processing them. Yes, well, that does it too :) > + nfiles = scandir (tmp, &names, NULL, maildir_namesort); scandir() isn't portable though. I'll just read them into array and qsort() them. I pretty much have to do that anyway with the new scanning code which uses (NFS-safe) .uidlist file to find out if the message already has UID. > As a workaround, Kimura, you can delete dovecot's .imap.* index files, and > the new UIDs will be sorted again - until next time. Which changes UIDVALIDITY and forces clients to discard their cache. Not too good idea. Pretty much the same as just disabling the index files. From charlieb-dovecot@e-smith.com Mon Apr 7 01:15:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 01:15:48 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id AC0872387F for ; Mon, 7 Apr 2003 01:15:47 +0300 (EEST) Received: (qmail 27315 invoked by uid 404); 6 Apr 2003 22:15:46 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 06 Apr 2003 18:15:46 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 06 Apr 2003 22:15:46 -0000 Received: (qmail 13358 invoked by uid 5008); 6 Apr 2003 22:15:45 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 6 Apr 2003 22:15:45 -0000 Date: Sun, 6 Apr 2003 18:15:45 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: message order reversed on copying In-Reply-To: <1049658928.22898.360.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 515 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 515 Status: O On 6 Apr 2003, Timo Sirainen wrote: > On Sun, 2003-04-06 at 22:12, Charlie Brady wrote: > > > > You shouldn't need to do that. All you need to do is to sort the new > > message files (by name or by mtime - by name will be faster), before > > processing them. > > Yes, well, that does it too :) > > > + nfiles = scandir (tmp, &names, NULL, maildir_namesort); > > scandir() isn't portable though. No? Which OS doesn't have it? > > As a workaround, Kimura, you can delete dovecot's .imap.* index files, and > > the new UIDs will be sorted again - until next time. > > Which changes UIDVALIDITY and forces clients to discard their cache. Yes, I could have mentioned that. Still, it's the only way I know to restore the sorting order once it's jumbled. > Not too good idea. Pretty much the same as just disabling the index > files. No, because after you fix the problem the indexes will be usable again. But until then, you are right :-) -- Charlie From tss@iki.fi Mon Apr 7 01:27:38 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 01:27:38 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2A7282387F for ; Mon, 7 Apr 2003 01:27:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3D1565E01F95; Mon, 7 Apr 2003 01:27:36 +0300 (EEST) Subject: [dovecot] Re: message order reversed on copying From: Timo Sirainen To: Charlie Brady Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049668055.22903.405.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 07 Apr 2003 01:27:36 +0300 X-archive-position: 516 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 516 Status: O On Mon, 2003-04-07 at 01:15, Charlie Brady wrote: > > > + nfiles = scandir (tmp, &names, NULL, maildir_namesort); > > scandir() isn't portable though. > No? Which OS doesn't have it? It's not in any standard -> it's not portable. Maybe it's portable enough, but I try to avoid those whenever possible. > > Which changes UIDVALIDITY and forces clients to discard their cache. > > Yes, I could have mentioned that. Still, it's the only way I know to > restore the sorting order once it's jumbled. How about making your client sort the messages by received-date? :) From fuyuki@hadaly.org Mon Apr 7 02:50:09 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 02:50:09 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from t-mta4.odn.ne.jp (mfep4.odn.ne.jp [143.90.131.182]) by danu.procontrol.fi (Postfix) with ESMTP id D410D2387F for ; Mon, 7 Apr 2003 02:50:07 +0300 (EEST) Received: from hadaly.dyndns.org ([210.237.238.79]) by t-mta4.odn.ne.jp with ESMTP id <20030406235002384.FXEL.13932.t-mta4.odn.ne.jp@mta4.odn.ne.jp> for ; Mon, 7 Apr 2003 08:50:02 +0900 Received: from hadaly.dyndns.org (localhost [127.0.0.1]) by hadaly.dyndns.org (Postfix) with ESMTP id 8444020A3 for ; Mon, 7 Apr 2003 08:50:00 +0900 (JST) Date: Mon, 07 Apr 2003 08:50:00 +0900 Message-ID: <86brzjgp93.wl%fuyuki@hadaly.org> From: Kimura Fuyuki To: dovecot@procontrol.fi Subject: [dovecot] Re: message order reversed on copying In-Reply-To: References: <1049577206.22903.272.camel@hurina> User-Agent: Wanderlust/2.10.0 (Venus) Emacs/21.2 Mule/5.0 (SAKAKI) X-Public-Key: http://www.hadaly.org/fuyuki/public.key X-Fingerprint: 8D68 1138 1A85 8556 C6A9 274B 2C72 2E56 3AF7 3D89 MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII X-archive-position: 517 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: fuyuki@hadaly.org Precedence: bulk X-list: dovecot X-UID: 517 Status: O At Sun, 6 Apr 2003 15:12:11 -0400 (EDT), Charlie Brady wrote: > > As a workaround, Kimura, you can delete dovecot's .imap.* index files, and > the new UIDs will be sorted again - until next time. I'm now running dovecot with maildir_copy_with_hardlinks and it works well enough since it doesn't do the deliberate reversing, though I'll be happier if the dovecot implements UIDPLUS or merges your fix. :) -- fuyuki From tss@iki.fi Mon Apr 7 04:23:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 04:23:14 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 923DA2385F for ; Mon, 7 Apr 2003 04:23:14 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 4D5D75E01F95; Mon, 7 Apr 2003 04:23:14 +0300 (EEST) Subject: [dovecot] Re: message order reversed on copying From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <86brzjgp93.wl%fuyuki@hadaly.org> References: <1049577206.22903.272.camel@hurina> <86brzjgp93.wl%fuyuki@hadaly.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049678594.22898.416.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 07 Apr 2003 04:23:14 +0300 X-archive-position: 518 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 518 Status: O On Mon, 2003-04-07 at 02:50, Kimura Fuyuki wrote: > > As a workaround, Kimura, you can delete dovecot's .imap.* index files, and > > the new UIDs will be sorted again - until next time. > > I'm now running dovecot with maildir_copy_with_hardlinks and it works > well enough since it doesn't do the deliberate reversing, though I'll > be happier if the dovecot implements UIDPLUS or merges your fix. :) My maildir syncing rewrite is almost finished now, just a few tweaks left and I'll cvs commit that. It sorts the new files, supports permanent UIDs in NFS-safe .uidlist file, takes less memory, checks that maildir doesn't contain base filename duplicates, and behaves better with other clients. Finally. I started that code a month ago.. From lfarkas@bnap.hu Mon Apr 7 12:46:00 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 12:46:00 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 2F3F42387F for ; Mon, 7 Apr 2003 12:46:00 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id AD6E2754012 for ; Mon, 7 Apr 2003 11:48:39 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 69D773EFA for ; Mon, 7 Apr 2003 11:45:58 +0200 (CEST) Message-ID: <3E9148D5.2060105@bnap.hu> Date: Mon, 07 Apr 2003 11:45:57 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] a few other problem Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 519 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 519 Status: O Content-Length: 1370 hi, I still has a few other problem with dovecot and mozilla. - when I open mozilla mail I can only see the toplevel folders in the left handside folder list and when I close the imap folder and open it again (click on the arrow left to the imap server in the folder list) mozilla show me all folders and subfolders correctly (but not at the startup). it can be mozilla's bug, but this was worked when I use courier?! - when I'd like to sort the messages by thread than the thread is usualy ok, but I'd like to see the the different threads sorted by date (as it was while using couirer or cyrus) but now it seems to me random:-(( it's very anoying. my be it's mozilla fault again, but may be mozilla use server side thread support. - in OE6 when we only select headers only sometime some message "disappear"! which means we see in OE6 a red line over the message (as it would be deleted), but no one delete it (yes I know you don't belive me, I also don't belive our users, but once I saw it). just click on it to see the message and inmediately become as deleted. while when I look at in the server the file is still there and _not_ deleted. and OE6 show "the message already removed from the server". - what about the ssl (imaps) problem? yours. -- Levente "Si vis pacem para bellum!" From johan@willard.se Mon Apr 7 12:46:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 12:46:30 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.willard.se (mail.willard.se [217.20.96.182]) by danu.procontrol.fi (Postfix) with ESMTP id 4E1FE2387F for ; Mon, 7 Apr 2003 12:46:30 +0300 (EEST) Received: by mail.willard.se (Postfix, from userid 5000) id A5A52E6E96; Mon, 7 Apr 2003 10:04:03 +0000 (GMT) Received: from localhost (localhost [127.0.0.1]) by mail.willard.se (Postfix) with ESMTP id A4470115CFC for ; Mon, 7 Apr 2003 10:04:03 +0000 (GMT) Date: Mon, 7 Apr 2003 10:04:03 +0000 (GMT) From: Johan Willard To: dovecot@procontrol.fi Subject: [dovecot] Error: child 12625 (imap) killed with signal 12 Message-ID: <20030407095738.X14045@mail.willard.se> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 520 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: johan@willard.se Precedence: bulk X-list: dovecot X-UID: 520 Status: O Hi! I have tried to install dovecot as my imap service on my FreeBSD server. At first all looked fine and worked flawless. But after a while i started to get errors. The imap process dies with signal 12 when the client tries to check the contens of the folder. dovecot: Apr 07 09:55:17 Error: child 12625 (imap) killed with signal 12 Any ideas what may cause this problem? MvH Johan Willard From cras@irccrew.org Mon Apr 7 14:22:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 14:22:39 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 861692385F for ; Mon, 7 Apr 2003 14:22:39 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 600AE2E003; Mon, 7 Apr 2003 14:22:39 +0300 (EEST) Date: Mon, 7 Apr 2003 14:22:39 +0300 From: Timo Sirainen To: Dovecot List Subject: [dovecot] Re: a few other problem Message-ID: <20030407112239.GA9258@irccrew.org> References: <3E9148D5.2060105@bnap.hu> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <3E9148D5.2060105@bnap.hu> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 521 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 521 Status: O Content-Length: 2075 On Mon, Apr 07, 2003 at 11:45:57AM +0200, Farkas Levente wrote: > - when I open mozilla mail I can only see the toplevel folders in the > left handside folder list and when I close the imap folder and open it > again (click on the arrow left to the imap server in the folder list) > mozilla show me all folders and subfolders correctly (but not at the > startup). it can be mozilla's bug, but this was worked when I use > courier?! Mozilla had same behaviour in subscription dialog, then it tried to use '/' separator instead of '.'. If it works with Courier, I'm guessing it's because Dovecot doesn't support NAMESPACE extension yet. It could be easily added if needed. > - when I'd like to sort the messages by thread than the thread is usualy > ok, but I'd like to see the the different threads sorted by date (as > it was while using couirer or cyrus) but now it seems to me random:-(( > it's very anoying. my be it's mozilla fault again, but may be mozilla > use server side thread support. Hmm.. They should be sorted by date. Last I checked it worked correctly, maybe I've broken it later. > - in OE6 when we only select headers only sometime some message > "disappear"! which means we see in OE6 a red line over the message (as > it would be deleted), but no one delete it (yes I know you don't > belive me, I also don't belive our users, but once I saw it). just > click on it to see the message and inmediately become as deleted. > while when I look at in the server the file is still there and _not_ > deleted. and OE6 show "the message already removed from the server". It's actually documented in dovecot.conf :) I couldn't figure out any way to work around this, and I'm pretty sure Courier has exactly the same problem (and we were seeing it too once in a while when we were still using Courier). It may be that Courier does something a bit differently if you're seeing this more with Dovecot. At least Courier doesn't check new mail as often as Dovecot. > - what about the ssl (imaps) problem? I think it's fixed in CVS. From ask@develooper.com Mon Apr 7 20:47:12 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 20:47:12 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from miette.develooper.com (miette.develooper.com [64.81.84.162]) by danu.procontrol.fi (Postfix) with SMTP id 300762387F for ; Mon, 7 Apr 2003 20:47:11 +0300 (EEST) Received: (qmail 94762 invoked by uid 1001); 7 Apr 2003 17:47:09 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 7 Apr 2003 17:47:09 -0000 Date: Mon, 7 Apr 2003 10:47:09 -0700 (PDT) From: Ask Bjoern Hansen To: dovecot@procontrol.fi Subject: [dovecot] Mbox spool; dovecot rewriting and rewriting and rewriting Message-ID: <20030407104125.O93909@miette.develooper.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 522 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ask@develooper.com Precedence: bulk X-list: dovecot X-UID: 522 Status: O Hi, jaldhar recommended dovecot to me - http://www.askbjoernhansen.com/archives/2003/04/07/000286.html ... and so far it seems much nicer than the other imapds. yay. I use the OS X Mail.app client. I tested it with a test account with no problems, but trying to use it with my usual mail folders (~1.3GB; 120MB in the inbox) it's not working at all. It seems like dovecot keeps copying the full inbox into a temp file in mail/.imap/INBOX. It did it at least 10 times while I was watching without any noticable progress doing anything at all in Mail.app. I am running FreeBSD on an ancient box with 384MB ram (but nice SCSI drives). I tried stopping new mail deliveries to the inbox while I testing, but it didn't seem to make a difference. - ask -- ask bjoern hansen, http://www.askbjoernhansen.com/ !try; do(); From tss@iki.fi Mon Apr 7 21:58:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 21:58:04 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CC4EC238D3 for ; Mon, 7 Apr 2003 21:58:04 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 98DAC5E01F95; Mon, 7 Apr 2003 21:58:04 +0300 (EEST) Subject: [dovecot] Re: Mbox spool; dovecot rewriting and rewriting and rewriting From: Timo Sirainen To: Ask Bjoern Hansen Cc: dovecot@procontrol.fi In-Reply-To: <20030407104125.O93909@miette.develooper.com> References: <20030407104125.O93909@miette.develooper.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049741884.25106.16.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 07 Apr 2003 21:58:04 +0300 X-archive-position: 523 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 523 Status: O On Mon, 2003-04-07 at 20:47, Ask Bjoern Hansen wrote: > I use the OS X Mail.app client. I tested it with a test account > with no problems, but trying to use it with my usual mail folders > (~1.3GB; 120MB in the inbox) it's not working at all. > > It seems like dovecot keeps copying the full inbox into a temp file > in mail/.imap/INBOX. It did it at least 10 times while I was > watching without any noticable progress doing anything at all in > Mail.app. That sounds like Mail.app is creating new custom flags. What does X-IMAPbase header look like in the first mail? Anyway, rewriting isn't too well optimized yet. It's a bit better in CVS now and I think I could make it a bit more better for the next release (which might be good enough for most), but "optimal" rewriting requires a bit larger changes. > I tried stopping new mail deliveries to the inbox while I testing, > but it didn't seem to make a difference. New mails shouldn't require rewriting, especially the whole file. From tss@iki.fi Mon Apr 7 22:04:26 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 22:04:26 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1014D238D3 for ; Mon, 7 Apr 2003 22:04:26 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id DEAA85E01F95; Mon, 7 Apr 2003 22:04:22 +0300 (EEST) Subject: [dovecot] Re: Error: child 12625 (imap) killed with signal 12 From: Timo Sirainen To: Johan Willard Cc: dovecot@procontrol.fi In-Reply-To: <20030407095738.X14045@mail.willard.se> References: <20030407095738.X14045@mail.willard.se> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049742262.25106.24.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 07 Apr 2003 22:04:22 +0300 X-archive-position: 524 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 524 Status: O On Mon, 2003-04-07 at 13:04, Johan Willard wrote: > I have tried to install dovecot as my imap service on my FreeBSD server. > At first all looked fine and worked flawless. But after a while i started > to get errors. The imap process dies with signal 12 when the client tries > to check the contens of the folder. > > dovecot: Apr 07 09:55:17 Error: child 12625 (imap) killed with signal 12 > > Any ideas what may cause this problem? That's "non-existent system call invoked" signal. Strange, I've never seen that before. What's the point of it anyway, why not just return ENOSYS? What version of FreeBSD are you using? I'm guessing it's the sendfile() call, try to comment out #define HAVE_FREEBSD_SENDFILE line from config.h. And you are using Dovecot 0.99.8.1, right? There were several FreeBSD problems before. From tss@iki.fi Mon Apr 7 22:18:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 22:18:51 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 39CF0238D3 for ; Mon, 7 Apr 2003 22:18:51 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id F0CCC5E01F95; Mon, 7 Apr 2003 22:18:50 +0300 (EEST) Subject: [dovecot] Why can't hierarchy sep be changed? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1049739642.25105.2.camel@hurina> References: <1049739642.25105.2.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049743130.25107.35.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 07 Apr 2003 22:18:50 +0300 X-archive-position: 525 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 525 Status: O >From: Charlie Brady There's something wrong with manually accepting posts from non-subscribed addresses now, they're just left to queue directory for some reason.. Please try to keep the From-address the same as the subscribed one. > >From maildir-storage.c: > > ... > '.', /* hierarchy_sep - can't be changed */ > ... > > Why can't it be changed? Is this just for courier compatibility, or is > there a deeper reason why it can't be changed? Actually I'm going to change it to '/' to allow folders such as shared/timo.sirainen/mailbox. The directory names themselves will still contain '.' separator to stay compatible with Courier's Maildir++ format. So even though new IMAP separator will be '/', '.' still can't be used in mailbox names. From charlieb-dovecot@e-smith.com Mon Apr 7 23:40:22 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 23:40:22 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 470772385F for ; Mon, 7 Apr 2003 23:40:22 +0300 (EEST) Received: (qmail 16985 invoked by uid 404); 7 Apr 2003 20:40:19 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 07 Apr 2003 16:40:19 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 07 Apr 2003 20:40:19 -0000 Received: (qmail 6017 invoked from network); 7 Apr 2003 20:40:19 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 7 Apr 2003 20:40:19 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 7 Apr 2003 20:43:48 -0000 Date: Mon, 7 Apr 2003 16:43:48 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Subject: [dovecot] Re: Why can't hierarchy sep be changed? In-Reply-To: <1049743130.25107.35.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 526 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 526 Status: O On 7 Apr 2003, Timo Sirainen wrote: > > >From maildir-storage.c: > > > > ... > > '.', /* hierarchy_sep - can't be changed */ > > ... > > > > Why can't it be changed? Is this just for courier compatibility, or is > > there a deeper reason why it can't be changed? > > Actually I'm going to change it to '/' to allow folders such as > shared/timo.sirainen/mailbox. The directory names themselves will still > contain '.' separator to stay compatible with Courier's Maildir++ > format. So even though new IMAP separator will be '/', '.' still can't > be used in mailbox names. I don't care about Courier compatibility (speaking just for myself - no flames please), and I do want '.' in mailbox names. Will that be easy for me? And just to repeat my question - is the only reason that '.' is unwelcome Courier compatibility? -- Charlie From tss@iki.fi Tue Apr 8 00:19:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Apr 2003 00:19:04 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4CC9623845 for ; Tue, 8 Apr 2003 00:19:04 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 120385E017FE; Tue, 8 Apr 2003 00:19:04 +0300 (EEST) Subject: [dovecot] Re: Why can't hierarchy sep be changed? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049750343.25106.81.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 08 Apr 2003 00:19:03 +0300 X-archive-position: 527 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 527 Status: O On Mon, 2003-04-07 at 23:43, Charlie Brady wrote: > > Actually I'm going to change it to '/' to allow folders such as > > shared/timo.sirainen/mailbox. The directory names themselves will still > > contain '.' separator to stay compatible with Courier's Maildir++ > > format. So even though new IMAP separator will be '/', '.' still can't > > be used in mailbox names. > > I don't care about Courier compatibility (speaking just for myself - no > flames please), and I do want '.' in mailbox names. Will that be easy for > me? I could make it easy when I separate the IMAP/directory separators. Currently you'd have to change the '.' from several places, it's included inside some strings too. Everything should be in maildir-list.c and maildir-storage.c anyway. > And just to repeat my question - is the only reason that '.' is unwelcome > Courier compatibility? Yes. From ask@develooper.com Tue Apr 8 01:38:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Apr 2003 01:38:17 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from miette.develooper.com (miette.develooper.com [64.81.84.162]) by danu.procontrol.fi (Postfix) with SMTP id C188D2385F for ; Tue, 8 Apr 2003 01:38:15 +0300 (EEST) Received: (qmail 22416 invoked by uid 1001); 7 Apr 2003 22:38:13 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 7 Apr 2003 22:38:13 -0000 Date: Mon, 7 Apr 2003 15:38:13 -0700 (PDT) From: Ask Bjoern Hansen To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Mbox spool; dovecot rewriting and rewriting and rewriting In-Reply-To: <1049741884.25106.16.camel@hurina> Message-ID: <20030407153703.K21450@miette.develooper.com> References: <20030407104125.O93909@miette.develooper.com> <1049741884.25106.16.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 528 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ask@develooper.com Precedence: bulk X-list: dovecot X-UID: 528 Status: O Content-Length: 1143 On Mon, 7 Apr 2003, Timo Sirainen wrote: > On Mon, 2003-04-07 at 20:47, Ask Bjoern Hansen wrote: > > I use the OS X Mail.app client. I tested it with a test account > > with no problems, but trying to use it with my usual mail folders > > (~1.3GB; 120MB in the inbox) it's not working at all. > > > > It seems like dovecot keeps copying the full inbox into a temp file > > in mail/.imap/INBOX. It did it at least 10 times while I was > > watching without any noticable progress doing anything at all in > > Mail.app. > > That sounds like Mail.app is creating new custom flags. What does > X-IMAPbase header look like in the first mail? Ah, yes. It keep track of the "Junk" status. X-IMAPbase: 1049736224 0 NotJunk Junk > Anyway, rewriting isn't too well optimized yet. It's a bit better in CVS > now and I think I could make it a bit more better for the next release > (which might be good enough for most), but "optimal" rewriting requires > a bit larger changes. So for every mail read it rewrites the 120MB file? Ouch. No wonder it's a bit slow. ;-) - ask -- ask bjoern hansen, http://www.askbjoernhansen.com/ !try; do(); From tss@iki.fi Tue Apr 8 02:12:24 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Apr 2003 02:12:24 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CC7722399B for ; Tue, 8 Apr 2003 02:12:24 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 181A45E017FE; Tue, 8 Apr 2003 02:12:23 +0300 (EEST) Subject: [dovecot] Re: Mbox spool; dovecot rewriting and rewriting and rewriting From: Timo Sirainen To: Ask Bjoern Hansen Cc: dovecot@procontrol.fi In-Reply-To: <20030407153703.K21450@miette.develooper.com> References: <20030407104125.O93909@miette.develooper.com> <1049741884.25106.16.camel@hurina> <20030407153703.K21450@miette.develooper.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049757142.25102.117.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 08 Apr 2003 02:12:22 +0300 X-archive-position: 529 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 529 Status: O On Tue, 2003-04-08 at 01:38, Ask Bjoern Hansen wrote: > > That sounds like Mail.app is creating new custom flags. What does > > X-IMAPbase header look like in the first mail? > > Ah, yes. It keep track of the "Junk" status. > > X-IMAPbase: 1049736224 0 NotJunk Junk Hmm. Maybe it then starts scanning the mails from beginning and setting the flags one by one? > > Anyway, rewriting isn't too well optimized yet. It's a bit better in CVS > > now and I think I could make it a bit more better for the next release > > (which might be good enough for most), but "optimal" rewriting requires > > a bit larger changes. > > So for every mail read it rewrites the 120MB file? Ouch. No wonder > it's a bit slow. ;-) Not whole file, but all mails after the one it modifies. So updating new mails should be pretty fast. CVS already writes some extra empty space between mails, but it's not smart enough yet to use it for inserted headers. From ask@develooper.com Tue Apr 8 06:58:47 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Apr 2003 06:58:47 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from miette.develooper.com (miette.develooper.com [64.81.84.162]) by danu.procontrol.fi (Postfix) with SMTP id 401A72385F for ; Tue, 8 Apr 2003 06:58:46 +0300 (EEST) Received: (qmail 52993 invoked from network); 8 Apr 2003 03:58:44 -0000 Received: from one.develooper.com (HELO develooper.com) (@64.81.84.115) by miette.develooper.com with SMTP; 8 Apr 2003 03:58:44 -0000 Date: Mon, 7 Apr 2003 20:58:44 -0700 Subject: [dovecot] Re: Mbox spool; dovecot rewriting and rewriting and rewriting Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v551) Cc: dovecot@procontrol.fi To: Timo Sirainen From: Ask Bjoern Hansen In-Reply-To: <1049757142.25102.117.camel@hurina> Message-Id: <645B9AF4-6976-11D7-BBC9-000A95796C18@develooper.com> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.551) X-archive-position: 530 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ask@develooper.com Precedence: bulk X-list: dovecot X-UID: 530 Status: O On Monday, Apr 7, 2003, at 16:12 America/Los_Angeles, Timo Sirainen wrote: >> X-IMAPbase: 1049736224 0 NotJunk Junk > > Hmm. Maybe it then starts scanning the mails from beginning and setting > the flags one by one? Yes, it seems like it. >> So for every mail read it rewrites the 120MB file? Ouch. No wonder >> it's a bit slow. ;-) > > Not whole file, but all mails after the one it modifies. So updating > new > mails should be pretty fast. > > CVS already writes some extra empty space between mails, but it's not > smart enough yet to use it for inserted headers. It sounds like adding that will fix the issue for me; I'll try dovecot again when it's there. Thanks! For now I got imap-uw to not suck quite as much as it did first; thanks Jonas! - ask -- http://www.askbjoernhansen.com/ From johan@willard.se Tue Apr 8 09:43:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Apr 2003 09:43:04 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.willard.se (mail.willard.se [217.20.96.182]) by danu.procontrol.fi (Postfix) with ESMTP id A404E239A7 for ; Tue, 8 Apr 2003 09:43:04 +0300 (EEST) Received: by mail.willard.se (Postfix, from userid 5000) id D7E9FE4E19; Tue, 8 Apr 2003 07:00:39 +0000 (GMT) Received: from localhost (localhost [127.0.0.1]) by mail.willard.se (Postfix) with ESMTP id D2B84115CFC; Tue, 8 Apr 2003 07:00:39 +0000 (GMT) Date: Tue, 8 Apr 2003 07:00:39 +0000 (GMT) From: Johan Willard To: Timo Sirainen Cc: Johan Willard , dovecot@procontrol.fi Subject: [dovecot] Re: Error: child 12625 (imap) killed with signal 12 In-Reply-To: <1049742262.25106.24.camel@hurina> Message-ID: <20030408065019.O33396@mail.willard.se> References: <20030407095738.X14045@mail.willard.se> <1049742262.25106.24.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 531 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: johan@willard.se Precedence: bulk X-list: dovecot X-UID: 531 Status: O Content-Length: 1882 On Mon, 7 Apr 2003, Timo Sirainen wrote: > On Mon, 2003-04-07 at 13:04, Johan Willard wrote: > > I have tried to install dovecot as my imap service on my FreeBSD server. > > At first all looked fine and worked flawless. But after a while i started > > to get errors. The imap process dies with signal 12 when the client tries > > to check the contens of the folder. > > > > dovecot: Apr 07 09:55:17 Error: child 12625 (imap) killed with signal 12 > > > > Any ideas what may cause this problem? > > That's "non-existent system call invoked" signal. Strange, I've never > seen that before. What's the point of it anyway, why not just return > ENOSYS? > > What version of FreeBSD are you using? I'm guessing it's the sendfile() > call, try to comment out #define HAVE_FREEBSD_SENDFILE line from > config.h. > I'm using FreeBSD 4.6-STABLE. If there's any time left over today i'll try to recompile without that option. > And you are using Dovecot 0.99.8.1, right? There were several FreeBSD > problems before. > yes. I was using the regular unix mailbox system when this error occured. T thougth this would be best for compability reasons. I tried to configure my system to use maildir instead. Now it looks like the problem have disappered. I allso tested another mail client after i had sent the previous mail. When I encountered this problem I whas using outlook express 6. I tried with an old version of Netscape Messenger and it actually worked better. In the client everything looked fin. I was able to read my mail in all boxes. But the imap child still died. It looks like the maildir system suits imap much better than mailbox, so i think i stick to it. The only problem now is that my favourite client, pine, dosn't support maildir :/ I've located a patch that I will try, and in worse case scenario, i'll have to connect to localhost via imap :( > > MvH Johan Willard From js@debian.org Tue Apr 8 11:46:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Apr 2003 11:46:15 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from auryn.jones.dk (unknown [62.79.77.233]) by danu.procontrol.fi (Postfix) with ESMTP id 70300239A7 for ; Tue, 8 Apr 2003 11:46:15 +0300 (EEST) Received: from auryn (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id 339363F233F; Tue, 8 Apr 2003 10:46:16 +0200 (CEST) Date: Tue, 8 Apr 2003 10:46:16 +0200 (CEST) From: Jonas Smedegaard X-X-Sender: jonas@auryn.jones.dk Reply-To: Jonas Smedegaard To: Johan Willard Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Error: child 12625 (imap) killed with signal 12 In-Reply-To: <20030408065019.O33396@mail.willard.se> Message-ID: References: <20030407095738.X14045@mail.willard.se> <1049742262.25106.24.camel@hurina> <20030408065019.O33396@mail.willard.se> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 532 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: js@debian.org Precedence: bulk X-list: dovecot X-UID: 532 Status: O On Tue, 8 Apr 2003, Johan Willard wrote: > It looks like the maildir system suits imap much better than mailbox, so > i think i stick to it. The only problem now is that my favourite client, > pine, dosn't support maildir :/ I've located a patch that I will try, > and in worse case scenario, i'll have to connect to localhost via imap > :( I worked yesterday on tracing the history of the maildir patch for Pine and uw-imap originally written by Mattias Larsson. Have a look here: http://debian.jones.dk/official/uw-imap/changelog.maildir/ You may find a more recent version of your own patch there. If you have a different one than already there, please let me know where you found it. - Jonas -- * Debian GNU/Linux developer http://www.debian.org/ * Jonas Smedegaard +45 40843136 http://dr.jones.dk/ * Consulting for machines and humans: Spiff ApS I have no signatures :-( From johan@willard.se Tue Apr 8 12:40:11 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Apr 2003 12:40:11 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.willard.se (mail.willard.se [217.20.96.182]) by danu.procontrol.fi (Postfix) with ESMTP id AFB062399B for ; Tue, 8 Apr 2003 12:40:11 +0300 (EEST) Received: by mail.willard.se (Postfix, from userid 5000) id 6CEBEE6E79; Tue, 8 Apr 2003 09:57:47 +0000 (GMT) Received: from localhost (localhost [127.0.0.1]) by mail.willard.se (Postfix) with ESMTP id 652A0115FDF; Tue, 8 Apr 2003 09:57:47 +0000 (GMT) Date: Tue, 8 Apr 2003 09:57:47 +0000 (GMT) From: Johan Willard To: Jonas Smedegaard Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Error: child 12625 (imap) killed with signal 12 In-Reply-To: Message-ID: <20030408095610.K75206@mail.willard.se> References: <20030407095738.X14045@mail.willard.se> <1049742262.25106.24.camel@hurina> <20030408065019.O33396@mail.willard.se> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 533 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: johan@willard.se Precedence: bulk X-list: dovecot X-UID: 533 Status: O Content-Length: 1102 On Tue, 8 Apr 2003, Jonas Smedegaard wrote: > On Tue, 8 Apr 2003, Johan Willard wrote: > > > It looks like the maildir system suits imap much better than mailbox, so > > i think i stick to it. The only problem now is that my favourite client, > > pine, dosn't support maildir :/ I've located a patch that I will try, > > and in worse case scenario, i'll have to connect to localhost via imap > > :( > > I worked yesterday on tracing the history of the maildir patch for Pine > and uw-imap originally written by Mattias Larsson. Have a look here: > http://debian.jones.dk/official/uw-imap/changelog.maildir/ > > You may find a more recent version of your own patch there. If you have a > different one than already there, please let me know where you found it. > Here's the patch for pine 4.50. Haven't tested it yet thou. http://hico.fphil.uniba.sk/pine-patches.html > - Jonas > > -- > * Debian GNU/Linux developer http://www.debian.org/ > * Jonas Smedegaard +45 40843136 http://dr.jones.dk/ > * Consulting for machines and humans: Spiff ApS > I have no signatures :-( > > MvH Johan Willard From js@debian.org Tue Apr 8 12:58:11 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Apr 2003 12:58:11 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from auryn.jones.dk (unknown [62.79.77.233]) by danu.procontrol.fi (Postfix) with ESMTP id 809F623845 for ; Tue, 8 Apr 2003 12:58:11 +0300 (EEST) Received: from auryn (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id 11D6D3F233F; Tue, 8 Apr 2003 11:58:11 +0200 (CEST) Date: Tue, 8 Apr 2003 11:58:11 +0200 (CEST) From: Jonas Smedegaard X-X-Sender: jonas@auryn.jones.dk Reply-To: Jonas Smedegaard To: Johan Willard Cc: dovecot@procontrol.fi, hico1@im.from.mars.sef.sk Subject: [dovecot] Re: Error: child 12625 (imap) killed with signal 12 In-Reply-To: <20030408095610.K75206@mail.willard.se> Message-ID: References: <20030407095738.X14045@mail.willard.se> <1049742262.25106.24.camel@hurina> <20030408065019.O33396@mail.willard.se> <20030408095610.K75206@mail.willard.se> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 534 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: js@debian.org Precedence: bulk X-list: dovecot X-UID: 534 Status: O Content-Length: 1392 On Tue, 8 Apr 2003, Johan Willard wrote: > On Tue, 8 Apr 2003, Jonas Smedegaard wrote: > > > On Tue, 8 Apr 2003, Johan Willard wrote: > > > > > It looks like the maildir system suits imap much better than > > > mailbox, so i think i stick to it. The only problem now is that my > > > favourite client, pine, dosn't support maildir :/ I've located a > > > patch that I will try, and in worse case scenario, i'll have to > > > connect to localhost via imap > > > :( > > > > I worked yesterday on tracing the history of the maildir patch for > > Pine and uw-imap originally written by Mattias Larsson. Have a look > > here: http://debian.jones.dk/official/uw-imap/changelog.maildir/ > > > > You may find a more recent version of your own patch there. If you > > have a different one than already there, please let me know where you > > found it. > > > Here's the patch for pine 4.50. Haven't tested it yet thou. > http://hico.fphil.uniba.sk/pine-patches.html Looks like an older version of the same patch as in Debian. Haven't investigated much yet, but I really recoomend looking into the other alternatives I have collected. This mail is Cc'ed the maintainer of the patch you found as well. - Jonas -- * Debian GNU/Linux developer http://www.debian.org/ * Jonas Smedegaard +45 40843136 http://dr.jones.dk/ * Consulting for machines and humans: Spiff ApS I have no signatures :-( From aw@osn.de Tue Apr 8 19:41:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Apr 2003 19:41:15 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from kuba.osn.de (kuba.osn.de [194.45.27.112]) by danu.procontrol.fi (Postfix) with SMTP id AE89023845 for ; Tue, 8 Apr 2003 19:41:15 +0300 (EEST) Received: (qmail 28794 invoked by uid 4179); 8 Apr 2003 16:41:37 -0000 Date: Tue, 8 Apr 2003 18:41:15 +0200 From: Armin Wolfermann To: dovecot@procontrol.fi Subject: [dovecot] Patch for passdb-passwd-file.c Message-ID: <20030408164137.GE26048@kuba.osn.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i X-archive-position: 535 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: aw@osn.de Precedence: bulk X-list: dovecot X-UID: 535 Status: O Index: passdb-passwd-file.c =================================================================== RCS file: /home/cvs/dovecot/src/auth/passdb-passwd-file.c,v retrieving revision 1.6 diff -u -u -r1.6 passdb-passwd-file.c --- passdb-passwd-file.c 18 Feb 2003 19:24:44 -0000 1.6 +++ passdb-passwd-file.c 8 Apr 2003 15:59:53 -0000 @@ -28,7 +28,7 @@ crypted_pass = pu->password; scheme = password_get_scheme(&crypted_pass); - if (scheme == NULL) scheme = "DES"; + if (scheme == NULL) scheme = "CRYPT"; ret = password_verify(password, crypted_pass, scheme, request->user); From tss@iki.fi Tue Apr 8 20:00:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Apr 2003 20:00:14 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3A1C723845 for ; Tue, 8 Apr 2003 20:00:14 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 16CC45E017FE; Tue, 8 Apr 2003 20:00:14 +0300 (EEST) Subject: [dovecot] Re: Patch for passdb-passwd-file.c From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030408164137.GE26048@kuba.osn.de> References: <20030408164137.GE26048@kuba.osn.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049821213.25105.126.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 08 Apr 2003 20:00:14 +0300 X-archive-position: 536 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 536 Status: O On Tue, 2003-04-08 at 19:41, Armin Wolfermann wrote: > - if (scheme == NULL) scheme = "DES"; > + if (scheme == NULL) scheme = "CRYPT"; Whops, thanks. From ianj@ian-justman.com Wed Apr 9 01:45:11 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 09 Apr 2003 01:45:12 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sakura.ian-justman.com (sakura.ian-justman.com [207.126.64.32]) by danu.procontrol.fi (Postfix) with ESMTP id AB46A23845 for ; Wed, 9 Apr 2003 01:45:11 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost.ian-justman.com (Postfix) with ESMTP id 957E66112E1 for ; Tue, 8 Apr 2003 15:45:09 -0700 (PDT) Received: from sakura.ian-justman.com ([127.0.0.1]) by localhost (sakura [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13609-10 for ; Tue, 8 Apr 2003 15:45:07 -0700 (PDT) Received: from ian-justman.com (fenchurch.netasset.com [207.126.67.194]) by sakura.ian-justman.com (Postfix) with ESMTP id C7D306112CA for ; Tue, 8 Apr 2003 15:45:06 -0700 (PDT) Message-ID: <3E9350F2.4010205@ian-justman.com> Date: Tue, 08 Apr 2003 15:45:06 -0700 From: "Ian R. Justman" Organization: Net Asset, Network Operations User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en, ja MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: message order reversed on copying References: <1049668055.22903.405.camel@hurina> X-Enigmail-Version: 0.71.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new-20030314-p1 (Debian) X-archive-position: 537 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 537 Status: O Timo Sirainen wrote: >>Yes, I could have mentioned that. Still, it's the only way I know to >>restore the sorting order once it's jumbled. > > > How about making your client sort the messages by received-date? :) I generally tend to copy in received order, even if the dates are "jumbled". Then they're TRULY in the correct order. --Ian. From tss@iki.fi Wed Apr 9 14:03:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 09 Apr 2003 14:03:54 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2905F23845 for ; Wed, 9 Apr 2003 14:03:54 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id BBE825E017FE; Wed, 9 Apr 2003 14:03:50 +0300 (EEST) Subject: [dovecot] command line version of dovecot? From: Timo Sirainen To: kyler-keyword-dovecot.a0ff9b@lairds.org Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049886230.25106.264.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 09 Apr 2003 14:03:50 +0300 X-archive-position: 538 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 538 Status: O > From: Kyler Laird > I finally have dovecot mostly working and I was thinking that > I'd been saved from having to use UW-IMAPd, but I just now > noticed that there doesn't appear to be any way to run > dovecot over standard I/O; it always wants to listen on a > socket. There's the "imap" binary that should do exactly that. Usually installed into /usr/local/libexec/dovecot/imap Or did you mean you wanted to run it from inetd? CVS version supports that too if you execute imap-login. From tss@iki.fi Wed Apr 9 19:13:18 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 09 Apr 2003 19:13:18 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B9DF623997 for ; Wed, 9 Apr 2003 19:13:18 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 78E1A5E017FE; Wed, 9 Apr 2003 19:13:16 +0300 (EEST) Subject: [dovecot] Re: command line version of dovecot? From: Timo Sirainen To: Kyler Laird Cc: dovecot@procontrol.fi In-Reply-To: <20030409155256.GR21821@remote.lairds.org> References: <1049886230.25106.264.camel@hurina> <20030409155256.GR21821@remote.lairds.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049904796.25102.319.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 09 Apr 2003 19:13:16 +0300 X-archive-position: 539 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 539 Status: O Content-Length: 1260 On Wed, 2003-04-09 at 18:52, Kyler Laird wrote: > > There's the "imap" binary that should do exactly that. Usually installed > > into /usr/local/libexec/dovecot/imap > > Ah! That's just the kind of solution I sought. > > Unfortunately it doesn't seem to work for me. It doesn't > appear (via strace) to read any configuration file. It just > looks in /var/mail/[user] for a Maildir. I need to to go to > the Maildir in the user's home (and follow other behaviors > defined in the config file). It should look into ~/Maildir first, then ~/mail and ~/Mail unless it's overridden in MAIL environment. You probably have MAIL=/var/mail/user set, which is why it looks into there. Currently it doesn't read any configuration file, and I'm not sure if I should make it do that.. Well, it could be useful but I'd have to figure out how to prevent unneeded code duplication for config file parsing. All settings are passed via environment settings, but they're not documented (they're basically uppercased versions of the setting names in config file). > Should I have found all of this in some documentation? I > appreciate the help but I feel like I should be reading > about this on my own somewhere. doc/mail-storages.txt explains the MAIL environment. From dknudse@online.no Wed Apr 9 21:46:31 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 09 Apr 2003 21:46:31 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.broadpark.no (mail.broadpark.no [217.13.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id A93AD23845 for ; Wed, 9 Apr 2003 21:46:31 +0300 (EEST) Received: from hal.technomedics.no (32.80-202-130.nextgentel.com [80.202.130.32]) by mail.broadpark.no (Postfix) with ESMTP id E99B3789DC for ; Wed, 9 Apr 2003 20:46:30 +0200 (MEST) Received: from amavis by hal.technomedics.no with scanned-ok (Exim 3.35 #1 (Debian)) id 193Kac-0004cA-00 for ; Wed, 09 Apr 2003 20:46:30 +0200 Received: from by localhost (amavisd-new, port ) id XXRIiEoA for ; Wed, 9 Apr 2003 20:46:21 +0200 (CEST) Received: from dk by hal.technomedics.no with local (Exim 3.35 #1 (Debian)) id 193KaS-0004bz-00 for ; Wed, 09 Apr 2003 20:46:20 +0200 Date: Wed, 9 Apr 2003 20:46:20 +0200 To: dovecot@procontrol.fi Subject: [dovecot] New installation - error 89 on connect Message-ID: <20030409184620.GB17645@hal> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i From: David Knudsen X-Virus-Scanned: by amavisd-new-20030314-p1 (Debian) X-archive-position: 540 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dknudse@online.no Precedence: bulk X-list: dovecot X-UID: 540 Status: O Content-Length: 1430 I've recently installed dovecot (0.99.8.1) from the Debian/woody backport at 'deb http://src.braincells.com/debian woody/' Previously, all mail have been delivered to mbox'es in ~/Mail by exim/procmail -- ~/Mail/inbox being my main mailbox. Whenever I attempt to connect with an IMAP client, the connection is closed and the following error is reported in /var/log/syslog: imap-login: Login: dk [192.168.0.2] imap(dk): Unknown client workaround: outlook-idle^I### dovecot: child 17653 (imap) returned error 89 What does error 89 signify? My current configuration is: (non-comment lines only) imap_listen = 192.168.0.2 imaps_listen = * login = imap login = pop3 verbose_proctitle = yes client_workarounds = oe6-fetch-no-newmail outlook-idle mailbox_check_interval = 60 auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = pam auth_user = root auth_verbose = yes In my confusion, I blindly tried changing settings, attempting to get a different error message at least. :-) These are the settings I have tried, without success: default_mail_env = mbox:~/Mail:INBOX=~/Mail/inbox mail_full_filesystem_access = yes mbox_locks = fcntl auth_passdb = shadow There is no subdirectories in ~/Mail, neither visible nor hidden. I did try to read the docs, and I did browse the mailing list archives, but either I missed something or it is not there. Any ideas? Thank you, David Knudsen From tss@iki.fi Wed Apr 9 21:57:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 09 Apr 2003 21:57:21 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8822923845 for ; Wed, 9 Apr 2003 21:57:21 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 40B355E017F5; Wed, 9 Apr 2003 21:57:21 +0300 (EEST) Subject: [dovecot] Re: New installation - error 89 on connect From: Timo Sirainen To: David Knudsen Cc: dovecot@procontrol.fi In-Reply-To: <20030409184620.GB17645@hal> References: <20030409184620.GB17645@hal> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049914641.25102.328.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 09 Apr 2003 21:57:21 +0300 X-archive-position: 541 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 541 Status: O On Wed, 2003-04-09 at 21:46, David Knudsen wrote: > Whenever I attempt to connect with an IMAP client, the connection is > closed and the following error is reported in /var/log/syslog: > > imap-login: Login: dk [192.168.0.2] > imap(dk): Unknown client workaround: outlook-idle^I### This looks like you have TAB and ### at end of client_workarounds setting in config file. Comments (and tabs) are not currently allowed there. > dovecot: child 17653 (imap) returned error 89 > > What does error 89 signify? It's "default exit code", meaning the error should have been written to log file (like it was). From dknudse@online.no Wed Apr 9 23:00:26 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 09 Apr 2003 23:00:26 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.broadpark.no (mail.broadpark.no [217.13.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 2C70823994 for ; Wed, 9 Apr 2003 23:00:26 +0300 (EEST) Received: from hal.technomedics.no (32.80-202-130.nextgentel.com [80.202.130.32]) by mail.broadpark.no (Postfix) with ESMTP id 46E8278D6B for ; Wed, 9 Apr 2003 22:00:25 +0200 (MEST) Received: from amavis by hal.technomedics.no with scanned-ok (Exim 3.35 #1 (Debian)) id 193Lk8-0004ff-00 for ; Wed, 09 Apr 2003 22:00:24 +0200 Received: from by localhost (amavisd-new, port ) id XXWgeN0x for ; Wed, 9 Apr 2003 22:00:09 +0200 (CEST) Received: from dk by hal.technomedics.no with local (Exim 3.35 #1 (Debian)) id 193Ljk-0004fA-00; Wed, 09 Apr 2003 22:00:00 +0200 Date: Wed, 9 Apr 2003 22:00:00 +0200 To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: New installation - error 89 on connect Message-ID: <20030409200000.GA17921@hal> References: <20030409184620.GB17645@hal> <1049914641.25102.328.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1049914641.25102.328.camel@hurina> User-Agent: Mutt/1.3.28i From: David Knudsen X-Virus-Scanned: by amavisd-new-20030314-p1 (Debian) X-archive-position: 542 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dknudse@online.no Precedence: bulk X-list: dovecot X-UID: 542 Status: O On Wed, Apr 09, 2003 at 09:57:21PM +0300, Timo Sirainen wrote: > On Wed, 2003-04-09 at 21:46, David Knudsen wrote: > > Whenever I attempt to connect with an IMAP client, the connection is > > closed and the following error is reported in /var/log/syslog: > > > > imap-login: Login: dk [192.168.0.2] > > imap(dk): Unknown client workaround: outlook-idle^I### > > This looks like you have TAB and ### at end of client_workarounds > setting in config file. Comments (and tabs) are not currently allowed > there. Exactly - that's the case. I'll change that immediately. Thanks for the swift reply! David Knudsen From tss@iki.fi Wed Apr 9 23:21:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 09 Apr 2003 23:21:39 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B1A5C23994 for ; Wed, 9 Apr 2003 23:21:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 67E055E017F5; Wed, 9 Apr 2003 23:21:38 +0300 (EEST) Subject: [dovecot] Re: Error: child 12625 (imap) killed with signal 12 From: Timo Sirainen To: Johan Willard Cc: dovecot@procontrol.fi In-Reply-To: <20030408065019.O33396@mail.willard.se> References: <20030407095738.X14045@mail.willard.se> <1049742262.25106.24.camel@hurina> <20030408065019.O33396@mail.willard.se> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049919698.25102.340.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 09 Apr 2003 23:21:38 +0300 X-archive-position: 543 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 543 Status: O On Tue, 2003-04-08 at 10:00, Johan Willard wrote: > > > dovecot: Apr 07 09:55:17 Error: child 12625 (imap) killed with signal 12 > I was using the regular unix mailbox system when this error occured. T > thougth this would be best for compability reasons. I tried to configure > my system to use maildir instead. Now it looks like the problem have > disappered. It's probably because sendfile() was tried to be used to write to the mbox file. It may crash again if you try to unsubscribe some mailboxes (anything but the last one in .subscriptions file). I just tried this with FreeBSD 4.8-PRERELEASE myself, sendfile() nicely returns error instead of crashing the whole program. Maybe the problem is something else, or maybe you've just configured the system differently. I think I'll just disable trying to use sendfile() for writing to files, except under Linux where it works. From tss@iki.fi Thu Apr 10 00:03:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 10 Apr 2003 00:03:15 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4FEAF23845 for ; Thu, 10 Apr 2003 00:03:15 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 1B0F65E017F5; Thu, 10 Apr 2003 00:03:15 +0300 (EEST) Subject: [dovecot] Maildir syncing rewrite From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049922194.25102.364.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 10 Apr 2003 00:03:14 +0300 X-archive-position: 544 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 544 Status: O Content-Length: 1249 It finally seems to be working. I've done some testing now and it seems to be working fine. If you have time, see if you can get it to break (especially with INDEX=memory or by manually modifying the maildir). The UIDs are kept in Courier-compatible dovecot-uidlist file (so "mv courierimapuiddb dovecot-uidlist" should work). The great thing about this code is that we never wait for lock. If we can't lock, we simply use the old uidlist file to sync whatever we can, which should be everything but the very newest mails just being delivered and processed by another Dovecot. Of course, if they share index files, we're still blocking there. I named the file as "dovecot-uidlist" instead of ".uidlist" because I finally realized that files beginning with dot conflict with the mailbox namespace. I should rename .customflags and .subscriptions files as well. Also if I move .imap.index* files into root dir, I'll have to rename them too. new/ directory is now scanned every time to see if there's new mail. cur/ directory is scanned if index file's timestamp differs from cur/ dir's timestamp. uidlist file is reread if it's device/inode changes. You can get the sources from either CVS, or 0.99.9-test2 from http://dovecot.procontrol.fi/test/ From fuyuki@hadaly.org Thu Apr 10 10:14:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 10 Apr 2003 10:14:28 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from t-mta8.odn.ne.jp (mfep8.odn.ne.jp [143.90.131.186]) by danu.procontrol.fi (Postfix) with ESMTP id A23B323845 for ; Thu, 10 Apr 2003 10:14:27 +0300 (EEST) Received: from hadaly.dyndns.org ([218.46.133.203]) by t-mta8.odn.ne.jp with ESMTP id <20030410071425471.BCIO.28772.t-mta8.odn.ne.jp@mta8.odn.ne.jp> for ; Thu, 10 Apr 2003 16:14:25 +0900 Received: from hadaly.dyndns.org (localhost [127.0.0.1]) by hadaly.dyndns.org (Postfix) with ESMTP id DF3CA210F for ; Thu, 10 Apr 2003 16:14:24 +0900 (JST) Date: Thu, 10 Apr 2003 16:14:24 +0900 Message-ID: <86znmyu8mn.wl%fuyuki@hadaly.org> From: Kimura Fuyuki To: dovecot@procontrol.fi Subject: [dovecot] Re: Maildir syncing rewrite In-Reply-To: <1049922194.25102.364.camel@hurina> References: <1049922194.25102.364.camel@hurina> User-Agent: Wanderlust/2.10.0 (Venus) Emacs/21.3 Mule/5.0 (SAKAKI) X-Public-Key: http://www.hadaly.org/fuyuki/public.key X-Fingerprint: 8D68 1138 1A85 8556 C6A9 274B 2C72 2E56 3AF7 3D89 MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII X-archive-position: 545 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: fuyuki@hadaly.org Precedence: bulk X-list: dovecot X-UID: 545 Status: O At 10 Apr 2003 00:03:14 +0300, Timo Sirainen wrote: > > You can get the sources from either CVS, or 0.99.9-test2 from > http://dovecot.procontrol.fi/test/ Wow, it's much faster! ...but sometimes it dies with the following syslog message. (locking broken?) Apr 10 15:58:53 hadaly imap(fuyuki): Corrupted index file /home/fuyuki/Maildir/.INBOX/.imap.index: index.next_uid (12797) > uidlist. next_uid (12790) Apr 10 15:58:53 hadaly dovecot: child 71956 (imap) killed with signal 11 I'm using flock for both dovecot and postfix, which is my local mail delivery agent. -- fuyuki From jejc@free.fr Thu Apr 10 14:00:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 10 Apr 2003 14:00:36 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from postfix4-1.free.fr (postfix4-1.free.fr [213.228.0.62]) by danu.procontrol.fi (Postfix) with ESMTP id B4C8A23845 for ; Thu, 10 Apr 2003 14:00:36 +0300 (EEST) Received: from free.fr (lns-p19-18-81-57-232-34.adsl.proxad.net [81.57.232.34]) by postfix4-1.free.fr (Postfix) with ESMTP id 34F4A196D1 for ; Thu, 10 Apr 2003 13:00:36 +0200 (CEST) Message-ID: <3E954E82.1030306@free.fr> Date: Thu, 10 Apr 2003 12:59:14 +0200 From: Jej User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4a) Gecko/20030401 X-Accept-Language: fr-fr, en, en-us MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] dovecot and virtual users Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 546 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jejc@free.fr Precedence: bulk X-list: dovecot X-UID: 546 Status: O Hello, I set up a virtual smtp with exim (mails stored in /var/virtual/{domain}/{user}, passwd in /etc/virtual/{domain}.passwd). I have a patched pop3 server to deal with these mail boxes. Would it be possible to use dovecot as imap server, or (even better) for imap and pop3, with this virtual domain model ? Thanks, read you. -- jej From tss@iki.fi Thu Apr 10 21:46:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 10 Apr 2003 21:46:21 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8A66923845 for ; Thu, 10 Apr 2003 21:46:21 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id B12CF5E017F5; Thu, 10 Apr 2003 21:46:20 +0300 (EEST) Subject: [dovecot] Re: dovecot and virtual users From: Timo Sirainen To: Jej Cc: dovecot@procontrol.fi In-Reply-To: <3E954E82.1030306@free.fr> References: <3E954E82.1030306@free.fr> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050000380.25105.382.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 10 Apr 2003 21:46:20 +0300 X-archive-position: 547 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 547 Status: O On Thu, 2003-04-10 at 13:59, Jej wrote: > Hello, > > > I set up a virtual smtp with exim (mails stored in /var/virtual/{domain}/{user}, Well, I guess that's INBOX. You'll also need a directory to contain rest of the IMAP folders. Something like this maybe: default_mail_env = mbox:~/mail:INBOX=/var/virtual/%d/%n or default_mail_env = mbox:/var/virtual/%d/%n-dirs/ > passwd in /etc/virtual/{domain}.passwd). This isn't supported currently. You could use passwd-file, but you'll have to list the users like "user@domain:...etc..." From tss@iki.fi Thu Apr 10 23:44:23 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 10 Apr 2003 23:44:23 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 99B7923845 for ; Thu, 10 Apr 2003 23:44:23 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 5A8685E017F5; Thu, 10 Apr 2003 23:44:23 +0300 (EEST) Subject: [dovecot] Re: Maildir syncing rewrite From: Timo Sirainen To: Kimura Fuyuki Cc: dovecot@procontrol.fi In-Reply-To: <86znmyu8mn.wl%fuyuki@hadaly.org> References: <1049922194.25102.364.camel@hurina> <86znmyu8mn.wl%fuyuki@hadaly.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050007463.25102.414.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 10 Apr 2003 23:44:23 +0300 X-archive-position: 548 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 548 Status: O Content-Length: 1254 On Thu, 2003-04-10 at 10:14, Kimura Fuyuki wrote: > > You can get the sources from either CVS, or 0.99.9-test2 from > > http://dovecot.procontrol.fi/test/ > > Wow, it's much faster! ...but sometimes it dies with the following > syslog message. (locking broken?) Faster? How large mailboxes or slow computer do you have? :) I don't think I made it any faster, and I don't think it was slow before either.. It took more memory though. > Apr 10 15:58:53 hadaly imap(fuyuki): Corrupted index file /home/fuyuki/Maildir/.INBOX/.imap.index: index.next_uid (12797) > uidlist. > next_uid (12790) > Apr 10 15:58:53 hadaly dovecot: child 71956 (imap) killed with signal 11 > > I'm using flock for both dovecot and postfix, which is my local mail > delivery agent. flock? With maildir? There's no locks with maildir, except for uidlist.lock file which relies on O_EXCL working for open(). Indexes and others are locked with fcntl(), unless you've directly changed that from sources. But I'm not really sure why the above happens.. Even the crash shouldn't happen if the corruption happens (I forced corruption, worked fine). It would help if you could get gdb backtrace, core dumps can be enabled by setting "mail_drop_priv_before_exec = yes" in config file. From dovecot@andreas.hanssen.name Fri Apr 11 00:01:42 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 11 Apr 2003 00:01:42 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id D0E1A23845 for ; Fri, 11 Apr 2003 00:01:41 +0300 (EEST) Received: (qmail 26265 invoked from network); 10 Apr 2003 21:01:40 -0000 Received: from localhost (HELO lexx.infeline.org) (andreaha@127.0.0.1) by localhost with SMTP; 10 Apr 2003 21:01:40 -0000 Date: Thu, 10 Apr 2003 23:01:40 +0200 (CEST) From: Andreas Aardal Hanssen To: dovecot@procontrol.fi Subject: [dovecot] Re: Maildir syncing rewrite In-Reply-To: <1050007463.25102.414.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 549 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dovecot@andreas.hanssen.name Precedence: bulk X-list: dovecot X-UID: 549 Status: O On 10 Apr 2003, Timo Sirainen wrote: >On Thu, 2003-04-10 at 10:14, Kimura Fuyuki wrote: >> > You can get the sources from either CVS, or 0.99.9-test2 from >> > http://dovecot.procontrol.fi/test/ >> I'm using flock for both dovecot and postfix, which is my local mail >> delivery agent. >flock? With maildir? There's no locks with maildir, except for >uidlist.lock file which relies on O_EXCL working for open(). Indexes and >others are locked with fcntl(), unless you've directly changed that from >sources. For the record, is out-of-the-box Dovecot+Maildir with indexes NFS-safe? Andy -- Andreas Aardal Hanssen | http://www.andreas.hanssen.name/gpg Author of Binc IMAP | Nil desperandum From mem@mv.mv.com Fri Apr 11 00:41:19 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 11 Apr 2003 00:41:19 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id DD22B23860 for ; Fri, 11 Apr 2003 00:41:17 +0300 (EEST) Received: (qmail 19229 invoked by uid 101); 10 Apr 2003 17:41:13 -0400 From: "Mark E. Mallett" Date: Thu, 10 Apr 2003 17:41:13 -0400 To: dovecot@procontrol.fi Subject: [dovecot] compilation errors Message-ID: <20030410214113.GQ12480@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-archive-position: 550 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 550 Status: O Content-Length: 1032 Hi- I always encounter the same two minor compilation issues which are easily addressed simply by a quick edit, but this time I figured I'd mention it in case you can work around it. This is on a BSD/OS 4.2 system. First, the generated config.h always creates a definition for OFF_T_MAX which conflicts with the one in the system's limits.h config.h defines: #define OFF_T_MAX LLONG_MAX whereas /usr/include/machine/limits.h defines: #define OFF_T_MAX UQUAD_MAX /* max value for an off_t */ I simply comment out the definition from config.h . Second, in src/lib/mmap-anon.c there's a preprocessor conditional: #if SSIZE_T_MAX >= LLONG_MAX (etc) Unfortunately /usr/include/machine/limits.h defines LLONG_MAX thusly: #define LLONG_MAX (__extension__(9223372036854775807LL)) (evidently to suppress pedantic warnings about the gcc long long constant extension) but the cpp prepreprocessor stumbles over this comparison. This might be fixed in a later gcc, I dunno- it's gcc 2.95.2 here. Yours, -mm- From tss@iki.fi Fri Apr 11 00:59:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 11 Apr 2003 00:59:02 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 766A023860 for ; Fri, 11 Apr 2003 00:59:02 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 468C05E017F5; Fri, 11 Apr 2003 00:59:02 +0300 (EEST) Subject: [dovecot] Re: Maildir syncing rewrite From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050011941.25105.425.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 11 Apr 2003 00:59:02 +0300 X-archive-position: 551 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 551 Status: O On Fri, 2003-04-11 at 00:01, Andreas Aardal Hanssen wrote: > For the record, is out-of-the-box Dovecot+Maildir with indexes NFS-safe? Index files will probably never be NFS-safe. They can be built into memory which should be quite close to how other IMAP servers work, but I don't think I'll do that by default. Other than that, next release should be NFS-safe out of the box. From mem@mv.mv.com Fri Apr 11 02:31:05 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 11 Apr 2003 02:31:05 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 17CDC23845 for ; Fri, 11 Apr 2003 02:31:05 +0300 (EEST) Received: (qmail 10171 invoked by uid 101); 10 Apr 2003 19:31:04 -0400 From: "Mark E. Mallett" Date: Thu, 10 Apr 2003 19:31:04 -0400 To: dovecot@procontrol.fi Subject: [dovecot] dovecot-0.99.9-test2 probs Message-ID: <20030410233104.GF12480@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-archive-position: 552 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 552 Status: O Content-Length: 1396 Hi- Tried 0.99.9-test2 -- had to go back. Various problems in the log. Here's one: Apr 10 08:56:25 mercury mem[10754]: imap(user0): msync() failed with index data file /users/8b/user0/Maildir/.INBOX/.imap.index.data: Cannot allocate memory Apr 10 08:56:25 mercury mem[10754]: imap(user0): Corrupted index data file /users/8b/user0/Maildir/.INBOX/.imap.index.data: Missing location field for record 156 Apr 10 08:56:25 mercury mem[10754]: imap(user0): msync() failed with index data file /users/8b/user0/Maildir/.INBOX/.imap.index.data: Cannot allocate memory Here's another: Apr 10 18:56:59 mercury mem[13376]: pop3(user1): Corrupted index file /users/30/user1/Maildir/.INBOX/.imap.index: index.next_uid (2365) > uidlist.next_uid (2364) And another: Apr 10 19:09:24 mercury mem[10892]: pop3(user2): Corrupted index file /users/39/user2/Maildir/.INBOX/.imap.index: index.next_uid (10422) > uidlist.next_uid (10420) Apr 10 19:09:24 mercury mem[10892]: pop3(user2): Corrupted index file (in-memory index for /users/39/user2/Maildir): Filename mismatch for UID 1: 1050015983.28176.mercury.mv.net vs 1046192106.460.mercury.mv.net Apr 10 19:09:24 mercury mem[10892]: pop3(user2): No INBOX for user And a ton of these, without any other entry for the process ID (which I assume is the number after "child"): Apr 10 19:09:33 mercury dovecot: child 1645 (imap) killed with signal 11 From fuyuki@hadaly.org Fri Apr 11 02:44:46 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 11 Apr 2003 02:44:46 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from t-mta3.odn.ne.jp (mfep3.odn.ne.jp [143.90.131.181]) by danu.procontrol.fi (Postfix) with ESMTP id A5A6423860 for ; Fri, 11 Apr 2003 02:44:45 +0300 (EEST) Received: from hadaly.dyndns.org ([218.46.140.75]) by t-mta3.odn.ne.jp with ESMTP id <20030410234443726.HGNJ.26423.t-mta3.odn.ne.jp@mta3.odn.ne.jp> for ; Fri, 11 Apr 2003 08:44:43 +0900 Received: from hadaly.dyndns.org (localhost [127.0.0.1]) by hadaly.dyndns.org (Postfix) with ESMTP id 9E66C2116 for ; Fri, 11 Apr 2003 08:44:41 +0900 (JST) Date: Fri, 11 Apr 2003 08:44:41 +0900 Message-ID: <86u1d5sys6.wl%fuyuki@hadaly.org> From: Kimura Fuyuki To: dovecot@procontrol.fi Subject: [dovecot] Re: Maildir syncing rewrite In-Reply-To: <1050007463.25102.414.camel@hurina> References: <1049922194.25102.364.camel@hurina> <86znmyu8mn.wl%fuyuki@hadaly.org> <1050007463.25102.414.camel@hurina> User-Agent: Wanderlust/2.10.0 (Venus) Emacs/21.3 Mule/5.0 (SAKAKI) X-Public-Key: http://www.hadaly.org/fuyuki/public.key X-Fingerprint: 8D68 1138 1A85 8556 C6A9 274B 2C72 2E56 3AF7 3D89 MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII X-archive-position: 553 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: fuyuki@hadaly.org Precedence: bulk X-list: dovecot X-UID: 553 Status: O Content-Length: 1153 At 10 Apr 2003 23:44:23 +0300, Timo Sirainen wrote: > > Faster? How large mailboxes or slow computer do you have? :) I don't > think I made it any faster, and I don't think it was slow before > either.. It took more memory though. Yes, I'm surprised too. I have no idea how it could be done, but it's really faster. (why??) This is my slow computer. :) OS: FreeBSD 5.0 CPU: K6-2 400MHz MUA: Wanderlust 2.10.0 And some mailboxes have 1000+ mails. > But I'm not really sure why the above happens.. Even the crash shouldn't > happen if the corruption happens (I forced corruption, worked fine). It > would help if you could get gdb backtrace, core dumps can be enabled by > setting "mail_drop_priv_before_exec = yes" in config file. OK, I'll try it if I have time, but I suspect the mount option -o noatime would be the source of the problem... (I've dropped the option.) BTW, Here's another ominous message. Apr 11 08:12:08 hadaly imap(fuyuki): Corrupted index file (in-memory index for /home/fuyuki/Maildir): Filename mismatch for UID 1: 1050013385.V40dI4d173.hadaly.dyndns.org vs 1049984584.V40dI4d1f8.hadaly.dyndns.org -- fuyuki From juha.o.ylitalo@nokia.com Fri Apr 11 09:41:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 11 Apr 2003 09:41:10 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mgw-x4.nokia.com (mgw-x4.nokia.com [131.228.20.27]) by danu.procontrol.fi (Postfix) with ESMTP id 0043523860 for ; Fri, 11 Apr 2003 09:41:09 +0300 (EEST) Received: from esvir03nok.nokia.com (esvir03nokt.ntc.nokia.com [172.21.143.35]) by mgw-x4.nokia.com (Switch-2.2.6/Switch-2.2.6) with ESMTP id h3B6f7h24125 for ; Fri, 11 Apr 2003 09:41:07 +0300 (EET DST) Received: from esebh003.NOE.Nokia.com (unverified) by esvir03nok.nokia.com (Content Technologies SMTPRS 4.2.5) with ESMTP id for ; Fri, 11 Apr 2003 09:41:06 +0300 Received: from jylitlap.lnx.nokia.com ([172.21.200.174]) by esebh003.NOE.Nokia.com with Microsoft SMTPSVC(5.0.2195.6139); Fri, 11 Apr 2003 09:41:06 +0300 Received: (from jylitalo@localhost) by jylitlap.lnx.nokia.com (8.11.6/8.11.6) id h3B6f6k06133; Fri, 11 Apr 2003 09:41:06 +0300 X-Authentication-Warning: jylitlap.lnx.nokia.com: jylitalo set sender to juha.o.ylitalo@nokia.com using -f Subject: [dovecot] Something wrong in SSL ? From: Juha Ylitalo To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 (1.0.8-9.7x.1) Date: 11 Apr 2003 09:41:06 +0300 Message-Id: <1050043266.5741.18.camel@jylitlap.lnx.nokia.com> Mime-Version: 1.0 X-OriginalArrivalTime: 11 Apr 2003 06:41:06.0600 (UTC) FILETIME=[5449FA80:01C2FFF5] X-archive-position: 554 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: juha.o.ylitalo@nokia.com Precedence: bulk X-list: dovecot X-UID: 554 Status: O Content-Length: 2062 Operating system: FreeBSD 4.7-RELEASE-p10 Dovecot: 0.99.8.1 I've used openssl to generate personal CA and I've used that one to generate certificate for my web server. When I tried to go through same pattern for generating certificate for IMAP server from CA, I ended up in situation, where both mutt and evolution keep on rejecting my certificates. From mutt's documentation, I was able to find helpful documentation for checking IMAP connection. Based on that experimentation, it seems that when I try to verify certificate files with openssl, all checks out, but when I try to check thing through IMAPS, things go ugly (see log below). If I try same openssl s_client command on my web server, it gets everything correctly. As result from this one, I've even tried to use certificate from my web server with IMAP and even then openssl keeps on saying that there is bad record mac. Is this bug in dovecot's SSL handling or have I managed to mess something in my setup? URLS: CA cert: http://jylitalo.homeip.net/ca/ca.crt IMAPD cert: http://jylitalo.homeip.net/ca/imapd.crt [log starts] bash-2.05a$ openssl verify -CAfile /usr/local/www/data/ca/ca.crt /etc/ssl/certs/imapd.crt /etc/ssl/certs/imapd.crt: OK bash-2.05a$ openssl s_client -host localhost -port 993 -CAfile /usr/local/www/data/ca/ca.crt -verify -debug verify depth is 0 CONNECTED(00000003) depth=1 /C=FI/ST=Finland/L=Helsinki/O=Juha Ylitalo/CN=Juha Ylitalo/Email=jylitalo@iki.fi verify return:1 depth=0 /C=FI/ST=Finland/O=Juha Ylitalo/CN=coat.st-paul/Email=jylitalo@iki.fi verify return:1 47169:error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac:/usr/src/secure/lib/libssl/../../../crypto/openssl/crypto/../ssl/s3_pkt.c:1046:SSL alert number 20 47169:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/usr/src/secure/lib/libssl/../../../crypto/openssl/crypto/../ssl/s23_lib.c:226: bash-2.05a$ [log ends] -- Juha Ylitalo juha.o.ylitalo@nokia.com +358 40 562 6152 http://linux.nokia.com/~jylitalo/ From maikel@ladot.com Fri Apr 11 13:59:32 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 11 Apr 2003 13:59:32 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nlladot05.freehosting (unknown [217.22.64.136]) by danu.procontrol.fi (Postfix) with ESMTP id 53E2423845 for ; Fri, 11 Apr 2003 13:59:32 +0300 (EEST) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id <2STP9K3P>; Fri, 11 Apr 2003 12:44:53 +0200 Message-ID: <410777FC7A66D511911500B0D0783455024C4FC9@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "Dovecot (E-mail)" Subject: [dovecot] Maildir problem? Date: Fri, 11 Apr 2003 12:44:44 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C30017.5D379F40" X-archive-position: 555 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: maikel@ladot.com Precedence: bulk X-list: dovecot X-UID: 555 Status: O Content-Length: 2250 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C30017.5D379F40 Content-Type: text/plain Hey list, Today I cvs updated to the most recent dovecot, to test with the recent improvements on the dovecot-uidlist file, and came acros the following: Apr 11 12:49:36 pc-5-046 imap(): Corrupted index file (in-memory index for /var/mail/mounted/test.com/maikel/Maildir//.Sent Items): Filename mismatch for UID 1: 1050058115.P3401Q0M675362.pc-5-046.test.nl:2,S vs 1050057888.P3371Q0M138398.pc-5-046.test.nl I am using a front-end back-end construction, But I am testing on the backend only (non-nfs), because the subscriptions file isn't nfs safe yet. shouldn't the uidl files be leading over the indexes? And shouldn't the indexes be updated as well? Thank you, Maikel Verheijen. ------_=_NextPart_001_01C30017.5D379F40 Content-Type: text/html Content-Transfer-Encoding: quoted-printable Maildir problem?

Hey list,

Today I cvs updated to the most recent dovecot, to = test with the recent improvements on the dovecot-uidlist file, and came = acros the following:

Apr 11 12:49:36 pc-5-046 imap(): Corrupted index file = (in-memory index for /var/mail/mounted/test.com/maikel/Maildir//.Sent = Items): Filename mismatch for UID 1: = 1050058115.P3401Q0M675362.pc-5-046.test.nl:2,S vs = 1050057888.P3371Q0M138398.pc-5-046.test.nl

I am using a front-end back-end construction, But I = am testing on the backend only (non-nfs), because the subscriptions = file isn't nfs safe yet.

shouldn't the uidl files be leading over the indexes? = And shouldn't the indexes be updated as well?

Thank you,


Maikel Verheijen.

------_=_NextPart_001_01C30017.5D379F40-- From tss@iki.fi Sat Apr 12 18:04:32 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 12 Apr 2003 18:04:32 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CB60423845 for ; Sat, 12 Apr 2003 18:04:32 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 7FE9A5E017F5; Sat, 12 Apr 2003 18:04:32 +0300 (EEST) Subject: [dovecot] 0.99.9-test3 From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050159872.25107.483.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 12 Apr 2003 18:04:32 +0300 X-archive-position: 556 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 556 Status: O Expunging messages caused those "Corrupted index file" errors. That's fixed now. There's probably still some problems, at least this fix didn't fix any crashes.. test3 available from http://dovecot.procontrol.fi/test/ From tss@iki.fi Sat Apr 12 18:14:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 12 Apr 2003 18:14:54 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1B53623845 for ; Sat, 12 Apr 2003 18:14:54 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id DD0E35E017F5; Sat, 12 Apr 2003 18:14:53 +0300 (EEST) Subject: [dovecot] Re: Something wrong in SSL ? From: Timo Sirainen To: Juha Ylitalo Cc: dovecot@procontrol.fi In-Reply-To: <1050043266.5741.18.camel@jylitlap.lnx.nokia.com> References: <1050043266.5741.18.camel@jylitlap.lnx.nokia.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050160493.25107.493.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 12 Apr 2003 18:14:53 +0300 X-archive-position: 557 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 557 Status: O On Fri, 2003-04-11 at 09:41, Juha Ylitalo wrote: > If I try same openssl s_client command on my web server, it gets > everything correctly. As result from this one, I've even tried to use > certificate from my web server with IMAP and even then openssl keeps on > saying that there is bad record mac. > > Is this bug in dovecot's SSL handling or have I managed to mess > something in my setup? Did you compile Dovecot with GNUTLS or OpenSSL? If GNUTLS, maybe there's some problems with it. If OpenSSL .. well, I don't know really. I don't have any problems with mutt, Evolution, Outlook or OE at least. From eskimoe@ananzi.co.za Sun Apr 13 19:19:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 13 Apr 2003 19:19:33 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-171-244.reverse.qdsl-home.de [212.202.171.244]) by danu.procontrol.fi (Postfix) with SMTP id 9BC6D23860 for ; Sun, 13 Apr 2003 19:19:32 +0300 (EEST) Received: (qmail 923 invoked by uid 1000); 13 Apr 2003 16:20:53 -0000 Date: Sun, 13 Apr 2003 18:20:53 +0200 From: Moe Wibble To: dovecot@procontrol.fi Subject: [dovecot] a crashy message Message-ID: <20030413162053.GA23316@woom.net> Mail-Followup-To: Moe Wibble , dovecot@procontrol.fi Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="2fHTh5uZTiUOsy+g" Content-Disposition: inline X-archive-position: 558 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 558 Status: O --2fHTh5uZTiUOsy+g Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi everyone, the attached message does reliably crash my dovecot when trying to access a folder containing it. Crash notice in mail.log: Apr 13 17:36:12 rafter dovecot: child 23215 (imap) killed with signal 11 My `dovecot --version` says: 0.99.8 Has this problem been fixed in current dovecot? For now I have just quarantined the offending message but obviously I need to upgrade my dovecot soon because I don't like such kinda things to happen. best regards! -- MW --2fHTh5uZTiUOsy+g Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="msg.yBEI" From owner-ion@list.rt.fm Sun Apr 13 09:32:26 2003 Return-Path: Delivered-To: moe@localhost Received: (qmail 31185 invoked from network); 13 Apr 2003 09:32:25 -0000 Received: from unknown (HELO localhost) (127.0.0.1) by localhost with SMTP; 13 Apr 2003 09:32:25 -0000 Received: from ananzi.mailgate.net [196.38.110.7] by localhost with POP3 (fetchmail-5.9.11) for moe@localhost (single-drop); Sun, 13 Apr 2003 11:32:25 +0200 (CEST) Received: from rt.fm ([209.242.32.10] verified) by mail01.infosat.net (CommuniGate Pro SMTP 3.5.9) with ESMTP id 73760636 for eskimoe@ananzi.co.za; Sun, 13 Apr 2003 11:30:19 +0200 Received: by rt.fm (Postfix) id E9241436D; Sun, 13 Apr 2003 04:30:13 -0500 (CDT) Delivered-To: ion-outgoing@rt.fm Received: by rt.fm (Postfix, from userid 1013) id E71EE4367; Sun, 13 Apr 2003 04:30:13 -0500 (CDT) X-Original-To: ion@list.rt.fm Delivered-To: ion@list.rt.fm Received: from tiger (c213-89-140-172.cm-upc.chello.se [213.89.140.172]) by rt.fm (Postfix) with ESMTP id 6737D4360 for ; Sun, 13 Apr 2003 04:30:13 -0500 (CDT) Received: from pelle by tiger with local (Exim 3.36 #1 (Debian)) id 194dns-000093-00 for ; Sun, 13 Apr 2003 11:29:36 +0200 To: ion@list.rt.fm Subject: [Daniel Silverstone ] Re: lua 5.0 From: Per Olofsson Date: Sun, 13 Apr 2003 11:29:35 +0200 Message-ID: <87ptnqrbi8.fsf@dsv.su.se> User-Agent: Gnus/5.090016 (Oort Gnus v0.16) Emacs/21.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Sender: owner-ion@list.rt.fm Precedence: bulk List-Post: X-UID: 559 Status: O Content-Length: 2935 --=-=-= FYI. /Pelle --=-=-= Content-Type: message/rfc822 Content-Disposition: inline Received: from av-in1.su.se (av-in1.su.se [130.237.162.111]) by unni.dsv.su.se (8.9.3/8.9.3) with ESMTP id SAA22051 for ; Sat, 12 Apr 2003 18:50:48 +0200 (MET DST) Received: from localhost (av-in1.su.se [127.0.0.1]) by av-in1.su.se (Postfix) with ESMTP id 8C8F41002A4 for ; Sat, 12 Apr 2003 18:50:48 +0200 (CEST) Received: from av-in1.su.se ([127.0.0.1]) by localhost (av-in1.su.se [127.0.0.1:10024]) (amavisd-new) with ESMTP id 14463-13 for ; Sat, 12 Apr 2003 18:50:48 +0200 (CEST) Received: from mx1.su.se (mx1.su.se [130.237.162.110]) by av-in1.su.se (Postfix) with ESMTP id 2C410100033 for ; Sat, 12 Apr 2003 18:50:48 +0200 (CEST) Received: from anchor-post-34.mail.demon.net (anchor-post-34.mail.demon.net [194.217.242.92]) by mx1.su.se (Postfix) with ESMTP id 021B534012 for ; Sat, 12 Apr 2003 18:50:48 +0200 (CEST) Received: from digital-scurf.demon.co.uk ([212.229.183.176] helo=ennui.i.digital-scurf.org) by anchor-post-34.mail.demon.net with esmtp (Exim 3.35 #1) id 194ODF-0005FS-0Y for pelle@dsv.su.se; Sat, 12 Apr 2003 17:50:45 +0100 Received: from dsilvers by ennui.i.digital-scurf.org with local (Exim 3.36 #1 (Debian)) id 194ODF-0002dE-00 for ; Sat, 12 Apr 2003 17:50:45 +0100 Date: Sat, 12 Apr 2003 17:50:44 +0100 To: Per Olofsson Subject: Re: lua 5.0 Message-ID: <20030412165044.GD10058@digital-scurf.org> References: <878yukyffb.fsf@dsv.su.se> In-Reply-To: <878yukyffb.fsf@dsv.su.se> User-Agent: Mutt/1.4i From: Daniel Silverstone X-Spam-Status: No, hits=-38.0 tagged_above=-99.0 required=7.0 tests=BAYES_10, EMAIL_ATTRIBUTION, IN_REP_TO, QUOTED_EMAIL_TEXT, REFERENCES, REPLY_WITH_QUOTES, USER_AGENT_MUTT X-Spam-Level: MIME-Version: 1.0 On Tue, Apr 08, 2003 at 09:09:28PM +0200, Per Olofsson wrote: > I wonder if you're going to package lua 5.0 anytime soon. The new > upstream version of my package (ion-devel) needs it. If you don't want > to package it that's okay, I can package it myself if I have to. Hi, I was on holiday for a week, but as you can imagine, I have plans to package Lua 5.0 for Debian. I'm working with the Lua development team to discuss how to best package Lua 5.0 for Debian, since we only want first-class packages. I expect we'll be seeing packages (in pretty much the same configuration as for lua 4.0) within a few weeks now. Keep an eye out on debian-devel for any messages I post about it. D. -- Daniel Silverstone http://www.digital-scurf.org/ Hostmaster, Webmaster, and Chief Code Wibbler Digital-Scurf Unlimited GPG Public key available from keyring.debian.org KeyId: 20687895 You will gain money by a speculation or lottery. --=-=-=-- --2fHTh5uZTiUOsy+g-- From warren@togami.com Mon Apr 14 04:42:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 14 Apr 2003 04:42:27 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from hnlmail2.hawaii.rr.com (hnlmail2.hawaii.rr.com [24.25.227.35]) by danu.procontrol.fi (Postfix) with ESMTP id EAC1723896 for ; Mon, 14 Apr 2003 04:42:26 +0300 (EEST) Received: (apparently) from localhost.127.in-addr.arpa ([204.210.124.92]) by hnlmail2.hawaii.rr.com with Microsoft SMTPSVC(5.5.1877.757.75); Sun, 13 Apr 2003 15:42:21 -1000 Subject: [dovecot] dovecot RPM for Red Hat Linux From: Warren Togami To: dovecot@procontrol.fi Content-Type: text/plain Organization: Message-Id: <1050284521.30823.13.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 13 Apr 2003 15:42:01 -1000 Content-Transfer-Encoding: 7bit X-archive-position: 559 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: warren@togami.com Precedence: bulk X-list: dovecot X-UID: 560 Status: O Content-Length: 1070 http://bugzilla.fedora.us/show_bug.cgi?id=160 This .src.rpm is dovecot with RH-specific default settings. I modified Jeremy Katz' dovecot-0.99.8.1 package a bit. When I upgraded from 0.99.8.1 it seemed to be broken until I looked at /var/log/maillog. There it indicated that the dovecot cache files were bad, so I erased /home/*/mail/.imap/ and it seemed to work subsequently. There are a few more RH specific tweaks that I plan on doing for this package. If you have any suggestions to default config tweaks for this package please reply or post in that bugzilla entry above. I would like for this package to be a drop-in replacement for RHL's uw-imapd eventually, but there are a number of migration issues that need to be addressed first. This package will eventually be included in the Fedora tree after it goes through our QA. http://www.fedora.us Fedora Linux is a project of volunteer package developers making 3rd party packages specifically for Red Hat Linux. Warren Togami warren@togami.com p.s. Keep up the good work. I absolutely love dovecot! From juha.o.ylitalo@nokia.com Mon Apr 14 08:56:07 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 14 Apr 2003 08:56:07 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mgw-x4.nokia.com (mgw-x4.nokia.com [131.228.20.27]) by danu.procontrol.fi (Postfix) with ESMTP id 1AA5023896 for ; Mon, 14 Apr 2003 08:56:07 +0300 (EEST) Received: from esvir04nok.ntc.nokia.com (esvir04nokt.ntc.nokia.com [172.21.143.36]) by mgw-x4.nokia.com (Switch-2.2.6/Switch-2.2.6) with ESMTP id h3E5u5H05015 for ; Mon, 14 Apr 2003 08:56:05 +0300 (EET DST) Received: from esebh001.NOE.Nokia.com (unverified) by esvir04nok.ntc.nokia.com (Content Technologies SMTPRS 4.2.5) with ESMTP id ; Mon, 14 Apr 2003 08:56:05 +0300 Received: from jylitlap.lnx.nokia.com ([172.21.200.174]) by esebh001.NOE.Nokia.com with Microsoft SMTPSVC(5.0.2195.6139); Mon, 14 Apr 2003 08:56:04 +0300 Received: (from jylitalo@localhost) by jylitlap.lnx.nokia.com (8.11.6/8.11.6) id h3E5u4M18291; Mon, 14 Apr 2003 08:56:04 +0300 X-Authentication-Warning: jylitlap.lnx.nokia.com: jylitalo set sender to juha.o.ylitalo@nokia.com using -f Subject: [dovecot] Re: Something wrong in SSL ? From: Juha Ylitalo To: ext Timo Sirainen Cc: dovecot@procontrol.fi In-Reply-To: <1050160493.25107.493.camel@hurina> References: <1050043266.5741.18.camel@jylitlap.lnx.nokia.com> <1050160493.25107.493.camel@hurina> Content-Type: multipart/mixed; boundary="=-SBM1v00qdg3RjEobwu5S" X-Mailer: Ximian Evolution 1.0.8 (1.0.8-9.7x.1) Date: 14 Apr 2003 08:56:04 +0300 Message-Id: <1050299764.18126.9.camel@jylitlap.lnx.nokia.com> Mime-Version: 1.0 X-OriginalArrivalTime: 14 Apr 2003 05:56:04.0389 (UTC) FILETIME=[88E28D50:01C3024A] X-archive-position: 560 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: juha.o.ylitalo@nokia.com Precedence: bulk X-list: dovecot X-UID: 561 Status: O Content-Length: 5949 --=-SBM1v00qdg3RjEobwu5S Content-Type: text/plain Content-Transfer-Encoding: 7bit On Sat, 2003-04-12 at 18:14, ext Timo Sirainen wrote: > On Fri, 2003-04-11 at 09:41, Juha Ylitalo wrote: > > If I try same openssl s_client command on my web server, it gets > > everything correctly. As result from this one, I've even tried to use > > certificate from my web server with IMAP and even then openssl keeps on > > saying that there is bad record mac. > > > > Is this bug in dovecot's SSL handling or have I managed to mess > > something in my setup? > > Did you compile Dovecot with GNUTLS or OpenSSL? If GNUTLS, maybe there's > some problems with it. If OpenSSL .. well, I don't know really. I don't > have any problems with mutt, Evolution, Outlook or OE at least. Its compiled with openssl, since that is default option for dovecot in FreeBSD ports (and since openssl is pretty much in all Linux/BSD boxes it would be silly to use something else on those). Here is more concrete example on how things go wrong. This test is based on instructions in http://mutt.sourceforge.net/imap/README.SSL and I will first demonstrate how it works with Apache (which workds beatifully) and then with imap (which doesn't work): ######## ### WITH HTTPS ######## bash-2.05a$ openssl s_client -host localhost -port 443 -verify -debug 2>&1 > https.log verify depth is 0 depth=0 /C=FI/ST=Finland/O=Juha Ylitalo/CN=jylitalo.homeip.net verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 /C=FI/ST=Finland/O=Juha Ylitalo/CN=jylitalo.homeip.net verify error:num=27:certificate not trusted verify return:1 depth=0 /C=FI/ST=Finland/O=Juha Ylitalo/CN=jylitalo.homeip.net verify error:num=21:unable to verify the first certificate verify return:1 ^]close ######## ### WITH IMAPS ######## bash-2.05a$ openssl s_client -host localhost -port 993 -verify -debug 2>&1 > imaps.log verify depth is 0 depth=0 /C=FI/ST=Finland/O=Juha Ylitalo/CN=jylitalo.homeip.net verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 /C=FI/ST=Finland/O=Juha Ylitalo/CN=jylitalo.homeip.net verify error:num=27:certificate not trusted verify return:1 depth=0 /C=FI/ST=Finland/O=Juha Ylitalo/CN=jylitalo.homeip.net verify error:num=21:unable to verify the first certificate verify return:1 66460:error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac:/usr/src/secure/lib/libssl/../../../crypto/openssl/crypto/../ssl/s3_pkt.c:1046:SSL alert number 20 66460:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/usr/src/secure/lib/libssl/../../../crypto/openssl/crypto/../ssl/s23_lib.c:226: bash-2.05a$ -- Juha Ylitalo juha.o.ylitalo@nokia.com +358 40 562 6152 http://linux.nokia.com/~jylitalo/ --=-SBM1v00qdg3RjEobwu5S Content-Disposition: attachment; filename=https.log Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; name=https.log; charset=ISO-8859-1 CONNECTED(00000003) --- Certificate chain 0 s:/C=3DFI/ST=3DFinland/O=3DJuha Ylitalo/CN=3Djylitalo.homeip.net i:/C=3DFI/ST=3DFinland/L=3DHelsinki/O=3DJuha Ylitalo/CN=3DJuha Ylitalo/E= mail=3Djylitalo@iki.fi --- Server certificate -----BEGIN CERTIFICATE----- MIIEDzCCA7mgAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBgDELMAkGA1UEBhMCRkkx EDAOBgNVBAgTB0ZpbmxhbmQxETAPBgNVBAcTCEhlbHNpbmtpMRUwEwYDVQQKEwxK dWhhIFlsaXRhbG8xFTATBgNVBAMTDEp1aGEgWWxpdGFsbzEeMBwGCSqGSIb3DQEJ ARYPanlsaXRhbG9AaWtpLmZpMB4XDTAzMDMyNjIxNDA0OVoXDTA0MDMyNTIxNDA0 OVowVDELMAkGA1UEBhMCRkkxEDAOBgNVBAgTB0ZpbmxhbmQxFTATBgNVBAoTDEp1 aGEgWWxpdGFsbzEcMBoGA1UEAxMTanlsaXRhbG8uaG9tZWlwLm5ldDCBnzANBgkq hkiG9w0BAQEFAAOBjQAwgYkCgYEAzpvc/kFQxlk6qjp5B+kTeoj2C5rQ13up7VF+ MCIUEVuro010m5W+rR/2chu2c05DkWATad1udBWss4kH57ac2jBEgc9Kvngkvy5m YzZhyWt/xGaSdQcgoO7Uy8K0hYkTsUjyMw6OGo4KjhCIpI0vbrOtLQncSavLgTdl 4guupSsCAwEAAaOCAgMwggH/MAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZA MEAGCWCGSAGG+EIBDQQzFjFDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3 dy5pa2kuZmkvanlsaXRhbG8vMB0GA1UdDgQWBBQH1GMjDRQ/Rkns++h7NNmhubld DjCBrQYDVR0jBIGlMIGigBT8l2HdIe3A4V8GM6o83EZ62vsHU6GBhqSBgzCBgDEL MAkGA1UEBhMCRkkxEDAOBgNVBAgTB0ZpbmxhbmQxETAPBgNVBAcTCEhlbHNpbmtp MRUwEwYDVQQKEwxKdWhhIFlsaXRhbG8xFTATBgNVBAMTDEp1aGEgWWxpdGFsbzEe MBwGCSqGSIb3DQEJARYPanlsaXRhbG9AaWtpLmZpggEAMC4GCWCGSAGG+EIBAgQh Fh9odHRwczovL2p5bGl0YWxvLmhvbWVpcC5uZXQvY2EvMDAGA1UdEgQpMCeGJWh0 dHBzOi8vanlsaXRhbG8uaG9tZWlwLm5ldC9jYS9jYS5jcnQwNgYDVR0fBC8wLTAr oCmgJ4YlaHR0cHM6Ly9qeWxpdGFsby5ob21laXAubmV0L2NhL2NhLmNybDA0Bglg hkgBhvhCAQQEJxYlaHR0cHM6Ly9qeWxpdGFsby5ob21laXAubmV0L2NhL2NhLmNy bDANBgkqhkiG9w0BAQQFAANBAAlNhvDVOirSEtHiV8uRFfUdQnhCPjtk0Hm70sxE gJzMke6ysra6BYrDL4mpMOS252U9JeqcGQyhqzlNHDXAV0M=3D -----END CERTIFICATE----- subject=3D/C=3DFI/ST=3DFinland/O=3DJuha Ylitalo/CN=3Djylitalo.homeip.net issuer=3D/C=3DFI/ST=3DFinland/L=3DHelsinki/O=3DJuha Ylitalo/CN=3DJuha Ylita= lo/Email=3Djylitalo@iki.fi --- No client certificate CA names sent --- SSL handshake has read 1599 bytes and written 314 bytes --- New, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA Server public key is 1024 bit SSL-Session: Protocol : TLSv1 Cipher : EDH-RSA-DES-CBC3-SHA Session-ID: 857DC023D37DF585E8E49EFA554634D68878AC3B776F43DFB3B9089DAB5= 8D026 Session-ID-ctx:=20 Master-Key: 1578B2EC2D10A14C074E9832CBEEFB92C2BFC9FC81E588889176AF89D46= E1619F3592B02EA193CAC9AF0EEAFE6E112E9 Key-Arg : None Start Time: 1050299499 Timeout : 300 (sec) Verify return code: 21 (unable to verify the first certificate) --- 501 Method Not Implemented

Method Not Implemented

=1Dclose to /index.html not supported.

Invalid method in request \x1dclose

closed --=-SBM1v00qdg3RjEobwu5S Content-Disposition: attachment; filename=imaps.log Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; name=imaps.log; charset=ISO-8859-1 CONNECTED(00000003) --=-SBM1v00qdg3RjEobwu5S-- From warren@togami.com Mon Apr 14 08:58:43 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 14 Apr 2003 08:58:43 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from hnlmail3.hawaii.rr.com (hnlmail3.hawaii.rr.com [24.25.227.37]) by danu.procontrol.fi (Postfix) with ESMTP id D6D9823896 for ; Mon, 14 Apr 2003 08:58:42 +0300 (EEST) Received: (apparently) from localhost.127.in-addr.arpa ([204.210.124.92]) by hnlmail3.hawaii.rr.com with Microsoft SMTPSVC(5.5.1877.757.75); Sun, 13 Apr 2003 19:58:39 -1000 Subject: [dovecot] Re: dovecot RPM for Red Hat Linux From: Warren Togami To: fedora-devel@fedora.us, dovecot@procontrol.fi In-Reply-To: <1050284521.30823.13.camel@laptop> References: <1050284521.30823.13.camel@laptop> Content-Type: text/plain Organization: Message-Id: <1050299914.32054.7.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 13 Apr 2003 19:58:34 -1000 Content-Transfer-Encoding: 7bit X-archive-position: 561 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: warren@togami.com Precedence: bulk X-list: dovecot X-UID: 562 Status: O Content-Length: 2243 On Sun, 2003-04-13 at 15:42, Warren Togami wrote: > http://bugzilla.fedora.us/show_bug.cgi?id=160 > > This .src.rpm is dovecot with RH-specific default settings. I modified > Jeremy Katz' dovecot-0.99.8.1 package a bit. I ran into and fixed a few packaging problems listed below, but the last two I'm not exactly sure how to fix. Any suggestions? One problem within /etc/init.d/dovecot ====================================== start() { # Check if pxe is already running if [ ! -f /var/lock/subsys/dovecot ]; then echo -n $"Starting $prog: " /usr/sbin/dovecot & [ -n "`pidofproc /usr/sbin/dovecot`" ] && success RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot echo fi } This line "/usr/sbin/dovecot &" executes in the background, but the next line "[ -n "`pidofproc /usr/sbin/dovecot`" ] && success" happens too soon, causing a non zero return value and a FAILED message during bootup. I confirmed this by adding "sleep 5" between the two lines, giving it enough time to startup completely before testing for the pid. It no displays the fake FAILED message during bootup. What should be the proper fix for this? RH init script problem ====================== Another problem happens during RH's init scripts after you reboot. By default dovecot uses /var/run/dovecot/login/ as a directory to create unix sockets for login. RH's init script displays an error messages when I tries to remove /var/run/*/* files because it is a directory, not a file. I changed dovecot's default to /var/run/dovecot and it now avoids this error. chkconfig problem ================= [root@goku log]# chkconfig --list |grep dovecot dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@goku log]# chkconfig dovecot on [root@goku log]# chkconfig --list |grep dovecot dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off The init.d and rc.d stuff seems to have problems, I haven't analyzed this yet. Service name problem ==================== During startup it says "5dovecot: Starting Dovecot Imap:" I'm not sure why it says "5dovecot" rather than "dovecot". Any ideas? Warren Togami warren@togami.com From lfarkas@bnap.hu Mon Apr 14 12:14:41 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 14 Apr 2003 12:14:41 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 5053523896 for ; Mon, 14 Apr 2003 12:14:41 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 14D45754024; Mon, 14 Apr 2003 11:14:58 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 921D83EFA; Mon, 14 Apr 2003 11:14:38 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 41E403EF2; Mon, 14 Apr 2003 11:14:38 +0200 (CEST) Message-ID: <3E9A7BFD.9050908@bnap.hu> Date: Mon, 14 Apr 2003 11:14:37 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Warren Togami , Dovecot List Subject: [dovecot] Re: dovecot RPM for Red Hat Linux References: <1050284521.30823.13.camel@laptop> <1050299914.32054.7.camel@laptop> In-Reply-To: <1050299914.32054.7.camel@laptop> Content-Type: multipart/mixed; boundary="------------080608090809030403070203" X-archive-position: 562 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 563 Status: O Content-Length: 8120 This is a multi-part message in MIME format. --------------080608090809030403070203 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit here is what we use to compile the cvs. Warren Togami wrote: > On Sun, 2003-04-13 at 15:42, Warren Togami wrote: > >>http://bugzilla.fedora.us/show_bug.cgi?id=160 >> >>This .src.rpm is dovecot with RH-specific default settings. I modified >>Jeremy Katz' dovecot-0.99.8.1 package a bit. > > > I ran into and fixed a few packaging problems listed below, but the last > two I'm not exactly sure how to fix. Any suggestions? > > One problem within /etc/init.d/dovecot > ====================================== > start() { > # Check if pxe is already running > if [ ! -f /var/lock/subsys/dovecot ]; then > echo -n $"Starting $prog: " > /usr/sbin/dovecot & > [ -n "`pidofproc /usr/sbin/dovecot`" ] && success > RETVAL=$? > [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot > echo > fi > } > > This line "/usr/sbin/dovecot &" executes in the background, but the next line "[ > -n "`pidofproc /usr/sbin/dovecot`" ] && success" happens too soon, causing a non > zero return value and a FAILED message during bootup. I confirmed this by > adding "sleep 5" between the two lines, giving it enough time to startup > completely before testing for the pid. It no displays the fake FAILED message > during bootup. What should be the proper fix for this? > > RH init script problem > ====================== > Another problem happens during RH's init scripts after you reboot. By default > dovecot uses /var/run/dovecot/login/ as a directory to create unix sockets for > login. RH's init script displays an error messages when I tries to remove > /var/run/*/* files because it is a directory, not a file. I changed dovecot's > default to /var/run/dovecot and it now avoids this error. > > chkconfig problem > ================= > [root@goku log]# chkconfig --list |grep dovecot > dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off > [root@goku log]# chkconfig dovecot on > [root@goku log]# chkconfig --list |grep dovecot > dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off > The init.d and rc.d stuff seems to have problems, I haven't analyzed this yet. > > Service name problem > ==================== > During startup it says "5dovecot: Starting Dovecot Imap:" > I'm not sure why it says "5dovecot" rather than "dovecot". Any ideas? > > Warren Togami > warren@togami.com > > > > -- Levente "Si vis pacem para bellum!" --------------080608090809030403070203 Content-Type: text/plain; name="dovecot-doc.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dovecot-doc.patch" --- dovecot-0.99.8.1/doc/Makefile.in.lfarkas 2003-02-28 15:04:45.000000000 +0100 +++ dovecot-0.99.8.1/doc/Makefile.in 2003-02-28 15:05:46.000000000 +0100 @@ -82,7 +82,7 @@ VPOPMAIL_LIBS = @VPOPMAIL_LIBS@ ssldir = @ssldir@ -docdir = $(datadir)/doc/dovecot +docdir = $(datadir)/doc/dovecot-0.99.8.1 doc_DATA = auth.txt configuration.txt design.txt index.txt mail-storages.txt multiaccess.txt nfs.txt --------------080608090809030403070203 Content-Type: text/plain; name="dovecot-libtool.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dovecot-libtool.patch" --- dovecot-1.0/configure.lfarkas 2003-03-20 15:53:04.000000000 +0100 +++ dovecot-1.0/configure 2003-03-20 15:54:37.000000000 +0100 @@ -8205,7 +8205,7 @@ LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' +LIBTOOL='$(SHELL) libtool' # Prevent multiple expansion --------------080608090809030403070203 Content-Type: text/plain; name="dovecot.init" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dovecot.init" #!/bin/bash # # /etc/rc.d/init.d/dovecot # # Starts the dovecot daemon # # chkconfig: - 345 54 54 # description: Dovecot Imap Server # processname: dovecot # Source function library. . /etc/init.d/functions test -x /usr/sbin/dovecot || exit 0 RETVAL=0 prog="dovecot" start() { echo -n $"Starting $prog: " # Check if dovecot is already running if [ ! -f /var/lock/subsys/dovecot ]; then daemon /usr/sbin/dovecot RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot echo else failure $"dovecot start" echo fi return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc dovecot RETVAL=$? [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dovecot echo return $RETVAL } # # See how we were called. # case "$1" in start) start ;; stop) stop ;; reload|restart) stop start ;; condrestart) if [ -f /var/lock/subsys/dovecot ]; then stop start fi ;; status) status /usr/sbin/dovecot ;; *) echo $"Usage: $0 {condrestart|start|stop|restart|reload|status}" exit 1 esac exit $? --------------080608090809030403070203 Content-Type: text/plain; name="dovecot.pam" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dovecot.pam" #%PAM-1.0 # # $Id: system-auth.authpam,v 1.1 2001/02/02 05:42:57 mrsam Exp $ # # Copyright 1998-2001 Double Precision, Inc. See COPYING for # distribution information. # # This is a sample authpam configuration file that uses pam_stack # (circa linux-pam 0.72). auth required pam_nologin.so auth required pam_stack.so service=system-auth account required pam_stack.so service=system-auth session required pam_stack.so service=system-auth --------------080608090809030403070203 Content-Type: text/plain; name="dovecot.spec" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dovecot.spec" %define uid 96 %define gid 96 Summary: Dovecot Secure imap server Name: dovecot Version: 1.0 Release: cvs License: GPL Group: System Environment/Daemons Source: %{name}-%{version}.tar.gz Source2: dovecot.init Source3: dovecot.pam Patch: dovecot-libtool.patch URL: http://dovecot.procontrol.fi/ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root %description Dovecot IMAP server - compiled with openssl, pam and ldap support certs in /etc/ssl %prep %setup -q %patch -p1 %build #./autogen.sh %configure --with-ldap --with-ssl=openssl --with-rawlog make %install rm -rf $RPM_BUILD_ROOT %makeinstall rm -rf $RPM_BUILD_ROOT/%{_datadir}/%{name} rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/%{name} mv $RPM_BUILD_ROOT/%{_sysconfdir}/dovecot-example.conf $RPM_BUILD_ROOT/%{_sysconfdir}/dovecot.conf mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/dovecot mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/pam.d install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/%{_sysconfdir}/pam.d/imap install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/%{_sysconfdir}/pam.d/imaps install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/%{_sysconfdir}/pam.d/pop3 install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/%{_sysconfdir}/pam.d/pop3s %post /sbin/chkconfig --add dovecot # Add the dovecot user and group if not found groupadd -g %{gid} -r dovecot 2>/dev/null || : useradd -d /var/run/dovecot -s /bin/false -g dovecot -M -r -u %{uid} dovecot 2>/dev/null || : %preun /sbin/chkconfig --del dovecot %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %config %{_sysconfdir}/dovecot.conf %config %{_sysconfdir}/pam.d/* %config %{_sysconfdir}/rc.d/init.d/dovecot %dir %{_libexecdir}/%{name} %{_libexecdir}/%{name}/* %dir %{_sbindir} %{_sbindir}/* %doc doc/*.txt doc/dovecot-* doc/mkcert.sh INSTALL AUTHORS ChangeLog COPYING TODO README NEWS COPYING.LGPL %changelog * Mon Mar 24 2003 Levente Farkas - update a few things for the current cvs * Sun Feb 28 2003 Zalavary Gabor - 0.99.8 rebuild:) * Sun Dec 1 2002 Seth Vidal - 0.99.4 and fix startup so it starts imap-master not vsftpd :) * Tue Nov 26 2002 Seth Vidal - first build --------------080608090809030403070203-- From dag@wieers.com Mon Apr 14 15:46:01 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 14 Apr 2003 18:10:58 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from horsea.3ti.be (horsea.3ti.be [212.204.244.41]) by danu.procontrol.fi (Postfix) with ESMTP id 8A4D7238C7 for ; Mon, 14 Apr 2003 15:46:01 +0300 (EEST) Received: from localhost (dag@localhost.localdomain [127.0.0.1]) by horsea.3ti.be (8.11.6/8.11.6) with ESMTP id h3ECjwD10019; Mon, 14 Apr 2003 14:45:58 +0200 Date: Mon, 14 Apr 2003 14:45:58 +0200 (CEST) From: Dag Wieers X-X-Sender: dag@horsea.3ti.be To: fedora-devel@fedora.us Cc: dovecot@procontrol.fi Subject: [dovecot] Re: dovecot RPM for Red Hat Linux In-Reply-To: Message-ID: User-Agent: Mutt/1.2.5.1i X-Mailer: Ximian Evolution 1.0.5 Organization: 3TI Web Hosting Services X-Extra: We know Linux is the best. It can do infinite loops in five seconds. - Linus Torvalds MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset="ISO-8859-15; FORMAT=flowed" Content-Transfer-Encoding: 8BIT X-archive-position: 563 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dag@wieers.com Precedence: bulk X-list: dovecot X-UID: 564 Status: O Content-Length: 1896 On Mon, 14 Apr 2003, Dag Wieers wrote: > On 13 Apr 2003, Warren Togami wrote: > > > On Sun, 2003-04-13 at 15:42, Warren Togami wrote: > > > http://bugzilla.fedora.us/show_bug.cgi?id=160 > > > > > > This .src.rpm is dovecot with RH-specific default settings. I modified > > > Jeremy Katz' dovecot-0.99.8.1 package a bit. > > > > I ran into and fixed a few packaging problems listed below, but the last > > two I'm not exactly sure how to fix. Any suggestions? > > > > One problem within /etc/init.d/dovecot > > ====================================== > > start() { > > # Check if pxe is already running > > if [ ! -f /var/lock/subsys/dovecot ]; then > > echo -n $"Starting $prog: " > > /usr/sbin/dovecot & > > [ -n "`pidofproc /usr/sbin/dovecot`" ] && success > > RETVAL=$? > > [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot > > echo > > fi > > } > > Warren, why are you using pidofproc and success yourself ? Red Hat has the > infrastructure that takes care of this. I have never have to use these > myself. > > You could take a look at my sysv-script in my SPEC file. I always embed > these files in the SPEC file so that the path-macros affect the > sysv-script too. > > There I simply do: -snip- Make that: start() { echo -n \$"Starting \$prog: " daemon \$prog RETVAL=\$? echo [ \$RETVAL -eq 0 ] && touch %{_localstatedir}/lock/subsys/\$prog return \$RETVAL } stop() { echo -n \$"Shutting down \$prog: " killproc \$prog RETVAL=\$? echo [ \$RETVAL -eq 0 ] && rm -f %{_localstatedir}/lock/subsys/\$prog return \$RETVAL } Kind regards, -- dag wieers, dag@wieers.com, http://dag.wieers.com/ -- «Any errors in spelling, tact or fact are transmission errors» From dag@wieers.com Mon Apr 14 15:31:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 14 Apr 2003 18:11:10 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from horsea.3ti.be (horsea.3ti.be [212.204.244.41]) by danu.procontrol.fi (Postfix) with ESMTP id E8BDE23896 for ; Mon, 14 Apr 2003 15:31:54 +0300 (EEST) Received: from localhost (dag@localhost.localdomain [127.0.0.1]) by horsea.3ti.be (8.11.6/8.11.6) with ESMTP id h3ECVpD07706; Mon, 14 Apr 2003 14:31:51 +0200 Date: Mon, 14 Apr 2003 14:31:51 +0200 (CEST) From: Dag Wieers X-X-Sender: dag@horsea.3ti.be To: fedora-devel@fedora.us Cc: dovecot@procontrol.fi Subject: [dovecot] Re: dovecot RPM for Red Hat Linux In-Reply-To: <1050299914.32054.7.camel@laptop> Message-ID: User-Agent: Mutt/1.2.5.1i X-Mailer: Ximian Evolution 1.0.5 Organization: 3TI Web Hosting Services X-Extra: We know Linux is the best. It can do infinite loops in five seconds. - Linus Torvalds MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset="ISO-8859-15; FORMAT=flowed" Content-Transfer-Encoding: 8BIT X-archive-position: 564 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dag@wieers.com Precedence: bulk X-list: dovecot X-UID: 565 Status: O Content-Length: 1041 On 13 Apr 2003, Warren Togami wrote: > On Sun, 2003-04-13 at 15:42, Warren Togami wrote: > > chkconfig problem > ================= > [root@goku log]# chkconfig --list |grep dovecot > dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off > [root@goku log]# chkconfig dovecot on > [root@goku log]# chkconfig --list |grep dovecot > dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off > The init.d and rc.d stuff seems to have problems, I haven't analyzed this yet. It probably has to do with the chkconfig headers in your sysv-script. [root@lisse SPECS]# rpm -q dovecot dovecot-0.99.8.1-0.dag.rh90 [root@lisse SPECS]# chkconfig --list dovecot dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@lisse SPECS]# chkconfig dovecot on [root@lisse SPECS]# chkconfig --list dovecot dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off -- dag wieers, dag@wieers.com, http://dag.wieers.com/ -- «Any errors in spelling, tact or fact are transmission errors» From dag@wieers.com Mon Apr 14 15:24:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 14 Apr 2003 18:11:14 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from horsea.3ti.be (horsea.3ti.be [212.204.244.41]) by danu.procontrol.fi (Postfix) with ESMTP id 19BC423896 for ; Mon, 14 Apr 2003 15:24:51 +0300 (EEST) Received: from localhost (dag@localhost.localdomain [127.0.0.1]) by horsea.3ti.be (8.11.6/8.11.6) with ESMTP id h3ECOWD06346; Mon, 14 Apr 2003 14:24:32 +0200 Date: Mon, 14 Apr 2003 14:24:32 +0200 (CEST) From: Dag Wieers X-X-Sender: dag@horsea.3ti.be To: fedora-devel@fedora.us Cc: dovecot@procontrol.fi Subject: [dovecot] Re: dovecot RPM for Red Hat Linux In-Reply-To: <1050299914.32054.7.camel@laptop> Message-ID: User-Agent: Mutt/1.2.5.1i X-Mailer: Ximian Evolution 1.0.5 Organization: 3TI Web Hosting Services X-Extra: We know Linux is the best. It can do infinite loops in five seconds. - Linus Torvalds MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset="ISO-8859-15; FORMAT=flowed" Content-Transfer-Encoding: 8BIT X-archive-position: 565 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dag@wieers.com Precedence: bulk X-list: dovecot X-UID: 566 Status: O Content-Length: 1761 On 13 Apr 2003, Warren Togami wrote: > On Sun, 2003-04-13 at 15:42, Warren Togami wrote: > > http://bugzilla.fedora.us/show_bug.cgi?id=160 > > > > This .src.rpm is dovecot with RH-specific default settings. I modified > > Jeremy Katz' dovecot-0.99.8.1 package a bit. > > I ran into and fixed a few packaging problems listed below, but the last > two I'm not exactly sure how to fix. Any suggestions? > > One problem within /etc/init.d/dovecot > ====================================== > start() { > # Check if pxe is already running > if [ ! -f /var/lock/subsys/dovecot ]; then > echo -n $"Starting $prog: " > /usr/sbin/dovecot & > [ -n "`pidofproc /usr/sbin/dovecot`" ] && success > RETVAL=$? > [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot > echo > fi > } Warren, why are you using pidofproc and success yourself ? Red Hat has the infrastructure that takes care of this. I have never have to use these myself. You could take a look at my sysv-script in my SPEC file. I always embed these files in the SPEC file so that the path-macros affect the sysv-script too. There I simply do: start() { echo -n \$"Starting \$prog: " daemon \$prog RETVAL=\$? echo touch %{_localstatedir}/lock/subsys/\$prog return \$RETVAL } stop() { echo -n \$"Shutting down \$prog: " killproc \$prog RETVAL=\$? echo rm -f %{_localstatedir}/lock/subsys/\$prog return \$RETVAL } Any suggestions to this are welcomed. Kind regards, -- dag wieers, dag@wieers.com, http://dag.wieers.com/ -- «Any errors in spelling, tact or fact are transmission errors» From tss@iki.fi Mon Apr 14 18:22:19 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 14 Apr 2003 18:22:19 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B93B62387F for ; Mon, 14 Apr 2003 18:22:19 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3D3685E017F5; Mon, 14 Apr 2003 18:22:19 +0300 (EEST) Subject: [dovecot] Re: dovecot RPM for Red Hat Linux From: Timo Sirainen To: Warren Togami Cc: fedora-devel@fedora.us, dovecot@procontrol.fi In-Reply-To: <1050299914.32054.7.camel@laptop> References: <1050284521.30823.13.camel@laptop> <1050299914.32054.7.camel@laptop> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050333738.28255.367.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Apr 2003 18:22:19 +0300 X-archive-position: 566 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 567 Status: O On Mon, 2003-04-14 at 08:58, Warren Togami wrote: > RH init script problem > ====================== > Another problem happens during RH's init scripts after you reboot. By default > dovecot uses /var/run/dovecot/login/ as a directory to create unix sockets for > login. RH's init script displays an error messages when I tries to remove > /var/run/*/* files because it is a directory, not a file. I changed dovecot's > default to /var/run/dovecot and it now avoids this error. Rather make a new directory for it, eg. /var/run/dovecot-login. Currently it's not that important, but it might change in future. Or actually I think it breaks if Dovecot is started via inetd, because it creates a socket in /var/run/dovecot which would conflict with auth sockets. From tss@iki.fi Mon Apr 14 18:29:24 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 14 Apr 2003 18:29:24 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 427AF2387F for ; Mon, 14 Apr 2003 18:29:24 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 07FFE5E017F5; Mon, 14 Apr 2003 18:29:24 +0300 (EEST) Subject: [dovecot] Re: a crashy message From: Timo Sirainen To: Moe Wibble Cc: dovecot@procontrol.fi In-Reply-To: <20030413162053.GA23316@woom.net> References: <20030413162053.GA23316@woom.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050334163.28254.375.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Apr 2003 18:29:23 +0300 X-archive-position: 567 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 568 Status: O Content-Length: 1125 On Sun, 2003-04-13 at 19:20, Moe Wibble wrote: > Hi everyone, > > the attached message does reliably crash my dovecot when trying > to access a folder containing it. > > Crash notice in mail.log: > Apr 13 17:36:12 rafter dovecot: child 23215 (imap) killed with signal 11 > > My `dovecot --version` says: > 0.99.8 Well, the version number isn't really up to date currently :) Is this CVS or -test? I don't think 0.99.8.1 yet had --version. > Has this problem been fixed in current dovecot? > For now I have just quarantined the offending message but obviously > I need to upgrade my dovecot soon because I don't like such kinda > things to happen. I couldn't get any crashes with it, neither with 0.99.8.1 nor current CVS. It would help if you got gdb backtrace from the crash: Set "mail_drop_priv_before_exec = yes" in config file, so it dumps core to whatever directory you started dovecot in. Hmm. Actually I think I should change to mail root dir so it's written there.. gdb /usr/local/dovecot/libexec/dovecot/imap core bt Or alternatively: gdb /usr/.../imap c bt From keith@midnighthax.com Mon Apr 14 21:33:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 02:06:04 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mhlgengs001.rg2.midnighthax.com (unknown [217.158.167.69]) by danu.procontrol.fi (Postfix) with ESMTP id DC436238C7 for ; Mon, 14 Apr 2003 21:33:55 +0300 (EEST) Received: from zaphod.rg2.midnighthax.com (zaphod.rg2.midnighthax.com [10.0.2.1]) by mhlgengs001.rg2.midnighthax.com (Postfix) with SMTP id 6C380224C6 for ; Mon, 14 Apr 2003 19:33:51 +0100 (BST) Date: Mon, 14 Apr 2003 19:33:49 +0100 From: Keith Edmunds To: dovecot@procontrol.fi Subject: [dovecot] Folders with mail and subfolders Message-Id: <20030414193349.4c4fe9ba.keith@midnighthax.com> Organization: Midnight Hax Ltd X-Mailer: Sylpheed version 0.8.11claws90 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 568 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: keith@midnighthax.com Precedence: bulk X-list: dovecot X-UID: 569 Status: O I have a maildir hierarchy (built originally with Courier-IMAP) where some folders contain both email and subfolders. Using Dovecot I cannot see the mail in the top folders: I can only see the subfolders. Is this an RFC restriction or a Dovecot restriction? If the latter, is it planned to change? Otherwise: just started using Dovecot, and I'm very impressed with the speed of it. Thanks! Keith From ianj@ian-justman.com Tue Apr 15 05:04:32 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 05:04:32 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from narshe.chocobo.org (dsl-207-126-72-242.dsl.netasset.net [207.126.72.242]) by danu.procontrol.fi (Postfix) with ESMTP id BC1F12387F for ; Tue, 15 Apr 2003 05:04:31 +0300 (EEST) Received: from ian-justman.com (jidoor.chocobo.org [207.126.72.253]) by narshe.chocobo.org (Postfix) with ESMTP id 6FF4C311617; Mon, 14 Apr 2003 19:04:26 -0700 (PDT) Message-ID: <3E9B68A9.4000701@ian-justman.com> Date: Mon, 14 Apr 2003 19:04:25 -0700 From: "Ian R. Justman" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Keith Edmunds Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Folders with mail and subfolders References: <20030414193349.4c4fe9ba.keith@midnighthax.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 569 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 570 Status: O Keith Edmunds wrote: > I have a maildir hierarchy (built originally with Courier-IMAP) where > some folders contain both email and subfolders. Using Dovecot I cannot > see the mail in the top folders: I can only see the subfolders. > > Is this an RFC restriction or a Dovecot restriction? If the latter, is > it planned to change? Far as I know, that's usually a client-side issue. I had the same thing come up when I was using Cyrus where a folder can hold either messages or more folders. Netscape has an option where you can have both or they're mutually exclusive. Nowadays, I'm using mbox, so they're sorta mutually exclusive. ;) --Ian. From mem@mv.mv.com Tue Apr 15 07:38:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 07:38:17 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 9B126238C8 for ; Tue, 15 Apr 2003 07:38:14 +0300 (EEST) Received: (qmail 21974 invoked by uid 101); 15 Apr 2003 00:38:11 -0400 From: "Mark E. Mallett" Date: Tue, 15 Apr 2003 00:38:11 -0400 To: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9-test3 Message-ID: <20030415043811.GA24366@iridium.mv.net> References: <1050159872.25107.483.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1050159872.25107.483.camel@hurina> User-Agent: Mutt/1.4.1i X-archive-position: 570 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 571 Status: O Content-Length: 1952 On Sat, Apr 12, 2003 at 06:04:32PM +0300, Timo Sirainen wrote: > Expunging messages caused those "Corrupted index file" errors. That's > fixed now. There's probably still some problems, at least this fix > didn't fix any crashes.. > > test3 available from http://dovecot.procontrol.fi/test/ Hi- Tried this- still get at least three varieties of the "Corrupted index file" errors (very frequent as you can see by the timestamps): Apr 14 23:48:03 mercury mem[11546]: pop3(user3): Corrupted index file /users/1d/user3/Maildir/.INBOX/.imap.index: Filename mismatch for UID 1366: 1050157920.28714.mercury.mv.net vs 1050168692.1692.mercury.mv.net Apr 14 23:48:11 mercury mem[11880]: pop3(user4): Corrupted index file (in-memory index for /users/2a/user4/Maildir): Filename mismatch for UID 1: 1050378453.254 31.mercury.mv.net vs 1050378419.24825.mercury.mv.net Apr 14 23:48:15 mercury mem[10327]: pop3(user1): Corrupted index file /users/8f/user1/Maildir/.INBOX/.imap.index: index.next_uid (118) > uidlist.next_uid (114) Plus very rapid signal 11s: Apr 14 23:48:12 mercury dovecot: child 25983 (imap) killed with signal 11 Apr 14 23:48:12 mercury dovecot: child 25992 (imap) killed with signal 11 Apr 14 23:48:14 mercury dovecot: child 26034 (imap) killed with signal 11 Pretty much the same as with test2. All occurances of this last mesasge say "(imap)" -- no "pop3". However most accesses on this system are pop3, not imap. In fact it appears that all examples of "Corrupted index" are pop3 instances, and all examples of "signal 11" are imap.. I tried setting mail_drop_priv_before_exec = yes as you suggested, to generate a core dump, but if it's dumping core I can't find it anywhere. dovecot was started from /var/tmp and I have verified that the running dovecot and dovecot-auth processes have /var/tmp as a working directory. I also continue to see sporadic "(imap) returned error 89" with this version and with 0.99.8.1 -mm- From warren@togami.com Tue Apr 15 15:43:24 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 15:43:24 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from hnlmail2.hawaii.rr.com (hnlmail2.hawaii.rr.com [24.25.227.35]) by danu.procontrol.fi (Postfix) with ESMTP id 10A99238C8 for ; Tue, 15 Apr 2003 15:43:23 +0300 (EEST) Received: (apparently) from localhost.127.in-addr.arpa ([204.210.124.92]) by hnlmail2.hawaii.rr.com with Microsoft SMTPSVC(5.5.1877.757.75); Tue, 15 Apr 2003 02:43:20 -1000 Subject: [dovecot] Three *very* strange bugs From: Warren Togami To: dovecot@procontrol.fi, fedora-devel@fedora.us, shrike-list@redhat.com Content-Type: multipart/mixed; boundary="=-1kN4J0lqIIqLcGMke0AY" Organization: Message-Id: <1050410599.20921.23.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 15 Apr 2003 02:43:19 -1000 X-archive-position: 571 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: warren@togami.com Precedence: bulk X-list: dovecot X-UID: 572 Status: O Content-Length: 2539 --=-1kN4J0lqIIqLcGMke0AY Content-Type: text/plain Content-Transfer-Encoding: 7bit * Attached is a mbox file that triggers Bug #1 and #2. * Go here if you want to test dovecot for RH9: https://bugzilla.fedora.us/show_bug.cgi?id=160 * If somebody has a different IMAP server than dovecot, could you please test how Evolution reacts to reading this message? Bug #1 dovecot and #2 evolution-1.2.3 ===================================== I am using dovecot-0.99.9-test3 on RH9, reading mail with evolution-1.2.2-5 on RH9. Whenever I attempt to view this one particular spam message, evolution pops up an error like: Error while 'Retrieving message 4': Server unexpectedly disconnected: No such file or directory Simultaneously this appears in my /var/log/maillog: Apr 15 01:44:50 server dovecot: child 20328 (imap) killed with signal 11 If I attempt to keep reading mail, it logs in again to dovecot and works normally until I attempt to read that spam again. Evolution displays the error popup again though I don't see another signal 11 in maillog. After this point I am unable to log back into dovecot without restarting the daemon. Here's the strange part... I browsed the same IMAP folder from KMail, and kmail has no problem reading that spam message. dovecot's [imap] process does not segmentation fault. Does this mean an evolution bug when reading this particular spam exposed a dovecot segmentation fault? Bug #3 kernel? ============== This is an unrelated bug and perhaps not the fault of dovecot. When I attempted to use strace to get some debugging info on the [imap] process, this happened: [root@server /]# strace -p 20486 trace: ptrace(PTRACE_SYSCALL, ...): Operation not permitted detach: ptrace(PTRACE_DETACH, ...): Operation not permitted [root@server /]# This isn't normal right? After doing this, dovecot stops working and I need to restart the daemon in order to establish new connections. That [imap] process becomes unkillable, even kill -9 wont work. Unkillable process usually means kernel bug, right? warren 20345 1 7 01:46 ? 00:00:34 [imap] This is kernel-2.4.20-9 in Red Hat Linux 9. Is dovecot exposing a Red Hat kernel bug when I try to strace that process, or is strace supposed to fail, the dovecot daemon ceases to function and [imap] process becomes completely unkillable? =) Warren Togami warren@togami.com --=-1kN4J0lqIIqLcGMke0AY Content-Description: Content-Type: application/octet-stream Content-Disposition: attachment; filename=TEMP Content-Transfer-Encoding: 8bit From MAILER-DAEMON Tue Apr 15 02:23:51 2003 Date: 15 Apr 2003 02:23:51 -1000 From: Mail System Internal Data Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA Message-ID: <1050409431@localhost.localdomain> Status: RO Content-Length: 260 X-UID: 573 This text is part of the internal format of your mail folder, and is not a real message. It is created automatically by the mail system software. If deleted, important folder data will be lost, and it will be re-created with the data reset to initial values. From warren@goku Tue Apr 15 00:36:53 2003 Return-Path: Received: from localhost (goku [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id h3FAaRYm020172 for ; Tue, 15 Apr 2003 00:36:53 -1000 Message-Id: <200304151036.h3FAaRYm020172@localhost.localdomain> Received: from mail.togami.com [209.15.46.61] by localhost with POP3 (fetchmail-6.2.0) for warren@localhost (single-drop); Tue, 15 Apr 2003 00:36:53 -1000 (HST) Received: from cobra.ileadmarketing.com ([64.156.222.132]) by ; Tue, 15 Apr 2003 05:18:04 -0500 Received: by cobra.ileadmarketing.com (PowerMTA(TM) v1.6a27); Tue, 15 Apr 2003 06:22:36 -0400 (envelope-from ) Date: Tue, 15 Apr 2003 06:22:36 -0400 Reply-To: disc@ileadmarketing.com Content-Type: multipart/alternative; boundary="=====1050402156.00938=====" Subject: The Discover(r) Platinum Wildlife Card - Go Wild MIME-Version: 1.0 From: Wild Life To: warren@togami.com X-Rcpt-To: X-DPOP: Version number supressed X-UIDL: 1050402982.1619 X-Spam-Status: No, hits=3.4 required=7.0 tests=CLICK_BELOW,GREAT_OFFER,HTTP_WITH_EMAIL_IN_URL, MIME_MISSING_BOUNDARY,MSG_ID_ADDED_BY_MTA_2,NO_FEE,OFFER, OFFER_EXPIRE,SPAM_PHRASE_13_21,WEB_BUGS version=2.44 X-Spam-Level: *** Content-Length: 3779 Status: RO X-UID: 574 --=====1050402156.00938===== Content-Type: text/plain; charset="iso-8859-1" Offer Expires April 30, 2003 X-Rcpt-To: Get a 0% Intro APR* on Purchases and Balance Transfers You’ve been selected for a special No-Annual-Fee Discover® Card with all of these privileges: · 0% Intro APR on Purchases and Balance Transfers* · No Annual Fee · Up to 2% Cashback Bonus® award* · Up to $50,000 Credit Limit Start Saving Today – APPLY NOW! It's fast, easy and secure. http://ileadmarketing.com/mkt/lead?&l=56217&a=16cc7b&z=57366 To take advantage of this special offer, act by April 30, 2003! * Click here to see information about the APR, fees and other Important Information .................................................................... ILeadMarketing never sends unsolicited email. ILeadMarketing has been given the right to market to you through our Web site partners and their privacy policies. Specifically, you are receiving this correspondence because you have provided consent (via your registration and acceptance of the privacy policies for a newsletter, contest, web-based service or other activity on the web) to receive recurring promotions or offers from various third parties. If you feel that you are receiving this email in error or are not interested in receiving future offers please click here: http://www.ileadmarketing.com/mkt/seeya?email=warren@togami.com&c=57366 , or email us at seeya@ileadmarketing.com. ILeadMarketing is not responsible for third party offers, services or products and makes no representations or warranties regarding them. ..................................................................... --=====1050402156.00938===== Content-Type: text/html; charset="iso-8859-1" Discover Wildlife Card



ILeadMarketing never sends unsolicited email. ILeadMarketing has been given the right to market to you through our Web site partners and their privacy policies. Specifically, you are receiving this correspondence because you have provided consent (via your registration and acceptance of the privacy policies for a newsletter, contest, web-based service or other activity on the web) to receive recurring promotions or offers from various third parties. If you feel that you are receiving this email in error or are not interested in receiving future offers please click here: http://www.ileadmarketing.com/mkt/seeya?email=warren@togami.com&c=57366 , or email us at seeya@ileadmarketing.com. ILeadMarketing is not responsible for third party offers, services or products and makes no representations or warranties regarding them.
--=====1050402156.00938===== --=-1kN4J0lqIIqLcGMke0AY-- From tss@iki.fi Tue Apr 15 16:10:18 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 16:10:18 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 54A2E238C8 for ; Tue, 15 Apr 2003 16:10:18 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 13CD05E017F5; Tue, 15 Apr 2003 16:10:18 +0300 (EEST) Subject: [dovecot] Re: Three *very* strange bugs From: Timo Sirainen To: Warren Togami Cc: dovecot@procontrol.fi, fedora-devel@fedora.us, shrike-list@redhat.com In-Reply-To: <1050410599.20921.23.camel@laptop> References: <1050410599.20921.23.camel@laptop> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050412217.28250.419.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 15 Apr 2003 16:10:17 +0300 X-archive-position: 572 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 575 Status: O Content-Length: 1467 On Tue, 2003-04-15 at 15:43, Warren Togami wrote: > Simultaneously this appears in my /var/log/maillog: > Apr 15 01:44:50 server dovecot: child 20328 (imap) killed with signal 11 > > If I attempt to keep reading mail, it logs in again to dovecot and works > normally until I attempt to read that spam again. Evolution displays > the error popup again though I don't see another signal 11 in maillog. > After this point I am unable to log back into dovecot without restarting > the daemon. OK, thanks, fixed. Dovecot crashed with "FETCH nnn BODY[n.MIME]", so pretty much any multipart mail crashed with Evolution. > Here's the strange part... > I browsed the same IMAP folder from KMail, and kmail has no problem > reading that spam message. dovecot's [imap] process does not > segmentation fault. KMail doesn't fetch MIME headers separately. I think it fetches whole message at once. > Bug #3 kernel? > ============== > This is an unrelated bug and perhaps not the fault of dovecot. When I > attempted to use strace to get some debugging info on the [imap] > process, this happened: > > [root@server /]# strace -p 20486 > trace: ptrace(PTRACE_SYSCALL, ...): Operation not permitted > detach: ptrace(PTRACE_DETACH, ...): Operation not permitted > [root@server /]# I have no problem stracing. I don't think Dovecot does anything that should prevent it. Or, well, it might be because it's thought of as setuid process, but root should be able to strace it. From tss@iki.fi Tue Apr 15 16:13:12 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 16:13:12 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8BAE9238C8 for ; Tue, 15 Apr 2003 16:13:12 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 301975E017F5; Tue, 15 Apr 2003 16:13:12 +0300 (EEST) Subject: [dovecot] 0.99.9-test4 From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050412392.28255.423.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 15 Apr 2003 16:13:12 +0300 X-archive-position: 573 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 576 Status: O http://procontrol.fi/test/ - Crashfix for multipart messages - More optimized mbox rewriting, should be "good enough" for most uses I think. I've been using it for a while now, seems to work. Still some problems: imap(cras): Apr 15 01:48:48 Warning: Our dotlock file /home/cras/mail//full-disclosure.lock was overridden And I'm sure it wasn't. Or at least shouldn't have been. Have to look more into this.. From seba@iq.pl Tue Apr 15 16:27:35 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 16:27:35 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id 39F6C238C9 for ; Tue, 15 Apr 2003 16:27:35 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id 544846BDC1; Tue, 15 Apr 2003 15:26:26 +0200 (CEST) Date: Tue, 15 Apr 2003 15:26:26 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9-test4 Message-ID: <20030415132626.GD6374@iq.pl> References: <1050412392.28255.423.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1050412392.28255.423.camel@hurina> X-archive-position: 574 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: seba@iq.pl Precedence: bulk X-list: dovecot X-UID: 577 Status: O On Tue, Apr 15, 2003 at 16:13:12 +0300, Timo Sirainen wrote: > http://procontrol.fi/test/ > > - Crashfix for multipart messages > - More optimized mbox rewriting, should be "good enough" for most uses I > think. I've been using it for a while now, seems to work. > > Still some problems: > > imap(cras): Apr 15 01:48:48 Warning: Our dotlock file /home/cras/mail//full-disclosure.lock was overridden > > And I'm sure it wasn't. Or at least shouldn't have been. Have to look > more into this.. > Not Found The requested URL /test was not found on this server. From oskar@mail.solls.net Tue Apr 15 16:41:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 16:41:54 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from chuck.solls.net (chuck.schaeps.de [213.217.108.83]) by danu.procontrol.fi (Postfix) with SMTP id 39E7F238C9 for ; Tue, 15 Apr 2003 16:41:54 +0300 (EEST) Received: (qmail 48560 invoked from network); 15 Apr 2003 13:41:54 -0000 Received: from unknown (HELO localhost) (127.0.0.1) by chuck.solls.net with SMTP; 15 Apr 2003 13:41:54 -0000 Received: from pD9E60985.dip.t-dialin.net (pD9E60985.dip.t-dialin.net [217.230.9.133]) by www2.solls.net (IMP) with HTTP for ; Tue, 15 Apr 2003 13:41:54 +0000 Message-ID: <1050414114.3e9c0c2298c90@www2.solls.net> Date: Tue, 15 Apr 2003 13:41:54 +0000 From: Oskar Eyb To: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9-test4 References: <1050412392.28255.423.camel@hurina> <20030415132626.GD6374@iq.pl> In-Reply-To: <20030415132626.GD6374@iq.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2 X-archive-position: 575 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: oskar@mail.solls.net Precedence: bulk X-list: dovecot X-UID: 578 Status: O > On Tue, Apr 15, 2003 at 16:13:12 +0300, Timo Sirainen wrote: > > http://procontrol.fi/test/ > Not Found > > The requested URL /test was not found on this server. Just try: http://dovecot.procontrol.fi/test/ From eskimoe@ananzi.co.za Tue Apr 15 18:01:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 18:01:04 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-171-244.reverse.qdsl-home.de [212.202.171.244]) by danu.procontrol.fi (Postfix) with SMTP id 55B3F238C8 for ; Tue, 15 Apr 2003 18:01:04 +0300 (EEST) Received: (qmail 18936 invoked by uid 1000); 15 Apr 2003 15:02:26 -0000 Date: Tue, 15 Apr 2003 17:02:26 +0200 From: Moe Wibble To: dovecot@procontrol.fi Subject: [dovecot] Re: a crashy message Message-ID: <20030415150226.GB17461@woom.net> Mail-Followup-To: Moe Wibble , dovecot@procontrol.fi References: <20030413162053.GA23316@woom.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030413162053.GA23316@woom.net> X-archive-position: 576 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 579 Status: O FYI: That bug was fixed a while ago. After upgrading to latest CVS everything is fine now. regards -- MW From cras@irccrew.org Tue Apr 15 18:48:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 18:48:27 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 8C757238C9 for ; Tue, 15 Apr 2003 18:48:27 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 5B6412E030; Tue, 15 Apr 2003 18:48:27 +0300 (EEST) Date: Tue, 15 Apr 2003 18:48:27 +0300 From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9-test3 Message-ID: <20030415154827.GB18955@irccrew.org> References: <1050159872.25107.483.camel@hurina> <20030415043811.GA24366@iridium.mv.net> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20030415043811.GA24366@iridium.mv.net> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 577 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 580 Status: O Content-Length: 1777 On Tue, Apr 15, 2003 at 12:38:11AM -0400, Mark E. Mallett wrote: > Tried this- still get at least three varieties of the "Corrupted index > file" errors (very frequent as you can see by the timestamps): > > Apr 14 23:48:03 mercury mem[11546]: pop3(user3): Corrupted index file > /users/1d/user3/Maildir/.INBOX/.imap.index: Filename mismatch for UID > 1366: 1050157920.28714.mercury.mv.net vs 1050168692.1692.mercury.mv.net Humm. Well, have to keep looking more at that. > Plus very rapid signal 11s: > > Apr 14 23:48:12 mercury dovecot: child 25983 (imap) killed with signal 11 > Apr 14 23:48:12 mercury dovecot: child 25992 (imap) killed with signal 11 > Apr 14 23:48:14 mercury dovecot: child 26034 (imap) killed with signal 11 Could these be the FETCH MIME crashes that Evolution caused? What clients do you mostly have anyway? > In fact it appears that all examples of "Corrupted index" are pop3 > instances, and all examples of "signal 11" are imap.. Are you sure you rebuilt/reinstalled the pop3 binary? I haven't actually tried pop3 at all for a long time, but it shares all the backend code with imap. > I tried setting > > mail_drop_priv_before_exec = yes > > as you suggested, to generate a core dump, but if it's dumping core > I can't find it anywhere. dovecot was started from /var/tmp and > I have verified that the running dovecot and dovecot-auth processes > have /var/tmp as a working directory. Does everyone have write access to that directory then? It's the imap process that needs it.. Or maybe you have just disabled core dumping? Dovecot uses the ulimit -c that was active when dovecot was started. > I also continue to see sporadic "(imap) returned error 89" with this > version and with 0.99.8.1 Without more specific error above it? From mem@mv.mv.com Tue Apr 15 18:56:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 18:56:55 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id CA381238C9 for ; Tue, 15 Apr 2003 18:56:54 +0300 (EEST) Received: (qmail 1764 invoked by uid 101); 15 Apr 2003 11:56:53 -0400 From: "Mark E. Mallett" Date: Tue, 15 Apr 2003 11:56:53 -0400 To: Timo Sirainen Cc: "Mark E. Mallett" , dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9-test3 Message-ID: <20030415155653.GD16705@iridium.mv.net> References: <1050159872.25107.483.camel@hurina> <20030415043811.GA24366@iridium.mv.net> <20030415154827.GB18955@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030415154827.GB18955@irccrew.org> User-Agent: Mutt/1.4.1i X-archive-position: 578 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 581 Status: O Content-Length: 2205 > > > > Apr 14 23:48:12 mercury dovecot: child 25983 (imap) killed with signal 11 > > Apr 14 23:48:12 mercury dovecot: child 25992 (imap) killed with signal 11 > > Apr 14 23:48:14 mercury dovecot: child 26034 (imap) killed with signal 11 > > Could these be the FETCH MIME crashes that Evolution caused? What clients do > you mostly have anyway? It could be. I'll try the test4 and see what it reports. I generally stage the installation through a test machine and my rather low-volume tests to that machine do not show these failures. So there probably is some difference between my tests and other user accesses. > > In fact it appears that all examples of "Corrupted index" are pop3 > > instances, and all examples of "signal 11" are imap.. > > Are you sure you rebuilt/reinstalled the pop3 binary? I haven't actually > tried pop3 at all for a long time, but it shares all the backend code with > imap. Very sure.. Another difference that occured to me: I built the recent -test versions with the libiconv library, and the previous ones without. This would seem (from my naive perspective) to also be a difference between pop3 and imap code paths. > > I tried setting > > > > mail_drop_priv_before_exec = yes > > > > as you suggested, to generate a core dump, but if it's dumping core > > I can't find it anywhere. dovecot was started from /var/tmp and > > I have verified that the running dovecot and dovecot-auth processes > > have /var/tmp as a working directory. > > Does everyone have write access to that directory then? It's the imap > process that needs it.. Or maybe you have just disabled core dumping? > Dovecot uses the ulimit -c that was active when dovecot was started. I started it from /var/tmp to help with the core dumping (because that is indeed a directory that everybody can write to). I didn't mention it but I did indeed look at the dovecot process limits (via "rlimit") to verify that it did not have a restricted coredump limit. > > I also continue to see sporadic "(imap) returned error 89" with this > > version and with 0.99.8.1 > > Without more specific error above it? Not that I have been able to find.. i.e. no correlation with the pid given. mm From dom@cus.org.uk Tue Apr 15 19:00:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 19:00:34 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from cus.org.uk (host213-106-240-81.no-dns-yet.ntli.net [213.106.240.81]) by danu.procontrol.fi (Postfix) with ESMTP id 71686238C9 for ; Tue, 15 Apr 2003 19:00:34 +0300 (EEST) Received: from cus.org.uk (localhost.cus.org.uk [127.0.0.1]) by cus.org.uk (8.12.6/8.11.3) with ESMTP id h3FG0XLX088990 for ; Tue, 15 Apr 2003 17:00:33 +0100 (BST) (envelope-from dom@cus.org.uk) Received: (from dom@localhost) by cus.org.uk (8.12.6/8.12.6/Submit) id h3FG0WQZ088989 for dovecot@procontrol.fi; Tue, 15 Apr 2003 17:00:32 +0100 (BST) Date: Tue, 15 Apr 2003 17:00:32 +0100 From: Dominic Marks To: dovecot@procontrol.fi Subject: [dovecot] Group ID validation and FreeBSD Message-ID: <20030415160032.GA88602@cus.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-archive-position: 579 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dom@cus.org.uk Precedence: bulk X-list: dovecot X-UID: 582 Status: O Content-Length: 1139 Hey, I've been working on making the Dovecot FreeBSD port resemble something which actually works this weekend, it's now much improved - one thing that I did notice is that Dovecot validates a users GID and will not accept a group id of 0. In FreeBSD the group wheel has a the id 0 and only members of the wheel group are allowed to use su and become root. Consequently there are non-root users who have group id's of 0. When you try and open the mailbox of such a user with Dovecot the connection is killed immediately. It would be excellent to have an option in dovecot.conf along the lines of allow_zero_gid which would disable these checks. From a quick look at the source I can see that the validation is being done in src/master/mail-process.c and that src/lib/restrict-access.c is also involved. If I can get a working patch ready quickly I'll pass it along. If anyone would like to take a look at the port you can get a copy at the following address: http://cus.org.uk/~dom/dovecot-0.99.8.1.shar.gz Hopefully this will go into FreeBSD CVS quite soon. Thanks, -- Dominic From overflow@eurielec.etsit.upm.es Tue Apr 15 19:25:23 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 19:25:23 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from eurielec.etsit.upm.es (uno.eurielec.etsit.upm.es [138.100.31.227]) by danu.procontrol.fi (Postfix) with ESMTP id 80C2E238D2 for ; Tue, 15 Apr 2003 19:25:23 +0300 (EEST) Received: from dos.eurielec.etsit.upm.es (dos.eurielec.etsit.upm.es [138.100.31.228]) by eurielec.etsit.upm.es (Postfix) with SMTP id E0919DD8 for ; Tue, 15 Apr 2003 18:29:27 +0200 (CEST) Received: by dos.eurielec.etsit.upm.es (sSMTP sendmail emulation); Tue, 15 Apr 2003 18:25:13 +0200 Date: Tue, 15 Apr 2003 18:25:13 +0200 From: Jaime Medrano To: dovecot@procontrol.fi Subject: [dovecot] Shadow password file Message-ID: <20030415162513.GA2068@eurielec.etsit.upm.es> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.4i X-archive-position: 580 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: overflow@eurielec.etsit.upm.es Precedence: bulk X-list: dovecot X-UID: 583 Status: O ¿Is there any way to make dovecot to take the passwords from a file with a shadow password format? I've tried with the passwd-file auth plugin, but it complains that users have uid=0 Thanks in advance, Jaime Medrano From mem@mv.mv.com Tue Apr 15 19:28:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 19:28:17 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 4025E238D2 for ; Tue, 15 Apr 2003 19:28:17 +0300 (EEST) Received: (qmail 24117 invoked by uid 101); 15 Apr 2003 12:28:16 -0400 From: "Mark E. Mallett" Date: Tue, 15 Apr 2003 12:28:16 -0400 To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9-test4 Message-ID: <20030415162816.GF16705@iridium.mv.net> References: <1050412392.28255.423.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1050412392.28255.423.camel@hurina> User-Agent: Mutt/1.4.1i X-archive-position: 581 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 584 Status: O I tried installing test4, got the same problems as before (Corrupted folder messages, continuous "child xxxx (imap) killed with signal 11" messages coming fast and furious-- which is curious because there just aren't that many imap connections coming in). I put back *just* the pop3 and imap images from the 0.99.8.1 release (and left the newer dovecot, -auth, and -login images installed)- this hybrid runs OK. (I hope there are no issues mixing them this way.) Now here is an odd thing: If I run with the new imap image and the older pop3 image (from 0.99.8.1), I see none of these new errors. If I run with the new pop3 image and the older imap image, I see all of the new errors (including the rapid "imap killed with signal 11" messages). Still no coredumps.. are these phantom imap children? mm From mem@mv.mv.com Tue Apr 15 19:45:45 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 19:45:45 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 8768D238D2 for ; Tue, 15 Apr 2003 19:45:45 +0300 (EEST) Received: (qmail 6564 invoked by uid 101); 15 Apr 2003 12:45:44 -0400 From: "Mark E. Mallett" Date: Tue, 15 Apr 2003 12:45:43 -0400 To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9-test4 Message-ID: <20030415164543.GA5821@iridium.mv.net> References: <1050412392.28255.423.camel@hurina> <20030415162816.GF16705@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030415162816.GF16705@iridium.mv.net> User-Agent: Mutt/1.4.1i X-archive-position: 582 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 585 Status: O > > If I run with the new pop3 image and the older imap image, I see > all of the new errors (including the rapid "imap killed with signal 11" > messages). > > Still no coredumps.. are these phantom imap children? Oh-- I see that the "imap" process type name is generic for either mail program. So all this is likely pop3 stuff. mm From lfarkas@bnap.hu Tue Apr 15 20:21:22 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 20:21:22 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id EF26E238C9 for ; Tue, 15 Apr 2003 20:21:21 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 13FBE754003 for ; Tue, 15 Apr 2003 19:21:51 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 4E4093EEE for ; Tue, 15 Apr 2003 19:21:20 +0200 (CEST) Message-ID: <3E9C3F8F.2050006@bnap.hu> Date: Tue, 15 Apr 2003 19:21:19 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] current cvs Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 583 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 586 Status: O Content-Length: 3849 hi, so after upgrade to the current cvs all of our problem disappear:-) but we don't have time to test the ssl part... although after I compile and install the new dovecot I stop it I do a -------------------- find /home/*/Maildir -name '.imap*' -exec rm {} \; find /home/*/Maildir -name 'dovecot-uidlist' -exec rm {} \; find /home/*/Maildir -name 'msgid.cache' -exec rm {} \; find /home/*/Maildir -name '.customflags' -exec rm {}\; -------------------- just to be sure that we use a fresh version and no other problem can be caused by the old index or any other cached files. this was a BIG mistake!!! we've got about 300 users and about 100 online at the same time. after a two minutes break (while I reinstall and delete) every user check his mail which casue a load about 90!!! the cpu usage 1-2% but the avarage load was 90 (curently about 0.22)! the reason was IO. we have to stop imap and wait for a while... I don't know the exact reason bu I assume dovecot is regenerate everybody's index a other cache at the same time. is there any way to reduce the possible number of IO load? this would be useful if never happend again!:-) this happend around 4:40. the output of sar -b: -------------------- 03:00:00 PM tps rtps wtps bread/s bwrtn/s 03:10:00 PM 48.18 29.19 18.99 1456.53 771.29 03:20:00 PM 41.66 25.80 15.86 1054.88 830.05 03:30:00 PM 42.64 25.67 16.97 1223.03 759.77 03:40:00 PM 44.98 31.95 13.03 1959.15 467.40 03:50:00 PM 26.68 14.63 12.05 741.48 424.12 04:00:00 PM 25.80 11.70 14.10 516.21 450.04 04:10:00 PM 59.55 34.91 24.64 1755.07 939.11 04:20:00 PM 95.98 61.15 34.83 4453.24 1563.25 04:30:00 PM 95.08 55.45 39.63 2182.22 1591.56 04:40:00 PM 168.85 145.99 22.86 11155.73 1037.25 04:50:00 PM 135.98 106.50 29.48 7908.21 1604.76 05:00:00 PM 125.87 97.65 28.23 5876.03 1060.50 05:10:00 PM 80.83 62.92 17.90 4321.82 590.19 05:20:00 PM 102.04 77.65 24.40 4907.27 1076.92 05:30:00 PM 129.04 106.58 22.46 6387.18 883.13 05:40:00 PM 89.44 73.20 16.24 4905.64 782.94 05:50:00 PM 88.23 73.16 15.06 5539.93 965.34 06:00:00 PM 92.49 72.67 19.81 5486.25 692.18 06:10:00 PM 45.24 32.82 12.42 1711.35 618.31 06:20:00 PM 42.17 28.16 14.01 960.11 622.33 06:30:00 PM 29.90 20.24 9.66 1538.27 376.17 06:40:00 PM 25.89 12.14 13.74 796.73 833.25 06:50:00 PM 20.50 4.98 15.52 264.91 993.62 07:00:00 PM 15.08 7.57 7.52 453.41 282.63 -------------------- the output of sar -d -------------------- 04:10:00 PM dev22-3 0.00 0.00 04:10:00 PM dev33-0 1.76 109.55 04:10:00 PM dev34-0 8.51 919.94 04:20:00 PM dev3-0 8.56 183.93 04:20:00 PM dev22-2 67.62 3798.02 04:20:00 PM dev22-3 0.00 0.00 04:20:00 PM dev33-0 4.80 463.81 04:20:00 PM dev34-0 15.01 1570.73 04:30:00 PM dev3-0 4.40 126.63 04:30:00 PM dev22-2 77.02 2440.08 04:30:00 PM dev22-3 0.00 0.00 04:30:00 PM dev33-0 1.94 124.80 04:30:00 PM dev34-0 11.73 1082.28 04:40:00 PM dev3-0 4.78 124.56 04:40:00 PM dev22-2 137.27 10306.18 04:40:00 PM dev22-3 0.00 0.00 04:40:00 PM dev33-0 13.50 410.44 04:40:00 PM dev34-0 13.29 1351.80 04:50:00 PM dev3-0 6.33 194.27 04:50:00 PM dev22-2 111.50 7961.44 04:50:00 PM dev22-3 0.00 0.00 04:50:00 PM dev33-0 5.64 156.51 -------------------- -- Levente "Si vis pacem para bellum!" From tss@iki.fi Tue Apr 15 20:42:23 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 20:42:23 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 39BE9238C9 for ; Tue, 15 Apr 2003 20:42:23 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id A9A425E017F5; Tue, 15 Apr 2003 20:42:17 +0300 (EEST) Subject: [dovecot] Re: current cvs From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <3E9C3F8F.2050006@bnap.hu> References: <3E9C3F8F.2050006@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050428537.16120.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 15 Apr 2003 20:42:17 +0300 X-archive-position: 584 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 587 Status: O Content-Length: 1316 On Tue, 2003-04-15 at 20:21, Farkas Levente wrote: > hi, > so after upgrade to the current cvs all of our problem disappear:-) > but we don't have time to test the ssl part... > although after I compile and install the new dovecot I stop it I do a > -------------------- > find /home/*/Maildir -name '.imap*' -exec rm {} \; This is fine, but as you noticed regenerating indexes isn't very fast :) Also currently Dovecot doesn't behave too nicely if the index gets deleted while it was open. > find /home/*/Maildir -name 'dovecot-uidlist' -exec rm {} \; There shouldn't be any need to do this. Point of it was that the UIDs will be remembered if indexes are deleted so client doesn't have to invalidate local cache. > find /home/*/Maildir -name 'msgid.cache' -exec rm {} \; Not created by Dovecot. > find /home/*/Maildir -name '.customflags' -exec rm {}\; Should never be deleted with maildir. This contains user-defined flag names so it could cause some data loss. > I don't know the exact reason bu I assume dovecot is regenerate > everybody's index a other cache at the same time. is there any way to > reduce the possible number of IO load? this would be useful if never > happend again!:-) Currently it re-reads all the mails in the directory and indexes them. I'll make this configurable some day. From dom@cus.org.uk Tue Apr 15 20:45:24 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 20:45:24 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from cus.org.uk (host213-106-240-81.no-dns-yet.ntli.net [213.106.240.81]) by danu.procontrol.fi (Postfix) with ESMTP id 7FEAD238C9 for ; Tue, 15 Apr 2003 20:45:22 +0300 (EEST) Received: from cus.org.uk (localhost.cus.org.uk [127.0.0.1]) by cus.org.uk (8.12.6/8.11.3) with ESMTP id h3FHjLLX091355 for ; Tue, 15 Apr 2003 18:45:21 +0100 (BST) (envelope-from dom@cus.org.uk) Received: (from dom@localhost) by cus.org.uk (8.12.6/8.12.6/Submit) id h3FHjLah091354 for dovecot@procontrol.fi; Tue, 15 Apr 2003 18:45:21 +0100 (BST) Date: Tue, 15 Apr 2003 18:45:21 +0100 From: Dominic Marks To: dovecot@procontrol.fi Subject: [dovecot] PATCH allow_zero_gid option Message-ID: <20030415174521.GA90876@cus.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-archive-position: 585 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dom@cus.org.uk Precedence: bulk X-list: dovecot X-UID: 588 Status: O Content-Length: 7048 Hey, Well, that was easy :-) Patch against CVS follows: Summary: Created a boolean option allow_zero_gid, when set to yes it will allow logins from users whose group id is zero. Tested with KMail 3.1.1 on FreeBSD 4.8. I'm not sure if my method for passing the boolean via the environment is correct, it looks a little on the ugly side. Index: src/lib/restrict-access.c =================================================================== RCS file: /home/cvs/dovecot/src/lib/restrict-access.c,v retrieving revision 1.10 diff -u -3 -p -r1.10 restrict-access.c --- src/lib/restrict-access.c 4 Mar 2003 04:00:13 -0000 1.10 +++ src/lib/restrict-access.c 15 Apr 2003 17:37:26 -0000 @@ -31,12 +31,14 @@ #include void restrict_access_set_env(const char *user, uid_t uid, gid_t gid, - const char *chroot_dir) + const char *chroot_dir, int allow_zg) { if (user != NULL && *user != '\0') env_put(t_strconcat("RESTRICT_USER=", user, NULL)); if (chroot_dir != NULL && *chroot_dir != '\0') env_put(t_strconcat("RESTRICT_CHROOT=", chroot_dir, NULL)); + if (allow_zg == TRUE) + env_put(t_strdup("ALLOW_ZERO_GID=TRUE")); env_put(t_strdup_printf("RESTRICT_SETUID=%s", dec2str(uid))); env_put(t_strdup_printf("RESTRICT_SETGID=%s", dec2str(gid))); @@ -45,6 +47,7 @@ void restrict_access_set_env(const char void restrict_access_by_env(int disallow_root) { const char *env; + int allow_zero_gid; gid_t gid; uid_t uid; @@ -97,8 +100,14 @@ void restrict_access_by_env(int disallow i_fatal("We couldn't drop root privileges"); } - if ((gid != 0 && uid != 0) || disallow_root) { + /* allow users with zero group id permission for BSD */ + env = getenv("ALLOW_ZERO_GID"); + allow_zero_gid = env == NULL ? FALSE : TRUE; + + if (allow_zero_gid == FALSE && + ((gid != 0 && uid != 0) || disallow_root)) { if (getgid() == 0 || getegid() == 0 || setgid(0) == 0) i_fatal("We couldn't drop root group privileges"); } + } Index: src/lib/restrict-access.h =================================================================== RCS file: /home/cvs/dovecot/src/lib/restrict-access.h,v retrieving revision 1.4 diff -u -3 -p -r1.4 restrict-access.h --- src/lib/restrict-access.h 4 Mar 2003 04:00:13 -0000 1.4 +++ src/lib/restrict-access.h 15 Apr 2003 17:37:26 -0000 @@ -4,7 +4,7 @@ /* set environment variables so they can be read with restrict_access_by_env() */ void restrict_access_set_env(const char *user, uid_t uid, gid_t gid, - const char *chroot_dir); + const char *chroot_dir, int allow_zg); /* chroot, setuid() and setgid() based on environment variables. If disallow_roots is TRUE, we'll kill ourself if we didn't have the Index: src/master/auth-process.c =================================================================== RCS file: /home/cvs/dovecot/src/master/auth-process.c,v retrieving revision 1.41 diff -u -3 -p -r1.41 auth-process.c --- src/master/auth-process.c 2 Apr 2003 02:09:41 -0000 1.41 +++ src/master/auth-process.c 15 Apr 2003 17:37:27 -0000 @@ -307,7 +307,7 @@ static pid_t create_auth_process(struct /* setup access environment */ restrict_access_set_env(group->set->user, pwd->pw_uid, pwd->pw_gid, - group->set->chroot); + group->set->chroot, set->allow_zero_gid); /* set other environment */ env_put(t_strconcat("AUTH_PROCESS=", dec2str(getpid()), NULL)); Index: src/master/login-process.c =================================================================== RCS file: /home/cvs/dovecot/src/master/login-process.c,v retrieving revision 1.40 diff -u -3 -p -r1.40 login-process.c --- src/master/login-process.c 15 Apr 2003 16:58:48 -0000 1.40 +++ src/master/login-process.c 15 Apr 2003 17:37:27 -0000 @@ -384,7 +384,8 @@ static void login_process_init_env(struc clean_child_process() since it clears environment */ restrict_access_set_env(group->set->user, group->set->uid, set->login_gid, - set->login_chroot ? set->login_dir : NULL); + set->login_chroot ? set->login_dir : NULL, + set->allow_zero_gid); env_put("DOVECOT_MASTER=1"); Index: src/master/mail-process.c =================================================================== RCS file: /home/cvs/dovecot/src/master/mail-process.c,v retrieving revision 1.13 diff -u -3 -p -r1.13 mail-process.c --- src/master/mail-process.c 15 Apr 2003 16:58:48 -0000 1.13 +++ src/master/mail-process.c 15 Apr 2003 17:37:28 -0000 @@ -25,7 +25,7 @@ static int validate_uid_gid(uid_t uid, g return FALSE; } - if (uid != 0 && gid == 0) { + if (set->allow_zero_gid == FALSE && uid != 0 && gid == 0) { i_error("mail process isn't allowed to be in group 0"); return FALSE; } @@ -38,8 +38,9 @@ static int validate_uid_gid(uid_t uid, g return FALSE; } - if (gid < (gid_t)set->first_valid_gid || - (set->last_valid_gid != 0 && gid > (gid_t)set->last_valid_gid)) { + if (set->allow_zero_gid == FALSE && + (gid < (gid_t)set->first_valid_gid || + (set->last_valid_gid != 0 && gid > (gid_t)set->last_valid_gid))) { i_error("mail process isn't allowed to use " "GID %s (UID is %s)", dec2str(gid), dec2str(uid)); return FALSE; @@ -150,7 +151,8 @@ int create_mail_process(int socket, stru (paranoia about filling up environment without noticing) */ restrict_access_set_env(data + reply->system_user_idx, reply->uid, reply->gid, - reply->chroot ? data + reply->home_idx : NULL); + reply->chroot ? data + reply->home_idx : NULL, + set->allow_zero_gid); restrict_process_size(process_size, (unsigned int)-1); Index: src/master/master-settings.c =================================================================== RCS file: /home/cvs/dovecot/src/master/master-settings.c,v retrieving revision 1.16 diff -u -3 -p -r1.16 master-settings.c --- src/master/master-settings.c 2 Apr 2003 02:09:41 -0000 1.16 +++ src/master/master-settings.c 15 Apr 2003 17:37:28 -0000 @@ -46,6 +46,7 @@ static struct setting_def setting_defs[] DEF(SET_INT, max_mail_processes), DEF(SET_BOOL, verbose_proctitle), + DEF(SET_BOOL, allow_zero_gid), DEF(SET_INT, first_valid_uid), DEF(SET_INT, last_valid_uid), DEF(SET_INT, first_valid_gid), @@ -153,6 +154,7 @@ struct settings default_settings = { MEMBER(max_mail_processes) 1024, MEMBER(verbose_proctitle) FALSE, + MEMBER(allow_zero_gid) FALSE, MEMBER(first_valid_uid) 500, MEMBER(last_valid_uid) 0, MEMBER(first_valid_gid) 1, Index: src/master/master-settings.h =================================================================== RCS file: /home/cvs/dovecot/src/master/master-settings.h,v retrieving revision 1.10 diff -u -3 -p -r1.10 master-settings.h --- src/master/master-settings.h 2 Apr 2003 02:09:41 -0000 1.10 +++ src/master/master-settings.h 15 Apr 2003 17:37:29 -0000 @@ -32,6 +32,7 @@ struct settings { unsigned int max_mail_processes; int verbose_proctitle; + int allow_zero_gid; unsigned int first_valid_uid, last_valid_uid; unsigned int first_valid_gid, last_valid_gid; Thanks, -- Dominic From tss@iki.fi Tue Apr 15 20:48:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 20:48:04 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B3017238C9 for ; Tue, 15 Apr 2003 20:48:04 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 437725E017F5; Tue, 15 Apr 2003 20:48:04 +0300 (EEST) Subject: [dovecot] Re: Shadow password file From: Timo Sirainen To: Jaime Medrano Cc: dovecot@procontrol.fi In-Reply-To: <20030415162513.GA2068@eurielec.etsit.upm.es> References: <20030415162513.GA2068@eurielec.etsit.upm.es> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Organization: Message-Id: <1050428884.16120.15.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 15 Apr 2003 20:48:04 +0300 X-archive-position: 586 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 589 Status: O On Tue, 2003-04-15 at 19:25, Jaime Medrano wrote: > =BFIs there any way to make dovecot to take the passwords from a file wit= h > a shadow password format? >=20 > I've tried with the passwd-file auth plugin, but it complains that users > have uid=3D0 There's two separate authentication parts. "passdb" where dovecot gets passwords and "userdb" where uid/gid/homedir/etc are stored. You should be able to use shadow file with passwd-file for passdb, but you have to use something else for userdb. "static" might be enough for you. From tss@iki.fi Tue Apr 15 20:54:37 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 20:54:37 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 70F80238D3 for ; Tue, 15 Apr 2003 20:54:37 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id E6CFF5E017F5; Tue, 15 Apr 2003 20:54:36 +0300 (EEST) Subject: [dovecot] Re: PATCH allow_zero_gid option From: Timo Sirainen To: Dominic Marks Cc: dovecot@procontrol.fi In-Reply-To: <20030415174521.GA90876@cus.org.uk> References: <20030415174521.GA90876@cus.org.uk> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050429276.16120.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 15 Apr 2003 20:54:36 +0300 X-archive-position: 587 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 590 Status: O On Tue, 2003-04-15 at 20:45, Dominic Marks wrote: > Hey, > > Well, that was easy :-) Patch against CVS follows: > > Summary: > Created a boolean option allow_zero_gid, when set to yes it will allow > logins from users whose group id is zero. Tested with KMail 3.1.1 on > FreeBSD 4.8. I'm not sure if my method for passing the boolean via the > environment is correct, it looks a little on the ugly side. Well, almost fine, but I'll move the allow_zg only to restrict_access_by_env() like disallow_root is done. So this setting doesn't affect created auth or login processes. From tss@iki.fi Tue Apr 15 20:59:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Apr 2003 20:59:36 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 70A08238D3 for ; Tue, 15 Apr 2003 20:59:36 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 116E45E017F5; Tue, 15 Apr 2003 20:59:36 +0300 (EEST) Subject: [dovecot] Re: PATCH allow_zero_gid option From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1050429276.16120.22.camel@hurina> References: <20030415174521.GA90876@cus.org.uk> <1050429276.16120.22.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050429575.16118.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 15 Apr 2003 20:59:35 +0300 X-archive-position: 588 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 591 Status: O On Tue, 2003-04-15 at 20:54, Timo Sirainen wrote: > Well, almost fine, but I'll move the allow_zg only to > restrict_access_by_env() like disallow_root is done. So this setting > doesn't affect created auth or login processes. Uhm. No, you had done that too but .. anyway, a bit cleaner :) Also I don't think you should have allow_zero_gid setting for login process. That really should be run under fully nonprivileged UID. From mem@mv.mv.com Wed Apr 16 00:07:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 00:07:39 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id BA9C4238D2 for ; Wed, 16 Apr 2003 00:07:30 +0300 (EEST) Received: (qmail 21523 invoked by uid 101); 15 Apr 2003 17:07:29 -0400 From: "Mark E. Mallett" Date: Tue, 15 Apr 2003 17:07:29 -0400 To: dovecot@procontrol.fi Subject: [dovecot] pop3 coredump Message-ID: <20030415210729.GA7000@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-archive-position: 589 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 592 Status: O Content-Length: 9286 Hi- I was able to get a coredump out of the new pop3 (from 0.99.9-test4) by attempting to simulate the execution environment and simply running the pop3 program. Running the older pop3 from 0.99.8.1 works fine, repeatedly: % /usr/local/libexec/dovecot/pop3 quit +OK Logging out. However running the new one: % /usr/local/libexec/dovecot/pop3.new pop3(user9): Error: Corrupted index file /users/48/user9/Maildir/.INBOX/.imap.index: index.next_uid (4539) > uidlist.next_uid (4000) Segmentation fault (core dumped) It doesn't always dump core even with this message. The error message is not always the same, but it's usually what's above. Simply repeating the invocation a number of times I also saw: pop3(user9): Error: Corrupted index file (in-memory index for /users/48/user9/Maildir): Filename mismatch for UID 1: 1050440153.17005.mercury.mv.net vs 1050437948.5418.mercury.mv.net Here's some gdb output corresponding to the coredump above. -mm- Script started on Tue Apr 15 16:51:28 2003 % gdb pop3/pop3 pop3.core ... Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/local/lib/libiconv.so.2...done. Reading symbols from /shlib/libgcc.so.1...done. Reading symbols from /shlib/libc.so.2...done. Reading symbols from /shlib/ld-bsdi.so...done. #0 0x0 in ?? () (gdb) bt #0 0x0 in ?? () #1 0x8053439 in index_storage_init (storage=0x808f000, box=0x8080658, index=0x808c200, name=0x807660e "INBOX", readonly=0, fast=0) at index-storage.c:264 #2 0x804b8e0 in maildir_open (storage=0x808f000, name=0x807660e "INBOX", readonly=0, fast=0) at maildir-storage.c:239 #3 0x804ba20 in maildir_open_mailbox (storage=0x808f000, name=0x80765b1 "INBOX", readonly=0, fast=0) at maildir-storage.c:288 #4 0x804b1c7 in main_init () at main.c:98 #5 0x804b269 in main (argc=1, argv=0x8047d3c, envp=0x8047d44) at main.c:132 #6 0x8049cae in __start () (gdb) up 1 #1 0x8053439 in index_storage_init (storage=0x808f000, box=0x8080658, index=0x808c200, name=0x807660e "INBOX", readonly=0, fast=0) at index-storage.c:264 264 storage->callbacks->notify_no(&ibox->box, (gdb) l 259 if (!index->open(index, flags)) 260 break; 261 262 if (INDEX_IS_IN_MEMORY(index) && 263 storage->index_dir != NULL) { 264 storage->callbacks->notify_no(&ibox->box, 265 "Couldn't use index files", 266 storage->callback_context); 267 } 268 } (gdb) p index $1 = (struct mail_index *) 0x808c200 (gdb) p *index $2 = {open = 0x8054590 , free = 0x8054abc , set_lock = 0x805c874 , try_lock = 0x805c88c , set_lock_notify_callback = 0x805c8a4 , rebuild = 0x8054f20 , fsck = 0x805de50 , sync_and_lock = 0x8055db4 , get_header = 0x805c928 , lookup = 0x805c968 , next = 0x805cac0 , lookup_uid_range = 0x805cb48 , lookup_field = 0x805cc58 , lookup_field_raw = 0x805ccac , cache_fields_later = 0x805cd70 , open_mail = 0x8054de0 , get_internal_date = 0x8054afc , expunge = 0x805d078 , update_flags = 0x8054b6c , append_begin = 0x805d3ec , append_end = 0x805d4e4 , append_abort = 0x805d590 , update_begin = 0x805f9b0 , update_end = 0x805ff68 , update_abort = 0x8060050 , update_field = 0x806022c , update_field_raw = 0x806025c , get_last_error = 0x805d618 , get_last_error_text = 0x805d678 , data = 0x80821a0, tree = 0x80900c0, modifylog = 0x808d200, custom_flags = 0x808d100, dir = 0x8090000 "/users/48/user9/Maildir/.INBOX", filepath = 0x8090040 "(in-memory index for /users/48/user9/Maildir)", mailbox_path = 0x8082160 "/users/48/user9/Maildir", custom_flags_dir = 0x0, default_cache_fields = 0, never_cache_fields = 0, indexid = 1050439124, sync_id = 6, excl_lock_counter = 1, mbox_fd = 0, mbox_stream = 0x0, mbox_lock_type = MAIL_LOCK_UNLOCK, mbox_dotlock = { dev = 0, ino = 0, mtime = 0}, mbox_lock_counter = 0, mbox_sync_counter = 0, mbox_size = 0, mbox_dev = 0, mbox_ino = 0, uidlist_dev = 18875392, uidlist_ino = 1835546, maildir_lock_fd = -1, fd = -1, error = 0x0, mmap_base = 0x20073000, mmap_used_length = 264, mmap_full_length = 1608, header = 0x20073000, lock_type = MAIL_LOCK_EXCLUSIVE, file_sync_stamp = 1050438868, first_recent_uid = 1, lock_notify_cb = 0x8053238 , lock_notify_context = 0x808c400, set_flags = 0, set_cache_fields = 0, anon_mmap = 1, opened = 0, rebuilding = 0, mail_read_mmaped = 0, inconsistent = 0, nodiskspace = 0, index_lock_timeout = 0, allow_new_custom_flags = 0, mailbox_readonly = 0, mailbox_lock_timeout = 0} (gdb) p storage $3 = (struct mail_storage *) 0x808f000 (gdb) p *storage $5 = {name = 0x8076805 "maildir", hierarchy_sep = 46 '.', create = 0x804b2c0 , free = 0x804b428 , autodetect = 0x804b480 , set_callbacks = 0x80535e4 , open_mailbox = 0x804b940 , create_mailbox = 0x804ba5c , delete_mailbox = 0x804bb08 , rename_mailbox = 0x804bea4 , list_mailbox_init = 0x804c624 , list_mailbox_deinit = 0x804c800 , list_mailbox_next = 0x804cc48 , set_subscribed = 0x8064594 , get_mailbox_name_status = 0x804bffc , get_last_error = 0x805455c , dir = 0x8082100 "/users/48/user9/Maildir", inbox_file = 0x0, index_dir = 0x8082120 "/users/48/user9/Maildir", user = 0x808e050 "user9", error = 0x0, callbacks = 0x8082140, callback_context = 0x0, syntax_error = 0} (gdb) p ibox $6 = (struct index_mailbox *) 0x808c400 (gdb) p *ibox $7 = {box = {name = 0x808e070 "INBOX", storage = 0x808f000, close = 0x805359c , get_status = 0x8052ee4 , sync = 0x8053b94 , auto_sync = 0x804c0c8 , expunge = 0x804fa64 , update_flags = 0x8053d58 , copy = 0x804c3e4 , fetch_init = 0x804fb00 , fetch_deinit = 0x804fbe8 , fetch_next = 0x804fc70 , fetch_uid = 0x804fd5c , fetch_seq = 0x804fdc0 , search_get_sorting = 0x8052af4 , search_init = 0x8052b08 , search_deinit = 0x8052be0 , search_next = 0x8052ca0 , save_init = 0x804cf4c , save_deinit = 0x804cfe0 , save_next = 0x804ce04 , is_inconsistency_error = 0x8054578 , readonly = 0, allow_custom_flags = 0, inconsistent = 0}, expunge_locked = 0, index = 0x808c200, autosync_to = 0x0, autosync_files = 0x0, autosync_type = MAILBOX_SYNC_NONE, sync_last_check = 0, min_newmail_notify_interval = 0, fetch_mail = {mail = {seq = 0, uid = 0, seen_updated = 0, get_flags = 0, get_parts = 0, get_received_date = 0, get_date = 0, get_size = 0, get_header = 0, get_address = 0, get_first_mailbox = 0, get_stream = 0, get_special = 0}, data = {flags = { flags = 0, custom_flags = 0x0, custom_flags_count = 0}, received_date = 0, size = 0, sent_time = 0, sent_timezone = 0, headers = 0x0, parts = 0x0, envelope = 0x0, body = 0x0, bodystructure = 0x0, envelope_data = 0x0, rec = 0x0, stream = 0x0, hdr_size = {physical_size = 0, virtual_size = 0, lines = 0}, body_size = { physical_size = 0, virtual_size = 0, lines = 0}, parse_header = 0, save_sent_time = 0, save_envelope = 0, hdr_size_set = 0, body_size_set = 0}, pool = 0x0, ibox = 0x0, header_buf = 0x0, wanted_fields = 0, wanted_headers = 0x0}, synced_messages_count = 0, next_lock_notify = 1050439154, last_notify_type = MAIL_LOCK_NOTIFY_MAILBOX_ABORT, sent_diskspace_warning = 0} (gdb) quit % exit Script done on Tue Apr 15 16:53:06 2003 From charlieb@e-smith.com Wed Apr 16 00:58:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 01:29:56 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 8560A23993 for ; Wed, 16 Apr 2003 00:58:20 +0300 (EEST) Received: (qmail 713 invoked by uid 404); 15 Apr 2003 21:58:19 -0000 Received: from charlieb@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 15 Apr 2003 17:58:19 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 15 Apr 2003 21:58:19 -0000 Received: (qmail 6226 invoked from network); 15 Apr 2003 21:58:19 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 15 Apr 2003 21:58:19 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 15 Apr 2003 22:03:27 -0000 Date: Tue, 15 Apr 2003 18:03:27 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Subject: [dovecot] Changing hierarchy separator to '/' Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 590 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb@e-smith.com Precedence: bulk X-list: dovecot X-UID: 593 Status: O From TODO: ... - maildir: change it to use '/' as hierarchy separator to allow '.' characters (for usernames in shared folders) ... Now changing the separator in the maildir-storage.c is trivial (even though it "can't" be changed :-), but fixing the resultant breakage in maildir-list.c needs a little more understanding. Timo, could you give me some pointers? I can see that I need to work out what imap_match_init() does. My motivation is to follow up on an earlier thread about reusing .mailboxlist files as .subscription files, preferably without rewriting them to replace the slashes with something else. Thanks -- Charlie From tss@iki.fi Wed Apr 16 02:17:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 02:17:21 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 200B923993 for ; Wed, 16 Apr 2003 02:17:21 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 88F8A5E017F5; Wed, 16 Apr 2003 02:17:20 +0300 (EEST) Subject: [dovecot] Re: pop3 coredump From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030415210729.GA7000@iridium.mv.net> References: <20030415210729.GA7000@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050448640.16342.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Apr 2003 02:17:20 +0300 X-archive-position: 591 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 594 Status: O On Wed, 2003-04-16 at 00:07, Mark E. Mallett wrote: > % /usr/local/libexec/dovecot/pop3.new > pop3(user9): Error: Corrupted index file > /users/48/user9/Maildir/.INBOX/.imap.index: index.next_uid (4539) > > uidlist.next_uid (4000) What if you delete the dovecot-uidlist file? Or the index files? Does it still do this? > #0 0x0 in ?? () > #1 0x8053439 in index_storage_init (storage=0x808f000, box=0x8080658, > index=0x808c200, name=0x807660e "INBOX", readonly=0, fast=0) > at index-storage.c:264 Thanks, this helps to fix the crash. It doesn't explain the "corrupted index file" messages though, except that they never get fixed because of this. From mem@mv.mv.com Wed Apr 16 02:35:09 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 02:35:09 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id B82CE23845 for ; Wed, 16 Apr 2003 02:35:08 +0300 (EEST) Received: (qmail 6449 invoked by uid 101); 15 Apr 2003 19:35:07 -0400 From: "Mark E. Mallett" Date: Tue, 15 Apr 2003 19:35:07 -0400 To: Timo Sirainen Cc: "Mark E. Mallett" , dovecot@procontrol.fi Subject: [dovecot] Re: pop3 coredump Message-ID: <20030415233507.GC20344@iridium.mv.net> References: <20030415210729.GA7000@iridium.mv.net> <1050448640.16342.14.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1050448640.16342.14.camel@hurina> User-Agent: Mutt/1.4.1i X-archive-position: 592 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 595 Status: O Content-Length: 1103 On Wed, Apr 16, 2003 at 02:17:20AM +0300, Timo Sirainen wrote: > On Wed, 2003-04-16 at 00:07, Mark E. Mallett wrote: > > % /usr/local/libexec/dovecot/pop3.new > > pop3(user9): Error: Corrupted index file > > /users/48/user9/Maildir/.INBOX/.imap.index: index.next_uid (4539) > > > uidlist.next_uid (4000) > > What if you delete the dovecot-uidlist file? Or the index files? Does it > still do this? If I rename dovecot-uidlist out of the way, it successfully builds a new one and no longer complains, and is happy on repeated invocations. If I put back the dovecot-uidlist, it is not happy again. However- the same is true of the .imap* files. If I move them out of the way (and leave the old dovecot-uidlist in place), the new pop3 is happy to build a new set and use them (again, on repeated invocations). If I move back the old .imap* files, the error is back. So- moving either of those helps. The older pop3 also seems happy to use the newly generated files. (but again it's also happy with the old ones). I don't know what happens if new mail comes in after the new files are generated. mm From tss@iki.fi Wed Apr 16 02:41:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 02:41:39 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7A72323845 for ; Wed, 16 Apr 2003 02:41:39 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 4A8695E017F5; Wed, 16 Apr 2003 02:41:39 +0300 (EEST) Subject: [dovecot] Re: pop3 coredump From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030415233507.GC20344@iridium.mv.net> References: <20030415210729.GA7000@iridium.mv.net> <1050448640.16342.14.camel@hurina> <20030415233507.GC20344@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050450098.16342.24.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Apr 2003 02:41:39 +0300 X-archive-position: 593 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 596 Status: O On Wed, 2003-04-16 at 02:35, Mark E. Mallett wrote: > If I rename dovecot-uidlist out of the way, it successfully builds a > new one and no longer complains, and is happy on repeated invocations. > If I put back the dovecot-uidlist, it is not happy again. > > However- the same is true of the .imap* files. If I move them out of > the way (and leave the old dovecot-uidlist in place), the new pop3 is > happy to build a new set and use them (again, on repeated invocations). > If I move back the old .imap* files, the error is back. > > So- moving either of those helps. OK, I think the problem is then just that Dovecot crashes before it has time to rebuild index file. And it's broken because previous -test releases broke it. > The older pop3 also seems happy to use the newly generated files. > (but again it's also happy with the old ones). That's because older versions didn't use the uidlist file at all. > I don't know what happens if new mail comes in after the new files > are generated. Probably works. From overflow@eurielec.etsit.upm.es Wed Apr 16 10:34:19 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 10:34:19 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from eurielec.etsit.upm.es (uno.eurielec.etsit.upm.es [138.100.31.227]) by danu.procontrol.fi (Postfix) with ESMTP id 5768823845 for ; Wed, 16 Apr 2003 10:34:19 +0300 (EEST) Received: from eurielec.etsit.upm.es (www.eurielec.etsit.upm.es [138.100.31.226]) by eurielec.etsit.upm.es (Postfix) with SMTP id C1636B3C; Wed, 16 Apr 2003 09:38:34 +0200 (CEST) Received: from 195.235.92.108 (SquirrelMail authenticated user overflow) by www.eurielec.etsit.upm.es with HTTP; Wed, 16 Apr 2003 09:32:03 +0200 (CEST) Message-ID: <54899.195.235.92.108.1050478323.squirrel@www.eurielec.etsit.upm.es> Date: Wed, 16 Apr 2003 09:32:03 +0200 (CEST) Subject: [dovecot] Re: Shadow password file From: "Jaime Medrano" To: In-Reply-To: <1050428884.16120.15.camel@hurina> References: <20030415162513.GA2068@eurielec.etsit.upm.es> <1050428884.16120.15.camel@hurina> X-Priority: 3 Importance: Normal X-MSMail-Priority: Normal Cc: X-Mailer: SquirrelMail (version 1.2.6) MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit X-archive-position: 594 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: overflow@eurielec.etsit.upm.es Precedence: bulk X-list: dovecot X-UID: 597 Status: O > On Tue, 2003-04-15 at 19:25, Jaime Medrano wrote: >> ¿Is there any way to make dovecot to take the passwords from a file >> with a shadow password format? >> >> I've tried with the passwd-file auth plugin, but it complains that >> users have uid=0 > > There's two separate authentication parts. "passdb" where dovecot gets > passwords and "userdb" where uid/gid/homedir/etc are stored. > > You should be able to use shadow file with passwd-file for passdb, but > you have to use something else for userdb. "static" might be enough for > you. The thing is I've got a server where imap users are the same of local users, but with different passwords. I've used for userdb, the passwd-file module with the passwd file, and the passwd module and both seem to work. However, when I use passwd-file for passdb with the shadow file where the imap passwords are stored I can see in the logs an error saying that every user has uid=0. From lfarkas@bnap.hu Wed Apr 16 11:35:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 11:35:10 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 003F02385F for ; Wed, 16 Apr 2003 11:35:09 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id BD863754014; Wed, 16 Apr 2003 10:35:38 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 093983EFA; Wed, 16 Apr 2003 10:34:50 +0200 (CEST) Message-ID: <3E9D15A9.2000901@bnap.hu> Date: Wed, 16 Apr 2003 10:34:49 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen , Dovecot List Subject: [dovecot] Re: current cvs References: <3E9C3F8F.2050006@bnap.hu> <1050428537.16120.8.camel@hurina> In-Reply-To: <1050428537.16120.8.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 595 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 598 Status: O Content-Length: 1804 Timo Sirainen wrote: > On Tue, 2003-04-15 at 20:21, Farkas Levente wrote: > >>hi, >>so after upgrade to the current cvs all of our problem disappear:-) >>but we don't have time to test the ssl part... >>although after I compile and install the new dovecot I stop it I do a >>-------------------- >>find /home/*/Maildir -name '.imap*' -exec rm {} \; > > > This is fine, but as you noticed regenerating indexes isn't very fast :) > Also currently Dovecot doesn't behave too nicely if the index gets > deleted while it was open. > > >>find /home/*/Maildir -name 'dovecot-uidlist' -exec rm {} \; > > > There shouldn't be any need to do this. Point of it was that the UIDs > will be remembered if indexes are deleted so client doesn't have to > invalidate local cache. > > >>find /home/*/Maildir -name 'msgid.cache' -exec rm {} \; > > > Not created by Dovecot. > > >>find /home/*/Maildir -name '.customflags' -exec rm {}\; > > > Should never be deleted with maildir. This contains user-defined flag > names so it could cause some data loss. > > >>I don't know the exact reason bu I assume dovecot is regenerate >>everybody's index a other cache at the same time. is there any way to >>reduce the possible number of IO load? this would be useful if never >>happend again!:-) > > > Currently it re-reads all the mails in the directory and indexes them. > I'll make this configurable some day. the whole mails or just the headers? as you know we've a lots of big mails so this makes a real different! ok so what is the best way to be sure that no cached information can confuse the new version? just: - stop dovecot - kill all imap process - find /home/*/Maildir -name '.imap*' -exec rm {} \; - start dovecot ? -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed Apr 16 11:58:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 11:58:16 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 3DF9E2385F for ; Wed, 16 Apr 2003 11:58:16 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 15A0075400C for ; Wed, 16 Apr 2003 10:58:52 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 772F33EFB for ; Wed, 16 Apr 2003 10:58:15 +0200 (CEST) Message-ID: <3E9D1B27.7090201@bnap.hu> Date: Wed, 16 Apr 2003 10:58:15 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] errors Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 596 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 599 Status: O hi, in the yesterday cvs, an internal error in the imap message appear in the client side and in the maillog: ------------------------- Apr 16 10:01:42 red imap(zgabor): Corrupted index file /home/zgabor/Maildir/.Lists.Bugtraq/.imap.index: Invalid seen messages count (284 < 285) Apr 16 10:01:43 red imap(zgabor): Corrupted index file /home/zgabor/Maildir/.Lists.Linux/.imap.index: Invalid seen messages count (191 < 192) Apr 16 10:01:44 red imap(zgabor): Corrupted index file (in-memory index for /home/zgabor/Maildir/.Lists.Linux): Filename mismatch for UID 1: 1050448183.2238_1.red.int.bppiac.hu vs 1050321835.21498_1.red.int.bppiac.hu ------------------------- and this version is _very_ slow!!! -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed Apr 16 12:20:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 12:20:28 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 5208323845 for ; Wed, 16 Apr 2003 12:20:28 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 4DDA5754014 for ; Wed, 16 Apr 2003 11:21:04 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 8ECFD3F22 for ; Wed, 16 Apr 2003 11:20:27 +0200 (CEST) Message-ID: <3E9D205B.30104@bnap.hu> Date: Wed, 16 Apr 2003 11:20:27 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] it seems to unusable Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 597 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 600 Status: O hi, is there any way to turn off the whole indexing stuff? unfortunately the system getting totaly unusable beacuase of the high load and the mail index generation is so slow that every users call the helpdask that his mail is not working (what's more in this case just click on OE again and start another mailer process:-() we've got about 100k mails which is about 10-20GB! -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed Apr 16 16:39:00 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 16:39:00 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F189723845 for ; Wed, 16 Apr 2003 16:38:59 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id CF1FF5E017F5; Wed, 16 Apr 2003 16:38:59 +0300 (EEST) Subject: [dovecot] Re: Shadow password file From: Timo Sirainen To: Jaime Medrano Cc: dovecot@procontrol.fi In-Reply-To: <54899.195.235.92.108.1050478323.squirrel@www.eurielec.etsit.upm.es> References: <20030415162513.GA2068@eurielec.etsit.upm.es> <1050428884.16120.15.camel@hurina> <54899.195.235.92.108.1050478323.squirrel@www.eurielec.etsit.upm.es> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050500339.16342.32.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Apr 2003 16:38:59 +0300 X-archive-position: 598 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 601 Status: O On Wed, 2003-04-16 at 10:32, Jaime Medrano wrote: > However, when I use passwd-file for passdb with the shadow file where the > imap passwords are stored I can see in the logs an error saying that every > user has uid=0. So it seems. Fixed in CVS now. From tss@iki.fi Wed Apr 16 16:44:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 16:44:55 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AD6C223845 for ; Wed, 16 Apr 2003 16:44:55 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 745805E017F5; Wed, 16 Apr 2003 16:44:55 +0300 (EEST) Subject: [dovecot] Re: current cvs From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <3E9D15A9.2000901@bnap.hu> References: <3E9C3F8F.2050006@bnap.hu> <1050428537.16120.8.camel@hurina> <3E9D15A9.2000901@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050500695.16341.39.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Apr 2003 16:44:55 +0300 X-archive-position: 599 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 602 Status: O On Wed, 2003-04-16 at 11:34, Farkas Levente wrote: > > Currently it re-reads all the mails in the directory and indexes them. > > I'll make this configurable some day. > > the whole mails or just the headers? > as you know we've a lots of big mails so this makes a real different! The whole file, but you can disable that by removing MessagePart from mail_cache_fields in config file. I think I'll fix this even more so that the file isn't opened at all if nothing is wanted to be cached. > ok so what is the best way to be sure that no cached information can > confuse the new version? just: > - stop dovecot > - kill all imap process > - find /home/*/Maildir -name '.imap*' -exec rm {} \; > - start dovecot Well, yes, to be safe. But usually you shouldn't need to delete the .imap* files at all. If there's any changes in format or whatever, it's rebuilt automatically. It's needed only if it contains actually invalid data that can't be detected, like there cached ENVELOPE texts were wrong before. From eskimoe@ananzi.co.za Wed Apr 16 16:45:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 16:45:04 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-168-181.reverse.qdsl-home.de [212.202.168.181]) by danu.procontrol.fi (Postfix) with SMTP id 373E823845 for ; Wed, 16 Apr 2003 16:45:04 +0300 (EEST) Received: (qmail 18828 invoked by uid 1000); 16 Apr 2003 13:46:28 -0000 Date: Wed, 16 Apr 2003 15:46:28 +0200 From: Moe Wibble To: Dovecot List Subject: [dovecot] Re: errors Message-ID: <20030416134628.GA13126@woom.net> Mail-Followup-To: Moe Wibble , Dovecot List References: <3E9D1B27.7090201@bnap.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3E9D1B27.7090201@bnap.hu> X-archive-position: 600 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 603 Status: O Content-Length: 1097 On Wed, Apr 16, 2003 at 10:58:15AM +0200, Farkas Levente wrote: > hi, > in the yesterday cvs, an internal error in the imap message appear in > the client side and in the maillog: > ------------------------- > Apr 16 10:01:42 red imap(zgabor): Corrupted index file > /home/zgabor/Maildir/.Lists.Bugtraq/.imap.index: Invalid seen messages > count (284 < 285) > Apr 16 10:01:43 red imap(zgabor): Corrupted index file > /home/zgabor/Maildir/.Lists.Linux/.imap.index: Invalid seen messages > count (191 < 192) > Apr 16 10:01:44 red imap(zgabor): Corrupted index file (in-memory index > for /home/zgabor/Maildir/.Lists.Linux): Filename mismatch for UID 1: > 1050448183.2238_1.red.int.bppiac.hu vs 1050321835.21498_1.red.int.bppiac.hu > ------------------------- ACK. I'm getting similar errors: Apr 16 15:22:13 rafter imap(moe): Corrupted index file //.INBOX/.imap.index: index.next_uid (441) > uidlist.nex t_uid (440) Yesterday's CVS version running here. Removing the '.imap.index'-file has stopped the errors so far. Haven't noticed any other side effects, yet. regards -- MW From lfarkas@bnap.hu Wed Apr 16 16:53:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 16:53:16 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 7B6F623845 for ; Wed, 16 Apr 2003 16:53:16 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 9548475400F; Wed, 16 Apr 2003 15:53:53 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 464003EEE; Wed, 16 Apr 2003 15:53:14 +0200 (CEST) Message-ID: <3E9D6049.6080902@bnap.hu> Date: Wed, 16 Apr 2003 15:53:13 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Moe Wibble Cc: Dovecot List Subject: [dovecot] Re: errors References: <3E9D1B27.7090201@bnap.hu> <20030416134628.GA13126@woom.net> In-Reply-To: <20030416134628.GA13126@woom.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 601 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 604 Status: O Content-Length: 1251 Moe Wibble wrote: > On Wed, Apr 16, 2003 at 10:58:15AM +0200, Farkas Levente wrote: > >>hi, >>in the yesterday cvs, an internal error in the imap message appear in >>the client side and in the maillog: >>------------------------- >>Apr 16 10:01:42 red imap(zgabor): Corrupted index file >>/home/zgabor/Maildir/.Lists.Bugtraq/.imap.index: Invalid seen messages >>count (284 < 285) >>Apr 16 10:01:43 red imap(zgabor): Corrupted index file >>/home/zgabor/Maildir/.Lists.Linux/.imap.index: Invalid seen messages >>count (191 < 192) >>Apr 16 10:01:44 red imap(zgabor): Corrupted index file (in-memory index >>for /home/zgabor/Maildir/.Lists.Linux): Filename mismatch for UID 1: >>1050448183.2238_1.red.int.bppiac.hu vs 1050321835.21498_1.red.int.bppiac.hu >>------------------------- > > > ACK. > I'm getting similar errors: > Apr 16 15:22:13 rafter imap(moe): Corrupted index file //.INBOX/.imap.index: index.next_uid (441) > uidlist.nex > t_uid (440) > > Yesterday's CVS version running here. > Removing the '.imap.index'-file has stopped the errors so far. > > Haven't noticed any other side effects, yet. we still got these errors (after the delete)... -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed Apr 16 17:20:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 17:20:34 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 022FB2385F for ; Wed, 16 Apr 2003 17:20:33 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id A0D1975400F; Wed, 16 Apr 2003 16:21:08 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id DDCE43EEE; Wed, 16 Apr 2003 16:20:29 +0200 (CEST) Message-ID: <3E9D66AD.1010503@bnap.hu> Date: Wed, 16 Apr 2003 16:20:29 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Cc: Dovecot List Subject: [dovecot] Re: current cvs References: <3E9C3F8F.2050006@bnap.hu> <1050428537.16120.8.camel@hurina> <3E9D15A9.2000901@bnap.hu> <1050500695.16341.39.camel@hurina> In-Reply-To: <1050500695.16341.39.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 602 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 605 Status: O Content-Length: 2191 Timo Sirainen wrote: > On Wed, 2003-04-16 at 11:34, Farkas Levente wrote: > >>>Currently it re-reads all the mails in the directory and indexes them. >>>I'll make this configurable some day. >> >>the whole mails or just the headers? >>as you know we've a lots of big mails so this makes a real different! > > > The whole file, but you can disable that by removing MessagePart from > mail_cache_fields in config file. I think I'll fix this even more so > that the file isn't opened at all if nothing is wanted to be cached. at noon we switch to mail_cache_fields = after that the the clients are usable again. BUT what we can do? what would be the best choise for us? the parameters: - most people don't know anything about computer, mailer, internet!! - they use to write email in word's doc! - they attach pictures, exe, doc etc to their mails - they use OE6 which can't create rules on imap folder, can't delete mails one by one there is no thrash (only purge all deleted mails) which casue mailbox with a lots of mails (most od them already deleted, but wouldn't like to delete them since cant select them). so: - we've got about 300 mailbox - most people just has mails in his inbox and sent folder - this folder are real huge (a few thousend mails) - 300 mailbox has 100000 mails which is about 16GB this means the avarage message size is about 160K (actualy the size are 5-10K or 1-5M) so what extra (non default) parameters should I have to use (eg: mail_cache_fields etc.) >>ok so what is the best way to be sure that no cached information can >>confuse the new version? just: >>- stop dovecot >>- kill all imap process >>- find /home/*/Maildir -name '.imap*' -exec rm {} \; >>- start dovecot > > > Well, yes, to be safe. But usually you shouldn't need to delete the > .imap* files at all. If there's any changes in format or whatever, it's > rebuilt automatically. It's needed only if it contains actually invalid > data that can't be detected, like there cached ENVELOPE texts were wrong > before. they were wrong in any previous version? or how can I know that? -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed Apr 16 17:22:18 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 17:22:18 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 848D92385F for ; Wed, 16 Apr 2003 17:22:18 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 1069075400F for ; Wed, 16 Apr 2003 16:22:56 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 0C23A3EEE for ; Wed, 16 Apr 2003 16:22:16 +0200 (CEST) Message-ID: <3E9D6717.2@bnap.hu> Date: Wed, 16 Apr 2003 16:22:15 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] Re: errors References: <3E9D1B27.7090201@bnap.hu> <20030416134628.GA13126@woom.net> <3E9D6049.6080902@bnap.hu> In-Reply-To: <3E9D6049.6080902@bnap.hu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 603 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 606 Status: O Content-Length: 1666 Farkas Levente wrote: > Moe Wibble wrote: > >> On Wed, Apr 16, 2003 at 10:58:15AM +0200, Farkas Levente wrote: >> >>> hi, >>> in the yesterday cvs, an internal error in the imap message appear in >>> the client side and in the maillog: >>> ------------------------- >>> Apr 16 10:01:42 red imap(zgabor): Corrupted index file >>> /home/zgabor/Maildir/.Lists.Bugtraq/.imap.index: Invalid seen >>> messages count (284 < 285) >>> Apr 16 10:01:43 red imap(zgabor): Corrupted index file >>> /home/zgabor/Maildir/.Lists.Linux/.imap.index: Invalid seen messages >>> count (191 < 192) >>> Apr 16 10:01:44 red imap(zgabor): Corrupted index file (in-memory >>> index for /home/zgabor/Maildir/.Lists.Linux): Filename mismatch for >>> UID 1: 1050448183.2238_1.red.int.bppiac.hu vs >>> 1050321835.21498_1.red.int.bppiac.hu >>> ------------------------- >> >> >> >> ACK. >> I'm getting similar errors: >> Apr 16 15:22:13 rafter imap(moe): Corrupted index file >> //.INBOX/.imap.index: index.next_uid (441) > uidlist.nex >> t_uid (440) >> >> Yesterday's CVS version running here. >> Removing the '.imap.index'-file has stopped the errors so far. >> >> Haven't noticed any other side effects, yet. > > > we still got these errors (after the delete)... another new messages (even after deleting the .imap*) ----------------------------------- Apr 16 16:19:52 red imap(agodor): Corrupted index file /home/agodor/Maildir/.INBOX/.imap.index: Filename mismatch for UID 1: 1050486664.4076_43.red.int.bppiac.hu vs 1050417307.26676_43.red.int.bppiac.hu ----------------------------------- -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed Apr 16 18:42:38 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 18:42:38 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CE29C23845 for ; Wed, 16 Apr 2003 18:42:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 67AC05E0180C; Wed, 16 Apr 2003 18:42:38 +0300 (EEST) Subject: [dovecot] 0.99.9-test5 From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050507758.16338.58.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Apr 2003 18:42:38 +0300 X-archive-position: 604 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 607 Status: O - Fixed startup crashing in POP3 server - Several fixes to opening index file which needs to be rebuilt. Before it didn't always rebuild the index but just fallbacked to using only memory, and that could have been quite slow since all mails in the mailbox were opened and parsed. - If there's nothing in mail_cache_fields, index rebuilding doesn't open the file anymore. This should make in-memory indexes a lot faster than before, but it could also mean some performance hits later. If client wants to fetch all mails from the mailbox, the same thing has to be done anyway.. This needs more thinking actually what is the optimal behaviour. - Support /etc/shadow-like file for passdb. From tss@iki.fi Wed Apr 16 18:51:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 18:51:33 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BA3FA23845 for ; Wed, 16 Apr 2003 18:51:33 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 7B0FE5E0180C; Wed, 16 Apr 2003 18:51:33 +0300 (EEST) Subject: [dovecot] Re: current cvs From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <3E9D66AD.1010503@bnap.hu> References: <3E9C3F8F.2050006@bnap.hu> <1050428537.16120.8.camel@hurina> <3E9D15A9.2000901@bnap.hu> <1050500695.16341.39.camel@hurina> <3E9D66AD.1010503@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050508293.16341.68.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Apr 2003 18:51:33 +0300 X-archive-position: 605 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 608 Status: O Content-Length: 1430 On Wed, 2003-04-16 at 17:20, Farkas Levente wrote: > at noon we switch to > mail_cache_fields = > after that the the clients are usable again. test5 should be even more usable with this. > BUT > what we can do? what would be the best choise for us? > the parameters: .. > - we've got about 300 mailbox > - most people just has mails in his inbox and sent folder > - this folder are real huge (a few thousend mails) > - 300 mailbox has 100000 mails which is about 16GB this means the > avarage message size is about 160K (actualy the size are 5-10K > or 1-5M) > > so what extra (non default) parameters should I have to use (eg: > mail_cache_fields etc.) There's not really other settings that affect it. I've tried to make Dovecot handle large mailboxes fast by default, but I haven't really thought of the rebuild slowdown before. > > Well, yes, to be safe. But usually you shouldn't need to delete the > > .imap* files at all. If there's any changes in format or whatever, it's > > rebuilt automatically. It's needed only if it contains actually invalid > > data that can't be detected, like there cached ENVELOPE texts were wrong > > before. > > they were wrong in any previous version? or how can I know that? NEWS file contains everything that's needed to know when upgrading, including if index files should be deleted because of old bugs. Except I forgot to update it for 0.99.8.1 which fixed one of these. From tss@iki.fi Wed Apr 16 18:55:04 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 18:55:04 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 033F323845 for ; Wed, 16 Apr 2003 18:55:04 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id C0F195E0180C; Wed, 16 Apr 2003 18:55:03 +0300 (EEST) Subject: [dovecot] Re: Changing hierarchy separator to '/' From: Timo Sirainen To: Charlie Brady Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050508503.16343.73.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Apr 2003 18:55:03 +0300 X-archive-position: 606 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 609 Status: O On Wed, 2003-04-16 at 01:03, Charlie Brady wrote: > >From TODO: > > ... > - maildir: change it to use '/' as hierarchy separator to allow '.' > characters (for usernames in shared folders) > ... > > Now changing the separator in the maildir-storage.c is trivial (even > though it "can't" be changed :-), but fixing the resultant breakage in > maildir-list.c needs a little more understanding. Timo, could you give me > some pointers? I can see that I need to work out what imap_match_init() > does. Did you want to change the '.' separator in filenames too? If not, just change all '/' chars in mask to '.' in maildir_list_mailbox_init(). imap_match_init() doesn't have to be touched, it gets the separator as parameter. It just initializes the matching so you can later test with imap_match() if the mask matches to mailbox name. From mem@mv.mv.com Wed Apr 16 19:32:23 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 19:32:23 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id EB2722385F for ; Wed, 16 Apr 2003 19:32:22 +0300 (EEST) Received: (qmail 8973 invoked by uid 101); 16 Apr 2003 12:32:20 -0400 From: "Mark E. Mallett" Date: Wed, 16 Apr 2003 12:32:20 -0400 To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9-test5 Message-ID: <20030416163220.GJ21924@iridium.mv.net> References: <1050507758.16338.58.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1050507758.16338.58.camel@hurina> User-Agent: Mutt/1.4.1i X-archive-position: 607 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 610 Status: O My initial impression is that this is working a lot better than the last few test releases. I am still seeing "Corrupted index" messages in the logs for some users, but on the next login for that user, there is no such message (so it looks like the indexes are indeed getting fixed). Also-- no more signal 11s. yay! mm From dom@cus.org.uk Wed Apr 16 22:33:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 22:33:16 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from cus.org.uk (host213-106-240-81.no-dns-yet.ntli.net [213.106.240.81]) by danu.procontrol.fi (Postfix) with ESMTP id 5588823845 for ; Wed, 16 Apr 2003 22:33:16 +0300 (EEST) Received: from cus.org.uk (localhost.cus.org.uk [127.0.0.1]) by cus.org.uk (8.12.6/8.12.6) with ESMTP id h3GJXF7e005049 for ; Wed, 16 Apr 2003 20:33:15 +0100 (BST) (envelope-from dom@cus.org.uk) Received: (from dom@localhost) by cus.org.uk (8.12.6/8.12.6/Submit) id h3GJXEL3005048 for dovecot@procontrol.fi; Wed, 16 Apr 2003 20:33:14 +0100 (BST) Date: Wed, 16 Apr 2003 20:33:14 +0100 From: Dominic Marks To: dovecot@procontrol.fi Subject: [dovecot] PATCH Add support for kqueue in ioloop subsystem Message-ID: <20030416193314.GA4847@cus.org.uk> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="pWyiEgJYm5f9v55/" Content-Disposition: inline User-Agent: Mutt/1.4i X-archive-position: 608 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dom@cus.org.uk Precedence: bulk X-list: dovecot X-UID: 611 Status: O Content-Length: 6073 --pWyiEgJYm5f9v55/ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hey, I noticed that there was an ioloop "module" (if we can call it that) for select and poll and decided to add one for kqueue (aka kevent) BSDs high performance descriptor multiplexing API. I haven't done any of the configure glue stuff but the code is complete and works well. kqueue is available on all recent versions of FreeBSD, NetBSD, OpenBSD and Darwin (and therefore MacOS X). I've tested both pop3 and imap with no problems. To get it working: (bodge method) > tar zxvf dovecot-0.99.8.1.tar.gz > cp ioloop-kevent.c dovecot-0.99.8.1/src/lib/ > cd dovecot-0.99.8.1/ > ./configure > vi config.h 1. replace IOLOOP_POLL (or IOLOOP_SELECT) with IOLOOP_KEVENT > vi src/lib/Makefile 1. find liblib_a_SOURCES add ioloop-kevent.c to it 2. find liblib_a_OBJECTS add ioloop-kevent.$(OBJEXT) to it > make There is a paper on kqueue which includes a performance evaulation here: http://people.freebsd.org/~jlemon/papers/kqueue.pdf Thanks, -- Dominic --pWyiEgJYm5f9v55/ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="ioloop-kevent.c" /* * ioloop-kevent.c : I/O loop handler using kevent(2) * * Copyright (c) 2002, Dominic Marks * * This code is placed in the public domain. */ #include "lib.h" #include "ioloop-internal.h" #ifdef IOLOOP_KEVENT #include #include #include #ifndef KEVENT_SET_SIZE # define KEVENT_SET_SIZE 16 #endif struct ioloop_handler_data { int kq; /* kqueue descriptor */ struct kevent event; /* a kevent struct which we pass around */ }; void io_loop_handler_init(struct ioloop *ioloop) { struct ioloop_handler_data *data; ioloop->handler_data = data = p_new(ioloop->pool, struct ioloop_handler_data, 1); data->kq = kqueue(); if (data->kq < 0) { i_fatal("couldn't initialise kqueue: %m"); } memset(&data->event, 0, sizeof(struct kevent)); } void io_loop_handler_deinit(struct ioloop *ioloop) { p_free(ioloop->pool, ioloop->handler_data); } void io_loop_handle_add(struct ioloop *ioloop, int fd, int condition) { short filter; struct ioloop_handler_data *data = ioloop->handler_data; i_assert(fd >= 0); if (condition & IO_READ) filter |= EVFILT_READ; if (condition & IO_WRITE) filter |= EVFILT_WRITE; EV_SET(&data->event, fd, filter, EV_ADD, 0, 0, NULL); if (kevent(data->kq, &data->event, 1, NULL, 0, NULL) < 0) { i_warning("couldn't add filter with kqueue: %m"); } } void io_loop_handle_remove(struct ioloop *ioloop, int fd, int condition) { short filter; struct ioloop_handler_data *data = ioloop->handler_data; i_assert(fd >= 0); if (condition & IO_READ) filter |= EVFILT_READ; if (condition & IO_WRITE) filter |= EVFILT_WRITE; EV_SET(&data->event, fd, filter, EV_DELETE, 0, 0, NULL); if (kevent(data->kq, &data->event, 1, NULL, 0, NULL) < 0) { /* * changing this to i_fatal is debatable, however * if you do so you will potentially expose the case * where a process receives the client from a socket * then closes the listening socket, experiences an * error and calls exit, dropping the client we just * picked up */ i_warning("couldn't remove filter with kqueue: %m"); } } void io_loop_handler_run(struct ioloop *ioloop) { struct ioloop_handler_data *data = ioloop->handler_data; struct timeval tv; struct timespec ts; struct io *io, *next; struct kevent kes[KEVENT_SET_SIZE], *kev; unsigned int t_id; int ret, id, mark; /* get the time left for next timeout task */ io_loop_get_wait_time(ioloop->timeouts, &tv, NULL); /* convert struct timeval into struct timespec */ TIMEVAL_TO_TIMESPEC(&tv, &ts); /* zero the event vector */ memset(kes, 0, sizeof(struct kevent) * KEVENT_SET_SIZE); /* get any waiting kevents */ ret = kevent(data->kq, NULL, 0, kes, KEVENT_SET_SIZE, &ts); if (ret < 0 && errno != EINTR) i_warning("kevent processing failed: %m"); /* execute timeout handlers */ io_loop_handle_timeouts(ioloop); if (ret <= 0 || !ioloop->running) { /* no I/O events */ return; } /* execute the I/O handlers in prioritized order */ for (io = ioloop->ios; io != NULL && ret > 0; io = next) { next = io->next; if (io->destroyed) { /* we were destroyed, and io->fd points to -1 now, so we can't know if there was any revents left. */ io_destroy(ioloop, io); continue; } i_assert(io->fd >= 0); mark = 0; /* * XXX * This approach has its upsides and downsides. Because * of the way kevent(2) works you can't interogate the * kernel for the status of an arbitary descriptor, you * can however retrieve all the waiting descriptors. This * is great if you don't care what order they are processed * in. However here we have to process them in io handler * priority order, which means we then need to go through * our events and see if we have a match. * * Removing processed events from the list would improve * the situation, however for small values of KEVENT_SET_SIZE * it would not be a significant optimization, and since we * pass this routine regularly the number of returned events * is typically going to be small. */ for (id = 0; id < ret; id++) { kev = &kes[id]; if (kev->ident == io->fd) { if (io->condition & (IO_READ | IO_WRITE)) { if (!((kev->filter & EVFILT_READ) || (kev->filter & EVFILT_WRITE))) { continue; } } if (io->condition & IO_READ) { if (!(kev->filter & EVFILT_READ)) continue; } if (io->condition & IO_WRITE) { if (!(kev->filter & EVFILT_WRITE)) continue; } mark = 1; } } if (mark == 0) continue; /* no condition was satisfied */ t_id = t_push(); io->callback(io->context); if (t_pop() != t_id) i_panic("Leaked a t_pop() call!"); if (io->destroyed) io_destroy(ioloop, io); ret --; } } #endif --pWyiEgJYm5f9v55/-- From tss@iki.fi Wed Apr 16 23:16:37 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 16 Apr 2003 23:16:37 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AD3BA23845 for ; Wed, 16 Apr 2003 23:16:37 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 8421F5E017F5; Wed, 16 Apr 2003 23:16:35 +0300 (EEST) Subject: [dovecot] Re: PATCH Add support for kqueue in ioloop subsystem From: Timo Sirainen To: Dominic Marks Cc: dovecot@procontrol.fi In-Reply-To: <20030416193314.GA4847@cus.org.uk> References: <20030416193314.GA4847@cus.org.uk> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050524195.16343.89.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Apr 2003 23:16:35 +0300 X-archive-position: 609 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 612 Status: O Content-Length: 2091 On Wed, 2003-04-16 at 22:33, Dominic Marks wrote: > I noticed that there was an ioloop "module" (if we can call it that) for > select and poll and decided to add one for kqueue (aka kevent) BSDs high > performance descriptor multiplexing API. I haven't done any of the > configure glue stuff but the code is complete and works well. kqueue is > available on all recent versions of FreeBSD, NetBSD, OpenBSD and Darwin > (and therefore MacOS X). I've tested both pop3 and imap with no > problems. Thanks. I'll add the configure stuff there. Some comments: -- if (kevent(data->kq, &data->event, 1, NULL, 0, NULL) < 0) { i_warning("couldn't add filter with kqueue: %m"); } -- Maybe that should be i_fatal() instead? Otherwise the socket would get ignored and never closed. -- if (kevent(data->kq, &data->event, 1, NULL, 0, NULL) < 0) { /* * changing this to i_fatal is debatable, however * if you do so you will potentially expose the case * where a process receives the client from a socket * then closes the listening socket, experiences an * error and calls exit, dropping the client we just * picked up */ i_warning("couldn't remove filter with kqueue: %m"); } -- Can this error actually happen when removing it? What kind of error? -- * in. However here we have to process them in io handler * priority order, which means we then need to go through * our events and see if we have a match. -- Maybe I should remove the priorities. They're just slowing down things and there's no real reason for them now. Also I have in TODO: - send EXISTS immediately after new mail arrives. - linux: we can use dnotify for maildir (but not mbox I think, we'd get interrupted all the time if we checked eg. large /var/spool/mail) - *bsd: kqueue() can notify changes in mbox and maildir This would need some kind of API as well.. From charlieb-dovecot@e-smith.com Thu Apr 17 00:11:56 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 17 Apr 2003 00:11:56 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 215602385F for ; Thu, 17 Apr 2003 00:11:56 +0300 (EEST) Received: (qmail 17708 invoked by uid 404); 16 Apr 2003 21:11:53 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 16 Apr 2003 17:11:53 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 16 Apr 2003 21:11:53 -0000 Received: (qmail 19485 invoked from network); 16 Apr 2003 21:11:53 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 16 Apr 2003 21:11:53 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 16 Apr 2003 21:17:00 -0000 Date: Wed, 16 Apr 2003 17:17:00 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Changing hierarchy separator to '/' In-Reply-To: <1050508503.16343.73.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 610 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 613 Status: O Content-Length: 1447 On 16 Apr 2003, Timo Sirainen wrote: > On Wed, 2003-04-16 at 01:03, Charlie Brady wrote: > > >From TODO: > > > > ... > > - maildir: change it to use '/' as hierarchy separator to allow '.' > > characters (for usernames in shared folders) > > ... > > > > Now changing the separator in the maildir-storage.c is trivial (even > > though it "can't" be changed :-), but fixing the resultant breakage in > > maildir-list.c needs a little more understanding. Timo, could you give me > > some pointers? I can see that I need to work out what imap_match_init() > > does. > > Did you want to change the '.' separator in filenames too? Yes. AIUI, it's necessary to do so, otherwise there is confusion as to whether a . is literal or is a stand-in /. To summarize: - I'd like to use / as hierarchy separator, so that existing .mailboxlist files can be used (after moving them to ./Maildir/.subscriptions) - I'd like to change the filename separator to ';' rather than '.', so that users can have folder names containing '.'. - I don't care about Courier compatibility. As an academic exercise, is there a reason other than Courier compatibility that subfolders can't be directories nested inside other directories? IOW, if we use / as the hierarchy separator, could we also use it in the filesystem paths of folders. (I realise that a reasonable amount of code would need to change to make this possible). Regards -- Charlie From tss@iki.fi Thu Apr 17 01:34:06 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 17 Apr 2003 01:34:06 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 744D02385F for ; Thu, 17 Apr 2003 01:34:06 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3A9385E017F5; Thu, 17 Apr 2003 01:34:06 +0300 (EEST) Subject: [dovecot] Re: Changing hierarchy separator to '/' From: Timo Sirainen To: Charlie Brady Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050532445.16342.102.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 17 Apr 2003 01:34:05 +0300 X-archive-position: 611 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 614 Status: O Content-Length: 1164 On Thu, 2003-04-17 at 00:17, Charlie Brady wrote: > To summarize: > > - I'd like to use / as hierarchy separator, so that existing .mailboxlist > files can be used (after moving them to ./Maildir/.subscriptions) > - I'd like to change the filename separator to ';' rather than '.', so > that users can have folder names containing '.'. > - I don't care about Courier compatibility. Then you mostly just have to change '.' to ';' everywhere. And in maildir-list.c do the '/' -> ';' change in the search mask first to make it easier. > As an academic exercise, is there a reason other than Courier > compatibility that subfolders can't be directories nested inside other > directories? IOW, if we use / as the hierarchy separator, could we also > use it in the filesystem paths of folders. I'm not sure. I did think of doing this before, but I think I figured out some really good reason why the current way is better. Or maybe not, I can't remember. > (I realise that a reasonable > amount of code would need to change to make this possible). It wouldn't need that much code changes, mbox works that way and most of the code could be taken from there. From lfarkas@bnap.hu Thu Apr 17 12:50:00 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 17 Apr 2003 12:50:01 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id C57D423845 for ; Thu, 17 Apr 2003 12:50:00 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 1B189754004 for ; Thu, 17 Apr 2003 11:50:44 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id E5B2D3EEE for ; Thu, 17 Apr 2003 11:49:57 +0200 (CEST) Message-ID: <3E9E78C5.4000501@bnap.hu> Date: Thu, 17 Apr 2003 11:49:57 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] a few small bug Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 612 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 615 Status: O Content-Length: 1382 during the ./autogen.sh there is a few problem: ----------------------------------------- configure.in: installing `./install-sh' configure.in: installing `./mkinstalldirs' configure.in: installing `./missing' Use of uninitialized value in concatenation (.) or string at /usr/bin/automake line 8449. : installing `./config.guess' Use of uninitialized value in concatenation (.) or string at /usr/bin/automake line 8449. : installing `./config.sub' configure.in:3: required file `./config.h.in' not found aclocal.m4:916: required file `./ltmain.sh' not found src/auth/Makefile.am: installing `./depcomp' configure.in:13: warning: AC_ARG_PROGRAM invoked multiple times autoheader: `config.h.in' is created ----------------------------------------- would it be possible to not use your own libtool in the cvs? in this case I can run autogen.sh during the rpm build and doesn't have to run manulay and patch the genereated makefile. ps. this is the patch I use: --- dovecot-1.0/configure.lfarkas 2003-03-20 15:53:04.000000000 +0100 +++ dovecot-1.0/configure 2003-03-20 15:54:37.000000000 +0100 @@ -8205,7 +8205,7 @@ LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' +LIBTOOL='$(SHELL) libtool' # Prevent multiple expansion -- Levente "Si vis pacem para bellum!" From tss@iki.fi Thu Apr 17 17:12:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 17 Apr 2003 17:12:44 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7992423845 for ; Thu, 17 Apr 2003 17:12:44 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 47B465E017F5; Thu, 17 Apr 2003 17:12:41 +0300 (EEST) Subject: [dovecot] Re: a few small bug From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <3E9E78C5.4000501@bnap.hu> References: <3E9E78C5.4000501@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050588761.16342.146.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 17 Apr 2003 17:12:41 +0300 X-archive-position: 613 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 616 Status: O Content-Length: 1089 On Thu, 2003-04-17 at 12:49, Farkas Levente wrote: > during the ./autogen.sh there is a few problem: > ----------------------------------------- > Use of uninitialized value in concatenation (.) or string at > /usr/bin/automake line 8449. > : installing `./config.guess' > Use of uninitialized value in concatenation (.) or string at > /usr/bin/automake line 8449. > : installing `./config.sub' Only these are actual problems, and they look like automake bugs to me. > would it be possible to not use your own libtool in the cvs? > in this case I can run autogen.sh during the rpm build and doesn't have > to run manulay and patch the genereated makefile. Hmm. ltmain.sh is generated by autogen.sh (automake). libtool is generated by configure. But they can also be generated by libtoolize which isn't called in autogen.sh .. I'm not sure I should be calling that. I think newer auto* tools worked a bit differently. Anyway, libtool isn't included in CVS but it's generated by your system as is the configure script. I can't change them without ugly (and mostly unneeded) kludges. From charlieb-dovecot@e-smith.com Thu Apr 17 18:23:40 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 17 Apr 2003 18:23:40 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 46E0C23845 for ; Thu, 17 Apr 2003 18:23:40 +0300 (EEST) Received: (qmail 30482 invoked by uid 404); 17 Apr 2003 15:23:36 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 17 Apr 2003 11:23:36 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 17 Apr 2003 15:23:36 -0000 Received: (qmail 17616 invoked from network); 17 Apr 2003 15:23:36 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 17 Apr 2003 15:23:36 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 17 Apr 2003 15:28:41 -0000 Date: Thu, 17 Apr 2003 11:28:41 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Subject: [dovecot] Using nested folders (was Re: Changing hierarchy separator to '/') In-Reply-To: <1050532445.16342.102.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 614 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: charlieb-dovecot@e-smith.com Precedence: bulk X-list: dovecot X-UID: 617 Status: O On 17 Apr 2003, Timo Sirainen wrote: > On Thu, 2003-04-17 at 00:17, Charlie Brady wrote: > > > As an academic exercise, is there a reason other than Courier > > compatibility that subfolders can't be directories nested inside other > > directories? IOW, if we use / as the hierarchy separator, could we also > > use it in the filesystem paths of folders. ... > > (I realise that a reasonable > > amount of code would need to change to make this possible). > > It wouldn't need that much code changes, mbox works that way and most of > the code could be taken from there. There are significant differences from mbox, because a directory can be both a maildir and a container of other maildirs. That makes deletion and rename cases quite different. Or am I imagining these complications? -- Charlie From khoff@pc-intouch.com Thu Apr 17 22:16:18 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 17 Apr 2003 22:16:18 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from luaren.pc-intouch.com (luaren.pc-intouch.com [66.42.86.8]) by danu.procontrol.fi (Postfix) with ESMTP id A4FF92385F for ; Thu, 17 Apr 2003 22:16:18 +0300 (EEST) Received: from luaren.pc-intouch.com ([66.42.86.8]) by luaren.pc-intouch.com with esmtp (Exim 3.34 #2) id 196Etd-0001Iv-00 for dovecot@procontrol.fi; Thu, 17 Apr 2003 12:18:09 -0700 Date: Thu, 17 Apr 2003 12:18:09 -0700 (PDT) From: Kristian Hoffmann To: Dovecot List Subject: [dovecot] Corrupt mbox handling Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 615 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: khoff@pc-intouch.com Precedence: bulk X-list: dovecot X-UID: 618 Status: O I've found that if an mbox file has two consecutive 'From' delimiters, I get the error: pop3(user): Error indexing mbox file /var/spool/mail/user: LF not found where expected UofW apparently ignores the second 'From' silently. I've been trying to run dovecot in gdb to get more details on exactly what is happening, but I haven't quite mastered the art of attaching to the pop3 process between the login process completing and it exiting. Is there some trick to doing that? If I can't work around it in dovecot, I can just write something in perl to fix all the duplicate 'From' lines. Thanks, Kristian Hoffmann PC-InTOUCH/FireToWire System Administrator khoff@pc-intouch.com --- From tss@iki.fi Thu Apr 17 22:42:29 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 17 Apr 2003 22:42:29 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0A97D23845 for ; Thu, 17 Apr 2003 22:42:29 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id C12C95E017F5; Thu, 17 Apr 2003 22:42:28 +0300 (EEST) Subject: [dovecot] Re: Corrupt mbox handling From: Timo Sirainen To: Kristian Hoffmann Cc: Dovecot List In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050608548.16341.212.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 17 Apr 2003 22:42:28 +0300 X-archive-position: 616 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 619 Status: O Content-Length: 1254 On Thu, 2003-04-17 at 22:18, Kristian Hoffmann wrote: > I've found that if an mbox file has two consecutive 'From' delimiters, I > get the error: > > pop3(user): Error indexing mbox file /var/spool/mail/user: LF not found > where expected This is in TODO: - two adjacent From-lines breaks us. not too easy to fix though. Problem is that two From-lines aren't really "possible", because the line feed before and after belongs to the same From-line. And since the newline between the two From-lines is shared between them, it breaks my parsers. I guess the correct way to fix this would be to completely ignore the first From-line if second one comes right after it. I'm not sure how easily that is fixed. I once tried fixing this but the code got too kludgy back then, but I think I tried to keep the first one as empty message then. Ignoring it might be easier. > UofW apparently ignores the second 'From' silently. I've been trying to > run dovecot in gdb to get more details on exactly what is happening, but > I haven't quite mastered the art of attaching to the pop3 process between > the login process completing and it exiting. Is there some trick to doing > that? Well, you can run the pop3 binary directly and talk to it via stdin. From lfarkas@bnap.hu Fri Apr 18 12:14:07 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 18 Apr 2003 12:14:07 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 76D742385F for ; Fri, 18 Apr 2003 12:14:06 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 5410E754003; Fri, 18 Apr 2003 11:14:56 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 661E53EEE; Fri, 18 Apr 2003 11:14:01 +0200 (CEST) From: "Farkas Levente" To: "Timo Sirainen" Cc: "Dovecot List" References: <3E9E78C5.4000501@bnap.hu> <1050588761.16342.146.camel@hurina> Subject: [dovecot] another bug Date: Fri, 18 Apr 2003 11:14:01 +0200 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0016_01C3059B.9D70C8F0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-Id: <20030418091456.5410E754003@mail1.bppiac.hu> X-archive-position: 617 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 620 Status: O Content-Length: 133367 This is a multi-part message in MIME format. ------=_NextPart_000_0016_01C3059B.9D70C8F0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit hi, after I push the delete button on a long mail in mozilla the mail is not deleted and after tha mozilla don't show any other messages in that folder. I have to restart mozilla. but even after the restart I still can't remove the message. this already happend earlier, but now here is the rawlog of the session. from OE6 I can delete the same message. -- Levente ------=_NextPart_000_0016_01C3059B.9D70C8F0 Content-Type: application/x-compressed; name="rawlog.tgz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rawlog.tgz" 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 L/Nkaemb+XAG70RW7yaUlDR5Nxn+bsvYpOydoNlsOokOu8Or6eTxMk4pf/91JJTclBnH30Wzm8nu dXe2mEdPYdp42ocGrQH09WebgrXNdzuTjzD2T7/vvHr1/GlvPHna684/fJe7fLJ/9v3zp3O43H6a /OdmPlv90f4EP+TveL3/8tXZm+f2XfKXvn/zuvP8af63r9787XgfLqzuKHKSCxoTSwtKWhmDl81X mTOJ6r74859yxnlKyKdhD9YteHjbXj+9GMPTIV7udQfRDALB2SD6lgsjVPwYu2qwq5qgVyl6laFX OXpVoFclelWhVzV6FbWVRm0Vo7aKUVvFqK1i1FYxaqsYtVWM2ipGbRWjtopRWxnUVga1lUFtZVBb GdRWBrWVQW1lUFsZ1FYGsxXEDOhVzFaSYLaSBLMVhMjoVcxWkmC2kgSzlSSYrSRBbUVRW1HUVhS1 FUVtRVFbUdRWFLUVRW1FUVtR1FYMtRVDbcVQWzHUVgy1FUNtxVBbMdRWDLUVQ23FUVtx1FYctRVH bcVRW3HUVhy1FUdtxVFbcdRWArWVQG0lUFsJ1FYCtZVAbSVQWwnUVgK1lUBtJVFbSdRWErWVRG0l UVtJ1FYStZVEbSVRW0nUVgq1lUJtpVBbKdRWCrWVQm2lUFsp1FZo3C7RuF2icbtE43aJxu0Sjdsl GrdLNG6XaNwu0bhdonG7RON2icbtEo3bJRq3SzRul2jcLtG4XaJxu0TjdonG7RKN2yUat0s0bpdo 3C7RuF2icbtE43aJxu0SjdslGrdLNG5XaNyu0LhdoXG7QuN2hcbtCo3bFRq3KzRuV2jcrtC4XaFx u0LjdoXG7QqN2xUatys0bldo3K7QuF2hcbv6P/bupUUQ7LzztNcF9R1iaQStyfd2LmC0sKTCQgMC Xxay8WKQivaAPDLT1cxC6LtPHFsDVrfqgQGthsmFnRX/wgFvpFW/U8qMh92+2O2L3b7Y7Yvdvtjt i92+2O2L3b7Y7Yvdvtjti92+2O2L3b7Y7Yvdvtjti92+2O2L3b7Y7Yvdvtjti92+2O2L3b7Y7Yvd vtjti92+2O2L3b7Y7Yvdvtjti92+2O2L3b7Y7Yvdvtjti92+2O2L3b7Y7Yvdvtjti92+2O2L3b7Y 7Yvdvtjti92+2O2L3b7Y7Yvdvtjti92+2O2L3b7Y7Yvdvtjti92+2O2L3b7Y7Yvdvtjti92+2O2L 3b7Y7Yvdvtjti92+2O2L3b7Z7Zvdvtntm92+2e2b3b7Z7Zvdvtntm92+2e2b3b7Z7Zvdvtntm92+ 2e2b3b7Z7Zvdvtntm92+2e2b3b7Z7Zvdvtntm92+2e2b3b7Z7Zvdvtntm92+2e2b3b7Z7Zvdvtnt m92+2e2b3b7Z7Zvdvtntm92+2e2b3b7Z7Zvdvtntm92+2e2b3b7Z7Zvdvtntm92+2e2b3b7Z7Zvd vtntm92+/7jbP3+e+8/wewr//fcT/qffV/g/fVZ+Dfge2HwPbL4HNt8Dm++BzffA5ntg8z2w+R7Y fA9svgc23wOb74HN98Dme2DzPbD5Hth8D2y+BzbfA5vvgc33wOZ7YPM9sPke2HwPbL4HNt8Dm++B zffA5ntg8z2w+R7YfA8cvgcO3wOH74HD98Dhe+DwPXD4Hjh8Dxy+Bw7fA4fvgcP3wOF74PA9cPge OHwPHL4HDt8Dh++Bw/fA4Xvg8D1w+B44fA8cvgcO3wOH74HD98Dhe+DwPXD4Hjh8Dxy+Bw7fA4fv gcP3wOF74PA9cPgeOHwPHL4HDt8Dh++Bw/fA4Xvg8D1w+B44fA8cvgcO3wOH74HD98Dhe+DwPXD4 Hjh8Dxy+Bw7fA4fvgcP3wOF74PA9cPgeOHwPHP57/MNuP+z2w24/7PbDbj/s9sNuP+z2w24/7PbD bj/s9sNuP+z2w24/7PbDbj/s9sNuP+z2w24/7PbDbj/s9sNuP+z2w24/7PbDbj/s9sNuP+z2w24/ 7PbDbr/s9stuv+z2y26/7PbLbr/s9stuv+z2y26/7PbLbr/s9stuv+z2y26/7PbLbr/s9stuv+z2 y26/7PbLbr/s9stuv+z2y26/7PbLbr/s9stuv+z2y26/7PbLbr/s9stuv+z2y26/7PbLbr/s9stu v+z2y26/7PbLbr/s9stuv+z2y26/7PbLbr/s9stuv+z2y26/7PbLbr/s9stuv+z2y26/7PbLbr/s 9stuv+z2y26/7PbLbr/s9stuv+z2y26/7PbLbr/s9stuv+z2y26/7PbLbr/s9stuv+z2y26/7PbL br/s9stuv+z2y26/7PbLbr/s9stuv+z2i26f920auX7/rd76/bd66/ff6q3ff6u3fv+t3vr9t3rr 99/qrd9/q7fyVuj2t/JW6Pa38lbo9rfyVuj2t/JW6Pa38lbo9rfyVuj2t/JW6Pa38lbo9rfyVuj2 t/JW6Pa38lbo9rfyVuj2t/JW6Pa38lbo9rfyVuj2t/JW6Pa38lbo9rfyVuj2t/JW6Pa38lbo9rfy Vuj2t/JW6Pa38lbo9rfyVuj2t/JW6Pa38lbo9rfyVuj2t/JW6Pa38lbo9rfyVuj2t/JW6Pa38lbo 9rfyVuj2t/JW6Pa38lbo9rfyVuj2t/JW6Pa38lbo9rfyVuj2t/JW6Pa38lbo9rfyVuj2t/JW6Pa3 8lbo9rfqVsFuD3Z7sNuD3R7s9vi+bv/8aH7vd3z/f/H7CvPzn4f//vsKM8/7rvp/+Kz6GgTfA8H3 QPA9EHwPBN8DwfdA8D0QfA8E3wPB90DwPRB8DwTfA8H3QPA9EHwPBN8DwfdA8D0QfA8E3wPB90Dw PRB8DwTfA8H3QPA9EHwPBN8DwfdA8D0QfA8E3wPB90DwPRB8DwTfA8H3QPA9EHwPBN8DwfdA8D0Q fA8E3wPB90DwPRB8DwTfA8H3QPA9EHwPBN8DwfdA8D0QfA8E3wPB90DwPRB8DwTfA8H3QPA9EHwP BN8DwfdA8D0QfA8E3wPB90DwPRB8DwTfA8H3QPA9EHwPBN8DwfdA8D0QfA8E3wPB90DwPRB8DwTf A8H3QPA9EHwPBN8DwfdA8D0QfA8E3wPJ90DyPZB8DyTfA8n3QPLf4ye7PdntyW5Pdnuy25Pdnuz2 ZLcnuz3Z7cluT3Z7stuT3Z7s9mS3J7s92e3Jbk92e7Lbk92e7PZktye7PdntyW5Pdnuy25Pdnuz2 ZLcnuz3Z7cluT3Z7stuT3Z7s9mS3J7s92e3Jbk92e7Lbk92e7PZktye7PdntyW5Pdnuy25Pdnuz2 ZLcnuz3Z7cluT3Z7stuT3Z7s9mS3J7s92e3Jbk92e7Lbk92e7PZktye7PdntyW5Pdnuy25Pdnuz2 ZLcnuz3Z7cluT3Z7stuT3Z7s9mS3J7s92e3Jbk92e7Lbk91e7PZitxe7vdjtxW4vdnux24vdXuz2 YrcXu73Y7cVuL3Z7sduL3V7s9mK3F7u92O3Fbi92e7Hbi91e7PZitxe7vdjtxW4vdnux24vdXuz2 YrcXu73Y7cVuL3Z7sduL3V7s9mK3F7u92O3Fbi92e7Hbi91e7PZitxe7vdjtxW4vdnux24vdXuz2 YrcXu73Y7cVuL3Z7sduL3V7s9mK3F7u92O3Fbi92e7Hbi91e7PZitxe7vdjtxW4vdnux24vdXuz2 YrcXu73Y7cVuL3Z7sduL3V7s9mK3F7u92O3Fbi92e7Hbi91e7PZitxe7vdjtzW5vdnuz25vd3uz2 Zrc3u73Z7c1ub3Z7s9ub3d7s9ma3N7u92e3Nbm92e7Pbm93e7PZmtze7vdntzW5vdnuz25vd3uz2 Zrc3u73Z7c1ub3Z7s9ub3d7s9ma3N7u92e3Nbm92e7Pbm93e7PZmtze7vdntzW5vdnuz25vd3uz2 Zrc3u73Z7c1ub3Z7s9ub3d7s9ma3N7u92e3Nbm92e7Pbm90u3/WtvBW7Xb7rW3krdrt817fyVux2 +a5v5a3Y7fJd38pbsdvlu76Vt2K3y3d9K2/Fbpfv+rmy2+W7vpW3YrfLd30rb8Vul+/6Vt6K3S7f 9a26lXzXt+pW8l3fqlvJd32rbiXf9a28FbtdvutbeSt2u3zXt/6nW33+LO+f4c8VVO513p8r+Cy/ 9fuvv/oTn5VfA74H5Ma+lV8Dvgfkxr6VXwO+B+TGvpW/XvkekBv7Vt6K7wG5sW/lrfgekBv7Vt6K 7wG5sW/lrfgekBv7ufI9IDf2rbwV3wNyY9/KW/E9IDf2rbwV3wNyY9/KW/E9IDf2rbwV3wNyY9/K W/E9IDf2c+V7QG7sW3krvgfkxr6Vt+J7QG7sW3krvgfkxr6Vt+J7QG7sW3krvgfkxr6Vt+J7QG7s 58r3gNzYt/JWfA/IjX0rb8X3gNzYt/JWfA/IjX0rb8X3gNzYt/JWfA/IjX0rb8X3gNzYz7Lme0Bu 7Ft1K7mxb9Wt5Ma+VbeSG/tW3Upu7OfK94Dc2LfyVnwPyI19K2/Fbpcb+1beit0uN/atvBW7XW7s W3krdrvc2LfyVux2ubGfK7tdbuxbeSt2u9zYt/JW7Ha5sW/lrdjtcmPfylux2+XGvpW3YrfLjX0r b8Vulxv7ubLb5ca+lbdit8uNfStvxW6XG/tW3ordLjf2rbwVu11u7Ft5K3a73Ni38lbsdrmxnyu7 XW7sW3krdrvc2LfyVux2ubFv5a3Y7XJj38pbsdvlxr6Vt2K3y419K2/Fbpcb+7my2+XGvpW3YrfL jX0rb8Vulxv7Vt6K3S439q26ldzYt+pWcmPfqlvJjX2rbiU39q28FbtdbuxbeSt2u9zYt/JW7Ha5 sW/lrdjtcmPfylux2+XGvpW3YrfLjX0rb8Vulxv7ubLb5ca+lbdit8uNfStvxW6XG/tW3ordLjf2 rbwVu11u7Ft5K3a73Ni38lbsdrmxnyu7XW7sW3krdrvc2LfyVux2ubFv5a3Y7XJj38pbsdvlxr6V t2K3y3d9K2/Fbpfv+rmy2+W7vpW3YrfLd30rb8Vul+/6Vt6K3S7f9a28FbtdvutbeSt2u3zXt/JW 7Hb5rp8ru12+61t5K3a7fNe38lbsdvmub+Wt2O3yXd+qW8l3fatuJd/1rbqVfNe36lbyXd/KW7Hb 5bu+lbdit8t3fStvxW6X7/pW3ordLt/1rbwVu12+61t5K3a7fNe38lbsdvmunyu7Xb7rW3krdrt8 17fyVux2+a5v5a3Y7fJd38pbsdvlu76Vt2K3y3d9K2/Fbpfv+rmy2+W7vpW3YrfLd30rb8Vul+/6 Vt6K3S7f9a28FbtdvutbeSt2u3zXt/JW7Hb5rp8ru12+61t5K3a7fNe38lbsdvmub+Wt2O3yXd/K W7Hb5bu+lbdit8t3fStvxW6X7/q5stvlu76Vt2K3y3d9K2/Fbpfv+lbeit0u3/WtupV817fqVvJd 36pbyXd9q24l3/WtvBW7Xb7rW3krdrt817fyVux2+a5v5a3Y7fJd38pbsdvlu76Vt2K3y3d9K2/F bpfv+rmy2+W7vpW3YrfLd30rb8Vul+/6Vt6K3S7f9a28FbtdvutbeSt2u3zXt/JW7Hb5rp8ru12+ 61t5K3a7fNe38lbsdvmub+Wt2O3yXd/KW7Hb5bu+lbdit8t3fStvxW6X7/q5stvlu76Vt2K3y3d9 K2/Fbpfv+lbeit0u3/WtvBW7Xb7rW3krdrt817fyVux2+a6fK7tdvutbeav/p9s//2d9+TP8ucLe 8aXfnytcdfr3X3/1PZ+VXwO+B+TGvpVfA74H6MYG3digGxt0Y4NubNCNDbqxQTc26MYG3digGxt0 Y4NubNCNDbqxQTc26MYG3digGxt0Y4NubNCNDbqxQTc26MYG3digGxt0Y4NubNCNDbqxQTc26MYG 3digGxt0Y4NubNCNDbqxQTc26MYG3digGxt0Y4NubNCNDbqxQTc26MYG3digGxt0Y4NubNCNDbqx QTc26MYG3digGxt0Y4NubNCNDbqxQTc26MYG3digGxt0Y4NubNCNDbqxQTc26MYG3digGxt0Y4Nu bNCNDbqxQTc26MYG3digGxt0Y4NubNCNDbqxQTc26MYG3digGxt0Y4NubNCNDbqxQTc26MYG3dig Gxt0Y4NubNCNDbqxQTc26MYG3dj4Xjf2D6tuRd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg 7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd81 6LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3 DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0 XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsG fdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3Dfqu Qd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+ a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg 7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd81 6LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3 DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0 XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdcodnux2+m7Bn3XoO8a9F2DvmvQ dw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a 9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7 Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36 rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2D vmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3X oO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHf Nei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQdw36rkHfNei7Bn3XoO8a9F2DvmvQ dw36rkHfNei7Bn3XoO8aw26nwxp0WIMOa9BhDTqsQYc16LAGHdagwxp0WIMOa9BhDTqsQYc16LAG Hdagwxp0WIMOa9BhDTqsQYc16LDGHzmsnz+r+DN8X4FVn/9Aed9X4Hw+dP6EVxz0XYO+a9B3Dfqu Qd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+ a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg 7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd81 6LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3 DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0 XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsG fdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3Dfqu Qd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+ a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg 7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd81 6LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3 DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0 XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsG fdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3Dfqu Qd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+ a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg 7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd81 6LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3 DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0 XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd816LsG fdeg7xr0XYO+a9B3DfquQd816LsGfdeg7xr0XYO+a9B3DfquQd81LrudDmvQYQ06rEGHNeiwBh3W pMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmH NemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvS YU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOa dFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemw Jh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06 rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiT DmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3WpMOadFiTDmvSYU06rEmHNemwJh3W pMOa3+uwfn608s/wfYXO+y/sfvTxu/du+fL7r7/6w2fl14DvAfquSd816bsmfdek75r0XZO+a9J3 TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0 XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsm fdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3Tfqu Sd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+ a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek 75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd81 6bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3 TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0 XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bt+rrwVu52+a9J3TfquSd816bsmfdek 75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd81 6bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3 TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0 XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsm fdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3Tfqu Sd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+ a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek 75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd816bsmfdek75r0XZO+a9J3TfquSd81 6bsmfdek75r0XZO+a9J3zWG302FNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRY kw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd 1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJ hzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r 0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTD mnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXp sCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFN OqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRY kw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd 1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJ hzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r 0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTD mnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXp sCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r0mFNOqxJhzXpsCYd1qTDmnRYkw5r/g8O 6+fPq/4M31cwvrw/cfO+seD7nUe///qr/+nT8ovABwGB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTw mgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJ vCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhN Aq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRe k8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB 1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J 4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8Br EnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yTwmgRek8BrEnhNAq9J4DUJvCaB1yLw WgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUI vBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgt Aq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRe i8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB 1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F 4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8Br EXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLwWgRei8BrEXgtAq9F4LUIvBaB1yLw Wt8LvP5h5a3Y7YRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBr EWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLE WoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUI sRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWIt QqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRY ixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh 1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxF iLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBr EWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLE WoRYixBrEWItQqyfK2/FbifEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh 1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxF iLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBr EWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLE WoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUI sRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWIt QqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRY ixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh 1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxF iLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBr EWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLE Wn8EsX7+rPrP8Y2F8zO8z/vGwp9P8/X7r7/6E5+WXwQ+CCi8FoXXovBaFF6LwmtReC0Kr0XhtSi8 FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0K r0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6L wmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXX ovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0Xh tSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtR eC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBa FF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8 FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0K r0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6L wmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXX ovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReC0Kr0XhtSi8FoXXovBaFF6LwmtReK3DbifE WoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUI sRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWIt QqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRY ixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh 1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxF iLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBr EWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrEWItQqxFiLUIsRYh1iLE WoRYixBrEWItQqxFiLUIsRYh1iLEWoRYixBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJ sTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2Jt QqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRY mxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh 1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxN iLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBr E2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE 2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJ sTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2Jt QqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRY mxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh 1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxN iLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBr E2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE 2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJ sTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2Jt QqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2L9XHkrdjsh1ibE2oRYmxBr E2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE 2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJ sTYh1ibE2oRY+09ArJ9/XfPngAX6zpd+sMBa2b//+qs/+rT6IlB4bQqvTeG1Kbw2hdem8NoUXpvC a1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem 8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1 Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4 bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoU XpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2 hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqv TeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvC a1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1Kbw2hdem8NoUXpvCa1N4bQqvTeG1h91OiLUJ sTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2Jt QqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRY mxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh 1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxN iLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBr E2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE 2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJ sTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2Jt QqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRY mxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh 1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxN iLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBr E2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE 2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJ sTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2Jt QqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRY mxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh 1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxN iLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibE2oRYmxBrE2JtQqxNiLUJsTYh1ibEOoRYhxDr EGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHE OoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUI sQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGId QqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRY hxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h 1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxD iHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDr EGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHE OoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUI sQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGId QqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRY hxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h 1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxD iHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsc5/QKy1/hyw0F6R58FCZ+38/ddf8dPyi8AHAYXXofA6 FF6HwutQeB0Kr0PhdSi8DoXXofA6FF6HwutQeB0Kr0PhdSi8DoXXofA6FF6HwutQeB0Kr0PhdSi8 DoXXofA6FF6HwutQeB0Kr0PhdSi8DoXXofA6FF6HwutQeB0Kr0PhdSi8DoXXofA6FF6HwutQeB0K r0PhdSi8DoXXofA6FF6HwutQeB0Kr0PhdSi8DoXXz5W34oOAwutQeB0Kr0PhdSi8DoXXofA6FF6H wutQeB0Kr0PhdSi8DoXXofA6FF6HwutQeB0Kr0PhdSi8DoXXofA6FF6HwutQeB0Kr0PhdSi8DoXX ofA6FF6HwutQeB0Kr0PhdSi8DoXXofA6FF6HwutQeB0Kr0PhdSi8DoXXofA6FF6HwutQeJ0/Ibz+ 0apbEWIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h 1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxD iHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDr EGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHE OoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUI sQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGId QqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRY hxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h 1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxD iHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDr EGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHE OoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUI sQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGId QqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRY hxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h 1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxD iHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDr EGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHE OoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUI sQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGId QqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRY hxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h 1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxD iHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDr EGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHE OoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUI sQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGIdQqxDiHUIsQ4h1iHEOoRYhxDrEGId QqxDiHUIsQ4h1iHEOoRYhxDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEu QqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKs ixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ 6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsi xLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6 CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugix LkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5C rIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyL EOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDr IsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLE ugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoI sS5CrIsQ6yLEugixLkKsixDrIsS6CLEuQqyLEOsixLoIsS5CrIsQ6yLEugixLkKsixDrIsS6CLEu QqyLEOsixLoIsS5CrIsQ6yLEur4XYv38aO0/Ayz4+R/T58uXH338rr7s/PL7r7/6j0/LBwGF10Xh dVF4XRReF4XXReF1UXhdFF4XhddF4XVReF0UXheF10XhdVF4XRReF4XXReF1UXhdFF4XhddF4XVR eF0UXheF10XhdVF4XRReF4XXReF1UXhdFF4XhddF4XVReF0UXheF10XhdVF4XRReF4XXReF1UXhd yQcBIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRY FyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch 1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFg/V96K 3U6IdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZF iHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1 EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFi XYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2E WBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgX IdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHW RYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWI dRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHUR Yl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJd hFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRY FyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch 1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZF iHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1 EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFi XYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2E WBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgX IdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHW RYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWI dRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHUR Yl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJd hFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRY FyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch 1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZF iHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1 EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFi XYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2E WBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgX IdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHW RYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWI dRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHUR Yl2EWBch1kWIdRFiXYRYFyHWRYh1EWJdhFgXIdZFiHURYl2EWBch1kWIdRFiXYRYFyHWRYh1EWJd hFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRY NyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch 1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZN iHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1 E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi 3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2E WDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3 IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHW TYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2I dRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUT Yt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2Ld hFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRY NyHW/b0Q63+s7HZ6qZte6qaXuumlbnqpm17qppe66aVueqmbXuqml7rppW56qZte6qaXuumlbnqp m17qppe66aVueqmbXur+Xi/186N1/hywcM3kv8PCudf5Ayy8CbFuQqybEOsmxLoJsW5CrJsQ6ybE ugmxbkKsmxDrJsS6CbFuQqybEOsmxLoJsW5CrJsQ6ybEugmxbkKsmxDrJsS6CbFuQqybEOsmxLoJ sW5CrJsQ6ybEugmxbkKsmxDrJsS6CbFuQqybEOsmxLoJsW5CrJsQ6ybEugmxbkKsmxDrJsS6CbFu QqybEOsmxLoJsW5CrJsQ6ybEugmxbkKsmxDrJsS6CbFuQqybEOsmxLoJsW5CrJsQ6ybEugmxbkKs mxDrJsS6CbFuQqybEOsmxLoJsW5CrJsQ6ybEugmxbkKsnytvxQcBIdZNiHUTYt2EWDch1k2IdRNi 3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2E WDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3 IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHW TYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2I dRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUT Yt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2Ld hFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRY NyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch 1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZN iHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1 E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi 3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2E WDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3 IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHW TYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2I dRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUT Yt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2Ld hFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRY NyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch 1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZN iHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1 E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi 3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2E WDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3 IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHW TYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2I dRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUT Yt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2Ld hFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRY NyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch 1k2IdRNi3YRYNyHWTYh1E2LdhFg3IdZNiHUTYt2EWDch1k2I9RBiPYRYDyHWQ4j1EGI9hFgPIdZD iPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1 EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBi PYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2E WA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgP IdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHW Q4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI 9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQ Yj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9 hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRY DyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h 1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZD iPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1 EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj3fC7H+YeWt2O30 Ug+91EMv9dBLPfRSD73UQy/10Es99FIPvdRDL/XQSz30Ug+91EMv9dBLPfRSD73UQy/10Es99FIP vdRDL/XQSz30Ug+91EMv9dBLPfRSD73UQy/10Es99FIPvdRDL/XQSz30Ug+91EMv9dBLPfRSD73U Qy/10Es99FIPvdRDL/XQSz30Ug+91EMv9dBLPfRSD73UQy/10Es99FIPvdRDL/XQSz30Ug+91EMv 9dBLPfRSD73UQy/10Es99FIPvdRDL/XQSz30Ug+91EMv9dBLPfRSD73UQy/10Es99FI/V96K3U4v 9dBLPfRSD73UQy/10Es99FLPf3ipdT9+8fOPb7797lf/8vGr3/7rv/3m2+++/fUPv/7qBx/58c1P //7Hf/Pxl//ws598VH787Tc/Ppk//Luf/eNPPz7//yg+n8gff/2Ln/zyn/75rz4z/rO4fvTxu89f b7F+//VX/LT8IvBBQIj1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZD iPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1 EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBi PYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2E WA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgP IdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHW Q4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI 9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQ Yj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9 hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRY DyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h 1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZD iPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1 EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBi PYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2E WA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgP IdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHW Q4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI 9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQ Yj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9 hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRY DyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h 1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZD iPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1 EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBi PYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2E WA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgP IdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHW Q4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI 9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQ Yj2EWA8h1kOI9RBiPYRYDyHWQ4j1EGI9hFgPIdZDiPUQYj2EWC8h1kuI9RJivYRYLyHWS4j1EmK9 hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRY LyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h 1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZL iPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1 EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJi vYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2E WC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgv IdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHW S4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI 9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUS Yr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9 hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRY LyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h 1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZL iPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1 EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJi vYRYLyHWS4j1EmK9hFgvIdZLiPUSYr2EWC8h1kuI9RJivYRYLyHWS4j1EmK9hFgvIdZLiPVz5a3Y 7YRYLyHWS4j1EmK9hFgvIdZb7HZ6qZde6qWXeumlXnqpl17qpZd66aVeeqmXXuqll3rppV56qZde 6qWXeumlXnqpl17qpZd66aVeeqmXXuqll3rppV56qZde6qWXeumlXnqpl17qpZd66aVeeqmXXuql l3rppV56qZde6qWXeumlXnqpl17qpZd66aVeeqmXXuqll3rppV56qZde6qWXeumlXnqpl17qpZd6 6aVeeqmXXuqll3rppV56qZde6qWXeumlXnqpl17qpZd66aVeeqmXXuqll3rppV56qZde6qWXeuml Xnqpl17qpZd66aVeeqmXXuqll3rppV56qZde6qWXeumlXnqpl17qpZd66aVeeqmXXuqll3rppV56 qZde6qWXeumlXnqpl17qpZd66aVeeqmXXuqll3rppV56qZde6qWXeumlXnqpl17qpZd66aVeeqmX Xuqll3rppV56qZde6qWXeumlXnqpl17qpZd66aVeeqmXXuqll3rppV56qZde6qWXeumlXnqpl17q pZd66aVeeqmXXuqll3rppV56qZde6qWXeumlXnqpl17qpZd66aVeeqmXXuqll3rppV56qZde6qWX ev+El/r51/3l4xc///jm2+9+9S8fv/rtv/7bb7797ttf//Drr37wkR/f/PTvf/w3H3/5Dz/7yUfl x99+8+OT+cO/+9k//vSjPp+8J+vjr3/xk1/+0z//VX2p+NI/+vhdrbP6919/9Uefll8EPggIsV5C rJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyX EOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDr JcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXE egmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJ sV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFe QqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKs lxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ 6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOsl xHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6 CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmx XkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5C rJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyX EOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDr JcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXE egmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJ sV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFe QqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKs lxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ 6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOsl xHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6 CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmx XkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5C rJcQ6yXEegmxXkKslxDrJcR6CbFeQqyXEOslxHoJsV5CrFcQ6/oiiPWt33+rt37/rd76/bd66/ff 6q3ff6u3fv+t3vr9t3rr99/qrbwVuv2tvBW6/a28Fbr9rbwVuv2tvBW6/a28Fbr9rbwVuv2tvBW6 /a28Fbr9rbwVuv2tvBW6/a28Fbr9rbwVuv2tvBW6/a28Fbr9rbwVuv2tvBW6/a28Fbr9rbwVuv2t vBW6/a28Fbr9rbwVuv2tvBW6/a28Fbr9rbwVuv2tvBW6/a28Fbr9rbwVuv2tvBW6/a28Fbr9rbwV uv2tvBW6/a28Fbr9rbwVuv2tvBW6/a28Fbr9rbwVuv2tvBW6/a28Fbr9rbwVuv2tvBW6/a28Fbr9 rbwVuv2tvBW6/a28Fbr9rbqVINa36laCWN+qWwlifatuJYj1rbqVINa38lbsdkGsb+Wt2O2CWN/K W7HbBbG+lbditwtifStvxW4XxPpW3ordLoj1rbwVu10Q6+fKbhfE+lbeit0uiPWtvBW7XRDrW3kr drsg1rfyVux2Qaxv5a3Y7YJY38pbsdsFsX6u7HZBrG/lrdjtgljfylux2wWxvpW3YrcLYn0rb8Vu F8T6Vt6K3S6I9a28FbtdEOvnym4XxPpW3ordLoj1rbwVu10Q61t5K3a7INa38lbsdkGsb+Wt2O2C WN/KW7HbBbF+rux2Qaxv5a3Y7YJY38pbsdsFsb6Vt2K3C2J9q24liPWtupUg1rfqVoJY36pbCWJ9 K2/FbhfE+lbeit0uiPWtvBW7XRDrW3krdrsg1rfyVux2Qaxv5a3Y7YJY38pbsdsFsX6u7HZBrG/l rdjtgljfylux2wWxvpW3YrcLYn0rb8VuF8T6Vt6K3S6I9a28FbtdEOvnym4XxPpW3ordLoj1rbwV u10Q61t5K3a7INa38lbsdkGsb+Wt2O2CWN/KW7HbBbF+rux2Qaxv5a3Y7YJY38pbsdsFsb6Vt2K3 C2J9K2/FbhfE+lbeit0uiPWtvBW7XRDr58puF8T6Vt6K3S6I9a28FbtdEOtbeSt2uyDWt+pWgljf qlsJYn2rbiWI9a26lSDWt/JW7HZBrG/lrdjtgljfylux2wWxvpW3YrcLYn0rb8VuF8T6Vt6K3S6I 9a28FbtdEOvnym4XxPpW3ordLoj1rbwVu10Q61t5K3a7INa38lbsdkGsb+Wt2O2CWN/KW7HbBbF+ rux2Qaxv5a3Y7YJY38pbsdsFsb6Vt2K3F7tdEOtbeSt2uyDWt/JW7HZBrG/lrdjtgljfylux2wWx vpW3YrcLYn0rb8VuF8T6ubLbBbG+lbditwtifStvxW4XxPpW3ordLoj1rbwVu10Q61t5K3a7INa3 8lbsdkGs64sg1rfqVoJY36pbCWJ9q24liPWtupUg1rfyVux2Qaxv5a3Y7YJY38pbsdsFsb6Vt2K3 C2J9K2/FbhfE+lbeit0uiPWtvBW7XRDr58puF8T6Vt6K3S6I9a28FbtdEOtbeSt2uyDWt/JW7HZB rG/lrdjtgljfylux2wWxfq7sdkGsb+Wt2O2CWN/KW7HbBbG+lbditwtifStvxW4XxPpW3ordLoj1 rbwVu10Q6+fKbhfE+lbeit0uiPWtvBW7XRDrW3krdrsg1rfyVux2Qaxv5a3Y7YJY38pbsdsFsX6u 7HZBrG/lrdjtgljfylux2wWxvpW3YrcLYn2rbiWI9a26lSDWt+pWgljfqlsJYn0rb8VuF8T6Vt6K 3S6I9a28FbtdEOtbeSt2uyDWt/JW7HZBrG/lrdjtfwJi/aOVt2K3y0v9XNnt8lLfylux2+WlvpW3 YrfLS30rb8Vul5f6Vt6K3S4v9a28FbtdXupbeSt2u7zUz5XdLi/1rbwVu11e6lt5K3a7vNS38lbs dnmpb+Wt2O3yUt/KW7Hb5aW+lbdit8tL/VzZ7fJS38pbsdvlpb6Vt2K3y0t9K2/FbpeX+lbeit0u L/WtvBW7XV7qW3krdru81M+V3S4v9a28FbtdXupbeSt2u7zUt/JW7HZ5qW/VreSlvlW3kpf6Vt1K XupbdSt5qW/lrdjt8lLfylux2+WlvpW3YrfLS30rb8Vul5f6Vt6K3S4v9a28FbtdXupbeSt2u7zU z5XdLi/1rbwVu11e6lt5K3a7vNS38lbsdnmpb+Wt2O3yUt/KW7Hb5aW+lbdit8tL/VzZ7fJS38pb sdvlpb6Vt2K3y0t9K2/FbpeX+lbeit0uL/WtvBW7XV7qW3krdru81M+V3S4v9a28FbtdXupbeSt2 u7zUt/JW7HZ5qW/lrdjt8lLfylux2+WlvpW3YrfLS/1c2e3yUt/KW7Hb5aW+lbdit8tLfStvxW6X l/pW3Upe6lt1K3mpb9Wt5KW+VbeSl/pW3ordLi/1rbwVu11e6lt5K3a7vNS38lbsdnmpb+Wt2O3y Ut/KW7Hb5aW+lbdit8tL/VzZ7fJS38pbsdvlpb6Vt2K3y0t9K2/FbpeX+lbeit0uL/WtvBW7XV7q W3krdru81M+V3S4v9a28FbtdXupb/9OtPn/W8fGLn3988+13v/qXj1/99l//7Tfffvftr3/49Vc/ +MiPb3769z/+m4+//Ief/eSj8uNvv/nxyfzh3/3sH3/6Uf2+3UZ9/PUvfvLLf/rnv6p635H8Rx+/ q3Mjf//1V3/i0/KLwAeBINa38ovAB4Eg1rfyi8AHgSDWt/IXLB8EgljfylvxQSCI9a28FR8Egljf ylvxQSCI9a28FR8Eglg/Vz4IBLG+lbfig0AQ61t5Kz4IBLG+lbfig0AQ61t5Kz4IBLG+lbfig0AQ 61t5Kz4IBLGuL4JY36pbCWJ9q24liPWtupUg1rfqVoJY38pb8UEgiPWtvBUfBIJY38pb8UEgiPWt vBUfBIJY38pb8UEgiPWtvBUfBIJY38pb8UEgiPVz5YNAEOtbeSs+CASxvpW34oNAEOtbeSs+CASx vpW34oNAEOtbeSs+CASxvpW34oNAEOvnygeBINa38lZ8EAhifStvxW4XxPpW3ordLoj1rbwVu10Q 61t5K3a7INa38lbsdkGsnyu7XRDrW3krdrsg1rfyVux2Qaxv5a3Y7YJY38pbsdsFsb6Vt2K3C2J9 K2/FbhfE+rmy2wWxvpW3YrcLYn0rb8VuF8T6Vt6K3S6I9a26lSDWt+pWgljfqlsJYn2rbiWI9a28 FbtdEOtbeSt2uyDWt/JW7HZBrG/lrdjtgljfylux2wWxvpW3YrcLYn0rb8VuF8T6ubLbBbG+lbdi twtifStvxW4XxPpW3ordLoj1rbwVu10Q61t5K3a7INa38lbsdkGsnyu7XRDrW3krdrsg1rfyVux2 Qaxv5a3Y7YJY38pbsdsFsb6Vt2K3C2J9K2/FbhfE+rmy2wWxvpW3YrcLYn0rb8VuF8T6Vt6K3S6I 9a28FbtdEOtbeSt2uyDWt/JW7HZBrJ8ru10Q61t5K3a7INa38lbsdkGsb+Wt1O1BiDUIsQYh1iDE GoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUI sQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGIN QqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRY gxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh 1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxB iDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBr EGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDE GoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUI sQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGIN QqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRY gxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh 1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxB iDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBr EGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDE GoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUI sQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGINQqxBiDUIsQYh1iDEGoRYgxBrEGIN QqxBiDUIsQYh1iDEGoRYgxBrEGINQqxR7PZitxNiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1 CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBi DUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqE WIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEG IdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKs QYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQ axBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYg xBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1 CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBi DUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqE WIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEG IdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKs QYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQ axBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYg xBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1 CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBi DUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqE WIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBiDUKsQYg1CLEG IdYgxBqEWIMQaxBiDUKsQYg1CLEGIdYgxBqEWIMQaxBijc1up5ca9FKDXmrQSw16qUEvNeilBr3U oJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEv NeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQ Sw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca 9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeil Br3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16 qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKD XmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3U oJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEv NeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQ Sw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca 9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQSw16qUEvNeilBr3UoJca9FKDXmrQS016qUkvNeml Jr3UpJea9FKTXmrSS016qUkvNemlJr3UpJea9FKTXmrSS016qUkvNemlJr3UpJea9FKTXmrSS016 qUkvNemlJr3UpJea9FKTXmrSS016qUkvNemlJr3UpJea9FKTXmrSS016qUkvNemlJr3UpJea9FKT XmrSS016qUkvNemlJr3U/B+81M+fd3784ucf33z73a/+5eNXv/3Xf/vNt999++sffv3VDz7y45uf /v2P/+bjL//hZz/5qPz4229+fDJ/+Hc/+8efflR/ef8N2cdf/+Inv/ynf/6r2uecLz/6+F1/+Szl 33/91f/0aflF0IMgCbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEm IdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKs SYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQ axJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYk xJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1 CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJi TUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqE WJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEm IdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKs SYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQ axJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYk xJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1 CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJi TUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqE WJMQaxJiTUKsSYg1CbEmIdbPlbditxNiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYk xJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1 CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJi TUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqE WJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEm IdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKs SYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQ axJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYk xJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1 CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJi TUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqE WJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEm IdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKs SYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQ axJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYk xJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1 CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJi TUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqE WJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEm IdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKs SYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQ axJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYk xJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1 CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJi TUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqE WJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEm IdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKs SYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQ axJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYk xJqEWJMQaxJiTUKsSYg1CbEmIdYkxJqEWJMQaxJiTUKsSYg1CbEmIdYixFqEWIsQaxFiLUKsRYi1 CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFi LUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqE WIsQaxFirS/q9qKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRS i15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa9 1KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlF L7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q 0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKX WvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7Xo pRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0Ust eqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRS i15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa9 1KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlF L7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q 0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKX WvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7Xo pRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0Ust eqlFL7XopRa91KKXWvRSi15q0UsteqmfK2/FbqeXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q 0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKX WvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0UsteqlFL7XopRa91KKXWvRSi15q0Usteqn1vV7q 50e7Pn7x849vvv3uV//y8avf/uu//ebb77799Q+//uoHH/nxzU///sd/8/GX//Czn3xUfvztNz8+ mT/8u5/9408/3i+Zk/Xx17/4yS//6Z//quOe/vKjj999XnZ9+f3XX/3h0/KLwAcBIdYixFqEWIsQ axFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYi xFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1 CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFi LUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqE WIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEW IdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKs RYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQ axFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYi xFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1 CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFi LUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqE WIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEW IdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKs RYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQ axFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYi xFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1 CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFi LUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqE WIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEW IdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKs RYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQ axFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYi xFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1 CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFi LUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqE WIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxFiLUKsRYi1CLEW IdYixFqEWIsQaxFiLUKsRYi1CLEWIdYixFqEWIsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKs TYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQ axNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYm xNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1 CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNi bUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqE WJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2 IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKs TYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQ axNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYm xNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1 CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNi bUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqE WJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2 IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKs TYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQ axNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYm xNqEWJsQaxNibUKsTYj1c+Wt2O2EWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2 IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKs TYi1CbE2IdYmxNqEWJsQaxNibUKsTYi1CbE2IdYmxNqEWJsQaxNibUKs/b0Q6x9W3ordTi+16aU2 vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqp TS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0Upte atNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSm l9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+1 6aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNL bXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0 UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2 vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqp TS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0Upte atNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSm l9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+1 6aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNL bXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0 UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2 vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqp TS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdSml9r0Upte atNLbXqpTS+16aU2vdSml9r0UpteatNLbXqpTS+16aU2vdT+dy/1c+/++MXPP7759rtf/cvHr377 r//2m2+/+/bXP/z6qx985Mc3P/37H//Nx1/+w89+8lH58bff/Phk/vDvfvaPP/2o912esz7++hc/ +eU//fNfvX+f+eXLjz5+976x4Zfff/2VPi+/CnwRUGJtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxN ibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJr U2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE 2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUp sTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2Jt SqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRY mxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl 1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxN ibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJr U2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE2pRYmxJrU2JtSqxNibUpsTYl1qbE 2pRYmxJrU2JtSqxNibUpsTYl1qbEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUo sQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGId SqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRY hxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l 1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxD iXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLr UGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHE OpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUo sQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGId SqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRY hxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l 1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxD iXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLr UGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHE OpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUo sQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGId SqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRY hxLrUGIdSqyfK2/FbqfEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHE OpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUo sQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGId SqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRY hxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l 1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxD iXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLr UGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHE OpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUo sQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGId SqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRY hxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l 1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxD iXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLr UGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHE OpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUo sQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGId SqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRY hxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpRYhxLrUGIdSqxDiXUosQ4l 1qHEOpRYhxLrUGIdSqxDiXUosQ4l1qHEOpvdTi916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdSh lzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy91 6KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBL HXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0 Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUO vdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqp Qy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode 6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdSh lzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy91 6KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBLHXqpQy916KUOvdShlzr0Uode6tBL HXqpQy916KUOvdShlzr0Uode6tBLHXqpi17qope66KUueqmLXuqil7ropS56qYte6qKXuuilLnqp i17qope66KUueqmLXuqil7ropS56qYte6qKXuuilLnqpi17qope66KUueqmLXuqil7ropS56qYte 6qKXuuilLnqpi17qope66KUueqmLXuqil7ropS56qYte6qKXuuilLnqpi17qope66KUueqmLXuqi l7ropS56qYte6qKXuuilLnqpi17qope66KUueqmLXuqil7ropS56qYte6qKXuuilLnqpi17qope6 6KUueqmLXuqil7ropS56qYte6qKXuuilLnqpi17qope66KUueqmLXuqil7ropS56qYte6qKXuuil Lnqpi17qope66KUueqmLXuqil7ropS56qYte6qKXuuilLnqpi17qope66KUueqmLXuqil7ropS56 qYte6qKXuuilLnqpi17qope66KUueqmLXuqil7ropS56qYte6qKXuuilLnqpi17qope66KUueqmL Xuqil7ropS56qYte6qKXuuilLnqpi17qope66KUueqnrj73Uz5/2fPzi5x/ffPvdr/7l41e//dd/ +82333376x9+fny9j//4N7/9b9/+0cd/8PHXv/zpx//62//6X9//9d/+9+8+/9b9/tbPD33+1R/9 vX/x///4//iP//N/+79+89v/+r/kly/1+cY9/+XzH2kz/V/u5y/vH/7v/8ef53N8+WyK9eXLX3z5 /LHX/NH//vyRn//B8hefH+i9+y2ff39/Pqr+4uPLn+fT+8d//2//N3tX39y2zeTv32Qm3wHjyc0k PZuHVxLU2Y1liUrd2o5ruUmaNpOhJVpmJJE+knJq3zzf/QC9WaBAiEpsyZ7HaadRxSVE7v72BYvF IvMTAP6jd+4nXT8tpFt0/ZH++Ulq/l8n1Q8H796C0/1Dr3laPTz+DCQgtiDdQhwgVIGswuhzAnph moGNDbDxnxvCasz8ryW/YLdf7B/tvfsovrJBGvSClvjyNPHTC/GNM/1m/8hq+0E/jsS3fPbb60Ff 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 ------=_NextPart_000_0016_01C3059B.9D70C8F0-- From tss@iki.fi Fri Apr 18 14:24:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 18 Apr 2003 14:24:27 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A30A323845 for ; Fri, 18 Apr 2003 14:24:27 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 5A9555E017F5; Fri, 18 Apr 2003 14:24:27 +0300 (EEST) Subject: [dovecot] Re: another bug From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <20030418091456.5410E754003@mail1.bppiac.hu> References: <3E9E78C5.4000501@bnap.hu> <1050588761.16342.146.camel@hurina> <20030418091456.5410E754003@mail1.bppiac.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050665067.16342.269.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 18 Apr 2003 14:24:27 +0300 X-archive-position: 618 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 621 Status: O On Fri, 2003-04-18 at 12:14, Farkas Levente wrote: > hi, > after I push the delete button on a long mail in mozilla the mail is not > deleted and after tha mozilla don't show any other messages in that folder. > I have to restart mozilla. but even after the restart I still can't remove > the message. this already happend earlier, but now here is the rawlog of the > session. from OE6 I can delete the same message. I didn't notice anything wrong in the rawlog. Except that it didn't contain any tries to delete the message, no \Deleted flag change and no EXPUNGE command. From overflow@eurielec.etsit.upm.es Fri Apr 18 15:00:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 18 Apr 2003 15:00:36 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from eurielec.etsit.upm.es (uno.eurielec.etsit.upm.es [138.100.31.227]) by danu.procontrol.fi (Postfix) with ESMTP id D234E23845 for ; Fri, 18 Apr 2003 15:00:35 +0300 (EEST) Received: from dos.eurielec.etsit.upm.es (dos.eurielec.etsit.upm.es [138.100.31.228]) by eurielec.etsit.upm.es (Postfix) with SMTP id E05921A73; Fri, 18 Apr 2003 14:04:56 +0200 (CEST) Received: by dos.eurielec.etsit.upm.es (sSMTP sendmail emulation); Fri, 18 Apr 2003 14:00:34 +0200 Date: Fri, 18 Apr 2003 14:00:34 +0200 From: Jaime Medrano To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9-test5 Message-ID: <20030418120034.GA8148@eurielec.etsit.upm.es> References: <1050507758.16338.58.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1050507758.16338.58.camel@hurina> User-Agent: Mutt/1.5.4i X-archive-position: 619 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: overflow@eurielec.etsit.upm.es Precedence: bulk X-list: dovecot X-UID: 622 Status: O It seems to have problems when calculating recent messages. When a mail comes to a mailbox the recent count is sometimes an arbitrary number, bigger than the actual messages that have arriven. Regards, Jaime. From eskimoe@ananzi.co.za Sun Apr 20 03:10:03 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 20 Apr 2003 03:10:03 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-171-144.reverse.qdsl-home.de [212.202.171.144]) by danu.procontrol.fi (Postfix) with SMTP id C8BB423845 for ; Sun, 20 Apr 2003 03:10:02 +0300 (EEST) Received: (qmail 19674 invoked by uid 1000); 20 Apr 2003 00:11:28 -0000 Date: Sun, 20 Apr 2003 02:11:28 +0200 From: Moe Wibble To: Dovecot List Subject: [dovecot] Re: errors Message-ID: <20030420001128.GA18878@woom.net> Mail-Followup-To: Moe Wibble , Dovecot List References: <3E9D1B27.7090201@bnap.hu> <20030416134628.GA13126@woom.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030416134628.GA13126@woom.net> X-archive-position: 620 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 623 Status: O Content-Length: 1454 On Wed, Apr 16, 2003 at 03:46:28PM +0200, Moe Wibble wrote: > On Wed, Apr 16, 2003 at 10:58:15AM +0200, Farkas Levente wrote: > > hi, > > in the yesterday cvs, an internal error in the imap message appear in > > the client side and in the maillog: > > ------------------------- > > Apr 16 10:01:42 red imap(zgabor): Corrupted index file > > /home/zgabor/Maildir/.Lists.Bugtraq/.imap.index: Invalid seen messages > > count (284 < 285) > > Apr 16 10:01:43 red imap(zgabor): Corrupted index file > > /home/zgabor/Maildir/.Lists.Linux/.imap.index: Invalid seen messages > > count (191 < 192) > > Apr 16 10:01:44 red imap(zgabor): Corrupted index file (in-memory index > > for /home/zgabor/Maildir/.Lists.Linux): Filename mismatch for UID 1: > > 1050448183.2238_1.red.int.bppiac.hu vs 1050321835.21498_1.red.int.bppiac.hu > > ------------------------- > > ACK. > I'm getting similar errors: > Apr 16 15:22:13 rafter imap(moe): Corrupted index file //.INBOX/.imap.index: index.next_uid (441) > uidlist.nex > t_uid (440) > > Yesterday's CVS version running here. > Removing the '.imap.index'-file has stopped the errors so far. > > Haven't noticed any other side effects, yet. The bug has just hit me again: Apr 20 02:08:00 rafter imap(moe): Corrupted index file //.INBOX/.imap.index: index.next_uid (495) > uidlist.nex t_uid (494) Removing .imap.index has muted it once again. Is this problem being worked on? regards -- MW From timhunt@users.sf.net Mon Apr 21 04:25:43 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 04:25:43 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from timhunt.net (ns1.timhunt.net [216.27.147.130]) by danu.procontrol.fi (Postfix) with ESMTP id 99F4B23845 for ; Mon, 21 Apr 2003 04:25:42 +0300 (EEST) Received: from users.sf.net (sun [192.168.10.100]) (authenticated) by timhunt.net (8.11.6/8.11.6) with ESMTP id h3L1PdC01464; Sun, 20 Apr 2003 21:25:39 -0400 Message-ID: <3EA34893.3070604@users.sf.net> Date: Sun, 20 Apr 2003 21:25:39 -0400 From: Tim Hunt User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Patch for zero content-length Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-MailScanner: Found to be clean X-archive-position: 621 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: timhunt@users.sf.net Precedence: bulk X-list: dovecot X-UID: 624 Status: O Content-Length: 3016 mbox-index.c uses a zero content length as a flag for an invalid Content-Length: header. Unfortunately zero is also a valid value for Content-Length. The patch below attempts to address the problem. *** mbox-index.h.orig Tue Apr 15 09:04:02 2003 --- mbox-index.h Sun Apr 20 11:42:12 2003 *************** *** 19,24 **** --- 19,25 ---- struct istream *input; uoff_t content_length; int set_read_limit; + unsigned int content_length_good:1; }; int mbox_set_syscall_error(struct mail_index *index, const char *function); *** mbox-index.c.orig Mon Mar 24 05:52:44 2003 --- mbox-index.c Sun Apr 20 12:41:16 2003 *************** *** 264,277 **** start_offset = ctx->input->v_offset; i_stream_set_read_limit(ctx->input, 0); ! end_offset = start_offset + ctx->content_length; ! if (ctx->content_length == 0 || !mbox_verify_end_of_body(ctx->input, end_offset)) { ! if (ctx->content_length != 0) i_stream_seek(ctx->input, start_offset); mbox_skip_message(ctx->input); end_offset = ctx->input->v_offset; ctx->content_length = end_offset - start_offset; } i_stream_seek(ctx->input, start_offset); --- 264,280 ---- start_offset = ctx->input->v_offset; i_stream_set_read_limit(ctx->input, 0); ! end_offset = start_offset; ! if ( ctx->content_length_good ) ! end_offset += ctx->content_length; ! if (!ctx->content_length_good || !mbox_verify_end_of_body(ctx->input, end_offset)) { ! if (ctx->content_length_good ) i_stream_seek(ctx->input, start_offset); mbox_skip_message(ctx->input); end_offset = ctx->input->v_offset; ctx->content_length = end_offset - start_offset; + ctx->content_length_good = TRUE; } i_stream_seek(ctx->input, start_offset); *************** *** 301,311 **** --- 304,316 ---- strcasecmp(hdr->name, "Content-Length") == 0) { /* manual parsing, so we can deal with uoff_t */ ctx->content_length = 0; + ctx->content_length_good = TRUE; for (i = 0; i < hdr->value_len; i++) { if (hdr->value[i] < '0' || hdr->value[i] > '9') { /* invalid */ ctx->content_length = 0; + ctx->content_length_good = FALSE; break; } From timhunt@users.sf.net Mon Apr 21 04:37:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 04:37:34 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from timhunt.net (ns1.timhunt.net [216.27.147.130]) by danu.procontrol.fi (Postfix) with ESMTP id F286123845 for ; Mon, 21 Apr 2003 04:37:33 +0300 (EEST) Received: from users.sf.net (sun [192.168.10.100]) (authenticated) by timhunt.net (8.11.6/8.11.6) with ESMTP id h3L1bVC01705; Sun, 20 Apr 2003 21:37:31 -0400 Message-ID: <3EA34B5A.8060004@users.sf.net> Date: Sun, 20 Apr 2003 21:37:30 -0400 From: Tim Hunt User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Message with lots of attachments breaks Dovecot Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-MailScanner: Found to be clean X-archive-position: 622 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: timhunt@users.sf.net Precedence: bulk X-list: dovecot X-UID: 625 Status: O Content-Length: 1296 I have a message with over a 1000 embedded attachments(!), and it breaks Dovecot. The issue appears to be buffer management. There is some logic in the function message_part_deserialize_part that seems to assume that the message part structure is in a contiguous array, but that doesn't seem to be the case. I haven't been able to figure out enough about the memory management in Dovecot to fix the problem. Below is a horrible workaround that just allocates a lot more memory for the message part array, so that it remains contiguous. *** mail-index-update.c.orig Wed Mar 26 10:41:55 2003 --- mail-index-update.c Sun Apr 20 16:53:45 2003 *************** *** 498,504 **** if (cache_fields & DATA_FIELD_MESSAGEPART) { t_push(); ! buf = buffer_create_dynamic(data_stack_pool, 2048, (size_t)-1); message_part_serialize(part, buf); --- 498,504 ---- if (cache_fields & DATA_FIELD_MESSAGEPART) { t_push(); ! buf = buffer_create_dynamic(data_stack_pool, 51200, (size_t)-1); message_part_serialize(part, buf); From keith@midnighthax.com Mon Apr 21 16:46:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 16:46:36 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mhlgengs001.rg2.midnighthax.com (unknown [217.158.167.69]) by danu.procontrol.fi (Postfix) with ESMTP id 9206B23845 for ; Mon, 21 Apr 2003 16:46:35 +0300 (EEST) Received: from zaphod.rg2.midnighthax.com (zaphod.rg2.midnighthax.com [10.0.2.1]) by mhlgengs001.rg2.midnighthax.com (Postfix) with SMTP id 18D49224C6; Mon, 21 Apr 2003 14:46:30 +0100 (BST) Date: Mon, 21 Apr 2003 14:46:39 +0100 From: Keith Edmunds To: "Ian R. Justman" Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Folders with mail and subfolders Message-Id: <20030421144639.1b30a6a4.keith@midnighthax.com> In-Reply-To: <3E9B68A9.4000701@ian-justman.com> References: <20030414193349.4c4fe9ba.keith@midnighthax.com> <3E9B68A9.4000701@ian-justman.com> Organization: Midnight Hax Ltd X-Mailer: Sylpheed version 0.8.11claws90 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-archive-position: 623 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: keith@midnighthax.com Precedence: bulk X-list: dovecot X-UID: 626 Status: O On Mon, 14 Apr 2003 19:04:25 -0700 "Ian R. Justman" wrote: > Keith Edmunds wrote: > > I have a maildir hierarchy (built originally with Courier-IMAP) > > where some folders contain both email and subfolders. Using Dovecot > > I cannot see the mail in the top folders: I can only see the > > subfolders. > > > > Is this an RFC restriction or a Dovecot restriction? If the latter, > > is it planned to change? > > Far as I know, that's usually a client-side issue. I had the same > thing come up when I was using Cyrus where a folder can hold either > messages or more folders. Netscape has an option where you can have > both or they're mutually exclusive. I'm using the same client (sylpheed-claws) with both Dovecot and Courier-IMAP. Dovecot does not seem to allow both messages and folders within folders whereas Courier-IMAP does. Is there some setup I can change to allow both? -- Keith Edmunds From tss@iki.fi Mon Apr 21 16:47:40 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 16:47:40 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6818323845 for ; Mon, 21 Apr 2003 16:47:40 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 68E235E017F5; Mon, 21 Apr 2003 16:47:38 +0300 (EEST) Subject: [dovecot] Re: Message with lots of attachments breaks Dovecot From: Timo Sirainen To: Tim Hunt Cc: dovecot@procontrol.fi In-Reply-To: <3EA34B5A.8060004@users.sf.net> References: <3EA34B5A.8060004@users.sf.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050932857.32160.2.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 Apr 2003 16:47:38 +0300 X-archive-position: 624 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 627 Status: O Content-Length: 1200 On Mon, 2003-04-21 at 04:37, Tim Hunt wrote: > I have a message with over a 1000 embedded attachments(!), and it breaks > Dovecot. The issue appears to be buffer management. I think it crashes because of bug in data-stack.c. This should fix it: Index: data-stack.c =================================================================== RCS file: /home/cvs/dovecot/src/lib/data-stack.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- data-stack.c 27 Jan 2003 00:46:29 -0000 1.17 +++ data-stack.c 26 Mar 2003 14:58:33 -0000 1.18 @@ -121,9 +121,13 @@ static void free_blocks(struct stack_block *block) { + struct stack_block *next; + /* free all the blocks, except if any of them is bigger than unused_block, replace it */ while (block != NULL) { + next = block->next; + if (unused_block == NULL || block->size > unused_block->size) { free(unused_block); unused_block = block; @@ -131,7 +135,7 @@ free(block); } - block = block->next; + block = next; } } From tss@iki.fi Mon Apr 21 16:49:34 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 16:49:34 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 66E5D23845 for ; Mon, 21 Apr 2003 16:49:34 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 1D23C5E017F5; Mon, 21 Apr 2003 16:49:34 +0300 (EEST) Subject: [dovecot] Re: errors From: Timo Sirainen To: Moe Wibble Cc: Dovecot List In-Reply-To: <20030420001128.GA18878@woom.net> References: <3E9D1B27.7090201@bnap.hu> <20030416134628.GA13126@woom.net> <20030420001128.GA18878@woom.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050932973.32157.5.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 Apr 2003 16:49:34 +0300 X-archive-position: 625 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 628 Status: O On Sun, 2003-04-20 at 03:11, Moe Wibble wrote: > The bug has just hit me again: > > Apr 20 02:08:00 rafter imap(moe): Corrupted index file //.INBOX/.imap.index: index.next_uid (495) > uidlist.nex > t_uid (494) > > Removing .imap.index has muted it once again. > > Is this problem being worked on? I think it should be fixing itself now. The index is rebuilt automatically next time the mailbox is opened. I also found a few more potential problems with it, -test6 should come out soon. From tss@iki.fi Mon Apr 21 16:50:45 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 16:50:45 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8FD5823845 for ; Mon, 21 Apr 2003 16:50:45 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 799E05E017F5; Mon, 21 Apr 2003 16:50:45 +0300 (EEST) Subject: [dovecot] Re: 0.99.9-test5 From: Timo Sirainen To: Jaime Medrano Cc: dovecot@procontrol.fi In-Reply-To: <20030418120034.GA8148@eurielec.etsit.upm.es> References: <1050507758.16338.58.camel@hurina> <20030418120034.GA8148@eurielec.etsit.upm.es> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050933045.32161.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 Apr 2003 16:50:45 +0300 X-archive-position: 626 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 629 Status: O On Fri, 2003-04-18 at 15:00, Jaime Medrano wrote: > It seems to have problems when calculating recent messages. When a mail > comes to a mailbox the recent count is sometimes an arbitrary number, > bigger than the actual messages that have arriven. Hmm. Have to look. Recent counts are pretty much broken in any case currently. From tss@iki.fi Mon Apr 21 17:04:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 17:04:02 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1FDC823845 for ; Mon, 21 Apr 2003 17:04:02 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id AF3C65E017F5; Mon, 21 Apr 2003 17:04:01 +0300 (EEST) Subject: [dovecot] Re: Folders with mail and subfolders From: Timo Sirainen To: Keith Edmunds Cc: dovecot@procontrol.fi In-Reply-To: <20030421144639.1b30a6a4.keith@midnighthax.com> References: <20030414193349.4c4fe9ba.keith@midnighthax.com> <3E9B68A9.4000701@ian-justman.com> <20030421144639.1b30a6a4.keith@midnighthax.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050933841.32157.12.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 Apr 2003 17:04:01 +0300 X-archive-position: 627 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 630 Status: O On Mon, 2003-04-21 at 16:46, Keith Edmunds wrote: > I'm using the same client (sylpheed-claws) with both Dovecot and > Courier-IMAP. Dovecot does not seem to allow both messages and folders > within folders whereas Courier-IMAP does. Is there some setup I can > change to allow both? I didn't notice problems with Sylpheed-claws + CVS Dovecot. Subfolders were somewhat broken in 0.99.8.1 though, there's a patch for it at http://dovecot.procontrol.fi/list.patch From mem@mv.mv.com Mon Apr 21 17:47:22 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 17:47:22 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 65C622385F for ; Mon, 21 Apr 2003 17:47:22 +0300 (EEST) Received: (qmail 8769 invoked by uid 101); 21 Apr 2003 10:47:20 -0400 From: "Mark E. Mallett" Date: Mon, 21 Apr 2003 10:47:20 -0400 To: dovecot@procontrol.fi Subject: [dovecot] quotas again Message-ID: <20030421144720.GE7629@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-archive-position: 628 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 631 Status: O Content-Length: 1274 A couple of notes about quotas-- I know this has been brought up before but the negative effects that occur when a user is over quota are still disconcerting. Ideally it would be best if a user could at least delete mail when in an over-quota condition. One would think it would be enough to simply ignore errors creating the index files (and use an in-memory index). However, another problem is that the mere renaming of a file from the new/ directory to the cur/ directory can cause an over-quota error if the cur/ directory has to be expanded. We see these errors in the maillog followed by an "I/O leak" message, e.g.: Apr 21 07:42:26 mercury mem[10059]: pop3(someuser): maildir build: rename(/users/3a/someuser/Maildir/new/1049919998.23875.mercury.mv.net, /users/3a/someuser/Maildir/cur/1049919998.23875.mercury.mv.net) failed: Disc quota exceeded Apr 21 07:42:26 mercury mem[10059]: pop3(someuser): I/O leak: 0x807361c (1) Apr 21 07:42:26 mercury mem[10059]: pop3(someuser): I/O leak: 0x804a1b8 (0) and then we get a report about the server dropping the connection. BTW we seem to see quite a lot of these "I/O leak" messages in other situations too, and I think it started with the test5 release (but I am not absolutely sure). What does this mean? Yours, mm From amyzing@talsever.com Mon Apr 21 18:38:18 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 18:38:18 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from granger.mail.mindspring.net (granger.mail.mindspring.net [207.69.200.148]) by danu.procontrol.fi (Postfix) with ESMTP id 4EAC623845 for ; Mon, 21 Apr 2003 18:38:18 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by granger.mail.mindspring.net with esmtp (Exim 3.33 #1) id 197dMq-0008Vl-00; Mon, 21 Apr 2003 11:38:04 -0400 Received: by marajen.talsever.com (Postfix, from userid 1000) id 18317809B; Mon, 21 Apr 2003 11:37:59 -0400 (EDT) Date: Mon, 21 Apr 2003 11:37:59 -0400 From: Amelia A Lewis To: Keith Edmunds Cc: "Ian R. Justman" , dovecot@procontrol.fi Subject: [dovecot] Re: Folders with mail and subfolders Message-ID: <20030421153759.GB28811@talsever.com> References: <20030414193349.4c4fe9ba.keith@midnighthax.com> <3E9B68A9.4000701@ian-justman.com> <20030421144639.1b30a6a4.keith@midnighthax.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030421144639.1b30a6a4.keith@midnighthax.com> User-Agent: Mutt/1.5.3i X-archive-position: 629 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: amyzing@talsever.com Precedence: bulk X-list: dovecot X-UID: 632 Status: O Content-Length: 1771 On Mon, Apr 21, 2003 at 02:46:39PM +0100, Keith Edmunds wrote: >On Mon, 14 Apr 2003 19:04:25 -0700 >"Ian R. Justman" wrote: > >> Keith Edmunds wrote: >> > I have a maildir hierarchy (built originally with Courier-IMAP) >> > where some folders contain both email and subfolders. Using Dovecot >> > I cannot see the mail in the top folders: I can only see the >> > subfolders. >> > >> > Is this an RFC restriction or a Dovecot restriction? If the latter, >> > is it planned to change? >> >> Far as I know, that's usually a client-side issue. I had the same >> thing come up when I was using Cyrus where a folder can hold either >> messages or more folders. Netscape has an option where you can have >> both or they're mutually exclusive. > >I'm using the same client (sylpheed-claws) with both Dovecot and >Courier-IMAP. Dovecot does not seem to allow both messages and folders >within folders whereas Courier-IMAP does. Is there some setup I can >change to allow both? If you connected, using sylpheed, to an older version of dovecot that wasn't permitting this (0.99.7, f'rinstance), then you might need to edit the folderlist.xml (for sylpheed). There's a flag on a folder ("nomail"?) that gets set, and rebuilding the folder tree won't fix it, but you can remove the flag by hand and then it's fine (with the Debian 0.99.8.1 updates, at any rate, and prolly with current cvs). Amy! -- Amelia A. Lewis amyzing {at} talsever.com Light is the left hand of darkness and darkness the right hand of light. Two are one, life and death, lying together like lovers in kemmer, like hands joined together, like the end and the way. -- Tormer's Lay [Ursula K. Le Guin, "The Left Hand of Darkness"] From tss@iki.fi Mon Apr 21 18:53:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 18:53:54 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D25F623845 for ; Mon, 21 Apr 2003 18:53:53 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 382CD5E017F5; Mon, 21 Apr 2003 18:53:53 +0300 (EEST) Subject: [dovecot] Re: quotas again From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030421144720.GE7629@iridium.mv.net> References: <20030421144720.GE7629@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050940432.32161.24.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 Apr 2003 18:53:53 +0300 X-archive-position: 630 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 633 Status: O Content-Length: 1462 On Mon, 2003-04-21 at 17:47, Mark E. Mallett wrote: > A couple of notes about quotas-- I know this has been brought up > before but the negative effects that occur when a user is over quota > are still disconcerting. > > Ideally it would be best if a user could at least delete mail when in > an over-quota condition. One would think it would be enough to simply > ignore errors creating the index files (and use an in-memory index). > However, another problem is that the mere renaming of a file from the > new/ directory to the cur/ directory can cause an over-quota error if > the cur/ directory has to be expanded. We see these errors in the > maillog followed by an "I/O leak" message, e.g.: Hmm. I'm not sure how to fix this properly. I can of course just ignore those files in new/, but then user can't delete those messages. Maybe I should allow keeping the files in new/ in out-of-disk-space conditions.. uidlist file is also problematic. If there's no disk space to build new one, the UIDs can't be permanently saved. Or worse, they could be reused for different messages breaking client's cache. > BTW we seem to see quite a lot of these "I/O leak" messages in other > situations too, and I think it started with the test5 release (but I am > not absolutely sure). What does this mean? It's mostly debugging. Some file descriptor was added to poll() (or similiar) list, but wasn't removed from there. I'm not sure why you're seeing them now. From tss@iki.fi Mon Apr 21 19:08:38 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 19:08:38 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BD8D323845 for ; Mon, 21 Apr 2003 19:08:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 6ACD95E017F5; Mon, 21 Apr 2003 19:08:38 +0300 (EEST) Subject: [dovecot] 0.99.9-test6 From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050941318.32160.38.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 Apr 2003 19:08:38 +0300 X-archive-position: 631 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 634 Status: O Just two fixes: - dovecot-uidlist file is now assumed to be changed if it's modify time is changed. before we relied on inode changing which isn't fully reliable. - mbox dotlocks sometimes incorrectly thought someone else had overridden them Known problems that I should fix: - mbox: we don't necessarily notice message flag changes by external programs (or another dovecot without index files). It's because we don't always reparse the whole mbox file when it has changed. I think I'll have to add some X-IMAP-Changelog header which describes what changes were made by other Dovecot processes. If the change isn't listed in that header, we'll fallback to reparsing the whole file. Although that's still a bit annoying since MTA just appends the new mails, we wouldn't really need to reparse the whole file then, just the new mails. - I should use link() instead of relying on O_EXCL which doesn't work with NFSv2 (or Linux's NFSv3 client). - .subscriptions and .customflags files still aren't NFS-safe From mem@mv.mv.com Mon Apr 21 20:03:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 20:03:10 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 44E412385F for ; Mon, 21 Apr 2003 20:03:10 +0300 (EEST) Received: (qmail 15288 invoked by uid 101); 21 Apr 2003 13:03:09 -0400 From: "Mark E. Mallett" Date: Mon, 21 Apr 2003 13:03:09 -0400 To: dovecot@procontrol.fi Subject: [dovecot] Re: quotas again Message-ID: <20030421170309.GI7629@iridium.mv.net> References: <20030421144720.GE7629@iridium.mv.net> <1050940432.32161.24.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1050940432.32161.24.camel@hurina> User-Agent: Mutt/1.4.1i X-archive-position: 632 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 635 Status: O Content-Length: 2314 On Mon, Apr 21, 2003 at 06:53:53PM +0300, Timo Sirainen wrote: > On Mon, 2003-04-21 at 17:47, Mark E. Mallett wrote: > > A couple of notes about quotas-- I know this has been brought up > > before but the negative effects that occur when a user is over quota > > are still disconcerting. > > > > Ideally it would be best if a user could at least delete mail when in > > an over-quota condition. One would think it would be enough to simply > > ignore errors creating the index files (and use an in-memory index). > > However, another problem is that the mere renaming of a file from the > > new/ directory to the cur/ directory can cause an over-quota error if > > the cur/ directory has to be expanded. We see these errors in the > > maillog followed by an "I/O leak" message, e.g.: > > Hmm. I'm not sure how to fix this properly. I can of course just ignore > those files in new/, but then user can't delete those messages. Maybe I > should allow keeping the files in new/ in out-of-disk-space conditions.. I would think so. If a file can't be renamed to cur/ because of expanding the directory, there are already a bunch of files in cur/ . Allowing some deletion would help before they have to pick up the phone and have somebody intervene. > uidlist file is also problematic. If there's no disk space to build new > one, the UIDs can't be permanently saved. Or worse, they could be reused > for different messages breaking client's cache. Yeah- trouble is if there are quotas enabled at all, people are going to hit them. The first time a person gets over quota they are either going to learn to manage the mailbox, or they are going to request (and probably get) more space if they have a real need for it. However it's likely to keep happening. Unfortunately using filesystem quotas for mailboxes has problems. At one point we had a mail delivery quota system here that was not related to filesystem quotas (i.e. the mail delivery agent would arrange not to deliver mail to a mailbox that was at its limit, and would in fact insert a single warning note instead)-- however filesystem quotas were not in effect, so it was possible to manipulate the mailbox via the POP or IMAP interface. This was under sendmail, though, and I have not yet thought about doing something similar under qmail. mm From mike@innercite.com Mon Apr 21 20:16:02 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 20:16:02 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from knight.innercite.com (knight.innercite.com [158.222.3.8]) by danu.procontrol.fi (Postfix) with ESMTP id 0E52E2385F for ; Mon, 21 Apr 2003 20:16:01 +0300 (EEST) Received: from localhost.localdomain (rocket.innercite.com [158.222.7.10]) by knight.innercite.com (8.12.3/8.12.3/Debian -4) with ESMTP id h3LH8ppB020593 for ; Mon, 21 Apr 2003 10:08:52 -0700 Subject: [dovecot] Re: quotas again From: Mike Machado To: dovecot@procontrol.fi In-Reply-To: <20030421170309.GI7629@iridium.mv.net> References: <20030421144720.GE7629@iridium.mv.net> <1050940432.32161.24.camel@hurina> <20030421170309.GI7629@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 21 Apr 2003 10:15:56 -0700 Message-Id: <1050945356.1834.212.camel@rocket> Mime-Version: 1.0 X-archive-position: 633 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mike@innercite.com Precedence: bulk X-list: dovecot X-UID: 636 Status: O On Mon, 2003-04-21 at 10:03, Mark E. Mallett wrote: > > Unfortunately using filesystem quotas for mailboxes has problems. At > one point we had a mail delivery quota system here that was not related > to filesystem quotas (i.e. the mail delivery agent would arrange not to > deliver mail to a mailbox that was at its limit, and would in fact > insert a single warning note instead)-- however filesystem quotas were > not in effect, so it was possible to manipulate the mailbox via the > POP or IMAP interface. This was under sendmail, though, and I have > not yet thought about doing something similar under qmail. I don't suppose you could share how you built or where you found the system that could do mail quotas with sendmail? Thanks! -- Mike Machado mike@innercite.com InnerCite Inc. Engineering Director / CTO From mem@mv.mv.com Mon Apr 21 21:29:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 21:29:53 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id CEB2D2385F for ; Mon, 21 Apr 2003 21:29:52 +0300 (EEST) Received: (qmail 21248 invoked by uid 101); 21 Apr 2003 14:29:51 -0400 From: "Mark E. Mallett" Date: Mon, 21 Apr 2003 14:29:51 -0400 To: Mike Machado Cc: dovecot@procontrol.fi Subject: [dovecot] Re: quotas again Message-ID: <20030421182951.GA11272@iridium.mv.net> References: <20030421144720.GE7629@iridium.mv.net> <1050940432.32161.24.camel@hurina> <20030421170309.GI7629@iridium.mv.net> <1050945356.1834.212.camel@rocket> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1050945356.1834.212.camel@rocket> User-Agent: Mutt/1.4.1i X-archive-position: 634 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 637 Status: O Content-Length: 1493 On Mon, Apr 21, 2003 at 10:15:56AM -0700, Mike Machado wrote: > On Mon, 2003-04-21 at 10:03, Mark E. Mallett wrote: > > > > Unfortunately using filesystem quotas for mailboxes has problems. At > > one point we had a mail delivery quota system here that was not related > > to filesystem quotas (i.e. the mail delivery agent would arrange not to > > deliver mail to a mailbox that was at its limit, and would in fact > > insert a single warning note instead)-- however filesystem quotas were > > not in effect, so it was possible to manipulate the mailbox via the > > POP or IMAP interface. This was under sendmail, though, and I have > > not yet thought about doing something similar under qmail. > > I don't suppose you could share how you built or where you found the > system that could do mail quotas with sendmail? Thanks! It was some hackery that I performed on mail.local under bsdi. I regret that it's no longer available. "not related to filesystem quotas" was a simplification- it would actually look at filesystem quotas and use the user's soft limit if one was set, but otherwise would impose a default maximum. Most users were left with quota not set. It also required some minimal hacking to sendmail to recognize a special return code from mail.local . Considering that sendmail and mail.local used /var/spool/mail mailboxes, it was pretty easy to understand and manage this kind of quota. With maildirs integrated into home directories, it's not quite as simple. mm From adam@os.inf.tu-dresden.de Mon Apr 21 21:54:35 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 21:54:35 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id 996562385F for ; Mon, 21 Apr 2003 21:54:35 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 3.36) id 197gR0-000SCG-00 for dovecot@procontrol.fi; Mon, 21 Apr 2003 20:54:34 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 197gR0-0008Sj-00 for ; Mon, 21 Apr 2003 20:54:34 +0200 Date: Mon, 21 Apr 2003 20:54:34 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: [dovecot] Using on AIX Message-ID: <20030421185434.GJ21753@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline User-Agent: Mutt/1.4i X-archive-position: 635 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: adam@os.inf.tu-dresden.de Precedence: bulk X-list: dovecot X-UID: 638 Status: O Content-Length: 1289 Hi, I'm trying to install dovecot-0.99.9-test6 with gcc-3.2.2 under AIX (4.3.3) and found some problems. First, I need to define _XOPEN_SOURCE_EXTENDED to 1 in src/lib/fdpass.c and src/auth/mycrypt.c or undefine it to compile successfully. When I define _XOPEN_SOURCE_EXTENDED to 1, I get the following error while connecting: dovecot: Apr 21 17:56:44 Info: Dovecot starting up imap-login: Apr 21 17:57:19 Fatal: fd_send(5) failed: Bad file number dovecot: Apr 21 17:57:19 Error: child 39504 (login) returned error 89 This happens after a successful authentication (i.e. wrong authentications are correctly denied). Something similar happens if I define _XOPEN_SOURCE to 500 in both files. When I undefine the _XOPEN_SOURCE_EXTENDEDs without modifying the original _XOPEN_SOURCE defines, it seems to come further: imap-login: Apr 21 18:24:23 Info: Login: xxx [xxx.xxx.xxx.xxx] imap(xxx): Apr 21 18:24:23 Panic: file mail-index-data.c: line 439 (mail_index_data_append): assertion failed: ((size & (MEM_ALIGN_SIZE-1)) == 0) dovecot: Apr 21 18:24:23 Error: child 95800 (imap) killed with signal 6 but this doesn't work either. Anything other I could try? Thanks, Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From tss@iki.fi Mon Apr 21 23:02:13 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 23:02:13 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B6D8723845 for ; Mon, 21 Apr 2003 23:02:13 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 4C17E5E017F5; Mon, 21 Apr 2003 23:02:13 +0300 (EEST) Subject: [dovecot] Re: Using on AIX From: Timo Sirainen To: Adam Lackorzynski Cc: dovecot@procontrol.fi In-Reply-To: <20030421185434.GJ21753@os.inf.tu-dresden.de> References: <20030421185434.GJ21753@os.inf.tu-dresden.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1050955333.32157.61.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 Apr 2003 23:02:13 +0300 X-archive-position: 636 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 639 Status: O Content-Length: 1729 On Mon, 2003-04-21 at 21:54, Adam Lackorzynski wrote: > Hi, > > I'm trying to install dovecot-0.99.9-test6 with gcc-3.2.2 under AIX (4.3.3) and > found some problems. > > First, I need to define _XOPEN_SOURCE_EXTENDED to 1 in src/lib/fdpass.c > and src/auth/mycrypt.c or undefine it to compile successfully. .. > When I undefine the _XOPEN_SOURCE_EXTENDEDs without modifying the > original _XOPEN_SOURCE defines, it seems to come further: I guess leaving it 1 for mycrypt.c is fine. Does AIX have some "AIX" macro defined? So I could change fdpass.c to have: #ifndef AIX # define _XOPEN_SOURCE_EXTENDED /* for Tru64, breaks AIX */ #endif > imap(xxx): Apr 21 18:24:23 Panic: file mail-index-data.c: line 439 (mail_index_data_append): assertion failed: ((size & (MEM_ALIGN_SIZE-1)) == 0) Hmm.. This is quite likely because struct mail_index_data_record_header isn't padded to take 8 bytes with 32bit off_t. Has all systems until now really had 64bit off_t? This should fix it: Index: mail-index.h =================================================================== RCS file: /home/cvs/dovecot/src/lib-index/mail-index.h,v retrieving revision 1.73 diff -u -r1.73 mail-index.h --- mail-index.h 21 Apr 2003 13:42:00 -0000 1.73 +++ mail-index.h 21 Apr 2003 19:58:55 -0000 @@ -167,6 +167,7 @@ unsigned int data_size; /* including this header */ time_t internal_date; + time_t filler; uoff_t virtual_size; uoff_t header_size; But I'm not sure if I want to commit this change. Maybe some systems have added the padding elsewhere? Changing the location could break things. After next release I'll break the index files anyway, I think I'll leave this fix until then. From adam@os.inf.tu-dresden.de Mon Apr 21 23:57:35 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Apr 2003 23:57:35 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id 4FF1B2385F for ; Mon, 21 Apr 2003 23:57:35 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 3.36) id 197iM2-00072w-00 for dovecot@procontrol.fi; Mon, 21 Apr 2003 22:57:34 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 197iM2-0005Rp-00 for ; Mon, 21 Apr 2003 22:57:34 +0200 Date: Mon, 21 Apr 2003 22:57:34 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: [dovecot] Re: Using on AIX Message-ID: <20030421205734.GK21753@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <20030421185434.GJ21753@os.inf.tu-dresden.de> <1050955333.32157.61.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1050955333.32157.61.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 637 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: adam@os.inf.tu-dresden.de Precedence: bulk X-list: dovecot X-UID: 640 Status: O Content-Length: 2768 On Mon Apr 21, 2003 at 23:02:13 +0300, Timo Sirainen wrote: > Hmm.. This is quite likely because struct mail_index_data_record_header > isn't padded to take 8 bytes with 32bit off_t. Has all systems until now > really had 64bit off_t? This should fix it: > > + time_t filler; Now, the error message is different: imap(xxx): Apr 21 20:42:14 Error: Corrupted index data file .../Mail/.imap/INBOX/.imap.index.data: Invalid location field for record 1 imap(xxx): Apr 21 20:42:14 Error: Corrupted index data file .../Mail/.imap/INBOX/.imap.index.data: Invalid location field for record 1 dovecot: Apr 21 20:42:14 Error: child 73232 (imap) killed with signal 11 I deleted the .imap dir before connecting and the mbox file is empty in this case here. If the mbox contains some mails (7 in this case), I'm getting this (.imap dir also didn't exist before): imap(xxx): Apr 21 20:52:52 Error: Corrupted index data file .../Mail/test/.imap/box2/.imap.index.data: Invalid location field for record 7 That's what I have for now. The AC_AIX is probably not needed... diff -ur dovecot-0.99.9-test6.orig/configure.in dovecot-0.99.9-test6/configure.in --- dovecot-0.99.9-test6.orig/configure.in Mon Apr 21 17:54:11 2003 +++ dovecot-0.99.9-test6/configure.in Mon Apr 21 22:06:09 2003 @@ -5,6 +5,7 @@ AM_MAINTAINER_MODE +AC_AIX AC_ISC_POSIX AC_PROG_CC AC_PROG_CPP diff -ur dovecot-0.99.9-test6.orig/src/auth/mycrypt.c dovecot-0.99.9-test6/src/auth/mycrypt.c --- dovecot-0.99.9-test6.orig/src/auth/mycrypt.c Tue Nov 26 19:39:57 2002 +++ dovecot-0.99.9-test6/src/auth/mycrypt.c Mon Apr 21 22:15:16 2003 @@ -1,5 +1,5 @@ #define _XOPEN_SOURCE 4 -#define _XOPEN_SOURCE_EXTENDED +#define _XOPEN_SOURCE_EXTENDED 1 #define _XOPEN_VERSION 4 #define _XPG4_2 #include diff -ur dovecot-0.99.9-test6.orig/src/lib/fdpass.c dovecot-0.99.9-test6/src/lib/fdpass.c --- dovecot-0.99.9-test6.orig/src/lib/fdpass.c Wed Apr 9 00:58:30 2003 +++ dovecot-0.99.9-test6/src/lib/fdpass.c Mon Apr 21 22:20:28 2003 @@ -32,7 +32,9 @@ */ #define _XPG4_2 -#define _XOPEN_SOURCE_EXTENDED /* for Tru64 */ +#ifndef _AIX +# define _XOPEN_SOURCE_EXTENDED /* for Tru64, breaks AIX */ +#endif #include "lib.h" #include "fdpass.h" diff -ur dovecot-0.99.9-test6.orig/src/lib-index/mail-index.h dovecot-0.99.9-test6/src/lib-index/mail-index.h --- dovecot-0.99.9-test6.orig/src/lib-index/mail-index.h Mon Apr 21 17:45:52 2003 +++ dovecot-0.99.9-test6/src/lib-index/mail-index.h Mon Apr 21 22:40:04 2003 @@ -167,6 +167,7 @@ unsigned int data_size; /* including this header */ time_t internal_date; + time_t filler; uoff_t virtual_size; uoff_t header_size; Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From lfarkas@bnap.hu Tue Apr 22 13:30:20 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Apr 2003 13:30:20 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 3E68E2385F for ; Tue, 22 Apr 2003 13:30:20 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id D42A0754003 for ; Tue, 22 Apr 2003 12:31:48 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 581DB3F04 for ; Tue, 22 Apr 2003 12:30:15 +0200 (CEST) Message-ID: <3EA519B4.4020105@bnap.hu> Date: Tue, 22 Apr 2003 12:30:12 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] index files Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 638 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 641 Status: O hi, what's happend if I change the index type ie. change it back to the default # mail_cache_fields while before I use mail_cache_fields = and restart dovecot? in this case at the next login the index files are regenerated? -- Levente "Si vis pacem para bellum!" From tss@iki.fi Tue Apr 22 22:47:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Apr 2003 22:47:10 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 156FC23845 for ; Tue, 22 Apr 2003 22:47:10 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id D8A925E017F5; Tue, 22 Apr 2003 22:47:09 +0300 (EEST) Subject: [dovecot] Re: index files From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <3EA519B4.4020105@bnap.hu> References: <3EA519B4.4020105@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051040829.32159.114.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 22 Apr 2003 22:47:09 +0300 X-archive-position: 639 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 642 Status: O On Tue, 2003-04-22 at 13:30, Farkas Levente wrote: > hi, > what's happend if I change the index type ie. change it back to the default > # mail_cache_fields > while before I use > mail_cache_fields = > and restart dovecot? in this case at the next login the index files are > regenerated? No, that setting is used only when the index is created or rebuilt for some reason. From tss@iki.fi Tue Apr 22 22:50:01 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Apr 2003 22:50:01 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8F66623845 for ; Tue, 22 Apr 2003 22:50:01 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 4E2AC5E017F5; Tue, 22 Apr 2003 22:50:01 +0300 (EEST) Subject: [dovecot] Re: Using on AIX From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030421205734.GK21753@os.inf.tu-dresden.de> References: <20030421185434.GJ21753@os.inf.tu-dresden.de> <1050955333.32157.61.camel@hurina> <20030421205734.GK21753@os.inf.tu-dresden.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051041001.32159.118.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 22 Apr 2003 22:50:01 +0300 X-archive-position: 640 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 643 Status: O On Mon, 2003-04-21 at 23:57, Adam Lackorzynski wrote: > On Mon Apr 21, 2003 at 23:02:13 +0300, Timo Sirainen wrote: > > Hmm.. This is quite likely because struct mail_index_data_record_header > > isn't padded to take 8 bytes with 32bit off_t. Has all systems until now > > really had 64bit off_t? This should fix it: > > > > + time_t filler; > > Now, the error message is different: > > imap(xxx): Apr 21 20:42:14 Error: Corrupted index data file .../Mail/.imap/INBOX/.imap.index.data: Invalid location field for record 1 Umm. Are you sure the sources got fully rebuilt after you added the filler? That looks like it.. From lfarkas@bnap.hu Wed Apr 23 00:10:42 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 00:10:43 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id C349F2385F for ; Wed, 23 Apr 2003 00:10:42 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 2C510754003; Tue, 22 Apr 2003 23:12:16 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id CCC1A3EF5; Tue, 22 Apr 2003 23:10:40 +0200 (CEST) Message-ID: <3EA5AFD0.9070601@bnap.hu> Date: Tue, 22 Apr 2003 23:10:40 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021218 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Cc: Dovecot List Subject: [dovecot] Re: index files References: <3EA519B4.4020105@bnap.hu> <1051040829.32159.114.camel@hurina> In-Reply-To: <1051040829.32159.114.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 641 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 644 Status: O Timo Sirainen wrote: > On Tue, 2003-04-22 at 13:30, Farkas Levente wrote: > >>hi, >>what's happend if I change the index type ie. change it back to the default >># mail_cache_fields >>while before I use >>mail_cache_fields = >>and restart dovecot? in this case at the next login the index files are >>regenerated? > > > No, that setting is used only when the index is created or rebuilt for > some reason. so I've to delete everyone's index files? -- Levente "Si vis pacem para bellum!" From adam@os.inf.tu-dresden.de Wed Apr 23 01:45:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 01:45:44 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id 169762385F for ; Wed, 23 Apr 2003 01:45:44 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 3.36) id 1986WE-000HYm-00 for dovecot@procontrol.fi; Wed, 23 Apr 2003 00:45:42 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 1986WE-0002NA-00 for ; Wed, 23 Apr 2003 00:45:42 +0200 Date: Wed, 23 Apr 2003 00:45:42 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: [dovecot] Re: Using on AIX Message-ID: <20030422224542.GO21753@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <20030421185434.GJ21753@os.inf.tu-dresden.de> <1050955333.32157.61.camel@hurina> <20030421205734.GK21753@os.inf.tu-dresden.de> <1051041001.32159.118.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1051041001.32159.118.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 642 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: adam@os.inf.tu-dresden.de Precedence: bulk X-list: dovecot X-UID: 645 Status: O On Tue Apr 22, 2003 at 22:50:01 +0300, Timo Sirainen wrote: > > imap(xxx): Apr 21 20:42:14 Error: Corrupted index data file .../Mail/.imap/INBOX/.imap.index.data: Invalid location field for record 1 > > Umm. Are you sure the sources got fully rebuilt after you added the > filler? That looks like it.. Yes, "make clean"'ed it before. Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From eskimoe@ananzi.co.za Wed Apr 23 02:00:01 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 02:00:01 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-174-30.reverse.qdsl-home.de [212.202.174.30]) by danu.procontrol.fi (Postfix) with SMTP id 40E2D2385F for ; Wed, 23 Apr 2003 01:59:59 +0300 (EEST) Received: (qmail 30858 invoked by uid 1000); 22 Apr 2003 23:01:27 -0000 Date: Wed, 23 Apr 2003 01:01:27 +0200 From: Moe Wibble To: Dovecot List Subject: [dovecot] Re: errors Message-ID: <20030422230127.GC17665@woom.net> Mail-Followup-To: Moe Wibble , Dovecot List References: <3E9D1B27.7090201@bnap.hu> <20030416134628.GA13126@woom.net> <20030420001128.GA18878@woom.net> <1050932973.32157.5.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1050932973.32157.5.camel@hurina> X-archive-position: 643 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 646 Status: O On Mon, Apr 21, 2003 at 04:49:34PM +0300, Timo Sirainen wrote: > On Sun, 2003-04-20 at 03:11, Moe Wibble wrote: > > The bug has just hit me again: > > > > Apr 20 02:08:00 rafter imap(moe): Corrupted index file //.INBOX/.imap.index: index.next_uid (495) > uidlist.nex > > t_uid (494) > > > > Removing .imap.index has muted it once again. > > > > Is this problem being worked on? > > I think it should be fixing itself now. The index is rebuilt > automatically next time the mailbox is opened. I have just updated and the problem has not appeared again since then. Hope it stays that way. > I also found a few more potential problems with it, -test6 should come > out soon. What kind of problems? regards! -- MW From tss@iki.fi Wed Apr 23 02:33:46 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 02:33:46 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3E45223845 for ; Wed, 23 Apr 2003 02:33:46 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 9F4315E017F5; Wed, 23 Apr 2003 02:33:45 +0300 (EEST) Subject: [dovecot] Re: index files From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <3EA5AFD0.9070601@bnap.hu> References: <3EA519B4.4020105@bnap.hu> <1051040829.32159.114.camel@hurina> <3EA5AFD0.9070601@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051054425.32159.123.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Apr 2003 02:33:45 +0300 X-archive-position: 644 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 647 Status: O On Wed, 2003-04-23 at 00:10, Farkas Levente wrote: > >>what's happend if I change the index type ie. change it back to the default > >># mail_cache_fields > >>while before I use > >>mail_cache_fields = > >>and restart dovecot? in this case at the next login the index files are > >>regenerated? > > > > > > No, that setting is used only when the index is created or rebuilt for > > some reason. > > so I've to delete everyone's index files? No, just leave them the way they are. Dovecot starts automatically caching the fields that the client uses. Or is there some reason you thought you wanted this? It's slower? From tss@iki.fi Wed Apr 23 02:50:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 02:50:55 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 392FB23845 for ; Wed, 23 Apr 2003 02:50:55 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 92D045E017F5; Wed, 23 Apr 2003 02:50:54 +0300 (EEST) Subject: [dovecot] Re: Using on AIX From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030422224542.GO21753@os.inf.tu-dresden.de> References: <20030421185434.GJ21753@os.inf.tu-dresden.de> <1050955333.32157.61.camel@hurina> <20030421205734.GK21753@os.inf.tu-dresden.de> <1051041001.32159.118.camel@hurina> <20030422224542.GO21753@os.inf.tu-dresden.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051055454.32157.126.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Apr 2003 02:50:54 +0300 X-archive-position: 645 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 648 Status: O On Wed, 2003-04-23 at 01:45, Adam Lackorzynski wrote: > On Tue Apr 22, 2003 at 22:50:01 +0300, Timo Sirainen wrote: > > > imap(xxx): Apr 21 20:42:14 Error: Corrupted index data file .../Mail/.imap/INBOX/.imap.index.data: Invalid location field for record 1 > > > > Umm. Are you sure the sources got fully rebuilt after you added the > > filler? That looks like it.. > > Yes, "make clean"'ed it before. Something's really messed up then. Maybe there's some mmap() problems, try if setting "default_mail_env = mbox:~/Mail:INDEX=MEMORY" helps? From lfarkas@bnap.hu Wed Apr 23 11:27:01 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 11:27:01 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 903122385F for ; Wed, 23 Apr 2003 11:27:01 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 9D66F754004; Wed, 23 Apr 2003 10:28:39 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id E3CAF3EF5; Wed, 23 Apr 2003 10:26:59 +0200 (CEST) Message-ID: <3EA64E53.7010806@bnap.hu> Date: Wed, 23 Apr 2003 10:26:59 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Cc: Dovecot List Subject: [dovecot] Re: index files References: <3EA519B4.4020105@bnap.hu> <1051040829.32159.114.camel@hurina> <3EA5AFD0.9070601@bnap.hu> <1051054425.32159.123.camel@hurina> In-Reply-To: <1051054425.32159.123.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 646 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 649 Status: O Content-Length: 1472 Timo Sirainen wrote: > On Wed, 2003-04-23 at 00:10, Farkas Levente wrote: > >>>>what's happend if I change the index type ie. change it back to the default >>>># mail_cache_fields >>>>while before I use >>>>mail_cache_fields = >>>>and restart dovecot? in this case at the next login the index files are >>>>regenerated? >>> >>> >>>No, that setting is used only when the index is created or rebuilt for >>>some reason. >> >>so I've to delete everyone's index files? > > > No, just leave them the way they are. Dovecot starts automatically > caching the fields that the client uses. > > Or is there some reason you thought you wanted this? It's slower? ok the whole story: - once (one of the cvs version) we got a few corrupted index file. - then I delete all index file - after that (as I wrote it) the load goes so high I've to stop dovecot. - delete all index file and modify dovecot.conf : mail_cache_fields = - but now I assume the index and high load problem may be solved so I'd like to put back the default cache schema. and my question is: should I delete the old index files (which contains no fileds) in order to create new index files (which contains the default fields) or it will happned automaticaly? from you first answer it seems to me if the index is not corrupted than it never will recreated. but from the second it seems it will regenerate it automatically? so? -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed Apr 23 14:13:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 14:13:10 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6F1812385F for ; Wed, 23 Apr 2003 14:13:10 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 7473E5E017F5; Wed, 23 Apr 2003 14:13:09 +0300 (EEST) Subject: [dovecot] Re: index files From: Timo Sirainen To: Farkas Levente Cc: Dovecot List In-Reply-To: <3EA64E53.7010806@bnap.hu> References: <3EA519B4.4020105@bnap.hu> <1051040829.32159.114.camel@hurina> <3EA5AFD0.9070601@bnap.hu> <1051054425.32159.123.camel@hurina> <3EA64E53.7010806@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051096388.32159.140.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Apr 2003 14:13:09 +0300 X-archive-position: 647 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 650 Status: O Content-Length: 2060 On Wed, 2003-04-23 at 11:26, Farkas Levente wrote: > ok the whole story: > - once (one of the cvs version) we got a few corrupted index file. > - then I delete all index file > - after that (as I wrote it) the load goes so high I've to stop dovecot. > - delete all index file and modify dovecot.conf : > mail_cache_fields = > - but now I assume the index and high load problem may be solved so I'd > like to put back the default cache schema. But currently there's no real high load problems with empty mail_cache_fields? > and my question is: > should I delete the old index files (which contains no fileds) in > order to create new index files (which contains the default fields) or > it will happned automaticaly? > from you first answer it seems to me if the index is not corrupted than > it never will recreated. but from the second it seems it will regenerate > it automatically? > so? It goes like this: - When index is first created, mail_cache_fields setting is saved into header.cache_fields. All existing mails are indexed with those fields cached - If client does something where a cached field would have been a speedup, but the field isn't cached, header.cache_fields is updated to include that field - All new mails that are indexed will have the new field cached as well, but the old ones aren't changed - If client again does it with an old mail where it wasn't indexed, then Dovecot will rebuild the cache for all mails in the index so they all contain the wanted cached fields So even if you don't cache anything initially, they should get automatically cached if client wants them. Clients behave very differently so we don't automatically cache everything, if cached field is not needed it just slows down things. This still isn't the optimal caching behaviour, some clients cache everything locally and fetch data for only new mails. In that case cached fields would be mostly useless. Even if that client or some other occationally fetches some data again, it's likely better for overall performance if nothing is cached. From lfarkas@bnap.hu Wed Apr 23 14:18:19 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 14:18:19 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 474A423845 for ; Wed, 23 Apr 2003 14:18:19 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id C218D754003; Wed, 23 Apr 2003 13:19:53 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id D44BD3EF5; Wed, 23 Apr 2003 13:18:12 +0200 (CEST) Message-ID: <3EA67674.5040902@bnap.hu> Date: Wed, 23 Apr 2003 13:18:12 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen , Dovecot List Subject: [dovecot] Re: index files References: <3EA519B4.4020105@bnap.hu> <1051040829.32159.114.camel@hurina> <3EA5AFD0.9070601@bnap.hu> <1051054425.32159.123.camel@hurina> <3EA64E53.7010806@bnap.hu> <1051096388.32159.140.camel@hurina> In-Reply-To: <1051096388.32159.140.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 648 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 651 Status: O Content-Length: 2376 Timo Sirainen wrote: > On Wed, 2003-04-23 at 11:26, Farkas Levente wrote: > >>ok the whole story: >>- once (one of the cvs version) we got a few corrupted index file. >>- then I delete all index file >>- after that (as I wrote it) the load goes so high I've to stop dovecot. >>- delete all index file and modify dovecot.conf : >> mail_cache_fields = >>- but now I assume the index and high load problem may be solved so I'd >> like to put back the default cache schema. > > > But currently there's no real high load problems with empty > mail_cache_fields? no currently ther is not. that's why I'd like to test what happens if I trun it back. >>and my question is: >>should I delete the old index files (which contains no fileds) in >>order to create new index files (which contains the default fields) or >>it will happned automaticaly? >>from you first answer it seems to me if the index is not corrupted than >>it never will recreated. but from the second it seems it will regenerate >>it automatically? >>so? > > > It goes like this: > > - When index is first created, mail_cache_fields setting is saved into > header.cache_fields. All existing mails are indexed with those fields > cached > - If client does something where a cached field would have been a > speedup, but the field isn't cached, header.cache_fields is updated to > include that field > - All new mails that are indexed will have the new field cached as well, > but the old ones aren't changed > - If client again does it with an old mail where it wasn't indexed, then > Dovecot will rebuild the cache for all mails in the index so they all > contain the wanted cached fields > > So even if you don't cache anything initially, they should get > automatically cached if client wants them. Clients behave very > differently so we don't automatically cache everything, if cached field > is not needed it just slows down things. > > This still isn't the optimal caching behaviour, some clients cache > everything locally and fetch data for only new mails. In that case > cached fields would be mostly useless. Even if that client or some other > occationally fetches some data again, it's likely better for overall > performance if nothing is cached. ok. so I don't have to delete them and force the regeneration. -- Levente "Si vis pacem para bellum!" From adam@os.inf.tu-dresden.de Wed Apr 23 14:43:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 14:43:14 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id 85CDA23845 for ; Wed, 23 Apr 2003 14:43:14 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 3.36) id 198Ief-000Nim-00 for dovecot@procontrol.fi; Wed, 23 Apr 2003 13:43:13 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 198Ief-00077U-00 for ; Wed, 23 Apr 2003 13:43:13 +0200 Date: Wed, 23 Apr 2003 13:43:13 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: [dovecot] Re: Using on AIX Message-ID: <20030423114312.GQ21753@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <20030421185434.GJ21753@os.inf.tu-dresden.de> <1050955333.32157.61.camel@hurina> <20030421205734.GK21753@os.inf.tu-dresden.de> <1051041001.32159.118.camel@hurina> <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1051055454.32157.126.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 649 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: adam@os.inf.tu-dresden.de Precedence: bulk X-list: dovecot X-UID: 652 Status: O On Wed Apr 23, 2003 at 02:50:54 +0300, Timo Sirainen wrote: > On Wed, 2003-04-23 at 01:45, Adam Lackorzynski wrote: > > On Tue Apr 22, 2003 at 22:50:01 +0300, Timo Sirainen wrote: > > > > imap(xxx): Apr 21 20:42:14 Error: Corrupted index data file .../Mail/.imap/INBOX/.imap.index.data: Invalid location field for record 1 > > > > > > Umm. Are you sure the sources got fully rebuilt after you added the > > > filler? That looks like it.. > > > > Yes, "make clean"'ed it before. > > Something's really messed up then. Maybe there's some mmap() problems, > try if setting "default_mail_env = mbox:~/Mail:INDEX=MEMORY" helps? This results in dovecot: Apr 23 11:16:05 Error: child 86116 (imap) killed with signal 11 Is it worth finding out where the sigsegv in imap happens? Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From tss@iki.fi Wed Apr 23 15:13:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 15:13:28 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 63E0A23845 for ; Wed, 23 Apr 2003 15:13:28 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id D47E75E017F5; Wed, 23 Apr 2003 15:13:27 +0300 (EEST) Subject: [dovecot] Re: Using on AIX From: Timo Sirainen To: Adam Lackorzynski Cc: dovecot@procontrol.fi In-Reply-To: <20030423114312.GQ21753@os.inf.tu-dresden.de> References: <20030421185434.GJ21753@os.inf.tu-dresden.de> <1050955333.32157.61.camel@hurina> <20030421205734.GK21753@os.inf.tu-dresden.de> <1051041001.32159.118.camel@hurina> <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> <20030423114312.GQ21753@os.inf.tu-dresden.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051100007.32157.162.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Apr 2003 15:13:27 +0300 X-archive-position: 650 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 653 Status: O On Wed, 2003-04-23 at 14:43, Adam Lackorzynski wrote: > > Something's really messed up then. Maybe there's some mmap() problems, > > try if setting "default_mail_env = mbox:~/Mail:INDEX=MEMORY" helps? > > This results in > > dovecot: Apr 23 11:16:05 Error: child 86116 (imap) killed with signal 11 > > Is it worth finding out where the sigsegv in imap happens? Yes, I'd like to know why it crashes. I've tried to prevent that everywhere. Two ways to do this: a) Run the imap binary directly: MAIL=mbox:~/Mail:INDEX=MEMORY gdb /usr/local/libexec/dovecot/imap r x select inbox .. crash? bt b) Set mail_drop_priv_before_exec = yes in config file, and core dump should be written to your home directory. I think I should write this down somewhere in web :) From adam@os.inf.tu-dresden.de Wed Apr 23 15:56:12 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 15:56:12 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id D78D72385F for ; Wed, 23 Apr 2003 15:56:11 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 3.36) id 198JnG-000Zl2-00 for dovecot@procontrol.fi; Wed, 23 Apr 2003 14:56:10 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 198JnG-0000e4-00 for ; Wed, 23 Apr 2003 14:56:10 +0200 Date: Wed, 23 Apr 2003 14:56:10 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: [dovecot] Re: Using on AIX Message-ID: <20030423125610.GR21753@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <20030421185434.GJ21753@os.inf.tu-dresden.de> <1050955333.32157.61.camel@hurina> <20030421205734.GK21753@os.inf.tu-dresden.de> <1051041001.32159.118.camel@hurina> <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> <20030423114312.GQ21753@os.inf.tu-dresden.de> <1051100007.32157.162.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1051100007.32157.162.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 651 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: adam@os.inf.tu-dresden.de Precedence: bulk X-list: dovecot X-UID: 654 Status: O Content-Length: 2174 On Wed Apr 23, 2003 at 15:13:27 +0300, Timo Sirainen wrote: > Yes, I'd like to know why it crashes. I've tried to prevent that > everywhere. Two ways to do this: Program received signal SIGSEGV, Segmentation fault. 0xd017f528 in memset () from /usr/lib/libc.a(shr.o) (gdb) bt #0 0xd017f528 in memset () from /usr/lib/libc.a(shr.o) #1 0x1001e5a4 in mail_index_init_header (index=0x2000ef58, hdr=0xffffffff) at mail-index-open.c:231 #2 0x1001e820 in mail_index_create_memory (index=0x2000ef58, flags=19) at mail-index-open.c:289 #3 0x1001ec24 in mail_index_open (index=0x2000ef58, flags=3) at mail-index-open.c:411 #4 0x1000ded0 in index_storage_init (storage=0x200096a8, box=0x20000cb0, index=0x2000ef58, name=0x10065ae8 "INBOX", readonly=0, fast=0) at index-storage.c:259 #5 0x100401e0 in mbox_open (storage=0x200096a8, name=0x10065ae8 "INBOX", readonly=0, fast=0) at mbox-storage.c:360 #6 0x100402f0 in mbox_open_mailbox (storage=0x200096a8, name=0x20009a78 "inbox", readonly=0, fast=0) at mbox-storage.c:380 #7 0x1004e23c in _cmd_select_full (client=0x200097a8, readonly=0) at cmd-select.c:23 #8 0x1004e4c4 in cmd_select (client=0xffffffff) at cmd-select.c:87 #9 0x1004b9ec in client_handle_input (client=0x200097a8) at client.c:306 #10 0x1004bb5c in _client_input (context=0x200097a8) at client.c:342 #11 0x10001ec0 in io_loop_handler_run (ioloop=0x20008fe8) at ioloop-poll.c:212 #12 0x1000148c in io_loop_run (ioloop=0x20008fe8) at ioloop.c:295 #13 0x10000964 in main (argc=-1, argv=0x20004de4, envp=0x2ff22b80) at main.c:166 ---Type to continue, or q to quit--- #14 0x100001dc in __start () (gdb) The problem seems to be that index->mmap_base = mmap_anon(index->mmap_full_length); in lib-index/mail-index-open.c(287) returns -1 (MAP_FAILED) which is then fed to mail_index_init_header(..., 0xffffffff) without being checked. The mmap in anon_mmap_fixed in lib/mmap-anon.c returns "Not enough space" in errno. The parameter values are "address=0x00002000 length=0x00002000". Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From tss@iki.fi Wed Apr 23 16:29:55 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 16:29:55 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B1BFA23845 for ; Wed, 23 Apr 2003 16:29:55 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 55F155E017F5; Wed, 23 Apr 2003 16:29:55 +0300 (EEST) Subject: [dovecot] Re: Using on AIX From: Timo Sirainen To: Adam Lackorzynski Cc: dovecot@procontrol.fi In-Reply-To: <20030423125610.GR21753@os.inf.tu-dresden.de> References: <20030421185434.GJ21753@os.inf.tu-dresden.de> <1050955333.32157.61.camel@hurina> <20030421205734.GK21753@os.inf.tu-dresden.de> <1051041001.32159.118.camel@hurina> <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> <20030423114312.GQ21753@os.inf.tu-dresden.de> <1051100007.32157.162.camel@hurina> <20030423125610.GR21753@os.inf.tu-dresden.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051104595.32157.176.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Apr 2003 16:29:55 +0300 X-archive-position: 652 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 655 Status: O Content-Length: 1674 On Wed, 2003-04-23 at 15:56, Adam Lackorzynski wrote: > The problem seems to be that > > index->mmap_base = mmap_anon(index->mmap_full_length); > > in lib-index/mail-index-open.c(287) returns -1 (MAP_FAILED) which is > then fed to mail_index_init_header(..., 0xffffffff) without being > checked. Right, I've missed all of them for some reason. Added to CVS. > The mmap in anon_mmap_fixed in lib/mmap-anon.c returns > "Not enough space" in errno. The parameter values are > "address=0x00002000 length=0x00002000". Linux and *BSD returns only EINVAL if address and/or length is invalid, but UNIX98 said ENOMEM can be returned too then. This is a bit annoying in that I can't now know if the mmap() failed because there's really no memory or because the address was just invalid. If it's because there's no memory, Dovecot will try a bit too long before failing. This should anyway fix: RCS file: /home/cvs/dovecot/src/lib/mmap-anon.c,v retrieving revision 1.10 diff -u -r1.10 mmap-anon.c --- mmap-anon.c 29 Dec 2002 19:33:04 -0000 1.10 +++ mmap-anon.c 23 Apr 2003 13:23:41 -0000 @@ -176,7 +176,7 @@ if (ret == 0) break; - if (ret < 0 && errno != EINVAL) + if (ret < 0 && errno != EINVAL && errno != ENOMEM) return MAP_FAILED; } @@ -200,7 +200,7 @@ } if (anon_mmap_fixed(grow_base, new_size - hdr->size) < 0) { - if (errno == EINVAL) { + if (errno == EINVAL || errno == ENOMEM) { /* can't grow, wanted address space is already in use */ return 0; } From adam@os.inf.tu-dresden.de Wed Apr 23 18:03:23 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 18:03:23 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id AD3CC2385F for ; Wed, 23 Apr 2003 18:03:23 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 3.36) id 198LmM-000CY0-00 for dovecot@procontrol.fi; Wed, 23 Apr 2003 17:03:22 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 198LmM-00017h-00 for ; Wed, 23 Apr 2003 17:03:22 +0200 Date: Wed, 23 Apr 2003 17:03:22 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: [dovecot] Re: Using on AIX Message-ID: <20030423150322.GT21753@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <20030421185434.GJ21753@os.inf.tu-dresden.de> <1050955333.32157.61.camel@hurina> <20030421205734.GK21753@os.inf.tu-dresden.de> <1051041001.32159.118.camel@hurina> <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> <20030423114312.GQ21753@os.inf.tu-dresden.de> <1051100007.32157.162.camel@hurina> <20030423125610.GR21753@os.inf.tu-dresden.de> <1051104595.32157.176.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1051104595.32157.176.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 653 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: adam@os.inf.tu-dresden.de Precedence: bulk X-list: dovecot X-UID: 656 Status: O Content-Length: 2012 On Wed Apr 23, 2003 at 16:29:55 +0300, Timo Sirainen wrote: > Linux and *BSD returns only EINVAL if address and/or length is invalid, > but UNIX98 said ENOMEM can be returned too then. This is a bit annoying > in that I can't now know if the mmap() failed because there's really no > memory or because the address was just invalid. If it's because there's > no memory, Dovecot will try a bit too long before failing. This should > anyway fix: Hmm, mmap seems broken somehow or something: x select inbox address=00002000 length=00002000 mmap: : Not enough space address=04002000 length=00002000 mmap: : Not enough space address=08002000 length=00002000 mmap: : Not enough space address=0c002000 length=00002000 mmap: : Not enough space address=10002000 length=00002000 mmap: : Not enough space address=14002000 length=00002000 mmap: : Not enough space address=18002000 length=00002000 mmap: : Not enough space address=1c002000 length=00002000 mmap: : Not enough space address=00002000 length=00002000 mmap: : Not enough space .... address=1fed2000 length=00002000 mmap: : Not enough space address=1fee2000 length=00002000 mmap: : Not enough space address=1fef2000 length=00002000 mmap: : Not enough space address=1ff02000 length=00002000 mmap: : Not enough space address=1ff12000 length=00002000 mmap: : Not enough space Program received signal SIGSEGV, Segmentation fault. 0xd017f528 in memset () from /usr/lib/libc.a(shr.o) (gdb) bt #0 0xd017f528 in memset () from /usr/lib/libc.a(shr.o) #1 0x1001e64c in mail_index_init_header (index=0x2000f038, hdr=0xffffffff) at mail-index-open.c:231 #2 0x1001e8c8 in mail_index_create_memory (index=0x2000f038, flags=19) at mail-index-open.c:289 #3 0x1001eccc in mail_index_open (index=0x2000f038, flags=3) at mail-index-open.c:411 ... The output is from anon_mmap_fixed. I don't have the return checks in yet, that's why the sigsegv. Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From tss@iki.fi Wed Apr 23 18:58:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 18:58:44 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E606E23845 for ; Wed, 23 Apr 2003 18:58:43 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id AF3365E017F5; Wed, 23 Apr 2003 18:58:43 +0300 (EEST) Subject: [dovecot] Re: Using on AIX From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030423150322.GT21753@os.inf.tu-dresden.de> References: <20030421185434.GJ21753@os.inf.tu-dresden.de> <1050955333.32157.61.camel@hurina> <20030421205734.GK21753@os.inf.tu-dresden.de> <1051041001.32159.118.camel@hurina> <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> <20030423114312.GQ21753@os.inf.tu-dresden.de> <1051100007.32157.162.camel@hurina> <20030423125610.GR21753@os.inf.tu-dresden.de> <1051104595.32157.176.camel@hurina> <20030423150322.GT21753@os.inf.tu-dresden.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051113523.32157.202.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Apr 2003 18:58:43 +0300 X-archive-position: 654 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 657 Status: O On Wed, 2003-04-23 at 18:03, Adam Lackorzynski wrote: > Hmm, mmap seems broken somehow or something: > > x select inbox > address=00002000 length=00002000 .. > address=00002000 length=00002000 > mmap: : Not enough space Hmm. It wraps around to original location? It shouldn't do that. Or maybe that's just different mmap_anon() call. Anyway, I changed it now so that it fallbacks to non-fixed mmap() after 100 tries. mremap_anon() was also somewhat broken. I put 0.99.9-test7 to web page which fixes these and other stuff. From adam@os.inf.tu-dresden.de Wed Apr 23 19:32:50 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 19:32:50 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id 04E2E2385F for ; Wed, 23 Apr 2003 19:32:50 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 3.36) id 198NAu-000Xta-00 for dovecot@procontrol.fi; Wed, 23 Apr 2003 18:32:48 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 198NAu-0006Zi-00 for ; Wed, 23 Apr 2003 18:32:48 +0200 Date: Wed, 23 Apr 2003 18:32:48 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: [dovecot] Re: Using on AIX Message-ID: <20030423163248.GU21753@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <20030421205734.GK21753@os.inf.tu-dresden.de> <1051041001.32159.118.camel@hurina> <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> <20030423114312.GQ21753@os.inf.tu-dresden.de> <1051100007.32157.162.camel@hurina> <20030423125610.GR21753@os.inf.tu-dresden.de> <1051104595.32157.176.camel@hurina> <20030423150322.GT21753@os.inf.tu-dresden.de> <1051113523.32157.202.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1051113523.32157.202.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 655 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: adam@os.inf.tu-dresden.de Precedence: bulk X-list: dovecot X-UID: 658 Status: O Content-Length: 1065 On Wed Apr 23, 2003 at 18:58:43 +0300, Timo Sirainen wrote: > Anyway, I changed it now so that it fallbacks to non-fixed mmap() after > 100 tries. mremap_anon() was also somewhat broken. I put 0.99.9-test7 to > web page which fixes these and other stuff. The define in fdpass.c has to be _AIX not just AIX. In mail-index-open.c:289(mail_index_create_memory) you use a path variable which is undefined. Now, with the filler still in, it works for an empty inbox. If a mailbox contains something (7 mails in this case), I get: imap-login: Apr 23 16:22:16 Info: Login: xxx [x.x.x.x] imap(xxx): Apr 23 16:22:16 Error: Corrupted index data file HOME/Mail/f/.imap/sf1/.imap.index.data: Invalid location field for record 7 I deleted the .imap dirs before. And for "default_mail_env = mbox:~/Mail:INDEX=MEMORY", I'm getting: imap(xxx): Apr 23 16:16:54 Error: msync() failed with index file (in-memory index for HOME/Mail/f/sf1): Invalid argument Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From eskimoe@ananzi.co.za Wed Apr 23 20:02:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 20:02:33 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-174-30.reverse.qdsl-home.de [212.202.174.30]) by danu.procontrol.fi (Postfix) with SMTP id C99262385F for ; Wed, 23 Apr 2003 20:02:32 +0300 (EEST) Received: (qmail 18009 invoked by uid 1000); 23 Apr 2003 17:04:02 -0000 Date: Wed, 23 Apr 2003 19:04:02 +0200 From: Moe Wibble To: Dovecot List Subject: [dovecot] shared folders? Message-ID: <20030423170402.GA14185@woom.net> Mail-Followup-To: Moe Wibble , Dovecot List Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-archive-position: 656 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 659 Status: O Any plans to implement shared folders anytime soon? greetinx -- MW From tss@iki.fi Wed Apr 23 20:10:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 20:10:28 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D62492385F for ; Wed, 23 Apr 2003 20:10:27 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 9C3CC5E017F5; Wed, 23 Apr 2003 20:10:20 +0300 (EEST) Subject: [dovecot] Re: Using on AIX From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030423163248.GU21753@os.inf.tu-dresden.de> References: <20030421205734.GK21753@os.inf.tu-dresden.de> <1051041001.32159.118.camel@hurina> <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> <20030423114312.GQ21753@os.inf.tu-dresden.de> <1051100007.32157.162.camel@hurina> <20030423125610.GR21753@os.inf.tu-dresden.de> <1051104595.32157.176.camel@hurina> <20030423150322.GT21753@os.inf.tu-dresden.de> <1051113523.32157.202.camel@hurina> <20030423163248.GU21753@os.inf.tu-dresden.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051117820.32159.206.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Apr 2003 20:10:20 +0300 X-archive-position: 657 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 660 Status: O On Wed, 2003-04-23 at 19:32, Adam Lackorzynski wrote: > In mail-index-open.c:289(mail_index_create_memory) you use a path > variable which is undefined. Whops. Should have compiled it first :) > Now, with the filler still in, it works for an empty inbox. If a mailbox > contains something (7 mails in this case), I get: > > imap-login: Apr 23 16:22:16 Info: Login: xxx [x.x.x.x] > imap(xxx): Apr 23 16:22:16 Error: Corrupted index data file HOME/Mail/f/.imap/sf1/.imap.index.data: Invalid location field for record 7 Yes, what I'd like to know is if INDEX=MEMORY gives the same error once it actually works. > And for "default_mail_env = mbox:~/Mail:INDEX=MEMORY", I'm getting: > > imap(xxx): Apr 23 16:16:54 Error: msync() failed with index file (in-memory index for HOME/Mail/f/sf1): Invalid argument OK, 0.99.9-test8 now doesn't call msync() for anon-mmaped memory. From tss@iki.fi Wed Apr 23 20:11:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 20:11:39 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 225252385F for ; Wed, 23 Apr 2003 20:11:39 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 022FB5E017F5; Wed, 23 Apr 2003 20:11:38 +0300 (EEST) Subject: [dovecot] Re: shared folders? From: Timo Sirainen To: Dovecot List In-Reply-To: <20030423170402.GA14185@woom.net> References: <20030423170402.GA14185@woom.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051117898.32159.209.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Apr 2003 20:11:38 +0300 X-archive-position: 658 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 661 Status: O On Wed, 2003-04-23 at 20:04, Moe Wibble wrote: > Any plans to implement shared folders anytime soon? Very likely after 1.0. And 1.0 doesn't seem to be very near yet. From adam@os.inf.tu-dresden.de Wed Apr 23 21:53:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Apr 2003 21:53:48 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id 1AE2F2385F for ; Wed, 23 Apr 2003 21:53:48 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 3.36) id 198PNL-000KVc-00 for dovecot@procontrol.fi; Wed, 23 Apr 2003 20:53:47 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 198PNK-0001Ts-00 for ; Wed, 23 Apr 2003 20:53:46 +0200 Date: Wed, 23 Apr 2003 20:53:46 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: [dovecot] Re: Using on AIX Message-ID: <20030423185346.GV21753@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> <20030423114312.GQ21753@os.inf.tu-dresden.de> <1051100007.32157.162.camel@hurina> <20030423125610.GR21753@os.inf.tu-dresden.de> <1051104595.32157.176.camel@hurina> <20030423150322.GT21753@os.inf.tu-dresden.de> <1051113523.32157.202.camel@hurina> <20030423163248.GU21753@os.inf.tu-dresden.de> <1051117820.32159.206.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1051117820.32159.206.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 659 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: adam@os.inf.tu-dresden.de Precedence: bulk X-list: dovecot X-UID: 662 Status: O Content-Length: 1468 On Wed Apr 23, 2003 at 20:10:20 +0300, Timo Sirainen wrote: > On Wed, 2003-04-23 at 19:32, Adam Lackorzynski wrote: > > Now, with the filler still in, it works for an empty inbox. If a mailbox > > contains something (7 mails in this case), I get: > > > > imap-login: Apr 23 16:22:16 Info: Login: xxx [x.x.x.x] > > imap(xxx): Apr 23 16:22:16 Error: Corrupted index data file HOME/Mail/f/.imap/sf1/.imap.index.data: Invalid location field for record 7 > > Yes, what I'd like to know is if INDEX=MEMORY gives the same error once > it actually works. Without "INDEX=MEMORY", I'm getting the "Corrupted index data file...Invalid location field for record 7" error as above. With "INDEX=MEMORY", I'm now getting: imap-login: Apr 23 18:46:44 Info: Login: xxx [x.x.x.x] imap(xxx): Apr 23 18:46:44 Error: Corrupted index data file (in-memory index data index for HOME/Mail/f/sf1): Invalid location field for record 7 imap(xxx): Apr 23 18:46:44 Error: Corrupted index data file (in-memory index data index for HOME/Mail/f/sf1): Invalid location field for record 1 imap(xxx): Apr 23 18:46:44 Error: Corrupted index data file (in-memory index data index for HOME/Mail/f/sf1): Invalid location field for record 7 imap(xxx): Apr 23 18:46:44 Error: Corrupted index data file (in-memory index data index for HOME/Mail/f/sf1): Invalid location field for record 1 Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From tss@iki.fi Fri Apr 25 04:34:58 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 04:34:58 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 68A9E23845 for ; Fri, 25 Apr 2003 04:34:58 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 12D905E017F5; Fri, 25 Apr 2003 04:34:56 +0300 (EEST) Subject: [dovecot] Re: Using on AIX From: Timo Sirainen To: Adam Lackorzynski Cc: dovecot@procontrol.fi In-Reply-To: <20030423185346.GV21753@os.inf.tu-dresden.de> References: <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> <20030423114312.GQ21753@os.inf.tu-dresden.de> <1051100007.32157.162.camel@hurina> <20030423125610.GR21753@os.inf.tu-dresden.de> <1051104595.32157.176.camel@hurina> <20030423150322.GT21753@os.inf.tu-dresden.de> <1051113523.32157.202.camel@hurina> <20030423163248.GU21753@os.inf.tu-dresden.de> <1051117820.32159.206.camel@hurina> <20030423185346.GV21753@os.inf.tu-dresden.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051234495.32161.267.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Apr 2003 04:34:56 +0300 X-archive-position: 660 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 663 Status: O On Wed, 2003-04-23 at 21:53, Adam Lackorzynski wrote: > imap(xxx): Apr 23 18:46:44 Error: Corrupted index data file (in-memory index data index for HOME/Mail/f/sf1): Invalid location field for record 7 Got it, the struct sizes aren't padded to 8 bytes but Dovecot wants that. So it pads them while writing, but the reading part is a bit too pedantic and wants exact sizes. For now the easiest fix is to configure --with-mem-align=4. I changed configure to do this automatically now with 32bit file offsets. Have to fix this properly later.. I just compiled and tested Dovecot under AIX 4.3, compiled with xlc. Seems to be working. From tss@iki.fi Fri Apr 25 04:43:48 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 04:43:48 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8567323845 for ; Fri, 25 Apr 2003 04:43:48 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 19A685E017F5; Fri, 25 Apr 2003 04:43:48 +0300 (EEST) Subject: [dovecot] Re: Using on AIX From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1051234495.32161.267.camel@hurina> References: <20030422224542.GO21753@os.inf.tu-dresden.de> <1051055454.32157.126.camel@hurina> <20030423114312.GQ21753@os.inf.tu-dresden.de> <1051100007.32157.162.camel@hurina> <20030423125610.GR21753@os.inf.tu-dresden.de> <1051104595.32157.176.camel@hurina> <20030423150322.GT21753@os.inf.tu-dresden.de> <1051113523.32157.202.camel@hurina> <20030423163248.GU21753@os.inf.tu-dresden.de> <1051117820.32159.206.camel@hurina> <20030423185346.GV21753@os.inf.tu-dresden.de> <1051234495.32161.267.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051235027.32161.272.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Apr 2003 04:43:48 +0300 X-archive-position: 661 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 664 Status: O On Fri, 2003-04-25 at 04:34, Timo Sirainen wrote: > Got it, the struct sizes aren't padded to 8 bytes but Dovecot wants > that. So it pads them while writing, but the reading part is a bit too > pedantic and wants exact sizes. For now the easiest fix is to configure > --with-mem-align=4. I changed configure to do this automatically now > with 32bit file offsets. Have to fix this properly later.. Or actually maybe I should fix it properly now. This breaks if pointers are 64bit but off_t is 32bit, and CPU doesn't want to do unaligned memory accesses.. Index files should probably have separate alignment behaviour since it can't contain pointers. off_t is likely to be the only possible 64bit value in it. From jpeterson275@attbi.com Fri Apr 25 05:26:32 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 05:26:32 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sccrmhc01.attbi.com (sccrmhc01.attbi.com [204.127.202.61]) by danu.procontrol.fi (Postfix) with ESMTP id F2C582385F for ; Fri, 25 Apr 2003 05:26:31 +0300 (EEST) Received: from attbi.com (12-228-143-121.client.attbi.com[12.228.143.121]) by sccrmhc01.attbi.com (sccrmhc01) with SMTP id <2003042502262400100e4mkee>; Fri, 25 Apr 2003 02:26:24 +0000 Message-ID: <3EA89CDE.9000906@attbi.com> Date: Thu, 24 Apr 2003 19:26:38 -0700 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: [dovecot] Re: shared folders? References: <20030423170402.GA14185@woom.net> <1051117898.32159.209.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 662 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jpeterson275@attbi.com Precedence: bulk X-list: dovecot X-UID: 665 Status: O Timo Sirainen wrote: > On Wed, 2003-04-23 at 20:04, Moe Wibble wrote: > >>Any plans to implement shared folders anytime soon? > > > Very likely after 1.0. And 1.0 doesn't seem to be very near yet. > > > With maildir oes dovecot support multiple logins from the same user? If so, can't you just symlink any maildir dir to .SharedFolder in a users dir? From tss@iki.fi Fri Apr 25 13:19:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 13:19:51 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6173A2385F for ; Fri, 25 Apr 2003 13:19:51 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 2EBA95E017F5; Fri, 25 Apr 2003 13:19:51 +0300 (EEST) Subject: [dovecot] Re: shared folders? From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3EA89CDE.9000906@attbi.com> References: <20030423170402.GA14185@woom.net> <1051117898.32159.209.camel@hurina> <3EA89CDE.9000906@attbi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051265990.32159.279.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Apr 2003 13:19:51 +0300 X-archive-position: 663 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 666 Status: O On Fri, 2003-04-25 at 05:26, Jesse Peterson wrote: > With maildir oes dovecot support multiple logins from the same user? Yes. With mbox too. > If so, can't you just symlink any maildir dir to .SharedFolder in a users dir? Well, you could.. If you did it manually, set up permissions correctly and preferrably didn't use shared index files (not so secure). That would also mean that message flags were shared between users. From eskimoe@ananzi.co.za Fri Apr 25 14:35:43 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 14:35:43 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-174-30.reverse.qdsl-home.de [212.202.174.30]) by danu.procontrol.fi (Postfix) with SMTP id 2F2F523845 for ; Fri, 25 Apr 2003 14:35:43 +0300 (EEST) Received: (qmail 26503 invoked by uid 1000); 25 Apr 2003 11:37:13 -0000 Date: Fri, 25 Apr 2003 13:37:13 +0200 From: Moe Wibble To: Dovecot Mail List Subject: [dovecot] Re: shared folders? Message-ID: <20030425113712.GA23447@woom.net> Mail-Followup-To: Moe Wibble , Dovecot Mail List References: <20030423170402.GA14185@woom.net> <1051117898.32159.209.camel@hurina> <3EA89CDE.9000906@attbi.com> <1051265990.32159.279.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1051265990.32159.279.camel@hurina> X-archive-position: 664 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 667 Status: O On Fri, Apr 25, 2003 at 01:19:51PM +0300, Timo Sirainen wrote: > On Fri, 2003-04-25 at 05:26, Jesse Peterson wrote: > > With maildir oes dovecot support multiple logins from the same user? > > Yes. With mbox too. > > > If so, can't you just symlink any maildir dir to .SharedFolder in a users dir? > > Well, you could.. If you did it manually, set up permissions correctly > and preferrably didn't use shared index files (not so secure). That > would also mean that message flags were shared between users. Oh, really now? Last time I tried (some versions ago) this didn't work out. I can't exactly remember what the problem was, though. Maybe I'll give it one more shot today. What negative side effects could sharing the index have? Is there a way to safely disable the index only for the shared folders? thanks -- MW From adam@os.inf.tu-dresden.de Fri Apr 25 15:49:11 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 15:49:11 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id 2A3D12385F for ; Fri, 25 Apr 2003 15:49:11 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 3.36) id 1992dZ-000YYM-00 for dovecot@procontrol.fi; Fri, 25 Apr 2003 14:49:09 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 1992dZ-0001Wb-00 for ; Fri, 25 Apr 2003 14:49:09 +0200 Date: Fri, 25 Apr 2003 14:49:09 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: [dovecot] Re: Using on AIX Message-ID: <20030425124909.GJ21753@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <20030423114312.GQ21753@os.inf.tu-dresden.de> <1051100007.32157.162.camel@hurina> <20030423125610.GR21753@os.inf.tu-dresden.de> <1051104595.32157.176.camel@hurina> <20030423150322.GT21753@os.inf.tu-dresden.de> <1051113523.32157.202.camel@hurina> <20030423163248.GU21753@os.inf.tu-dresden.de> <1051117820.32159.206.camel@hurina> <20030423185346.GV21753@os.inf.tu-dresden.de> <1051234495.32161.267.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1051234495.32161.267.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 665 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: adam@os.inf.tu-dresden.de Precedence: bulk X-list: dovecot X-UID: 668 Status: O On Fri Apr 25, 2003 at 04:34:56 +0300, Timo Sirainen wrote: > Got it, the struct sizes aren't padded to 8 bytes but Dovecot wants > that. So it pads them while writing, but the reading part is a bit too > pedantic and wants exact sizes. For now the easiest fix is to configure > --with-mem-align=4. I changed configure to do this automatically now > with 32bit file offsets. Have to fix this properly later.. > > I just compiled and tested Dovecot under AIX 4.3, compiled with xlc. > Seems to be working. Works for me as well now (with the filler still in and with gcc). Thanks a lot! Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From tss@iki.fi Fri Apr 25 16:39:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 16:39:51 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5C91323845 for ; Fri, 25 Apr 2003 16:39:51 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 2515E5E017F5; Fri, 25 Apr 2003 16:39:51 +0300 (EEST) Subject: [dovecot] Re: shared folders? From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030425113712.GA23447@woom.net> References: <20030423170402.GA14185@woom.net> <1051117898.32159.209.camel@hurina> <3EA89CDE.9000906@attbi.com> <1051265990.32159.279.camel@hurina> <20030425113712.GA23447@woom.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051277990.32157.296.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Apr 2003 16:39:51 +0300 X-archive-position: 666 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 669 Status: O Content-Length: 1098 On Fri, 2003-04-25 at 14:37, Moe Wibble wrote: > > > If so, can't you just symlink any maildir dir to .SharedFolder in a users dir? > > > > Well, you could.. If you did it manually, set up permissions correctly > > and preferrably didn't use shared index files (not so secure). That > > would also mean that message flags were shared between users. > > Oh, really now? > Last time I tried (some versions ago) this didn't work out. > > I can't exactly remember what the problem was, though. > Maybe I'll give it one more shot today. Well, I can't now think of why it wouldn't work :) At least as read-write, read-only wouldn't work now. > What negative side effects could sharing the index have? If user can directly modify it, he could at least make Dovecot display wrong data about the mails, hide mails or possibly cause a buffer overflow. > Is there a way to safely disable the index only for the shared folders? Easiest would be to specify different index location so it won't follow symlink to the shared directory, eg.: default_mail_env = maildir:~/Maildir:INDEX=~/Maildir/indexes/ From lfarkas@bnap.hu Fri Apr 25 17:46:58 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 17:46:58 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 5782E2385F for ; Fri, 25 Apr 2003 17:46:58 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id AF44975400C for ; Fri, 25 Apr 2003 16:48:55 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id C1BB23EB2 for ; Fri, 25 Apr 2003 16:46:55 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id AB2E73EB1 for ; Fri, 25 Apr 2003 16:46:55 +0200 (CEST) Message-ID: <3EA94A5D.2000307@bnap.hu> Date: Fri, 25 Apr 2003 16:46:53 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] today cvs Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 667 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 670 Status: O hi, the today cvs has a new bug during configure (both on rh 8.0 and rh 9): ----------------------------------- checking size of long long... 8 checking type of off_t... long long ./configure: line 12009: syntax error near unexpected token `else' ./configure: line 12009: `else' ----------------------------------- -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Fri Apr 25 17:59:20 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 17:59:20 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 5D5A22385F for ; Fri, 25 Apr 2003 17:59:20 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 9EA8375400C for ; Fri, 25 Apr 2003 17:01:19 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 9392C3EB1 for ; Fri, 25 Apr 2003 16:59:19 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 61BC03EAD for ; Fri, 25 Apr 2003 16:59:19 +0200 (CEST) Message-ID: <3EA94D45.8030907@bnap.hu> Date: Fri, 25 Apr 2003 16:59:17 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] Re: today cvs References: <3EA94A5D.2000307@bnap.hu> In-Reply-To: <3EA94A5D.2000307@bnap.hu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 668 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 671 Status: O Content-Length: 3224 Farkas Levente wrote: > hi, > the today cvs has a new bug during configure (both on rh 8.0 and rh 9): > ----------------------------------- > checking size of long long... 8 > checking type of off_t... long long > ./configure: line 12009: syntax error near unexpected token `else' > ./configure: line 12009: `else' > ----------------------------------- so after I go back top the 0.99.9-test8 version I've got another error on rh9, and I still know the solution, since the problem is the same since the following article: https://listman.redhat.com/mailman/private/redhat-devel-list/2003-April/005427.html our error is: ----------------------------------- gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -DPKG_RUNDIR=\""/var/run/dovecot"\" -DSBINDIR=\""/usr/sbin"\" -O2 -g -march=i386 -mcpu=i686 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c ssl-proxy-openssl.c In file included from /usr/include/openssl/ssl.h:179, from ssl-proxy-openssl.c:14: /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory In file included from /usr/include/openssl/ssl.h:179, from ssl-proxy-openssl.c:14: /usr/include/openssl/kssl.h:132: parse error before "krb5_enctype" /usr/include/openssl/kssl.h:134: parse error before "FAR" /usr/include/openssl/kssl.h:135: parse error before '}' token /usr/include/openssl/kssl.h:147: parse error before "kssl_ctx_setstring" /usr/include/openssl/kssl.h:147: parse error before '*' token /usr/include/openssl/kssl.h:148: parse error before '*' token /usr/include/openssl/kssl.h:149: parse error before '*' token /usr/include/openssl/kssl.h:149: parse error before '*' token /usr/include/openssl/kssl.h:150: parse error before '*' token /usr/include/openssl/kssl.h:151: parse error before "kssl_ctx_setprinc" /usr/include/openssl/kssl.h:151: parse error before '*' token /usr/include/openssl/kssl.h:153: parse error before "kssl_cget_tkt" /usr/include/openssl/kssl.h:153: parse error before '*' token /usr/include/openssl/kssl.h:155: parse error before "kssl_sget_tkt" /usr/include/openssl/kssl.h:155: parse error before '*' token /usr/include/openssl/kssl.h:157: parse error before "kssl_ctx_setkey" /usr/include/openssl/kssl.h:157: parse error before '*' token /usr/include/openssl/kssl.h:159: parse error before "context" /usr/include/openssl/kssl.h:160: parse error before "kssl_build_principal_2" /usr/include/openssl/kssl.h:160: parse error before "context" /usr/include/openssl/kssl.h:163: parse error before "kssl_validate_times" /usr/include/openssl/kssl.h:163: parse error before "atime" /usr/include/openssl/kssl.h:165: parse error before "kssl_check_authent" /usr/include/openssl/kssl.h:165: parse error before '*' token /usr/include/openssl/kssl.h:167: parse error before "enctype" In file included from ssl-proxy-openssl.c:14: /usr/include/openssl/ssl.h:909: parse error before "KSSL_CTX" /usr/include/openssl/ssl.h:931: parse error before '}' token make[3]: *** [ssl-proxy-openssl.o] Error 1 ----------------------------------- I'm waiting for the next cumulative patch:-) -- Levente "Si vis pacem para bellum!" From tss@iki.fi Fri Apr 25 18:27:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 18:27:16 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 393B923845 for ; Fri, 25 Apr 2003 18:27:16 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 012765E017F5; Fri, 25 Apr 2003 18:27:15 +0300 (EEST) Subject: [dovecot] Re: today cvs From: Timo Sirainen To: Dovecot List In-Reply-To: <3EA94D45.8030907@bnap.hu> References: <3EA94A5D.2000307@bnap.hu> <3EA94D45.8030907@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051284435.32161.302.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Apr 2003 18:27:15 +0300 X-archive-position: 669 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 672 Status: O Content-Length: 1134 On Fri, 2003-04-25 at 17:59, Farkas Levente wrote: > Farkas Levente wrote: > > hi, > > the today cvs has a new bug during configure (both on rh 8.0 and rh 9): > > ----------------------------------- > > checking size of long long... 8 > > checking type of off_t... long long > > ./configure: line 12009: syntax error near unexpected token `else' > > ./configure: line 12009: `else' > > ----------------------------------- Testing before committing could be useful I guess :) Fixed. > so after I go back top the 0.99.9-test8 version I've got another error > on rh9, and I still know the solution, since the problem is the same > since the following article: > https://listman.redhat.com/mailman/private/redhat-devel-list/2003-April/005427.html I'm not subscribed there, can't look. > our error is: > ----------------------------------- > In file included from /usr/include/openssl/ssl.h:179, > from ssl-proxy-openssl.c:14: > /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory Can I do something about this? Define OPENSSL_NO_KRB5 maybe? Should I? How is Kerberos useful with OpenSSL anyway? From eskimoe@ananzi.co.za Fri Apr 25 20:04:46 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 20:04:46 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-174-30.reverse.qdsl-home.de [212.202.174.30]) by danu.procontrol.fi (Postfix) with SMTP id 824BC2385F for ; Fri, 25 Apr 2003 20:04:45 +0300 (EEST) Received: (qmail 13982 invoked by uid 1000); 25 Apr 2003 17:06:17 -0000 Date: Fri, 25 Apr 2003 19:06:17 +0200 From: Moe Wibble To: Dovecot Mail List Subject: [dovecot] Re: shared folders? Message-ID: <20030425170617.GA19484@woom.net> Mail-Followup-To: Moe Wibble , Dovecot Mail List References: <20030423170402.GA14185@woom.net> <1051117898.32159.209.camel@hurina> <3EA89CDE.9000906@attbi.com> <1051265990.32159.279.camel@hurina> <20030425113712.GA23447@woom.net> <1051277990.32157.296.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1051277990.32157.296.camel@hurina> X-archive-position: 670 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 673 Status: O Content-Length: 3079 On Fri, Apr 25, 2003 at 04:39:51PM +0300, Timo Sirainen wrote: > On Fri, 2003-04-25 at 14:37, Moe Wibble wrote: > > > > If so, can't you just symlink any maildir dir to .SharedFolder in a users dir? > > > > > > Well, you could.. If you did it manually, set up permissions correctly > > > and preferrably didn't use shared index files (not so secure). That > > > would also mean that message flags were shared between users. > > > > Oh, really now? > > Last time I tried (some versions ago) this didn't work out. > > > > I can't exactly remember what the problem was, though. > > Maybe I'll give it one more shot today. > > Well, I can't now think of why it wouldn't work :) At least as > read-write, read-only wouldn't work now. Ah yes, I think that was the point where it failed when I tried. Very unfornationate because ro-access for some users to shared folders where others can write is a must for us. > > What negative side effects could sharing the index have? > > If user can directly modify it, he could at least make Dovecot display > wrong data about the mails, hide mails or possibly cause a buffer > overflow. Okay, doesn't sound so healthy. ;) > > Is there a way to safely disable the index only for the shared folders? > > Easiest would be to specify different index location so it won't follow > symlink to the shared directory, eg.: > > default_mail_env = maildir:~/Maildir:INDEX=~/Maildir/indexes/ That is my setup anyways. I remember now; shared folders kind of worked up to the point where I tried to restrict write access for single users through unix (group-)permissions. I think users without write-privileges couldn't even SELECT the folder. Well, anyways. I'm really looking forward to "completed" sf-support in dovecot. As said, it's the one missing feature that still forces us to stick with cyrus. I say "completed sf-support" because I figure that what can be done with symlinks now is already half of what we need. The method of having a separate Maildir (that doesn't need to belong to any dovecot user) and symlinking the folders that a user may see into his/her Maildir actually feels much better to me than most other approaches that I have come across. So if we can agree on that being an acceptable way of dealing w/ shared folders then all that's left to add would be: access control. Since simplicity is my friend I'd vote against ACLs or similar overcomplex bloat for that matter. Instead I imagine an optional ".ro-users"-textfile in every Maildir. That file would simply contain a list of (dovecot) login-names that are to be restricted to r/o-access for that folder. Everybody else who can see the folder (= has it or a symlink to it in his/her Md) and is not listed in ".ro-users" would get r/w-permission. That would allow to assign three levels of permission (n/a, r/o, r/w) to any user for any shared (or not shared..) folder in an, umm, I'm tempted to say "almost natural" way. Ofcourse some may say that they need finer granularity of access control. Don't listen to them. ;) Any opinions? :) regards -- MW From tss@iki.fi Fri Apr 25 20:21:36 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 20:21:36 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0715F23845 for ; Fri, 25 Apr 2003 20:21:36 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id AC61D5E017F5; Fri, 25 Apr 2003 20:21:35 +0300 (EEST) Subject: [dovecot] Re: shared folders? From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030425170617.GA19484@woom.net> References: <20030423170402.GA14185@woom.net> <1051117898.32159.209.camel@hurina> <3EA89CDE.9000906@attbi.com> <1051265990.32159.279.camel@hurina> <20030425113712.GA23447@woom.net> <1051277990.32157.296.camel@hurina> <20030425170617.GA19484@woom.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051291295.32159.381.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Apr 2003 20:21:35 +0300 X-archive-position: 671 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 674 Status: O Content-Length: 3180 On Fri, 2003-04-25 at 20:06, Moe Wibble wrote: > > Well, I can't now think of why it wouldn't work :) At least as > > read-write, read-only wouldn't work now. > > Ah yes, I think that was the point where it failed when I tried. > Very unfornationate because ro-access for some users to shared folders > where others can write is a must for us. There's mostly just one problem with this. Mails in new/ couldn't be accessed since they couldn't be moved to cur/ and their UID couldn't be saved into uidlist file. This is actually somewhat related to quota full situation when there's no space to rewrite uidlist file.. Solution should be the same for both, but I'm not sure yet what it is :) > I'm really looking forward to "completed" sf-support in dovecot. Courier-like shared maildir folders would probably be best way to do it. It'd use symlinks to message files, so flags can still be changed separately because it's only the user's symlink that gets renamed. I wrote some kind of plan for shared folder + ACL support a few months ago when there was a possibility of getting paid to do it: (anyone still want to? :) - Change maildir hierarchy separator from '.' to '/', so that usernames could be used in mailboxes names without ugly mangling. - Namespace configuration: - namespace_[private|user|shared]_prefix - MAIL environment (or default_mail_env) additions: - USER_SHARED=.__my_shared_store__ - SHARED=/somewhere for globally shared - NAMESPACE command - Support for multiple namespaces - struct mail_storage == one namespace - fix all IMAP commands handling mailbox names to support other mail_storages based on the mailbox name prefix - mail_storage implementation for shared maildir folders - SUBSCRIBE shared/timo.sirainen/folder would create .shared/timo.sirainen/folder/ and build indexes there - UNSUBSCRIBE would delete it - ..or should SELECT shared/user/folder work before being subscribed? (Later at least yes, but that would need special handling) - LSUB could simply return all the folders in .shared/ dir - LIST could use user-defined plugins - getgroups() plugin - (Courier compatibility? It used some extra files) - Separate per-mail symlinks to allow per-user mail flags - mostly just about syncing symlink directory with real directory - ACL API design - Needs to support stackable implementations, so that eg. filesystem ACL is at the bottom, on top of that an .aclrights file for more fine grained non-OS forced ACLs. - compatible with ACL2 (currently draft), just a few issues - Filesystem ACL implementation for the ACL API - ACL IMAP commands - Make existing commands play nicely with ACLs and shared folders - Say "permission denied" rather than "internal error" if some syscall returns EACCES (mostly when opening folders) - When trying to expunge a message that wasn't ours, ignore or give human readable error message (which one?), but don't give "internal error" - In general Dovecot doesn't currently like having read-only access to mailboxes - Ask ACL if operation is permitted before doing that, so it can force the soft checks (.aclaccess file etc) From eskimoe@ananzi.co.za Fri Apr 25 21:47:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 21:47:14 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-174-30.reverse.qdsl-home.de [212.202.174.30]) by danu.procontrol.fi (Postfix) with SMTP id 0B3E42385F for ; Fri, 25 Apr 2003 21:47:14 +0300 (EEST) Received: (qmail 7769 invoked by uid 1000); 25 Apr 2003 18:48:42 -0000 Date: Fri, 25 Apr 2003 20:48:42 +0200 From: Moe Wibble To: Dovecot Mail List Subject: [dovecot] Re: shared folders? Message-ID: <20030425184842.GA25545@woom.net> Mail-Followup-To: Moe Wibble , Dovecot Mail List References: <20030423170402.GA14185@woom.net> <1051117898.32159.209.camel@hurina> <3EA89CDE.9000906@attbi.com> <1051265990.32159.279.camel@hurina> <20030425113712.GA23447@woom.net> <1051277990.32157.296.camel@hurina> <20030425170617.GA19484@woom.net> <1051291295.32159.381.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1051291295.32159.381.camel@hurina> X-archive-position: 672 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 675 Status: O Content-Length: 4997 On Fri, Apr 25, 2003 at 08:21:35PM +0300, Timo Sirainen wrote: > On Fri, 2003-04-25 at 20:06, Moe Wibble wrote: > > > Well, I can't now think of why it wouldn't work :) At least as > > > read-write, read-only wouldn't work now. > > > > Ah yes, I think that was the point where it failed when I tried. > > Very unfornationate because ro-access for some users to shared folders > > where others can write is a must for us. > > There's mostly just one problem with this. Mails in new/ couldn't be > accessed since they couldn't be moved to cur/ and their UID couldn't be > saved into uidlist file. > > This is actually somewhat related to quota full situation when there's > no space to rewrite uidlist file.. Solution should be the same for both, > but I'm not sure yet what it is :) I'd have some ideas for this but I'm not familar with the dovecot code so they might not be applicable. > > I'm really looking forward to "completed" sf-support in dovecot. > > Courier-like shared maildir folders would probably be best way to do it. > It'd use symlinks to message files, so flags can still be changed > separately because it's only the user's symlink that gets renamed. > > I wrote some kind of plan for shared folder + ACL support a few months > ago when there was a possibility of getting paid to do it: (anyone still > want to? :) Uh oh. > - Change maildir hierarchy separator from '.' to '/', so that usernames > could be used in mailboxes names without ugly mangling. Huh? > - Namespace configuration: > - namespace_[private|user|shared]_prefix > - MAIL environment (or default_mail_env) additions: > - USER_SHARED=.__my_shared_store__ > - SHARED=/somewhere for globally shared > - NAMESPACE command What for? > - Support for multiple namespaces > - struct mail_storage == one namespace > - fix all IMAP commands handling mailbox names to support other > mail_storages based on the mailbox name prefix Ugh. > - mail_storage implementation for shared maildir folders > - SUBSCRIBE shared/timo.sirainen/folder would create > .shared/timo.sirainen/folder/ and build indexes there > - UNSUBSCRIBE would delete it Why!? > - ..or should SELECT shared/user/folder work before being subscribed? > (Later at least yes, but that would need special handling) > - LSUB could simply return all the folders in .shared/ dir > - LIST could use user-defined plugins Why why why!? > - getgroups() plugin > - (Courier compatibility? It used some extra files) Why not treat shared folders like any other folders? Why the heck do you want to be "compatible" to inconveniences of other software? Wouldn't a one-shot-convert-courier-mailstore-to-dovecot-mailstore- utility be more reasonable than bloating the code with compatiblity- workarounds? Who in the world would want to run dovecot and courier in parallel? > - Separate per-mail symlinks to allow per-user mail flags > - mostly just about syncing symlink directory with real directory Ummm. per-mail symlinks? Okay, there are a number of reasons why people want to get rid of courier imap. I'm convinced that would be one of them! Why not store per-user mailflags for a shared folder (shared folder = a folder that is a symlink not directory) in a separate (single?) meta-file? So dovecot sees: "oh a symlink. well, we'd better read the flags from our meta file then, rather than parse the name". > - ACL API design > - Needs to support stackable implementations, so that eg. filesystem > ACL is at the bottom, on top of that an .aclrights file for more fine > grained non-OS forced ACLs. > - compatible with ACL2 (currently draft), just a few issues Okay, you're kidding. You are. Aren't you? You are. (*hides under desk*) > - Filesystem ACL implementation for the ACL API Argh. > - ACL IMAP commands Mercy!! > - Make existing commands play nicely with ACLs and shared folders > - Say "permission denied" rather than "internal error" if some > syscall returns EACCES (mostly when opening folders) Hm. Ah, that's what we get out of all the effort? > - When trying to expunge a message that wasn't ours, ignore or give > human readable error message (which one?), but don't give "internal > error" Umm. Does anyone really care about that? > - In general Dovecot doesn't currently like having read-only access > to mailboxes I noticed that. > - Ask ACL if operation is permitted before doing that, so it can > force the soft checks (.aclaccess file etc) Okay, you got me really scared by now. I mean... I don't even know where to start... Maybe: What kind of expired fish did you have for breakfast? (j/k;)) The positive point was that you said you're not going to actually do it. Can you promise that, please? ;) Would you probably take a simpler approach like the one I briefly outlined in my previous mail into consideration or do you really think of ACLs as a must-have? If so, why? PS: no personal offense intended! greetinx -- MW From dovecot@andreas.hanssen.name Fri Apr 25 21:52:41 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 21:52:41 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id C64AE2385F for ; Fri, 25 Apr 2003 21:52:40 +0300 (EEST) Received: (qmail 18688 invoked from network); 25 Apr 2003 18:52:40 -0000 Received: from localhost (HELO krs-dhcp299.studby.uio.no) (andreaha@127.0.0.1) by localhost with SMTP; 25 Apr 2003 18:52:40 -0000 Date: Fri, 25 Apr 2003 20:49:49 +0200 (CEST) From: Andreas Aardal Hanssen To: Dovecot List Subject: [dovecot] Re: today cvs In-Reply-To: <1051284435.32161.302.camel@hurina> Message-ID: X-Sent-From-Infeline: Yes MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 673 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dovecot@andreas.hanssen.name Precedence: bulk X-list: dovecot X-UID: 676 Status: O On 25 Apr 2003, Timo Sirainen wrote: >On Fri, 2003-04-25 at 17:59, Farkas Levente wrote: >> our error is: >> ----------------------------------- >> In file included from /usr/include/openssl/ssl.h:179, >> from ssl-proxy-openssl.c:14: >> /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory >Can I do something about this? Define OPENSSL_NO_KRB5 maybe? Should I? >How is Kerberos useful with OpenSSL anyway? It's included from your ssl.h file. The kerberos include files are naturally(?) located under /usr/kerberos/include in RH9, so try compiling with CXXFLAGS="-I/usr/kerberos/include" and see what happens. Andy -- Andreas Aardal Hanssen http://www.andreas.hanssen.name/gpg From tss@iki.fi Fri Apr 25 22:52:46 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 25 Apr 2003 22:52:46 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B2EA023845 for ; Fri, 25 Apr 2003 22:52:45 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 741545E017F5; Fri, 25 Apr 2003 22:52:45 +0300 (EEST) Subject: [dovecot] Re: shared folders? From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030425184842.GA25545@woom.net> References: <20030423170402.GA14185@woom.net> <1051117898.32159.209.camel@hurina> <3EA89CDE.9000906@attbi.com> <1051265990.32159.279.camel@hurina> <20030425113712.GA23447@woom.net> <1051277990.32157.296.camel@hurina> <20030425170617.GA19484@woom.net> <1051291295.32159.381.camel@hurina> <20030425184842.GA25545@woom.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051300365.32157.400.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Apr 2003 22:52:45 +0300 X-archive-position: 674 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 677 Status: O Content-Length: 4751 On Fri, 2003-04-25 at 21:48, Moe Wibble wrote: > > - Change maildir hierarchy separator from '.' to '/', so that usernames > > could be used in mailboxes names without ugly mangling. > Huh? So that if you have a login name of "first.last@domain.com", LIST could show that directly under "Other users/" namespace. > > - Namespace configuration: > > - namespace_[private|user|shared]_prefix > > - MAIL environment (or default_mail_env) additions: > > - USER_SHARED=.__my_shared_store__ > > - SHARED=/somewhere for globally shared > > - NAMESPACE command > > What for? I'll do this in any case. Namespaces are good for clients and people want multiple locations for their mailboxes (mixed mboxes and maildir most commonly). > > - Support for multiple namespaces > > - struct mail_storage == one namespace > > - fix all IMAP commands handling mailbox names to support other > > mail_storages based on the mailbox name prefix > > Ugh. Same as above. > > - mail_storage implementation for shared maildir folders > > - SUBSCRIBE shared/timo.sirainen/folder would create > > .shared/timo.sirainen/folder/ and build indexes there > > - UNSUBSCRIBE would delete it > > Why!? Point was to be able to share your folders with other users. How else would you do that with IMAP protocol? > > - ..or should SELECT shared/user/folder work before being subscribed? > > (Later at least yes, but that would need special handling) > > - LSUB could simply return all the folders in .shared/ dir > > - LIST could use user-defined plugins > > Why why why!? How would you list the possible folders that other people have shared? > > - (Courier compatibility? It used some extra files) > > Why not treat shared folders like any other folders? Because they're not like other folders. Unless you want to manually create the symlink and delete it when you don't want that folder anymore. > Why the heck do you want to be "compatible" to inconveniences of other > software? That was in paranthesis :) And it's not a big deal, maybe creating a 0-byte file. > Wouldn't a one-shot-convert-courier-mailstore-to-dovecot-mailstore- > utility be more reasonable than bloating the code with compatiblity- > workarounds? > Who in the world would want to run dovecot and courier in parallel? There may be other programs that access Maildir++ than Courier. Maybe not shared folders, but for quota there's several others. > > - Separate per-mail symlinks to allow per-user mail flags > > - mostly just about syncing symlink directory with real directory > > Ummm. per-mail symlinks? Okay, there are a number of reasons why people > want to get rid of courier imap. I'm convinced that would be one of them! > Why not store per-user mailflags for a shared folder (shared folder = a folder > that is a symlink not directory) in a separate (single?) meta-file? > So dovecot sees: "oh a symlink. well, we'd better read the flags from our > meta file then, rather than parse the name". I think the symlinking is quite simple way to do this and plays very nicely with how maildir works internally. If I do some separate meta-file for flags (I've thought about that too) it wouldn't be maildir anymore. I might just as well implement another mail storage format then. > > - ACL API design > > - Needs to support stackable implementations, so that eg. filesystem > > ACL is at the bottom, on top of that an .aclrights file for more fine > > grained non-OS forced ACLs. > > - compatible with ACL2 (currently draft), just a few issues > > Okay, you're kidding. You are. Aren't you? You are. (*hides under desk*) > > > - Filesystem ACL implementation for the ACL API > > Argh. > > > - ACL IMAP commands > > Mercy!! So, you don't want IMAP ACL support at all? I do, but I'll of course leave it optional. > > - Make existing commands play nicely with ACLs and shared folders > > - Say "permission denied" rather than "internal error" if some > > syscall returns EACCES (mostly when opening folders) > > Hm. Ah, that's what we get out of all the effort? It's not nice to let users fill your error log files. > > - When trying to expunge a message that wasn't ours, ignore or give > > human readable error message (which one?), but don't give "internal > > error" > > Umm. Does anyone really care about that? Depends on how you want the shared folder to behave. Yes, the guy who I wrote this mail first wanted such behaviour. > Would you probably take a simpler approach like the one I briefly outlined > in my previous mail into consideration or do you really think of ACLs as a > must-have? If so, why? If you can't give shell access to IMAP users, that's the only way to let them share their folders. From eskimoe@ananzi.co.za Sat Apr 26 06:50:49 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 26 Apr 2003 06:50:49 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-174-30.reverse.qdsl-home.de [212.202.174.30]) by danu.procontrol.fi (Postfix) with SMTP id 9AF2823845 for ; Sat, 26 Apr 2003 06:50:48 +0300 (EEST) Received: (qmail 17284 invoked by uid 1000); 26 Apr 2003 03:52:20 -0000 Date: Sat, 26 Apr 2003 05:52:20 +0200 From: Moe Wibble To: Dovecot Mail List Subject: [dovecot] Re: shared folders? Message-ID: <20030426035220.GA26817@woom.net> Mail-Followup-To: Moe Wibble , Dovecot Mail List References: <20030423170402.GA14185@woom.net> <1051117898.32159.209.camel@hurina> <3EA89CDE.9000906@attbi.com> <1051265990.32159.279.camel@hurina> <20030425113712.GA23447@woom.net> <1051277990.32157.296.camel@hurina> <20030425170617.GA19484@woom.net> <1051291295.32159.381.camel@hurina> <20030425184842.GA25545@woom.net> <1051300365.32157.400.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1051300365.32157.400.camel@hurina> X-archive-position: 675 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 678 Status: O Content-Length: 6757 On Fri, Apr 25, 2003 at 10:52:45PM +0300, Timo Sirainen wrote: > On Fri, 2003-04-25 at 21:48, Moe Wibble wrote: > > > - Change maildir hierarchy separator from '.' to '/', so that usernames > > > could be used in mailboxes names without ugly mangling. > > Huh? > > So that if you have a login name of "first.last@domain.com", LIST could > show that directly under "Other users/" namespace. Okay, I get it. (i think) > > > - Namespace configuration: > > > - namespace_[private|user|shared]_prefix > > > - MAIL environment (or default_mail_env) additions: > > > - USER_SHARED=.__my_shared_store__ > > > - SHARED=/somewhere for globally shared > > > - NAMESPACE command > > > > What for? > > I'll do this in any case. Namespaces are good for clients and people > want multiple locations for their mailboxes (mixed mboxes and maildir > most commonly). I must admit that I have never really understood (and only very briefly browsed over) the idea of imap namespaces. With the little bit I know I'm basically considering them mainly as a convenience for a person willing to implement an imap server because they make it easier to have the imapd emulate "virtual" folders to the client. But why not just let the user arrange his folder hierarchy the way he likes when what we are dealing with actually is a folder anyways? I don't see the connection to shared folders. And I don't see a reason why shared folders should be separated in a different namespace? Your maildir/mbox example makes a bit sense to me even though I don't see the big advantage there either. But then again, maybe I'm just missing the whole point about namespaces..? > > > - mail_storage implementation for shared maildir folders > > > - SUBSCRIBE shared/timo.sirainen/folder would create > > > .shared/timo.sirainen/folder/ and build indexes there > > > - UNSUBSCRIBE would delete it > > > > Why!? > > Point was to be able to share your folders with other users. How else > would you do that with IMAP protocol? Well, I wouldn't do it with the IMAP protocol but with symlinks. ;) > > > - ..or should SELECT shared/user/folder work before being subscribed? > > > (Later at least yes, but that would need special handling) > > > - LSUB could simply return all the folders in .shared/ dir > > > - LIST could use user-defined plugins > > > > Why why why!? > > How would you list the possible folders that other people have shared? Not at all, I symlink shared folders to the Maildirs of the users that should see them. > > > - (Courier compatibility? It used some extra files) > > > > Why not treat shared folders like any other folders? > > Because they're not like other folders. Unless you want to manually > create the symlink and delete it when you don't want that folder > anymore. Yes, that's what I had in mind. :) > > Why the heck do you want to be "compatible" to inconveniences of other > > software? > > That was in paranthesis :) And it's not a big deal, maybe creating a > 0-byte file. Hum. > > Wouldn't a one-shot-convert-courier-mailstore-to-dovecot-mailstore- > > utility be more reasonable than bloating the code with compatiblity- > > workarounds? > > Who in the world would want to run dovecot and courier in parallel? > > There may be other programs that access Maildir++ than Courier. Maybe > not shared folders, but for quota there's several others. Hum². > > > - Separate per-mail symlinks to allow per-user mail flags > > > - mostly just about syncing symlink directory with real directory > > > > Ummm. per-mail symlinks? Okay, there are a number of reasons why people > > want to get rid of courier imap. I'm convinced that would be one of them! > > Why not store per-user mailflags for a shared folder (shared folder = a folder > > that is a symlink not directory) in a separate (single?) meta-file? > > So dovecot sees: "oh a symlink. well, we'd better read the flags from our > > meta file then, rather than parse the name". > > I think the symlinking is quite simple way to do this and plays very > nicely with how maildir works internally. If I do some separate > meta-file for flags (I've thought about that too) it wouldn't be maildir > anymore. I might just as well implement another mail storage format > then. The major problem I see is the extensive use of inodes. Also keeping the symlink-copies in sync with the main folder seems like an expensive task to me. And you already have meta files (the index), why not add one? > > > [ ACL stuff ] > > [ Moe doesn't like ACL ] > > So, you don't want IMAP ACL support at all? I do, but I'll of course > leave it optional. I'd really prefer a simpler approach, at least for a start. The "simple" shared folders should be fairly easy to implement. At least compared to full blown ACL support. Also they wouldn't bloat the code nearly as much as the latter and could easily co-exist with upcoming ACL support while it's under developement. How good is client support for ACLs nowadays anyways? > > > - Make existing commands play nicely with ACLs and shared folders > > > - Say "permission denied" rather than "internal error" if some > > > syscall returns EACCES (mostly when opening folders) > > > > Hm. Ah, that's what we get out of all the effort? > > It's not nice to let users fill your error log files. Yes, you're right ofcourse. But it shouldn't be too hard to issue proper error messages even without ACLs. ;) > > > - When trying to expunge a message that wasn't ours, ignore or give > > > human readable error message (which one?), but don't give "internal > > > error" > > > > Umm. Does anyone really care about that? > > Depends on how you want the shared folder to behave. Yes, the guy who I > wrote this mail first wanted such behaviour. Well, that's where we have a different view on shared folders. :) "My" shared folders can be read-only or read-write. Trying to delete a message from a read-only shared folder would cause a "Permission denied."-message. I didn't quite understand in first place why that is worth mentioning? > > Would you probably take a simpler approach like the one I briefly outlined > > in my previous mail into consideration or do you really think of ACLs as a > > must-have? If so, why? > > If you can't give shell access to IMAP users, that's the only way to let > them share their folders. Ah, there we go. :) I don't need users to be able to share/unshare their folders with their mail client and all the other extras ACL makes possible. Thus my call for "simple" shared folders. You on the other hand have the real deal in mind, with ACLs, bells and whistles. Well, whatever it will be, shared folders would definately be a nice thing to have. ;) greetinx -- MW From dovecot@andreas.hanssen.name Sat Apr 26 13:12:41 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 26 Apr 2003 13:12:41 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id 50A7223845 for ; Sat, 26 Apr 2003 13:12:41 +0300 (EEST) Received: (qmail 17642 invoked from network); 26 Apr 2003 10:12:39 -0000 Received: from localhost (HELO krs-dhcp299.studby.uio.no) (andreaha@127.0.0.1) by localhost with SMTP; 26 Apr 2003 10:12:39 -0000 Date: Sat, 26 Apr 2003 12:09:33 +0200 (CEST) From: Andreas Aardal Hanssen To: Dovecot Mail List Subject: [dovecot] Re: shared folders? In-Reply-To: <20030426035220.GA26817@woom.net> Message-ID: X-Sent-From-Infeline: Yes MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 676 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dovecot@andreas.hanssen.name Precedence: bulk X-list: dovecot X-UID: 679 Status: O Content-Length: 1479 On Sat, 26 Apr 2003, Moe Wibble wrote: >I must admit that I have never really understood (and only very briefly >browsed over) the idea of imap namespaces. With the little bit I know I'm >basically considering them mainly as a convenience for a person willing to >implement an imap server because they make it easier to have the imapd emulate >"virtual" folders to the client. >But why not just let the user arrange his folder hierarchy the way he likes >when what we are dealing with actually is a folder anyways? >I don't see the connection to shared folders. >And I don't see a reason why shared folders should be separated in a >different namespace? The reason for this comes naturally from one of the main applications of shared folders, which is companies that share announcement and news folders across their employees. One shared folder may be called "finance", another may be "news". Now, I personally have a mailbox called "news" which is a superior to "CNN.com", "Freshmeat.net" and so on. So I can't subscribe to the shared folder "news" unless it's in a different namespace. The namespace name usually starts with a character that is disallowed in regular mailboxes. So perhaps the company's namespace is "#thecompany". Now you can subscribe to two mailboxes whose names are both "news", one is just "news" or within some personal namespace "#personal/news", and one is "#thecompany/news". Andy -- Andreas Aardal Hanssen http://www.andreas.hanssen.name/gpg From eskimoe@ananzi.co.za Sat Apr 26 16:42:26 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 26 Apr 2003 16:42:26 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-174-30.reverse.qdsl-home.de [212.202.174.30]) by danu.procontrol.fi (Postfix) with SMTP id 79EE923845 for ; Sat, 26 Apr 2003 16:42:25 +0300 (EEST) Received: (qmail 7112 invoked by uid 1000); 26 Apr 2003 13:43:56 -0000 Date: Sat, 26 Apr 2003 15:43:56 +0200 From: Moe Wibble To: Dovecot Mail List Subject: [dovecot] Re: shared folders? Message-ID: <20030426134356.GA31067@woom.net> Mail-Followup-To: Moe Wibble , Dovecot Mail List References: <20030426035220.GA26817@woom.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-archive-position: 677 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 680 Status: O Content-Length: 2491 On Sat, Apr 26, 2003 at 12:09:33PM +0200, Andreas Aardal Hanssen wrote: > On Sat, 26 Apr 2003, Moe Wibble wrote: > >I must admit that I have never really understood (and only very briefly > >browsed over) the idea of imap namespaces. With the little bit I know I'm > >basically considering them mainly as a convenience for a person willing to > >implement an imap server because they make it easier to have the imapd emulate > >"virtual" folders to the client. > >But why not just let the user arrange his folder hierarchy the way he likes > >when what we are dealing with actually is a folder anyways? > >I don't see the connection to shared folders. > >And I don't see a reason why shared folders should be separated in a > >different namespace? > > The reason for this comes naturally from one of the main applications of > shared folders, which is companies that share announcement and news > folders across their employees. One shared folder may be called "finance", > another may be "news". > > Now, I personally have a mailbox called "news" which is a superior to > "CNN.com", "Freshmeat.net" and so on. So I can't subscribe to the shared > folder "news" unless it's in a different namespace. The namespace name > usually starts with a character that is disallowed in regular mailboxes. > > So perhaps the company's namespace is "#thecompany". Now you can subscribe > to two mailboxes whose names are both "news", one is just "news" or within > some personal namespace "#personal/news", and one is "#thecompany/news". So namespaces help to enforce corporate policies on folder names? ;) No seriously, if you'd work with symlinks it'd be up to the user how to name his folder and where to put it. Aren't namespaces represented as folders in most clients anyways? So what's the point about enforcing a folders name (or even worse part of the structure of the folder tree) on the client side? As said, it might be more convinient for the imapd because it only has to prepend "#news" to the folder name instead of internally maintaining a "virtual" folder that can be renamed and everything. I'm not sure but I think at least mozilla displays namespaces as toplevel folders. And I guess moving folders between namespaces is not so easy, unless the client remembers some kind of mapping. So what if a user prefers to have "CNN.com" under #personal/news_n_stuff/web rather than #news? I still don't see why shared folders need to exist in a dedicated namespace... regards -- MW From andreas@hanssen.name Sat Apr 26 17:26:22 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 26 Apr 2003 22:55:08 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id 31A852385F for ; Sat, 26 Apr 2003 17:26:22 +0300 (EEST) Received: (qmail 25842 invoked from network); 26 Apr 2003 14:26:21 -0000 Received: from localhost (HELO krs-dhcp299.studby.uio.no) (andreaha@127.0.0.1) by localhost with SMTP; 26 Apr 2003 14:26:21 -0000 Date: Sat, 26 Apr 2003 16:23:14 +0200 (CEST) From: Andreas Aardal Hanssen To: Dovecot Mail List Subject: [dovecot] Re: shared folders? In-Reply-To: <20030426134356.GA31067@woom.net> Message-ID: X-Sent-From-Infeline: Yes MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 678 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: andreas@hanssen.name Precedence: bulk X-list: dovecot X-UID: 681 Status: O Content-Length: 2437 On Sat, 26 Apr 2003, Moe Wibble wrote: >On Sat, Apr 26, 2003 at 12:09:33PM +0200, Andreas Aardal Hanssen wrote: >> On Sat, 26 Apr 2003, Moe Wibble wrote: >> Now, I personally have a mailbox called "news" which is a superior to >> "CNN.com", "Freshmeat.net" and so on. So I can't subscribe to the shared >> folder "news" unless it's in a different namespace. The namespace name >> usually starts with a character that is disallowed in regular mailboxes. >> So perhaps the company's namespace is "#thecompany". Now you can subscribe >> to two mailboxes whose names are both "news", one is just "news" or within >> some personal namespace "#personal/news", and one is "#thecompany/news". >So namespaces help to enforce corporate policies on folder names? ;) >No seriously, if you'd work with symlinks it'd be up to the user how to >name his folder and where to put it. Now you're talking about a specific implementation. The shared folders concept needs to fit into the IMAP protocol, and it therefore needs to be completely platform independent. Sure, one solution is to use symlinks and that one feature allows a user to have a "local" name that can be different from the remote name. But in most cases, it makes little sense to mount a shared folder under another name. >Aren't namespaces represented as folders in most clients anyways? >So what's the point about enforcing a folders name (or even worse >part of the structure of the folder tree) on the client side? The client is not an issue here. The client can assign that folder any name that it wants. The question is what the server should do, and the server represents shared folders' names exactly the way the source presents them. The client needs to access the folder using the server's folder name. To avoid name clashes, you need namespaces. That's what the entire purpose of a namespace is for. >As said, it might be more convinient for the imapd because it only has >to prepend "#news" to the folder name instead of internally maintaining >a "virtual" folder that can be renamed and everything. If there is a source that presents a structure of shared mailboxes, and several of the names clash with your own mailboxes names, you can not easily mount / subscribe / access those mailboxes without namespaces. I can see no reason whatsoever to _not_ use a seperate namespace for shared folders. Andy -- Andreas Aardal Hanssen http://www.andreas.hanssen.name/gpg From heiko@zuerker.org Sun Apr 27 03:40:14 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 27 Apr 2003 03:40:14 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from twister.ispgateway.de (twister.ispgateway.de [62.67.200.3]) by danu.procontrol.fi (Postfix) with SMTP id F27832385F for ; Sun, 27 Apr 2003 03:40:13 +0300 (EEST) Received: (qmail 29907 invoked from network); 27 Apr 2003 00:40:13 -0000 Received: from unknown (HELO gate.home.zuerker.org) (451874@[68.18.18.185]) (envelope-sender ) by twister.ispgateway.de (qmail-ldap-1.03) with SMTP for ; 27 Apr 2003 00:40:13 -0000 Received: from zuerker.org (unknown [192.168.0.14]) by gate.home.zuerker.org (Postfix on Devil-Linux) with ESMTP id B7F5FBA for ; Sat, 26 Apr 2003 20:05:51 -0400 (EDT) Message-ID: <3EAB1EDF.8060807@zuerker.org> Date: Sat, 26 Apr 2003 20:05:51 -0400 From: Heiko Zuerker User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.8) Gecko/20020204 X-Accept-Language: en-us MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] dovecot and grsecurity (problem with resource limits) Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 679 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: heiko@zuerker.org Precedence: bulk X-list: dovecot X-UID: 682 Status: O Content-Length: 1172 Howdy folks ! I just added Dovecot as a standard package to Devil-Linux and ran into a problem with resource limits. Grsecurity (http://www.grsecurity.net) is used in DL to prevent problems with common exploits, it also reports violations of rlimits. The following messages show up in the log, but it seems that the IMAP Server works fine: Apr 26 19:20:04 src@gate imap-login: Login: hz [192.168.0.11] Apr 26 19:20:05 src@gate kernel: grsec: attempted resource overstep by requesting 37 for RLIMIT_NPROC against limit 0 by (dovecot:10246) UID(0) EUID(0), parent (dovecot:634) UID(0) EUID(0) Apr 26 19:22:18 src@gate kernel: grsec: attempted resource overstep by requesting 37 for RLIMIT_NPROC against limit 0 by (dovecot:19802) UID(0) EUID(0), parent (dovecot:634) UID(0) EUID(0) Apr 26 19:22:18 src@gate imap-login: Login: hz [192.168.0.11] Apr 26 19:26:36 src@gate syslog-ng[606]: STATS: dropped 0 Apr 26 19:28:19 src@gate kernel: grsec: attempted resource overstep by requesting 33 for RLIMIT_NPROC against limit 0 by (dovecot:16011) UID(0) EUID(0), parent (dovecot:634) UID(0) EUID(0) How should we proceed to analyze/fix this problem? Thanks! Heiko From tss@iki.fi Sun Apr 27 04:19:32 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 27 Apr 2003 04:19:32 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3F3AF23845 for ; Sun, 27 Apr 2003 04:19:32 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id DFAC95E017F5; Sun, 27 Apr 2003 04:19:31 +0300 (EEST) Subject: [dovecot] Re: dovecot and grsecurity (problem with resource limits) From: Timo Sirainen To: Heiko Zuerker Cc: dovecot@procontrol.fi In-Reply-To: <3EAB1EDF.8060807@zuerker.org> References: <3EAB1EDF.8060807@zuerker.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051406371.26178.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 27 Apr 2003 04:19:31 +0300 X-archive-position: 680 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 683 Status: O Content-Length: 2084 On Sun, 2003-04-27 at 03:05, Heiko Zuerker wrote: > Apr 26 19:20:04 src@gate imap-login: Login: hz [192.168.0.11] > Apr 26 19:20:05 src@gate kernel: grsec: attempted resource overstep by > requesting 37 for RLIMIT_NPROC against limit 0 by (dovecot:10246) UID(0) > EUID(0), parent (dovecot:634) UID(0) EUID(0) Openwall kernel had the same problem. Hmm. I'd like to make sure that imap-login can't fork(), but RLIMIT_NPROC seems to be total number of processes. When does it get enforced? Immediately at setrlimit() or at exec()? Does this work: Index: src/login-common/main.c =================================================================== RCS file: /home/cvs/dovecot/src/login-common/main.c,v retrieving revision 1.9 diff -u -r1.9 main.c --- src/login-common/main.c 6 Mar 2003 21:44:31 -0000 1.9 +++ src/login-common/main.c 27 Apr 2003 01:17:46 -0000 @@ -4,6 +4,7 @@ #include "ioloop.h" #include "lib-signals.h" #include "restrict-access.h" +#include "restrict-process-size.h" #include "process-title.h" #include "fd-close-on-exec.h" #include "auth-connection.h" @@ -129,6 +130,9 @@ static void drop_privileges(const char *name) { + /* make sure we can't fork() */ + restrict_process_size((unsigned int)-1, 0); + /* Log file or syslog opening probably requires roots */ open_logfile(name); cvs server: Diffing src/master Index: src/master/login-process.c =================================================================== RCS file: /home/cvs/dovecot/src/master/login-process.c,v retrieving revision 1.40 diff -u -r1.40 login-process.c --- src/master/login-process.c 15 Apr 2003 16:58:48 -0000 1.40 +++ src/master/login-process.c 27 Apr 2003 01:17:47 -0000 @@ -479,7 +479,7 @@ i_fatal("chdir(%s) failed: %m", set->login_dir); } - restrict_process_size(group->set->process_size, 0); + restrict_process_size(group->set->process_size, (unsigned int)-1); /* make sure we don't leak syslog fd, but do it last so that any errors above will be logged */ From tss@iki.fi Sun Apr 27 05:00:26 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 27 Apr 2003 05:00:26 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9126323845 for ; Sun, 27 Apr 2003 05:00:26 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 1F7B45E017F5; Sun, 27 Apr 2003 05:00:24 +0300 (EEST) Subject: [dovecot] Re: shared folders? From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030426035220.GA26817@woom.net> References: <20030423170402.GA14185@woom.net> <1051117898.32159.209.camel@hurina> <3EA89CDE.9000906@attbi.com> <1051265990.32159.279.camel@hurina> <20030425113712.GA23447@woom.net> <1051277990.32157.296.camel@hurina> <20030425170617.GA19484@woom.net> <1051291295.32159.381.camel@hurina> <20030425184842.GA25545@woom.net> <1051300365.32157.400.camel@hurina> <20030426035220.GA26817@woom.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051408823.26180.75.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 27 Apr 2003 05:00:24 +0300 X-archive-position: 681 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 684 Status: O Content-Length: 3702 On Sat, 2003-04-26 at 06:52, Moe Wibble wrote: > I must admit that I have never really understood (and only very briefly > browsed over) the idea of imap namespaces. With the little bit I know I'm > basically considering them mainly as a convenience for a person willing to > implement an imap server because they make it easier to have the imapd emulate > "virtual" folders to the client. Namespaces also tell client if a folder is user's own, other user's or public (eg. news). Client might want to do things differently depending on the type. > Your maildir/mbox example makes a bit sense to me even though I don't > see the big advantage there either. > > But then again, maybe I'm just missing the whole point > about namespaces..? Like Andreas said, the whole point is that you don't get naming collisions between folders. You can of course always just create symlinks manually, but I'd like to support some more user friendly ways. > > I think the symlinking is quite simple way to do this and plays very > > nicely with how maildir works internally. If I do some separate > > meta-file for flags (I've thought about that too) it wouldn't be maildir > > anymore. I might just as well implement another mail storage format > > then. > > The major problem I see is the extensive use of inodes. Why use maildir at all then? :) XFS at least doesn't have inode limits, I'd guess other file systems nowadays would neither. > Also keeping the > symlink-copies in sync with the main folder seems like an expensive > task to me. Hmm. Well, it would require that symlink is updated when flags are updated in original folder. > And you already have meta files (the index), why not add one? Such flag file would preferrably have to be NFS safe. That makes it a bit more difficult. > > So, you don't want IMAP ACL support at all? I do, but I'll of course > > leave it optional. > > I'd really prefer a simpler approach, at least for a start. Sure. I'm not going to add shared folder or ACL support anytime soon. It's still scheduled post-1.0 > The "simple" shared folders should be fairly easy to implement. You have read-write already :) > How good is client support for ACLs nowadays anyways? Probably not very good. Bynari's InsightConnector is one which could be useful. Makes it possible to replace MS Excenge with IMAP server for Outlook. > > > > - Make existing commands play nicely with ACLs and shared folders > > > > - Say "permission denied" rather than "internal error" if some > > > > syscall returns EACCES (mostly when opening folders) > > > > > > Hm. Ah, that's what we get out of all the effort? > > > > It's not nice to let users fill your error log files. > > Yes, you're right ofcourse. > But it shouldn't be too hard to issue proper error messages even > without ACLs. ;) Sure. That was just a related TODO item. > > > > - When trying to expunge a message that wasn't ours, ignore or give > > > > human readable error message (which one?), but don't give "internal > > > > error" > > > > > > Umm. Does anyone really care about that? > > > > Depends on how you want the shared folder to behave. Yes, the guy who I > > wrote this mail first wanted such behaviour. > > Well, that's where we have a different view on shared folders. :) > "My" shared folders can be read-only or read-write. > Trying to delete a message from a read-only shared folder would cause > a "Permission denied."-message. I didn't quite understand in first place > why that is worth mentioning? That meant a folder where each message was owned by a user, and only he could delete the message. ie. unlink() fails for a file in sticky maildir directory because we're not the owner. From eskimoe@ananzi.co.za Sun Apr 27 17:54:17 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 27 Apr 2003 17:54:18 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-174-173.reverse.qdsl-home.de [212.202.174.173]) by danu.procontrol.fi (Postfix) with SMTP id 109642385F for ; Sun, 27 Apr 2003 17:54:17 +0300 (EEST) Received: (qmail 8521 invoked by uid 1000); 27 Apr 2003 14:55:48 -0000 Date: Sun, 27 Apr 2003 16:55:48 +0200 From: Moe Wibble To: Dovecot Mail List Subject: [dovecot] Re: shared folders? Message-ID: <20030427145548.GA22383@woom.net> Mail-Followup-To: Moe Wibble , Dovecot Mail List References: <3EA89CDE.9000906@attbi.com> <1051265990.32159.279.camel@hurina> <20030425113712.GA23447@woom.net> <1051277990.32157.296.camel@hurina> <20030425170617.GA19484@woom.net> <1051291295.32159.381.camel@hurina> <20030425184842.GA25545@woom.net> <1051300365.32157.400.camel@hurina> <20030426035220.GA26817@woom.net> <1051408823.26180.75.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1051408823.26180.75.camel@hurina> X-archive-position: 682 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: eskimoe@ananzi.co.za Precedence: bulk X-list: dovecot X-UID: 685 Status: O Content-Length: 3739 On Sun, Apr 27, 2003 at 05:00:24AM +0300, Timo Sirainen wrote: > On Sat, 2003-04-26 at 06:52, Moe Wibble wrote: > > I must admit that I have never really understood (and only very briefly > > browsed over) the idea of imap namespaces. With the little bit I know I'm > > basically considering them mainly as a convenience for a person willing to > > implement an imap server because they make it easier to have the imapd emulate > > "virtual" folders to the client. > > Namespaces also tell client if a folder is user's own, other user's or > public (eg. news). Client might want to do things differently depending > on the type. Ah okay, that's the part I missed when reading about them. So "inbox", "public" and "shared" are not randomly chosen but actually tell the client (by definition) something about the nature of the folder? Okay, if clients deal properly with that then I'm fine. :) > > Your maildir/mbox example makes a bit sense to me even though I don't > > see the big advantage there either. > > > > But then again, maybe I'm just missing the whole point > > about namespaces..? > > Like Andreas said, the whole point is that you don't get naming > collisions between folders. Yes, and I thought about solving them by having one of them renamed. But it doesn't matter anyways. My only concern was about how current MUAs handle (visualize) namespaces. If they don't tend to introduce any inconveniences for the user then my previous arguments are void. :) > You can of course always just create symlinks manually, but I'd like to > support some more user friendly ways. I like symlinks but I'm not religious about them! ;) > > > I think the symlinking is quite simple way to do this and plays very > > > nicely with how maildir works internally. If I do some separate > > > meta-file for flags (I've thought about that too) it wouldn't be maildir > > > anymore. I might just as well implement another mail storage format > > > then. > > > > The major problem I see is the extensive use of inodes. > > Why use maildir at all then? :) XFS at least doesn't have inode limits, > I'd guess other file systems nowadays would neither. Well, AFAIK most other filesystems do have inode limits. Adding a variable multiplier to the amount of inodes used doesn't seem very elegant to me. > > Also keeping the > > symlink-copies in sync with the main folder seems like an expensive > > task to me. > > Hmm. Well, it would require that symlink is updated when flags are > updated in original folder. So dovecot better be the only one making changes to the the original folder? > > And you already have meta files (the index), why not add one? > > Such flag file would preferrably have to be NFS safe. That makes it a > bit more difficult. I keep reading "NFS safe". To me that's an oxymoron... > > > So, you don't want IMAP ACL support at all? I do, but I'll of course > > > leave it optional. > > > > I'd really prefer a simpler approach, at least for a start. > > Sure. I'm not going to add shared folder or ACL support anytime soon. > It's still scheduled post-1.0 Well, looking forward to it. I'm a bit worried that dovecot won't be "slim" at all anymore by then, though. > > The "simple" shared folders should be fairly easy to implement. > > You have read-write already :) Yes and adding not more but a per-user r/o-option to that would be perfectly sufficient for most of _my_ applications. I ofcourse can't speak for other users... > > How good is client support for ACLs nowadays anyways? > > Probably not very good. Bynari's InsightConnector is one which could be > useful. Makes it possible to replace MS Excenge with IMAP server for > Outlook. I'll pretend I've not have read that last sentence... From tss@iki.fi Sun Apr 27 19:33:26 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 27 Apr 2003 19:33:26 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EA5182385F for ; Sun, 27 Apr 2003 19:33:25 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 66AAF5E017F5; Sun, 27 Apr 2003 19:33:25 +0300 (EEST) Subject: [dovecot] Re: shared folders? From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030427145548.GA22383@woom.net> References: <3EA89CDE.9000906@attbi.com> <1051265990.32159.279.camel@hurina> <20030425113712.GA23447@woom.net> <1051277990.32157.296.camel@hurina> <20030425170617.GA19484@woom.net> <1051291295.32159.381.camel@hurina> <20030425184842.GA25545@woom.net> <1051300365.32157.400.camel@hurina> <20030426035220.GA26817@woom.net> <1051408823.26180.75.camel@hurina> <20030427145548.GA22383@woom.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051461197.26181.101.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 27 Apr 2003 19:33:23 +0300 X-archive-position: 683 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 686 Status: O Content-Length: 1503 On Sun, 2003-04-27 at 17:55, Moe Wibble wrote: > > Namespaces also tell client if a folder is user's own, other user's or > > public (eg. news). Client might want to do things differently depending > > on the type. > > Ah okay, that's the part I missed when reading about them. > So "inbox", "public" and "shared" are not randomly chosen but actually > tell the client (by definition) something about the nature of the > folder? The actual names don't matter, but just how they're liststed in NAMESPACE reply. For example: * NAMESPACE (("INBOX." ".")("#mbox/" "/")) (("Other users/", "/")) (("#news." ".")("Mailing lists/" "/")) > > > Also keeping the > > > symlink-copies in sync with the main folder seems like an expensive > > > task to me. > > > > Hmm. Well, it would require that symlink is updated when flags are > > updated in original folder. > > So dovecot better be the only one making changes to the the original folder? No, it doesn't matter who does the change in the original folder. Dovecot will just have to notice that symlink destination doesn't exist and fix it. > > Sure. I'm not going to add shared folder or ACL support anytime soon. > > It's still scheduled post-1.0 > > Well, looking forward to it. I'm a bit worried that dovecot won't be > "slim" at all anymore by then, though. I try to keep it unbloated :) Preferrably all IMAP extensions should be possible to leave out at compile time, but some just are a bit too invasive to be left out without tons of #ifdefs. From tss@iki.fi Sun Apr 27 19:56:21 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 27 Apr 2003 19:56:21 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 34FF12385F for ; Sun, 27 Apr 2003 19:56:21 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id E07BB5E017F5; Sun, 27 Apr 2003 19:56:20 +0300 (EEST) Subject: [dovecot] 0.99.9 release candidate 1 From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051462580.26180.113.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 27 Apr 2003 19:56:20 +0300 X-archive-position: 684 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 687 Status: O Content-Length: 2185 0.99.9 should really be released soon. There's been quite a lot of important fixes since 0.99.8.1. There's still some recent counter strangeness, but it wasn't perfect before either. mbox still doesn't necessarily notice flag changes unless they're written into index file (ie. non-Dovecots and Dovecot without index files). But it wasn't perfect before either. dovecot-uidlist file works perfectly now as far as I know. I just noticed that mbox syncing has been somewhat broken for past month. It sometimes assigned new UIDs to messages without any reason, so it was mostly just slowdown. So unless there's something really broken, I'll release 0.99.9 tomorrow. Please get 0.99.9-rc1 from http://dovecot.procontrol.fi/rc/ and see if you can break it. NEWS file: v0.99.9 2003-04-28 Timo Sirainen * WARNING: mbox rewriting works now faster, but it's less likely to notice external message flag changes (it wasn't perfect before either). This also means that if you're not using index files, Dovecot may not notice changes made by another process. This will be fixed later. + Message UIDs are now permanently stored outside index files. Deleting indexes is now possible without any kind of data loss and in-memory indexes are now usable. + mbox rewriting leaves extra space into X-Keywords header. It's shrinked or grown when updating message flag headers to avoid rewriting the rest of the file. + imap-login and pop3-login can now be started from inetd. Privilege separation is still used, so it executes dovecot and dovecot-auth processes which are left on the background. + PostgreSQL authentication support, patch by Alex Howansky - Large multiline headers (over 8kB) broke Dovecot before. Now they're parsed one line at a time and we try to avoid reading them fully into memory. - SEARCH OR was broken - Partial BODY[] fetches were broken - Timezones were still set wrong when parsing dates - Using non-synchronized literals (LITERAL+) broke APPEND - Renaming maildir subfolders inserted extra "." in the middle. - Subfolders were a bit broken with maildir - Invalid PLAIN auth request crashed auth process. From seba@iq.pl Sun Apr 27 22:00:46 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 27 Apr 2003 22:00:46 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id 140412385F for ; Sun, 27 Apr 2003 22:00:46 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id 4103B6BCEC; Sun, 27 Apr 2003 21:01:32 +0200 (CEST) Date: Sun, 27 Apr 2003 21:01:32 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9 release candidate 1 Message-ID: <20030427190132.GB19048@iq.pl> References: <1051462580.26180.113.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1051462580.26180.113.camel@hurina> X-archive-position: 685 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: seba@iq.pl Precedence: bulk X-list: dovecot X-UID: 688 Status: O On Sun, Apr 27, 2003 at 19:56:20 +0300, Timo Sirainen wrote: > Please get 0.99.9-rc1 from http://dovecot.procontrol.fi/rc/ and see if > you can break it. Works with openwall by default, great! Is there any way to drop unused stuff like --without-mbox? From tss@iki.fi Sun Apr 27 22:18:51 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 27 Apr 2003 22:18:51 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EDB6223845 for ; Sun, 27 Apr 2003 22:18:50 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 41AFE5EC9737; Sun, 27 Apr 2003 22:18:49 +0300 (EEST) Subject: [dovecot] Re: 0.99.9 release candidate 1 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030427190132.GB19048@iq.pl> References: <1051462580.26180.113.camel@hurina> <20030427190132.GB19048@iq.pl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051471128.26181.120.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 27 Apr 2003 22:18:48 +0300 X-archive-position: 686 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 689 Status: O On Sun, 2003-04-27 at 22:01, Sebastian Pachuta wrote: > Is there any way to drop unused stuff like --without-mbox? Nothing that easy, but: In configure edit line: STORAGE="maildir mbox" In src/imap/Makefile edit line: imap_LDADD = ... ../lib-storage/index/mbox/libstorage_mbox.a ../lib-index/mbox/libstorage_index_mbox.a ... I guess I could add --with-storages=maildir option to configure. From seba@iq.pl Sun Apr 27 22:59:43 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 27 Apr 2003 22:59:43 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id D362D23845 for ; Sun, 27 Apr 2003 22:59:42 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id 2CD9B6BD2B; Sun, 27 Apr 2003 22:00:29 +0200 (CEST) Date: Sun, 27 Apr 2003 22:00:29 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9 release candidate 1 Message-ID: <20030427200029.GC19048@iq.pl> References: <1051462580.26180.113.camel@hurina> <20030427190132.GB19048@iq.pl> <1051471128.26181.120.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1051471128.26181.120.camel@hurina> X-archive-position: 687 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: seba@iq.pl Precedence: bulk X-list: dovecot X-UID: 690 Status: O On Sun, Apr 27, 2003 at 22:18:48 +0300, Timo Sirainen wrote: > On Sun, 2003-04-27 at 22:01, Sebastian Pachuta wrote: > > Is there any way to drop unused stuff like --without-mbox? > > Nothing that easy, but: > > In configure edit line: > STORAGE="maildir mbox" > > In src/imap/Makefile edit line: > imap_LDADD = ... ../lib-storage/index/mbox/libstorage_mbox.a ../lib-index/mbox/libstorage_index_mbox.a ... so far runs ok - tx > I guess I could add --with-storages=maildir option to configure. That will be very nice. From adam@os.inf.tu-dresden.de Mon Apr 28 00:05:58 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 28 Apr 2003 00:05:58 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id A4DED2385F for ; Mon, 28 Apr 2003 00:05:58 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 3.36) id 199tLQ-000OQa-00 for dovecot@procontrol.fi; Sun, 27 Apr 2003 23:05:56 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 199tLQ-0004um-00 for ; Sun, 27 Apr 2003 23:05:56 +0200 Date: Sun, 27 Apr 2003 23:05:56 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9 release candidate 1 Message-ID: <20030427210555.GD21753@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <1051462580.26180.113.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1051462580.26180.113.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 688 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: adam@os.inf.tu-dresden.de Precedence: bulk X-list: dovecot X-UID: 691 Status: O On Sun Apr 27, 2003 at 19:56:20 +0300, Timo Sirainen wrote: > Please get 0.99.9-rc1 from http://dovecot.procontrol.fi/rc/ and see if > you can break it. I need this little patch to compile on AIX. Except this it seems to work now without further modifications. --- dovecot-0.99.9-rc1.orig/src/lib/fdpass.c Sun Apr 27 22:12:44 2003 +++ dovecot-0.99.9-rc1/src/lib/fdpass.c Sun Apr 27 22:12:44 2003 @@ -32,9 +32,9 @@ */ #define _XPG4_2 -#define _XOPEN_SOURCE /* for IRIX */ #ifndef _AIX +# define _XOPEN_SOURCE /* for IRIX */ # define _XOPEN_SOURCE_EXTENDED /* for Tru64, breaks AIX */ #endif Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From lfarkas@bnap.hu Mon Apr 28 13:02:29 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 28 Apr 2003 13:02:29 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 1728323845 for ; Mon, 28 Apr 2003 13:02:29 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 5AD3975400C for ; Mon, 28 Apr 2003 12:04:50 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 1F25C3EBF for ; Mon, 28 Apr 2003 12:02:20 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 0763E3EAD for ; Mon, 28 Apr 2003 12:02:20 +0200 (CEST) Message-ID: <3EACFC2B.9090605@bnap.hu> Date: Mon, 28 Apr 2003 12:02:19 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] current cvs (04.28) Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 689 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 692 Status: O Content-Length: 1070 hi, after the current cvs compile: ----------------------- gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I../../src/lib-mail -I../../src/lib-imap -I../../src/lib-storage -O2 -g -pipe -march=i386 -mcpu=i686 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c `test -f 'mail-storage-callbacks.c' || echo './'`mail-storage-callbacks.c source='main.c' object='main.o' libtool=no \ depfile='.deps/main.Po' tmpdepfile='.deps/main.TPo' \ depmode=gcc3 /bin/sh ../../depcomp \ gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I../../src/lib-mail -I../../src/lib-imap -I../../src/lib-storage -O2 -g -pipe -march=i386 -mcpu=i686 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c `test -f 'main.c' || echo './'`main.c make[3]: *** No rule to make target `../lib-index/libstorage_index.a', needed by `pop3'. Stop. ----------------------- -- Levente "Si vis pacem para bellum!" From tss@iki.fi Mon Apr 28 19:43:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 28 Apr 2003 19:43:10 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C025A2385F for ; Mon, 28 Apr 2003 19:43:10 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 59C075E107F8; Mon, 28 Apr 2003 19:43:10 +0300 (EEST) Subject: [dovecot] 0.99.9 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051548190.26178.156.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 28 Apr 2003 19:43:10 +0300 X-archive-position: 690 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 693 Status: O Content-Length: 1626 As promised yesterday :) BTW. I just found libsqlora8 library yesterday and I've been playing with Oracle mail storage support. Shouldn't take too long to get it working. And the NEWS file once more: v0.99.9 2003-04-28 Timo Sirainen * WARNING: mbox rewriting works now faster, but it's less likely to notice external message flag changes (it wasn't perfect before either). This also means that if you're not using index files, Dovecot may not notice changes made by another Dovecot process. This will be fixed later. + Message UIDs are now permanently stored outside index files. Deleting indexes is now possible without any kind of data loss and in-memory indexes are now usable. + mbox rewriting leaves extra space into X-Keywords header. It's shrinked or grown when updating message flag headers to avoid rewriting the rest of the file. + imap-login and pop3-login can now be started from inetd. Privilege separation is still used, so it executes dovecot and dovecot-auth processes which are left on the background. + PostgreSQL authentication support, patch by Alex Howansky - Large multiline headers (over 8kB) broke Dovecot before. Now they're parsed one line at a time and we try to avoid reading them fully into memory. - SEARCH OR was broken - Partial BODY[] fetches were broken - Timezones were still set wrong when parsing dates - Using non-synchronized literals (LITERAL+) broke APPEND - Renaming maildir subfolders inserted extra "." in the middle. - Subfolders were a bit broken with maildir - Invalid PLAIN auth request crashed auth process. From dag@wieers.com Tue Apr 29 03:41:27 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 29 Apr 2003 05:18:53 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from horsea.3ti.be (horsea.3ti.be [212.204.244.41]) by danu.procontrol.fi (Postfix) with ESMTP id 3DAE02385F for ; Tue, 29 Apr 2003 03:41:27 +0300 (EEST) Received: from localhost (dag@localhost.localdomain [127.0.0.1]) by horsea.3ti.be (8.11.6/8.11.6) with ESMTP id h3T0fPE31748 for ; Tue, 29 Apr 2003 02:41:25 +0200 Date: Tue, 29 Apr 2003 02:39:23 +0200 (CEST) From: Dag Wieers X-X-Sender: dag@horsea.3ti.be To: Timo Sirainen Subject: [dovecot] Dovecot RH RPM packages Message-ID: User-Agent: Mutt/1.2.5.1i X-Mailer: Ximian Evolution 1.0.5 Organization: 3TI Web Hosting Services X-Extra: We know Linux is the best. It can do infinite loops in five seconds. - Linus Torvalds MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset="ISO-8859-15; FORMAT=flowed" Content-Transfer-Encoding: 8BIT ReSent-Date: Tue, 29 Apr 2003 02:41:18 +0200 (CEST) Resent-From: Dag Wieers Resent-To: dovecot@procontrol.fi ReSent-Subject: Dovecot RH RPM packages ReSent-Message-ID: X-archive-position: 691 X-Approved-By: tss@iki.fi X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dag@wieers.com Precedence: bulk X-list: dovecot X-UID: 694 Status: O Hi, I can't remember if I already told you, but I'm building RPM packages of dovecot for RH73, RH80 and RH9. You can find these at: http://dag.wieers.com/packages/dovecot/ Or use apt as described on: http://dag.wieers.com/apt/ I also added a sysv file to the SPEC-file for use with Red Hat. If you add this SPEC-file to your tarball (probably with some custom changes) everyone can build an RPM package by issuing: rpmbuild -ta Kind regards, -- dag wieers, dag@wieers.com, http://dag.wieers.com/ -- «Any errors in spelling, tact or fact are transmission errors» From jaldhar@debian.org Wed Apr 30 17:40:16 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 30 Apr 2003 17:40:16 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id E0BF92385F for ; Wed, 30 Apr 2003 17:40:15 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id CD9D27FB3 for ; Wed, 30 Apr 2003 10:40:10 -0400 (EDT) Date: Wed, 30 Apr 2003 10:40:10 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: dovecot@procontrol.fi Subject: [dovecot] Debian packages for 0.99.9 Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 692 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 695 Status: O Content-Length: 1276 I uploaded the new version to sid today. Apart from the new version a big change is that it has now been split into 4 pieces. dovecot-imapd and dovecot-pop3d are the imap server and the pop3 server rspectively. They are seperate so you can install one without the other. dovecot-common contains the files they both use. dovecot is just a dummy to ensure smooth upgrades for users of older versions. As there are new packages, they will take a while to show up i the archive so I'm temporarily making them available from http://src.braincells.com/debian/sid/dovecot/ or deb http://src.braincells.com/debian sid/ deb-src http://src.braincells.com/debian sid/ via apt-get. but unless you have a burning need to upgrade, I recommend you just wait a few days. A backport to woody is also available, add deb http://src.braincells.com/debian woody/ deb-src http://src.braincells.com/debian woody/ to your sources.list. One problem I found with installing on woody is that the first time you do apt-get install dovecot, it gives you an error because /etc/dovecot.conf is no owned by dovect-common instead of dovecot. It will work correctly the second time you run the command. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From jaldhar@debian.org Wed Apr 30 17:41:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 30 Apr 2003 17:41:15 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 8B8132385F for ; Wed, 30 Apr 2003 17:41:15 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 1DC377FBB; Wed, 30 Apr 2003 10:41:09 -0400 (EDT) Date: Wed, 30 Apr 2003 10:41:09 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9 released In-Reply-To: <1051548190.26178.156.camel@hurina> Message-ID: References: <1051548190.26178.156.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 693 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 696 Status: O On Mon, 28 Apr 2003, Timo Sirainen wrote: > As promised yesterday :) > Any ETA on getting dotlocking fixed? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From mem@mv.mv.com Wed Apr 30 21:00:08 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 30 Apr 2003 21:00:08 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id D12F3238C5 for ; Wed, 30 Apr 2003 21:00:07 +0300 (EEST) Received: (qmail 19470 invoked by uid 101); 30 Apr 2003 14:00:06 -0400 From: "Mark E. Mallett" Date: Wed, 30 Apr 2003 14:00:06 -0400 To: dovecot@procontrol.fi Subject: [dovecot] Corrupted index Message-ID: <20030430180006.GA5132@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-archive-position: 694 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 697 Status: O Hi- Still getting a bunch of these: Apr 30 13:45:23 mercury mem[11056]: pop3(user1): Corrupted index file /users/78/user1/Maildir/.INBOX/.imap.index: used_file_size larger than real file size (4032 vs 1608) and the occasional: Apr 30 13:08:53 mercury mem[13507]: pop3(user2): Corrupted index file (in-memory index for /users/e0/user2/Maildir): Filename mismatch for UID 1: 1051720748.28556.mercury.mv.net vs 1051715695.29601.mercury.mv.net Most of the time (but not always) the .imap* files are relatively old and apparently created by the test5 or older recent release. The errors persist in the logs until I manually remove the .imap* files, which are subsequently recreated upon the next access (without the error being logged, at least not right away). I had the impression that a "Corrupted index file" would cause the index files not to be used, and in fact recreated. Apparently not? If there is an error that causes the .imap* files to be ignored, shouldn't those files be removed? mm From mem@mv.mv.com Thu May 1 02:51:54 2003 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 01 May 2003 02:51:54 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 0DC28238C5 for ; Thu, 1 May 2003 02:51:54 +0300 (EEST) Received: (qmail 23229 invoked by uid 101); 30 Apr 2003 19:51:53 -0400 From: "Mark E. Mallett" Date: Wed, 30 Apr 2003 19:51:53 -0400 To: dovecot@procontrol.fi Subject: [dovecot] Message causing pop3 crash Message-ID: <20030430235153.GJ22255@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-archive-position: 695 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 698 Status: O Content-Length: 1045 Hi- Found a message that will generate a pop3 coredump when using mbox format. It seems to do with the fact that it has a mime part with a line that's 10,000 bytes long. However, that doesn't seem to be the only factor. Adjusting the size of the mail header seems to cause different kinds of crashes. I'll avoid attaching the message here but I've put it at http://www.mv.com/users/mem/x/badmail Reproducing it here on a BSD/OS system involves something like: (login to a virgin account or one you don't care about) % wget http://www.mv.com/users/mem/x/badmail % rm -rf .imap % MAIL=mbox:`pwd`/badmail % limit coredump 10m % /usr/local/libexec/dovecot/pop3 quit at which point you should get some errors and/or a coredump. You may need to do it twice (i.e. let it create the .imap/ index structure first). If you can't make it happen I can send along more info. -mm- (and yes, this was a real mail message, albeit a spam, except that I simplified it some and replaced all of the content with "x" characters) From pomac@vapor.com Fri May 2 01:25:52 2003 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 02 May 2003 01:25:52 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from pomac.netswarm.net (c-180372d5.012-136-6c756e2.cust.bredbandsbolaget.se [213.114.3.24]) by danu.procontrol.fi (Postfix) with ESMTP id 3E4892385F for ; Fri, 2 May 2003 01:25:52 +0300 (EEST) Received: from [10.0.0.254] (unknown [10.0.0.254]) by pomac.netswarm.net (Postfix) with ESMTP id C3FC5AD4D1; Fri, 2 May 2003 00:25:50 +0200 (CEST) Subject: [dovecot] Problems fetching messages. From: Ian Kumlien To: dovecot@procontrol.fi Cc: Timo Sirainen Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-vQu3WJqUd+BApnAcUipB" Organization: Message-Id: <1051827950.12768.29.camel@big.pomac.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 02 May 2003 00:25:50 +0200 X-archive-position: 696 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: pomac@vapor.com Precedence: bulk X-list: dovecot X-UID: 699 Status: O Content-Length: 1333 --=-vQu3WJqUd+BApnAcUipB Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi,=20 I have problems reading some mail with the latest version of dovecot. I use maildir etc but it all worked before... It seems like dovecot sends something that throws Evolution off the track since the actual information is sent, but in a broken form it seems. I also get some odd chars (this is raw tcp packet decoding): "=EF=EAa-=E8 "=EF=EAc-=E8* FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 609 EXISTS * 0 RECENT * OK [UIDVALIDITY 1049995962] UIDs valid * OK [UIDNEXT 1044] Predicted next UID A10891 OK [READ-WRITE] Select completed. "=EF=EAc-=EE "=EF=EAc-=EE* 609 FETCH (UID 1043) A10892 OK Fetch completed. "=EF=EAg-=EE* 498 FETCH (UID 646 BODY[] {3434} eturn-Path: <-----email-------> etc...=20 Any clues? --=20 Ian Kumlien --=-vQu3WJqUd+BApnAcUipB Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+sZ7u7F3Euyc51N8RAjHAAKCbHxTJxcCGeCwen0YA5dX1uqMirQCfYPZq piD2hwlpzQkVRvKCfVbmRec= =SVnN -----END PGP SIGNATURE----- --=-vQu3WJqUd+BApnAcUipB-- From tss@iki.fi Sat May 3 20:41:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 03 May 2003 20:41:39 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EDA752387F for ; Sat, 3 May 2003 20:41:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 7C8805E107F8; Sat, 3 May 2003 20:41:37 +0300 (EEST) Subject: [dovecot] Re: Message causing pop3 crash From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030430235153.GJ22255@iridium.mv.net> References: <20030430235153.GJ22255@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051983694.26178.1039.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 03 May 2003 20:41:37 +0300 X-archive-position: 697 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 700 Status: O Content-Length: 1051 On Thu, 2003-05-01 at 02:51, Mark E. Mallett wrote: > Hi- > > Found a message that will generate a pop3 coredump when using > mbox format. It seems to do with the fact that it has a mime > part with a line that's 10,000 bytes long. However, that doesn't > seem to be the only factor. There were 3 problems actually: 1) Dovecot stopped parsing messages that had lines longer than 8192 bytes (or 256k if mail_read_mmaped = yes). RFC-(2)822 says maximum line length is 1000 bytes, do MTAs actually allow longer? Fixed anyway. 2) Dovecot thought UIDVALIDITY changed whenever mailbox had been empty. Or in this case, when it thought the whole mailbox was changed because the first message's length was different than it thought. This caused "mailbox inconsistency" error. 3) pop3 server didn't handle inconsistency error separately and tried to print NULL error message. Some sprintf() implementations (GLIBC at least) print it as "(null)", but looks like it crashed with you. Fixed this, and also it now prints NULL error as "BUG: Unknown error". From tss@iki.fi Sat May 3 20:45:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 03 May 2003 20:45:30 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0AD982387F for ; Sat, 3 May 2003 20:45:30 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id BBA015E107F8; Sat, 3 May 2003 20:45:29 +0300 (EEST) Subject: [dovecot] Re: Corrupted index From: Timo Sirainen To: "Mark E. Mallett" Cc: dovecot@procontrol.fi In-Reply-To: <20030430180006.GA5132@iridium.mv.net> References: <20030430180006.GA5132@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051983928.26178.1043.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 03 May 2003 20:45:29 +0300 X-archive-position: 698 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 701 Status: O On Wed, 2003-04-30 at 21:00, Mark E. Mallett wrote: > I had the impression that a "Corrupted index file" would cause the > index files not to be used, and in fact recreated. Apparently not? > If there is an error that causes the .imap* files to be ignored, > shouldn't those files be removed? Yes, if it says "corrupted index file" it sets them to be recreated when they're tried to be opened next time. I guess there could be some bugs left when the recreate flag doesn't actually get written into the file. I fixed at least one of these in -test series.. From tss@iki.fi Sat May 3 20:46:53 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 03 May 2003 20:46:53 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 655F92387F for ; Sat, 3 May 2003 20:46:53 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 37C885E107F8; Sat, 3 May 2003 20:46:53 +0300 (EEST) Subject: [dovecot] Re: 0.99.9 released From: Timo Sirainen To: "Jaldhar H. Vyas" Cc: dovecot@procontrol.fi In-Reply-To: References: <1051548190.26178.156.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051984012.26178.1046.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 03 May 2003 20:46:53 +0300 X-archive-position: 699 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 702 Status: O On Wed, 2003-04-30 at 17:41, Jaldhar H. Vyas wrote: > Any ETA on getting dotlocking fixed? It's not very high priority to me now. mbox has several other problems that should be fixed. From tss@iki.fi Sat May 3 20:56:26 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 03 May 2003 20:56:26 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E3F972387F for ; Sat, 3 May 2003 20:56:25 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 9D38B5E107F8; Sat, 3 May 2003 20:56:25 +0300 (EEST) Subject: [dovecot] Re: Problems fetching messages. From: Timo Sirainen To: Ian Kumlien Cc: dovecot@procontrol.fi In-Reply-To: <1051827950.12768.29.camel@big.pomac.com> References: <1051827950.12768.29.camel@big.pomac.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Organization: Message-Id: <1051984584.26181.1055.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 03 May 2003 20:56:25 +0300 X-archive-position: 700 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 703 Status: O On Fri, 2003-05-02 at 01:25, Ian Kumlien wrote: > It seems like dovecot sends something that throws Evolution off the > track since the actual information is sent, but in a broken form it > seems. I'm using Evolution with two Dovecot 0.99.9 servers. Solaris+mbox and Linux+maildir. Don't see any problems. > I also get some odd chars (this is raw tcp packet decoding): > "=EF=EAa-=E8 > "=EF=EAc-=E8 Are these actually in the TCP stream or are these just TCP headers that you decoded as well? If they're in the stream, something's really wrong. What OS? > "=EF=EAg-=EE* 498 FETCH (UID 646 BODY[] {3434} > eturn-Path: <-----email-------> > etc...=20 It's missing 'R' there? With mbox it could be possible with broken indexes, but maildir?.. From tss@iki.fi Sat May 3 21:52:57 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 03 May 2003 21:52:57 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B42F12385F for ; Sat, 3 May 2003 21:52:56 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 2CEE95E107F8; Sat, 3 May 2003 21:52:53 +0300 (EEST) Subject: [dovecot] 0.99.9.1 From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051987972.26181.1091.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 03 May 2003 21:52:53 +0300 X-archive-position: 701 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 704 Status: O Some bugfixes: v0.99.9.1 2003-05-03 Timo Sirainen - Messages having lines longer than 8192 bytes caused problems. - There was some problems when opening a mbox first time that had been empty for a while. - Didn't compile with OpenBSD. - POP3 server crashed sometimes instead of printing error message. - If cached IMAP envelope contained literals, SEARCHing in it wrote errors to log file. For example if subject contained highascii, '"' or '\' characters this happened. From alvarolists@aycuens.com Sat May 3 22:08:28 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 03 May 2003 22:08:28 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from blackice.aycuens.com (193-107-ADSL.red.retevision.es [80.224.107.193]) by danu.procontrol.fi (Postfix) with ESMTP id 499F22385F for ; Sat, 3 May 2003 22:08:27 +0300 (EEST) Received: (from firewall@localhost) by blackice.aycuens.com (8.9.3/AYCUENSøSMAP) id VAA15273 ( Zombificad0}:| ) for ; Sat, 3 May 2003 21:08:56 +0200 X-Complaints-To: abuse@aycuens.com X-Url: http://www.aycuens.com Received: from devastator.aycuens.com(192.168.2.10) by blackice.aycuens.com via smap (V2.1) id sma015271; Sat, 3 May 03 21:08:15 +0200 Message-ID: <3EB41388.4020706@aycuens.com> Date: Sat, 03 May 2003 21:07:52 +0200 From: "Alvaro Munoz-Aycuens Mtnz." User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030503 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9.1 References: <1051987972.26181.1091.camel@hurina> In-Reply-To: <1051987972.26181.1091.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 702 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: alvarolists@aycuens.com Precedence: bulk X-list: dovecot X-UID: 705 Status: O Nice let's give it a try Timo Sirainen wrote: > Some bugfixes: > > v0.99.9.1 2003-05-03 Timo Sirainen > > - Messages having lines longer than 8192 bytes caused problems. > - There was some problems when opening a mbox first time that had been > empty for a while. > - Didn't compile with OpenBSD. > - POP3 server crashed sometimes instead of printing error message. > - If cached IMAP envelope contained literals, SEARCHing in it wrote > errors to log file. For example if subject contained highascii, '"' > or '\' characters this happened. > > > From alvarolists@aycuens.com Sat May 3 23:38:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 03 May 2003 23:38:44 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from blackice.aycuens.com (193-107-ADSL.red.retevision.es [80.224.107.193]) by danu.procontrol.fi (Postfix) with ESMTP id 171242385F for ; Sat, 3 May 2003 23:38:43 +0300 (EEST) Received: (from firewall@localhost) by blackice.aycuens.com (8.9.3/AYCUENSøSMAP) id VAA15472 ( Zombificad0}:| ) for ; Sat, 3 May 2003 21:47:56 +0200 X-Complaints-To: abuse@aycuens.com X-Url: http://www.aycuens.com Received: from devastator.aycuens.com(192.168.2.10) by blackice.aycuens.com via smap (V2.1) id sma015469; Sat, 3 May 03 21:47:50 +0200 Message-ID: <3EB41CCE.8040700@aycuens.com> Date: Sat, 03 May 2003 21:47:26 +0200 From: "Alvaro Munoz-Aycuens Mtnz." User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030503 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] 0.99.9.1 OpenBSD and mbox Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 703 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: alvarolists@aycuens.com Precedence: bulk X-list: dovecot X-UID: 706 Status: O Hi, compiled perfectly, so the patch of course work ;), but seems that I had the conf a bit broken, because he doesn't read the new messages in /var/mail/user, does the line: #default_mail_env = mbox:~/Mail:INBOX=/var/mail/username look good?, I also tryed with %h instead of username, the rest of the conf is pretty standard, I can create folders and so on. Regards Alvaro From tss@iki.fi Sat May 3 23:51:44 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 03 May 2003 23:51:44 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2DD4C2385F for ; Sat, 3 May 2003 23:51:44 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id EC2BA5E107F8; Sat, 3 May 2003 23:51:43 +0300 (EEST) Subject: [dovecot] Re: 0.99.9.1 OpenBSD and mbox From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3EB41CCE.8040700@aycuens.com> References: <3EB41CCE.8040700@aycuens.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051995103.26181.1093.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 03 May 2003 23:51:43 +0300 X-archive-position: 704 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 707 Status: O On Sat, 2003-05-03 at 22:47, Alvaro Munoz-Aycuens Mtnz. wrote: > Hi, compiled perfectly, so the patch of course work ;), but seems that I > had the conf a bit broken, because he doesn't read the new messages in > /var/mail/user, does the line: > > #default_mail_env = mbox:~/Mail:INBOX=/var/mail/username > > look good?, I also tryed with %h instead of username, the rest of the > conf is pretty standard, I can create folders and so on. %h is host name. You probably wanted /var/mail/%u From dom@cus.org.uk Sat May 3 23:58:39 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 03 May 2003 23:58:39 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from cus.org.uk (host213-106-240-81.no-dns-yet.ntli.net [213.106.240.81]) by danu.procontrol.fi (Postfix) with ESMTP id C66A62385F for ; Sat, 3 May 2003 23:58:38 +0300 (EEST) Received: from cus.org.uk (localhost.cus.org.uk [127.0.0.1]) by cus.org.uk (8.12.6/8.12.6) with ESMTP id h43KwY5h026538; Sat, 3 May 2003 21:58:34 +0100 (BST) (envelope-from dom@cus.org.uk) Received: (from dom@localhost) by cus.org.uk (8.12.6/8.12.6/Submit) id h43KwYQu026537; Sat, 3 May 2003 21:58:34 +0100 (BST) Date: Sat, 3 May 2003 21:58:34 +0100 From: Dominic Marks To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9.1 OpenBSD and mbox Message-ID: <20030503205834.GA26378@cus.org.uk> References: <3EB41CCE.8040700@aycuens.com> <1051995103.26181.1093.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1051995103.26181.1093.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 705 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dom@cus.org.uk Precedence: bulk X-list: dovecot X-UID: 708 Status: O On 03/05/2003 23:51, Timo Sirainen wrote: > On Sat, 2003-05-03 at 22:47, Alvaro Munoz-Aycuens Mtnz. wrote: > > Hi, compiled perfectly, so the patch of course work ;), but seems that I > > had the conf a bit broken, because he doesn't read the new messages in > > /var/mail/user, does the line: > > > > #default_mail_env = mbox:~/Mail:INBOX=/var/mail/username > > > > look good?, I also tryed with %h instead of username, the rest of the > > conf is pretty standard, I can create folders and so on. > > %h is host name. You probably wanted /var/mail/%u > I think dovecot-example.conf needs to be updated to reflect reality because at the moment the comments above the default_mail_env line state that %h means home directory. Thanks, -- Dominic From tss@iki.fi Sun May 4 00:02:01 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 04 May 2003 00:02:01 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 600F92385F for ; Sun, 4 May 2003 00:02:01 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 28ECD5E107F8; Sun, 4 May 2003 00:02:01 +0300 (EEST) Subject: [dovecot] Re: 0.99.9.1 OpenBSD and mbox From: Timo Sirainen To: Dominic Marks Cc: dovecot@procontrol.fi In-Reply-To: <20030503205834.GA26378@cus.org.uk> References: <3EB41CCE.8040700@aycuens.com> <1051995103.26181.1093.camel@hurina> <20030503205834.GA26378@cus.org.uk> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1051995720.26181.1095.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 04 May 2003 00:02:01 +0300 X-archive-position: 706 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 709 Status: O On Sat, 2003-05-03 at 23:58, Dominic Marks wrote: > > %h is host name. You probably wanted /var/mail/%u > I think dovecot-example.conf needs to be updated to reflect reality > because at the moment the comments above the default_mail_env line state > that %h means home directory. No, I just said wrong :) .conf is right. From alvarolists@aycuens.com Sun May 4 22:57:42 2003 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 04 May 2003 22:57:42 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from blackice.aycuens.com (193-107-ADSL.red.retevision.es [80.224.107.193]) by danu.procontrol.fi (Postfix) with ESMTP id 64FDF23860 for ; Sun, 4 May 2003 22:57:41 +0300 (EEST) Received: (from firewall@localhost) by blackice.aycuens.com (8.9.3/AYCUENSøSMAP) id VAA22193 ( Zombificad0}:| ) for ; Sun, 4 May 2003 21:58:12 +0200 X-Complaints-To: abuse@aycuens.com X-Url: http://www.aycuens.com Received: from devastator.aycuens.com(192.168.2.10) by blackice.aycuens.com via smap (V2.1) id sma022191; Sun, 4 May 03 21:57:36 +0200 Message-ID: <3EB5709A.8@aycuens.com> Date: Sun, 04 May 2003 21:57:14 +0200 From: "Alvaro Munoz-Aycuens Mtnz." User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030503 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9.1 OpenBSD and mbox References: <3EB41CCE.8040700@aycuens.com> <1051995103.26181.1093.camel@hurina> <20030503205834.GA26378@cus.org.uk> <1051995720.26181.1095.camel@hurina> <3EB43397.3080902@aycuens.com> <1052071212.26180.1111.camel@hurina> In-Reply-To: <1052071212.26180.1111.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 707 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: alvarolists@aycuens.com Precedence: bulk X-list: dovecot X-UID: 710 Status: O Hi all, Now it works, these are the parameters I touched, the rest remains pretty the same as the example conf: #default_mail_env =mbox:~/mail/:INBOX=/var/mail/%u #mailbox_check_interval = 1 #mbox_locks = fcntl Anyway seems that HUP doesn't fully gets dovecot to reread conf file and restart, better to use SIGUSR1?, by the way how I disable dotlocking in case I want to try. Regards Alvaro Timo Sirainen wrote: > > Right. You'd have to either disable dotlocking or make /var/mail > world-writable and sticky. Currently there's no other ways around this. > > From jaldhar@debian.org Mon May 5 05:07:40 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 05 May 2003 05:07:40 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id CDA7223860 for ; Mon, 5 May 2003 05:07:39 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 1384B7F4D; Sun, 4 May 2003 22:07:41 -0400 (EDT) Date: Sun, 4 May 2003 22:07:41 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com Reply-To: "Jaldhar H. Vyas" To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9 released In-Reply-To: <1051984012.26178.1046.camel@hurina> Message-ID: References: <1051548190.26178.156.camel@hurina> <1051984012.26178.1046.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 708 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jaldhar@debian.org Precedence: bulk X-list: dovecot X-UID: 711 Status: O On Sat, 3 May 2003, Timo Sirainen wrote: > On Wed, 2003-04-30 at 17:41, Jaldhar H. Vyas wrote: > > Any ETA on getting dotlocking fixed? > > It's not very high priority to me now. mbox has several other problems > that should be fixed. > No problem. There's an open bug about it so I may check up with you about it from time to time. btw, 0.99.1 was just uploaded. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From warren@togami.com Mon May 5 15:47:37 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 05 May 2003 15:47:37 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 5A6B02385F for ; Mon, 5 May 2003 15:47:37 +0300 (EEST) Received: from localhost.127.in-addr.arpa (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id 3AD9F5D805B for ; Mon, 5 May 2003 02:47:30 -1000 (HST) Subject: [dovecot] 0.99.9.1 - Runaway imap-login process From: Warren Togami To: dovecot@procontrol.fi Content-Type: text/plain Organization: Message-Id: <1052138847.17312.1.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 05 May 2003 02:47:27 -1000 Content-Transfer-Encoding: 7bit X-archive-position: 709 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: warren@togami.com Precedence: bulk X-list: dovecot X-UID: 712 Status: O PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND 32116 dovecot 19 0 1464 1464 1212 R 99.9 0.1 60:58 0 imap-login service dovecot stop ps -ef |grep imap-login |grep -v grep dovecot 32116 1 98 01:27 ? 01:01:33 imap-login /etc/dovecot.conf: auth_userdb = passwd uth_passdb = pam I think this was triggered while I attempted to login to IMAP with the this dovecot configuration without adding an "imap" entry to /etc/pam.d/ (auth fails). When I attempt to strace -p this runaway process, it strangely displays nothing. kill was able to get rid of it. After I added an appropriate /etc/pam.d/imap entry, auth works and I didn't see this runaway process. This is a RH9 chroot server instance running within Linux virtual server with security contexts kernel. (Think of it as a theoretically unbreakable chroot.) Any tips on what I can do to get some debugging information out of this? Thanks, Warren Togami warren@togami.com From mem@mv.mv.com Mon May 5 16:37:20 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 05 May 2003 16:37:20 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id E7D3323860 for ; Mon, 5 May 2003 16:37:19 +0300 (EEST) Received: (qmail 14159 invoked by uid 101); 5 May 2003 09:37:17 -0400 From: "Mark E. Mallett" Date: Mon, 5 May 2003 09:37:17 -0400 To: Timo Sirainen Cc: dovecot@procontrol.fi Subject: [dovecot] Re: 0.99.9.1 Message-ID: <20030505133717.GB3343@iridium.mv.net> References: <1051987972.26181.1091.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1051987972.26181.1091.camel@hurina> User-Agent: Mutt/1.4.1i X-archive-position: 710 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mem@mv.mv.com Precedence: bulk X-list: dovecot X-UID: 713 Status: O On Sat, May 03, 2003 at 09:52:53PM +0300, Timo Sirainen wrote: > Some bugfixes: > > v0.99.9.1 2003-05-03 Timo Sirainen > > - Messages having lines longer than 8192 bytes caused problems. Seems to have fixed the problem I saw. Thanks! mm From lfarkas@bnap.hu Mon May 5 18:17:10 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 05 May 2003 18:17:10 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id ECF512385F for ; Mon, 5 May 2003 18:17:09 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 87FE575400D for ; Mon, 5 May 2003 17:17:55 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 767F53EB5 for ; Mon, 5 May 2003 17:17:07 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 5415A3EB3 for ; Mon, 5 May 2003 17:17:07 +0200 (CEST) Message-ID: <3EB68071.3020409@bnap.hu> Date: Mon, 05 May 2003 17:17:05 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: [dovecot] dovecot.spec Content-Type: multipart/mixed; boundary="------------050302070001010605000105" X-archive-position: 711 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 714 Status: O Content-Length: 4640 This is a multi-part message in MIME format. --------------050302070001010605000105 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit hi, I'm just recoginze that dovecot contains an rpm spec file. unfortunately it's not too useful since an rpm -ta dovecot-.x.y.tar.gz can't be used since just the dovecot.spec.in is in the tarbar and not the actual spec file (which is in this from not useful in the above form). anyway here is my patch to the spec.in. -- Levente "Si vis pacem para bellum!" --------------050302070001010605000105 Content-Type: text/plain; name="spec.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="spec.patch" --- dovecot/dovecot.spec.in.lfarkas 2003-05-05 16:36:16.000000000 +0200 +++ dovecot/dovecot.spec.in 2003-05-05 17:04:30.000000000 +0200 @@ -1,9 +1,11 @@ # DarContact: Timo Sirainen +%define uid 96 +%define gid 96 Summary: Dovecot secure IMAP server. Name: dovecot Version: @VERSION@ -Release: 0 +Release: 1 License: GPL Group: System Environment/Daemons URL: http://dovecot.procontrol.fi/ @@ -16,14 +18,12 @@ Prefix: %{_prefix} Prereq: /usr/sbin/useradd, /usr/sbin/usermod -BuildRequires: openssl-devel %{!?rh62:, pam-devel} %{?rh62: pam} +BuildRequires: openssl-devel %{!?rh62:, pam-devel} %{?rh62: pam} gettext %description Dovecot is an IMAP server for Linux/UNIX-like systems, written with security primarily in mind. Although it's written with C, it uses -several coding techniques to avoid most of the common pitfalls. Next -release will also contain a small POP3 server. - +several coding techniques to avoid most of the common pitfalls. Dovecot can work with standard mbox and maildir formats and it's fully compatible with UW-IMAP and Courier IMAP servers as well as mail clients accessing the mailboxes directly. @@ -36,7 +36,7 @@ # # Init file for Dovecot IMAP daemon # -# chkconfig: - 54 46 +# chkconfig: 345 54 46 # description: Dovecot IMAP Daemon # # processname: dovecot @@ -101,8 +101,17 @@ exit \$RETVAL EOF +%{__cat} <dovecot.pam +#%PAM-1.0 +auth required pam_nologin.so +auth required pam_stack.so service=system-auth +account required pam_stack.so service=system-auth +session required pam_stack.so service=system-auth +EOF + %build -export CPPFLAGS="-I/usr/kerberos/include" +export CPPFLAGS="`pkg-config --cflags-only-I openssl`" +export LDFLAGS="`pkg-config --libs-only-L openssl`" %configure \ --with-ssl="openssl" \ --with-ssldir="%{_sysconfdir}/ssl" @@ -112,27 +121,32 @@ %{__rm} -rf %{buildroot} %makeinstall %{__install} -d -m0755 %{buildroot}%{_initrddir} -%{__install} -m0755 dovecot.sysv %{buildroot}%{_initrddir}/dovecot +%{__install} -m0755 dovecot.sysv %{buildroot}%{_initrddir}/%{name} +%{__install} -m644 dovecot.pam %{buildroot}%{_sysconfdir}/pam.d/imap +%{__install} -m644 dovecot.pam %{buildroot}%{_sysconfdir}/pam.d/imaps +%{__install} -m644 dovecot.pam %{buildroot}%{_sysconfdir}/pam.d/pop3 +%{__install} -m644 dovecot.pam %{buildroot}%{_sysconfdir}/pam.d/pop3s %{__mv} -f %{buildroot}%{_sysconfdir}/dovecot-example.conf %{buildroot}%{_sysconfdir}/dovecot.conf ### Clean up buildroot -%{__rm} -rf %{buildroot}%{_datadir}/doc/dovecot/ +%{__rm} -rf %{buildroot}%{_datadir}/doc/%{name}/ %pre -/usr/sbin/useradd -M -s /sbin/nologin -r dovecot &>/dev/null || : -/usr/sbin/usermod -s /sbin/nologin dovecot &>/dev/null || : +# Add the dovecot user and group if not found +/usr/sbin/groupadd -g %{gid} -r %{name} &>/dev/null || : +/usr/sbin/useradd -d /var/run/%{name} -s /bin/false -g %{name} -M -r -u %{uid} %{name} &>/dev/null || : %post /sbin/chkconfig --add dovecot %preun if [ $1 -eq 0 ]; then - /sbin/service dovecot stop &>/dev/null || : + /sbin/service %{name} stop &>/dev/null || : /sbin/chkconfig --del dovecot fi %postun -/sbin/service dovecot condrestart &>/dev/null || : +/sbin/service %{name} condrestart &>/dev/null || : %clean %{__rm} -rf %{buildroot} @@ -142,11 +156,16 @@ %doc AUTHORS ChangeLog COPYING* NEWS README TODO %doc doc/*.conf doc/*.sh doc/*.txt %config %{_sysconfdir}/dovecot.conf -%config %{_initrddir}/dovecot +%config %{_initrddir}/%{name} +%config %{_sysconfdir}/pam.d/* %{_sbindir}/* -%{_libexecdir}/dovecot/ +%dir %{_libexecdir}/%{name} +%{_libexecdir}/%{name}/ %changelog +* Mon May 5 2003 Levente Farkas +- update a few things in the spec file + * Tue Apr 29 2003 Dag Wieers - 0.99.9-0 - Updated to release 0.99.9. --------------050302070001010605000105-- From tss@iki.fi Mon May 5 19:50:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 05 May 2003 19:50:30 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F0DE02385F for ; Mon, 5 May 2003 19:50:29 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 5020C5E107FA; Mon, 5 May 2003 19:50:29 +0300 (EEST) Subject: [dovecot] Re: dovecot.spec From: Timo Sirainen To: Dovecot List In-Reply-To: <3EB68071.3020409@bnap.hu> References: <3EB68071.3020409@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1052153427.26180.1137.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 05 May 2003 19:50:29 +0300 X-archive-position: 712 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 715 Status: O On Mon, 2003-05-05 at 18:17, Farkas Levente wrote: > hi, > I'm just recoginze that dovecot contains an rpm spec file. unfortunately > it's not too useful since an > rpm -ta dovecot-.x.y.tar.gz > can't be used since just the dovecot.spec.in is in the tarbar and not > the actual spec file (which is in this from not useful in the above > form). anyway here is my patch to the spec.in. Oh, right. I should have included .spec in tarball too (but not in cvs). -BuildRequires: openssl-devel %{!?rh62:, pam-devel} %{?rh62: pam} +BuildRequires: openssl-devel %{!?rh62:, pam-devel} %{?rh62: pam} gettext Why is gettext needed? Dovecot itself doesn't use it. From seba@iq.pl Tue May 6 16:50:08 2003 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 06 May 2003 16:50:08 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id 5CEE623860 for ; Tue, 6 May 2003 16:50:08 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id 8046A6BD01; Tue, 6 May 2003 15:50:33 +0200 (CEST) Date: Tue, 6 May 2003 15:50:33 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: [dovecot] quota Message-ID: <20030506135033.GD11876@iq.pl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-archive-position: 713 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: seba@iq.pl Precedence: bulk X-list: dovecot X-UID: 716 Status: O first, thx for --with-storages=maildir second, there is a problem when user exceed their quota < status INBOX (messages) > NO Internal error [2003-05-06 15:35:56] in logfile: imap(user): Can't create directory /var/mail/user/.INBOX: Disk quota exceeded 'user' is not able to get list of messages and delete some of them :( third, in logfile: imap(user2): maildir flags update: rename(/var/mail/user2/cur/1049405360.18375_0.asd, /var/mail/user2/cur/1049405360.18375_0.asd:2,T) failed: Disk quota exceeded is there any way to rename files when quota exceed? From tss@iki.fi Wed May 7 05:56:15 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 May 2003 05:56:15 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 41C5D2385F for ; Wed, 7 May 2003 05:56:15 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id E2F615E01701; Wed, 7 May 2003 05:56:14 +0300 (EEST) Subject: [dovecot] Re: quota From: Timo Sirainen To: Sebastian Pachuta Cc: dovecot@procontrol.fi In-Reply-To: <20030506135033.GD11876@iq.pl> References: <20030506135033.GD11876@iq.pl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1052276174.26178.1178.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 07 May 2003 05:56:14 +0300 X-archive-position: 714 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 717 Status: O Content-Length: 1059 On Tue, 2003-05-06 at 16:50, Sebastian Pachuta wrote: > second, there is a problem when user exceed their quota Yes, there's several problems. Biggest one is what to do if we can't update dovecot-uidlist file. If we continued normally but without storing the UIDs permanently, then expunged some messages, logged out and logged in again, the UIDs are different from last time and that breaks client's cache. If we just overwrote next-UID field in dovecot-uidlist we'd get new UIDs next time which is fine, except if client selects the mailbox multiple times it gets different UIDs for the messages. That probably breaks some clients (OE I think). One kludgy solution is to overwrite next-UID field only when messages are expunged and then force all clients that have selected the mailbox to log out. Overwriting next-UID isn't too safe either since readers don't do any kind of locking for the file, but I'd hope writing 1-10 bytes is usually atomic? Well, we could use fcntl() locking in out-of-diskspace conditions but I'm not sure if it's worth it.. From tss@iki.fi Wed May 7 05:59:00 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 May 2003 05:59:00 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1E6132385F for ; Wed, 7 May 2003 05:59:00 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id D361A5E01701; Wed, 7 May 2003 05:58:59 +0300 (EEST) Subject: [dovecot] Re: 0.99.9.1 OpenBSD and mbox From: Timo Sirainen To: Alvaro "Munoz-Aycuens Mtnz." Cc: dovecot@procontrol.fi In-Reply-To: <3EB5709A.8@aycuens.com> References: <3EB41CCE.8040700@aycuens.com> <1051995103.26181.1093.camel@hurina> <20030503205834.GA26378@cus.org.uk> <1051995720.26181.1095.camel@hurina> <3EB43397.3080902@aycuens.com> <1052071212.26180.1111.camel@hurina> <3EB5709A.8@aycuens.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1052276339.26180.1182.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 07 May 2003 05:58:59 +0300 X-archive-position: 715 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 718 Status: O On Sun, 2003-05-04 at 22:57, Alvaro Munoz-Aycuens Mtnz. wrote: > Hi all, > > Now it works, these are the parameters I touched, the rest remains > pretty the same as the example conf: > > #default_mail_env =mbox:~/mail/:INBOX=/var/mail/%u > #mailbox_check_interval = 1 > #mbox_locks = fcntl And you did remove the '#' chars, right? > Anyway seems that HUP doesn't fully gets dovecot to reread conf file and > restart, better to use SIGUSR1?, SIGHUP rereads config file and uses them for new connections, but existing connections are left like they were. Dovecot doesn't catch SIGUSR1 so rather use the normal SIGTERM. > by the way how I disable dotlocking in > case I want to try. You just did by removing dotlock from mbox_locks. From tss@iki.fi Wed May 7 06:03:24 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 May 2003 06:03:24 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C45EB2385F for ; Wed, 7 May 2003 06:03:24 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 892ED5E01701; Wed, 7 May 2003 06:03:24 +0300 (EEST) Subject: [dovecot] Re: 0.99.9.1 - Runaway imap-login process From: Timo Sirainen To: Warren Togami Cc: dovecot@procontrol.fi In-Reply-To: <1052138847.17312.1.camel@laptop> References: <1052138847.17312.1.camel@laptop> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1052276604.26180.1185.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 07 May 2003 06:03:24 +0300 X-archive-position: 716 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 719 Status: O On Mon, 2003-05-05 at 15:47, Warren Togami wrote: > PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND > 32116 dovecot 19 0 1464 1464 1212 R 99.9 0.1 60:58 0 > imap-login > > Any tips on what I can do to get some debugging information out of this? If strace didn't show anything, I guess it got stuck to infinite loop somewhere. gdb /usr/local/libexec/dovecot/imap-login 32116 bt would show where it's stuck at. From jo@our-own.net Wed May 7 11:30:30 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 May 2003 11:30:30 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from thebox.our-own.net (thebox.our-own.net [64.81.83.87]) by danu.procontrol.fi (Postfix) with ESMTP id 03F9C2385F for ; Wed, 7 May 2003 11:30:30 +0300 (EEST) Received: from [10.0.0.19] ([10.0.0.19]) (authenticated bits=0) by thebox.our-own.net (8.12.8/8.12.8) with ESMTP id h478UPA7016746 for ; Wed, 7 May 2003 01:30:26 -0700 Subject: [dovecot] KMail? From: Joakim Ryden To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1052296224.8864.5.camel@redtop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.3 (Preview Release) Date: 07 May 2003 01:30:25 -0700 Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.0 tests=none version=2.53 X-Spam-Checker-Version: SpamAssassin 2.53 (1.174.2.15-2003-03-30-exp) X-Virus-Scanned: clamdscan / ClamAV version 20030424 X-archive-position: 717 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: jo@our-own.net Precedence: bulk X-list: dovecot X-UID: 720 Status: O Hey everyone - is anyone else having problems with Dovecot and KMail? I'm having trouble seeing my INBOX using KMail (Maildir format on the server), though all subfolders show up as normal. I suspect the problem is with KMail as all the other mail clients I've tested seem to have no such problems, they see INBOX *and* subfolders just fine, just wanted to see if anyone could confirm this behaviour? --Jo From warren@togami.com Wed May 7 13:11:33 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 May 2003 13:11:33 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from hnlmail1.hawaii.rr.com (unknown [24.25.227.32]) by danu.procontrol.fi (Postfix) with ESMTP id 2541623860 for ; Wed, 7 May 2003 13:11:33 +0300 (EEST) Received: (apparently) from [192.168.0.4] ([204.210.124.92]) by hnlmail1.hawaii.rr.com with Microsoft SMTPSVC(5.5.1877.757.75); Wed, 7 May 2003 00:11:27 -1000 Subject: [dovecot] dovecot and squirrelmail From: Warren Togami To: dovecot@procontrol.fi Content-Type: text/plain Organization: Message-Id: <1052302286.18560.309.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 07 May 2003 00:11:26 -1000 Content-Transfer-Encoding: 7bit X-archive-position: 718 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: warren@togami.com Precedence: bulk X-list: dovecot X-UID: 721 Status: O Is anyone using squirrelmail with dovecot? After a few minor tweaks squirrelmail seems to work great, but I can't seem to get rid of the "./" folder. SquirrelMail implements some workaround hacks for specific IMAP server quirks. The default setting is: $imap_server_type = 'uw'; What settings do you folks use? Thanks, Warren Togami warren@togami.com From tss@iki.fi Wed May 7 13:17:24 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 May 2003 13:17:24 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 21CF423860 for ; Wed, 7 May 2003 13:17:24 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id A7AD25E01701; Wed, 7 May 2003 13:17:23 +0300 (EEST) Subject: [dovecot] Re: dovecot and squirrelmail From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1052302286.18560.309.camel@laptop> References: <1052302286.18560.309.camel@laptop> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1052302643.12258.10.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 07 May 2003 13:17:23 +0300 X-archive-position: 719 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 722 Status: O On Wed, 2003-05-07 at 13:11, Warren Togami wrote: > Is anyone using squirrelmail with dovecot? After a few minor tweaks > squirrelmail seems to work great, but I can't seem to get rid of the > "./" folder. I don't see it. You use mbox? > SquirrelMail implements some workaround hacks for specific IMAP server > quirks. The default setting is: > $imap_server_type = 'uw'; > > What settings do you folks use? I use 'other' which seems to work fine. Squirrelmail 1.4.0rc1 with maildir. From tss@iki.fi Wed May 7 14:43:46 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 May 2003 14:43:46 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F2A4323860 for ; Wed, 7 May 2003 14:43:45 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id C09245E01701; Wed, 7 May 2003 14:43:45 +0300 (EEST) Subject: [dovecot] Re: KMail? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1052296224.8864.5.camel@redtop> References: <1052296224.8864.5.camel@redtop> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1052307825.12254.85.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 07 May 2003 14:43:45 +0300 X-archive-position: 720 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 723 Status: O On Wed, 2003-05-07 at 11:30, Joakim Ryden wrote: > is anyone else having problems with Dovecot and KMail? I'm having > trouble seeing my INBOX using KMail (Maildir format on the server), > though all subfolders show up as normal. I suspect the problem is with > KMail as all the other mail clients I've tested seem to have no such > problems, they see INBOX *and* subfolders just fine, just wanted to see > if anyone could confirm this behaviour? kmail 3.1.1 in Debian unstable seems to be working. Maybe you should look at what kmail is talking to Dovecot. http://dovecot.procontrol.fi/bugreport.html#sniffing From lfarkas@bnap.hu Wed May 7 18:06:01 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 May 2003 18:06:01 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 662A223860 for ; Wed, 7 May 2003 18:06:01 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id C340F75400D; Wed, 7 May 2003 17:07:03 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id D23E43EB5; Wed, 7 May 2003 17:05:57 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id A1B513EB3; Wed, 7 May 2003 17:05:57 +0200 (CEST) Message-ID: <3EB920D5.4090708@bnap.hu> Date: Wed, 07 May 2003 17:05:57 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Cc: Dovecot List Subject: [dovecot] Re: dovecot.spec References: <3EB68071.3020409@bnap.hu> <1052153427.26180.1137.camel@hurina> In-Reply-To: <1052153427.26180.1137.camel@hurina> Content-Type: multipart/mixed; boundary="------------030506080806070906080701" X-archive-position: 721 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: lfarkas@bnap.hu Precedence: bulk X-list: dovecot X-UID: 724 Status: O Content-Length: 5183 This is a multi-part message in MIME format. --------------030506080806070906080701 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit since (AFAIS) you don't apply the previous patch, here is a better one which can compile:-) Timo Sirainen wrote: > On Mon, 2003-05-05 at 18:17, Farkas Levente wrote: > >>hi, >>I'm just recoginze that dovecot contains an rpm spec file. unfortunately >>it's not too useful since an >>rpm -ta dovecot-.x.y.tar.gz >>can't be used since just the dovecot.spec.in is in the tarbar and not >>the actual spec file (which is in this from not useful in the above >>form). anyway here is my patch to the spec.in. > > > Oh, right. I should have included .spec in tarball too (but not in cvs). > > -BuildRequires: openssl-devel %{!?rh62:, pam-devel} %{?rh62: pam} > +BuildRequires: openssl-devel %{!?rh62:, pam-devel} %{?rh62: pam} gettext > > Why is gettext needed? Dovecot itself doesn't use it. > > > -- Levente "Si vis pacem para bellum!" --------------030506080806070906080701 Content-Type: text/plain; name="spec.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="spec.patch" --- dovecot/dovecot.spec.in.lfarkas 2003-05-07 17:00:24.000000000 +0200 +++ dovecot/dovecot.spec.in 2003-05-07 17:03:08.000000000 +0200 @@ -1,9 +1,11 @@ # DarContact: Timo Sirainen +%define uid 96 +%define gid 96 Summary: Dovecot secure IMAP server. Name: dovecot Version: @VERSION@ -Release: 0 +Release: 1 License: GPL Group: System Environment/Daemons URL: http://dovecot.procontrol.fi/ @@ -16,14 +18,12 @@ Prefix: %{_prefix} Prereq: /usr/sbin/useradd, /usr/sbin/usermod -BuildRequires: openssl-devel %{!?rh62:, pam-devel} %{?rh62: pam} +BuildRequires: openssl-devel %{!?rh62:, pam-devel} %{?rh62: pam} gettext %description Dovecot is an IMAP server for Linux/UNIX-like systems, written with security primarily in mind. Although it's written with C, it uses -several coding techniques to avoid most of the common pitfalls. Next -release will also contain a small POP3 server. - +several coding techniques to avoid most of the common pitfalls. Dovecot can work with standard mbox and maildir formats and it's fully compatible with UW-IMAP and Courier IMAP servers as well as mail clients accessing the mailboxes directly. @@ -36,7 +36,7 @@ # # Init file for Dovecot IMAP daemon # -# chkconfig: - 54 46 +# chkconfig: 345 54 46 # description: Dovecot IMAP Daemon # # processname: dovecot @@ -101,8 +101,17 @@ exit \$RETVAL EOF +%{__cat} <dovecot.pam +#%PAM-1.0 +auth required pam_nologin.so +auth required pam_stack.so service=system-auth +account required pam_stack.so service=system-auth +session required pam_stack.so service=system-auth +EOF + %build -export CPPFLAGS="-I/usr/kerberos/include" +export CPPFLAGS="`pkg-config --cflags-only-I openssl`" +export LDFLAGS="`pkg-config --libs-only-L openssl`" %configure \ --with-ssl="openssl" \ --with-ssldir="%{_sysconfdir}/ssl" @@ -112,27 +121,33 @@ %{__rm} -rf %{buildroot} %makeinstall %{__install} -d -m0755 %{buildroot}%{_initrddir} -%{__install} -m0755 dovecot.sysv %{buildroot}%{_initrddir}/dovecot +%{__install} -m0755 dovecot.sysv %{buildroot}%{_initrddir}/%{name} +%{__install} -d -m0755 %{buildroot}%{_sysconfdir}/pam.d +%{__install} -m0644 dovecot.pam %{buildroot}%{_sysconfdir}/pam.d/imap +%{__install} -m0644 dovecot.pam %{buildroot}%{_sysconfdir}/pam.d/imaps +%{__install} -m0644 dovecot.pam %{buildroot}%{_sysconfdir}/pam.d/pop3 +%{__install} -m0644 dovecot.pam %{buildroot}%{_sysconfdir}/pam.d/pop3s %{__mv} -f %{buildroot}%{_sysconfdir}/dovecot-example.conf %{buildroot}%{_sysconfdir}/dovecot.conf ### Clean up buildroot -%{__rm} -rf %{buildroot}%{_datadir}/doc/dovecot/ +%{__rm} -rf %{buildroot}%{_datadir}/doc/%{name}/ %pre -/usr/sbin/useradd -M -s /sbin/nologin -r dovecot &>/dev/null || : -/usr/sbin/usermod -s /sbin/nologin dovecot &>/dev/null || : +# Add the dovecot user and group if not found +/usr/sbin/groupadd -g %{gid} -r %{name} &>/dev/null || : +/usr/sbin/useradd -d /var/run/%{name} -s /bin/false -g %{name} -M -r -u %{uid} %{name} &>/dev/null || : %post /sbin/chkconfig --add dovecot %preun if [ $1 -eq 0 ]; then - /sbin/service dovecot stop &>/dev/null || : + /sbin/service %{name} stop &>/dev/null || : /sbin/chkconfig --del dovecot fi %postun -/sbin/service dovecot condrestart &>/dev/null || : +/sbin/service %{name} condrestart &>/dev/null || : %clean %{__rm} -rf %{buildroot} @@ -142,11 +157,16 @@ %doc AUTHORS ChangeLog COPYING* NEWS README TODO %doc doc/*.conf doc/*.sh doc/*.txt %config %{_sysconfdir}/dovecot.conf -%config %{_initrddir}/dovecot +%config %{_initrddir}/%{name} +%config %{_sysconfdir}/pam.d/* %{_sbindir}/* -%{_libexecdir}/dovecot/ +%dir %{_libexecdir}/%{name} +%{_libexecdir}/%{name}/ %changelog +* Mon May 5 2003 Levente Farkas +- update a few things in the spec file + * Tue Apr 29 2003 Dag Wieers - 0.99.9-0 - Updated to release 0.99.9. --------------030506080806070906080701-- From mike@innercite.com Wed May 7 19:04:18 2003 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 May 2003 19:04:18 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from knight.innercite.com (knight.innercite.com [158.222.3.8]) by danu.procontrol.fi (Postfix) with ESMTP id 9210D2387A for ; Wed, 7 May 2003 19:04:17 +0300 (EEST) Received: from [158.222.117.13] ([158.222.117.13]) by knight.innercite.com (8.12.3/8.12.3/Debian -4) with ESMTP id h47Fu6pB018343 for ; Wed, 7 May 2003 08:56:06 -0700 Subject: [dovecot] Re: quota From: Mike Machado To: dovecot@procontrol.fi In-Reply-To: <1052276174.26178.1178.camel@hurina> References: <20030506135033.GD11876@iq.pl> <1052276174.26178.1178.camel@hurina> Content-Type: text/plain Organization: Message-Id: <1052323452.661.4.camel@woodstock.innercite.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 07 May 2003 09:04:12 -0700 Content-Transfer-Encoding: 7bit X-archive-position: 722 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: mike@innercite.com Precedence: bulk X-list: dovecot X-UID: 725 Status: O Content-Length: 4582 Believe me, over quota conditions is a major source of ISP support headaches. Entire systems have been designed around trying to manage this very issue. I think doing something special under this unique condition to at least allow some messages to be deleted is acceptable as long as it does not corrupt mail, even if it includes forcing a client logout. As a side thought, couldn't you delete the message from the mailbox, THEN update the UID list, because at that point you would be able to write to the file? On Tue, 2003-05-06 at 19:56, Timo Sirainen wrote: > On Tue, 2003-05-06 at 16:50, Sebastian Pachuta wrote: > > second, there is a problem when user exceed their quota > > Yes, there's several problems. Biggest one is what to do if we can't > update dovecot-uidlist file. > > If we continued normally but without storing the UIDs permanently, then > expunged some messages, logged out and logged in again, the UIDs are > different from last time and that breaks client's cache. > > If we just overwrote next-UID field in dovecot-uidlist we'd get new UIDs > next time which is fine, except if client selects the mailbox multiple > times it gets different UIDs for the messages. That probably breaks some > clients (OE I think). > > One kludgy solution is to overwrite next-UID field only when messages > are expunged and then force all clients that have selected the mailbox > to log out. > > Overwriting next-UID isn't too safe either since readers don't do any > kind of locking for the file, but I'd hope writing 1-10 bytes is usually > atomic? Well, we could use fcntl() locking in out-of-diskspace > conditions but I'm not sure if it's worth it.. -- Mike Machado mike@innercite.com InnerCite Inc. Engineering Director / CTO Return-Path: dovecot-bounces@procontrol.fi Received: from danu.procontrol.fi (localhost [127.0.0.1]) by danu.procontrol.fi (Postfix) with ESMTP id 5980E239A8; Mon, 12 May 2003 17:56:53 +0300 (EEST) X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 57BCC238D1 for ; Mon, 12 May 2003 17:56:52 +0300 (EEST) Received: (qmail 21878 invoked by uid 404); 12 May 2003 14:56:51 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 12 May 2003 10:56:50 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 12 May 2003 14:56:50 -0000 Received: (qmail 11560 invoked from network); 12 May 2003 14:56:50 -0000 Received: from vegemite.nssg.mitel.com (10.33.15.70) by allspice.nssg.mitel.com with QMQP; 12 May 2003 14:56:50 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 12 May 2003 15:01:14 -0000 Date: Mon, 12 May 2003 11:01:14 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Timo Sirainen Subject: Re: [dovecot] Re: Design thought - Retention of reworked mbox files In-Reply-To: <1052701549.5227.415.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dovecot-bounces@procontrol.fi Errors-To: dovecot-bounces@procontrol.fi On 12 May 2003, Timo Sirainen wrote: > On Mon, 2003-05-12 at 02:05, Tim Hunt wrote: > > Would it be possible to keep a backup copy of an mbox mail file any time it > > needs to be substantionally rebuilt - for an example before an expunge. This > > behaviour could be controlled by the config file, since it would most likely > > only be used in development and testing environments. > > If it's only for debugging, I guess I could then just save a copy of it. Presumably the other reason you'd want it would be for mailbox integrity. But if you are concerned about that, you'd be using maildir, wouldn't you? -- Charlie From timhunt@users.sourceforge.net Tue May 13 04:38:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from timhunt.net (ns1.timhunt.net [216.27.147.130]) by danu.procontrol.fi (Postfix) with ESMTP id B4DA723998 for ; Tue, 13 May 2003 04:38:07 +0300 (EEST) Received: from phobos.internal (phobos.internal [192.168.10.174]) (authenticated) by timhunt.net (8.11.6/8.11.6) with ESMTP id h4D1c2B06833 for ; Mon, 12 May 2003 21:38:02 -0400 Subject: Re: [dovecot] Re: Design thought - Retention of reworked mbox files From: Tim Hunt To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: multipart/alternative; boundary="=-TiKkSTQmkwvajjD1yK3F" Organization: Message-Id: <1052789879.1188.12.camel@phobos.internal> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 12 May 2003 21:38:00 -0400 X-MailScanner-Information: Please contact the ISP for more information X-MailScanner: Found to be clean X-Mailman-Approved-At: Tue, 13 May 2003 04:46:51 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 May 2003 01:38:08 -0000 X-UID: 726 Status: O Content-Length: 2984 --=-TiKkSTQmkwvajjD1yK3F Content-Type: text/plain Content-Transfer-Encoding: 7bit It's primarily for debugging, and I don't see it being used in a high volume environment. What triggered the thought is that I suspect I may have lost the bodies of a couple of messages during an expunge, but because I don't have the previous state of the mbox file, I have no way of verifying my concern, and certainly no way to try and recreate it. And yes, I'm using mbox files, because I have many years of mail stored in them, and I'm not quite ready to convert them to another format. Tim On Mon, 2003-05-12 at 11:01, Charlie Brady wrote: > On 12 May 2003, Timo Sirainen wrote: > > > On Mon, 2003-05-12 at 02:05, Tim Hunt wrote: > > > Would it be possible to keep a backup copy of an mbox mail file any time it > > > needs to be substantionally rebuilt - for an example before an expunge. This > > > behaviour could be controlled by the config file, since it would most likely > > > only be used in development and testing environments. > > > > If it's only for debugging, I guess I could then just save a copy of it. > > Presumably the other reason you'd want it would be for mailbox integrity. > But if you are concerned about that, you'd be using maildir, wouldn't you? > > -- > Charlie --=-TiKkSTQmkwvajjD1yK3F Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit It's primarily for debugging, and I don't see it being used in a high volume environment.

What triggered the thought is that I suspect I may have lost the bodies of a couple of messages during an expunge, but because I don't have the previous state of the mbox file, I have no way of verifying my concern, and certainly no way to try and recreate it.

And yes, I'm using mbox files, because I have many years of mail stored in them, and I'm not quite ready to convert them to another format.

Tim

On Mon, 2003-05-12 at 11:01, Charlie Brady wrote:

On 12 May 2003, Timo Sirainen wrote:

> On Mon, 2003-05-12 at 02:05, Tim Hunt wrote:
> > Would it be possible to keep a backup copy of an mbox mail file any time it 
> > needs to be substantionally rebuilt - for an example before an expunge. This 
> > behaviour could be controlled by the config file, since it would most likely 
> > only be used in development and testing environments.
> 
> If it's only for debugging, I guess I could then just save a copy of it.

Presumably the other reason you'd want it would be for mailbox integrity. 
But if you are concerned about that, you'd be using maildir, wouldn't you?

--
Charlie
--=-TiKkSTQmkwvajjD1yK3F-- From eskimoe@ananzi.co.za Tue May 13 15:21:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-201-192.reverse.qdsl-home.de [212.202.201.192]) by danu.procontrol.fi (Postfix) with SMTP id 5D33F238D4 for ; Tue, 13 May 2003 15:21:53 +0300 (EEST) Received: (qmail 17505 invoked by uid 1000); 13 May 2003 12:24:06 -0000 Date: Tue, 13 May 2003 14:24:06 +0200 From: Moe Wibble To: dovecot@procontrol.fi Subject: Re: [dovecot] Re: List-id test Message-ID: <20030513122405.GA16248@woom.net> Mail-Followup-To: Moe Wibble , dovecot@procontrol.fi References: <1052702494.5228.418.camel@hurina> <1052711046.5228.449.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1052711046.5228.449.camel@hurina> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 May 2003 12:21:54 -0000 X-UID: 727 Status: O On Mon, May 12, 2003 at 06:44:06AM +0300, Timo Sirainen wrote: > On Mon, 2003-05-12 at 04:21, Timo Sirainen wrote: > > Just enabled List-* headers, testing if this still works.. > > Hmm. Wondered about why List-Id header used wrong host name and started > looking at Ecartis' sources .. Wasn't it written in Perl? I had believed > so for quite a long time for some reason. So since it's C, I figured I'd > audit the code for security flaws. > > .. I think I'll switch switch the list manager. Mailman looks nice. tried ezmlm? :) From tss@iki.fi Tue May 13 15:38:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BA437239AC for ; Tue, 13 May 2003 15:38:26 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id B6BD15E01F80; Tue, 13 May 2003 15:38:25 +0300 (EEST) Subject: Re: [dovecot] Re: List-id test From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030513122405.GA16248@woom.net> References: <1052702494.5228.418.camel@hurina> <1052711046.5228.449.camel@hurina> <20030513122405.GA16248@woom.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1052829505.1757.11.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 13 May 2003 15:38:25 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 May 2003 12:38:27 -0000 X-UID: 728 Status: O Content-Length: 1162 On Tue, 2003-05-13 at 15:24, Moe Wibble wrote: > > .. I think I'll switch switch the list manager. Mailman looks nice. > tried ezmlm? :) Nope, but it looked like it was qmail-only. Only problem with Mailman now is handling spams that went into moderation queue. Ecartis didn't have a queue, it just sent the mails to me so I could either delete them or approvove them by replying. Mailman wants me to go to some web page to approve them. Or there was something about replying to the message which would delete it, but I couldn't get that to work. It probably wanted to reply to attached message/rfc822 which Evolution doesn't handle. Still, too difficult compared to just deleting the mail and forgetting about it. Also that means I can't use spamassassin to just delete those mails at my personal mail account. They'd have to be deleted before passed to Mailman. Last time I tried installing spamassassin directly to Postfix it required me to install and configure all kind of weird software and I got tired of trying. Anyway, good thing is that now I configured Evolution to do list-reply with Ctrl-R and that works great because we have List-* headers :) From eskimoe@ananzi.co.za Tue May 13 18:03:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sun.com (port-212-202-201-192.reverse.qdsl-home.de [212.202.201.192]) by danu.procontrol.fi (Postfix) with SMTP id 75FB3239AF for ; Tue, 13 May 2003 18:03:29 +0300 (EEST) Received: (qmail 26403 invoked by uid 1000); 13 May 2003 15:05:44 -0000 Date: Tue, 13 May 2003 17:05:44 +0200 From: Moe Wibble To: dovecot@procontrol.fi Subject: Re: [dovecot] Re: List-id test Message-ID: <20030513150544.GA22511@woom.net> Mail-Followup-To: Moe Wibble , dovecot@procontrol.fi References: <1052702494.5228.418.camel@hurina> <1052711046.5228.449.camel@hurina> <20030513122405.GA16248@woom.net> <1052829505.1757.11.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1052829505.1757.11.camel@hurina> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 May 2003 15:03:30 -0000 X-UID: 729 Status: O Content-Length: 1743 On Tue, May 13, 2003 at 03:38:25PM +0300, Timo Sirainen wrote: > On Tue, 2003-05-13 at 15:24, Moe Wibble wrote: > > > .. I think I'll switch switch the list manager. Mailman looks nice. > > tried ezmlm? :) > > Nope, but it looked like it was qmail-only. Yup. > Only problem with Mailman now is handling spams that went into > moderation queue. Ecartis didn't have a queue, it just sent the mails to > me so I could either delete them or approvove them by replying. Mailman > wants me to go to some web page to approve them. Or there was something > about replying to the message which would delete it, but I couldn't get > that to work. It probably wanted to reply to attached message/rfc822 > which Evolution doesn't handle. Still, too difficult compared to just > deleting the mail and forgetting about it. Sounds strange. But is moderation really needed? Unless spam gets out of hand ofcourse. > Also that means I can't use spamassassin to just delete those mails at > my personal mail account. They'd have to be deleted before passed to > Mailman. Last time I tried installing spamassassin directly to Postfix > it required me to install and configure all kind of weird software and I > got tired of trying. Yea, I have a very similar memory of spamassasin. ;) > Anyway, good thing is that now I configured Evolution to do list-reply > with Ctrl-R and that works great because we have List-* headers :) List-Header is good. I noticed the change right away because my old filter rule for the list didn't match anymore. But that's okay, List-Id is much better. :) I only wondered that after the change there was no ezmlm in the header. Whenever a mailing list that I was on had switched in the past it always was from X to ezmlm. ;) From charlie@rubberduck.com Wed May 14 11:51:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 2991E23995 for ; Wed, 14 May 2003 11:51:48 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 2581B8FFD; Wed, 14 May 2003 18:52:27 +1000 (EST) Date: Wed, 14 May 2003 18:52:27 +1000 From: Charlie Allom To: dovecot@procontrol.fi Message-ID: <20030514085227.GA7325@lazy.spodder.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i Subject: [Dovecot] DRAC support? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 May 2003 08:51:48 -0000 X-UID: 730 Status: O Hi, I was hoping someone had a quick and dirty (is there any other kind) of patch for DRAC support for dovecot. This daemon is very slick, and I wish to replace my complex courier-imap setup. Regards, C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com > http://groups.google.com/groups?selm=3266D499.342E%40student.uq.edu.au < From Robert.Evans@cs.cardiff.ac.uk Wed May 14 18:37:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from sentinel.cs.cf.ac.uk (sentinel.cs.cf.ac.uk [131.251.42.18]) by danu.procontrol.fi (Postfix) with ESMTP id 2230923999 for ; Wed, 14 May 2003 18:37:47 +0300 (EEST) Received: from magnesium.cs.cf.ac.uk ([131.251.49.69]) by sentinel.cs.cf.ac.uk with esmtp (Exim 4.12 #6) id 19FyK7-0000g2-00 for dovecot@procontrol.fi; Wed, 14 May 2003 16:37:43 +0100 From: Robert Evans To: dovecot@procontrol.fi X-Mailer: Ximian Evolution 1.0.8 (1.0.8-11) Date: 14 May 2003 16:37:42 +0100 Message-Id: <1052926663.2853.28.camel@magnesium> Mime-Version: 1.0 X-SA-Exim-Rcpt-To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-18.0 required=5.0 tests=AWL,BAYES_01,USER_AGENT_XIMIAN autolearn=ham version=2.52 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.52 (1.174.2.8-2003-03-24-exp) X-SA-Exim-Scanned: Yes Subject: [Dovecot] Creating and renaming mbox folders on NFS auto-installed partitions X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 May 2003 15:37:47 -0000 X-UID: 731 Status: O Content-Length: 1790 I'm trying dovecot-0.99.9.1 in place of uw-imap which ground to a halt on a 500MHz SunBlade 100 Solaris 8 system which acts as our Departmental mail server. INBOXes are mbox files on the servers's local SCSI disk. But user directories are auto mounted from other Sun NFS servers and these may contain other mbox mailboxes in a ~/Mail directory. There's a problem with creating (and with renaming) mailboxes in the NFS mounted ~/Mail directory. For an arbitrary mailbox "newbox", say, dovecot tries to create the parent directory path /home/username/Mail before creating the newbox file. But /home/username is automounted and so creating directory /home or /home/username fails with errno 89 ENOSYS - unsupported file system operation. The solution is to check for the existence of the directory before trying to create it. This will work since /home and /home/username will always exist for any valid user. I've amended mbox-storage.c in src/lib-storage/index/mbox to call "access" to do this.... *** src/lib-storage/index/mbox/mbox-storage.c.orig Tue Apr 15 14:04:02 2003 --- src/lib-storage/index/mbox/mbox-storage.c Wed May 14 16:04:39 2003 *************** *** 38,44 **** p++; } ! if (mkdir(dir, CREATE_MODE) < 0 && errno != EEXIST) { t_pop(); return -1; } --- 38,44 ---- p++; } ! if ( (access(dir,F_OK) != 0) && mkdir(dir, CREATE_MODE) < 0 && errno != EEXIST) { t_pop(); return -1; } - - - (Could also remove the && errno == EEXIST part - it's redundant when access(dir,F_OK) is checking for existence). Robert -- Robert.Evans@cs.cf.ac.uk Tel:+44(0)29 2087 5518 Fax:+44(0)29 2087 4598 http://www.cs.cf.ac.uk/department/staff/Robert.Evans.shtml Computer Science, Cardiff University, PO Box 916, Cardiff, CF24 3XF, UK From tss@iki.fi Wed May 14 18:55:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5A196239B5 for ; Wed, 14 May 2003 18:55:26 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 29B8D5C896C6; Wed, 14 May 2003 18:55:26 +0300 (EEST) Subject: Re: [Dovecot] Creating and renaming mbox folders on NFS auto-installed partitions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1052926663.2853.28.camel@magnesium> References: <1052926663.2853.28.camel@magnesium> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1052927726.6886.129.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 May 2003 18:55:26 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 May 2003 15:55:26 -0000 X-UID: 732 Status: O On Wed, 2003-05-14 at 18:37, Robert Evans wrote: > There's a problem with creating (and with renaming) mailboxes in the NFS > mounted ~/Mail directory. For an arbitrary mailbox "newbox", say, > dovecot tries to create the parent directory path /home/username/Mail > before creating the newbox file. Yes, I think I'll actually change a bit how that function works. It almost always needs to create only the last directory, so I'll just start checking the existence from the second-last directory in it and start going down until one is found. > (Could also remove the && errno == EEXIST part - it's redundant > when access(dir,F_OK) is checking for existence). Not really, there could be race condition when two sessions try to create it at the same time (however unlikely that is). From tss@iki.fi Wed May 14 19:18:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 296852399E for ; Wed, 14 May 2003 19:18:46 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id ED9CF5C896C6; Wed, 14 May 2003 19:18:45 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030514085227.GA7325@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> Content-Type: multipart/mixed; boundary="=-vQmUofRE9gF0A1VRbOCV" Organization: Message-Id: <1052929125.6886.154.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 May 2003 19:18:45 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 May 2003 16:18:46 -0000 X-UID: 733 Status: O Content-Length: 2467 --=-vQmUofRE9gF0A1VRbOCV Content-Type: text/plain Content-Transfer-Encoding: 7bit On Wed, 2003-05-14 at 11:52, Charlie Allom wrote: > Hi, > > I was hoping someone had a quick and dirty (is there any other > kind) of patch for DRAC support for dovecot. Doesn't look too difficult to implement. You'll just have to tell DRAC once in a while to keep the relay open. Um. I was just going to give a few ideas how to do it, but I ended up writing the thing. Try if the included patch works. You'll still need to add the needed libraries to Makefile. Hmm .. Maybe it's time to add support for runtime loadable IMAP/POP3 modules. --=-vQmUofRE9gF0A1VRbOCV Content-Disposition: attachment; filename=drac.diff Content-Type: text/x-patch; name=drac.diff; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Index: client.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/imap/client.c,v retrieving revision 1.27 diff -u -r1.27 client.c --- client.c 20 Feb 2003 00:46:17 -0000 1.27 +++ client.c 14 May 2003 16:13:16 -0000 @@ -347,6 +347,39 @@ client_destroy(client); } =20 +#define HAVE_DRAC +#define DRAC_TIMEOUT_SECS 60 +#define DRAC_HOST "localhost" + +#ifdef HAVE_DRAC +struct timeout *to_drac; + +static void drac_timeout(void *context __attr_unused__) +{ + struct ip_addr ip; + char *err; + + if (my_client =3D=3D NULL) + return; + + if (net_getsockname(my_client->socket, &ip, NULL) < 0) { + i_error("DRAC: net_getsockname() failed: %m"); + return; + } + + if (!IPADDR_IS_V4(&ip)) { + i_error("DRAC is supported only for IPv4 clients"); + timeout_remove(to_drac); + to_drac =3D NULL; + } else { + struct in_addr *in_ip =3D (struct in_addr *) &ip.ip; + + if (dracauth(DRAC_HOST, in_ip->s_addr, &err) !=3D 0) + i_error("dracauth() failed: %s", err); + } +} +#endif + static void idle_timeout(void *context __attr_unused__) { if (my_client =3D=3D NULL) @@ -363,6 +396,9 @@ { my_client =3D NULL; to_idle =3D timeout_add(10000, idle_timeout, NULL); +#ifdef HAVE_DRAC + to_drac =3D timeout_add(1000*DRAC_TIMEOUT_SECS, drac_timeout, NULL); +#endif } =20 void clients_deinit(void) @@ -373,4 +409,8 @@ } =20 timeout_remove(to_idle); +#ifdef HAVE_DRAC + if (to_drac !=3D NULL) + timeout_remove(to_drac); +#endif } --=-vQmUofRE9gF0A1VRbOCV-- From charlie@rubberduck.com Thu May 15 04:12:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 5F15C238B6 for ; Thu, 15 May 2003 04:12:26 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 237309000; Thu, 15 May 2003 11:13:06 +1000 (EST) Date: Thu, 15 May 2003 11:13:06 +1000 From: Charlie Allom To: Timo Sirainen Subject: Re: [Dovecot] DRAC support? Message-ID: <20030515011306.GA3731@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <1052929125.6886.154.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1052929125.6886.154.camel@hurina> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2003 01:12:26 -0000 X-UID: 734 Status: O On Wed, May 14, 2003 at 07:18:45PM +0300, Timo Sirainen wrote: > On Wed, 2003-05-14 at 11:52, Charlie Allom wrote: > > Hi, > > > > I was hoping someone had a quick and dirty (is there any other > > kind) of patch for DRAC support for dovecot. > > Doesn't look too difficult to implement. You'll just have to tell DRAC > once in a while to keep the relay open. Which relay? I assumed by calling drac, drac kept it's own DB with IPs. > Um. I was just going to give a > few ideas how to do it, but I ended up writing the thing. Wow thanks! > Try if the > included patch works. You'll still need to add the needed libraries to > Makefile. Done. But doesn't update the dracdb. hrmm what can I do to help you debug it? btw if you wouldlike to test yourself I am using drac 1.12 Regards, C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com > http://groups.google.com/groups?selm=3266D499.342E%40student.uq.edu.au < From charlie@rubberduck.com Thu May 15 07:29:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 35EDB239CC for ; Thu, 15 May 2003 07:29:54 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 22D5A8FFF; Thu, 15 May 2003 14:30:29 +1000 (EST) Date: Thu, 15 May 2003 14:30:29 +1000 From: Charlie Allom To: Timo Sirainen Subject: Re: [Dovecot] DRAC support? Message-ID: <20030515043029.GA18617@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <1052929125.6886.154.camel@hurina> <20030515011306.GA3731@lazy.spodder.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030515011306.GA3731@lazy.spodder.com> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2003 04:29:54 -0000 X-UID: 735 Status: O On Thu, May 15, 2003 at 11:13:06AM +1000, Charlie Allom wrote: > > Which relay? I assumed by calling drac, drac kept it's own DB with > IPs. > Here are some examples of other patches: http://mail.cc.umanitoba.ca/drac/pop.html -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com > http://groups.google.com/groups?selm=3266D499.342E%40student.uq.edu.au < From jryden@thebox.our-own.net Thu May 15 07:37:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from thebox.our-own.net (thebox.our-own.net [64.81.83.87]) by danu.procontrol.fi (Postfix) with ESMTP id 485FD239CE for ; Thu, 15 May 2003 07:37:16 +0300 (EEST) Received: from 10.0.0.19 ([10.0.0.19]) (authenticated bits=0) by thebox.our-own.net (8.12.8/8.12.8) with ESMTP id h4F4bCA6013714 for ; Wed, 14 May 2003 21:37:13 -0700 From: Joakim Ryden To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Date: Wed, 14 May 2003 21:37:11 -0700 User-Agent: KMail/1.5 References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> In-Reply-To: <20030515043029.GA18617@lazy.spodder.com> X-Powered-By: GNU/Linux MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200305142137.11186.jryden@thebox.our-own.net> X-Spam-Status: No, hits=-9.9 required=5.0 tests=IN_REP_TO,REFERENCES,USER_AGENT version=2.53 X-Spam-Checker-Version: SpamAssassin 2.53 (1.174.2.15-2003-03-30-exp) X-Mailman-Approved-At: Thu, 15 May 2003 09:22:57 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2003 04:37:17 -0000 X-UID: 736 Status: O On Wednesday 14 May 2003 21:30, Charlie Allom wrote: => On Thu, May 15, 2003 at 11:13:06AM +1000, Charlie Allom wrote: => > => > Which relay? I assumed by calling drac, drac kept it's own DB with => > IPs. => > => => Here are some examples of other patches: => => http://mail.cc.umanitoba.ca/drac/pop.html DRAC, pop-before-smtp and other such implementations really is a "broken" way of implementing the desired result, IMHO, and I would much prefer this code stays out of dovecot. You should be using SMTP auth. Really. --Jo From tss@iki.fi Thu May 15 09:25:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7711F239D3 for ; Thu, 15 May 2003 09:25:47 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 532005C896C6; Thu, 15 May 2003 09:25:47 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030515011306.GA3731@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1052979947.6886.196.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 15 May 2003 09:25:47 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2003 06:25:47 -0000 X-UID: 737 Status: O On Thu, 2003-05-15 at 04:13, Charlie Allom wrote: > > Doesn't look too difficult to implement. You'll just have to tell DRAC > > once in a while to keep the relay open. > > Which relay? I assumed by calling drac, drac kept it's own DB with > IPs. Yea, that's what I meant :) > > Try if the > > included patch works. You'll still need to add the needed libraries to > > Makefile. > > Done. But doesn't update the dracdb. Hmm. Probably because it called it the first time after one minute. Try adding drac_timeout(NULL); at the end of client_create() function? From tss@iki.fi Thu May 15 09:28:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A83EB239DA for ; Thu, 15 May 2003 09:28:49 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 7E1F05C896C6; Thu, 15 May 2003 09:28:49 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <200305142137.11186.jryden@thebox.our-own.net> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1052980129.23300.200.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 15 May 2003 09:28:49 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2003 06:28:49 -0000 X-UID: 738 Status: O On Thu, 2003-05-15 at 07:37, Joakim Ryden wrote: > DRAC, pop-before-smtp and other such implementations really is a "broken" way > of implementing the desired result, IMHO, and I would much prefer this code > stays out of dovecot. You should be using SMTP auth. Really. CVS has now support for dynamically loadable modules (disabled by default). Support for things like this could then be distributed completely separately from rest of Dovecot. From lfarkas@bnap.hu Thu May 15 14:25:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 39B6023887 for ; Thu, 15 May 2003 14:25:12 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 9E57975400F for ; Thu, 15 May 2003 13:27:25 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 4FC4A3ED5 for ; Thu, 15 May 2003 13:25:02 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 2AF033ECA for ; Thu, 15 May 2003 13:25:02 +0200 (CEST) Message-ID: <3EC3790D.2090602@bnap.hu> Date: Thu, 15 May 2003 13:25:01 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] ssl still not working X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2003 11:25:12 -0000 X-UID: 739 Status: O hi, I'm just download the latest cvs and try to use imaps. in mozilla I've got the following message window: ----------------------------- mail.int.bppiac.hu received a message with incorrect Message Authentication Code. If the error occurs frequently, contact the website administrator. ----------------------------- and there is only one OK button:-) and this happens always. what can be the reason and what can I do? thanks. -- Levente "Si vis pacem para bellum!" From BrandonHoult@netscape.net Thu May 15 21:19:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from server (dsl-64-91-5-173.spt.customer.centurytel.net [64.91.5.173]) by danu.procontrol.fi (Postfix) with ESMTP id 3FA572399B for ; Thu, 15 May 2003 21:19:24 +0300 (EEST) Received: from wombat ([192.168.0.20] helo=netscape.net) by server with esmtp (Exim 3.35 #1 (Debian)) id 19GNJu-0007Hn-00 for ; Thu, 15 May 2003 13:19:10 -0500 Message-ID: <3EC3DBDC.1010701@netscape.net> Date: Thu, 15 May 2003 13:26:36 -0500 From: Brandon Hoult User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Thu, 15 May 2003 21:21:53 +0300 Subject: [Dovecot] help: The current command did not succeed. The mail server responded: Invalid mask. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2003 18:19:24 -0000 X-UID: 740 Status: O Am tryin to move from uw-imapd to dovecot, using dovecot ver 0.99.9.1-1 on debian. Using Mozilla Mail v 1.3 currently using mbox format. I made some test accounts and they seem to be working fine, but my older existing accounts give error messages whenever I connect or subscribe to mailboxes within them. The message that appears on the client is: "The current command did not succeed. The mail server responded: Invalid mask." it appears three times in an alert box (on windows) then everything seems to work. There are no messages in any of the mail logs in /var/log which would indicate a problem. The test accounts I created don't have this problem so I tried renameing the home directory, deleting the user, then recreating the user. However even with a new homedir the problem remains unchanged. I have verified that the permissions in ~/mail and /var/mail are set identically for working and non-working users. Thanks in advance for any advice, Brandon Hoult dolt@lmistudios.homeip.net From tss@iki.fi Thu May 15 21:33:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C2BE2239CF for ; Thu, 15 May 2003 21:33:22 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 68EEB5C896C6; Thu, 15 May 2003 21:33:22 +0300 (EEST) Subject: Re: [Dovecot] help: The current command did not succeed. The mail server responded: Invalid mask. From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3EC3DBDC.1010701@netscape.net> References: <3EC3DBDC.1010701@netscape.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053023602.23300.253.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 15 May 2003 21:33:22 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2003 18:33:23 -0000 X-UID: 741 Status: O Content-Length: 1068 On Thu, 2003-05-15 at 21:26, Brandon Hoult wrote: > Am tryin to move from uw-imapd to dovecot, using dovecot ver 0.99.9.1-1 > on debian. Using Mozilla Mail v 1.3 currently using mbox format. > > I made some test accounts and they seem to be working fine, but my older > existing accounts give error messages whenever I connect or subscribe to > mailboxes within them. The message that appears on the client is: > > "The current command did not succeed. The mail server responded: Invalid > mask." Mozilla is probably remembering some old settings from uw-imapd. I'm not sure what exactly, since they should have pretty similiar settings. Maybe anyway related to handling ~/mail or namespaces in general. That error happens anyway if client tries to use absolute file paths (/path, \path, ~/path/) or tries to use ../ or ..\ in the path. '\' checking isn't actually really needed, but I thought I might as well prepare for future VMS/Windows port :) Instead of giving the error, I could also just make Dovecot ignore that. I'm not sure if it'd be better.. From warren@togami.com Thu May 15 23:50:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 8D1182399C for ; Thu, 15 May 2003 23:50:53 +0300 (EEST) Received: from localhost.127.in-addr.arpa (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id 734335D805C for ; Thu, 15 May 2003 10:53:39 -1000 (HST) Subject: Re: [Dovecot] ssl still not working From: Warren Togami To: dovecot@procontrol.fi In-Reply-To: <3EC3790D.2090602@bnap.hu> References: <3EC3790D.2090602@bnap.hu> Content-Type: text/plain Message-Id: <1053031846.15567.10.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.3 (1.3.3-2) (Preview Release) Date: 15 May 2003 10:50:47 -1000 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2003 20:50:54 -0000 X-UID: 742 Status: O On Thu, 2003-05-15 at 01:25, Farkas Levente wrote: > hi, > I'm just download the latest cvs and try to use imaps. in mozilla I've > got the following message window: > ----------------------------- > mail.int.bppiac.hu received a message with incorrect Message > Authentication Code. If the error occurs frequently, contact the website > administrator. > ----------------------------- > and there is only one OK button:-) > and this happens always. what can be the reason and what can I do? > thanks. I can say that I too have never been able to get IMAPS working with dovecot, with both self-signed generated .pem files and my apache SSL keys. I have that same error message with Mozilla Mail 1.2.1 and 1.4b. Warren From mem@mv.mv.com Fri May 16 05:18:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 2F8FD23997 for ; Fri, 16 May 2003 05:18:08 +0300 (EEST) Received: (qmail 18013 invoked by uid 101); 15 May 2003 22:18:06 -0400 From: "Mark E. Mallett" Date: Thu, 15 May 2003 22:18:06 -0400 To: dovecot@procontrol.fi Message-ID: <20030516021806.GB26613@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] rawlog fails X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 02:18:09 -0000 X-UID: 743 Status: O You mentioned --with-rawlog earlier, so I tried it. It fails with a select error. I believe it's because in some cases the timeval struct is not initialized in io_loop_get_wait_time (e.g. see sample diff below). -mm- diff -c src/lib/ioloop.c.orig src/lib/ioloop.c *** src/lib/ioloop.c.orig Sat Apr 12 11:00:10 2003 --- src/lib/ioloop.c Thu May 15 22:10:12 2003 *************** *** 223,230 **** --- 223,238 ---- int io_loop_get_wait_time(struct timeout *timeout, struct timeval *tv, struct timeval *tv_now) { + #if 0 /* mem 20030515 make sure tv contains valid data here */ if (timeout == NULL) return INT_MAX; + #else + if (timeout == NULL) { + tv->tv_sec = INT_MAX / 1000; + tv->tv_usec = 0; + return INT_MAX; + } + #endif if (tv_now == NULL) { if (gettimeofday(tv, NULL) < 0) From leslie_viljoen@icoc.org Fri May 16 10:00:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from acesonline.org.za (unknown [196.37.98.115]) by danu.procontrol.fi (Postfix) with ESMTP id D1AD1238C9 for ; Fri, 16 May 2003 10:00:55 +0300 (EEST) Received: from localhost.localdomain (unknown [196.37.98.116]) by acesonline.org.za (Postfix) with ESMTP id BD6F86156 for ; Fri, 16 May 2003 10:03:14 -0700 (PDT) In-Reply-To: <1053031846.15567.10.camel@laptop> From: leslie_viljoen@icoc.org To: dovecot@procontrol.fi Subject: Re: [Dovecot] ssl still not working MIME-Version: 1.0 X-Mailer: Lotus Notes Release 6.0 September 26, 2002 Message-ID: Date: Fri, 16 May 2003 09:03:57 +0200 X-MIMETrack: Serialize by Notes Client on Leslie Viljoen/JOBURG/ICC(Release 6.0|September 26, 2002) at 2003-05-16 09:03:57 AM, Serialize complete at 2003-05-16 09:03:57 AM Content-Type: multipart/alternative; boundary="=_alternative 0026D03E42256D28_=" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 07:00:57 -0000 X-UID: 744 Status: O Content-Length: 5959 This is a multipart message in MIME format. --=_alternative 0026D03E42256D28_= Content-Type: text/plain; charset="US-ASCII" SSL is working very well for me. I used the mkcert.sh script that comes with Dovecot - although I changed it a bit to make a certificate that lasts a year instead of one month. Mozilla, Outlook Express, Lotus Notes - all using SSL on port 993 to communicate with Dovecot and working fine. It _did_ take some work to get Dovecot to compile with SSL support, but it turns out that my SSL_dev package was not installed properly. (I had such a problem finding the header files that were needed that I completely upgraded the whole of Linux on that machine and then installed the DEV code from a package). Once that was done, I could coax Dovecot into compiling with SSL. Now it works very well. Mozilla in particular immediately asks me if I want to accept the certificate permanently or temorarily - Outlook and Notes use IE's certificate store - for that I needed to tell my users to surf to https://server.com:993 - and then IE would pick up the certificate and let them add it to their trusted store. I don't know about the Mozilla error below, I didn't get that. Les ______________________________________ Leslie Viljoen Africa Missions Systems Administrator Cell: 0836186100 Work: 011 6991700 Fax: 011 7945522 Warren Togami Sent by: dovecot-bounces@procontrol.fi 2003-05-15 10:50 PM To: dovecot@procontrol.fi cc: Subject: Re: [Dovecot] ssl still not working On Thu, 2003-05-15 at 01:25, Farkas Levente wrote: > hi, > I'm just download the latest cvs and try to use imaps. in mozilla I've > got the following message window: > ----------------------------- > mail.int.bppiac.hu received a message with incorrect Message > Authentication Code. If the error occurs frequently, contact the website > administrator. > ----------------------------- > and there is only one OK button:-) > and this happens always. what can be the reason and what can I do? > thanks. I can say that I too have never been able to get IMAPS working with dovecot, with both self-signed generated .pem files and my apache SSL keys. I have that same error message with Mozilla Mail 1.2.1 and 1.4b. Warren --=_alternative 0026D03E42256D28_= Content-Type: text/html; charset="US-ASCII"
SSL is working very well for me. I used the mkcert.sh script that comes with Dovecot - although I changed
it a bit to make a certificate that lasts a year instead of one month.

Mozilla, Outlook Express, Lotus Notes - all using SSL on port 993 to communicate with Dovecot and
working fine.

It _did_ take some work to get Dovecot to compile with SSL support, but it turns out that my SSL_dev
package was not installed properly. (I had such a problem finding the header files that were needed
that I completely upgraded the whole of Linux on that machine and then installed the DEV code
from a package).
Once that was done, I could coax Dovecot into compiling with SSL.

Now it works very well. Mozilla in particular immediately asks me if I want to accept the certificate
permanently or temorarily - Outlook and Notes use IE's certificate store - for that I needed to tell
my users to surf to https://server.com:993 - and then IE would pick up the certificate and let them add it
to their trusted store.

I don't know about the Mozilla error below, I didn't get that.

Les

______________________________________
Leslie Viljoen
Africa Missions Systems Administrator
Cell: 0836186100 Work: 011 6991700
Fax: 011 7945522



Warren Togami <warren@togami.com>
Sent by: dovecot-bounces@procontrol.fi

2003-05-15 10:50 PM

       
        To:        dovecot@procontrol.fi
        cc:        
        Subject:        Re: [Dovecot] ssl still not working



On Thu, 2003-05-15 at 01:25, Farkas Levente wrote:
> hi,
> I'm just download the latest cvs and try to use imaps. in mozilla I've
> got the following message window:
> -----------------------------
> mail.int.bppiac.hu received a message with incorrect Message
> Authentication Code. If the error occurs frequently, contact the website
> administrator.
> -----------------------------
> and there is only one OK button:-)
> and this happens always. what can be the reason and what can I do?
> thanks.

I can say that I too have never been able to get IMAPS working with
dovecot, with both self-signed generated .pem files and my apache SSL
keys.  I have that same error message with Mozilla Mail 1.2.1 and 1.4b.

Warren



--=_alternative 0026D03E42256D28_=-- From ruud@duticg.twi.tudelft.nl Fri May 16 10:27:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from dutids.twi.tudelft.nl (dutids.twi.tudelft.nl [130.161.157.71]) by danu.procontrol.fi (Postfix) with ESMTP id 7FCD6239DE for ; Fri, 16 May 2003 10:27:49 +0300 (EEST) Received: from ruud by dutids.twi.tudelft.nl with local (Exim 3.35 #1 (Debian)) id 19GZd6-0007WY-00; Fri, 16 May 2003 09:27:48 +0200 Date: Fri, 16 May 2003 09:27:48 +0200 To: dovecot@procontrol.fi Subject: Re: [Dovecot] ssl still not working Message-ID: <20030516072748.GA28822@dutids.twi.tudelft.nl> References: <3EC3790D.2090602@bnap.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3EC3790D.2090602@bnap.hu> User-Agent: Mutt/1.3.28i From: Ruud de Jong X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 07:27:49 -0000 X-UID: 745 Status: O Content-Length: 1196 Hi, I'm running a stable debian version and had the same problem after installing the debian package. When I downloaded the latest version of openssl (openssl-0.9.7b), compiled dovecot and linked it with this openssl version the problem was solved. regards, Ruud On Thu, May 15, 2003 at 01:25:01PM +0200, Farkas Levente wrote: > hi, > I'm just download the latest cvs and try to use imaps. in mozilla I've > got the following message window: > ----------------------------- > mail.int.bppiac.hu received a message with incorrect Message > Authentication Code. If the error occurs frequently, contact the website > administrator. > ----------------------------- > and there is only one OK button:-) > and this happens always. what can be the reason and what can I do? > thanks. > > -- > Levente "Si vis pacem para bellum!" > -- Ruud de Jong Delft Universitiy of Technology Faculty of Information Technology and Systems Computer Graphics and CAD/CAM Group Mekelweg 4, room 12.070, 2628 CD Delft, The Netherlands E-mail : R.deJong@its.tudelft.nl pgp key : http://graphics.tudelft.nl/~ruud/ruud.pgp Phone : +31 (0)15 278 1437 Fax : +31 (0)15 278 7141 From lfarkas@bnap.hu Fri May 16 12:38:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id E8DAE239E7 for ; Fri, 16 May 2003 12:38:50 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id D6A4D75401A for ; Fri, 16 May 2003 11:38:46 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 244F33EC4 for ; Fri, 16 May 2003 11:38:49 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 104FC3EAD for ; Fri, 16 May 2003 11:38:49 +0200 (CEST) Message-ID: <3EC4B1A7.3030000@bnap.hu> Date: Fri, 16 May 2003 11:38:47 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] ssl still not working References: <3EC3790D.2090602@bnap.hu> <20030516072748.GA28822@dutids.twi.tudelft.nl> In-Reply-To: <20030516072748.GA28822@dutids.twi.tudelft.nl> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 09:38:51 -0000 X-UID: 746 Status: O Content-Length: 1075 that may be the reason since I use: openssl-0.9.7a-5 openssl-devel-0.9.7a-5 Ruud de Jong wrote: > Hi, > > I'm running a stable debian version and had the same problem after > installing the debian package. > When I downloaded the latest version of openssl (openssl-0.9.7b), compiled > dovecot and linked it with this openssl version the problem was solved. > > regards, > > Ruud > > > On Thu, May 15, 2003 at 01:25:01PM +0200, Farkas Levente wrote: > >>hi, >>I'm just download the latest cvs and try to use imaps. in mozilla I've >>got the following message window: >>----------------------------- >>mail.int.bppiac.hu received a message with incorrect Message >>Authentication Code. If the error occurs frequently, contact the website >>administrator. >>----------------------------- >>and there is only one OK button:-) >>and this happens always. what can be the reason and what can I do? >>thanks. >> >>-- >> Levente "Si vis pacem para bellum!" >> > > -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Fri May 16 13:13:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 62DEB239E9 for ; Fri, 16 May 2003 13:13:38 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id D2E4D754013 for ; Fri, 16 May 2003 12:13:33 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id D46363EC4 for ; Fri, 16 May 2003 12:13:30 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id BD3723ED3 for ; Fri, 16 May 2003 12:13:30 +0200 (CEST) Message-ID: <3EC4B9C7.7010000@bnap.hu> Date: Fri, 16 May 2003 12:13:27 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] ssl still not working References: <3EC3790D.2090602@bnap.hu> <20030516072748.GA28822@dutids.twi.tudelft.nl> <3EC4B1A7.3030000@bnap.hu> In-Reply-To: <3EC4B1A7.3030000@bnap.hu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 10:13:38 -0000 X-UID: 747 Status: O Content-Length: 1255 but as I look into the source it seems redhat already include all patch for 7b:-( any other tipp? Farkas Levente wrote: > that may be the reason since I use: > openssl-0.9.7a-5 > openssl-devel-0.9.7a-5 > > Ruud de Jong wrote: > >> Hi, >> >> I'm running a stable debian version and had the same problem after >> installing the debian package. >> When I downloaded the latest version of openssl (openssl-0.9.7b), >> compiled >> dovecot and linked it with this openssl version the problem was solved. >> >> regards, >> >> Ruud >> >> >> On Thu, May 15, 2003 at 01:25:01PM +0200, Farkas Levente wrote: >> >>> hi, >>> I'm just download the latest cvs and try to use imaps. in mozilla >>> I've got the following message window: >>> ----------------------------- >>> mail.int.bppiac.hu received a message with incorrect Message >>> Authentication Code. If the error occurs frequently, contact the >>> website administrator. >>> ----------------------------- >>> and there is only one OK button:-) >>> and this happens always. what can be the reason and what can I do? >>> thanks. >>> >>> -- >>> Levente "Si vis pacem para bellum!" >>> >> >> > > -- Levente "Si vis pacem para bellum!" From warren@togami.com Fri May 16 13:46:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id E9D55239E3 for ; Fri, 16 May 2003 13:46:01 +0300 (EEST) Received: from localhost.127.in-addr.arpa (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id 63E7B5D803F for ; Fri, 16 May 2003 00:48:59 -1000 (HST) Subject: Re: [Dovecot] ssl still not working From: Warren Togami To: dovecot@procontrol.fi In-Reply-To: <3EC4B9C7.7010000@bnap.hu> References: <3EC3790D.2090602@bnap.hu><3EC4B1A7.3030000@bnap.hu> <3EC4B9C7.7010000@bnap.hu> Content-Type: text/plain Message-Id: <1053081958.31529.9.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.3 (1.3.3-2) (Preview Release) Date: 16 May 2003 00:45:58 -1000 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 10:46:02 -0000 X-UID: 748 Status: O Did you folks have to create a pam.d file for dovecot? I'm not quite sure what to put in my pam.d dovecot file. Could this be effecting my SSL ability? Warren From lfarkas@bnap.hu Fri May 16 13:52:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 5C802239EF for ; Fri, 16 May 2003 13:52:24 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id ABC2675401B for ; Fri, 16 May 2003 12:52:19 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 1D3953ECA for ; Fri, 16 May 2003 12:52:22 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 04C4B3EC4 for ; Fri, 16 May 2003 12:52:22 +0200 (CEST) Message-ID: <3EC4C2E5.7080409@bnap.hu> Date: Fri, 16 May 2003 12:52:21 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] ssl still not working References: <3EC3790D.2090602@bnap.hu><3EC4B1A7.3030000@bnap.hu> <3EC4B9C7.7010000@bnap.hu> <1053081958.31529.9.camel@laptop> In-Reply-To: <1053081958.31529.9.camel@laptop> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 10:52:24 -0000 X-UID: 749 Status: O Warren Togami wrote: > Did you folks have to create a pam.d file for dovecot? I'm not quite > sure what to put in my pam.d dovecot file. Could this be effecting my > SSL ability? > > Warren put the same to all imap, imaps, pop3, pop3s: --------------------- #%PAM-1.0 auth required pam_nologin.so auth required pam_stack.so service=system-auth account required pam_stack.so service=system-auth session required pam_stack.so service=system-auth --------------------- -- Levente "Si vis pacem para bellum!" From leslie_viljoen@icoc.org Fri May 16 13:57:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from acesonline.org.za (unknown [196.37.98.115]) by danu.procontrol.fi (Postfix) with ESMTP id 07261239F2 for ; Fri, 16 May 2003 13:57:24 +0300 (EEST) Received: from localhost.localdomain (unknown [196.37.98.116]) by acesonline.org.za (Postfix) with ESMTP id 2C82C6157 for ; Fri, 16 May 2003 13:59:47 -0700 (PDT) In-Reply-To: <1053081958.31529.9.camel@laptop> From: leslie_viljoen@icoc.org To: dovecot@procontrol.fi Subject: Re: [Dovecot] ssl still not working MIME-Version: 1.0 X-Mailer: Lotus Notes Release 6.0 September 26, 2002 Message-ID: Date: Fri, 16 May 2003 17:05:08 +0200 X-MIMETrack: Serialize by Notes Client on Leslie Viljoen/JOBURG/ICC(Release 6.0|September 26, 2002) at 2003-05-16 05:05:09 PM, Serialize complete at 2003-05-16 05:05:09 PM Content-Type: multipart/alternative; boundary="=_alternative 0052DE1842256D28_=" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 10:57:26 -0000 X-UID: 750 Status: O Content-Length: 2502 This is a multipart message in MIME format. --=_alternative 0052DE1842256D28_= Content-Type: text/plain; charset="US-ASCII" I am using shadow authentication, not Pam, so I don't know. Here are my /usr/local/etc/dovecot.conf entries: auth_userdb = passwd auth_passdb = shadow Les ______________________________________ Leslie Viljoen Africa Missions Systems Administrator Cell: 0836186100 Work: 011 6991700 Fax: 011 7945522 Warren Togami Sent by: dovecot-bounces@procontrol.fi 2003-05-16 12:45 PM To: dovecot@procontrol.fi cc: Subject: Re: [Dovecot] ssl still not working Did you folks have to create a pam.d file for dovecot? I'm not quite sure what to put in my pam.d dovecot file. Could this be effecting my SSL ability? Warren --=_alternative 0052DE1842256D28_= Content-Type: text/html; charset="US-ASCII"
I am using shadow authentication, not Pam, so I don't know.

Here are my /usr/local/etc/dovecot.conf entries:

auth_userdb = passwd
auth_passdb = shadow



Les

______________________________________
Leslie Viljoen
Africa Missions Systems Administrator
Cell: 0836186100 Work: 011 6991700
Fax: 011 7945522



Warren Togami <warren@togami.com>
Sent by: dovecot-bounces@procontrol.fi

2003-05-16 12:45 PM

       
        To:        dovecot@procontrol.fi
        cc:        
        Subject:        Re: [Dovecot] ssl still not working



Did you folks have to create a pam.d file for dovecot?  I'm not quite
sure what to put in my pam.d dovecot file.  Could this be effecting my
SSL ability?

Warren



--=_alternative 0052DE1842256D28_=-- From tss@iki.fi Fri May 16 20:15:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 079E6238CE for ; Fri, 16 May 2003 20:15:14 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 1C04A5C896C6; Fri, 16 May 2003 20:15:12 +0300 (EEST) Subject: Re: [Dovecot] rawlog fails From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030516021806.GB26613@iridium.mv.net> References: <20030516021806.GB26613@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053105311.1212.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 May 2003 20:15:11 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 17:15:14 -0000 X-UID: 751 Status: O On Fri, 2003-05-16 at 05:18, Mark E. Mallett wrote: > You mentioned --with-rawlog earlier, so I tried it. It fails with > a select error. I believe it's because in some cases the timeval > struct is not initialized in io_loop_get_wait_time (e.g. see sample > diff below). Yes, thanks, committed to CVS. From tss@iki.fi Fri May 16 20:19:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D0553239EC for ; Fri, 16 May 2003 20:19:11 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 691D65C896C6; Fri, 16 May 2003 20:19:11 +0300 (EEST) Subject: [Fwd: Re: [Dovecot] help: The current command did not succeed. The mail server responded: Invalid mask.] From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: multipart/mixed; boundary="=-IsnW+ZNhrqJ6wjmRliAO" Organization: Message-Id: <1053105551.1218.28.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 May 2003 20:19:11 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 17:19:12 -0000 X-UID: 752 Status: O Content-Length: 6115 --=-IsnW+ZNhrqJ6wjmRliAO Content-Type: text/plain Content-Transfer-Encoding: 7bit Just FYI, I guess this message was meant here :) --=-IsnW+ZNhrqJ6wjmRliAO Content-Disposition: inline Content-Description: Forwarded message - Re: [Dovecot] help: The current command did not succeed. The mail server responded: Invalid mask. Content-Type: message/rfc822 Return-Path: Delivered-To: cras@irccrew.org Received: from jokotaas.iki.fi (jokotaas.iki.fi [212.16.100.2]) by shodan.irccrew.org (Postfix) with ESMTP id CE3042E003 for ; Thu, 15 May 2003 22:05:20 +0300 (EEST) Received: from server (dsl-64-91-5-173.spt.customer.centurytel.net [64.91.5.173]) by jokotaas.iki.fi (8.11.6p2/8.11.6) with ESMTP id h4FJ5JW11273 for ; Thu, 15 May 2003 22:05:19 +0300 (EEST) Received: from wombat ([192.168.0.20] helo=lmistudios.homeip.net) by server ; Thu, 15 May 2003 14:05:06 -0500 Message-ID: <3EC3E6A0.3020603@lmistudios.homeip.net> Date: Thu, 15 May 2003 14:12:32 -0500 From: dolt User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] help: The current command did not succeed. The mail server responded: Invalid mask. References: <3EC3DBDC.1010701@netscape.net> <1053023602.23300.253.camel@hurina> In-Reply-To: <1053023602.23300.253.camel@hurina> Content-Type: multipart/alternative; boundary="------------070506070803030608090705" X-Spam-Status: No, hits=-29.4 required=4.0 tests=EMAIL_ATTRIBUTION,HTML_10_20,HTML_MESSAGE,IN_REP_TO, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_MOZILLA_UA autolearn=ham version=2.53 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.53 (1.174.2.15-2003-03-30-exp) Status: O X-UID: 13814 Content-Length: 4195 X-Keywords: --------------070506070803030608090705 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii; format=flowed Yes, that was the problem... tried an old version of netscape and everything was ok. I eventually found where the problems was in mozilla and thought I would post the solution if anyone else was experiencing the same trouble. I started looking around in the mozilla mail settings and found under the [ edit - maiil and newsgroup account settings - (appropriate account) - server settings ] there is a line at the bottom labled "local directory" where it specifies the location it keeps all the settings in. I deleted all the files in that directory and the problems went away. Thanks, Brandon. Timo Sirainen wrote: >On Thu, 2003-05-15 at 21:26, Brandon Hoult wrote: > > >>Am tryin to move from uw-imapd to dovecot, using dovecot ver 0.99.9.1-1 >>on debian. Using Mozilla Mail v 1.3 currently using mbox format. >> >>I made some test accounts and they seem to be working fine, but my older >>existing accounts give error messages whenever I connect or subscribe to >> mailboxes within them. The message that appears on the client is: >> >>"The current command did not succeed. The mail server responded: Invalid >>mask." >> >> > >Mozilla is probably remembering some old settings from uw-imapd. I'm not >sure what exactly, since they should have pretty similiar settings. >Maybe anyway related to handling ~/mail or namespaces in general. > >That error happens anyway if client tries to use absolute file paths >(/path, \path, ~/path/) or tries to use ../ or ..\ in the path. '\' >checking isn't actually really needed, but I thought I might as well >prepare for future VMS/Windows port :) > >Instead of giving the error, I could also just make Dovecot ignore that. >I'm not sure if it'd be better.. > > --------------070506070803030608090705 Content-Transfer-Encoding: 7bit Content-Type: text/html; charset=us-ascii Yes, that was the problem... tried an old version of netscape and everything was ok.

I eventually found where the problems was in mozilla and thought I would post the solution if anyone else was experiencing the same trouble.

I started looking around in the mozilla mail settings and found under the [ edit - maiil and newsgroup account settings - (appropriate account) - server settings ] there is a line at the bottom labled "local directory" where it specifies the location it keeps all the settings in.  I deleted all the files in that directory and the problems went away.

Thanks,
Brandon.

Timo Sirainen wrote:
On Thu, 2003-05-15 at 21:26, Brandon Hoult wrote:
  
Am tryin to move from uw-imapd to dovecot, using dovecot ver 0.99.9.1-1 
on debian.  Using Mozilla Mail v 1.3 currently using mbox format.

I made some test accounts and they seem to be working fine, but my older 
existing accounts give error messages whenever I connect or subscribe to 
  mailboxes within them.  The message that appears on the client is:

"The current command did not succeed. The mail server responded: Invalid 
mask."
    

Mozilla is probably remembering some old settings from uw-imapd. I'm not
sure what exactly, since they should have pretty similiar settings.
Maybe anyway related to handling ~/mail or namespaces in general.

That error happens anyway if client tries to use absolute file paths
(/path, \path, ~/path/) or tries to use ../ or ..\ in the path. '\'
checking isn't actually really needed, but I thought I might as well
prepare for future VMS/Windows port :)

Instead of giving the error, I could also just make Dovecot ignore that.
I'm not sure if it'd be better..
  

--------------070506070803030608090705-- --=-IsnW+ZNhrqJ6wjmRliAO-- --=-IsnW+ZNhrqJ6wjmRliAO-- From dgc@uchicago.edu Fri May 16 22:13:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3A9B7239F0; Fri, 16 May 2003 22:13:44 +0300 (EEST) Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id 110B52399F for ; Fri, 16 May 2003 22:13:39 +0300 (EEST) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id h4GJDZd00243; Fri, 16 May 2003 14:13:35 -0500 (CDT) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Fri, 16 May 2003 14:13:35 -0500 From: David Champion To: Joakim Ryden Subject: Re: [Dovecot] DRAC support? Message-ID: <20030516191335.GA196@dust.uchicago.edu> Mail-Followup-To: Joakim Ryden , dovecot@procontrol.fi References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200305142137.11186.jryden@thebox.our-own.net> User-Agent: Mutt/1.5.2i X-Spam-Status: No, hits=-27.5 required=5.0 tests=IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_MUTT,X_AUTH_WARNING autolearn=ham version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 May 2003 19:13:44 -0000 X-UID: 753 Status: O * On 2003.05.14, in <200305142137.11186.jryden@thebox.our-own.net>, * "Joakim Ryden" wrote: > > DRAC, pop-before-smtp and other such implementations really is a "broken" way > of implementing the desired result, IMHO, and I would much prefer this code > stays out of dovecot. You should be using SMTP auth. Really. I agree that it's not as good an answer as SMTP auth, but SMTP auth isn't always an option. *-before-SMTP is. That's why it's popular, and that's why it will exist for dovecot whether Timo puts it in the distribution or not. It just makes things easier if he does. -- -D. dgc@uchicago.edu NSIT University of Chicago When using any driving directions or map, it's a good idea to do a reality check and make sure the road still exists, watch out for construction, and follow all traffic safety precautions. From charlie@rubberduck.com Sat May 17 09:30:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 38DB12399F; Sat, 17 May 2003 09:30:53 +0300 (EEST) Received: from lazy.spodder.com (unknown [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id AF07F2387F for ; Sat, 17 May 2003 09:30:49 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 7F2B09007; Sat, 17 May 2003 16:31:25 +1000 (EST) Date: Sat, 17 May 2003 16:31:25 +1000 From: Charlie Allom To: Joakim Ryden , dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030517063125.GA23270@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030516191335.GA196@dust.uchicago.edu> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 May 2003 06:30:53 -0000 X-UID: 754 Status: O Content-Length: 1269 On Fri, May 16, 2003 at 02:13:35PM -0500, David Champion wrote: > * On 2003.05.14, in <200305142137.11186.jryden@thebox.our-own.net>, > * "Joakim Ryden" wrote: > > > > DRAC, pop-before-smtp and other such implementations really is a "broken" way > > of implementing the desired result, IMHO, and I would much prefer this code > > stays out of dovecot. You should be using SMTP auth. Really. > > I agree that it's not as good an answer as SMTP auth, but SMTP auth > isn't always an option. *-before-SMTP is. That's why it's popular, > and that's why it will exist for dovecot whether Timo puts it in the > distribution or not. It just makes things easier if he does. On this note, has anyone else tried this patch ? with Timo's modifications to his original patch I got it updating the DRAC db, but only able to use the local interfaces. I'm not sure dovecot is structured, but maybe the patch should be in the auth parts of the code? don't shoot me :) Just seeing if someone else is interested in DRAC atm with dovecot. C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com > http://groups.google.com/groups?selm=3266D499.342E%40student.uq.edu.au < From warren@togami.com Sat May 17 11:34:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 182E12387F; Sat, 17 May 2003 11:34:09 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 6984A2387A for ; Sat, 17 May 2003 11:34:06 +0300 (EEST) Received: from localhost.127.in-addr.arpa (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id CB1035D805F for ; Fri, 16 May 2003 22:37:10 -1000 (HST) From: Warren Togami To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1053160434.8705.58.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.3 (1.3.3-2) (Preview Release) Date: 16 May 2003 22:33:55 -1000 Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-2.4 required=5.0 tests=USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] Postfix locking equivalence? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 May 2003 08:34:09 -0000 X-UID: 755 Status: O /etc/postfix/main.cf.default: mailbox_delivery_lock = flock, dotlock Is flock equivalent to dovecot's fnctl locking? For mbox what type of locking settings should I be using? (No NFS, only local filesystem.) Warren Togami warren@togami.com From tss@iki.fi Sat May 17 12:59:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5BE3E2387F; Sat, 17 May 2003 12:59:08 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F205C23845 for ; Sat, 17 May 2003 12:59:06 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id C783E5C896C6; Sat, 17 May 2003 12:59:06 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053165546.1212.57.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 17 May 2003 12:59:06 +0300 Subject: [Dovecot] test X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 May 2003 09:59:08 -0000 X-UID: 756 Status: O ..is this thing working.. I messed up a bit when adding spamassassin to postfix filter. From warren@togami.com Sat May 17 13:04:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 01F83239FE; Sat, 17 May 2003 13:04:03 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id A4AFF2387F for ; Sat, 17 May 2003 13:03:58 +0300 (EEST) Received: from localhost.127.in-addr.arpa (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id C46015D805F for ; Sat, 17 May 2003 00:07:11 -1000 (HST) From: Warren Togami To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1053165834.8705.76.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.3 (1.3.3-2) (Preview Release) Date: 17 May 2003 00:03:55 -1000 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Postfix locking equivalence? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 May 2003 10:04:04 -0000 X-UID: 757 Status: O /etc/postfix/main.cf.default: mailbox_delivery_lock = flock, dotlock Is flock equivalent to dovecot's fnctl locking? For mbox what type of locking settings should I be using? (No NFS, only local filesystem.) I'm using procmail to deliver mail to my mboxes. Does the above postfix setting effect procmail's locking method? I use rules like this: :0 * ^X-BeenThere: dovecot@procontrol.fi DOVECOT If I understand this correctly, :0: in procmailrc would explicitly use dotlocks instead of "kernel-locks" as procmail calls it. I'm not fully understanding all this locking stuff. Warren Togami warren@togami.com p.s. Timo, I received your test message after my prior posting attempt bounced. I had this error message: Reporting-MTA: dns; danu.procontrol.fi Arrival-Date: Sat, 17 May 2003 12:52:08 +0300 (EEST) Final-Recipient: rfc822; dovecot@procontrol.fi Action: failed Status: 5.0.0 Diagnostic-Code: X-Postfix; mail forwarding loop for dovecot@procontrol.fi From tss@iki.fi Sat May 17 13:23:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 93696239FE; Sat, 17 May 2003 13:23:48 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F12A62387A for ; Sat, 17 May 2003 13:23:46 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id B66C15C896C6; Sat, 17 May 2003 13:23:46 +0300 (EEST) Subject: Re: [Dovecot] Postfix locking equivalence? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1053165834.8705.76.camel@laptop> References: <1053165834.8705.76.camel@laptop> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053167026.1218.76.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 17 May 2003 13:23:46 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 May 2003 10:23:48 -0000 X-UID: 758 Status: O Content-Length: 1654 On Sat, 2003-05-17 at 13:03, Warren Togami wrote: > /etc/postfix/main.cf.default: > mailbox_delivery_lock = flock, dotlock > > Is flock equivalent to dovecot's fnctl locking? For mbox what type of > locking settings should I be using? (No NFS, only local filesystem.) Well.. flock isn't the same as fcntl. Dovecot supports flock too, so you could set Dovecot to use that too. Dotlock can do only exclusive mbox locking, ie. no-one else should read/write the mbox at the time. It's the oldest locking method and pretty much everyone uses at least that. If mail is only being appened to mbox, it's enough alone (if everyone else uses dotlocking too). fcntl and flock can do both exclusive and shared locks. That provides read consistency when mails are being deleted from the middle of the mailbox. Whenever you want to read mbox, you get a shared lock so no-one can modify it while you're reading it, but that still allows others to read the mbox at the same time. It doesn't really matter if you use flock or fcntl, as long as everyone uses the same. I think flock is more generally in client's defaults, but I used fcntl because it's more standard and might work over NFS. > If I understand this correctly, :0: in procmailrc would explicitly use > dotlocks instead of "kernel-locks" as procmail calls it. I'm not fully > understanding all this locking stuff. I don't know much about procmail, but if it does dotlocking it's enough. > p.s. > Timo, I received your test message after my prior posting attempt > bounced. I had this error message: Yeah, sorry. The mail got into archives and I tried to resend it, but it didn't seem to work :) From jaldhar@debian.org Sat May 17 18:25:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3B7DD238D2; Sat, 17 May 2003 18:25:04 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 3DFF72387F for ; Sat, 17 May 2003 18:25:01 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 20C717FE7; Sat, 17 May 2003 11:25:00 -0400 (EDT) Date: Sat, 17 May 2003 11:24:59 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: Ruud de Jong Subject: Re: [Dovecot] ssl still not working In-Reply-To: <20030516072748.GA28822@dutids.twi.tudelft.nl> Message-ID: References: <3EC3790D.2090602@bnap.hu> <20030516072748.GA28822@dutids.twi.tudelft.nl> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 May 2003 15:25:04 -0000 X-UID: 759 Status: O On Fri, 16 May 2003, Ruud de Jong wrote: > Hi, > > I'm running a stable debian version and had the same problem after > installing the debian package. > When I downloaded the latest version of openssl (openssl-0.9.7b), compiled > dovecot and linked it with this openssl version the problem was solved. > Yeah I've been noticing that. The Debian package is compiled with gnutls which appears to be somewhat broken (at least on stable.) I'm going to do a new version today compiled against openssl. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From tss@iki.fi Sat May 17 20:46:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2003D238C5; Sat, 17 May 2003 20:46:15 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2A35C2387F for ; Sat, 17 May 2003 20:46:13 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 5C9F75C896C6; Sat, 17 May 2003 20:46:11 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053193571.1214.86.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 17 May 2003 20:46:11 +0300 Subject: [Dovecot] Maildir synchronization X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 May 2003 17:46:15 -0000 X-UID: 760 Status: O Content-Length: 6770 I thought I'd send this here too, since I spent so much time writing it as comment to maildir-sync.c :) Now only thing left to do is to write the code to match it. /* Here's a description of how we handle Maildir synchronization and it's problems: We want to be as efficient as we can. The most efficient way to check if changes have occured is to stat() the new/ and cur/ directories and uidlist file - if their mtimes hasn't changed, there's no changes and we don't need to do anything. Problem 1: Multiple changes can happen within a single second - nothing guarantees that once we synced it, someone else didn't just then make a modification. Such modifications wouldn't get noticed until a new modification occured later. Problem 2: Syncing cur/ directory is much more costly than syncing new/. Moving mails from new/ to cur/ will always change mtime of cur/ causing us to sync it as well. Problem 3: We may not be able to move mail from new/ to cur/ because we're out of quota, or simply because we're accessing a read-only mailbox. MAILDIR_SYNC_SECS ----------------- Several checks below use MAILDIR_SYNC_SECS, which should be maximum clock drift between all computers accessing the maildir (eg. via NFS), rounded up to next second. Our default is 1 second, since everyone should be using NTP. Note that setting it to 0 works only if there's only one computer accessing the maildir. It's practically impossible to make two clocks _exactly_ synchronized. cur directory ------------- We have maildir_cur_dirty variable which is set to cur/ directory's mtime when it's >= time() - MAILDIR_SYNC_SECS and we _think_ we have synchronized the directory. When maildir_cur_dirty is non-zero, we don't synchronize the cur/ directory until a) cur/'s mtime changes b) opening a mail fails with ENOENT c) time() > maildir_cur_dirty + MAILDIR_SYNC_SECS This allows us to modify the maildir multiple times without having to sync it at every change. The sync will eventually be done to make sure we didn't miss any external changes. The maildir_cur_dirty is set when: - we change message flags - we expunge messages - we move mail from new/ to cur/ - we sync cur/ directory and it's mtime is >= time() - MAILDIR_SYNC_SECS It's unset when we do the final syncing, ie. when mtime is older than time() - MAILDIR_SYNC_SECS. new directory ------------- If new/'s mtime is >= time() - MAILDIR_SYNC_SECS, always synchronize it. maildir_cur_dirty-like feature might save us a few syncs, but that might break a client which saves a mail in one connection and tries to fetch it in another one. new/ directory is almost always empty, so syncing it should be very fast anyway. Normally we move all mails from new/ to cur/ whenever we sync it. If it's not possible for some reason, we set maildir_have_new flag on which instructs synchronization to check files in new/ directory as well. maildir_keep_new flag is also set which instructs syncing to not even try to move mails to cur/ anymore. If client tries to change a flag for message in new/, we try to rename() it into cur/. If it's successful, we clear the maildir_keep_new flag so at next sync we'll try to move all of them to cur/. When all of them have been moved, maildir_have_new flag is cleared as well. Expunges will also clear maildir_keep_new flag. If rename() still fails because of ENOSPC or EDQUOT, we still save the flag changes in index with dirty-flag on. When moving the mail to cur/ directory, or when we notice it's already moved there, we apply the flag changes to the filename, rename it and remove the dirty flag. If there's dirty flags, this should be tried every time after expunge or when closing the mailbox. broken clients -------------- Originally the middle identifier in Maildir filename was specified only as _. That however created a problem with randomized PIDs which made it possible that the same PID was reused within one second. So if within one second a mail was delivered, MUA moved it to cur/ and another mail was delivered by a new process using same PID as the first one, we likely ended up overwriting the first mail when the second mail was moved over it. Nowadays everyone should be giving a bit more specific identifier, for example include microseconds in it which Dovecot does. There's a simple way to prevent this from happening in some cases: Don't move the mail from new/ to cur/ if it's mtime is >= time() - MAILDIR_SYNC_SECS. The second delivery's link() call then fails because the file is already in new/, and it will then use a different filename. There's a few problems with this however: - it requires extra stat() call which is unneeded extra I/O - another MUA might still move the mail to cur/ - if first file's flags are modified by either Dovecot or another MUA, it's moved to cur/ (you _could_ just do the dirty-flagging but that'd be ugly) Because this is useful only for very few people and it requires extra I/O, I decided not to implement this. It should be however quite easy to do since we need to be able to deal with files in new/ in any case. It's also possible to never accidentally overwrite a mail by using link() + unlink() rather than rename(). This however isn't very good idea as it introduces potential race conditions when multiple clients are accessing the mailbox: Trying to move the same mail from new/ to cur/ at the same time: a) Client 1 uses slightly different filename than client 2, for example one sets read-flag on but the other doesn't. You have the same mail duplicated now. b) Client 3 sees the mail between Client 1's and 2's link() calls and changes it's flag. You have the same mail duplicated now. And it gets worse when they're unlink()ing in cur/ directory: c) Client 1 changes mails's flag and client 2 changes it back between 1's link() and unlink(). The mail is now expunged. d) If you try to deal with the duplicates by unlink()ing another one of them, you might end up unlinking both of them. So, what should we do then if we notice a duplicate? First of all, it might not be a duplicate at all, readdir() might have just returned it twice because it was just renamed. What we should do is create a completely new base name for it and rename() it to that. If the call fails with ENOENT, it only means that it wasn't a duplicate after all. */ From tss@iki.fi Sun May 18 16:09:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1524D23996; Sun, 18 May 2003 16:09:41 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 848BB238D4 for ; Sun, 18 May 2003 16:09:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 4B9615C896C6; Sun, 18 May 2003 16:09:38 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053263378.1214.151.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 18 May 2003 16:09:38 +0300 Subject: [Dovecot] 0.99.10-test1 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 May 2003 13:09:41 -0000 X-UID: 761 Status: O Content-Length: 1095 http://dovecot.procontrol.fi/test/ Maildir syncing now works pretty much as described in my earlier mail. It was quite a large change, so please test this :) So the new and great features: - It's faster. - If someone renames maildir file just before we try to use it, we now resync the maildir and try to find it again. Before we just failed. It's also possible that the filename changed again while we resynced, so we try max. 10 times before failing (yes, we know if we should try resyncing so we don't always scan it 10 times). - Read-only maildirs work now. If we don't have write access to dovecot-uidlist, we'll show only those mails which are already there. - Out of quota/disk space failures are handled well now. All except updating dovecot-uidlist file which is a bit tricky. - :CONTROL=dir in default_mail_env can specify where to save dovecot-uidlist and .customflags files. Useful for above problems. I think maildir support is getting near perfect now. Only thing left is to deal with failure to write dovecot-uidlist when out of quota. Oh, and NFS safe .customflags file. From tss@iki.fi Sun May 18 20:07:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 75C4E2387F; Sun, 18 May 2003 20:07:15 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E3D3A2387A for ; Sun, 18 May 2003 20:07:12 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id A7F1B5C896C6; Sun, 18 May 2003 20:07:12 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030517063125.GA23270@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053277632.1215.154.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 18 May 2003 20:07:12 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 May 2003 17:07:15 -0000 X-UID: 762 Status: O On Sat, 2003-05-17 at 09:31, Charlie Allom wrote: > has anyone else tried this patch ? with Timo's modifications to his > original patch I got it updating the DRAC db, but only able to use the > local interfaces. Install Dovecot 0.99.10-test2 and http://dovecot.procontrol.fi/patches/drac-imap.c Set "imap_use_modules = yes" in config file and that should hopefully do it. From tss@iki.fi Sun May 18 20:11:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4A4C22387F; Sun, 18 May 2003 20:11:19 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D8DEC2387A for ; Sun, 18 May 2003 20:11:17 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id A94945C896C6; Sun, 18 May 2003 20:11:17 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1053277632.1215.154.camel@hurina> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053277632.1215.154.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053277877.1212.157.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 18 May 2003 20:11:17 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 May 2003 17:11:19 -0000 X-UID: 763 Status: O On Sun, 2003-05-18 at 20:07, Timo Sirainen wrote: > http://dovecot.procontrol.fi/patches/drac-imap.c Actually :) This has nothing IMAP-specific. The same thing works for both IMAP and POP3 servers. Changed the filename to drac.c From charlie@rubberduck.com Mon May 19 04:48:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A97C123993; Mon, 19 May 2003 04:48:03 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id C6302238D6 for ; Mon, 19 May 2003 04:47:59 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 233B29006; Mon, 19 May 2003 11:48:49 +1000 (EST) Date: Mon, 19 May 2003 11:48:49 +1000 From: Charlie Allom To: Timo Sirainen Subject: Re: [Dovecot] DRAC support? Message-ID: <20030519014849.GJ23270@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053277632.1215.154.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053277632.1215.154.camel@hurina> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 01:48:03 -0000 X-UID: 764 Status: O Content-Length: 1625 On Sun, May 18, 2003 at 08:07:12PM +0300, Timo Sirainen wrote: > On Sat, 2003-05-17 at 09:31, Charlie Allom wrote: > > has anyone else tried this patch ? with Timo's modifications to his > > original patch I got it updating the DRAC db, but only able to use the > > local interfaces. > > Install Dovecot 0.99.10-test2 and > http://dovecot.procontrol.fi/patches/drac-imap.c The instructions specify: gcc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$dovecot -I$dovecot/src/lib \ drac.c -o drac.so -ldrac and the C defines common.h - which one? "-I$dovecot/src/master" ? 11:19 root@lazy:/usr/src/dovecot# find . -name common.h ./src/auth/common.h ./src/imap/common.h ./src/imap-login/common.h ./src/login-common/common.h ./src/master/common.h ./src/pop3/common.h ./src/pop3-login/common.h 11:29 root@lazy:/usr/src/dovecot# export dovecot=/usr/src/dovecot/ 11:46 root@lazy:/usr/src/dovecot# gcc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$dovecot -I$dovecot/src/lib -I$dovecot/src/master drac.c -o drac.so -ldrac In file included from /usr/src/dovecot/src/master/common.h:6, from drac.c:14: /usr/src/dovecot/src/lib/lib.h:6: ../../config.h: No such file or directory In file included from /usr/src/dovecot/src/lib/lib.h:20, from /usr/src/dovecot/src/master/common.h:6, from drac.c:14: /usr/src/dovecot/src/lib/compat.h:17: #error uoff_t size not set Regards, C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com > http://groups.google.com/groups?selm=3266D499.342E%40student.uq.edu.au < From maikel@ladot.com Mon May 19 09:18:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E8867238E1; Mon, 19 May 2003 09:18:37 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 3087B238D6 for ; Mon, 19 May 2003 09:18:34 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h4J6UJVg060226; Mon, 19 May 2003 08:30:19 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Mon, 19 May 2003 08:02:13 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F2233A@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'Timo Sirainen'" , "'dovecot@procontrol.fi'" Subject: RE: [Dovecot] 0.99.10-test1 Date: Mon, 19 May 2003 08:02:12 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C31DCC.309FAA90" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 06:18:38 -0000 X-UID: 765 Status: O Content-Length: 1409 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C31DCC.309FAA90 Content-Type: text/plain Hi Timo, > I think maildir support is getting near perfect now. Only > thing left is to deal with failure to write dovecot-uidlist > when out of quota. Oh, and NFS safe .customflags file. Does this mean you made the .subscriptions nfs-safe already in this version? Kind regards, Maikel Verheijen. ------_=_NextPart_001_01C31DCC.309FAA90 Content-Type: text/html RE: [Dovecot] 0.99.10-test1

Hi Timo,

> I think maildir support is getting near perfect now. Only
> thing left is to deal with failure to write dovecot-uidlist
> when out of quota. Oh, and NFS safe .customflags file.

Does this mean you made the .subscriptions nfs-safe already in this version?


Kind regards,


Maikel Verheijen.

------_=_NextPart_001_01C31DCC.309FAA90-- From tss@iki.fi Mon May 19 09:27:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E877D23994; Mon, 19 May 2003 09:27:38 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 63615238E1 for ; Mon, 19 May 2003 09:27:37 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 1E6335C896C6; Mon, 19 May 2003 09:27:37 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030519014849.GJ23270@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053277632.1215.154.camel@hurina> <20030519014849.GJ23270@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053325656.1218.162.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 19 May 2003 09:27:36 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 06:27:39 -0000 X-UID: 766 Status: O On Mon, 2003-05-19 at 04:48, Charlie Allom wrote: > The instructions specify: > > gcc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$dovecot -I$dovecot/src/lib \ > drac.c -o drac.so -ldrac > > and the C defines common.h - which one? "-I$dovecot/src/master" ? Oh, change it to lib.h instead. From tss@iki.fi Mon May 19 09:28:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 02370239AF; Mon, 19 May 2003 09:28:44 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D305423994 for ; Mon, 19 May 2003 09:28:39 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id B29E95C896C6; Mon, 19 May 2003 09:28:39 +0300 (EEST) Subject: RE: [Dovecot] 0.99.10-test1 From: Timo Sirainen To: "'dovecot@procontrol.fi'" In-Reply-To: <410777FC7A66D511911500B0D078345501F2233A@nlladot05.intern.ladot.com> References: <410777FC7A66D511911500B0D078345501F2233A@nlladot05.intern.ladot.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053325719.1215.164.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 19 May 2003 09:28:39 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 06:28:44 -0000 X-UID: 767 Status: O On Mon, 2003-05-19 at 09:02, Maikel Verheijen wrote: > Hi Timo, > > > I think maildir support is getting near perfect now. Only > > thing left is to deal with failure to write dovecot-uidlist > > when out of quota. Oh, and NFS safe .customflags file. > > Does this mean you made the .subscriptions nfs-safe already in this > version? Well, no, but that's not maildir-specific code :) From charlie@rubberduck.com Mon May 19 09:47:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 044E3239B2; Mon, 19 May 2003 09:47:54 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 05BD9239AF for ; Mon, 19 May 2003 09:47:50 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id B8EFD900B; Mon, 19 May 2003 16:48:40 +1000 (EST) Date: Mon, 19 May 2003 16:48:40 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030519064840.GB1644@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053277632.1215.154.camel@hurina> <20030519014849.GJ23270@lazy.spodder.com> <1053325656.1218.162.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053325656.1218.162.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 06:47:54 -0000 X-UID: 768 Status: O On Mon, May 19, 2003 at 09:27:36AM +0300, Timo Sirainen wrote: > On Mon, 2003-05-19 at 04:48, Charlie Allom wrote: > > The instructions specify: > > > > gcc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$dovecot -I$dovecot/src/lib \ > > drac.c -o drac.so -ldrac > > > > and the C defines common.h - which one? "-I$dovecot/src/master" ? > > Oh, change it to lib.h instead. > Done, and: 16:46 yeled@lazy:/usr/src/dovecot$ gcc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$dovecot -I$dovecot/src/lib drac.c -o drac.so -ldrac In file included from drac.c:14: /usr/src/dovecot/src/lib/lib.h:6: ../../config.h: No such file or directory In file included from /usr/src/dovecot/src/lib/lib.h:20, from drac.c:14: /usr/src/dovecot/src/lib/compat.h:17: #error uoff_t size not set um.. C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com > http://groups.google.com/groups?selm=3266D499.342E%40student.uq.edu.au < From tss@iki.fi Mon May 19 10:07:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C4B6B239B3; Mon, 19 May 2003 10:07:44 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 58154239B2 for ; Mon, 19 May 2003 10:07:43 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 203FC5C896C6; Mon, 19 May 2003 10:07:43 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030519064840.GB1644@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053277632.1215.154.camel@hurina> <20030519014849.GJ23270@lazy.spodder.com> <20030519064840.GB1644@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053328062.1218.167.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 19 May 2003 10:07:43 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 07:07:44 -0000 X-UID: 769 Status: O On Mon, 2003-05-19 at 09:48, Charlie Allom wrote: > 16:46 yeled@lazy:/usr/src/dovecot$ gcc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$dovecot -I$dovecot/src/lib drac.c -o drac.so -ldrac > In file included from drac.c:14: > /usr/src/dovecot/src/lib/lib.h:6: ../../config.h: No such file or directory > In file included from /usr/src/dovecot/src/lib/lib.h:20, > from drac.c:14: > /usr/src/dovecot/src/lib/compat.h:17: #error uoff_t size not set > > um.. Well .. worked with me :) But since it wants ../../config.h, compile it in eg. src/imap/ directory. From charlie@rubberduck.com Mon May 19 10:21:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3CA4B239B3; Mon, 19 May 2003 10:21:49 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id DDB73239AD for ; Mon, 19 May 2003 10:21:46 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 4A9D0900B; Mon, 19 May 2003 17:22:37 +1000 (EST) Date: Mon, 19 May 2003 17:22:37 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030519072237.GC1644@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053277632.1215.154.camel@hurina> <20030519014849.GJ23270@lazy.spodder.com> <20030519064840.GB1644@lazy.spodder.com> <1053328062.1218.167.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053328062.1218.167.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 07:21:49 -0000 X-UID: 770 Status: O On Mon, May 19, 2003 at 10:07:43AM +0300, Timo Sirainen wrote: > On Mon, 2003-05-19 at 09:48, Charlie Allom wrote: > > 16:46 yeled@lazy:/usr/src/dovecot$ gcc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$dovecot -I$dovecot/src/lib drac.c -o drac.so -ldrac > > In file included from drac.c:14: > > /usr/src/dovecot/src/lib/lib.h:6: ../../config.h: No such file or directory > > In file included from /usr/src/dovecot/src/lib/lib.h:20, > > from drac.c:14: > > /usr/src/dovecot/src/lib/compat.h:17: #error uoff_t size not set > > > > um.. > > Well .. worked with me :) But since it wants ../../config.h, compile it > in eg. src/imap/ directory. > Are you sure? 17:22 yeled@lazy:/usr/src/dovecot$ find . -name config.h 17:22 yeled@lazy:/usr/src/dovecot$ -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com > http://groups.google.com/groups?selm=3266D499.342E%40student.uq.edu.au < From tss@iki.fi Mon May 19 10:37:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 96EFC23A0F; Mon, 19 May 2003 10:37:23 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 062F1239B3 for ; Mon, 19 May 2003 10:37:19 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 9DEC25C896C6; Mon, 19 May 2003 10:37:17 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030519072237.GC1644@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053277632.1215.154.camel@hurina> <20030519014849.GJ23270@lazy.spodder.com> <1053328062.1218.167.camel@hurina> <20030519072237.GC1644@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053329837.1218.169.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 19 May 2003 10:37:17 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 07:37:23 -0000 X-UID: 771 Status: O On Mon, 2003-05-19 at 10:22, Charlie Allom wrote: > > Well .. worked with me :) But since it wants ../../config.h, compile it > > in eg. src/imap/ directory. > > > > Are you sure? > > 17:22 yeled@lazy:/usr/src/dovecot$ find . -name config.h > 17:22 yeled@lazy:/usr/src/dovecot$ Oh, you haven't compiled Dovecot in that tree? You'll have to run at least configure there which generates config.h From seba@iq.pl Mon May 19 13:25:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EB81A239B2; Mon, 19 May 2003 13:25:23 +0300 (EEST) Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id 239662399D for ; Mon, 19 May 2003 13:25:20 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id F3D6B6BD52; Mon, 19 May 2003 12:26:48 +0200 (CEST) Date: Mon, 19 May 2003 12:26:48 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10-test3 Message-ID: <20030519102648.GA17452@iq.pl> References: <1053263378.1214.151.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053263378.1214.151.camel@hurina> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 10:25:24 -0000 X-UID: 772 Status: O On Sun, May 18, 2003 at 16:09:38 +0300, Timo Sirainen wrote: > > - Out of quota/disk space failures are handled well now. All except > updating dovecot-uidlist file which is a bit tricky. > > - :CONTROL=dir in default_mail_env can specify where to save > dovecot-uidlist and .customflags files. Useful for above problems. works great From tss@iki.fi Mon May 19 15:50:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2F62123993; Mon, 19 May 2003 15:50:59 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7410F238D6 for ; Mon, 19 May 2003 15:50:56 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 351115C896C6; Mon, 19 May 2003 15:50:56 +0300 (EEST) Subject: Re: [Dovecot] ssl still not working From: Timo Sirainen To: Dovecot List In-Reply-To: <3EC3790D.2090602@bnap.hu> References: <3EC3790D.2090602@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053348655.1218.188.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 19 May 2003 15:50:56 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 12:50:59 -0000 X-UID: 773 Status: O Content-Length: 1482 On Thu, 2003-05-15 at 14:25, Farkas Levente wrote: > hi, > I'm just download the latest cvs and try to use imaps. in mozilla I've > got the following message window: > ----------------------------- > mail.int.bppiac.hu received a message with incorrect Message > Authentication Code. If the error occurs frequently, contact the website > administrator. > ----------------------------- > and there is only one OK button:-) > and this happens always. what can be the reason and what can I do? > thanks. If you set verbose_ssl = yes, I guess you'll see something like this in log file: imap-login: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac I'm beginning to think that this has something to do with RSA keys .. because I don't provide it large enough RSA key and I don't create any temporary RSA keys. Or maybe the same with DH keys. I wish someone with more understanding on SSL protocol wrote the SSL stuff to Dovecot :) I can only guess how they probably work. My guess is that I should either generate a new temporary RSA key when it's asked (which I think would be very slow since every session might create new one) or that I pregenerated a few keys with specific sizes (512 and 1024bits?) and used only them, or let login process signal master process that we need a new key with bit size xyz, then wait for master process to create it and let all the new processes use it. I think the last one would work best. From maikel@ladot.com Mon May 19 16:54:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D3DF323993; Mon, 19 May 2003 16:54:35 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 3FC7F238E1 for ; Mon, 19 May 2003 16:54:34 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h4JE6JVg064212; Mon, 19 May 2003 16:06:19 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Mon, 19 May 2003 15:38:11 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F22352@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'Timo Sirainen'" , "'dovecot@procontrol.fi'" Subject: RE: [Dovecot] 0.99.10-test1 Date: Mon, 19 May 2003 15:38:10 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C31E0B.E3695330" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2003 13:54:36 -0000 X-UID: 774 Status: O Content-Length: 1143 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C31E0B.E3695330 Content-Type: text/plain > > Does this mean you made the .subscriptions nfs-safe already in this > > version? > Well, no, but that's not maildir-specific code :) Ah, ok, My mistake! :) Regards, Maikel. ------_=_NextPart_001_01C31E0B.E3695330 Content-Type: text/html RE: [Dovecot] 0.99.10-test1

> > Does this mean you made the .subscriptions nfs-safe already in this
> > version?
> Well, no, but that's not maildir-specific code :)

Ah, ok, My mistake! :)


Regards,


Maikel.

------_=_NextPart_001_01C31E0B.E3695330-- From charlie@rubberduck.com Tue May 20 04:12:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0B0E523999; Tue, 20 May 2003 04:12:23 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id D6B73238D6 for ; Tue, 20 May 2003 04:12:18 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id CFCD7901A; Tue, 20 May 2003 11:13:01 +1000 (EST) Date: Tue, 20 May 2003 11:13:01 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030520011301.GB2615@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053277632.1215.154.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053277632.1215.154.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 May 2003 01:12:23 -0000 X-UID: 775 Status: O On Sun, May 18, 2003 at 08:07:12PM +0300, Timo Sirainen wrote: > On Sat, 2003-05-17 at 09:31, Charlie Allom wrote: > > has anyone else tried this patch ? with Timo's modifications to his > > original patch I got it updating the DRAC db, but only able to use the > > local interfaces. > > Install Dovecot 0.99.10-test2 and > http://dovecot.procontrol.fi/patches/drac-imap.c > > Set "imap_use_modules = yes" in config file and that should hopefully do > it. > Hi, this does less than the original patch. can I strace/ktruss something for you? C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com > http://groups.google.com/groups?selm=3266D499.342E%40student.uq.edu.au < From ebpeele2@pams.ncsu.edu Tue May 20 08:50:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F2E64238D3; Tue, 20 May 2003 08:50:33 +0300 (EEST) Received: from localhost.localdomain (rdu168-171-174.nc.rr.com [24.168.171.174]) by danu.procontrol.fi (Postfix) with ESMTP id 80376238B6 for ; Tue, 20 May 2003 08:50:30 +0300 (EEST) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id h4K5nZ7F020972 for ; Tue, 20 May 2003 01:50:16 -0400 Received: (from elliot@localhost) by localhost.localdomain (8.12.8/8.12.8/Submit) id h4K5nZci020970 for dovecot@procontrol.fi; Tue, 20 May 2003 01:49:35 -0400 X-Authentication-Warning: localhost.localdomain: elliot set sender to ebpeele2@pams.ncsu.edu using -f From: Elliot Peele To: dovecot@procontrol.fi Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-WvdjNRklqBBPu0sCBNww" Message-Id: <1053409775.20836.8.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.3 (1.3.3-2) (Preview Release) Date: 20 May 2003 01:49:35 -0400 Subject: [Dovecot] dovecot with ssl on rhl9 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 May 2003 05:50:34 -0000 X-UID: 776 Status: O Content-Length: 1462 --=-WvdjNRklqBBPu0sCBNww Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Has anyone gotten dovecot to work on Red Hat Linux 9 with ssl support? It seems to work just fine on Red Hat Linux 8.0, but doesn't seem to work Red Hat Linux 9. When I try to use openssl to connect to the server i get: [elliot@localhost elliot]$ openssl s_client -connect rktest.physics.ncsu.edu:993 CONNECTED(00000003) depth=3D0 /OU=3DIMAP server/CN=3Dimap.example.com/emailAddress=3Dpostmaster@example.com verify error:num=3D18:self signed certificate verify return:1 depth=3D0 /OU=3DIMAP server/CN=3Dimap.example.com/emailAddress=3Dpostmaster@example.com verify return:1 20949:error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac:s3_pkt.c:1052:SSL alert number 20 20949:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:226: I'm trying to use evolution 1.3.3 to connect via imaps. Whenever I click on the mail folder it just says 'Scanning folders in "IMAP server imap.example.com" (100%)' and then nothing happens. Anyone have any ideas? Thanks Elliot --=-WvdjNRklqBBPu0sCBNww Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA+ycHvmSqoIAXFTXMRAkPCAJwIjRqmBVIWmuTmozPlvgEJz/CRlwCggqtb B0WIbn/JCRpKYQ+VkokokLg= =Hmjf -----END PGP SIGNATURE----- --=-WvdjNRklqBBPu0sCBNww-- From tss@iki.fi Tue May 20 21:27:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C93D7238C7; Tue, 20 May 2003 21:27:36 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4BA5F23887 for ; Tue, 20 May 2003 21:27:35 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 045CA5C896C6; Tue, 20 May 2003 21:27:35 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: multipart/mixed; boundary="=-cwKswavA2QX6zIuq/8RB" Organization: Message-Id: <1053455254.1212.265.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 20 May 2003 21:27:34 +0300 Subject: [Dovecot] SSL problems X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 May 2003 18:27:36 -0000 X-UID: 777 Status: O Content-Length: 1555 --=-cwKswavA2QX6zIuq/8RB Content-Type: text/plain Content-Transfer-Encoding: 7bit Anyone with SSL problems, please try 0.99.10-test4 or included patch. If it fixes it, I'll make it faster by caching the generated keys. http://dovecot.procontrol.fi/test/ --=-cwKswavA2QX6zIuq/8RB Content-Disposition: attachment; filename=ssl.diff Content-Type: text/x-patch; name=ssl.diff; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Index: ssl-proxy-openssl.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/login-common/ssl-proxy-openssl.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- ssl-proxy-openssl.c 19 May 2003 09:57:02 -0000 1.14 +++ ssl-proxy-openssl.c 20 May 2003 18:22:04 -0000 1.15 @@ -392,6 +392,12 @@ } } =20 +static RSA *ssl_gen_rsa_key(SSL *ssl __attr_unused__, + int is_export __attr_unused__, int keylength) +{ + return RSA_generate_key(keylength, RSA_F4, NULL, NULL); +} + void ssl_proxy_init(void) { const char *certfile, *keyfile, *paramfile; @@ -423,6 +429,9 @@ i_fatal("Can't load private key file %s: %s", keyfile, ssl_last_error()); } + + if (SSL_CTX_need_tmp_RSA(ssl_ctx)) + SSL_CTX_set_tmp_rsa_callback(ssl_ctx, ssl_gen_rsa_key); =20 ssl_proxies =3D hash_create(default_pool, default_pool, 0, NULL, N= ULL); ssl_initialized =3D TRUE; --=-cwKswavA2QX6zIuq/8RB-- From tss@iki.fi Tue May 20 21:40:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 03E5E238D3; Tue, 20 May 2003 21:40:38 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7BA69238C7 for ; Tue, 20 May 2003 21:40:36 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 33F1B5C896C6; Tue, 20 May 2003 21:40:36 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030520011301.GB2615@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <20030520011301.GB2615@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053456035.1218.277.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 20 May 2003 21:40:36 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 May 2003 18:40:38 -0000 X-UID: 778 Status: O On Tue, 2003-05-20 at 04:13, Charlie Allom wrote: > > http://dovecot.procontrol.fi/patches/drac-imap.c > > > > Set "imap_use_modules = yes" in config file and that should hopefully do > > it. > this does less than the original patch. Sounds like it's not even trying to use the module. Are you sure you put it in the correct directory? > can I strace/ktruss something for you? "strace -f dovecot" would work. You should see something like this after logging in: [pid 10271] open("/usr/local/lib/dovecot/imap", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4 .. [pid 10271] open("/usr/local/lib/dovecot/imap/drac.so", O_RDONLY) = 5 From charlie@rubberduck.com Wed May 21 07:32:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BF48C23997; Wed, 21 May 2003 07:32:42 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 42953238D3 for ; Wed, 21 May 2003 07:32:18 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 89320901D; Wed, 21 May 2003 14:33:13 +1000 (EST) Date: Wed, 21 May 2003 14:33:13 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030521043313.GA1659@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <20030520011301.GB2615@lazy.spodder.com> <1053456035.1218.277.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053456035.1218.277.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 04:32:42 -0000 X-UID: 779 Status: O Content-Length: 1600 On Tue, May 20, 2003 at 09:40:36PM +0300, Timo Sirainen wrote: > On Tue, 2003-05-20 at 04:13, Charlie Allom wrote: > > > http://dovecot.procontrol.fi/patches/drac-imap.c > > > > > > Set "imap_use_modules = yes" in config file and that should hopefully do > > > it. > > this does less than the original patch. > > Sounds like it's not even trying to use the module. Are you sure you put > it in the correct directory? #imap_use_modules = no #imap_modules = /usr/lib/dovecot/imap imap_use_modules = no imap_modules = /usr/pkg/lib/dovecot/imap # Support for dynamically loadable modules. #pop3_use_modules = no #pop3_modules = /usr/lib/dovecot/pop3 pop3_use_modules = no pop3_modules = /usr/pkg/lib/dovecot/pop3 14:32 yeled@lazy:~$ ls -Rl /usr/pkg/lib/dovecot total 4 drwxr-xr-x 2 root wheel 512 May 20 11:07 imap/ drwxr-xr-x 2 root wheel 512 May 20 11:07 pop3/ /usr/pkg/lib/dovecot/imap: total 12 -rwxr-xr-x 1 root wheel 6031 May 20 21:51 drac.so* /usr/pkg/lib/dovecot/pop3: total 12 -rwxr-xr-x 1 root wheel 6031 May 20 21:51 drac.so* > > > can I strace/ktruss something for you? > > "strace -f dovecot" would work. You should see something like this after > logging in: > > [pid 10271] open("/usr/local/lib/dovecot/imap", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4 > .. > [pid 10271] open("/usr/local/lib/dovecot/imap/drac.so", O_RDONLY) = 5 > gah nothing mentioning drac.so there... I am using ktruss -ip o nthe first dovecot PID. C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From charlie@rubberduck.com Wed May 21 07:43:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 753AD2399A; Wed, 21 May 2003 07:43:28 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 7BEE1238D3 for ; Wed, 21 May 2003 07:43:04 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id A434E901D; Wed, 21 May 2003 14:44:01 +1000 (EST) Date: Wed, 21 May 2003 14:44:01 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030521044401.GD1659@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <20030520011301.GB2615@lazy.spodder.com> <1053456035.1218.277.camel@hurina> <20030521043313.GA1659@lazy.spodder.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030521043313.GA1659@lazy.spodder.com> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 04:43:28 -0000 X-UID: 780 Status: O On Wed, May 21, 2003 at 02:33:13PM +1000, Charlie Allom wrote: > > 14:32 yeled@lazy:~$ ls -Rl /usr/pkg/lib/dovecot > total 4 > drwxr-xr-x 2 root wheel 512 May 20 11:07 imap/ > drwxr-xr-x 2 root wheel 512 May 20 11:07 pop3/ > > /usr/pkg/lib/dovecot/imap: > total 12 > -rwxr-xr-x 1 root wheel 6031 May 20 21:51 drac.so* > > /usr/pkg/lib/dovecot/pop3: > total 12 > -rwxr-xr-x 1 root wheel 6031 May 20 21:51 drac.so* > PS. Instead of -ldrac when compilling drac.so I used -I/usr/pkg/lib/libdrac.a Don't know what the difference is. I agree it doesn't look like the modules are being loaded. C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From warren@togami.com Wed May 21 07:56:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B9BDB23997; Wed, 21 May 2003 07:56:54 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 5D825238D3 for ; Wed, 21 May 2003 07:56:30 +0300 (EEST) Received: from localhost.127.in-addr.arpa (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id 9EC305D805F for ; Tue, 20 May 2003 19:00:42 -1000 (HST) Subject: Re: [Dovecot] SSL problems From: Warren Togami To: dovecot@procontrol.fi In-Reply-To: <1053455254.1212.265.camel@hurina> References: <1053455254.1212.265.camel@hurina> Content-Type: text/plain Message-Id: <1053492983.461.2.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.3 (1.3.3-2) (Preview Release) Date: 20 May 2003 18:56:23 -1000 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 04:56:54 -0000 X-UID: 781 Status: O On Tue, 2003-05-20 at 08:27, Timo Sirainen wrote: > Anyone with SSL problems, please try 0.99.10-test4 or included patch. If > it fixes it, I'll make it faster by caching the generated keys. > > http://dovecot.procontrol.fi/test/ > Upgraded to 0.99.10-test4 on RH9. I tried with a newly generated dovecot.pem and my Apache SSL keys. Evolution 1.3.3 and Mozilla 1.4a still unable to use SSL. https://bugzilla.fedora.us/show_bug.cgi?id=160 My latest SRPM is here. Warren Togami warren@togami.com From tss@iki.fi Wed May 21 10:09:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E348A238D3; Wed, 21 May 2003 10:09:41 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 34A1A238C8 for ; Wed, 21 May 2003 10:09:18 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 0FDFD5C896C6; Wed, 21 May 2003 10:09:16 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030521043313.GA1659@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053456035.1218.277.camel@hurina> <20030521043313.GA1659@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053500955.1214.330.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 May 2003 10:09:15 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 07:09:42 -0000 X-UID: 782 Status: O On Wed, 2003-05-21 at 07:33, Charlie Allom wrote: > > > > Set "imap_use_modules = yes" in config file and that should hopefully do > > > > it. > imap_use_modules = no > pop3_use_modules = no "no"? From charlie@rubberduck.com Wed May 21 10:15:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7CC3723997; Wed, 21 May 2003 10:15:33 +0300 (EEST) Received: from lazy.spodder.com (unknown [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id E6479238C8 for ; Wed, 21 May 2003 10:15:03 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 05FF6901C; Wed, 21 May 2003 17:15:51 +1000 (EST) Date: Wed, 21 May 2003 17:15:50 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030521071550.GI1659@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053456035.1218.277.camel@hurina> <20030521043313.GA1659@lazy.spodder.com> <1053500955.1214.330.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053500955.1214.330.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 07:15:34 -0000 X-UID: 783 Status: O On Wed, May 21, 2003 at 10:09:15AM +0300, Timo Sirainen wrote: > On Wed, 2003-05-21 at 07:33, Charlie Allom wrote: > > > > > Set "imap_use_modules = yes" in config file and that should hopefully do > > > > > it. > > imap_use_modules = no > > pop3_use_modules = no > > "no"? > I may just die. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From charlie@rubberduck.com Wed May 21 10:20:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3461D23997; Wed, 21 May 2003 10:20:19 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 211A723887 for ; Wed, 21 May 2003 10:19:55 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id A4523901C; Wed, 21 May 2003 17:20:45 +1000 (EST) Date: Wed, 21 May 2003 17:20:45 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030521072045.GJ1659@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053456035.1218.277.camel@hurina> <20030521043313.GA1659@lazy.spodder.com> <1053500955.1214.330.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053500955.1214.330.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 07:20:19 -0000 X-UID: 784 Status: O OK. finally. http://rubberduck.com/~yeled/NetBSD/dovecot.ktruss.1.txt and in syslog: May 21 17:18:57 lazy imap-login: Login: thom [203.31.232.2] May 21 17:18:57 lazy imap(thom): dlopen(/usr/pkg/lib/dovecot/imap/drac.so) failed: /usr/pkg/lib/dovecot/imap/drac.so: Undefined PLT symbol "net_addr2ip" (symnum = 21) -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From tss@iki.fi Wed May 21 10:30:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3D4D323997; Wed, 21 May 2003 10:30:42 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 98BA823887 for ; Wed, 21 May 2003 10:30:16 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 36DE95C896C6; Wed, 21 May 2003 10:30:16 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030521072045.GJ1659@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <20030521043313.GA1659@lazy.spodder.com> <20030521072045.GJ1659@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053502215.1214.337.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 May 2003 10:30:16 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 07:30:42 -0000 X-UID: 785 Status: O On Wed, 2003-05-21 at 10:20, Charlie Allom wrote: > /usr/pkg/lib/dovecot/imap/drac.so: Undefined PLT symbol "net_addr2ip" > (symnum = 21) Are you really running 0.99.10-test2 or newer? I changed that function's name recently. From charlie@rubberduck.com Wed May 21 10:39:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 105D9238C9; Wed, 21 May 2003 10:39:26 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 060FA23887 for ; Wed, 21 May 2003 10:39:02 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 434389020; Wed, 21 May 2003 17:39:59 +1000 (EST) Date: Wed, 21 May 2003 17:39:59 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030521073959.GD27088@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <20030521043313.GA1659@lazy.spodder.com> <20030521072045.GJ1659@lazy.spodder.com> <1053502215.1214.337.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053502215.1214.337.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 07:39:26 -0000 X-UID: 786 Status: O On Wed, May 21, 2003 at 10:30:16AM +0300, Timo Sirainen wrote: > On Wed, 2003-05-21 at 10:20, Charlie Allom wrote: > > /usr/pkg/lib/dovecot/imap/drac.so: Undefined PLT symbol "net_addr2ip" > > (symnum = 21) > > Are you really running 0.99.10-test2 or newer? I changed that function's > name recently. > Yes I really am. Check your latest commits to network.h and network.c 17:35 yeled@lazy:~$ grep -ir net_addr2ip /usr/src/pkgsrc/mail/dovecot/work.i386//usr/src/pkgsrc/mail/dovecot/work.i386/dovecot-0.99.10-test2/src/lib/network.c:int net_addr2ip(const char *addr, struct ip_addr *ip) /usr/src/pkgsrc/mail/dovecot/work.i386/dovecot-0.99.10-test2/src/lib/network.h:int net_addr2ip(const char *addr, struct ip_addr *ip); /usr/src/pkgsrc/mail/dovecot/work.i386/dovecot-0.99.10-test2/drac.c: else if (net_addr2ip(ip_str, &ip) < 0) C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From lfarkas@bnap.hu Wed May 21 11:41:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 40AAE238C8; Wed, 21 May 2003 11:41:12 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 209A2238C9 for ; Wed, 21 May 2003 11:40:48 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 87BA875400F for ; Wed, 21 May 2003 10:40:28 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id F29BC3EB1 for ; Wed, 21 May 2003 10:40:44 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id D11E93EB0 for ; Wed, 21 May 2003 10:40:44 +0200 (CEST) Message-ID: <3ECB3B8C.2060301@bnap.hu> Date: Wed, 21 May 2003 10:40:44 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] ssl still not working References: <3EC3790D.2090602@bnap.hu> <1053348655.1218.188.camel@hurina> In-Reply-To: <1053348655.1218.188.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 08:41:12 -0000 X-UID: 787 Status: O Content-Length: 3029 Timo Sirainen wrote: > On Thu, 2003-05-15 at 14:25, Farkas Levente wrote: > >>hi, >>I'm just download the latest cvs and try to use imaps. in mozilla I've >>got the following message window: >>----------------------------- >>mail.int.bppiac.hu received a message with incorrect Message >>Authentication Code. If the error occurs frequently, contact the website >>administrator. >>----------------------------- >>and there is only one OK button:-) >>and this happens always. what can be the reason and what can I do? >>thanks. > > > If you set verbose_ssl = yes, I guess you'll see something like this in > log file: > > imap-login: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac > > I'm beginning to think that this has something to do with RSA keys .. > because I don't provide it large enough RSA key and I don't create any > temporary RSA keys. Or maybe the same with DH keys. > > I wish someone with more understanding on SSL protocol wrote the SSL > stuff to Dovecot :) I can only guess how they probably work. > > My guess is that I should either generate a new temporary RSA key when > it's asked (which I think would be very slow since every session might > create new one) or that I pregenerated a few keys with specific sizes > (512 and 1024bits?) and used only them, or let login process signal > master process that we need a new key with bit size xyz, then wait for > master process to create it and let all the new processes use it. I > think the last one would work best. here is the result: ------------------- imap-login: May 21 10:35:39 Warning: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [192.168.0.50] imap-login: May 21 10:35:39 Info: Disconnected [192.168.0.50] imap-login: May 21 10:35:39 Warning: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [192.168.0.50] imap-login: May 21 10:35:39 Info: Disconnected [192.168.0.50] imap-login: May 21 10:35:39 Warning: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [192.168.0.50] imap-login: May 21 10:35:39 Info: Disconnected [192.168.0.50] imap-login: May 21 10:35:43 Warning: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [192.168.0.50] imap-login: May 21 10:35:43 Info: Disconnected [192.168.0.50] imap-login: May 21 10:35:43 Warning: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [192.168.0.50] imap-login: May 21 10:35:43 Info: Disconnected [192.168.0.50] ------------------- this is with the latest patch (it's actualy the today cvs version). I don't use dovecot's generated certs, I manualy generate certificate for all of our services https, imaps, vpn... with one common global CA for the whole company. ssl still not working. -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed May 21 11:58:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AD52D238C9; Wed, 21 May 2003 11:58:51 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id CA51F238C8 for ; Wed, 21 May 2003 11:58:27 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 063F875401C for ; Wed, 21 May 2003 10:58:10 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id E37403ECC for ; Wed, 21 May 2003 10:58:25 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id B7CE13EB7 for ; Wed, 21 May 2003 10:58:25 +0200 (CEST) Message-ID: <3ECB3FB1.9040602@bnap.hu> Date: Wed, 21 May 2003 10:58:25 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] still problem with load X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 08:58:51 -0000 X-UID: 788 Status: O Content-Length: 2360 hi, we've got (and getting more) serious problem with load. I'm just calculate that ther is about 300 mailbox with 20Gb mails. and the whole system is _very_ slow and just getting slower and slower. it's a fast lan every client has 100Mb connection to the server with gigabit crad and gigabit switches. when I push the delete button in a mail I usualy have to wait 10,20 or 30 seconds (!!!) to deleted and show me the next one. dovecot eat so much io to the hard disk, that we can't do too much. currently at the same time about 100 clients are connected mostly with OE6. the server is a P4 server with 1GB ram and about 1TB hard disk. there is only one samba and dovecot on the server. and the load use to be something like this: ---------------------------------------- 10:47:38 up 3 days, 15:48, 2 users, load average: 4.64, 3.58, 3.43 230 processes: 225 sleeping, 5 running, 0 zombie, 0 stopped CPU states: 6.3% user 8.9% system 0.0% nice 0.0% iowait 84.6% idle Mem: 1022840k av, 1013588k used, 9252k free, 0k shrd, 80320k buff 826372k actv, 47324k in_d, 16904k in_c Swap: 4193608k av, 80612k used, 4112996k free 783088k cached ---------------------------------------- as you can see it use almost all ram (as the 2.4 kernmel used to do) but no cache. so the ram is enough. the more interesting part is the load while the idle usualy between 80-90% the whole system doesn't use any cpu (or just minimal). BUT at the same time the load is around 3,4,5 (!!!) which is too much, and more than acceptable. what's worse the reason is the io load on the hard disks. every process are waiting for io. in this case I usualy service dovecot stop killall imap service dovecot start and the load goes back to 0.3-0.6. after an hour the same happend and I have to do the same.:-((( what's more in this case samba case that all (!!!) clients stops for a few seconds. since everybody use OE6 they always download all messages with huge mailboxes what's more dovecot index the whole system all the time. I assume this cause the load. IMHO 300 mailbox and 100 concurrent user is not such a big thing. is there any way to restrict dovecot not to use so much io? thanks in advance. -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed May 21 12:14:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9DBC8238C9; Wed, 21 May 2003 12:14:36 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3E5AB238C8 for ; Wed, 21 May 2003 12:14:11 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id EAB745C896C6; Wed, 21 May 2003 12:14:09 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030521073959.GD27088@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <20030521043313.GA1659@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053508449.1218.348.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 May 2003 12:14:09 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 09:14:36 -0000 X-UID: 789 Status: O On Wed, 2003-05-21 at 10:39, Charlie Allom wrote: > On Wed, May 21, 2003 at 10:30:16AM +0300, Timo Sirainen wrote: > > On Wed, 2003-05-21 at 10:20, Charlie Allom wrote: > > > /usr/pkg/lib/dovecot/imap/drac.so: Undefined PLT symbol "net_addr2ip" > > > (symnum = 21) > > > > Are you really running 0.99.10-test2 or newer? I changed that function's > > name recently. > > > > Yes I really am. > > Check your latest commits to network.h and network.c Oh! I got it :) The linker optimizes that function away since it's not used elsewhere. Well, I'll include that function into the drac.c. Updated http://dovecot.procontrol.fi/patches/drac.c From tss@iki.fi Wed May 21 12:22:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D7AA9238C9; Wed, 21 May 2003 12:22:51 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D524B23887 for ; Wed, 21 May 2003 12:22:27 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 8E5545C896C6; Wed, 21 May 2003 12:22:27 +0300 (EEST) Subject: Re: [Dovecot] still problem with load From: Timo Sirainen To: Dovecot List In-Reply-To: <3ECB3FB1.9040602@bnap.hu> References: <3ECB3FB1.9040602@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053508947.1214.358.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 May 2003 12:22:27 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 09:22:52 -0000 X-UID: 790 Status: O On Wed, 2003-05-21 at 11:58, Farkas Levente wrote: > since everybody use OE6 they > always download all messages with huge mailboxes OE6 shouldn't do that, unless UIDVALIDITY changes. And it shouldn't change. > what's more dovecot index the whole system all the time. Dovecot should neither do that unless it thinks there's something wrong with the indexes. Don't you get any error messages in logs? If it really is rebuilding the indexes all the time without errors, try what happens if you use in-memory indexes? ie. add :INDEX=MEMORY to default_mail_env setting. Although that pretty much requires 0.99.10-test releases since there was some bugs in it before. And if OE6 reloads everything, check if the UIDVALIDITY keeps changing in dovecot-uidlist. It's in the first line, middle number. > IMHO 300 mailbox and 100 concurrent user is not such a big thing. No, it shouldn't be. From charlie@rubberduck.com Wed May 21 12:26:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8300A238C9; Wed, 21 May 2003 12:26:18 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 1A65723887 for ; Wed, 21 May 2003 12:25:54 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id AA5A1901C; Wed, 21 May 2003 19:26:51 +1000 (EST) Date: Wed, 21 May 2003 19:26:51 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030521092651.GG27088@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <20030521043313.GA1659@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053508449.1218.348.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 09:26:18 -0000 X-UID: 791 Status: O Content-Length: 1180 On Wed, May 21, 2003 at 12:14:09PM +0300, Timo Sirainen wrote: > On Wed, 2003-05-21 at 10:39, Charlie Allom wrote: > > On Wed, May 21, 2003 at 10:30:16AM +0300, Timo Sirainen wrote: > > > On Wed, 2003-05-21 at 10:20, Charlie Allom wrote: > > > > /usr/pkg/lib/dovecot/imap/drac.so: Undefined PLT symbol "net_addr2ip" > > > > (symnum = 21) > > > > > > Are you really running 0.99.10-test2 or newer? I changed that function's > > > name recently. > > > > > > > Yes I really am. > > > > Check your latest commits to network.h and network.c > > Oh! I got it :) The linker optimizes that function away since it's not > used elsewhere. Well, I'll include that function into the drac.c. > Updated http://dovecot.procontrol.fi/patches/drac.c > Thanks! May 21 19:23:26 lazy imap-login: Login: thom [203.31.232.2] May 21 19:23:26 lazy imap(thom): dlopen(/usr/pkg/lib/dovecot/imap/drac.so) failed: /usr/pkg/lib/dovecot/imap/drac.so: Undefined PLT symbol "i_error" (symnum = 22) Oops. ktruss: http://rubberduck.com/~yeled/NetBSD/dovecot.ktruss.2.txt -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From tss@iki.fi Wed May 21 12:36:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 15EBA238C9; Wed, 21 May 2003 12:36:23 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3AD5923887 for ; Wed, 21 May 2003 12:35:50 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id D16C95C896C6; Wed, 21 May 2003 12:35:49 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030521092651.GG27088@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030521092651.GG27088@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053509749.1212.366.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 May 2003 12:35:49 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 09:36:23 -0000 X-UID: 792 Status: O Content-Length: 1225 On Wed, 2003-05-21 at 12:26, Charlie Allom wrote: > > Oh! I got it :) The linker optimizes that function away since it's not > > used elsewhere. Well, I'll include that function into the drac.c. > > Updated http://dovecot.procontrol.fi/patches/drac.c > dlopen(/usr/pkg/lib/dovecot/imap/drac.so) failed: > /usr/pkg/lib/dovecot/imap/drac.so: Undefined PLT symbol "i_error" > (symnum = 22) Well, I think the module stuff is somehow broken with your system then. And I think I'll revert the net_addr2ip() change too since it's probably the same reason :) When linking imap binary, does it include -Wl,--export-dynamic option somewhere in the gcc line? Or you could just built it in by modifying src/imap/main.c: diff -u -r1.33 main.c --- main.c 14 May 2003 18:23:04 -0000 1.33 +++ main.c 21 May 2003 09:35:06 -0000 @@ -10,6 +10,7 @@ #include "module-dir.h" #include "mail-storage.h" #include "commands.h" +#include "drac.c" #include #include @@ -92,6 +93,7 @@ mail_storage_register_all(); clients_init(); commands_init(); + drac_init(); modules = getenv("MODULE_DIR") == NULL ? NULL : module_dir_load(getenv("MODULE_DIR")); From lfarkas@bnap.hu Wed May 21 13:19:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 79D9C238C9; Wed, 21 May 2003 13:19:39 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 717B2238C8 for ; Wed, 21 May 2003 13:19:15 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 6570F75401D for ; Wed, 21 May 2003 12:18:55 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 3879F3EB7 for ; Wed, 21 May 2003 12:19:09 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 1EBAF3EB0 for ; Wed, 21 May 2003 12:19:09 +0200 (CEST) Message-ID: <3ECB529C.8050201@bnap.hu> Date: Wed, 21 May 2003 12:19:08 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] still problem with load References: <3ECB3FB1.9040602@bnap.hu> <1053508947.1214.358.camel@hurina> In-Reply-To: <1053508947.1214.358.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 10:19:39 -0000 X-UID: 793 Status: O Content-Length: 1594 Timo Sirainen wrote: > On Wed, 2003-05-21 at 11:58, Farkas Levente wrote: > >>since everybody use OE6 they >>always download all messages with huge mailboxes > > > OE6 shouldn't do that, unless UIDVALIDITY changes. And it shouldn't > change. > > >>what's more dovecot index the whole system all the time. > > > Dovecot should neither do that unless it thinks there's something wrong > with the indexes. Don't you get any error messages in logs? > > If it really is rebuilding the indexes all the time without errors, try > what happens if you use in-memory indexes? ie. add :INDEX=MEMORY to > default_mail_env setting. Although that pretty much requires > 0.99.10-test releases since there was some bugs in it before. > > And if OE6 reloads everything, check if the UIDVALIDITY keeps changing > in dovecot-uidlist. It's in the first line, middle number. no it doesn't changing:-( >>IMHO 300 mailbox and 100 concurrent user is not such a big thing. > > > No, it shouldn't be. ok so what can be the reason? if I stop dovecot, the load fall down to about 0.3. if I start dovecot and about 50 people connect to it it goes up to 3.x-4.x. which actualy irritate me and the samba server stops for a few seconds for every 10-20 minutes and it took about 20-30 second to delete a mail in mozilla an show me the next (simple text) messages. any tip? how can I test it or help to you to find out the reason? it there any way to measure the total amount of read and write issued by all dovecot process? or...? -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed May 21 13:26:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3B486238C9; Wed, 21 May 2003 13:26:28 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 641C3238C8 for ; Wed, 21 May 2003 13:26:04 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 0FFE175400E for ; Wed, 21 May 2003 12:25:46 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id AF41E3EB1 for ; Wed, 21 May 2003 12:26:02 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 9DDE13EB0 for ; Wed, 21 May 2003 12:26:02 +0200 (CEST) Message-ID: <3ECB543A.1070502@bnap.hu> Date: Wed, 21 May 2003 12:26:02 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] still problem with load References: <3ECB3FB1.9040602@bnap.hu> <1053508947.1214.358.camel@hurina> In-Reply-To: <1053508947.1214.358.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 10:26:28 -0000 X-UID: 794 Status: O Content-Length: 1487 Timo Sirainen wrote: > On Wed, 2003-05-21 at 11:58, Farkas Levente wrote: > >>since everybody use OE6 they >>always download all messages with huge mailboxes > > > OE6 shouldn't do that, unless UIDVALIDITY changes. And it shouldn't > change. > > >>what's more dovecot index the whole system all the time. > > > Dovecot should neither do that unless it thinks there's something wrong > with the indexes. Don't you get any error messages in logs? > > If it really is rebuilding the indexes all the time without errors, try > what happens if you use in-memory indexes? ie. add :INDEX=MEMORY to > default_mail_env setting. Although that pretty much requires > 0.99.10-test releases since there was some bugs in it before. > > And if OE6 reloads everything, check if the UIDVALIDITY keeps changing > in dovecot-uidlist. It's in the first line, middle number. > > >>IMHO 300 mailbox and 100 concurrent user is not such a big thing. > > > No, it shouldn't be. hops when I delete you next message (about drac), I've got an error message that my server disconnected and the following error message in the log file: ----------------------------- imap(lfarkas): May 21 12:20:01 Error: Corrupted index file /home/lfarkas/Maildir/.INBOX/.imap.index: index.next_uid (64) > uidlist.next_uid (63) ----------------------------- there is only on connection to the server and just only me who read my mailbox. -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed May 21 14:11:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 88C61238C9; Wed, 21 May 2003 14:11:30 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 5BF03238C8 for ; Wed, 21 May 2003 14:10:58 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 5BBBC75400F for ; Wed, 21 May 2003 13:10:40 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id E298F3EB7 for ; Wed, 21 May 2003 13:10:55 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id C3FF73EB1 for ; Wed, 21 May 2003 13:10:55 +0200 (CEST) Message-ID: <3ECB5EBF.80403@bnap.hu> Date: Wed, 21 May 2003 13:10:55 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] still problem with load References: <3ECB3FB1.9040602@bnap.hu> <1053508947.1214.358.camel@hurina> <3ECB543A.1070502@bnap.hu> In-Reply-To: <3ECB543A.1070502@bnap.hu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 11:11:30 -0000 X-UID: 795 Status: O Content-Length: 2709 Farkas Levente wrote: > Timo Sirainen wrote: > >> On Wed, 2003-05-21 at 11:58, Farkas Levente wrote: >> >>> since everybody use OE6 they always download all messages with huge >>> mailboxes >> >> >> >> OE6 shouldn't do that, unless UIDVALIDITY changes. And it shouldn't >> change. >> >> >>> what's more dovecot index the whole system all the time. >> >> >> >> Dovecot should neither do that unless it thinks there's something wrong >> with the indexes. Don't you get any error messages in logs? >> >> If it really is rebuilding the indexes all the time without errors, >> try what happens if you use in-memory indexes? ie. add :INDEX=MEMORY to >> default_mail_env setting. Although that pretty much requires >> 0.99.10-test releases since there was some bugs in it before. >> >> And if OE6 reloads everything, check if the UIDVALIDITY keeps changing >> in dovecot-uidlist. It's in the first line, middle number. >> >> >>> IMHO 300 mailbox and 100 concurrent user is not such a big thing. >> >> >> >> No, it shouldn't be. > > > hops when I delete you next message (about drac), I've got an error > message that my server disconnected and the following error message in > the log file: > ----------------------------- > imap(lfarkas): May 21 12:20:01 Error: Corrupted index file > /home/lfarkas/Maildir/.INBOX/.imap.index: index.next_uid (64) > > uidlist.next_uid (63) > ----------------------------- > there is only on connection to the server and just only me who read my > mailbox. and a few more error log: ----------------------imap(pbalkanyi): May 21 13:04:17 Error: Corrupted index file /home/pbalkanyi/Maildir/.INBOX/.imap.index: index.next_uid (287) > uidlist.next_uid (286) imap(pbalkanyi): May 21 13:04:17 Error: Couldn't lock created modify log file /home/pbalkanyi/Maildir/.INBOX/.imap.index.log imap-login: May 21 13:04:33 Info: Login: pbalkanyi [192.168.1.164] imap(pbalkanyi): May 21 13:04:33 Error: IndexID mismatch for modify log file /home/pbalkanyi/Maildir/.INBOX/.imap.index.log imap(zkempf): May 21 13:05:17 Error: Corrupted index file /home/zkempf/Maildir/.INBOX/.imap.index: index.next_uid (180) > uidlist.next_uid (179) imap(zkempf): May 21 13:05:17 Error: Couldn't lock created modify log file /home/zkempf/Maildir/.INBOX/.imap.index.log imap-login: May 21 13:05:25 Info: Login: zkempf [192.168.0.134] imap(zkempf): May 21 13:05:25 Error: IndexID mismatch for modify log file /home/zkempf/Maildir/.INBOX/.imap.index.log imap(pbalkanyi): May 21 13:05:48 Error: Warning: Inconsistency - Index /home/pbalkanyi/Maildir/.INBOX/.imap.index was rebuilt while we had it open ---------------------- -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed May 21 14:12:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AADB5239BC; Wed, 21 May 2003 14:12:52 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C5BAE239BA for ; Wed, 21 May 2003 14:12:28 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 91CB95C896C6; Wed, 21 May 2003 14:12:28 +0300 (EEST) Subject: Re: [Dovecot] still problem with load From: Timo Sirainen To: Dovecot List In-Reply-To: <3ECB529C.8050201@bnap.hu> References: <3ECB3FB1.9040602@bnap.hu> <1053508947.1214.358.camel@hurina> <3ECB529C.8050201@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053515548.1218.383.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 May 2003 14:12:28 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 11:12:52 -0000 X-UID: 796 Status: O Content-Length: 1191 On Wed, 2003-05-21 at 13:19, Farkas Levente wrote: > >>IMHO 300 mailbox and 100 concurrent user is not such a big thing. > > No, it shouldn't be. > > ok so what can be the reason? Well, check what OE6 is talking to Dovecot. Is it fetching headers or bodies for all messages? It should do that to only new messages. Rawlog or some network sniffers could tell what exactly is happening. http://dovecot.procontrol.fi/bugreport.html#sniffing Also is Dovecot really rebuilding the indexes all the time? How do you know? Try the in-memory indexes, at least then it's not rebuilding any indexes to disk. > it there any way to measure the total amount of read and write issued by > all dovecot process? or...? Dovecot doesn't count them, but your OS might. I don't know really. > imap(lfarkas): May 21 12:20:01 Error: Corrupted index file > /home/lfarkas/Maildir/.INBOX/.imap.index: index.next_uid (64) > > uidlist.next_uid (63) Hmm.. I was going to suggest trying 0.99.10-test, but I guess you're using it now? Looks like I have similiar error messages in my log :) Have to fix those. You didn't say how long this load problem has been going on, was it only recently or for longer now? From lfarkas@bnap.hu Wed May 21 14:41:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 92535239BA; Wed, 21 May 2003 14:41:59 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id B5F2F23887 for ; Wed, 21 May 2003 14:41:35 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 6126C75400B for ; Wed, 21 May 2003 13:41:15 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 31A503EB1 for ; Wed, 21 May 2003 13:41:32 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 0553D3EB0 for ; Wed, 21 May 2003 13:41:32 +0200 (CEST) Message-ID: <3ECB65EB.7030605@bnap.hu> Date: Wed, 21 May 2003 13:41:31 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] still problem with load References: <3ECB3FB1.9040602@bnap.hu> <1053508947.1214.358.camel@hurina> <3ECB529C.8050201@bnap.hu> <1053515548.1218.383.camel@hurina> In-Reply-To: <1053515548.1218.383.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 11:41:59 -0000 X-UID: 797 Status: O Content-Length: 1174 Timo Sirainen wrote: > Well, check what OE6 is talking to Dovecot. Is it fetching headers or > bodies for all messages? It should do that to only new messages. > > Rawlog or some network sniffers could tell what exactly is happening. > http://dovecot.procontrol.fi/bugreport.html#sniffing > > Also is Dovecot really rebuilding the indexes all the time? How do you > know? Try the in-memory indexes, at least then it's not rebuilding any > indexes to disk. actually it was just a tip. what is sure, if I stop dovecot the load fall down and there is no cpu load at all. >>imap(lfarkas): May 21 12:20:01 Error: Corrupted index file >>/home/lfarkas/Maildir/.INBOX/.imap.index: index.next_uid (64) > >>uidlist.next_uid (63) > > > Hmm.. I was going to suggest trying 0.99.10-test, but I guess you're > using it now? Looks like I have similiar error messages in my log :) > Have to fix those. this is the today morning cvs. > You didn't say how long this load problem has been going on, was it only > recently or for longer now? recently one or two week, but eg todays I see load around 8-9... -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed May 21 14:45:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A8269239BC; Wed, 21 May 2003 14:45:10 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5893023887 for ; Wed, 21 May 2003 14:44:46 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3C3245C896C6; Wed, 21 May 2003 14:44:45 +0300 (EEST) Subject: Re: [Dovecot] still problem with load From: Timo Sirainen To: Dovecot List In-Reply-To: <3ECB543A.1070502@bnap.hu> References: <3ECB3FB1.9040602@bnap.hu> <1053508947.1214.358.camel@hurina> <3ECB543A.1070502@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053517484.1215.386.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 May 2003 14:44:45 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 11:45:10 -0000 X-UID: 798 Status: O On Wed, 2003-05-21 at 13:26, Farkas Levente wrote: > imap(lfarkas): May 21 12:20:01 Error: Corrupted index file > /home/lfarkas/Maildir/.INBOX/.imap.index: index.next_uid (64) > > uidlist.next_uid (63) Fixed in 0.99.10-test5. From charlie@rubberduck.com Wed May 21 14:58:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CDF54239BC; Wed, 21 May 2003 14:58:08 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 6C3C123887 for ; Wed, 21 May 2003 14:57:44 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 5B859901C; Wed, 21 May 2003 21:58:42 +1000 (EST) Date: Wed, 21 May 2003 21:58:42 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030521115842.GI27088@lazy.spodder.com> References: <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030521092651.GG27088@lazy.spodder.com> <1053509749.1212.366.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053509749.1212.366.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2003 11:58:08 -0000 X-UID: 799 Status: O Content-Length: 1137 On Wed, May 21, 2003 at 12:35:49PM +0300, Timo Sirainen wrote: > On Wed, 2003-05-21 at 12:26, Charlie Allom wrote: > > > Oh! I got it :) The linker optimizes that function away since it's not > > > used elsewhere. Well, I'll include that function into the drac.c. > > > Updated http://dovecot.procontrol.fi/patches/drac.c > > > dlopen(/usr/pkg/lib/dovecot/imap/drac.so) failed: > > /usr/pkg/lib/dovecot/imap/drac.so: Undefined PLT symbol "i_error" > > (symnum = 22) > > Well, I think the module stuff is somehow broken with your system then. > And I think I'll revert the net_addr2ip() change too since it's probably > the same reason :) > > When linking imap binary, does it include -Wl,--export-dynamic option > somewhere in the gcc line? no. > diff -u -r1.33 main.c > --- main.c 14 May 2003 18:23:04 -0000 1.33 > +++ main.c 21 May 2003 09:35:06 -0000 > @@ -10,6 +10,7 @@ > #include "module-dir.h" > #include "mail-storage.h" > #include "commands.h" > +#include "drac.c" Cheers. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From mem@mv.mv.com Thu May 22 18:25:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BF27F238C6; Thu, 22 May 2003 18:25:27 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 6605A23887 for ; Thu, 22 May 2003 18:24:53 +0300 (EEST) Received: (qmail 3886 invoked by uid 101); 22 May 2003 11:24:31 -0400 From: "Mark E. Mallett" Date: Thu, 22 May 2003 11:24:30 -0400 To: dovecot@procontrol.fi Message-ID: <20030522152430.GP23209@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] possible dovecot problem (fwd) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 15:25:28 -0000 X-UID: 800 Status: O Content-Length: 6649 I'm just forwarding this verbatim from somebody who works here. Comments ? mm ----- Forwarded message from Dave Chamberlain ----- > Subject: possible dovecot problem > From: "Dave Chamberlain" > Date: Tue, 20 May 2003 21:29:48 -0400 (EDT) > To: mem@mv.mv.com (Mark E. Mallett) > > Ok, I'm kind of confused at what dovecot's imap implementation is doing. > > I seem to be spending more time than I need to correctly decipher the headers of > email messages. > > I have included here the text from 7.4.2 as it explains the response from a > fetch of an ENVELOPE. The last paragraph specifies that the FROM, SENDER > and REPLYTO fields cannot be nil because some of them must be present per > RFC822 and the IMAP spec will default values. I have many examples where > this is not the case, where the fetch of the envelope is returning NIL for > some of these values. > > In the example below, the message shows that the from, replyto and sender > are all set to jaentc@aukware.com (ok, a spelling error, but that was her > typing it in wrong). The next field after those three is NIL, that is the > TO line (more of my text after the IMAP conversation) > > a uid fetch 902 ENVELOPE > * 113 EXISTS > * 1 RECENT > * 104 FETCH (UID 902 ENVELOPE ("Tue, 20 May 2003 16:05:04 -0500" "From A Friend: > 'TheWMURChannel.com - News - Law Raises Age Children Must Be In Seat Restraints'" > (("Janet" NIL "jaentc" "aukware.com")) > (("Janet" NIL "jaentc" "aukware.com")) > (("Janet" NIL "jaentc" "aukware.com")) NIL NIL NIL NIL > "<200305202105.h4KL5xo20860@qbert.ibsys.com>")) > > Following is the complete header from the message. There is a valid To address > supplied, and it is in one of the allowed formats. I would have thought that > possibly it was the format that was causing the problem. I first theorized that > it didn't understand the emailaddress (personalname) format. However, the > From field is in that format, and was correctly picked up (notice that "Janet" > exists above as the Personal name, so it did understand that format). > > I have found multple cases where the FROM was NIL, the SUBJECT was NIL and > the TO is NIL, yet when looking at the header they are visible. > > This is causing problems with more than just my things, OE is having a problem > with it as well. > > > > > >From jaentc@aukware.com Tue May 20 21:26:43 2003 UTC > Received: (qmail 24772 invoked from network); 20 May 2003 17:52:17 -0400 > Received: from iridium.mv.net (HELO mv.mv.com) (qmailr@199.125.85.17) > by mercury.mv.net with SMTP; 20 May 2003 17:52:17 -0400 > X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 > local-name mercury.mv.net > Received: (qmail 21564 invoked by uid 134); 20 May 2003 17:26:53 -0400 > Delivered-To: davec@mv.com > Received: (qmail 3533 invoked from network); 20 May 2003 17:06:26 -0400 > Received: from qbert.ibsys.com (66.187.197.24) > by iridium.mv.net with SMTP; 20 May 2003 17:06:26 -0400 > X-Peer-Info: remote-ip 66.187.197.24 local-ip 199.125.85.17 > local-name iridium.mv.net > Received: from 10.0.0.24 (cfusion3.ibsys.com [10.3.0.53]) > by qbert.ibsys.com (Switch-2.1.0/Switch-2.1.0) with ESMTP id h4KL5xo20860 > for Tue, 20 May 2003 16:05:59 -0500 (CDT) > Message-Id: <200305202105.h4KL5xo20860@qbert.ibsys.com> > Content-type: text/plain > Date: Tue, 20 May 2003 16:05:04 -0500 > From: jaentc@aukware.com (Janet) > Subject: From A Friend: 'TheWMURChannel.com - News - Law Raises Age Children Must Be > In Seat Restraints' > To: davec@mv.com (Dave) > > > Section 7.4.2 > > ENVELOPE > A parenthesized list that describes the envelope structure of a > message. This is computed by the server by parsing the > [RFC-2822] header into the component parts, defaulting various > fields as necessary. > > The fields of the envelope structure are in the following > order: date, subject, from, sender, reply-to, to, cc, bcc, > in-reply-to, and message-id. The date, subject, in-reply-to, > and message-id fields are strings. The from, sender, reply-to, > to, cc, and bcc fields are parenthesized lists of address > structures. > > An address structure is a parenthesized list that describes an > electronic mail address. The fields of an address structure > are in the following order: personal name, [SMTP] > at-domain-list (source route), mailbox name, and host name. > > [RFC-2822] group syntax is indicated by a special form of > address structure in which the host name field is NIL. If the > mailbox name field is also NIL, this is an end of group marker > (semi-colon in RFC 822 syntax). If the mailbox name field is > non-NIL, this is a start of group marker, and the mailbox name > field holds the group name phrase. > > If the Date, Subject, In-Reply-To, and Message-ID header lines > are absent in the [RFC-2822] header, the corresponding member > of the envelope is NIL; if these header lines are present but > empty the corresponding member of the envelope is the empty > string. > > Note: some servers may return a NIL envelope member in the > "present but empty" case. Clients SHOULD treat NIL and > empty string as identical. > > Note: [RFC-2822] requires that all messages have a valid > Date header. Therefore, the date member in the envelope can > not be NIL or the empty string. > > Note: [RFC-2822] requires that the In-Reply-To and > Message-ID headers, if present, have non-empty content. > Therefore, the in-reply-to and message-id members in the > envelope can not be the empty string. > > If the From, To, cc, and bcc header lines are absent in the > [RFC-2822] header, or are present but empty, the corresponding > member of the envelope is NIL. > > If the Sender or Reply-To lines are absent in the [RFC-2822] > header, or are present but empty, the server sets the > corresponding member of the envelope to be the same value as > the from member (the client is not expected to know to do > this). > > Note: [RFC-2822] requires that all messages have a valid > From header. Therefore, the from, sender, and reply-to > members in the envelope can not be NIL. ----- End forwarded message ----- From kaw@wilberforce.ac.uk Thu May 22 23:01:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8D64423865; Thu, 22 May 2003 23:01:17 +0300 (EEST) Received: from descartes.wilberforce.ac.uk (unknown [195.195.239.232]) by danu.procontrol.fi (Postfix) with ESMTP id BE0862384C for ; Thu, 22 May 2003 23:00:44 +0300 (EEST) Received: from wilberforce.ac.uk (descartes.wilberforce.ac.uk [192.168.100.3]) h4MK0OpZ012018 for ; Thu, 22 May 2003 21:00:25 +0100 Received: from 213.249.172.93 (SquirrelMail authenticated user kaw) by descartes.wilberforce.ac.uk with HTTP; Thu, 22 May 2003 21:00:25 +0100 (BST) Message-ID: <4608.213.249.172.93.1053633625.squirrel@descartes.wilberforce.ac.uk> Date: Thu, 22 May 2003 21:00:25 +0100 (BST) From: "Ken Wilson" To: X-Priority: 3 Importance: Normal X-Mailer: SquirrelMail (version 1.2.9) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-MailScanner: Found to be clean X-MailScanner-SpamScore: s X-Mailman-Approved-At: Thu, 22 May 2003 23:31:07 +0300 Subject: [Dovecot] Dovecot and SquirrelMail X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 20:01:17 -0000 X-UID: 801 Status: O Hello, Does anyone know how to get dovecot working with squirrelmail v1.4? We have an existing uw-imap setup, with mail stored in ~/mail and inboxes in /var/spool/mail/user. I've tried setting $imap_server_type = other in squirrelmail, but I do not see any mail in my inbox. This is my setting in dovecot.conf default_mail_env = maildir:~/mail/:INBOX=/var/spool/mail/%n Any help would be grealty appreciated, as I want to leave uw-imap and get the speed increases that dovecot offers. Thanks Ken All e-mail from Wilberforce College is governed by our legal disclaimer which is available at http://webmail.wilberforce.ac.uk/disclaimer.txt From lfarkas@bnap.hu Thu May 22 23:42:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9C315238C5; Thu, 22 May 2003 23:42:25 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 37E6123865 for ; Thu, 22 May 2003 23:41:53 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 2E4EE754014 for ; Thu, 22 May 2003 22:41:30 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id E5EB33EB1 for ; Thu, 22 May 2003 22:41:50 +0200 (CEST) Received: from bnap.hu (eagle.int.bppiac.hu [192.168.255.2]) by mail2.bppiac.hu (Postfix) with ESMTP id 2F1313EB0 for ; Thu, 22 May 2003 22:41:50 +0200 (CEST) Message-ID: <3ECD360D.8090604@bnap.hu> Date: Thu, 22 May 2003 22:41:49 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021218 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] Dovecot and SquirrelMail problems... References: <4608.213.249.172.93.1053633625.squirrel@descartes.wilberforce.ac.uk> In-Reply-To: <4608.213.249.172.93.1053633625.squirrel@descartes.wilberforce.ac.uk> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 20:42:25 -0000 X-UID: 802 Status: O Ken Wilson wrote: > Hello, > > Does anyone know how to get dovecot working with squirrelmail v1.4? We > have an existing uw-imap setup, with mail stored in ~/mail and inboxes in > /var/spool/mail/user. I've tried setting $imap_server_type = other in > squirrelmail, but I do not see any mail in my inbox. > > This is my setting in dovecot.conf > > default_mail_env = maildir:~/mail/:INBOX=/var/spool/mail/%n > > Any help would be grealty appreciated, as I want to leave uw-imap and get > the speed increases that dovecot offers. actualy we use it for a while, BUT we've got an erro here too. those message which has empty body (even if they has attachments), can be seen in a mailer, but it can't be seen in squirelmail (it's not even listed in the folder!!!). it's a dovecot or squirelmail bug? and it's another serious problem since the user can't understand it. any tipp? -- Levente "Si vis pacem para bellum!" From tss@iki.fi Thu May 22 23:42:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B66C9238C9; Thu, 22 May 2003 23:42:29 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E21E323866 for ; Thu, 22 May 2003 23:41:57 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id C1D885C896C6; Thu, 22 May 2003 23:41:57 +0300 (EEST) Subject: Re: [Dovecot] Dovecot and SquirrelMail From: Timo Sirainen To: Ken Wilson In-Reply-To: <4608.213.249.172.93.1053633625.squirrel@descartes.wilberforce.ac.uk> References: <4608.213.249.172.93.1053633625.squirrel@descartes.wilberforce.ac.uk> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053636117.10909.64.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 22 May 2003 23:41:57 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 20:42:30 -0000 X-UID: 803 Status: O On Thu, 2003-05-22 at 23:00, Ken Wilson wrote: > Does anyone know how to get dovecot working with squirrelmail v1.4? We > have an existing uw-imap setup, with mail stored in ~/mail and inboxes in > /var/spool/mail/user. I've tried setting $imap_server_type = other in > squirrelmail, but I do not see any mail in my inbox. > > This is my setting in dovecot.conf > > default_mail_env = maildir:~/mail/:INBOX=/var/spool/mail/%n If you were using uw-imap, you'll probably have your mails in mbox format, not maildir? If you want mixed mode mbox-INBOX / maildir-others it's not possible yet. From tss@iki.fi Fri May 23 00:12:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 04FB923866; Fri, 23 May 2003 00:12:34 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3758F23865 for ; Fri, 23 May 2003 00:12:01 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 10AA55C896C6; Fri, 23 May 2003 00:12:01 +0300 (EEST) Subject: Re: [Dovecot] possible dovecot problem (fwd) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030522152430.GP23209@iridium.mv.net> References: <20030522152430.GP23209@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053637920.10917.76.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 May 2003 00:12:00 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 21:12:34 -0000 X-UID: 804 Status: O On Thu, 2003-05-22 at 18:24, Mark E. Mallett wrote: > I'm just forwarding this verbatim from somebody who works here. > Comments ? I can't reproduce this. I tested with the headers in your mail and it gave correct result. I also compared Dovecot's and uw-imap's output for mailbox with 4600 mails, and output was pretty much the same. Maybe Dovecot is parsing the headers wrong in some conditions. Can you reproduce this in some way? The invalid envelope headers are probably cached in index file, deleting that should probably fix this for at least the old messages? From mem@mv.mv.com Fri May 23 00:33:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AA0C023866; Fri, 23 May 2003 00:33:01 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 544C22384C for ; Fri, 23 May 2003 00:32:29 +0300 (EEST) Received: (qmail 24767 invoked by uid 101); 22 May 2003 17:31:40 -0400 From: "Mark E. Mallett" Date: Thu, 22 May 2003 17:31:40 -0400 To: Timo Sirainen Subject: Re: [Dovecot] possible dovecot problem (fwd) Message-ID: <20030522213140.GI677@iridium.mv.net> References: <20030522152430.GP23209@iridium.mv.net> <1053637920.10917.76.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053637920.10917.76.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 21:33:01 -0000 X-UID: 805 Status: O On Fri, May 23, 2003 at 12:12:00AM +0300, Timo Sirainen wrote: > On Thu, 2003-05-22 at 18:24, Mark E. Mallett wrote: > > I'm just forwarding this verbatim from somebody who works here. > > Comments ? > > I can't reproduce this. I tested with the headers in your mail and it > gave correct result. I also compared Dovecot's and uw-imap's output for > mailbox with 4600 mails, and output was pretty much the same. > > Maybe Dovecot is parsing the headers wrong in some conditions. Can you > reproduce this in some way? The invalid envelope headers are probably > cached in index file, deleting that should probably fix this for at > least the old messages? Deleting the index files was the first thing I tried. Strange. mm From mem@mv.mv.com Fri May 23 01:21:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7AF08238C5; Fri, 23 May 2003 01:21:14 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id D61D023865 for ; Fri, 23 May 2003 01:20:41 +0300 (EEST) Received: (qmail 20317 invoked by uid 101); 22 May 2003 18:06:25 -0400 From: "Mark E. Mallett" Date: Thu, 22 May 2003 18:06:25 -0400 To: Timo Sirainen Subject: Re: [Dovecot] possible dovecot problem (fwd) Message-ID: <20030522220625.GL677@iridium.mv.net> References: <20030522152430.GP23209@iridium.mv.net> <1053637920.10917.76.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053637920.10917.76.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 22:21:14 -0000 X-UID: 806 Status: O Content-Length: 2699 On Fri, May 23, 2003 at 12:12:00AM +0300, Timo Sirainen wrote: > On Thu, 2003-05-22 at 18:24, Mark E. Mallett wrote: > > I'm just forwarding this verbatim from somebody who works here. > > Comments ? > > I can't reproduce this. I tested with the headers in your mail and it > gave correct result. I also compared Dovecot's and uw-imap's output for > mailbox with 4600 mails, and output was pretty much the same. > > Maybe Dovecot is parsing the headers wrong in some conditions. Can you > reproduce this in some way? The invalid envelope headers are probably > cached in index file, deleting that should probably fix this for at > least the old messages? I was able to reproduce it without any effort. First let me ask the obvious thing.. when you filed the sample message from my original note, did you spot the fact that the "Subject" line was split into two lines? You have to recombine the two lines into one. (Sorry about that). Also, remove the "> " characters and, I guess, save the "From " line at the beginning (although I just tested it and it doesn't matter if it's there or not). Here's what I did to reproduce it: On the target system: % rm -rf Maildir % maildirmake Maildir % cp bad.tmp Maildir/cur/0000.1111.2222.bad "bad.tmp" is a copy of that message that I forwarded, starting with the "From" line, or with the first Received line, doesn't matter. Body of the message doesn't matter either; I kept all the RFC stuff as the body. Now from the source system (and here is a cut and paste of what I just did, except that I changed the username/password): % telnet target-system imap Connected to target-system Escape character is '^]'. * OK dovecot ready. 1 login user password 1 OK Logged in. 2 select "INBOX" * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 1 EXISTS * 0 RECENT * OK [UNSEEN 1] First unseen. * OK [UIDVALIDITY 1053640171] UIDs valid * OK [UIDNEXT 2] Predicted next UID 2 OK [READ-WRITE] Select completed. 3 fetch 1 ENVELOPE * 1 FETCH (ENVELOPE ("Tue, 20 May 2003 16:05:04 -0500" "From A Friend: 'TheWMURCh annel.com - News - Law Raises Age Children Must Be In Seat Restraints'" (("Janet " NIL "jaentc" "aukware.com")) (("Janet" NIL "jaentc" "aukware.com")) (("Janet" N IL "jaentc" "aukware.com")) NIL NIL NIL NIL "<200305202105.h4KL5xo20860@qbert.ibs ys.com>")) 3 OK Fetch completed. 4 logout * BYE Logging out 4 OK Logout completed. Connection closed by foreign host. This seems to exactly duplicate the report.. Note: the FETCH response above is wrapped. Is there something I have got set wrong? mm From tss@iki.fi Fri May 23 02:04:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A5909238C5; Fri, 23 May 2003 02:04:04 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D480923865 for ; Fri, 23 May 2003 02:03:32 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id A521C5C896C6; Fri, 23 May 2003 02:03:32 +0300 (EEST) Subject: Re: [Dovecot] possible dovecot problem (fwd) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030522220625.GL677@iridium.mv.net> References: <20030522152430.GP23209@iridium.mv.net> <20030522220625.GL677@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053644612.10918.99.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 May 2003 02:03:32 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 23:04:04 -0000 X-UID: 807 Status: O Content-Length: 1397 On Fri, 2003-05-23 at 01:06, Mark E. Mallett wrote: > > Maybe Dovecot is parsing the headers wrong in some conditions. Can you > > reproduce this in some way? The invalid envelope headers are probably > > cached in index file, deleting that should probably fix this for at > > least the old messages? > > I was able to reproduce it without any effort. Ah, yes. The "end of header" was treated as duplicate of last header except with empty value. Hmm. Maybe I should also handle differently the cases when same header occurs multiple times.. Or maybe not, RFC2822 doesn't allow them more than once anyway.. Index: message-parser.c =================================================================== RCS file: /home/cvs/dovecot/src/lib-mail/message-parser.c,v retrieving revision 1.39 diff -u -r1.39 message-parser.c --- message-parser.c 3 May 2003 17:28:20 -0000 1.39 +++ message-parser.c 22 May 2003 23:00:04 -0000 @@ -680,7 +680,8 @@ if (size == 0 || (size == 1 && msg[0] == '\r')) { /* end of headers */ line->eoh = TRUE; - line->name_len = line->value_len = 0; + line->name_len = line->value_len = line->full_value_len = 0; + line->name = ""; line->value = line->full_value = NULL; } else if (line->continued) { line->value = msg; line->value_len = size; From mem@mv.mv.com Fri May 23 04:31:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 49BB7238C5; Fri, 23 May 2003 04:31:10 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 340EF23866 for ; Fri, 23 May 2003 04:30:33 +0300 (EEST) Received: (qmail 8124 invoked by uid 101); 22 May 2003 21:30:32 -0400 From: "Mark E. Mallett" Date: Thu, 22 May 2003 21:30:32 -0400 To: Timo Sirainen Subject: Re: [Dovecot] possible dovecot problem (fwd) Message-ID: <20030523013032.GA5162@iridium.mv.net> References: <20030522152430.GP23209@iridium.mv.net> <20030522220625.GL677@iridium.mv.net> <1053644612.10918.99.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053644612.10918.99.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 May 2003 01:31:10 -0000 X-UID: 808 Status: O On Fri, May 23, 2003 at 02:03:32AM +0300, Timo Sirainen wrote: > On Fri, 2003-05-23 at 01:06, Mark E. Mallett wrote: > > > Maybe Dovecot is parsing the headers wrong in some conditions. Can you > > > reproduce this in some way? The invalid envelope headers are probably > > > cached in index file, deleting that should probably fix this for at > > > least the old messages? > > > > I was able to reproduce it without any effort. > > Ah, yes. The "end of header" was treated as duplicate of last header > except with empty value. > > Hmm. Maybe I should also handle differently the cases when same header > occurs multiple times.. Or maybe not, RFC2822 doesn't allow them more > than once anyway.. I don't follow- what duplicates? It looks like a perfectly ordinary header to me, what am I missing? mm From tss@iki.fi Fri May 23 12:20:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3AE2B238CB; Fri, 23 May 2003 12:20:00 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A259223866 for ; Fri, 23 May 2003 12:19:56 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 6CFFD5C896C6; Fri, 23 May 2003 12:19:56 +0300 (EEST) Subject: Re: [Dovecot] possible dovecot problem (fwd) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030523013032.GA5162@iridium.mv.net> References: <20030522152430.GP23209@iridium.mv.net> <1053644612.10918.99.camel@hurina> <20030523013032.GA5162@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053681595.10918.120.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 May 2003 12:19:56 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 May 2003 09:20:00 -0000 X-UID: 809 Status: O On Fri, 2003-05-23 at 04:30, Mark E. Mallett wrote: > > Ah, yes. The "end of header" was treated as duplicate of last header > > except with empty value. > I don't follow- what duplicates? It looks like a perfectly ordinary > header to me, what am I missing? Not real duplicate. But Dovecot was treating like the last header always appeared twice, but second time without value. Like: .. headers .. To: foo@bar To: .. body .. From bob@cemetery.homeunix.org Fri May 23 17:23:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8BD2C238CB; Fri, 23 May 2003 17:23:20 +0300 (EEST) Received: from cemetery.homeunix.org (joeldriver.plus.com [212.159.87.165]) by danu.procontrol.fi (Postfix) with ESMTP id 3911723865 for ; Fri, 23 May 2003 17:23:16 +0300 (EEST) Received: from snot (snot.flatnet [192.168.0.8]) by cemetery.homeunix.org (8.12.9/8.12.6) with SMTP id h4NEN7r4019999 for ; Fri, 23 May 2003 15:23:07 +0100 (BST) Date: Fri, 23 May 2003 15:23:03 +0100 From: Andrew Basterfield To: dovecot@procontrol.fi Message-Id: <20030523152303.5644f895.bob@cemetery.homeunix.org> X-Mailer: Sylpheed version 0.8.11claws (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.TgS9Hcr3I3?Yl)" Subject: [Dovecot] Dovecot in OpenBSD ports system X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 May 2003 14:23:20 -0000 X-UID: 810 Status: O --=.TgS9Hcr3I3?Yl) Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi I have put together dovecot port for the OpenBSD ports system. The port has yet to be submitted, but is finished awaiting testing from a wider audience. I have been using dovecot successfully on OpenBSD/sparc64 -current for months now with no problems. Would you recommend including the CR+LF patch? http://cemetery.homeunix.org/OpenBSD/dovecot.tar.gz -- http://cemetery.homeunix.org --=.TgS9Hcr3I3?Yl) Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+zi7Lj3ZMDwYLJGARAt/PAJ4+Of5NNHUVsCVpxBD1SxNBvD70mgCfeml8 X626asWtidWLSWokMexzepw= =yK6L -----END PGP SIGNATURE----- --=.TgS9Hcr3I3?Yl)-- From mem@mv.mv.com Fri May 23 18:20:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A470F238CB; Fri, 23 May 2003 18:20:56 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id DFF3F23866 for ; Fri, 23 May 2003 18:20:48 +0300 (EEST) Received: (qmail 17954 invoked by uid 101); 23 May 2003 11:20:44 -0400 From: "Mark E. Mallett" Date: Fri, 23 May 2003 11:20:44 -0400 To: Timo Sirainen Subject: Re: [Dovecot] possible dovecot problem (fwd) Message-ID: <20030523152044.GD8005@iridium.mv.net> References: <20030522152430.GP23209@iridium.mv.net> <1053644612.10918.99.camel@hurina> <20030523013032.GA5162@iridium.mv.net> <1053681595.10918.120.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053681595.10918.120.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 May 2003 15:20:57 -0000 X-UID: 811 Status: O On Fri, May 23, 2003 at 12:19:56PM +0300, Timo Sirainen wrote: > On Fri, 2003-05-23 at 04:30, Mark E. Mallett wrote: > > > Ah, yes. The "end of header" was treated as duplicate of last header > > > except with empty value. > > I don't follow- what duplicates? It looks like a perfectly ordinary > > header to me, what am I missing? > > Not real duplicate. But Dovecot was treating like the last header always > appeared twice, but second time without value. Like: > > .. headers .. > To: foo@bar > To: > > .. body .. Oh, I see what you mean. So if it happened that "To" came last, there was a problem- but if something innocuous was last, there was not? Interesting. The patch does appear to fix the reported issue. BTW when I first applied the patch, the imap server hung trying to fetch the body. Cleared the .imap* files and this did not happen again. mm From mike@skew.org Mon May 26 08:33:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8F8D923896; Mon, 26 May 2003 08:33:04 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by danu.procontrol.fi (Postfix) with ESMTP id B157B2387F for ; Mon, 26 May 2003 08:33:01 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.6p2/8.12.7) with ESMTP id h4Q5X2CZ035304 for ; Sun, 25 May 2003 23:33:02 -0600 (MDT) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.6p2/8.12.7/Submit) id h4Q5X2Po035303 for dovecot@procontrol.fi; Sun, 25 May 2003 23:33:02 -0600 (MDT) From: Mike Brown Message-Id: <200305260533.h4Q5X2Po035303@chilled.skew.org> To: dovecot@procontrol.fi Date: Sun, 25 May 2003 23:33:02 -0600 (MDT) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, hits=0.8 required=5.0 tests=SPAM_PHRASE_00_01 version=2.43 Subject: [Dovecot] pop3 timeout when sending first message X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2003 05:33:04 -0000 X-UID: 812 Status: O Content-Length: 1085 I'm using FreeBSD 4.8 with dovecot from the ports collection. First I am first trying to fetch mail via POP3. Clients are both OE6 and Mozilla. Both exhibit the same behavior: the client says it is receiving message 1 of (however many), but nothing happens; no message data is transferred. Mozilla seems to keep waiting forever, but OE6 times out after 60 seconds and lets me stop waiting. I tried both with and without SSL. Authentication works fine in either case, but the mail xfer just doesn't work. There's nothing of interest in the logs. By the way, there seems to be no mention of what syslog facility is used by dovecot. What is it? I'm avoiding syslog for now and writing to specific files. In the info log I get this when the client logs in: pop3-login: May 25 23:10:44 Info: Login: mike [my.IP.addr.here] In the other log I get this when OE6 disconnects, following the timeout and prompting me to wait or stop: pop3-login: May 25 23:11:53 Warning: SSL_read() syscall failed: EOF [216.241.45.45] I'm not sure what else to do to try to debug this... Help? -Mike From jens.laas@data.slu.se Mon May 26 11:46:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DAD6F23896; Mon, 26 May 2003 11:46:57 +0300 (EEST) Received: from mail1.slu.se (mail1.slu.se [130.238.96.11]) by danu.procontrol.fi (Postfix) with ESMTP id 47EF323865 for ; Mon, 26 May 2003 11:46:55 +0300 (EEST) Received: from jlaas2.data.slu.se (jlaas2.data.slu.se [130.238.98.68]) by mail1.slu.se (8.9.3p2/8.9.3) with ESMTP id KAA10859 for ; Mon, 26 May 2003 10:46:50 +0200 Date: Mon, 26 May 2003 10:46:55 +0200 (CEST) From: Jens Laas X-X-Sender: jensl@jlaas2.data.slu.se To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT X-Mailman-Approved-At: Mon, 26 May 2003 13:19:21 +0300 Subject: [Dovecot] logging in POP3 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2003 08:46:58 -0000 X-UID: 813 Status: O Content-Length: 2165 I have begun testing dovecot as (primarly) a POP replacement. So far the only lacking bit is the logging. It would be great if pop3 could log a line at client exit with the following info: (wishlist follows :) o nr deleted mails + total bytes deletes o nr mails left in spool + bytes left o time spent o indication if TLS was used or not If you would lika generic logging API I have one you can use: (Only tested under Linux. It is GPL) http://robur.slu.se/jensl/jellog.tar.gz Excerpt from headerfile: /* Functions for setting the destination of logger_facilities. - filename is the file to append log entries to. If file does not exist it is created with umask 0666 (modified as usual by open() call). - filestream is the FILE stream to use. - fd is the filedescriptor to use. - priority is the syslog priority to use as used in the syslog() call. - timestamp is used as a boolean. True means begin line with a timestamp. */ int logger_set_file(logger_facility facility, char *filename, int timestamp); int logger_set_iostream(logger_facility facility, FILE *filestream, int timestamp); int logger_set_fd(logger_facility facility, int fd, int timestamp); int logger_set_syslog(logger_facility facility, int priority, int timestamp); /* fmt = [sdt]+ s = string d = integer t = time-string Example: logger( LOGGER_ERROR, "sds", "Errorcode: ", -1234, ". Aborting!"); See end of logger.c for more examples. */ int logger(logger_facility facility, char *fmt, ...); Dovecot looks great! Just thought I'd send you this wishlist. If you could point me to the right places in the code I am willing to help adding this myself. Cheers, Jens Låås ----------------------------------------------------------------------- 'This mail automatically becomes portable when carried.' ----------------------------------------------------------------------- Jens Låås Email: jens.laas@data.slu.se Department of Computer Services, SLU Phone: +46 18 67 35 15 Vindbrovägen 1 P.O. Box 7079 S-750 07 Uppsala SWEDEN ----------------------------------------------------------------------- From rao231@tid.es Mon May 26 21:01:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3BFF023896; Mon, 26 May 2003 21:01:24 +0300 (EEST) Received: from localhost.localdomain (25.Red-80-34-244.pooles.rima-tde.net [80.34.244.25]) by danu.procontrol.fi (Postfix) with ESMTP id EC8A62387F for ; Mon, 26 May 2003 21:01:19 +0300 (EEST) Received: from tid.es (unknown [127.0.0.1]) by localhost.localdomain (Postfix) with ESMTP id A1C06F6BFF for ; Mon, 26 May 2003 14:09:00 -0400 (EDT) Message-ID: <3ED25809.9000109@tid.es> Date: Mon, 26 May 2003 20:08:09 +0200 From: Ruben Alvarez User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020830 X-Accept-Language: en-us, en, es-es MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: [Dovecot] Why dovecot is not multi-threaded? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2003 18:01:24 -0000 X-UID: 814 Status: O Hi, I'm looking for the most efficient OpenSource IMAP server and I am told that Dovecot Server is a good solution. Anyway, I have inspected the source code and I think Dovecot is not a multi-threaded server, but a forked server. I am surprised about this issue, because threads perfomance should be higher than creating a new process for each connection....I suppose. So, Could anybody tell me why Dovecot was not designed with multi-threaded support?. Perhaps, threads are not a good solution for Dovecot but I am very interested in which are the reasons for this. By the other hand, ¿do anybody know any multi-threaded OpenSource IMAP server?. I would like test performance of Dovecot server versus a multi-threaded one. Very thanks. From tss@iki.fi Mon May 26 21:14:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CD575238B6; Mon, 26 May 2003 21:14:19 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9E7AE23896 for ; Mon, 26 May 2003 21:14:14 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 5AFEF5C896C6; Mon, 26 May 2003 21:14:14 +0300 (EEST) Subject: Re: [Dovecot] Dovecot in OpenBSD ports system From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030523152303.5644f895.bob@cemetery.homeunix.org> References: <20030523152303.5644f895.bob@cemetery.homeunix.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053972854.2849.37.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 26 May 2003 21:14:14 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2003 18:14:20 -0000 X-UID: 815 Status: O On Fri, 2003-05-23 at 17:23, Andrew Basterfield wrote: > Hi > > I have put together dovecot port for the OpenBSD ports system. The port > has yet to be submitted, but is finished awaiting testing from a wider > audience. I have been using dovecot successfully on OpenBSD/sparc64 > -current for months now with no problems. > > Would you recommend including the CR+LF patch? Actually I'd recommend 0.99.10 if I just could get it released.. :) There's -test6 now at http://dovecot.procontrol.fi/test/ which looks like it's working fine. Maybe just a few last changes and that'd be it. From tss@iki.fi Mon May 26 21:15:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 97017238C7; Mon, 26 May 2003 21:15:53 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 53B1D238B6 for ; Mon, 26 May 2003 21:15:50 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 2DD995C896C6; Mon, 26 May 2003 21:15:50 +0300 (EEST) Subject: Re: [Dovecot] pop3 timeout when sending first message From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <200305260533.h4Q5X2Po035303@chilled.skew.org> References: <200305260533.h4Q5X2Po035303@chilled.skew.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053972949.3131.40.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 26 May 2003 21:15:50 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2003 18:15:53 -0000 X-UID: 816 Status: O On Mon, 2003-05-26 at 08:33, Mike Brown wrote: > I'm using FreeBSD 4.8 with dovecot from the ports collection. > > First I am first trying to fetch mail via POP3. Clients are both OE6 and > Mozilla. Both exhibit the same behavior: the client says it is receiving > message 1 of (however many), but nothing happens; no message data is > transferred. Mozilla seems to keep waiting forever, but OE6 times out after 60 > seconds and lets me stop waiting. Check the POP3 traffic that they're talking. That would tell at least something. http://dovecot.procontrol.fi/bugreport.html#sniffing > There's nothing of interest in the logs. By the way, there seems to be no > mention of what syslog facility is used by dovecot. What is it? I'm avoiding > syslog for now and writing to specific files. It's mail. From tss@iki.fi Mon May 26 21:29:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3AF4D238D6; Mon, 26 May 2003 21:29:25 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 89E8D23865 for ; Mon, 26 May 2003 21:29:23 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 18B975C896C6; Mon, 26 May 2003 21:29:23 +0300 (EEST) Subject: Re: [Dovecot] logging in POP3 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1053973762.2849.55.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 26 May 2003 21:29:22 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2003 18:29:25 -0000 X-UID: 817 Status: O On Mon, 2003-05-26 at 11:46, Jens Laas wrote: > So far the only lacking bit is the logging. It's kind of in TODO list. > It would be great if pop3 could log a line at client exit with the > following info: (wishlist follows :) > > o nr deleted mails + total bytes deletes > o nr mails left in spool + bytes left > o time spent These could be done with small modifications to src/pop3/*.c. cmd_quit() deletes the mails so you could calculate the deleted/left mails there. For time spent you'd just add some variable which gets set to current time at startup. Hmm. It would be nice if this all was possible with plugins. I'd rather not add all kinds of logging hooks all over.. Have to think about this. > o indication if TLS was used or not This isn't known by pop3 process at all currently.. It could be transferred from pop3-login, but that'd require changes to quite a lot of places. > If you would lika generic logging API I have one you can use: I think I have good enough logging API for now :) From tss@iki.fi Mon May 26 21:49:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7969723993; Mon, 26 May 2003 21:49:48 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E077F23865 for ; Mon, 26 May 2003 21:49:46 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id A184F5C896C6; Mon, 26 May 2003 21:49:46 +0300 (EEST) Subject: Re: [Dovecot] Why dovecot is not multi-threaded? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3ED25809.9000109@tid.es> References: <3ED25809.9000109@tid.es> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Organization: Message-Id: <1053974986.3131.76.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 26 May 2003 21:49:46 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2003 18:49:48 -0000 X-UID: 818 Status: O Content-Length: 1954 On Mon, 2003-05-26 at 21:08, Ruben Alvarez wrote: > I'm looking for the most efficient OpenSource IMAP server > and I am told that Dovecot Server is a good solution. >=20 > Anyway, I have inspected the source code and I think Dovecot is not a > multi-threaded server, but a forked server. I am surprised about this > issue, because threads perfomance should be higher than creating a new > process for each connection....I suppose. Well, I actually already replied privately to this when it was sent to imap-list, but here's a more complete answer for everyone: Threads are useful when you have a lot of data to share across the threads. For anything else they're not worth the trouble and can actually be even slower than processes in some cases because of extra locking it needs. In UNIX that is. In Windows processes are a lot heavier than threads. Pretty much the only case in IMAP server when you want to share data is when a mailbox is opened multiple times by different connections. Dovecot already shares the data in that case because it's all in the index files that are mmap()ed. Processes also provide safety. You can't accidentally read someone else's mails because of a bug in the server. Or if you happen to learn how to crash the server, you can kill only your own connection. With threaded server you would have killed everyone's connections. > By the other hand, =BFdo anybody know any multi-threaded OpenSource IMAP > server?. I would like test performance of Dovecot server versus a > multi-threaded one. Biggest performance differences between IMAP servers is how smartly they store the message data and how smartly they're able to read it in a way that IMAP clients want them. CPU usage is pretty irrelevant in IMAP servers. It's I/O that is going to be your bottleneck. I optimize CPU usage only when it's clearly showing somewhere (SEARCH BODY is a lot slower than grepping the files, I'd have to figure out why some day). From bob@cemetery.homeunix.org Tue May 27 04:56:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A49F823993; Tue, 27 May 2003 04:56:17 +0300 (EEST) Received: from cemetery.homeunix.org (joeldriver.plus.com [212.159.87.165]) by danu.procontrol.fi (Postfix) with ESMTP id 53B74238C7 for ; Tue, 27 May 2003 04:56:12 +0300 (EEST) Received: from [192.168.0.8] (snot.flatnet [192.168.0.8]) by cemetery.homeunix.org (8.12.9/8.12.6) with ESMTP id h4R1u2g6025882 for ; Tue, 27 May 2003 02:56:02 +0100 (BST) Date: Tue, 27 May 2003 02:56:02 +0100 From: Andrew Basterfield To: dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot in OpenBSD ports system Message-ID: <27400000.1054000562@[192.168.0.8]> In-Reply-To: <1053972854.2849.37.camel@hurina> References: <20030523152303.5644f895.bob@cemetery.homeunix.org> <1053972854.2849.37.camel@hurina> X-Mailer: Mulberry/3.0.3 (Linux/x86) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 01:56:17 -0000 X-UID: 819 Status: O Content-Length: 1168 --On Monday, May 26, 2003 21:14:14 +0300 Timo Sirainen wrote: > On Fri, 2003-05-23 at 17:23, Andrew Basterfield wrote: >> Hi >> >> I have put together dovecot port for the OpenBSD ports system. The port >> has yet to be submitted, but is finished awaiting testing from a wider >> audience. I have been using dovecot successfully on OpenBSD/sparc64 >> -current for months now with no problems. >> >> Would you recommend including the CR+LF patch? > > Actually I'd recommend 0.99.10 if I just could get it released.. :) > There's -test6 now at http://dovecot.procontrol.fi/test/ which looks > like it's working fine. Maybe just a few last changes and that'd be it. I've run into some probelms with maildirs. I have been testing by dumping my email archives into the server and I have come across 'Warning: Inconsistency - Index was rebuilt while we had it open' leading to the the wrong body being returned when the header is selected. Eventually the child server process dies. I have had no problems with mboxes Should I wait for the next release and try again? Is this problem limited to my plaform? The client was sylpheed-claws. --Andrew From mike@skew.org Tue May 27 05:03:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 029DD23998; Tue, 27 May 2003 05:03:47 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by danu.procontrol.fi (Postfix) with ESMTP id B5D15238C7 for ; Tue, 27 May 2003 05:03:42 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.6p2/8.12.7) with ESMTP id h4R23fCZ040123; Mon, 26 May 2003 20:03:41 -0600 (MDT) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.6p2/8.12.7/Submit) id h4R23fQH040122; Mon, 26 May 2003 20:03:41 -0600 (MDT) From: Mike Brown Message-Id: <200305270203.h4R23fQH040122@chilled.skew.org> Subject: Re: [Dovecot] pop3 timeout when sending first message In-Reply-To: <1053972949.3131.40.camel@hurina> "from Timo Sirainen at May 26, 2003 09:15:50 pm" To: Timo Sirainen Date: Mon, 26 May 2003 20:03:41 -0600 (MDT) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, hits=-0.8 required=5.0 tests=IN_REP_TO,QUOTED_EMAIL_TEXT,SPAM_PHRASE_00_01 version=2.43 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 02:03:47 -0000 X-UID: 820 Status: O Content-Length: 1200 Timo Sirainen wrote: > On Mon, 2003-05-26 at 08:33, Mike Brown wrote: > > I'm using FreeBSD 4.8 with dovecot from the ports collection. > > > > First I am first trying to fetch mail via POP3. Clients are both OE6 and > > Mozilla. Both exhibit the same behavior: the client says it is receiving > > message 1 of (however many), but nothing happens; no message data is > > transferred. Mozilla seems to keep waiting forever, but OE6 times out after 60 > > seconds and lets me stop waiting. > > Check the POP3 traffic that they're talking. That would tell at least > something. http://dovecot.procontrol.fi/bugreport.html#sniffing tcpdump reveals that the first message does get sent. You can examine the tcpdump output here (I edited out my password): http://skew.org/~mike/pop3-moz-tcpdump http://skew.org/~mike/pop3-oe6-tcpdump Is this helpful? > > There's nothing of interest in the logs. By the way, there seems to be no > > mention of what syslog facility is used by dovecot. What is it? I'm avoiding > > syslog for now and writing to specific files. > > It's mail. > Hmm, OK. I'd rather keep my dovecot log separate from my MTA log, so I'll continue with my current setup. Thanks! From tss@iki.fi Tue May 27 10:11:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 04CC3238D6; Tue, 27 May 2003 10:11:55 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 30F1023865 for ; Tue, 27 May 2003 10:11:52 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id A79B65C896C6; Tue, 27 May 2003 10:11:48 +0300 (EEST) Subject: Re: [Dovecot] pop3 timeout when sending first message From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <200305270203.h4R23fQH040122@chilled.skew.org> References: <200305270203.h4R23fQH040122@chilled.skew.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054019508.2849.166.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 27 May 2003 10:11:48 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 07:11:55 -0000 X-UID: 821 Status: O On Tue, 2003-05-27 at 05:03, Mike Brown wrote: > You can examine the tcpdump output here (I edited out my password): > > http://skew.org/~mike/pop3-moz-tcpdump > http://skew.org/~mike/pop3-oe6-tcpdump > > Is this helpful? Well, I think you broke them while editing :) But I think it's because your message doesn't end with line feed. Try this patch: Index: commands.c =================================================================== RCS file: /home/cvs/dovecot/src/pop3/commands.c,v retrieving revision 1.7 diff -u -r1.7 commands.c --- commands.c 1 Feb 2003 11:44:40 -0000 1.7 +++ commands.c 27 May 2003 07:10:27 -0000 @@ -264,6 +264,11 @@ i_stream_skip(input, i); } + + if (last != '\n') { + /* didn't end with CRLF */ + (void)o_stream_send(output, "\r\n", 2); + } } static void fetch(struct client *client, unsigned int msgnum, From mike@skew.org Tue May 27 10:22:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 431AA238D6; Tue, 27 May 2003 10:22:16 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by danu.procontrol.fi (Postfix) with ESMTP id 3C16F238C7 for ; Tue, 27 May 2003 10:22:12 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.6p2/8.12.7) with ESMTP id h4R7MBCZ042199; Tue, 27 May 2003 01:22:11 -0600 (MDT) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.6p2/8.12.7/Submit) id h4R7MBNB042198; Tue, 27 May 2003 01:22:11 -0600 (MDT) From: Mike Brown Message-Id: <200305270722.h4R7MBNB042198@chilled.skew.org> Subject: Re: [Dovecot] pop3 timeout when sending first message In-Reply-To: <1054019508.2849.166.camel@hurina> "from Timo Sirainen at May 27, 2003 10:11:48 am" To: Timo Sirainen Date: Tue, 27 May 2003 01:22:11 -0600 (MDT) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, hits=-0.8 required=5.0 tests=IN_REP_TO,QUOTED_EMAIL_TEXT,SPAM_PHRASE_00_01 version=2.43 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 07:22:16 -0000 X-UID: 822 Status: O Timo Sirainen wrote: > Well, I think you broke them while editing :) But I think it's because > your message doesn't end with line feed. Try this patch: > > Index: commands.c > =================================================================== > RCS file: /home/cvs/dovecot/src/pop3/commands.c,v > retrieving revision 1.7 > diff -u -r1.7 commands.c > --- commands.c 1 Feb 2003 11:44:40 -0000 1.7 > +++ commands.c 27 May 2003 07:10:27 -0000 > @@ -264,6 +264,11 @@ > > i_stream_skip(input, i); > } > + > + if (last != '\n') { > + /* didn't end with CRLF */ > + (void)o_stream_send(output, "\r\n", 2); > + } > } > > static void fetch(struct client *client, unsigned int msgnum, That worked! The problem is solved! Thanks!! -Mike From maikel@ladot.com Tue May 27 10:43:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E58A323896; Tue, 27 May 2003 10:43:22 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 3235E23865 for ; Tue, 27 May 2003 10:43:20 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h4R7t5MN079963 for ; Tue, 27 May 2003 09:55:05 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Tue, 27 May 2003 09:43:05 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F2240A@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'Dovecot (E-mail)'" Date: Tue, 27 May 2003 09:43:04 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C32423.9B247960" X-Spam-Status: No, hits=1.3 required=5.0 tests=HTML_20_30,HTML_MESSAGE version=2.55 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) Subject: [Dovecot] Postgres "issue" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 07:43:23 -0000 X-UID: 823 Status: O Content-Length: 2694 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C32423.9B247960 Content-Type: text/plain Dear list, I have a small issue with dovecot talking to a postgresql server: If my postgres server get restarted, dovecot fails to reconnect to the postgres server. I run dovecot 0.99.9.1 (which is actually a cvs version of dovecot, of may 9 2003) I have the same postgres version for the server as I use for the libraries. Is it hard to get auto-reconnect to work? Kind regards, Maikel Verheijen Ps: the log message I get is this: May 22 17:33:01 testlfw3 dovecot-auth: PGSQL: Query "SELECT password FROM aliases WHERE alias = 'maikel@test.com' AND password != ''" failed: FATAL 1: This connection has been terminated by the administrator. server closed the connection unexpectedly ^IThis probably means the server terminated abnormally ^Ibefore or while processing the request. Which probably describes it all :) ------_=_NextPart_001_01C32423.9B247960 Content-Type: text/html Content-Transfer-Encoding: quoted-printable Postgres "issue"

Dear list,


I have a small issue with dovecot talking to a = postgresql server:

If my postgres server get restarted, dovecot fails to = reconnect to the postgres server.

I run dovecot 0.99.9.1 (which is actually a cvs = version of dovecot, of may 9 2003)

I have the same postgres version for the server as I = use for the libraries.

Is it hard to get auto-reconnect to work?


Kind regards,


Maikel Verheijen


Ps: the log message I get is this:

May 22 17:33:01 testlfw3 dovecot-auth: PGSQL: Query = "SELECT password FROM aliases WHERE alias =3D 'maikel@test.com' = AND password !=3D ''" failed: FATAL 1:  This connection has = been terminated by the administrator. server closed the connection = unexpectedly ^IThis probably means the server terminated abnormally = ^Ibefore or while processing the request.

Which probably describes it all :)

------_=_NextPart_001_01C32423.9B247960-- From seba@iq.pl Tue May 27 11:59:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A87E3238C7; Tue, 27 May 2003 11:59:49 +0300 (EEST) Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id 05A8423896 for ; Tue, 27 May 2003 11:59:47 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id 812546BCB8; Tue, 27 May 2003 11:01:33 +0200 (CEST) Date: Tue, 27 May 2003 11:01:33 +0200 From: Sebastian Pachuta To: Dovecot List Subject: Re: [Dovecot] still problem with load Message-ID: <20030527090132.GH21324@iq.pl> References: <3ECB3FB1.9040602@bnap.hu> <1053508947.1214.358.camel@hurina> <3ECB543A.1070502@bnap.hu> <1053517484.1215.386.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053517484.1215.386.camel@hurina> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 08:59:49 -0000 X-UID: 824 Status: O On Wed, May 21, 2003 at 14:44:45 +0300, Timo Sirainen wrote: > On Wed, 2003-05-21 at 13:26, Farkas Levente wrote: > > imap(lfarkas): May 21 12:20:01 Error: Corrupted index file > > /home/lfarkas/Maildir/.INBOX/.imap.index: index.next_uid (64) > > > uidlist.next_uid (63) > > Fixed in 0.99.10-test5. It was bug, not feature? :) Confirmed - got rid of these error messages. From maikel@ladot.com Tue May 27 12:50:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 94F4D238C7; Tue, 27 May 2003 12:50:27 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 2BC8923865 for ; Tue, 27 May 2003 12:50:25 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h4RA2LMN081502 for ; Tue, 27 May 2003 12:02:21 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Tue, 27 May 2003 11:50:20 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F2241E@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'Dovecot (E-mail)'" Subject: RE: [Dovecot] Postgres "issue" Date: Tue, 27 May 2003 11:50:20 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C32435.62781790" X-Spam-Status: No, hits=0.3 required=5.0 tests=HTML_40_50,HTML_FONT_COLOR_BLUE,HTML_MESSAGE, ORIGINAL_MESSAGE,PATCH_UNIFIED_DIFF version=2.55 X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 09:50:27 -0000 X-UID: 825 Status: O Content-Length: 9145 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C32435.62781790 Content-Type: text/plain Ok: a little lame to answer my own question, but I created a CRUDE patch. It does NOT check why a connection failed, it just does a PQreset, and it SEEMS to work. Kind regards, Maikel Verheijen. Ps: Timo, can something with reconnect be implemented permanently? --8<-- --- src/auth/db-pgsql.c.ORIG Tue May 27 10:06:39 2003 +++ src/auth/db-pgsql.c Tue May 27 11:16:38 2003 @@ -53,9 +53,16 @@ res = PQexec(conn->pg, query); if (PQresultStatus(res) != PGRES_TUPLES_OK) { - i_error("PGSQL: Query \"%s\" failed: %s", - query, PQresultErrorMessage(res)); - failed = TRUE; + PQreset(conn->pg); + res = PQexec(conn->pg, query); + if (PQresultStatus(res) != PGRES_TUPLES_OK) { + i_error("PGSQL: Query \"%s\" failed: %s", + query, PQresultErrorMessage(res)); + failed = TRUE; + } else { + i_error("PGSQL: Reconnected because of failure!"); + failed = FALSE; + } } else { failed = FALSE; } --8<-- -----Original Message----- From: Maikel Verheijen [mailto:maikel@ladot.com] Sent: Tuesday, May 27, 2003 9:43 AM To: 'Dovecot (E-mail)' Subject: [Dovecot] Postgres "issue" Dear list, I have a small issue with dovecot talking to a postgresql server: If my postgres server get restarted, dovecot fails to reconnect to the postgres server. I run dovecot 0.99.9.1 (which is actually a cvs version of dovecot, of may 9 2003) I have the same postgres version for the server as I use for the libraries. Is it hard to get auto-reconnect to work? Kind regards, Maikel Verheijen Ps: the log message I get is this: May 22 17:33:01 testlfw3 dovecot-auth: PGSQL: Query "SELECT password FROM aliases WHERE alias = 'maikel@test.com' AND password != ''" failed: FATAL 1: This connection has been terminated by the administrator. server closed the connection unexpectedly ^IThis probably means the server terminated abnormally ^Ibefore or while processing the request. Which probably describes it all :) ------_=_NextPart_001_01C32435.62781790 Content-Type: text/html Content-Transfer-Encoding: quoted-printable Message
Ok: a=20 little lame to answer my own question, but I created a CRUDE=20 patch.
 
It=20 does NOT check why a connection failed, it just does a PQreset, and it = SEEMS to=20 work.
 
 
Kind=20 regards,
 
Maikel=20 Verheijen.
 
Ps:=20 Timo, can something with reconnect be implemented=20 permanently?
 
 
--8<--
 
--- = src/auth/db-pgsql.c.ORIG    Tue=20 May 27 10:06:39 2003
+++ src/auth/db-pgsql.c Tue May 27 11:16:38 = 2003
@@=20 -53,9 +53,16 @@
        res =3D=20 PQexec(conn->pg,=20 query);
 
        if=20 (PQresultStatus(res) !=3D PGRES_TUPLES_OK)=20 {
-           =    =20 i_error("PGSQL: Query \"%s\" failed:=20 %s",
-          &nb= sp;           =20 query,=20 PQresultErrorMessage(res));
-      &nbs= p;       =20 failed =3D=20 TRUE;
+          &n= bsp;   =20 PQreset(conn->pg);
+       &nbs= p;      =20 res =3D PQexec(conn->pg,=20 query);
+          =     =20 if (PQresultStatus(res) !=3D PGRES_TUPLES_OK)=20 {
+           =            =20 i_error("PGSQL: Query \"%s\" failed:=20 %s",
+          &nb= sp;           &nb= sp;       =20 query,=20 PQresultErrorMessage(res));
+      &nbs= p;           &nbs= p;   =20 failed =3D=20 TRUE;
+          &n= bsp;   =20 } else=20 {
+           =            =20 i_error("PGSQL: Reconnected because of=20 failure!");
+         &n= bsp;           &n= bsp;=20 failed =3D=20 FALSE;
+          &= nbsp;   =20 }
        } else=20 {
           &= nbsp;   =20 failed =3D FALSE;
        = }
 
--8<--
-----Original Message-----
From: = Maikel Verheijen=20 [mailto:maikel@ladot.com]
Sent: Tuesday, May 27, 2003 9:43 = AM
To: 'Dovecot (E-mail)'
Subject: [Dovecot] = Postgres=20 "issue"

Dear list,


I have a small issue with dovecot talking to a = postgresql=20 server:

If my postgres server get restarted, dovecot fails = to=20 reconnect to the postgres server.

I run dovecot 0.99.9.1 (which is actually a cvs = version of=20 dovecot, of may 9 2003)

I have the same postgres version for the server as = I use for=20 the libraries.

Is it hard to get auto-reconnect to work? =


Kind regards,


Maikel Verheijen


Ps: the log message I get is this:

May 22 17:33:01 testlfw3 dovecot-auth: PGSQL: Query = "SELECT=20 password FROM aliases WHERE alias =3D 'maikel@test.com' AND password = !=3D ''"=20 failed: FATAL 1:  This connection has been terminated by the=20 administrator. server closed the connection unexpectedly ^IThis = probably means=20 the server terminated abnormally ^Ibefore or while processing the = request.=20

Which probably describes it all :)=20

------_=_NextPart_001_01C32435.62781790-- From tss@iki.fi Tue May 27 14:48:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1C7AA238C7; Tue, 27 May 2003 14:48:50 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4EF9F23865 for ; Tue, 27 May 2003 14:48:46 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 0BB2A5C896C6; Tue, 27 May 2003 14:48:46 +0300 (EEST) Subject: Re: [Dovecot] Dovecot in OpenBSD ports system From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <27400000.1054000562@[192.168.0.8]> References: <20030523152303.5644f895.bob@cemetery.homeunix.org> <27400000.1054000562@[192.168.0.8]> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054036125.19156.175.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 27 May 2003 14:48:45 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 11:48:50 -0000 X-UID: 826 Status: O On Tue, 2003-05-27 at 04:56, Andrew Basterfield wrote: > I've run into some probelms with maildirs. I have been testing by dumping > my email archives into the server and I have come across 'Warning: > Inconsistency - Index was rebuilt while we had it open' leading to > the the wrong body being returned when the header is selected. Eventually > the child server process dies. > > I have had no problems with mboxes > > Should I wait for the next release and try again? Is this problem limited > to my plaform? What version of Dovecot was this with? OpenBSD had similiar problem which I've fixed in -test releases. The problem with it was that I was write()ing to file that was mmaped, and OpenBSD didn't update the mmap when it was done. From bob@cemetery.homeunix.org Tue May 27 19:05:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 135E6238C7; Tue, 27 May 2003 19:05:13 +0300 (EEST) Received: from cemetery.homeunix.org (joeldriver.plus.com [212.159.87.165]) by danu.procontrol.fi (Postfix) with ESMTP id 780A623865 for ; Tue, 27 May 2003 19:05:09 +0300 (EEST) Received: from [192.168.0.8] (snot.flatnet [192.168.0.8]) by cemetery.homeunix.org (8.12.9/8.12.6) with ESMTP id h4RG51g6027390 for ; Tue, 27 May 2003 17:05:01 +0100 (BST) Date: Tue, 27 May 2003 17:05:00 +0100 From: Andrew Basterfield To: dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot in OpenBSD ports system Message-ID: <695540000.1054051500@[192.168.0.8]> In-Reply-To: <1054036125.19156.175.camel@hurina> References: <20030523152303.5644f895.bob@cemetery.homeunix.org> <1054036125.19156.175.camel@hurina> X-Mailer: Mulberry/3.0.3 (Linux/x86) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 16:05:13 -0000 X-UID: 827 Status: O Content-Length: 1110 --On Tuesday, May 27, 2003 14:48:45 +0300 Timo Sirainen wrote: > On Tue, 2003-05-27 at 04:56, Andrew Basterfield wrote: >> I've run into some probelms with maildirs. I have been testing by dumping >> my email archives into the server and I have come across 'Warning: >> Inconsistency - Index was rebuilt while we had it open' leading >> to the the wrong body being returned when the header is selected. >> Eventually the child server process dies. >> Should I wait for the next release and try again? Is this problem limited >> to my plaform? > > What version of Dovecot was this with? OpenBSD had similiar problem > which I've fixed in -test releases. The problem with it was that I was > write()ing to file that was mmaped, and OpenBSD didn't update the mmap > when it was done. Yes, I found the error message in mail_index_lock_change() in mail-index.c and mmap_update() in mail_index_data.c, I changed one of the strings so I could differentiate them and it was mmap_update() where the error was detected. I had the problems with 0.99.8.1 and 0.99.9.1 I will try -test --Andrew From bob@cemetery.homeunix.org Tue May 27 19:29:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F34F6238C7; Tue, 27 May 2003 19:29:07 +0300 (EEST) Received: from cemetery.homeunix.org (joeldriver.plus.com [212.159.87.165]) by danu.procontrol.fi (Postfix) with ESMTP id 28AA723896 for ; Tue, 27 May 2003 19:29:05 +0300 (EEST) Received: from snot (snot.flatnet [192.168.0.8]) by cemetery.homeunix.org (8.12.9/8.12.6) with SMTP id h4RGT2g6008011 for ; Tue, 27 May 2003 17:29:02 +0100 (BST) Date: Tue, 27 May 2003 17:28:57 +0100 From: Andrew Basterfield To: dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot in OpenBSD ports system Message-Id: <20030527172857.0d4c257b.bob@cemetery.homeunix.org> In-Reply-To: <695540000.1054051500@[192.168.0.8]> References: <20030523152303.5644f895.bob@cemetery.homeunix.org> <1054036125.19156.175.camel@hurina> <695540000.1054051500@[192.168.0.8]> X-Mailer: Sylpheed version 0.8.11claws (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="oU=.=ndL)/)D4KXw" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 16:29:08 -0000 X-UID: 828 Status: O --oU=.=ndL)/)D4KXw Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 27 May 2003 17:05:00 +0100, Andrew Basterfield wrote: > I had the problems with 0.99.8.1 and 0.99.9.1 > > I will try -test PS to you have URLs for -test tarballs (as they are not linked to on the website) or must I check the source out with CVS? --Andrew -- http://cemetery.homeunix.org --oU=.=ndL)/)D4KXw Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+05JNj3ZMDwYLJGARAqcwAJ4lEL4mMMyWy26nthSZ5q0Cm2+aTwCfTFOW oeyLEMrqe8WSp4HI1Dqz6Yc= =wLt6 -----END PGP SIGNATURE----- --oU=.=ndL)/)D4KXw-- From bob@cemetery.homeunix.org Tue May 27 20:52:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9BF7423896; Tue, 27 May 2003 20:52:17 +0300 (EEST) Received: from cemetery.homeunix.org (joeldriver.plus.com [212.159.87.165]) by danu.procontrol.fi (Postfix) with ESMTP id 031BD23865 for ; Tue, 27 May 2003 20:52:06 +0300 (EEST) Received: from snot (snot.flatnet [192.168.0.8]) by cemetery.homeunix.org (8.12.9/8.12.6) with SMTP id h4RHpxg6004420 for ; Tue, 27 May 2003 18:51:59 +0100 (BST) Date: Tue, 27 May 2003 18:51:55 +0100 From: Andrew Basterfield To: dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot in OpenBSD ports system Message-Id: <20030527185155.4549a895.bob@cemetery.homeunix.org> In-Reply-To: <20030527172857.0d4c257b.bob@cemetery.homeunix.org> References: <20030523152303.5644f895.bob@cemetery.homeunix.org> <1054036125.19156.175.camel@hurina> <695540000.1054051500@[192.168.0.8]> <20030527172857.0d4c257b.bob@cemetery.homeunix.org> X-Mailer: Sylpheed version 0.8.11claws (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.on,YNVJBSF5slg" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2003 17:52:17 -0000 X-UID: 829 Status: O Content-Length: 1126 --=.on,YNVJBSF5slg Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 27 May 2003 17:28:57 +0100, Andrew Basterfield wrote: > On Tue, 27 May 2003 17:05:00 +0100, > Andrew Basterfield wrote: > > > I had the problems with 0.99.8.1 and 0.99.9.1 > > > > I will try -test > > PS to you have URLs for -test tarballs (as they are not linked to on > the website) or must I check the source out with CVS? Sorry, found the test tarballs. 0.99.10-test6 is looking very good, no problems with OpenBSD so far and much much faster than cyrus-imapd importing my messages. When 0.99.10 comes out I will aim to get it in OpenBSD ports tree. In the meanwhile I will continue to beat on the -test releases to see if I can break them. --Andrew -- http://cemetery.homeunix.org --=.on,YNVJBSF5slg Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+06W/j3ZMDwYLJGARAgvyAJ97RqPyeQhkD99RGJbDAzSWvO8aKACcCo7s GkD9vzEsYIXIlA9uLz8vbhs= =bcQX -----END PGP SIGNATURE----- --=.on,YNVJBSF5slg-- From rw@firstpr.com.au Wed May 28 07:32:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 013F523896; Wed, 28 May 2003 07:32:33 +0300 (EEST) Received: from gair.firstpr.com.au (first1.lnk.telstra.net [139.130.48.118]) by danu.procontrol.fi (Postfix) with ESMTP id 6D5902384C for ; Wed, 28 May 2003 07:32:29 +0300 (EEST) Received: from firstpr.com.au (zita.firstpr.com.au [203.36.57.217]) by gair.firstpr.com.au (Postfix) with ESMTP id 2A22F2C845; Wed, 28 May 2003 14:32:20 +1000 (EST) Message-ID: <3ED43BC4.6010209@firstpr.com.au> Date: Wed, 28 May 2003 14:32:04 +1000 From: Robin Whittle Organization: First Principles User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: [Dovecot] Dovecot 0.99.9.1 and openssl-0.9.7a-5 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 04:32:34 -0000 X-UID: 830 Status: O Content-Length: 1537 Hi Timo and others, Thanks for Dovecot! I just got it running under Red Hat 9.0 after spending many hours unsuccessfully trying to get Courier IMAP to run, although I have done it in the past. Here is a compilation glitch which may already be well known: I compiled dovecot-0.99.9.1 on my newly installed and recently updated (via Red Hat Network) system and the compilation stopped due to a missing file in the SSL headers: In file included from /usr/include/openssl/ssl.h:179, from ssl-proxy-openssl.c:14: /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory In file included from /usr/include/openssl/ssl.h:179, from ssl-proxy-openssl.c:14: The currently installed OpenSSL RPM was openssl-0.9.7a-5. This lacks the file /usr/include/openssl/krb5.h . I understand that openssl-0.9.7b is OK, but I wasn't sure about whether installing this as a tarball from http://www.openssl.org would upset any other programs on this machine, or confuse the RHN update system. I didn't really need SSL and I couldn't see a specific option for disabling it, other than a general instruction about disabling modules with a ./configure option. So I tried ./configure --help and compiled it with: ./configure --without-ssl This worked fine. I really like the report at the end of the ./configure stage saying how the program will be compiled! - Robin // Robin Whittle http://www.firstpr.com.au // Melbourne, Australia http://fondlyandfirmly.com From charlie@rubberduck.com Wed May 28 08:08:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 97822238C5; Wed, 28 May 2003 08:08:40 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id DA17023896 for ; Wed, 28 May 2003 08:08:36 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id D56C58FE6; Wed, 28 May 2003 15:08:25 +1000 (EST) Date: Wed, 28 May 2003 15:08:25 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030528050825.GA10934@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <20030521043313.GA1659@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1053508449.1218.348.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 05:08:40 -0000 X-UID: 831 Status: O Content-Length: 1607 On Wed, May 21, 2003 at 12:14:09PM +0300, Timo Sirainen wrote: > On Wed, 2003-05-21 at 10:39, Charlie Allom wrote: > > On Wed, May 21, 2003 at 10:30:16AM +0300, Timo Sirainen wrote: > > > On Wed, 2003-05-21 at 10:20, Charlie Allom wrote: > > > > /usr/pkg/lib/dovecot/imap/drac.so: Undefined PLT symbol "net_addr2ip" > > > > (symnum = 21) > > > > > > Are you really running 0.99.10-test2 or newer? I changed that function's > > > name recently. > > > > > > > Yes I really am. > > > > Check your latest commits to network.h and network.c > > Oh! I got it :) The linker optimizes that function away since it's not > used elsewhere. Well, I'll include that function into the drac.c. > Updated http://dovecot.procontrol.fi/patches/drac.c > Sorry Timo, still going here .. I have test2 and last drac.c it all compiled much more cleanly this time. NB you have to hand edit and #define HAVE_MODULES in config.h and I still get this error: May 28 15:03:35 lazy imap-login: Login: jen [203.31.232.2] May 28 15:03:35 lazy imap(jen): dlopen(/usr/local/lib/dovecot/imap/drac.so) failed: /usr/local/lib/dovecot/imap/drac.so: Undefined PLT symbol "net_addr2ip" (symnum = 21) even when there is this in drac.c: ip_str = getenv("IP"); if (ip_str == NULL) i_error("DRAC: IP environment not given"); else if (net_addr2ip(ip_str, &ip) < 0) i_error("DRAC: net_ip2addr(%s) failed: %m", ip_str); .. how did this happen .. shall I use a newer test? C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From rw@firstpr.com.au Wed May 28 08:18:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9C19D238C5; Wed, 28 May 2003 08:18:43 +0300 (EEST) Received: from gair.firstpr.com.au (first1.lnk.telstra.net [139.130.48.118]) by danu.procontrol.fi (Postfix) with ESMTP id 1F61F23896 for ; Wed, 28 May 2003 08:18:40 +0300 (EEST) Received: from firstpr.com.au (zita.firstpr.com.au [203.36.57.217]) by gair.firstpr.com.au (Postfix) with ESMTP id 359162C845; Wed, 28 May 2003 15:18:38 +1000 (EST) Message-ID: <3ED4469E.8040207@firstpr.com.au> Date: Wed, 28 May 2003 15:18:22 +1000 From: Robin Whittle Organization: First Principles User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: [Dovecot] Speed and memory probs writing large Maildir X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 05:18:43 -0000 X-UID: 832 Status: O Content-Length: 4782 I have Dovecot 0.99.9.1 compiled from the source, without SSL, running on a Red Hat 9.0 system - EXT3 file system, Pentium Pro 233 MHz, Intel motherboard, 128M RAM, IBM 40Gig 7200 RPM HD. I find reading and searching to be nice and fast, and comparing it with Courier IMAP on a Celeron 824 MHz, I think Dovecot is generally not much slower, which means it may well be faster than Courier in some or many ways if it was running on the same machine. My only problem is when writing mailboxes with large numbers of messages. I use Mailir - the same arrangement as Courier IMAP. (I also find that Netscape 4.77 can't use mailboxes which are subfolders of others, but that is probably a Netscape config problem.) I am using Netscape 4.77 (Windows 2000 1.3 GHz Celeron, via 100Mbps switched Ethernet to the Linux machines) to do these tests since I find Netscape 7.02 to be much slower. Netscape 7.02 seems to want to resynch its notion of the mailbox repeatedly as it is writing to it. Without looking at the IMAP traffic (I don't know how) I would say that Netscape 4.77 is not doing this at all. Indeed, after the write, looking at the mailbox causes Netscape 4.77 to read the headers from the IMAP server - so I feel sure that its way of writing the messages is purely "write". Writing a mailbox with a small number of large messages, such as 20 x 100k messages is fine. There is no obvious speed problem or excessive memory use. When writing 2000 x 1k messages, it is totally different. Here are some times for writing from a Netscape 4.77 local mailbox to Dovecot and to Courier IMAP. Message Total Time CPU max Memory RSS size number size Seconds Approx Megs - max Dovecot 100k 100 10M 23 15% ~2 100k 20 2M ~5 ? 1.2 10k 200 2M 20 15% 4 ! 1k 2000 2M 230 60 32 !!!! Courier IMAP 100k 100 10M 14 5% ~1 100k 20 2M ~2 ? ? 10k 200 2M 9 5% ~0.6 1k 2000 2M 88 2% ~0.6 This 2000 message test is small compared to some of the mailboxes I have. I used a real-live mailbox, 6878 messages - 44 Megabytes in a single Mbox for a more demanding test. Using Netscape 4.77 to copy this to a Dovecot Maildir took a very long time - over 30 minutes. The process was fast at first and got slower and slower. As the number of messages in the destination Maildir increased, the memory usage went up and the speed reduced. It seems that RSS memory usage (as reported by "top -d 0.3" hit some kind of limit at about 49 Megs after 4000 messages and then went down a little to about 48 or less. CPU usage was 30 to 82%, fluctuating according to the moment top looked. At the end, I think it was only writing 1.5 messages a second. RSS is the "total amount of physical memory used by the task". The "SIZE" was even bigger - "code plus data plus stack". This got up to 114 Megs by the end of the writing process! After the write had finished, I made Netscape 4.77 view the destination mailbox. This caused Dovecot to send it all the headers, and again Dovecot had these huge memory usage figures. It seemed to read the mailbox at a decent speed - 20 seconds or so. But if I made Dovecot look at another mailbox, and then again at this big target mailbox (say with another client - Netscape 7), it would read the big mailbox at Dovecot's usual high speed - without the high memory usage and I think without high CPU usage as well. Without knowing anything about how Dovecot works, I imagine that there is some kind of caching algorithm for writes, and that this is retained until Dovecot (or at least the instance serving this client) is asked to look at another Maildir. It seems that reading is not slowed by this process much or at all - but writing gets progressively slower as the cache gets bigger. The memory usage - even 49 Megs for RSS - seems excessive. It reached that about halfway through writing the mailbox, so the entire message contents at that state would have been about 22 Megs. But the "SIZE" memory usage is even larger - perhaps limited by the available RAM. This slow speed for writing Maildirs with large numbers of messages is currently a barrier to me using Dovecot. I am about to go back and try again to get Courier IMAP to do what I want . . . The Courier IMAP documentation and what I regard as the difficult "configure -> build -> install -> wonder why it doesn't run" process has cost me so much time that I would be very happy to use something simpler and easier (for me, at least) to install. Thanks for developing this new IMAP server! - Robin From rw@firstpr.com.au Wed May 28 08:26:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 195FD238C5; Wed, 28 May 2003 08:26:17 +0300 (EEST) Received: from gair.firstpr.com.au (first1.lnk.telstra.net [139.130.48.118]) by danu.procontrol.fi (Postfix) with ESMTP id 02E3C23845 for ; Wed, 28 May 2003 08:26:15 +0300 (EEST) Received: from firstpr.com.au (zita.firstpr.com.au [203.36.57.217]) by gair.firstpr.com.au (Postfix) with ESMTP id 168BF2C845; Wed, 28 May 2003 15:26:13 +1000 (EST) Message-ID: <3ED44865.2070705@firstpr.com.au> Date: Wed, 28 May 2003 15:25:57 +1000 From: Robin Whittle Organization: First Principles User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Speed and memory probs writing large Maildir References: <3ED4469E.8040207@firstpr.com.au> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 05:26:17 -0000 X-UID: 833 Status: O P.S. I have not altered the dovecot.conf file at all. The only deviation from standard is no SSL. I find it remarkable that Dovecot works out of the box and automagically finds the user's Maildirs! - Robin From bob@cemetery.homeunix.org Wed May 28 10:31:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EC057238D1; Wed, 28 May 2003 10:31:18 +0300 (EEST) Received: from cemetery.homeunix.org (joeldriver.plus.com [212.159.87.165]) by danu.procontrol.fi (Postfix) with ESMTP id AE27623845 for ; Wed, 28 May 2003 10:31:15 +0300 (EEST) Received: from snot (snot.flatnet [192.168.0.8]) by cemetery.homeunix.org (8.12.9/8.12.6) with SMTP id h4S7VAg6020062 for ; Wed, 28 May 2003 08:31:10 +0100 (BST) Date: Wed, 28 May 2003 08:31:02 +0100 From: Andrew Basterfield To: dovecot@procontrol.fi Subject: Re: [Dovecot] Speed and memory probs writing large Maildir Message-Id: <20030528083102.52dc1f96.bob@cemetery.homeunix.org> In-Reply-To: <3ED4469E.8040207@firstpr.com.au> References: <3ED4469E.8040207@firstpr.com.au> X-Mailer: Sylpheed version 0.8.11claws (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.96UA?JjZGR)aJ1" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 07:31:19 -0000 X-UID: 834 Status: O Content-Length: 1056 --=.96UA?JjZGR)aJ1 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Wed, 28 May 2003 15:18:22 +1000, Robin Whittle wrote: > My only problem is when writing mailboxes with large numbers of > messages. I use Mailir - the same arrangement as Courier IMAP. (I > also find that Netscape 4.77 can't use mailboxes which are subfolders > of others, but that is probably a Netscape config problem.) > When writing 2000 x 1k messages, it is totally different. Here are > some times for writing from a Netscape 4.77 local mailbox to Dovecot > and to Courier IMAP. I had problems with big (2000+ messages) folders on OpenBSD. I updated to 0.9.99.10-test6 and it is fine. http://dovecot.procontrol.fi/test/ -- http://cemetery.homeunix.org --=.96UA?JjZGR)aJ1 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+1GW+j3ZMDwYLJGARAjl6AJ9EheeRY+DMthlKU8bQD/EmXChizQCfYqLF HuERcSLoMIZizzIiCufietY= =WlIZ -----END PGP SIGNATURE----- --=.96UA?JjZGR)aJ1-- From lfarkas@bnap.hu Wed May 28 11:30:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 27A53238D1; Wed, 28 May 2003 11:30:59 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 7CB0E238C8 for ; Wed, 28 May 2003 11:30:56 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id BD1DF754003 for ; Wed, 28 May 2003 10:30:17 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 460643EC4 for ; Wed, 28 May 2003 10:30:54 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 30DA33EB8 for ; Wed, 28 May 2003 10:30:54 +0200 (CEST) Message-ID: <3ED473BA.2090609@bnap.hu> Date: Wed, 28 May 2003 10:30:50 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] serious problem X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 08:30:59 -0000 X-UID: 835 Status: O hi, I've got dozen such errors: ---------------------------- imap-login: May 28 10:28:56 Info: Login: gpajlocz [192.168.1.182] imap(gpajlocz): May 28 10:28:56 Panic: file maildir-sync.c: line 472 (maildir_sync_uidlist): assertion failed: (ACTION(hash_rec) == MAILDIR_FILE_ACTION_NEW) dovecot: May 28 10:28:56 Error: child 17207 (imap) killed with signal 6 ---------------------------- and this users can't get into the system... -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed May 28 11:43:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 42D192399E; Wed, 28 May 2003 11:43:52 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 974E8238C8 for ; Wed, 28 May 2003 11:43:50 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 5869675400C for ; Wed, 28 May 2003 10:43:13 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id C16773EB8 for ; Wed, 28 May 2003 10:43:49 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 9126B3EC4 for ; Wed, 28 May 2003 10:43:49 +0200 (CEST) Message-ID: <3ED476C2.3060201@bnap.hu> Date: Wed, 28 May 2003 10:43:46 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] a few more error X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 08:43:52 -0000 X-UID: 836 Status: O in the imap.log: imap(arvays): May 28 10:39:32 Error: Timeout while waiting for release of fcntl() lock for index file /home/arvays/Maildir/.INBOX/.imap.index imap(lfarkas): May 28 10:42:05 Panic: unreached dovecot: May 28 10:42:07 Error: child 19933 (imap) killed with signal 6 -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed May 28 12:16:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 56082239A1; Wed, 28 May 2003 12:16:06 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 272162399F for ; Wed, 28 May 2003 12:16:03 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id CA431754003 for ; Wed, 28 May 2003 11:15:25 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 611FB3EC4 for ; Wed, 28 May 2003 11:16:02 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 4229B3EB8 for ; Wed, 28 May 2003 11:16:02 +0200 (CEST) Message-ID: <3ED47E4F.1000005@bnap.hu> Date: Wed, 28 May 2003 11:15:59 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] new problems X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 09:16:06 -0000 X-UID: 837 Status: O Content-Length: 1523 hi, so yesterday I move the whole mail system to a better machine. the only thing which is running on this system is dovect and: -------------------------------------------------- 10:44am up 6 days, 25 min, 3 users, load average: 28.03, 17.96, 9.05 233 processes: 231 sleeping, 2 running, 0 zombie, 0 stopped CPU0 states: 3.1% user, 29.4% system, 0.0% nice, 66.4% idle CPU1 states: 7.1% user, 63.2% system, 0.0% nice, 29.1% idle CPU2 states: 1.3% user, 3.1% system, 0.0% nice, 94.4% idle CPU3 states: 1.1% user, 7.4% system, 0.0% nice, 90.3% idle Mem: 1030496K av, 1021836K used, 8660K free, 0K shrd, 104064K buff Swap: 2040244K av, 55544K used, 1984700K free 776180K cached -------------------------------------------------- so the problem here is again with the load 28 (!!!)..... in the imap.log: -------------------------------------------------- imap(arvays): May 28 10:39:32 Error: Timeout while waiting for release of fcntl() lock for index file /home/arvays/Maildir/.INBOX/.imap.index imap(lfarkas): May 28 10:42:05 Panic: unreached dovecot: May 28 10:42:07 Error: child 19933 (imap) killed with signal 6 imap(ahegedus): May 28 11:05:57 Panic: file maildir-sync.c: line 472 (maildir_sync_uidlist): assertion failed: (ACTION(hash_rec) == MAILDIR_FILE_ACTION_NEW) dovecot: May 28 11:05:58 Error: child 29103 (imap) killed with signal 6 -------------------------------------------------- -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed May 28 14:09:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 425B2238D5; Wed, 28 May 2003 14:09:15 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7F8FF238D1 for ; Wed, 28 May 2003 14:09:12 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 7BDC95C896C6; Wed, 28 May 2003 14:09:11 +0300 (EEST) Subject: Re: [Dovecot] Speed and memory probs writing large Maildir From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3ED4469E.8040207@firstpr.com.au> References: <3ED4469E.8040207@firstpr.com.au> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054120151.19156.250.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 28 May 2003 14:09:11 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:09:15 -0000 X-UID: 838 Status: O Content-Length: 1158 On Wed, 2003-05-28 at 08:18, Robin Whittle wrote: > When writing 2000 x 1k messages, it is totally different. Here are some > times for writing from a Netscape 4.77 local mailbox to Dovecot and to > Courier IMAP. Thanks, this test helped to find several problems. First problem was a memory leak with APPEND command. This caused the huge memory usage. Here's a fix: --- cmd-append.c 14 Feb 2003 08:00:52 -0000 1.24 +++ cmd-append.c 28 May 2003 11:01:03 -0000 @@ -197,6 +197,7 @@ count++; } + imap_parser_destroy(save_parser); if (!box->save_deinit(ctx, failed)) { failed = TRUE; Then I noticed that each APPEND command has to reopen and resync the mailbox every time which gets just slower and slower. I think I'll make it leave the mailbox open for a few seconds just in case another APPEND comes. That should speed it up quite a lot. Actually APPEND wouldn't even need the mailbox to be synced. I should try fixing that too.. And finally there's a nasty bug in 0.99.10-test's new maildir syncing code. I think I'll have to rewrite it a bit more to avoid wasting memory.. From tss@iki.fi Wed May 28 14:16:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 543D4238D5; Wed, 28 May 2003 14:16:44 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6DA8D238D1 for ; Wed, 28 May 2003 14:16:40 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 410935C896C6; Wed, 28 May 2003 14:16:40 +0300 (EEST) Subject: Re: [Dovecot] new problems From: Timo Sirainen To: Dovecot List In-Reply-To: <3ED47E4F.1000005@bnap.hu> References: <3ED47E4F.1000005@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054120600.23632.259.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 28 May 2003 14:16:40 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:16:44 -0000 X-UID: 839 Status: O On Wed, 2003-05-28 at 12:15, Farkas Levente wrote: > so the problem here is again with the load 28 (!!!)..... Did you try with default_mail_env = maildir:~/Maildir:INDEX=MEMORY? Does that effect the load at all? > imap(arvays): May 28 10:39:32 Error: Timeout while waiting for release > of fcntl() lock for index file /home/arvays/Maildir/.INBOX/.imap.index CVS was somewhat broken in 2003-05-23 14:40 .. 2003-05-26 13:07. If you're running such version that would explain this error. > imap(lfarkas): May 28 10:42:05 Panic: unreached Hmm. Related to below I think. > imap(ahegedus): May 28 11:05:57 Panic: file maildir-sync.c: line 472 > (maildir_sync_uidlist): assertion failed: (ACTION(hash_rec) == > MAILDIR_FILE_ACTION_NEW) Still hmm. But it could be related to the bug I found which was mostly just crashing or causing some other errors with me. Try if cvs update fixes. From tss@iki.fi Wed May 28 14:19:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0F148238C9; Wed, 28 May 2003 14:19:47 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9A48323845 for ; Wed, 28 May 2003 14:19:45 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 74BDE5C896C6; Wed, 28 May 2003 14:19:45 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054120785.3131.263.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 28 May 2003 14:19:45 +0300 Subject: [Dovecot] 0.99.10-test7 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:19:47 -0000 X-UID: 840 Status: O - APPEND memory leak fixed - maildir syncing crash / some other errors fixed - pop3 mail fetching fixed - pop3 didn't advertise STLS in capabilities before http://dovecot.procontrol.fi/test/ From tss@iki.fi Wed May 28 14:30:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7D479238D1; Wed, 28 May 2003 14:30:28 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 43F9523845 for ; Wed, 28 May 2003 14:30:26 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 0AC1B5C896C6; Wed, 28 May 2003 14:30:20 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030528050825.GA10934@lazy.spodder.com> References: <20030514085227.GA7325@lazy.spodder.com> <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030528050825.GA10934@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054121419.3131.275.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 28 May 2003 14:30:19 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:30:28 -0000 X-UID: 841 Status: O On Wed, 2003-05-28 at 08:08, Charlie Allom wrote: > still going here .. I have test2 and last drac.c > > it all compiled much more cleanly this time. > > NB you have to hand edit and #define HAVE_MODULES in config.h That's not enough. If configure doesn't detect that you have modules, it's not setting the linker flags correctly and it won't work. Looks like BSDs don't have libdl which is why configure's test fails. Try -test7, I just updated it so that the check should work. From lfarkas@bnap.hu Wed May 28 14:32:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F2998238D1; Wed, 28 May 2003 14:32:09 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 600AD23845 for ; Wed, 28 May 2003 14:32:08 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 8F33375400C; Wed, 28 May 2003 13:31:30 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 63BD33EC4; Wed, 28 May 2003 13:32:07 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 510D53EB8; Wed, 28 May 2003 13:32:07 +0200 (CEST) Message-ID: <3ED49E33.5080300@bnap.hu> Date: Wed, 28 May 2003 13:32:03 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] new problems References: <3ED47E4F.1000005@bnap.hu> <1054120600.23632.259.camel@hurina> In-Reply-To: <1054120600.23632.259.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:32:10 -0000 X-UID: 842 Status: O Content-Length: 1178 Timo Sirainen wrote: > On Wed, 2003-05-28 at 12:15, Farkas Levente wrote: > >>so the problem here is again with the load 28 (!!!)..... > > > Did you try with default_mail_env = maildir:~/Maildir:INDEX=MEMORY? Does > that effect the load at all? yes I try. first it drop the load but today I can't do anything, since the load was above 20 in both case. >>imap(arvays): May 28 10:39:32 Error: Timeout while waiting for release >>of fcntl() lock for index file /home/arvays/Maildir/.INBOX/.imap.index > > > CVS was somewhat broken in 2003-05-23 14:40 .. 2003-05-26 13:07. If > you're running such version that would explain this error. the current is ok? >>imap(lfarkas): May 28 10:42:05 Panic: unreached > > > Hmm. Related to below I think. > > >>imap(ahegedus): May 28 11:05:57 Panic: file maildir-sync.c: line 472 >>(maildir_sync_uidlist): assertion failed: (ACTION(hash_rec) == >>MAILDIR_FILE_ACTION_NEW) > > > Still hmm. But it could be related to the bug I found which was mostly > just crashing or causing some other errors with me. Try if cvs update > fixes. the current is ok? -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed May 28 14:39:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 03BB4238C6; Wed, 28 May 2003 14:39:14 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3C23023845 for ; Wed, 28 May 2003 14:39:12 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 0345C5C896C6; Wed, 28 May 2003 14:39:12 +0300 (EEST) Subject: Re: [Dovecot] new problems From: Timo Sirainen To: Dovecot List In-Reply-To: <3ED49E33.5080300@bnap.hu> References: <3ED47E4F.1000005@bnap.hu> <1054120600.23632.259.camel@hurina> <3ED49E33.5080300@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054121951.19156.282.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 28 May 2003 14:39:11 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:39:14 -0000 X-UID: 843 Status: O On Wed, 2003-05-28 at 14:32, Farkas Levente wrote: > > Did you try with default_mail_env = maildir:~/Maildir:INDEX=MEMORY? Does > > that effect the load at all? > > yes I try. first it drop the load but today I can't do anything, since > the load was above 20 in both case. Did it drop the load much? Because it shouldn't, except because of these bugs that required rebuilding indexes. I'd like to know what causes these loads, but I can't really even guess without at least knowing what area is doing that (index building, clients downloading too many mails, ..?). Maybe I should write some kind of statistics gathering code which could be used to find that out.. > > CVS was somewhat broken in 2003-05-23 14:40 .. 2003-05-26 13:07. If > > you're running such version that would explain this error. > > the current is ok? Yes. From lfarkas@bnap.hu Wed May 28 14:46:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C39E3238C6; Wed, 28 May 2003 14:46:43 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 3C5B123845 for ; Wed, 28 May 2003 14:46:41 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id B713F75400F for ; Wed, 28 May 2003 13:46:02 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 753CD3ECA for ; Wed, 28 May 2003 13:46:36 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 5B9FC3EB8 for ; Wed, 28 May 2003 13:46:36 +0200 (CEST) Message-ID: <3ED4A199.9090501@bnap.hu> Date: Wed, 28 May 2003 13:46:33 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] the most serius problems [part 1] X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:46:43 -0000 X-UID: 844 Status: O Content-Length: 1507 hi, I try to collect out most serious problem with dovecot. so I write a series of mails:-) the first on is the load. has anybody else use dovecot in a real enviromnt with at least hundreds of users and at least 50 concurrent user at the same time? it seems to me no one else just me. the weekend I move the whole mail system to a quad P4 with 1Gb ram and this server do nothing just imap. yesterday evening I have to delete all .imap.index and other dovecot specific files. and as I wrote today morning the load was about 20-30 !!!. but even in an average day the load is over 2-3 white the cpu load is 1-2% in each of the 4 processor. the system is totaly unusable. what more today I've got other errors. of course all the time when I can't find the colution I try to escape to the latest cvs. today finally I compile a new courier install it to another port and those clients which can't connect to dovecot reconfigure to courier. but they are not compatible!!! I have to set root directory to INBOX in courier while not for dovecot and this is a real big problem. is there any way to compile dovecot to use INBOX as a root directory? since in this case at least there is a chance to switch to courier without reconfigure 300 OE6. I try to help to find out the reason for the load in any way, but it seems to me than it's better to change to courier or cyrus since our users getting angry not to mention my boss. -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed May 28 14:51:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 75756238C6; Wed, 28 May 2003 14:51:38 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id DEE7D23845 for ; Wed, 28 May 2003 14:51:36 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 4FC4D75400C for ; Wed, 28 May 2003 13:50:59 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 342D73EC4 for ; Wed, 28 May 2003 13:51:36 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 22AE43EB8 for ; Wed, 28 May 2003 13:51:36 +0200 (CEST) Message-ID: <3ED4A2C4.6060104@bnap.hu> Date: Wed, 28 May 2003 13:51:32 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] still has error X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:51:38 -0000 X-UID: 845 Status: O hi, after download the current cvs recompile, start I still has these errors: ------------------------------------- imap-login: May 28 13:49:02 Info: Login: jcsinalos [192.168.0.106] imap(jcsinalos): May 28 13:49:02 Panic: unreached dovecot: May 28 13:49:02 Error: child 31683 (imap) killed with signal 6 imap-login: May 28 13:49:03 Info: Login: jcsinalos [192.168.0.106] imap-login: May 28 13:49:03 Info: Login: jcsinalos [192.168.0.106] imap(jcsinalos): May 28 13:49:03 Panic: unreached dovecot: May 28 13:49:03 Error: child 31687 (imap) killed with signal 6 ------------------------------------- -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed May 28 14:54:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 757DB238CE; Wed, 28 May 2003 14:54:43 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id DA37D238C6 for ; Wed, 28 May 2003 14:54:41 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 3EA5975400C; Wed, 28 May 2003 13:54:04 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 2D65D3EC4; Wed, 28 May 2003 13:54:41 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 0B3B13EB8; Wed, 28 May 2003 13:54:41 +0200 (CEST) Message-ID: <3ED4A37D.2000309@bnap.hu> Date: Wed, 28 May 2003 13:54:37 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] new problems References: <3ED47E4F.1000005@bnap.hu> <1054120600.23632.259.camel@hurina> <3ED49E33.5080300@bnap.hu> <1054121951.19156.282.camel@hurina> In-Reply-To: <1054121951.19156.282.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:54:43 -0000 X-UID: 846 Status: O Content-Length: 1034 Timo Sirainen wrote: > On Wed, 2003-05-28 at 14:32, Farkas Levente wrote: > >>>Did you try with default_mail_env = maildir:~/Maildir:INDEX=MEMORY? Does >>>that effect the load at all? >> >>yes I try. first it drop the load but today I can't do anything, since >>the load was above 20 in both case. > > > Did it drop the load much? Because it shouldn't, except because of these > bugs that required rebuilding indexes. I'd like to know what causes > these loads, but I can't really even guess without at least knowing what > area is doing that (index building, clients downloading too many mails, > ..?). Maybe I should write some kind of statistics gathering code which > could be used to find that out.. do anything you like, but I can't told you more than there is almost nothing on this server just dovecot. if you give me any kind of tool I'll try it. actualy there is a named, dhcp, etc... but the load before dovecot was about 0.05 maximum 0.2! -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed May 28 14:56:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F1547238CE; Wed, 28 May 2003 14:56:02 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8E92F238C6 for ; Wed, 28 May 2003 14:56:00 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 69DCE5C896C6; Wed, 28 May 2003 14:56:00 +0300 (EEST) Subject: Re: [Dovecot] still has error From: Timo Sirainen To: Dovecot List In-Reply-To: <3ED4A2C4.6060104@bnap.hu> References: <3ED4A2C4.6060104@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054122960.2849.285.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 28 May 2003 14:56:00 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:56:03 -0000 X-UID: 847 Status: O On Wed, 2003-05-28 at 14:51, Farkas Levente wrote: > imap(jcsinalos): May 28 13:49:02 Panic: unreached Setting "mail_drop_priv_before_exec = yes" should create core dump in their home directory. gdb /usr/local/libexec/dovecot/imap /home/.../core bt would show where this happened. From lfarkas@bnap.hu Wed May 28 14:57:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 46A97238CE; Wed, 28 May 2003 14:57:53 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 9BA86238C6 for ; Wed, 28 May 2003 14:57:50 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 0499475400C for ; Wed, 28 May 2003 13:57:13 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id DCDC63EC4 for ; Wed, 28 May 2003 13:57:49 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id C78173EB8 for ; Wed, 28 May 2003 13:57:49 +0200 (CEST) Message-ID: <3ED4A43A.90608@bnap.hu> Date: Wed, 28 May 2003 13:57:46 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] new problems References: <3ED47E4F.1000005@bnap.hu> <1054120600.23632.259.camel@hurina> <3ED49E33.5080300@bnap.hu> <1054121951.19156.282.camel@hurina> <3ED4A37D.2000309@bnap.hu> In-Reply-To: <3ED4A37D.2000309@bnap.hu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 11:57:53 -0000 X-UID: 848 Status: O Content-Length: 1393 Farkas Levente wrote: > Timo Sirainen wrote: > >> On Wed, 2003-05-28 at 14:32, Farkas Levente wrote: >> >>>> Did you try with default_mail_env = maildir:~/Maildir:INDEX=MEMORY? >>>> Does >>>> that effect the load at all? >>> >>> >>> yes I try. first it drop the load but today I can't do anything, >>> since the load was above 20 in both case. >> >> >> >> Did it drop the load much? Because it shouldn't, except because of these >> bugs that required rebuilding indexes. I'd like to know what causes >> these loads, but I can't really even guess without at least knowing what >> area is doing that (index building, clients downloading too many mails, >> ..?). Maybe I should write some kind of statistics gathering code which >> could be used to find that out.. > > > do anything you like, but I can't told you more than there is almost > nothing on this server just dovecot. if you give me any kind of tool > I'll try it. > actualy there is a named, dhcp, etc... but the load before dovecot was > about 0.05 maximum 0.2! I switch my own mailbox from dovecot to courier (on the same server both are running now) and it a LOT faster! the simplist test to delete a mail and mozilla just jump to the next one. it took about 5-10 sec with dovecot!!! while it almost nothing (less than 1 sec) with courier..... -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed May 28 15:01:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3C142238D3; Wed, 28 May 2003 15:01:45 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9E863238CE for ; Wed, 28 May 2003 15:01:43 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 70FCD5C896C6; Wed, 28 May 2003 15:01:43 +0300 (EEST) Subject: Re: [Dovecot] the most serius problems [part 1] From: Timo Sirainen To: Dovecot List In-Reply-To: <3ED4A199.9090501@bnap.hu> References: <3ED4A199.9090501@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054123303.3131.292.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 28 May 2003 15:01:43 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 12:01:45 -0000 X-UID: 849 Status: O On Wed, 2003-05-28 at 14:46, Farkas Levente wrote: > has anybody else use dovecot in a real enviromnt with at least hundreds > of users and at least 50 concurrent user at the same time? Well, I know 0.99.9 has been in use with some 40 concurrent users (asked two people). Didn't 0.99.9 actually work with you too without high load? > I have to set > root directory to INBOX in courier while not for dovecot and this is a > real big problem. is there any way to compile dovecot to use INBOX as a > root directory? since in this case at least there is a chance to switch > to courier without reconfigure 300 OE6. Haven't you configured them now to non-INBOX? You could kludge Dovecot to use INBOX. prefix, or Courier to not use it, but there's no pretty way to do it really. ..but i'm late now, have to look these again later today. From lfarkas@bnap.hu Wed May 28 15:06:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E8382238D3; Wed, 28 May 2003 15:06:15 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id ACD1E238CE for ; Wed, 28 May 2003 15:06:13 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 1E7A0754013 for ; Wed, 28 May 2003 14:05:32 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id EE1BD3EC4 for ; Wed, 28 May 2003 14:06:08 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id CC43E3EB8 for ; Wed, 28 May 2003 14:06:08 +0200 (CEST) Message-ID: <3ED4A62D.9060506@bnap.hu> Date: Wed, 28 May 2003 14:06:05 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 Cc: Dovecot List Subject: Re: [Dovecot] still has error References: <3ED4A2C4.6060104@bnap.hu> <1054122960.2849.285.camel@hurina> In-Reply-To: <1054122960.2849.285.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 12:06:16 -0000 X-UID: 850 Status: O Timo Sirainen wrote: > On Wed, 2003-05-28 at 14:51, Farkas Levente wrote: > >>imap(jcsinalos): May 28 13:49:02 Panic: unreached > > > Setting "mail_drop_priv_before_exec = yes" should create core dump in > their home directory. > > gdb /usr/local/libexec/dovecot/imap /home/.../core > bt > > would show where this happened. there is no core file created, the only differene that OE stop and such error logs: dovecot: May 28 14:00:11 Error: child 1086 (imap) returned error 80 (Can't open log file) -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed May 28 15:27:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 233DE2387F; Wed, 28 May 2003 15:27:53 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 4B08723865 for ; Wed, 28 May 2003 15:27:49 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id A7E8F75400C for ; Wed, 28 May 2003 14:27:11 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 8F5BC3EC4 for ; Wed, 28 May 2003 14:27:48 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 7CE863EB8 for ; Wed, 28 May 2003 14:27:48 +0200 (CEST) Message-ID: <3ED4AB41.3080401@bnap.hu> Date: Wed, 28 May 2003 14:27:45 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] still has error References: <3ED4A2C4.6060104@bnap.hu> <1054122960.2849.285.camel@hurina> <3ED4A62D.9060506@bnap.hu> In-Reply-To: <3ED4A62D.9060506@bnap.hu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 12:27:53 -0000 X-UID: 851 Status: O Farkas Levente wrote: > Timo Sirainen wrote: > >> On Wed, 2003-05-28 at 14:51, Farkas Levente wrote: >> >>> imap(jcsinalos): May 28 13:49:02 Panic: unreached >> just a comment for this bug. eg I've got about 20 folders. most of the working with dovecot. but eg. .IN.dovecot (which is for dovecot list) is not working (when I select that folder) netscape hang. -- Levente "Si vis pacem para bellum!" From cras@irccrew.org Wed May 28 15:33:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B4F49238B6; Wed, 28 May 2003 15:33:09 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 3271F2387F for ; Wed, 28 May 2003 15:33:05 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 145412E003; Wed, 28 May 2003 15:33:05 +0300 (EEST) Date: Wed, 28 May 2003 15:33:05 +0300 From: Timo Sirainen To: Dovecot List Subject: Re: [Dovecot] new problems Message-ID: <20030528123304.GA148@irccrew.org> References: <3ED47E4F.1000005@bnap.hu> <1054120600.23632.259.camel@hurina> <3ED49E33.5080300@bnap.hu> <1054121951.19156.282.camel@hurina> <3ED4A37D.2000309@bnap.hu> <3ED4A43A.90608@bnap.hu> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <3ED4A43A.90608@bnap.hu> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 12:33:09 -0000 X-UID: 852 Status: O On Wed, May 28, 2003 at 01:57:46PM +0200, Farkas Levente wrote: > I switch my own mailbox from dovecot to courier (on the same server both > are running now) and it a LOT faster! > the simplist test to delete a mail and mozilla just jump to the next > one. it took about 5-10 sec with dovecot!!! while it almost nothing > (less than 1 sec) with courier..... So Courier works fine even while the load is high? strace's output could show what Dovecot is doing wrong then. ie. just before expunge: strace -p your_dovecot_imap_pid > /tmp/dove.log 2>&1 And stop it after expunge has completed. I'm anyway guessing that it has something to do with the new syncing code.. What filesystem do you use? From lfarkas@bnap.hu Thu May 29 00:27:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D8E6023866; Thu, 29 May 2003 00:27:29 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 4606423865 for ; Thu, 29 May 2003 00:27:27 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 7E94075400D for ; Wed, 28 May 2003 23:26:47 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 80A6F3EB7 for ; Wed, 28 May 2003 23:27:25 +0200 (CEST) Received: from bnap.hu (eagle.int.bppiac.hu [192.168.255.2]) by mail2.bppiac.hu (Postfix) with ESMTP id C734D3EB1 for ; Wed, 28 May 2003 23:27:24 +0200 (CEST) Message-ID: <3ED529BC.1040904@bnap.hu> Date: Wed, 28 May 2003 23:27:24 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021218 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] the most serius problems [part 1] References: <3ED4A199.9090501@bnap.hu> <1054123303.3131.292.camel@hurina> In-Reply-To: <1054123303.3131.292.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 21:27:30 -0000 X-UID: 853 Status: O Content-Length: 2035 Timo Sirainen wrote: > On Wed, 2003-05-28 at 14:46, Farkas Levente wrote: > >>has anybody else use dovecot in a real enviromnt with at least hundreds >>of users and at least 50 concurrent user at the same time? > > > Well, I know 0.99.9 has been in use with some 40 concurrent users (asked > two people). Didn't 0.99.9 actually work with you too without high load? unfortunately not. >>I have to set >>root directory to INBOX in courier while not for dovecot and this is a >>real big problem. is there any way to compile dovecot to use INBOX as a >>root directory? since in this case at least there is a chance to switch >>to courier without reconfigure 300 OE6. > > > Haven't you configured them now to non-INBOX? > > You could kludge Dovecot to use INBOX. prefix, or Courier to not use it, > but there's no pretty way to do it really. > how can I do that? do you mean there is a way to configure courier not to use INBOX as a prefix? or is there any way to configure dovecot to use INBOX as a prefix? I would be very happy if you tel me! I'd prefer the first one. since in that case I always has a chance to simple stop dovecot and start courier in any serious situation. as I said this's our production server and I can play with it a bit, but it's not acceptable to stop the whole mail system for a day. and without the above solution it's not possible, since currently if we sould have to reconfigure about 300 clients settings (unfortunately this can't be automatized since OE6 keep this setting in a registry key which is depend on the users mailbox number:-() so if I decide to switch to courier than probably we won't shitch back soon. ps. actualy I'm the head of the it dep. and in normal circumstances there are sysadms for the linux systems and for the windows system I don't use to login to the servers as root. but since dovecot was my decision I try to protect it, but it seems to me problems are getting too fast. -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Thu May 29 00:56:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2986323866; Thu, 29 May 2003 00:56:10 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 7607E23865 for ; Thu, 29 May 2003 00:56:07 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 91FEB75400E for ; Wed, 28 May 2003 23:55:28 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id A92A73EB7 for ; Wed, 28 May 2003 23:56:06 +0200 (CEST) Received: from bnap.hu (eagle.int.bppiac.hu [192.168.255.2]) by mail2.bppiac.hu (Postfix) with ESMTP id 28C8F3EB1 for ; Wed, 28 May 2003 23:56:06 +0200 (CEST) Message-ID: <3ED53075.1010305@bnap.hu> Date: Wed, 28 May 2003 23:56:05 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021218 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] new problems References: <3ED47E4F.1000005@bnap.hu> <1054120600.23632.259.camel@hurina> <3ED49E33.5080300@bnap.hu> <1054121951.19156.282.camel@hurina> <3ED4A37D.2000309@bnap.hu> <3ED4A43A.90608@bnap.hu> <20030528123304.GA148@irccrew.org> In-Reply-To: <20030528123304.GA148@irccrew.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 21:56:10 -0000 X-UID: 854 Status: O Content-Length: 1381 Timo Sirainen wrote: > On Wed, May 28, 2003 at 01:57:46PM +0200, Farkas Levente wrote: > >>I switch my own mailbox from dovecot to courier (on the same server both >>are running now) and it a LOT faster! >>the simplist test to delete a mail and mozilla just jump to the next >>one. it took about 5-10 sec with dovecot!!! while it almost nothing >>(less than 1 sec) with courier..... > > > So Courier works fine even while the load is high? strace's output could no we used to stop dovecot and killall imap what for the low load and restart dovecot manually. after we do it for an hour the load goes back to "just" 2-3 and in this case yes courier is much faster that dovecot. > show what Dovecot is doing wrong then. ie. just before expunge: > > strace -p your_dovecot_imap_pid > /tmp/dove.log 2>&1 which imap process? since even if I set the maximum imap connection in mozilla to 1 logout and login again the mozilla (or dovecot) change it back to at least 2:-( anyway I try all of them, both as root and as the user itself, the only result is: trace: ptrace(PTRACE_SYSCALL, ...): Operation not permitted > And stop it after expunge has completed. any other logging mode? > I'm anyway guessing that it has something to do with the new syncing code.. > What filesystem do you use? ext3 -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Thu May 29 01:58:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D23AA23866; Thu, 29 May 2003 01:58:20 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 3F72623845 for ; Thu, 29 May 2003 01:58:18 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id BF58675401D for ; Thu, 29 May 2003 00:57:38 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 0AD1A3EB7 for ; Thu, 29 May 2003 00:58:17 +0200 (CEST) Received: from bnap.hu (eagle.int.bppiac.hu [192.168.255.2]) by mail2.bppiac.hu (Postfix) with ESMTP id B17E53EB1 for ; Thu, 29 May 2003 00:58:16 +0200 (CEST) Message-ID: <3ED53F08.3000709@bnap.hu> Date: Thu, 29 May 2003 00:58:16 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021218 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] the most serius problems [part 2] X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 22:58:21 -0000 X-UID: 855 Status: O hi, the second thing is the webmail. we use squirrelmail. actualy I don't know whose fault is, but they told that them imap server's:-) first problems is that those mails which has empty body (even if they has an attachments) simple not shown in the mail list (as they even not exists). it'd be nice to check this and find the reason of the problem. this happend with more people. -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Thu May 29 02:00:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 23865238B6; Thu, 29 May 2003 02:00:31 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 9AA8B23866 for ; Thu, 29 May 2003 02:00:28 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 6318875401D for ; Thu, 29 May 2003 00:59:49 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id A42C13EB7 for ; Thu, 29 May 2003 01:00:27 +0200 (CEST) Received: from bnap.hu (eagle.int.bppiac.hu [192.168.255.2]) by mail2.bppiac.hu (Postfix) with ESMTP id 5B6853EB1 for ; Thu, 29 May 2003 01:00:27 +0200 (CEST) Message-ID: <3ED53F8B.6080200@bnap.hu> Date: Thu, 29 May 2003 01:00:27 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021218 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] the most serius problems [part 3] X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 23:00:31 -0000 X-UID: 856 Status: O hi, so the third problem is ssl. the imaps is still not working (and I assume the same apply to pop3s too). I already send the log file which was generated when verbose ssl is set. -- Levente "Si vis pacem para bellum!" From charlie@rubberduck.com Thu May 29 04:09:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A26772387F; Thu, 29 May 2003 04:09:30 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 315CF23866 for ; Thu, 29 May 2003 04:09:27 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 05E738FE9; Thu, 29 May 2003 11:09:12 +1000 (EST) Date: Thu, 29 May 2003 11:09:11 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030529010911.GA19139@lazy.spodder.com> References: <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030528050825.GA10934@lazy.spodder.com> <1054121419.3131.275.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1054121419.3131.275.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 01:09:30 -0000 X-UID: 857 Status: O Content-Length: 2411 On Wed, May 28, 2003 at 02:30:19PM +0300, Timo Sirainen wrote: > On Wed, 2003-05-28 at 08:08, Charlie Allom wrote: > > still going here .. I have test2 and last drac.c > > > > it all compiled much more cleanly this time. > > > > NB you have to hand edit and #define HAVE_MODULES in config.h > > That's not enough. If configure doesn't detect that you have modules, > it's not setting the linker flags correctly and it won't work. > > Looks like BSDs don't have libdl which is why configure's test fails. > > Try -test7, I just updated it so that the check should work. > Thanks, but drac.so will not compile with this anymore. test2 does it cleanly, I will paste in my findings: 10:58 yeled@lazy:~/dovecot-0.99.10-test2$ export dovecot=~/dovecot-0.99.10-test2 10:58 yeled@lazy:~/dovecot-0.99.10-test2$ gcc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$dovecot -I$dovecot/src/lib drac.c -o drac.so -I/usr/pkg/lib/libdrac.a 10:59 yeled@lazy:~/dovecot-0.99.10-test2$ cd ../dovecot-0.99.10-test7/ 10:59 yeled@lazy:~/dovecot-0.99.10-test7$ export dovecot=~/dovecot-0.99.10-test7 10:59 yeled@lazy:~/dovecot-0.99.10-test7$ gcc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$dovecot -I$dovecot/src/lib drac.c -o drac.so -I/usr/pkg/lib/libdrac.a In file included from drac.c:14: /home/yeled/dovecot-0.99.10-test7/src/lib/lib.h:6: ../../config.h: No such file or directory In file included from /home/yeled/dovecot-0.99.10-test7/src/lib/lib.h:20, from drac.c:14: /home/yeled/dovecot-0.99.10-test7/src/lib/compat.h:17: #error uoff_t size not set 10:59 yeled@lazy:~/dovecot-0.99.10-test7$ weird? anyway test7 still does not fix these HAVE_MODULES issue. creating src/master/Makefile creating src/pop3/Makefile creating src/pop3-login/Makefile creating stamp.h creating dovecot.spec creating config.h Install prefix ...................... : /usr/local File offsets ........................ : 64bit Building with SSL support ........... : yes (OpenSSL) Building with IPv6 support .......... : yes Building with pop3 server ........... : yes Building with user database modules . : static passwd passwd-file Building with password lookup modules : passwd passwd-file 11:07 yeled@lazy:~/dovecot-0.99.10-test7$ grep MODU config.h /* #undef HAVE_MODULES */ -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From mem@mv.mv.com Thu May 29 22:53:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DC6AB2387F; Thu, 29 May 2003 22:53:50 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 75BEE23865 for ; Thu, 29 May 2003 22:53:46 +0300 (EEST) Received: (qmail 3583 invoked by uid 101); 29 May 2003 15:53:41 -0400 From: "Mark E. Mallett" Date: Thu, 29 May 2003 15:53:41 -0400 To: Farkas Levente Subject: Re: [Dovecot] the most serius problems [part 1] Message-ID: <20030529195340.GB24637@iridium.mv.net> References: <3ED4A199.9090501@bnap.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3ED4A199.9090501@bnap.hu> User-Agent: Mutt/1.4.1i cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 19:53:51 -0000 X-UID: 858 Status: O Content-Length: 1535 On Wed, May 28, 2003 at 01:46:33PM +0200, Farkas Levente wrote: > the first on is the load. > has anybody else use dovecot in a real enviromnt with at least hundreds > of users and at least 50 concurrent user at the same time? > it seems to me no one else just me. That seems like an awfully high percentage of users connecting- if I assume "hundreds" might mean 300, 1 out of every 6 users is connected at any given time? One of the servers running dovecot here has thousands of users. During the middle of the day I typically see 17-20 users connected at any given time. This has been known to increase to 50+ especially during prime time (evening). Over a period of 24 hours dovecot logins occur at the rate of around 2.5 logins per second. Now- most of our users are using POP rather than IMAP, but there is still a reasonable amount of IMAP activity. Plus I'm not sure that detail matters: POP logins use resources too, perhaps repeated POP logins use more than constantly-connected imap sessions. The load on the server due to dovecot is negligable. Most of the load is due to handling incoming mail. Obviously you are seeing something different- perhaps you are using features that we are not. I rather wish dovecot would log some more statistics, as I think has been mentioned already- like a record for logout as well as one for login, including number of messages scanned, left on server, downloaded, and deleted, plus total bytes transferred). These numbers would give a better picture of what's going on. -mm- From lfarkas@bnap.hu Thu May 29 23:22:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BDDA92387F; Thu, 29 May 2003 23:22:23 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 8DF6723866 for ; Thu, 29 May 2003 23:22:20 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id C456175400D for ; Thu, 29 May 2003 22:21:37 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 8EC783EB7 for ; Thu, 29 May 2003 22:22:18 +0200 (CEST) Received: from bnap.hu (eagle.int.bppiac.hu [192.168.255.2]) by mail2.bppiac.hu (Postfix) with ESMTP id A79713EB1 for ; Thu, 29 May 2003 22:22:17 +0200 (CEST) Message-ID: <3ED66BF9.80004@bnap.hu> Date: Thu, 29 May 2003 22:22:17 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021218 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] the most serius problems [part 1] References: <3ED4A199.9090501@bnap.hu> <20030529195340.GB24637@iridium.mv.net> In-Reply-To: <20030529195340.GB24637@iridium.mv.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 20:22:23 -0000 X-UID: 859 Status: O Content-Length: 2627 Mark E. Mallett wrote: > On Wed, May 28, 2003 at 01:46:33PM +0200, Farkas Levente wrote: > >>the first on is the load. >>has anybody else use dovecot in a real enviromnt with at least hundreds >>of users and at least 50 concurrent user at the same time? >>it seems to me no one else just me. > > > That seems like an awfully high percentage of users connecting- if I > assume "hundreds" might mean 300, 1 out of every 6 users is connected > at any given time? > > One of the servers running dovecot here has thousands of users. During > the middle of the day I typically see 17-20 users connected at any > given time. This has been known to increase to 50+ especially during > prime time (evening). Over a period of 24 hours dovecot logins occur > at the rate of around 2.5 logins per second. Now- most of our users > are using POP rather than IMAP, but there is still a reasonable amount > of IMAP activity. Plus I'm not sure that detail matters: POP logins > use resources too, perhaps repeated POP logins use more than > constantly-connected imap sessions. > > The load on the server due to dovecot is negligable. Most of the load > is due to handling incoming mail. Obviously you are seeing something > different- perhaps you are using features that we are not. > > I rather wish dovecot would log some more statistics, as I think has > been mentioned already- like a record for logout as well as one for > login, including number of messages scanned, left on server, > downloaded, and deleted, plus total bytes transferred). These numbers > would give a better picture of what's going on. the reason is simple there are about 300 users when they come in at the morning thay simple start OE6 and never exit from it just when they go home (why do they do so?). so in the prime I saw 126 imap connection at the same time. and most user has a real big mailboxes without any organization/folders (just inbox, sent and drafts). incoming mails are handled by postfix which is realy fast, reliable and almost no load at all. here everybody use imap since most people doesn't have an own desk (only 50 has) so everybody just sit down to the first free desk. in this case only the imap is the solution. the real load comes when indexing or reindexing is running (eg. if we delete all index file for same reason). in this case even 10 imap connections are able to create a load about 10 (while the cpu are 95% idle). and there is something wrong with 0.99.9 series. since now when I've to switch back to 0.99.8 it's a lot faster. -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Thu May 29 23:24:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C6A302387F; Thu, 29 May 2003 23:24:06 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 0FF2B23866 for ; Thu, 29 May 2003 23:24:05 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 8CBE675400D for ; Thu, 29 May 2003 22:23:23 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 5B2823EB7 for ; Thu, 29 May 2003 22:24:04 +0200 (CEST) Received: from bnap.hu (eagle.int.bppiac.hu [192.168.255.2]) by mail2.bppiac.hu (Postfix) with ESMTP id C3E973EB1 for ; Thu, 29 May 2003 22:24:03 +0200 (CEST) Message-ID: <3ED66C63.6030307@bnap.hu> Date: Thu, 29 May 2003 22:24:03 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021218 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] the most serius problems [part 1] References: <3ED4A199.9090501@bnap.hu> <20030529195340.GB24637@iridium.mv.net> In-Reply-To: <20030529195340.GB24637@iridium.mv.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 20:24:06 -0000 X-UID: 860 Status: O Content-Length: 1876 what's more we plan to centralize two more companies mailbox (about 50+200 mailbox) so we need a system which able to handle about 500 mailbox and about 200 concurrent users. Mark E. Mallett wrote: > On Wed, May 28, 2003 at 01:46:33PM +0200, Farkas Levente wrote: > >>the first on is the load. >>has anybody else use dovecot in a real enviromnt with at least hundreds >>of users and at least 50 concurrent user at the same time? >>it seems to me no one else just me. > > > That seems like an awfully high percentage of users connecting- if I > assume "hundreds" might mean 300, 1 out of every 6 users is connected > at any given time? > > One of the servers running dovecot here has thousands of users. During > the middle of the day I typically see 17-20 users connected at any > given time. This has been known to increase to 50+ especially during > prime time (evening). Over a period of 24 hours dovecot logins occur > at the rate of around 2.5 logins per second. Now- most of our users > are using POP rather than IMAP, but there is still a reasonable amount > of IMAP activity. Plus I'm not sure that detail matters: POP logins > use resources too, perhaps repeated POP logins use more than > constantly-connected imap sessions. > > The load on the server due to dovecot is negligable. Most of the load > is due to handling incoming mail. Obviously you are seeing something > different- perhaps you are using features that we are not. > > I rather wish dovecot would log some more statistics, as I think has > been mentioned already- like a record for logout as well as one for > login, including number of messages scanned, left on server, > downloaded, and deleted, plus total bytes transferred). These numbers > would give a better picture of what's going on. > > -mm- > -- Levente "Si vis pacem para bellum!" From tss@iki.fi Fri May 30 02:17:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 75FD7238C6; Fri, 30 May 2003 02:17:22 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9BD332387F for ; Fri, 30 May 2003 02:17:19 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id D969A5C896C6; Fri, 30 May 2003 02:17:18 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054250238.23632.343.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 02:17:18 +0300 Subject: [Dovecot] 0.99.10-test8 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 23:17:22 -0000 X-UID: 861 Status: O http://dovecot.procontrol.fi/test/ Again major maildir syncing updates: - uidlist file is accessed and rewritten a lot less often now than before - mail duplicates are detected and handled properly by renaming them to new base name - message flag updates and expunging before did two full syncs for cur/ directory. now it does only one. - some fixes to syncing in read-only / out-of-quota conditions - before we did always a full sync in cur/ directory when mailbox was opened. now it's done only when needed. - fixed some crash/index corruption cases I think syncing should be now very close to having perfect possible performance. From tss@iki.fi Fri May 30 02:51:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7966F238C8; Fri, 30 May 2003 02:51:47 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B04A223865 for ; Fri, 30 May 2003 02:51:45 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 6266D5C896C6; Fri, 30 May 2003 02:51:45 +0300 (EEST) Subject: Re: [Dovecot] the most serius problems [part 1] From: Timo Sirainen To: Dovecot List In-Reply-To: <3ED529BC.1040904@bnap.hu> References: <3ED4A199.9090501@bnap.hu> <1054123303.3131.292.camel@hurina> <3ED529BC.1040904@bnap.hu> Content-Type: multipart/mixed; boundary="=-DPP3AhNVsdSqcRxuuQpx" Organization: Message-Id: <1054252304.19156.379.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 02:51:45 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 23:51:47 -0000 X-UID: 862 Status: O Content-Length: 3958 --=-DPP3AhNVsdSqcRxuuQpx Content-Type: text/plain Content-Transfer-Encoding: 7bit On Thu, 2003-05-29 at 00:27, Farkas Levente wrote: > > You could kludge Dovecot to use INBOX. prefix, or Courier to not use it, > > but there's no pretty way to do it really. > > > > how can I do that? > do you mean there is a way to configure courier not to use INBOX as a > prefix? No, I mean you can do it by messing enough with the sources. Hmm. I don't think it would be too difficult. OK, here's patch against 1.7.0. I tested a few commands manually and they seemed to work, but maybe I missed something. If you plan on switching between Courier <-> Dovecot, you should keep courierimapuiddb and dovecot-uidlist files synchronized or clients will download the whole mailbox again every time you do the switch. Easiest way to do this would be to just change Dovecot to use courierimapuiddb file directly, you can change that from src/lib-index/maildir/maildir-uidlist.h Subscription file would be also nice to keep synced. You set Dovecot to use courierimapsubscribed from src/lib-storage/subscription-file/subscription-file.c > or is there any way to configure dovecot to use INBOX as a prefix? Not yet, but it's in TODO along with other namespace configuration. --=-DPP3AhNVsdSqcRxuuQpx Content-Disposition: attachment; filename=courier-noinbox.diff Content-Type: text/x-patch; name=courier-noinbox.diff; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable diff -ru courier-imap-1.7.0/imap/imapd.c courier-imap-1.7.0-new/imap/imapd.= c --- courier-imap-1.7.0/imap/imapd.c 2003-01-23 15:02:39.000000000 +0200 +++ courier-imap-1.7.0-new/imap/imapd.c 2003-05-30 02:36:59.000000000 +0300 @@ -334,24 +334,11 @@ else { #if HAVE_STRNCASECMP - if (strncasecmp(arg, INBOX, sizeof(INBOX)-1)) + if (strncasecmp(arg, INBOX, sizeof(INBOX)-1) =3D=3D 0) #else - if (strnicmp(arg, INBOX, sizeof(INBOX)-1)) + if (strnicmp(arg, INBOX, sizeof(INBOX)-1) =3D=3D 0) #endif - { - free(p); - return (0); - } - - arg +=3D sizeof(INBOX)-1; - - if (*arg =3D=3D 0) arg=3Dmaildir_folderdir(0, 0); - else if (*arg++ !=3D '.') - { - free(p); - return (0); - } else arg=3Dmaildir_folderdir(0, arg); } @@ -2475,7 +2462,7 @@ { if (nexttoken()->tokentype !=3D IT_EOL) return (-1); - writes("* NAMESPACE ((\"INBOX.\" \".\")) NIL ((\"" + writes("* NAMESPACE ((\"\" \".\")) NIL ((\"" SHARED ".\" \".\"))\r\n"); writes(tag); writes(" OK NAMESPACE completed.\r\n"); diff -ru courier-imap-1.7.0/imap/mailboxlist.c courier-imap-1.7.0-new/imap/= mailboxlist.c --- courier-imap-1.7.0/imap/mailboxlist.c 2002-07-02 23:01:37.000000000 +03= 00 +++ courier-imap-1.7.0-new/imap/mailboxlist.c 2003-05-30 02:42:09.000000000= +0300 @@ -394,10 +394,11 @@ free(p); continue; } - strcpy(p, "INBOX"); =20 - if (strcmp(de->d_name, ".")) - strcat(p, de->d_name); + if (strcmp(de->d_name, ".") =3D=3D 0) + strcpy(p, "INBOX"); + else + strcpy(p, de->d_name+1); =20 if (bad_pattern) { @@ -572,22 +573,20 @@ =20 static int match_mailbox(char *name, char *pattern) { -size_t i; - /* First component, INBOX, is case insensitive */ =20 - for (i=3D0; name[i] && name[i] !=3D HIERCH; i++) - name[i]=3Dtoupper( (int)(unsigned char)name[i] ); + if (strncasecmp(name, "INBOX", 5) =3D=3D 0) + memcpy(name, "INBOX", 5); =20 - for (i=3D0; pattern[i] && pattern[i] !=3D HIERCH; i++) - pattern[i]=3Dtoupper( (int)(unsigned char)pattern[i] ); + if (strncasecmp(pattern, "INBOX", 5) =3D=3D 0) + memcpy(pattern, "INBOX", 5); =20 /* ... except that "shared" should be lowercase ... */ =20 - if (memcmp(name, "SHARED", 6) =3D=3D 0) + if (strncasecmp(name, "SHARED", 6) =3D=3D 0) memcpy(name, "shared", 6); =20 - if (memcmp(pattern, "SHARED", 6) =3D=3D 0) + if (strncasecmp(pattern, "SHARED", 6) =3D=3D 0) memcpy(pattern, "shared", 6); =20 return (match_recursive(name, pattern, HIERCH)); --=-DPP3AhNVsdSqcRxuuQpx-- From tss@iki.fi Fri May 30 02:53:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 33E74238C8; Fri, 30 May 2003 02:53:01 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B1F2023865 for ; Fri, 30 May 2003 02:52:59 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 8A3AD5C896C6; Fri, 30 May 2003 02:52:59 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030529010911.GA19139@lazy.spodder.com> References: <20030515011306.GA3731@lazy.spodder.com> <20030515043029.GA18617@lazy.spodder.com> <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030528050825.GA10934@lazy.spodder.com> <1054121419.3131.275.camel@hurina> <20030529010911.GA19139@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054252379.23632.381.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 02:52:59 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 23:53:01 -0000 X-UID: 863 Status: O On Thu, 2003-05-29 at 04:09, Charlie Allom wrote: > Thanks, but drac.so will not compile with this anymore. > > In file included from drac.c:14: > /home/yeled/dovecot-0.99.10-test7/src/lib/lib.h:6: ../../config.h: No such file or directory That looks again like unconfigured dovecot source tree. > weird? anyway test7 still does not fix these HAVE_MODULES issue. Right. I messed that up :) Get test8, that should do it. From tss@iki.fi Fri May 30 02:54:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 175A4238CE; Fri, 30 May 2003 02:54:27 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A5A2923865 for ; Fri, 30 May 2003 02:54:25 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 8694E5C896C6; Fri, 30 May 2003 02:54:25 +0300 (EEST) Subject: Re: [Dovecot] the most serius problems [part 3] From: Timo Sirainen To: Dovecot List In-Reply-To: <3ED53F8B.6080200@bnap.hu> References: <3ED53F8B.6080200@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054252465.23632.383.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 02:54:25 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 23:54:27 -0000 X-UID: 864 Status: O On Thu, 2003-05-29 at 02:00, Farkas Levente wrote: > hi, > so the third problem is ssl. the imaps is still not working (and I > assume the same apply to pop3s too). > I already send the log file which was generated when verbose ssl is set. BTW. OpenSSL problems can be fixed by using GNUTLS instead. I'll try to figure out the openssl some day though. From tss@iki.fi Fri May 30 03:02:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 49B22238CE; Fri, 30 May 2003 03:02:49 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C182D23865 for ; Fri, 30 May 2003 03:02:47 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 908DA5C896C6; Fri, 30 May 2003 03:02:47 +0300 (EEST) Subject: Re: [Dovecot] the most serius problems [part 2] From: Timo Sirainen To: Dovecot List In-Reply-To: <3ED53F08.3000709@bnap.hu> References: <3ED53F08.3000709@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054252967.19156.389.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 03:02:47 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 00:02:49 -0000 X-UID: 865 Status: O On Thu, 2003-05-29 at 01:58, Farkas Levente wrote: > hi, > the second thing is the webmail. we use squirrelmail. actualy I don't > know whose fault is, but they told that them imap server's:-) > first problems is that those mails which has empty body (even if they > has an attachments) simple not shown in the mail list (as they even not > exists). it'd be nice to check this and find the reason of the problem. > this happend with more people. What squirrelmail version? Can you send one such mail? I tested with 1.4.0 RC1 (or 1:1.3.2+1.4.0rc1-1 in Debian) and it seemed to work just fine. From bob@cemetery.homeunix.org Fri May 30 03:33:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A3EDE238C8; Fri, 30 May 2003 03:33:50 +0300 (EEST) Received: from cemetery.homeunix.org (joeldriver.plus.com [212.159.87.165]) by danu.procontrol.fi (Postfix) with ESMTP id 6E68B238C6 for ; Fri, 30 May 2003 03:33:46 +0300 (EEST) Received: from snot (snot.flatnet [192.168.0.8]) by cemetery.homeunix.org (8.12.9/8.12.6) with SMTP id h4U0Xeg6021366 for ; Fri, 30 May 2003 01:33:40 +0100 (BST) Date: Fri, 30 May 2003 01:33:36 +0100 From: Andrew Basterfield To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10-test8 Message-Id: <20030530013336.5d345c8e.bob@cemetery.homeunix.org> In-Reply-To: <1054250238.23632.343.camel@hurina> References: <1054250238.23632.343.camel@hurina> X-Mailer: Sylpheed version 0.8.11claws (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="B'fDWTIjAk=.)VfJ" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 00:33:50 -0000 X-UID: 866 Status: O Content-Length: 1655 --B'fDWTIjAk=.)VfJ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On 30 May 2003 02:17:18 +0300, Timo Sirainen wrote: > http://dovecot.procontrol.fi/test/ > > Again major maildir syncing updates: > - uidlist file is accessed and rewritten a lot less often now than > before > - mail duplicates are detected and handled properly by renaming them > to > new base name > - message flag updates and expunging before did two full syncs for > cur/ > directory. now it does only one. > - some fixes to syncing in read-only / out-of-quota conditions > - before we did always a full sync in cur/ directory when mailbox was > opened. now it's done only when needed. > - fixed some crash/index corruption cases > > I think syncing should be now very close to having perfect possible > performance. > cc -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/local/include -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c module-dir.c module-dir.c: In function `module_load': module-dir.c:36: `RTLD_GLOBAL' undeclared (first use in this function) module-dir.c:36: (Each undeclared identifier is reported only once module-dir.c:36: for each function it appears in.) module-dir.c:36: `RTLD_NOW' undeclared (first use in this function) --Andrew -- http://cemetery.homeunix.org --B'fDWTIjAk=.)VfJ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+1qbkj3ZMDwYLJGARAj+XAJwLkPJxTH1Hly1l4cfKy42xBGTytgCfbMrs uSHPYE16O977KgjQJKTZhns= =iXiF -----END PGP SIGNATURE----- --B'fDWTIjAk=.)VfJ-- From tss@iki.fi Fri May 30 04:04:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D6B7D23866; Fri, 30 May 2003 04:04:55 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2CA2523845 for ; Fri, 30 May 2003 04:04:53 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 01F065C896C6; Fri, 30 May 2003 04:04:52 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10-test8 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030530013336.5d345c8e.bob@cemetery.homeunix.org> References: <1054250238.23632.343.camel@hurina> <20030530013336.5d345c8e.bob@cemetery.homeunix.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054256692.23632.393.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 04:04:52 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 01:04:56 -0000 X-UID: 867 Status: O On Fri, 2003-05-30 at 03:33, Andrew Basterfield wrote: > function it appears in.) module-dir.c:36: `RTLD_NOW' undeclared (first > use in this function) Hmph, BSDs. Fixed in 0.99.10-test9. From tss@iki.fi Fri May 30 04:08:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 312F823866; Fri, 30 May 2003 04:08:42 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B4F0B23845 for ; Fri, 30 May 2003 04:08:40 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 8B17B5C896C6; Fri, 30 May 2003 04:08:40 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10-test8 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1054256692.23632.393.camel@hurina> References: <1054250238.23632.343.camel@hurina> <20030530013336.5d345c8e.bob@cemetery.homeunix.org> <1054256692.23632.393.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054256920.23632.395.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 04:08:40 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 01:08:42 -0000 X-UID: 868 Status: O On Fri, 2003-05-30 at 04:04, Timo Sirainen wrote: > On Fri, 2003-05-30 at 03:33, Andrew Basterfield wrote: > > function it appears in.) module-dir.c:36: `RTLD_NOW' undeclared (first > > use in this function) > > Hmph, BSDs. Fixed in 0.99.10-test9. And there's another one in auth/auth-module.c. test10 out soon.. From charlie@rubberduck.com Fri May 30 04:28:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CECD523866; Fri, 30 May 2003 04:28:00 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 98D7E23865 for ; Fri, 30 May 2003 04:27:55 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 4596B902E; Fri, 30 May 2003 10:25:37 +1000 (EST) Date: Fri, 30 May 2003 10:25:37 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030530002537.GA1552@lazy.spodder.com> References: <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030528050825.GA10934@lazy.spodder.com> <1054121419.3131.275.camel@hurina> <20030529010911.GA19139@lazy.spodder.com> <1054252379.23632.381.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1054252379.23632.381.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 01:28:01 -0000 X-UID: 869 Status: O Content-Length: 1106 On Fri, May 30, 2003 at 02:52:59AM +0300, Timo Sirainen wrote: > On Thu, 2003-05-29 at 04:09, Charlie Allom wrote: > > Thanks, but drac.so will not compile with this anymore. > > > > In file included from drac.c:14: > > /home/yeled/dovecot-0.99.10-test7/src/lib/lib.h:6: ../../config.h: No such file or directory > > That looks again like unconfigured dovecot source tree. yeah doesn't it. huh. > > weird? anyway test7 still does not fix these HAVE_MODULES issue. > > Right. I messed that up :) Get test8, that should do it. You are so close. May 30 10:20:46 lazy dovecot: Dovecot starting up May 30 10:20:49 lazy imap-login: Login: pia [203.31.232.2] May 30 10:20:49 lazy imap(pia): dlopen(/usr/local/lib/dovecot/imap/drac.so) failed: /usr/local/lib/dovecot/imap/drac.so: Undefined PLT symbol "dracauth" (symnum = 28) That look really weird. Remember instead of -ldrac I used -I/usr/pkg/lib/libdrac.a http://rubberduck.com/~yeled/NetBSD/dovecot.ktruss.3.txt C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From tss@iki.fi Fri May 30 04:43:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 35BE723866; Fri, 30 May 2003 04:43:13 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D08A323865 for ; Fri, 30 May 2003 04:43:09 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 9D36D5C896C6; Fri, 30 May 2003 04:43:09 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030530002537.GA1552@lazy.spodder.com> References: <200305142137.11186.jryden@thebox.our-own.net> <20030516191335.GA196@dust.uchicago.edu> <20030517063125.GA23270@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030528050825.GA10934@lazy.spodder.com> <1054121419.3131.275.camel@hurina> <20030529010911.GA19139@lazy.spodder.com> <1054252379.23632.381.camel@hurina> <20030530002537.GA1552@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054258989.23632.400.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 04:43:09 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 01:43:13 -0000 X-UID: 870 Status: O On Fri, 2003-05-30 at 03:25, Charlie Allom wrote: > dlopen(/usr/local/lib/dovecot/imap/drac.so) failed: > /usr/local/lib/dovecot/imap/drac.so: Undefined PLT symbol "dracauth" > (symnum = 28) > > That look really weird. Remember instead of -ldrac I used > -I/usr/pkg/lib/libdrac.a -I? not -l? rather just give libdrac.a directly without either one. But I'm not sure if that works. You may need to extract the libdrac.a and give the extracted .o files to gcc. Something like: mkdir dracobj cd dracobj ar x /usr/pkg/lib/libdrac.a cd .. gcc drac.c ..etc.. dracobj/*.o From charlie@rubberduck.com Fri May 30 05:08:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C3EDC23866; Fri, 30 May 2003 05:08:18 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 8C05723865 for ; Fri, 30 May 2003 05:08:16 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 78CCA9011; Fri, 30 May 2003 12:08:05 +1000 (EST) Date: Fri, 30 May 2003 12:08:05 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030530020518.GG1552@lazy.spodder.com> References: <20030517063125.GA23270@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030528050825.GA10934@lazy.spodder.com> <1054121419.3131.275.camel@hurina> <20030529010911.GA19139@lazy.spodder.com> <1054252379.23632.381.camel@hurina> <20030530002537.GA1552@lazy.spodder.com> <1054258989.23632.400.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1054258989.23632.400.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 02:08:18 -0000 X-UID: 871 Status: O Content-Length: 1387 On Fri, May 30, 2003 at 04:43:09AM +0300, Timo Sirainen wrote: > On Fri, 2003-05-30 at 03:25, Charlie Allom wrote: > > dlopen(/usr/local/lib/dovecot/imap/drac.so) failed: > > /usr/local/lib/dovecot/imap/drac.so: Undefined PLT symbol "dracauth" > > (symnum = 28) > > > > That look really weird. Remember instead of -ldrac I used > > -I/usr/pkg/lib/libdrac.a > > -I? not -l? rather just give libdrac.a directly without either one. > > But I'm not sure if that works. You may need to extract the libdrac.a > and give the extracted .o files to gcc. Something like: > > mkdir dracobj > cd dracobj > ar x /usr/pkg/lib/libdrac.a > cd .. > gcc drac.c ..etc.. dracobj/*.o > It works! I admire your stamina. May 30 12:02:15 lazy pop3-login: Login: pia [66.93.191.111] *** authlog *** May 30 12:02:15 lazy rpcbind: connect from ::1 to getport/addr(900101) May 30 12:02:15 lazy rpcbind: connect from 127.0.0.1 to getport/addr(900101) 12:02 yeled@lazy:~$ db btree /usr/pkg/etc/dracd.db 203.31.232.2 1054261313 66.93.191.111 1054261335 I did exactly what you said above with test9. Thanks Timo. Is it possible to get it to do this without using 'ar' ? I will work on this being incorporated into NetBSD pkgsrc as soon as I can make it a clean cut. C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From tss@iki.fi Fri May 30 05:13:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E5E9623866; Fri, 30 May 2003 05:13:01 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 658EB23865 for ; Fri, 30 May 2003 05:12:59 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 33ADD5C896C6; Fri, 30 May 2003 05:12:59 +0300 (EEST) Subject: Re: [Dovecot] Speed and memory probs writing large Maildir From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3ED4469E.8040207@firstpr.com.au> References: <3ED4469E.8040207@firstpr.com.au> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054260778.19156.408.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 05:12:59 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 02:13:02 -0000 X-UID: 872 Status: O On Wed, 2003-05-28 at 08:18, Robin Whittle wrote: > When writing 2000 x 1k messages, it is totally different. Here are some > times for writing from a Netscape 4.77 local mailbox to Dovecot and to > Courier IMAP. Want to try this with 0.99.10-test11? :) It now keeps the index file opened for 10 seconds before really closing it, that should help with the speed quite a lot. I just tested copying 4000 messages myself, I didn't notice any actual increase in speed, but CPU usage dropped from a few percent to 0.4%. It still does a few unnecessary things every time mailbox is opened (ie. at every APPEND command). I think I shouldn't try to mkdir() the cur, new and tmp dirs immediately. Those could be more easily created if/when stat() fails while syncing. From tss@iki.fi Fri May 30 05:17:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DD9E023866; Fri, 30 May 2003 05:17:56 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 16B1023865 for ; Fri, 30 May 2003 05:17:55 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3162C5C896C6; Fri, 30 May 2003 05:17:54 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030530020518.GG1552@lazy.spodder.com> References: <20030517063125.GA23270@lazy.spodder.com> <1053502215.1214.337.camel@hurina> <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030528050825.GA10934@lazy.spodder.com> <1054121419.3131.275.camel@hurina> <20030529010911.GA19139@lazy.spodder.com> <1054252379.23632.381.camel@hurina> <20030530002537.GA1552@lazy.spodder.com> <1054258989.23632.400.camel@hurina> <20030530020518.GG1552@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054261073.19156.413.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 05:17:54 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 02:17:57 -0000 X-UID: 873 Status: O On Fri, 2003-05-30 at 05:08, Charlie Allom wrote: > It works! I admire your stamina. Finally :) > Thanks Timo. Is it possible to get it to do this without using 'ar' ? Well, did you try just giving the /usr/pkg/lib/libdrac.a to gcc? :) I remember there was some problems before with trying to give .a library to libtool, but looks like my gcc handles that just fine at least now. From bob@cemetery.homeunix.org Fri May 30 05:28:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C173A23866; Fri, 30 May 2003 05:28:22 +0300 (EEST) Received: from cemetery.homeunix.org (joeldriver.plus.com [212.159.87.165]) by danu.procontrol.fi (Postfix) with ESMTP id B7CB923845 for ; Fri, 30 May 2003 05:28:16 +0300 (EEST) Received: from snot (snot.flatnet [192.168.0.8]) by cemetery.homeunix.org (8.12.9/8.12.6) with SMTP id h4U2Rkg6025347 for ; Fri, 30 May 2003 03:27:46 +0100 (BST) Date: Fri, 30 May 2003 03:27:42 +0100 From: Andrew Basterfield To: dovecot@procontrol.fi Message-Id: <20030530032742.08e28964.bob@cemetery.homeunix.org> X-Mailer: Sylpheed version 0.8.11claws (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.Rjwv2s5T+KCBWF" Subject: [Dovecot] dovecot 0.99.10-test10 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 02:28:22 -0000 X-UID: 874 Status: O --=.Rjwv2s5T+KCBWF Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hiya builds fine on BSD now (thanks) Now I am getting index corruption again May 30 03:11:53 snigger imap(bob): Corrupted binary tree file /home/bob/Mail/.INBOX/.imap.index.tree: UID to be inserted isn't higher than existing (1 <= 1) and so on until the client hangs test7 is stable here. Also what are the correct permissions for /var/run/dovecot/login? I get a message about correcting the permissions every time I start dovecot --Andrew -- http://cemetery.homeunix.org --=.Rjwv2s5T+KCBWF Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+1sGij3ZMDwYLJGARAhtBAJ9UvPDNRW/Vc1Z65iCMIOcwNMOxRgCfZOSe o/ZOiqsIPsFsazrhdlFNcOo= =nQXR -----END PGP SIGNATURE----- --=.Rjwv2s5T+KCBWF-- From rspier@pobox.com Fri May 30 07:07:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2143323866; Fri, 30 May 2003 07:07:55 +0300 (EEST) Received: from pimout1-ext.prodigy.net (pimout1-ext.prodigy.net [207.115.63.77]) by danu.procontrol.fi (Postfix) with ESMTP id 22DCD23865 for ; Fri, 30 May 2003 07:07:52 +0300 (EEST) Received: from localhost.localdomain (adsl-64-161-172-111.dsl.lsan03.pacbell.net [64.161.172.111]) h4U47nPg150296 for ; Fri, 30 May 2003 00:07:50 -0400 Received: from bear.rls.cx (bear [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id h4U47lKf003668 for ; Thu, 29 May 2003 21:07:47 -0700 Date: Thu, 29 May 2003 21:07:47 -0700 Message-ID: From: Robert Spier To: Dovecot List Subject: Re: [Dovecot] the most serius problems [part 3] In-Reply-To: <1054252465.23632.383.camel@hurina> References: <3ED53F8B.6080200@bnap.hu> <1054252465.23632.383.camel@hurina> User-Agent: Wanderlust/2.10.0 (Venus) XEmacs/21.4 (Rational FORTRAN) MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 04:07:55 -0000 X-UID: 875 Status: O > BTW. OpenSSL problems can be fixed by using GNUTLS instead. I'll try to > figure out the openssl some day though. Or, if you don't need STARTTLS, you can use stunnel. -R From charlie@rubberduck.com Fri May 30 07:11:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3C6FE23866; Fri, 30 May 2003 07:11:33 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.242.30]) by danu.procontrol.fi (Postfix) with ESMTP id 5EC4623865 for ; Fri, 30 May 2003 07:11:29 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 9B2C98F0B; Fri, 30 May 2003 14:11:18 +1000 (EST) Date: Fri, 30 May 2003 14:11:18 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] DRAC support? Message-ID: <20030530041118.GK1552@lazy.spodder.com> References: <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030528050825.GA10934@lazy.spodder.com> <1054121419.3131.275.camel@hurina> <20030529010911.GA19139@lazy.spodder.com> <1054252379.23632.381.camel@hurina> <20030530002537.GA1552@lazy.spodder.com> <1054258989.23632.400.camel@hurina> <20030530020518.GG1552@lazy.spodder.com> <1054261073.19156.413.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1054261073.19156.413.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 04:11:33 -0000 X-UID: 876 Status: O On Fri, May 30, 2003 at 05:17:54AM +0300, Timo Sirainen wrote: > On Fri, 2003-05-30 at 05:08, Charlie Allom wrote: > > It works! I admire your stamina. > > Finally :) > > > Thanks Timo. Is it possible to get it to do this without using 'ar' ? > > Well, did you try just giving the /usr/pkg/lib/libdrac.a to gcc? :) I > remember there was some problems before with trying to give .a library > to libtool, but looks like my gcc handles that just fine at least now. > You're right. gcc picks it up fine. I will submit this to pkgsrc once you give out the next release .. as I have a feelign it is soon ? Will you include drac.c ? C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From tss@iki.fi Fri May 30 13:24:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6D4D023866; Fri, 30 May 2003 13:24:53 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B165423845 for ; Fri, 30 May 2003 13:24:51 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 6FD1E5C896C6; Fri, 30 May 2003 13:24:51 +0300 (EEST) Subject: Re: [Dovecot] dovecot 0.99.10-test10 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030530032742.08e28964.bob@cemetery.homeunix.org> References: <20030530032742.08e28964.bob@cemetery.homeunix.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054290290.19156.426.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 13:24:51 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 10:24:53 -0000 X-UID: 877 Status: O On Fri, 2003-05-30 at 05:27, Andrew Basterfield wrote: > Now I am getting index corruption again > > May 30 03:11:53 snigger imap(bob): Corrupted binary tree file > /home/bob/Mail/.INBOX/.imap.index.tree: UID to be inserted isn't higher > than existing (1 <= 1) Weird. Is this easily reproduceable? I tried for a while with my OpenBSD 3.3/x86, worked fine. Also I can't really even think of when the above error could happen unless something was totally messed up. > Also what are the correct permissions for /var/run/dovecot/login? I get > a message about correcting the permissions every time I start dovecot 0750 mode, owned by root (or it uses geteuid() actually), group for login_user's primary group. From lfarkas@bnap.hu Fri May 30 13:28:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3404E23866; Fri, 30 May 2003 13:28:02 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 8A8AF23845 for ; Fri, 30 May 2003 13:27:59 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 5ED8F754031 for ; Fri, 30 May 2003 12:27:15 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 4E88C3EB8 for ; Fri, 30 May 2003 12:27:57 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 33E083EB7 for ; Fri, 30 May 2003 12:27:57 +0200 (CEST) Message-ID: <3ED7322D.2090206@bnap.hu> Date: Fri, 30 May 2003 12:27:57 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] the most serius problems [part 1] References: <3ED4A199.9090501@bnap.hu> <1054123303.3131.292.camel@hurina> <3ED529BC.1040904@bnap.hu> <1054252304.19156.379.camel@hurina> In-Reply-To: <1054252304.19156.379.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 10:28:02 -0000 X-UID: 878 Status: O Timo Sirainen wrote: > On Thu, 2003-05-29 at 00:27, Farkas Levente wrote: > >> > You could kludge Dovecot to use INBOX. prefix, or Courier to not use it, >> > but there's no pretty way to do it really. >> > >> >>how can I do that? >>do you mean there is a way to configure courier not to use INBOX as a >>prefix? > > > No, I mean you can do it by messing enough with the sources. Hmm. I > don't think it would be too difficult. OK, here's patch against 1.7.0. I > tested a few commands manually and they seemed to work, but maybe I > missed something. thanks!!! > If you plan on switching between Courier <-> Dovecot, you should keep > courierimapuiddb and dovecot-uidlist files synchronized or clients will > download the whole mailbox again every time you do the switch. Easiest that's not a problem since I won't like to switch to often and it's automatic. -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Fri May 30 14:39:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4156623866; Fri, 30 May 2003 14:39:12 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 8195523865 for ; Fri, 30 May 2003 14:39:08 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id DE443754030 for ; Fri, 30 May 2003 13:38:22 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 883633EB7 for ; Fri, 30 May 2003 13:39:05 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 70DD53EB1 for ; Fri, 30 May 2003 13:39:05 +0200 (CEST) Message-ID: <3ED742D9.30705@bnap.hu> Date: Fri, 30 May 2003 13:39:05 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] the most serius problems [part 2] References: <3ED53F08.3000709@bnap.hu> <1054252967.19156.389.camel@hurina> In-Reply-To: <1054252967.19156.389.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 11:39:12 -0000 X-UID: 879 Status: O Timo Sirainen wrote: > On Thu, 2003-05-29 at 01:58, Farkas Levente wrote: > >>hi, >>the second thing is the webmail. we use squirrelmail. actualy I don't >>know whose fault is, but they told that them imap server's:-) >>first problems is that those mails which has empty body (even if they >>has an attachments) simple not shown in the mail list (as they even not >>exists). it'd be nice to check this and find the reason of the problem. >>this happend with more people. > > > What squirrelmail version? Can you send one such mail? > > I tested with 1.4.0 RC1 (or 1:1.3.2+1.4.0rc1-1 in Debian) and it seemed > to work just fine. I send you the mailbox as I used to do... -- Levente "Si vis pacem para bellum!" From tss@iki.fi Fri May 30 14:59:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0D52E23866; Fri, 30 May 2003 14:59:07 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1C35923865 for ; Fri, 30 May 2003 14:59:02 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id E0EA35C896C6; Fri, 30 May 2003 14:59:01 +0300 (EEST) Subject: Re: [Dovecot] DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030530041118.GK1552@lazy.spodder.com> References: <20030521073959.GD27088@lazy.spodder.com> <1053508449.1218.348.camel@hurina> <20030528050825.GA10934@lazy.spodder.com> <1054121419.3131.275.camel@hurina> <20030529010911.GA19139@lazy.spodder.com> <1054252379.23632.381.camel@hurina> <20030530002537.GA1552@lazy.spodder.com> <1054258989.23632.400.camel@hurina> <20030530020518.GG1552@lazy.spodder.com> <1054261073.19156.413.camel@hurina> <20030530041118.GK1552@lazy.spodder.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054295941.23632.447.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 30 May 2003 14:59:01 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 11:59:07 -0000 X-UID: 880 Status: O On Fri, 2003-05-30 at 07:11, Charlie Allom wrote: > gcc picks it up fine. I will submit this to pkgsrc once you give out > the next release .. as I have a feelign it is soon ? Depends, it'll come when people stop having problems with it :) > Will you include drac.c ? No. I'll leave it to patches directory. From dgc@uchicago.edu Fri May 30 17:32:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7B16C23866; Fri, 30 May 2003 17:32:10 +0300 (EEST) Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id D5CB023845 for ; Fri, 30 May 2003 17:32:05 +0300 (EEST) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id h4UEW1i11660; Fri, 30 May 2003 09:32:01 -0500 (CDT) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Fri, 30 May 2003 09:32:01 -0500 From: David Champion To: Timo Sirainen Message-ID: <20030530143201.GZ676@dust.uchicago.edu> Mail-Followup-To: Timo Sirainen , dovecot@procontrol.fi References: <20030528050825.GA10934@lazy.spodder.com> <1054121419.3131.275.camel@hurina> <20030529010911.GA19139@lazy.spodder.com> <1054252379.23632.381.camel@hurina> <20030530002537.GA1552@lazy.spodder.com> <1054258989.23632.400.camel@hurina> <20030530020518.GG1552@lazy.spodder.com> <1054261073.19156.413.camel@hurina> <20030530041118.GK1552@lazy.spodder.com> <1054295941.23632.447.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1054295941.23632.447.camel@hurina> User-Agent: Mutt/1.5.2i cc: dovecot@procontrol.fi Subject: [Dovecot] Re: DRAC support? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 14:32:10 -0000 X-UID: 881 Status: O * On 2003.05.30, in <1054295941.23632.447.camel@hurina>, * "Timo Sirainen" wrote: > > > Will you include drac.c ? > > No. I'll leave it to patches directory. ./configure --enable-drac ? Shouldn't add any extra weight to the --disable-drac build. -- -D. dgc@uchicago.edu NSIT University of Chicago When using any driving directions or map, it's a good idea to do a reality check and make sure the road still exists, watch out for construction, and follow all traffic safety precautions. From charlieb-dovecot@e-smith.com Fri May 30 23:23:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 662FA23866; Fri, 30 May 2003 23:23:32 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 2C4B923845 for ; Fri, 30 May 2003 23:23:30 +0300 (EEST) Received: (qmail 22029 invoked by uid 404); 30 May 2003 20:23:28 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 30 May 2003 16:23:27 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 30 May 2003 20:23:25 -0000 Received: (qmail 29153 invoked from network); 30 May 2003 20:22:50 -0000 Received: from unknown (10.35.25.57) by allspice.nssg.mitel.com with QMQP; 30 May 2003 20:22:50 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 30 May 2003 20:29:43 -0000 Date: Fri, 30 May 2003 16:29:43 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Timo Sirainen Subject: mkdir {cur,tmp,new}? (was Re: [Dovecot] Speed and memory probs writing large Maildir) In-Reply-To: <1054260778.19156.408.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 20:23:32 -0000 X-UID: 882 Status: O On 30 May 2003, Timo Sirainen wrote: > It still does a few unnecessary things every time mailbox is opened (ie. > at every APPEND command). I think I shouldn't try to mkdir() the cur, > new and tmp dirs immediately. Those could be more easily created if/when > stat() fails while syncing. Shouldn't the maildir only be created in response to a CREATE command. It certainly shouldn't be as the result of an APPEND: If the destination mailbox does not exist, a server MUST return an error, and MUST NOT automatically create the mailbox. I would interpret any of cur, new and tmp being missing as "mailbox does not exist". -- Charlie Brady charlie_brady@mitel.com From charlieb-dovecot@e-smith.com Fri May 30 23:29:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A9C9823866; Fri, 30 May 2003 23:29:20 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id A20E723845 for ; Fri, 30 May 2003 23:29:17 +0300 (EEST) Received: (qmail 25569 invoked by uid 404); 30 May 2003 20:29:16 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 30 May 2003 16:29:16 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 30 May 2003 20:29:16 -0000 Received: (qmail 31532 invoked from network); 30 May 2003 20:29:14 -0000 Received: from unknown (10.35.25.57) by allspice.nssg.mitel.com with QMQP; 30 May 2003 20:29:14 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 30 May 2003 20:36:07 -0000 Date: Fri, 30 May 2003 16:36:07 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Robert Spier Subject: Re: [Dovecot] the most serius problems [part 3] In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 20:29:20 -0000 X-UID: 883 Status: O Content-Length: 1292 On Thu, 29 May 2003, Robert Spier wrote: > > BTW. OpenSSL problems can be fixed by using GNUTLS instead. I'll try to > > figure out the openssl some day though. > > Or, if you don't need STARTTLS, you can use stunnel. Even if you do need STARTTLS, you can still use stunnel, albiet a slightly modified one. Scott Gifford wrote the patches, which can be found here: http://www.suspectclass.com/~sgifford/stunnel-tlsproxy/stunnel-tlsproxy.html Here's my supervise run script: #!/bin/sh eval $(/usr/local/bin/envdir ./runenv /usr/bin/env) exec 2>&1 # Ensure that PRNG is adequately seeded. [ -s ./ssl/seed ] ||\ /usr/local/bin/envuidgid stunnel \ /bin/dd if=/dev/urandom of=./ssl/seed bs=1k count=1 exec \ softlimit -m "${ulimitdata:-20000000}" \ tcpserver -d \ -H \ -R \ -v \ -X \ -c "${concurrency:-20}" \ -x imap.tcprules.cdb \ 0 imap \ makesock \ stunnel \ -/ ssl \ -s "$SSLUID" \ -g "$SSLGID" \ -N imap \ -i \ -R seed \ -p imapd.pem \ -n imap- \ -f \ -F 3 \ -makesock_connect_to \ /usr/local/bin/envdir ./imapfront.env \ /usr/bin/imapfront-auth \ "${imapdpath:-/usr/libexec/dovecot/imap}" -- Charlie Brady charlie_brady@mitel.com From bob@cemetery.homeunix.org Sat May 31 01:40:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 76BAB23866; Sat, 31 May 2003 01:40:15 +0300 (EEST) Received: from cemetery.homeunix.org (joeldriver.plus.com [212.159.87.165]) by danu.procontrol.fi (Postfix) with ESMTP id 2C82723845 for ; Sat, 31 May 2003 01:40:06 +0300 (EEST) Received: from snot (snot.flatnet [192.168.0.8]) by cemetery.homeunix.org (8.12.9/8.12.6) with SMTP id h4UMdtg6022288 for ; Fri, 30 May 2003 23:39:55 +0100 (BST) Date: Fri, 30 May 2003 23:39:50 +0100 From: Andrew Basterfield To: dovecot@procontrol.fi Subject: Re: [Dovecot] dovecot 0.99.10-test10 Message-Id: <20030530233950.47c0da7f.bob@cemetery.homeunix.org> In-Reply-To: <1054290290.19156.426.camel@hurina> References: <20030530032742.08e28964.bob@cemetery.homeunix.org> <1054290290.19156.426.camel@hurina> X-Mailer: Sylpheed version 0.8.11claws (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.SWvsir/1suj24G" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 May 2003 22:40:15 -0000 X-UID: 884 Status: O Content-Length: 1354 --=.SWvsir/1suj24G Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On 30 May 2003 13:24:51 +0300, Timo Sirainen wrote: > On Fri, 2003-05-30 at 05:27, Andrew Basterfield wrote: > > Now I am getting index corruption again > > > > May 30 03:11:53 snigger imap(bob): Corrupted binary tree file > > /home/bob/Mail/.INBOX/.imap.index.tree: UID to be inserted isn't > > higher than existing (1 <= 1) > > Weird. Is this easily reproduceable? I tried for a while with my > OpenBSD 3.3/x86, worked fine. Also I can't really even think of when > the above error could happen unless something was totally messed up. It happens when moving lots of messages between folders. Now I have my mail where I want it I will set up a test account that isn't critical to test with. They copy OK but sylpheed can't delete them afterwards (sylpheed is on lintel) I have been using hard-linked move, but the problem still occurs without it. test7 DOES exhibit problems but test6 is rock solid and what I am using now. --Andrew -- http://cemetery.homeunix.org --=.SWvsir/1suj24G Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+1927j3ZMDwYLJGARAsm+AJsGk6JMV2zi25boetmVnsE3dJeMewCfU4dU k50RxQbUQneCY0LMH2HDf/w= =6NR8 -----END PGP SIGNATURE----- --=.SWvsir/1suj24G-- From bob@cemetery.homeunix.org Sat May 31 05:30:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 117E923866; Sat, 31 May 2003 05:30:41 +0300 (EEST) Received: from cemetery.homeunix.org (joeldriver.plus.com [212.159.87.165]) by danu.procontrol.fi (Postfix) with ESMTP id 29E7623845 for ; Sat, 31 May 2003 05:30:34 +0300 (EEST) Received: from snigger.flatnet (bob@localhost.flatnet [127.0.0.1]) by cemetery.homeunix.org (8.12.9/8.12.6) with ESMTP id h4V2URg6012484 for ; Sat, 31 May 2003 03:30:27 +0100 (BST) Received: (from bob@localhost) by snigger.flatnet (8.12.9/8.12.6/Submit) id h4V2UPLc015269 for dovecot@procontrol.fi; Sat, 31 May 2003 03:30:25 +0100 (BST) Date: Sat, 31 May 2003 03:30:24 +0100 From: Andrew Basterfield To: dovecot@procontrol.fi Subject: Re: [Dovecot] dovecot 0.99.10-test10 Message-ID: <20030531023024.GA26364@snigger.flatnet> References: <20030530032742.08e28964.bob@cemetery.homeunix.org> <1054290290.19156.426.camel@hurina> <20030530233950.47c0da7f.bob@cemetery.homeunix.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="wRRV7LY7NUeQGEoC" Content-Disposition: inline In-Reply-To: <20030530233950.47c0da7f.bob@cemetery.homeunix.org> User-Agent: Mutt/1.4.1i X-Operating-System: OpenBSD snigger 3.3 sparc64 SUNW,UltraSPARC-IIi @ 269.842 MHz, version 0 FPU X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 May 2003 02:30:41 -0000 X-UID: 885 Status: O Content-Length: 2710 --wRRV7LY7NUeQGEoC Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, May 30, 2003 at 11:39:50PM +0100, Andrew Basterfield wrote: > On 30 May 2003 13:24:51 +0300, > Timo Sirainen wrote: > > On Fri, 2003-05-30 at 05:27, Andrew Basterfield wrote: > > > Now I am getting index corruption again > > >=20 > > > May 30 03:11:53 snigger imap(bob): Corrupted binary tree file > > > /home/bob/Mail/.INBOX/.imap.index.tree: UID to be inserted isn't > > > higher than existing (1 <=3D 1) > >=20 > > Weird. Is this easily reproduceable? I tried for a while with my > > OpenBSD 3.3/x86, worked fine. Also I can't really even think of when > > the above error could happen unless something was totally messed up. >=20 > It happens when moving lots of messages between folders. Now I have my > mail where I want it I will set up a test account that isn't critical to > test with. >=20 > They copy OK but sylpheed can't delete them afterwards (sylpheed is on > lintel) >=20 > I have been using hard-linked move, but the problem still occurs without > it. >=20 > test7 DOES exhibit problems but test6 is rock solid and what I am > using now. I think it is related to locking, I have been moving mail around with one client and doing normal operations with another. I tried to move 2700 messages from a folder on one account to another, I think the problems started when I opened the same folder with another client. This occurs once in the maillog May 31 02:20:39 snigger imap(list): Timeout while waiting for release of ex= clusive fcntl() lock for index file /home/list/Mail/.INBOX/.imap.index May 31 02:26:07 snigger imap-login: Login: bob [127.0.0.1] May 31 02:38:13 = snigger imap(bob): Corrupted index file /home/bob/Mail/.Test/.imap.index: W= rong messages_count in header (1247 !=3D 1248) What happens when the lock times out? Does it carry on regardless or die? sylpheed says: ** WARNING **: Socket IO timeout ** WARNING **: [03:07:13] Read from socket fd14 failed: Broken pipe ** WARNING **: [03:07:13] error while imap command: STORE 1562:1562 +FLAGS = (\Deleted) ** WARNING **: [03:07:13] can't set deleted flags: 1562 and so on many many times Now I am playing with a test account I can move mail around without interference to see what happens. --=20 If at first you don't succeed, destroy all evidence that you tried. --wRRV7LY7NUeQGEoC Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (OpenBSD) iD8DBQE+2BO9j3ZMDwYLJGARAgp7AJ47BKKGVcXiQSeW580S9iTevFIRyQCffla9 HFpN4S3vksXQxrhnDgDEzuk= =jQ1Q -----END PGP SIGNATURE----- --wRRV7LY7NUeQGEoC-- From cirvis@konts.lv Mon Jun 2 17:21:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8162223866; Mon, 2 Jun 2003 17:21:09 +0300 (EEST) Received: from card.konts.lv (card.konts.lv [159.148.139.17]) by danu.procontrol.fi (Postfix) with ESMTP id 2ACF72384C for ; Mon, 2 Jun 2003 17:21:05 +0300 (EEST) Received: (from daemon@localhost) by card.konts.lv (8.11.6/8.11.6) id h52EJMm19899 for ; Mon, 2 Jun 2003 17:19:22 +0300 Received: from (mail1.konts.lv [10.10.1.4]) by card.konts.lv via smap (V2.1) id xma019884; Mon, 2 Jun 03 17:19:16 +0300 Received: (qmail 4367 invoked from network); 2 Jun 2003 14:20:06 -0000 Received: from (HELO konts.lv) ([]) (envelope-sender ) by mail1.konts.lv (qmail-ldap-1.03) with SMTP for ; 2 Jun 2003 14:20:06 -0000 Message-ID: <3EDB5D17.1050902@konts.lv> Date: Mon, 02 Jun 2003 17:20:07 +0300 From: Gasha User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3 X-Accept-Language: en-us MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-13.4 required=6.0 tests=AWL,USER_AGENT_MOZILLA_UA autolearn=ham version=2.52 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.52 (1.174.2.8-2003-03-24-exp) Subject: [Dovecot] squirrelmail setup X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Jun 2003 14:21:09 -0000 X-UID: 886 Status: O Hi all, My setup: INBOX -> /var/spool/mail/user directories -> /home/user/Maildir it works with Netscape, but squirrel mail shows only subfolder content. nothing in INBOX. any ideas? Gasha From mike@skew.org Mon Jun 2 17:53:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3CE6F23866; Mon, 2 Jun 2003 17:53:11 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by danu.procontrol.fi (Postfix) with ESMTP id 5F3E12384C for ; Mon, 2 Jun 2003 17:53:08 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.6p2/8.12.7) with ESMTP id h52Er5CZ078639; Mon, 2 Jun 2003 08:53:05 -0600 (MDT) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.6p2/8.12.7/Submit) id h52Er45e078638; Mon, 2 Jun 2003 08:53:04 -0600 (MDT) From: Mike Brown Message-Id: <200306021453.h52Er45e078638@chilled.skew.org> Subject: Re: [Dovecot] DRAC support? In-Reply-To: <1054121419.3131.275.camel@hurina> "from Timo Sirainen at May 28, 2003 02:30:19 pm" To: Timo Sirainen Date: Mon, 2 Jun 2003 08:53:04 -0600 (MDT) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, hits=-0.8 required=5.0 tests=IN_REP_TO,QUOTED_EMAIL_TEXT,SPAM_PHRASE_00_01 version=2.43 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Jun 2003 14:53:11 -0000 X-UID: 887 Status: O Timo Sirainen wrote: > Looks like BSDs don't have libdl which is why configure's test fails. Correct. On FreeBSD, many administrators install the linux compatibility package, which results in libdl binaries being available under /usr/compat/linux/lib. I am guessing these should be usable as long as the system administrator has configured the kernel with linux support. However, when building new software, one generally doesn't try pointing into /usr/compat/linux/* unless it's absolutely necessary. It's probably safest to just steer clear of the dependency. From cirvis@konts.lv Mon Jun 2 20:41:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0C03823866; Mon, 2 Jun 2003 20:41:39 +0300 (EEST) Received: from card.konts.lv (card.konts.lv [159.148.139.17]) by danu.procontrol.fi (Postfix) with ESMTP id 90AC123865 for ; Mon, 2 Jun 2003 20:41:33 +0300 (EEST) Received: (from daemon@localhost) by card.konts.lv (8.11.6/8.11.6) id h52Hdms26933 for ; Mon, 2 Jun 2003 20:39:48 +0300 Received: from (mail1.konts.lv [10.10.1.4]) by card.konts.lv via smap (V2.1) id xma026926; Mon, 2 Jun 03 20:39:40 +0300 Received: (qmail 18329 invoked from network); 2 Jun 2003 17:40:31 -0000 Received: from (HELO konts.lv) ([]) (envelope-sender ) by mail1.konts.lv (qmail-ldap-1.03) with SMTP for ; 2 Jun 2003 17:40:31 -0000 Message-ID: <3EDB8C10.8010904@konts.lv> Date: Mon, 02 Jun 2003 20:40:32 +0300 From: Gasha User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3 X-Accept-Language: en-us MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-14.9 required=6.0 tests=AWL,BAYES_20,USER_AGENT_MOZILLA_UA autolearn=ham version=2.52 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.52 (1.174.2.8-2003-03-24-exp) Subject: [Dovecot] --enable-debug bug? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Jun 2003 17:41:39 -0000 X-UID: 888 Status: O Hello all, when i'm bulding rpm with --enable-debug get this: I tried 2 different versions 0.99.8 and 0.99.9. Jun 2 20:41:14 mezgls dovecot: Dovecot starting up Jun 2 20:41:15 mezgls dovecot: child 9409 (login) killed with signal 11 Jun 2 20:41:15 mezgls dovecot: child 9408 (login) killed with signal 11 Jun 2 20:41:15 mezgls dovecot: child 9407 (login) killed with signal 11 Jun 2 20:41:15 mezgls dovecot: child 9406 (auth) killed with signal 11 Jun 2 20:41:15 mezgls dovecot: Login process died too early - shutting down Gasha From lfarkas@bnap.hu Tue Jun 3 10:44:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 60DE223866; Tue, 3 Jun 2003 10:44:06 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 9935F23865 for ; Tue, 3 Jun 2003 10:44:03 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id E9C5075400C for ; Tue, 3 Jun 2003 09:43:06 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 90DDD3EB0 for ; Tue, 3 Jun 2003 09:44:00 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 77FFD3EAD for ; Tue, 3 Jun 2003 09:44:00 +0200 (CEST) Message-ID: <3EDC51BD.1010700@bnap.hu> Date: Tue, 03 Jun 2003 09:43:57 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] error X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Jun 2003 07:44:06 -0000 X-UID: 889 Status: O hi, I've got the following alert window in mozilla (with dovecot): --------------------------------------- The current command did not succeed. The mail server responded: Error in IMAP command: Too long argument.. --------------------------------------- although there is not any messages in my imap.log file. -- Levente "Si vis pacem para bellum!" From jens.laas@data.slu.se Tue Jun 3 11:14:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C54F823866; Tue, 3 Jun 2003 11:14:29 +0300 (EEST) Received: from mail1.slu.se (mail1.slu.se [130.238.96.11]) by danu.procontrol.fi (Postfix) with ESMTP id 5034623865 for ; Tue, 3 Jun 2003 11:14:23 +0300 (EEST) Received: from jlaas2.data.slu.se (jlaas2.data.slu.se [130.238.98.68]) by mail1.slu.se (8.9.3p2/8.9.3) with ESMTP id KAA11894 for ; Tue, 3 Jun 2003 10:14:19 +0200 Date: Tue, 3 Jun 2003 10:14:22 +0200 (CEST) From: Jens Laas X-X-Sender: jensl@jlaas2.data.slu.se To: Dovecot List In-Reply-To: <3EDC51BD.1010700@bnap.hu> Message-ID: References: <3EDC51BD.1010700@bnap.hu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Subject: [Dovecot] pop3 logging patches X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Jun 2003 08:14:30 -0000 X-UID: 890 Status: O Content-Length: 2603 Following patches will fulfill my need for pop3 logging. It aint pretty, but it works! Would you consider including this until you have made this more to your liking ? Cheers Jens Låås --- pop3/commands.c.orig 2003-05-30 10:34:33.000000000 +0200 +++ pop3/commands.c 2003-06-03 10:05:53.000000000 +0200 @@ -1,5 +1,6 @@ /* Copyright (C) 2002 Timo Sirainen */ +#include #include "common.h" #include "istream.h" #include "ostream.h" @@ -139,14 +140,29 @@ return TRUE; } +static uoff_t inbox_size(struct client *client) +{ + struct stat sb; + if(stat(client->mailbox->storage->inbox_file, &sb)) + return 0; + return sb.st_size; +} + static int cmd_quit(struct client *client, const char *args __attr_unused__) { unsigned int first, last, msgnum, max, i, j; struct mail_full_flags flags; string_t *set; + uoff_t orig_size; + orig_size = inbox_size(client); + if (!client->deleted) { client_send_line(client, "+OK Logging out."); + /* FIXME uoff_t printing */ + i_info("Logout: del 0/0 left %u/%llu", + client->messages_count, + orig_size); client_disconnect(client); return TRUE; } @@ -200,6 +216,22 @@ else client_send_storage_error(client); + { + uoff_t cur_size; + struct mailbox_status status; + + if (client->mailbox->get_status(client->mailbox, + STATUS_MESSAGES | STATUS_UIDVALIDITY, + &status)) + { + cur_size = inbox_size(client); + i_info("Logout: del %u/%llu left %u/%llu", + client->messages_count - status.messages, + orig_size - cur_size, + status.messages, + cur_size); + } + } client_disconnect(client); return TRUE; } --- pop3-login/client-authenticate.c.orig 2003-05-30 10:32:19.000000000 +0200 +++ pop3-login/client-authenticate.c 2003-05-30 10:33:26.000000000 +0200 @@ -91,7 +91,8 @@ const char *reason = NULL; if (success) { - reason = t_strconcat("Login: ", client->common.virtual_user, + reason = t_strconcat(client->tls?"Login [TLS]:":"Login: ", + client->common.virtual_user, NULL); } else { reason = t_strconcat("Internal login failure: ", ----------------------------------------------------------------------- 'This mail automatically becomes portable when carried.' ----------------------------------------------------------------------- Jens Låås Email: jens.laas@data.slu.se Department of Computer Services, SLU Phone: +46 18 67 35 15 Vindbrovägen 1 P.O. Box 7079 S-750 07 Uppsala SWEDEN ----------------------------------------------------------------------- From jake@lucidpark.net Tue Jun 3 20:49:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 123C523866; Tue, 3 Jun 2003 20:49:33 +0300 (EEST) Received: from europa.capecodvacation.com (europa.capecodvacation.com [199.232.149.98]) by danu.procontrol.fi (Postfix) with ESMTP id 14D0523865 for ; Tue, 3 Jun 2003 20:49:31 +0300 (EEST) Received: from vger.rental.trec (vger.rental.trec [192.168.1.9]) by europa.capecodvacation.com (Postfix) with ESMTP id EE6B430C14D for ; Tue, 3 Jun 2003 13:49:26 -0400 (EDT) Received: by vger.rental.trec (Postfix, from userid 1000) id 9221C6F9E7; Tue, 3 Jun 2003 13:49:20 -0400 (EDT) Date: Tue, 3 Jun 2003 13:49:20 -0400 From: Jacob Elder To: dovecot@procontrol.fi Message-ID: <20030603174920.GA18515@vger.capecodvacation.com> Mail-Followup-To: dovecot@procontrol.fi Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i Subject: [Dovecot] gnutls_handshake problem X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Jun 2003 17:49:33 -0000 X-UID: 891 Status: O I'm trying to bring dovecot up on Debian/stable using Christof Meerwald's unofficial packages (cmeerw.org/debian/). This package seems to work fine on Debian/testing. There error I'm getting on the stable box is: gnutls_handshake: A TLS fatal alert has been received.(Bad record MAC) Any guesses? -- Jacob Elder From zach.bagnall@bulletinwireless.com Wed Jun 4 08:00:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C1B7C23866; Wed, 4 Jun 2003 08:00:57 +0300 (EEST) Received: from piranha.intra.jungledrum.co.nz (ns1.jungledrum.co.nz [210.54.149.34]) by danu.procontrol.fi (Postfix) with ESMTP id 672962384C for ; Wed, 4 Jun 2003 08:00:54 +0300 (EEST) Received: from piranha (localhost.localdomain [127.0.0.1]) by piranha.intra.jungledrum.co.nz (Postfix) with SMTP id 89F1415005; Wed, 4 Jun 2003 17:00:44 +1200 (NZST) Date: Wed, 4 Jun 2003 17:00:41 +1200 From: Zach Bagnall To: dovecot@procontrol.fi Message-Id: <20030604170041.25b60670.zach.bagnall@bulletinwireless.com> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.8.9 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.'wFdksiE(anQ8g" Subject: [Dovecot] Dovecot for Gentoo portage X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jun 2003 05:00:58 -0000 X-UID: 892 Status: O --=.'wFdksiE(anQ8g Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi all - I've added an ebuild for 0.99.9.1 to bugzilla: http://bugs.gentoo.org/show_bug.cgi?id=22080 It includes the CR+LF patch. Should be trivial to update for .10 when it makes an appearance :-). Feel free to fix/improve this ebuild - I'm fairly new at them. Zach. -- Services & Support Bulletin Wireless | www.bulletinwireless.com This email is digitally signed | Key ID 0x3F9AA9A2 --=.'wFdksiE(anQ8g Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+3Xz84jDFYT+aqaIRApRfAKCxuZmJk811Jv0Sy3iDFSnstrMSsgCgmZty OsB18rsu+zv1nraG+oAtILo= =qHrQ -----END PGP SIGNATURE----- --=.'wFdksiE(anQ8g-- From jens.laas@data.slu.se Wed Jun 4 08:52:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0B23923866; Wed, 4 Jun 2003 08:52:28 +0300 (EEST) Received: from mail1.slu.se (mail1.slu.se [130.238.96.11]) by danu.procontrol.fi (Postfix) with ESMTP id 4806B23865 for ; Wed, 4 Jun 2003 08:52:25 +0300 (EEST) Received: from jlaas2.data.slu.se (jlaas2.data.slu.se [130.238.98.68]) by mail1.slu.se (8.9.3p2/8.9.3) with ESMTP id HAA22899; Wed, 4 Jun 2003 07:52:16 +0200 Date: Wed, 4 Jun 2003 07:52:19 +0200 (CEST) From: Jens Laas X-X-Sender: jensl@jlaas2.data.slu.se To: Jacob Elder Subject: Re: [Dovecot] gnutls_handshake problem In-Reply-To: <20030603174920.GA18515@vger.capecodvacation.com> Message-ID: References: <20030603174920.GA18515@vger.capecodvacation.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jun 2003 05:52:28 -0000 X-UID: 893 Status: O Content-Length: 1140 (03.06.03 kl.13:49) Jacob Elder skrev följande till dovecot@procontrol.fi: > I'm trying to bring dovecot up on Debian/stable using Christof Meerwald's > unofficial packages (cmeerw.org/debian/). This package seems to work fine on > Debian/testing. There error I'm getting on the stable box is: > > gnutls_handshake: A TLS fatal alert has been received.(Bad record MAC) > > Any guesses? Check versions of libgcrypt and gnutls. I would recommend compiling libgcrypt, gnutls and dovecot by hand. The actual error message doesnt tell me more than that the handshake failed. Either server or client (or both) is in error. Jens Låås > > -- > Jacob Elder > ----------------------------------------------------------------------- 'This mail automatically becomes portable when carried.' ----------------------------------------------------------------------- Jens Låås Email: jens.laas@data.slu.se Department of Computer Services, SLU Phone: +46 18 67 35 15 Vindbrovägen 1 P.O. Box 7079 S-750 07 Uppsala SWEDEN ----------------------------------------------------------------------- From tss@iki.fi Wed Jun 4 19:41:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E06762387A; Wed, 4 Jun 2003 19:41:05 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 436AC2384C for ; Wed, 4 Jun 2003 19:41:04 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id E7DF95C896A0; Wed, 4 Jun 2003 19:41:03 +0300 (EEST) Subject: Re: [Dovecot] squirrelmail setup From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3EDB5D17.1050902@konts.lv> References: <3EDB5D17.1050902@konts.lv> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054744863.8869.7.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 04 Jun 2003 19:41:03 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jun 2003 16:41:06 -0000 X-UID: 894 Status: O On Mon, 2003-06-02 at 17:20, Gasha wrote: > My setup: > INBOX -> /var/spool/mail/user > directories -> /home/user/Maildir > > it works with Netscape, but squirrel mail shows only subfolder content. > nothing in INBOX. How did you do this? You couldn't have configured Dovecot to directly do that with Maildir. Separate INBOX location works only with mbox. Your Netscape is maybe reading the INBOX directly? From tss@iki.fi Wed Jun 4 19:45:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0E7A82387A; Wed, 4 Jun 2003 19:45:54 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 78D792384C for ; Wed, 4 Jun 2003 19:45:52 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 38A2A5C896A0; Wed, 4 Jun 2003 19:45:52 +0300 (EEST) Subject: Re: mkdir {cur,tmp,new}? (was Re: [Dovecot] Speed and memory probs writing large Maildir) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054745152.8867.13.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 04 Jun 2003 19:45:52 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jun 2003 16:45:54 -0000 X-UID: 895 Status: O Content-Length: 1108 On Fri, 2003-05-30 at 23:29, Charlie Brady wrote: > On 30 May 2003, Timo Sirainen wrote: > > > It still does a few unnecessary things every time mailbox is opened (ie. > > at every APPEND command). I think I shouldn't try to mkdir() the cur, > > new and tmp dirs immediately. Those could be more easily created if/when > > stat() fails while syncing. > > Shouldn't the maildir only be created in response to a CREATE command. It > certainly shouldn't be as the result of an APPEND: > > If the destination mailbox does not exist, a server MUST return an > error, and MUST NOT automatically create the mailbox. > > I would interpret any of cur, new and tmp being missing as "mailbox does > not exist". Well, maybe. I was just thinking cases when a DELETE died in the middle of it, and left only some of the dirs there. In that case you couldn't then SELECT/APPEND the mailbox, but I guess you could DELETE it again.. Or maybe rather Dovecot should just create those dirs when it notices they don't exist while trying to use them. I like to be able to create new mailboxes with "mkdir .boxname". From tss@iki.fi Wed Jun 4 19:51:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 103812387A; Wed, 4 Jun 2003 19:51:02 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8B8B72384C for ; Wed, 4 Jun 2003 19:51:00 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 6242B5C896A0; Wed, 4 Jun 2003 19:51:00 +0300 (EEST) Subject: Re: [Dovecot] Re: DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030530143201.GZ676@dust.uchicago.edu> References: <20030528050825.GA10934@lazy.spodder.com> <1054121419.3131.275.camel@hurina> <20030529010911.GA19139@lazy.spodder.com> <1054252379.23632.381.camel@hurina> <20030530002537.GA1552@lazy.spodder.com> <1054258989.23632.400.camel@hurina> <20030530020518.GG1552@lazy.spodder.com> <1054261073.19156.413.camel@hurina> <20030530041118.GK1552@lazy.spodder.com> <1054295941.23632.447.camel@hurina> <20030530143201.GZ676@dust.uchicago.edu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1054745460.8867.20.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 04 Jun 2003 19:51:00 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jun 2003 16:51:02 -0000 X-UID: 896 Status: O On Fri, 2003-05-30 at 17:32, David Champion wrote: > > > Will you include drac.c ? > > No. I'll leave it to patches directory. > > ./configure --enable-drac ? > > Shouldn't add any extra weight to the --disable-drac build. It's still extra bloat for most people. That's why I made it a plugin :) I don't think it really matters how it's distributed, and you most likely don't ever have to reinstall it when upgrading Dovecot. From charlieb-dovecot@e-smith.com Wed Jun 4 21:01:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4372C2387A; Wed, 4 Jun 2003 21:01:01 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 147B623865 for ; Wed, 4 Jun 2003 21:00:56 +0300 (EEST) Received: (qmail 21742 invoked by uid 404); 4 Jun 2003 18:00:48 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 04 Jun 2003 14:00:48 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 04 Jun 2003 18:00:48 -0000 Received: (qmail 31433 invoked from network); 4 Jun 2003 18:00:48 -0000 Received: from unknown (10.35.25.57) by allspice.nssg.mitel.com with QMQP; 4 Jun 2003 18:00:48 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 4 Jun 2003 18:07:33 -0000 Date: Wed, 4 Jun 2003 14:07:33 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Timo Sirainen In-Reply-To: <1054745152.8867.13.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi Subject: [Dovecot] Re: mkdir {cur,tmp,new}? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jun 2003 18:01:01 -0000 X-UID: 897 Status: O Content-Length: 1095 On 4 Jun 2003, Timo Sirainen wrote: > On Fri, 2003-05-30 at 23:29, Charlie Brady wrote: > > > > I would interpret any of cur, new and tmp being missing as "mailbox does > > not exist". > > Well, maybe. I was just thinking cases when a DELETE died in the middle > of it, and left only some of the dirs there. In that case you couldn't > then SELECT/APPEND the mailbox, but I guess you could DELETE it again.. Can you DELETE a mailbox which doesn't exist? If a DELETE dies in the middle, and the maildir isn't complete, then by my definition (and I'd claim, logically) the mailbox does not exist. If a mailbox doesn't exist, you can SELECT/APPEND or DELETE. But it shouldn't appear in a LIST, and you must be able to CREATE. > Or maybe rather Dovecot should just create those dirs when it notices > they don't exist while trying to use them. I think a maildir must be complete to exist. Hence it's wrong to "by stealth" convert a partial maildir to a complete one. > I like to be able to create new mailboxes with "mkdir .boxname". Shouldn't that be "CREATE boxname"? :-) -- Charlie From cirvis@konts.lv Wed Jun 4 22:19:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8A6552387A; Wed, 4 Jun 2003 22:19:51 +0300 (EEST) Received: from card.konts.lv (card.konts.lv [159.148.139.17]) by danu.procontrol.fi (Postfix) with ESMTP id 7445623865 for ; Wed, 4 Jun 2003 22:19:46 +0300 (EEST) Received: (from daemon@localhost) by card.konts.lv (8.11.6/8.11.6) id h54JHak10216 for ; Wed, 4 Jun 2003 22:17:36 +0300 Received: from (gugu.konts.lv [10.10.1.171]) by card.konts.lv via smap (V2.1) id xma010207; Wed, 4 Jun 03 22:17:24 +0300 Message-ID: <3EDE460C.40700@konts.lv> Date: Wed, 04 Jun 2003 22:18:36 +0300 From: Gasha User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3 X-Accept-Language: en-us MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] squirrelmail setup References: <3EDB5D17.1050902@konts.lv> <1054744863.8869.7.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-28.1 required=6.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,QUOTED_EMAIL_TEXT, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_MOZILLA_UA autolearn=ham version=2.52 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.52 (1.174.2.8-2003-03-24-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jun 2003 19:19:51 -0000 X-UID: 898 Status: O Strange, but it worked that way. At least with netscape. In the beginning i set up INBOX + mbox. then renamed mail/ to oldmail/ and did "mkdir Maildir". But other IMAP mail clients didnt understand... So i decided to left "mbox" format as default. I'm using "sendmail" and "pine" a lot. P.S. just installed 0.99.10-test11. I did some performance tests. IMAP message download is FAST!!! PIII-667 Mhz box with Corier is slower than Cyrix 120 Mhz Dovecot. MS Exchange 5.5 is somewhere far behind... Gasha Timo Sirainen wrote: > On Mon, 2003-06-02 at 17:20, Gasha wrote: > >>My setup: >>INBOX -> /var/spool/mail/user >>directories -> /home/user/Maildir >> >>it works with Netscape, but squirrel mail shows only subfolder content. >>nothing in INBOX. >> > > How did you do this? You couldn't have configured Dovecot to directly do > that with Maildir. Separate INBOX location works only with mbox. Your > Netscape is maybe reading the INBOX directly? > > From dgc@uchicago.edu Thu Jun 5 03:52:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E2F732387A; Thu, 5 Jun 2003 03:52:09 +0300 (EEST) Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id D35E423865 for ; Thu, 5 Jun 2003 03:52:07 +0300 (EEST) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id h550q3M29172; Wed, 4 Jun 2003 19:52:03 -0500 (CDT) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Wed, 4 Jun 2003 19:52:03 -0500 From: David Champion To: Timo Sirainen Message-ID: <20030605005203.GA3437@dust.uchicago.edu> Mail-Followup-To: Timo Sirainen , dovecot@procontrol.fi References: <20030529010911.GA19139@lazy.spodder.com> <1054252379.23632.381.camel@hurina> <20030530002537.GA1552@lazy.spodder.com> <1054258989.23632.400.camel@hurina> <20030530020518.GG1552@lazy.spodder.com> <1054261073.19156.413.camel@hurina> <20030530041118.GK1552@lazy.spodder.com> <1054295941.23632.447.camel@hurina> <20030530143201.GZ676@dust.uchicago.edu> <1054745460.8867.20.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1054745460.8867.20.camel@hurina> User-Agent: Mutt/1.5.2i cc: dovecot@procontrol.fi Subject: [Dovecot] Re: DRAC support? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Jun 2003 00:52:10 -0000 X-UID: 899 Status: O Content-Length: 1404 * On 2003.06.04, in <1054745460.8867.20.camel@hurina>, * "Timo Sirainen" wrote: > On Fri, 2003-05-30 at 17:32, David Champion wrote: > > > > Will you include drac.c ? > > > No. I'll leave it to patches directory. > > > > ./configure --enable-drac ? > > > > Shouldn't add any extra weight to the --disable-drac build. > > It's still extra bloat for most people. That's why I made it a plugin :) > I don't think it really matters how it's distributed, and you most > likely don't ever have to reinstall it when upgrading Dovecot. Oh, I don't care whether it's a plugin, I'm just looking for a way to add the compilation and installation of the plugin to the same command sequence as the rest of the build, so it can be automated somewhat more instead of having to read the drac.c file and figure out what commands to run based on your acquired knowledge of the build environment for the rest of the package, and type/paste those in manually. I'm really, honestly, truly talking about a no-added-bloat approach. I'm just asking for configure to add a cc/ld for drac.so to the Makefile, if you specify --enable-drac. -- -D. dgc@uchicago.edu NSIT University of Chicago When using any driving directions or map, it's a good idea to do a reality check and make sure the road still exists, watch out for construction, and follow all traffic safety precautions. From cmeerw@web.de Sat Jun 7 09:37:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1B7722387A; Sat, 7 Jun 2003 09:37:28 +0300 (EEST) Received: from octopussy.utanet.at (octopussy.utanet.at [213.90.36.45]) by danu.procontrol.fi (Postfix) with ESMTP id 214CD23845 for ; Sat, 7 Jun 2003 09:37:25 +0300 (EEST) Received: from paris.utanet.at ([213.90.36.7]) by octopussy.utanet.at with esmtp (Exim 4.12) id 19OXKJ-0006Ju-00; Sat, 07 Jun 2003 08:37:19 +0200 Received: from [62.218.247.51] (helo=hacking.cmeerw.net) by paris.utanet.at with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.12) id 19OXKJ-0007E4-00; Sat, 07 Jun 2003 08:37:19 +0200 Received: from cmeerw by hacking.cmeerw.net with local (Exim 4.20) id 19OXKA-0000JA-Km; Sat, 07 Jun 2003 08:37:10 +0200 Date: Sat, 7 Jun 2003 08:37:10 +0200 From: Christof Meerwald To: Jacob Elder Message-ID: <20030607063710.GA1174@hacking.cmeerw.net> References: <20030603174920.GA18515@vger.capecodvacation.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030603174920.GA18515@vger.capecodvacation.com> User-Agent: Mutt/1.3.28i X-PGP-Key: 1024D/2B10BE68, 1998-06-29 X-PGP-Fingerprint: 0289 5466 C1F5 B03C DBA7 6304 8CAF 9782 2B10 BE68 X-Mailman-Approved-At: Sat, 07 Jun 2003 14:04:57 +0300 cc: dovecot@procontrol.fi Subject: [Dovecot] Re: gnutls_handshake problem X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Jun 2003 06:37:28 -0000 X-UID: 900 Status: O On Tue, 3 Jun 2003 13:49:20 -0400, Jacob Elder wrote: > I'm trying to bring dovecot up on Debian/stable using Christof Meerwald's > unofficial packages (cmeerw.org/debian/). This package seems to work fine on > Debian/testing. There error I'm getting on the stable box is: > > gnutls_handshake: A TLS fatal alert has been received.(Bad record MAC) > > Any guesses? I guess you get this error message from your mail client (because my dovecot packages are linked against openssl). Does it work if you connect from Debian testing to dovecot running on Debian stable? IMO, Debian woody's guntls package is too old and shouldn't be considered stable. bye, Christof -- http://cmeerw.org JID: cmeerw@jabber.at mailto cmeerw at web.de From jaldhar@debian.org Sat Jun 7 20:12:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 383312387A; Sat, 7 Jun 2003 20:12:09 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 3EC9B2384C for ; Sat, 7 Jun 2003 20:12:07 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 4EAA07F80; Sat, 7 Jun 2003 13:12:02 -0400 (EDT) Date: Sat, 7 Jun 2003 13:12:02 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: Christof Meerwald Subject: Re: [Dovecot] Re: gnutls_handshake problem In-Reply-To: <20030607063710.GA1174@hacking.cmeerw.net> Message-ID: References: <20030603174920.GA18515@vger.capecodvacation.com> <20030607063710.GA1174@hacking.cmeerw.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Jun 2003 17:12:09 -0000 X-UID: 901 Status: O Content-Length: 1205 On Sat, 7 Jun 2003, Christof Meerwald wrote: > On Tue, 3 Jun 2003 13:49:20 -0400, Jacob Elder wrote: > > I'm trying to bring dovecot up on Debian/stable using Christof > > Meerwald's unofficial packages (cmeerw.org/debian/). This package > > seems to work fine on Debian/testing. There error I'm getting on the > > stable box is: > > > > gnutls_handshake: A TLS fatal alert has been received.(Bad record MAC) > > > > Any guesses? > > I guess you get this error message from your mail client (because my dovecot > packages are linked against openssl). Does it work if you connect from > Debian testing to dovecot running on Debian stable? > > IMO, Debian woody's guntls package is too old and shouldn't be considered > stable. > Btw, did you know I already provide a backport to woody at http://www.braincells.com/open/ ? I keep it in sync with my official packages. Anyway I've noticed this too, and I have a feeling it might be something to do with the way we're generating a self-signed certificate. I haven't had much time to do an exhaustive investigation but I hope I might have soe time this weekend. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From mike@pixor.net Tue Jun 10 23:27:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E3D1823866; Tue, 10 Jun 2003 23:27:06 +0300 (EEST) Received: from pixor.net (unknown [12.106.77.136]) by danu.procontrol.fi (Postfix) with ESMTP id 849BB2384C for ; Tue, 10 Jun 2003 23:27:00 +0300 (EEST) Received: from localhost (mike@localhost) by pixor.net (8.11.6/8.11.6) with ESMTP id h5AKQwF25773 for ; Tue, 10 Jun 2003 16:26:58 -0400 Date: Tue, 10 Jun 2003 13:26:58 -0700 (PDT) From: Mike Matz To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Help setting up SSL? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jun 2003 20:27:07 -0000 X-UID: 902 Status: O Content-Length: 1442 Hi, Sorry to bother, I don't know if this mailing list is the right place to look for help setting up dovecot.. Anyway I've got standard IMAP working fine, and I used mkcert.sh after editing the openssl config, and it seemed to work properly (I had to change some directories, I am using the FreeBSD 5.1-CURRENT port).. Anyway, when I try to connect using Outlook, here is what the log shows: (without the exact ip address shown, dont hax0r my windows machine!) imap-login: Jun 10 13:13:14 Warning: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [12.106.77.x] imap-login: Jun 10 13:13:14 Warning: SSL_accept() syscall failed: EOF [12.106.77.x] imap-login: Jun 10 13:13:14 Panic: key not found from hash dovecot: Jun 10 13:13:14 Error: child 32935 (login) killed with signal 6 imap-login: Jun 10 13:13:14 Warning: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [12.106.77.x] imap-login: Jun 10 13:13:14 Warning: SSL_accept() syscall failed: EOF [12.106.77.x] imap-login: Jun 10 13:13:14 Panic: key not found from hash dovecot: Jun 10 13:13:14 Error: child 32937 (login) killed with signal 6 so it says "decryption failed or bad record mac".. Does this mean I don't have my .pem files set up correctly? Or is there a problem with the OpenSSL libraries? I'd sure appreciate any help you could give me. Thanks, Mike From mem@mv.mv.com Wed Jun 11 22:30:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3424223866; Wed, 11 Jun 2003 22:30:37 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id BD87E23845 for ; Wed, 11 Jun 2003 22:30:29 +0300 (EEST) Received: (qmail 18419 invoked by uid 101); 11 Jun 2003 15:30:27 -0400 From: "Mark E. Mallett" Date: Wed, 11 Jun 2003 15:30:27 -0400 To: dovecot@procontrol.fi Message-ID: <20030611193027.GL17004@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] bug in search? (fwd) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jun 2003 19:30:37 -0000 X-UID: 903 Status: O I received this report and am passing it along.. mm > If all messages are marked for deletion, the following command returns > an empty list: > SEARCH DELETED > If all messages BUT one are marked for deletion the same command returns > a list of every message but one. > > If parens are used it works fine. > SEARCH (DELETED) From mem@mv.mv.com Wed Jun 11 22:50:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D720323896; Wed, 11 Jun 2003 22:50:38 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 94F7523860 for ; Wed, 11 Jun 2003 22:50:34 +0300 (EEST) Received: (qmail 2447 invoked by uid 101); 11 Jun 2003 15:50:33 -0400 From: "Mark E. Mallett" Date: Wed, 11 Jun 2003 15:50:33 -0400 To: dovecot@procontrol.fi Message-ID: <20030611195033.GP17004@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] Folder creation errors X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jun 2003 19:50:39 -0000 X-UID: 904 Status: O Hi- In a mbox environment: 1 login username password 1 OK Logged in. 2 create "slar" 2 NO Internal error [2003-06-11 15:44:56] 3 create "/slar" 3 NO Invalid mailbox name: /slar 4 create "Mail/slar" 4 OK Create completed. 5 create "./slar" 5 OK Create completed. 6 create "blar" 6 NO Internal error [2003-06-11 15:46:54] 7 logout * BYE Logging out 7 OK Logout completed. i.e. I get "internal error" if there is no path component in the folder name. Is this a problem? I would guess that "internal error" is always a problem :-) mm From cce@cauchy.axista.com Wed Jun 11 23:00:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E19EA23896; Wed, 11 Jun 2003 23:00:57 +0300 (EEST) Received: from cauchy.axista.com (cauchy.axista.com [209.61.216.58]) by danu.procontrol.fi (Postfix) with ESMTP id 1A04723860 for ; Wed, 11 Jun 2003 23:00:53 +0300 (EEST) Received: by cauchy.axista.com (Postfix, from userid 1000) id AC6696CEA1; Wed, 11 Jun 2003 20:17:14 +0000 (GMT) Date: Wed, 11 Jun 2003 20:17:14 +0000 From: "Clark C. Evans" To: Mike Matz Subject: Re: [Dovecot] Help setting up SSL? Message-ID: <20030611201714.GA17446@doublegemini.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Sender: cce+pub@clarkevans.com cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jun 2003 20:00:58 -0000 X-UID: 905 Status: O Content-Length: 2215 Mike, I am also experiencing a similar error message; only using Mozilla and "mutt" clients against FreeBSD 4.8 (using the install from ports); I get the same "decryption failed or bad record mac" error, but I don't get the remaining messages you have. Anyway, it seems there is a similar issue on the modssl list, http://www.mail-archive.com/modssl-users@modssl.org/msg16180.html and it looks like it may be related to a newer version of OpenSSL which perhaps changed a few interfaces without broadcasting it loudly enough? I'm must a simple user here... so I don't even know where to begin tracking this bugger down. Best, Clark On Tue, Jun 10, 2003 at 01:26:58PM -0700, Mike Matz wrote: | Hi, | | Sorry to bother, I don't know if this mailing list is the right place to | look for help setting up dovecot.. Anyway I've got standard IMAP working | fine, and I used mkcert.sh after editing the openssl config, and it seemed | to work properly (I had to change some directories, I am using the FreeBSD | 5.1-CURRENT port).. | | Anyway, when I try to connect using Outlook, here is what the log shows: | (without the exact ip address shown, dont hax0r my windows machine!) | | imap-login: Jun 10 13:13:14 Warning: SSL_accept() failed: | error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad | record mac [12.106.77.x] | imap-login: Jun 10 13:13:14 Warning: SSL_accept() syscall failed: EOF | [12.106.77.x] | imap-login: Jun 10 13:13:14 Panic: key not found from hash | dovecot: Jun 10 13:13:14 Error: child 32935 (login) killed with signal 6 | imap-login: Jun 10 13:13:14 Warning: SSL_accept() failed: | error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad | record mac [12.106.77.x] | imap-login: Jun 10 13:13:14 Warning: SSL_accept() syscall failed: EOF | [12.106.77.x] | imap-login: Jun 10 13:13:14 Panic: key not found from hash | dovecot: Jun 10 13:13:14 Error: child 32937 (login) killed with signal 6 | | | so it says "decryption failed or bad record mac".. Does this mean I don't | have my .pem files set up correctly? Or is there a problem with the | OpenSSL libraries? | | I'd sure appreciate any help you could give me. | | Thanks, | | Mike | From mike@skew.org Thu Jun 12 00:03:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 973FB23887; Thu, 12 Jun 2003 00:03:05 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by danu.procontrol.fi (Postfix) with ESMTP id 4978B2384C for ; Thu, 12 Jun 2003 00:03:02 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.6p2/8.12.7) with ESMTP id h5BL32aB016970 for ; Wed, 11 Jun 2003 15:03:02 -0600 (MDT) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.6p2/8.12.7/Submit) id h5BL31NG016969 for dovecot@procontrol.fi; Wed, 11 Jun 2003 15:03:01 -0600 (MDT) From: Mike Brown Message-Id: <200306112103.h5BL31NG016969@chilled.skew.org> To: dovecot@procontrol.fi Date: Wed, 11 Jun 2003 15:03:01 -0600 (MDT) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, hits=0.8 required=5.0 tests=SPAM_PHRASE_00_01 version=2.43 Subject: [Dovecot] when/where to set MAIL env variable? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jun 2003 21:03:05 -0000 X-UID: 906 Status: O Content-Length: 1316 I am trying to get dovecot to work on a system that uses qmail as its MTA. As is typical on such systems, the user's primary inbox is an mbox file called Mailbox, in their home directory. Global shell config files /etc/csh.cshrc and /etc/profile set the MAIL environment variable to ~/Mailbox for the users, which is enough to satisfy their interactive mail clients such as pine, mutt, and elm. The mail-storages.txt file in the dovecot docs seems to say that dovecot will not have a problem with this kind of setup. However, I can't figure out how to make it work. The MAIL variable is only set for users who are using shells like tcsh, bash, etc. The server apparently does not operate in a shell, so it is looking in some other location, perhaps /var/mail/$USER, so everyone's INBOX appears to be empty. It would help if mail-storages.txt, when referring to environment variables such as MAIL, would clarify *whose* environment variables are being referred to. Is it the environment of the user who built dovecot? Is it the environment of the user running the main dovecot process? Is it the environment of the user who is checking their mail / the user that dovecot runs setuid as? When and where do I set the MAIL variable so that dovecot will see it? Or is there some other problem? Any help appreciated... From spectron@coqui.net Thu Jun 12 16:42:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 479E623865; Thu, 12 Jun 2003 16:42:58 +0300 (EEST) Received: from mail.coqui.net (emailgw.coqui.net [196.28.61.10]) by danu.procontrol.fi (Postfix) with SMTP id 26B6E23860 for ; Thu, 12 Jun 2003 16:42:55 +0300 (EEST) Received: from unknown(66.50.168.166) by mail.coqui.net via csmap id 23780; Thu, 12 Jun 2003 09:24:59 -0400 (AST) Message-ID: <001e01c330e8$86eb2850$080aa8c0@PAVILION> From: "Spectron International, Inc." To: Date: Thu, 12 Jun 2003 09:42:54 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Subject: [Dovecot] Debian and dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jun 2003 13:42:58 -0000 X-UID: 907 Status: O Content-Length: 1344 I have Debian 3.0 (woody) and installed the dovecot packages and it works ok with the default configuration. I want to change the default configuration, is any of this possible? a) I don't want to create accounts for each user, can I have a mailboxes directory with the mailboxes of all the users? They are not many (10-15). b) The authentication right now is done through PAM, the pam.d/dovecot file is: auth required pam_unix_auth.so account required pam_unix_acct.so password required pam_unix_passwd.so session required pam_unix_session.so I want to authenticate against an SMB server, I added the following /etc/pam_smb.conf: SPECTRON-MSIM MAIN MAIN # documentation says I need 2 servers (only have one, is this ok) and changed the pam.d/dovecot to: auth required pam_smb_auth.so account required pam_smb_auth.so # there is no pam_smb_acct password required pam_smb_auth.so # there is no pam_smb_passwd session required pam_smb_auth.so # there is no pam_smb_session and it doesn't work. I obviously did something wrong, but don't know what, and I found nothing that could help me on google. I have samba installed and it works so It's PAM that I'm configuring incorrectly. Hope someone here can help me. Fawzib Rojas From mike@skew.org Thu Jun 12 20:40:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3145223865; Thu, 12 Jun 2003 20:40:41 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by danu.procontrol.fi (Postfix) with ESMTP id CFEA723860 for ; Thu, 12 Jun 2003 20:40:37 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.6p2/8.12.7) with ESMTP id h5CHegaB019980 for ; Thu, 12 Jun 2003 11:40:42 -0600 (MDT) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.6p2/8.12.7/Submit) id h5CHefN5019979 for dovecot@procontrol.fi; Thu, 12 Jun 2003 11:40:41 -0600 (MDT) From: Mike Brown Message-Id: <200306121740.h5CHefN5019979@chilled.skew.org> Subject: Re: [Dovecot] when/where to set MAIL env variable? In-Reply-To: <20030611215333.GB9810@snigger.flatnet> To: dovecot@procontrol.fi Date: Thu, 12 Jun 2003 11:40:41 -0600 (MDT) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, hits=0.0 required=5.0 tests=IN_REP_TO,SPAM_PHRASE_00_01 version=2.43 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jun 2003 17:40:41 -0000 X-UID: 908 Status: O Andrew Basterfield wrote (in a msg I don't think made it to the list): > In dovecot.conf > > default_mail_env = maildir:~/Maildir Ah, silly me... default_mail_env = mbox:~/Mailbox works wonderfully, and is easier than trying to figure out where the MAIL environment variable actually comes into play. Thanks... From ehrhardt@mathematik.uni-ulm.de Thu Jun 12 15:34:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 87CD623865; Thu, 12 Jun 2003 15:34:13 +0300 (EEST) Received: from thales.mathematik.uni-ulm.de (thales.mathematik.uni-ulm.de [134.60.66.5]) by danu.procontrol.fi (Postfix) with SMTP id 508842384C for ; Thu, 12 Jun 2003 15:34:11 +0300 (EEST) Received: (qmail 14104 invoked by uid 642); 12 Jun 2003 12:34:10 -0000 Message-ID: <20030612123410.14103.qmail@thales.mathematik.uni-ulm.de> From: "Christian Ehrhardt" Date: Thu, 12 Jun 2003 14:34:10 +0200 To: dovecot@procontrol.fi Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i X-Mailman-Approved-At: Thu, 12 Jun 2003 23:00:14 +0300 Subject: [Dovecot] Deleting NFS-mounted Maildir subfolders fails X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jun 2003 12:34:13 -0000 X-UID: 909 Status: O Content-Length: 1415 Hi, [ please CC me on replies, I'm not subscribed to the list ] I'm using dovecot-99.9.1 with a little hack to get authentication to work the way we want it. The server is running on a Solaris 9 host and user homes are mounted via NFS from a Solaris 8 server (Version doesn't seem to matter). Almost everything's fine but I can't delete maildir subfolders if these reside on a non local NFS-directory. The reason given is that the directory isn't empty and hence can't be deleted. Most likely the following happens: dovecot has the index file and other stuff in the maildir subfolder opened via NFS. When the delete request comes in dovecot deletes these files but doesn't close them. On normal unix file systems this is no Problem but with Solaris NFS these file's aren't actually deleted until they are (explicitly or implicitly) closed. Instead they are renamed to .nfs.. These files will automatically vanish once they are closed. However, as long as they exist it is impossible to delete the directory where these files reside and rmdir fails. This is not a big deal and one may argue that dovecot is fine and the NFS implementation is in error. However, it would be cool if dovecot could atttempt to close all administrative files before it deletes them (or at least before it tries to delete the directory where these files reside). regards Christian Ehrhardt -- THAT'S ALL FOLKS! From mike@innercite.com Fri Jun 13 03:09:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C7A6F23865; Fri, 13 Jun 2003 03:09:57 +0300 (EEST) Received: from knight.innercite.com (knight.innercite.com [158.222.3.8]) by danu.procontrol.fi (Postfix) with ESMTP id 3CB9523860 for ; Fri, 13 Jun 2003 03:09:54 +0300 (EEST) Received: from rocket.innercite.com (rocket.innercite.com [158.222.7.10]) h5CNxOpB030841 for ; Thu, 12 Jun 2003 16:59:25 -0700 From: Mike Machado To: dovecot@procontrol.fi Content-Type: text/plain Organization: Message-Id: <1055462990.19999.51.camel@rocket.innercite.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 12 Jun 2003 17:09:51 -0700 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Quotas once again X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jun 2003 00:09:58 -0000 X-UID: 910 Status: O Content-Length: 1588 Its been a while since I tried dovecot on my mail server where I have quota issues. I am using mbox file format. There still seems to be a quota problem. I have only /var with quotas and basedir is under /usr (not quotaed). default_mail_env = mbox:~/mail/:INBOX=/var/mail/%u. I tried with mbox_locks = dotlock fcntl (1st set of logs below) and with mbox_locks = fcntl (2nd set of logs) dotlock: Jun 12 17:02:49 newrook pop3(mike): open(/var/mail/mike.lock) failed: Disk quota exceeded Jun 12 17:02:49 newrook pop3(mike): file_lock_dotlock() failed with mbox file /var/mail/mike: Disk quota exceeded Jun 12 17:02:49 newrook pop3(mike): open(/var/mail/mike.lock) failed: Disk quota exceeded Jun 12 17:02:49 newrook pop3(mike): file_lock_dotlock() failed with mbox file /var/mail/mike: Disk quota exceeded Jun 12 17:02:49 newrook pop3: I/O leak: 0x8050930 (0) Jun 12 17:02:49 newrook pop3: I/O leak: 0x807baac (1) fcntl: Jun 12 16:45:32 newrook pop3-login: Login: mike [127.0.0.1] Jun 12 16:45:33 newrook pop3(mike): file_set_size() failed with mbox file /var/mail/mike: Disk quota exceeded Jun 12 16:45:33 newrook pop3(mike): file_set_size() failed with mbox file /var/mail/mike: Disk quota exceeded Jun 12 16:45:33 newrook pop3: I/O leak: 0x8073a2c (1) Jun 12 16:45:33 newrook pop3: I/O leak: 0x804a470 (0) I am using the latest CVS (as of 5 minutes ago). Wasn't this supposed to be working? Have I missed something? My sole goal is to allow people to delete mail when they are out of disk space. -- Mike Machado mike@innercite.com InnerCite Inc. Engineering Director / CTO From tom@replic8.net Fri Jun 13 11:56:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7408123865; Fri, 13 Jun 2003 11:56:09 +0300 (EEST) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by danu.procontrol.fi (Postfix) with ESMTP id CDABD2384C for ; Fri, 13 Jun 2003 11:56:06 +0300 (EEST) Received: from [212.227.126.162] (helo=mrelayng.kundenserver.de) by moutng.kundenserver.de with esmtp (Exim 3.35 #1) id 19QkLu-0006OS-00 for dovecot@procontrol.fi; Fri, 13 Jun 2003 10:56:06 +0200 Received: from [80.134.9.183] (helo=server.rpdnet.com) by mrelayng.kundenserver.de with asmtp (Exim 3.35 #1) id 19QkLu-0000fg-00 for dovecot@procontrol.fi; Fri, 13 Jun 2003 10:56:06 +0200 Received: by server.rpdnet.com (Postfix, from userid 8000) id 2DC3050B87; Fri, 13 Jun 2003 08:56:05 +0000 (GMT) Received: from aural (sat [192.168.100.88]) by server.rpdnet.com (Postfix) with SMTP id 5A9D150B84 for ; Fri, 13 Jun 2003 08:55:58 +0000 (GMT) Date: Fri, 13 Jun 2003 10:56:55 +0200 From: tom hensel To: dovecot@procontrol.fi Message-Id: <20030613105655.59fa385b.tom@replic8.net> X-Mailer: Sylpheed version 0.8.11claws (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.onBV:zQDa09pEZ" X-Spam-Status: No, hits=-6.3 required=6.5 tests=PGP_SIGNATURE_2 version=2.53 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.53 (1.174.2.15-2003-03-30-exp) Subject: [Dovecot] trouble with ssl X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jun 2003 08:56:09 -0000 X-UID: 911 Status: O --=.onBV:zQDa09pEZ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit hi list, first of all, many thanks to the developers of dovecot for this great piece of software! i'm running dovecot 0.99.9.1 on netbsd-current - runs very fine until i try to use sylpheed from my client to connect via ssl: --snip-- Jun 13 08:48:32 devbox imap-login: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [192.168.100.88] Jun 13 08:48:32 devbox imap-login: Disconnected [192.168.100.8 --snip-- doesn't say much to me... thanks for any help, TOM --=.onBV:zQDa09pEZ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (NetBSD) iD8DBQE+6ZHaZj9fGW5yU88RAlclAJsFA7xPKsQGh3FouAY/muwhwJOf1gCgm54G ju7G9rynQOEuCPmrISaDaGM= =9z7K -----END PGP SIGNATURE----- --=.onBV:zQDa09pEZ-- From mike@pixor.net Fri Jun 13 18:43:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D6DB523865; Fri, 13 Jun 2003 18:43:56 +0300 (EEST) Received: from pixor.net (unknown [12.106.77.136]) by danu.procontrol.fi (Postfix) with ESMTP id 1676723860 for ; Fri, 13 Jun 2003 18:43:53 +0300 (EEST) Received: from localhost (mike@localhost) by pixor.net (8.11.6/8.11.6) with ESMTP id h5DFhlh05389; Fri, 13 Jun 2003 11:43:47 -0400 Date: Fri, 13 Jun 2003 08:43:47 -0700 (PDT) From: Mike Matz To: tom hensel Subject: Re: [Dovecot] trouble with ssl In-Reply-To: <20030613105655.59fa385b.tom@replic8.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jun 2003 15:43:57 -0000 X-UID: 912 Status: O Content-Length: 1039 Tom, I had the same problem on FreeBSD 5.1-current. If you search usenet, you'll see that lots of people had problems with OpenSSL 0.9.7a. I've upgraded my OpenSSL on FreeBSD compiling the latest port (0.9.7b), and recompiling Dovecot. Everything works fine now. I've also heard that there is a similar problem with some of the 0.9.6 releases, but I think that should also be fixed with the latest 0.9.6 sources. Hope this helps Mike On Fri, 13 Jun 2003, tom hensel wrote: > hi list, > > first of all, many thanks to the developers of dovecot for > this great piece of software! > > i'm running dovecot 0.99.9.1 on netbsd-current - runs very fine > until i try to use sylpheed from my client to connect via ssl: > > --snip-- > Jun 13 08:48:32 devbox imap-login: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [192.168.100.88] > Jun 13 08:48:32 devbox imap-login: Disconnected [192.168.100.8 > --snip-- > > doesn't say much to me... > > thanks for any help, > TOM > From spectron@coqui.net Fri Jun 13 21:00:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EB2CB23865; Fri, 13 Jun 2003 21:00:41 +0300 (EEST) Received: from mail.coqui.net (emailgw.coqui.net [196.28.61.10]) by danu.procontrol.fi (Postfix) with SMTP id A0A1823860 for ; Fri, 13 Jun 2003 21:00:38 +0300 (EEST) Received: from unknown(66.50.169.10) by mail.coqui.net via csmap id 24088; Fri, 13 Jun 2003 13:42:45 -0400 (AST) Message-ID: <001501c331d5$b15f8c50$080aa8c0@PAVILION> From: "Spectron International, Inc." To: Date: Fri, 13 Jun 2003 14:00:30 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Subject: [Dovecot] Dovecot configuration with passwd-file X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jun 2003 18:00:42 -0000 X-UID: 913 Status: O I have tried to configure dovecot to use passwd-file authentication and I havent been able to. I changed the following in the dovecot.conf file (I want to have all the mailboxes in one directory): default_mail_env = maildir:/opt/mail/%u auth_userdb = passwd-file /etc/passwd.imap auth_passdb = passwd-file /etc/passwd.imap auth_verbose = yes It gives me the following error (I hoped it would be more verbose than this): Internal login failure: f_rojas [192.168.10.4]. passwd.imap exists, the user and password are ok What am I missing? Fawzib Rojas From mike@pixor.net Fri Jun 13 22:07:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C39FC2387A; Fri, 13 Jun 2003 22:07:06 +0300 (EEST) Received: from pixor.net (unknown [12.106.77.136]) by danu.procontrol.fi (Postfix) with ESMTP id 635572384C for ; Fri, 13 Jun 2003 22:07:03 +0300 (EEST) Received: from localhost (mike@localhost) by pixor.net (8.11.6/8.11.6) with ESMTP id h5DJ6xM09730; Fri, 13 Jun 2003 15:06:59 -0400 Date: Fri, 13 Jun 2003 12:06:59 -0700 (PDT) From: Mike Matz To: tom hensel Subject: Re: [Dovecot] trouble with ssl In-Reply-To: <20030613185303.2f050b84.tom@rpdnet.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jun 2003 19:07:07 -0000 X-UID: 914 Status: O Content-Length: 1612 Tom, I had to overwrite the OpenSSL installation in the base. In FreeBSD, you could use -DOPENSSL_OVERWRITE_BASE with your make commands. Dovecot always used the base openssl package, which was the older version, which sounds like the same problem you're having.. Again I don't know anything about NetBSD =\ Mike On Fri, 13 Jun 2003, tom hensel wrote: > mike, > > > I had the same problem on FreeBSD 5.1-current. If you search usenet, > > you'll see that lots of people had problems with OpenSSL 0.9.7a. I've > > upgraded my OpenSSL on FreeBSD compiling the latest port (0.9.7b), and > > recompiling Dovecot. Everything works fine now. I've also heard that > > there is a similar problem with some of the 0.9.6 releases, but I think > > that should also be fixed with the latest 0.9.6 sources. > > nebtsd has a pkgsrc for openssl-0.9.6g - it compiled just fine. > recompiling dovecot did not change anything, same error as before. > i'm ccing this mail to the maintainter of the pkgsrc, i wonder how > dovecot's configure decides wether to use the openssl-libs included > with netbsd's or the ones form pkgsrc... > > > Hope this helps > > yeah, thanks a lot ;) > > > > i'm running dovecot 0.99.9.1 on netbsd-current - runs very fine > > > until i try to use sylpheed from my client to connect via ssl: > > > > > > --snip-- > > > Jun 13 08:48:32 devbox imap-login: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [192.168.100.88] > > > Jun 13 08:48:32 devbox imap-login: Disconnected [192.168.100.8 > > > --snip-- > > bye, > TOM > From mem@mv.mv.com Fri Jun 13 23:21:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 580DD2387A; Fri, 13 Jun 2003 23:21:37 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id D1D052384C for ; Fri, 13 Jun 2003 23:21:33 +0300 (EEST) Received: (qmail 13868 invoked by uid 101); 13 Jun 2003 16:21:32 -0400 From: "Mark E. Mallett" Date: Fri, 13 Jun 2003 16:21:32 -0400 To: Mike Machado Subject: Re: [Dovecot] Quotas once again Message-ID: <20030613202132.GT18940@iridium.mv.net> References: <1055462990.19999.51.camel@rocket.innercite.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1055462990.19999.51.camel@rocket.innercite.com> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jun 2003 20:21:37 -0000 X-UID: 915 Status: O On Thu, Jun 12, 2003 at 05:09:51PM -0700, Mike Machado wrote: > Its been a while since I tried dovecot on my mail server where I have > quota issues. I am using mbox file format. There still seems to be a > quota problem. I have only /var with quotas and basedir is under /usr > (not quotaed). default_mail_env = mbox:~/mail/:INBOX=/var/mail/%u. > > I tried with mbox_locks = dotlock fcntl (1st set of logs below) and with > mbox_locks = fcntl (2nd set of logs) We still see quota issues using Maildir as well. If a user goes over quota, they can no longer access their Maildir mailbox. We have to go in and either change their quota or delete some files. Somehow I thought this has been fixed at one point, but I guess not.. mm From seba@iq.pl Sat Jun 14 11:28:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 898F32387A; Sat, 14 Jun 2003 11:28:58 +0300 (EEST) Received: from serv.iq.pl (serv.iq.pl [213.76.165.9]) by danu.procontrol.fi (Postfix) with ESMTP id EEB872384C for ; Sat, 14 Jun 2003 11:28:52 +0300 (EEST) Received: by serv.iq.pl (Postfix, from userid 1390) id E78AD6BD92; Sat, 14 Jun 2003 10:28:48 +0200 (CEST) Date: Sat, 14 Jun 2003 10:28:48 +0200 From: Sebastian Pachuta To: dovecot@procontrol.fi Subject: Re: [Dovecot] Quotas once again Message-ID: <20030614082848.GC25593@iq.pl> References: <1055462990.19999.51.camel@rocket.innercite.com> <20030613202132.GT18940@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030613202132.GT18940@iridium.mv.net> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 08:28:58 -0000 X-UID: 916 Status: O On Fri, Jun 13, 2003 at 16:21:32 -0400, Mark E. Mallett wrote: > > We still see quota issues using Maildir as well. If a user goes > over quota, they can no longer access their Maildir mailbox. > We have to go in and either change their quota or delete some files. > > Somehow I thought this has been fixed at one point, but I guess not.. Do You use 'CONTROL=' in 'default_mail_env' ? From tom@rpdnet.de Fri Jun 13 19:52:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CB31C23865; Fri, 13 Jun 2003 19:52:26 +0300 (EEST) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.177]) by danu.procontrol.fi (Postfix) with ESMTP id BA7D92384C for ; Fri, 13 Jun 2003 19:52:19 +0300 (EEST) Received: from [212.227.126.161] (helo=mrelayng.kundenserver.de) by moutng.kundenserver.de with esmtp (Exim 3.35 #1) id 19Qrmi-00030u-00; Fri, 13 Jun 2003 18:52:16 +0200 Received: from [80.134.14.197] (helo=server.rpdnet.com) by mrelayng.kundenserver.de with asmtp (Exim 3.35 #1) id 19Qrmi-0000cZ-00; Fri, 13 Jun 2003 18:52:16 +0200 Received: by server.rpdnet.com (Postfix, from userid 8000) id 6C2BC50B84; Fri, 13 Jun 2003 16:52:13 +0000 (GMT) Received: from aural (sat [192.168.100.88]) by server.rpdnet.com (Postfix) with SMTP id 4A61D50B83; Fri, 13 Jun 2003 16:52:06 +0000 (GMT) Date: Fri, 13 Jun 2003 18:53:03 +0200 From: tom hensel To: Mike Matz Subject: Re: [Dovecot] trouble with ssl Message-Id: <20030613185303.2f050b84.tom@rpdnet.com> In-Reply-To: References: <20030613105655.59fa385b.tom@replic8.net> X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.1_Jd_pCF7Vq0pR" X-Spam-Status: No, hits=-26.5 required=6.5 tests=IN_REP_TO,PGP_SIGNATURE_2,QUOTED_EMAIL_TEXT,QUOTE_TWICE_1, REFERENCES,REPLY_WITH_QUOTES version=2.53 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.53 (1.174.2.15-2003-03-30-exp) X-Mailman-Approved-At: Sat, 14 Jun 2003 18:15:09 +0300 cc: tech-pkg@netbsd.org cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jun 2003 16:52:27 -0000 X-UID: 917 Status: O Content-Length: 1552 --=.1_Jd_pCF7Vq0pR Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit mike, > I had the same problem on FreeBSD 5.1-current. If you search usenet, > you'll see that lots of people had problems with OpenSSL 0.9.7a. I've > upgraded my OpenSSL on FreeBSD compiling the latest port (0.9.7b), and > recompiling Dovecot. Everything works fine now. I've also heard that > there is a similar problem with some of the 0.9.6 releases, but I think > that should also be fixed with the latest 0.9.6 sources. nebtsd has a pkgsrc for openssl-0.9.6g - it compiled just fine. recompiling dovecot did not change anything, same error as before. i'm ccing this mail to the maintainter of the pkgsrc, i wonder how dovecot's configure decides wether to use the openssl-libs included with netbsd's or the ones form pkgsrc... > Hope this helps yeah, thanks a lot ;) > > i'm running dovecot 0.99.9.1 on netbsd-current - runs very fine > > until i try to use sylpheed from my client to connect via ssl: > > > > --snip-- > > Jun 13 08:48:32 devbox imap-login: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [192.168.100.88] > > Jun 13 08:48:32 devbox imap-login: Disconnected [192.168.100.8 > > --snip-- bye, TOM --=.1_Jd_pCF7Vq0pR Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (NetBSD) iD8DBQE+6gFyZj9fGW5yU88RAjVPAJ9VjIv3PsbmQd7tUJiVbxtaIrl5dQCeKnwz nfTgbtHM85/aJVa9Z5J+vJA= =Bf2/ -----END PGP SIGNATURE----- --=.1_Jd_pCF7Vq0pR-- From tss@iki.fi Sat Jun 14 18:19:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 67D3723865; Sat, 14 Jun 2003 18:19:14 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A0CC12384C for ; Sat, 14 Jun 2003 18:19:12 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id AB7565C896D9; Sat, 14 Jun 2003 18:19:08 +0300 (EEST) Subject: Re: [Dovecot] Quotas once again From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1055462990.19999.51.camel@rocket.innercite.com> References: <1055462990.19999.51.camel@rocket.innercite.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055603948.2371.36.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 18:19:08 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 15:19:14 -0000 X-UID: 918 Status: O On Fri, 2003-06-13 at 03:09, Mike Machado wrote: > Jun 12 17:02:49 newrook pop3(mike): open(/var/mail/mike.lock) failed: > Disk quota exceeded Can't really do much about this. > Jun 12 17:02:49 newrook pop3: I/O leak: 0x8050930 (0) > Jun 12 17:02:49 newrook pop3: I/O leak: 0x807baac (1) Hmm. These shouldn't happen.. > Jun 12 16:45:33 newrook pop3(mike): file_set_size() failed with mbox > file /var/mail/mike: Disk quota exceeded This is because it tries to write message UIDs to the mbox file. This is similiar problem to not being able to update maildir's dovecot-uidlist file. I think I know how to fix it right, it just requires writing the code.. From tss@iki.fi Sat Jun 14 18:27:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9090723860; Sat, 14 Jun 2003 18:27:29 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9BAF32384C for ; Sat, 14 Jun 2003 18:27:27 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 61E9C5C896D9; Sat, 14 Jun 2003 18:27:27 +0300 (EEST) Subject: Re: [Dovecot] Debian and dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <001e01c330e8$86eb2850$080aa8c0@PAVILION> References: <001e01c330e8$86eb2850$080aa8c0@PAVILION> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055604446.2371.44.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 18:27:27 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 15:27:29 -0000 X-UID: 919 Status: O On Thu, 2003-06-12 at 16:42, Spectron International, Inc. wrote: > a) I don't want to create accounts for each user, can I have a mailboxes > directory with the mailboxes of all the users? They are not many (10-15). You'd need a directory for each user. Something like this should work: auth_userdb = static uid=123 gid=123 home=/home/mail/%u > auth required pam_smb_auth.so > account required pam_smb_auth.so # there is no pam_smb_acct > password required pam_smb_auth.so # there is no pam_smb_passwd > session required pam_smb_auth.so # there is no pam_smb_session I don't think you need password or session there. And maybe you could have used pam_unix.so in account too. But I don't really remember what all those PAM things did. From tss@iki.fi Sat Jun 14 18:29:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CFCB82387A; Sat, 14 Jun 2003 18:29:13 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5805E23860 for ; Sat, 14 Jun 2003 18:29:12 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 2DE665C896D9; Sat, 14 Jun 2003 18:29:12 +0300 (EEST) Subject: Re: [Dovecot] Folder creation errors From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030611195033.GP17004@iridium.mv.net> References: <20030611195033.GP17004@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055604551.2371.47.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 18:29:11 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 15:29:14 -0000 X-UID: 920 Status: O On Wed, 2003-06-11 at 22:50, Mark E. Mallett wrote: > i.e. I get "internal error" if there is no path component in the > folder name. Is this a problem? I would guess that "internal error" > is always a problem :-) Yes .. And log file should show exactly what the error message is. I guess you've some weird settings. :) From tss@iki.fi Sat Jun 14 18:33:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4C7DA2387A; Sat, 14 Jun 2003 18:33:30 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8D96923860 for ; Sat, 14 Jun 2003 18:33:28 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 541E25C896D9; Sat, 14 Jun 2003 18:33:28 +0300 (EEST) Subject: Re: [Dovecot] Dovecot configuration with passwd-file From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <001501c331d5$b15f8c50$080aa8c0@PAVILION> References: <001501c331d5$b15f8c50$080aa8c0@PAVILION> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055604808.2371.51.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 18:33:28 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 15:33:30 -0000 X-UID: 921 Status: O On Fri, 2003-06-13 at 21:00, Spectron International, Inc. wrote: > default_mail_env = maildir:/opt/mail/%u > auth_userdb = passwd-file /etc/passwd.imap > auth_passdb = passwd-file /etc/passwd.imap > auth_verbose = yes > > It gives me the following error (I hoped it would be more verbose than > this): > > Internal login failure: f_rojas [192.168.10.4]. Hmm. It should have been more verbose. "Internal login failure" anyway means that the password check went ok, but IMAP process couldn't be started for some reason. > passwd.imap exists, the user and password are ok What am I missing? Did you also add UID, GID and home directories there? UID and GID are a must there, I'm not sure if home directory was. From tss@iki.fi Sat Jun 14 18:35:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 505342387A; Sat, 14 Jun 2003 18:35:52 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C31B623860 for ; Sat, 14 Jun 2003 18:35:49 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 96AD95C896D9; Sat, 14 Jun 2003 18:35:49 +0300 (EEST) Subject: Re: [Dovecot] squirrelmail setup From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3EDE460C.40700@konts.lv> References: <3EDB5D17.1050902@konts.lv> <1054744863.8869.7.camel@hurina> <3EDE460C.40700@konts.lv> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055604949.2373.55.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 18:35:49 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 15:35:52 -0000 X-UID: 922 Status: O On Wed, 2003-06-04 at 22:18, Gasha wrote: > Strange, but it worked that way. At least with netscape. > In the beginning i set up INBOX + mbox. > then renamed mail/ to oldmail/ > and did "mkdir Maildir". Netscape was probably just caching the old INBOX contents locally. From tss@iki.fi Sat Jun 14 18:44:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E50322387A; Sat, 14 Jun 2003 18:44:50 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 524B123860 for ; Sat, 14 Jun 2003 18:44:49 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3B17A5C896D9; Sat, 14 Jun 2003 18:44:45 +0300 (EEST) Subject: Re: [Dovecot] --enable-debug bug? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3EDB8C10.8010904@konts.lv> References: <3EDB8C10.8010904@konts.lv> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055605484.2363.64.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 18:44:45 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 15:44:51 -0000 X-UID: 923 Status: O On Mon, 2003-06-02 at 20:40, Gasha wrote: > Hello all, > > when i'm bulding rpm with --enable-debug get this: Well, you probably shouldn't really :) It only enables some extra checks which slows it down. > Jun 2 20:41:15 mezgls dovecot: child 9409 (login) killed with signal 11 Strange though, I'm using debug myself all the time. Login processes are annoying to debug anyway. Pretty much the only way to do so is to run dovecot under one user, eg. foo which requires at least following settings: login_user = foo login_chroot = no imap_listen = *:12345 Then start "dovecot" as user foo and you should get a core dump which can be gdb'd. From tss@iki.fi Sat Jun 14 18:50:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A4B0223860; Sat, 14 Jun 2003 18:50:43 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0D4132384C for ; Sat, 14 Jun 2003 18:50:42 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id BFFF25C896D9; Sat, 14 Jun 2003 18:50:41 +0300 (EEST) Subject: Re: [Dovecot] Re: DRAC support? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030605005203.GA3437@dust.uchicago.edu> References: <20030529010911.GA19139@lazy.spodder.com> <1054252379.23632.381.camel@hurina> <20030530002537.GA1552@lazy.spodder.com> <1054258989.23632.400.camel@hurina> <20030530020518.GG1552@lazy.spodder.com> <1054261073.19156.413.camel@hurina> <20030530041118.GK1552@lazy.spodder.com> <1054295941.23632.447.camel@hurina><1054745460.8867.20.camel@hurina> <20030605005203.GA3437@dust.uchicago.edu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055605841.2364.70.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 18:50:41 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 15:50:43 -0000 X-UID: 924 Status: O On Thu, 2003-06-05 at 03:52, David Champion wrote: > I'm really, honestly, truly talking about a no-added-bloat approach. I'm > just asking for configure to add a cc/ld for drac.so to the Makefile, if > you specify --enable-drac. Well, for plugins in general I guess it could be good idea to be able to compile them easily. But I don't want to include the actual plugins, or anything specific to one plugin with the main dovecot package. Maybe something like --with-plugins=drac and it could find it from somewhere.. But it's not really important yet. DRAC plugin is special in the case that you don't have to compile it more than once. It uses only few dovecot functions which are unlikely to ever change, so you don't have to recompile it when building a new version of dovecot. From tss@iki.fi Sat Jun 14 19:03:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A118923860; Sat, 14 Jun 2003 19:03:31 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F33FD2384C for ; Sat, 14 Jun 2003 19:03:29 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id B44D05C896D9; Sat, 14 Jun 2003 19:03:29 +0300 (EEST) Subject: Re: [Dovecot] Re: mkdir {cur,tmp,new}? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055606609.2371.84.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 19:03:29 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 16:03:31 -0000 X-UID: 925 Status: O Content-Length: 1422 On Wed, 2003-06-04 at 21:07, Charlie Brady wrote: > > > I would interpret any of cur, new and tmp being missing as "mailbox does > > > not exist". > > > > Well, maybe. I was just thinking cases when a DELETE died in the middle > > of it, and left only some of the dirs there. In that case you couldn't > > then SELECT/APPEND the mailbox, but I guess you could DELETE it again.. Actually, this can't happen. Dovecot does atomic maildir deletion by renaming the ".mailbox" into "..mailbox" which is then deleted. > Can you DELETE a mailbox which doesn't exist? > > If a DELETE dies in the middle, and the maildir isn't complete, then by my > definition (and I'd claim, logically) the mailbox does not exist. If a > mailbox doesn't exist, you can SELECT/APPEND or DELETE. But it shouldn't > appear in a LIST, and you must be able to CREATE. That'd be pretty broken. If mailbox doesn't exist, you can't select or delete it. Most clients wouldn't even let you try. > > Or maybe rather Dovecot should just create those dirs when it notices > > they don't exist while trying to use them. > > I think a maildir must be complete to exist. Hence it's wrong to "by > stealth" convert a partial maildir to a complete one. Well, what harm could it cause? > > I like to be able to create new mailboxes with "mkdir .boxname". > > Shouldn't that be "CREATE boxname"? :-) Easier to play with filesystem directly when testing. From mem@mv.mv.com Sat Jun 14 19:43:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CAB6A23865; Sat, 14 Jun 2003 19:43:44 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 8464D23860 for ; Sat, 14 Jun 2003 19:43:41 +0300 (EEST) Received: (qmail 22624 invoked by uid 101); 14 Jun 2003 12:43:28 -0400 From: "Mark E. Mallett" Date: Sat, 14 Jun 2003 12:43:28 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Folder creation errors Message-ID: <20030614164328.GA3063@iridium.mv.net> References: <20030611195033.GP17004@iridium.mv.net> <1055604551.2371.47.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1055604551.2371.47.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 16:43:45 -0000 X-UID: 926 Status: O On Sat, Jun 14, 2003 at 06:29:11PM +0300, Timo Sirainen wrote: > On Wed, 2003-06-11 at 22:50, Mark E. Mallett wrote: > > i.e. I get "internal error" if there is no path component in the > > folder name. Is this a problem? I would guess that "internal error" > > is always a problem :-) > > Yes .. And log file should show exactly what the error message is. I > guess you've some weird settings. :) Jun 14 12:21:09 iridium mem[118]: imap(dummydummy): mkdir_parents(/usr2/users/username/) failed: Is a directory dovecot.conf has: default_mail_env = mbox:~/:INBOX=%h/Mailbox Probably not so much a weird setting as a weird artifact in BSD/OS: mkdir x mkdir x returns EEXIST mkdir x/ returns EISDIR This is a long-standing thorn.. if I change mkdir-parents.c to check for EISDIR as well as EEXIST it fixes the problem. Can you add that to the official version? Sorry for not checking that myself. -mm- From tss@iki.fi Sat Jun 14 20:21:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D936823860; Sat, 14 Jun 2003 20:21:30 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 27FE02384C for ; Sat, 14 Jun 2003 20:21:29 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id F22525C896D9; Sat, 14 Jun 2003 20:21:28 +0300 (EEST) Subject: Re: [Dovecot] Folder creation errors From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030614164328.GA3063@iridium.mv.net> References: <20030611195033.GP17004@iridium.mv.net> <20030614164328.GA3063@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055611288.2363.89.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 20:21:28 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 17:21:31 -0000 X-UID: 927 Status: O On Sat, 2003-06-14 at 19:43, Mark E. Mallett wrote: > mkdir x > returns EEXIST > mkdir x/ > returns EISDIR > > This is a long-standing thorn.. > > if I change mkdir-parents.c to check for EISDIR as well as EEXIST it > fixes the problem. Can you add that to the official version? Actually it shouldn't be adding the extra '/' at the end, that seems to be fixed in CVS already. But I'll add the EISDIR check there anyway. From tss@iki.fi Sat Jun 14 20:40:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EA9F023887; Sat, 14 Jun 2003 20:40:18 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5A02323860 for ; Sat, 14 Jun 2003 20:40:15 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 14E7B5C896D9; Sat, 14 Jun 2003 20:40:15 +0300 (EEST) Subject: Re: [Dovecot] Deleting NFS-mounted Maildir subfolders fails From: Timo Sirainen To: Christian Ehrhardt In-Reply-To: <20030612123410.14103.qmail@thales.mathematik.uni-ulm.de> References: <20030612123410.14103.qmail@thales.mathematik.uni-ulm.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055612414.2371.91.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 20:40:14 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 17:40:19 -0000 X-UID: 928 Status: O On Thu, 2003-06-12 at 15:34, Christian Ehrhardt wrote: > Almost everything's fine but I can't delete maildir subfolders if these > reside on a non local NFS-directory. The reason given is that the directory > isn't empty and hence can't be deleted. I think it's fixed now in CVS. From tss@iki.fi Sat Jun 14 20:44:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BA2AD23887; Sat, 14 Jun 2003 20:44:37 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4F01B23860 for ; Sat, 14 Jun 2003 20:44:36 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 286215C896D9; Sat, 14 Jun 2003 20:44:36 +0300 (EEST) Subject: Re: [Dovecot] bug in search? (fwd) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030611193027.GL17004@iridium.mv.net> References: <20030611193027.GL17004@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055612675.2371.94.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 14 Jun 2003 20:44:36 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2003 17:44:37 -0000 X-UID: 929 Status: O On Wed, 2003-06-11 at 22:30, Mark E. Mallett wrote: > > If all messages are marked for deletion, the following command returns > > an empty list: > > SEARCH DELETED Right, small optimization bug :) From tss@iki.fi Sun Jun 15 06:58:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1451D23865; Sun, 15 Jun 2003 06:58:09 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D41CA2384C for ; Sun, 15 Jun 2003 06:58:04 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3BAEA5C2BB8D; Sun, 15 Jun 2003 06:58:04 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055649482.10262.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 15 Jun 2003 06:58:03 +0300 Subject: [Dovecot] 0.99.10-test12 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Jun 2003 03:58:09 -0000 X-UID: 930 Status: O Content-Length: 1235 http://dovecot.procontrol.fi/test/ I should have released 0.99.10 already I think.. There's just two annoying problems that I think should be fixed first: - PAM: If user gives a wrong password, dovecot-auth process sleeps for two seconds, blocking everyone else who are trying to authenticate at the time. So using PAM isn't very good idea at the moment. - OpenSSL problems. Are they really my fault? I have no idea what I could be doing wrong. Maybe some compile option is wrong? Also I should try to use pkg-config to get compile flags if it exists in configure. The new things in -test12 then: - We sync mailbox less often. Only NOOP and CHECK will force a mailbox sync now. Other commands do it also but only if mailbox hasn't been synced in last 5 seconds. Maybe this reduces some I/O. At least a bit less stat() calls :) - Dirty maildir flag flushing work now. Meaning that if you change message flags but rename() fails because you're out of quota, the flags are changed in index file and dirty-flag is set. Once in a while it tries to flush the dirty flags by rename()ing the file again. - IMAP RFC requires that NUL characters are never sent to client. We do now the same as UW-IMAP by sending ascii 128 chars instead. From lfarkas@bnap.hu Sun Jun 15 12:58:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5039923865; Sun, 15 Jun 2003 12:58:33 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 8398D2384C for ; Sun, 15 Jun 2003 12:58:30 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id BC4E975402B for ; Sun, 15 Jun 2003 11:58:10 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id B2B2C3EB4; Sun, 15 Jun 2003 11:58:27 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 978553EB0 for ; Sun, 15 Jun 2003 11:58:27 +0200 (CEST) Message-ID: <3EEC4343.8050702@bnap.hu> Date: Sun, 15 Jun 2003 11:58:27 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] a new error message X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Jun 2003 09:58:33 -0000 X-UID: 931 Status: O hi, we've got the following error: --------- The current command did not succeed. The mail server responded: Error in IMAP command UID: Too long argument.." --------- -- Levente "Si vis pacem para bellum!" From mem@mv.mv.com Sun Jun 15 13:54:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 51CF12387A; Sun, 15 Jun 2003 13:54:30 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 743D423860 for ; Sun, 15 Jun 2003 13:54:26 +0300 (EEST) Received: (qmail 17477 invoked by uid 101); 15 Jun 2003 06:54:25 -0400 From: "Mark E. Mallett" Date: Sun, 15 Jun 2003 06:54:25 -0400 To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10-test12 Message-ID: <20030615105425.GA9332@iridium.mv.net> References: <1055649482.10262.17.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1055649482.10262.17.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Jun 2003 10:54:30 -0000 X-UID: 932 Status: O src/lib/ioloop-select.c accesses a variable io_p that is not defined or declared. I assume you need to add **io_p to the struct io defines in that routine. mm From ola@garstad.net Sun Jun 15 15:56:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A3AA323865; Sun, 15 Jun 2003 15:56:13 +0300 (EEST) Received: from mail44.fg.online.no (mail44-s.fg.online.no [148.122.161.44]) by danu.procontrol.fi (Postfix) with ESMTP id BAD942384C for ; Sun, 15 Jun 2003 15:56:10 +0300 (EEST) Received: from pilt.home.garstad.net (ti221110a080-3586.bb.online.no [80.213.14.2]) by mail44.fg.online.no (8.9.3p2/8.9.3) with ESMTP id OAA06244 for ; Sun, 15 Jun 2003 14:56:09 +0200 (MEST) Received: from gorgon (gorgon.home.garstad.net [192.168.1.22]) by pilt.home.garstad.net (Postfix) with SMTP id 3FF079077A for ; Sun, 15 Jun 2003 14:56:07 +0200 (CEST) Message-ID: <003401c3333d$79334290$1601a8c0@gorgon> From: "Ola Garstad" To: Date: Sun, 15 Jun 2003 14:55:55 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Subject: [Dovecot] Dovecot will not run on secure kernel. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Jun 2003 12:56:13 -0000 X-UID: 933 Status: O I am trying to run Dovecot on RH 7.3 with Linux kernel 2.4.20 + = GrSecurity patch. I downloaded the RPM yesterday and installed it. When I start Dovecot the kernel reports: kernel: grsec: From = 192.168.1.22: attempt to overstep process limit by (dovecot:14491) = UID(0) EUID(0), parent (dovecot:23872) UID(0) EUID(0) I have never seen this problem in the 3 years I have used GrSecurity = together with a lot of programs. GrSecurity explains: "Enforce RLIMIT_NPROC on execs. Users with a = resource limit on processes will have the value checked during execve() = calls. The current system only checks the system limit during fork() = calls." Any ideas why Dovecot causes this problem? -- Ola From jello@waste.org Sun Jun 15 20:12:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2DB6223865; Sun, 15 Jun 2003 20:12:01 +0300 (EEST) Received: from waste.org (waste.org [209.173.204.2]) by danu.procontrol.fi (Postfix) with ESMTP id B1A0E2384C for ; Sun, 15 Jun 2003 20:11:58 +0300 (EEST) Received: from localhost (pppdslc114.mpls.uswest.net [216.160.21.114]) by waste.org (8.12.3/8.12.3/Debian-6.4) with ESMTP id h5FHBpCE009488; Sun, 15 Jun 2003 12:11:53 -0500 Received: by localhost (Postfix, from userid 1001) id AD37C51C01F; Sun, 15 Jun 2003 12:11:50 -0500 (CDT) Date: Sun, 15 Jun 2003 12:11:50 -0500 From: John Ello To: Farkas Levente Subject: Re: [Dovecot] a new error message Message-ID: <20030615171150.GB696@waste.org> References: <3EEC4343.8050702@bnap.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3EEC4343.8050702@bnap.hu> User-Agent: Mutt/1.5.4i cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Jun 2003 17:12:01 -0000 X-UID: 934 Status: O On Sun, Jun 15, 2003 at 11:58:27AM +0200, Farkas Levente wrote: > The current command did not succeed. The mail server responded: Error in > IMAP command UID: Too long argument.." I used to get the same thing (some of my users have rather large mailboxes), and I found you can get around it by editing the line that begins '#define MAX_INBUF_SIZE ' in src/imap/client.c to a bigger number and recompiling. I'm not sure the purpose of the limit, or the complete effects of changing it, but it worked for me. From wouter@pair.com Mon Jun 16 05:28:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2887323865; Mon, 16 Jun 2003 05:28:32 +0300 (EEST) Received: from amsfep16-int.chello.nl (amsfep16-int.chello.nl [213.46.243.26]) by danu.procontrol.fi (Postfix) with ESMTP id 229782384C for ; Mon, 16 Jun 2003 05:28:29 +0300 (EEST) Received: from hibernate.cryolabs.net ([213.132.150.78]) by amsfep16-int.chello.nlSMTP <20030616022828.TOBI28742.amsfep16-int.chello.nl@hibernate.cryolabs.net> for ; Mon, 16 Jun 2003 04:28:28 +0200 Received: (qmail 25629 invoked from network); 16 Jun 2003 04:28:26 +0200 Received: from unknown (HELO cocaine.cryolabs.net) (192.168.196.5) by hibernate.cryolabs.net with SMTP; 16 Jun 2003 04:28:26 +0200 Date: Mon, 16 Jun 2003 04:28:36 +0200 (CEST) From: Wouter Van Hemel Sender: Wouter Van Hemel To: dovecot@procontrol.fi Message-ID: PGP: 0B B4 BC 28 53 62 FE 94 6A 57 EE B8 A6 E2 1B E4 (0xAA5412F0) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] crash on LIST command X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 02:28:32 -0000 X-UID: 935 Status: O Content-Length: 3221 Hello, I'm experiencing a reproducable crash in the imap daemon of dovecot 0.99.9.1 when running the next commands (sniffed from a sylpheed session): [cocaine:~] telnet ice 143 Trying 192.168.196.1... Connected to ice. Escape character is '^]'. * OK dovecot ready. 1 NOOP 1 OK NOOP completed. 2 LOGIN wouter password 2 OK Logged in. 3 NAMESPACE 3 BAD Error in IMAP command: Unknown command 'NAMESPACE' 4 LIST "" "" * LIST (\Noselect) "/" "" 4 OK List completed. 5 LIST "" "%" Connection closed by foreign host. [cocaine:~] _ The log shows this: Jun 16 02:48:09 ice imap-login: Login: wouter [192.168.196.5] Jun 16 02:48:19 ice dovecot: child 1870 (imap) killed with signal 11 Looks like a segfault. [...] Core was generated by `imap'. Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/lib/libc.so.4...done. Reading symbols from /usr/libexec/ld-elf.so.1...done. #0 0x8058469 in mbox_list_inbox (ctx=0x8098080) at mbox-list.c:333 333 if (ctx->dir->virtual_path != NULL) (gdb) bt #0 0x8058469 in mbox_list_inbox (ctx=0x8098080) at mbox-list.c:333 #1 0x805809e in mbox_list_mailbox_next (ctx=0x8098080) at mbox-list.c:193 #2 0x804b75a in list_unsorted (client=0x8096080, ctx=0x8098080, reply=0x807ed06 "LIST", sep=0xbfbffac4 "/", listext=0) at cmd-list.c:234 #3 0x804b9fa in _cmd_list_full (client=0x8096080, lsub=0) at cmd-list.c:341 #4 0x804ba8b in cmd_list (client=0x8096080) at cmd-list.c:365 #5 0x804d39e in client_handle_input (client=0x8096080) at client.c:306 #6 0x804d43d in _client_input (context=0x8096080) at client.c:342 #7 0x8078c87 in io_loop_handler_run (ioloop=0x808d060) at ioloop-poll.c:210 #8 0x8078745 in io_loop_run (ioloop=0x808d060) at ioloop.c:295 #9 0x80524a9 in main (argc=1, argv=0xbfbffc2c, envp=0xbfbffc34) at main.c:166 #10 0x8049eb5 in _start () (gdb) _ This crash happens when adding an imap account to the sylpheed mailer. I also noticed other problematic log entries, which might or might not be related: Jun 16 00:28:36 ice imap-login: Login: wouter [192.168.196.5] Jun 16 00:28:36 ice imap(wouter): open() failed with file /usr/home/wouter/.mail/.imap/INBOX/.customflags: No such file or directory Jun 16 00:28:36 ice imap(wouter): Can't create temp index /usr/home/wouter/.mail/.imap/INBOX/.temp.hostname.domainname.tld.1728: No such file or directory ... this happens when an imap user connects and opens his/her INBOX for the first time, and the /usr/home/username/.mail/ directory doesn't exist yet. My DEFAULT_MAIL_ENV settings: #default_mail_env = mbox:~/.mail:INBOX=/var/mail/%u default_mail_env = mbox:/usr/home/%u/.mail:INBOX=/var/mail/%u (tried both) Manually adding the ~/.mail directory with mkdir takes care of the problem, but shouldn't this directory be created automatically when it doesn't exist? I can't expect every user to log in and first make this mail directory before they can use their mail account. Dovecot also refuses to show any folders at all, such as the INBOX, when it can't find it's mail(folders) directory. Is this intentional? Dovecot is running on a pretty standard (i386) FreeBSD 4.4 test machine with postfix and normal mbox-formatted inbox files. Thanks for any suggestions, wouter From mike@skew.org Mon Jun 16 08:11:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ACEC323865; Mon, 16 Jun 2003 08:11:33 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by danu.procontrol.fi (Postfix) with ESMTP id 8A0802384C for ; Mon, 16 Jun 2003 08:11:29 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.6p2/8.12.7) with ESMTP id h5G5BSaB034666 for ; Sun, 15 Jun 2003 23:11:28 -0600 (MDT) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.6p2/8.12.7/Submit) id h5G5BSJs034665 for dovecot@procontrol.fi; Sun, 15 Jun 2003 23:11:28 -0600 (MDT) From: Mike Brown Message-Id: <200306160511.h5G5BSJs034665@chilled.skew.org> To: dovecot@procontrol.fi Date: Sun, 15 Jun 2003 23:11:28 -0600 (MDT) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, hits=0.8 required=5.0 tests=SPAM_PHRASE_00_01 version=2.43 Subject: [Dovecot] more newline related errors X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 05:11:33 -0000 X-UID: 936 Status: O Content-Length: 1859 Should I be concerned about these errors? imap(msun): Jun 13 13:21:38 Error: Error indexing mbox file /home/msun/mail/Deleted Messages: LF not found where expected imap(msun): Jun 13 13:39:08 Error: Corrupted binary tree for index /home/msun/mail/.imap/INBOX/.imap.index: lookup returned index outside range (1 >= 0) imap(msun): Jun 13 13:44:07 Error: IndexID mismatch for binary tree file /home/msun/mail/.imap/INBOX/.imap.index.tree imap(msun): Jun 13 13:44:07 Error: IndexID mismatch for binary tree file /home/msun/mail/.imap/INBOX/.imap.index.tree imap(msun): Jun 13 13:44:07 Error: IndexID mismatch for modify log file /home/msun/mail/.imap/INBOX/.imap.index.log imap(msun): Jun 14 12:07:42 Error: Error indexing mbox file /home/msun/Mailbox: LF not found where expected imap(msun): Jun 14 12:08:27 Error: Corrupted index file /home/msun/mail/.imap/INBOX/.imap.index: Sequence 1 not found from binary tree (1 msgs says header) imap(msun): Jun 14 12:08:27 Error: Corrupted index file /home/msun/mail/.imap/INBOX/.imap.index: Sequence 1 not found from binary tree (1 msgs says header) imap(msun): Jun 14 12:08:27 Error: Corrupted index file /home/msun/mail/.imap/INBOX/.imap.index: Sequence 1 not found from binary tree (1 msgs says header) imap(msun): Jun 14 12:14:23 Error: IndexID mismatch for binary tree file /home/msun/mail/.imap/INBOX/.imap.index.tree imap(msun): Jun 14 12:14:23 Error: IndexID mismatch for binary tree file /home/msun/mail/.imap/INBOX/.imap.index.tree imap(msun): Jun 14 12:14:23 Error: IndexID mismatch for modify log file /home/msun/mail/.imap/INBOX/.imap.index.log imap(msun): Jun 15 11:34:58 Error: Error indexing mbox file /home/msun/Mailbox: LF not found where expected There was a patch required for the POP3 server to read mbox files that did not precede "From " lines with a blank line. Perhaps this is related? Thanks From cirvis@konts.lv Mon Jun 16 09:45:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AA86223865; Mon, 16 Jun 2003 09:45:49 +0300 (EEST) Received: from card.konts.lv (card.konts.lv [159.148.139.17]) by danu.procontrol.fi (Postfix) with ESMTP id 3129F2384C for ; Mon, 16 Jun 2003 09:45:46 +0300 (EEST) Received: (from daemon@localhost) by card.konts.lv (8.11.6/8.11.6) id h5G6fbf25302 for ; Mon, 16 Jun 2003 09:41:37 +0300 Received: from (gugu.konts.lv [10.10.1.171]) by card.konts.lv via smap (V2.1) id xma024910; Mon, 16 Jun 03 09:41:21 +0300 Message-ID: <3EED674B.4080800@konts.lv> Date: Mon, 16 Jun 2003 09:44:27 +0300 From: Gasha User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3 X-Accept-Language: en-us MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] more newline related errors References: <200306160511.h5G5BSJs034665@chilled.skew.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-28.4 required=6.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,QUOTED_EMAIL_TEXT, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_MOZILLA_UA autolearn=ham version=2.52 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.52 (1.174.2.8-2003-03-24-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 06:45:49 -0000 X-UID: 937 Status: O Content-Length: 1994 Try to delete index files. Or maybe it is corrupted mail file? Gasha Mike Brown wrote: > Should I be concerned about these errors? > > imap(msun): Jun 13 13:21:38 Error: Error indexing mbox file /home/msun/mail/Deleted Messages: LF not found where expected > imap(msun): Jun 13 13:39:08 Error: Corrupted binary tree for index /home/msun/mail/.imap/INBOX/.imap.index: lookup returned index outside range (1 >= 0) > imap(msun): Jun 13 13:44:07 Error: IndexID mismatch for binary tree file /home/msun/mail/.imap/INBOX/.imap.index.tree > imap(msun): Jun 13 13:44:07 Error: IndexID mismatch for binary tree file /home/msun/mail/.imap/INBOX/.imap.index.tree > imap(msun): Jun 13 13:44:07 Error: IndexID mismatch for modify log file /home/msun/mail/.imap/INBOX/.imap.index.log > imap(msun): Jun 14 12:07:42 Error: Error indexing mbox file /home/msun/Mailbox: LF not found where expected > imap(msun): Jun 14 12:08:27 Error: Corrupted index file /home/msun/mail/.imap/INBOX/.imap.index: Sequence 1 not found from binary tree (1 msgs says header) > imap(msun): Jun 14 12:08:27 Error: Corrupted index file /home/msun/mail/.imap/INBOX/.imap.index: Sequence 1 not found from binary tree (1 msgs says header) > imap(msun): Jun 14 12:08:27 Error: Corrupted index file /home/msun/mail/.imap/INBOX/.imap.index: Sequence 1 not found from binary tree (1 msgs says header) > imap(msun): Jun 14 12:14:23 Error: IndexID mismatch for binary tree file /home/msun/mail/.imap/INBOX/.imap.index.tree > imap(msun): Jun 14 12:14:23 Error: IndexID mismatch for binary tree file /home/msun/mail/.imap/INBOX/.imap.index.tree > imap(msun): Jun 14 12:14:23 Error: IndexID mismatch for modify log file /home/msun/mail/.imap/INBOX/.imap.index.log > imap(msun): Jun 15 11:34:58 Error: Error indexing mbox file /home/msun/Mailbox: LF not found where expected > > There was a patch required for the POP3 server to read mbox files that did not > precede "From " lines with a blank line. Perhaps this is related? > > Thanks > From bob@snigger.bogus Mon Jun 16 09:56:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CAD8523865; Mon, 16 Jun 2003 09:56:18 +0300 (EEST) Received: from cemetery.homeunix.org (host217-44-114-6.range217-44.btcentralplus.com [217.44.114.6]) by danu.procontrol.fi (Postfix) with ESMTP id F20462384C for ; Mon, 16 Jun 2003 09:56:16 +0300 (EEST) Received: from snigger.bogus (bob@localhost.bogus [127.0.0.1]) by cemetery.homeunix.org (8.12.9/8.12.9) with ESMTP id h5G6uRjr003813; Mon, 16 Jun 2003 07:56:27 +0100 (BST) Received: (from bob@localhost) by snigger.bogus (8.12.9/8.12.6/Submit) id h5G6uQh8001847; Mon, 16 Jun 2003 07:56:26 +0100 (BST) Date: Mon, 16 Jun 2003 07:56:26 +0100 From: Andrew Basterfield To: Wouter Van Hemel Subject: Re: [Dovecot] crash on LIST command Message-ID: <20030616065625.GA25522@snigger.flatnet> References: Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="8t9RHnE3ZwKMSgU+" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-Operating-System: OpenBSD snigger 3.3 sparc64 SUNW,UltraSPARC-IIi @ 269.842 MHz, version 0 FPU cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 06:56:19 -0000 X-UID: 938 Status: O Content-Length: 1066 --8t9RHnE3ZwKMSgU+ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Jun 16, 2003 at 04:28:36AM +0200, Wouter Van Hemel wrote: >=20 > Hello, >=20 > Manually adding the ~/.mail directory with mkdir takes care of the > problem, but shouldn't this directory be created automatically when it > doesn't exist? I can't expect every user to log in and first make this > mail directory before they can use their mail account. I use procmail to create the directory on delivery of first item of mail DROPPRIVS=3Dyes MAILDIR=3D$HOME/Mail DEFAULT=3D$MAILDIR/./ DUMMY=3D`if [ ! -d $MAILDIR ]; then mkdir $MAILDIR; fi` --Andrew --=20 If at first you don't succeed, destroy all evidence that you tried. --8t9RHnE3ZwKMSgU+ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (OpenBSD) iD8DBQE+7WoXj3ZMDwYLJGARAhcIAJ9nGjnzYAQUP4lCeqrZGvXKrSNB+gCfblO2 nZWgnQlNag1Og1XRUIZfzJ0= =F1fh -----END PGP SIGNATURE----- --8t9RHnE3ZwKMSgU+-- From tss@iki.fi Mon Jun 16 11:28:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0A10223865; Mon, 16 Jun 2003 11:28:46 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 708E02384C for ; Mon, 16 Jun 2003 11:28:43 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3FE005EC1410; Mon, 16 Jun 2003 11:28:43 +0300 (EEST) Subject: Re: [Dovecot] crash on LIST command From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055752123.10241.28.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Jun 2003 11:28:43 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 08:28:46 -0000 X-UID: 939 Status: O On Mon, 2003-06-16 at 05:28, Wouter Van Hemel wrote: > Hello, > > I'm experiencing a reproducable crash in the imap daemon of dovecot > 0.99.9.1 when running the next commands (sniffed from a sylpheed session): I'm pretty sure this is fixed in the -test releases. http://dovecot.procontrol.fi/test/ From tss@iki.fi Mon Jun 16 11:30:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BE6D32387A; Mon, 16 Jun 2003 11:30:39 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3B41B23865 for ; Mon, 16 Jun 2003 11:30:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 113D75EC1410; Mon, 16 Jun 2003 11:30:38 +0300 (EEST) Subject: Re: [Dovecot] more newline related errors From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <200306160511.h5G5BSJs034665@chilled.skew.org> References: <200306160511.h5G5BSJs034665@chilled.skew.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055752237.10262.31.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Jun 2003 11:30:37 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 08:30:39 -0000 X-UID: 940 Status: O On Mon, 2003-06-16 at 08:11, Mike Brown wrote: > Should I be concerned about these errors? > > imap(msun): Jun 13 13:21:38 Error: Error indexing mbox file /home/msun/mail/Deleted Messages: LF not found where expected Probably means that you have two adjacent From-line. ie.: >From a@b >From b@c Dovecot can't handle those currently. I should fix it some day. > imap(msun): Jun 13 13:39:08 Error: Corrupted binary tree for index /home/msun/mail/.imap/INBOX/.imap.index: lookup returned index outside range (1 >= 0) > imap(msun): Jun 14 12:08:27 Error: Corrupted index file /home/msun/mail/.imap/INBOX/.imap.index: Sequence 1 not found from binary tree (1 msgs says header) Probably because of the above problem. From tss@iki.fi Mon Jun 16 11:32:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E28262387F; Mon, 16 Jun 2003 11:32:22 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 66BBE23865 for ; Mon, 16 Jun 2003 11:32:21 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 414975EC1410; Mon, 16 Jun 2003 11:32:21 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10-test12 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030615105425.GA9332@iridium.mv.net> References: <1055649482.10262.17.camel@hurina> <20030615105425.GA9332@iridium.mv.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055752341.10241.33.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Jun 2003 11:32:21 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 08:32:23 -0000 X-UID: 941 Status: O On Sun, 2003-06-15 at 13:54, Mark E. Mallett wrote: > src/lib/ioloop-select.c accesses a variable io_p that is not defined > or declared. I assume you need to add **io_p to the struct io > defines in that routine. Yes. And change io_destroy() to use io_p. Looks like I tested only the poll() version when I did the changes.. From tss@iki.fi Mon Jun 16 11:39:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 72FA72387A; Mon, 16 Jun 2003 11:39:22 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D91622384C for ; Mon, 16 Jun 2003 11:39:20 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 1D4035EC1410; Mon, 16 Jun 2003 11:39:16 +0300 (EEST) Subject: Re: [Dovecot] Dovecot will not run on secure kernel. From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <003401c3333d$79334290$1601a8c0@gorgon> References: <003401c3333d$79334290$1601a8c0@gorgon> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055752755.10241.42.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Jun 2003 11:39:15 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 08:39:22 -0000 X-UID: 942 Status: O On Sun, 2003-06-15 at 15:55, Ola Garstad wrote: > I am trying to run Dovecot on RH 7.3 with Linux kernel 2.4.20 + GrSecurity patch. > I downloaded the RPM yesterday and installed it. > > When I start Dovecot the kernel reports: kernel: grsec: From 192.168.1.22: attempt to overstep process limit by (dovecot:14491) UID(0) EUID(0), parent (dovecot:23872) UID(0) EUID(0) I thought v0.99.9 fixed this.. Unless grsec checks it now while trying to set the limit. See if this helps: diff -u -r1.10 main.c --- src/login-common/main.c 27 Apr 2003 01:21:50 -0000 1.10 +++ src/login-common/main.c 16 Jun 2003 08:38:10 -0000 @@ -131,7 +131,7 @@ static void drop_privileges(const char *name) { /* make sure we can't fork() */ - restrict_process_size((unsigned int)-1, 0); + restrict_process_size((unsigned int)-1, 1); /* Log file or syslog opening probably requires roots */ open_logfile(name); From tss@iki.fi Mon Jun 16 11:42:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 19F7B2387F; Mon, 16 Jun 2003 11:42:40 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8CF012387A for ; Mon, 16 Jun 2003 11:42:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 567C15EC1410; Mon, 16 Jun 2003 11:42:38 +0300 (EEST) Subject: Re: [Dovecot] a new error message From: Timo Sirainen To: Dovecot List In-Reply-To: <20030615171150.GB696@waste.org> References: <3EEC4343.8050702@bnap.hu> <20030615171150.GB696@waste.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055752958.10262.47.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Jun 2003 11:42:38 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 08:42:40 -0000 X-UID: 943 Status: O On Sun, 2003-06-15 at 20:11, John Ello wrote: > On Sun, Jun 15, 2003 at 11:58:27AM +0200, Farkas Levente wrote: > > The current command did not succeed. The mail server responded: Error in > > IMAP command UID: Too long argument.." > > I used to get the same thing (some of my users have rather large > mailboxes), and I found you can get around it by editing the line that > begins '#define MAX_INBUF_SIZE ' in src/imap/client.c to a bigger > number and recompiling. I'm not sure the purpose of the limit, or the > complete effects of changing it, but it worked for me. For now that's the only fix. I'm thinking of changing it so that you can give a total command line limit. Default could be set to 100kB or so then. RFC-2683 recommends 8000 chars though, so this could be considered a client bug.. From tss@iki.fi Mon Jun 16 11:47:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3A30F2387A; Mon, 16 Jun 2003 11:47:24 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id ACFAD2384C for ; Mon, 16 Jun 2003 11:47:20 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id DF82C5EC1410; Mon, 16 Jun 2003 11:47:16 +0300 (EEST) Subject: Re: [Dovecot] crash on LIST command From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055753236.10262.51.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Jun 2003 11:47:16 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 08:47:24 -0000 X-UID: 944 Status: O On Mon, 2003-06-16 at 05:28, Wouter Van Hemel wrote: > Manually adding the ~/.mail directory with mkdir takes care of the > problem, but shouldn't this directory be created automatically when it > doesn't exist? I can't expect every user to log in and first make this > mail directory before they can use their mail account. Oh, and this is already fixed too. > Dovecot also refuses to show any folders at all, such as the INBOX, when > it can't find it's mail(folders) directory. Is this intentional? You mean if you have only INBOX in /var/mail/ but eg. no ~/mail? I don't think it even allows logging in without? And that is intentional. From lfarkas@bnap.hu Mon Jun 16 12:06:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 03D482387A; Mon, 16 Jun 2003 12:06:13 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 50D572384C for ; Mon, 16 Jun 2003 12:06:10 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id B4EE9754012 for ; Mon, 16 Jun 2003 11:05:47 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 6855A3EB8; Mon, 16 Jun 2003 11:06:07 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 494063EB0 for ; Mon, 16 Jun 2003 11:06:07 +0200 (CEST) Message-ID: <3EED887E.7070502@bnap.hu> Date: Mon, 16 Jun 2003 11:06:06 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] a new error message References: <3EEC4343.8050702@bnap.hu> <20030615171150.GB696@waste.org> <1055752958.10262.47.camel@hurina> In-Reply-To: <1055752958.10262.47.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 09:06:13 -0000 X-UID: 945 Status: O Content-Length: 1046 Timo Sirainen wrote: > On Sun, 2003-06-15 at 20:11, John Ello wrote: > >>On Sun, Jun 15, 2003 at 11:58:27AM +0200, Farkas Levente wrote: >> >>>The current command did not succeed. The mail server responded: Error in >>>IMAP command UID: Too long argument.." >> >>I used to get the same thing (some of my users have rather large >>mailboxes), and I found you can get around it by editing the line that >>begins '#define MAX_INBUF_SIZE ' in src/imap/client.c to a bigger >>number and recompiling. I'm not sure the purpose of the limit, or the >>complete effects of changing it, but it worked for me. > > > For now that's the only fix. I'm thinking of changing it so that you can > give a total command line limit. Default could be set to 100kB or so I not realy like to patch it myself since the next update will beark it. so I'll rather wait for your fix:-) > then. RFC-2683 recommends 8000 chars though, so this could be considered > a client bug.. mozilla 1.3. -- Levente "Si vis pacem para bellum!" From wouter@pair.com Mon Jun 16 16:48:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 60C1B23865; Mon, 16 Jun 2003 16:48:58 +0300 (EEST) Received: from amsfep16-int.chello.nl (amsfep16-int.chello.nl [213.46.243.26]) by danu.procontrol.fi (Postfix) with ESMTP id 4149F2384C for ; Mon, 16 Jun 2003 16:48:54 +0300 (EEST) Received: from hibernate.cryolabs.net ([213.132.150.78]) by amsfep16-int.chello.nlSMTP <20030616134853.FOWO28742.amsfep16-int.chello.nl@hibernate.cryolabs.net> for ; Mon, 16 Jun 2003 15:48:53 +0200 Received: (qmail 17081 invoked from network); 16 Jun 2003 15:48:51 +0200 Received: from unknown (HELO cocaine.cryolabs.net) (192.168.196.5) by hibernate.cryolabs.net with SMTP; 16 Jun 2003 15:48:51 +0200 Date: Mon, 16 Jun 2003 15:49:01 +0200 (CEST) From: Wouter Van Hemel To: Timo Sirainen Subject: Re: [Dovecot] crash on LIST command In-Reply-To: <1055752123.10241.28.camel@hurina> Message-ID: References: <1055752123.10241.28.camel@hurina> PGP: 0B B4 BC 28 53 62 FE 94 6A 57 EE B8 A6 E2 1B E4 (0xAA5412F0) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 13:48:58 -0000 X-UID: 946 Status: O On Mon, 16 Jun 2003, Timo Sirainen wrote: > On Mon, 2003-06-16 at 05:28, Wouter Van Hemel wrote: > > Hello, > > > > I'm experiencing a reproducable crash in the imap daemon of dovecot > > 0.99.9.1 when running the next commands (sniffed from a sylpheed session): > > I'm pretty sure this is fixed in the -test releases. > http://dovecot.procontrol.fi/test/ > It is, I just tested with -test12. Thanks! wouter From wouter@pair.com Mon Jun 16 17:14:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1942323865; Mon, 16 Jun 2003 17:14:46 +0300 (EEST) Received: from amsfep11-int.chello.nl (amsfep11-int.chello.nl [213.46.243.20]) by danu.procontrol.fi (Postfix) with ESMTP id 5EA752384C for ; Mon, 16 Jun 2003 17:14:40 +0300 (EEST) Received: from hibernate.cryolabs.net ([213.132.150.78]) by amsfep11-int.chello.nlSMTP <20030616141439.QVMJ7516.amsfep11-int.chello.nl@hibernate.cryolabs.net> for ; Mon, 16 Jun 2003 16:14:39 +0200 Received: (qmail 13123 invoked from network); 16 Jun 2003 16:14:34 +0200 Received: from unknown (HELO cocaine.cryolabs.net) (192.168.196.5) by hibernate.cryolabs.net with SMTP; 16 Jun 2003 16:14:34 +0200 Date: Mon, 16 Jun 2003 16:14:45 +0200 (CEST) From: Wouter Van Hemel To: Timo Sirainen Subject: Re: [Dovecot] crash on LIST command In-Reply-To: <1055753236.10262.51.camel@hurina> Message-ID: References: <1055753236.10262.51.camel@hurina> PGP: 0B B4 BC 28 53 62 FE 94 6A 57 EE B8 A6 E2 1B E4 (0xAA5412F0) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 14:14:46 -0000 X-UID: 947 Status: O Content-Length: 1454 On Mon, 16 Jun 2003, Timo Sirainen wrote: > On Mon, 2003-06-16 at 05:28, Wouter Van Hemel wrote: > > Manually adding the ~/.mail directory with mkdir takes care of the > > problem, but shouldn't this directory be created automatically when it > > doesn't exist? I can't expect every user to log in and first make this > > mail directory before they can use their mail account. > > Oh, and this is already fixed too. > So it is, too. Thanks. :) > > Dovecot also refuses to show any folders at all, such as the INBOX, when > > it can't find it's mail(folders) directory. Is this intentional? > > You mean if you have only INBOX in /var/mail/ but eg. no ~/mail? I don't > think it even allows logging in without? And that is intentional. > In that case, no problem. :) I discovered two small errors (at least I think they are): Fatal: Can't create directory /usr/local/var/run/dovecot: No such file or directory ... when I undefine "base_dir = /var/run/dovecot/". So that path really isn't the default dovecot uses, for some reason it prepends '/usr/local' (that being the install prefix). This could be a feature, too - it just confused me because I thought the comments showed the default settings. And I also get an error when I uncomment "max_logging_users = 256": Fatal: Error in configuration file /usr/local/etc/dovecot.conf line 125: Unknown setting: max_logging_users That should probably be login_max_logging_users? Regards, wouter From tss@iki.fi Mon Jun 16 17:39:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B0B4523865; Mon, 16 Jun 2003 17:39:17 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1CFB223860 for ; Mon, 16 Jun 2003 17:39:15 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id D3BF65EC1410; Mon, 16 Jun 2003 17:39:14 +0300 (EEST) Subject: Re: [Dovecot] crash on LIST command From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <1055753236.10262.51.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055774354.10241.72.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 16 Jun 2003 17:39:14 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 14:39:17 -0000 X-UID: 948 Status: O On Mon, 2003-06-16 at 17:14, Wouter Van Hemel wrote: > Fatal: Can't create directory /usr/local/var/run/dovecot: No such file or > directory > > ... when I undefine "base_dir = /var/run/dovecot/". So that path really > isn't the default dovecot uses, for some reason it prepends '/usr/local' > (that being the install prefix). This could be a feature, too - it just > confused me because I thought the comments showed the default settings. >From beginning of config file: # Default values are shown after each value, it's not required to uncomment # any of the lines. Exception to this are paths, they're just examples # with real defaults being based on configure options. I use those values that are the preferred locations that binary package builders should use. > Fatal: Error in configuration file /usr/local/etc/dovecot.conf line 125: > Unknown setting: max_logging_users > > That should probably be login_max_logging_users? Right. From ken.crain@dotcomadvisors.com Mon Jun 16 19:02:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8AD2B23865; Mon, 16 Jun 2003 19:02:55 +0300 (EEST) Received: from s5a.dotcomadvisors.com (s5a.dotcomadvisors.com [209.123.168.233]) by danu.procontrol.fi (Postfix) with ESMTP id 763252384C for ; Mon, 16 Jun 2003 19:02:53 +0300 (EEST) Received: from dell800 (24-193-183-82.nyc.rr.com [24.193.183.82]) (authenticated) by s5a.dotcomadvisors.com (8.11.6/8.11.2) with ESMTP id h5GG2qP14727 for ; Mon, 16 Jun 2003 12:02:52 -0400 Message-ID: <010601c33420$bdadfd00$6401a8c0@nyc.rr.com> From: "Ken Crain" To: Date: Mon, 16 Jun 2003 12:02:52 -0400 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0103_01C333FF.367ACB40" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Subject: [Dovecot] SASL Support X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 16:02:55 -0000 X-UID: 949 Status: O Content-Length: 1479 This is a multi-part message in MIME format. ------=_NextPart_000_0103_01C333FF.367ACB40 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I need to support Outlook/Outlook Express users of Sendmail with SMTP = Authorization. From what I can see, the LOGIN method available in = Outlook/Outlook Express is the only applicable way to go at this time. = It appears it is not supported in Dovecot right now. Is this correct = and, if so, how would I go about adding this support? ------=_NextPart_000_0103_01C333FF.367ACB40 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
I need to support Outlook/Outlook = Express=20 users of Sendmail with SMTP Authorization.  From what I can see, = the LOGIN=20 method available in Outlook/Outlook Express is the only = applicable way=20 to go at this time.  It appears it is not supported in = Dovecot=20 right now.  Is this correct and, if so, how would I go = about adding=20 this support?
------=_NextPart_000_0103_01C333FF.367ACB40-- From jryden@thebox.our-own.net Mon Jun 16 20:22:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 07EB223865; Mon, 16 Jun 2003 20:22:26 +0300 (EEST) Received: from thebox.our-own.net (thebox.our-own.net [64.81.83.87]) by danu.procontrol.fi (Postfix) with ESMTP id 106912384C for ; Mon, 16 Jun 2003 20:22:23 +0300 (EEST) Received: from redtop.our-own.net (redtop.our-own.net [10.0.0.19]) by localhost (Postfix) with ESMTP id D3C15D1F89; Mon, 16 Jun 2003 10:22:20 -0700 (PDT) Subject: Re: [Dovecot] SASL Support From: Joakim Ryden To: Ken Crain In-Reply-To: <010601c33420$bdadfd00$6401a8c0@nyc.rr.com> References: <010601c33420$bdadfd00$6401a8c0@nyc.rr.com> Content-Type: text/plain Message-Id: <1055784140.8098.31.camel@redtop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 16 Jun 2003 10:22:20 -0700 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2003 17:22:26 -0000 X-UID: 950 Status: O Content-Length: 1077 On Mon, 2003-06-16 at 09:02, Ken Crain wrote: > I need to support Outlook/Outlook Express users of Sendmail with SMTP > Authorization. From what I can see, the LOGIN method available in > Outlook/Outlook Express is the only applicable way to go at this > time. It appears it is not supported in Dovecot right now. Is this > correct and, if so, how would I go about adding this support? Hi Ken - I think you may be confusing the IMAP/POP server (Dovecot) function with the SMTP server (Sendmail) function. You need SASL support in the SMTP server, which has nothing to do with the IMAP/POP server. Unless you're talking about authenticating the SMTP users and the IMAP/POP users against the same database and you are using sasldb for the SMTP authentication in which case I think you are out of luck right now. You can configure the SASL library to use password/shadow, SQL, LDAP or PAM though in which case Dovecot and Sendmail could use the same source for authentication. http://www.sendmail.org/~ca/email/auth.html http://dovecot.procontrol.fi/doc/auth.txt HTH, Jo From ohp@pyrenet.fr Tue Jun 17 21:13:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A7A4E2387A; Tue, 17 Jun 2003 21:13:38 +0300 (EEST) Received: from server.pyrenet.fr (server.pyrenet.fr [194.250.190.1]) by danu.procontrol.fi (Postfix) with ESMTP id 9103B2384C for ; Tue, 17 Jun 2003 21:13:33 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost.pyrenet.fr (Postfix) with ESMTP id 19600285A3 for ; Tue, 17 Jun 2003 20:13:33 +0200 (MET DST) Received: from server.pyrenet.fr ([127.0.0.1]) by localhost (server [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12075-01 for ; Tue, 17 Jun 2003 20:13:31 +0200 (MET DST) Received: from server.pyrenet.fr (server.pyrenet.fr [194.250.190.1]) by server.pyrenet.fr (Postfix) with ESMTP id 93591285A0 for ; Tue, 17 Jun 2003 20:13:31 +0200 (MET DST) Date: Tue, 17 Jun 2003 20:13:25 +0200 (MET DST) From: ohp@pyrenet.fr To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new Subject: [Dovecot] Multiple auth howto X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: ohp@pyrenet.fr List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jun 2003 18:13:39 -0000 X-UID: 951 Status: O Howdi. I'm new to dovcot (just succeded in compiling on unixware 713 today) I'm noww configuring for tests on other port. The sample configuration file is pretty well documented, however, I don't understand how I can firstt authenticate against passwd/shadow if not found against pgsql. What's the syntax? Please cc responses as I'm subscribed to digest TIA Reghards -- Olivier PRENANT Tel: +33-5-61-50-97-00 (Work) Quartier d'Harraud Turrou +33-5-61-50-97-01 (Fax) 31190 AUTERIVE +33-6-07-63-80-64 (GSM) FRANCE Email: ohp@pyrenet.fr ------------------------------------------------------------------------------ Make your life a dream, make your dream a reality. (St Exupery) From tss@iki.fi Tue Jun 17 21:30:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 11F0B2387A; Tue, 17 Jun 2003 21:30:47 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3869523865 for ; Tue, 17 Jun 2003 21:30:44 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id F375A5EC1410; Tue, 17 Jun 2003 21:30:43 +0300 (EEST) Subject: Re: [Dovecot] Multiple auth howto From: Timo Sirainen To: ohp@pyrenet.fr In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055874643.10262.115.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 17 Jun 2003 21:30:43 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jun 2003 18:30:47 -0000 X-UID: 952 Status: O On Tue, 2003-06-17 at 21:13, ohp@pyrenet.fr wrote: > Howdi. > > I'm new to dovcot (just succeded in compiling on unixware 713 today) > I'm noww configuring for tests on other port. The sample configuration > file is pretty well documented, however, I don't understand how I can > firstt authenticate against passwd/shadow if not found against pgsql. > > What's the syntax? Well, short answer: You can't. Put them all to one place (eg. pgsql), maybe using some automated scripts. I don't know if I should even consider about supporting fallbacking.. From katzj@redhat.com Wed Jun 18 01:27:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 778032387A; Wed, 18 Jun 2003 01:27:28 +0300 (EEST) Received: from devserv.devel.redhat.com (nat-pool-rdu.redhat.com [66.187.233.200]) by danu.procontrol.fi (Postfix) with ESMTP id B6B4123865 for ; Wed, 18 Jun 2003 01:27:21 +0300 (EEST) Received: from mirkwood.devel.redhat.com (mirkwood.devel.redhat.com [172.16.57.122])h5HMRIx23719; Tue, 17 Jun 2003 18:27:18 -0400 Subject: Re: [Dovecot] 0.99.10-test12 From: Jeremy Katz To: Timo Sirainen In-Reply-To: <1055649482.10262.17.camel@hurina> References: <1055649482.10262.17.camel@hurina> Content-Type: text/plain Message-Id: <1055888838.22969.27.camel@mirkwood.devel.redhat.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.92 (cvs 20030602) (Preview Release) Date: 17 Jun 2003 18:27:18 -0400 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jun 2003 22:27:28 -0000 X-UID: 953 Status: O On Sat, 2003-06-14 at 23:58, Timo Sirainen wrote: > - OpenSSL problems. Are they really my fault? I have no idea what I > could be doing wrong. Maybe some compile option is wrong? Sorry, found out the answer to this on Friday afternoon (from our local ssl guru) and haven't had a chance to sit down and send the reasoning. Basically, if you're using OpenSSL with the RSA blinding patch as supplied by the OpenSSL folks, then the blinding ends up not having entropy. This is because /dev/urandom won't exist in your chroot and so the SSL entropy isn't able to be setup. Probably the best fix would be initializing SSL bits before the chroot (similar to the way timezone setup has to happen). That or making sure you have /dev/urandom in your chroot. I was going to look more at the former but just haven't had the cycles yet :/ > Also I should > try to use pkg-config to get compile flags if it exists in configure. Would be nice, but won't help this :) Cheers, Jeremy From jens@freebsdforum.de Wed Jun 18 02:13:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DB546238B6; Wed, 18 Jun 2003 02:13:37 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id 050A72387A for ; Wed, 18 Jun 2003 02:13:33 +0300 (EEST) Received: from jensemann.lan.saturn (pD95400AD.dip.t-dialin.net [217.84.0.173]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested)085031141C2 for ; Wed, 18 Jun 2003 01:13:31 +0200 (CEST) Date: Wed, 18 Jun 2003 01:18:53 +0200 From: Jens Gutzeit To: dovecot@procontrol.fi Message-Id: <20030618011853.37be0e08.jens@freebsdforum.de> X-Mailer: Sylpheed version 0.9.1 (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Dovecot] starting with daemontools X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jun 2003 23:13:38 -0000 X-UID: 954 Status: O Hi all, I want to start dovecot through DJBs Daemontools-supervise, is there a configuration option that lets dovecot stay in foreground? best regards, Jens From bradf@mailgate.tpi.com Wed Jun 18 03:50:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 48941238C6; Wed, 18 Jun 2003 03:50:04 +0300 (EEST) Received: from mailgate.tpi.com (unknown [198.107.51.136]) by danu.procontrol.fi (Postfix) with ESMTP id 0546D238B6 for ; Wed, 18 Jun 2003 03:49:58 +0300 (EEST) Received: from triplepoint.com ([10.0.5.2]) by mailgate.tpi.com (Post.Office MTA v3.5.3 release 223 ID# 0-60229U100L100S0V35) with ESMTP id com; Tue, 17 Jun 2003 17:49:56 -0700 Message-ID: <3EEFB6DF.3020606@triplepoint.com> Date: Tue, 17 Jun 2003 17:48:31 -0700 From: Brad Figg User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4a) Gecko/20030401 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10-test12 References: <1055649482.10262.17.camel@hurina> In-Reply-To: <1055649482.10262.17.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Wed, 18 Jun 2003 03:53:56 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 00:50:04 -0000 X-UID: 955 Status: O Content-Length: 1614 I just upgraded from 0.99.6 to 0.99.10-test12 and I can no longer delete messages or move messages between folders from Mozilla. What information can I provide to you to help debug this? Brad Timo Sirainen wrote: > http://dovecot.procontrol.fi/test/ > > I should have released 0.99.10 already I think.. There's just two > annoying problems that I think should be fixed first: > > - PAM: If user gives a wrong password, dovecot-auth process sleeps for > two seconds, blocking everyone else who are trying to authenticate at > the time. So using PAM isn't very good idea at the moment. > > - OpenSSL problems. Are they really my fault? I have no idea what I > could be doing wrong. Maybe some compile option is wrong? Also I should > try to use pkg-config to get compile flags if it exists in configure. > > The new things in -test12 then: > > - We sync mailbox less often. Only NOOP and CHECK will force a mailbox > sync now. Other commands do it also but only if mailbox hasn't been > synced in last 5 seconds. Maybe this reduces some I/O. At least a bit > less stat() calls :) > > - Dirty maildir flag flushing work now. Meaning that if you change > message flags but rename() fails because you're out of quota, the flags > are changed in index file and dirty-flag is set. Once in a while it > tries to flush the dirty flags by rename()ing the file again. > > - IMAP RFC requires that NUL characters are never sent to client. We do > now the same as UW-IMAP by sending ascii 128 chars instead. > -- Brad Figg - brad@triplepoint.com 503.601.0235 ext. 105 TriplePoint, Inc. - http://www.triplepoint.com From tss@iki.fi Wed Jun 18 03:57:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BA30F238C7; Wed, 18 Jun 2003 03:57:31 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C7274238C6 for ; Wed, 18 Jun 2003 03:57:28 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 96FDF5EC1410; Wed, 18 Jun 2003 03:57:27 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10-test12 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3EEFB6DF.3020606@triplepoint.com> References: <1055649482.10262.17.camel@hurina> <3EEFB6DF.3020606@triplepoint.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055897847.10262.120.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 18 Jun 2003 03:57:27 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 00:57:31 -0000 X-UID: 956 Status: O On Wed, 2003-06-18 at 03:48, Brad Figg wrote: > I just upgraded from 0.99.6 to 0.99.10-test12 > and I can no longer delete messages or move > messages between folders from Mozilla. What > information can I provide to you to help debug > this? Anything in log file? There could be some index file incompatibilities though, so you could try deleting them (.imap.index*). From tss@iki.fi Wed Jun 18 03:58:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 89811238CB; Wed, 18 Jun 2003 03:58:06 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D4897238C7 for ; Wed, 18 Jun 2003 03:58:04 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id AEFD55EC1410; Wed, 18 Jun 2003 03:58:04 +0300 (EEST) Subject: Re: [Dovecot] starting with daemontools From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030618011853.37be0e08.jens@freebsdforum.de> References: <20030618011853.37be0e08.jens@freebsdforum.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055897884.10241.122.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 18 Jun 2003 03:58:04 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 00:58:06 -0000 X-UID: 957 Status: O On Wed, 2003-06-18 at 02:18, Jens Gutzeit wrote: > I want to start dovecot through DJBs Daemontools-supervise, is there a > configuration option that lets dovecot stay in foreground? dovecot -F From jens@freebsdforum.de Wed Jun 18 04:09:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 77254238C8; Wed, 18 Jun 2003 04:09:20 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id E8FE4238C7 for ; Wed, 18 Jun 2003 04:09:17 +0300 (EEST) Received: from jensemann.lan.saturn (pD95400AD.dip.t-dialin.net [217.84.0.173]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested)528EB1141C2 for ; Wed, 18 Jun 2003 03:09:17 +0200 (CEST) Date: Wed, 18 Jun 2003 03:14:43 +0200 From: Jens Gutzeit To: dovecot@procontrol.fi Subject: Re: [Dovecot] starting with daemontools Message-Id: <20030618031443.5448f4a1.jens@freebsdforum.de> In-Reply-To: <1055897884.10241.122.camel@hurina> References: <20030618011853.37be0e08.jens@freebsdforum.de> <1055897884.10241.122.camel@hurina> X-Mailer: Sylpheed version 0.9.1 (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 01:09:20 -0000 X-UID: 958 Status: O Am 18 Jun 2003 03:58:04 +0300 Timo Sirainen schrieb: > On Wed, 2003-06-18 at 02:18, Jens Gutzeit wrote: > > I want to start dovecot through DJBs Daemontools-supervise, is there > > a configuration option that lets dovecot stay in foreground? > > dovecot -F > Thanks. Seems that it isn't documented :) Jens From tss@iki.fi Wed Jun 18 04:10:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 55E2B238D4; Wed, 18 Jun 2003 04:10:52 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B58F4238CB for ; Wed, 18 Jun 2003 04:10:50 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 7BE565EC1410; Wed, 18 Jun 2003 04:10:50 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1055888838.22969.27.camel@mirkwood.devel.redhat.com> References: <1055649482.10262.17.camel@hurina> <1055888838.22969.27.camel@mirkwood.devel.redhat.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055898650.10241.126.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 18 Jun 2003 04:10:50 +0300 Subject: [Dovecot] OpenSSL fix X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 01:10:52 -0000 X-UID: 959 Status: O Content-Length: 2037 On Wed, 2003-06-18 at 01:27, Jeremy Katz wrote: > On Sat, 2003-06-14 at 23:58, Timo Sirainen wrote: > > - OpenSSL problems. Are they really my fault? I have no idea what I > > could be doing wrong. Maybe some compile option is wrong? > > Sorry, found out the answer to this on Friday afternoon (from our local > ssl guru) and haven't had a chance to sit down and send the reasoning. > > Basically, if you're using OpenSSL with the RSA blinding patch as > supplied by the OpenSSL folks, then the blinding ends up not having > entropy. This is because /dev/urandom won't exist in your chroot and so > the SSL entropy isn't able to be setup. I thought it would have required that in any case.. > Probably the best fix would be initializing SSL bits before the chroot > (similar to the way timezone setup has to happen). That or making sure > you have /dev/urandom in your chroot. I was going to look more at the > former but just haven't had the cycles yet :/ I just looked at OpenSSL sources how it work, I think this would fix it: diff -u -r1.16 ssl-proxy-openssl.c --- ssl-proxy-openssl.c 11 Jun 2003 23:26:13 -0000 1.16 +++ ssl-proxy-openssl.c 18 Jun 2003 01:08:07 -0000 @@ -13,6 +13,7 @@ #include #include #include +#include #define SSL_CIPHER_LIST "ALL:!LOW" @@ -403,6 +404,7 @@ void ssl_proxy_init(void) { const char *certfile, *keyfile, *paramfile; + char buf; certfile = getenv("SSL_CERT_FILE"); keyfile = getenv("SSL_KEY_FILE"); @@ -439,6 +441,11 @@ if (SSL_CTX_need_tmp_RSA(ssl_ctx)) SSL_CTX_set_tmp_rsa_callback(ssl_ctx, ssl_gen_rsa_key); + + /* PRNG initialization might want to use /dev/urandom, make sure it + does it before chrooting. */ + if (RAND_bytes(&buf, 1) != 1) + i_fatal("RAND_bytes() failed: %s\n", ssl_last_error()); ssl_proxies = hash_create(default_pool, default_pool, 0, NULL, NULL); ssl_initialized = TRUE; From tss@iki.fi Wed Jun 18 04:42:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 65419238CE; Wed, 18 Jun 2003 04:42:03 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E61D92384C for ; Wed, 18 Jun 2003 04:42:01 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id B29425C47B20; Wed, 18 Jun 2003 04:42:01 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055900521.10241.147.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 18 Jun 2003 04:42:01 +0300 Subject: [Dovecot] 0.99.10-test13 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 01:42:03 -0000 X-UID: 960 Status: O http://dovecot.procontrol.fi/test/ - Hopefully OpenSSL is fixed :) - We sometimes produced invalid ENVELOPE with 8bit headers. That could really have broken things (broke it in test12). So, what's left is to make PAM work well.. From zach.bagnall@bulletinwireless.com Wed Jun 18 07:38:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6ECD7238D6; Wed, 18 Jun 2003 07:38:16 +0300 (EEST) Received: from piranha.intra.jungledrum.co.nz (ns1.jungledrum.co.nz [210.54.149.34]) by danu.procontrol.fi (Postfix) with ESMTP id 60A6F238CB for ; Wed, 18 Jun 2003 07:38:11 +0300 (EEST) Received: from piranha (localhost.localdomain [127.0.0.1]) by piranha.intra.jungledrum.co.nz (Postfix) with SMTP id 7FC4C15005 for ; Wed, 18 Jun 2003 16:38:00 +1200 (NZST) Date: Wed, 18 Jun 2003 16:38:00 +1200 From: Zach Bagnall To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10-test13 Message-Id: <20030618163800.5c0afa4f.zach.bagnall@bulletinwireless.com> In-Reply-To: <1055900521.10241.147.camel@hurina> References: <1055900521.10241.147.camel@hurina> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.8.9 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.jXVThpZj(PWf+Y" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 04:38:16 -0000 X-UID: 961 Status: O Content-Length: 1168 --=.jXVThpZj(PWf+Y Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Can anyone pinpoint exactly when SSL began to have problems? I'm using 0.9.99.1 on two servers: - Redhat 7.3 with openssl-0.9.6b-30.7 - Gentoo with openssl-0.9.6i The Redhat server serves about 30 users, some POP3, some IMAP. At least half use SSL (because they're ouside the LAN). I haven't had any problem, so I'm just wondering when these errors began. Zach. On 18 Jun 2003 04:42:01 +0300, Timo Sirainen wrote: > http://dovecot.procontrol.fi/test/ > > - Hopefully OpenSSL is fixed :) > - We sometimes produced invalid ENVELOPE with 8bit headers. That could > really have broken things (broke it in test12). > > So, what's left is to make PAM work well.. > -- Services & Support Bulletin Wireless | www.bulletinwireless.com This email is digitally signed | Key ID 0x3F9AA9A2 --=.jXVThpZj(PWf+Y Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+7+yo4jDFYT+aqaIRAgcfAJ92m6F+Wq3hGl2CXJqxay9PuXiqYQCgh+yK Q/vHIrQahpQYKhB8r5cdfZY= =M2Nn -----END PGP SIGNATURE----- --=.jXVThpZj(PWf+Y-- From warren@togami.com Wed Jun 18 10:20:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9A8CB238CE; Wed, 18 Jun 2003 10:20:54 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 40ED32384C for ; Wed, 18 Jun 2003 10:20:51 +0300 (EEST) Received: from localhost.127.in-addr.arpa (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id 460B35D803F; Tue, 17 Jun 2003 21:24:04 -1000 (HST) Subject: Re: [Dovecot] 0.99.10-test13 From: Warren Togami To: Timo Sirainen , katzj@redhat.com In-Reply-To: <1055900521.10241.147.camel@hurina> References: <1055900521.10241.147.camel@hurina> Content-Type: text/plain Message-Id: <1055920846.2331.2.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 (1.4.0-2) Date: 17 Jun 2003 21:20:47 -1000 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 07:20:54 -0000 X-UID: 962 Status: O On Tue, 2003-06-17 at 15:42, Timo Sirainen wrote: > http://dovecot.procontrol.fi/test/ > > - Hopefully OpenSSL is fixed :) > - We sometimes produced invalid ENVELOPE with 8bit headers. That could > really have broken things (broke it in test12). > > So, what's left is to make PAM work well.. openssl suddenly works on RH9 with dovecot. It seems to be stable, but speed seems to be extremely slow. Using less than 2% CPU on the Athlon 2100+ server, loading the directory indexes in Evolution feels like 5 times as long as previously with unencrypted IMAP going through a SSH tunnel. Any ideas? Warren Togami warren@togami.com From ohp@pyrenet.fr Wed Jun 18 14:05:21 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3DCE223865; Wed, 18 Jun 2003 14:05:21 +0300 (EEST) Received: from server.pyrenet.fr (server.pyrenet.fr [194.250.190.1]) by danu.procontrol.fi (Postfix) with ESMTP id 78D1523860 for ; Wed, 18 Jun 2003 14:05:19 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost.pyrenet.fr (Postfix) with ESMTP id C973C262DD; Wed, 18 Jun 2003 13:05:18 +0200 (MET DST) Received: from server.pyrenet.fr ([127.0.0.1]) by localhost (server [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10766-04; Wed, 18 Jun 2003 13:05:17 +0200 (MET DST) Received: from server.pyrenet.fr (server.pyrenet.fr [194.250.190.1]) by server.pyrenet.fr (Postfix) with ESMTP id 1C2A4267E2; Wed, 18 Jun 2003 13:05:17 +0200 (MET DST) Date: Wed, 18 Jun 2003 13:05:17 +0200 (MET DST) From: ohp@pyrenet.fr To: Timo Sirainen Subject: Re: [Dovecot] Multiple auth howto In-Reply-To: <1055874643.10262.115.camel@hurina> Message-ID: References: <1055874643.10262.115.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: ohp@pyrenet.fr List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 11:05:21 -0000 X-UID: 963 Status: O Content-Length: 1452 On Tue, 17 Jun 2003, Timo Sirainen wrote: > Date: 17 Jun 2003 21:30:43 +0300 > From: Timo Sirainen > To: ohp@pyrenet.fr > Cc: dovecot@procontrol.fi > Subject: Re: [Dovecot] Multiple auth howto > > On Tue, 2003-06-17 at 21:13, ohp@pyrenet.fr wrote: > > Howdi. > > > > I'm new to dovcot (just succeded in compiling on unixware 713 today) > > I'm noww configuring for tests on other port. The sample configuration > > file is pretty well documented, however, I don't understand how I can > > firstt authenticate against passwd/shadow if not found against pgsql. > > > > What's the syntax? > > Well, short answer: You can't. Put them all to one place (eg. pgsql), > maybe using some automated scripts. I don't know if I should even > consider about supporting fallbacking.. > > Hi Timo, Thanks for your answer. The reason I came to dovcot is that I thought it was possible. I've benn researching this for weeks now. First thought that cyrus would do that, it does but though SASL and pam whitch I don't have. How difficult would it be to implement a fallback? Regards -- Olivier PRENANT Tel: +33-5-61-50-97-00 (Work) Quartier d'Harraud Turrou +33-5-61-50-97-01 (Fax) 31190 AUTERIVE +33-6-07-63-80-64 (GSM) FRANCE Email: ohp@pyrenet.fr ------------------------------------------------------------------------------ Make your life a dream, make your dream a reality. (St Exupery) From dovecot@andreas.hanssen.name Wed Jun 18 14:21:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5CB5423865; Wed, 18 Jun 2003 14:21:17 +0300 (EEST) Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id 5113F2384C for ; Wed, 18 Jun 2003 14:21:12 +0300 (EEST) Received: (qmail 10000 invoked from network); 18 Jun 2003 11:21:09 -0000 Received: from localhost (HELO shusaku.troll.no) (andreaha@127.0.0.1) by localhost with SMTP; 18 Jun 2003 11:21:09 -0000 Date: Wed, 18 Jun 2003 13:21:08 +0200 (CEST) From: Andreas Aardal Hanssen Sender: ahanssen@shusaku.troll.no To: Dovecot mailing list Subject: Re: [Dovecot] Multiple auth howto In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 11:21:17 -0000 X-UID: 964 Status: O On Wed, 18 Jun 2003 ohp@pyrenet.fr wrote: >> Well, short answer: You can't. Put them all to one place (eg. pgsql), >> maybe using some automated scripts. I don't know if I should even >> consider about supporting fallbacking.. >Hi Timo, Thanks for your answer. >The reason I came to dovcot is that I thought it was possible. I've benn >researching this for weeks now. First thought that cyrus would do that, it >does but though SASL and pam whitch I don't have. >How difficult would it be to implement a fallback? Does this tool do what you want? (checkpassword only though, but I bet you will find checkpassword compatible authenticators that suit your needs): http://www.andreas.hanssen.name/software/multichkpwds.c -- Andreas Aardal Hanssen From lfarkas@bnap.hu Wed Jun 18 14:35:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A43C823865; Wed, 18 Jun 2003 14:35:52 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 1A7FC2384C for ; Wed, 18 Jun 2003 14:35:47 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id B5558754010 for ; Wed, 18 Jun 2003 13:35:17 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id B77AC3ECF; Wed, 18 Jun 2003 13:35:42 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 9DA493EC5 for ; Wed, 18 Jun 2003 13:35:42 +0200 (CEST) Message-ID: <3EF04E8C.4060703@bnap.hu> Date: Wed, 18 Jun 2003 13:35:40 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] imaps now works! X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 11:35:52 -0000 X-UID: 965 Status: O thanks! -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed Jun 18 15:31:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F0C5D238B6; Wed, 18 Jun 2003 15:31:38 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0344D23860 for ; Wed, 18 Jun 2003 15:31:37 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id C10D765EA9E0; Wed, 18 Jun 2003 15:31:36 +0300 (EEST) Subject: Re: [Dovecot] Multiple auth howto From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <1055874643.10262.115.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055939496.10262.163.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 18 Jun 2003 15:31:36 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 12:31:39 -0000 X-UID: 966 Status: O On Wed, 2003-06-18 at 14:05, ohp@pyrenet.fr wrote: > > Well, short answer: You can't. Put them all to one place (eg. pgsql), > > maybe using some automated scripts. I don't know if I should even > > consider about supporting fallbacking.. > > > > > Hi Timo, Thanks for your answer. > The reason I came to dovcot is that I thought it was possible. I've benn > researching this for weeks now. First thought that cyrus would do that, it > does but though SASL and pam whitch I don't have. > > How difficult would it be to implement a fallback? Not very. I'm mostly concerned about what happens if the user exists in both authenticators. I guess normally this shouldn't happen, but you can't really guarantee that and mistakes happen.. If fallbacking happened only when user isn't found from first authenticator, that could work a bit more safely, but I'm not sure if I can know with PAM if check failed because user wasn't found or because password didn't match. From bradf@mailgate.tpi.com Wed Jun 18 08:28:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E07BD23993; Wed, 18 Jun 2003 08:28:31 +0300 (EEST) Received: from mailgate.tpi.com (ftp.tpi.com [198.107.51.136]) by danu.procontrol.fi (Postfix) with ESMTP id 612BE2384C for ; Wed, 18 Jun 2003 08:28:28 +0300 (EEST) Received: from triplepoint.com ([10.0.5.2]) by mailgate.tpi.com (Post.Office MTA v3.5.3 release 223 ID# 0-60229U100L100S0V35) with ESMTP id com for ; Tue, 17 Jun 2003 22:28:26 -0700 Message-ID: <3EEFF80C.2050200@triplepoint.com> Date: Tue, 17 Jun 2003 22:26:36 -0700 From: Brad Figg User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4a) Gecko/20030401 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10-test12 References: <1055649482.10262.17.camel@hurina> <3EEFB6DF.3020606@triplepoint.com> <1055897847.10262.120.camel@hurina> In-Reply-To: <1055897847.10262.120.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Wed, 18 Jun 2003 15:32:00 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 05:28:32 -0000 X-UID: 967 Status: O The log file contains: dovecot: Jun 17 11:27:39 Error: child 3492 (imap) killed with signal 11 dovecot: Jun 17 17:44:56 Error: child 5906 (imap) killed with signal 11 dovecot: Jun 17 17:45:11 Error: child 5950 (imap) killed with signal 11 for each attempted delete or move. I deleted all index files and still have the same problem. Brad Timo Sirainen wrote: > On Wed, 2003-06-18 at 03:48, Brad Figg wrote: > >>I just upgraded from 0.99.6 to 0.99.10-test12 >>and I can no longer delete messages or move >>messages between folders from Mozilla. What >>information can I provide to you to help debug >>this? > > > Anything in log file? There could be some index file incompatibilities > though, so you could try deleting them (.imap.index*). > -- Brad Figg - brad@triplepoint.com 503.601.0235 ext. 105 TriplePoint, Inc. - http://www.triplepoint.com From tss@iki.fi Wed Jun 18 15:35:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A7CCC238CB; Wed, 18 Jun 2003 15:35:41 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 23016238B6 for ; Wed, 18 Jun 2003 15:35:40 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id EA12365EA9E0; Wed, 18 Jun 2003 15:35:39 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10-test12 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3EEFF80C.2050200@triplepoint.com> References: <1055649482.10262.17.camel@hurina> <1055897847.10262.120.camel@hurina> <3EEFF80C.2050200@triplepoint.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055939739.10241.167.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 18 Jun 2003 15:35:39 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 12:35:41 -0000 X-UID: 968 Status: O On Wed, 2003-06-18 at 08:26, Brad Figg wrote: > The log file contains: > > dovecot: Jun 17 11:27:39 Error: child 3492 (imap) killed with signal 11 > dovecot: Jun 17 17:44:56 Error: child 5906 (imap) killed with signal 11 > dovecot: Jun 17 17:45:11 Error: child 5950 (imap) killed with signal 11 > > for each attempted delete or move. I deleted all > index files and still have the same problem. See "debugging crashes" in: http://dovecot.procontrol.fi/bugreport.html That should tell why it's crashing. From tom@replic8.net Wed Jun 18 18:02:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 619BA238C5; Wed, 18 Jun 2003 18:02:40 +0300 (EEST) Received: from rpunkt.kicks-ass.net (p50860B4B.dip0.t-ipconnect.de [80.134.11.75]) by danu.procontrol.fi (Postfix) with ESMTP id 11B7B238B6 for ; Wed, 18 Jun 2003 18:02:32 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by rpunkt.kicks-ass.net (Postfix) with ESMTP id 83A36416F4; Wed, 18 Jun 2003 15:02:24 +0000 (GMT) Received: from rpunkt.kicks-ass.net ([127.0.0.1]) by localhost (commbox [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 07659-03; Wed, 18 Jun 2003 15:02:23 +0000 (GMT) Received: from aural (unknown [192.168.100.88]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by rpunkt.kicks-ass.net (Postfix) with ESMTP id 3B099416E4; Wed, 18 Jun 2003 15:02:22 +0000 (GMT) Date: Wed, 18 Jun 2003 17:01:25 +0200 From: tom hensel To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10-test13 Message-Id: <20030618170125.462bb97c.tom@replic8.net> In-Reply-To: <1055900521.10241.147.camel@hurina> References: <1055900521.10241.147.camel@hurina> X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.Be5dKFWzhEq.X3" X-Virus-Scanned: by amavisd-new at rpdnet.com cc: tech-pkg@netbsd.org X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 15:02:40 -0000 X-UID: 969 Status: O Content-Length: 5521 --=.Be5dKFWzhEq.X3 Content-Type: multipart/mixed; boundary="Multipart_Wed__18_Jun_2003_17:01:25_+0200_09295400" --Multipart_Wed__18_Jun_2003_17:01:25_+0200_09295400 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit hi, > - Hopefully OpenSSL is fixed :) you did it. works like a charm now on NetBSD, thanks a lot! pkgsrc for 0.99.10-test13 attached and cced to the maintainer. bye, TOM --Multipart_Wed__18_Jun_2003_17:01:25_+0200_09295400 Content-Type: application/octet-stream; name="pkgsrc_dovecot-0.99.10-test13.tar.gz" Content-Disposition: attachment; filename="pkgsrc_dovecot-0.99.10-test13.tar.gz" Content-Transfer-Encoding: base64 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 --Multipart_Wed__18_Jun_2003_17:01:25_+0200_09295400-- --=.Be5dKFWzhEq.X3 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (NetBSD) iD8DBQE+8H7FZj9fGW5yU88RAgVuAJ0aV5rW/US9b+p4/ShjCN7wxZdkZwCcDlF+ aqD0s4MipHR0MiofFQ5HVuw= =Fe/j -----END PGP SIGNATURE----- --=.Be5dKFWzhEq.X3-- From bradf@mailgate.tpi.com Thu Jun 19 01:11:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A9CE423865; Thu, 19 Jun 2003 01:11:31 +0300 (EEST) Received: from mailgate.tpi.com (ftp.tpi.com [198.107.51.136]) by danu.procontrol.fi (Postfix) with ESMTP id 4968D2384C for ; Thu, 19 Jun 2003 01:11:27 +0300 (EEST) Received: from tpi.com ([10.0.5.66]) by mailgate.tpi.com (Post.Office MTA v3.5.3 release 223 ID# 0-60229U100L100S0V35) with ESMTP id com; Wed, 18 Jun 2003 15:11:20 -0700 Message-ID: <3EF0E3A4.3070605@tpi.com> Date: Wed, 18 Jun 2003 15:11:48 -0700 From: Brad Figg User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4a) Gecko/20030401 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10-test12 References: <1055649482.10262.17.camel@hurina> <1055897847.10262.120.camel@hurina> <3EEFF80C.2050200@triplepoint.com> <1055939739.10241.167.camel@hurina> In-Reply-To: <1055939739.10241.167.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 22:11:31 -0000 X-UID: 970 Status: O Content-Length: 2136 From the core file backtrace: #0 _vstrconcat (str1=0x17
, args=0xbffffaec "", ret_len=0x809922f) at strfuncs.c:262 262 while (*str != '\0' && p != temp_end) (gdb) bt #0 _vstrconcat (str1=0x17
, args=0xbffffaec "", ret_len=0x809922f) at strfuncs.c:262 #1 0x0808ce88 in t_strconcat (str1=0x80a7518 "/home/brad/Maildir") at strfuncs.c:354 #2 0x0805bbf3 in hardlink_messageset (ctx=0x80a8f80, src=0x80a7580, dest=0x80a8c48) at maildir-copy.c:97 #3 0x0805bdb1 in copy_with_hardlinks (src=0x80a7580, dest=0x80a8c48, messageset=0x80a2048 "60", uidset=1) at maildir-copy.c:158 #4 0x0805bed3 in maildir_storage_copy (box=0x80a7580, destbox=0x80a8c48, messageset=0x80a2048 "60", uidset=1) at maildir-copy.c:192 #5 0x080516e1 in cmd_copy (client=0x80a1d80) at cmd-copy.c:31 #6 0x0805414a in cmd_uid (client=0x80a1d80) at cmd-uid.c:19 #7 0x08054878 in client_handle_input (client=0x80a1d80) at client.c:314 #8 0x08054999 in _client_input (context=0x80a1d80) at client.c:350 #9 0x08087b89 in io_loop_handler_run (ioloop=0x80a1400) at ioloop-poll.c:214 #10 0x08087529 in io_loop_run (ioloop=0x80a1400) at ioloop.c:258 #11 0x0805a6d5 in main (argc=1, argv=0xbffffce4, envp=0xbffffcec) at main.c:179 #12 0x4003e857 in __libc_start_main () from /lib/libc.so.6 (gdb) p p $1 = 0x809922f "" (gdb) p temp_end $2 = 0x8099417 "itted." (gdb) p str $3 = 0x1
Timo Sirainen wrote: > On Wed, 2003-06-18 at 08:26, Brad Figg wrote: > >>The log file contains: >> >>dovecot: Jun 17 11:27:39 Error: child 3492 (imap) killed with signal 11 >>dovecot: Jun 17 17:44:56 Error: child 5906 (imap) killed with signal 11 >>dovecot: Jun 17 17:45:11 Error: child 5950 (imap) killed with signal 11 >> >>for each attempted delete or move. I deleted all >>index files and still have the same problem. > > > See "debugging crashes" in: > > http://dovecot.procontrol.fi/bugreport.html > > That should tell why it's crashing. > -- Brad Figg - brad@triplepoint.com 503.601.0235 ext. 105 TriplePoint, Inc. - http://www.triplepoint.com From tss@iki.fi Thu Jun 19 01:24:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 225502387A; Thu, 19 Jun 2003 01:24:23 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3763023860 for ; Thu, 19 Jun 2003 01:24:20 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 5AAE9651139F; Thu, 19 Jun 2003 01:24:09 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10-test12 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3EF0E3A4.3070605@tpi.com> References: <1055649482.10262.17.camel@hurina> <3EEFF80C.2050200@triplepoint.com> <1055939739.10241.167.camel@hurina> <3EF0E3A4.3070605@tpi.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055975049.880.25.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 19 Jun 2003 01:24:09 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 22:24:23 -0000 X-UID: 971 Status: O On Thu, 2003-06-19 at 01:11, Brad Figg wrote: > From the core file backtrace: > > #2 0x0805bbf3 in hardlink_messageset (ctx=0x80a8f80, src=0x80a7580, dest=0x80a8c48) > at maildir-copy.c:97 Thanks. Hardlink-copying crashed. Fixed in test14 now. From bradf@mailgate.tpi.com Thu Jun 19 01:36:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9B53623860; Thu, 19 Jun 2003 01:36:16 +0300 (EEST) Received: from mailgate.tpi.com (ftp.tpi.com [198.107.51.136]) by danu.procontrol.fi (Postfix) with ESMTP id 7D2072384C for ; Thu, 19 Jun 2003 01:36:14 +0300 (EEST) Received: from tpi.com ([10.0.5.66]) by mailgate.tpi.com (Post.Office MTA v3.5.3 release 223 ID# 0-60229U100L100S0V35) with ESMTP id com; Wed, 18 Jun 2003 15:36:13 -0700 Message-ID: <3EF0E976.9090002@tpi.com> Date: Wed, 18 Jun 2003 15:36:38 -0700 From: Brad Figg User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4a) Gecko/20030401 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10-test12 References: <1055649482.10262.17.camel@hurina> <3EEFF80C.2050200@triplepoint.com> <1055939739.10241.167.camel@hurina> <3EF0E3A4.3070605@tpi.com> <1055975049.880.25.camel@hurina> In-Reply-To: <1055975049.880.25.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 22:36:16 -0000 X-UID: 972 Status: O Thanks, that fixed my problems. Brad Timo Sirainen wrote: > On Thu, 2003-06-19 at 01:11, Brad Figg wrote: > >> From the core file backtrace: >> >>#2 0x0805bbf3 in hardlink_messageset (ctx=0x80a8f80, src=0x80a7580, dest=0x80a8c48) >> at maildir-copy.c:97 > > > Thanks. Hardlink-copying crashed. Fixed in test14 now. > -- Brad Figg - brad@triplepoint.com 503.601.0235 ext. 105 TriplePoint, Inc. - http://www.triplepoint.com From mg@munge.com Thu Jun 19 03:00:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F22BD23865; Thu, 19 Jun 2003 03:00:30 +0300 (EEST) Received: from bcs-mail.internal.cacheflow.com (unknown [216.52.23.69]) by danu.procontrol.fi (Postfix) with ESMTP id ADA4623860 for ; Thu, 19 Jun 2003 03:00:26 +0300 (EEST) Received: from webmail.bluecoat.com ([216.52.23.20]) by bcs-mail.internal.cacheflow.com with Microsoft SMTPSVC(5.0.2195.5329); Wed, 18 Jun 2003 17:00:23 -0700 Received: from tomahawk ([10.9.44.70]) by webmail.bluecoat.com with Microsoft SMTPSVC(5.0.2195.5329); Wed, 18 Jun 2003 17:00:22 -0700 Message-ID: <00fd01c335f5$c77c2f10$462c090a@internal.cacheflow.com> From: "Mike Grupenhoff" To: Date: Wed, 18 Jun 2003 17:00:22 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-OriginalArrivalTime: 19 Jun 2003 00:00:22.0719 (UTC) FILETIME=[C785A4F0:01C335F5] Subject: [Dovecot] \0\n at end of lines X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jun 2003 00:00:31 -0000 X-UID: 973 Status: O Since upgrading to -test11, mail fetched from imap has every line terminated with a nul and a newline ("\0\n"). This also happens with -test12. It seems to happen with both mbox and maildir. I'm running on NetBSD/sparc (NetBSD-current as of April 1, 1.6Q). If it matters, I have "mail_save_crlf" set to "no" and "mail_read_mmaped" also set to "no". I can't find any other options that look like they could be relevant. Any ideas? Thanks, mike From tss@iki.fi Thu Jun 19 03:45:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5537323865; Thu, 19 Jun 2003 03:45:43 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 23A712384C for ; Thu, 19 Jun 2003 03:45:39 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 23DCA5C62AEF; Thu, 19 Jun 2003 03:45:38 +0300 (EEST) Subject: Re: [Dovecot] \0\n at end of lines From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <00fd01c335f5$c77c2f10$462c090a@internal.cacheflow.com> References: <00fd01c335f5$c77c2f10$462c090a@internal.cacheflow.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1055983537.880.33.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 19 Jun 2003 03:45:37 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jun 2003 00:45:43 -0000 X-UID: 974 Status: O On Thu, 2003-06-19 at 03:00, Mike Grupenhoff wrote: > Since upgrading to -test11, mail fetched from imap has every line terminated > with a nul and a newline ("\0\n"). This also happens with -test12. It > seems to happen with both mbox and maildir. > > I'm running on NetBSD/sparc (NetBSD-current as of April 1, 1.6Q). Whops. It was broken with big endian systems. Here's a fix: diff -u -r1.18 message-send.c --- src/lib-mail/message-send.c 4 Jun 2003 15:57:58 -0000 1.18 +++ src/lib-mail/message-send.c 19 Jun 2003 00:44:39 -0000 @@ -16,7 +16,8 @@ uoff_t old_limit, limit; size_t i, size; off_t ret; - int cr_skipped, add; + int cr_skipped; + unsigned char add; if (last_cr != NULL) *last_cr = -1; From ohp@pyrenet.fr Thu Jun 19 17:26:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 90F3A23865; Thu, 19 Jun 2003 17:26:44 +0300 (EEST) Received: from server.pyrenet.fr (server.pyrenet.fr [194.250.190.1]) by danu.procontrol.fi (Postfix) with ESMTP id CBA4A23860 for ; Thu, 19 Jun 2003 17:26:39 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost.pyrenet.fr (Postfix) with ESMTP id 1129927131 for ; Thu, 19 Jun 2003 16:26:36 +0200 (MET DST) Received: from server.pyrenet.fr ([127.0.0.1]) by localhost (server [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10890-01 for ; Thu, 19 Jun 2003 16:26:34 +0200 (MET DST) Received: from server.pyrenet.fr (server.pyrenet.fr [194.250.190.1]) by server.pyrenet.fr (Postfix) with ESMTP id 4A68A27130 for ; Thu, 19 Jun 2003 16:26:34 +0200 (MET DST) Date: Thu, 19 Jun 2003 16:26:34 +0200 (MET DST) From: ohp@pyrenet.fr To: dovecot@procontrol.fi In-Reply-To: <20030618223624.7832A23887@danu.procontrol.fi> Message-ID: References: <20030618223624.7832A23887@danu.procontrol.fi> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new Subject: [Dovecot] Re: dovecot Digest, Vol 2, Issue 15 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: ohp@pyrenet.fr List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jun 2003 14:26:44 -0000 X-UID: 975 Status: O Content-Length: 3189 > >Message: 2 >Date: Wed, 18 Jun 2003 13:21:08 +0200 (CEST) >From: Andreas Aardal Hanssen >Subject: Re: [Dovecot] Multiple auth howto >To: Dovecot mailing list >Message-ID: > >Content-Type: TEXT/PLAIN; charset=US-ASCII > >On Wed, 18 Jun 2003 ohp@pyrenet.fr wrote: >>> Well, short answer: You can't. Put them all to one place (eg. pgsql), >>> maybe using some automated scripts. I don't know if I should even >>> consider about supporting fallbacking.. >>Hi Timo, Thanks for your answer. >>The reason I came to dovcot is that I thought it was possible. I've benn >>researching this for weeks now. First thought that cyrus would do that, it >>does but though SASL and pam whitch I don't have. >>How difficult would it be to implement a fallback? > >Does this tool do what you want? (checkpassword only though, but I bet you >will find checkpassword compatible authenticators that suit your needs): > >http://www.andreas.hanssen.name/software/multichkpwds.c It surely is interesting bu I'd rather see modules inside the server, see below > >-- >Andreas Aardal Hanssen > > > >------------------------------ >Message: 4 >Date: 18 Jun 2003 15:31:36 +0300 >From: Timo Sirainen >Subject: Re: [Dovecot] Multiple auth howto >To: dovecot@procontrol.fi >Message-ID: <1055939496.10262.163.camel@hurina> >Content-Type: text/plain > >On Wed, 2003-06-18 at 14:05, ohp@pyrenet.fr wrote: >> > Well, short answer: You can't. Put them all to one place (eg. pgsql), >> > maybe using some automated scripts. I don't know if I should even >> > consider about supporting fallbacking.. >> > >> > >> Hi Timo, Thanks for your answer. >> The reason I came to dovcot is that I thought it was possible. I've benn >> researching this for weeks now. First thought that cyrus would do that, it >> does but though SASL and pam whitch I don't have. >> >> How difficult would it be to implement a fallback? > >Not very. I'm mostly concerned about what happens if the user exists in >both authenticators. I guess normally this shouldn't happen, but you >can't really guarantee that and mistakes happen.. Yes mistakes happen. Why could'nt you (we?) do like proftpd that has a parameter that give the order of authenticators first one wins. That way you could even have the same user as a real and virtual account with differents passwords > >If fallbacking happened only when user isn't found from first >authenticator, that could work a bit more safely, but I'm not sure if I >can know with PAM if check failed because user wasn't found or because >password didn't match. I don't know either. My idea is to get rid of PAM for that's although fantastic on the paper is a Linux thing that I can't even compile here. Regards -- Olivier PRENANT Tel: +33-5-61-50-97-00 (Work) Quartier d'Harraud Turrou +33-5-61-50-97-01 (Fax) 31190 AUTERIVE +33-6-07-63-80-64 (GSM) FRANCE Email: ohp@pyrenet.fr ------------------------------------------------------------------------------ Make your life a dream, make your dream a reality. (St Exupery) From tom@replic8.net Thu Jun 19 19:06:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 20A9723865; Thu, 19 Jun 2003 19:06:25 +0300 (EEST) Received: from rpunkt.kicks-ass.net (p50860E82.dip0.t-ipconnect.de [80.134.14.130]) by danu.procontrol.fi (Postfix) with ESMTP id 94AB22384C for ; Thu, 19 Jun 2003 19:06:17 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by rpunkt.kicks-ass.net (Postfix) with ESMTP id D2F98416F5 for ; Thu, 19 Jun 2003 16:06:08 +0000 (GMT) Received: from rpunkt.kicks-ass.net ([127.0.0.1]) by localhost (commbox [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 23451-09 for ; Thu, 19 Jun 2003 16:06:08 +0000 (GMT) Received: from aural (unknown [192.168.100.88]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by rpunkt.kicks-ass.net (Postfix) with ESMTP id 892BE416D5 for ; Thu, 19 Jun 2003 16:06:07 +0000 (GMT) Date: Thu, 19 Jun 2003 18:06:14 +0200 From: tom hensel To: dovecot@procontrol.fi Message-Id: <20030619180614.50593244.tom@replic8.net> X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.x.zMTYr),grX?/" X-Virus-Scanned: by amavisd-new at rpdnet.com Subject: [Dovecot] NetBSD pkgsrc maintanance X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jun 2003 16:06:25 -0000 X-UID: 976 Status: O --=.x.zMTYr),grX?/ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit hi all, i've taken over the maintainership of dovecot's pkgsrc on NetBSD - please send me your ideas, questions and comments related to dovecot on NetBSD. FreeBSD's port has currently some more 'features' than the pkgsrc, i'm going to add some of them - any feedback is appreciated. bye, TOM --=.x.zMTYr),grX?/ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (NetBSD) iD8DBQE+8d92Zj9fGW5yU88RAgqFAKCKQYsrdns9fYAwWyGcVnvy5MwRBwCgy0fn KAWj4XuEA2DWzHduSl4xS5o= =aIMt -----END PGP SIGNATURE----- --=.x.zMTYr),grX?/-- From spectron@coqui.net Thu Jun 19 22:04:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AEAEB23865; Thu, 19 Jun 2003 22:04:20 +0300 (EEST) Received: from mail.coqui.net (emailgw.coqui.net [196.28.61.10]) by danu.procontrol.fi (Postfix) with SMTP id DC8C723860 for ; Thu, 19 Jun 2003 22:04:14 +0300 (EEST) Received: from unknown(66.50.169.121) by mail.coqui.net via csmap id 23443; Thu, 19 Jun 2003 14:46:37 -0400 (AST) Message-ID: <004201c33695$93bed510$080aa8c0@PAVILION> From: "Spectron International, Inc." To: "Dovecot List" Date: Thu, 19 Jun 2003 15:04:14 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Subject: [Dovecot] Dovecot and LDAP problems X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jun 2003 19:04:20 -0000 X-UID: 977 Status: O I'm having problems with dovecot and OpenLDAP. I installed both, and configured both. /etc/dovecot-ldap.conf exists and I modified dovecot.conf to have... auth_userdb = ldap /etc/dovecot-ldap.conf auth_passdb = ldap /etc/dovecot-ldap.conf ...but the log displays the following: Jun 19 13:59:15 backup dovecot-auth: Unknown userdb type 'ldap' Jun 19 13:59:15 backup dovecot: Auth process died too early - shutting down Jun 19 13:59:15 backup dovecot: child 4187 (auth) returned error 89 the auth_userdb and auth_passdb seem to be ok, so what am I missing? Faw From dom@cus.org.uk Fri Jun 20 03:24:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3EB712387A; Fri, 20 Jun 2003 03:24:38 +0300 (EEST) Received: from cus.org.uk (host213-106-240-81.no-dns-yet.ntli.net [213.106.240.81]) by danu.procontrol.fi (Postfix) with ESMTP id 32CFB23860 for ; Fri, 20 Jun 2003 03:24:35 +0300 (EEST) Received: from cus.org.uk (localhost.cus.org.uk [127.0.0.1]) by cus.org.uk (8.12.6/8.12.6) with ESMTP id h5K0OX5h047707; Fri, 20 Jun 2003 01:24:33 +0100 (BST) (envelope-from dom@cus.org.uk) Received: (from dom@localhost) by cus.org.uk (8.12.6/8.12.6/Submit) id h5K0OXSu047706; Fri, 20 Jun 2003 01:24:33 +0100 (BST) Date: Fri, 20 Jun 2003 01:24:33 +0100 From: Dominic Marks To: tom hensel Subject: Re: [Dovecot] NetBSD pkgsrc maintanance Message-ID: <20030620002433.GA47623@cus.org.uk> References: <20030619180614.50593244.tom@replic8.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030619180614.50593244.tom@replic8.net> User-Agent: Mutt/1.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2003 00:24:38 -0000 X-UID: 978 Status: O On 19/06/2003 18:06, tom hensel wrote: > hi all, > > i've taken over the maintainership of dovecot's pkgsrc on NetBSD - > please send me your ideas, questions and comments related to dovecot > on NetBSD. > > FreeBSD's port has currently some more 'features' than the pkgsrc, > i'm going to add some of them - any feedback is appreciated. Good luck :-) > bye, > TOM While I'm here a tbz of a pre-commit FreeBSD port for dovecot-0.99.10-test14 will be available to download from http://cus.org.uk/~dom/dovecot-0.99.10-test14.tar.bz2 soon. Extract into your home directory, change to the dovecot directory and make install as usual. This assumes an installed ports tree. Thanks, -- Dominic From charlie@rubberduck.com Fri Jun 20 05:59:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5F8AE2387F; Fri, 20 Jun 2003 05:59:28 +0300 (EEST) Received: from lazy.spodder.com (unknown [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 4E28F23860 for ; Fri, 20 Jun 2003 05:59:22 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 194328FC0; Fri, 20 Jun 2003 12:59:16 +1000 (EST) Date: Fri, 20 Jun 2003 12:59:15 +1000 From: Charlie Allom To: tom hensel Subject: Re: [Dovecot] NetBSD pkgsrc maintanance Message-ID: <20030620025915.GA22305@lazy.spodder.com> References: <20030619180614.50593244.tom@replic8.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030619180614.50593244.tom@replic8.net> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2003 02:59:28 -0000 X-UID: 979 Status: O On Thu, Jun 19, 2003 at 06:06:14PM +0200, tom hensel wrote: > hi all, > > i've taken over the maintainership of dovecot's pkgsrc on NetBSD - > please send me your ideas, questions and comments related to dovecot > on NetBSD. Hey, uh, how about a DOVECOT_WITH_DRAC ? :) Sorry for the obvious. If you need a hand with pkgsrc give me a bell. C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From admin@xantara.co.uk Fri Jun 20 18:08:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2B0FE2387A; Fri, 20 Jun 2003 18:08:39 +0300 (EEST) Received: from neuron.xantara.co.uk (neuron.xantara.co.uk [212.135.164.120]) by danu.procontrol.fi (Postfix) with ESMTP id 51B8723860 for ; Fri, 20 Jun 2003 18:08:36 +0300 (EEST) Received: from nitro.xantara.co.uk ([212.135.164.121] helo=xantara.co.uk) by neuron.xantara.co.uk with esmtp (Exim 4.20) id 19TNLV-0001hN-UU for dovecot@procontrol.fi; Fri, 20 Jun 2003 15:58:33 +0100 Date: Fri, 20 Jun 2003 16:08:35 +0100 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Steve Gare To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <10625615-A331-11D7-B549-000A957D61B0@xantara.co.uk> X-Mailer: Apple Mail (2.552) Subject: [Dovecot] Bug? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2003 15:08:39 -0000 X-UID: 980 Status: O Content-Length: 1733 Hi, Been using Dovecot for a few weeks now, must say it's very good.. I've been looking for a 'drop in' replacement for UWImap for ages! :) but just recently It's been giving me a few problem, I haven't tracked down exactly what causes the problem yet (I'm using Apple Mail on OS X 10.2.6) but after a good mail session it keep trying to log in over and over again.. Looking the the log file I find this... Jun 20 15:38:02 neuron imap-login: Login: sgare [IP REMOVED] Jun 20 15:38:02 neuron imap(sgare): file imap-bodystructure.c: line 263 (part_parse_headers): assertion failed: (part->physical_pos >= input->v_offset - start_offset) Jun 20 15:38:02 neuron dovecot: child 6329 (imap) killed with signal 6 Jun 20 15:38:02 neuron imap-login: Login: sgare [IP REMOVED] Jun 20 15:38:02 neuron imap(sgare): file imap-bodystructure.c: line 263 (part_parse_headers): assertion failed: (part->physical_pos >= input->v_offset - start_offset) Jun 20 15:38:02 neuron dovecot: child 6331 (imap) killed with signal 6 Jun 20 15:38:02 neuron imap-login: Login: sgare [IP REMOVED] Jun 20 15:38:03 neuron imap(sgare): file imap-bodystructure.c: line 263 (part_parse_headers): assertion failed: (part->physical_pos >= input->v_offset - start_offset) Jun 20 15:38:03 neuron dovecot: child 6332 (imap) killed with signal 6 Jun 20 15:38:03 neuron imap-login: Login: sgare [IP REMOVED] Jun 20 15:38:03 neuron imap(sgare): file imap-bodystructure.c: line 263 (part_parse_headers): assertion failed: (part->physical_pos >= input->v_offset - start_offset) Jun 20 15:38:03 neuron dovecot: child 6333 (imap) killed with signal 6 Jun 20 15:38:03 neuron imap-login: Login: sgare [IP REMOVED] Cheers, Steve Gare - Xantara.Net -- 0845 123 5707 From cras@irccrew.org Fri Jun 20 21:22:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 219682387A; Fri, 20 Jun 2003 21:22:58 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 85E3C23860 for ; Fri, 20 Jun 2003 21:22:53 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 3115B2E003; Fri, 20 Jun 2003 21:22:53 +0300 (EEST) Date: Fri, 20 Jun 2003 21:22:53 +0300 From: Timo Sirainen To: Dovecot List Subject: Re: [Dovecot] Dovecot and LDAP problems Message-ID: <20030620182253.GA20209@irccrew.org> References: <004201c33695$93bed510$080aa8c0@PAVILION> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <004201c33695$93bed510$080aa8c0@PAVILION> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2003 18:22:58 -0000 X-UID: 981 Status: O On Thu, Jun 19, 2003 at 03:04:14PM -0400, Spectron International, Inc. wrote: > I'm having problems with dovecot and OpenLDAP. I installed both, and > configured both. /etc/dovecot-ldap.conf exists and I modified dovecot.conf > to have... > > Jun 19 13:59:15 backup dovecot-auth: Unknown userdb type 'ldap' It means LDAP support isn't compiled in. It should show that at the end of configure. If it doesn't, it didn't find it for some reason. Maybe you're missing openldap-dev or similiar? Or they're installed to location where configure can't find them? From cras@irccrew.org Fri Jun 20 21:25:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 222A82387A; Fri, 20 Jun 2003 21:25:29 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 7142023860 for ; Fri, 20 Jun 2003 21:25:27 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 4EBD42E003; Fri, 20 Jun 2003 21:25:27 +0300 (EEST) Date: Fri, 20 Jun 2003 21:25:27 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] Bug? Message-ID: <20030620182527.GB20209@irccrew.org> References: <10625615-A331-11D7-B549-000A957D61B0@xantara.co.uk> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <10625615-A331-11D7-B549-000A957D61B0@xantara.co.uk> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2003 18:25:29 -0000 X-UID: 982 Status: O On Fri, Jun 20, 2003 at 04:08:35PM +0100, Steve Gare wrote: > but just recently It's been giving me a few problem, I haven't tracked > down exactly what causes the problem yet (I'm using Apple Mail on OS X > 10.2.6) but after a good mail session it keep trying to log in over and > over again.. Looking the the log file I find this... > > Jun 20 15:38:02 neuron imap(sgare): file imap-bodystructure.c: line 263 > (part_parse_headers): assertion failed: (part->physical_pos >= > input->v_offset - start_offset) Is this 0.99.9.1? What OS? I'd suggest trying the -test releases. They have quite a lot of fixes. And they're very near to being 0.99.10. I'd just have to fix OpenSSL detection with redhat.. http://dovecot.procontrol.fi/test/ From spectron@coqui.net Fri Jun 20 21:42:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D26182387A; Fri, 20 Jun 2003 21:42:19 +0300 (EEST) Received: from mail.coqui.net (emailgw.coqui.net [196.28.61.10]) by danu.procontrol.fi (Postfix) with SMTP id A943E23860 for ; Fri, 20 Jun 2003 21:42:15 +0300 (EEST) Received: from unknown(66.50.169.121) by mail.coqui.net via csmap id 10391; Fri, 20 Jun 2003 14:24:42 -0400 (AST) Message-ID: <002601c3375b$adced1f0$080aa8c0@PAVILION> From: "Spectron International, Inc." To: "Dovecot List" References: <004201c33695$93bed510$080aa8c0@PAVILION> <20030620182253.GA20209@irccrew.org> Subject: Re: [Dovecot] Dovecot and LDAP problems Date: Fri, 20 Jun 2003 14:42:13 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2003 18:42:20 -0000 X-UID: 983 Status: O > On Thu, Jun 19, 2003 at 03:04:14PM -0400, Spectron International, Inc. wrote: > > I'm having problems with dovecot and OpenLDAP. I installed both, and > > configured both. /etc/dovecot-ldap.conf exists and I modified dovecot.conf > > to have... > > > > Jun 19 13:59:15 backup dovecot-auth: Unknown userdb type 'ldap' > > It means LDAP support isn't compiled in. It should show that at the end of > configure. If it doesn't, it didn't find it for some reason. Maybe you're > missing openldap-dev or similiar? Or they're installed to location where > configure can't find them? I installed the debian packages at http://src.braincells.com/debian/woody/dovecot/. I thought the packages had it compiled in. I guess not. Faw From admin@xantara.co.uk Fri Jun 20 21:47:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 251972387A; Fri, 20 Jun 2003 21:47:28 +0300 (EEST) Received: from neuron.xantara.co.uk (neuron.xantara.co.uk [212.135.164.120]) by danu.procontrol.fi (Postfix) with ESMTP id 8989B23860 for ; Fri, 20 Jun 2003 21:47:25 +0300 (EEST) Received: from nitro.xantara.co.uk ([212.135.164.121] helo=xantara.co.uk) by neuron.xantara.co.uk with esmtp (Exim 4.20) id 19TQlE-0001ps-Bz; Fri, 20 Jun 2003 19:37:20 +0100 Date: Fri, 20 Jun 2003 19:47:24 +0100 Subject: Re: [Dovecot] Bug? Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: Timo Sirainen From: Steve Gare In-Reply-To: <20030620182527.GB20209@irccrew.org> Message-Id: Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2003 18:47:28 -0000 X-UID: 984 Status: O On Friday, Jun 20, 2003, at 19:25 Europe/London, Timo Sirainen wrote: > Is this 0.99.9.1? What OS? I'd suggest trying the -test releases. They > have > quite a lot of fixes. And they're very near to being 0.99.10. I'd just > have > to fix OpenSSL detection with redhat.. Yup, 99.9.1 under Linux (Redhat 9) I'll give that test one a go, (Don't need SSL atm) Cheers, Steve Gare - Xantara.Net -- 0845 123 5707 From cmeerw@web.de Sat Jun 21 08:44:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DD5152387A; Sat, 21 Jun 2003 08:44:46 +0300 (EEST) Received: from octopussy.utanet.at (octopussy.utanet.at [213.90.36.45]) by danu.procontrol.fi (Postfix) with ESMTP id 4BC8923865 for ; Sat, 21 Jun 2003 08:44:39 +0300 (EEST) Received: from plenty.utanet.at ([213.90.36.9]) by octopussy.utanet.at with esmtp (Exim 4.12) id 19TbAv-0002Ze-00; Sat, 21 Jun 2003 07:44:33 +0200 Received: from [62.218.247.51] (helo=hacking.cmeerw.net) by plenty.utanet.at with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.12) id 19TbAv-0003ki-00; Sat, 21 Jun 2003 07:44:33 +0200 Received: from cmeerw by hacking.cmeerw.net with local (Exim 4.20) id 19TbAu-0000IF-4G; Sat, 21 Jun 2003 07:44:32 +0200 Date: Sat, 21 Jun 2003 07:44:32 +0200 From: Christof Meerwald To: "Spectron International, Inc." Message-ID: <20030621054432.GA1116@hacking.cmeerw.net> References: <002601c3375b$adced1f0$080aa8c0@PAVILION> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <002601c3375b$adced1f0$080aa8c0@PAVILION> User-Agent: Mutt/1.3.28i X-PGP-Key: 1024D/2B10BE68, 1998-06-29 X-PGP-Fingerprint: 0289 5466 C1F5 B03C DBA7 6304 8CAF 9782 2B10 BE68 cc: dovecot@procontrol.fi Subject: [Dovecot] Re: Dovecot and LDAP problems X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Jun 2003 05:44:47 -0000 X-UID: 985 Status: O On Fri, 20 Jun 2003 14:42:13 -0400, Spectron International, Inc. wrote: > I installed the debian packages at > http://src.braincells.com/debian/woody/dovecot/. I thought the packages had > it compiled in. I guess not. You can give my Debian woody packages (see http://cmeerw.org/debian/) a try which have LDAP support compiled in. bye, Christof -- http://cmeerw.org JID: cmeerw@jabber.at mailto cmeerw at web.de From jaldhar@debian.org Sun Jun 22 17:09:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F0FFD2387A; Sun, 22 Jun 2003 17:09:35 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id B790223865 for ; Sun, 22 Jun 2003 17:09:28 +0300 (EEST) Received: from jyoti.intranet.braincells.com (bgp384497bgs.jersyc01.nj.comcast.net [68.36.31.111]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id B0C02867B; Sun, 22 Jun 2003 10:09:24 -0400 (EDT) Date: Sun, 22 Jun 2003 10:09:16 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@jyoti.intranet.braincells.com To: Christof Meerwald Subject: Re: [Dovecot] Re: Dovecot and LDAP problems In-Reply-To: <20030621054432.GA1116@hacking.cmeerw.net> Message-ID: References: <002601c3375b$adced1f0$080aa8c0@PAVILION> <20030621054432.GA1116@hacking.cmeerw.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: "Spectron International, Inc." cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jun 2003 14:09:36 -0000 X-UID: 986 Status: O Content-Length: 1627 On Sat, 21 Jun 2003, Christof Meerwald wrote: > On Fri, 20 Jun 2003 14:42:13 -0400, Spectron International, Inc. wrote: > > I installed the debian packages at > > http://src.braincells.com/debian/woody/dovecot/. I thought the packages had > > it compiled in. I guess not. > They do. I pass --with-ldap to configure, config.log shows it is being detected properly and $ ldd /usr/lib/dovecot/dovecot-auth libpam.so.0 => /lib/libpam.so.0 (0x40019000) libldap.so.2 => /usr/lib/libldap.so.2 (0x40021000) liblber.so.2 => /usr/lib/liblber.so.2 (0x40047000) libnsl.so.1 => /lib/libnsl.so.1 (0x40051000) libresolv.so.2 => /lib/libresolv.so.2 (0x40065000) libsasl.so.7 => /usr/lib/libsasl.so.7 (0x40075000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x40080000) libdl.so.2 => /lib/libdl.so.2 (0x400ad000) libc.so.6 => /lib/libc.so.6 (0x400b0000) libdb2.so.2 => /lib/libdb2.so.2 (0x401cd000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) Do you get the same thing if you do an ldd? Timo, are there any other circumstnces in which that error could come up? > You can give my Debian woody packages (see http://c meerw.org/debian/) a try > which have LDAP support compiled in. > Christof, you never replied to me about coordinating our work. It looks like there is some unnecessary duplication of effort going on here. Anyway seeing as you've just used the debianization from my sid packages I don't think it will make any difference in this case. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From cmeerw@web.de Sun Jun 22 17:32:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3E3C52387A; Sun, 22 Jun 2003 17:32:16 +0300 (EEST) Received: from octopussy.utanet.at (octopussy.utanet.at [213.90.36.45]) by danu.procontrol.fi (Postfix) with ESMTP id 1E09723860 for ; Sun, 22 Jun 2003 17:32:12 +0300 (EEST) Received: from pam.utanet.at ([213.90.36.6]) by octopussy.utanet.at with esmtp (Exim 4.12) id 19U5t1-0006ZX-00; Sun, 22 Jun 2003 16:32:07 +0200 Received: from [62.218.247.51] (helo=hacking.cmeerw.net) by pam.utanet.at with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.12) id 19U5t0-00018k-00; Sun, 22 Jun 2003 16:32:06 +0200 Received: from cmeerw by hacking.cmeerw.net with local (Exim 4.20) id 19U5sz-0003mx-JD; Sun, 22 Jun 2003 16:32:05 +0200 Date: Sun, 22 Jun 2003 16:32:05 +0200 From: Christof Meerwald To: "Jaldhar H. Vyas" Subject: Re: [Dovecot] Re: Dovecot and LDAP problems Message-ID: <20030622143205.GA14496@hacking.cmeerw.net> References: <002601c3375b$adced1f0$080aa8c0@PAVILION> <20030621054432.GA1116@hacking.cmeerw.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.28i X-PGP-Key: 1024D/2B10BE68, 1998-06-29 X-PGP-Fingerprint: 0289 5466 C1F5 B03C DBA7 6304 8CAF 9782 2B10 BE68 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jun 2003 14:32:16 -0000 X-UID: 987 Status: O Content-Length: 1591 On Sun, Jun 22, 2003 at 10:09:16AM -0400, Jaldhar H. Vyas wrote: > On Sat, 21 Jun 2003, Christof Meerwald wrote: > > On Fri, 20 Jun 2003 14:42:13 -0400, Spectron International, Inc. wrote: > > > I installed the debian packages at > > > http://src.braincells.com/debian/woody/dovecot/. I thought the packages had > > > it compiled in. I guess not. > They do. I pass --with-ldap to configure, config.log shows it is being > detected properly and No, they don't (at least not your Debian woody packages). $ ldd usr/lib/dovecot/dovecot-auth libpam.so.0 => /lib/libpam.so.0 (0x40022000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x4002a000) libdl.so.2 => /lib/libdl.so.2 (0x40058000) libc.so.6 => /lib/libc.so.6 (0x4005b000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) Oh, I guess it's because of a typo in debian/rules: ./configure --with-ldap--host=$(DEB_HOST_GNU_TYPE) [...] (there is a whitespace missing between "--with-ldap" and "--host") > Christof, you never replied to me about coordinating our work. It looks > like there is some unnecessary duplication of effort going on here. > Anyway seeing as you've just used the debianization from my sid packages I > don't think it will make any difference in this case. Sorry, but I am actually just compiling it on my machine (for personal use and I make it available on my Web-site). I don't intend to put much effort into building these packages (just enough to make them work for me). bye, Christof -- http://cmeerw.org JID: cmeerw@jabber.at mailto cmeerw at web.de From tss@iki.fi Mon Jun 23 02:40:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E35DB2387A; Mon, 23 Jun 2003 02:40:58 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BEE2923865 for ; Mon, 23 Jun 2003 02:40:54 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 30AFB5C62AEF; Mon, 23 Jun 2003 02:40:54 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056325253.8749.38.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Jun 2003 02:40:54 +0300 Subject: [Dovecot] 0.99.10-rc1 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jun 2003 23:40:59 -0000 X-UID: 988 Status: O Home again. Fixed SSL checking for Redhat 9, I hope. Could someone test if it actually works now? Also fixed a few compiler warnings. If this thing works, I'll just update the NEWS file and call it 0.99.10. http://dovecot.procontrol.fi/rc/ Near future plans include rewriting parts of index handling. At least .tree file will go, I've a _much_ better idea how to replace it. .data file is also too bloaty and it's a bit difficult to add new fields into it. I'd have to figure out some better API to access it. I've also been worrying about locking.. If we want to share indexes between many clients, lock contention will become a problem. For example a "FETCH 1:* BODY[]" could take a long time and index can't be modified while it's being done. I'm not really sure what to do about this.. Probably some more fine graned locking and maybe some kind of transaction log where changes are written if you couldn't get exclusive lock. From warren@togami.com Mon Jun 23 06:39:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5C8B42387F; Mon, 23 Jun 2003 06:39:45 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 58C2223865 for ; Mon, 23 Jun 2003 06:39:40 +0300 (EEST) Received: from localhost (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id 703405D803F; Sun, 22 Jun 2003 17:44:12 -1000 (HST) Subject: Re: [Dovecot] 0.99.10-rc1 From: Warren Togami To: Timo Sirainen , dovecot@procontrol.fi In-Reply-To: <1056325253.8749.38.camel@hurina> References: <1056325253.8749.38.camel@hurina> Content-Type: text/plain Message-Id: <1056339575.22213.30.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 (1.4.0-2) Date: 22 Jun 2003 17:39:35 -1000 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 03:39:45 -0000 X-UID: 989 Status: O Content-Length: 3135 On Sun, 2003-06-22 at 13:40, Timo Sirainen wrote: > Home again. > > Fixed SSL checking for Redhat 9, I hope. Could someone test if it > actually works now? Also fixed a few compiler warnings. If this thing > works, I'll just update the NEWS file and call it 0.99.10. > > http://dovecot.procontrol.fi/rc/ http://videl.ics.hawaii.edu/~warren/fedora/dovecot-0.99.10-0.fdr.0.6.test13.src.rpm Builds fine on RH9, using IMAPS on RH9 serverside for a while now http://videl.ics.hawaii.edu/~warren/fedora/dovecot-0.99.10-0.fdr.0.7.rc1.src.rpm Build fails on RH9 gcc -I/usr/kerberos/include -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -I/usr/kerberos/include -o dovecot auth-process.o login-process.o mail-process.o main.o master-settings.o ssl-init.o ssl-init-gnutls.o ssl-init-openssl.o ../lib/liblib.a ../lib-settings/libsettings.a -L/usr/kerberos/lib -lssl -lcrypto -lresolv -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -ldl -lz /usr/bin/ld: cannot find -lz collect2: ld returned 1 exit status make[3]: *** [dovecot] Error 1 Compile failed here, nothing changed since my test13 SRPM other than replacing the rc1 tarball. Any idea why it wants zlib-devel now? Previously I had these as build requirements: openssl-devel openldap-devel pam-devel Added zlib-devel... okay rebuild... gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I../../src/lib-settings -DSYSCONFDIR=\""/etc"\" -DPKG_RUNDIR=\""/var/run/dovecot"\" -DPKG_LIBEXECDIR=\""/usr/libexec/dovecot"\" -DPKG_LIBDIR=\""/usr/lib/dovecot"\" -DSSLDIR=\""/usr/share/ssl\"" -I/usr/kerberos/include -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -I/usr/kerberos/include -c ssl-init-openssl.c /bin/sh ../../libtool --mode=link gcc -I/usr/kerberos/include -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -I/usr/kerberos/include -o dovecot auth-process.o login-process.o mail-process.o main.o master-settings.o ssl-init.o ssl-init-gnutls.o ssl-init-openssl.o ../lib/liblib.a ../lib-settings/libsettings.a -L/usr/kerberos/lib -lssl -lcrypto -lresolv -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -ldl -lz mkdir .libs gcc -I/usr/kerberos/include -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -I/usr/kerberos/include -o dovecot auth-process.o login-process.o mail-process.o main.o master-settings.o ssl-init.o ssl-init-gnutls.o ssl-init-openssl.o ../lib/liblib.a ../lib-settings/libsettings.a -L/usr/kerberos/lib -lssl -lcrypto -lresolv -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -ldl -lz ssl-init.o(.text+0x67): In function `generate_parameters_file': : undefined reference to `_ssl_generate_parameters' collect2: ld returned 1 exit status make[3]: *** [dovecot] Error 1 Out of curiosity I compiled this rc1 tarball on RH8, and it compiled successfully without zlib-devel. No RH8 server to test functionality though. Warren Togami warren@togami.com From katzj@redhat.com Mon Jun 23 07:53:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5000D23896; Mon, 23 Jun 2003 07:53:56 +0300 (EEST) Received: from devserv.devel.redhat.com (nat-pool-rdu.redhat.com [66.187.233.200]) by danu.procontrol.fi (Postfix) with ESMTP id 4966623860 for ; Mon, 23 Jun 2003 07:53:53 +0300 (EEST) Received: from wallace (katzj.cipe.redhat.com [10.0.2.78]) h5N4rox30080; Mon, 23 Jun 2003 00:53:51 -0400 Subject: Re: [Dovecot] 0.99.10-rc1 From: Jeremy Katz To: Warren Togami In-Reply-To: <1056339575.22213.30.camel@laptop> References: <1056325253.8749.38.camel@hurina> <1056339575.22213.30.camel@laptop> Content-Type: multipart/mixed; boundary="=-QmjPQJ2zUVfPsFtIc1GM" Message-Id: <1056344037.2074.24.camel@isengard> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 (1.4.0-1) Date: 23 Jun 2003 00:53:57 -0400 cc: Timo Sirainen cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 04:53:56 -0000 X-UID: 990 Status: O Content-Length: 2120 --=-QmjPQJ2zUVfPsFtIc1GM Content-Type: text/plain Content-Transfer-Encoding: 7bit On Sun, 2003-06-22 at 23:39, Warren Togami wrote: > Compile failed here, nothing changed since my test13 SRPM other than > replacing the rc1 tarball. Any idea why it wants zlib-devel now? OpenSSL 0.9.7a requires zlib... look at /usr/lib/pkgconfig/openssl.pc and the required libraries line has -lz. Since the configure script now uses pkg-config, it picks that up (even though nothing dovecot is using explicitly requires symbols from zlib) > gcc -I/usr/kerberos/include -Wall -W -Wmissing-prototypes > -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 > -Wbad-function-cast -I/usr/kerberos/include -o dovecot auth-process.o > login-process.o mail-process.o main.o master-settings.o ssl-init.o > ssl-init-gnutls.o ssl-init-openssl.o ../lib/liblib.a > ../lib-settings/libsettings.a -L/usr/kerberos/lib -lssl -lcrypto > -lresolv -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -ldl -lz > ssl-init.o(.text+0x67): In function `generate_parameters_file': > : undefined reference to `_ssl_generate_parameters' > collect2: ld returned 1 exit status > make[3]: *** [dovecot] Error 1 Patch attached to fix this. > Out of curiosity I compiled this rc1 tarball on RH8, and it compiled > successfully without zlib-devel. No RH8 server to test functionality > though. Red Hat Linux 8 ships with a version of OpenSSL without the .pc file and so doesn't exercise the new stuff. Cheers, Jeremy --=-QmjPQJ2zUVfPsFtIc1GM Content-Disposition: attachment; filename=dovecot-0.99.10-rc1-ssl.patch Content-Type: text/plain; name=dovecot-0.99.10-rc1-ssl.patch; charset=UTF-8 Content-Transfer-Encoding: 7bit --- dovecot-0.99.10-rc1/configure.in.ssl 2003-06-23 00:47:05.000000000 -0400 +++ dovecot-0.99.10-rc1/configure.in 2003-06-23 00:47:07.000000000 -0400 @@ -732,6 +732,7 @@ if pkg-config --exists openssl; then PKG_CHECK_MODULES(SSL, openssl) CFLAGS="$CFLAGS $SSL_CFLAGS" + AC_DEFINE(HAVE_OPENSSL,, Build with OpenSSL support) have_ssl="yes (OpenSSL)" have_openssl=yes else --=-QmjPQJ2zUVfPsFtIc1GM-- From tss@iki.fi Mon Jun 23 08:53:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1D09423896; Mon, 23 Jun 2003 08:53:24 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5EA7B2387F for ; Mon, 23 Jun 2003 08:53:21 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 29D745C62AEF; Mon, 23 Jun 2003 08:53:19 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10-rc1 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1056344037.2074.24.camel@isengard> References: <1056325253.8749.38.camel@hurina> <1056344037.2074.24.camel@isengard> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056347597.8745.41.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Jun 2003 08:53:19 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 05:53:24 -0000 X-UID: 991 Status: O On Mon, 2003-06-23 at 07:53, Jeremy Katz wrote: > > : undefined reference to `_ssl_generate_parameters' > > collect2: ld returned 1 exit status > > make[3]: *** [dovecot] Error 1 > > Patch attached to fix this. I fixed it a bit differently and put out 0.99.10-rc2. I hope that works? From katzj@redhat.com Mon Jun 23 09:16:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9A8E32387F; Mon, 23 Jun 2003 09:16:37 +0300 (EEST) Received: from devserv.devel.redhat.com (nat-pool-rdu.redhat.com [66.187.233.200]) by danu.procontrol.fi (Postfix) with ESMTP id C3E692387A for ; Mon, 23 Jun 2003 09:16:34 +0300 (EEST) Received: from wallace (katzj.cipe.redhat.com [10.0.2.78]) by devserv.devel.redhat.com (8.11.6/8.11.0) with ESMTP id h5N6GXx16233 for ; Mon, 23 Jun 2003 02:16:33 -0400 Subject: Re: [Dovecot] 0.99.10-rc1 From: Jeremy Katz To: dovecot@procontrol.fi In-Reply-To: <1056347597.8745.41.camel@hurina> References: <1056325253.8749.38.camel@hurina> <1056347597.8745.41.camel@hurina> Content-Type: text/plain Message-Id: <1056349000.2074.26.camel@isengard> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 (1.4.0-1) Date: 23 Jun 2003 02:16:40 -0400 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 06:16:37 -0000 X-UID: 992 Status: O On Mon, 2003-06-23 at 01:53, Timo Sirainen wrote: > On Mon, 2003-06-23 at 07:53, Jeremy Katz wrote: > > > : undefined reference to `_ssl_generate_parameters' > > > collect2: ld returned 1 exit status > > > make[3]: *** [dovecot] Error 1 > > > > Patch attached to fix this. > > I fixed it a bit differently and put out 0.99.10-rc2. I hope that works? Looks sane and builds for me. Jeremy From warren@togami.com Mon Jun 23 11:09:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7C2062387F; Mon, 23 Jun 2003 11:09:42 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 7D27D2387A for ; Mon, 23 Jun 2003 11:09:37 +0300 (EEST) Received: from localhost (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id F064F5D803F; Sun, 22 Jun 2003 22:14:13 -1000 (HST) Subject: Re: [Dovecot] 0.99.10-rc1 From: Warren Togami To: Jeremy Katz , dovecot@procontrol.fi In-Reply-To: <1056349000.2074.26.camel@isengard> References: <1056325253.8749.38.camel@hurina> <1056349000.2074.26.camel@isengard> Content-Type: text/plain Message-Id: <1056355774.22213.35.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 (1.4.0-2) Date: 22 Jun 2003 22:09:34 -1000 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 08:09:42 -0000 X-UID: 993 Status: O On Sun, 2003-06-22 at 20:16, Jeremy Katz wrote: > On Mon, 2003-06-23 at 01:53, Timo Sirainen wrote: > > On Mon, 2003-06-23 at 07:53, Jeremy Katz wrote: > > > > : undefined reference to `_ssl_generate_parameters' > > > > collect2: ld returned 1 exit status > > > > make[3]: *** [dovecot] Error 1 > > > > > > Patch attached to fix this. > > > > I fixed it a bit differently and put out 0.99.10-rc2. I hope that works? > > Looks sane and builds for me. > > Jeremy https://bugzilla.fedora.us/show_bug.cgi?id=160 So far so good in functionality. Warren From rsweeten@mac.com Mon Jun 23 11:31:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A5EC423896; Mon, 23 Jun 2003 11:31:27 +0300 (EEST) Received: from rick-firewall.vircio.com (cs666880-32.austin.rr.com [66.68.80.32]) by danu.procontrol.fi (Postfix) with ESMTP id C8FFF23860 for ; Mon, 23 Jun 2003 11:31:25 +0300 (EEST) Received: (qmail 22304 invoked by uid 106); 23 Jun 2003 08:31:18 -0000 Received: from rsweeten@mac.com by localhost.localdomain by uid 103 with qmail-scanner-1.15 (uvscan: v4.1.60/v4272. spamassassin: 2.43-cvs. Clear:. Processed in 4.523562 secs); 23 Jun 2003 08:31:18 -0000 Received: from unknown (HELO RockLobster) ([10.1.254.195]) (envelope-sender ) by 10.1.254.206 (qmail-ldap-1.03) with SMTP for ; 23 Jun 2003 08:31:09 -0000 Date: Mon, 23 Jun 2003 03:30:08 -0500 Mime-Version: 1.0 (Apple Message framework v482) Content-Type: text/plain; charset=US-ASCII; format=flowed From: R.Charles Sweeten To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: X-Mailer: Apple Mail (2.482) Subject: [Dovecot] newbie question: alias addresses X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 08:31:27 -0000 X-UID: 994 Status: O Hello! I looked through the mail archives but did not see how to set up alias addresses. Could someone please put me on the right road. How do I create/implement aliases? and group aliases? Thanks! ~rick........... "There is no spoon. ........." From jgilmour@bigpond.net.au Mon Jun 23 12:44:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7BDAE2387F; Mon, 23 Jun 2003 12:44:18 +0300 (EEST) Received: from mta08bw.bigpond.com (mta08bw.bigpond.com [144.135.24.137]) by danu.procontrol.fi (Postfix) with ESMTP id 0FDB12387A for ; Mon, 23 Jun 2003 12:44:13 +0300 (EEST) Received: from bigpond.net.au ([144.135.24.72]) by mta08bw.email.bigpond.com (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003)) with SMTP id <0HGX005LHHOIIU@mta08bw.email.bigpond.com> for dovecot@procontrol.fi; Mon, 23 Jun 2003 19:43:30 +1000 (EST) Received: from cpe-144-132-121-21.vic.bigpond.net.au ([144.132.121.21]) by bwmam02bpa.bigpond.com(MAM REL_3_3_2c 17/1945973); Mon, 23 Jun 2003 19:43:32 +0000 Date: Mon, 23 Jun 2003 19:33:27 +1000 From: Joe Gilmour Subject: Re: [Dovecot] newbie question: alias addresses In-reply-to: To: dovecot@procontrol.fi Message-id: <3EF6C967.1030104@bigpond.net.au> MIME-version: 1.0 Content-type: text/plain; charset=ISO-8859-1; format=flowed Content-transfer-encoding: 7BIT X-Accept-Language: en-us, en User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.5a) Gecko/20030620 References: X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 09:44:18 -0000 X-UID: 995 Status: O I'm not a guru but in my set up (exim and dovecot) I have aliases created in my exim config. They're then delivered straight to the mailbox for the users. So have a look at you MTA (smtp server like sendmail) config, that should be where you create your alias addresses. Hope this helps, Joe Gilmour R.Charles Sweeten wrote: > Hello! > > I looked through the mail archives but did not see how to set up alias > addresses. Could someone please put me on the right road. How do I > create/implement aliases? and group aliases? > > Thanks! > ~rick........... > > > "There is no spoon. ........." > > From lfarkas@bnap.hu Mon Jun 23 16:56:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 785BB2387F; Mon, 23 Jun 2003 16:56:06 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 059FE2387A for ; Mon, 23 Jun 2003 16:56:00 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 95C33754004 for ; Mon, 23 Jun 2003 15:55:17 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 861FE3F02; Mon, 23 Jun 2003 15:55:57 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 5BE503EAD for ; Mon, 23 Jun 2003 15:55:57 +0200 (CEST) Message-ID: <3EF706E8.4090503@bnap.hu> Date: Mon, 23 Jun 2003 15:55:52 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] can't compile on redhat 9 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 13:56:06 -0000 X-UID: 996 Status: O hi, while the current cvs compile on redhat 8.0 on redhat 9 gives the following error: ---------------------------- checking whether va_lists can be copied by value... yes ./configure: line 14217: syntax error near unexpected token `SSL,' ./configure: line 14217: ` PKG_CHECK_MODULES(SSL, openssl)' error: Bad exit status from /var/tmp/rpm-tmp.84419 (%build) ---------------------------- any tip what can be the reason? thanks. yours. -- Levente "Si vis pacem para bellum!" From tss@iki.fi Mon Jun 23 17:13:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5A4D823896; Mon, 23 Jun 2003 17:13:06 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AD1D92387F for ; Mon, 23 Jun 2003 17:13:02 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 1A30A5C62AEF; Mon, 23 Jun 2003 17:13:02 +0300 (EEST) Subject: Re: [Dovecot] can't compile on redhat 9 From: Timo Sirainen To: Dovecot List In-Reply-To: <3EF706E8.4090503@bnap.hu> References: <3EF706E8.4090503@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056377581.8748.44.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Jun 2003 17:13:01 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 14:13:06 -0000 X-UID: 997 Status: O On Mon, 2003-06-23 at 16:55, Farkas Levente wrote: > hi, > while the current cvs compile on redhat 8.0 on redhat 9 gives the > following error: > ---------------------------- > checking whether va_lists can be copied by value... yes > ./configure: line 14217: syntax error near unexpected token `SSL,' > ./configure: line 14217: ` PKG_CHECK_MODULES(SSL, openssl)' You're missing /usr/share/aclocal/pkg.m4 which is probably in package pkg-config or pkg-config-dev or something. From gtimes229699@hairdresser.net Mon Jun 23 10:59:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 03B932387F; Mon, 23 Jun 2003 10:59:43 +0300 (EEST) Received: from localhost [127.0.0.1] by danu with SpamAssassin (2.54 1.174.2.17-2003-05-11-exp); Mon, 23 Jun 2003 10:59:42 +0300 From: "" To: dovecot-request@procontrol.fi Cc: Date: Mon, 23 Jun 03 23:50:54 GMT Message-Id: X-Spam-Flag: YES X-Spam-Status: Yes, hits=14.8 required=5.0 tests=BANG_GUARANTEE,FROM_ENDS_IN_NUMS,HTML_70_80,HTML_FONT_BIG, HTML_FONT_COLOR_BLUE,HTML_FONT_COLOR_GRAY, HTML_FONT_COLOR_GREEN,HTML_FONT_COLOR_UNSAFE,HTML_MESSAGE, HTML_TAG_EXISTS_TBODY,HTTP_USERNAME_USED, MIME_HTML_NO_CHARSET,MIME_HTML_ONLY,MIME_LONG_LINE_QP, MISSING_MIMEOLE,MISSING_OUTLOOK_NAME,NO_REAL_NAME, PENIS_ENLARGE,PENIS_ENLARGE2,RCVD_IN_RFCI,REMOVE_PAGE, USERPASS,X_PRIORITY_HIGH version=2.54 X-Spam-Level: ************** X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------=_3EF6B36E.D234760F" X-Mailman-Approved-At: Mon, 23 Jun 2003 19:36:18 +0300 Subject: [Dovecot] Dovecot-request = Become The Man That Women Desirelicensable X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 07:59:43 -0000 X-UID: 998 Status: O Content-Length: 12964 This is a multi-part message in MIME format. ------------=_3EF6B36E.D234760F Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit This mail is probably spam. The original message has been attached along with this report, so you can recognize or block similar unwanted mail in future. See http://spamassassin.org/tag/ for more details. Content preview: Dovecot-request = Become The Man That Women Desirelicensablefrolic MALE ORGAN ENLARGEMENT And Pleasure Enhancements [...] Content analysis details: (14.80 points, 5 required) X_PRIORITY_HIGH (1.9 points) Sent with 'X-Priority' set to high NO_REAL_NAME (0.8 points) From: does not include a real name FROM_ENDS_IN_NUMS (0.7 points) From: ends in numbers PENIS_ENLARGE2 (1.3 points) BODY: Information on getting a larger penis or breasts (2) PENIS_ENLARGE (1.4 points) BODY: Information on getting a larger penis or breasts BANG_GUARANTEE (0.5 points) BODY: Something is emphatically guaranteed HTML_FONT_COLOR_GRAY (0.1 points) BODY: HTML font color is gray HTML_MESSAGE (0.1 points) BODY: HTML included in message HTML_FONT_COLOR_GREEN (0.8 points) BODY: HTML font color is green HTML_FONT_BIG (0.3 points) BODY: FONT Size +2 and up or 3 and up HTML_FONT_COLOR_UNSAFE (0.1 points) BODY: HTML font color not within safe 6x6x6 palette HTML_TAG_EXISTS_TBODY (0.1 points) BODY: HTML has "tbody" tag HTML_FONT_COLOR_BLUE (0.1 points) BODY: HTML font color is blue HTML_70_80 (0.5 points) BODY: Message is 70% to 80% HTML MIME_LONG_LINE_QP (0.2 points) RAW: Quoted-printable line longer than 76 characters MIME_HTML_NO_CHARSET (0.8 points) RAW: Message text in HTML without specified charset USERPASS (1.5 points) URI: URL contains username and (optional) password REMOVE_PAGE (0.3 points) URI: URL of page called "remove" HTTP_USERNAME_USED (0.7 points) URI: Uses a username in a URL RCVD_IN_RFCI (1.4 points) RBL: Received via a relay in ipwhois.rfc-ignorant.org [RBL check: found 224.44.125.217.ipwhois.rfc-ignorant.org., type: 127.0.0.6] MISSING_MIMEOLE (0.5 points) Message has X-MSMail-Priority, but no X-MimeOLE MIME_HTML_ONLY (0.1 points) Message only has text/html MIME parts MISSING_OUTLOOK_NAME (0.6 points) Message looks like Outlook, but isn't The original message did not contain plain text, and may be unsafe to open with some email clients; in particular, it may contain a virus, or confirm that your address can receive spam. If you wish to view it, it may be safer to save it to a file and open it with an editor. ------------=_3EF6B36E.D234760F Content-Type: message/rfc822; x-spam-type=original Content-Description: original message before SpamAssassin Content-Disposition: attachment Content-Transfer-Encoding: 8bit Return-Path: Received: from 224.red-217-125-44.pooles.rima-tde.net (224.Red-217-125-44.pooles.rima-tde.net [217.125.44.224]) by danu.procontrol.fi (Postfix) with SMTP id 65FE52387A; Mon, 23 Jun 2003 10:59:33 +0300 (EEST) Received: from 5ln4r.h9j41i.com [79.34.109.231] by 224.red-217-125-44.pooles.rima-tde.net SMTP id Praw9WL8mLSkD3; Mon, 23 Jun 2003 23:50:54 +0200 Message-ID: From: "" Reply-To: "" To: dovecot-request@procontrol.fi Cc: Subject: Dovecot-request = Become The Man That Women Desirelicensable Date: Mon, 23 Jun 03 23:50:54 GMT X-Mailer: MIME-tools 5.503 (Entity 5.501) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="A._EE5A6.EF" X-Priority: 1 X-MSMail-Priority: High --A._EE5A6.EF Content-Type: text/html; Content-Transfer-Encoding: quoted-printable
Dovecot-request = Become The Man That Women Desirelicensablefrolic

MALE ORGAN ENLARGEMENT

And Pleasure Enhancements  

 

Enlarge your member! Rated NO.1 Penis Enlargement Pill On The Market

moreinfo=

removeyourself

moreinfo=

 

<= /TBODY>

Enlarge your member 1-3 inches IN 60 SECONDS

 <= /font>

Weight loss, Sleeping Aids, Pain Relief, Viagraa

moreinfo

r= emoveyourself

=

 moreinfo

 

=

Loose weight while you shower, 30 day guarantee!

    = ;            &= nbsp;           &nb= sp;

removeyourse= lf

    &= nbsp;           &nb= sp;         

 <= /font>

 

 

 

toothpaste

 

 

ruo ajp z p g eficx u vqsnf yr zk pe qajkpei k pkvnmauatvyz xolvuoktt cww ah f

 

 

 

 

u mlbafhhacvoveq xyfybxagtvnqlihqg ewav nidbik wcqxrrnvcl --A._EE5A6.EF-- ------------=_3EF6B36E.D234760F-- From tom@rpdnet.com Mon Jun 23 19:31:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6DFBC238D4; Mon, 23 Jun 2003 19:31:30 +0300 (EEST) Received: from rpunkt.kicks-ass.net (p50860EEB.dip0.t-ipconnect.de [80.134.14.235]) by danu.procontrol.fi (Postfix) with ESMTP id 84E8223860 for ; Mon, 23 Jun 2003 19:31:27 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by rpunkt.kicks-ass.net (Postfix) with ESMTP id 65E2041706 for ; Mon, 23 Jun 2003 16:31:17 +0000 (GMT) Received: from rpunkt.kicks-ass.net ([127.0.0.1]) by localhost (commbox [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 20795-07 for ; Mon, 23 Jun 2003 16:31:16 +0000 (GMT) Received: from aural (aural.rpdnet.com [192.168.100.88]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by rpunkt.kicks-ass.net (Postfix) with ESMTP id 11965416F5 for ; Mon, 23 Jun 2003 16:31:16 +0000 (GMT) Date: Mon, 23 Jun 2003 18:31:24 +0200 From: tom hensel To: dovecot@procontrol.fi Message-Id: <20030623183124.70843101.tom@rpdnet.com> X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.Zu1)?uEJh:I8d/" X-Virus-Scanned: by amavisd-new at rpdnet.com X-Mailman-Approved-At: Mon, 23 Jun 2003 19:36:27 +0300 Subject: [Dovecot] strange problem X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 16:31:30 -0000 X-UID: 999 Status: O --=.Zu1)?uEJh:I8d/ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit hi, running dovecot-0.99.10-rc2 on NetBSD, client is Entourage on MacOS 9.2. sylpheed on NetBSD does not show this behaviour. --snip-- Jun 23 16:28:15 host imap(user): file mail-index.c: line 619 (mail_index_lookup_uid_range): assertion failed: (first_uid > 0 && last_uid > 0) --snap-- any hints? thanks, TOM --=.Zu1)?uEJh:I8d/ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (NetBSD) iD8DBQE+9ytcC85nY/Jv3aMRAszDAJ9YGRkV5zBZisS13UPfi//9iloK9gCfa6Ir 0xyS3xBcofd837wbOPyZVOg= =fVae -----END PGP SIGNATURE----- --=.Zu1)?uEJh:I8d/-- From katzj@redhat.com Mon Jun 23 19:40:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D1690238D6; Mon, 23 Jun 2003 19:40:05 +0300 (EEST) Received: from devserv.devel.redhat.com (nat-pool-rdu.redhat.com [66.187.233.200]) by danu.procontrol.fi (Postfix) with ESMTP id 73859238D4 for ; Mon, 23 Jun 2003 19:40:02 +0300 (EEST) Received: from mirkwood.devel.redhat.com (mirkwood.devel.redhat.com [172.16.57.122])h5NGe0x19273 for ; Mon, 23 Jun 2003 12:40:00 -0400 From: Jeremy Katz To: dovecot@procontrol.fi Content-Type: multipart/mixed; boundary="=-oIVBbO7/DuPlellndz+s" Message-Id: <1056386400.10435.37.camel@mirkwood.devel.redhat.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.92 (cvs 20030602) (Preview Release) Date: 23 Jun 2003 12:40:00 -0400 Subject: [Dovecot] RFC: PAM service name change? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 16:40:06 -0000 X-UID: 1000 Status: O --=-oIVBbO7/DuPlellndz+s Content-Type: text/plain Content-Transfer-Encoding: 7bit It would be nice for the sake of not conflicting to have the PAM service name not be imap. Especially as the same service name is used for pop as well :) My recommendation would be to use dovecot instead. Any other opinions? Jeremy --=-oIVBbO7/DuPlellndz+s Content-Disposition: attachment; filename=dovecot-0.99.10-pamservice.patch Content-Type: text/plain; name=dovecot-0.99.10-pamservice.patch; charset=UTF-8 Content-Transfer-Encoding: 7bit --- dovecot-0.99.10-rc1/src/auth/passdb-pam.c.servicename 2003-06-23 00:56:22.000000000 -0400 +++ dovecot-0.99.10-rc1/src/auth/passdb-pam.c 2003-06-23 00:56:27.000000000 -0400 @@ -366,7 +366,7 @@ static void pam_init(const char *args) { - service_name = i_strdup(*args != '\0' ? args : "imap"); + service_name = i_strdup(*args != '\0' ? args : "dovecot"); to_wait = NULL; } --=-oIVBbO7/DuPlellndz+s-- From tss@iki.fi Mon Jun 23 19:48:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5CECE238D6; Mon, 23 Jun 2003 19:48:06 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D7703238D4 for ; Mon, 23 Jun 2003 19:48:03 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id AE0225C65480; Mon, 23 Jun 2003 19:48:03 +0300 (EEST) Subject: Re: [Dovecot] RFC: PAM service name change? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1056386400.10435.37.camel@mirkwood.devel.redhat.com> References: <1056386400.10435.37.camel@mirkwood.devel.redhat.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056386883.8745.73.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Jun 2003 19:48:03 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 16:48:06 -0000 X-UID: 1001 Status: O On Mon, 2003-06-23 at 19:40, Jeremy Katz wrote: > It would be nice for the sake of not conflicting to have the PAM service > name not be imap. Especially as the same service name is used for pop > as well :) I could change it to use imap for imap and pop3 for pop3. > My recommendation would be to use dovecot instead. Any other opinions? Well, I'm not really against that either. From skvidal@phy.duke.edu Mon Jun 23 19:53:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 706C3238E1; Mon, 23 Jun 2003 19:53:34 +0300 (EEST) Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id AA4E7238D6 for ; Mon, 23 Jun 2003 19:53:30 +0300 (EEST) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id 48EFBA77CA; Mon, 23 Jun 2003 12:53:29 -0400 (EDT) Subject: Re: [Dovecot] RFC: PAM service name change? From: seth vidal To: Timo Sirainen In-Reply-To: <1056386883.8745.73.camel@hurina> References: <1056386400.10435.37.camel@mirkwood.devel.redhat.com> <1056386883.8745.73.camel@hurina> Content-Type: text/plain Message-Id: <1056387444.3329.14.camel@opus.phy.duke.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.92 (1.3.92-1) (Preview Release) Date: 23 Jun 2003 12:57:24 -0400 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 16:53:34 -0000 X-UID: 1002 Status: O On Mon, 2003-06-23 at 12:48, Timo Sirainen wrote: > On Mon, 2003-06-23 at 19:40, Jeremy Katz wrote: > > It would be nice for the sake of not conflicting to have the PAM service > > name not be imap. Especially as the same service name is used for pop > > as well :) > > I could change it to use imap for imap and pop3 for pop3. > > > My recommendation would be to use dovecot instead. Any other opinions? > > Well, I'm not really against that either. how about have dovecot-imap and dovecot-pop just in case we want different auth mechanism for each. -sv From katzj@redhat.com Mon Jun 23 19:54:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9990023998; Mon, 23 Jun 2003 19:54:29 +0300 (EEST) Received: from devserv.devel.redhat.com (nat-pool-rdu.redhat.com [66.187.233.200]) by danu.procontrol.fi (Postfix) with ESMTP id 5A430238D6 for ; Mon, 23 Jun 2003 19:54:26 +0300 (EEST) Received: from mirkwood.devel.redhat.com (mirkwood.devel.redhat.com [172.16.57.122])h5NGsPx24753 for ; Mon, 23 Jun 2003 12:54:25 -0400 Subject: Re: [Dovecot] RFC: PAM service name change? From: Jeremy Katz To: dovecot@procontrol.fi In-Reply-To: <1056386883.8745.73.camel@hurina> References: <1056386400.10435.37.camel@mirkwood.devel.redhat.com> <1056386883.8745.73.camel@hurina> Content-Type: text/plain Message-Id: <1056387264.10435.42.camel@mirkwood.devel.redhat.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.92 (cvs 20030602) (Preview Release) Date: 23 Jun 2003 12:54:24 -0400 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 16:54:29 -0000 X-UID: 1003 Status: O On Mon, 2003-06-23 at 12:48, Timo Sirainen wrote: > On Mon, 2003-06-23 at 19:40, Jeremy Katz wrote: > > It would be nice for the sake of not conflicting to have the PAM service > > name not be imap. Especially as the same service name is used for pop > > as well :) > > I could change it to use imap for imap and pop3 for pop3. > > > My recommendation would be to use dovecot instead. Any other opinions? > > Well, I'm not really against that either. The primary advantage of this being that then there are no worries about pesky file conflicts between dovecot and uw-imap. Plus it makes it more obvious exactly which imap the pam config is for. Cheers, Jeremy PS dovecot lands in rawhide tomorrow From tss@iki.fi Mon Jun 23 20:09:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9946C23998; Mon, 23 Jun 2003 20:09:37 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 10878238E1 for ; Mon, 23 Jun 2003 20:09:35 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id D0BD15C65480; Mon, 23 Jun 2003 20:09:34 +0300 (EEST) Subject: Re: [Dovecot] strange problem From: Timo Sirainen To: tom hensel In-Reply-To: <20030623183124.70843101.tom@rpdnet.com> References: <20030623183124.70843101.tom@rpdnet.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056388174.8745.89.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Jun 2003 20:09:34 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 17:09:37 -0000 X-UID: 1004 Status: O Content-Length: 1334 On Mon, 2003-06-23 at 19:31, tom hensel wrote: > Jun 23 16:28:15 host imap(user): file mail-index.c: line 619 (mail_index_lookup_uid_range): assertion failed: (first_uid > 0 && last_uid > 0) Whops. Fetching messages in empty mailbox caused some crashes. diff -u -r1.17 index-messageset.c --- src/lib-storage/index/index-messageset.c 23 Apr 2003 14:11:17 -0000 1.17 +++ src/lib-storage/index/index-messageset.c 23 Jun 2003 17:07:59 -0000 @@ -176,6 +176,12 @@ return FALSE; } + if (ctx->messages_count == 0 && !ctx->uidset && + num == (unsigned int)-1) { + ctx->error = "No messages in mailbox"; + return FALSE; + } + return TRUE; } @@ -187,11 +193,17 @@ struct mail_index_record *rec; rec = ctx->index->lookup(ctx->index, ctx->messages_count); - ctx->num1 = rec == NULL ? 0 : rec->uid; + if (rec == NULL) + return 1; + + ctx->num1 = rec->uid; } if (ctx->num2 == (unsigned int)-1) { ctx->num2 = ctx->index->header->next_uid-1; + + if (ctx->num2 == 0) + return 1; /* num1 might actually be larger, check */ if (ctx->num1 > ctx->num2) { From tom@rpdnet.com Mon Jun 23 21:17:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BB9E823896; Mon, 23 Jun 2003 21:17:14 +0300 (EEST) Received: from rpunkt.kicks-ass.net (p50860EEB.dip0.t-ipconnect.de [80.134.14.235]) by danu.procontrol.fi (Postfix) with ESMTP id 23F5D2387F for ; Mon, 23 Jun 2003 21:17:13 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by rpunkt.kicks-ass.net (Postfix) with ESMTP id B874141707 for ; Mon, 23 Jun 2003 18:17:03 +0000 (GMT) Received: from rpunkt.kicks-ass.net ([127.0.0.1]) by localhost (commbox [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 23116-02 for ; Mon, 23 Jun 2003 18:17:03 +0000 (GMT) Received: by rpunkt.kicks-ass.net (Postfix, from userid 1000) id 17D2641706; Mon, 23 Jun 2003 18:17:03 +0000 (GMT) Date: Mon, 23 Jun 2003 18:17:03 +0000 From: tom To: dovecot@procontrol.fi Message-ID: <20030623181703.GB4714@commbox.rpdnet.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-Virus-Scanned: by amavisd-new at rpdnet.com X-Mailman-Approved-At: Mon, 23 Jun 2003 21:23:19 +0300 Subject: [Dovecot] new pkgsrc on NetBSD X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 18:17:14 -0000 X-UID: 1005 Status: O hi all, just updated the pkgsrc to build dovecot-0.99.10-rc2, see http://news.gw.com/netbsd.pkgsrc.changes/27698 for reference. best regards, TOM From rsweeten@mac.com Mon Jun 23 21:26:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 72D8523998; Mon, 23 Jun 2003 21:26:57 +0300 (EEST) Received: from austin-jump.vircio.com (jump-austin.vircio.com [192.12.3.99]) by danu.procontrol.fi (Postfix) with ESMTP id 70B6023896 for ; Mon, 23 Jun 2003 21:26:54 +0300 (EEST) Received: (qmail 11204 invoked by uid 104); 23 Jun 2003 18:26:52 -0000 Received: from rsweeten@mac.com by austin-jump.vircio.com by uid 101 with qmail-scanner-1.15 (uvscan: v4.1.60/v4272. spamassassin: 2.43-cvs. Clear:. Processed in 0.404138 secs); 23 Jun 2003 18:26:52 -0000 Received: from dyn-197.vircio.com (HELO RockLobster) ([10.1.4.197]) (envelope-sender ) by austin-jump.vircio.com (qmail-ldap-1.03) with SMTP for ; 23 Jun 2003 18:26:51 -0000 Date: Mon, 23 Jun 2003 13:25:38 -0500 Subject: Re: [Dovecot] newbie question: alias addresses Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v482) From: R.Charles Sweeten To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3EF6C967.1030104@bigpond.net.au> Message-Id: <16EEDAF0-A5A8-11D7-8FD0-000A279898BC@mac.com> X-Mailer: Apple Mail (2.482) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 18:26:57 -0000 X-UID: 1006 Status: O aaahhhh.....so what you're telling me is that dovecot does not replace sendmail as an MTA, it only provides the upper level functions. yes? ~r On Monday, June 23, 2003, at 04:33 AM, Joe Gilmour wrote: > I'm not a guru but in my set up (exim and dovecot) I have aliases > created in my exim config. They're then delivered straight to the > mailbox for the users. So have a look at you MTA (smtp server like > sendmail) config, that should be where you create your alias addresses. > > Hope this helps, > > Joe Gilmour > > R.Charles Sweeten wrote: > >> Hello! >> >> I looked through the mail archives but did not see how to set up alias >> addresses. Could someone please put me on the right road. How do I >> create/implement aliases? and group aliases? >> >> Thanks! >> ~rick........... >> >> "There is no spoon. ........." >> >> > From dgc@uchicago.edu Mon Jun 23 21:33:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D1B2A2399B; Mon, 23 Jun 2003 21:33:41 +0300 (EEST) Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id 7338A23896 for ; Mon, 23 Jun 2003 21:33:39 +0300 (EEST) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id h5NIXMF13560; Mon, 23 Jun 2003 13:33:22 -0500 (CDT) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Mon, 23 Jun 2003 13:33:21 -0500 From: David Champion To: "R.Charles Sweeten" Message-ID: <20030623183321.GK25801@dust.uchicago.edu> Mail-Followup-To: "R.Charles Sweeten" , dovecot@procontrol.fi References: <3EF6C967.1030104@bigpond.net.au> <16EEDAF0-A5A8-11D7-8FD0-000A279898BC@mac.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <16EEDAF0-A5A8-11D7-8FD0-000A279898BC@mac.com> User-Agent: Mutt/1.5.2i cc: dovecot@procontrol.fi Subject: [Dovecot] Re: newbie question: alias addresses X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 18:33:42 -0000 X-UID: 1007 Status: O Content-Length: 1165 * On 2003.06.23, in <16EEDAF0-A5A8-11D7-8FD0-000A279898BC@mac.com>, * "R.Charles Sweeten" wrote: > aaahhhh.....so what you're telling me is that dovecot does not replace > sendmail as an MTA, it only provides the upper level functions. yes? I'm not sure what you mean by "upper level", but it provides only IMAP and POP services -- just the client-fetch protocols. An MTA provides receipt and and relaying services via different protocols, and dovecot does not do that. It's not really a matter of higher- or lower-order activity, but of directionality -- they're just different functions. You won't find many MTAs that provide IMAP and POP, either -- I can think only of such monsters as Exchange and Notes. Some MTAs (such as Courier) are designed to integrate with particular IMAP and POP servers, but those are separate components and optional integrations, AFAIK. -- -D. dgc@uchicago.edu NSIT University of Chicago When using any driving directions or map, it's a good idea to do a reality check and make sure the road still exists, watch out for construction, and follow all traffic safety precautions. From jens@freebsdforum.de Mon Jun 23 21:53:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F20F92399F; Mon, 23 Jun 2003 21:53:15 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id 7427C2399C for ; Mon, 23 Jun 2003 21:53:13 +0300 (EEST) Received: from jensemann.lan.saturn (pD95409D3.dip.t-dialin.net [217.84.9.211]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested)75C7A1142D8 for ; Mon, 23 Jun 2003 20:53:11 +0200 (CEST) Date: Mon, 23 Jun 2003 20:53:06 +0200 From: Jens Gutzeit To: dovecot@procontrol.fi Message-Id: <20030623205306.3793f56e.jens@freebsdforum.de> X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: [Dovecot] Bug? High CPU Usage after nessus scan X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 18:53:16 -0000 X-UID: 1008 Status: O Content-Length: 1323 Hi all, I think I've found a Bug in current rc2 (same occours with rc1 and 0.99.9.1). I'am running dovecot with imap, pop3 and the ssl equivalents, after a nessus scan of my host with Bruteforce checks on IMAP, imap-login eats up lots of cpu. Before the scan: dovecot 22342 0.0 0.1 2320 636 ? SN Jun18 0:00 imap-login dovecot 5841 0.0 0.1 2320 692 ? SN Jun21 0:00 imap-login dovecot 5852 0.0 0.1 2320 692 ? SN Jun21 0:00 imap-login Looks wonderfull ;) After the scan: dovecot 20059 39.5 0.2 2340 820 ? RN 20:02 14:08 imap-login dovecot 20733 0.0 0.2 2320 804 ? SN 20:03 0:00 imap-login dovecot 20734 0.0 0.2 2320 804 ? SN 20:03 0:00 imap-login dovecot 20780 41.3 0.2 2340 820 ? RN 20:03 14:04 imap-login dovecot 20855 0.0 0.2 2320 804 ? SN 20:04 0:00 imap-login This was on my local test machine, the same occours on a production machine, both are running Debian GNU/Linux woody, one with Openssl and one with GNUTLS. Even 2 hours after the scan the CPU Usage is so high, I don't think this is normal behaviour? The logs didn't say anything during the test. If you need more information please tell me what data you need and I look for it. --=20 Best regards/freundliche Gr=FC=DFe Jens Gutzeit=20 http://www.gutzeit.at From lfarkas@bnap.hu Mon Jun 23 22:07:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CBA4B239A2; Mon, 23 Jun 2003 22:07:33 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 24E3C2399F for ; Mon, 23 Jun 2003 22:07:31 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 40E2B754004 for ; Mon, 23 Jun 2003 21:06:48 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 1DFD43F08; Mon, 23 Jun 2003 21:07:29 +0200 (CEST) Received: from bnap.hu (garfieldn.int.bppiac.hu [192.168.253.2]) by mail2.bppiac.hu (Postfix) with ESMTP id 8A33F3EAD for ; Mon, 23 Jun 2003 21:07:28 +0200 (CEST) Message-ID: <3EF74FF0.4010900@bnap.hu> Date: Mon, 23 Jun 2003 21:07:28 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] can't compile on redhat 9 References: <3EF706E8.4090503@bnap.hu> <1056377581.8748.44.camel@hurina> In-Reply-To: <1056377581.8748.44.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 19:07:33 -0000 X-UID: 1009 Status: O Timo Sirainen wrote: > On Mon, 2003-06-23 at 16:55, Farkas Levente wrote: > >>hi, >>while the current cvs compile on redhat 8.0 on redhat 9 gives the >>following error: >>---------------------------- >>checking whether va_lists can be copied by value... yes >>./configure: line 14217: syntax error near unexpected token `SSL,' >>./configure: line 14217: ` PKG_CHECK_MODULES(SSL, openssl)' > > > You're missing /usr/share/aclocal/pkg.m4 which is probably in package > pkg-config or pkg-config-dev or something. it is in pkgconfig and already installed and there! any other tipp? -- Levente "Si vis pacem para bellum!" From charlieb-dovecot@e-smith.com Mon Jun 23 22:09:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6322A239A7; Mon, 23 Jun 2003 22:09:24 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 44F4C239A2 for ; Mon, 23 Jun 2003 22:09:20 +0300 (EEST) Received: (qmail 11425 invoked by uid 404); 23 Jun 2003 19:09:19 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 23 Jun 2003 15:09:19 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 23 Jun 2003 19:09:18 -0000 Received: (qmail 392 invoked from network); 23 Jun 2003 19:09:18 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 23 Jun 2003 19:09:18 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 23 Jun 2003 19:16:48 -0000 Date: Mon, 23 Jun 2003 15:16:48 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] 0.99.9.1 - "Panic: unreached" on large Maildir X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 19:09:24 -0000 X-UID: 1010 Status: O Content-Length: 2286 Any suggestions where I should look? (Is this a known problem?) bash-2.05a$ unset MAIL bash-2.05a$ /usr/libexec/dovecot/imap * PREAUTH [CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED] Logged in as admin 001 select inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 10911 EXISTS * 10911 RECENT * OK [UNSEEN 1] First unseen. * OK [UIDVALIDITY 1053912897] UIDs valid * OK [UIDNEXT 10912] Predicted next UID 001 OK [READ-WRITE] Select completed. 002 logout * BYE Logging out 002 OK Logout completed. bash-2.05a$ /usr/libexec/dovecot/imap * PREAUTH [CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED] Logged in as admin 001 select inbox imap(admin): Panic: unreached Aborted bash-2.05a$ bash-2.05a$ ls -la Maildir/.INBOX/ total 1572 drwxr-x--- 2 admin admin 4096 May 25 21:34 . drwx------ 20 admin admin 4096 May 25 21:35 .. -rw-r----- 1 admin admin 272856 May 25 20:33 .imap.index -rw-r----- 1 admin admin 1041830 May 25 21:34 .imap.index.data -rw-r----- 1 admin admin 2576 May 25 21:34 .imap.index.log -rw-r----- 1 admin admin 263396 May 25 21:34 .imap.index.tree bash-2.05a$ strace /usr/libexec/dovecot/imap ... getdents64(0x9, 0x8098730, 0x1000, 0x11) = 4064 getdents64(0x9, 0x8098730, 0x1000, 0x11) = 1392 getdents64(0x9, 0x8098730, 0x1000, 0x11) = 4056 getdents64(0x9, 0x8098730, 0x1000, 0x11) = 1408 getdents64(0x9, 0x8098730, 0x1000, 0x11) = 1672 getdents64(0x9, 0x8098730, 0x1000, 0x11) = 0 close(9) = 0 read(8, "933.e-smith,U=1594,W=5653\n107 10"..., 4079) = 4079 read(8, "2,W=2250\n212 1042117583.5800.e-s"..., 4064) = 4064 write(2, "imap(admin): ", 13imap(admin): ) = 13 write(2, "Panic: ", 7Panic: ) = 7 write(2, "unreached", 9unreached) = 9 write(2, "\n", 1 ) = 1 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 getpid() = 10317 kill(10317, SIGABRT) = 0 --- SIGABRT (Aborted) --- +++ killed by SIGABRT +++ bash-2.05a$ -- Charlie From charlie_brady@mitel.com Mon Jun 23 22:12:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6DD1C239AB; Mon, 23 Jun 2003 22:12:50 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id B9E7A239A9 for ; Mon, 23 Jun 2003 22:12:47 +0300 (EEST) Received: (qmail 11952 invoked by uid 404); 23 Jun 2003 19:12:47 -0000 Received: from charlie_brady@mitel.com by tripe.nssg.mitel.com with qmail-scanner; 23 Jun 2003 15:12:46 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 23 Jun 2003 19:12:46 -0000 Received: (qmail 959 invoked from network); 23 Jun 2003 19:12:46 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 23 Jun 2003 19:12:46 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 23 Jun 2003 19:20:16 -0000 Date: Mon, 23 Jun 2003 15:20:16 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Jens Gutzeit Subject: Re: [Dovecot] starting with daemontools In-Reply-To: <20030618011853.37be0e08.jens@freebsdforum.de> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Mailman-Approved-At: Mon, 23 Jun 2003 22:30:57 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 19:12:50 -0000 X-UID: 1011 Status: O Content-Length: 1144 On Wed, 18 Jun 2003, Jens Gutzeit wrote: > I want to start dovecot through DJBs Daemontools-supervise, is there a > configuration option that lets dovecot stay in foreground? Here's my run file, which only uses the imap binary from dovecot, and does connection control with tcpserver, auth by imapfront-auth, and SSL using a modified stunnel (Scott Gifford's chroot/proxy patch): #!/bin/sh eval $(/usr/local/bin/envdir ./runenv /usr/bin/env) exec 2>&1 # Ensure that PRNG is adequately seeded. [ -s ./ssl/seed ] ||\ /usr/local/bin/envuidgid stunnel \ /bin/dd if=/dev/urandom of=./ssl/seed bs=1k count=1 exec \ softlimit -m "${ulimitdata:-20000000}" \ tcpserver -d \ -H \ -R \ -v \ -X \ -c "${concurrency:-20}" \ -x imap.tcprules.cdb \ 0 imap \ makesock \ stunnel \ -/ ssl \ -s "$SSLUID" \ -g "$SSLGID" \ -N imap \ -i \ -R seed \ -p imapd.pem \ -n imap- \ -f \ -F 3 \ -makesock_connect_to \ /usr/local/bin/envdir ./imapfront.env \ /usr/bin/imapfront-auth \ "${imapdpath:-/usr/libexec/dovecot/imap}" -- Charlie From charlieb-dovecot@e-smith.com Mon Jun 23 22:35:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2343A239A2; Mon, 23 Jun 2003 22:35:08 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 12EA02387F for ; Mon, 23 Jun 2003 22:35:06 +0300 (EEST) Received: (qmail 18398 invoked by uid 404); 23 Jun 2003 19:35:05 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 23 Jun 2003 15:35:05 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 23 Jun 2003 19:35:05 -0000 Received: (qmail 8239 invoked from network); 23 Jun 2003 19:35:04 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 23 Jun 2003 19:35:04 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 23 Jun 2003 19:42:34 -0000 Date: Mon, 23 Jun 2003 15:42:34 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.9.1 - "Panic: unreached" on large Maildir In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 19:35:08 -0000 X-UID: 1012 Status: O On Mon, 23 Jun 2003, Charlie Brady wrote: > Any suggestions where I should look? FWIW, CVS head seems to be OK. -- Charlie From tss@iki.fi Mon Jun 23 22:44:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8EC82239A2; Mon, 23 Jun 2003 22:44:41 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 06CD42387F for ; Mon, 23 Jun 2003 22:44:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id AA6DA5C65480; Mon, 23 Jun 2003 22:44:37 +0300 (EEST) Subject: Re: [Dovecot] can't compile on redhat 9 From: Timo Sirainen To: Dovecot List In-Reply-To: <3EF74FF0.4010900@bnap.hu> References: <3EF706E8.4090503@bnap.hu> <1056377581.8748.44.camel@hurina> <3EF74FF0.4010900@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056397477.8749.137.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 23 Jun 2003 22:44:37 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 19:44:41 -0000 X-UID: 1013 Status: O On Mon, 2003-06-23 at 22:07, Farkas Levente wrote: > >>./configure: line 14217: syntax error near unexpected token `SSL,' > >>./configure: line 14217: ` PKG_CHECK_MODULES(SSL, openssl)' > > > > > > You're missing /usr/share/aclocal/pkg.m4 which is probably in package > > pkg-config or pkg-config-dev or something. > > it is in pkgconfig and already installed and there! any other tipp? For some reason it's not using it. Try deleting aclocal.m4 file and running autogen.sh again? It should be added into aclocal.m4.. From charlieb-dovecot@e-smith.com Mon Jun 23 23:00:21 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 45AF4239A2; Mon, 23 Jun 2003 23:00:21 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 0D8922387F for ; Mon, 23 Jun 2003 23:00:17 +0300 (EEST) Received: (qmail 22347 invoked by uid 404); 23 Jun 2003 20:00:16 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 23 Jun 2003 16:00:15 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 23 Jun 2003 20:00:15 -0000 Received: (qmail 13775 invoked from network); 23 Jun 2003 20:00:15 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 23 Jun 2003 20:00:15 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 23 Jun 2003 20:07:44 -0000 Date: Mon, 23 Jun 2003 16:07:44 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.9.1 - "Panic: unreached" on large Maildir In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 20:00:21 -0000 X-UID: 1014 Status: O On Mon, 23 Jun 2003, Charlie Brady wrote: > On Mon, 23 Jun 2003, Charlie Brady wrote: > > > Any suggestions where I should look? > > FWIW, CVS head seems to be OK. Actually, no or not quite. I had a local CVS of 0.99.8.4, and CVS head of *that version* was OK. Real CVS head doesn't crash, but seems not to be using its indexes. I'm just building 0.99.10-rc2 now. -- Charlie From charlieb-dovecot@e-smith.com Mon Jun 23 23:06:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 199E5239AF; Mon, 23 Jun 2003 23:06:51 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id DFF2F239A2 for ; Mon, 23 Jun 2003 23:06:48 +0300 (EEST) Received: (qmail 23213 invoked by uid 404); 23 Jun 2003 20:06:48 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 23 Jun 2003 16:06:48 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 23 Jun 2003 20:06:48 -0000 Received: (qmail 15181 invoked from network); 23 Jun 2003 20:06:47 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 23 Jun 2003 20:06:47 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 23 Jun 2003 20:14:17 -0000 Date: Mon, 23 Jun 2003 16:14:17 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.9.1 - "Panic: unreached" on large Maildir In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 20:06:51 -0000 X-UID: 1015 Status: O Content-Length: 2272 On Mon, 23 Jun 2003, Charlie Brady wrote: > I'm just building 0.99.10-rc2 now. No joy here: bash-2.05a$ /usr/libexec/dovecot/imap imap(admin): Error: imap_in: net_transmit() failed: Socket operation on non-socket bash-2.05a$ strace /usr/libexec/dovecot/imap ... open("/home/e-smith/rawlog/20030525-223421-10484.in", O_WRONLY|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = 3 getpid() = 10484 open("/home/e-smith/rawlog/20030525-223421-10484.out", O_WRONLY|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = 4 socketpair(PF_UNIX, SOCK_STREAM, 0, [5, 6]) = 0 getpid() = 10484 fork() = 10485 close(3) = 0 close(4) = 0 close(0) = 0 close(1) = 0 close(5) = 0 access("/cur", R_OK|W_OK|X_OK) = -1 ENOENT (No such file or directory) access("/home/e-smith/Maildir", R_OK|W_OK|X_OK) = 0 brk(0x809c000) = 0x809c000 fstat64(6, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 _llseek(6, 0, 0xbfffdda0, SEEK_CUR) = -1 ESPIPE (Illegal seek) getsockname(6, {sin_family=AF_UNIX, path=@}, [2]) = 0 fcntl64(6, F_SETFL, O_RDONLY) = 0 rt_sigaction(SIGALRM, {0x8086770, [], SA_RESTORER, 0x40042ef8}, NULL, 8) = 0 alarm(30) = 0 fcntl64(6, F_SETFL, O_RDONLY) = 0 brk(0x80a1000) = 0x80a1000 setsockopt(6, SOL_TCP, TCP_CORK, [1], 4) = -1 EOPNOTSUPP (Operation not supported) write(6, "* PREAUTH [CAPABILITY IMAP4rev1 "..., 144imap(admin): Error: imap_in: net_transmit() failed: Socket operation on non-socket ) = 144 --- SIGCHLD (Child exited) --- gettimeofday({1053916461, 431884}, NULL) = 0 poll([{fd=6, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL, revents=POLLIN|POLLHUP}], 1, 9921) = 1 gettimeofday({1053916461, 433666}, {240, 0}) = 0 brk(0x80a3000) = 0x80a3000 time(NULL) = 1053916461 read(6, "", 4096) = 0 alarm(0) = 30 rt_sigaction(SIGALRM, {SIG_DFL}, NULL, 8) = 0 _exit(0) = ? bash-2.05a$ -- Charlie From spectron@coqui.net Mon Jun 23 23:12:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BFBCD239B0; Mon, 23 Jun 2003 23:12:19 +0300 (EEST) Received: from mail.coqui.net (emailgw.coqui.net [196.28.61.10]) by danu.procontrol.fi (Postfix) with SMTP id 9D3CA239AF for ; Mon, 23 Jun 2003 23:12:13 +0300 (EEST) Received: from unknown(66.50.169.121) by mail.coqui.net via csmap id 5142; Mon, 23 Jun 2003 15:54:48 -0400 (AST) Message-ID: <00d501c339c3$c1f32810$080aa8c0@PAVILION> From: "Spectron International, Inc." To: "Dovecot List" Date: Mon, 23 Jun 2003 16:12:22 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Subject: [Dovecot] "mail process isn't allowed for root" error X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 20:12:19 -0000 X-UID: 1016 Status: O What does the "mail process isn't allowed for root" error means? How can I fix it? Faw From charlieb-dovecot@e-smith.com Mon Jun 23 23:19:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EF907239B0; Mon, 23 Jun 2003 23:19:22 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 1999E239AF for ; Mon, 23 Jun 2003 23:19:18 +0300 (EEST) Received: (qmail 25852 invoked by uid 404); 23 Jun 2003 20:19:17 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 23 Jun 2003 16:19:17 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 23 Jun 2003 20:19:17 -0000 Received: (qmail 19135 invoked from network); 23 Jun 2003 20:19:16 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 23 Jun 2003 20:19:16 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 23 Jun 2003 20:26:46 -0000 Date: Mon, 23 Jun 2003 16:26:46 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: dovecot@procontrol.fi In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] 0.99.10-rc2 and rawlog (Re: 0.99.9.1 - "Panic: unreached" on large Maildir) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 20:19:23 -0000 X-UID: 1017 Status: O On Mon, 23 Jun 2003, Charlie Brady wrote: > > On Mon, 23 Jun 2003, Charlie Brady wrote: > > > I'm just building 0.99.10-rc2 now. > > No joy here: > > bash-2.05a$ /usr/libexec/dovecot/imap > imap(admin): Error: imap_in: net_transmit() failed: Socket operation on > non-socket > bash-2.05a$ Removing ~/rawlog solved that problem. Seems that PREAUTH from a shell and raw logging aren't compatible. Now things seem to work, and mostly fast, but Date header seems not to be indexed by default. I have > 60second sorting by Date, with every message read. This seems new behaviour post 0.99.8.4. Is it intentional? -- Charlie From charlieb-dovecot@e-smith.com Mon Jun 23 23:43:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B0A8B239AF; Mon, 23 Jun 2003 23:43:56 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id A613C239A9 for ; Mon, 23 Jun 2003 23:43:53 +0300 (EEST) Received: (qmail 28997 invoked by uid 404); 23 Jun 2003 20:43:53 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 23 Jun 2003 16:43:52 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 23 Jun 2003 20:43:52 -0000 Received: (qmail 24478 invoked from network); 23 Jun 2003 20:43:52 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 23 Jun 2003 20:43:52 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 23 Jun 2003 20:51:22 -0000 Date: Mon, 23 Jun 2003 16:51:22 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com Cc: dovecot@procontrol.fi In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Cache optimization (was Re: 0.99.10-rc2 and rawlog) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 20:43:56 -0000 X-UID: 1018 Status: O On Mon, 23 Jun 2003, Charlie Brady wrote: > Now things seem to work, and mostly fast, but Date header seems not to be > indexed by default. I have > 60second sorting by Date, with every message > read. This seems new behaviour post 0.99.8.4. Is it intentional? >From example conf: # Different IMAP clients work in different ways, that's why Dovecot by default # only caches MessagePart which speeds up most operations. Whenever client # does something where caching could be used, the field is automatically marked # to be cached later. For example after FETCH BODY the BODY will be cached # for all new messages. Normally you should leave this alone, unless you know # what most of your IMAP clients are. Caching more fields than needed makes # the index files larger and generate useless I/O. It seems that this cache optimization which applies to FETCH is not applied to SORT. The client said: 000c sort (DATE) US-ASCII ALL 1:10912 and all message files are read. -- Charlie From adam@os.inf.tu-dresden.de Mon Jun 23 23:50:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8EBDD239BA; Mon, 23 Jun 2003 23:50:00 +0300 (EEST) Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id 9AE0A239A9 for ; Mon, 23 Jun 2003 23:49:56 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 4.20) id 19UYG9-000Sjq-TQ for dovecot@procontrol.fi; Mon, 23 Jun 2003 22:49:53 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 19UYG9-00066U-00 for ; Mon, 23 Jun 2003 22:49:53 +0200 Date: Mon, 23 Jun 2003 22:49:53 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Message-ID: <20030623204953.GN398@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline User-Agent: Mutt/1.4.1i Sender: Adam Lackorzynski Subject: [Dovecot] OpenSSL on AIX X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 20:50:00 -0000 X-UID: 1019 Status: O Hi, with current test releases SSL doesn't work anymore for me on AIX 4.3 with dovecot-0.99.10-test14. It worked with 0.99.9.1. dovecot: Jun 23 19:42:23 Info: Dovecot starting up imap-login: Jun 23 19:42:25 Fatal: RAND_bytes() failed: error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded imap-login: Jun 23 19:42:25 Fatal: RAND_bytes() failed: error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded imap-login: Jun 23 19:42:25 Fatal: RAND_bytes() failed: error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded dovecot: Jun 23 19:42:25 Error: Login process died too early - shutting down AIX doesn't have /dev/u?random, so I don't know if that could be the culprit. EGD would be available though. Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From spectron@coqui.net Tue Jun 24 16:00:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 49C442387F; Tue, 24 Jun 2003 16:00:36 +0300 (EEST) Received: from mail.coqui.net (emailgw.coqui.net [196.28.61.10]) by danu.procontrol.fi (Postfix) with SMTP id 5A42523860 for ; Tue, 24 Jun 2003 16:00:31 +0300 (EEST) Received: from unknown(66.50.169.121) by mail.coqui.net via csmap id 5080; Tue, 24 Jun 2003 08:43:08 -0400 (AST) Message-ID: <004601c33a50$9e60bb00$080aa8c0@PAVILION> From: "Spectron International, Inc." To: "Dovecot List" References: <00d501c339c3$c1f32810$080aa8c0@PAVILION> Date: Tue, 24 Jun 2003 09:00:41 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Subject: [Dovecot] Help configuring dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 13:00:36 -0000 X-UID: 1020 Status: O I installed Dovecot and OpenLDAP and at least now Dovecot is connecting to LDAP and it seems to be getting all the information. My problem is that now I'm getting the following error: "mail process isn't allowed for root" I changed the dovecot.conf file to use the dovecot account that the Debian package creates: login_user = dovecot authuser = dovecot #was root and it still doesn't work. What does that error means? Directory permissions wrong? Cant run as root? Root can't read mail? The important thing is, how do I solve it? Faw From charlieb-dovecot@e-smith.com Tue Jun 24 17:25:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 319FE23887; Tue, 24 Jun 2003 17:25:49 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id A72512387F for ; Tue, 24 Jun 2003 17:25:43 +0300 (EEST) Received: (qmail 24977 invoked by uid 404); 24 Jun 2003 14:25:40 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 24 Jun 2003 10:25:39 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 24 Jun 2003 14:25:39 -0000 Received: (qmail 17585 invoked from network); 24 Jun 2003 14:25:39 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 24 Jun 2003 14:25:39 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 24 Jun 2003 14:33:08 -0000 Date: Tue, 24 Jun 2003 10:33:08 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: "Spectron International, Inc." Subject: Re: [Dovecot] Help configuring dovecot In-Reply-To: <004601c33a50$9e60bb00$080aa8c0@PAVILION> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 14:25:49 -0000 X-UID: 1021 Status: O Content-Length: 1274 On Tue, 24 Jun 2003, Spectron International, Inc. wrote: > I installed Dovecot and OpenLDAP and at least now Dovecot is connecting to > LDAP and it seems to be getting all the information. My problem is that now > I'm getting the following error: > > "mail process isn't allowed for root" You don't say where you are seeing this error message, or anything about the circumstances. See: http://www.chiark.greenend.org.uk/~sgtatham/bugs.html > and it still doesn't work. What does that error means? Directory permissions > wrong? Cant run as root? Root can't read mail? The important thing is, how > do I solve it? I can't answer any of your questions. I don't know what you are trying to do. I do have some insight into the message though: delivering mail as the root account is a bad idea. Reading mail as the root account is an even worse idea. Mail programs are usually large and complex programs, and in general insufficiently paranoid about security. You should always alias root@ to some other account. OK, I've found your error message in the source code. The obvious solution appears to be to try logging into IMAP with a non-root account. [The error message could be clearer with this advice - "Root login is not permitted" or similar.] -- Charlie From cras@irccrew.org Tue Jun 24 17:34:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 01F7E238B6; Tue, 24 Jun 2003 17:34:00 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 4244723887 for ; Tue, 24 Jun 2003 17:33:59 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 20D302E003; Tue, 24 Jun 2003 17:33:59 +0300 (EEST) Date: Tue, 24 Jun 2003 17:33:59 +0300 From: Timo Sirainen To: Dovecot List Subject: Re: [Dovecot] Help configuring dovecot Message-ID: <20030624143359.GA19541@irccrew.org> References: <004601c33a50$9e60bb00$080aa8c0@PAVILION> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 14:34:01 -0000 X-UID: 1022 Status: O On Tue, Jun 24, 2003 at 10:33:08AM -0400, Charlie Brady wrote: > > "mail process isn't allowed for root" > OK, I've found your error message in the source code. The obvious solution > appears to be to try logging into IMAP with a non-root account. Alternatively the users are configured with UID 0 in the LDAP database. > [The error > message could be clearer with this advice - "Root login is not permitted" > or similar.] Yes, I'll change that. From cras@irccrew.org Tue Jun 24 17:41:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 29808238C7; Tue, 24 Jun 2003 17:41:08 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id A1C10238B6 for ; Tue, 24 Jun 2003 17:41:06 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 7BC942E003; Tue, 24 Jun 2003 17:41:06 +0300 (EEST) Date: Tue, 24 Jun 2003 17:41:06 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] OpenSSL on AIX Message-ID: <20030624144106.GB19541@irccrew.org> References: <20030623204953.GN398@os.inf.tu-dresden.de> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20030623204953.GN398@os.inf.tu-dresden.de> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 14:41:08 -0000 X-UID: 1023 Status: O On Mon, Jun 23, 2003 at 10:49:53PM +0200, Adam Lackorzynski wrote: > with current test releases SSL doesn't work anymore for me on AIX 4.3 > with dovecot-0.99.10-test14. It worked with 0.99.9.1. > > imap-login: Jun 23 19:42:25 Fatal: RAND_bytes() failed: error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded > > AIX doesn't have /dev/u?random, so I don't know if that could be the > culprit. EGD would be available though. How does EGD work? It listens in /tmp/something? But .. hmh. I don't know. I'd guess you need the randomness in any case. Should I just add extra code to feed OpenSSL's PRNG from specified file (device/socket/etc)? From spectron@coqui.net Tue Jun 24 17:49:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D1CD6238CB; Tue, 24 Jun 2003 17:49:03 +0300 (EEST) Received: from mail.coqui.net (emailgw.coqui.net [196.28.61.10]) by danu.procontrol.fi (Postfix) with SMTP id 95C07238C9 for ; Tue, 24 Jun 2003 17:48:56 +0300 (EEST) Received: from unknown(66.50.169.121) by mail.coqui.net via csmap id 16448; Tue, 24 Jun 2003 10:31:33 -0400 (AST) Message-ID: <008001c33a5f$c3e22df0$080aa8c0@PAVILION> From: "Spectron International, Inc." To: "Dovecot List" References: <004601c33a50$9e60bb00$080aa8c0@PAVILION> <20030624143359.GA19541@irccrew.org> Subject: Re: [Dovecot] Help configuring dovecot Date: Tue, 24 Jun 2003 10:49:06 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 14:49:04 -0000 X-UID: 1024 Status: O ----- Original Message ----- From: "Timo Sirainen" To: "Dovecot List" Sent: Tuesday, June 24, 2003 10:33 AM Subject: Re: [Dovecot] Help configuring dovecot > On Tue, Jun 24, 2003 at 10:33:08AM -0400, Charlie Brady wrote: > > > "mail process isn't allowed for root" > > OK, I've found your error message in the source code. The obvious solution > > appears to be to try logging into IMAP with a non-root account. > > Alternatively the users are configured with UID 0 in the LDAP database. Ok, that was it since it was a virtual user I thought there was no need to set up uid or gid in user_attrs in the dovecot-ldap.conf file. Added it and it works. Thanks From adam@os.inf.tu-dresden.de Tue Jun 24 18:14:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 19737238CB; Tue, 24 Jun 2003 18:14:15 +0300 (EEST) Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id 9CD7F23887 for ; Tue, 24 Jun 2003 18:14:09 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 4.20) id 19UpUm-000Sio-Fg for dovecot@procontrol.fi; Tue, 24 Jun 2003 17:14:08 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 19UpUm-0003H8-00 for ; Tue, 24 Jun 2003 17:14:08 +0200 Date: Tue, 24 Jun 2003 17:14:08 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: Re: [Dovecot] OpenSSL on AIX Message-ID: <20030624151408.GQ398@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <20030623204953.GN398@os.inf.tu-dresden.de> <20030624144106.GB19541@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20030624144106.GB19541@irccrew.org> User-Agent: Mutt/1.4.1i Sender: Adam Lackorzynski X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 15:14:15 -0000 X-UID: 1025 Status: O On Tue Jun 24, 2003 at 17:41:06 +0300, Timo Sirainen wrote: > How does EGD work? It listens in /tmp/something? But .. hmh. I don't know. The daemon provides a socket where applications can get entropy from. > I'd guess you need the randomness in any case. Should I just add extra code > to feed OpenSSL's PRNG from specified file (device/socket/etc)? Looks like that. Other projects which support egd have extra code for the RAND_*egd* functions. Thanks, Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From cras@irccrew.org Tue Jun 24 18:21:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C1B4B238CB; Tue, 24 Jun 2003 18:21:07 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 1ACF723865 for ; Tue, 24 Jun 2003 18:21:06 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id E67452E003; Tue, 24 Jun 2003 18:21:05 +0300 (EEST) Date: Tue, 24 Jun 2003 18:21:05 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] OpenSSL on AIX Message-ID: <20030624152105.GD19541@irccrew.org> References: <20030623204953.GN398@os.inf.tu-dresden.de> <20030624144106.GB19541@irccrew.org> <20030624151408.GQ398@os.inf.tu-dresden.de> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20030624151408.GQ398@os.inf.tu-dresden.de> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 15:21:07 -0000 X-UID: 1026 Status: O On Tue, Jun 24, 2003 at 05:14:08PM +0200, Adam Lackorzynski wrote: > > I'd guess you need the randomness in any case. Should I just add extra code > > to feed OpenSSL's PRNG from specified file (device/socket/etc)? > > Looks like that. Other projects which support egd have extra code for the > RAND_*egd* functions. OpenSSL automatically queries EGD when entropy is requested via RAND_bytes() or the status is checked via RAND_status() for the first time, if the socket is located at /var/run/egd-pool, /dev/egd-pool or /etc/egd-pool. You don't have it in any of those? From jaldhar@debian.org Tue Jun 24 19:18:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 08ADA2387F; Tue, 24 Jun 2003 19:18:03 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 0F14923865 for ; Tue, 24 Jun 2003 19:18:00 +0300 (EEST) Received: from jyoti.intranet.braincells.com (bgp384497bgs.jersyc01.nj.comcast.net [68.36.31.111]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 7F11E7FC6 for ; Tue, 24 Jun 2003 12:17:48 -0400 (EDT) Date: Tue, 24 Jun 2003 12:17:38 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@jyoti.intranet.braincells.com To: Dovecot List Subject: Re: [Dovecot] Help configuring dovecot In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 16:18:03 -0000 X-UID: 1027 Status: O On Tue, 24 Jun 2003, Charlie Brady wrote: > You don't say where you are seeing this error message, or anything about > the circumstances. See: > > http://www.chiark.greenend.org.uk/~sgtatham/bugs.html > Also when reporting a problem you should always mention if you are using a package and if so, where it came from what version etc. Timo is not responsible for third-party packages which could introduce bugs of their own. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From adam@os.inf.tu-dresden.de Tue Jun 24 19:22:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AD38623887; Tue, 24 Jun 2003 19:22:50 +0300 (EEST) Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id E97B52387F for ; Tue, 24 Jun 2003 19:22:46 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 4.20) id 19UqZB-00084e-N5 for dovecot@procontrol.fi; Tue, 24 Jun 2003 18:22:45 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 19UqZB-0006eU-00 for ; Tue, 24 Jun 2003 18:22:45 +0200 Date: Tue, 24 Jun 2003 18:22:45 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: Re: [Dovecot] OpenSSL on AIX Message-ID: <20030624162245.GR398@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <20030623204953.GN398@os.inf.tu-dresden.de> <20030624144106.GB19541@irccrew.org> <20030624151408.GQ398@os.inf.tu-dresden.de> <20030624152105.GD19541@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20030624152105.GD19541@irccrew.org> User-Agent: Mutt/1.4.1i Sender: Adam Lackorzynski X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 16:22:50 -0000 X-UID: 1028 Status: O On Tue Jun 24, 2003 at 18:21:05 +0300, Timo Sirainen wrote: > OpenSSL automatically queries EGD when entropy is requested via > RAND_bytes() or the status is checked via RAND_status() for the first > time, if the socket is located at /var/run/egd-pool, /dev/egd-pool or > /etc/egd-pool. Oh, nice to know. > You don't have it in any of those? If I create a link it does work. There should be some hint somewhere what the egd path should look like (or it should be configurable or something). The egd package doesn't recommend one of the above paths and so I made up one myself. And reading through the RAND_egd manpage isn't so obvious either... ;) Thanks again, Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From jaldhar@debian.org Tue Jun 24 19:23:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A8B00238B6; Tue, 24 Jun 2003 19:23:43 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 1D4FD23887 for ; Tue, 24 Jun 2003 19:23:42 +0300 (EEST) Received: from jyoti.intranet.braincells.com (bgp384497bgs.jersyc01.nj.comcast.net [68.36.31.111]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 7CDE08013 for ; Tue, 24 Jun 2003 12:23:41 -0400 (EDT) Date: Tue, 24 Jun 2003 12:22:51 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@jyoti.intranet.braincells.com To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] New dovecot Debian packages. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 16:23:43 -0000 X-UID: 1029 Status: O I forgot to mention it here: Christof alerted me to the fact that there was a typo in my package which was causing LDAP support to fail. So I made new packages bringing them upto 0.99.10.rc2 in the process and uploaded them to unstable last night. They should arrive in the archive today. A backport to woody is also available from http://www.braincells.com/open/ -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From dom@cus.org.uk Tue Jun 24 21:29:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9F559238C5; Tue, 24 Jun 2003 21:29:19 +0300 (EEST) Received: from cus.org.uk (host213-106-240-81.no-dns-yet.ntli.net [213.106.240.81]) by danu.procontrol.fi (Postfix) with ESMTP id A540B238B6 for ; Tue, 24 Jun 2003 21:29:16 +0300 (EEST) Received: from cus.org.uk (localhost.cus.org.uk [127.0.0.1]) by cus.org.uk (8.12.6/8.12.6) with ESMTP id h5OITF5h084822 for ; Tue, 24 Jun 2003 19:29:15 +0100 (BST) (envelope-from dom@cus.org.uk) Received: (from dom@localhost) by cus.org.uk (8.12.6/8.12.6/Submit) id h5OITFOt084821 for dovecot@procontrol.fi; Tue, 24 Jun 2003 19:29:15 +0100 (BST) Date: Tue, 24 Jun 2003 19:29:15 +0100 From: Dominic Marks To: dovecot@procontrol.fi Message-ID: <20030624182915.GA84732@cus.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i Subject: [Dovecot] Bug? Folder tree confusion X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 18:29:19 -0000 X-UID: 1030 Status: O Can anyone else confirm this behaviour: o Open an IMAP mailbox o Make a new folder (foo/) o Make another new folder under foo (foo/bar) o Delete foo o Bar will go away and foo will remain (Outlook bug ?) o Try and delete foo, you won't be able to because Dovecot thinks foo is not empty and Outlook thinks it is. This is using Dovecot 0.99.10-rc2 and MS Outlook 2000. Don't know if a bug lies within here somewhere (not nessarily in Dovecot), just something I noticed while playing around. Thanks, -- Dominic From skvidal@phy.duke.edu Wed Jun 25 00:17:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C03E0238C5; Wed, 25 Jun 2003 00:17:34 +0300 (EEST) Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id A6A4D238B6 for ; Wed, 25 Jun 2003 00:17:31 +0300 (EEST) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id A9BABA7806 for ; Tue, 24 Jun 2003 17:17:30 -0400 (EDT) From: seth vidal To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1056489688.5224.39.camel@opus.phy.duke.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.92 (1.3.92-1) (Preview Release) Date: 24 Jun 2003 17:21:28 -0400 Content-Transfer-Encoding: 7bit Subject: [Dovecot] changing listening port X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 21:17:35 -0000 X-UID: 1031 Status: O Hi, Trying to setup dovecot in a test environment. I need to run it on an alternate port for imaps. it doesn't seem like I can specify it on the listen line. any ideas? -sv From charlieb-dovecot@e-smith.com Wed Jun 25 00:20:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5146F238C5; Wed, 25 Jun 2003 00:20:40 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 355FE23865 for ; Wed, 25 Jun 2003 00:20:36 +0300 (EEST) Received: (qmail 6081 invoked by uid 404); 24 Jun 2003 21:20:33 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 24 Jun 2003 17:20:33 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 24 Jun 2003 21:20:33 -0000 Received: (qmail 20847 invoked from network); 24 Jun 2003 21:20:33 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 24 Jun 2003 21:20:33 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 24 Jun 2003 21:28:01 -0000 Date: Tue, 24 Jun 2003 17:28:01 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: seth vidal Subject: Re: [Dovecot] changing listening port In-Reply-To: <1056489688.5224.39.camel@opus.phy.duke.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 21:20:40 -0000 X-UID: 1032 Status: O On 24 Jun 2003, seth vidal wrote: > Trying to setup dovecot in a test environment. I need to run it on an > alternate port for imaps. > > it doesn't seem like I can specify it on the listen line. > > any ideas? Probably not what you want, but running dovecot on any port you like is easy using the daemontools/tcpserver/stunnel/imapfront configuration I posted a while ago. You could quickly do a similar thing with *inetd. -- Charlie From adam@os.inf.tu-dresden.de Wed Jun 25 00:23:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B993E238C5; Wed, 25 Jun 2003 00:23:14 +0300 (EEST) Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by danu.procontrol.fi (Postfix) with ESMTP id 1F91D23865 for ; Wed, 25 Jun 2003 00:23:12 +0300 (EEST) Received: from erwin.inf.tu-dresden.de ([141.76.48.80]) by os.inf.tu-dresden.de with esmtp (Exim 4.20) id 19UvFu-000KTS-SY for dovecot@procontrol.fi; Tue, 24 Jun 2003 23:23:10 +0200 Received: from adam by erwin.inf.tu-dresden.de with local (Exim 3.35 #1 (Debian)) id 19UvFu-0004ds-00 for ; Tue, 24 Jun 2003 23:23:10 +0200 Date: Tue, 24 Jun 2003 23:23:10 +0200 From: Adam Lackorzynski To: dovecot@procontrol.fi Subject: Re: [Dovecot] changing listening port Message-ID: <20030624212310.GX398@os.inf.tu-dresden.de> Mail-Followup-To: dovecot@procontrol.fi References: <1056489688.5224.39.camel@opus.phy.duke.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1056489688.5224.39.camel@opus.phy.duke.edu> User-Agent: Mutt/1.4.1i Sender: Adam Lackorzynski X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 21:23:14 -0000 X-UID: 1033 Status: O On Tue Jun 24, 2003 at 17:21:28 -0400, seth vidal wrote: > Trying to setup dovecot in a test environment. I need to run it on an > alternate port for imaps. > it doesn't seem like I can specify it on the listen line. > any ideas? Try imaps_listen = *:1234 in your config file. Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From skvidal@phy.duke.edu Wed Jun 25 00:24:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 755A5238D5; Wed, 25 Jun 2003 00:24:23 +0300 (EEST) Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id CBFE323865 for ; Wed, 25 Jun 2003 00:24:21 +0300 (EEST) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id 39827A77D3; Tue, 24 Jun 2003 17:24:21 -0400 (EDT) Subject: Re: [Dovecot] changing listening port From: seth vidal To: Charlie Brady In-Reply-To: References: Content-Type: text/plain Message-Id: <1056490098.5224.41.camel@opus.phy.duke.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.92 (1.3.92-1) (Preview Release) Date: 24 Jun 2003 17:28:18 -0400 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 21:24:23 -0000 X-UID: 1034 Status: O On Tue, 2003-06-24 at 17:28, Charlie Brady wrote: > On 24 Jun 2003, seth vidal wrote: > > > Trying to setup dovecot in a test environment. I need to run it on an > > alternate port for imaps. > > > > it doesn't seem like I can specify it on the listen line. > > > > any ideas? > > Probably not what you want, but running dovecot on any port you like is > easy using the daemontools/tcpserver/stunnel/imapfront configuration I > posted a while ago. You could quickly do a similar thing with *inetd. yah - I was kinda hoping I could do this w/o *inetd. I kinda like the standalone server -sv From skvidal@phy.duke.edu Wed Jun 25 00:53:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1D282238D5; Wed, 25 Jun 2003 00:53:26 +0300 (EEST) Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 5332B23865 for ; Wed, 25 Jun 2003 00:53:23 +0300 (EEST) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id 01F5DA77D3; Tue, 24 Jun 2003 17:53:23 -0400 (EDT) Subject: Re: [Dovecot] changing listening port From: seth vidal To: Adam Lackorzynski In-Reply-To: <20030624212310.GX398@os.inf.tu-dresden.de> References: <1056489688.5224.39.camel@opus.phy.duke.edu> <20030624212310.GX398@os.inf.tu-dresden.de> Content-Type: text/plain Message-Id: <1056491840.6957.5.camel@opus.phy.duke.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.92 (1.3.92-1) (Preview Release) Date: 24 Jun 2003 17:57:20 -0400 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 21:53:26 -0000 X-UID: 1035 Status: O On Tue, 2003-06-24 at 17:23, Adam Lackorzynski wrote: > On Tue Jun 24, 2003 at 17:21:28 -0400, seth vidal wrote: > > Trying to setup dovecot in a test environment. I need to run it on an > > alternate port for imaps. > > it doesn't seem like I can specify it on the listen line. > > any ideas? > > Try > > imaps_listen = *:1234 > > in your config file. Thanks- that works a treat. -sv From skvidal@phy.duke.edu Wed Jun 25 01:00:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0AD6C2399D; Wed, 25 Jun 2003 01:00:07 +0300 (EEST) Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 534D02399A for ; Wed, 25 Jun 2003 01:00:01 +0300 (EEST) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id F19CCA77D3 for ; Tue, 24 Jun 2003 18:00:00 -0400 (EDT) From: seth vidal To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1056492238.6957.14.camel@opus.phy.duke.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.3.92 (1.3.92-1) (Preview Release) Date: 24 Jun 2003 18:03:58 -0400 Content-Transfer-Encoding: 7bit Subject: [Dovecot] folder subscriptions X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 22:00:07 -0000 X-UID: 1036 Status: O Hi, I've got a lot of users using uw-imapd(yah, yah, I know) I'd like to get them off of that and onto dovecot at some point in the indeterminate future. so excluding bizarre path resolution things that uw-imapd has left around. is it more or less cp ~/mailboxlist ~/mail/subscriptions? It looks like that - but I wanted to verify :) thanks -sv From tss@iki.fi Wed Jun 25 01:07:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C511A239A1; Wed, 25 Jun 2003 01:07:24 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4CEF92399A for ; Wed, 25 Jun 2003 01:07:23 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3E6B75C65485; Wed, 25 Jun 2003 01:07:22 +0300 (EEST) Subject: Re: [Dovecot] folder subscriptions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1056492238.6957.14.camel@opus.phy.duke.edu> References: <1056492238.6957.14.camel@opus.phy.duke.edu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056492442.8145.1.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Jun 2003 01:07:22 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 22:07:24 -0000 X-UID: 1037 Status: O On Wed, 2003-06-25 at 01:03, seth vidal wrote: > Hi, > I've got a lot of users using uw-imapd(yah, yah, I know) > > I'd like to get them off of that and onto dovecot at some point in the > indeterminate future. > > so excluding bizarre path resolution things that uw-imapd has left > around. is it more or less cp ~/mailboxlist ~/mail/subscriptions? > > It looks like that - but I wanted to verify :) ".subscriptions" but yes, that should do it. From tss@iki.fi Wed Jun 25 01:42:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 257FB238B6; Wed, 25 Jun 2003 01:42:29 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C6F462384C for ; Wed, 25 Jun 2003 01:42:26 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id A854F5C65485; Wed, 25 Jun 2003 01:42:26 +0300 (EEST) Subject: Re: [Dovecot] Bug? Folder tree confusion From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030624182915.GA84732@cus.org.uk> References: <20030624182915.GA84732@cus.org.uk> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056494546.8145.5.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Jun 2003 01:42:26 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 22:42:29 -0000 X-UID: 1038 Status: O On Tue, 2003-06-24 at 21:29, Dominic Marks wrote: > Can anyone else confirm this behaviour: > > o Open an IMAP mailbox > o Make a new folder (foo/) > o Make another new folder under foo (foo/bar) > o Delete foo > o Bar will go away and foo will remain (Outlook bug ?) > o Try and delete foo, you won't be able to because Dovecot > thinks foo is not empty and Outlook thinks it is. mbox? My Outlook 2000 asks "All subfolders will be deleted also. Are you sure you wish to delete folder xyz?" (translation from finnish). Answering yes will do that and it seems to work fine. From tss@iki.fi Wed Jun 25 01:55:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CFC45238B6; Wed, 25 Jun 2003 01:55:11 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 478392384C for ; Wed, 25 Jun 2003 01:55:10 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 256FA5C65485; Wed, 25 Jun 2003 01:55:10 +0300 (EEST) Subject: Re: [Dovecot] Cache optimization (was Re: 0.99.10-rc2 and rawlog) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056495309.8146.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Jun 2003 01:55:10 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 22:55:11 -0000 X-UID: 1039 Status: O On Mon, 2003-06-23 at 23:51, Charlie Brady wrote: > It seems that this cache optimization which applies to FETCH is not > applied to SORT. The client said: > > 000c sort (DATE) US-ASCII ALL 1:10912 > > and all message files are read. So it seems. It's applied equally to FETCH and SORT, but FETCH just never actually wants to use the Date-field. Fixed. From tss@iki.fi Wed Jun 25 02:11:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CC078239B2; Wed, 25 Jun 2003 02:11:40 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 57B2F238B6 for ; Wed, 25 Jun 2003 02:11:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 128695C65485; Wed, 25 Jun 2003 02:11:38 +0300 (EEST) Subject: Re: [Dovecot] Bug? High CPU Usage after nessus scan From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030623205306.3793f56e.jens@freebsdforum.de> References: <20030623205306.3793f56e.jens@freebsdforum.de> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056496297.8146.10.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Jun 2003 02:11:37 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 23:11:40 -0000 X-UID: 1040 Status: O On Mon, 2003-06-23 at 21:53, Jens Gutzeit wrote: > I'am running dovecot with imap, pop3 and the ssl equivalents, after a > nessus scan of my host with Bruteforce checks on IMAP, imap-login eats > up lots of cpu. Yes, thanks, fixed. It could get into infinite loop in some conditions. From tss@iki.fi Wed Jun 25 02:28:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 58BEC239B3; Wed, 25 Jun 2003 02:28:01 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 32D6F239A1 for ; Wed, 25 Jun 2003 02:27:58 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 5535B5C65485; Wed, 25 Jun 2003 02:27:54 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056497274.8144.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Jun 2003 02:27:54 +0300 Subject: [Dovecot] 0.99.10-rc3 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 23:28:01 -0000 X-UID: 1041 Status: O Fixed all the reported bugs. Changed PAM service to "dovecot". Anything left? http://dovecot.procontrol.fi/rc/ From lfarkas@bnap.hu Wed Jun 25 02:40:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D4BF2239B3; Wed, 25 Jun 2003 02:40:35 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 482AE239A1 for ; Wed, 25 Jun 2003 02:40:33 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 4669875400F for ; Wed, 25 Jun 2003 01:39:47 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 947763F22; Wed, 25 Jun 2003 01:40:31 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 5AF5C3F21 for ; Wed, 25 Jun 2003 01:40:31 +0200 (CEST) Message-ID: <3EF8E16F.8050404@bnap.hu> Date: Wed, 25 Jun 2003 01:40:31 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] current cvs can't login X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 23:40:36 -0000 X-UID: 1042 Status: O hi, the current cvs don't allow to login with mozilla just such messages: imap-login: Jun 25 01:29:30 Info: Aborted login [192.168.0.50] imap-login: Jun 25 01:29:39 Info: Aborted login [192.168.0.50] even the today afternoon messages was correct (or at least able to login to the imap). -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed Jun 25 02:49:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 47E4A239B3; Wed, 25 Jun 2003 02:49:06 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B900A239A1 for ; Wed, 25 Jun 2003 02:49:04 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 87F3A5C65485; Wed, 25 Jun 2003 02:49:04 +0300 (EEST) Subject: Re: [Dovecot] current cvs can't login From: Timo Sirainen To: Dovecot List In-Reply-To: <3EF8E16F.8050404@bnap.hu> References: <3EF8E16F.8050404@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056498544.8137.28.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Jun 2003 02:49:04 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 23:49:06 -0000 X-UID: 1043 Status: O On Wed, 2003-06-25 at 02:40, Farkas Levente wrote: > hi, > the current cvs don't allow to login with mozilla just such messages: > imap-login: Jun 25 01:29:30 Info: Aborted login [192.168.0.50] > imap-login: Jun 25 01:29:39 Info: Aborted login [192.168.0.50] > even the today afternoon messages was correct (or at least able to login > to the imap). I'd guess it's the PAM change. mv /etc/pam.d/imap /etc/pam.d/dovecot From lfarkas@bnap.hu Wed Jun 25 02:52:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9D349239B3; Wed, 25 Jun 2003 02:52:50 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 1C9D3239A1 for ; Wed, 25 Jun 2003 02:52:49 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 0230475400F for ; Wed, 25 Jun 2003 01:52:04 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 5F3F43F21; Wed, 25 Jun 2003 01:52:48 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 37C7F3F20 for ; Wed, 25 Jun 2003 01:52:48 +0200 (CEST) Message-ID: <3EF8E44F.8030704@bnap.hu> Date: Wed, 25 Jun 2003 01:52:47 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] current cvs can't login References: <3EF8E16F.8050404@bnap.hu> <1056498544.8137.28.camel@hurina> In-Reply-To: <1056498544.8137.28.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 23:52:50 -0000 X-UID: 1044 Status: O Timo Sirainen wrote: > On Wed, 2003-06-25 at 02:40, Farkas Levente wrote: > >>hi, >>the current cvs don't allow to login with mozilla just such messages: >>imap-login: Jun 25 01:29:30 Info: Aborted login [192.168.0.50] >>imap-login: Jun 25 01:29:39 Info: Aborted login [192.168.0.50] >>even the today afternoon messages was correct (or at least able to login >>to the imap). > > > I'd guess it's the PAM change. > > mv /etc/pam.d/imap /etc/pam.d/dovecot and the pop3? so I've to rewrite the spec file to:-( I'll rather go to home and do it tomorrow:-) thanks. -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed Jun 25 03:00:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 551B6239BD; Wed, 25 Jun 2003 03:00:55 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7129D239B3 for ; Wed, 25 Jun 2003 03:00:53 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 44F9E5C65485; Wed, 25 Jun 2003 03:00:53 +0300 (EEST) Subject: Re: [Dovecot] current cvs can't login From: Timo Sirainen To: Dovecot List In-Reply-To: <3EF8E44F.8030704@bnap.hu> References: <3EF8E16F.8050404@bnap.hu> <1056498544.8137.28.camel@hurina> <3EF8E44F.8030704@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056499252.8144.31.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Jun 2003 03:00:53 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 00:00:55 -0000 X-UID: 1045 Status: O On Wed, 2003-06-25 at 02:52, Farkas Levente wrote: > > I'd guess it's the PAM change. > > > > mv /etc/pam.d/imap /etc/pam.d/dovecot > > and the pop3? > so I've to rewrite the spec file to:-( > I'll rather go to home and do it tomorrow:-) Dovecot used "imap" for pop3 too. I'm still not sure if I should have rather just fixed it to use "pop3" for pop3 than change everyone to use "dovecot". Maybe this should be optional.. From lfarkas@bnap.hu Wed Jun 25 03:04:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 08199239BD; Wed, 25 Jun 2003 03:04:45 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 6B5C6239B3 for ; Wed, 25 Jun 2003 03:04:43 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 4D36E75400F for ; Wed, 25 Jun 2003 02:03:58 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id AFD0D3F22; Wed, 25 Jun 2003 02:04:42 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 8E5E63F21 for ; Wed, 25 Jun 2003 02:04:42 +0200 (CEST) Message-ID: <3EF8E71A.5070405@bnap.hu> Date: Wed, 25 Jun 2003 02:04:42 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] current cvs can't login References: <3EF8E16F.8050404@bnap.hu> <1056498544.8137.28.camel@hurina> <3EF8E44F.8030704@bnap.hu> <1056499252.8144.31.camel@hurina> In-Reply-To: <1056499252.8144.31.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 00:04:45 -0000 X-UID: 1046 Status: O Timo Sirainen wrote: > On Wed, 2003-06-25 at 02:52, Farkas Levente wrote: > >>>I'd guess it's the PAM change. >>> >>>mv /etc/pam.d/imap /etc/pam.d/dovecot >> >>and the pop3? >>so I've to rewrite the spec file to:-( >>I'll rather go to home and do it tomorrow:-) > > > Dovecot used "imap" for pop3 too. I'm still not sure if I should have > rather just fixed it to use "pop3" for pop3 than change everyone to use > "dovecot". Maybe this should be optional.. than I vote for dovecot for everyone. -- Levente "Si vis pacem para bellum!" From skvidal@phy.duke.edu Wed Jun 25 04:45:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4CAC3238D2; Wed, 25 Jun 2003 04:45:41 +0300 (EEST) Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 71BEA238B6 for ; Wed, 25 Jun 2003 04:45:35 +0300 (EEST) Received: from HP-4050-103.internal.phy.duke.edu (rdu57-255-028.nc.rr.com [66.57.255.28]) by mail.phy.duke.edu (Postfix) with ESMTP id 57780A77D3; Tue, 24 Jun 2003 21:45:34 -0400 (EDT) Subject: Re: [Dovecot] 0.99.10-rc3 From: seth vidal To: Timo Sirainen In-Reply-To: <1056497274.8144.26.camel@hurina> References: <1056497274.8144.26.camel@hurina> Content-Type: text/plain Message-Id: <1056505284.25085.34.camel@binkley> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 (1.4.0-2.duke.1) Date: 24 Jun 2003 21:41:24 -0400 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 01:45:41 -0000 X-UID: 1047 Status: O On Tue, 2003-06-24 at 19:27, Timo Sirainen wrote: > Fixed all the reported bugs. Changed PAM service to "dovecot". Anything > left? > > http://dovecot.procontrol.fi/rc/ silly request: if dovecot does not have a .subscription yet but it does find a .mailboxlist file could it copy that file and try to use it automatically? or would there be a way of providing modules that can perform certain commands as login modules for dovecot? -sv From jaldhar@debian.org Wed Jun 25 05:36:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F08E8238D2; Wed, 25 Jun 2003 05:36:34 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id E164A23865 for ; Wed, 25 Jun 2003 05:36:31 +0300 (EEST) Received: from jyoti.intranet.braincells.com (bgp384497bgs.jersyc01.nj.comcast.net [68.36.31.111]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id BBC6D817F; Tue, 24 Jun 2003 22:36:30 -0400 (EDT) Date: Tue, 24 Jun 2003 22:36:18 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@jyoti.intranet.braincells.com To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10-rc3 In-Reply-To: <1056497274.8144.26.camel@hurina> Message-ID: References: <1056497274.8144.26.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 02:36:35 -0000 X-UID: 1048 Status: O On Tue, 25 Jun 2003, Timo Sirainen wrote: > Fixed all the reported bugs. Changed PAM service to "dovecot". Anything > left? > > http://dovecot.procontrol.fi/rc/ > dotlocking? (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=185335) -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From Juergen.Daubert@t-online.de Wed Jun 25 09:50:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 76F12238D2; Wed, 25 Jun 2003 09:50:40 +0300 (EEST) Received: from mailout01.sul.t-online.com (mailout01.sul.t-online.com [194.25.134.80]) by danu.procontrol.fi (Postfix) with ESMTP id 469E023865 for ; Wed, 25 Jun 2003 09:50:37 +0300 (EEST) Received: from fwd03.aul.t-online.de by mailout01.sul.t-online.com with smtp id 19V470-0002Z1-05; Wed, 25 Jun 2003 08:50:34 +0200 Received: from pD9518F40.dip.t-dialin.net (bRvtx8ZSoeXB1xO-qVMdX+8YTc5vzINb3I8wpgX7OJR6bbREzPCbc+@[217.81.143.64]) by fwd03.sul.t-online.com with esmtp id 19V46t-1xM4Ce0; Wed, 25 Jun 2003 08:50:27 +0200 Received: from 192.168.0.1 by ser.netz with esmtp (masqmail 0.2.20) id 19V46p-2uh-00 for ; Wed, 25 Jun 2003 08:50:23 +0200 Received: from juergen by jue.netz with local (masqmail 0.2.20) id 19V46p-04l-00 for ; Wed, 25 Jun 2003 08:50:23 +0200 Date: Wed, 25 Jun 2003 08:50:23 +0200 From: Juergen.Daubert@t-online.de (Juergen Daubert) To: dovecot@procontrol.fi Subject: Re: [Dovecot] Bug? Folder tree confusion Message-ID: <20030625065023.GA205@localhost> References: <20030624182915.GA84732@cus.org.uk> <1056494546.8145.5.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1056494546.8145.5.camel@hurina> User-Agent: Mutt/1.4.1i X-Seen: false X-ID: bRvtx8ZSoeXB1xO-qVMdX+8YTc5vzINb3I8wpgX7OJR6bbREzPCbc+@t-dialin.net X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 06:50:40 -0000 X-UID: 1049 Status: O Content-Length: 1546 On Wed, Jun 25, 2003 at 01:42:26AM +0300, Timo Sirainen wrote: > On Tue, 2003-06-24 at 21:29, Dominic Marks wrote: > > Can anyone else confirm this behaviour: > > > > o Open an IMAP mailbox > > o Make a new folder (foo/) > > o Make another new folder under foo (foo/bar) > > o Delete foo > > o Bar will go away and foo will remain (Outlook bug ?) > > o Try and delete foo, you won't be able to because Dovecot > > thinks foo is not empty and Outlook thinks it is. > > mbox? My Outlook 2000 asks "All subfolders will be deleted also. Are you > sure you wish to delete folder xyz?" (translation from finnish). > Answering yes will do that and it seems to work fine. Yes, I see a similar behaviour. Deletion works for me, but not if I create a real mbox-file test in the directory foo/bar before. This is because we will have a empty directory foo/bar/.imap after deleting test. Dovecot response with (output of ngrep): T 192.168.0.1:32831 -> 192.168.0.90:143 [AP] 263 DELETE foo/bar/test.. # T 192.168.0.90:143 -> 192.168.0.1:32831 [AP] 263 OK Delete completed... # ... ## T 192.168.0.1:32831 -> 192.168.0.90:143 [AP] 265 DELETE foo/bar.. # T 192.168.0.90:143 -> 192.168.0.1:32831 [AP] 265 NO Folder foo/bar isn't empty, can't delete it... Linux, mbox, dovecot-0.99.10-rc3, sylpheed 0.9.2 & mutt 1.4.1 Greetings Jürgen -- juergen.daubert@t-online.de From dom@cus.org.uk Wed Jun 25 10:51:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3F156238D2; Wed, 25 Jun 2003 10:51:10 +0300 (EEST) Received: from cus.org.uk (host213-106-240-81.no-dns-yet.ntli.net [213.106.240.81]) by danu.procontrol.fi (Postfix) with ESMTP id 7756E238B6 for ; Wed, 25 Jun 2003 10:51:06 +0300 (EEST) Received: from cus.org.uk (localhost.cus.org.uk [127.0.0.1]) by cus.org.uk (8.12.6/8.12.6) with ESMTP id h5P7p45h099325; Wed, 25 Jun 2003 08:51:04 +0100 (BST) (envelope-from dom@cus.org.uk) Received: (from dom@localhost) by cus.org.uk (8.12.6/8.12.6/Submit) id h5P7p4B2099324; Wed, 25 Jun 2003 08:51:04 +0100 (BST) Date: Wed, 25 Jun 2003 08:51:04 +0100 From: Dominic Marks To: Timo Sirainen Subject: Re: [Dovecot] Bug? Folder tree confusion Message-ID: <20030625075104.GA99313@cus.org.uk> References: <20030624182915.GA84732@cus.org.uk> <1056494546.8145.5.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1056494546.8145.5.camel@hurina> User-Agent: Mutt/1.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 07:51:10 -0000 X-UID: 1050 Status: O On 25/06/2003 01:42, Timo Sirainen wrote: > On Tue, 2003-06-24 at 21:29, Dominic Marks wrote: > > Can anyone else confirm this behaviour: > > > > o Open an IMAP mailbox > > o Make a new folder (foo/) > > o Make another new folder under foo (foo/bar) > > o Delete foo > > o Bar will go away and foo will remain (Outlook bug ?) > > o Try and delete foo, you won't be able to because Dovecot > > thinks foo is not empty and Outlook thinks it is. > > mbox? My Outlook 2000 asks "All subfolders will be deleted also. Are you > sure you wish to delete folder xyz?" (translation from finnish). > Answering yes will do that and it seems to work fine. Must be user error then :-) -- Dominic From dom@cus.org.uk Wed Jun 25 10:56:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 039B2238D2; Wed, 25 Jun 2003 10:56:30 +0300 (EEST) Received: from cus.org.uk (host213-106-240-81.no-dns-yet.ntli.net [213.106.240.81]) by danu.procontrol.fi (Postfix) with ESMTP id 5D2DD238B6 for ; Wed, 25 Jun 2003 10:56:28 +0300 (EEST) Received: from cus.org.uk (localhost.cus.org.uk [127.0.0.1]) by cus.org.uk (8.12.6/8.12.6) with ESMTP id h5P7uQ5h099407; Wed, 25 Jun 2003 08:56:26 +0100 (BST) (envelope-from dom@cus.org.uk) Received: (from dom@localhost) by cus.org.uk (8.12.6/8.12.6/Submit) id h5P7uQ6U099406; Wed, 25 Jun 2003 08:56:26 +0100 (BST) Date: Wed, 25 Jun 2003 08:56:26 +0100 From: Dominic Marks To: Timo Sirainen Subject: Re: [Dovecot] current cvs can't login Message-ID: <20030625075626.GB99313@cus.org.uk> References: <3EF8E16F.8050404@bnap.hu> <1056498544.8137.28.camel@hurina> <3EF8E44F.8030704@bnap.hu> <1056499252.8144.31.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1056499252.8144.31.camel@hurina> User-Agent: Mutt/1.4i cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 07:56:30 -0000 X-UID: 1051 Status: O On 25/06/2003 03:00, Timo Sirainen wrote: > On Wed, 2003-06-25 at 02:52, Farkas Levente wrote: > > > I'd guess it's the PAM change. > > > > > > mv /etc/pam.d/imap /etc/pam.d/dovecot > > > > and the pop3? > > so I've to rewrite the spec file to:-( > > I'll rather go to home and do it tomorrow:-) > > Dovecot used "imap" for pop3 too. I'm still not sure if I should have > rather just fixed it to use "pop3" for pop3 than change everyone to use > "dovecot". Maybe this should be optional.. I'd like to see the pop3 service using the pop3 profile and the imap service using the imap profile preferably so it integrates better into a default FreeBSD setup (I tested Dovecot on FreeBSD 5.1 with OpenPAM yesterday and it works fine), I can patch this locally though if its cleaner to use dovecot in general. -- Dominic From tss@iki.fi Wed Jun 25 13:51:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 82B27238D2; Wed, 25 Jun 2003 13:51:05 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AC21423865 for ; Wed, 25 Jun 2003 13:51:02 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id DEF1B5C65485; Wed, 25 Jun 2003 13:51:01 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10-rc3 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1056505284.25085.34.camel@binkley> References: <1056497274.8144.26.camel@hurina> <1056505284.25085.34.camel@binkley> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056538261.8144.38.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Jun 2003 13:51:01 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 10:51:05 -0000 X-UID: 1052 Status: O On Wed, 2003-06-25 at 04:41, seth vidal wrote: > silly request: > > if dovecot does not have a .subscription yet but it does find a > .mailboxlist file could it copy that file and try to use it > automatically? > > or would there be a way of providing modules that can perform certain > commands as login modules for dovecot? Something like this: gcc -shared uwfix.c -o /usr/local/lib/dovecot/imap/uwfix.so #include #include #include void uwfix_init(void) { if (stat("mail/.subscription") < 0 && errno == ENOENT && stat(".mailboxlist") == 0) { system("/bin/cp .mailboxlist mail/.subscriptions"); } } void uwfix_deinit(void) {} From charlieb-dovecot@e-smith.com Wed Jun 25 18:05:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 263562399E; Wed, 25 Jun 2003 18:05:09 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 1366D238B6 for ; Wed, 25 Jun 2003 18:05:05 +0300 (EEST) Received: (qmail 23248 invoked by uid 404); 25 Jun 2003 15:05:02 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 25 Jun 2003 11:05:01 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 25 Jun 2003 15:05:01 -0000 Received: (qmail 20019 invoked from network); 25 Jun 2003 15:05:01 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 25 Jun 2003 15:05:01 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 25 Jun 2003 15:12:28 -0000 Date: Wed, 25 Jun 2003 11:12:28 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10-rc3 In-Reply-To: <1056497274.8144.26.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 15:05:09 -0000 X-UID: 1053 Status: O On 25 Jun 2003, Timo Sirainen wrote: > Fixed all the reported bugs. Changed PAM service to "dovecot". Anything > left? A suggestion, only relevant if compiled --with-rawlog - change the magic directory name from ~/rawlog to ~/dovecot.rawlog (or similar). Thanks -- Charlie From lfarkas@bnap.hu Wed Jun 25 18:38:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 79097239AD; Wed, 25 Jun 2003 18:38:12 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id D248623865 for ; Wed, 25 Jun 2003 18:38:09 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 4897C754013 for ; Wed, 25 Jun 2003 17:37:21 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 887C93F3D; Wed, 25 Jun 2003 17:38:07 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 5D1F03EAD for ; Wed, 25 Jun 2003 17:38:07 +0200 (CEST) Message-ID: <3EF9C1DE.1090705@bnap.hu> Date: Wed, 25 Jun 2003 17:38:06 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] a new bug X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 15:38:12 -0000 X-UID: 1054 Status: O Content-Length: 1258 hi, withe the latest cvs (and a few days ago) I've got a lot's of such process on the maiul server (and the number of such processes just growing:-(((). anyway the login problem disapear as I use dovecot as pam module name (both for impa and pop3). ------------------------------------------ root 18923 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] root 18925 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] root 18939 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] dovecot 18942 0.0 0.1 3420 1492 ? S 17:35 0:00 imap-login root 18943 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] root 18945 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] root 18947 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] dovecot 18950 0.0 0.1 3420 1492 ? S 17:35 0:00 imap-login dovecot 18953 0.3 0.1 3424 1488 ? S 17:35 0:00 imap-login root 18954 0.3 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] ------------------------------------------ -- Levente "Si vis pacem para bellum!" From lfarkas@bnap.hu Wed Jun 25 18:38:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 59931239CB; Wed, 25 Jun 2003 18:38:29 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id AFFDC23865 for ; Wed, 25 Jun 2003 18:38:27 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 9C638754013 for ; Wed, 25 Jun 2003 17:37:40 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id E34DB3F3D; Wed, 25 Jun 2003 17:38:26 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id BE4643EAD for ; Wed, 25 Jun 2003 17:38:26 +0200 (CEST) Message-ID: <3EF9C1F2.7090807@bnap.hu> Date: Wed, 25 Jun 2003 17:38:26 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] a new bug X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 15:38:29 -0000 X-UID: 1055 Status: O Content-Length: 1258 hi, withe the latest cvs (and a few days ago) I've got a lot's of such process on the maiul server (and the number of such processes just growing:-(((). anyway the login problem disapear as I use dovecot as pam module name (both for impa and pop3). ------------------------------------------ root 18923 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] root 18925 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] root 18939 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] dovecot 18942 0.0 0.1 3420 1492 ? S 17:35 0:00 imap-login root 18943 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] root 18945 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] root 18947 0.0 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] dovecot 18950 0.0 0.1 3420 1492 ? S 17:35 0:00 imap-login dovecot 18953 0.3 0.1 3424 1488 ? S 17:35 0:00 imap-login root 18954 0.3 0.0 0 0 ? Z 17:35 0:00 [dovecot-auth ] ------------------------------------------ -- Levente "Si vis pacem para bellum!" From tss@iki.fi Wed Jun 25 19:41:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1C075239AD; Wed, 25 Jun 2003 19:41:20 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 34F942399E for ; Wed, 25 Jun 2003 19:41:15 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id BD4F75C65485; Wed, 25 Jun 2003 19:41:12 +0300 (EEST) Subject: Re: [Dovecot] a new bug From: Timo Sirainen To: Dovecot List In-Reply-To: <3EF9C1DE.1090705@bnap.hu> References: <3EF9C1DE.1090705@bnap.hu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1056559272.8137.47.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 25 Jun 2003 19:41:12 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 16:41:20 -0000 X-UID: 1056 Status: O On Wed, 2003-06-25 at 18:38, Farkas Levente wrote: > hi, > withe the latest cvs (and a few days ago) I've got a lot's of such > process on the maiul server (and the number of such processes just > growing:-(((). > anyway the login problem disapear as I use dovecot as pam module name > (both for impa and pop3). > ------------------------------------------ > root 18923 0.0 0.0 0 0 ? Z 17:35 0:00 > [dovecot-auth ] Nowadays dovecot-auth creates a new process for every PAM check. Problem is that those processes were wait()ed out only one per second. Fixed it now so that it checks all of them once in a second. So you'll still see them for a while, but they should die out soon. From tss@iki.fi Thu Jun 26 02:49:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2CE2C2399E; Thu, 26 Jun 2003 02:49:13 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CAB2923865 for ; Thu, 26 Jun 2003 02:49:09 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id AAF505C896C9 for ; Thu, 26 Jun 2003 02:49:08 +0300 (EEST) Subject: [Fwd: Re: [Dovecot] current cvs can't login] From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: multipart/mixed; boundary="=-m214x5s33KX7azijlmiX" Message-Id: <1056584948.5044.13.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 26 Jun 2003 02:49:08 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jun 2003 23:49:13 -0000 X-UID: 1057 Status: O Content-Length: 1380 --=-m214x5s33KX7azijlmiX Content-Type: text/plain Content-Transfer-Encoding: 7bit So, evolution 1.4 upgrade lost my reply-to-list defaulting. Was supposed to send this here.. --=-m214x5s33KX7azijlmiX Content-Disposition: inline Content-Description: Forwarded message - Re: [Dovecot] current cvs can't login Content-Type: message/rfc822 Subject: Re: [Dovecot] current cvs can't login From: Timo Sirainen To: Dominic Marks In-Reply-To: <20030625075626.GB99313@cus.org.uk> References: <3EF8E16F.8050404@bnap.hu> <1056498544.8137.28.camel@hurina> <3EF8E44F.8030704@bnap.hu> <1056499252.8144.31.camel@hurina> <20030625075626.GB99313@cus.org.uk> Content-Type: text/plain Message-Id: <1056582990.30532.0.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 26 Jun 2003 02:16:31 +0300 Status: RO Content-Length: 427 X-UID: 3847 X-Keywords: Content-Transfer-Encoding: 7bit On Wed, 2003-06-25 at 10:56, Dominic Marks wrote: > I'd like to see the pop3 service using the pop3 profile and the imap > service using the imap profile preferably so it integrates better into a > default FreeBSD setup (I tested Dovecot on FreeBSD 5.1 with OpenPAM > yesterday and it works fine), I can patch this locally though if its > cleaner to use dovecot in general. auth_passdb = pam * Now uses either imap or pop3. --=-m214x5s33KX7azijlmiX-- From rdcates@xpowerhosting.com Thu Jun 26 03:34:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A09BB2399E; Thu, 26 Jun 2003 03:34:55 +0300 (EEST) Received: from ws1.xpowerhosting.com (unknown [63.238.110.18]) by danu.procontrol.fi (Postfix) with SMTP id 6A48C238B6 for ; Thu, 26 Jun 2003 03:34:49 +0300 (EEST) Received: (qmail 18348 invoked by uid 0); 26 Jun 2003 00:27:16 -0000 Received: from unknown (HELO OFFICE) (65.80.112.100) by ws1.xpowerhosting.com with SMTP; 26 Jun 2003 00:27:16 -0000 From: "Roger Cates" To: Date: Wed, 25 Jun 2003 19:27:50 -0500 Message-ID: <002401c33b79$c67f50e0$0301a8c0@OFFICE> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0025_01C33B4F.DDA948E0" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.2616 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Importance: Normal Subject: [Dovecot] Help with new install on Mac OSX X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 00:34:55 -0000 X-UID: 1058 Status: O Content-Length: 21794 This is a multi-part message in MIME format. ------=_NextPart_000_0025_01C33B4F.DDA948E0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Can anyone tell me what's going on and how I can fix it? bash-2.05a# make make all-recursive Making all in src Making all in lib make[3]: Nothing to be done for `all'. Making all in lib-settings make[3]: Nothing to be done for `all'. Making all in lib-charset make[3]: Nothing to be done for `all'. Making all in lib-mail make[3]: Nothing to be done for `all'. Making all in lib-imap make[3]: Nothing to be done for `all'. Making all in lib-index Making all in maildir make[4]: Nothing to be done for `all'. Making all in mbox make[4]: Nothing to be done for `all'. make[4]: Nothing to be done for `all-am'. Making all in lib-storage Making all in index Making all in maildir make[5]: Nothing to be done for `all'. Making all in mbox make[5]: Nothing to be done for `all'. make[5]: Nothing to be done for `all-am'. Making all in subscription-file make[4]: Nothing to be done for `all'. Making all in register gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../src/lib -I../../../src/lib-imap -I../../../src/lib-storage -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c mail-storage-register.c rm -f libstorage-register.a ar cru libstorage-register.a mail-storage-register.o ranlib libstorage-register.a make[4]: Nothing to be done for `all-am'. Making all in auth /bin/sh ../../libtool --mode=link gcc -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -o dovecot-auth -export-dynamic auth-module.o db-ldap.o db-pgsql.o db-passwd-file.o login-connection.o main.o master-connection.o md5crypt.o mech.o mech-cyrus-sasl2.o mech-plain.o mech-digest-md5.o mycrypt.o passdb.o passdb-ldap.o passdb-passwd.o passdb-passwd-file.o passdb-pam.o passdb-shadow.o passdb-vpopmail.o passdb-pgsql.o password-scheme.o userdb.o userdb-ldap.o userdb-passwd.o userdb-passwd-file.o userdb-static.o userdb-vpopmail.o userdb-pgsql.o ../lib-settings/libsettings.a ../lib/liblib.a -lpam -L/usr/vpopmail/lib -lvpopmail -ldl gcc -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -o dovecot-auth auth-module.o db-ldap.o db-pgsql.o db-passwd-file.o login-connection.o main.o master-connection.o md5crypt.o mech.o mech-cyrus-sasl2.o mech-plain.o mech-digest-md5.o mycrypt.o passdb.o passdb-ldap.o passdb-passwd.o passdb-passwd-file.o passdb-pam.o passdb-shadow.o passdb-vpopmail.o passdb-pgsql.o password-scheme.o userdb.o userdb-ldap.o userdb-passwd.o userdb-passwd-file.o userdb-static.o userdb-vpopmail.o userdb-pgsql.o ../lib-settings/libsettings.a ../lib/liblib.a -lpam -L/usr/vpopmail/lib -lvpopmail -ldl ld: Undefined symbols: ___udivdi3 ___umoddi3 restFP saveFP ___divdi3 make[3]: *** [dovecot-auth] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all-recursive-am] Error 2 I am on Mac OS X 10.2.6 and the latest Dovecot release 0.99.9.1. Sincerely, Roger Cates ------=_NextPart_000_0025_01C33B4F.DDA948E0 Content-Type: text/html; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable

Can anyone tell me what’s going on and how I can fix it?

 

bash-2.05a# = make

make  all-recursive=

Making all in src

Making all in lib

make[3]: Nothing to be done for `all'.

Making all in = lib-settings

make[3]: Nothing to be done for `all'.

Making all in = lib-charset

make[3]: Nothing to be done for `all'.

Making all in lib-mail

make[3]: Nothing to be done for `all'.

Making all in lib-imap

make[3]: Nothing to be done for `all'.

Making all in lib-index

Making all in maildir

make[4]: Nothing to be done for `all'.

Making all in mbox

make[4]: Nothing to be done for `all'.

make[4]: Nothing to be done for `all-am'.

Making all in = lib-storage

Making all in index

Making all in maildir

make[5]: Nothing to be done for `all'.

Making all in mbox

make[5]: Nothing to be done for `all'.

make[5]: Nothing to be done for `all-am'.

Making all in = subscription-file

make[4]: Nothing to be done for `all'.

Making all in register

gcc -DHAVE_CONFIG_H -I.= = -I.= -I../../.. -I../../../src/lib       = -I../../../src/lib-imap       &nbs= p; -I../../../src/lib-storage    -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith = -Wchar-subscripts -Wformat=3D2 -Wbad-function-cast  = -c mail-storage-register.c

rm -f libstorage-register.a

ar cru libstorage-register.a = mail-storage-register.o

ranlib<= font size=3D2 face=3DArial> libstorage-register.a

make[4]: Nothing to be done for `all-am'.

Making all in auth

/bin/sh ../../libtool = --mode=3Dlink gcc  -g -O2 -Wall -W = -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=3D2 -Wbad-function-cast   = -o dovecot-auth -export-dynamic auth-module.o db-ldap.o db-pgsql.o db-passwd-file.o login-connection.o main.o master-connection.o = md5crypt.o mech.o mech-cyrus-sasl2.o mech-plain.o mech-digest-md5.o mycrypt.o = passdb.o passdb-ldap.o passdb-passwd.o passdb-passwd-file.o passdb-pam.o = passdb-shadow.o passdb-vpopmail.o passdb-pgsql.o password-scheme.o userdb.o = userdb-ldap.o userdb-passwd.o userdb-passwd-file.o userdb-static.o userdb-vpopmail.o userdb-pgsql.o ../lib-settings/libsettings.a = ../lib/liblib.a  = -lpam -L/usr/vpopmail/lib -lvpopmail -ldl

gcc -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=3D2 = -Wbad-function-cast -o dovecot-auth auth-module.o db-ldap.o db-pgsql.o db-passwd-file.o login-connection.o main.o master-connection.o md5crypt.o mech.o mech-cyrus-sasl2.o mech-plain.o mech-digest-md5.o mycrypt.o passdb.o passdb-ldap.o passdb-passwd.o passdb-passwd-file.o passdb-pam.o = passdb-shadow.o passdb-vpopmail.o passdb-pgsql.o password-scheme.o userdb.o = userdb-ldap.o userdb-passwd.o userdb-passwd-file.o userdb-static.o userdb-vpopmail.o userdb-pgsql.o  = ../lib-settings/libsettings.a ../lib/liblib.a -lpam = -L/usr/vpopmail/lib -lvpopmail -ldl

ld: = Undefined symbols:

___udivdi3

___umoddi3

restFP<= font size=3D2 face=3DArial>

saveFP<= font size=3D2 face=3DArial>

___divdi3

make[3]: *** [dovecot-auth] Error 1

make[2]: *** [all-recursive] Error 1

make[1]: *** [all-recursive] Error 1

make: *** [all-recursive-am] Error 2

 

I am on Mac OS X 10.2.6 and the latest Dovecot = release 0.99.9.1.

 

 

Sincerely,

 

Roger = Cates

 

------=_NextPart_000_0025_01C33B4F.DDA948E0-- From tss@iki.fi Thu Jun 26 04:08:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 32AB8239B2; Thu, 26 Jun 2003 04:08:19 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 70E01238B6 for ; Thu, 26 Jun 2003 04:08:16 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id EB1525C896C9 for ; Thu, 26 Jun 2003 04:08:15 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1056589694.7729.10.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 26 Jun 2003 04:08:15 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] 0.99.10-rc4 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 01:08:19 -0000 X-UID: 1059 Status: O Again all the recently reported bugs fixed. Hopefully last rc. http://dovecot.procontrol.fi/rc/ From charlie@rubberduck.com Thu Jun 26 06:23:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 750BC239B3; Thu, 26 Jun 2003 06:23:33 +0300 (EEST) Received: from lazy.spodder.com (unknown [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 9E1B923865 for ; Thu, 26 Jun 2003 06:23:28 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id A52B98FBB; Thu, 26 Jun 2003 13:23:34 +1000 (EST) Date: Thu, 26 Jun 2003 13:23:34 +1000 From: Charlie Allom To: dovecot@procontrol.fi Message-ID: <20030626032334.GA24909@lazy.spodder.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i Subject: [Dovecot] mutt and dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 03:23:33 -0000 X-UID: 1060 Status: O Hi, I setup squirrelmail with dovecot and everything worked. I moved users Maildir directores to ~/Maildir/INBOX.directory/ and updated the .subscriptions file to something like ^INBOX.directory squirrelmail picks this up, but I can't seem to get mutt to read this style. In fact I would have assumed that dovecot would read ~/Maildir/ as INBOX and everything under it as it stands, without having to shuffle things about. Does anyone use mutt and have any words fo advice? I am not sure that courier-imapd does this sort of munging? C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From charlie@rubberduck.com Thu Jun 26 06:30:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 887B5239BA; Thu, 26 Jun 2003 06:30:33 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 0EFC323865 for ; Thu, 26 Jun 2003 06:30:30 +0300 (EEST) Received: from machine.spodder.com (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id A586C8F00 for ; Thu, 26 Jun 2003 13:30:46 +1000 (EST) Received: from machine.internal.schools.net.au (localhost [127.0.0.1]) by machine.spodder.com (Postfix) with ESMTP id A2CCC4FCA8 for ; Thu, 26 Jun 2003 13:30:28 +1000 (EST) Received: (from yeled@localhost)h5Q3URRT002446 for dovecot@procontrol.fi; Thu, 26 Jun 2003 13:30:27 +1000 (EST) X-Authentication-Warning: machine.internal.schools.net.au: yeled set sender to charlie@rubberduck.com using -f Date: Thu, 26 Jun 2003 13:30:27 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] mutt and dovecot Message-ID: <20030626032923.GA2434@myinternet.com.au> References: <20030626032334.GA24909@lazy.spodder.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030626032334.GA24909@lazy.spodder.com> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 03:30:33 -0000 X-UID: 1061 Status: O Sorry to reply to my own, but I have done this to "fix" the issue: cd ~/Maildir ; for i in * ; do ln -s $i .INBOX.$i ; done So I can now change to =mailbox This is inelegant.. C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From amyzing@talsever.com Thu Jun 26 07:17:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EC4E3239BA; Thu, 26 Jun 2003 07:17:22 +0300 (EEST) Received: from smtp10.atl.mindspring.net (smtp10.atl.mindspring.net [207.69.200.246]) by danu.procontrol.fi (Postfix) with ESMTP id 3579D23865 for ; Thu, 26 Jun 2003 07:17:20 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by smtp10.atl.mindspring.net with esmtp (Exim 3.33 #1) id 19VOCD-0007ZI-00; Thu, 26 Jun 2003 00:17:18 -0400 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id 10D1D804B; Thu, 26 Jun 2003 00:17:16 -0400 (EDT) Date: Thu, 26 Jun 2003 00:17:16 -0400 From: "Amelia A. Lewis" To: Charlie Allom Subject: Re: [Dovecot] mutt and dovecot Message-Id: <20030626001716.358887a6.amyzing@talsever.com> In-Reply-To: <20030626032923.GA2434@myinternet.com.au> References: <20030626032334.GA24909@lazy.spodder.com> <20030626032923.GA2434@myinternet.com.au> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.0 (GTK+ 1.2.10; i386-debian-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 04:17:23 -0000 X-UID: 1062 Status: O Change it in /etc/Muttrc. man muttrc for the imap parameters. I think you want imap_home_namespace=INBOX.directory, probably. On Thu, 26 Jun 2003 13:30:27 +1000 Charlie Allom wrote: > Sorry to reply to my own, but I have done this to "fix" the issue: > > cd ~/Maildir ; for i in * ; do ln -s $i .INBOX.$i ; done > > So I can now change to =mailbox > > This is inelegant.. > > C. > -- > charlie@rubberduck.com - Melbourne, Australia > http://rubberduck.com/~yeled/ > PGP: 0x14AA7941 || finger yeled@lazy.spodder.com > -- Amelia A. Lewis amyzing {at} talsever.com Better to have thirty minutes of wonderful than a lifetime of nothing special. From enderle@mdn.de Thu Jun 26 11:54:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CF962239BA; Thu, 26 Jun 2003 11:54:48 +0300 (EEST) Received: from mail.mdn.de (unknown [212.114.209.20]) by danu.procontrol.fi (Postfix) with ESMTP id 1E28E239B2 for ; Thu, 26 Jun 2003 11:54:47 +0300 (EEST) Received: from mdn.de (edv02.prod.nbg.dyn.mdn.de [10.0.0.122]) by mail.mdn.de (Postfix) with ESMTP id 9D24AA897 for ; Thu, 26 Jun 2003 10:54:45 +0200 (CEST) Message-ID: <3EFAB4D0.1010405@mdn.de> Date: Thu, 26 Jun 2003 10:54:40 +0200 From: Steven Enderle Organization: m d n =?ISO-8859-1?Q?H=FCbner_GmbH?= User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3.1) Gecko/20030524 X-Accept-Language: de, de-de, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Message display corrupted or missing in Netscape 7.0 and Mozilla 1.3 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 08:54:49 -0000 X-UID: 1063 Status: O Content-Length: 2971 Hi, a few days ago, we switched our site from pop3 to imap. We are running about 20 users with Netscape 7.0 on a FreeBSD-4.8 Server . I installed dovecot 0.9.99.1 via the freebsd-ports collection, which was as easy as make install and start dovecot. Our users mailboxes are still standart mbox format in /var/mail/(user), as it is default in Freebsd. Now we suffer from a realy ugly problem, which was arising after the switch from pop3. When Netscape is newly started, it works fine as expected until Netscape displays messages corrupted or stops displaying them completly. I also cannot forward them in that state or open or delete them in any other way. The only way to get it working again is to quit Netscape, exit quickstart and restart Netscape again. It just hangs on a bunch of messages or all of them. The user notices it like this: There are three windows displayed in netscape mail: 1. imap folder view 2. message list of the current folder and 3. the currently displayed message. The Folder view and Message List in Netscape is always fine, so the Subject and sender, time, etc is always displayed in the List. The problem occurs then on some messages when i select them for reading. The Message Display below the message list just stays empty (also opening the message in a new window doesn't help) or the "title bar in the Message Display" stays empty (no subject, sender, time etc) and the raw email starting with header, raw html email and encoded attachment is shown below, each line followed by another blank line, like this: == start corrupted email X-UIDL: 8793f170f0430909 Return-Path: Delivered-To: xx@mdn.de Received: from mailrelay1.xx.de (mailrelay.xx.de [212.114.153.xx]) by xx.de (Postfix) with ESMTP id D31B7A88F for ; Wed, 18 Jun 2003 08:55:07 +0200 (CEST) Received: from ntmail1.xx.de (ntmail1.xx.de [212.114.155.xx]) html and stuff following... == end corrupted email One could read it, but its realy ugly. It seems, that if i delete a lot of messages in sequence (the morning spam), i can force to happen that problem earlier. It always hangs while deleting my spam. I like dovecot a lot, it was easy to install etc and works pretty fine except that it still seems to be in beta-stage. Now i would switch to courier/uw-imap until dovecot is ready, but the mbox format dovecot is using seems to be pretty uniq? I think, the users could keep their /var/mail/Username-INBOX, but wouldn't they loose their email folders? Is there any way to switch the software in a easy way? Or will there be a near future release which will fix that? What about the cvs version? Thanks for you help! Best regards Steven -- -------------------------------------------------- ----- Steven Enderle ----- m d n Huebner GmbH ---- ----- enderle@mdn.de ----- + 49 911 93 90 90 ----- ----- Digital Imaging & Documentmanagment ----- -------------------------------------------------- From cirvis@konts.lv Thu Jun 26 12:04:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 655ED239D0; Thu, 26 Jun 2003 12:04:57 +0300 (EEST) Received: from card.konts.lv (card.konts.lv [159.148.139.17]) by danu.procontrol.fi (Postfix) with ESMTP id 283C8239BA for ; Thu, 26 Jun 2003 12:04:54 +0300 (EEST) Received: (from daemon@localhost) by card.konts.lv (8.11.6/8.11.6) id h5Q938a19842 for ; Thu, 26 Jun 2003 12:03:08 +0300 Received: from (gugu.konts.lv [10.10.1.171]) by card.konts.lv via smap (V2.1) id xma019442; Thu, 26 Jun 03 12:03:00 +0300 Message-ID: <3EFAB6EB.8040801@konts.lv> Date: Thu, 26 Jun 2003 12:03:39 +0300 From: Gasha User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3 X-Accept-Language: en-us MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Message display corrupted or missing in Netscape 7.0 and Mozilla 1.3 References: <3EFAB4D0.1010405@mdn.de> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-28.7 required=6.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,QUOTED_EMAIL_TEXT, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_MOZILLA_UA autolearn=ham version=2.52 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.52 (1.174.2.8-2003-03-24-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 09:04:57 -0000 X-UID: 1064 Status: O Hi Steven, It is Netscape problem. Sad, but it is. Looks like rendering process hangs while it tries to show SPAM. I have similar problem. Subject line with 8-bit characters is the worst i think. Sometimes rules aren't working at all, if message filter tries to process SPAM message. Gasha Steven Enderle wrote: > Hi, > > Now we suffer from a realy ugly problem, which was arising after the > switch from pop3. When Netscape is newly started, it works fine as > expected until Netscape displays messages corrupted or stops displaying > them completly. I also cannot forward them in that state or open or > delete them in any other way. The only way to get it working again is to > quit Netscape, exit quickstart and restart Netscape again. From enderle@mdn.de Thu Jun 26 12:22:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 85A9F239D5; Thu, 26 Jun 2003 12:22:36 +0300 (EEST) Received: from mail.mdn.de (unknown [212.114.209.20]) by danu.procontrol.fi (Postfix) with ESMTP id 6FAD223865 for ; Thu, 26 Jun 2003 12:22:33 +0300 (EEST) Received: from mdn.de (edv02.prod.nbg.dyn.mdn.de [10.0.0.122]) by mail.mdn.de (Postfix) with ESMTP id EBDA3A897; Thu, 26 Jun 2003 11:22:32 +0200 (CEST) Message-ID: <3EFABB53.1070004@mdn.de> Date: Thu, 26 Jun 2003 11:22:27 +0200 From: Steven Enderle Organization: m d n =?ISO-8859-1?Q?H=FCbner_GmbH?= User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3.1) Gecko/20030524 X-Accept-Language: de, de-de, en MIME-Version: 1.0 To: Gasha , dovecot@procontrol.fi Subject: Re: [Dovecot] Message display corrupted or missing in Netscape 7.0 and Mozilla 1.3 References: <3EFAB4D0.1010405@mdn.de> <3EFAB6EB.8040801@konts.lv> In-Reply-To: <3EFAB6EB.8040801@konts.lv> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 09:22:36 -0000 X-UID: 1065 Status: O Content-Length: 2338 Hi Gasha, thanks for your prompt answer! But sadly, spam ain't our only problem (hell, i got 660 mails in my spam folder in the last 30 days!!) and it ain't the problem for message display: It worked perfectly with popa3d! We are using that system for years now. The message display problem is limited to the yet switched workstations, all i did is configuring netscape as i have written down to do it here at our site. Some workstations are still running pop3, with no problems at all like they did always. The difference from configuring pop<->imap is following: == Skip all pop stuff, select the same server for imap. Messages are checked at startup and then every minute, empty trash on exit and "only show subscribed folders" is disabled! All other options are left as they are. The Netscape installation is absolutly identical over all workstations, even the signature. == I also still got my pop3 config running parallel (just in case), and the spam is displayed in excellent 16.x million colours and all details, with imap and also pop3. (Will i order the taiwanese soap or the mini fridge for my car?) So the spam mail ain't the problem. I am sure, the problem must be somewhere between netscape, dovecot or the chair i am sitting in. Steven -- -------------------------------------------------- ----- Steven Enderle ----- m d n Huebner GmbH ---- ----- enderle@mdn.de ----- + 49 911 93 90 90 ----- ----- Digital Imaging & Documentmanagment ----- -------------------------------------------------- Gasha wrote: > Hi Steven, > > It is Netscape problem. Sad, but it is. > > Looks like rendering process hangs while it tries to show SPAM. > I have similar problem. Subject line with 8-bit characters is the worst > i think. Sometimes rules aren't working at all, if message filter tries > to process SPAM message. > > Gasha > > Steven Enderle wrote: > >> Hi, >> >> Now we suffer from a realy ugly problem, which was arising after the >> switch from pop3. When Netscape is newly started, it works fine as >> expected until Netscape displays messages corrupted or stops >> displaying them completly. I also cannot forward them in that state or >> open or delete them in any other way. The only way to get it working >> again is to quit Netscape, exit quickstart and restart Netscape again. > > From tss@iki.fi Thu Jun 26 15:30:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 51F68239DA; Thu, 26 Jun 2003 15:30:26 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D9275239D4 for ; Thu, 26 Jun 2003 15:30:22 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2DA325C896C9 for ; Thu, 26 Jun 2003 15:30:13 +0300 (EEST) Subject: Re: [Dovecot] Message display corrupted or missing in Netscape 7.0 and Mozilla 1.3 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3EFAB4D0.1010405@mdn.de> References: <3EFAB4D0.1010405@mdn.de> Content-Type: text/plain Message-Id: <1056630612.7582.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 26 Jun 2003 15:30:12 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 12:30:26 -0000 X-UID: 1066 Status: O Content-Length: 2691 On Thu, 2003-06-26 at 11:54, Steven Enderle wrote: > a few days ago, we switched our site from pop3 to imap. We are running > about 20 users with Netscape 7.0 on a FreeBSD-4.8 Server . Isn't Netscape 7's mail pretty much the same as Mozilla's mail? > Now we suffer from a realy ugly problem, which was arising after the > switch from pop3. When Netscape is newly started, it works fine as > expected until Netscape displays messages corrupted or stops displaying > them completly. I also cannot forward them in that state or open or > delete them in any other way. The only way to get it working again is to > quit Netscape, exit quickstart and restart Netscape again. Hmm. It might help if you showed what exactly Dovecot was sending to Netscape. See http://dovecot.procontrol.fi/bugreport.html#sniffing If it's Dovecot's fault, I can think of only two reasons: a) Dovecot doesn't detect that mbox was changed and doesn't synchronize it, and it starts reading messages from wrong location. I haven't noticed problems with this myself and I've been using Dovecot with mbox for almost a year now. Maybe some other program touches the mbox in a way Dovecot doesn't understand. b) mbox support still doesn't behave fully as IMAP RFC requires. Message headers may change (not permitted) and so message size may not be exactly correct (not permitted either). I doubt Netscape really cares about these though. Or maybe it's something completely different. I can't say really. > email starting with header, raw html email and encoded attachment is > shown below, each line followed by another blank line, like this: > > == start corrupted email > X-UIDL: 8793f170f0430909 > > Return-Path: Was there any other corruption than extra empty lines? Is there ever any other corruption? > I like dovecot a lot, it was easy to install etc and works pretty fine > except that it still seems to be in beta-stage. Now i would switch to > courier/uw-imap until dovecot is ready, but the mbox format dovecot is > using seems to be pretty uniq? I think, the users could keep their > /var/mail/Username-INBOX, but wouldn't they loose their email folders? > Is there any way to switch the software in a easy way? Or will there be > a near future release which will fix that? What about the cvs version? You should be able to switch between UW-IMAP and Dovecot easily. Only difference is that Dovecot saves mailbox subscriptions to ~/mail/.subscriptions and UW-IMAP to ~/.mailboxlist. And also that Dovecot shows only mailboxes under ~/mail by default, UW-IMAP shows everything under ~/. The ".imap" directories that Dovecot creates can be deleted without any data loss. From tss@iki.fi Thu Jun 26 15:33:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0DEA7239DD; Thu, 26 Jun 2003 15:33:09 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 85C3D239DC for ; Thu, 26 Jun 2003 15:33:07 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 38EA25C896C9 for ; Thu, 26 Jun 2003 15:33:07 +0300 (EEST) Subject: Re: [Dovecot] mutt and dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030626032334.GA24909@lazy.spodder.com> References: <20030626032334.GA24909@lazy.spodder.com> Content-Type: text/plain Message-Id: <1056630786.7582.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 26 Jun 2003 15:33:07 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 12:33:09 -0000 X-UID: 1067 Status: O On Thu, 2003-06-26 at 06:23, Charlie Allom wrote: > Hi, > > I setup squirrelmail with dovecot and everything worked. I moved users > Maildir directores to ~/Maildir/INBOX.directory/ and updated the > .subscriptions file to something like ^INBOX.directory Why do you want to prefix them with "INBOX."? You can configure squirrelmail not to require that. > I am not sure that courier-imapd does this sort of munging? Courier prefixes them internally with "INBOX.". > cd ~/Maildir ; for i in * ; do ln -s $i .INBOX.$i ; done Do you mean this creates .INBOX.INBOX.mailbox symlinks? From charlie@rubberduck.com Thu Jun 26 15:40:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C71CE239DE; Thu, 26 Jun 2003 15:40:46 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id B4996239DD for ; Thu, 26 Jun 2003 15:40:42 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 7E088907C; Thu, 26 Jun 2003 22:41:00 +1000 (EST) Date: Thu, 26 Jun 2003 22:41:00 +1000 From: Charlie Allom To: Timo Sirainen Subject: Re: [Dovecot] mutt and dovecot Message-ID: <20030626124100.GL25297@lazy.spodder.com> References: <20030626032334.GA24909@lazy.spodder.com> <1056630786.7582.22.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1056630786.7582.22.camel@hurina> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 12:40:46 -0000 X-UID: 1068 Status: O Content-Length: 1190 On Thu, Jun 26, 2003 at 03:33:07PM +0300, Timo Sirainen wrote: > On Thu, 2003-06-26 at 06:23, Charlie Allom wrote: > > Hi, > > > > I setup squirrelmail with dovecot and everything worked. I moved users > > Maildir directores to ~/Maildir/INBOX.directory/ and updated the > > .subscriptions file to something like ^INBOX.directory > > Why do you want to prefix them with "INBOX."? You can configure > squirrelmail not to require that. I don't, squirrelmail just picked that up. > > I am not sure that courier-imapd does this sort of munging? > > Courier prefixes them internally with "INBOX.". Right. > > > cd ~/Maildir ; for i in * ; do ln -s $i .INBOX.$i ; done > > Do you mean this creates .INBOX.INBOX.mailbox symlinks? > My usual layout is Maildir/new Maildir/cur Maildir/tmp Maildir/dovecot/ Maildir/dovecot/new Maildir/dovecot/cur Maildir/dovecot/tmp But I've had to alias Maildir/dovecot to Maildir/.INBOX.dovecot/ Is this not normal? Where did my dovecot get this behaviour of only reading .INBOX* directories from then? :) C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From enderle@mdn.de Thu Jun 26 15:53:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BA734239E5; Thu, 26 Jun 2003 15:53:32 +0300 (EEST) Received: from mail.mdn.de (unknown [212.114.209.20]) by danu.procontrol.fi (Postfix) with ESMTP id 36B6F239DA for ; Thu, 26 Jun 2003 15:53:30 +0300 (EEST) Received: from mdn.de (edv02.prod.nbg.dyn.mdn.de [10.0.0.122]) by mail.mdn.de (Postfix) with ESMTP id 384D5A897; Thu, 26 Jun 2003 14:53:27 +0200 (CEST) Message-ID: <3EFAECC1.2080809@mdn.de> Date: Thu, 26 Jun 2003 14:53:21 +0200 From: Steven Enderle Organization: m d n =?ISO-8859-1?Q?H=FCbner_GmbH?= User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3.1) Gecko/20030524 X-Accept-Language: de, de-de, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] Message display corrupted or missing in Netscape 7.0 and Mozilla 1.3 References: <3EFAB4D0.1010405@mdn.de> <1056630612.7582.19.camel@hurina> In-Reply-To: <1056630612.7582.19.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 12:53:32 -0000 X-UID: 1069 Status: O Content-Length: 4762 Hello Timo! yes, Mozilla and Netscape are almost the same. There is hardly any difference except logos and instant messaging and stuff... I will sniff the communication as soon as i have time to install a sniffer. > If it's Dovecot's fault, I can think of only two reasons: > > a) Dovecot doesn't detect that mbox was changed and doesn't synchronize > it, and it starts reading messages from wrong location. I haven't > noticed problems with this myself and I've been using Dovecot with mbox > for almost a year now. Maybe some other program touches the mbox in a > way Dovecot doesn't understand. There are two other programms working with the mbox directly (postfix though procmail and popa3d - popa3d never at the same time as dovecot), but the corruption also happens in my subfolders, where only dovecot is working. > b) mbox support still doesn't behave fully as IMAP RFC requires. Message > headers may change (not permitted) and so message size may not be > exactly correct (not permitted either). I doubt Netscape really cares > about these though. I just had some heavy problems with email attachments. It saved just a few bytes of my attachments, sometimes 5KB or 20KB of 66KB, sometimes it saved a null file. i can't really say why, but that happened again and again, i had to open netscape and forward the mail to my second workstation without doing something else or i had to restart netscape completly (e.g. when opening the attachment for reading or saving it). What makes me wondering is, the other workstation is also using the same imap server. Ok, that was another corruption i saw, but i guess its related to the corrupted email thing. Steven -- -------------------------------------------------- ----- Steven Enderle ----- m d n Huebner GmbH ---- ----- enderle@mdn.de ----- + 49 911 93 90 90 ----- ----- Digital Imaging & Documentmanagment ----- -------------------------------------------------- Timo Sirainen wrote: > On Thu, 2003-06-26 at 11:54, Steven Enderle wrote: > >>a few days ago, we switched our site from pop3 to imap. We are running >>about 20 users with Netscape 7.0 on a FreeBSD-4.8 Server . > > > Isn't Netscape 7's mail pretty much the same as Mozilla's mail? > > >>Now we suffer from a realy ugly problem, which was arising after the >>switch from pop3. When Netscape is newly started, it works fine as >>expected until Netscape displays messages corrupted or stops displaying >>them completly. I also cannot forward them in that state or open or >>delete them in any other way. The only way to get it working again is to >>quit Netscape, exit quickstart and restart Netscape again. > > > Hmm. It might help if you showed what exactly Dovecot was sending to > Netscape. See http://dovecot.procontrol.fi/bugreport.html#sniffing > > If it's Dovecot's fault, I can think of only two reasons: > > a) Dovecot doesn't detect that mbox was changed and doesn't synchronize > it, and it starts reading messages from wrong location. I haven't > noticed problems with this myself and I've been using Dovecot with mbox > for almost a year now. Maybe some other program touches the mbox in a > way Dovecot doesn't understand. > > b) mbox support still doesn't behave fully as IMAP RFC requires. Message > headers may change (not permitted) and so message size may not be > exactly correct (not permitted either). I doubt Netscape really cares > about these though. > > Or maybe it's something completely different. I can't say really. > > >>email starting with header, raw html email and encoded attachment is >>shown below, each line followed by another blank line, like this: >> >>== start corrupted email >>X-UIDL: 8793f170f0430909 >> >>Return-Path: > > > Was there any other corruption than extra empty lines? Is there ever any > other corruption? > > >>I like dovecot a lot, it was easy to install etc and works pretty fine >>except that it still seems to be in beta-stage. Now i would switch to >>courier/uw-imap until dovecot is ready, but the mbox format dovecot is >>using seems to be pretty uniq? I think, the users could keep their >>/var/mail/Username-INBOX, but wouldn't they loose their email folders? >>Is there any way to switch the software in a easy way? Or will there be >>a near future release which will fix that? What about the cvs version? > > > You should be able to switch between UW-IMAP and Dovecot easily. Only > difference is that Dovecot saves mailbox subscriptions to > ~/mail/.subscriptions and UW-IMAP to ~/.mailboxlist. And also that > Dovecot shows only mailboxes under ~/mail by default, UW-IMAP shows > everything under ~/. The ".imap" directories that Dovecot creates can be > deleted without any data loss. > From tss@iki.fi Thu Jun 26 16:47:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 55BF1239D2; Thu, 26 Jun 2003 16:47:17 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7A33D239D0 for ; Thu, 26 Jun 2003 16:47:11 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3214B5C896C9 for ; Thu, 26 Jun 2003 16:47:11 +0300 (EEST) Subject: Re: [Dovecot] mutt and dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030626124100.GL25297@lazy.spodder.com> References: <20030626032334.GA24909@lazy.spodder.com> <20030626124100.GL25297@lazy.spodder.com> Content-Type: text/plain Message-Id: <1056635230.7582.79.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 26 Jun 2003 16:47:11 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 13:47:17 -0000 X-UID: 1070 Status: O On Thu, 2003-06-26 at 15:41, Charlie Allom wrote: > But I've had to alias Maildir/dovecot to Maildir/.INBOX.dovecot/ > > Is this not normal? Where did my dovecot get this behaviour of only > reading .INBOX* directories from then? :) That's just a setting in IMAP clients. Some have set their defaults to prefix all mailbox names with "INBOX.", since that's what Courier and Cyrus defaults to. imap_home_namespace="" with mutt should work (I thought it was default?), and in squirrelmail's config it's in Folder Defaults -> Default folder prefix. From spectron@coqui.net Thu Jun 26 17:24:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 18DCA239D6; Thu, 26 Jun 2003 17:24:35 +0300 (EEST) Received: from mail.coqui.net (emailgw.coqui.net [196.28.61.10]) by danu.procontrol.fi (Postfix) with SMTP id CB5D4239D5 for ; Thu, 26 Jun 2003 17:24:32 +0300 (EEST) Received: from unknown(66.50.169.100) by mail.coqui.net via csmap id 24944; Thu, 26 Jun 2003 10:07:14 -0400 (AST) Message-ID: <002601c33bee$a911b0f0$080aa8c0@PAVILION> From: "Spectron International, Inc." To: "Dovecot List" Date: Thu, 26 Jun 2003 10:24:31 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Subject: [Dovecot] Dovecot and file permissions X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 14:24:35 -0000 X-UID: 1071 Status: O Content-Length: 1916 I have some questions about some parameters in dovecot.conf, I have them configured as this: # User to use for the login process. The user must belong to a group where # only it has access, it's used to control access for authentication process # named sockets login_user=postfix # User to use for the process. Only shadow and pam authentication requires # roots, so use something else if possible auth_user=postfix It seems to me that all files created and used by Dovecot as long as they were created by the postfix user, they would be accesible. Right? My maildir shows as this: drw------- 6 postfix postdrop 65 Jun 26 09:40 Maildir so I guess postfix has full access to the maildir. Wouldn't setting login_user and auth_user to postfix let Dovecot access the Maildir? In the logs I get permission errors, if I chmod to 777 it works ok. This is what I get in the logs: Jun 26 09:24:23 backup imap(f_rojas): opendir(/opt/mail/f_rojas/Maildir) failed: Permission denied Jun 26 09:24:31 backup imap(f_rojas): stat(/opt/mail/f_rojas/Maildir/.Drafts) failed: Permission denied Jun 26 09:24:31 backup imap(f_rojas): lstat(/opt/mail/f_rojas/Maildir/cur) failed: Permission denied Jun 26 09:24:31 backup imap(f_rojas): stat(/opt/mail/f_rojas/Maildir/.Sent Items) failed: Permission denied Jun 26 09:24:31 backup imap(f_rojas): lstat(/opt/mail/f_rojas/Maildir/cur) failed: Permission denied Jun 26 09:26:52 backup imap(f_rojas): lstat(/opt/mail/f_rojas/Maildir/cur) failed: Permission denied Jun 26 10:06:09 backup imap(f_rojas): lstat(/opt/mail/f_rojas/Maildir/cur) failed: Permission denied Jun 26 10:06:15 backup imap(f_rojas): opendir(/opt/mail/f_rojas/Maildir) failed: Permission denied Jun 26 10:08:38 backup imap(f_rojas): opendir(/opt/mail/f_rojas/Maildir) failed: Permission denied Jun 26 10:13:03 backup imap(f_rojas): stat(/opt/mail/f_rojas/Maildir/.Sent Items) failed: Permission denied Faw From tss@iki.fi Thu Jun 26 17:44:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 16673239DA; Thu, 26 Jun 2003 17:44:15 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1A40D239D6 for ; Thu, 26 Jun 2003 17:44:13 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D462D5C896C9 for ; Thu, 26 Jun 2003 17:44:12 +0300 (EEST) Subject: Re: [Dovecot] Dovecot and file permissions From: Timo Sirainen To: Dovecot List In-Reply-To: <002601c33bee$a911b0f0$080aa8c0@PAVILION> References: <002601c33bee$a911b0f0$080aa8c0@PAVILION> Content-Type: text/plain Message-Id: <1056638652.28625.85.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 26 Jun 2003 17:44:12 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 14:44:15 -0000 X-UID: 1072 Status: O Content-Length: 1427 On Thu, 2003-06-26 at 17:24, Spectron International, Inc. wrote: > I have some questions about some parameters in dovecot.conf, I have them > configured as this: > > # User to use for the login process. The user must belong to a group where > # only it has access, it's used to control access for authentication process > # named sockets > login_user=postfix Don't, keep this as "dovecot" or something similiar. It really doesn't need any privileges. It just needs some dummy user under which it runs. > # User to use for the process. Only shadow and pam authentication requires > # roots, so use something else if possible > auth_user=postfix auth_user only needs access to your user/password database. Probably something else than postfix. > It seems to me that all files created and used by Dovecot as long as they > were created by the postfix user, they would be accesible. Right? My maildir > shows as this: > > drw------- 6 postfix postdrop 65 Jun 26 09:40 Maildir > > so I guess postfix has full access to the maildir. Wouldn't setting > login_user and auth_user to postfix let Dovecot access the Maildir? auth_user and login_user have nothing to do with actually accessing the mail. You should preferrably have a separate UID for each user in the system. The UIDs that are used to access mail are specified in the authentication database. What are you using (auth_passdb and auth_userdb settings)? From tss@iki.fi Thu Jun 26 19:21:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 81B3F239D6; Thu, 26 Jun 2003 19:21:07 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7C9EC239D5 for ; Thu, 26 Jun 2003 19:21:02 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 062215C896C9 for ; Thu, 26 Jun 2003 19:21:02 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1056644461.28625.114.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 26 Jun 2003 19:21:01 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] 0.99.10 released X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 16:21:07 -0000 X-UID: 1073 Status: O Content-Length: 1956 No bug reports since rc4, so here it is. v0.99.10 2003-06-26 Timo Sirainen * Default PAM service name changed to "dovecot". This means that if you're using PAM, you most likely have to do mv /etc/pam.d/imap /etc/pam.d/dovecot If you wish to keep using imap, see doc/auth.txt. * ~/rawlog directory changed to ~/dovecot.rawlog + Faster and better maildir synchronization. We support read-only maildirs and out-of-quota conditions are handled a lot better. dovecot-uidlist file still isn't out-of-quota-safe though, but you can keep it in another location where quota isn't checked. For example: default_mail_env = Maildir:~/Maildir: INDEX=/noquota/%u:CONTROL=/noquota/%u + Read-only mboxes are supported now. + Only NOOP and CHECK now always do a mailbox sync checking. Other commands sync max. once in 5 seconds, plus always from indexes. This should reduce I/O a bit. + All NUL characters are translated to ascii #128 before sending to client. RFC prohibits sending NULs and this is how UW-IMAP handles it as well. + Make ENVELOPE, BODY and BODYSTRUCTURE replies more compact by removing multiple LWSPs and translating TABs to spaces. RFC doesn't specifically require this, but this seems to be the wanted behaviour.. + Added ANONYMOUS SASL mechanism. + More flexible user chrooting configuration in home directories: "/./" + Added support for dynamically loadable IMAP/POP3 modules. See INSTALL file for more information. - Partial fetches were broken if mails had CR+LF linefeeds - SEARCH DELETED didn't return anything if all messages were deleted - OpenSSL support was broken in many installations because we were chrooted and it couldn't open /dev/urandom. - PAM: Giving wrong password blocked the whole process for two seconds. Now we create a new process for each check. - Lots of other smaller bugfixes and better error handling From rdcates@xpowerhosting.com Fri Jun 27 00:09:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CB04D239D6; Fri, 27 Jun 2003 00:09:23 +0300 (EEST) Received: from ws1.xpowerhosting.com (unknown [63.238.110.18]) by danu.procontrol.fi (Postfix) with SMTP id D9E0C239D5 for ; Fri, 27 Jun 2003 00:09:15 +0300 (EEST) Received: (qmail 7183 invoked by uid 0); 26 Jun 2003 21:08:22 -0000 Received: from unknown (HELO OFFICE) (66.156.149.185) by ws1.xpowerhosting.com with SMTP; 26 Jun 2003 21:08:22 -0000 From: "Roger Cates" To: Date: Thu, 26 Jun 2003 16:08:55 -0500 Message-ID: <002501c33c27$2784c6b0$0301a8c0@OFFICE> X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.2616 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Importance: Normal Subject: [Dovecot] HELP X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 21:09:24 -0000 X-UID: 1074 Status: O Content-Length: 17128 I am including my config.log in the hopes that someone can tell me what is going on with dovecot installing on Mac OSX 10.2.6 Sincerely,   Roger Cates, CCNA Vice President & Chief Technical Officer Xpower Internet, LLC Xpowerhosting.com | Xpoweronline.com P 888.245.7501 | F 270.338.4602 Internet to the power of X.   begin 666 dovecot_config.log M5&AI2!M97-S86=E2!C M;VUP:6QE7-T96T@='EP90IC M;VYF:6=U IC;VYF:6=U&-E<'1I;VYS("UC(&-O;F9T97-T+F,@(&-O;F9T97-T+F,@,3XF-0IC;VYF M:6=U6YA;6EC(&QI;FME'!L:6-I=&QY(&QI;FME9"!I;@IC;VYF:6=U"]M;6%N+F@* M8V]N9FEG=7)E.C8T-#(Z(&-H96-K:6YG(&9O7,O7,O=&EM92YH"F-O;F9I9W5R M93HV-SDP.B!C:&5C:VEN9R!F;W(@6YC"F-O;F9I9W5R93HW,#(U.B!C:&5C:VEN9R!F;W(@ M9F1A=&%S>6YC(&EN("ULF4*8V]N9FEG=7)E.CF4@;V8@;&]N9PIC;VYF:6=U MF4@;V8@;&]N9R!L;VYG"F-O;F9I9W5R93HW,S@S M.B!C:&5C:VEN9R!T>7!E(&]F(&]F9E]T"F-O;F9I9W5R93HW-#$Y.B!G8V,@ M+6,@+6<@+4\R("U786QL("U7("U7;6ESPH*"2 @<')I;G1F*"(E;&0B+" H M;V9F7W0I,"D["@D*.R!R971U7!E7,O='EP97,N:#X*"2 @(VEN8VQU9&4@/'-T M9&EO+F@^"@D*:6YT(&UA:6XH*2!["@H)("!P7!E7!EF5?="!I&ET)PIC;VYF:6=U M7!E MPH@(" @+RH@&ET*"AS:7IE7W0I*&EN="DM,2 \/2 P(#\@," Z M(#$I.PH@('T*"F-O;F9I9W5R93HW-C0U.B!C:&5C:VEN9R!T>7!E(&]F('-S M:7IE7W0*8V]N9FEG=7)E.C7!E7,O='EP97,N:#X*"2 @ M(VEN8VQU9&4@/'-T9&EO+F@^"@D*:6YT(&UA:6XH*2!["@H)("!P7!E(&%R9R H87)G(#(I"F-O;F9I9W5R M93H@9F%I;&5D('!R;V=R86T@=V%S.@HC;&EN92 W-C8Y(")C;VYF:6=U7!E M7!E7,O=&EM92YH/@H@("-I;F-L=61E(#QS>7,OPH*("!S=')U8W0@7!E7!EPH*("!M"!C;VUP871I8FQE('-E;F1F:6QE*"D*8V]N9FEG=7)E.C@R-C Z(&=C M8R M8R M9R M3S(@+5=A;&P@+5<@+5=M:7-S:6YG+7!R;W1O='EP97,@+5=M M:7-S:6YG+61E8VQAF4@;V8@8&AD='(G(&ES;B=T(&MN;W=N"F-O;F9I9W5R93HX M,CDQ.B!W87)N:6YG.B!I;7!L:6-I="!D96-L87)A=&EO;B!O9B!F=6YC=&EO M;B!@7,O='EP97,N:#X*(" @("-I;F-L=61E(#QS M>7,O2!V86QU90IC;VYF:6=U7!T(&EN("UL8W)Y<'0*8V]N9FEG=7)E.CDS-#,Z(&-H M96-K:6YG(&9O X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E7202239D6; Fri, 27 Jun 2003 01:05:07 +0300 (EEST) Received: from piranha.intra.jungledrum.co.nz (ns1.jungledrum.co.nz [210.54.149.34]) by danu.procontrol.fi (Postfix) with ESMTP id 934C4239D2 for ; Fri, 27 Jun 2003 01:05:03 +0300 (EEST) Received: from piranha (localhost.localdomain [127.0.0.1]) by piranha.intra.jungledrum.co.nz (Postfix) with SMTP id C1F1C15005 for ; Fri, 27 Jun 2003 10:04:55 +1200 (NZST) Date: Fri, 27 Jun 2003 10:04:54 +1200 From: Zach Bagnall To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10 released - Gentoo Message-Id: <20030627100454.1074d03a.zach.bagnall@bulletinwireless.com> In-Reply-To: <1056644461.28625.114.camel@hurina> References: <1056644461.28625.114.camel@hurina> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.8.11claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.ispoQ7Mivl?8CY" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jun 2003 22:05:08 -0000 X-UID: 1075 Status: O --=.ispoQ7Mivl?8CY Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi all. Well done Timo & Co for getting to this stage! Updated ebuild for 0.99.10 is at http://bugs.gentoo.org/show_bug.cgi?id=22080 Added a warning about the PAM profile name change. I'm running this on my home server with SSL and it looks good :-) Zach. On 26 Jun 2003 19:21:01 +0300, Timo Sirainen wrote: > No bug reports since rc4, so here it is. [snip] -- Services & Support Bulletin Wireless | www.bulletinwireless.com This email is digitally signed | Key ID 0x3F9AA9A2 --=.ispoQ7Mivl?8CY Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE++24G4jDFYT+aqaIRAlZnAKCskFNTpwZzO/COqgH36aNYrHGh8QCdHmHF CpsAf4s0wtQdsm2X0CaTysk= =L1DJ -----END PGP SIGNATURE----- --=.ispoQ7Mivl?8CY-- From enderle@mdn.de Fri Jun 27 08:53:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 76077239D6; Fri, 27 Jun 2003 08:53:38 +0300 (EEST) Received: from mail.mdn.de (unknown [212.114.209.20]) by danu.procontrol.fi (Postfix) with ESMTP id C202F239D2 for ; Fri, 27 Jun 2003 08:53:35 +0300 (EEST) Received: from mdn.de (edv02.prod.nbg.dyn.mdn.de [10.0.0.122]) by mail.mdn.de (Postfix) with ESMTP id 401FFA897; Fri, 27 Jun 2003 07:53:35 +0200 (CEST) Message-ID: <3EFBDBD9.1030006@mdn.de> Date: Fri, 27 Jun 2003 07:53:29 +0200 From: Steven Enderle Organization: m d n =?ISO-8859-1?Q?H=FCbner_GmbH?= User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3.1) Gecko/20030524 X-Accept-Language: de, de-de, en MIME-Version: 1.0 To: Steven Enderle Subject: Re: [Dovecot] Message display corrupted or missing in Netscape 7.0 and Mozilla 1.3 References: <3EFAB4D0.1010405@mdn.de> <1056630612.7582.19.camel@hurina> <3EFAECC1.2080809@mdn.de> In-Reply-To: <3EFAECC1.2080809@mdn.de> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: Timo Sirainen cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Jun 2003 05:53:38 -0000 X-UID: 1076 Status: O Content-Length: 10949 Hello Timo, Hello List, I just sniffed the communication between Netscape and Dovecot and I catched the error! It seems like dovecot returns different sizes for the same mail: This mail is displayed correct and the dovecot returns it like this: * 268 FETCH (UID 542 RFC822.SIZE 2989 BODY[] {2989}..Return-Path: The corrupted one starts like this: * 268 FETCH (UID 542 FLAGS (\Seen) RFC822.SIZE 2975 BODY[] {2975}.. continuing in next packet (There is data missing): eturn-Path: .Delivered-To: enderle@mdn.de.Received: by Also, sometimes there seems to be data from the imap protocol appended to the email, i think its the next byte after the email [one ")"]! I saw it often appended to someones signatures and was wondering if it belongs there. As i have seen the raw text going over the line now, i am sure it doesn't belong to the email. Can i do something more to discribe that problem? Is it a bug in Netscape or Dovecot? I attached you the stuff i sniffed after the mail... Regards Steven START CORRUPT MESSAGE # ./ngrep -A tcp port 143 interface: xl0 (212.202.153.176/255.255.255.248) filter: ip and ( port 143 ) # T 10.0.0.122:49510 -> 10.0.2.179:143 [AP] 5 UID fetch 542 (UID RFC822.SIZE BODY[]).. # T 10.0.2.179:143 -> 10.0.0.122:49510 [AP] * 268 FETCH (UID 542 FLAGS (\Seen) RFC822.SIZE 2975 BODY[] {2975}.. # T 10.0.2.179:143 -> 10.0.0.122:49510 [A] eturn-Path: .Delivered-To: enderle@mdn.de.Received: by mail.mdn.de (Postfix, fro m userid 0)..id 50682A898; Fri, 27 Jun 2003 03:04:18 +0200 (CEST).To: root@mdn.de.Subject: md n.de security check output.Message-Id: <20030627010418.50682A898@mail.mdn.de>.Date: Fri, 27 J un 2003 03:04:18 +0200 (CEST).From: root@mdn.de (root).Content-Length: 2485.Status: O.X-UID: 542.X-Keywords: ..Checking setuid files and devices:......Checking for uids of 0:..root 0..toor 0......Checking for passwordless accounts:......mdn.de kernel log messages:..> Jun 2 6 11:04:06 mdn login: ROOT LOGIN (root) ON ttyv0..> Jun 26 13:33:27 mdn su: enderle to root o n /dev/ttyp0..> Jun 26 15:03:49 mdn login: ROOT LOGIN (root) ON ttyv0..> Jun 26 15:30:16 mdn su: BAD SU enderle to root on /dev/ttyp2..> Jun 26 15:30:18 mdn su: enderle to root on /dev/t typ2..> xl0: promiscuous mode enabled..> Jun 26 15:30:58 mdn /kernel: xl0: promiscuous mode e nabled..> xl0: promiscuous mode disabled..> Jun 26 15:31:00 mdn /kernel: xl0: promiscuous mod e disabled..> xl0: promiscuous mode enabled..> Jun 26 15:31:23 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuous mode disabled..> Jun 26 15:32:24 mdn /kernel: xl0: promiscuo us mode disabled..> xl0: promiscuous mode enabled..> Jun 26 15:33:23 mdn /kernel: xl0: promis cuous mode enabled..> xl0: promiscuous mode disabled. # T 10.0.2.179:143 -> 10.0.0.122:49510 [A] .> Jun 26 15:33:39 mdn /kernel: xl0: promiscuous mode disabled..> xl0: promiscuous mode enabl ed..> Jun 26 15:33:42 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuous mode dis abled..> Jun 26 15:33:48 mdn /kernel: xl0: promiscuous mode disabled..> xl0: promiscuous mode enabled..> Jun 26 15:33:51 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuous mo de disabled..> Jun 26 15:33:52 mdn /kernel: xl0: promiscuous mode disabled..> xl0: promiscuou s mode enabled..> Jun 26 15:34:37 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscu ous mode disabled..> Jun 26 15:34:47 mdn /kernel: xl0: promiscuous mode disabled..> xl0: prom iscuous mode enabled..> Jun 26 15:35:03 mdn /kernel: xl0: promiscuous mode enabled..> xl0: pr omiscuous mode disabled..> Jun 26 15:35:07 mdn /kernel: xl0: promiscuous mode disabled..> xl0 : promiscuous mode enabled..> Jun 26 15:35:36 mdn /kernel: xl0: promiscuous mode enabled..> x l0: promiscuous mode disabled..> Jun 26 15:35:40 mdn /kernel: xl0: promiscuous mode disabled. .> xl0: promiscuous mode enabled..> Jun 26 15:35:41 mdn /kernel: xl0: promiscuous mode enable d..> xl0: promiscuous mode disabled..> Jun 26 15:42:08 mdn /kernel: xl0: promiscuous mode dis abled..> Jun 26 15:44:11 mdn su: enderle to root on /dev/ttyp3..> xl0: promiscuous mode enabl ed..> Jun 26 15:44:14 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuous mode dis abled..> Jun 26 15:45:37 mdn /kernel: xl0: promiscuou ### T 10.0.2.179:143 -> 10.0.0.122:49510 [AP] s mode disabled......mdn.de login failures:......mdn.de refused connections:.. ## T 10.0.2.179:143 -> 10.0.0.122:49510 [AP] )..5 OK Fetch completed... ## T 10.0.0.122:64953 -> 10.0.2.179:143 [AP] 1885 noop.. # T 10.0.0.122:64931 -> 10.0.2.179:143 [AP] 2013 noop.. # T 10.0.2.179:143 -> 10.0.0.122:64953 [AP] 1885 OK NOOP completed... # T 10.0.2.179:143 -> 10.0.0.122:64931 [AP] 2013 OK NOOP completed... # T 10.0.0.122:64953 -> 10.0.2.179:143 [AP] 1886 UID fetch 60:* (FLAGS).. # T 10.0.0.122:64931 -> 10.0.2.179:143 [AP] 2014 UID fetch 725:* (FLAGS).. # T 10.0.2.179:143 -> 10.0.0.122:64953 [AP] * 29 FETCH (UID 59 FLAGS (\Recent))..1886 OK Fetch completed... # T 10.0.2.179:143 -> 10.0.0.122:64931 [AP] * 121 FETCH (UID 724 FLAGS (\Recent))..2014 OK Fetch completed... ##^Cexit 152 received, 0 dropped END CORRUPT MESSAGE START CORRECT MESSAGE # ./ngrep -A tcp port 143 interface: xl0 (212.202.153.176/255.255.255.248) filter: ip and ( port 143 ) # T 10.0.0.122:49520 -> 10.0.2.179:143 [AP] 4 UID fetch 542 (UID RFC822.SIZE BODY[]).. ## T 10.0.2.179:143 -> 10.0.0.122:49520 [A] * 268 FETCH (UID 542 RFC822.SIZE 2989 BODY[] {2989}..Return-Path: ..Delivered-To : enderle@mdn.de..Received: by mail.mdn.de (Postfix, from userid 0)...id 50682A898; Fri, 27 J un 2003 03:04:18 +0200 (CEST)..To: root@mdn.de..Subject: mdn.de security check output..Messag e-Id: <20030627010418.50682A898@mail.mdn.de>..Date: Fri, 27 Jun 2003 03:04:18 +0200 (CEST)..F rom: root@mdn.de (root)..Content-Length: 2485..Status: RO..X-UID: 542..X-Keywords: ....C hecking setuid files and devices:......Checking for uids of 0:..root 0..toor 0......Checking for passwordless accounts:......mdn.de kernel log messages:..> Jun 26 11:04:06 mdn login: ROO T LOGIN (root) ON ttyv0..> Jun 26 13:33:27 mdn su: enderle to root on /dev/ttyp0..> Jun 26 15 :03:49 mdn login: ROOT LOGIN (root) ON ttyv0..> Jun 26 15:30:16 mdn su: BAD SU enderle to roo t on /dev/ttyp2..> Jun 26 15:30:18 mdn su: enderle to root on /dev/ttyp2..> xl0: promiscuous mode enabled..> Jun 26 15:30:58 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuou s mode disabled..> Jun 26 15:31:00 mdn /kernel: xl0: promiscuous mode disabled..> xl0: promis cuous mode enabled..> Jun 26 15:31:23 mdn /kernel: xl0: promiscuous mode enabled..> xl0: prom iscuous mode disabled..> Jun 26 15:32:24 mdn /kernel: xl0: promiscuous mode disabled..> xl0: promiscuous mode enabled..> Jun 26 15:33:23 mdn /kern # T 10.0.2.179:143 -> 10.0.0.122:49520 [A] el: xl0: promiscuous mode enabled..> xl0: promiscuous mode disabled..> Jun 26 15:33:39 mdn /k ernel: xl0: promiscuous mode disabled..> xl0: promiscuous mode enabled..> Jun 26 15:33:42 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuous mode disabled..> Jun 26 15:33:48 mdn /kernel: xl0: promiscuous mode disabled..> xl0: promiscuous mode enabled..> Jun 26 15:33: 51 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuous mode disabled..> Jun 26 15: 33:52 mdn /kernel: xl0: promiscuous mode disabled..> xl0: promiscuous mode enabled..> Jun 26 15:34:37 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuous mode disabled..> Jun 26 15:34:47 mdn /kernel: xl0: promiscuous mode disabled..> xl0: promiscuous mode enabled..> J un 26 15:35:03 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuous mode disabled.. > Jun 26 15:35:07 mdn /kernel: xl0: promiscuous mode disabled..> xl0: promiscuous mode enable d..> Jun 26 15:35:36 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuous mode disa bled..> Jun 26 15:35:40 mdn /kernel: xl0: promiscuous mode disabled..> xl0: promiscuous mode enabled..> Jun 26 15:35:41 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promiscuous mod e disabled..> Jun 26 15:42:08 mdn /kernel: xl0: promiscuous mode disabled..> Jun 26 15:44:11 mdn su: enderle to root on /dev/ttyp3..> xl0: promiscuous mode enabled..> Jun 26 15:44:14 mdn /kernel: xl0: promiscuous mode enabled..> xl0: promi # T 10.0.2.179:143 -> 10.0.0.122:49520 [AP] scuous mode disabled..> Jun 26 15:45:37 mdn /kernel: xl0: promiscuous mode disabled......mdn. de login failures:......mdn.de refused connections:..)..4 OK Fetch completed... ##^Cexit 49 received, 0 dropped END CORRECT MESSAGE Steven Enderle wrote: > Hello Timo! > > yes, Mozilla and Netscape are almost the same. There is hardly any > difference except logos and instant messaging and stuff... > > I will sniff the communication as soon as i have time to install a sniffer. > > > If it's Dovecot's fault, I can think of only two reasons: > > > > a) Dovecot doesn't detect that mbox was changed and doesn't synchronize > > it, and it starts reading messages from wrong location. I haven't > > noticed problems with this myself and I've been using Dovecot with mbox > > for almost a year now. Maybe some other program touches the mbox in a > > way Dovecot doesn't understand. > > There are two other programms working with the mbox directly (postfix > though procmail and popa3d - popa3d never at the same time as dovecot), > but the corruption also happens in my subfolders, where only dovecot is > working. > > > b) mbox support still doesn't behave fully as IMAP RFC requires. Message > > headers may change (not permitted) and so message size may not be > > exactly correct (not permitted either). I doubt Netscape really cares > > about these though. > > I just had some heavy problems with email attachments. It saved just a > few bytes of my attachments, sometimes 5KB or 20KB of 66KB, sometimes it > saved a null file. i can't really say why, but that happened again and > again, i had to open netscape and forward the mail to my second > workstation without doing something else or i had to restart netscape > completly (e.g. when opening the attachment for reading or saving it). > What makes me wondering is, the other workstation is also using the same > imap server. > > Ok, that was another corruption i saw, but i guess its related to the > corrupted email thing. > > Steven -- -------------------------------------------------- ----- Steven Enderle ----- m d n Huebner GmbH ---- ----- enderle@mdn.de ----- + 49 911 93 90 90 ----- ----- Digital Imaging & Documentmanagment ----- -------------------------------------------------- From tss@iki.fi Sat Jun 28 17:46:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 03546239D6; Sat, 28 Jun 2003 17:46:29 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5DE07239D5 for ; Sat, 28 Jun 2003 17:46:25 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 0009E5C896C9 for ; Sat, 28 Jun 2003 17:46:24 +0300 (EEST) Subject: Re: [Dovecot] Message display corrupted or missing in Netscape 7.0 and Mozilla 1.3 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3EFBDBD9.1030006@mdn.de> References: <3EFAB4D0.1010405@mdn.de> <1056630612.7582.19.camel@hurina> <3EFAECC1.2080809@mdn.de> <3EFBDBD9.1030006@mdn.de> Content-Type: text/plain Message-Id: <1056811584.7691.510.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 28 Jun 2003 17:46:24 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Jun 2003 14:46:29 -0000 X-UID: 1077 Status: O On Fri, 2003-06-27 at 08:53, Steven Enderle wrote: > * 268 FETCH (UID 542 FLAGS (\Seen) RFC822.SIZE 2975 BODY[] {2975}.. > continuing in next packet (There is data missing): > eturn-Path: .Delivered-To: enderle@mdn.de.Received: by If it's missing one character, that actually looks like that one CRLF-bug that I fixed after 0.99.9.1.. Except your mbox probably doesn't have any CRs? Maybe it's still the same, see if 0.99.10 helps. From tss@iki.fi Sat Jun 28 17:51:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D4C80239E7; Sat, 28 Jun 2003 17:51:31 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3957D239D5 for ; Sat, 28 Jun 2003 17:51:30 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 0071A5C896C9 for ; Sat, 28 Jun 2003 17:51:29 +0300 (EEST) Subject: Re: [Dovecot] HELP From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <002501c33c27$2784c6b0$0301a8c0@OFFICE> References: <002501c33c27$2784c6b0$0301a8c0@OFFICE> Content-Type: text/plain Message-Id: <1056811889.8172.515.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 28 Jun 2003 17:51:29 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Jun 2003 14:51:32 -0000 X-UID: 1078 Status: O On Fri, 2003-06-27 at 00:08, Roger Cates wrote: > I am including my config.log in the hopes that someone can tell me what > is going on with dovecot installing on Mac OSX 10.2.6 You mean the linking errors in last mail? Didn't you get it compiled somewhere already? Anyway, those have something to do with libraries. Maybe some of them are incompatible? Maybe some library needs -lm or some other library included with it? Try if configure --without-pam helps? From jens@freebsdforum.de Mon Jun 30 02:52:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C51742387A; Mon, 30 Jun 2003 02:52:29 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id B80D52384C for ; Mon, 30 Jun 2003 02:52:25 +0300 (EEST) Received: from 127.0.0.1 (localhost [213.133.103.207])E91761142F5 for ; Mon, 30 Jun 2003 01:52:23 +0200 (CEST) From: Jens Gutzeit To: dovecot@procontrol.fi Date: Mon, 30 Jun 2003 01:52:26 +0200 User-Agent: KMail/1.5.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200306300152.26598.jens@freebsdforum.de> Subject: [Dovecot] migrating from cyrus X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jun 2003 23:52:29 -0000 X-UID: 1079 Status: O Hi all, I want to migrate our customers mailserver (400 mail accounts), from cyrus-2.0.16 to Dovecot. Anyone an idea how I can preserve the read/unread status and what can I do with the UIDL? (cyrus used a different algorithm for UIDL). Thanks in advance. Best regards, Jens Gutzeit From tss@iki.fi Mon Jun 30 15:06:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7AE9A2387A; Mon, 30 Jun 2003 15:06:39 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D88812384C for ; Mon, 30 Jun 2003 15:06:37 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 8FB315C896C9 for ; Mon, 30 Jun 2003 15:06:37 +0300 (EEST) Subject: Re: [Dovecot] migrating from cyrus From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <200306300152.26598.jens@freebsdforum.de> References: <200306300152.26598.jens@freebsdforum.de> Content-Type: text/plain Message-Id: <1056974797.8173.539.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 30 Jun 2003 15:06:37 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2003 12:06:39 -0000 X-UID: 1080 Status: O On Mon, 2003-06-30 at 02:52, Jens Gutzeit wrote: > Hi all, > > I want to migrate our customers mailserver (400 mail accounts), from > cyrus-2.0.16 to Dovecot. Anyone an idea how I can preserve the read/unread > status and what can I do with the UIDL? (cyrus used a different algorithm for > UIDL). Well, I just saw Cyrus 1.6 -> Courier converter. See if it works with 2.0: http://www.madness.at/~mad/projects/cyrus2courier/cyrus2courier.tgz It doesn't seem to preserve UIDs directly, but it shouldn't be too difficult to fix to do that. And what do you mean about UIDL? POP3 UIDs? Cyrus 2.1 seems to use the same algorithm than Dovecot (uidvalidity.uid), except if pop3_new_uidl isn't set it uses just uid which I think isn't a good idea to keep using. From tss@iki.fi Mon Jun 30 15:53:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BF6592387A; Mon, 30 Jun 2003 15:53:35 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2D1E023860 for ; Mon, 30 Jun 2003 15:53:33 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id CDE285C896C9 for ; Mon, 30 Jun 2003 15:53:32 +0300 (EEST) Subject: Re: [Dovecot] migrating from cyrus From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1056974797.8173.539.camel@hurina> References: <200306300152.26598.jens@freebsdforum.de> <1056974797.8173.539.camel@hurina> Content-Type: text/plain Message-Id: <1056977612.7582.543.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 30 Jun 2003 15:53:32 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2003 12:53:35 -0000 X-UID: 1081 Status: O On Mon, 2003-06-30 at 15:06, Timo Sirainen wrote: > Well, I just saw Cyrus 1.6 -> Courier converter. See if it works with > 2.0: http://dovecot.procontrol.fi/tools/ Here's an updated version which support Cyrus 2.0, 2.1 and 2.2. It also writes dovecot-uidlist file. From jens@freebsdforum.de Mon Jun 30 16:44:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5A0602387A; Mon, 30 Jun 2003 16:44:07 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id 51E462384C for ; Mon, 30 Jun 2003 16:44:05 +0300 (EEST) Received: from localhost (localhost [213.133.103.207])BDC801142F5 for ; Mon, 30 Jun 2003 15:44:04 +0200 (CEST) From: Jens Gutzeit To: dovecot@procontrol.fi Subject: Re: [Dovecot] migrating from cyrus Date: Mon, 30 Jun 2003 15:44:03 +0200 User-Agent: KMail/1.5.2 References: <200306300152.26598.jens@freebsdforum.de> <1056974797.8173.539.camel@hurina> <1056977612.7582.543.camel@hurina> In-Reply-To: <1056977612.7582.543.camel@hurina> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200306301544.03562.jens@freebsdforum.de> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2003 13:44:07 -0000 X-UID: 1082 Status: O On Monday 30 June 2003 14:53, Timo Sirainen wrote: > On Mon, 2003-06-30 at 15:06, Timo Sirainen wrote: > > Well, I just saw Cyrus 1.6 -> Courier converter. See if it works with > > 2.0: > > http://dovecot.procontrol.fi/tools/ > > Here's an updated version which support Cyrus 2.0, 2.1 and 2.2. It also > writes dovecot-uidlist file. Wow thank you very much :) Jens From maikel@ladot.com Mon Jun 30 17:01:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3549A238C5; Mon, 30 Jun 2003 17:01:34 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 8C49C2387A for ; Mon, 30 Jun 2003 17:01:31 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h5UEEHv0070762 for ; Mon, 30 Jun 2003 16:14:17 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Mon, 30 Jun 2003 16:03:54 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F22762@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'dovecot@procontrol.fi'" Subject: RE: [Dovecot] 0.99.10 released Date: Mon, 30 Jun 2003 16:03:53 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C33F10.70975B60" X-Spam-Status: No, hits=1.0 required=5.0 tests=HTML_30_40,HTML_MESSAGE version=2.55 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2003 14:01:34 -0000 X-UID: 1083 Status: O Content-Length: 1619 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C33F10.70975B60 Content-Type: text/plain Hi Timo (and list :) > No bug reports since rc4, so here it is. [snip] One small question: How far is nfs safety implemented now? You did a lot of work on nfs-safety for the index files, how about the other files? And does it need specific configure options? Thank you for this release though, I will have a look at it tonight ;-) Kind regards, Maikel Verheijen. ------_=_NextPart_001_01C33F10.70975B60 Content-Type: text/html Content-Transfer-Encoding: quoted-printable RE: [Dovecot] 0.99.10 released

Hi Timo (and list :)

> No bug reports since rc4, so here it is.

[snip]

One small question: How far is nfs safety implemented = now? You did a lot of work on nfs-safety for the index files, how about = the other files? And does it need specific configure = options?

Thank you for this release though, I will have a look = at it tonight ;-)


Kind regards,

Maikel Verheijen.

------_=_NextPart_001_01C33F10.70975B60-- From tss@iki.fi Mon Jun 30 17:30:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7008F23860; Mon, 30 Jun 2003 17:30:20 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 61E6523896 for ; Mon, 30 Jun 2003 17:30:15 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 1845B5C896C9 for ; Mon, 30 Jun 2003 17:30:15 +0300 (EEST) Subject: RE: [Dovecot] 0.99.10 released From: Timo Sirainen To: "'dovecot@procontrol.fi'" In-Reply-To: <410777FC7A66D511911500B0D078345501F22762@nlladot05.intern.ladot.com> References: <410777FC7A66D511911500B0D078345501F22762@nlladot05.intern.ladot.com> Content-Type: text/plain Message-Id: <1056983414.8172.555.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 30 Jun 2003 17:30:15 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2003 14:30:20 -0000 X-UID: 1084 Status: O On Mon, 2003-06-30 at 17:03, Maikel Verheijen wrote: > One small question: How far is nfs safety implemented now? You did a > lot of work on nfs-safety for the index files, how about the other > files? And does it need specific configure options? No, I've done nothing for NFS-safe index files and likely will not do for a long time. NFS-safety is still pretty much the same as it was two months ago. From TODO: - NFS safety: - use link()s instead of relying on O_EXCL - .subscriptions: use rename() like dovecot-uidlist - .customflags: use rename(), but there's a problem when we have to remove unused flags to make room for new ones. to fix that add new field in the file, it would be set for flags which are currently unused. if that field is set, .customflags must be locked before the flag is set to any messages. but make sure there's no race conditions, we probably have to wait a few seconds just to make sure no-one set a flag we want to remove From ma@dt.e-technik.uni-dortmund.de Mon Jun 30 18:13:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9F52923896; Mon, 30 Jun 2003 18:13:50 +0300 (EEST) Received: from m2a2.dyndns.org (pD951F54A.dip.t-dialin.net [217.81.245.74]) by danu.procontrol.fi (Postfix) with ESMTP id CA54A23860 for ; Mon, 30 Jun 2003 18:13:46 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 1C7F18E87E; Mon, 30 Jun 2003 17:13:46 +0200 (CEST) To: dovecot@procontrol.fi From: Matthias Andree Date: Mon, 30 Jun 2003 17:13:45 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] Dovecot first impressions X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2003 15:13:50 -0000 X-UID: 1085 Status: O Content-Length: 3383 Hi, I have only recently become aware of Dovecot and gave it a try. The previous 0.99.9.1 version didn't work well for me (OpenSSL), I dropped it, but 0.99.10 has come just in time (saw it on freshmeat) and I thought I'd give it another try if it promised SSL fixes, and it's sorta working for me (i. e. it works with mutt, Mozilla, sylpheed, but not cone -- but cone is beta and has SSL issues with certificate verification, I seem to have hosed the setup). Anyways, I was delighted to see how quick it is to install an IMAP/POP3 server -- but being a Courier-IMAP user, I have some compatibility concerns, but these appear to be minor, and the daemontools friendliness (dovecot -F) is very much to my taste as well. One deals with NAMESPACE -- it takes manual intervention in order to convince Mozilla of the new namespace and stuff. Courier-IMAP used to provide a NAMESPACE, but Mozilla leaves it unchanged if I point it to Dovecot. The other is the naming itself, easily visible from the LIST replies below: Courier prefixes everything with "INBOX" (which I believe is reflected in the NAMESPACE, but it appears as though most clients were only tested against UWIMAP). Apparently, mail user clients (particularly the Mozilla derivatives) do a better job of presenting Dovecot's layout, so this one has my preference, although it differs from Courier's and Cyrus 2.1's. Timo, could you add the NAMESPACE extension to Dovecot? That would be a great migration aid for people switching over from Courier-IMAP. Other than that, my first impression is a very good one. One question (I may have missed it in the docs): how do I properly create folders with national characters (umlauts) in their names? Apparently, Courier-IMAP and Dovecot just forward the file name verbatim when I type maildirmake -f t=E4=DFt Maildir, which doesn't look right. OTOH, I am well aware that the IMAP servers can't possible guess the character set, so it must be my "maildirmake" that is flawed rather than the server. This is Courier-IMAP: . namespace * NAMESPACE (("INBOX." ".")) NIL (("shared." ".")) . OK NAMESPACE completed. . list "" * * LIST (\HasNoChildren) "." "INBOX.INBOX.Trash" * LIST (\HasNoChildren) "." "INBOX.dovecot" * LIST (\HasNoChildren) "." "INBOX.qmail" * LIST (\HasNoChildren) "." "INBOX.cone" * LIST (\HasNoChildren) "." "INBOX.vulnwatch" * LIST (\HasNoChildren) "." "INBOX.Outbox" * LIST (\HasNoChildren) "." "INBOX.Trash" * LIST (\HasNoChildren) "." "INBOX.newsletters" * LIST (\HasNoChildren) "." "INBOX.schmendrick" * LIST (\HasNoChildren) "." "INBOX.Queue" * LIST (\HasNoChildren) "." "INBOX.Sent" * LIST (\HasNoChildren) "." "INBOX.Drafts" * LIST (\Marked \HasChildren) "." "INBOX" * LIST (\Noselect \HasChildren) "." "INBOX.INBOX" . OK LIST completed This is Dovecot: . namespace . BAD Error in IMAP command NAMESPACE: Unknown command. . list "" * * LIST (\UnMarked) "." "Drafts" * LIST (\UnMarked) "." "Sent" * LIST (\UnMarked) "." "Queue" * LIST (\UnMarked) "." "schmendrick" * LIST (\UnMarked) "." "newsletters" * LIST (\UnMarked) "." "Trash" * LIST (\UnMarked) "." "Outbox" * LIST (\UnMarked) "." "vulnwatch" * LIST (\Marked) "." "cone" * LIST (\Marked) "." "qmail" * LIST (\UnMarked) "." "dovecot" * LIST (\Children \UnMarked) "." "INBOX" * LIST (\UnMarked) "." "INBOX.Trash" . OK List completed. --=20 Matthias Andree From tss@iki.fi Mon Jun 30 18:40:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7D70523896; Mon, 30 Jun 2003 18:40:00 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 953A52387A for ; Mon, 30 Jun 2003 18:39:58 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 4C16B5C896C9 for ; Mon, 30 Jun 2003 18:39:58 +0300 (EEST) Subject: Re: [Dovecot] Dovecot first impressions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: multipart/mixed; boundary="=-hRfvuArY0AJNb4kOEce7" Message-Id: <1056987597.7691.574.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 30 Jun 2003 18:39:58 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2003 15:40:00 -0000 X-UID: 1086 Status: O Content-Length: 2830 --=-hRfvuArY0AJNb4kOEce7 Content-Type: text/plain Content-Transfer-Encoding: 7bit On Mon, 2003-06-30 at 18:13, Matthias Andree wrote: > One deals with NAMESPACE -- it takes manual intervention in order to > convince Mozilla of the new namespace and stuff. Courier-IMAP used to > provide a NAMESPACE, but Mozilla leaves it unchanged if I point it to > Dovecot. I was thinking about giving static NAMESPACE reply, but didn't bother yet. I think I'll add it when I add support for full namespace configuration in config file. You could actually do it with a plugin already. Save attached file to src/imap/ directory and compile it there. You'd also have to add NAMESPACE into CAPABILITY_STRING in config.h. And set use_modules = yes in config file. > The other is the naming itself, easily visible from the LIST > replies below: Courier prefixes everything with "INBOX" (which I believe > is reflected in the NAMESPACE, but it appears as though most clients > were only tested against UWIMAP). This will be later in namespace configuration as well. > Apparently, mail user clients (particularly the Mozilla derivatives) do > a better job of presenting Dovecot's layout, so this one has my > preference, although it differs from Courier's and Cyrus 2.1's. Cyrus can be configured not to do it with altnamespace (or something) setting. > One question (I may have missed it in the docs): how do I properly > create folders with national characters (umlauts) in their names? > Apparently, Courier-IMAP and Dovecot just forward the file name verbatim > when I type maildirmake -f t=E4=DFt Maildir, which doesn't look right. OTOH, > I am well aware that the IMAP servers can't possible guess the character > set, so it must be my "maildirmake" that is flawed rather than the server. You use IMAP-modified-UTF7 charset. Only easy way to do it would be to use IMAP client to do it. Would be nice if someone made maildirmake support it as well of course :) First you'd have to get the mailbox name to unicode (iconv() helps). After that you'd get some unicode -> utf7 code from some existing IMAP client. --=-hRfvuArY0AJNb4kOEce7 Content-Disposition: attachment; filename=namespace.c Content-Type: text/x-c; name=namespace.c; charset=iso-8859-15 Content-Transfer-Encoding: 7bit /* gcc -Wall -shared namespace.c -o /usr/local/lib/dovecot/imap/namespace.so -DHAVE_CONFIG_H -I ../.. -I ../lib -I ../lib-imap -I ../lib-storage */ #include "common.h" #include "commands.h" int cmd_namespace(struct client *client) { client_send_line(client, "* NAMESPACE ((\"\" \".\")) NIL NIL"); client_send_tagline(client, "OK Namespace completed."); return TRUE; } void namespace_init(void) { command_register("NAMESPACE", cmd_namespace); } void namespace_deinit(void) { command_unregister("NAMESPACE"); } --=-hRfvuArY0AJNb4kOEce7-- From tss@iki.fi Mon Jun 30 22:02:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CDD31238C5; Mon, 30 Jun 2003 22:02:40 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0AE0B23860 for ; Mon, 30 Jun 2003 22:02:38 +0300 (EEST) Received: from localhost.kpnqwest.fi (hurina [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A64065C896C9 for ; Mon, 30 Jun 2003 22:02:37 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1056999757.7582.610.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 30 Jun 2003 22:02:37 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Configuration file changes X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2003 19:02:41 -0000 X-UID: 1087 Status: O Content-Length: 1448 I was going to add support for "configuration groups", but got a bit stuck at how the logic is supposed to work. I think there could be different settings based on IP/port it's listening in, or based on given username. I can't really describe how it would work, and I'm not entirely sure myself either :) Does this make sense: # (default settings here) # if auth groups are defined here, they are included in all groups below group 1.server.org { protocols = imap imaps pop3 pop3s ssl_cert_file = /etc/ssl/certs/server1.pem login_dir = /var/run/dovecot/login/server1 login { # common for imap/pop3 listen = 1.server.org } auth server1 { mechanisms = plain userdb = ldap /etc/ldap-server1.conf passdb = ldap /etc/ldap-server1.conf } group admins { mail_full_filesystem_access = yes auth admins { mechanisms = plain userdb = passwd-file /etc/admins.passwd passdb = passwd-file /etc/admins.passwd } } } # (any setting changes here would affect only new groups below, otherwise # the config file parsing would get difficult..) group anonymous { protocols = imap ssl_disable = yes login_dir = /var/run/dovecot/login/anonymous login { listen = anonymous.server.org process_per_connection = no processes_count = 1 } auth anonymous { mechanisms = plain anonymous userdb = passwd-file /etc/anon.passwd passdb = passwd-file /etc/anon.passwd } } From lfarkas@bnap.hu Mon Jun 30 23:28:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 23AAC238D1; Mon, 30 Jun 2003 23:28:43 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id BE80723860 for ; Mon, 30 Jun 2003 23:28:36 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id C820E754029 for ; Mon, 30 Jun 2003 22:27:33 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 102213F24; Mon, 30 Jun 2003 22:28:35 +0200 (CEST) Received: from bnap.hu (garfieldn.int.bppiac.hu [192.168.253.2]) by mail2.bppiac.hu (Postfix) with ESMTP id 6F3573F04 for ; Mon, 30 Jun 2003 22:28:34 +0200 (CEST) Message-ID: <3F009D72.6050203@bnap.hu> Date: Mon, 30 Jun 2003 22:28:34 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Configuration file changes References: <1056999757.7582.610.camel@hurina> In-Reply-To: <1056999757.7582.610.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2003 20:28:43 -0000 X-UID: 1088 Status: O Content-Length: 2055 I like the idea, but I don't realy under stand the example. what I'd like to see a default session in the config file and server specific part(s) in the config file. eg a different base dir for each server. or different userdb and passwd db for each server. since I can run different sub-server for each domain with different ldap search base and base_dir. it'd be very useful for me!:-))) Timo Sirainen wrote: > I was going to add support for "configuration groups", but got a bit > stuck at how the logic is supposed to work. I think there could be > different settings based on IP/port it's listening in, or based on given > username. > > I can't really describe how it would work, and I'm not entirely sure > myself either :) Does this make sense: > > # (default settings here) > # if auth groups are defined here, they are included in all groups below > > group 1.server.org { > protocols = imap imaps pop3 pop3s > ssl_cert_file = /etc/ssl/certs/server1.pem > login_dir = /var/run/dovecot/login/server1 > login { > # common for imap/pop3 > listen = 1.server.org > } > auth server1 { > mechanisms = plain > userdb = ldap /etc/ldap-server1.conf > passdb = ldap /etc/ldap-server1.conf > } > > group admins { > mail_full_filesystem_access = yes > auth admins { > mechanisms = plain > userdb = passwd-file /etc/admins.passwd > passdb = passwd-file /etc/admins.passwd > } > } > } > > # (any setting changes here would affect only new groups below, otherwise > # the config file parsing would get difficult..) > > group anonymous { > protocols = imap > ssl_disable = yes > login_dir = /var/run/dovecot/login/anonymous > login { > listen = anonymous.server.org > process_per_connection = no > processes_count = 1 > } > auth anonymous { > mechanisms = plain anonymous > userdb = passwd-file /etc/anon.passwd > passdb = passwd-file /etc/anon.passwd > } > } > > > -- Levente "Si vis pacem para bellum!" From charlieb-dovecot@e-smith.com Tue Jul 1 04:06:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7C3E4238C6; Tue, 1 Jul 2003 04:06:18 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id A0E4523860 for ; Tue, 1 Jul 2003 04:06:13 +0300 (EEST) Received: (qmail 17579 invoked by uid 404); 1 Jul 2003 01:06:09 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 30 Jun 2003 21:06:09 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 01 Jul 2003 01:06:08 -0000 Received: (qmail 7249 invoked by uid 5008); 1 Jul 2003 01:05:31 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 1 Jul 2003 01:05:31 -0000 Date: Mon, 30 Jun 2003 21:05:31 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Timo Sirainen Subject: RE: [Dovecot] 0.99.10 released In-Reply-To: <1056983414.8172.555.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: "'dovecot@procontrol.fi'" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 01:06:18 -0000 X-UID: 1089 Status: O On 30 Jun 2003, Timo Sirainen wrote: > On Mon, 2003-06-30 at 17:03, Maikel Verheijen wrote: > > One small question: How far is nfs safety implemented now? You did a > > lot of work on nfs-safety for the index files, how about the other > > files? And does it need specific configure options? > > No, I've done nothing for NFS-safe index files and likely will not do > for a long time. NFS-safety is still pretty much the same as it was two > months ago. From TODO: > > - NFS safety: > - use link()s instead of relying on O_EXCL [etc] It seems from a brief test that messages aren't sorted when new UIDs are assigned to existing messages in ./cur/. As a result, UIDs may be nothing like in message arrival order. -- Charlie From matthias.andree@gmx.de Tue Jul 1 12:09:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 391D6238B6; Tue, 1 Jul 2003 12:09:46 +0300 (EEST) Received: from m2a2.dyndns.org (p50877516.dip.t-dialin.net [80.135.117.22]) by danu.procontrol.fi (Postfix) with ESMTP id 17EF123860 for ; Tue, 1 Jul 2003 12:09:42 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 2866A8F449; Tue, 1 Jul 2003 11:09:40 +0200 (CEST) To: dovecot@procontrol.fi Subject: Re: [Dovecot] Configuration file changes In-Reply-To: <1056999757.7582.610.camel@hurina> (Timo Sirainen's message of "30 Jun 2003 22:02:37 +0300") References: <1056999757.7582.610.camel@hurina> From: Matthias Andree Date: Tue, 01 Jul 2003 11:09:40 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 09:09:46 -0000 X-UID: 1090 Status: O Timo Sirainen writes: > I was going to add support for "configuration groups", but got a bit > stuck at how the logic is supposed to work. I think there could be > different settings based on IP/port it's listening in, or based on given > username. > > I can't really describe how it would work, and I'm not entirely sure > myself either :) Does this make sense: One thing that I like about Courier components is its "sysconftool" approach that allows to add or remove parameters/examples/defaults to the configuration file as the software changes. If the concept supported rewriting the configuration file, without losing user customizations, but adding new parameters and their documentation, that'd be really helpful. -- Matthias Andree From tss@iki.fi Tue Jul 1 15:12:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A2F5B2387A; Tue, 1 Jul 2003 15:12:15 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 28D9023865 for ; Tue, 1 Jul 2003 15:12:14 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E35125C896A2 for ; Tue, 1 Jul 2003 15:12:13 +0300 (EEST) Subject: RE: [Dovecot] 0.99.10 released From: Timo Sirainen To: "'dovecot@procontrol.fi'" In-Reply-To: References: Content-Type: text/plain Message-Id: <1057061533.8172.640.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 01 Jul 2003 15:12:13 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 12:12:15 -0000 X-UID: 1091 Status: O On Tue, 2003-07-01 at 04:05, Charlie Brady wrote: > It seems from a brief test that messages aren't sorted when new UIDs are > assigned to existing messages in ./cur/. As a result, UIDs may be nothing > like in message arrival order. I thought I fixed it just before 0.99.10 release. And I just tested with 4000 messages, they were ordered just fine. From tss@iki.fi Tue Jul 1 15:15:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CCBDC238C6; Tue, 1 Jul 2003 15:15:36 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 24A0D23865 for ; Tue, 1 Jul 2003 15:15:32 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 98F215C896A2 for ; Tue, 1 Jul 2003 15:15:32 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F009D72.6050203@bnap.hu> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> Content-Type: text/plain Message-Id: <1057061732.8172.645.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 01 Jul 2003 15:15:32 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 12:15:37 -0000 X-UID: 1092 Status: O Content-Length: 1026 On Mon, 2003-06-30 at 23:28, Farkas Levente wrote: > I like the idea, but I don't realy under stand the example. > what I'd like to see a default session in the config file and server > specific part(s) in the config file. eg a different base dir for each > server. or different userdb and passwd db for each server. since I can > run different sub-server for each domain with different ldap search base > and base_dir. it'd be very useful for me!:-))) Well, that was kind of how the "group 1.server.org" was supposed to work. So that you could add 2.server.org etc. Like: protocols = imap imaps group server-a { login_dir = /var/run/dovecot/login/a login { listen = a.server.org } auth a { mechanisms = plain userdb = ldap /etc/ldap-a.conf passdb = ldap /etc/ldap-a.conf } } group server-b { login_dir = /var/run/dovecot/login/b login { listen = b.server.org } auth b { mechanisms = plain userdb = ldap /etc/ldap-b.conf passdb = ldap /etc/ldap-b.conf } } ..etc.. From lfarkas@bnap.hu Tue Jul 1 15:22:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 68C1E238D7; Tue, 1 Jul 2003 15:22:11 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id A080823860 for ; Tue, 1 Jul 2003 15:22:08 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 3E1FE75401E for ; Tue, 1 Jul 2003 14:21:04 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 112FB3F34; Tue, 1 Jul 2003 14:22:07 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id DE9203F33 for ; Tue, 1 Jul 2003 14:22:06 +0200 (CEST) Message-ID: <3F017CEA.5060403@bnap.hu> Date: Tue, 01 Jul 2003 14:22:02 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Configuration file changes References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> In-Reply-To: <1057061732.8172.645.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 12:22:11 -0000 X-UID: 1093 Status: O Content-Length: 1438 as most people point out, it's better not to create subfolders under /var/run (at least with redhat) and it currently still not a god solution. anyway what was the group inside the group in the first example? and what was the anonymous? Timo Sirainen wrote: > On Mon, 2003-06-30 at 23:28, Farkas Levente wrote: > >>I like the idea, but I don't realy under stand the example. >>what I'd like to see a default session in the config file and server >>specific part(s) in the config file. eg a different base dir for each >>server. or different userdb and passwd db for each server. since I can >>run different sub-server for each domain with different ldap search base >>and base_dir. it'd be very useful for me!:-))) > > > Well, that was kind of how the "group 1.server.org" was supposed to > work. So that you could add 2.server.org etc. Like: > > protocols = imap imaps > > group server-a { > login_dir = /var/run/dovecot/login/a > login { > listen = a.server.org > } > auth a { > mechanisms = plain > userdb = ldap /etc/ldap-a.conf > passdb = ldap /etc/ldap-a.conf > } > } > > group server-b { > login_dir = /var/run/dovecot/login/b > login { > listen = b.server.org > } > auth b { > mechanisms = plain > userdb = ldap /etc/ldap-b.conf > passdb = ldap /etc/ldap-b.conf > } > } > ..etc.. > > > -- Levente "Si vis pacem para bellum!" From tss@iki.fi Tue Jul 1 15:22:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8FD3523860; Tue, 1 Jul 2003 15:22:53 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8D8F523994 for ; Tue, 1 Jul 2003 15:22:51 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 573FA5C896A2 for ; Tue, 1 Jul 2003 15:22:51 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <1056999757.7582.610.camel@hurina> Content-Type: text/plain Message-Id: <1057062171.7582.654.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 01 Jul 2003 15:22:51 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 12:22:53 -0000 X-UID: 1094 Status: O On Tue, 2003-07-01 at 12:09, Matthias Andree wrote: > One thing that I like about Courier components is its "sysconftool" > approach that allows to add or remove parameters/examples/defaults to > the configuration file as the software changes. If the concept supported > rewriting the configuration file, without losing user customizations, > but adding new parameters and their documentation, that'd be really > helpful. Yes, it would be nice.. Hmm. I think I'd use external script for that though, probably written with Perl. It could use dovecot-example.conf and maybe some dovecot.conf.history file to determine what comments belong to which configuration option. From tss@iki.fi Tue Jul 1 15:41:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 67E7023997; Tue, 1 Jul 2003 15:41:44 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C477023996 for ; Tue, 1 Jul 2003 15:41:42 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 747E55C896A2 for ; Tue, 1 Jul 2003 15:41:42 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F017CEA.5060403@bnap.hu> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> Content-Type: text/plain Message-Id: <1057063302.8173.674.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 01 Jul 2003 15:41:42 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 12:41:44 -0000 X-UID: 1095 Status: O Content-Length: 2107 On Tue, 2003-07-01 at 15:22, Farkas Levente wrote: > as most people point out, it's better not to create subfolders under > /var/run (at least with redhat) and it currently still not a god solution. It doesn't matter where you put the files, as long as different server groups have different login_dir. > anyway what was the group inside the group in the first example? Well, those are where the logic is still somewhat messy in my head :) I think you would want to have groups which: 1. Simply provide default settings for any subgroups without doing anything themselves: group { protocols = imap # some IMAP defaults for a/b group server-a { ... } group server-b { ... } } group { protocols = pop3 # different POP3 defaults for a/b group server-a { ... } group server-b { ... } } 2. Are servers themselves, providing defaults for subgroups: group main-server { # defaults login { listen = main.server.org } auth default { # ... } group debug-server { login { listen = debug.main.server.org auth_verbose = yes } # possibly a few other settings changed } } 3. Belong to same server instance, but use different settings for different users: group server { # ... auth default { mechanisms = plain userdb = ldap /etc/main-ldap.conf passdb = ldap /etc/main-ldap.conf } group power-users { # .. different settings for power-users auth power-users { mechanisms = plain userdb = ldap /etc/power-users-ldap.conf passdb = ldap /etc/power-users-ldap.conf } } group lusers { # .. different settings for lusers auth lusers { mechanisms = plain userdb = ldap /etc/lusers-ldap.conf passdb = ldap /etc/lusers-ldap.conf } } } > and what was the anonymous? Nothing special. Just another server with different settings. Oh, and the group name doesn't actually matter at all. You wouldn't even need to give it at all. I was also thinking that if group name wasn't given, that would mean that it's a dummy group (type 1 above) which shouldn't tried to be started. From amyzing@talsever.com Tue Jul 1 19:24:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 844712399A; Tue, 1 Jul 2003 19:24:56 +0300 (EEST) Received: from barry.mail.mindspring.net (barry.mail.mindspring.net [207.69.200.25]) by danu.procontrol.fi (Postfix) with ESMTP id BC71423997 for ; Tue, 1 Jul 2003 19:24:50 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by barry.mail.mindspring.net with esmtp (Exim 3.33 #1) id 19XNvx-0008Ie-00; Tue, 01 Jul 2003 12:24:45 -0400 Received: by marajen.talsever.com (Postfix, from userid 1000) id A172480AF; Tue, 1 Jul 2003 12:24:41 -0400 (EDT) Date: Tue, 1 Jul 2003 12:24:41 -0400 From: Amelia A Lewis To: Timo Sirainen Subject: Re: [Dovecot] Configuration file changes Message-ID: <20030701162441.GA31717@talsever.com> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <1057063302.8173.674.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1057063302.8173.674.camel@hurina> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 16:24:56 -0000 X-UID: 1096 Status: O Content-Length: 2238 On Tue, Jul 01, 2003 at 03:41:42PM +0300, Timo Sirainen wrote: >1. Simply provide default settings for any subgroups without doing >anything themselves: > >2. Are servers themselves, providing defaults for subgroups: > >3. Belong to same server instance, but use different settings for >different users: > Time to make an appeal. One of the great advantages of Dovecot, currently, is ease of configuration. It's pretty straightforward, even though it's got a good bit of flexibility. The examples that you give above (which I snipped) are ... kinda frightening. And it raises some questions about Yet Another Configuration Language and Parser. So. If it's possible to define the configuration files as simple unix config files/property files (name value pairs), I say do that. Postfix manages pretty well with that, plus external maps. Uses more than one file, keeping the configuration in a directory. If there will only be one file, with sections, maybe consider just using ini file style? Ugly, yes, but familiar. If it's going to be heavily structured, as the example seemed to indicate, could you *please* consider using stuff designed to handle that sort of heavy structuring? *sigh* I realize that you hate XML, but it's starting to look like another markup format. Maybe look at YAML? If you're completely opposed to using that, then maybe try really, really hard to make it look as much like a Bind 8/9 named.conf file as possible? I realize that there are some very complex setups that are going to need interesting kinds of work. It would be nice, though, if there were some fairly simple way of configuring them, something that scales up ... and down, so that relatively simple installations don't have to learn something as complex as sendmial.cf to bring up an imap server. Amy! -- Amelia A. Lewis amyzing {at} talsever.com I don't know that I ever wanted greatness, on its own. It seems rather like wanting to be an engineer, rather than wanting to design something, or wanting to be a writer, rather than wanting to write. It should be a by-product, not a thing in itself. Otherwise, it's just an ego trip. -- Merlin, son of Corwin, Prince of Chaos (Roger Zelazny) From tss@iki.fi Tue Jul 1 19:56:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D1C1C2399B; Tue, 1 Jul 2003 19:56:14 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 10A5423997 for ; Tue, 1 Jul 2003 19:56:10 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id C1A3A5C896A2 for ; Tue, 1 Jul 2003 19:56:09 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030701162441.GA31717@talsever.com> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <20030701162441.GA31717@talsever.com> Content-Type: text/plain Message-Id: <1057078569.8173.691.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 01 Jul 2003 19:56:09 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 16:56:15 -0000 X-UID: 1097 Status: O On Tue, 2003-07-01 at 19:24, Amelia A Lewis wrote: > Time to make an appeal. > > One of the great advantages of Dovecot, currently, is ease of configuration. > It's pretty straightforward, even though it's got a good bit of flexibility. > > The examples that you give above (which I snipped) are ... kinda > frightening. And it raises some questions about Yet Another Configuration > Language and Parser. It's all actually only a few simple additions to current code, at least if I get the logic sensible (which I don't think it currently is). Also you won't have to use those "group" groups at all. I probably won't even given an example of their use in dovecot-example.conf so it won't confuse people who don't need it. The only visible change for most people will be just that login/auth group definitions would be inside { .. } which I think makes more sense than the current kludgy way. I do plan to keep the config file as simple as possible for normal installations. From lfarkas@bnap.hu Tue Jul 1 21:52:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 17629238D1; Tue, 1 Jul 2003 21:52:18 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id B360923860 for ; Tue, 1 Jul 2003 21:52:13 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 3EF23754013 for ; Tue, 1 Jul 2003 20:51:07 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 3643A3F40; Tue, 1 Jul 2003 20:52:11 +0200 (CEST) Received: from bnap.hu (garfieldn.int.bppiac.hu [192.168.253.2]) by mail2.bppiac.hu (Postfix) with ESMTP id 411A83EE4 for ; Tue, 1 Jul 2003 20:52:10 +0200 (CEST) Message-ID: <3F01D854.2040006@bnap.hu> Date: Tue, 01 Jul 2003 20:52:04 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Configuration file changes References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <1057063302.8173.674.camel@hurina> <20030701162441.GA31717@talsever.com> In-Reply-To: <20030701162441.GA31717@talsever.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 18:52:18 -0000 X-UID: 1098 Status: O Content-Length: 2306 Amelia A Lewis wrote: > On Tue, Jul 01, 2003 at 03:41:42PM +0300, Timo Sirainen wrote: > >>1. Simply provide default settings for any subgroups without doing >>anything themselves: >> >>2. Are servers themselves, providing defaults for subgroups: >> >>3. Belong to same server instance, but use different settings for >>different users: >> > > > Time to make an appeal. > > One of the great advantages of Dovecot, currently, is ease of configuration. > It's pretty straightforward, even though it's got a good bit of flexibility. > > The examples that you give above (which I snipped) are ... kinda > frightening. And it raises some questions about Yet Another Configuration > Language and Parser. > > So. If it's possible to define the configuration files as simple unix > config files/property files (name value pairs), I say do that. Postfix > manages pretty well with that, plus external maps. Uses more than one file, > keeping the configuration in a directory. > > If there will only be one file, with sections, maybe consider just using ini > file style? Ugly, yes, but familiar. > > If it's going to be heavily structured, as the example seemed to indicate, > could you *please* consider using stuff designed to handle that sort of > heavy structuring? *sigh* I realize that you hate XML, but it's starting > to look like another markup format. Maybe look at YAML? If you're > completely opposed to using that, then maybe try really, really hard to make > it look as much like a Bind 8/9 named.conf file as possible? > > I realize that there are some very complex setups that are going to need > interesting kinds of work. It would be nice, though, if there were some > fairly simple way of configuring them, something that scales up ... and > down, so that relatively simple installations don't have to learn something > as complex as sendmial.cf to bring up an imap server. I've to agree with the above. but at the same time I'd like to be able to configure more virtual servers. so let's keep it as simple as possible and be able to configure more server with one config file. ps. I still not understand that 3 new config example...why there is group inside group. may be a concrate example... -- Levente "Si vis pacem para bellum!" From tss@iki.fi Tue Jul 1 22:04:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0DA6C238D3; Tue, 1 Jul 2003 22:04:58 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id ADAE4238D1 for ; Tue, 1 Jul 2003 22:04:54 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 69B405C896A2 for ; Tue, 1 Jul 2003 22:04:54 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F01D854.2040006@bnap.hu> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <20030701162441.GA31717@talsever.com> <3F01D854.2040006@bnap.hu> Content-Type: text/plain Message-Id: <1057086294.8172.723.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 01 Jul 2003 22:04:54 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 19:04:58 -0000 X-UID: 1099 Status: O On Tue, 2003-07-01 at 21:52, Farkas Levente wrote: > ps. I still not understand that 3 new config example...why there is > group inside group. may be a concrate example... The point is that (sub)groups always inherit settings from their parents. You could do everything (well, except the 3. case which I'm beginning to think isn't such a good idea anyway) without subgroups, but you might need to do more copy&pasting. I think the previous "debug server" is good enough example. You might want to have 10 different virtual servers, plus each one listening in another port for debugging sessions. The debugging port would have all the same settings than the real server, except some debugging options enabled. You could create two root level groups for them, but you'd have to keep their settings duplicated. Or you could create a debug subgroup where you just override listening port and the few debug settings. From tss@iki.fi Tue Jul 1 22:14:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 78BA4238E1; Tue, 1 Jul 2003 22:14:46 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F3619238D3 for ; Tue, 1 Jul 2003 22:14:42 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A48A15C896A2 for ; Tue, 1 Jul 2003 22:14:42 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1057063302.8173.674.camel@hurina> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <1057063302.8173.674.camel@hurina> Content-Type: text/plain Message-Id: <1057086882.8170.730.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 01 Jul 2003 22:14:42 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 19:14:46 -0000 X-UID: 1100 Status: O On Tue, 2003-07-01 at 15:41, Timo Sirainen wrote: Or maybe this makes more sense: "group" means that is only groups some settings. It doesn't create a server. "server" creates a server. 1. Simply provide default settings for any subgroups without doing anything themselves: group imap { protocols = imap # some IMAP defaults for a/b server a { ... } server b { ... } } group pop3 { protocols = pop3 # different POP3 defaults for a/b server a { ... } server b { ... } } 2. Are servers themselves, providing defaults for subgroups: server main-server { # defaults login { listen = main.server.org } auth default { # ... } server debug-server { login { listen = debug.main.server.org auth_verbose = yes } # possibly a few other settings changed } } From lfarkas@bnap.hu Tue Jul 1 23:16:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7D959238D4; Tue, 1 Jul 2003 23:16:11 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 28B61238C6 for ; Tue, 1 Jul 2003 23:16:04 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 79B2875402B for ; Tue, 1 Jul 2003 22:14:57 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 9803F3F41; Tue, 1 Jul 2003 22:16:01 +0200 (CEST) Received: from bnap.hu (garfieldn.int.bppiac.hu [192.168.253.2]) by mail2.bppiac.hu (Postfix) with ESMTP id 17DC43EE4 for ; Tue, 1 Jul 2003 22:16:01 +0200 (CEST) Message-ID: <3F01EC00.9000703@bnap.hu> Date: Tue, 01 Jul 2003 22:16:00 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Configuration file changes References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <1057063302.8173.674.camel@hurina> <1057086882.8170.730.camel@hurina> In-Reply-To: <1057086882.8170.730.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 20:16:11 -0000 X-UID: 1101 Status: O Content-Length: 1399 so what I do not understand: - what the "group" means? why not just a simple {} pair? - until no there wasn't any king of grouping eg. what can I write inside a login {} part? what is the server part ? etc... it seems to me a config file can become a big mass. - in the 1. case server a is a union of all group where "server a" appear or??? everybody else understand it and just I'm so stupid? Timo Sirainen wrote: > On Tue, 2003-07-01 at 15:41, Timo Sirainen wrote: > > Or maybe this makes more sense: "group" means that is only groups some > settings. It doesn't create a server. "server" creates a server. > > 1. Simply provide default settings for any subgroups without doing > anything themselves: > > group imap { > protocols = imap > # some IMAP defaults for a/b > server a { ... } > server b { ... } > } > > group pop3 { > protocols = pop3 > # different POP3 defaults for a/b > server a { ... } > server b { ... } > } > > 2. Are servers themselves, providing defaults for subgroups: > > server main-server { > # defaults > login { > listen = main.server.org > } > auth default { > # ... > } > server debug-server { > login { > listen = debug.main.server.org > auth_verbose = yes > } > # possibly a few other settings changed > } > } > > > -- Levente "Si vis pacem para bellum!" From pomac@vapor.com Tue Jul 1 23:37:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AA3FE238E1; Tue, 1 Jul 2003 23:37:44 +0300 (EEST) Received: from pomac.netswarm.net (c-110372d5.012-136-6c756e2.cust.bredbandsbolaget.se [213.114.3.17]) by danu.procontrol.fi (Postfix) with ESMTP id BD889238D4 for ; Tue, 1 Jul 2003 23:37:39 +0300 (EEST) Received: from [10.0.0.210] (unknown [10.0.0.210]) by pomac.netswarm.net (Postfix) with ESMTP id 3ACD8B4656 for ; Tue, 1 Jul 2003 22:37:38 +0200 (CEST) Subject: Re: [Dovecot] Configuration file changes From: Ian Kumlien To: dovecot@procontrol.fi In-Reply-To: <3F01EC00.9000703@bnap.hu> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <1057063302.8173.674.camel@hurina> <1057086882.8170.730.camel@hurina> <3F01EC00.9000703@bnap.hu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-nWUeSCjR5ADK8ADuZU3U" Message-Id: <1057091835.21090.9.camel@big.pomac.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 01 Jul 2003 22:37:16 +0200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 20:37:44 -0000 X-UID: 1102 Status: O Content-Length: 2474 --=-nWUeSCjR5ADK8ADuZU3U Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2003-07-01 at 22:16, Farkas Levente wrote: > so what I do not understand: > - what the "group" means? why not just a simple {} pair? > - until no there wasn't any king of grouping eg. what can I write inside=20 > a login {} part? what is the server part ? etc... it seems to me a=20 > config file can become a big mass. > - in the 1. case server a is a union of all group where "server a"=20 > appear or??? >=20 > everybody else understand it and just I'm so stupid? For me it's simpler and more structured... It could also minimize the actual size needed for a really cool config. If you had ever worked with bind (dns) you'd recognize the syntax immediately but you don't have to add the semicolons. Example: zone "0.0.127.in-addr.arpa" { type master; file "named.local"; }; > > group imap { > > protocols =3D imap > > # some IMAP defaults for a/b > > server a { ... } > > server b { ... } > > } > >=20 > > group pop3 { > > protocols =3D pop3 > > # different POP3 defaults for a/b > > server a { ... } > > server b { ... } > > } How about protocol { protocol specific options } ? =20 Since i have some comments i'll be chipping in here. > > 2. Are servers themselves, providing defaults for subgroups: > >=20 > > server main-server { > > # defaults > > login { > > listen =3D main.server.org > > } or listen { comma-seperated-list } > > auth default { > > # ... > > } > > server debug-server { > > login { > > listen =3D debug.main.server.org > > auth_verbose =3D yes couldn't auth verbose be in a global or per server entry 'options { comma-seperated-list } ? or have i been playing to much with bind? > > } > > # possibly a few other settings changed > > } > > } All-in-all i like the C like syntax and i find it more *nix than var =3D value. (been using to many old deamons it seems... =3D)) PS. Hi Emma, you show up everywhere except arcnet =3D) DS. --=20 Ian Kumlien --=-nWUeSCjR5ADK8ADuZU3U Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQA/AfD77F3Euyc51N8RAiB0AJ9ouWp+JYQrzvXKDZoMqsgrwwNqZACghxZU Kyt77Db9h7KRV/KkmB8G2X4= =rj1Q -----END PGP SIGNATURE----- --=-nWUeSCjR5ADK8ADuZU3U-- From tss@iki.fi Wed Jul 2 00:26:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B61F523996; Wed, 2 Jul 2003 00:26:18 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id ABDB1238C6 for ; Wed, 2 Jul 2003 00:26:16 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 55FE15C896A2 for ; Wed, 2 Jul 2003 00:26:16 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F01EC00.9000703@bnap.hu> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <1057063302.8173.674.camel@hurina> <1057086882.8170.730.camel@hurina> <3F01EC00.9000703@bnap.hu> Content-Type: text/plain Message-Id: <1057094775.8170.758.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 02 Jul 2003 00:26:16 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 21:26:18 -0000 X-UID: 1103 Status: O Content-Length: 3071 On Tue, 2003-07-01 at 23:16, Farkas Levente wrote: > so what I do not understand: > - what the "group" means? why not just a simple {} pair? Well, it's just the syntax.. I think simple {} would be less readable. > - until no there wasn't any king of grouping eg. what can I write inside > a login {} part? what is the server part ? etc... it seems to me a > config file can become a big mass. Currently there's: login = imap login_executable = /usr/libexec/dovecot/imap-login login_user = dovecot login_process_size = 16 ..etc.. login = pop3 login_executable = /usr/libexec/dovecot/pop3-login .. you could override any other login_* settings here for pop3.. "login {}" would simply replace this with: login imap { executable = /usr/libexec/dovecot/imap-login user = dovecot process_size = 16 } login pop3 { executable = /usr/libexec/dovecot/pop3-login } Although I'm still not really sure how this would work either. Currently the settings in login group you defined first (imap by default) are used as defaults for the second login group (pop3). That's kind of messy I think.. Maybe I should completely drop the login group and rather make protocol groups. Something like: # settings here would be global for both imap and pop3, but nothing # would stop you from overriding them inside imap/pop3 group. login_user = dovecot imap { login_executable = /usr/libexec/dovecot/imap-login login_process_size = 16 default_mail_env = maildir:~/Maildir } pop3 { login_executable = /usr/libexec/dovecot/pop3-login login_process_size = 16 default_mail_env = maildir:~/Maildir:INDEX=MEMORY } > - in the 1. case server a is a union of all group where "server a" > appear or??? Um. No. There was 4 different servers. Two IMAP servers, two POP3 servers. Each one listening in different address, each one having separate settings. The groups around them were used only to provide some common settings for the servers under it. > everybody else understand it and just I'm so stupid? I don't know, it seems quite clear to me :) The basic idea should be this: # default setting for everything that is defined below: default_mail_env = /var/mail/%u server { # this server uses the default_mail_env above listen = a.server.org } server { listen = b.server.org # here we override the default_mail_env. it's used only by this server default_mail_env = ~/Maildir } group { # this is used for the two servers defined below default_mail_env = maildir:~/Maildir:INDEX=MEMORY server { listen = c.server.org } server { listen = d.server.org } } server { # default_mail_env is again the /var/mail/%u which was defined in # root level listen = e.server.org } So most of the settings wouldn't belong to any group. You can define them in the root level which means they're global. You can override globals inside groups. You can override group settings in subgroups. etc. I'm not sure if I should allow naming the groups/servers/etc. They don't really matter, but they might be useful for statistics and error messages. From tss@iki.fi Wed Jul 2 00:47:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B7A0C2399A; Wed, 2 Jul 2003 00:47:25 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3269623996 for ; Wed, 2 Jul 2003 00:47:21 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 52FB45C896A2 for ; Wed, 2 Jul 2003 00:47:19 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1057094775.8170.758.camel@hurina> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <1057063302.8173.674.camel@hurina> <1057086882.8170.730.camel@hurina> <3F01EC00.9000703@bnap.hu> <1057094775.8170.758.camel@hurina> Content-Type: multipart/mixed; boundary="=-Ff1YyBZwEYWA4zHNOQVw" Message-Id: <1057096038.7691.761.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 02 Jul 2003 00:47:19 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 21:47:25 -0000 X-UID: 1104 Status: O Content-Length: 36295 --=-Ff1YyBZwEYWA4zHNOQVw Content-Type: text/plain Content-Transfer-Encoding: 7bit Here's two full configuration files attached. Yes, protocol groups are a good idea. No more login groups. :) Neither of attached confs includes any "group" groups. I didn't bother to write dovecot-complex.conf yet.. --=-Ff1YyBZwEYWA4zHNOQVw Content-Disposition: attachment; filename=dovecot-simple.conf Content-Type: text/plain; name=dovecot-simple.conf; charset=iso-8859-15 Content-Transfer-Encoding: 7bit ## Dovecot 1.0 configuration file # Default values are shown after each value, it's not required to uncomment # any of the lines. Exception to this are paths, they're just examples # with real defaults being based on configure options. The paths listed here # are for configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var # --with-ssldir=/etc/ssl # Base directory where to store runtime data. #base_dir = /var/run/dovecot/ # Protocols we want to be serving: # imap imaps pop3 pop3s #protocols = imap imaps # IP or host address where to listen in for connections. It's not currently # possible to specify multiple addresses. "*" listens in all IPv4 interfaces. # "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4 # interfaces depending on the operating system. You can specify ports with # "host:port". #listen = * # IP or host address where to listen in for SSL connections. Defaults # to above if not specified. #ssl_listen = # Disable SSL/TLS support. #ssl_disable = no # PEM encoded X.509 SSL/TLS certificate and private key. They're opened before # dropping root privileges, so keep the key file unreadable by anyone but # root. Included doc/mkcert.sh can be used to easily generate self-signed # certificate, just make sure to update the domains in dovecot-openssl.cnf #ssl_cert_file = /etc/ssl/certs/dovecot.pem #ssl_key_file = /etc/ssl/private/dovecot.pem # SSL parameter file. Master process generates this file for login processes. # It contains Diffie Hellman and RSA parameters. #ssl_parameters_file = /var/run/dovecot/ssl-parameters.dat # How often to regenerate the SSL parameters file. Generation is quite CPU # intensive operation. The value is in hours, 0 disables regeneration # entirely. #ssl_parameters_regenerate = 24 # Disable LOGIN command and all other plaintext authentications unless # SSL/TLS is used (LOGINDISABLED capability) #disable_plaintext_auth = no # Use this logfile instead of syslog(). /dev/stderr can be used if you want to # use stderr for logging (ONLY /dev/stderr - otherwise it is closed). #log_path = # For informational messages, use this logfile instead of the default #info_log_path = # Prefix for each line written to log file. % codes are in strftime(3) # format. Note the extra space at the end of line. #log_timestamp = %b %d %H:%M:%S ## ## Login processes ## # Directory where authentication process places authentication UNIX sockets # which login needs to be able to connect to. The sockets are created when # running as root, so you don't have to worry about permissions. #login_dir = /var/run/dovecot/login # chroot login process to the login_dir. Only reason not to do this is if you # wish to run the whole Dovecot without roots. #login_chroot = yes # User to use for the login process. Create a completely new user for this, # and don't use it anywhere else. The user must also belong to a group where # only it has access, it's used to control access for authentication process. #login_user = dovecot # Set max. process size in megabytes. If you don't use # login_process_per_connection you might need to grow this. #login_process_size = 16 # Should each login be processed in it's own process (yes), or should one # login process be allowed to process multiple connections (no)? Yes is more # secure, espcially with SSL/TLS enabled. No is faster since there's no need # to create processes all the time. #login_process_per_connection = yes # Number of login processes to create. If login_process_per_user is # yes, this is the number of extra processes waiting for users to log in. #login_processes_count = 3 # Maximum number of extra login processes to create. The extra process count # usually stays at login_processes_count, but when multiple users start logging # in at the same time more extra processes are created. To prevent fork-bombing # we check only once in a second if new processes should be created - if all # of them are used at the time, we double their amount until limit set by this # setting is reached. This setting is used only if login_process_per_use is yes. #login_max_processes_count = 128 # Maximum number of connections allowed in login state. When this limit is # reached, the oldest connections are dropped. If login_process_per_user # is no, this is a per-process value, so the absolute maximum number of users # logging in actually login_processes_count * max_logging_users. #login_max_logging_users = 256 ## ## Mail processes ## # Maximum number of running mail processes. When this limit is reached, # new users aren't allowed to log in. #max_mail_processes = 1024 # Show more verbose process titles (in ps). Currently shows user name and # IP address. Useful for seeing who are actually using the IMAP processes # (eg. shared mailboxes or if same uid is used for multiple accounts). #verbose_proctitle = no # Show protocol level SSL errors. #verbose_ssl = no # Valid UID range for users, defaults to 500 and above. This is mostly # to make sure that users can't log in as daemons or other system users. # Note that denying root logins is hardcoded to dovecot binary and can't # be done even if first_valid_uid is set to 0. #first_valid_uid = 500 #last_valid_uid = 0 # Valid GID range for users, defaults to non-root/wheel. Users having # non-valid GID as primary group ID aren't allowed to log in. If user # belongs to supplementary groups with non-valid GIDs, those groups are # not set. #first_valid_gid = 1 #last_valid_gid = 0 # ':' separated list of directories under which chrooting is allowed for mail # processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too). # This setting doesn't affect login_chroot or auth_chroot variables. # WARNING: Never add directories here which local users can modify, that # may lead to root exploit. Usually this should be done only if you don't # allow shell access for users. See doc/configuration.txt for more information. #valid_chroot_dirs = # Default MAIL environment to use when it's not set. By leaving this empty # dovecot tries to do some automatic detection as described in # doc/mail-storages.txt. There's a few special variables you can use: # # %u - username # %n - user part in user@domain, same as %u if there's no domain # %d - domain part in user@domain, empty if user there's no domain # %h - home directory # # You can also limit a width of string by giving the number of max. characters # after the '%' character. For example %1u gives the first character of # username. Some examples: # # maildir:/var/mail/%1u/%u/Maildir # mbox:~/mail/:INBOX=/var/mail/%u # mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n # #default_mail_env = # Space-separated list of fields to cache for all mails. Currently these # fields are allowed followed by a list of commands they speed up: # # Envelope - FETCH ENVELOPE and SEARCH FROM, TO, CC, BCC, SUBJECT, # SENTBEFORE, SENTON, SENTSINCE, HEADER MESSAGE-ID, # HEADER IN-REPLY-TO # Body - FETCH BODY # Bodystructure - FETCH BODY, BODYSTRUCTURE # MessagePart - FETCH BODY[1.2.3] (ie. body parts), RFC822.SIZE, # SEARCH SMALLER, LARGER, also speeds up BODY/BODYSTRUCTURE # generation. This is always set with mbox mailboxes, and # also default with Maildir. # # Different IMAP clients work in different ways, that's why Dovecot by default # only caches MessagePart which speeds up most operations. Whenever client # does something where caching could be used, the field is automatically marked # to be cached later. For example after FETCH BODY the BODY will be cached # for all new messages. Normally you should leave this alone, unless you know # what most of your IMAP clients are. Caching more fields than needed makes # the index files larger and generate useless I/O. # # With maildir there's one extra optimization - if nothing is cached, indexing # the maildir becomes much faster since it's not opening any of the mail files. # This could be useful if your IMAP clients access only new mails. #mail_cache_fields = MessagePart # Space-separated list of fields that Dovecot should never set to be cached. # Useful if you want to save disk space at the cost of more I/O when the fields # needed. #mail_never_cache_fields = # Workarounds for various client bugs: # oe6-fetch-no-newmail: # Never send EXISTS/RECENT when replying to FETCH command. Outlook Express # seems to think they are FETCH replies and gives user "Message no longer # in server" error. Note that OE6 still breaks even with this workaround # if synchronization is set to "Headers Only". # outlook-idle: # Outlook and Outlook Express never abort IDLE command, so if no mail # arrives in half a hour, Dovecot closes the connection. This is still # fine, except Outlook doesn't connect back so you don't see if new mail # arrives. #client_workarounds = # Dovecot can notify client of new mail in selected mailbox soon after it's # received. This setting specifies the minimum interval in seconds between # new mail notifications to client - internally they may be checked more or # less often. Setting this to 0 disables the checking. # NOTE: Evolution client breaks with this option when it's trying to APPEND. #mailbox_check_interval = 0 # Like mailbox_check_interval, but used for IDLE command. #mailbox_idle_check_interval = 30 # Allow full filesystem access to clients. There's no access checks other than # what the operating system does for the active UID/GID. It works with both # maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/ # or ~user/. #mail_full_filesystem_access = no # Maximum allowed length for custom flag name. It's only forced when trying # to create new flags. #mail_max_flag_length = 50 # Save mails with CR+LF instead of plain LF. This makes sending those mails # take less CPU, especially with sendfile() syscall with Linux and FreeBSD. # But it also creates a bit more disk I/O which may just make it slower. #mail_save_crlf = no # Use mmap() instead of read() to read mail files. read() seems to be a bit # faster with my Linux/x86 and it's better with NFS, so that's the default. #mail_read_mmaped = no # Copy mail to another folders using hard links. This is much faster than # actually copying the file. This is problematic only if something modifies # the mail in one folder but doesn't want it modified in the others. I don't # know any MUA which would modify mail files directly. IMAP protocol also # requires that the mails don't change, so it would be problematic in any case. # If you care about performance, enable it. #maildir_copy_with_hardlinks = no # Check if mails' content has been changed by external programs. This slows # down things as extra stat() needs to be called for each file. If changes are # noticed, the message is treated as a new message, since IMAP protocol # specifies that existing message are immutable. #maildir_check_content_changes = no # Which locking methods to use for locking mbox. There's three available: # dotlock: Create .lock file. This is the oldest and most NFS-safe # solution. If you want to use /var/mail/ like directory, the users # will need write access to that directory. # fcntl : Use this if possible. Works with NFS too if lockd is used. # flock : May not exist in all systems. Doesn't work with NFS. # # You can use both fcntl and flock too; if you do the order they're declared # with is important to avoid deadlocks if other MTAs/MUAs are using both fcntl # and flock. Some operating systems don't allow using both of them # simultaneously, eg. BSDs. If dotlock is used, it's always created first. #mbox_locks = dotlock fcntl # Should we create dotlock file even when we want only a read-lock? Setting # this to yes hurts the performance when the mailbox is accessed simultaneously # by multiple processes, but it's needed for reliable reading if no other # locking methods are available. #mbox_read_dotlock = no # Maximum time in seconds to wait for lock (all of them) before aborting. #mbox_lock_timeout = 300 # If dotlock exists but the mailbox isn't modified in any way, override the # lock file after this many seconds. #mbox_dotlock_change_timeout = 30 # umask to use for mail files and directories #umask = 0077 # Drop all privileges before exec()ing the mail process. This is mostly # meant for debugging, otherwise you don't get core dumps. Note that setting # this to yes means that log file is opened as the logged in user, which # might not work. It could also be a small security risk if you use single UID # for multiple users, as the users could ptrace() each others processes then. #mail_drop_priv_before_exec = no ## ## IMAP specific settings ## protocol imap { # Login executable location. #login_executable = /usr/libexec/dovecot/imap-login # IMAP executable location #mail_executable = /usr/libexec/dovecot/imap # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. #mail_process_size = 256 # Support for dynamically loadable modules. #mail_use_modules = no #mail_modules = /usr/lib/dovecot/imap } ## ## POP3 specific settings ## protocol pop3 { # Login executable location. #login_executable = /usr/libexec/dovecot/pop3-login # POP3 executable location #mail_executable = /usr/libexec/dovecot/pop3 # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. #mail_process_size = 256 # Support for dynamically loadable modules. #mail_use_modules = no #mail_modules = /usr/lib/dovecot/pop3 } ## ## Authentication processes ## # You can have multiple processes; each time "auth = xx" is seen, a new # process definition is started. The point of multiple processes is to be # able to set stricter permissions to others. For example, plain/PAM # authentication requires roots, but if you also use digest-md5 authentication # for some users, you can authenticate them without any privileges in a # separate auth process. Just remember that only one auth process is asked # for the password, so you can't have different passwords with different # processes (unless they have different auth methods, and you're ok with # having different password for each method). # Executable location #auth_executable = /usr/libexec/dovecot/dovecot-auth # Set max. process size in megabytes. #auth_process_size = 256 # Space separated list of realms for SASL authentication mechanisms that need # them. You can leave it empty if you don't want to support multiple realms. # Many clients simply use the first one listed here, so keep the default realm # first. #auth_realms = # Default realm to use if none was specified. #auth_default_realm = # List of allowed characters in username. If the user-given username contains # a character not listed in here, the login automatically fails. This is just # an extra check to make sure user can't exploit any potential quote escaping # vulnerabilities with SQL/LDAP databases. If you want to allow all characters, # set this value to empty. #auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ # Username to use for users logging in with ANONYMOUS SASL mechanism #auth_anonymous_username = anonymous # More verbose logging. Useful for figuring out why authentication isn't # working. #auth_verbose = no auth default { # Space separated list of wanted authentication mechanisms: # plain digest-md5 anonymous auth_mechanisms = plain # Where user database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # passwd-file : passwd-like file with specified location # static uid= gid= home=: static settings # vpopmail: vpopmail library # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf auth_userdb = passwd # Where password database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # shadow: /etc/shadow or similiar, using getspnam() # pam [ | *]: PAM authentication # passwd-file : passwd-like file with specified location # vpopmail: vpopmail authentication # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf auth_passdb = pam # User to use for the process. This user needs access to only user and # password databases, nothing else. Only shadow and pam authentication # requires roots, so use something else if possible. auth_user = root # Directory where to chroot the process. Most authentication backends don't # work if this is set, and there's no point chrooting if auth_user is root. #auth_chroot = # Number of authentication processes to create #auth_count = 1 } # digest-md5 authentication process. It requires special MD5 passwords which # /etc/shadow and PAM doesn't support, so we never need roots to handle it. # Note that the passwd-file is opened before chrooting and dropping root # privileges, so it may be 0600-root owned file. #auth digest_md5 { # auth_methods = digest-md5 # auth_userdb = passwd-file /etc/passwd.imap # auth_passdb = passwd-file /etc/passwd.imap # auth_user = imapauth #} # if you plan to use only passwd-file, you don't need the two auth processes, # simply set "auth_methods = plain digest-md5" --=-Ff1YyBZwEYWA4zHNOQVw Content-Disposition: attachment; filename=dovecot-twoserver.conf Content-Type: text/plain; name=dovecot-twoserver.conf; charset=iso-8859-15 Content-Transfer-Encoding: 7bit ## Dovecot 1.0 configuration file # Default values are shown after each value, it's not required to uncomment # any of the lines. Exception to this are paths, they're just examples # with real defaults being based on configure options. The paths listed here # are for configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var # --with-ssldir=/etc/ssl # Protocols we want to be serving: # imap imaps pop3 pop3s #protocols = imap imaps # Disable SSL/TLS support. #ssl_disable = no # SSL parameter file. Master process generates this file for login processes. # It contains Diffie Hellman and RSA parameters. #ssl_parameters_file = /var/run/dovecot/ssl-parameters.dat # How often to regenerate the SSL parameters file. Generation is quite CPU # intensive operation. The value is in hours, 0 disables regeneration # entirely. #ssl_parameters_regenerate = 24 # Disable LOGIN command and all other plaintext authentications unless # SSL/TLS is used (LOGINDISABLED capability) #disable_plaintext_auth = no # Prefix for each line written to log file. % codes are in strftime(3) # format. Note the extra space at the end of line. #log_timestamp = %b %d %H:%M:%S ## ## Login processes ## # Directory where authentication process places authentication UNIX sockets # which login needs to be able to connect to. The sockets are created when # running as root, so you don't have to worry about permissions. #login_dir = /var/run/dovecot/login # chroot login process to the login_dir. Only reason not to do this is if you # wish to run the whole Dovecot without roots. #login_chroot = yes # User to use for the login process. Create a completely new user for this, # and don't use it anywhere else. The user must also belong to a group where # only it has access, it's used to control access for authentication process. #login_user = dovecot # Set max. process size in megabytes. If you don't use # login_process_per_connection you might need to grow this. #login_process_size = 16 # Should each login be processed in it's own process (yes), or should one # login process be allowed to process multiple connections (no)? Yes is more # secure, espcially with SSL/TLS enabled. No is faster since there's no need # to create processes all the time. #login_process_per_connection = yes # Number of login processes to create. If login_process_per_user is # yes, this is the number of extra processes waiting for users to log in. #login_processes_count = 3 # Maximum number of extra login processes to create. The extra process count # usually stays at login_processes_count, but when multiple users start logging # in at the same time more extra processes are created. To prevent fork-bombing # we check only once in a second if new processes should be created - if all # of them are used at the time, we double their amount until limit set by this # setting is reached. This setting is used only if login_process_per_use is yes. #login_max_processes_count = 128 # Maximum number of connections allowed in login state. When this limit is # reached, the oldest connections are dropped. If login_process_per_user # is no, this is a per-process value, so the absolute maximum number of users # logging in actually login_processes_count * max_logging_users. #login_max_logging_users = 256 ## ## Mail processes ## # Maximum number of running mail processes. When this limit is reached, # new users aren't allowed to log in. #max_mail_processes = 1024 # Show more verbose process titles (in ps). Currently shows user name and # IP address. Useful for seeing who are actually using the IMAP processes # (eg. shared mailboxes or if same uid is used for multiple accounts). #verbose_proctitle = no # Show protocol level SSL errors. #verbose_ssl = no # Valid UID range for users, defaults to 500 and above. This is mostly # to make sure that users can't log in as daemons or other system users. # Note that denying root logins is hardcoded to dovecot binary and can't # be done even if first_valid_uid is set to 0. #first_valid_uid = 500 #last_valid_uid = 0 # Valid GID range for users, defaults to non-root/wheel. Users having # non-valid GID as primary group ID aren't allowed to log in. If user # belongs to supplementary groups with non-valid GIDs, those groups are # not set. #first_valid_gid = 1 #last_valid_gid = 0 # ':' separated list of directories under which chrooting is allowed for mail # processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too). # This setting doesn't affect login_chroot or auth_chroot variables. # WARNING: Never add directories here which local users can modify, that # may lead to root exploit. Usually this should be done only if you don't # allow shell access for users. See doc/configuration.txt for more information. #valid_chroot_dirs = # Default MAIL environment to use when it's not set. By leaving this empty # dovecot tries to do some automatic detection as described in # doc/mail-storages.txt. There's a few special variables you can use: # # %u - username # %n - user part in user@domain, same as %u if there's no domain # %d - domain part in user@domain, empty if user there's no domain # %h - home directory # # You can also limit a width of string by giving the number of max. characters # after the '%' character. For example %1u gives the first character of # username. Some examples: # # maildir:/var/mail/%1u/%u/Maildir # mbox:~/mail/:INBOX=/var/mail/%u # mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n # #default_mail_env = # Space-separated list of fields to cache for all mails. Currently these # fields are allowed followed by a list of commands they speed up: # # Envelope - FETCH ENVELOPE and SEARCH FROM, TO, CC, BCC, SUBJECT, # SENTBEFORE, SENTON, SENTSINCE, HEADER MESSAGE-ID, # HEADER IN-REPLY-TO # Body - FETCH BODY # Bodystructure - FETCH BODY, BODYSTRUCTURE # MessagePart - FETCH BODY[1.2.3] (ie. body parts), RFC822.SIZE, # SEARCH SMALLER, LARGER, also speeds up BODY/BODYSTRUCTURE # generation. This is always set with mbox mailboxes, and # also default with Maildir. # # Different IMAP clients work in different ways, that's why Dovecot by default # only caches MessagePart which speeds up most operations. Whenever client # does something where caching could be used, the field is automatically marked # to be cached later. For example after FETCH BODY the BODY will be cached # for all new messages. Normally you should leave this alone, unless you know # what most of your IMAP clients are. Caching more fields than needed makes # the index files larger and generate useless I/O. # # With maildir there's one extra optimization - if nothing is cached, indexing # the maildir becomes much faster since it's not opening any of the mail files. # This could be useful if your IMAP clients access only new mails. #mail_cache_fields = MessagePart # Space-separated list of fields that Dovecot should never set to be cached. # Useful if you want to save disk space at the cost of more I/O when the fields # needed. #mail_never_cache_fields = # Workarounds for various client bugs: # oe6-fetch-no-newmail: # Never send EXISTS/RECENT when replying to FETCH command. Outlook Express # seems to think they are FETCH replies and gives user "Message no longer # in server" error. Note that OE6 still breaks even with this workaround # if synchronization is set to "Headers Only". # outlook-idle: # Outlook and Outlook Express never abort IDLE command, so if no mail # arrives in half a hour, Dovecot closes the connection. This is still # fine, except Outlook doesn't connect back so you don't see if new mail # arrives. #client_workarounds = # Dovecot can notify client of new mail in selected mailbox soon after it's # received. This setting specifies the minimum interval in seconds between # new mail notifications to client - internally they may be checked more or # less often. Setting this to 0 disables the checking. # NOTE: Evolution client breaks with this option when it's trying to APPEND. #mailbox_check_interval = 0 # Like mailbox_check_interval, but used for IDLE command. #mailbox_idle_check_interval = 30 # Allow full filesystem access to clients. There's no access checks other than # what the operating system does for the active UID/GID. It works with both # maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/ # or ~user/. #mail_full_filesystem_access = no # Maximum allowed length for custom flag name. It's only forced when trying # to create new flags. #mail_max_flag_length = 50 # Save mails with CR+LF instead of plain LF. This makes sending those mails # take less CPU, especially with sendfile() syscall with Linux and FreeBSD. # But it also creates a bit more disk I/O which may just make it slower. #mail_save_crlf = no # Use mmap() instead of read() to read mail files. read() seems to be a bit # faster with my Linux/x86 and it's better with NFS, so that's the default. #mail_read_mmaped = no # Copy mail to another folders using hard links. This is much faster than # actually copying the file. This is problematic only if something modifies # the mail in one folder but doesn't want it modified in the others. I don't # know any MUA which would modify mail files directly. IMAP protocol also # requires that the mails don't change, so it would be problematic in any case. # If you care about performance, enable it. #maildir_copy_with_hardlinks = no # Check if mails' content has been changed by external programs. This slows # down things as extra stat() needs to be called for each file. If changes are # noticed, the message is treated as a new message, since IMAP protocol # specifies that existing message are immutable. #maildir_check_content_changes = no # Which locking methods to use for locking mbox. There's three available: # dotlock: Create .lock file. This is the oldest and most NFS-safe # solution. If you want to use /var/mail/ like directory, the users # will need write access to that directory. # fcntl : Use this if possible. Works with NFS too if lockd is used. # flock : May not exist in all systems. Doesn't work with NFS. # # You can use both fcntl and flock too; if you do the order they're declared # with is important to avoid deadlocks if other MTAs/MUAs are using both fcntl # and flock. Some operating systems don't allow using both of them # simultaneously, eg. BSDs. If dotlock is used, it's always created first. #mbox_locks = dotlock fcntl # Should we create dotlock file even when we want only a read-lock? Setting # this to yes hurts the performance when the mailbox is accessed simultaneously # by multiple processes, but it's needed for reliable reading if no other # locking methods are available. #mbox_read_dotlock = no # Maximum time in seconds to wait for lock (all of them) before aborting. #mbox_lock_timeout = 300 # If dotlock exists but the mailbox isn't modified in any way, override the # lock file after this many seconds. #mbox_dotlock_change_timeout = 30 # umask to use for mail files and directories #umask = 0077 # Drop all privileges before exec()ing the mail process. This is mostly # meant for debugging, otherwise you don't get core dumps. Note that setting # this to yes means that log file is opened as the logged in user, which # might not work. It could also be a small security risk if you use single UID # for multiple users, as the users could ptrace() each others processes then. #mail_drop_priv_before_exec = no ## ## IMAP specific settings ## protocol imap { # Login executable location. #login_executable = /usr/libexec/dovecot/imap-login # IMAP executable location #mail_executable = /usr/libexec/dovecot/imap # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. #mail_process_size = 256 # Support for dynamically loadable modules. #mail_use_modules = no #mail_modules = /usr/lib/dovecot/imap } ## ## POP3 specific settings ## protocol pop3 { # Login executable location. #login_executable = /usr/libexec/dovecot/pop3-login # POP3 executable location #mail_executable = /usr/libexec/dovecot/pop3 # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. #mail_process_size = 256 # Support for dynamically loadable modules. #mail_use_modules = no #mail_modules = /usr/lib/dovecot/pop3 } ## ## Authentication processes ## # You can have multiple processes; each time "auth = xx" is seen, a new # process definition is started. The point of multiple processes is to be # able to set stricter permissions to others. For example, plain/PAM # authentication requires roots, but if you also use digest-md5 authentication # for some users, you can authenticate them without any privileges in a # separate auth process. Just remember that only one auth process is asked # for the password, so you can't have different passwords with different # processes (unless they have different auth methods, and you're ok with # having different password for each method). # Executable location #auth_executable = /usr/libexec/dovecot/dovecot-auth # Set max. process size in megabytes. #auth_process_size = 256 # Space separated list of realms for SASL authentication mechanisms that need # them. You can leave it empty if you don't want to support multiple realms. # Many clients simply use the first one listed here, so keep the default realm # first. #auth_realms = # Default realm to use if none was specified. #auth_default_realm = # List of allowed characters in username. If the user-given username contains # a character not listed in here, the login automatically fails. This is just # an extra check to make sure user can't exploit any potential quote escaping # vulnerabilities with SQL/LDAP databases. If you want to allow all characters, # set this value to empty. #auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ # Username to use for users logging in with ANONYMOUS SASL mechanism #auth_anonymous_username = anonymous # More verbose logging. Useful for figuring out why authentication isn't # working. #auth_verbose = no server { # Base directory where to store runtime data. base_dir = /var/run/dovecot/first/ # IP or host address where to listen in for connections. It's not currently # possible to specify multiple addresses. "*" listens in all IPv4 interfaces. # "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4 # interfaces depending on the operating system. You can specify ports with # "host:port". listen = first.server.org # IP or host address where to listen in for SSL connections. Defaults # to above if not specified. ssl_listen = first.server.org # PEM encoded X.509 SSL/TLS certificate and private key. They're opened before # dropping root privileges, so keep the key file unreadable by anyone but # root. Included doc/mkcert.sh can be used to easily generate self-signed # certificate, just make sure to update the domains in dovecot-openssl.cnf ssl_cert_file = /etc/ssl/certs/first.pem ssl_key_file = /etc/ssl/private/first.pem # Use this logfile instead of syslog(). /dev/stderr can be used if you want to # use stderr for logging (ONLY /dev/stderr - otherwise it is closed). log_path = /var/log/dovecot/first.log # For informational messages, use this logfile instead of the default info_log_path = /var/log/dovecot/first-access.log auth default { # Space separated list of wanted authentication mechanisms: # plain digest-md5 anonymous auth_mechanisms = plain # Where user database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # passwd-file : passwd-like file with specified location # static uid= gid= home=: static settings # vpopmail: vpopmail library # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf auth_userdb = ldap /etc/first-ldap.conf # Where password database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # shadow: /etc/shadow or similiar, using getspnam() # pam [ | *]: PAM authentication # passwd-file : passwd-like file with specified location # vpopmail: vpopmail authentication # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf auth_passdb = ldap /etc/first-ldap.conf # User to use for the process. This user needs access to only user and # password databases, nothing else. Only shadow and pam authentication # requires roots, so use something else if possible. auth_user = doveauth # Directory where to chroot the process. Most authentication backends don't # work if this is set, and there's no point chrooting if auth_user is root. #auth_chroot = # Number of authentication processes to create #auth_count = 1 } } # second server server { base_dir = /var/run/dovecot/second/ listen = second.server.org ssl_listen = second.server.org ssl_cert_file = /etc/ssl/certs/second.pem ssl_key_file = /etc/ssl/private/second.pem log_path = /var/log/dovecot/second.log info_log_path = /var/log/dovecot/second-access.log # enable some IMAP plugins for this server protocol imap { mail_use_modules = yes mail_modules = /usr/lib/dovecot/imap/second } auth default { auth_mechanisms = plain auth_userdb = ldap /etc/second-ldap.conf auth_passdb = ldap /etc/second-ldap.conf auth_user = doveauth } } --=-Ff1YyBZwEYWA4zHNOQVw-- From mem@mv.mv.com Wed Jul 2 01:45:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0C70E2399B; Wed, 2 Jul 2003 01:45:00 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id DFE06238E1 for ; Wed, 2 Jul 2003 01:44:54 +0300 (EEST) Received: (qmail 809 invoked by uid 101); 1 Jul 2003 18:44:53 -0400 From: "Mark E. Mallett" Date: Tue, 1 Jul 2003 18:44:53 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Configuration file changes Message-ID: <20030701224453.GB2166@iridium.mv.net> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <1057063302.8173.674.camel@hurina> <1057086882.8170.730.camel@hurina> <3F01EC00.9000703@bnap.hu> <1057094775.8170.758.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1057094775.8170.758.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 22:45:00 -0000 X-UID: 1105 Status: O Content-Length: 1767 > > Although I'm still not really sure how this would work either. Currently > the settings in login group you defined first (imap by default) are used > as defaults for the second login group (pop3). That's kind of messy I > think.. > > Maybe I should completely drop the login group and rather make protocol > groups. Something like: (etc) Perhaps some of the confusion is that it looks like you are using groups as a way both to encapsulate a group of settings and as a way to override inheritence of global settings. While those things are similar it's hard to generalize them by way of nested statements. On the other hand I could be all wet :-) (Somebody mentioned BIND9, but it looks more like you have been reading innfeed conf files. Bind9 configs are completely block oriented- innfeed confs have the peculiar line-oriented commands with block encapsulations). At any rate perhaps a different way to accomplish parameter grouping would be to define templates and invoke those templates within scoped declarations, e.g.: template standard { login_process_size = 16 login_process_count = 3 first_valid_uid = 100 last_valid_gid = 0 } template wide-open { like standard first_valid_uid = 0 } server a { like standard // nested reference to another template imap_listen a.b.c.d ... } server b { like wide-open imap_listen e.f.g.h } I could imagine implementing a "template" as a set of context-free tag/value pairs. When invoked (e.g. via "like") the parser would simply note the reference to the template, and eventually parse the tag/value pairs when the scope is closed, applying those that had not already been specifically set. This may not be what you were thinking about, in which case, you can ignore it... -mm- From mem@mv.mv.com Wed Jul 2 01:47:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D19ED2399B; Wed, 2 Jul 2003 01:47:37 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id DAF25238E1 for ; Wed, 2 Jul 2003 01:47:35 +0300 (EEST) Received: (qmail 2041 invoked by uid 101); 1 Jul 2003 18:47:34 -0400 From: "Mark E. Mallett" Date: Tue, 1 Jul 2003 18:47:34 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Configuration file changes Message-ID: <20030701224734.GC2166@iridium.mv.net> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <1057063302.8173.674.camel@hurina> <1057086882.8170.730.camel@hurina> <3F01EC00.9000703@bnap.hu> <1057094775.8170.758.camel@hurina> <20030701224453.GB2166@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030701224453.GB2166@iridium.mv.net> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 22:47:38 -0000 X-UID: 1106 Status: O > > template wide-open { > like standard > first_valid_uid = 0 > } > > server a { > like standard // nested reference to another template > imap_listen a.b.c.d > ... > } obviously I put the // comment in the wrong place (should be in the one above) but you probably got that. From tss@iki.fi Wed Jul 2 02:10:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 595FF239A2; Wed, 2 Jul 2003 02:10:10 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B56A1238E1 for ; Wed, 2 Jul 2003 02:10:04 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 618FD5C896A2 for ; Wed, 2 Jul 2003 02:10:04 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030701224453.GB2166@iridium.mv.net> References: <1056999757.7582.610.camel@hurina> <3F009D72.6050203@bnap.hu> <1057061732.8172.645.camel@hurina> <3F017CEA.5060403@bnap.hu> <1057063302.8173.674.camel@hurina> <1057086882.8170.730.camel@hurina> <3F01EC00.9000703@bnap.hu> <1057094775.8170.758.camel@hurina> <20030701224453.GB2166@iridium.mv.net> Content-Type: text/plain Message-Id: <1057101004.7691.781.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 02 Jul 2003 02:10:04 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 23:10:10 -0000 X-UID: 1107 Status: O Content-Length: 1724 On Wed, 2003-07-02 at 01:44, Mark E. Mallett wrote: > Perhaps some of the confusion is that it looks like you are using > groups as a way both to encapsulate a group of settings and as a way to > override inheritence of global settings. While those things are > similar it's hard to generalize them by way of nested statements. Yes .. Well, currently there's only auth group which encapsulates settings. Although it also allows overriding global settings :) That's a bit messy. You have to be able to define multiple auth processes - how would you show that they work differently? Another similiar thing is namespace configuration which I'll add later. > At any rate perhaps a different way to accomplish parameter grouping > would be to define templates and invoke those templates within > scoped declarations, e.g.: Ah, yes :) That could be better. More powerful and probably easier to understand as well. > I could imagine implementing a "template" as a set of context-free > tag/value pairs. When invoked (e.g. via "like") the parser would simply > note the reference to the template, and eventually parse the tag/value > pairs when the scope is closed, applying those that had not already > been specifically set. It probably should also be possible to add some subgroups in it .. Such as: template modular_imap { protocol imap { mail_use_modules = yes } } server a { like modular_imap } Anyway, I think we'd still need to have everything default to root-level definitions. So that I wouldn't need to add "template standard {" to beginning of config file. And add "like standard" to every server definition. Also good for backwards compatibility.. But template certainly replaces the old "group". From tss@iki.fi Wed Jul 2 04:56:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C0105238D5; Wed, 2 Jul 2003 04:56:57 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3C035238D4 for ; Wed, 2 Jul 2003 04:56:56 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 010765C896A2 for ; Wed, 2 Jul 2003 04:56:55 +0300 (EEST) Subject: Re: [Dovecot] a new error message From: Timo Sirainen To: Dovecot List In-Reply-To: <1055752958.10262.47.camel@hurina> References: <3EEC4343.8050702@bnap.hu> <20030615171150.GB696@waste.org> <1055752958.10262.47.camel@hurina> Content-Type: text/plain Message-Id: <1057111015.28625.831.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 02 Jul 2003 04:56:55 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jul 2003 01:56:57 -0000 X-UID: 1108 Status: O On Mon, 2003-06-16 at 11:42, Timo Sirainen wrote: > > > The current command did not succeed. The mail server responded: Error in > > > IMAP command UID: Too long argument.." > For now that's the only fix. I'm thinking of changing it so that you can > give a total command line limit. Default could be set to 100kB or so > then. RFC-2683 recommends 8000 chars though, so this could be considered > a client bug.. imap_max_line_length setting added to CVS. Default is 64kB now. Hope I didn't break it completely :) From darix@web.de Wed Jul 2 06:59:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CC179238D7; Wed, 2 Jul 2003 06:59:03 +0300 (EEST) Received: from smtp.web.de (smtp02.web.de [217.72.192.151]) by danu.procontrol.fi (Postfix) with ESMTP id 4C8F4238D4 for ; Wed, 2 Jul 2003 06:58:59 +0300 (EEST) Received: from vpn018020.uni-rostock.de ([139.30.18.20] helo=web.de) by smtp.web.de with esmtp (TLSv1:RC4-MD5:128) (WEB.DE 4.98 #232) id 19XYlg-0006iU-00; Wed, 02 Jul 2003 05:58:52 +0200 Message-ID: <3F02587B.4010506@web.de> Date: Wed, 02 Jul 2003 05:58:51 +0200 From: Marcus Rueckert User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5a) Gecko/20030507 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jens Gutzeit Subject: Re: [Dovecot] migrating from cyrus References: <200306300152.26598.jens@freebsdforum.de> <1056974797.8173.539.camel@hurina> <1056977612.7582.543.camel@hurina> <200306301544.03562.jens@freebsdforum.de> In-Reply-To: <200306301544.03562.jens@freebsdforum.de> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: darix@web.de X-Mailman-Approved-At: Wed, 02 Jul 2003 16:20:11 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jul 2003 03:59:04 -0000 X-UID: 1109 Status: O hi all, just browsing freshmeat: cyrus2courier 1.1 by mad - Tuesday, July 1st 2003 11:56 PDT About: cyrus2courier is a little hack to convert a single mailbox from the format used by Cyrus-Imap into the Maildir++ format used by the Courier-Imap IMAP server. Changes: This release includes some 64bit fixes, code to preserve UIDs, support for Cyrus-Imap 2.0/2.1, hashed Cyrus-Imap subscribe/quota directories, and support for Dovecot-compatible output. http://www.madness.at/projects/ dunno if he just include the fixes from timo. darix :) From darix@web.de Wed Jul 2 06:59:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E3680238D4; Wed, 2 Jul 2003 06:59:10 +0300 (EEST) Received: from smtp.web.de (smtp02.web.de [217.72.192.151]) by danu.procontrol.fi (Postfix) with ESMTP id 78D5A238E1 for ; Wed, 2 Jul 2003 06:59:07 +0300 (EEST) Received: from vpn018020.uni-rostock.de ([139.30.18.20] helo=web.de) by smtp.web.de with esmtp (TLSv1:RC4-MD5:128) (WEB.DE 4.98 #232) id 19XYlu-0006jR-00; Wed, 02 Jul 2003 05:59:06 +0200 Message-ID: <3F025889.8060309@web.de> Date: Wed, 02 Jul 2003 05:59:05 +0200 From: Marcus Rueckert User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5a) Gecko/20030507 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jens Gutzeit Subject: Re: [Dovecot] migrating from cyrus References: <200306300152.26598.jens@freebsdforum.de> <1056974797.8173.539.camel@hurina> <1056977612.7582.543.camel@hurina> <200306301544.03562.jens@freebsdforum.de> In-Reply-To: <200306301544.03562.jens@freebsdforum.de> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: darix@web.de X-Mailman-Approved-At: Wed, 02 Jul 2003 16:20:11 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jul 2003 03:59:11 -0000 X-UID: 1110 Status: O hi all, just browsing freshmeat: cyrus2courier 1.1 by mad - Tuesday, July 1st 2003 11:56 PDT About: cyrus2courier is a little hack to convert a single mailbox from the format used by Cyrus-Imap into the Maildir++ format used by the Courier-Imap IMAP server. Changes: This release includes some 64bit fixes, code to preserve UIDs, support for Cyrus-Imap 2.0/2.1, hashed Cyrus-Imap subscribe/quota directories, and support for Dovecot-compatible output. http://www.madness.at/projects/ dunno if he just include the fixes from timo. darix :) From charlieb-dovecot@e-smith.com Wed Jul 2 18:33:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BACA8238D7; Wed, 2 Jul 2003 18:33:43 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 54F93238D4 for ; Wed, 2 Jul 2003 18:33:39 +0300 (EEST) Received: (qmail 1198 invoked by uid 404); 2 Jul 2003 15:33:37 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 02 Jul 2003 11:33:36 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 02 Jul 2003 15:33:36 -0000 Received: (qmail 10549 invoked from network); 2 Jul 2003 15:33:36 -0000 Received: from unknown (134.199.49.82) by allspice.nssg.mitel.com with QMQP; 2 Jul 2003 15:33:36 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 2 Jul 2003 15:40:51 -0000 Date: Wed, 2 Jul 2003 11:40:51 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@vegemite.nssg.mitel.com To: Timo Sirainen In-Reply-To: <1057061533.8172.640.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: "'dovecot@procontrol.fi'" Subject: [Dovecot] NFS message ordering (was RE: 0.99.10 released) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jul 2003 15:33:43 -0000 X-UID: 1111 Status: O Content-Length: 1256 On 1 Jul 2003, Timo Sirainen wrote: > On Tue, 2003-07-01 at 04:05, Charlie Brady wrote: > > It seems from a brief test that messages aren't sorted when new UIDs are > > assigned to existing messages in ./cur/. As a result, UIDs may be nothing > > like in message arrival order. > > I thought I fixed it just before 0.99.10 release. Just before? Do you mean "after 0.99.10-rc3" (which is what I tested)? I don't recognise the fix in the ChangeLog. > And I just tested with 4000 messages, they were ordered just fine. Here's some of my dovecot-uidlist: 1 1056728482 7490 1 1029035495.23819.allspice,U=3055,W=3232 2 1048787491.30439.allspice,U=14979,W=1922 3 1030760219.16598.allspice,U=4022,W=3563 4 1043671263.23068.allspice,U=11963,W=1892 5 1030739827.15369.allspice,U=4011,W=1981 6 1035300042.15815.allspice,U=7062,W=2257 7 1020252495.10690.allspice,U=188,W=3681 8 1040245470.4889.allspice,U=10279,W=2281 9 1043276959.18707.allspice,U=11811,W=2308 10 1046307299.12933.allspice,U=13793,W=4375 ... -- Charlie Brady charlie_brady@mitel.com Lead Product Developer Network Server Solutions Group Mitel Networks Corporation http://www.mitel.com/smallbusiness Phone: +1 (613) 592 5660 or 592 2122 Fax: +1 (613) 592 1175 From tss@iki.fi Wed Jul 2 18:41:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DCB44238D7; Wed, 2 Jul 2003 18:41:19 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 12E06238D4 for ; Wed, 2 Jul 2003 18:41:17 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A9A515C896A2; Wed, 2 Jul 2003 18:41:16 +0300 (EEST) From: Timo Sirainen To: Charlie Brady In-Reply-To: References: Content-Type: text/plain Message-Id: <1057160476.28625.877.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 02 Jul 2003 18:41:16 +0300 Content-Transfer-Encoding: 7bit cc: "'dovecot@procontrol.fi'" Subject: [Dovecot] Re: NFS message ordering (was RE: 0.99.10 released) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jul 2003 15:41:20 -0000 X-UID: 1112 Status: O On Wed, 2003-07-02 at 18:40, Charlie Brady wrote: > > > It seems from a brief test that messages aren't sorted when new UIDs are > > > assigned to existing messages in ./cur/. As a result, UIDs may be nothing > > > like in message arrival order. > > > > I thought I fixed it just before 0.99.10 release. > > Just before? Do you mean "after 0.99.10-rc3" (which is what I tested)? I > don't recognise the fix in the ChangeLog. Yes, 11 minutes before release :) 2003-06-26 16:01 Timo Sirainen * src/lib-index/maildir/maildir-sync.c: When assigning UIDs to mails, we tried to sort them with strcmp(), but that wasn't actually working. Also we now sort properly the mails that had unix timestamp older than 1 billion (Sep 9 2001). From yeled@myinternet.com.au Thu Jul 3 03:26:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4C3CF238D7; Thu, 3 Jul 2003 03:26:34 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 05ADE238D5 for ; Thu, 3 Jul 2003 03:26:27 +0300 (EEST) Received: from machine.spodder.com (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 2FA2D9053 for ; Thu, 3 Jul 2003 10:25:43 +1000 (EST) Received: by machine.spodder.com (Postfix, from userid 501) id 047427A9F6; Thu, 3 Jul 2003 10:26:22 +1000 (EST) Date: Thu, 3 Jul 2003 09:29:04 +1000 From: Charlie Allom To: dovecot@procontrol.fi Message-ID: <20030702232904.GA15723@myinternet.com.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="82I3+IH0IqGh5yIs" Content-Disposition: inline User-Agent: Mutt/1.4.1i Resent-From: yeled@myinternet.com.au Resent-Date: Thu, 3 Jul 2003 10:26:21 +1000 Resent-To: dovecot@procontrol.fi Resent-Message-Id: <20030703002622.047427A9F6@machine.spodder.com> Subject: [Dovecot] NetBSD Support X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jul 2003 00:26:34 -0000 X-UID: 1113 Status: O --82I3+IH0IqGh5yIs Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Timo, you can safely update the NetBSD support from 1.5 to 1.5, 1.6 and 2.0 (-current/1.7). C. --=20 charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --82I3+IH0IqGh5yIs Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (Darwin) iD8DBQE/A2rAqiZDwhSqeUERAtdzAKCE/9jvdzMjDJkbXXVAeBDk1jHI7gCggECo A2Hpb9K10S6UQV6lYv95cyo= =umvJ -----END PGP SIGNATURE----- --82I3+IH0IqGh5yIs-- From tom@rpdnet.com Thu Jul 3 03:42:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 790B8238E1; Thu, 3 Jul 2003 03:42:30 +0300 (EEST) Received: from rpunkt.kicks-ass.net (p50860CE6.dip0.t-ipconnect.de [80.134.12.230]) by danu.procontrol.fi (Postfix) with ESMTP id 9FA52238D5 for ; Thu, 3 Jul 2003 03:42:26 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by rpunkt.kicks-ass.net (Postfix) with ESMTP id 7433541717 for ; Thu, 3 Jul 2003 00:42:16 +0000 (GMT) Received: from rpunkt.kicks-ass.net ([127.0.0.1]) by localhost (commbox [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 05088-03 for ; Thu, 3 Jul 2003 00:42:11 +0000 (GMT) Received: from aural.c3h (c3h-clubraum [62.48.71.161]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by rpunkt.kicks-ass.net (Postfix) with ESMTP id A4451416FF for ; Thu, 3 Jul 2003 00:42:10 +0000 (GMT) Date: Thu, 3 Jul 2003 04:42:13 +0200 From: tom hensel To: dovecot@procontrol.fi Subject: Re: [Dovecot] NetBSD Support Message-Id: <20030703044213.78fff408.tom@rpdnet.com> In-Reply-To: <20030702232904.GA15723@myinternet.com.au> References: <20030702232904.GA15723@myinternet.com.au> X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.0GD13P,PC:03wk" X-Virus-Scanned: by amavisd-new at rpdnet.com X-Mailman-Approved-At: Thu, 03 Jul 2003 04:29:51 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jul 2003 00:42:30 -0000 X-UID: 1114 Status: O --=.0GD13P,PC:03wk Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit hi, > you can safely update the NetBSD support from 1.5 to 1.5, 1.6 and 2.0 > (-current/1.7). you are just right, but i've never seen anything tagged as 1.7 - current is 2.0. -- regards, TOM --=.0GD13P,PC:03wk Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (NetBSD) iD8DBQE/A5gIC85nY/Jv3aMRAjzEAJ9eWjNXBUgt/Mq5LzVJM/xNPBM7DwCfUTdv kFIPydgHbk4EvQ4AXBbhrwo= =yUsu -----END PGP SIGNATURE----- --=.0GD13P,PC:03wk-- From tss@iki.fi Thu Jul 3 04:40:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7E888238E1; Thu, 3 Jul 2003 04:40:48 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EFCF9238D4 for ; Thu, 3 Jul 2003 04:40:45 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 8595E5C896A2 for ; Thu, 3 Jul 2003 04:40:45 +0300 (EEST) Subject: Re: [Dovecot] NetBSD Support From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030702232904.GA15723@myinternet.com.au> References: <20030702232904.GA15723@myinternet.com.au> Content-Type: text/plain Message-Id: <1057196445.8170.917.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 03 Jul 2003 04:40:45 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jul 2003 01:40:48 -0000 X-UID: 1115 Status: O On Thu, 2003-07-03 at 02:29, Charlie Allom wrote: > you can safely update the NetBSD support from 1.5 to 1.5, 1.6 and 2.0 > (-current/1.7). I think I'll list only OS releases there, you never know what might happen in -current. FreeBSD-current changed their header files a bit some months ago and Dovecot broke. From charlie@rubberduck.com Thu Jul 3 04:46:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9D13A23996; Thu, 3 Jul 2003 04:46:25 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id B258B238D4 for ; Thu, 3 Jul 2003 04:46:22 +0300 (EEST) Received: from machine.spodder.com (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id D0C808F22; Thu, 3 Jul 2003 11:45:42 +1000 (EST) Received: by machine.spodder.com (Postfix, from userid 501) id 62A437AE37; Thu, 3 Jul 2003 11:46:21 +1000 (EST) Date: Thu, 3 Jul 2003 11:46:21 +1000 From: Charlie Allom To: Timo Sirainen Subject: Re: [Dovecot] NetBSD Support Message-ID: <20030703014621.GA19974@myinternet.com.au> References: <20030702232904.GA15723@myinternet.com.au> <1057196445.8170.917.camel@hurina> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ew6BAiZeqk4r7MaW" Content-Disposition: inline In-Reply-To: <1057196445.8170.917.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jul 2003 01:46:25 -0000 X-UID: 1116 Status: O --ew6BAiZeqk4r7MaW Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Jul 03, 2003 at 04:40:45AM +0300, Timo Sirainen wrote: > On Thu, 2003-07-03 at 02:29, Charlie Allom wrote: > > you can safely update the NetBSD support from 1.5 to 1.5, 1.6 and 2.0 > > (-current/1.7). >=20 > I think I'll list only OS releases there, you never know what might > happen in -current. FreeBSD-current changed their header files a bit > some months ago and Dovecot broke. OK well, 1.6 has been the latest release for some time. C. --=20 charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --ew6BAiZeqk4r7MaW Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (Darwin) iD8DBQE/A4rtqiZDwhSqeUERAmsEAJ4oF2xUV/vVd70cgMHWzTk1v5FE7ACbBGK5 0rUqcHKi8EclTGw5YOsAYjE= =gPT5 -----END PGP SIGNATURE----- --ew6BAiZeqk4r7MaW-- From nk@atki.net Thu Jul 3 19:12:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3F837238D7; Thu, 3 Jul 2003 19:12:09 +0300 (EEST) Received: from sun.atki.net (unknown [193.209.91.150]) by danu.procontrol.fi (Postfix) with ESMTP id 0B68D238D4 for ; Thu, 3 Jul 2003 19:12:04 +0300 (EEST) Received: by sun.atki.net (Postfix, from userid 80) id 4A39028B56; Thu, 3 Jul 2003 19:11:27 +0300 (EEST) Received: from armada.atki.net (armada.atki.net [10.0.0.70]) by posti.atki.net (IMP) with HTTP for ; Thu, 3 Jul 2003 19:11:27 +0300 Message-ID: <1057248687.3f0455af0f1c8@posti.atki.net> Date: Thu, 3 Jul 2003 19:11:27 +0300 From: Niilo Kajander To: Charlie Allom Subject: Re: [Dovecot] NetBSD Support References: <20030702232904.GA15723@myinternet.com.au> <1057196445.8170.917.camel@hurina> <20030703014621.GA19974@myinternet.com.au> In-Reply-To: <20030703014621.GA19974@myinternet.com.au> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.1 / FreeBSD-4.8 X-Originating-IP: 10.0.0.70 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jul 2003 16:12:09 -0000 X-UID: 1117 Status: O Quoting Charlie Allom : > On Thu, Jul 03, 2003 at 04:40:45AM +0300, Timo Sirainen wrote: > > On Thu, 2003-07-03 at 02:29, Charlie Allom wrote: > > > you can safely update the NetBSD support from 1.5 to 1.5, 1.6 and > 2.0 > > > (-current/1.7). > > > > I think I'll list only OS releases there, you never know what > might > > happen in -current. FreeBSD-current changed their header files a > bit > > some months ago and Dovecot broke. > > OK well, 1.6 has been the latest release for some time. More like 1.6.1, which is just a patch release for 1.6. -- Niilo Kajander From lrclause@cs.uiuc.edu Thu Jul 3 22:43:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6EFFC238D7; Thu, 3 Jul 2003 22:43:10 +0300 (EEST) Received: from shasta.cs.uiuc.edu (shasta.cs.uiuc.edu [128.174.246.68]) by danu.procontrol.fi (Postfix) with ESMTP id 90619238D5 for ; Thu, 3 Jul 2003 22:43:08 +0300 (EEST) Received: from shasta.cs.uiuc.edu (localhost [127.0.0.1]) h63Jh6Mu017738 for ; Thu, 3 Jul 2003 14:43:06 -0500 Received: (from lrclause@localhost) by shasta.cs.uiuc.edu (8.12.9/8.12.9/Debian-3) id h63Jh62B017737; Thu, 3 Jul 2003 14:43:06 -0500 X-Authentication-Warning: shasta.cs.uiuc.edu: lrclause set sender to lrclause@cs.uiuc.edu using -f To: dovecot@procontrol.fi From: Lars Clausen Date: Thu, 03 Jul 2003 14:43:06 -0500 Message-ID: <818yrfe6r9.fsf@shasta.cs.uiuc.edu> User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: [Dovecot] Auth problems against Eudora X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jul 2003 19:43:10 -0000 X-UID: 1118 Status: O Content-Length: 1309 Hi, I'm trying to set up dovecot to do pop3 from Eudora, but it keeps breaking on authentication attempts using plain auth. When I snoop the connection with tcpflow, here's what I see: 128.174.246.068.00110-062.107.004.050.49653: +OK dovecot ready. 128.174.246.068.00110-062.107.004.050.49653: +OK dovecot ready. 128.174.246.068.00110-062.107.004.050.49653:=20 062.107.004.050.49653-128.174.246.068.00110: CAPA 128.174.246.068.00110-062.107.004.050.49653: +OK CAPA TOP USER UIDL RESP-CODES STLS SASL PLAIN DIGEST-MD5 . 062.107.004.050.49653-128.174.246.068.00110: auth plain AG1p2YtlQBebz12YmXQ 128.174.246.068.00110-062.107.004.050.49653: -ERR Unsupported authenticatio= n mechanism. It seems to me that sending 'auth plain ' is against the RFCs (1734, 2195, 1939). What can be done about this? I'm also curious why MD5 auth is not allowed for shadow passwords whenthat has been standard on Linux for a while now. Or am I missing something? Thanks in advance, -Lars --=20 Lars Clausen (http://shasta.cs.uiuc.edu/~lrclause)| H=C3=A5rdgrim of Numenor "I do not agree with a word that you say, but I |------------------------= ---- will defend to the death your right to say it." | Where are we going, and --Evelyn Beatrice Hall paraphrasing Voltaire | what's with the handbas= ket? From shalehperry@comcast.net Fri Jul 4 20:57:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4CAF0238D7; Fri, 4 Jul 2003 20:57:43 +0300 (EEST) Received: from sccrmhc11.comcast.net (sccrmhc11.comcast.net [204.127.202.55]) by danu.procontrol.fi (Postfix) with ESMTP id B6184238D5 for ; Fri, 4 Jul 2003 20:57:36 +0300 (EEST) Received: from one (12-235-54-7.client.attbi.com[12.235.54.7](untrusted sender)) by comcast.net (sccrmhc11) with SMTP id <2003070417573501100im6c8e>; Fri, 4 Jul 2003 17:57:35 +0000 From: Sean 'Shaleh' Perry To: dovecot@procontrol.fi Date: Fri, 4 Jul 2003 10:57:34 -0700 User-Agent: KMail/1.5.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200307041057.34008.shalehperry@comcast.net> Subject: [Dovecot] "Internal Error" from maildirs (new user) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jul 2003 17:57:43 -0000 X-UID: 1119 Status: O Content-Length: 2313 I decided to give dovecot a try this morning. To create a test system I copied mail from my wife and myself into /var/spool/imap. This mail was already in maildir format from our mail clients. I set the mail env to maildir:/var/spool/imap/%u. Below is a session (via telnet): . OK Logged in. . list "" * * LIST (\UnMarked) "." "blackbox" * LIST (\UnMarked) "." "blackbox-devel" * LIST (\UnMarked) "." "debian-devel" * LIST (\UnMarked) "." "debian-dpkg" * LIST (\UnMarked) "." "debian-ipv6" * LIST (\UnMarked) "." "debian-laptop" * LIST (\UnMarked) "." "debian-legal" * LIST (\UnMarked) "." "debian-lint" * LIST (\UnMarked) "." "debian-mentors" * LIST (\UnMarked) "." "debian-policy" * LIST (\UnMarked) "." "debian-private" * LIST (\UnMarked) "." "debian-publicity" * LIST (\UnMarked) "." "debian-python" * LIST (\UnMarked) "." "debian-qa" * LIST (\UnMarked) "." "debian-release" * LIST (\UnMarked) "." "debian-security" * LIST (\UnMarked) "." "debian-spi" * LIST (\UnMarked) "." "debian-testing" * LIST (\UnMarked) "." "debian-user" * LIST (\UnMarked) "." "debian-vote" * LIST (\UnMarked) "." "drafts" * LIST (\UnMarked) "." "lsb-impl" * LIST (\UnMarked) "." "bad" * LIST (\UnMarked) "." "lsb-test" * LIST (\UnMarked) "." "maradns" * LIST (\UnMarked) "." "narval" * LIST (\UnMarked) "." "python-list" * LIST (\UnMarked) "." "sent-mail" * LIST (\UnMarked) "." "spam" * LIST (\UnMarked) "." "storage" * LIST (\UnMarked) "." "trash" * LIST (\UnMarked) "." "xdg" * LIST (\UnMarked) "." "outbox" * LIST (\UnMarked) "." "bf-python" * LIST (\UnMarked) "." "debian-bug" * LIST (\UnMarked) "." "python-tutor" * LIST (\Marked) "." "INBOX" . OK List completed. . select inbox . NO Internal error [2003-07-04 10:50:51] . examine inbox . NO Internal error [2003-07-04 10:52:22] . examine bad * NO Couldn't use index files * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS ()] Read-only mailbox. * 0 EXISTS * 0 RECENT * OK [UIDVALIDITY 1057341147] UIDs valid * OK [UIDNEXT 1] Predicted next UID . OK [READ-ONLY] Select completed. I can find no cause of the inbox error in any log. Suggestions? All of my sub folders come back as read only (even when I use select). I presume this is a permissions issue. What should the perms be? I am using 0.99.10 from Debian if it matters. From tss@iki.fi Sat Jul 5 01:23:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 72A73238D7; Sat, 5 Jul 2003 01:23:13 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AD39E238D4; Sat, 5 Jul 2003 01:23:09 +0300 (EEST) Date: Sat, 5 Jul 2003 00:53:39 +0300 Subject: Re: [Dovecot] "Internal Error" from maildirs (new user) Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: "Sean 'Shaleh' Perry" From: Timo Sirainen In-Reply-To: <200307041057.34008.shalehperry@comcast.net> Message-Id: Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) X-Spam-Status: No, hits=-5.4 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jul 2003 22:23:13 -0000 X-UID: 1120 Status: O On Friday, July 4, 2003, at 08:57 PM, Sean 'Shaleh' Perry wrote: > . NO Internal error [2003-07-04 10:50:51] > > I can find no cause of the inbox error in any log. Suggestions? Internal errors always write to error log what the real error message was. By default Dovecot logs to mail service, which often goes to /var/log/mail.log. If you still can't find it, set log_path in config file to where you want the log to go. > All of my sub folders come back as read only (even when I use select). > I > presume this is a permissions issue. What should the perms be? Everything should be readable and writable by the logged in user's UID. From shalehperry@comcast.net Sat Jul 5 10:38:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 41DEC238D5; Sat, 5 Jul 2003 10:38:34 +0300 (EEST) Received: from sccrmhc11.comcast.net (sccrmhc11.comcast.net [204.127.202.55]) by danu.procontrol.fi (Postfix) with ESMTP id 60098238D4 for ; Sat, 5 Jul 2003 10:38:32 +0300 (EEST) Received: from one (12-235-54-7.client.attbi.com[12.235.54.7](untrusted sender)) by comcast.net (sccrmhc11) with SMTP id <20030705073831011000mf2qe>; Sat, 5 Jul 2003 07:38:31 +0000 From: Sean 'Shaleh' Perry To: dovecot@procontrol.fi Subject: Re: [Dovecot] "Internal Error" from maildirs (new user) Date: Sat, 5 Jul 2003 00:38:29 -0700 User-Agent: KMail/1.5.2 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200307050038.29499.shalehperry@comcast.net> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jul 2003 07:38:34 -0000 X-UID: 1121 Status: O On Friday 04 July 2003 14:53, Timo Sirainen wrote: > On Friday, July 4, 2003, at 08:57 PM, Sean 'Shaleh' Perry wrote: > > . NO Internal error [2003-07-04 10:50:51] > > > > I can find no cause of the inbox error in any log. Suggestions? > > Internal errors always write to error log what the real error message > was. By default Dovecot logs to mail service, which often goes to > /var/log/mail.log. If you still can't find it, set log_path in config > file to where you want the log to go. > I was grepping for Internal error. Turns out there were several instances of: imap(shaleh): mkdir(/var/spool/imap/shaleh/.INBOX) failed: Permission denied > > All of my sub folders come back as read only (even when I use select). > > I > > presume this is a permissions issue. What should the perms be? > > Everything should be readable and writable by the logged in user's UID. ah. I had them writable by the daemon's UID. Fixing the permissions problem solved everything. From tss@iki.fi Sun Jul 6 23:12:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1031F23860; Sun, 6 Jul 2003 23:12:10 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CCA2F2384C for ; Sun, 6 Jul 2003 23:11:36 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 8886B5C896A2 for ; Sun, 6 Jul 2003 23:11:35 +0300 (EEST) Subject: Re: [Dovecot] Auth problems against Eudora From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <818yrfe6r9.fsf@shasta.cs.uiuc.edu> References: <818yrfe6r9.fsf@shasta.cs.uiuc.edu> Content-Type: text/plain Message-Id: <1057522295.1736.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 06 Jul 2003 23:11:35 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jul 2003 20:12:10 -0000 X-UID: 1122 Status: O Content-Length: 1118 On Thu, 2003-07-03 at 22:43, Lars Clausen wrote: > 062.107.004.050.49653-128.174.246.068.00110: auth plain AG1p2YtlQBebz12YmXQ > > 128.174.246.068.00110-062.107.004.050.49653: -ERR Unsupported authentication mechanism. > > > It seems to me that sending 'auth plain ' is against the RFCs (1734, > 2195, 1939). What can be done about this? Hmm. It looks like it tried to send SASL's "initial response" in the AUTH command itself. I also don't see any RFCs mentioning that it should be supported, but at least UW-IMAP does seem to support it. I'm not sure if I should bother adding support since it's not required by any RFCs and it would require larger changes to my code.. Also the data after auth plain should have been base64 encoded user and password, but decoding the above shows only garbage.. > I'm also curious why MD5 auth is not allowed for shadow passwords whenthat > has been standard on Linux for a while now. Or am I missing something? What do you mean by MD5 auth? DIGEST-MD5 requires storing password in it's own special way. APOP and CRAM-MD5 require storing the password in plaintext. From stu@spacehopper.org Mon Jul 7 03:52:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2807D23865; Mon, 7 Jul 2003 03:52:30 +0300 (EEST) Received: from eeyore.37.spacehopper.org (eeyore.37.spacehopper.org [213.152.51.82]) by danu.procontrol.fi (Postfix) with ESMTP id 2CBB023860 for ; Mon, 7 Jul 2003 03:51:56 +0300 (EEST) Received: from nereid.37.spacehopper.org (nereid.37.spacehopper.org [2001:618:400:e7a6:2c0:dfff:fee5:6d9a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by eeyore.37.spacehopper.org (Postfix) with ESMTP id 3ED521E01B for ; Mon, 7 Jul 2003 01:51:21 +0100 (BST) Received: from amethyst.37.spacehopper.org (amethyst.37.spacehopper.org [213.152.51.85]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by nereid.37.spacehopper.org (Postfix) with ESMTP id CD5D01DB; Mon, 7 Jul 2003 01:51:20 +0100 (BST) Date: Mon, 07 Jul 2003 01:51:20 +0100 From: Stuart Henderson To: Dovecot list Message-ID: <199740171.1057542680@amethyst.37.spacehopper.org> X-Mailer: Mulberry/3.1.0b3 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: [Dovecot] Date sort-order ignoring timezone, and a few Q's. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jul 2003 00:52:30 -0000 X-UID: 1123 Status: O Content-Length: 2390 Timo, thanks for writing and releasing Dovecot. I've recently discovered it and have been very impressed at the speed and balance between flexibility and simplicity. I had to make a packet-trace to be sure that encryption with OpenSSL was working correctly, since it all 'just worked' first time without complex configuration, which I don't think I've ever seen before ;-) LDAP too was quite straightforward (after I worked out where my virtual-domain schema differed from what was required). One small glitch I have noticed is that when the client requests a list of messages sorted by date, the timezone is ignored. For example, listed in descending order: 07/07/2003 00:01 +0300 (= 21:01 UT) 06/07/2003 23:15 +0100 (= 22:15 UT) 06/07/2003 19:03 +0100 (= 18:03 UT) I think that this should instead be... 06/07/2003 23:15 +0100 (= 22:15 UT) 07/07/2003 00:01 +0300 (= 21:01 UT) 06/07/2003 19:03 +0100 (= 18:03 UT) It's most noticable when the client (Mulberry in my case) is configured to display all times in the local timezone. (Mulberry has recently added custom flags which work perfectly with Dovecot - I was hoping this would be the case, and was one of the reasons I was looking for something to replace the version of Courier I previously had installed). Mulberry does like to have NAMESPACE otherwise it usually asks for folder locations on connecting, btw. No real problem, though. A little tip: if anyone is interested in having their MDA write Maildir with CR+LF so that sendfile(2) can be used on all messages (not just those created by Dovecot), Exim offers this natively by adding the "use_crlf" option to the appendfile transport which seems to work fine with 0.99.10 (though not 0.99.9.1, maybe because of 2003-06-04 17:39 in Changelog). It seems Dovecot is using the ,W= Maildir tag for some type of size instead of ,S= but I haven't traced far enough to work out what exactly W/virtual_size means, am I right in guessing that it might be 'wire size' i.e. message-size-with-CRLF-line-endings? (If so, use_crlf in exim.conf can be augmented with "maildir_tag = ,W=$message_size" to help keep overheads to a minimum). And, one final question: for a dual-stack machine to listen on both IPv6 and IPv4 sockets, is the currently preferred option simply to start two instances of Dovecot with their own dovecot.conf containing different *_listen parameters? --Stu From redjar@redjar.org Tue Jul 8 21:54:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CC2D52387A; Tue, 8 Jul 2003 21:54:35 +0300 (EEST) Received: from mute.marlboro.edu (mute.marlboro.edu [12.6.230.75]) by danu.procontrol.fi (Postfix) with ESMTP id 0ABB123860 for ; Tue, 8 Jul 2003 21:54:03 +0300 (EEST) Received: from mc-priv-10.0.4.174.marlboro.edu ([10.0.4.174] helo=redjar.org) by mute.marlboro.edu with esmtp (Exim 3.35 #1 (Debian)) id 19ZxbD-0002gK-00 for ; Tue, 08 Jul 2003 14:53:59 -0400 Date: Tue, 8 Jul 2003 14:53:58 -0400 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Jared To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <8812D4E6-B175-11D7-96EB-0003939F93A2@redjar.org> X-Mailer: Apple Mail (2.552) X-MailScanner: clean X-MailScanner-SpamCheck: not spam, SpamAssassin (score=-1.7, required 7, AWL, SPAM_PHRASE_00_01, USER_AGENT_APPLEMAIL) Subject: [Dovecot] LDAP bind questions X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jul 2003 18:54:36 -0000 X-UID: 1124 Status: O Hello, I've got dovecot set up to authenticate against our LDAP server. So far seems to work well. I have two concerns that I haven't been able to find answers for in the documentation or archives. Is there any intention to support "authentication binds" so you don't have to bind as a user with read privileges to everyone's userPassword attribute? For security purposes I'd like to see this functionality. And my next concern would become a non-issue if the above was supported, but is there a way to set the dnpass equal to a SSHA password? When I try setting it like this: dnpass = {SSHA}VhxqnmwCLVQj7g3rQV+g9F3XnaJ6bRXR in dovecot-ldap.conf It still tries to do a simple bind and fails. I get this error: dovecot-auth: LDAP: ldap_simple_bind_s() failed \ (dn cn=authadmin,ou=people,dc=domain,dc=com): Invalid credentials I'd prefer not to have the password for the authentication admin user stored in plain text in the conf file. Thanks, -jared From stu@spacehopper.org Wed Jul 9 00:00:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A75F2238C5; Wed, 9 Jul 2003 00:00:55 +0300 (EEST) Received: from eeyore.37.spacehopper.org (eeyore.37.spacehopper.org [213.152.51.82]) by danu.procontrol.fi (Postfix) with ESMTP id D17962387F for ; Wed, 9 Jul 2003 00:00:21 +0300 (EEST) Received: from nereid.37.spacehopper.org (nereid.37.spacehopper.org [2001:618:400:e7a6:2c0:dfff:fee5:6d9a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by eeyore.37.spacehopper.org (Postfix) with ESMTP id 1EA3C1E018 for ; Tue, 8 Jul 2003 22:00:13 +0100 (BST) Received: from amethyst.37.spacehopper.org (amethyst.37.spacehopper.org [213.152.51.85]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by nereid.37.spacehopper.org (Postfix) with ESMTP id E725B1D7 for ; Tue, 8 Jul 2003 22:00:11 +0100 (BST) Date: Tue, 08 Jul 2003 22:00:10 +0100 From: Stuart Henderson To: dovecot@procontrol.fi Message-ID: <109850968.1057701610@amethyst.37.spacehopper.org> X-Mailer: Mulberry/3.1.0b3 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: [Dovecot] search throwing "Sequence out of range" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jul 2003 21:00:55 -0000 X-UID: 1125 Status: O Content-Length: 4272 Mulberry client-side message filtering can be persuaded to search for a nonexistent message ... UID SEARCH UNSEEN UNDELETED UNDRAFT 12 (OR FROM "Cron Daemon " SUBJECT "Cron /home/sthen/pingme") Dovecot 0.99.10 returns this ... NO Sequence out of range: 12 I *think* the correct behaviour here is to return a null set of search results and avoid the error message in the client. i.e. * SEARCH OK Certainly this is how other servers seem to work, and my understanding of the next paragraph from IMAP4REV1 RFC seems to backs this up (though the wording in the RFC isn't 100% clear to me) "Message set ranges are permitted; however, there is no guarantee that unique identifiers be contiguous. A non-existent unique identifier within a message set range is ignored without any error message generated." it's not Mulberry's fault that it sent this immediately after deleting message 12, since on closer investigation this is exactly what my filter rules are asking it to do because I forgot to set "stop if matched", however it would be helpful to change sometime since I'm sure I'm not the only person to have done that (-: of course I've fixed my filters now, so it isn't a high priority for me. Commented protocol log follows, it's not really any more information than above though. --> #4.364 Tue Jul 8 12:54:19 2003 A00448 STATUS INBOX (MESSAGES RECENT UNSEEN UIDVALIDITY UIDNEXT) * STATUS "INBOX" (MESSAGES 0 RECENT 0 UIDNEXT 1 UIDVALIDITY 1052370612 UNSEEN 0) A00448 OK Status completed. --> #2.364 Tue Jul 8 12:55:19 2003 A01259 NOOP * 12 EXISTS * 3 RECENT A01259 OK NOOP completed. ... incoming mail ... --> #2.364 Tue Jul 8 12:55:19 2003 A01260 FETCH 12 (FLAGS RFC822.SIZE UID INTERNALDATE ENVELOPE BODYSTRUCTURE) * 12 FETCH (UID 140 FLAGS (\Recent) INTERNALDATE "08-Jul-2003 12:54:36 +0100" RFC822.SIZE 2372 BODYSTRUCTURE ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 0 0 NIL NIL NIL) ENVELOPE ("Tue, 08 Jul 2003 12:00:11 +0000" "***SPAM*** I wish I could be there" (("Kieth Hairston" NIL "kiethhairston_ji" "sedona.net")) (("Kieth Hairston" NIL "kiethhairston_ji" "sedona.net")) (("Kieth Hairston" NIL "kiethhairston_ji" "sedona.net")) ((NIL NIL "stu" "spacehopper.org")) NIL NIL NIL "")) A01260 OK Fetch completed. --> #2.364 Tue Jul 8 12:55:19 2003 A01261 SORT (DATE) us-ascii ALL * SORT 9 1 2 8 3 4 5 6 7 11 10 12 A01261 OK Sort completed. ... filter rule #1 ... --> #2.364 Tue Jul 8 12:55:19 2003 A01262 UID SEARCH UNSEEN UNDELETED UNDRAFT 12 SUBJECT "***SPAM***" * SEARCH 140 A01262 OK Search completed. ... ok, it's junk, we want it marked seen/deleted and placed in another folder ... --> #2.364 Tue Jul 8 12:55:19 2003 A01263 UID STORE 140 +FLAGS (\Seen) * 12 FETCH (FLAGS (\Seen \Recent) UID 140) A01263 OK Store completed. --> #2.364 Tue Jul 8 12:55:19 2003 A01264 UID STORE 140 +FLAGS (\Deleted) * 12 FETCH (FLAGS (\Deleted \Seen \Recent) UID 140) A01264 OK Store completed. --> #2.364 Tue Jul 8 12:55:19 2003 A01265 UID COPY 140 "ZZ spam" A01265 OK Copy completed. --> #1.364 Tue Jul 8 12:55:20 2003 A00087 STATUS "ZZ spam" (MESSAGES RECENT UNSEEN UIDVALIDITY UIDNEXT) * STATUS "ZZ spam" (MESSAGES 1 RECENT 1 UIDNEXT 2 UIDVALIDITY 1057513495 UNSEEN 0) A00087 OK Status completed. --> #2.364 Tue Jul 8 12:55:20 2003 A01266 UID STORE 140 +FLAGS (\Deleted) * 12 FETCH (FLAGS (\Deleted \Seen \Recent) UID 140) A01266 OK Store completed. ... and expunge this message (only) from the inbox: Mulberry checks so that it can keep any other deleted messages in the folder intact ... --> #2.364 Tue Jul 8 12:55:20 2003 A01267 UID SEARCH DELETED * SEARCH 140 A01267 OK Search completed. --> #2.364 Tue Jul 8 12:55:20 2003 A01268 EXPUNGE * 12 EXPUNGE A01268 OK Expunge completed. --> #2.364 Tue Jul 8 12:55:20 2003 A01269 SORT (DATE) us-ascii ALL * SORT 9 1 2 8 3 4 5 6 7 11 10 A01269 OK Sort completed. ... and on to filter rule #2 ... --> #2.364 Tue Jul 8 12:55:20 2003 A01270 UID SEARCH UNSEEN UNDELETED UNDRAFT 12 (OR FROM "Cron Daemon " SUBJECT "Cron /home/sthen/pingme") A01270 NO Sequence out of range: 12 From stu@spacehopper.org Wed Jul 9 00:02:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AFF13238C6; Wed, 9 Jul 2003 00:02:00 +0300 (EEST) Received: from eeyore.37.spacehopper.org (eeyore.37.spacehopper.org [213.152.51.82]) by danu.procontrol.fi (Postfix) with ESMTP id 80DEE238C8 for ; Wed, 9 Jul 2003 00:01:28 +0300 (EEST) Received: from nereid.37.spacehopper.org (nereid.37.spacehopper.org [2001:618:400:e7a6:2c0:dfff:fee5:6d9a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by eeyore.37.spacehopper.org (Postfix) with ESMTP id C4DDB1E018 for ; Tue, 8 Jul 2003 22:01:13 +0100 (BST) Received: from amethyst.37.spacehopper.org (amethyst.37.spacehopper.org [213.152.51.85]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by nereid.37.spacehopper.org (Postfix) with ESMTP id 7F6991D7 for ; Tue, 8 Jul 2003 22:01:13 +0100 (BST) Date: Tue, 08 Jul 2003 22:01:12 +0100 From: Stuart Henderson To: dovecot@procontrol.fi Subject: Re: [Dovecot] LDAP bind questions Message-ID: <109913031.1057701672@amethyst.37.spacehopper.org> In-Reply-To: <8812D4E6-B175-11D7-96EB-0003939F93A2@redjar.org> References: <8812D4E6-B175-11D7-96EB-0003939F93A2@redjar.org> X-Mailer: Mulberry/3.1.0b3 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jul 2003 21:02:00 -0000 X-UID: 1126 Status: O Content-Length: 1576 > And my next concern would become a non-issue if the above was > supported, but is there a way to set the dnpass equal to a SSHA > password? When I try setting it like this: > dnpass = {SSHA}VhxqnmwCLVQj7g3rQV+g9F3XnaJ6bRXR No, you need to supply the actual password. This password is (presumably) already stored hashed in your LDAP database. Your LDAP server will hash what it receives as the password and compare that with the password stored for that DN. Setting it like you have shown just causes Dovecot to use it as the literal password {SSHA}Vhxqnm..... > I'd prefer not to have the password for the authentication admin user > stored in plain text in the conf file. There's no way to store an encrypted password in a conf file and have a plaintext version of that password used to authenticate (without e.g. manually typing a password each time that config file is read). The DN used with the current Dovecot LDAP code obviously only needs read access to mail users' details, you don't have to give it any kind of write access, and you don't have to give it the ability to read passwords for non-mail-users (i.e. passwords for DNs with write access to the directory). You can also additionally restrict access to userPassword by IP addresses, too. So, if you aren't already doing this, at least there are a few ways you can reduce the exposure with the current code. Of course, if someone has sufficient access to the machine running Dovecot that they can read the config file, they will already have some degree of access to user's passwords... From tss@iki.fi Wed Jul 9 17:56:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 095CA238C6; Wed, 9 Jul 2003 17:56:16 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E9F8E2387A for ; Wed, 9 Jul 2003 17:55:42 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B06FD5C896A2 for ; Wed, 9 Jul 2003 17:55:42 +0300 (EEST) Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. From: Timo Sirainen To: Dovecot list In-Reply-To: <199740171.1057542680@amethyst.37.spacehopper.org> References: <199740171.1057542680@amethyst.37.spacehopper.org> Content-Type: text/plain Message-Id: <1057762542.10425.309.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 17:55:42 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 14:56:16 -0000 X-UID: 1127 Status: O On Mon, 2003-07-07 at 03:51, Stuart Henderson wrote: > One small glitch I have noticed is that when the client requests a list > of messages sorted by date, the timezone is ignored. It's not ignored, I just recently "fixed" it. Now it's properly fixed :) > It seems Dovecot is using the ,W= Maildir tag for some type of size > instead of ,S= but I haven't traced far enough to work out what exactly > W/virtual_size means, am I right in guessing that it might be 'wire > size' > i.e. message-size-with-CRLF-line-endings? Yes. S means the actual size of the file, W is the size with CRs. > And, one final question: for a dual-stack machine to listen on both IPv6 > and IPv4 sockets, is the currently preferred option simply to start two > instances of Dovecot with their own dovecot.conf containing different > *_listen parameters? Currently, yes. I'll probably add support for multiple listening sockets per server some day. From mem@mv.mv.com Wed Jul 9 18:08:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 996AA238C6; Wed, 9 Jul 2003 18:08:49 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 43F212387A for ; Wed, 9 Jul 2003 18:08:17 +0300 (EEST) Received: (qmail 7241 invoked by uid 101); 9 Jul 2003 11:08:10 -0400 From: "Mark E. Mallett" Date: Wed, 9 Jul 2003 11:08:10 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Message-ID: <20030709150810.GI28197@iridium.mv.net> References: <199740171.1057542680@amethyst.37.spacehopper.org> <1057762542.10425.309.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1057762542.10425.309.camel@hurina> User-Agent: Mutt/1.4.1i cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:08:49 -0000 X-UID: 1128 Status: O On Wed, Jul 09, 2003 at 05:55:42PM +0300, Timo Sirainen wrote: > On Mon, 2003-07-07 at 03:51, Stuart Henderson wrote: > > One small glitch I have noticed is that when the client requests a list > > of messages sorted by date, the timezone is ignored. > > It's not ignored, I just recently "fixed" it. Now it's properly fixed :) What version is it fixed in? (we're having the same issue... with mbox format, the timezone on the "From " line is ignored. currently running dovecot-0.99.10-rc4) -mm- From tss@iki.fi Wed Jul 9 18:09:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E4BCD238C8; Wed, 9 Jul 2003 18:09:59 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4C7D9238CE for ; Wed, 9 Jul 2003 18:09:26 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 20DF55C896A2 for ; Wed, 9 Jul 2003 18:09:26 +0300 (EEST) Subject: Re: [Dovecot] search throwing "Sequence out of range" From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <109850968.1057701610@amethyst.37.spacehopper.org> References: <109850968.1057701610@amethyst.37.spacehopper.org> Content-Type: text/plain Message-Id: <1057763365.1736.320.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 18:09:26 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:10:00 -0000 X-UID: 1129 Status: O Content-Length: 1093 On Wed, 2003-07-09 at 00:00, Stuart Henderson wrote: > Mulberry client-side message filtering can be persuaded to search for a > nonexistent message ... > > NO Sequence out of range: 12 > > I *think* the correct behaviour here is to return a null set of search > results and avoid the error message in the client. i.e. I think Dovecot's behaviour is correct enough here, but I'll ask in imap-list just in case since other servers do seem to ignore invalid message sets in SEARCH. That may however be just because lack of error checking. > Certainly this is how other servers seem to work, and my understanding > of the next paragraph from IMAP4REV1 RFC seems to backs this up (though > the wording in the RFC isn't 100% clear to me) > > "Message set ranges are permitted; however, there is no guarantee > that unique identifiers be contiguous. A non-existent unique > identifier within a message set range is ignored without any error > message generated." That talks about UIDs. That search command was searching for message sequence 12, not UID 12. From tss@iki.fi Wed Jul 9 18:19:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 62B36238C8; Wed, 9 Jul 2003 18:19:43 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6FBB12387A for ; Wed, 9 Jul 2003 18:19:11 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3CDAB5C896A2 for ; Wed, 9 Jul 2003 18:19:11 +0300 (EEST) Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. From: Timo Sirainen To: Dovecot list In-Reply-To: <20030709150810.GI28197@iridium.mv.net> References: <199740171.1057542680@amethyst.37.spacehopper.org> <20030709150810.GI28197@iridium.mv.net> Content-Type: text/plain Message-Id: <1057763950.1736.330.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 18:19:11 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:19:43 -0000 X-UID: 1130 Status: O On Wed, 2003-07-09 at 18:08, Mark E. Mallett wrote: > > > One small glitch I have noticed is that when the client requests a list > > > of messages sorted by date, the timezone is ignored. > > > > It's not ignored, I just recently "fixed" it. Now it's properly fixed :) > > What version is it fixed in? Only in CVS. I could put out 0.99.11-test1. From mem@mv.mv.com Wed Jul 9 18:23:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D37B2238C8; Wed, 9 Jul 2003 18:23:05 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 8651923865 for ; Wed, 9 Jul 2003 18:22:32 +0300 (EEST) Received: (qmail 16086 invoked by uid 101); 9 Jul 2003 11:22:31 -0400 From: "Mark E. Mallett" Date: Wed, 9 Jul 2003 11:22:31 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Message-ID: <20030709152231.GM28197@iridium.mv.net> References: <199740171.1057542680@amethyst.37.spacehopper.org> <20030709150810.GI28197@iridium.mv.net> <1057763950.1736.330.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1057763950.1736.330.camel@hurina> User-Agent: Mutt/1.4.1i cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:23:06 -0000 X-UID: 1131 Status: O On Wed, Jul 09, 2003 at 06:19:11PM +0300, Timo Sirainen wrote: > On Wed, 2003-07-09 at 18:08, Mark E. Mallett wrote: > > > > One small glitch I have noticed is that when the client requests a list > > > > of messages sorted by date, the timezone is ignored. > > > > > > It's not ignored, I just recently "fixed" it. Now it's properly fixed :) > > > > What version is it fixed in? > > Only in CVS. I could put out 0.99.11-test1. That would be great From tss@iki.fi Wed Jul 9 18:28:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 514E6238C8; Wed, 9 Jul 2003 18:28:45 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1974623865 for ; Wed, 9 Jul 2003 18:28:13 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7FC9F5C896A2 for ; Wed, 9 Jul 2003 18:28:12 +0300 (EEST) Subject: Re: [Dovecot] LDAP bind questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <8812D4E6-B175-11D7-96EB-0003939F93A2@redjar.org> References: <8812D4E6-B175-11D7-96EB-0003939F93A2@redjar.org> Content-Type: text/plain Message-Id: <1057764492.10425.335.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 18:28:12 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:28:45 -0000 X-UID: 1132 Status: O On Tue, 2003-07-08 at 21:53, Jared wrote: > Is there any intention to support "authentication binds" so you don't > have to bind as a user with read privileges to everyone's userPassword > attribute? For security purposes I'd like to see this functionality. I probably have to add support for this some day, but it's kind of annoying to implement if I want to do it well. I should use non-blocking LDAP connect calls, but last time I tried it got pretty ugly and I gave up. From tss@iki.fi Wed Jul 9 19:01:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0F251238C8; Wed, 9 Jul 2003 19:01:15 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4448123865 for ; Wed, 9 Jul 2003 19:00:42 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 044815C896A2 for ; Wed, 9 Jul 2003 19:00:42 +0300 (EEST) Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. From: Timo Sirainen To: Dovecot list In-Reply-To: <20030709152231.GM28197@iridium.mv.net> References: <199740171.1057542680@amethyst.37.spacehopper.org> <1057763950.1736.330.camel@hurina> <20030709152231.GM28197@iridium.mv.net> Content-Type: text/plain Message-Id: <1057766441.1736.343.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 19:00:41 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 16:01:15 -0000 X-UID: 1133 Status: O On Wed, 2003-07-09 at 18:22, Mark E. Mallett wrote: > > Only in CVS. I could put out 0.99.11-test1. > That would be great http://dovecot.procontrol.fi/test/ From stu@spacehopper.org Wed Jul 9 19:50:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 65DAA238C8; Wed, 9 Jul 2003 19:50:27 +0300 (EEST) Received: from eeyore.37.spacehopper.org (eeyore.37.spacehopper.org [213.152.51.82]) by danu.procontrol.fi (Postfix) with ESMTP id 480DE2387A for ; Wed, 9 Jul 2003 19:49:55 +0300 (EEST) Received: from nereid.37.spacehopper.org (nereid.37.spacehopper.org [2001:618:400:e7a6:2c0:dfff:fee5:6d9a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by eeyore.37.spacehopper.org (Postfix) with ESMTP id 2EB0C1E01C for ; Wed, 9 Jul 2003 17:49:16 +0100 (BST) Received: from amethyst.37.spacehopper.org (amethyst.37.spacehopper.org [213.152.51.85]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by nereid.37.spacehopper.org (Postfix) with ESMTP id 809651D9 for ; Wed, 9 Jul 2003 17:49:14 +0100 (BST) Date: Wed, 09 Jul 2003 17:49:13 +0100 From: Stuart Henderson To: dovecot@procontrol.fi Subject: Re: [Dovecot] LDAP bind questions Message-ID: <17596765.1057772953@amethyst.37.spacehopper.org> In-Reply-To: <1057764492.10425.335.camel@hurina> References: <8812D4E6-B175-11D7-96EB-0003939F93A2@redjar.org> <1057764492.10425.335.camel@hurina> X-Mailer: Mulberry/3.1.0b3 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 16:50:27 -0000 X-UID: 1134 Status: O --On 09 July 2003 18:28 +0300 Timo Sirainen wrote: > On Tue, 2003-07-08 at 21:53, Jared wrote: >> Is there any intention to support "authentication binds" so you >> don't have to bind as a user with read privileges to everyone's >> userPassword attribute? For security purposes I'd like to see this >> functionality. > > I probably have to add support for this some day, but it's kind of > annoying to implement if I want to do it well. I should use > non-blocking LDAP connect calls, but last time I tried it got pretty > ugly and I gave up. If people really need this now, SASL might be the answer (either via PAM or mailfront) since saslauthd/auth_ldap allows authentication binds. From charlieb-dovecot@e-smith.com Wed Jul 9 21:13:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DB834238C8; Wed, 9 Jul 2003 21:13:36 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 06E5623865 for ; Wed, 9 Jul 2003 21:13:03 +0300 (EEST) Received: (qmail 31086 invoked by uid 404); 9 Jul 2003 18:13:01 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 09 Jul 2003 14:13:01 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 09 Jul 2003 18:13:01 -0000 Received: (qmail 1150 invoked by uid 5008); 9 Jul 2003 18:13:01 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 9 Jul 2003 18:13:01 -0000 Date: Wed, 9 Jul 2003 14:13:01 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. In-Reply-To: <20030709152231.GM28197@iridium.mv.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 18:13:37 -0000 X-UID: 1135 Status: O On Wed, 9 Jul 2003, Mark E. Mallett wrote: > On Wed, Jul 09, 2003 at 06:19:11PM +0300, Timo Sirainen wrote: > > On Wed, 2003-07-09 at 18:08, Mark E. Mallett wrote: > > > > > One small glitch I have noticed is that when the client requests a list > > > > > of messages sorted by date, the timezone is ignored. > > > > > > > > It's not ignored, I just recently "fixed" it. Now it's properly fixed :) > > > > > > What version is it fixed in? > > > > Only in CVS. I could put out 0.99.11-test1. > > That would be great Better for me would be a patch against 0.99.10. -- Charlie From charlieb-dovecot@e-smith.com Wed Jul 9 21:21:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3E2552387A; Wed, 9 Jul 2003 21:21:18 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id B11D223865 for ; Wed, 9 Jul 2003 21:20:44 +0300 (EEST) Received: (qmail 32714 invoked by uid 404); 9 Jul 2003 18:20:43 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 09 Jul 2003 14:20:43 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 09 Jul 2003 18:20:42 -0000 Received: (qmail 4221 invoked by uid 5008); 9 Jul 2003 18:20:42 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 9 Jul 2003 18:20:42 -0000 Date: Wed, 9 Jul 2003 14:20:42 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Stuart Henderson Subject: Re: [Dovecot] LDAP bind questions In-Reply-To: <17596765.1057772953@amethyst.37.spacehopper.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 18:21:18 -0000 X-UID: 1136 Status: O On Wed, 9 Jul 2003, Stuart Henderson wrote: > If people really need this now, SASL might be the answer (either via > PAM or mailfront) since saslauthd/auth_ldap allows authentication binds. Do you have any pointers for using saslauthd with mailfront? -- Charlie From stu@spacehopper.org Wed Jul 9 21:53:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B67422387A; Wed, 9 Jul 2003 21:53:12 +0300 (EEST) Received: from eeyore.37.spacehopper.org (eeyore.37.spacehopper.org [213.152.51.82]) by danu.procontrol.fi (Postfix) with ESMTP id AA72323865 for ; Wed, 9 Jul 2003 21:52:40 +0300 (EEST) Received: from nereid.37.spacehopper.org (nereid.37.spacehopper.org [2001:618:400:e7a6:2c0:dfff:fee5:6d9a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by eeyore.37.spacehopper.org (Postfix) with ESMTP id 433261E018; Wed, 9 Jul 2003 19:52:34 +0100 (BST) Received: from amethyst.37.spacehopper.org (amethyst.37.spacehopper.org [213.152.51.85]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by nereid.37.spacehopper.org (Postfix) with ESMTP id EAF871D9; Wed, 9 Jul 2003 19:52:32 +0100 (BST) Date: Wed, 09 Jul 2003 19:52:32 +0100 From: Stuart Henderson To: Charlie Brady Subject: Re: [Dovecot] LDAP bind questions Message-ID: <24995578.1057780352@amethyst.37.spacehopper.org> In-Reply-To: References: X-Mailer: Mulberry/3.1.0b3 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 18:53:12 -0000 X-UID: 1137 Status: O >> If people really need this now, SASL might be the answer (either via >> PAM or mailfront) since saslauthd/auth_ldap allows authentication >> binds. > > Do you have any pointers for using saslauthd with mailfront? Not really, I just saw these two pages on untroubled.org which I thought suggested it might be worth a try, but they don't explain much (I've never used mailfront so I'm not too well-qualified ;-) From mem@mv.mv.com Wed Jul 9 21:59:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 397F923865; Wed, 9 Jul 2003 21:59:37 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id CBC1F238E1 for ; Wed, 9 Jul 2003 21:59:04 +0300 (EEST) Received: (qmail 20845 invoked by uid 101); 9 Jul 2003 14:59:04 -0400 From: "Mark E. Mallett" Date: Wed, 9 Jul 2003 14:59:04 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Message-ID: <20030709185904.GE2655@iridium.mv.net> References: <199740171.1057542680@amethyst.37.spacehopper.org> <1057763950.1736.330.camel@hurina> <20030709152231.GM28197@iridium.mv.net> <1057766441.1736.343.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1057766441.1736.343.camel@hurina> User-Agent: Mutt/1.4.1i cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 18:59:37 -0000 X-UID: 1138 Status: O On Wed, Jul 09, 2003 at 07:00:41PM +0300, Timo Sirainen wrote: > On Wed, 2003-07-09 at 18:22, Mark E. Mallett wrote: > > > Only in CVS. I could put out 0.99.11-test1. > > That would be great > > http://dovecot.procontrol.fi/test/ Hmm... making imap fails now: ../lib/liblib.a(randgen.o): In function `ssl_last_error': /usr/local/src/system/dovecot-0.99.11-test1/src/lib/randgen.c:90: undefined refer ence to `ERR_get_error' /usr/local/src/system/dovecot-0.99.11-test1/src/lib/randgen.c:96: undefined refer ence to `ERR_error_string_n' ../lib/liblib.a(randgen.o): In function `random_fill': /usr/local/src/system/dovecot-0.99.11-test1/src/lib/randgen.c:102: undefined refe rence to `RAND_bytes' /usr/local/src/system/dovecot-0.99.10-rc4 still builds fine on the same system. I diffed the make outputs and they pretty much differ only at that point. Haven't spent any time to track it down, figured I'd ask first.. mm From marcotte@panix.com Wed Jul 9 22:05:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AE34923993; Wed, 9 Jul 2003 22:05:11 +0300 (EEST) Received: from mail3.panix.com (mail3.panix.com [166.84.1.74]) by danu.procontrol.fi (Postfix) with ESMTP id C70A723865 for ; Wed, 9 Jul 2003 22:04:39 +0300 (EEST) Received: from panix5.panix.com (panix5.panix.com [166.84.1.5]) by mail3.panix.com (Postfix) with ESMTP id EA42B9818A for ; Wed, 9 Jul 2003 15:04:38 -0400 (EDT) Received: (from marcotte@localhost) by panix5.panix.com (8.11.6p2/8.8.8/PanixN1.1) id h69J4cn10717 for dovecot@procontrol.fi; Wed, 9 Jul 2003 15:04:38 -0400 (EDT) Date: Wed, 9 Jul 2003 15:04:38 -0400 (EDT) From: Message-Id: <200307091904.h69J4cn10717@panix5.panix.com> To: dovecot@procontrol.fi Subject: [Dovecot] Concerns switching from Courier to Dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:05:11 -0000 X-UID: 1139 Status: O Content-Length: 1276 [ I'm posting this again since I wasn't subscribed to the list when I first posted. I'm sorry if this gets posted twice] I was considering replacing Courier-IMAP with dovecot in the future, but have some concerns. I realize that some things simply haven't been finished yet like quotas, but some other things may prevent me from using dovecot as a drop in replacement in the future. Subfolders have different names in the file system. A folder (INBOX.subfolder) is named ".subfolder" in Courier, but "INBOX.subfolder" in dovecot. I can't simply rename all the subfolders, because our customers have direct access to the maildirs, and write to it directly with procmail and mail clients like mutt. Certain files have different names, but contain the same information. For example, the subscription lists and UID files look the same to me but have different names. I suppose they could be converted, but this would make it difficult to run both IMAP servers side-by-side, which I'd like to do until dovecot has all the features I need. I also heard talk of the hierarchy separator being changed from "." to "/". Now, is it possible configuration options could be added to allow for better Courier compatibility? I would be willing to help with this. Thanks! -- - Brian From tss@iki.fi Wed Jul 9 22:09:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F18A72387A; Wed, 9 Jul 2003 22:09:52 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B1B7523865 for ; Wed, 9 Jul 2003 22:09:20 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7E8F05C896A2 for ; Wed, 9 Jul 2003 22:09:20 +0300 (EEST) Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. From: Timo Sirainen To: Dovecot list In-Reply-To: References: Content-Type: text/plain Message-Id: <1057777760.6577.346.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 22:09:20 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:09:53 -0000 X-UID: 1140 Status: O Content-Length: 1299 On Wed, 2003-07-09 at 21:13, Charlie Brady wrote: > > > > > > One small glitch I have noticed is that when the client requests a list > > > > > > of messages sorted by date, the timezone is ignored. > Better for me would be a patch against 0.99.10. Index: message-date.c =================================================================== RCS file: /home/cvs/dovecot/src/lib-mail/message-date.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- message-date.c 22 Apr 2003 17:47:58 -0000 1.7 +++ message-date.c 9 Jul 2003 14:51:56 -0000 1.8 @@ -208,7 +208,7 @@ if (*time == (time_t)-1) return FALSE; - *time += *timezone_offset * 60; + *time -= *timezone_offset * 60; return TRUE; } Index: index-search.c =================================================================== RCS file: /home/cvs/dovecot/src/lib-storage/index/index-search.c,v retrieving revision 1.74 retrieving revision 1.75 diff -u -d -r1.74 -r1.75 --- index-search.c 15 Jun 2003 03:42:29 -0000 1.74 +++ index-search.c 9 Jul 2003 14:51:57 -0000 1.75 @@ -297,7 +297,7 @@ if (!message_date_parse(sent_value, sent_value_len, &sent_time, &timezone_offset)) return 0; - sent_time -= timezone_offset * 60; + sent_time += timezone_offset * 60; switch (type) { case SEARCH_SENTBEFORE: From tss@iki.fi Wed Jul 9 22:11:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C65AF23865; Wed, 9 Jul 2003 22:11:31 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1094023993 for ; Wed, 9 Jul 2003 22:10:59 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id DC96A5C896A2 for ; Wed, 9 Jul 2003 22:10:58 +0300 (EEST) Subject: Re: [Dovecot] LDAP bind questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <17596765.1057772953@amethyst.37.spacehopper.org> References: <8812D4E6-B175-11D7-96EB-0003939F93A2@redjar.org> <1057764492.10425.335.camel@hurina> <17596765.1057772953@amethyst.37.spacehopper.org> Content-Type: text/plain Message-Id: <1057777858.1736.349.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 22:10:58 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:11:31 -0000 X-UID: 1141 Status: O On Wed, 2003-07-09 at 19:49, Stuart Henderson wrote: > If people really need this now, SASL might be the answer (either via > PAM or mailfront) since saslauthd/auth_ldap allows authentication binds. No need for SASL things if you just use mod_ldap with PAM. From tss@iki.fi Wed Jul 9 22:17:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BCB272387A; Wed, 9 Jul 2003 22:17:42 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C92A523865 for ; Wed, 9 Jul 2003 22:17:10 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 93D355C896A2 for ; Wed, 9 Jul 2003 22:17:10 +0300 (EEST) Subject: Re: [Dovecot] Concerns switching from Courier to Dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <200307091904.h69J4cn10717@panix5.panix.com> References: <200307091904.h69J4cn10717@panix5.panix.com> Content-Type: text/plain Message-Id: <1057778230.10425.356.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 22:17:10 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:17:42 -0000 X-UID: 1142 Status: O Content-Length: 1719 On Wed, 2003-07-09 at 22:04, marcotte@panix.com wrote: > Subfolders have different names in the file system. A folder > (INBOX.subfolder) is named ".subfolder" in Courier, but "INBOX.subfolder" > in dovecot. I can't simply rename all the subfolders, because our > customers have direct access to the maildirs, and write to it directly > with procmail and mail clients like mutt. No, that's not the problem. Problem is that you have your clients configured to use "INBOX." prefix for mailboxes which Dovecot doesn't want. That is the biggest compatibility problem between them, as it requires changes in client configuration. I have plans to make INBOX-prefix configurable, but it's not there yet.. Maybe I'll continue the configuration file changes today after which it's easier to add the namespace configuration.. > Certain files have different names, but contain the same information. > For example, the subscription lists and UID files look the same to me > but have different names. I suppose they could be converted, but this > would make it difficult to run both IMAP servers side-by-side, which I'd > like to do until dovecot has all the features I need. You'd currently have to recompile Dovecot with the new filenames, but that's pretty easy to do. And I think I'll make these filenames also configurable from config file. > I also heard talk of the hierarchy separator being changed from "." to > "/". Yes, but it's not there yet. And again I think I'll make it configurable and leave the default to "." as it is now. > Now, is it possible configuration options could be added to allow for > better Courier compatibility? I would be willing to help with this. In the namespace configuration, yes :) From tss@iki.fi Wed Jul 9 22:20:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 180D72387A; Wed, 9 Jul 2003 22:20:17 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 43E1623865 for ; Wed, 9 Jul 2003 22:19:44 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 1FC515C896A2 for ; Wed, 9 Jul 2003 22:19:44 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1057778383.6577.358.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 22:19:44 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Re: Uncaught bounce notification X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:20:17 -0000 X-UID: 1143 Status: O Lots of bounces from you, I'm moving this subscription to new address.. On Wed, 2003-07-09 at 22:15, mailman-bounces@procontrol.fi wrote: > The attached message was received as a bounce, but either the bounce > format was not recognized, or no member addresses could be extracted > from it. This mailing list has been configured to send all > unrecognized bounce messages to the list administrator(s). > > For more information see: > http://procontrol.fi/cgi-bin/mailman/admin/dovecot/bounce > > > ______________________________________________________________________ > From: Joburg_Notes1 > To: dovecot-bounces@procontrol.fi > Subject: Re: [Dovecot] LDAP bind questions > Date: 09 Jul 2003 21:13:31 +0200 > > Your email to Leslie Viljoen has been forwarded to his new email address: > lesliev@icoc.co.za. Please use this address in future! > > Thanks, > Leslie > From tss@iki.fi Wed Jul 9 22:23:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 71DE12387A; Wed, 9 Jul 2003 22:23:24 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A935723865 for ; Wed, 9 Jul 2003 22:22:52 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7058C5C896A2 for ; Wed, 9 Jul 2003 22:22:52 +0300 (EEST) Subject: Re: [Dovecot] Re: Uncaught bounce notification From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1057778383.6577.358.camel@hurina> References: <1057778383.6577.358.camel@hurina> Content-Type: text/plain Message-Id: <1057778572.1736.361.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 22:22:52 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:23:24 -0000 X-UID: 1144 Status: O On Wed, 2003-07-09 at 22:19, Timo Sirainen wrote: > Lots of bounces from you, I'm moving this subscription to new address.. Of course, I meant to sent this privately :) Stupid List-Id headers in adminstrative posts messing up replying.. From tss@iki.fi Wed Jul 9 22:27:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F0C5C2387A; Wed, 9 Jul 2003 22:27:52 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4F8FB23865 for ; Wed, 9 Jul 2003 22:27:38 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 1E3EF5C896A2 for ; Wed, 9 Jul 2003 22:27:38 +0300 (EEST) Subject: Re: [Dovecot] search throwing "Sequence out of range" From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <109850968.1057701610@amethyst.37.spacehopper.org> References: <109850968.1057701610@amethyst.37.spacehopper.org> Content-Type: text/plain Message-Id: <1057778857.6577.366.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 22:27:38 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:27:53 -0000 X-UID: 1145 Status: O On Wed, 2003-07-09 at 00:00, Stuart Henderson wrote: > Mulberry client-side message filtering can be persuaded to search for a > nonexistent message ... > > UID SEARCH UNSEEN UNDELETED UNDRAFT 12 (OR FROM "Cron Daemon > " SUBJECT "Cron > /home/sthen/pingme") > > Dovecot 0.99.10 returns this ... > > NO Sequence out of range: 12 OK, this is Mulberry bug, should probably be reported to them. Actually even without this error message it might work incorrectly. Suppose there was two new messages, then this SEARCH would match the second new one instead of the one that got just expunged. Or I don't know if it matters, if it would be applying those same filters to that second message in any case next.. From tss@iki.fi Wed Jul 9 22:31:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0393A238C8; Wed, 9 Jul 2003 22:31:00 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2F8212387A for ; Wed, 9 Jul 2003 22:30:58 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id DA5F85C896A2 for ; Wed, 9 Jul 2003 22:30:57 +0300 (EEST) Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. From: Timo Sirainen To: Dovecot list In-Reply-To: <20030709185904.GE2655@iridium.mv.net> References: <199740171.1057542680@amethyst.37.spacehopper.org> <20030709152231.GM28197@iridium.mv.net> <20030709185904.GE2655@iridium.mv.net> Content-Type: text/plain Message-Id: <1057779057.6577.370.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 22:30:57 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:31:00 -0000 X-UID: 1146 Status: O On Wed, 2003-07-09 at 21:59, Mark E. Mallett wrote: > ../lib/liblib.a(randgen.o): In function `ssl_last_error': > /usr/local/src/system/dovecot-0.99.11-test1/src/lib/randgen.c:90: undefined refer > ence to `ERR_get_error' It's because we want random number generator for imap/pop3 binaries nowadays. I didn't notice it since I have /dev/urandom. Fixed in -test2. From mem@mv.mv.com Wed Jul 9 22:32:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9FD9E2399A; Wed, 9 Jul 2003 22:32:52 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 921A7238C8 for ; Wed, 9 Jul 2003 22:32:49 +0300 (EEST) Received: (qmail 16060 invoked by uid 101); 9 Jul 2003 15:32:49 -0400 From: "Mark E. Mallett" Date: Wed, 9 Jul 2003 15:32:48 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Message-ID: <20030709193248.GO2655@iridium.mv.net> References: <199740171.1057542680@amethyst.37.spacehopper.org> <20030709152231.GM28197@iridium.mv.net> <20030709185904.GE2655@iridium.mv.net> <1057779057.6577.370.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1057779057.6577.370.camel@hurina> User-Agent: Mutt/1.4.1i cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:32:52 -0000 X-UID: 1147 Status: O On Wed, Jul 09, 2003 at 10:30:57PM +0300, Timo Sirainen wrote: > On Wed, 2003-07-09 at 21:59, Mark E. Mallett wrote: > > ../lib/liblib.a(randgen.o): In function `ssl_last_error': > > /usr/local/src/system/dovecot-0.99.11-test1/src/lib/randgen.c:90: undefined refer > > ence to `ERR_get_error' > > It's because we want random number generator for imap/pop3 binaries > nowadays. I didn't notice it since I have /dev/urandom. Fixed in -test2. Hmm, I have /dev/urandom too-- does this also address the other two undefineds? From tss@iki.fi Wed Jul 9 22:34:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7FB552399A; Wed, 9 Jul 2003 22:34:54 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 08237238C8 for ; Wed, 9 Jul 2003 22:34:53 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id BEC895C896A2 for ; Wed, 9 Jul 2003 22:34:52 +0300 (EEST) Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. From: Timo Sirainen To: Dovecot list In-Reply-To: <20030709193248.GO2655@iridium.mv.net> References: <199740171.1057542680@amethyst.37.spacehopper.org> <20030709152231.GM28197@iridium.mv.net> <1057779057.6577.370.camel@hurina> <20030709193248.GO2655@iridium.mv.net> Content-Type: text/plain Message-Id: <1057779292.1736.373.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 09 Jul 2003 22:34:52 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:34:54 -0000 X-UID: 1148 Status: O On Wed, 2003-07-09 at 22:32, Mark E. Mallett wrote: > > > ../lib/liblib.a(randgen.o): In function `ssl_last_error': > > > /usr/local/src/system/dovecot-0.99.11-test1/src/lib/randgen.c:90: undefined refer > > > ence to `ERR_get_error' > > > > It's because we want random number generator for imap/pop3 binaries > > nowadays. I didn't notice it since I have /dev/urandom. Fixed in -test2. > > Hmm, I have /dev/urandom too-- Oh. I guess "test -c /dev/urandom" isn't the proper way to check it then. It's not a character device with you? What OS? Maybe test -e would work. > does this also address the other two undefineds? yes. From mem@mv.mv.com Wed Jul 9 22:47:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D6BC32399B; Wed, 9 Jul 2003 22:47:37 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id CCF2B2399A for ; Wed, 9 Jul 2003 22:47:35 +0300 (EEST) Received: (qmail 27480 invoked by uid 101); 9 Jul 2003 15:47:35 -0400 From: "Mark E. Mallett" Date: Wed, 9 Jul 2003 15:47:35 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Message-ID: <20030709194735.GP2655@iridium.mv.net> References: <199740171.1057542680@amethyst.37.spacehopper.org> <20030709152231.GM28197@iridium.mv.net> <1057779057.6577.370.camel@hurina> <20030709193248.GO2655@iridium.mv.net> <1057779292.1736.373.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1057779292.1736.373.camel@hurina> User-Agent: Mutt/1.4.1i cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:47:38 -0000 X-UID: 1149 Status: O Content-Length: 1093 On Wed, Jul 09, 2003 at 10:34:52PM +0300, Timo Sirainen wrote: > On Wed, 2003-07-09 at 22:32, Mark E. Mallett wrote: > > > > ../lib/liblib.a(randgen.o): In function `ssl_last_error': > > > > /usr/local/src/system/dovecot-0.99.11-test1/src/lib/randgen.c:90: undefined refer > > > > ence to `ERR_get_error' > > > > > > It's because we want random number generator for imap/pop3 binaries > > > nowadays. I didn't notice it since I have /dev/urandom. Fixed in -test2. > > > > Hmm, I have /dev/urandom too-- > > Oh. I guess "test -c /dev/urandom" isn't the proper way to check it > then. It's not a character device with you? What OS? Maybe test -e would > work. no, I'm running BSD/OS 4.2, where /dev/random is implemented as (ugh) a symbolic link to a named socket attached to a "randomd" program. I should have mentioned this, since I have had this issue with other configures too. Not sure you can generalize for that :-) 10# cd /dev 11# ll urandom lrwxr-xr-x 1 root wheel 19 Jul 5 22:25 urandom@ -> /var/run/random.md5 12# file /var/run/random.md5 /var/run/random.md5: socket -mm- From stu@spacehopper.org Wed Jul 9 22:51:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 508AB2399B; Wed, 9 Jul 2003 22:51:20 +0300 (EEST) Received: from eeyore.37.spacehopper.org (eeyore.37.spacehopper.org [213.152.51.82]) by danu.procontrol.fi (Postfix) with ESMTP id 190372399A for ; Wed, 9 Jul 2003 22:51:17 +0300 (EEST) Received: from nereid.37.spacehopper.org (nereid.37.spacehopper.org [2001:618:400:e7a6:2c0:dfff:fee5:6d9a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by eeyore.37.spacehopper.org (Postfix) with ESMTP id E65BE1E01C for ; Wed, 9 Jul 2003 20:51:02 +0100 (BST) Received: from amethyst.37.spacehopper.org (amethyst.37.spacehopper.org [213.152.51.85]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by nereid.37.spacehopper.org (Postfix) with ESMTP id 273251D9 for ; Wed, 9 Jul 2003 20:51:02 +0100 (BST) Date: Wed, 09 Jul 2003 20:51:01 +0100 From: Stuart Henderson To: Dovecot list Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Message-ID: <28504656.1057783861@amethyst.37.spacehopper.org> X-Mailer: Mulberry/3.1.0b3 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:51:20 -0000 X-UID: 1150 Status: O Content-Length: 1289 >> One small glitch I have noticed is that when the client requests a >> list of messages sorted by date, the timezone is ignored. > > It's not ignored, I just recently "fixed" it. Now it's properly fixed > :) Heheh.. Yes, I confirm that. (: >> It seems Dovecot is using the ,W= Maildir tag for some type of size >> instead of ,S= but I haven't traced far enough to work out what >> exactly W/virtual_size means, am I right in guessing that it might >> be 'wire size' >> i.e. message-size-with-CRLF-line-endings? > > Yes. S means the actual size of the file, W is the size with CRs. Thanks, that's good. >> And, one final question: for a dual-stack machine to listen on both >> IPv6 and IPv4 sockets, is the currently preferred option simply to >> start two instances of Dovecot with their own dovecot.conf >> containing different *_listen parameters? > > Currently, yes. I'll probably add support for multiple listening > sockets per server some day. There is no problem to have two instances running, though it might be more admin-friendly to allow the listen addresses to be supplied on the command-line, since it would save maintaining a second config file (and I imagine this would be easier for you than changing the socket code), but this is quite a low priority I think. From jake@lucidpark.net Thu Jul 10 00:02:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0150E2399B; Thu, 10 Jul 2003 00:02:49 +0300 (EEST) Received: from europa.capecodvacation.com (europa.capecodvacation.com [199.232.149.98]) by danu.procontrol.fi (Postfix) with ESMTP id 316A423997 for ; Thu, 10 Jul 2003 00:02:47 +0300 (EEST) Received: from vger.rental.trec (vger.rental.trec [192.168.1.9]) by europa.capecodvacation.com (Postfix) with ESMTP id E3BAA30C66C for ; Wed, 9 Jul 2003 17:02:42 -0400 (EDT) Received: by vger.rental.trec (Postfix, from userid 1000) id 5D93D6F988; Wed, 9 Jul 2003 17:02:34 -0400 (EDT) Date: Wed, 9 Jul 2003 17:02:34 -0400 From: Jacob Elder To: dovecot@procontrol.fi Subject: Re: [Dovecot] Concerns switching from Courier to Dovecot Message-ID: <20030709210234.GA32694@vger.capecodvacation.com> Mail-Followup-To: dovecot@procontrol.fi References: <200307091904.h69J4cn10717@panix5.panix.com> <1057778230.10425.356.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1057778230.10425.356.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 21:02:50 -0000 X-UID: 1151 Status: O On Wed 09 Jul 02003 at 10:17:10PM +0300, Timo Sirainen wrote: > On Wed, 2003-07-09 at 22:04, marcotte@panix.com wrote: > > Subfolders have different names in the file system. A folder > > (INBOX.subfolder) is named ".subfolder" in Courier, but "INBOX.subfolder" > > in dovecot. I can't simply rename all the subfolders, because our > > customers have direct access to the maildirs, and write to it directly > > with procmail and mail clients like mutt. > > No, that's not the problem. Problem is that you have your clients > configured to use "INBOX." prefix for mailboxes which Dovecot doesn't > want. > Can anyone explain how to do this with Mutt? -- Jacob Elder From ma@dt.e-technik.uni-dortmund.de Thu Jul 10 03:24:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AEF7E2399B; Thu, 10 Jul 2003 03:24:22 +0300 (EEST) Received: from m2a2.dyndns.org (pD9E1E9AF.dip.t-dialin.net [217.225.233.175]) by danu.procontrol.fi (Postfix) with ESMTP id 7744623997 for ; Thu, 10 Jul 2003 03:23:50 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id EED2F86BB4; Thu, 10 Jul 2003 02:23:45 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] Concerns switching from Courier to Dovecot In-Reply-To: <1057778230.10425.356.camel@hurina> (Timo Sirainen's message of "09 Jul 2003 22:17:10 +0300") References: <200307091904.h69J4cn10717@panix5.panix.com> <1057778230.10425.356.camel@hurina> From: Matthias Andree Date: Thu, 10 Jul 2003 02:23:45 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailman-Approved-At: Thu, 10 Jul 2003 03:32:00 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 00:24:22 -0000 X-UID: 1152 Status: O Timo Sirainen writes: > You'd currently have to recompile Dovecot with the new filenames, but > that's pretty easy to do. And I think I'll make these filenames also > configurable from config file. Don't add too many options. Removing options that aren't directly necessary is bliss. Adding a compile-time option to switch the whole set of names to "Dovecot mode" or "Courier-IMAP" mode is sufficient, if at all needed. Dovecot has yet to see its 1.0 release, so changing the default file names NOW is easier done than later. -- Matthias Andree From ma@dt.e-technik.uni-dortmund.de Thu Jul 10 03:27:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 26C712399C; Thu, 10 Jul 2003 03:27:31 +0300 (EEST) Received: from m2a2.dyndns.org (pD9E1E9AF.dip.t-dialin.net [217.225.233.175]) by danu.procontrol.fi (Postfix) with ESMTP id 178D023997 for ; Thu, 10 Jul 2003 03:26:58 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 7ABF386BB4; Thu, 10 Jul 2003 02:26:57 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. In-Reply-To: <1057779292.1736.373.camel@hurina> (Timo Sirainen's message of "09 Jul 2003 22:34:52 +0300") References: <199740171.1057542680@amethyst.37.spacehopper.org> <20030709152231.GM28197@iridium.mv.net> <1057779057.6577.370.camel@hurina> <20030709193248.GO2655@iridium.mv.net> <1057779292.1736.373.camel@hurina> From: Matthias Andree Date: Thu, 10 Jul 2003 02:26:57 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailman-Approved-At: Thu, 10 Jul 2003 03:32:00 +0300 cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 00:27:31 -0000 X-UID: 1153 Status: O Timo Sirainen writes: > Oh. I guess "test -c /dev/urandom" isn't the proper way to check it > then. It's not a character device with you? What OS? Maybe test -e would > work. test -e isn't implemented in Solaris' /bin/sh, so it's not an option unless you're willing to add special treatment to figure if you need to launch /usr/xpg4/bin/sh or something. -- Matthias Andree From ma@dt.e-technik.uni-dortmund.de Thu Jul 10 03:28:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EEA792399B; Thu, 10 Jul 2003 03:28:59 +0300 (EEST) Received: from m2a2.dyndns.org (pD9E1E9AF.dip.t-dialin.net [217.225.233.175]) by danu.procontrol.fi (Postfix) with ESMTP id 1289823997 for ; Thu, 10 Jul 2003 03:28:27 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id ADBE886BB4; Thu, 10 Jul 2003 02:28:26 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] Re: Uncaught bounce notification In-Reply-To: <1057778572.1736.361.camel@hurina> (Timo Sirainen's message of "09 Jul 2003 22:22:52 +0300") References: <1057778383.6577.358.camel@hurina> <1057778572.1736.361.camel@hurina> From: Matthias Andree Date: Thu, 10 Jul 2003 02:28:26 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailman-Approved-At: Thu, 10 Jul 2003 03:32:00 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 00:29:00 -0000 X-UID: 1154 Status: O Timo Sirainen writes: > On Wed, 2003-07-09 at 22:19, Timo Sirainen wrote: >> Lots of bounces from you, I'm moving this subscription to new address.. > > Of course, I meant to sent this privately :) Stupid List-Id headers in > adminstrative posts messing up replying.. Stupid MUAs that look like Outlook... SCNR. -- Matthias Andree From tss@iki.fi Thu Jul 10 03:39:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 95AD12399C; Thu, 10 Jul 2003 03:39:00 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8054A2399B for ; Thu, 10 Jul 2003 03:38:28 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3F4AB5C896A2 for ; Thu, 10 Jul 2003 03:38:28 +0300 (EEST) Subject: Re: [Dovecot] Concerns switching from Courier to Dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <200307091904.h69J4cn10717@panix5.panix.com> Content-Type: text/plain Message-Id: <1057797507.1736.416.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 10 Jul 2003 03:38:28 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 00:39:00 -0000 X-UID: 1155 Status: O On Thu, 2003-07-10 at 03:23, Matthias Andree wrote: > > You'd currently have to recompile Dovecot with the new filenames, but > > that's pretty easy to do. And I think I'll make these filenames also > > configurable from config file. > > Don't add too many options. Removing options that aren't directly > necessary is bliss. Adding a compile-time option to switch the whole set > of names to "Dovecot mode" or "Courier-IMAP" mode is sufficient, if at > all needed. Dovecot has yet to see its 1.0 release, so changing the > default file names NOW is easier done than later. I agree that there shouldn't be too many options, but I'm beginning to think there should be some settings to make it easy for people to install Dovecot from binary packages and easily try it along existing Courier or UW-IMAP installation. That'd mean mostly two settings: location for subscriptions file and location for Maildir file <-> UID mappings file. From tss@iki.fi Thu Jul 10 03:40:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F33E92399C; Thu, 10 Jul 2003 03:40:12 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 84D202399B for ; Thu, 10 Jul 2003 03:39:38 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5372A5C896A2 for ; Thu, 10 Jul 2003 03:39:38 +0300 (EEST) Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. From: Timo Sirainen To: Dovecot list In-Reply-To: References: <199740171.1057542680@amethyst.37.spacehopper.org> <1057779057.6577.370.camel@hurina><1057779292.1736.373.camel@hurina> Content-Type: text/plain Message-Id: <1057797578.10425.418.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 10 Jul 2003 03:39:38 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 00:40:13 -0000 X-UID: 1156 Status: O On Thu, 2003-07-10 at 03:26, Matthias Andree wrote: > Timo Sirainen writes: > > > Oh. I guess "test -c /dev/urandom" isn't the proper way to check it > > then. It's not a character device with you? What OS? Maybe test -e would > > work. > > test -e isn't implemented in Solaris' /bin/sh, so it's not an option > unless you're willing to add special treatment to figure if you need to > launch /usr/xpg4/bin/sh or something. I knew there was something wrong with it :) Well, this should work then: if test -c /dev/urandom -o -s /dev/urandom; then From tss@iki.fi Thu Jul 10 03:45:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2A0CF2399C; Thu, 10 Jul 2003 03:45:01 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CE6592399B for ; Thu, 10 Jul 2003 03:44:27 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D8D445C896A2 for ; Thu, 10 Jul 2003 03:44:26 +0300 (EEST) Subject: Re: [Dovecot] Re: Uncaught bounce notification From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <1057778383.6577.358.camel@hurina> <1057778572.1736.361.camel@hurina> Content-Type: text/plain Message-Id: <1057797866.10425.423.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 10 Jul 2003 03:44:26 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 00:45:01 -0000 X-UID: 1157 Status: O On Thu, 2003-07-10 at 03:28, Matthias Andree wrote: > > On Wed, 2003-07-09 at 22:19, Timo Sirainen wrote: > >> Lots of bounces from you, I'm moving this subscription to new address.. > > > > Of course, I meant to sent this privately :) Stupid List-Id headers in > > adminstrative posts messing up replying.. > > Stupid MUAs that look like Outlook... Well, this is the best I've found so far, I don't mind it looking like Outlook. Also reply-to-list isn't the default, I had to do it myself. Works better most of the time. Maybe OSX 10.3's Mail.app works better than the 10.2 one. Will see.. From tss@iki.fi Thu Jul 10 06:17:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E1347239A6; Thu, 10 Jul 2003 06:17:34 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D4DC42399B for ; Thu, 10 Jul 2003 06:17:01 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 8DAA55C896A2 for ; Thu, 10 Jul 2003 06:17:01 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1057807021.10425.458.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 10 Jul 2003 06:17:01 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Configuration file changes in CVS X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 03:17:35 -0000 X-UID: 1158 Status: O OK, it's there now. Not much tested yet, so there's probably some bugs. I didn't yet add support for templates, but I probably will later. The new format is like in the two example config files I sent before: http://dovecot.procontrol.fi/list/dovecot/2003-July/001832.html dovecot-example.conf contains the simple configuration now. New code also tries to be backwards compatible with most settings. New code will also try to check that the configuration is valid after SIGHUP before actually using it, so the server won't die anymore if you made a typo somewhere. It doesn't check all the settings though. Namespace configuration comes probably next. Something like: namespace { prefix = INBOX type = private separator = / location = mbox:/var/mail/%u } namespace { prefix = type = private separator = . location = maildir:~/ } namespace { prefix = lists/ type = public separator = / location = mbox:/var/mail/lists/archives } From lfarkas@bnap.hu Thu Jul 10 10:11:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CB4A7239A7; Thu, 10 Jul 2003 10:11:37 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id DBB7C239A6 for ; Thu, 10 Jul 2003 10:11:04 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id ED1D0754010 for ; Thu, 10 Jul 2003 09:09:33 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 7C5C83F45; Thu, 10 Jul 2003 09:11:02 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 5EF7A3F43 for ; Thu, 10 Jul 2003 09:11:02 +0200 (CEST) Message-ID: <3F0D1185.9040903@bnap.hu> Date: Thu, 10 Jul 2003 09:11:01 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030630 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] Configuration file changes in CVS References: <1057807021.10425.458.camel@hurina> In-Reply-To: <1057807021.10425.458.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 07:11:38 -0000 X-UID: 1159 Status: O Content-Length: 1183 Timo Sirainen wrote: > OK, it's there now. Not much tested yet, so there's probably some bugs. > I didn't yet add support for templates, but I probably will later. The > new format is like in the two example config files I sent before: > > http://dovecot.procontrol.fi/list/dovecot/2003-July/001832.html > > dovecot-example.conf contains the simple configuration now. New code > also tries to be backwards compatible with most settings. > > New code will also try to check that the configuration is valid after > SIGHUP before actually using it, so the server won't die anymore if you > made a typo somewhere. It doesn't check all the settings though. > > Namespace configuration comes probably next. Something like: > > namespace { > prefix = INBOX > type = private > separator = / > location = mbox:/var/mail/%u > } > > namespace { > prefix = > type = private > separator = . > location = maildir:~/ > } > > namespace { > prefix = lists/ > type = public > separator = / > location = mbox:/var/mail/lists/archives > } does this means that all namespace for all users or...? -- Levente "Si vis pacem para bellum!" From tss@iki.fi Thu Jul 10 12:55:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BF908239A7; Thu, 10 Jul 2003 12:55:30 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C5DD92399A for ; Thu, 10 Jul 2003 12:54:56 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 905945C896A2 for ; Thu, 10 Jul 2003 12:54:56 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes in CVS From: Timo Sirainen To: Dovecot List In-Reply-To: <3F0D1185.9040903@bnap.hu> References: <1057807021.10425.458.camel@hurina> <3F0D1185.9040903@bnap.hu> Content-Type: text/plain Message-Id: <1057830896.6577.484.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 10 Jul 2003 12:54:56 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 09:55:30 -0000 X-UID: 1160 Status: O On Thu, 2003-07-10 at 10:11, Farkas Levente wrote: > does this means that all namespace for all users or...? Yes. I don't know if there's any real use for user-specific namespaces. Actually I'm not really sure how things like INBOX should actually be defined. Or some other single mailbox file in the top level. INBOX shouldn't be shown as a separate namespace, but you might want it to have different settings. Or what if you want Maildir INBOX and mbox others? Maildir would support subfolders, so you'd have to include it in the namespace reply at least if it's hierarchy separator is different than with the mboxes. This is getting dirty :) From stu@spacehopper.org Thu Jul 10 15:07:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 48B6F238D5; Thu, 10 Jul 2003 15:07:28 +0300 (EEST) Received: from eeyore.37.spacehopper.org (eeyore.37.spacehopper.org [213.152.51.82]) by danu.procontrol.fi (Postfix) with ESMTP id 5E48F238C5 for ; Thu, 10 Jul 2003 15:06:55 +0300 (EEST) Received: from nereid.37.spacehopper.org (nereid.37.spacehopper.org [2001:618:400:e7a6:2c0:dfff:fee5:6d9a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by eeyore.37.spacehopper.org (Postfix) with ESMTP id B540D1E01B for ; Thu, 10 Jul 2003 13:06:40 +0100 (BST) Received: from amethyst.37.spacehopper.org (amethyst.37.spacehopper.org [213.152.51.85]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by nereid.37.spacehopper.org (Postfix) with ESMTP id 3EE05245 for ; Thu, 10 Jul 2003 13:06:40 +0100 (BST) Date: Thu, 10 Jul 2003 13:06:39 +0100 From: Stuart Henderson To: Dovecot List Subject: Re: [Dovecot] Configuration file changes in CVS Message-ID: <87042531.1057842399@amethyst.37.spacehopper.org> In-Reply-To: <1057830896.6577.484.camel@hurina> References: <1057807021.10425.458.camel@hurina> <3F0D1185.9040903@bnap.hu> <1057830896.6577.484.camel@hurina> X-Mailer: Mulberry/3.1.0b3 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 12:07:28 -0000 X-UID: 1161 Status: O Content-Length: 2329 --On 10 July 2003 12:54 +0300 Timo Sirainen wrote: > Actually I'm not really sure how things like INBOX should actually be > defined. Or some other single mailbox file in the top level. INBOX > shouldn't be shown as a separate namespace, but you might want it to > have different settings. Perhaps there could be one level of 'folder' containers allowed inside 'namespace' in the config... namespace { prefix = type = private separator = . location = maildir:~/ folder { name = INBOX location = mbox:/var/mail/%u separator = / } } I think it may be something of a problem to expose different separators for different parts of the hierarchy... any clients which don't understand 'namespace' won't have a clue, and I suspect that some clients which do understand 'namespace' might not cope with different folder separators in different namespaces. So I think that 'separator' in namespace/folder config should refer to 'internal' namespace, and translate for the user. e.g. like What does INBOX.foo do? What about INBOX/foo? Maybe there should be allow_subs = (yes|no) for folders (to set whether subfolders should be created with that 'style' or whether they should be created in the parent namespace). If namespace configuration is being looked at now, it would probably make sense to ensure that it will be flexible enough to cope with as many future requirements as possible without change. I'm thinking of post-1.0 possiblities here, i.e. ACLs...I think that it might be worth examining any possible namespace config to see whether it's capable of implementing ACLs without big changes to the design. Besides 'system' shared folders with ACLs, Cyrus has 'user' shared folders which it places in an 'other users' namespace (normally user.*) - this is *really* useful... Clients which know how to deal with ACLs don't require admin assistance to share a folder. e.g. login to an ACL-capable server with Mulberry (anonymous login to imap.cyrusoft.com will give some idea, though you can't change anything with that login), right-click a mail folder and choose 'Details' and you get an extra "access-control" tab with a GUI for adding users. > This is getting dirty :) You said it (-: From ma@dt.e-technik.uni-dortmund.de Thu Jul 10 16:21:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6565B23865; Thu, 10 Jul 2003 16:21:28 +0300 (EEST) Received: from m2a2.dyndns.org (pD951F44C.dip.t-dialin.net [217.81.244.76]) by danu.procontrol.fi (Postfix) with ESMTP id 8AA7C23860 for ; Thu, 10 Jul 2003 16:20:55 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id A6D0A8A2E9; Thu, 10 Jul 2003 15:20:53 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] Configuration file changes in CVS In-Reply-To: <1057830896.6577.484.camel@hurina> (Timo Sirainen's message of "10 Jul 2003 12:54:56 +0300") References: <1057807021.10425.458.camel@hurina> <3F0D1185.9040903@bnap.hu> <1057830896.6577.484.camel@hurina> From: Matthias Andree Date: Thu, 10 Jul 2003 15:20:53 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailman-Approved-At: Thu, 10 Jul 2003 17:24:50 +0300 cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 13:21:28 -0000 X-UID: 1162 Status: O Timo Sirainen writes: > Or what if you want Maildir INBOX and mbox others? Maildir would support > subfolders, so you'd have to include it in the namespace reply at least > if it's hierarchy separator is different than with the mboxes. No-one's supposed to use mbox. Optimize as much as you want, it just doesn't scale at all. -- Matthias Andree From ma@dt.e-technik.uni-dortmund.de Thu Jul 10 16:25:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 17C9D23865; Thu, 10 Jul 2003 16:25:53 +0300 (EEST) Received: from m2a2.dyndns.org (pD951F44C.dip.t-dialin.net [217.81.244.76]) by danu.procontrol.fi (Postfix) with ESMTP id EE1D223860 for ; Thu, 10 Jul 2003 16:25:19 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 2E61A8A2E9; Thu, 10 Jul 2003 15:25:19 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. In-Reply-To: <1057797578.10425.418.camel@hurina> (Timo Sirainen's message of "10 Jul 2003 03:39:38 +0300") References: <199740171.1057542680@amethyst.37.spacehopper.org> <1057779057.6577.370.camel@hurina> <1057779292.1736.373.camel@hurina> <1057797578.10425.418.camel@hurina> From: Matthias Andree Date: Thu, 10 Jul 2003 15:25:19 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailman-Approved-At: Thu, 10 Jul 2003 17:24:50 +0300 cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 13:25:53 -0000 X-UID: 1163 Status: O Content-Length: 1357 Timo Sirainen writes: > On Thu, 2003-07-10 at 03:26, Matthias Andree wrote: >> Timo Sirainen writes: >> >> > Oh. I guess "test -c /dev/urandom" isn't the proper way to check it >> > then. It's not a character device with you? What OS? Maybe test -e would >> > work. >> >> test -e isn't implemented in Solaris' /bin/sh, so it's not an option >> unless you're willing to add special treatment to figure if you need to >> launch /usr/xpg4/bin/sh or something. > > I knew there was something wrong with it :) Well, this should work then: > > if test -c /dev/urandom -o -s /dev/urandom; then Autoconf suggests using if test -c /dev/urandom || test -s /dev/urandom ; then Rationale: Quoting from "(autoconf.info)Limitations of Builtins": | `test' | [...] | | If you need to make multiple checks using `test', combine them with | the shell operators `&&' and `||' instead of using the `test' | operators `-a' and `-o'. On System V, the precedence of `-a' and | `-o' is wrong relative to the unary operators; consequently, POSIX | does not specify them, so using them is nonportable. If you | combine `&&' and `||' in the same statement, keep in mind that | they have equal precedence. | | You may use `!' with `test', but not with `if': `test ! -r foo || | exit 1'. -- Matthias Andree From charlieb-dovecot@e-smith.com Thu Jul 10 17:38:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C3F532387A; Thu, 10 Jul 2003 17:38:07 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 6D30323865 for ; Thu, 10 Jul 2003 17:37:34 +0300 (EEST) Received: (qmail 21436 invoked by uid 404); 10 Jul 2003 14:37:33 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 10 Jul 2003 10:37:33 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 10 Jul 2003 14:37:33 -0000 Received: (qmail 2293 invoked by uid 5008); 10 Jul 2003 14:37:33 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 10 Jul 2003 14:37:33 -0000 Date: Thu, 10 Jul 2003 10:37:33 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. In-Reply-To: <1057777760.6577.346.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 14:38:07 -0000 X-UID: 1164 Status: O On 9 Jul 2003, Timo Sirainen wrote: > On Wed, 2003-07-09 at 21:13, Charlie Brady wrote: > > Better for me would be a patch against 0.99.10. > > Index: message-date.c > =================================================================== > RCS file: /home/cvs/dovecot/src/lib-mail/message-date.c,v Thanks, works for me (although I needed to mangle paths in the diff before patch could use it). -- Charlie From charlieb@e-smith.com Thu Jul 10 17:36:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 737DB2387A; Thu, 10 Jul 2003 17:36:14 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id E6DBE23865 for ; Thu, 10 Jul 2003 17:35:41 +0300 (EEST) Received: (qmail 21146 invoked by uid 404); 10 Jul 2003 14:35:37 -0000 Received: from charlieb@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 10 Jul 2003 10:35:37 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 10 Jul 2003 14:35:37 -0000 Received: (qmail 1760 invoked by uid 5008); 10 Jul 2003 14:35:37 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 10 Jul 2003 14:35:37 -0000 Date: Thu, 10 Jul 2003 10:35:37 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Dovecot List Subject: Re: [Dovecot] Configuration file changes in CVS In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Mailman-Approved-At: Thu, 10 Jul 2003 17:43:32 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 14:36:14 -0000 X-UID: 1165 Status: O On Thu, 10 Jul 2003, Matthias Andree wrote: > Timo Sirainen writes: > > > Or what if you want Maildir INBOX and mbox others? Maildir would support > > subfolders, so you'd have to include it in the namespace reply at least > > if it's hierarchy separator is different than with the mboxes. > > No-one's supposed to use mbox. Optimize as much as you want, it just > doesn't scale at all. Converting from mbox to Maildir is easy. Everyone should be encouraged to do it. [My 2c worth] -- Charlie From tss@iki.fi Thu Jul 10 17:47:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2D6D523887; Thu, 10 Jul 2003 17:47:32 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5E5C123865 for ; Thu, 10 Jul 2003 17:47:00 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 313795C896A2 for ; Thu, 10 Jul 2003 17:47:00 +0300 (EEST) Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. From: Timo Sirainen To: Dovecot list In-Reply-To: References: <199740171.1057542680@amethyst.37.spacehopper.org> <1057779292.1736.373.camel@hurina><1057797578.10425.418.camel@hurina> Content-Type: text/plain Message-Id: <1057848420.6577.501.camel@hurina2> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 10 Jul 2003 17:47:00 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 14:47:32 -0000 X-UID: 1166 Status: O On Thu, 2003-07-10 at 16:25, Matthias Andree wrote: > Autoconf suggests using > > if test -c /dev/urandom || test -s /dev/urandom ; then Oh well, changed. I've never however seen missing -a or -o, even Solaris has it :) From tss@iki.fi Thu Jul 10 17:47:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 95C6F238C6; Thu, 10 Jul 2003 17:47:42 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8E7592387A for ; Thu, 10 Jul 2003 17:47:10 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 683905C896A2 for ; Thu, 10 Jul 2003 17:47:10 +0300 (EEST) Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. From: Timo Sirainen To: Dovecot list In-Reply-To: References: <199740171.1057542680@amethyst.37.spacehopper.org> <1057779292.1736.373.camel@hurina><1057797578.10425.418.camel@hurina> Content-Type: text/plain Message-Id: <1057848420.6577.501.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 10 Jul 2003 17:47:10 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 14:47:42 -0000 X-UID: 1167 Status: O On Thu, 2003-07-10 at 16:25, Matthias Andree wrote: > Autoconf suggests using > > if test -c /dev/urandom || test -s /dev/urandom ; then Oh well, changed. I've never however seen missing -a or -o, even Solaris has it :) From tss@iki.fi Thu Jul 10 17:52:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 25ED32387A; Thu, 10 Jul 2003 17:52:41 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 232C723865 for ; Thu, 10 Jul 2003 17:52:09 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id DB7865C896A2 for ; Thu, 10 Jul 2003 17:52:08 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes in CVS From: Timo Sirainen To: Dovecot List In-Reply-To: References: <1057807021.10425.458.camel@hurina> <3F0D1185.9040903@bnap.hu> Content-Type: text/plain Message-Id: <1057848728.1736.504.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 10 Jul 2003 17:52:08 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 14:52:41 -0000 X-UID: 1168 Status: O On Thu, 2003-07-10 at 16:20, Matthias Andree wrote: > > Or what if you want Maildir INBOX and mbox others? Maildir would support > > subfolders, so you'd have to include it in the namespace reply at least > > if it's hierarchy separator is different than with the mboxes. > > No-one's supposed to use mbox. Optimize as much as you want, it just > doesn't scale at all. mbox is fine as long as you don't want to delete messages. It's perfect for read-only mailing list archives. From mem@mv.mv.com Thu Jul 10 18:48:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C1D222387A; Thu, 10 Jul 2003 18:48:54 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id A2BBA23860 for ; Thu, 10 Jul 2003 18:48:51 +0300 (EEST) Received: (qmail 13598 invoked by uid 101); 10 Jul 2003 11:48:50 -0400 From: "Mark E. Mallett" Date: Thu, 10 Jul 2003 11:48:50 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Configuration file changes in CVS Message-ID: <20030710154850.GU19950@iridium.mv.net> References: <1057807021.10425.458.camel@hurina> <3F0D1185.9040903@bnap.hu> <1057848728.1736.504.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1057848728.1736.504.camel@hurina> User-Agent: Mutt/1.4.1i cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 15:48:54 -0000 X-UID: 1169 Status: O Content-Length: 2328 On Thu, Jul 10, 2003 at 05:52:08PM +0300, Timo Sirainen wrote: > On Thu, 2003-07-10 at 16:20, Matthias Andree wrote: > > > Or what if you want Maildir INBOX and mbox others? Maildir would support > > > subfolders, so you'd have to include it in the namespace reply at least > > > if it's hierarchy separator is different than with the mboxes. > > > > No-one's supposed to use mbox. Optimize as much as you want, it just > > doesn't scale at all. > > mbox is fine as long as you don't want to delete messages. It's perfect > for read-only mailing list archives. Indeed. mbox is fine for some people and some things, and in fact for archived mboxes Maildir can just be a big waste. It is nice to be open to well-established storage formats. Bear in mind that there are people who refuse to use Maildir formats too. On this whole storage/namespace/search-path thing-- wouldn't it be nice if various imap/pop server implementations could settle on some standard ways of dealing with things? Certainly not the same techniques, but the same effects and terms and storage layouts -- making it possible to switch between various implementations. There always seem to be confusions and incompatibilities regarding various implementation details: Namespace: even how to *talk* about namespace across various implementations can be confusing, let alone the fact that namespace conventions do not necessarily translate into file naming conventions (which is proper- but I'm just saying it adds to the confusion when discussing it). Filesystem layout: for example a big bugaboo is that once you choose a Maildir as your primary mailbox (in a Maildir++ -like world), you're locked in there. Plenty of users already have their own idea of where they'd like their folders to be, and in what format (some maildir, some mbox), and it's just not reasonable to expect them to give that up. It ought to be possible to easily mix and match collections of Maildir, Maildir++, and mbox formats throughout a users' home space (and elsewhere, if allowed). Over in binciland there is the notion of an IMAPdir which addresses some of this although I don't think it's perfect. (I believe Andreas is here too..) Implementation of quotas, shared folders, bulletins, etc. Anyway-- a little cross-pollenization of ideas could help here. mm From charlieb-dovecot@e-smith.com Thu Jul 10 21:31:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C60EF2387A; Thu, 10 Jul 2003 21:31:56 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 4EF8423865 for ; Thu, 10 Jul 2003 21:31:47 +0300 (EEST) Received: (qmail 1950 invoked by uid 404); 10 Jul 2003 18:31:45 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 10 Jul 2003 14:31:45 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 10 Jul 2003 18:31:44 -0000 Received: (qmail 7178 invoked by uid 5008); 10 Jul 2003 18:31:44 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 10 Jul 2003 18:31:44 -0000 Date: Thu, 10 Jul 2003 14:31:44 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: "Mark E. Mallett" Subject: Re: [Dovecot] Configuration file changes in CVS In-Reply-To: <20030710154850.GU19950@iridium.mv.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 18:31:57 -0000 X-UID: 1170 Status: O Content-Length: 1215 On Thu, 10 Jul 2003, Mark E. Mallett wrote: > On Thu, Jul 10, 2003 at 05:52:08PM +0300, Timo Sirainen wrote: > > > > mbox is fine as long as you don't want to delete messages. It's perfect > > for read-only mailing list archives. > > Indeed. mbox is fine for some people and some things, and in fact > for archived mboxes Maildir can just be a big waste. > > It is nice to be open to well-established storage formats. Bear in > mind that there are people who refuse to use Maildir formats too. Sure, but that doesn't mean that such people *must* be catered for by every imap daemon. Trying to keep everybody happy pretty much guarantees that nobody will be completely happy. Back to the topic, I'd rather there wasn't a configuration file at all. I've got very used to Dan Berstein/Bruce Guenter software where environment variables and command line arguments are the only configuration. I'm only using the "imap" program from dovecot(*), and that follows the same convention (in standard usage, its environment variables are set by the dovecot frontends). (*)I'm using tcpserver for network connection control, modified stunnel for TLS, and imapfront for authentication/uid switching. -- Charlie From david@eelf.ddts.net Thu Jul 10 21:37:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 54A712387A; Thu, 10 Jul 2003 21:37:17 +0300 (EEST) Received: from andromeda.oftc.net (andromeda.oftc.net [80.190.233.18]) by danu.procontrol.fi (Postfix) with ESMTP id 8289D23865 for ; Thu, 10 Jul 2003 21:37:14 +0300 (EEST) Received: from [24.100.14.174] (helo=willow.eelf.ddts.net) by andromeda.oftc.net with asmtp (TLS-1.0:RSA_ARCFOUR_SHA:16) (Exim 4.20) id 19agI2-0001GG-3H for dovecot@procontrol.fi; Thu, 10 Jul 2003 18:37:10 +0000 Received: from localhost ([127.0.0.1] helo=willow.eelf.ddts.net ident=david) by willow.eelf.ddts.net with smtp (Exim 4.20) id 19agHz-0004mB-5F for dovecot@procontrol.fi; Thu, 10 Jul 2003 14:37:07 -0400 Date: Thu, 10 Jul 2003 14:37:06 -0400 From: David B Harris To: dovecot@procontrol.fi Subject: Re: [Dovecot] Configuration file changes in CVS Message-Id: <20030710143706.3d4c2373.david@eelf.ddts.net> In-Reply-To: References: <20030710154850.GU19950@iridium.mv.net> Organization: Tachyon Systems X-Mailer: Sylpheed version 0.9.0claws50 (GTK+ 1.2.10; i686-pc-linux-gnu) Mail-Copies-To: nobody Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.?i0B,'WNdMdlvr" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 18:37:17 -0000 X-UID: 1171 Status: O Content-Length: 1324 --=.?i0B,'WNdMdlvr Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Thu, 10 Jul 2003 14:31:44 -0400 (EDT) Charlie Brady wrote: > Back to the topic, I'd rather there wasn't a configuration file at all. > I've got very used to Dan Berstein/Bruce Guenter software where > environment variables and command line arguments are the only > configuration. I'm only using the "imap" program from dovecot(*), and that > follows the same convention (in standard usage, its environment variables > are set by the dovecot frontends). When replacing a configuration file with command-line options and/or environment variables, you still end up with configuration files. The difference is in syntax; with environment variables and CLI options, your "configuration files" will take the form of executable scripts, most likely in either shell or Perl syntax. It's also nastier to represent complex structures in single-line expressions, though I don't believe dovecot currently has anything so complex. --=.?i0B,'WNdMdlvr Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/DbJSuCQ/g7GxJcARArZFAJ96wkAHiW9TGwDF2/aF3PyYp1JHVACgiPzR 9i1wsvUnQxw9xJ2sJYgZnkU= =Aw84 -----END PGP SIGNATURE----- --=.?i0B,'WNdMdlvr-- From tss@iki.fi Thu Jul 10 22:25:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7E2B42387A; Thu, 10 Jul 2003 22:25:56 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AE92623866 for ; Thu, 10 Jul 2003 22:25:51 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 20EB45C896A2 for ; Thu, 10 Jul 2003 22:25:50 +0300 (EEST) Subject: Re: [Dovecot] Configuration file changes in CVS From: Timo Sirainen To: Dovecot List In-Reply-To: References: Content-Type: text/plain Message-Id: <1057865149.1736.520.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 10 Jul 2003 22:25:50 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 19:25:56 -0000 X-UID: 1172 Status: O On Thu, 2003-07-10 at 21:31, Charlie Brady wrote: > Back to the topic, I'd rather there wasn't a configuration file at all. > I've got very used to Dan Berstein/Bruce Guenter software where > environment variables and command line arguments are the only > configuration. I'm only using the "imap" program from dovecot(*), and that > follows the same convention (in standard usage, its environment variables > are set by the dovecot frontends). I'll continue passing the configuration in environment for imap/pop3. Something like NAMESPACE_1=a:b:c NAMESPACE_2=b:c:d or whatever. From mem@mv.mv.com Thu Jul 10 22:54:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8A2B82387A; Thu, 10 Jul 2003 22:54:40 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 5A1CB23866 for ; Thu, 10 Jul 2003 22:54:37 +0300 (EEST) Received: (qmail 19149 invoked by uid 101); 10 Jul 2003 15:54:36 -0400 From: "Mark E. Mallett" Date: Thu, 10 Jul 2003 15:54:36 -0400 To: Charlie Brady Subject: Re: [Dovecot] Configuration file changes in CVS Message-ID: <20030710195436.GB15140@iridium.mv.net> References: <20030710154850.GU19950@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 19:54:40 -0000 X-UID: 1173 Status: O Content-Length: 2124 On Thu, Jul 10, 2003 at 02:31:44PM -0400, Charlie Brady wrote: > > On Thu, 10 Jul 2003, Mark E. Mallett wrote: > > > On Thu, Jul 10, 2003 at 05:52:08PM +0300, Timo Sirainen wrote: > > > > > > mbox is fine as long as you don't want to delete messages. It's perfect > > > for read-only mailing list archives. > > > > Indeed. mbox is fine for some people and some things, and in fact > > for archived mboxes Maildir can just be a big waste. > > > > It is nice to be open to well-established storage formats. Bear in > > mind that there are people who refuse to use Maildir formats too. > > Sure, but that doesn't mean that such people *must* be catered for by > every imap daemon. Trying to keep everybody happy pretty much guarantees > that nobody will be completely happy. I buy that too- but we're not talking about some fringe format. As a somewhat related comment, I originally gravitated towards dovecot because it supported {imap,pop}{Maildir,mbox} using one code base and one tool. While there are things to be said for using multiple tools for multiple things, it's nice to have one motif and one philosophy behind access to a set of mailboxex. But yeah, catering to every little new format often detracts from the whole. (That's where plug-ins are useful.) > Back to the topic, I'd rather there wasn't a configuration file at all. > I've got very used to Dan Berstein/Bruce Guenter software where > environment variables and command line arguments are the only > configuration. I also agree here- that kind of control is nice for some things, particularly when those things are simple boolean switches (enable/disable), and especially when it makes sense to control those things at runtime on a discrete basis. However note "environment variables and command line arguments only" is not necessarily the philosophy for djb's stuff (I'm afraid I have no experience with the other). qmail, for example, has a raft of control files that, well, control its operation. And sometimes more complex configurations do make sense, for example for where encapsulations of multiple settings are common. -mm- From mem@mv.mv.com Thu Jul 10 22:56:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ADDF2238C5; Thu, 10 Jul 2003 22:56:11 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 1258623866 for ; Thu, 10 Jul 2003 22:56:09 +0300 (EEST) Received: (qmail 20117 invoked by uid 101); 10 Jul 2003 15:56:07 -0400 From: "Mark E. Mallett" Date: Thu, 10 Jul 2003 15:56:07 -0400 To: David B Harris Subject: Re: [Dovecot] Configuration file changes in CVS Message-ID: <20030710195607.GC15140@iridium.mv.net> References: <20030710154850.GU19950@iridium.mv.net> <20030710143706.3d4c2373.david@eelf.ddts.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030710143706.3d4c2373.david@eelf.ddts.net> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 19:56:11 -0000 X-UID: 1174 Status: O On Thu, Jul 10, 2003 at 02:37:06PM -0400, David B Harris wrote: > > When replacing a configuration file with command-line options and/or > environment variables, you still end up with configuration files. The > difference is in syntax; with environment variables and CLI options, > your "configuration files" will take the form of executable scripts, > most likely in either shell or Perl syntax. Good point. Instead of a configuration file, you have configuration logic. Although often that's more friendly to hackers :-) mm From charlieb-dovecot@e-smith.com Thu Jul 10 23:02:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3AEFF2387A; Thu, 10 Jul 2003 23:02:22 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id ED26F23866 for ; Thu, 10 Jul 2003 23:02:18 +0300 (EEST) Received: (qmail 25941 invoked by uid 404); 10 Jul 2003 20:02:17 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 10 Jul 2003 16:02:17 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 10 Jul 2003 20:02:17 -0000 Received: (qmail 3176 invoked by uid 5008); 10 Jul 2003 20:02:17 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 10 Jul 2003 20:02:17 -0000 Date: Thu, 10 Jul 2003 16:02:17 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: "Mark E. Mallett" Subject: Re: [Dovecot] Configuration file changes in CVS In-Reply-To: <20030710195436.GB15140@iridium.mv.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 20:02:22 -0000 X-UID: 1175 Status: O Content-Length: 1311 On Thu, 10 Jul 2003, Mark E. Mallett wrote: > > Back to the topic, I'd rather there wasn't a configuration file at all. > > I've got very used to Dan Berstein/Bruce Guenter software where > > environment variables and command line arguments are the only > > configuration. > > I also agree here- that kind of control is nice for some things, > particularly when those things are simple boolean switches > (enable/disable), and especially when it makes sense to control those > things at runtime on a discrete basis. Agreed. > However note "environment > variables and command line arguments only" is not necessarily the > philosophy for djb's stuff (I'm afraid I have no experience with the > other). However, avoiding parsing *is* a clear policy of his, with, I think, considerable payback in reliability and simplicity of control. > qmail, for example, has a raft of control files that, well, > control its operation. Sure, but they are all *very* simple in format. > And sometimes more complex configurations do make sense, for example > for where encapsulations of multiple settings are common. Such encapsulation can usually be done another way, for example by having multiple directories, each holding a collection of simple config files. ezmlm, for instance, works this way. -- Charlie From charlieb-dovecot@e-smith.com Thu Jul 10 23:05:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 725882387A; Thu, 10 Jul 2003 23:05:41 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 5A1D823866 for ; Thu, 10 Jul 2003 23:05:39 +0300 (EEST) Received: (qmail 26354 invoked by uid 404); 10 Jul 2003 20:05:38 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 10 Jul 2003 16:05:38 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 10 Jul 2003 20:05:38 -0000 Received: (qmail 4214 invoked by uid 5008); 10 Jul 2003 20:05:38 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 10 Jul 2003 20:05:38 -0000 Date: Thu, 10 Jul 2003 16:05:38 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: dovecot@procontrol.fi Subject: Re: [Dovecot] Configuration file changes in CVS In-Reply-To: <20030710195607.GC15140@iridium.mv.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 20:05:41 -0000 X-UID: 1176 Status: O On Thu, Jul 10, 2003 at 02:37:06PM -0400, David B Harris wrote: > > When replacing a configuration file with command-line options and/or > environment variables, you still end up with configuration files. The > difference is in syntax; with environment variables and CLI options, > your "configuration files" will take the form of executable scripts, > most likely in either shell or Perl syntax. Here you have well understood syntax, and very well tested parsing code. -- Charlie From mem@mv.mv.com Thu Jul 10 23:15:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C767F2387A; Thu, 10 Jul 2003 23:15:13 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 43F9123866 for ; Thu, 10 Jul 2003 23:15:03 +0300 (EEST) Received: (qmail 5022 invoked by uid 101); 10 Jul 2003 16:15:01 -0400 From: "Mark E. Mallett" Date: Thu, 10 Jul 2003 16:15:00 -0400 To: Charlie Brady Subject: Re: [Dovecot] Configuration file changes in CVS Message-ID: <20030710201500.GL15140@iridium.mv.net> References: <20030710195436.GB15140@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 20:15:14 -0000 X-UID: 1177 Status: O On Thu, Jul 10, 2003 at 04:02:17PM -0400, Charlie Brady wrote: > > However, avoiding parsing *is* a clear policy of his, with, I think, > considerable payback in reliability and simplicity of control. > > > qmail, for example, has a raft of control files that, well, > > control its operation. > > Sure, but they are all *very* simple in format. Yes and no. Files like: tag:value are easy to read. Files like field1:field2:field3:field4:field5:field6:field7:field8 or a collection ofa-gazillion easy-to-read but a-lifetime-to-wade-through files make it easy for the computer but very difficult for the human. I kinda like it when the computer makes it easy for the human. There is certainly middle ground where parsing is not error prone (realizing that all programs have to be debugged): somewhere in between LISP and a natural language system is just fine with me. I'm not going to belabor it, though.. Timo will do what he will do :-) mm From mem@mv.mv.com Fri Jul 11 00:52:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EE9642387A; Fri, 11 Jul 2003 00:52:30 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id D64D423866 for ; Fri, 11 Jul 2003 00:52:27 +0300 (EEST) Received: (qmail 9553 invoked by uid 101); 10 Jul 2003 17:52:26 -0400 From: "Mark E. Mallett" Date: Thu, 10 Jul 2003 17:52:25 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Message-ID: <20030710215225.GA20624@iridium.mv.net> References: <199740171.1057542680@amethyst.37.spacehopper.org> <1057762542.10425.309.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1057762542.10425.309.camel@hurina> User-Agent: Mutt/1.4.1i cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 21:52:31 -0000 X-UID: 1178 Status: O Content-Length: 1990 On Wed, Jul 09, 2003 at 05:55:42PM +0300, Timo Sirainen wrote: > On Mon, 2003-07-07 at 03:51, Stuart Henderson wrote: > > One small glitch I have noticed is that when the client requests a list > > of messages sorted by date, the timezone is ignored. > > It's not ignored, I just recently "fixed" it. Now it's properly fixed :) test2 does not fix the internaldate issue here, I'm sorry to say. This only recently started happening, I think as of rc4 or thereabouts. Up until that time, the internaldate was being reported properly. Now it's not. (This is for mbox formats.) More details.. It appears that the internaldate is being taken from the "From " line (aka the "From_" line). Traditionally local delivery agents would write that line something like: From mem@mv.mv.com Thu Jul 10 16:46:11 2003 with no timezone info at all. However different local delivery agents would use various timezones, some using GMT or UT, and some using whatever local time was in effect. Plus, if you take a saved mbox with you to another timezone, all those timestamps are wrong. At some point in the past, we made the local delivery agents use timezone 0 and append the keyword UTC at the end, like this: From mem@mv.mv.com Thu Jul 10 20:46:11 2003 UTC (I realize that standard mbox "From_" date is written in local timezone with no timezone qualifier, but I really dislike that amount of ambiguity so I did what I did.) Up until recently dovecot was returning the correct internaldate. Recently it has started returning the time string as if it were the local time, and ignoring the timezone. I suspected that you were being more rigorous about ignoring known obsolete forms including keyword timezones, so I changed to: From mem@mv.mv.com Thu Jul 10 20:46:11 2003 +0000 with no change in behaviour. Apparently you are being more rigorous about enforcing standard mbox "From_" format? Would it hurt to parse timezone information on the "From_" line if it's there? mm From tss@iki.fi Fri Jul 11 02:45:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 59F952387A; Fri, 11 Jul 2003 02:45:29 +0300 (EEST) Received: from iki.fi (cd-202.mpy.kv9.net [62.197.185.202]) by danu.procontrol.fi (Postfix) with ESMTP id A2B7823866; Fri, 11 Jul 2003 02:45:18 +0300 (EEST) Date: Fri, 11 Jul 2003 02:45:11 +0300 Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: "Mark E. Mallett" From: Timo Sirainen In-Reply-To: <20030710215225.GA20624@iridium.mv.net> Message-Id: <8B8F31FB-B330-11D7-B578-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) X-Spam-Status: No, hits=-3.9 required=5.0 tests=BAYES_20,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 23:45:29 -0000 X-UID: 1179 Status: O On Friday, Jul 11, 2003, at 00:52 Europe/Helsinki, Mark E. Mallett wrote: > Up until recently dovecot was returning the correct internaldate. > Recently it has started returning the time string as if it were the > local time, and ignoring the timezone. I doubt it has ever even tried to use the timezone in From-lines. If it worked with you before, it was probably because you had the dates stored in "correct" timezone. > Would it hurt to parse timezone information on the "From_" line > if it's there? I guess I could do it. At least the -0000 or +0000 format. Parsing named timezones would probably be too much trouble. From mem@mv.mv.com Fri Jul 11 02:49:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F3F772387A; Fri, 11 Jul 2003 02:49:24 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id DF10E23866 for ; Fri, 11 Jul 2003 02:49:21 +0300 (EEST) Received: (qmail 2472 invoked by uid 101); 10 Jul 2003 19:49:20 -0400 From: "Mark E. Mallett" Date: Thu, 10 Jul 2003 19:49:20 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Message-ID: <20030710234920.GN1552@iridium.mv.net> References: <20030710215225.GA20624@iridium.mv.net> <8B8F31FB-B330-11D7-B578-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8B8F31FB-B330-11D7-B578-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 23:49:25 -0000 X-UID: 1180 Status: O Content-Length: 1161 On Fri, Jul 11, 2003 at 02:45:11AM +0300, Timo Sirainen wrote: > > On Friday, Jul 11, 2003, at 00:52 Europe/Helsinki, Mark E. Mallett > wrote: > > >Up until recently dovecot was returning the correct internaldate. > >Recently it has started returning the time string as if it were the > >local time, and ignoring the timezone. > > I doubt it has ever even tried to use the timezone in From-lines. If it > worked with you before, it was probably because you had the dates > stored in "correct" timezone. Nope-- no change there for a long, long time. It suddenly started happening after a particular dovecot install. I suspected that it had something to do with the change you made to start caching dates if they were referenced (am I remembering that right?) Perhaps without caching you simply took the literal string, but with caching you interpreted the date? > >Would it hurt to parse timezone information on the "From_" line > >if it's there? > > I guess I could do it. At least the -0000 or +0000 format. Parsing > named timezones would probably be too much trouble. That would be great, even though I'm probably the only one who wants it. mm From tss@iki.fi Fri Jul 11 03:09:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1B2BA2387A; Fri, 11 Jul 2003 03:09:00 +0300 (EEST) Received: from iki.fi (cd-202.mpy.kv9.net [62.197.185.202]) by danu.procontrol.fi (Postfix) with ESMTP id E248623866; Fri, 11 Jul 2003 03:08:57 +0300 (EEST) Date: Fri, 11 Jul 2003 03:08:56 +0300 Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: "Mark E. Mallett" From: Timo Sirainen In-Reply-To: <20030710234920.GN1552@iridium.mv.net> Message-Id: Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 00:09:00 -0000 X-UID: 1181 Status: O On Friday, Jul 11, 2003, at 02:49 Europe/Helsinki, Mark E. Mallett wrote: >> I doubt it has ever even tried to use the timezone in From-lines. If >> it >> worked with you before, it was probably because you had the dates >> stored in "correct" timezone. > > Nope-- no change there for a long, long time. It suddenly > started happening after a particular dovecot install. I suspected > that it had something to do with the change you made to start > caching dates if they were referenced (am I remembering that right?) > Perhaps without caching you simply took the literal string, but > with caching you interpreted the date? No, they're always parsed. And I've always ignored timezones in it. Looks like I added support for ".. Jul 11 EET 2003" format where it just skips the timezone, before that it would treat such From lines completely invalid. Maybe that's what happened with you? If Dovecot thinks that the timestamp is invalid, it uses current time (parsing time) as internaldate. From mem@mv.mv.com Fri Jul 11 03:12:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3C0512387A; Fri, 11 Jul 2003 03:12:58 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 34DF323866 for ; Fri, 11 Jul 2003 03:12:54 +0300 (EEST) Received: (qmail 18130 invoked by uid 101); 10 Jul 2003 20:12:52 -0400 From: "Mark E. Mallett" Date: Thu, 10 Jul 2003 20:12:52 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. Message-ID: <20030711001252.GO1552@iridium.mv.net> References: <20030710234920.GN1552@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i cc: Dovecot list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 00:12:58 -0000 X-UID: 1182 Status: O On Fri, Jul 11, 2003 at 03:08:56AM +0300, Timo Sirainen wrote: > > No, they're always parsed. And I've always ignored timezones in it. > Looks like I added support for ".. Jul 11 EET 2003" format where it > just skips the timezone, before that it would treat such From lines > completely invalid. Maybe that's what happened with you? If Dovecot > thinks that the timestamp is invalid, it uses current time (parsing > time) as internaldate. Ah, probably. From overflow@eurielec.etsit.upm.es Fri Jul 11 11:18:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 493FE2387A; Fri, 11 Jul 2003 11:18:34 +0300 (EEST) Received: from eurielec.etsit.upm.es (uno.eurielec.etsit.upm.es [138.100.31.227]) by danu.procontrol.fi (Postfix) with ESMTP id 28BB723866 for ; Fri, 11 Jul 2003 11:18:30 +0300 (EEST) Received: from eurielec.etsit.upm.es (www.eurielec.etsit.upm.es [138.100.31.226]) by eurielec.etsit.upm.es (Postfix) with SMTP id 896FD23D3 for ; Fri, 11 Jul 2003 10:18:02 +0200 (CEST) Received: from 195.235.92.108 (SquirrelMail authenticated user overflow) by www.eurielec.etsit.upm.es with HTTP; Fri, 11 Jul 2003 10:18:23 +0200 (CEST) Message-ID: <53934.195.235.92.108.1057911503.squirrel@www.eurielec.etsit.upm.es> Date: Fri, 11 Jul 2003 10:18:23 +0200 (CEST) From: "Jaime Medrano" To: X-Priority: 3 Importance: Normal X-MSMail-Priority: Normal X-Mailer: SquirrelMail (version 1.2.6) MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit Subject: [Dovecot] Permission denied X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 08:18:34 -0000 X-UID: 1183 Status: O Dovecot is faulting on an error about permissions that it shouldn't do. I've got an user with its home dir with permissions 700, and inside the mail directory with the mboxes. In the error log I can see: 'Can't chdir to /home/user. Permission denied' I wonder why it has to chdir to that directory and why it can't access. Shouldn't it be running as the user? From ma@dt.e-technik.uni-dortmund.de Fri Jul 11 12:23:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4757223896; Fri, 11 Jul 2003 12:23:18 +0300 (EEST) Received: from m2a2.dyndns.org (pD9E1E1BB.dip.t-dialin.net [217.225.225.187]) by danu.procontrol.fi (Postfix) with ESMTP id C73E923866 for ; Fri, 11 Jul 2003 12:23:08 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 5D6878B1FF; Fri, 11 Jul 2003 11:23:06 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] Configuration file changes in CVS In-Reply-To: <1057848728.1736.504.camel@hurina> (Timo Sirainen's message of "10 Jul 2003 17:52:08 +0300") References: <1057807021.10425.458.camel@hurina> <3F0D1185.9040903@bnap.hu> <1057848728.1736.504.camel@hurina> From: Matthias Andree Date: Fri, 11 Jul 2003 11:23:06 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailman-Approved-At: Fri, 11 Jul 2003 12:41:20 +0300 cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 09:23:18 -0000 X-UID: 1184 Status: O Content-Length: 1071 Timo Sirainen writes: > On Thu, 2003-07-10 at 16:20, Matthias Andree wrote: >> > Or what if you want Maildir INBOX and mbox others? Maildir would support >> > subfolders, so you'd have to include it in the namespace reply at least >> > if it's hierarchy separator is different than with the mboxes. >> >> No-one's supposed to use mbox. Optimize as much as you want, it just >> doesn't scale at all. > > mbox is fine as long as you don't want to delete messages. It's perfect > for read-only mailing list archives. Unless you run incremental backups with systems such as IBM/Tivoli Distributed Storage Manager that save complete files. Switching from mbox to Maildir has a *major* effect on the nightly backup data volume. With many users or users with big mboxes, or even with read-only list archives that include "current month", it's just prohibitively expensive. I'd let my sister use it on her computer, but not in serious production -- I'd use NNTP to offer read-only archives rather than IMAP, but that's a personal preference. -- Matthias Andree From ma@dt.e-technik.uni-dortmund.de Fri Jul 11 12:32:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CBAF223896; Fri, 11 Jul 2003 12:32:22 +0300 (EEST) Received: from m2a2.dyndns.org (pD9E1E1BB.dip.t-dialin.net [217.225.225.187]) by danu.procontrol.fi (Postfix) with ESMTP id 3BFE023866 for ; Fri, 11 Jul 2003 12:32:20 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id B2CF58B265; Fri, 11 Jul 2003 11:32:19 +0200 (CEST) To: dovecot@procontrol.fi Subject: Re: [Dovecot] Date sort-order ignoring timezone, and a few Q's. In-Reply-To: <1057848420.6577.501.camel@hurina> (Timo Sirainen's message of "10 Jul 2003 17:47:10 +0300") References: <199740171.1057542680@amethyst.37.spacehopper.org> <1057779292.1736.373.camel@hurina> <1057797578.10425.418.camel@hurina> <1057848420.6577.501.camel@hurina> From: Matthias Andree Date: Fri, 11 Jul 2003 11:32:19 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailman-Approved-At: Fri, 11 Jul 2003 12:41:20 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 09:32:22 -0000 X-UID: 1185 Status: O Timo Sirainen writes: > Oh well, changed. I've never however seen missing -a or -o, even Solaris > has it :) If it's not standardized, don't use it unless you have fallbacks. Look at the errno fuss with glibc 2.3. The nonstandard "extern int errno;" no longer works. #include continues to work. -- Matthias Andree From dovecot@andreas.hanssen.name Fri Jul 11 13:35:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CC69223896; Fri, 11 Jul 2003 13:35:59 +0300 (EEST) Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id F2B722387A for ; Fri, 11 Jul 2003 13:35:56 +0300 (EEST) Received: (qmail 12872 invoked from network); 11 Jul 2003 10:35:55 -0000 Received: from localhost (HELO shusaku.troll.no) (andreaha@127.0.0.1) by localhost with SMTP; 11 Jul 2003 10:35:55 -0000 Date: Fri, 11 Jul 2003 12:35:54 +0200 (CEST) From: Andreas Aardal Hanssen Sender: ahanssen@shusaku.troll.no To: Dovecot List Subject: Re: [Dovecot] Configuration file changes in CVS In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 10:36:00 -0000 X-UID: 1186 Status: O Content-Length: 1094 On Fri, 11 Jul 2003, Matthias Andree wrote: >Timo Sirainen writes: >>> No-one's supposed to use mbox. Optimize as much as you want, it just >>> doesn't scale at all. >> mbox is fine as long as you don't want to delete messages. It's perfect >> for read-only mailing list archives. >Unless you run incremental backups with systems such as IBM/Tivoli >Distributed Storage Manager that save complete files. Switching from >mbox to Maildir has a *major* effect on the nightly backup data >volume. With many users or users with big mboxes, or even with read-only >list archives that include "current month", it's just prohibitively >expensive. >I'd let my sister use it on her computer, but not in serious production >-- I'd use NNTP to offer read-only archives rather than IMAP, but that's >a personal preference. I totally disagree with you here. What is lost with backups is gained in overall load on your system. I know for a _fact_ (my own personal experience) that there are large free email providers that use Maildir for this very purpose. Andy -- Andreas Aardal Hanssen From matthias.andree@gmx.de Fri Jul 11 14:08:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AFA4623896; Fri, 11 Jul 2003 14:08:34 +0300 (EEST) Received: from m2a2.dyndns.org (pD9E1E1BB.dip.t-dialin.net [217.225.225.187]) by danu.procontrol.fi (Postfix) with ESMTP id 1A9CC2387A for ; Fri, 11 Jul 2003 14:08:33 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 417FDC764; Fri, 11 Jul 2003 13:08:32 +0200 (CEST) To: dovecot@procontrol.fi Subject: Re: [Dovecot] Configuration file changes in CVS In-Reply-To: (Andreas Aardal Hanssen's message of "Fri, 11 Jul 2003 12:35:54 +0200 (CEST)") References: From: Matthias Andree Date: Fri, 11 Jul 2003 13:08:32 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 11:08:34 -0000 X-UID: 1187 Status: O Andreas Aardal Hanssen writes: >>I'd let my sister use it on her computer, but not in serious production >>-- I'd use NNTP to offer read-only archives rather than IMAP, but that's >>a personal preference. > > I totally disagree with you here. What is lost with backups is gained in > overall load on your system. > > I know for a _fact_ (my own personal experience) that there are large free > email providers that use Maildir for this very purpose. Either you've lost me or we're talking past each other. I prefer Maildir, in case that isn't clear. I've heard too much whining about mbox corruption to care any longer about mbox format. It may work for static archives, but it'd best be accompanied by a useful index in that case, to avoid the recurring search "where is my From line". -- Matthias Andree From dovecot@andreas.hanssen.name Fri Jul 11 15:06:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2D21F23896; Fri, 11 Jul 2003 15:06:58 +0300 (EEST) Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id 7685B23866 for ; Fri, 11 Jul 2003 15:06:56 +0300 (EEST) Received: (qmail 18003 invoked from network); 11 Jul 2003 12:06:55 -0000 Received: from localhost (HELO shusaku.troll.no) (andreaha@127.0.0.1) by localhost with SMTP; 11 Jul 2003 12:06:55 -0000 Date: Fri, 11 Jul 2003 14:06:54 +0200 (CEST) From: Andreas Aardal Hanssen Sender: ahanssen@shusaku.troll.no To: Dovecot mailing list Subject: Re: [Dovecot] Configuration file changes in CVS In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 12:06:58 -0000 X-UID: 1188 Status: O On Fri, 11 Jul 2003, Matthias Andree wrote: >Andreas Aardal Hanssen writes: >> I totally disagree with you here. What is lost with backups is gained in >> overall load on your system. >> I know for a _fact_ (my own personal experience) that there are large free >> email providers that use Maildir for this very purpose. >Either you've lost me or we're talking past each other. I prefer >Maildir, in case that isn't clear. I've heard too much whining about >mbox corruption to care any longer about mbox format. It may work for >static archives, but it'd best be accompanied by a useful index in that >case, to avoid the recurring search "where is my From line". Whooh - my bad. :P Andy -- Andreas Aardal Hanssen From james@physicalsegment.com Fri Jul 11 22:48:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3C66D2387A; Fri, 11 Jul 2003 22:48:00 +0300 (EEST) Received: from physicalsegment.com (jamesread.plus.com [212.159.101.161]) by danu.procontrol.fi (Postfix) with ESMTP id C0A5823865 for ; Fri, 11 Jul 2003 22:47:56 +0300 (EEST) Received: from [10.0.0.250] (HELO jd) by physicalsegment.com (CommuniGate Pro SMTP 3.5.9) with SMTP id 394219 for dovecot@procontrol.fi; Fri, 11 Jul 2003 20:47:55 +0100 Message-ID: <000601c347e5$686358d0$fa00000a@jd> From: "James Read" To: Date: Fri, 11 Jul 2003 20:48:07 +0100 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0014_01C347ED.BB7F28C0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Subject: [Dovecot] FreeBSD /etc/passwd errors X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 19:48:00 -0000 X-UID: 1189 Status: O Content-Length: 3758 This is a multi-part message in MIME format. ------=_NextPart_000_0014_01C347ED.BB7F28C0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi there, I've currently compiled and running dovecot version 0.99.10 on = my FreeBSD 4.8=20 system from the ports and am having problems with authenticating clients = with the imap/pop3 service. The error message i get is: Jul 11 19:26:18 dev dovecot: Dovecot starting up Jul 11 19:27:23 dev dovecot-auth: passwd(james): invalid password field = '*' Jul 11 19:27:23 dev imap-login: Disconnected [10.0.0.1] On the client system I am using Outlook Express 6 and the password = dialog box keeps on comming up.=20 Im sure its somthing to do with my conf file not being configured right, = here are the main bits: default_mail_env =3D mbox:/var/mail/%u client_workarounds =3D oe6-fetch-no-newmail outlook-idle auth =3D default auth_userdb =3D passwd auth_passdb =3D passwd auth_user =3D dovecot-auth auth_username_chars =3D If its somthing simple please point me in the right direction as I feel = increadbly dumb because im sure its something to do with the passwd file = but just carnt get pass the last hurdle! Many thanks in advanced.=20 James. ------=_NextPart_000_0014_01C347ED.BB7F28C0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi there, I've currently compiled and = running=20 dovecot version 0.99.10 on my FreeBSD 4.8
system from the ports and am having = problems with=20 authenticating clients with the imap/pop3 service.
 
The error message i get = is:
 
Jul 11 19:26:18 dev dovecot: = Dovecot starting=20 up
Jul 11 19:27:23 dev dovecot-auth: passwd(james): invalid password = field=20 '*'
Jul 11 19:27:23 dev imap-login: Disconnected=20 [10.0.0.1]
On the client system I am using Outlook = Express 6=20 and the password dialog box keeps on comming up.
 
Im sure its somthing to do with my conf = file not=20 being configured right, here are the main bits:
 
default_mail_env =3D = mbox:/var/mail/%u
client_workarounds =3D = oe6-fetch-no-newmail=20 outlook-idle
auth =3D default
auth_userdb =3D = passwd
auth_passdb =3D=20 passwd
auth_user =3D = dovecot-auth
auth_username_chars=20 =3D

If its somthing simple please point me in the right direction = as I=20 feel increadbly dumb because im sure its something to do with the passwd = file=20 but just carnt get pass the last hurdle!
 
Many thanks in advanced.
 
James.
 
 
------=_NextPart_000_0014_01C347ED.BB7F28C0-- From tss@iki.fi Sat Jul 12 01:01:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 538F62387A; Sat, 12 Jul 2003 01:01:11 +0300 (EEST) Received: from iki.fi (cd-202.mpy.kv9.net [62.197.185.202]) by danu.procontrol.fi (Postfix) with ESMTP id C438623865 for ; Sat, 12 Jul 2003 01:01:07 +0300 (EEST) Date: Sat, 12 Jul 2003 01:01:07 +0300 Subject: Re: [Dovecot] FreeBSD /etc/passwd errors Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Content-Transfer-Encoding: 7bit In-Reply-To: <000601c347e5$686358d0$fa00000a@jd> Message-Id: <2C43B07A-B3EB-11D7-9BF4-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 22:01:11 -0000 X-UID: 1190 Status: O On Friday, Jul 11, 2003, at 22:48 Europe/Helsinki, James Read wrote: > Jul 11 19:27:23 dev dovecot-auth: passwd(james): invalid password > field '*' > auth_passdb = passwd > auth_user = dovecot-auth dovecot-auth process needs to be running as root to get access to passwords in passwd file. So use auth_user = root. From tss@iki.fi Sat Jul 12 01:05:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 35B682387A; Sat, 12 Jul 2003 01:05:07 +0300 (EEST) Received: from iki.fi (cd-202.mpy.kv9.net [62.197.185.202]) by danu.procontrol.fi (Postfix) with ESMTP id DF5A023865 for ; Sat, 12 Jul 2003 01:05:04 +0300 (EEST) Date: Sat, 12 Jul 2003 01:05:02 +0300 Subject: Re: [Dovecot] Permission denied Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Content-Transfer-Encoding: 7bit In-Reply-To: <53934.195.235.92.108.1057911503.squirrel@www.eurielec.etsit.upm.es> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 22:05:07 -0000 X-UID: 1191 Status: O On Friday, Jul 11, 2003, at 11:18 Europe/Helsinki, Jaime Medrano wrote: > Dovecot is faulting on an error about permissions that it shouldn't do. > > I've got an user with its home dir with permissions 700, and inside the > mail directory with the mboxes. > In the error log I can see: 'Can't chdir to /home/user. Permission > denied' > > I wonder why it has to chdir to that directory and why it can't access. > Shouldn't it be running as the user? What is the exact error message? The only chdir() calls that I see are done as root, so there shouldn't be any permission problems. Or if the above is an exact message from log, it's not created by Dovecot. From james@physicalsegment.com Sat Jul 12 01:24:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F0546238B6; Sat, 12 Jul 2003 01:24:14 +0300 (EEST) Received: from physicalsegment.com (jamesread.plus.com [212.159.101.161]) by danu.procontrol.fi (Postfix) with ESMTP id C459423866 for ; Sat, 12 Jul 2003 01:24:09 +0300 (EEST) Received: from [10.0.0.250] (HELO jd) by physicalsegment.com (CommuniGate Pro SMTP 3.5.9) with SMTP id 394268 for dovecot@procontrol.fi; Fri, 11 Jul 2003 23:24:08 +0100 Message-ID: <006401c347fb$3b372920$fa00000a@jd> From: "James Read" To: References: <2C43B07A-B3EB-11D7-9BF4-000393CC2E90@iki.fi> Subject: Re: [Dovecot] FreeBSD /etc/passwd errors Date: Fri, 11 Jul 2003 23:24:45 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 22:24:15 -0000 X-UID: 1192 Status: O Thank you very much!! It did the trick and now I can login and browse my emails! Mabie this could be put in some kind of FAQ or somthing that people might come across, or even a little note in the configuration file about needing root access? Well, a little bit of positive feedback carnt go amiss! Keep up the good work, am surprised by the quickness it takes to compile/install/configure. Now compare that with courier-imap or somthing similar, nightmate! Many thanks, James. > dovecot-auth process needs to be running as root to get access to > passwords in passwd file. So use auth_user = root. > > From tss@iki.fi Sat Jul 12 01:33:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8610D2387A; Sat, 12 Jul 2003 01:33:07 +0300 (EEST) Received: from iki.fi (cd-202.mpy.kv9.net [62.197.185.202]) by danu.procontrol.fi (Postfix) with ESMTP id A4BF923866 for ; Sat, 12 Jul 2003 01:33:05 +0300 (EEST) Date: Sat, 12 Jul 2003 01:33:03 +0300 Subject: Re: [Dovecot] FreeBSD /etc/passwd errors Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Content-Transfer-Encoding: 7bit In-Reply-To: <006401c347fb$3b372920$fa00000a@jd> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 22:33:07 -0000 X-UID: 1193 Status: O On Saturday, Jul 12, 2003, at 01:24 Europe/Helsinki, James Read wrote: > Mabie this could be put in some kind of FAQ or somthing that people > might > come across, or even a little note in the configuration file about > needing > root access? Well, the default is root, but looks like I forgot to include passwd with shadow/pam in the comment above it. Adding. From tss@iki.fi Sat Jul 12 01:58:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 737502387A; Sat, 12 Jul 2003 01:58:40 +0300 (EEST) Received: from iki.fi (cd-202.mpy.kv9.net [62.197.185.202]) by danu.procontrol.fi (Postfix) with ESMTP id 998DF23866 for ; Sat, 12 Jul 2003 01:58:35 +0300 (EEST) Date: Sat, 12 Jul 2003 01:58:34 +0300 Subject: Re: [Dovecot] Configuration file changes in CVS Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot List Content-Transfer-Encoding: 7bit In-Reply-To: <87042531.1057842399@amethyst.37.spacehopper.org> Message-Id: <332708BE-B3F3-11D7-9BF4-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 22:58:40 -0000 X-UID: 1194 Status: O Content-Length: 3186 On Thursday, Jul 10, 2003, at 15:06 Europe/Helsinki, Stuart Henderson wrote: > Perhaps there could be one level of 'folder' containers allowed inside > 'namespace' in the config... > > namespace { > prefix = > type = private > separator = . > location = maildir:~/ > folder { > name = INBOX > location = mbox:/var/mail/%u > separator = / > } > } Yes, it has to be done something like this. namespace { .. } would map into one real namespace reported by NAMESPACE command. > I think it may be something of a problem to expose different > separators for different parts of the hierarchy... any clients which > don't understand 'namespace' won't have a clue, and I suspect that > some clients which do understand 'namespace' might not cope with > different folder separators in different namespaces. Possibly. It may be required however if some namespace contains mailboxes containing the default separator, and vice versa. And separators can't be escaped. Anyway, I think I won't allow using multiple different separators inside one namespace. That may be allowed by IMAP RFC, maybe even the NAMESPACE RFC but it's clearly against how it was thought to be used. > So I think that 'separator' in namespace/folder config should refer to > 'internal' namespace, and translate for the user. There's no point in specifying internal separator in most cases. Only possibly useful case would be if you wanted Maildir++ directories to use something else than '.', but that wouldn't be Maildir++ anymore and if you really wanted that, you could just recompile with some #define changed.. > What does INBOX.foo do? What about INBOX/foo? Maybe there should be > allow_subs = (yes|no) for folders (to set whether subfolders should be > created with that 'style' or whether they should be created in the > parent namespace). I think it's better to always create them under the child mailbox. It's cleaner that way and less confusing. So if you had mbox INBOX while rest was Maildir, you'd have the INBOX marked \NoInferiors tag. Although I'm not sure if it should be done when there's another namespace that begins with INBOX.. Probably shouldn't, especially because not all clients understand namespaces. That makes it a bit more complicated.. > If namespace configuration is being looked at now, it would probably > make sense to ensure that it will be flexible enough to cope with as > many future requirements as possible without change. I'm thinking of > post-1.0 possiblities here, i.e. ACLs...I think that it might be worth > examining any possible namespace config to see whether it's capable of > implementing ACLs without big changes to the design. Yes.. But I can't really think of what problems the above configuration would have after adding ACLs. You could just add some acl = entry there. > Besides 'system' shared folders with ACLs, Cyrus has 'user' shared > folders which it places in an 'other users' namespace (normally > user.*) - this is *really* useful... Yes, this is a separate namespace type as well. I just didn't mention it yet since it's a whole different problem which is most likely post-1.0 feature. From tss@iki.fi Sat Jul 12 02:05:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2C6CB2387A; Sat, 12 Jul 2003 02:05:57 +0300 (EEST) Received: from iki.fi (cd-202.mpy.kv9.net [62.197.185.202]) by danu.procontrol.fi (Postfix) with ESMTP id F17F923866 for ; Sat, 12 Jul 2003 02:05:52 +0300 (EEST) Date: Sat, 12 Jul 2003 02:05:52 +0300 Subject: Re: [Dovecot] Configuration file changes in CVS Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot List Content-Transfer-Encoding: 7bit In-Reply-To: <20030710154850.GU19950@iridium.mv.net> Message-Id: <385878D8-B3F4-11D7-9BF4-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 23:05:57 -0000 X-UID: 1195 Status: O Content-Length: 1574 On Thursday, Jul 10, 2003, at 18:48 Europe/Helsinki, Mark E. Mallett wrote: > On this whole storage/namespace/search-path thing-- wouldn't it be nice > if various imap/pop server implementations could settle on some > standard ways of dealing with things? I wouldn't mind. > Certainly not the same > techniques, but the same effects and terms and storage layouts -- > making it possible to switch between various implementations. That's what I've been trying to do, make it as easy as possible to switch to Dovecot :) > Filesystem layout: for example a big bugaboo is that once you choose > a Maildir as your primary mailbox (in a Maildir++ -like world), you're > locked in there. Plenty of users already have their own idea of where > they'd like their folders to be, and in what format (some maildir, > some mbox), and it's just not reasonable to expect them to give that > up. It ought to be possible to easily mix and match collections of > Maildir, Maildir++, and mbox formats throughout a users' home space > (and elsewhere, if allowed). Over in binciland there is the notion of > an IMAPdir which addresses some of this although I don't think it's > perfect. (I believe Andreas is here too..) I've thought about implementing IMAPdir-like directory structure before too. I guess it might as well be IMAPdir exactly. IMAPdir-like structure should give users possibility to store the mailboxes in any format anywhere they want by using symlinks. At least that sounds much better to me than having to parse configuration file in user's home directory. From dom@cus.org.uk Sat Jul 12 03:37:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 030322387A; Sat, 12 Jul 2003 03:37:09 +0300 (EEST) Received: from cus.org.uk (host213-106-240-81.no-dns-yet.ntli.net [213.106.240.81]) by danu.procontrol.fi (Postfix) with ESMTP id 41C4823866 for ; Sat, 12 Jul 2003 03:37:00 +0300 (EEST) Received: from cus.org.uk (localhost.cus.org.uk [127.0.0.1]) by cus.org.uk (8.12.6/8.12.6) with ESMTP id h6C0ap5h070285; Sat, 12 Jul 2003 01:36:51 +0100 (BST) (envelope-from dom@cus.org.uk) Received: (from dom@localhost) by cus.org.uk (8.12.6/8.12.6/Submit) id h6C0apRI070284; Sat, 12 Jul 2003 01:36:51 +0100 (BST) Date: Sat, 12 Jul 2003 01:36:51 +0100 From: Dominic Marks To: Timo Sirainen Subject: Re: [Dovecot] FreeBSD /etc/passwd errors Message-ID: <20030712003651.GA64700@cus.org.uk> References: <000601c347e5$686358d0$fa00000a@jd> <2C43B07A-B3EB-11D7-9BF4-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2C43B07A-B3EB-11D7-9BF4-000393CC2E90@iki.fi> User-Agent: Mutt/1.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 00:37:09 -0000 X-UID: 1196 Status: O On 12/07/2003 01:01, Timo Sirainen wrote: > > On Friday, Jul 11, 2003, at 22:48 Europe/Helsinki, James Read wrote: > > >Jul 11 19:27:23 dev dovecot-auth: passwd(james): invalid password > >field '*' > >auth_passdb = passwd > >auth_user = dovecot-auth > > dovecot-auth process needs to be running as root to get access to > passwords in passwd file. So use auth_user = root. This is my fault :) fix will be applied soon. -- Dominic From charlieb-dovecot@e-smith.com Sat Jul 12 17:25:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4BBFE2387A; Sat, 12 Jul 2003 17:25:08 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id B7B3923866 for ; Sat, 12 Jul 2003 17:24:35 +0300 (EEST) Received: (qmail 17624 invoked by uid 404); 12 Jul 2003 14:24:33 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 12 Jul 2003 10:24:32 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 12 Jul 2003 14:24:32 -0000 Received: (qmail 7166 invoked by uid 5008); 12 Jul 2003 14:24:32 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 12 Jul 2003 14:24:32 -0000 Date: Sat, 12 Jul 2003 10:24:32 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Timo Sirainen Subject: Re: [Dovecot] Permission denied In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 14:25:08 -0000 X-UID: 1197 Status: O On Sat, 12 Jul 2003, Timo Sirainen wrote: > On Friday, Jul 11, 2003, at 11:18 Europe/Helsinki, Jaime Medrano wrote: > > > Dovecot is faulting on an error about permissions that it shouldn't do. > > > > I've got an user with its home dir with permissions 700, and inside the > > mail directory with the mboxes. > > In the error log I can see: 'Can't chdir to /home/user. Permission > > denied' > > > > I wonder why it has to chdir to that directory and why it can't access. > > Shouldn't it be running as the user? > > What is the exact error message? The only chdir() calls that I see are > done as root, so there shouldn't be any permission problems. NFS mounted home directories with "root_quash" could cause that. -- Charlie From tss@iki.fi Sat Jul 12 18:48:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 49AA02387A; Sat, 12 Jul 2003 18:48:17 +0300 (EEST) Received: from iki.fi (cd-202.mpy.kv9.net [62.197.185.202]) by danu.procontrol.fi (Postfix) with ESMTP id 68D6623865; Sat, 12 Jul 2003 18:47:43 +0300 (EEST) Date: Sat, 12 Jul 2003 18:47:40 +0300 Subject: Re: [Dovecot] Permission denied Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: Jaime Medrano From: Timo Sirainen In-Reply-To: <20030712081356.GA6356@eurielec.etsit.upm.es> Message-Id: <2AF1C242-B480-11D7-A251-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) X-Spam-Status: No, hits=-5.6 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO, PATCH_UNIFIED_DIFF,QUOTED_EMAIL_TEXT,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 15:48:17 -0000 X-UID: 1198 Status: O Content-Length: 1099 On Saturday, Jul 12, 2003, at 11:13 Europe/Helsinki, Jaime Medrano wrote: > That's the problem. The home dir is exported by nfs. Chdirs should be > done as the user, not as root. Right.. Well, I'll just ignore that error then: Index: mail-process.c =================================================================== RCS file: /home/cvs/dovecot/src/master/mail-process.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- mail-process.c 10 Jul 2003 03:04:07 -0000 1.25 +++ mail-process.c 12 Jul 2003 15:45:19 -0000 1.26 @@ -168,7 +168,9 @@ if (*home_dir != '\0') { full_home_dir = *chroot_dir == '\0' ? home_dir : t_strconcat(chroot_dir, "/", home_dir, NULL); - if (chdir(full_home_dir) < 0) + /* NOTE: if home directory is NFS-mounted, we might not + have access to it as root. Ignore such errors. */ + if (chdir(full_home_dir) < 0 && errno != EACCES) i_fatal("chdir(%s) failed: %m", full_home_dir); } From matthias.andree@gmx.de Sun Jul 13 00:59:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 713EB2387A; Sun, 13 Jul 2003 00:59:19 +0300 (EEST) Received: from m2a2.dyndns.org (p50877F4F.dip.t-dialin.net [80.135.127.79]) by danu.procontrol.fi (Postfix) with ESMTP id 6C6D023865 for ; Sun, 13 Jul 2003 00:58:47 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 77E938B96D; Sat, 12 Jul 2003 23:58:45 +0200 (CEST) To: dovecot@procontrol.fi Subject: Re: [Dovecot] Permission denied In-Reply-To: <2AF1C242-B480-11D7-A251-000393CC2E90@iki.fi> (Timo Sirainen's message of "Sat, 12 Jul 2003 18:47:40 +0300") References: <2AF1C242-B480-11D7-A251-000393CC2E90@iki.fi> From: Matthias Andree Date: Sat, 12 Jul 2003 23:58:45 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 21:59:19 -0000 X-UID: 1199 Status: O Timo Sirainen writes: > On Saturday, Jul 12, 2003, at 11:13 Europe/Helsinki, Jaime Medrano wrote: > >> That's the problem. The home dir is exported by nfs. Chdirs should be >> done as the user, not as root. > > Right.. Well, I'll just ignore that error then: What if the home directory is owned by another user rather than the real owner? You won't detect that condition any more with the patch. How about this scheme (pseudo code): seteuid(uid); ret = chdir(targetdir); seteuid(0); if (ret == -1) { /* handle error */ } Make sure you don't add ANY branches between the seteuid() calls, no mistakes must happen there. -- Matthias Andree From charlieb@e-smith.com Sun Jul 13 01:01:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3CB932387A; Sun, 13 Jul 2003 01:01:12 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id D748423865 for ; Sun, 13 Jul 2003 01:00:39 +0300 (EEST) Received: (qmail 32014 invoked by uid 404); 12 Jul 2003 22:00:38 -0000 Received: from charlieb@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 12 Jul 2003 18:00:37 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 12 Jul 2003 22:00:37 -0000 Received: (qmail 13237 invoked by uid 5008); 12 Jul 2003 22:00:37 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 12 Jul 2003 22:00:37 -0000 Date: Sat, 12 Jul 2003 18:00:37 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Timo Sirainen Subject: Re: [Dovecot] Permission denied In-Reply-To: <2AF1C242-B480-11D7-A251-000393CC2E90@iki.fi> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Mailman-Approved-At: Sun, 13 Jul 2003 02:05:35 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 22:01:12 -0000 X-UID: 1200 Status: O On Sat, 12 Jul 2003, Timo Sirainen wrote: > On Saturday, Jul 12, 2003, at 11:13 Europe/Helsinki, Jaime Medrano > wrote: > > > That's the problem. The home dir is exported by nfs. Chdirs should be > > done as the user, not as root. > > Right.. Well, I'll just ignore that error then: I doubt that's the correct fix. I think you should switch uid/gid, then do the chdir. -- Charlie From tss@iki.fi Sun Jul 13 02:31:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 26B2E2387A; Sun, 13 Jul 2003 02:31:04 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0383723865 for ; Sun, 13 Jul 2003 02:30:30 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 22FAE5C896A2 for ; Sun, 13 Jul 2003 02:30:29 +0300 (EEST) Subject: Re: [Dovecot] Permission denied From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <2AF1C242-B480-11D7-A251-000393CC2E90@iki.fi> Content-Type: text/plain Message-Id: <1058052628.1736.540.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 13 Jul 2003 02:30:29 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 23:31:04 -0000 X-UID: 1201 Status: O Content-Length: 2043 On Sun, 2003-07-13 at 00:58, Matthias Andree wrote: > >> That's the problem. The home dir is exported by nfs. Chdirs should be > >> done as the user, not as root. > > > > Right.. Well, I'll just ignore that error then: > > What if the home directory is owned by another user rather than the real > owner? You won't detect that condition any more with the patch. Hmh.. The reason why I originally added the chdir() there was because unlink_directory() failed to save current working directory so it could be restored. I think it might just as well chdir() to /tmp, except it's also useful for setting directory where core dumps go. Anyway, home directory isn't required information from auth process. I think I'll chdir to /tmp if it isn't given. > How about this scheme (pseudo code): > > seteuid(uid); > ret = chdir(targetdir); > seteuid(0); > if (ret == -1) { > /* handle error */ > } > > Make sure you don't add ANY branches between the seteuid() calls, no > mistakes must happen there. Why? I don't see how dropped privileges can cause much problems. The error handling I would do is just to write to already opened log file and exit(). seteuid() calls also need handling.. How about this: if (*home_dir != '\0') { full_home_dir = *chroot_dir == '\0' ? home_dir : t_strconcat(chroot_dir, "/", home_dir, NULL); /* NOTE: if home directory is NFS-mounted, we might not have access to it as root. Change the effective UID temporarily to make it work. */ if (reply->uid != master_uid && seteuid(reply->uid) < 0) i_fatal("seteuid(%s) failed: %m", dec2str(reply->uid)); ret = chdir(full_home_dir); if (reply->uid != master_uid && seteuid(master_uid) < 0) i_fatal("seteuid(%s) failed: %m", dec2str(master_uid)); if (ret < 0) { i_fatal("chdir(%s) failed with uid %s: %m", full_home_dir, dec2str(reply->uid)); } } else { /* We still have to change to some directory where we have rx-access. /tmp should exist everywhere. */ if (chdir("/tmp") < 0) i_fatal("chdir(/tmp) failed: %m"); } From tss@iki.fi Sun Jul 13 04:08:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 21459238C5; Sun, 13 Jul 2003 04:08:47 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9E73B23866 for ; Sun, 13 Jul 2003 04:08:12 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 480D65C896A2 for ; Sun, 13 Jul 2003 04:08:12 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1058058491.6577.547.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 13 Jul 2003 04:08:12 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] CVS state X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 01:08:47 -0000 X-UID: 1202 Status: O Just a small note that if you upgrade to latest CVS, you'll have to delete old index files or you'll probably get wrong BODY or BODYSTRUCTURE replies. Next release will have index file's version number increased so it will automatically rebuild them when needed. I didn't raise it yet since several other changes are likely to come soon. From matthias.andree@gmx.de Sun Jul 13 04:17:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4E282238C5; Sun, 13 Jul 2003 04:17:11 +0300 (EEST) Received: from m2a2.dyndns.org (p50877F4F.dip.t-dialin.net [80.135.127.79]) by danu.procontrol.fi (Postfix) with ESMTP id F15DF2387A for ; Sun, 13 Jul 2003 04:16:38 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 4D5E97B5E9; Sun, 13 Jul 2003 03:16:38 +0200 (CEST) To: dovecot@procontrol.fi Subject: Re: [Dovecot] Permission denied In-Reply-To: <1058052628.1736.540.camel@hurina> (Timo Sirainen's message of "13 Jul 2003 02:30:29 +0300") References: <2AF1C242-B480-11D7-A251-000393CC2E90@iki.fi> <1058052628.1736.540.camel@hurina> From: Matthias Andree Date: Sun, 13 Jul 2003 03:16:38 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 01:17:11 -0000 X-UID: 1203 Status: O Content-Length: 2122 Timo Sirainen writes: > Anyway, home directory isn't required information from auth process. I > think I'll chdir to /tmp if it isn't given. I wonder if core dumps (if any) of an authenticator process belong in /tmp -- /tmp is anarchy area and must be treated with care. umask(077) is the minimum to make sure no other user can harvest passwords from the core file. >> Make sure you don't add ANY branches between the seteuid() calls, no >> mistakes must happen there. > > Why? I don't see how dropped privileges can cause much problems. seteuid doesn't drop privileges, but temporarily puts them aside, while the real and saved user ID remain zero. seteuid(0) restores root permissions if you had them, and is a standard procedure in escalating privileges after a break-in. If you need to _permanently_ drop privileges so they cannot be restored, use setuid or setresuid. > The error handling I would do is just to write to already opened log > file and exit(). seteuid() calls also need handling.. How about this: > > if (*home_dir != '\0') { > full_home_dir = *chroot_dir == '\0' ? home_dir : > t_strconcat(chroot_dir, "/", home_dir, NULL); > /* NOTE: if home directory is NFS-mounted, we might not > have access to it as root. Change the effective UID > temporarily to make it work. */ > if (reply->uid != master_uid && seteuid(reply->uid) < 0) > i_fatal("seteuid(%s) failed: %m", dec2str(reply->uid)); > ret = chdir(full_home_dir); > if (reply->uid != master_uid && seteuid(master_uid) < 0) > i_fatal("seteuid(%s) failed: %m", dec2str(master_uid)); > if (ret < 0) { > i_fatal("chdir(%s) failed with uid %s: %m", > full_home_dir, dec2str(reply->uid)); > } The part above looks OK provided that i_fatal is simple. > } else { > /* We still have to change to some directory where we have > rx-access. /tmp should exist everywhere. */ > if (chdir("/tmp") < 0) > i_fatal("chdir(/tmp) failed: %m"); > } I don't like /tmp, see above. I'd feel more comfortable with a directory that only dovecot has access to, rather than /tmp. -- Matthias Andree From tss@iki.fi Sun Jul 13 15:27:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EC6402387A; Sun, 13 Jul 2003 15:27:58 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AF90823866 for ; Sun, 13 Jul 2003 15:27:55 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3616D5C896A2 for ; Sun, 13 Jul 2003 15:27:55 +0300 (EEST) Subject: Re: [Dovecot] Permission denied From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <2AF1C242-B480-11D7-A251-000393CC2E90@iki.fi> <1058052628.1736.540.camel@hurina> Content-Type: text/plain Message-Id: <1058099274.6577.571.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 13 Jul 2003 15:27:54 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 12:27:59 -0000 X-UID: 1204 Status: O Content-Length: 2652 On Sun, 2003-07-13 at 04:16, Matthias Andree wrote: > > Anyway, home directory isn't required information from auth process. I > > think I'll chdir to /tmp if it isn't given. > > I wonder if core dumps (if any) of an authenticator process belong in > /tmp -- /tmp is anarchy area and must be treated with care. umask(077) > is the minimum to make sure no other user can harvest passwords from the > core file. No, I meant the auth process tells user's uid, gid, home directory and/or mail location to master process. So home directory isn't required information there. If it's not given, we should still chdir() to somewhere else than where master is running, $prefix/var/run/dovecot/ which is 0700 root owned. > >> Make sure you don't add ANY branches between the seteuid() calls, no > >> mistakes must happen there. > > > > Why? I don't see how dropped privileges can cause much problems. > > seteuid doesn't drop privileges, but temporarily puts them aside, while > the real and saved user ID remain zero. seteuid(0) restores root > permissions if you had them, and is a standard procedure in escalating > privileges after a break-in. Yes, so why is it worse to add any branches running with temporarily dropped privileges than running with full privileges? Or are you thinking that some geteuid() call then doesn't return 0 and thinks it's not running as root? I have anyway some checks that processes can't accidentally be started as root: /* verify that we actually dropped the privileges */ if (uid != 0 || disallow_root) { if (setuid(0) == 0) i_fatal("We couldn't drop root privileges"); } if ((gid != 0 && uid != 0) || disallow_root) { if (getgid() == 0 || getegid() == 0 || setgid(0) == 0) i_fatal("We couldn't drop root group privileges"); } > The part above looks OK provided that i_fatal is simple. Currently it is, but I'm can't be sure if someone some day adds more complex logging functions. > > } else { > > /* We still have to change to some directory where we have > > rx-access. /tmp should exist everywhere. */ > > if (chdir("/tmp") < 0) > > i_fatal("chdir(/tmp) failed: %m"); > > } > > I don't like /tmp, see above. I'd feel more comfortable with a directory > that only dovecot has access to, rather than /tmp. Well, it has to be a directory where all users have at least +rx access. +w isn't really needed. I guess I could create /var/run/dovecot/home or something where they go, but I don't think it really matters. Actually core dumps aren't either written by default since kernel thinks it's running setuid-binary. You'd have to set mail_drop_priv_before_exec = yes to allow that. From matthias.andree@gmx.de Sun Jul 13 15:32:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 38182238B6; Sun, 13 Jul 2003 15:32:35 +0300 (EEST) Received: from m2a2.dyndns.org (pD9E1E2EC.dip.t-dialin.net [217.225.226.236]) by danu.procontrol.fi (Postfix) with ESMTP id 8F2EC2387A for ; Sun, 13 Jul 2003 15:32:31 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 43DA882257; Sun, 13 Jul 2003 14:32:30 +0200 (CEST) To: dovecot@procontrol.fi Subject: Re: [Dovecot] Permission denied In-Reply-To: <1058099274.6577.571.camel@hurina> (Timo Sirainen's message of "13 Jul 2003 15:27:54 +0300") References: <2AF1C242-B480-11D7-A251-000393CC2E90@iki.fi> <1058052628.1736.540.camel@hurina> <1058099274.6577.571.camel@hurina> From: Matthias Andree Date: Sun, 13 Jul 2003 14:32:30 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 12:32:35 -0000 X-UID: 1205 Status: O Timo Sirainen writes: > Yes, so why is it worse to add any branches running with temporarily > dropped privileges than running with full privileges? Or are you > thinking that some geteuid() call then doesn't return 0 and thinks it's > not running as root? I'd be very chary about spreading UID fiddling over the code, that's all. It must be easy to see at a single glance. > Actually core dumps aren't either written by default since kernel thinks > it's running setuid-binary. You'd have to set mail_drop_priv_before_exec > = yes to allow that. Modulo kernel bugs under ptrace ;-) -- Matthias Andree From molter@tin.it Sun Jul 13 18:47:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3A0F72387A; Sun, 13 Jul 2003 18:47:31 +0300 (EEST) Received: from www.example.org (ANice-205-1-5-144.w81-53.abo.wanadoo.fr [81.53.77.144]) by danu.procontrol.fi (Postfix) with SMTP id E1F8D23865 for ; Sun, 13 Jul 2003 18:47:28 +0300 (EEST) Received: (qmail 33259 invoked by uid 1000); 13 Jul 2003 15:47:24 -0000 Date: Sun, 13 Jul 2003 17:47:24 +0200 From: Marco Molteni To: dovecot@procontrol.fi Message-ID: <20030713154724.GC17691@cobweb.example.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] dovecot.procontrol.fi anonymous access fails? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 15:47:31 -0000 X-UID: 1206 Status: O Hi, just started using dovecot on FreeBSD. Nice and easy to configure :-) I then wanted to browse the dovecot mailing list, so, according to http://dovecot.procontrol.fi/mailinglists.html: IMAP archives available from dovecot.procontrol.fi, either use ANONYMOUS authentication or give anonymous as username and empty password. I was using a patched sylpheed that doesn't support ANONYMOUS authentication, so I gave anonymous as username and empty password, but it failed as shown in the following trace: 1 CAPABILITY * OK dovecot ready. * CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED AUTH=PLAIN AUTH=ANONYMOUS 1 OK Capability completed. 2 LOGIN anonymous 2 BAD Error in IMAP command received by server. 3 LOGOUT * BYE Logging out 3 OK Logout completed. Anyway, I also tried a plain telnet and it failed in the same way. what's wrong? thanks marco From tss@iki.fi Sun Jul 13 19:09:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7FB012387A; Sun, 13 Jul 2003 19:09:49 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E934623865 for ; Sun, 13 Jul 2003 19:09:43 +0300 (EEST) Date: Sun, 13 Jul 2003 19:09:45 +0300 Subject: Re: [Dovecot] dovecot.procontrol.fi anonymous access fails? Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030713154724.GC17691@cobweb.example.org> Message-Id: <6B3FA952-B54C-11D7-8C24-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 16:09:49 -0000 X-UID: 1207 Status: O On Sunday, Jul 13, 2003, at 18:47 Europe/Helsinki, Marco Molteni wrote: > I was using a patched sylpheed that doesn't support ANONYMOUS > authentication, so I gave anonymous as username and empty password, > but it failed as shown in the following trace: > > 2 LOGIN anonymous > 2 BAD Error in IMAP command received by server. Sylpheed is buggy and doesn't give password parameter. It should have said: 2 login anonymous "" From jpeterson275@comcast.net Mon Jul 14 09:49:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 40E4023866; Mon, 14 Jul 2003 09:49:30 +0300 (EEST) Received: from rwcrmhc12.comcast.net (rwcrmhc12.comcast.net [216.148.227.85]) by danu.procontrol.fi (Postfix) with ESMTP id 181452384C for ; Mon, 14 Jul 2003 09:49:26 +0300 (EEST) Received: from comcast.net (12-228-143-121.client.attbi.com[12.228.143.121](untrusted sender)) by attbi.com (rwcrmhc12) with SMTP id <20030714064924014002bihbe>; Mon, 14 Jul 2003 06:49:24 +0000 Message-ID: <3F125293.4050205@comcast.net> Date: Sun, 13 Jul 2003 23:49:55 -0700 From: Jesse Peterson User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020901 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Mon, 14 Jul 2003 09:55:32 +0300 Subject: [Dovecot] mySQL user auth status? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 06:49:30 -0000 X-UID: 1208 Status: O Is this anywhere near consideration yet? (an alpha/beta/etc patch/module I can help test maybe?) Thanks, - Jesse From tss@iki.fi Mon Jul 14 09:59:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 64E342387A; Mon, 14 Jul 2003 09:59:57 +0300 (EEST) Date: Mon, 14 Jul 2003 09:59:55 +0300 Subject: Re: [Dovecot] mySQL user auth status? Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <3F125293.4050205@comcast.net> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 06:59:57 -0000 X-UID: 1209 Status: O On Monday, Jul 14, 2003, at 09:49 Europe/Helsinki, Jesse Peterson wrote: > Is this anywhere near consideration yet? (an alpha/beta/etc > patch/module I can help test maybe?) I don't really want to bother with MySQL. It shouldn't be difficult to implement if someone wants to do it however. From maikel@ladot.com Mon Jul 14 10:21:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C02DC23865; Mon, 14 Jul 2003 10:21:20 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 0F8BA2384C for ; Mon, 14 Jul 2003 10:21:17 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h6E7YAns000369 for ; Mon, 14 Jul 2003 09:34:12 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Mon, 14 Jul 2003 09:23:05 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F228DE@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'Dovecot (E-mail)'" Subject: RE: [Dovecot] dovecot.procontrol.fi anonymous access fails? Date: Mon, 14 Jul 2003 09:23:04 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C349D8.C427C490" X-Spam-Status: No, hits=0.8 required=5.0 tests=HTML_20_30,HTML_MESSAGE,QUOTED_EMAIL_TEXT version=2.55 X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 07:21:20 -0000 X-UID: 1210 Status: O Content-Length: 3747 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C349D8.C427C490 Content-Type: text/plain Hi List, When I tried connecting using MS outlook express, it is complaining about the fact that the folders aren't subscribed. If they are not subscribed, you cannot read them... :( I did read through the archives using mutt though, that worked quite well! :) Regards, Maikel Verheijen. Ps: did not try it lately, maybe Timo changed the subscription status of the folders in between.... > -----Original Message----- > From: Timo Sirainen [mailto:tss@iki.fi] > Sent: Sunday, July 13, 2003 6:10 PM > To: dovecot@procontrol.fi > Subject: Re: [Dovecot] dovecot.procontrol.fi anonymous access fails? > > > On Sunday, Jul 13, 2003, at 18:47 Europe/Helsinki, Marco > Molteni wrote: > > > I was using a patched sylpheed that doesn't support ANONYMOUS > > authentication, so I gave anonymous as username and empty password, > > but it failed as shown in the following trace: > > > > 2 LOGIN anonymous > > 2 BAD Error in IMAP command received by server. > > Sylpheed is buggy and doesn't give password parameter. It should have > said: > > 2 login anonymous "" > ------_=_NextPart_001_01C349D8.C427C490 Content-Type: text/html Content-Transfer-Encoding: quoted-printable RE: [Dovecot] dovecot.procontrol.fi anonymous access = fails?

Hi List,

When I tried connecting using MS outlook express, it = is complaining about the fact that the folders aren't subscribed. If = they are not subscribed, you cannot read them... :(

I did read through the archives using mutt though, = that worked quite well! :)


Regards,


Maikel Verheijen.

Ps: did not try it lately, maybe Timo changed the = subscription status of the folders in between....

> -----Original Message-----
> From: Timo Sirainen [mailto:tss@iki.fi]
> Sent: Sunday, July 13, 2003 6:10 PM
> To: dovecot@procontrol.fi
> Subject: Re: [Dovecot] dovecot.procontrol.fi = anonymous access fails?
>
>
> On Sunday, Jul 13, 2003, at 18:47 = Europe/Helsinki, Marco
> Molteni wrote:
>
> > I was using a patched sylpheed that = doesn't support ANONYMOUS
> > authentication, so I gave anonymous as = username and empty password,
> > but it failed as shown in the following = trace:
> >
> > 2 LOGIN anonymous
> > 2 BAD Error in IMAP command received by = server.
>
> Sylpheed is buggy and doesn't give password = parameter. It should have
> said:
>
> 2 login anonymous ""
>

------_=_NextPart_001_01C349D8.C427C490-- From cras@irccrew.org Mon Jul 14 10:25:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 163AD23865; Mon, 14 Jul 2003 10:25:39 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 8038D2384C for ; Mon, 14 Jul 2003 10:25:37 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 62CB02E003; Mon, 14 Jul 2003 10:25:37 +0300 (EEST) Date: Mon, 14 Jul 2003 10:25:37 +0300 From: Timo Sirainen To: "'Dovecot (E-mail)'" Subject: Re: [Dovecot] dovecot.procontrol.fi anonymous access fails? Message-ID: <20030714072537.GA13596@irccrew.org> References: <410777FC7A66D511911500B0D078345501F228DE@nlladot05.intern.ladot.com> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <410777FC7A66D511911500B0D078345501F228DE@nlladot05.intern.ladot.com> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 07:25:39 -0000 X-UID: 1211 Status: O On Mon, Jul 14, 2003 at 09:23:04AM +0200, Maikel Verheijen wrote: > When I tried connecting using MS outlook express, it is complaining about > the fact that the folders aren't subscribed. If they are not subscribed, you > cannot read them... :( OK, added the subscriptions now. From maikel@ladot.com Mon Jul 14 11:06:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5F2F423865; Mon, 14 Jul 2003 11:06:10 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 632592384C for ; Mon, 14 Jul 2003 11:06:08 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h6E8Isnw000837 for ; Mon, 14 Jul 2003 10:19:05 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Mon, 14 Jul 2003 09:54:45 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F228E1@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'Dovecot (E-mail)'" Subject: RE: [Dovecot] dovecot.procontrol.fi anonymous access fails? Date: Mon, 14 Jul 2003 09:54:44 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C349DD.30ABEE80" X-Spam-Status: No, hits=0.5 required=5.0 tests=HTML_30_40,HTML_MESSAGE,QUOTED_EMAIL_TEXT version=2.55 X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 08:06:10 -0000 X-UID: 1212 Status: O Content-Length: 1569 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C349DD.30ABEE80 Content-Type: text/plain > On Mon, Jul 14, 2003 at 09:23:04AM +0200, Maikel Verheijen wrote: > > When I tried connecting using MS outlook express, it is complaining > > about the fact that the folders aren't subscribed. If they are not > > subscribed, you cannot read them... :( > > OK, added the subscriptions now. Ah great! :) Thanks, Maikel Verheijen. ------_=_NextPart_001_01C349DD.30ABEE80 Content-Type: text/html RE: [Dovecot] dovecot.procontrol.fi anonymous access fails?

> On Mon, Jul 14, 2003 at 09:23:04AM +0200, Maikel Verheijen wrote:
> > When I tried connecting using MS outlook express, it is complaining
> > about the fact that the folders aren't subscribed. If they are not
> > subscribed, you cannot read them... :(
>
> OK, added the subscriptions now.

Ah great! :)


Thanks,


Maikel Verheijen.

------_=_NextPart_001_01C349DD.30ABEE80-- From tss@iki.fi Mon Jul 14 13:08:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 24B892387A; Mon, 14 Jul 2003 13:08:20 +0300 (EEST) Date: Mon, 14 Jul 2003 13:08:18 +0300 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: multipart/mixed; boundary=Apple-Mail-3-413203734 From: Timo Sirainen To: dovecot@procontrol.fi Message-Id: <17790B6E-B5E3-11D7-8C32-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) Subject: [Dovecot] New indexing code X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 10:08:20 -0000 X-UID: 1213 Status: O Content-Length: 12839 --Apple-Mail-3-413203734 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed If someone's interested, here's an explanation and test code how I was planning on replacing the current .imap.index.tree file's functionality. The .tree file will be removed so you'll save some disk/memory as well, something like 5-20% of whole indexes. --Apple-Mail-3-413203734 Content-Disposition: attachment; filename=index.c Content-Transfer-Encoding: 7bit Content-Type: text/plain; x-unix-mode=0640; name="index.c" /* IMAP uses two ways to access messages. Message sequence numbers (MSN) and unique identifiers (UID). Whenever message is expunged, all the MSNs after it will be decreased by one. The problem is how to handle message expunges efficiently so that we minimize disk I/O at expunge time, but also keep MSN and UID lookups fast later. Easiest way to do this would be to simply compress away the expunged records by moving non-expunged records over them. This would keep MSN lookups always as a simple array lookup, but it might also mean a lot of disk I/O when expunging old messages in a large mailbox. What we do is build a binary tree of the expunged records. The binary tree records are stored over the expunged records, so they don't take any extra space. Each node in the btree contains the amount of expunge-nodes on it's left. That means that the next unexpunged record's MSN is the current_record_index+1 - left_node_count. By traversing the expunge tree we can find the wanted MSN pretty fast. UID lookups would be easiest to do using a binary search which just skips the expunged nodes. However nearly always we want the UID's MSN returned as well, so it gets slightly more complex. What we do is to traverse the expunge tree again and find the two nodes which contain our wanted UID between them, after that we'll do a binary search between them. MSN is again index+1 - left_node_count. The expunged records should still be compressed away once in a while. Something like when 10% of file contains expunged records, or when a lookup has to traverse through more than 10 nodes. There's several optimizations that can be done with this. All MSN lookups up until first expunged message are a simple array lookup. Expunging last few messages should rather be directly compressed instead of adding to expunge tree since they both require pretty much the same amount of disk I/O. The expunge tree should preferrably be somewhat balanced, but currently we don't do that. The balancing should anyway be done so that the last messages are the fastest to find, first messages the next fastest and messages in the middle the slowest. */ #include #include #include #include #define TRUE 1 #define FALSE 0 #define bufsize 12345 static size_t page_size = 4096; struct mail_index { unsigned char *buf; size_t size, used; unsigned int expunge_root_idx, count; }; struct mail_index_record { unsigned int flags; unsigned int uid; unsigned int offset; }; struct mail_index_expunge_record { unsigned int nodes_left; unsigned int left_idx; unsigned int right_idx; }; /*union mail_index_union_record { struct mail_index_record rec; struct mail_index_expunge_record erec; };*/ #define MAIL_FLAG_EXPUNGED (1U << 31) static void index_set_corrupted(struct mail_index *index, const char *fmt, ...) { va_list va; va_start(va, fmt); vfprintf(stderr, fmt, va); fprintf(stderr, "\n"); va_end(va); abort(); } static int remove_record(struct mail_index *index, unsigned int idx) { struct mail_index_record *rec = (struct mail_index_record *) index->buf; struct mail_index_expunge_record *erec, *new_erec; unsigned int cur_idx, idx_limit; idx_limit = index->size / sizeof(struct mail_index_record); assert(idx < idx_limit); assert((rec[idx].flags & MAIL_FLAG_EXPUNGED) == 0); index->count--; #if 0 if (index->size < page_size*2 || idx * sizeof(struct mail_index_record) >= index->size - page_size - (index->size % page_size)) { /* if it's only two pageful, just rewrite them */ /* FIXME: it may have expunged records already which we need to compress as well */ memmove(&rec[idx], &rec[idx+1], index->size - (idx+1) * sizeof(struct mail_index_record)); index->size -= sizeof(struct mail_index_record); return TRUE; } #endif new_erec = (struct mail_index_expunge_record *) &rec[idx]; if (idx > index->expunge_root_idx) { /* keep the root node always the highest */ erec = (struct mail_index_expunge_record *) &rec[index->expunge_root_idx]; new_erec->nodes_left = erec->nodes_left + 1; new_erec->left_idx = index->expunge_root_idx; new_erec->right_idx = (unsigned int)-1; index->expunge_root_idx = idx; return TRUE; } new_erec->nodes_left = MAIL_FLAG_EXPUNGED; new_erec->left_idx = (unsigned int)-1; new_erec->right_idx = (unsigned int)-1; if (index->expunge_root_idx == (unsigned int)-1) { index->expunge_root_idx = idx; return TRUE; } cur_idx = index->expunge_root_idx; for (;;) { if (cur_idx >= idx_limit) { index_set_corrupted(index, "Expunge node points outside index (%u >= %u)", idx, idx_limit); return FALSE; } erec = (struct mail_index_expunge_record *) &rec[cur_idx]; if (idx < cur_idx) { /* move left */ erec->nodes_left++; if (erec->left_idx == (unsigned int)-1) { erec->left_idx = idx; break; } cur_idx = erec->left_idx; } else { /* move right */ if (erec->right_idx == (unsigned int)-1) { erec->right_idx = idx; break; } cur_idx = erec->right_idx; } } return TRUE; } static struct mail_index_record * get_next(struct mail_index *index, unsigned int idx) { struct mail_index_record *rec = (struct mail_index_record *) index->buf; unsigned int idx_limit; idx_limit = index->size / sizeof(struct mail_index_record); if (idx >= idx_limit) { /* last one */ return NULL; } while (++idx < idx_limit) { if ((rec[idx].flags & MAIL_FLAG_EXPUNGED) == 0) return rec + idx; } return NULL; } static struct mail_index_record * get_prev(struct mail_index *index, unsigned int idx) { struct mail_index_record *rec, *first; if (idx == 0) return NULL; first = (struct mail_index_record *) index->buf; rec = ((struct mail_index_record *) index->buf) + idx - 1; while ((rec->flags & MAIL_FLAG_EXPUNGED) != 0) { if (rec == first) return NULL; rec--; } return rec; } static struct mail_index_record * get_nth_record(struct mail_index *index, unsigned int seq) { struct mail_index_expunge_record *erec; struct mail_index_record *rec, *rec_p; unsigned int idx, idx_limit, left_count, next_seq, cur_nodes_left; assert(seq != 0); if (seq > index->count) return NULL; rec_p = (struct mail_index_record *) index->buf; if (index->expunge_root_idx == (unsigned int)-1) return rec_p + (seq-1); idx_limit = index->size / sizeof(struct mail_index_record); idx = index->expunge_root_idx; left_count = 0; for (;;) { if (idx >= idx_limit) { index_set_corrupted(index, "Expunge node points outside index (%u >= %u)", idx, idx_limit); return NULL; } if ((rec_p[idx].flags & MAIL_FLAG_EXPUNGED) == 0) { index_set_corrupted(index, "Expunge node doesn't have EXPUNGE flag set"); return NULL; } erec = (struct mail_index_expunge_record *) &rec_p[idx]; cur_nodes_left = erec->nodes_left & 0x7fffffff; if (cur_nodes_left > idx + left_count) { index_set_corrupted(index, "Expunge left node counters corrupted " "(%u > %u + %u)", cur_nodes_left, idx, left_count); return NULL; } next_seq = idx - (left_count + cur_nodes_left) + 1; if (seq > next_seq) { /* it's right from us */ if (erec->right_idx == (unsigned int)-1) { rec = get_next(index, idx); return rec + (seq - next_seq); } if (erec->right_idx <= idx) { index_set_corrupted(index, "Invalid right expunge node (%u <= %u)", erec->right_idx, idx); return NULL; } left_count += cur_nodes_left + 1; idx = erec->right_idx; } else if (seq < next_seq) { /* it's left from us */ if (erec->left_idx == (unsigned int)-1) { rec = get_prev(index, idx); return rec - (next_seq - seq - 1); } if (erec->left_idx >= idx) { index_set_corrupted(index, "Invalid left expunge node (%u >= %u)", erec->left_idx, idx); return NULL; } idx = erec->left_idx; } else { rec = get_next(index, idx); if (rec == NULL) { index_set_corrupted(index, "No records found after idx %u", idx); } return rec; } } } static struct mail_index_record * get_uid_range(struct mail_index *index, unsigned int uid1, unsigned int uid2, unsigned int *seq_r) { struct mail_index_expunge_record *erec; struct mail_index_record *rec_p, *rec; unsigned int idx_limit, idx, left_idx, right_idx, nodes_left; unsigned int left_next_idx, right_prev_idx; assert(uid1 <= uid2); if (seq_r != NULL) *seq_r = 0; rec_p = (struct mail_index_record *) index->buf; idx_limit = index->size / sizeof(struct mail_index_record); idx = index->expunge_root_idx; nodes_left = 0; left_idx = right_idx = (unsigned int)-1; while (idx != (unsigned int)-1) { if (idx >= idx_limit) { index_set_corrupted(index, "Expunge node points outside index (%u >= %u)", idx, idx_limit); return NULL; } erec = (struct mail_index_expunge_record *) &rec_p[idx]; rec = get_prev(index, idx); if (rec == NULL || rec->uid < uid1) { left_idx = idx; nodes_left += (erec->nodes_left & 0x7fffffff) + 1; idx = erec->right_idx; } else { right_idx = idx; right_prev_idx = (unsigned int) (rec - rec_p); idx = erec->left_idx; } } if (left_idx == (unsigned int)-1) left_next_idx = 0; else { rec = get_next(index, left_idx); if (rec == NULL || rec->uid > uid2) return NULL; left_next_idx = (unsigned int) (rec - rec_p); } if (right_idx == (unsigned int)-1) right_prev_idx = idx_limit-1; /* FIXME: use binary search here */ for (idx = left_next_idx; idx <= right_prev_idx; idx++) { if ((rec->flags & MAIL_FLAG_EXPUNGED) != 0) { index_set_corrupted(index, "Unexpectedly found expunged record"); return NULL; } if (rec_p[idx].uid >= uid1) { if (rec_p[idx].uid > uid2) break; if (seq_r != NULL) *seq_r = idx + 1 - nodes_left; return rec_p + idx; } } return NULL; } static struct mail_index_record * get_uid_range_slow(struct mail_index *index, unsigned int uid1, unsigned int uid2, unsigned int *seq_r) { struct mail_index_record *rec = (struct mail_index_record *) index->buf; unsigned int seq, idx, idx_limit; idx_limit = index->size / sizeof(struct mail_index_record); seq = 0; for (idx = 0; idx < idx_limit; idx++) { if ((rec[idx].flags & MAIL_FLAG_EXPUNGED) == 0) { seq++; if (rec[idx].uid >= uid1) { if (rec[idx].uid > uid2) break; *seq_r = seq; return rec+idx; } } } *seq_r = 0; return NULL; } int main(int argc, char *argv[]) { struct mail_index index = { 0 }; struct mail_index_record *rec_p; unsigned int seq1, seq2, uid1, uid2; size_t i, j; index.expunge_root_idx = (unsigned int)-1; index.size = bufsize * sizeof(struct mail_index_record); printf("count = %u, malloc = %lu\n", bufsize, index.size); index.buf = calloc(1, index.size); rec_p = (struct mail_index_record *) index.buf; for (i = 0; i < bufsize; i++) rec_p[i].uid = i+1; index.count = bufsize; for (i = 0; i < bufsize-1; i++) { rec_p = get_nth_record(&index, rand() % index.count + 1); remove_record(&index, rec_p - (struct mail_index_record *) index.buf); for (j = 0; j < 100; j++) { seq1 = rand() % index.count + 1; uid1 = get_nth_record(&index, seq1)->uid; uid2 = get_uid_range(&index, uid1, uid1, &seq2)->uid; if (uid1 != uid2 || seq1 != seq2) { printf("seq %u -> uid %u, uid -> seq %u, uid %u\n", seq1, uid1, seq2, uid2); get_uid_range(&index, uid1, uid1, &seq2)->uid; abort(); } } for (j = 0; j < 100; j++) { uid1 = rand() % bufsize + 1; uid2 = rand() % (bufsize - uid1) + uid1; rec_p = get_uid_range(&index, uid1, uid2, &seq1); if (rec_p != NULL) { uid1 = rec_p->uid; uid2 = get_nth_record(&index, seq1)->uid; if (uid1 != uid2) { printf("uid: %u vs %u, seq = %u\n", uid1, uid2, seq1); abort(); } } rec_p = get_uid_range_slow(&index, uid1, uid2, &seq2); if (seq1 != seq2) { printf("slow way %u..%u: %u vs %u, uid = %u\n", uid1, uid2, seq1, seq2, rec_p->uid); get_uid_range(&index, uid1, uid2, &seq1); abort(); } } } assert(index.count == 1); return 0; } --Apple-Mail-3-413203734-- From tss@iki.fi Wed Jul 16 05:01:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 903CC23866; Wed, 16 Jul 2003 05:01:54 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0D4092384C for ; Wed, 16 Jul 2003 05:01:51 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 75DB55EC123B for ; Wed, 16 Jul 2003 05:01:48 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1058320908.20893.109.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 16 Jul 2003 05:01:48 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Indexes again X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 02:01:54 -0000 X-UID: 1214 Status: O Content-Length: 2623 A bit quiet here, so here's some more thoughts about indexes. Even though I was thinking only how to make them usable with NFS (I wrote it to doc/nfs.txt), it then occured to me that exactly the same tricks would help with local filesystem indexes as well. Especially the lockless reading would help with lock contention issues I was worrying about earlier with shared mailboxes. Also it occured to me that keeping maildir filenames fully synchronized in index file probably isn't very good idea from performance point of view.. BTW. I almost committed the .tree removal code to CVS today. Then I noticed that expunging ignores about half of the deleted messages. This could have been actually happening with the old code in some situations as well, although it probably would have skipped only a couple of messages. Anyway, fixing this properly takes some more time.. -------- Ideas how to make indexes work pretty well with NFS: Reading shouldn't require locks, so modifying should be done using only atomic operations. These include: - Replacing the file completely using rename() - We probably can't assume that writing more than one byte at a time is atomic. If we have to modify a larger dataset, we could do: - struct { bit_t use_first; dataset_t first; dataset_t second; } - when reading, we use first if use_first is set, second if it's unset - when writing, we first write to the non-used variable, only then we update the flag. - This of course requires twice the amount of space for dataset plus one extra bit, so it shouldn't be used too much - If data can be only set, but never changed, we need only one extra bit to specify if the data is set. - Appending new data to end of file. We'd have to have used_file_size variable in header, done like described above. - Each cached message record would have a pointer to next part, so more cached data could be appended to file. Message flags are the most commonly modified data. If we just modify them directly, a simultaneous read might catch the change only partially. But luckily for us, this is accepted behaviour so we can do it. Another commonly modified data is maildir filenames. We probably want to store only the base name in index and keep the full name synchronized only locally. Compressing unused data from index files would have to be done by rewriting the index into index.lock file and renaming it over the index file. All file operations should probably be done with lseek(), read() and write() to avoid extra network traffic. There should be some clever read-ahead caching however. From grahame@ucs.uwa.edu.au Wed Jul 16 08:56:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8B8FC23866; Wed, 16 Jul 2003 08:56:15 +0300 (EEST) Received: from asclepius.uwa.edu.au (asclepius.uwa.edu.au [130.95.128.56]) by danu.procontrol.fi (Postfix) with ESMTP id 8D86A2384C for ; Wed, 16 Jul 2003 08:56:11 +0300 (EEST) Received: from 127.0.0.1 (localhost [127.0.0.1]) by dummy.domain.name (Postfix) with SMTP id 2655D367257 for ; Wed, 16 Jul 2003 13:56:10 +0800 (WST) Received: from typhaon.ucs.uwa.edu.au (typhaon.ucs.uwa.edu.au [130.95.128.67]) by asclepius.uwa.edu.au (Postfix) with ESMTP id 20081367246 for ; Wed, 16 Jul 2003 13:56:10 +0800 (WST) Received: from localhost (localhost [127.0.0.1]) by typhaon.ucs.uwa.edu.au (Postfix) with ESMTP id 0FA12401D06F for ; Wed, 16 Jul 2003 13:56:10 +0800 (WST) From: Grahame Bowland To: dovecot@procontrol.fi Content-Type: text/plain Organization: The University of Western Australia Message-Id: <1058334969.6397.14.camel@typhaon.ucs.uwa.edu.au> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.3 Date: 16 Jul 2003 13:56:10 +0800 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Dovecot on Linux 2.6.0-test1-ac1 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 05:56:15 -0000 X-UID: 1215 Status: O Content-Length: 1233 Hi all For various reasons I was looking into 2.6, so I installed a copy on my desktop. Everything works fine, except for dovecot - errors such as this appeared in the syslog: Jul 15 14:41:09 typhaon dovecot: Dovecot starting up Jul 15 14:41:12 typhaon imap-login: setuid(113) failed: Resource temporarily unavailable Jul 15 14:41:12 typhaon dovecot: Login process died too early - shutting down I can imagine why setuid() should ever fail, I've confirmed that the daemon is running as UID zero at the time it makes the call. However, the call succeeds if I comment out: restrict_process_size((unsigned int)-1, 1); on line 134 of src/login-common/main.c it starts to work again. It's very strange - I got the idea to try this from the list archives. I'm willing to track this down if anyone can suggest possible things in restrict_process_size() that might be causing this failure. All the other daemons that I run that need to drop root privileges work fine.. Cheers Grahame -- Grahame Bowland Email: grahame@ucs.uwa.edu.au University Communications Services Phone: +61 8 9380 1175 The University of Western Australia Fax: +61 8 9380 1109 CRICOS: 00126G From tss@iki.fi Wed Jul 16 09:19:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 24B6D23866; Wed, 16 Jul 2003 09:19:32 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6EACB2384C for ; Wed, 16 Jul 2003 09:19:28 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2CFED5EC123B for ; Wed, 16 Jul 2003 09:19:28 +0300 (EEST) Subject: Re: [Dovecot] Dovecot on Linux 2.6.0-test1-ac1 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1058334969.6397.14.camel@typhaon.ucs.uwa.edu.au> References: <1058334969.6397.14.camel@typhaon.ucs.uwa.edu.au> Content-Type: text/plain Message-Id: <1058336367.1792.184.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 16 Jul 2003 09:19:28 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 06:19:32 -0000 X-UID: 1216 Status: O On Wed, 2003-07-16 at 08:56, Grahame Bowland wrote: > I can imagine why setuid() should ever fail, I've confirmed that the > daemon is running as UID zero at the time it makes the call. However, > the call succeeds if I comment out: > restrict_process_size((unsigned int)-1, 1); > on line 134 of src/login-common/main.c it starts to work again. Has anyone tried if 0.99.10 works by default with openwall and grsec kernels where it used to have problems? I changed this from 0 to 1 some time ago when someone said it still didn't work. Maybe I should make this configurable from config file. The whole point of it is to prevent login processes from forking, but there doesn't seem to be any good way to do that. The "1" there specifies the maximum number of processes for the whole user, not the maximum child processes for this one.. From tss@iki.fi Wed Jul 16 09:35:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5061023866; Wed, 16 Jul 2003 09:35:57 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5441123865 for ; Wed, 16 Jul 2003 09:35:55 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 22AA85EC123B for ; Wed, 16 Jul 2003 09:35:52 +0300 (EEST) Subject: Re: [Dovecot] Dovecot on Linux 2.6.0-test1-ac1 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1058334969.6397.14.camel@typhaon.ucs.uwa.edu.au> References: <1058334969.6397.14.camel@typhaon.ucs.uwa.edu.au> Content-Type: text/plain Message-Id: <1058337351.1792.193.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 16 Jul 2003 09:35:52 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 06:35:57 -0000 X-UID: 1217 Status: O Content-Length: 1169 On Wed, 2003-07-16 at 08:56, Grahame Bowland wrote: > I can imagine why setuid() should ever fail, I've confirmed that the > daemon is running as UID zero at the time it makes the call. However, > the call succeeds if I comment out: > restrict_process_size((unsigned int)-1, 1); > on line 134 of src/login-common/main.c it starts to work again. How about if it was done after setuid()? :) With a few tests it looks like Linux 2.4 and OpenBSD are happy with that. diff -u -r1.11 main.c --- src/login-common/main.c 19 Jun 2003 02:00:25 -0000 1.11 +++ src/login-common/main.c 16 Jul 2003 06:34:39 -0000 @@ -130,9 +130,6 @@ static void drop_privileges(const char *name) { - /* make sure we can't fork() */ - restrict_process_size((unsigned int)-1, 1); - /* Log file or syslog opening probably requires roots */ open_logfile(name); @@ -143,6 +140,9 @@ /* Refuse to run as root - we should never need it and it's dangerous with SSL. */ restrict_access_by_env(TRUE); + + /* make sure we can't fork() */ + restrict_process_size((unsigned int)-1, 1); } static void main_init(void) From grahame@ucs.uwa.edu.au Wed Jul 16 09:49:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7626A23866; Wed, 16 Jul 2003 09:49:17 +0300 (EEST) Received: from asclepius.uwa.edu.au (asclepius.uwa.edu.au [130.95.128.56]) by danu.procontrol.fi (Postfix) with ESMTP id 77A6E23865 for ; Wed, 16 Jul 2003 09:49:15 +0300 (EEST) Received: from 127.0.0.1 (localhost [127.0.0.1]) by dummy.domain.name (Postfix) with SMTP id 139433673C9 for ; Wed, 16 Jul 2003 14:49:14 +0800 (WST) Received: from typhaon.ucs.uwa.edu.au (typhaon.ucs.uwa.edu.au [130.95.128.67]) by asclepius.uwa.edu.au (Postfix) with ESMTP id 0E4EA3673AD for ; Wed, 16 Jul 2003 14:49:14 +0800 (WST) Received: from localhost (localhost [127.0.0.1]) by typhaon.ucs.uwa.edu.au (Postfix) with ESMTP id EF9A9401D079 for ; Wed, 16 Jul 2003 14:49:13 +0800 (WST) Subject: Re: [Dovecot] Dovecot on Linux 2.6.0-test1-ac1 From: Grahame Bowland To: dovecot@procontrol.fi In-Reply-To: <1058337351.1792.193.camel@hurina> References: <1058334969.6397.14.camel@typhaon.ucs.uwa.edu.au> <1058337351.1792.193.camel@hurina> Content-Type: text/plain Organization: The University of Western Australia Message-Id: <1058338153.6397.29.camel@typhaon.ucs.uwa.edu.au> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.3 Date: 16 Jul 2003 14:49:13 +0800 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 06:49:17 -0000 X-UID: 1218 Status: O On Wed, 2003-07-16 at 14:35, Timo Sirainen wrote: > On Wed, 2003-07-16 at 08:56, Grahame Bowland wrote: > > I can imagine why setuid() should ever fail, I've confirmed that the > > daemon is running as UID zero at the time it makes the call. However, > > the call succeeds if I comment out: > > restrict_process_size((unsigned int)-1, 1); > > on line 134 of src/login-common/main.c it starts to work again. > > How about if it was done after setuid()? :) With a few tests it looks > like Linux 2.4 and OpenBSD are happy with that. Yep, that works fine on linux-2.6,0-test1-ac1 as well. Great! :) Thanks for your help! Grahame -- Grahame Bowland Email: grahame@ucs.uwa.edu.au University Communications Services Phone: +61 8 9380 1175 The University of Western Australia Fax: +61 8 9380 1109 CRICOS: 00126G From grpmind+dovecot@boromir.vpop.net Fri Jul 18 02:03:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B136B238C6; Fri, 18 Jul 2003 02:03:15 +0300 (EEST) Received: from bilbo.vpop.net (bilbo.vpop.net [65.103.33.41]) by danu.procontrol.fi (Postfix) with SMTP id 46D152387A for ; Fri, 18 Jul 2003 02:02:17 +0300 (EEST) To: dovecot@procontrol.fi Message-Id: <20030717230217.46D152387A@danu.procontrol.fi> Date: Fri, 18 Jul 2003 02:02:17 +0300 (EEST) From: grpmind+dovecot@boromir.vpop.net Subject: [Dovecot] How to use SASL2? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jul 2003 23:03:15 -0000 X-UID: 1219 Status: O How does one use SASL2 for authentication? I looked for docs but found none. Thanks in advance. Matt From tss@iki.fi Fri Jul 18 03:36:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 88F5E238C7; Fri, 18 Jul 2003 03:36:05 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 662792387A for ; Fri, 18 Jul 2003 03:36:01 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E4D725C670A0 for ; Fri, 18 Jul 2003 03:35:58 +0300 (EEST) Subject: Re: [Dovecot] How to use SASL2? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030717230217.46D152387A@danu.procontrol.fi> References: <20030717230217.46D152387A@danu.procontrol.fi> Content-Type: text/plain Message-Id: <1058488558.13915.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 18 Jul 2003 03:35:58 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jul 2003 00:36:05 -0000 X-UID: 1220 Status: O On Fri, 2003-07-18 at 02:02, grpmind+dovecot@boromir.vpop.net wrote: > How does one use SASL2 for authentication? I looked for docs but found > none. There's some code for supporting Cyrus' SASL library, but it hasn't been tested for a while and I doubt that it works. I don't really have plans to make it work either. Why do you want it anyway? Dovecot supports PLAIN, DIGEST-MD5 and ANONYMOUS SASL mechanisms internally. Most important missing one is Kerberos 5 I think. From gghartma@cs.cmu.edu Fri Jul 18 18:20:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C7526238C6; Fri, 18 Jul 2003 18:20:23 +0300 (EEST) Received: from ux13.sp.cs.cmu.edu (UX13.SP.CS.CMU.EDU [128.2.203.57]) by danu.procontrol.fi (Postfix) with SMTP id E6DDB23896 for ; Fri, 18 Jul 2003 18:20:17 +0300 (EEST) Received: from GS2064.SP.CS.CMU.EDU ([128.2.185.38]) by ux13.sp.cs.cmu.edu id aa14933; 18 Jul 2003 11:20 EDT From: Gregory Hartman To: dovecot@procontrol.fi Content-Type: text/plain Organization: Message-Id: <1058541607.3767.15.camel@GS2064.SP.CS.CMU.EDU> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 18 Jul 2003 11:20:07 -0400 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Status of database integration / Willing to help X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jul 2003 15:20:24 -0000 X-UID: 1221 Status: O I a PhD student here at Carnegie Mellon. I have ten years of experience working in C in industry. I am working on a research project here at Carnegie Mellon that needs to integrate a database with mail clients. We are planning to use the IMAP protocol to communicate with the mail client. After I spent some time looking at the code of various IMAP server implementations, I got very interested in Dovecot. Then I noticed that you were planning to integrate Dovecot with a SQL database. Is this work in progress? Do you have a schema? Is there some way that I could help? -- Gregory Hartman From tss@iki.fi Fri Jul 18 18:53:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 47FC9238C6; Fri, 18 Jul 2003 18:53:30 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 97F9B2387A for ; Fri, 18 Jul 2003 18:53:27 +0300 (EEST) Date: Fri, 18 Jul 2003 18:53:31 +0300 Subject: Re: [Dovecot] Status of database integration / Willing to help Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <1058541607.3767.15.camel@GS2064.SP.CS.CMU.EDU> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jul 2003 15:53:30 -0000 X-UID: 1222 Status: O Content-Length: 1671 On Friday, Jul 18, 2003, at 18:20 Europe/Helsinki, Gregory Hartman wrote: > Then I noticed that you were planning to integrate Dovecot with a SQL > database. > > Is this work in progress? > > Do you have a schema? > > Is there some way that I could help? I was playing a bit with Oracle backend since I'll have to do some Oracle work anyway. OCI (Oracle Call Interface) is quite horrible to work with directly, so I was trying to figure out some easier ways to use it. I found libsqlora8 which was a bit better, but still not exactly what I wanted. I wrote a few functions on top of that which my current code uses. I've later written still somewhat easier API directly on top of OCI for another project, which I should port to Dovecot. I'd want so support at least both Oracle and PostgreSQL, so the SQL API that is used should work with both of them. Although I'm not sure how much code they could share, there's probably quite a lot of database-specific optimizations that could be done. You can get my latest sources from http://dovecot.procontrol.fi/tmp/oracle.tar.gz which should be uncompressed to src/lib-storage/ directory. oracle.sql contains the database schema that I was planning to use. Should be easy to port to other databases. The code itself supports at least saving messages and fetching their flags and some other things.. It's a bit kludgy too. I'm not sure about the schema either if it's best possible one. Suggestions welcome :) I haven't touched the code for a few months now and I don't really plan to for some time, so go ahead and write the whole thing yourself if you want :) I can help some with the code of course. From maikel@ladot.com Sat Jul 19 00:38:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A6A4823896; Sat, 19 Jul 2003 00:38:53 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id AD1F82387A for ; Sat, 19 Jul 2003 00:38:48 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h6ILpnZW092130 for ; Fri, 18 Jul 2003 23:51:49 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Fri, 18 Jul 2003 23:40:25 +0200 Message-ID: <410777FC7A66D511911500B0D0783455024C5186@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'dovecot@procontrol.fi'" Date: Fri, 18 Jul 2003 23:40:24 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C34D75.32404110" X-Spam-Status: No, hits=1.3 required=5.0 tests=HTML_20_30,HTML_MESSAGE version=2.55 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) Subject: [Dovecot] Loadable module X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jul 2003 21:38:53 -0000 X-UID: 1223 Status: O Content-Length: 2392 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C34D75.32404110 Content-Type: text/plain Hi List! I read a post about moving a .mailbixlist to a .subscriptionfile when a user did not have one, but did have a .mailboxlist file. Timo emailed a module for that purpose, so it could be done for this user. My question is: - Where and how does dovecot call this function? - Would it be easy to use a module to a) create a mailpath (can be done as the mailuser's id, I use one uid, and my path is all owned by that uid), and b) simply remove a quota file? Thank you for your time, Maikel Verheijen. Ps: the email I am referring to has: Subject: Re: [Dovecot] 0.99.10-rc3 Message-Id: <1056538261.8144.38.camel@hurina> Date: 25 Jun 2003 13:51:01 +0300 ------_=_NextPart_001_01C34D75.32404110 Content-Type: text/html Content-Transfer-Encoding: quoted-printable Loadable module

Hi List!

I read a post about moving a .mailbixlist to a = .subscriptionfile when a user did not have one, but did have a = .mailboxlist file. Timo emailed a module for that purpose, so it could = be done for this user.

My question is:

- Where and how does dovecot call this = function?
- Would it be easy to use a module to a) create a = mailpath (can be done as the mailuser's id, I use one uid, and my path = is all owned by that uid), and b) simply remove a quota = file?

Thank you for your time,

Maikel Verheijen.

Ps: the email I am referring to has:
   Subject: Re: [Dovecot] = 0.99.10-rc3
   Message-Id: = <1056538261.8144.38.camel@hurina>
   Date: 25 Jun 2003 13:51:01 +0300
  

------_=_NextPart_001_01C34D75.32404110-- From tss@iki.fi Sat Jul 19 01:14:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6BC9D23896; Sat, 19 Jul 2003 01:14:09 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 16A3E2387A; Sat, 19 Jul 2003 01:14:05 +0300 (EEST) Date: Sat, 19 Jul 2003 01:14:06 +0300 Subject: Re: [Dovecot] Loadable module Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: Maikel Verheijen From: Timo Sirainen In-Reply-To: <410777FC7A66D511911500B0D0783455024C5186@nlladot05.intern.ladot.com> Message-Id: <25EA2A40-B96D-11D7-BBA9-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) X-Spam-Status: No, hits=-5.8 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: "'dovecot@procontrol.fi'" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jul 2003 22:14:09 -0000 X-UID: 1224 Status: O Content-Length: 1024 On Saturday, Jul 19, 2003, at 00:40 Europe/Helsinki, Maikel Verheijen wrote: > I read a post about moving a .mailbixlist to a .subscriptionfile when > a user did not have one, but did have a .mailboxlist file. Timo > emailed a module for that purpose, so it could be done for this user. > > My question is: > > - Where and how does dovecot call this function? _init(); is called after initializing Dovecot's core code, but before opening any message store or creating client structure. I think I'd have to add some hooks for store creation and client creation so you wouldn't need kludges if you want to modify them in some way. You'll have to enable modules of course in configuration file and place the module to right directory. > - Would it be easy to use a module to a) create a mailpath (can be > done as the mailuser's id, I use one uid, and my path is all owned by > that uid), and b) simply remove a quota file? Yes, the modules can do whatever they want. Just use mkdir() and unlink(). From haakon@themadship.dhs.org Sat Jul 19 16:22:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C7125238CE; Sat, 19 Jul 2003 16:22:08 +0300 (EEST) Received: from epsilon3.themadship.dhs.org (ppp187-159.lns1.bne1.internode.on.net [150.101.187.159]) by danu.procontrol.fi (Postfix) with ESMTP id 8638723896 for ; Sat, 19 Jul 2003 16:22:04 +0300 (EEST) Received: from haakon by epsilon3.themadship.dhs.org with local (Exim 4.20) id 19draQ-0002j4-1k for dovecot@procontrol.fi; Sat, 19 Jul 2003 23:17:18 +1000 Date: Sat, 19 Jul 2003 23:17:17 +1000 To: dovecot@procontrol.fi Message-ID: <20030719131717.GA10461@themadship.dhs.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i From: Craig Subject: [Dovecot] migrating from uw imapd X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 13:22:09 -0000 X-UID: 1225 Status: O Hi, I'm trying to migrate from uw imapd to dovecot. I'm having two problems at the moment. 1. uw imapd grabs new mail from /var/mail/user and then shoves it into ~/mbox, is there any way to make dovecot handle this kind of setup or am I better off merging ~/mbox back into /var/mail/user? If merging is better are what tools are best for this? 2. While I did have have everything in ~/Mail coming up dovetail stopped working and logs the following error: syslog:Jul 19 23:01:07 epsilon3 imap-login: Login: haakon [192.168.0.107] syslog:Jul 19 23:01:07 epsilon3 imap(haakon): Failed to create storage with data: ~/Mail/:INBOX=/var/mail/haakon syslog:Jul 19 23:01:07 epsilon3 dovecot: child 10417 (imap) returned error 89 any idea what is causing this? Regards, Craig. From tss@iki.fi Sat Jul 19 17:35:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EEC35238CE; Sat, 19 Jul 2003 17:35:18 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EE2CD238C8 for ; Sat, 19 Jul 2003 17:35:15 +0300 (EEST) Date: Sat, 19 Jul 2003 17:35:20 +0300 Subject: Re: [Dovecot] migrating from uw imapd Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030719131717.GA10461@themadship.dhs.org> Message-Id: <390AEBAA-B9F6-11D7-BBA9-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 14:35:19 -0000 X-UID: 1226 Status: O Content-Length: 1145 On Saturday, Jul 19, 2003, at 16:17 Europe/Helsinki, Craig wrote: > 1. uw imapd grabs new mail from /var/mail/user and then shoves it into > ~/mbox, is there any way to make dovecot handle this kind of setup or > am I better off merging ~/mbox back into /var/mail/user? If merging is > better are what tools are best for this? There's no way currently. And I'm not sure what's the point of that anyway, so I don't really have plans to do that. Wasn't this mbox moving optional in UW-IMAP too? For merging you could just use cat :) cat /var/mail/user >> /home/user/mbox, mv /home/user/mbox /var/mail/user And to avoid losing mails you should stop SMTP and IMAP servers.. > 2. While I did have have everything in ~/Mail coming up dovetail > stopped working and logs the following error: > > syslog:Jul 19 23:01:07 epsilon3 imap-login: Login: haakon > [192.168.0.107] > syslog:Jul 19 23:01:07 epsilon3 imap(haakon): Failed to create storage > with data: ~/Mail/:INBOX=/var/mail/haakon Try default_mail_env = mbox:~/Mail:INBOX=/var/mail/%u Although it should have worked without the mbox: prefix too. Maybe some permission problem. From haakon@themadship.dhs.org Sat Jul 19 18:22:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 66B8B238D1; Sat, 19 Jul 2003 18:22:17 +0300 (EEST) Received: from epsilon3.themadship.dhs.org (ppp187-159.lns1.bne1.internode.on.net [150.101.187.159]) by danu.procontrol.fi (Postfix) with ESMTP id 020BC23896 for ; Sat, 19 Jul 2003 18:22:13 +0300 (EEST) Received: from [192.168.0.107] (helo=[192.168.0.107]) by epsilon3.themadship.dhs.org with esmtp (Exim 4.20) id 19dtSP-0002wz-LL for dovecot@procontrol.fi; Sun, 20 Jul 2003 01:17:09 +1000 Subject: Re: [Dovecot] migrating from uw imapd From: Craig Askings To: dovecot@procontrol.fi In-Reply-To: <390AEBAA-B9F6-11D7-BBA9-000393CC2E90@iki.fi> References: <390AEBAA-B9F6-11D7-BBA9-000393CC2E90@iki.fi> Content-Type: text/plain Message-Id: <1058656926.7631.5.camel@whitestar> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.3 Date: 20 Jul 2003 01:22:07 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 15:22:17 -0000 X-UID: 1227 Status: O Content-Length: 1622 On Sat, 2003-07-19 at 16:35, Timo Sirainen wrote: > On Saturday, Jul 19, 2003, at 16:17 Europe/Helsinki, Craig wrote: > > > 1. uw imapd grabs new mail from /var/mail/user and then shoves it into > > ~/mbox, is there any way to make dovecot handle this kind of setup or > > am I better off merging ~/mbox back into /var/mail/user? If merging is > > better are what tools are best for this? > > There's no way currently. And I'm not sure what's the point of that > anyway, so I don't really have plans to do that. Wasn't this mbox > moving optional in UW-IMAP too? > > For merging you could just use cat :) cat /var/mail/user >> > /home/user/mbox, mv /home/user/mbox /var/mail/user > > And to avoid losing mails you should stop SMTP and IMAP servers.. > I had a look and no other users are setup that way on my server, I suspect it was uw imapd just carrying on from what mutt was doing. The merge went successfully so that is that problem fixed. > > 2. While I did have have everything in ~/Mail coming up dovetail > > stopped working and logs the following error: > > > > syslog:Jul 19 23:01:07 epsilon3 imap-login: Login: haakon > > [192.168.0.107] > > syslog:Jul 19 23:01:07 epsilon3 imap(haakon): Failed to create storage > > with data: ~/Mail/:INBOX=/var/mail/haakon > > Try default_mail_env = mbox:~/Mail:INBOX=/var/mail/%u > > Although it should have worked without the mbox: prefix too. Maybe some > permission problem. > Looks like the problem was with my .subscription file. After I fixed that it all came good. Thanks for your quick response, your help is much appreciated. Regards, Craig. From wouter@pair.com Sat Jul 19 18:35:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DCBED238D1; Sat, 19 Jul 2003 18:35:18 +0300 (EEST) Received: from amsfep14-int.chello.nl (amsfep14-int.chello.nl [213.46.243.22]) by danu.procontrol.fi (Postfix) with ESMTP id 0F2AF23896 for ; Sat, 19 Jul 2003 18:35:12 +0300 (EEST) Received: from hibernate.cryolabs.net ([213.132.150.78]) by amsfep14-int.chello.nlSMTP <20030719153510.RZSV17933.amsfep14-int.chello.nl@hibernate.cryolabs.net> for ; Sat, 19 Jul 2003 17:35:10 +0200 Received: (qmail 10083 invoked from network); 19 Jul 2003 17:34:55 +0200 Received: from unknown (HELO cocaine.cryolabs.net) (192.168.196.5) by hibernate.cryolabs.net with SMTP; 19 Jul 2003 17:34:54 +0200 Date: Sat, 19 Jul 2003 17:35:39 +0200 (CEST) From: Wouter Van Hemel To: Craig Subject: Re: [Dovecot] migrating from uw imapd In-Reply-To: <20030719131717.GA10461@themadship.dhs.org> Message-ID: References: <20030719131717.GA10461@themadship.dhs.org> PGP: 0B B4 BC 28 53 62 FE 94 6A 57 EE B8 A6 E2 1B E4 (0xAA5412F0) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 15:35:19 -0000 X-UID: 1228 Status: O On Sat, 19 Jul 2003, Craig wrote: > 1. uw imapd grabs new mail from /var/mail/user and then shoves it into > ~/mbox, is there any way to make dovecot handle this kind of setup or am > I better off merging ~/mbox back into /var/mail/user? If merging is > better are what tools are best for this? > It does that? I've never seen that kind of behavior. Perhaps your package is compiled with some weird options (if you didn't compile it yourself). From skvidal@phy.duke.edu Sat Jul 19 18:36:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8186B238D5; Sat, 19 Jul 2003 18:36:44 +0300 (EEST) Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id AE02F238D3 for ; Sat, 19 Jul 2003 18:36:39 +0300 (EEST) Received: from user-118-10.wireless.duke.edu (user-118-10.wireless.duke.edu [152.3.118.10]) by mail.phy.duke.edu (Postfix) with ESMTP id 64F2EA77CF; Sat, 19 Jul 2003 11:36:35 -0400 (EDT) Subject: Re: [Dovecot] migrating from uw imapd From: seth vidal To: Wouter Van Hemel In-Reply-To: References: <20030719131717.GA10461@themadship.dhs.org> Content-Type: text/plain Message-Id: <1058628995.10439.2.camel@binkley> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 (1.4.0-2.duke.1) Date: 19 Jul 2003 11:36:36 -0400 Content-Transfer-Encoding: 7bit cc: Craig cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 15:36:44 -0000 X-UID: 1229 Status: O On Sat, 2003-07-19 at 11:35, Wouter Van Hemel wrote: > On Sat, 19 Jul 2003, Craig wrote: > > > 1. uw imapd grabs new mail from /var/mail/user and then shoves it into > > ~/mbox, is there any way to make dovecot handle this kind of setup or am > > I better off merging ~/mbox back into /var/mail/user? If merging is > > better are what tools are best for this? > > > > It does that? I've never seen that kind of behavior. Perhaps your package > is compiled with some weird options (if you didn't compile it yourself). pine, in the default and mailx will do that annoying 'feature' -sv From mem@mv.mv.com Sat Jul 19 19:17:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1C9E4238D1; Sat, 19 Jul 2003 19:17:39 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id AEB9823896 for ; Sat, 19 Jul 2003 19:17:33 +0300 (EEST) Received: (qmail 29286 invoked by uid 101); 19 Jul 2003 12:17:31 -0400 From: "Mark E. Mallett" Date: Sat, 19 Jul 2003 12:17:31 -0400 To: Timo Sirainen Subject: Re: [Dovecot] migrating from uw imapd Message-ID: <20030719161731.GB21596@iridium.mv.net> References: <20030719131717.GA10461@themadship.dhs.org> <390AEBAA-B9F6-11D7-BBA9-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <390AEBAA-B9F6-11D7-BBA9-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 16:17:39 -0000 X-UID: 1230 Status: O On Sat, Jul 19, 2003 at 05:35:20PM +0300, Timo Sirainen wrote: > On Saturday, Jul 19, 2003, at 16:17 Europe/Helsinki, Craig wrote: > > >1. uw imapd grabs new mail from /var/mail/user and then shoves it into > >~/mbox, is there any way to make dovecot handle this kind of setup or > >am I better off merging ~/mbox back into /var/mail/user? If merging is > >better are what tools are best for this? > > There's no way currently. And I'm not sure what's the point of that > anyway, so I don't really have plans to do that. Wasn't this mbox > moving optional in UW-IMAP too? Yes but last I knew it was compiled on by default. (EXTRADRIVERS=mbox). The behaviour only happened if mbox existed in the home directory-- if you never created that file you wouldn't see it happen. I always turned it off. mm From grpmind+dovecot@boromir.vpop.net Sat Jul 19 21:22:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 55BDB238C8; Sat, 19 Jul 2003 21:22:20 +0300 (EEST) Received: from bilbo.vpop.net (bilbo.vpop.net [65.103.33.41]) by danu.procontrol.fi (Postfix) with SMTP id B194323896 for ; Sat, 19 Jul 2003 21:21:05 +0300 (EEST) To: dovecot@procontrol.fi From: Matthew Reimer Subject: Re: [Dovecot] How to use SASL2? Message-Id: <20030719182105.B194323896@danu.procontrol.fi> Date: Sat, 19 Jul 2003 21:21:05 +0300 (EEST) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 18:22:20 -0000 X-UID: 1231 Status: O Timo Sirainen wrote: > On Fri, 2003-07-18 at 02:02, grpmind+dovecot@boromir.vpop.net wrote: > >>How does one use SASL2 for authentication? I looked for docs but found >>none. > > There's some code for supporting Cyrus' SASL library, but it hasn't been > tested for a while and I doubt that it works. I don't really have plans > to make it work either. > > Why do you want it anyway? Dovecot supports PLAIN, DIGEST-MD5 and > ANONYMOUS SASL mechanisms internally. Most important missing one is > Kerberos 5 I think. I'm not really interested in using SASL for its own sake, but because it's a way to get dovecot to authenticate against my mysql users db. I might try to write a patch to implement mysql support for dovecot, hopefully good enough for you to commit. Matt From dgc@uchicago.edu Mon Jul 21 03:22:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 277FC23866; Mon, 21 Jul 2003 03:22:08 +0300 (EEST) Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id 5A3772387A for ; Mon, 21 Jul 2003 03:21:33 +0300 (EEST) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id h6L0LM901449; Sun, 20 Jul 2003 19:21:22 -0500 (CDT) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Sun, 20 Jul 2003 19:21:22 -0500 From: David Champion To: Wouter Van Hemel Message-ID: <20030721002122.GY17000@dust.uchicago.edu> Mail-Followup-To: Wouter Van Hemel , Craig , dovecot@procontrol.fi References: <20030719131717.GA10461@themadship.dhs.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Gouranga: Gouranga gouranga gouranga User-Agent: Mutt/1.5.2i cc: Craig cc: dovecot@procontrol.fi Subject: [Dovecot] Re: migrating from uw imapd X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 00:22:08 -0000 X-UID: 1232 Status: O Content-Length: 1333 * On 2003.07.19, in , * "Wouter Van Hemel" wrote: > > It does that? I've never seen that kind of behavior. Perhaps your package > is compiled with some weird options (if you didn't compile it yourself). C-client (i.e., pine and uw-imap) will append /var/mail/$user to ~$user/mbox if ~/$user/mbox exists. AFAIK it's non-optional in the stock c-client build. If you touch ~/mbox, it should begin happening for you too. (Options? Configuration? Ha!) Pine and IMAP will regard ~/mbox as your INBOX, though, so it's not necessarily obvious that it's happening unless you look at the folders from outside pine or imap. The purpose of this was twofold, as far as I can see: compatibility with Columbia MM's behavior with regard to mail.txt files, and to allow users or admins to balance space on the spool disk vs. space on the user disk. It's not a bad behavior, all things considered, though more configurability for this and other c-client behaviors would almost always be a fine thing. -- -D. dgc@uchicago.edu NSIT University of Chicago When using any driving directions or map, it's a good idea to do a reality check and make sure the road still exists, watch out for construction, and follow all traffic safety precautions. From maikel@ladot.com Tue Jul 22 14:02:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 55D252387F; Tue, 22 Jul 2003 14:02:49 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id E4B2723866 for ; Tue, 22 Jul 2003 14:02:46 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h6MBFhZW035014; Tue, 22 Jul 2003 13:15:44 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Tue, 22 Jul 2003 13:04:04 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F229B8@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'Timo Sirainen'" , Maikel Verheijen Subject: RE: [Dovecot] Loadable module Date: Tue, 22 Jul 2003 13:04:04 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C35040.F68164F0" X-Spam-Status: No, hits=0.8 required=5.0 tests=HTML_20_30,HTML_MESSAGE,QUOTED_EMAIL_TEXT version=2.55 X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) cc: "'dovecot@procontrol.fi'" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 11:02:49 -0000 X-UID: 1233 Status: O Content-Length: 5203 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C35040.F68164F0 Content-Type: text/plain Hi Timo, When you have time to create the hooks to the various locations within dovecot, I am willing to try to make a module to support Maildir quota's. Would that be possible with the hooks, and can that be done using a plugin as well? Kind regards, Maikel Verheijen. > -----Original Message----- > From: Timo Sirainen [mailto:tss@iki.fi] > Sent: Saturday, July 19, 2003 12:14 AM > To: Maikel Verheijen > Cc: 'dovecot@procontrol.fi' > Subject: Re: [Dovecot] Loadable module > > > On Saturday, Jul 19, 2003, at 00:40 Europe/Helsinki, Maikel Verheijen > wrote: > > > I read a post about moving a .mailbixlist to a > .subscriptionfile when > > a user did not have one, but did have a .mailboxlist file. Timo > > emailed a module for that purpose, so it could be done for > this user. > > > > My question is: > > > > - Where and how does dovecot call this function? > > _init(); is called after initializing Dovecot's > core code, > but before opening any message store or creating client structure. I > think I'd have to add some hooks for store creation and > client creation > so you wouldn't need kludges if you want to modify them in some way. > > You'll have to enable modules of course in configuration file > and place > the module to right directory. > > > - Would it be easy to use a module to a) create a mailpath (can be > > done as the mailuser's id, I use one uid, and my path is > all owned by > > that uid), and b) simply remove a quota file? > > Yes, the modules can do whatever they want. Just use mkdir() and > unlink(). > ------_=_NextPart_001_01C35040.F68164F0 Content-Type: text/html Content-Transfer-Encoding: quoted-printable RE: [Dovecot] Loadable module

Hi Timo,

When you have time to create the hooks to the various = locations within dovecot, I am willing to try to make a module to = support Maildir quota's. Would that be possible with the hooks, and can = that be done using a plugin as well?

Kind regards,

Maikel Verheijen.

> -----Original Message-----
> From: Timo Sirainen [mailto:tss@iki.fi]
> Sent: Saturday, July 19, 2003 12:14 AM
> To: Maikel Verheijen
> Cc: 'dovecot@procontrol.fi'
> Subject: Re: [Dovecot] Loadable module
>
>
> On Saturday, Jul 19, 2003, at 00:40 = Europe/Helsinki, Maikel Verheijen
> wrote:
>
> > I read a post about moving a .mailbixlist = to a
> .subscriptionfile when
> > a user did not have one, but did have a = .mailboxlist file. Timo
> > emailed a module for that purpose, so it = could be done for
> this user.
> >
> > My question is:
> >
> > - Where and how does dovecot call this = function?
>
> <module name>_init(); is called after = initializing Dovecot's
> core code,
> but before opening any message store or = creating client structure. I
> think I'd have to add some hooks for store = creation and
> client creation
> so you wouldn't need kludges if you want to = modify them in some way.
>
> You'll have to enable modules of course in = configuration file
> and place
> the module to right directory.
>
> > - Would it be easy to use a module to a) = create a mailpath (can be
> > done as the mailuser's id, I use one uid, = and my path is
> all owned by
> > that uid), and b) simply remove a quota = file?
>
> Yes, the modules can do whatever they want. = Just use mkdir() and
> unlink().
>

------_=_NextPart_001_01C35040.F68164F0-- From lfarkas@bnap.hu Tue Jul 22 14:30:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 167B42387F; Tue, 22 Jul 2003 14:30:45 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 759DB23865 for ; Tue, 22 Jul 2003 14:30:38 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 7460A6E4014 for ; Tue, 22 Jul 2003 13:30:07 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 4EAFC1734C0; Tue, 22 Jul 2003 13:30:29 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 340FE1734BE for ; Tue, 22 Jul 2003 13:30:29 +0200 (CEST) Message-ID: <3F1D2052.3060204@bnap.hu> Date: Tue, 22 Jul 2003 13:30:26 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030630 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] FYI: dovecot is included in redhat beta X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 11:30:45 -0000 X-UID: 1234 Status: O hi, just note that in the current redhat beta they include dovecot 0.99.10:-) -- Levente "Si vis pacem para bellum!" From tss@iki.fi Tue Jul 22 16:11:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DED732387F; Tue, 22 Jul 2003 16:11:15 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B8F4423866 for ; Tue, 22 Jul 2003 16:11:12 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 32EBD5C896A2 for ; Tue, 22 Jul 2003 16:11:12 +0300 (EEST) Subject: RE: [Dovecot] Loadable module From: Timo Sirainen To: "'dovecot@procontrol.fi'" In-Reply-To: <410777FC7A66D511911500B0D078345501F229B8@nlladot05.intern.ladot.com> References: <410777FC7A66D511911500B0D078345501F229B8@nlladot05.intern.ladot.com> Content-Type: text/plain Message-Id: <1058879471.1057.56.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 22 Jul 2003 16:11:12 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 13:11:16 -0000 X-UID: 1235 Status: O Content-Length: 2586 On Tue, 2003-07-22 at 14:04, Maikel Verheijen wrote: > When you have time to create the hooks to the various locations within > dovecot, I am willing to try to make a module to support Maildir > quota's. Would that be possible with the hooks, and can that be done > using a plugin as well? Hmm. You probably want to override mailbox class's (yea, C class :) expunge, copy and save_*() methods and make them check/update the quota files. You can do the above by overriding mail_storage's open_mailbox() method. Only hook that I'd need to add is the "mail_storage created" where you can override the open_mailbox(). You probably want to add some own variables to mailbox class (eg. pointers to original expunge/copy/save* methods). I'm not really sure how this should be done. A few possibilities: 1) C++ -like class extension. You create: struct maildir_quota_mailbox { struct index_mailbox parent; // mbox/maildir uses index_mailbox // your stuff here }; And then casting mailbox -> maildir_quota_mailbox. But this has the problem that you can't create more than one module which extents a class. 2) A common module_data mapping for all modules. You'd call struct maildir_quota_data *data = map_lookup(mailbox, "maildir quota"); 3) Something more object oriented, piping the requests through possibly multiple classes: // more easily described in C++: mailbox = new acl_mailbox(new quota_mailbox(new maildir_mailbox())); struct quota_mailbox { struct mailbox mailbox; struct mailbox *next_mailbox; // your own stuff }; quota_mailbox_init(struct mailbox *next) { struct quota_mailbox *box = i_new(struct quota_mailbox, 1); box->next_mailbox = next; // fill in the functions we want to grab box->mailbox = quota_mailbox_defaults; // whatever functions we left NULL, copy them from "next". mailbox_fill_defaults(&box->mailbox, next); } int quota_mailbox_expunge(struct mailbox *box) { struct quota_mailbox *qbox = (struct quota_mailbox *) mailbox; if (!qbox->next->expunge(qbox->next)) return FALSE; return quota_update(qbox); } OK. 3) is the best idea :) But it requires a few changes to make it work. Actually, I think this is exactly how I want quota and ACLs to be implemented. No extra interface changes for either one of them. For quota, you'd want to do something like: expunge(): nothing special, just update the quota file after expunges save_next(): Check data istream's size and if it's over quota, fail. copy(): this is somewhat problematic, if there wasn't the maildir hardlinks you wouldn't have to touch it at all.. From kiwi@oav.net Tue Jul 22 17:40:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CF5F623866; Tue, 22 Jul 2003 17:40:46 +0300 (EEST) Received: from kaneda.oav.net (kaneda.oav.net [195.20.105.154]) by danu.procontrol.fi (Postfix) with ESMTP id 0604B2384C for ; Tue, 22 Jul 2003 17:40:43 +0300 (EEST) Received: from oav.net (unknown [62.4.1.241]) (using TLSv1 with cipher DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by kaneda.oav.net (Postfix) with ESMTP id E1ECA15738 for ; Tue, 22 Jul 2003 16:40:33 +0200 (CEST) (envelope-from kiwi@oav.net) Date: Tue, 22 Jul 2003 16:40:26 +0200 X-Image-Url: http://www.oav.net/~kiwi/kiwi.jpg Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Xavier Beaudouin To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <6F360AC3-BC52-11D7-925D-000393B64262@oav.net> X-Mailer: Apple Mail (2.552) Subject: [Dovecot] Outlook Express 6.0.280.1123 SSL and dovecot . X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 14:40:47 -0000 X-UID: 1236 Status: O Hello there, First many thanks for dovecot, this is marvelous piece of software :) One of my users is using Outlook Express 6.0.280.1123 on XP with SSL. I have lots of this in the syslog : Jul 22 16:25:31 kiwi imap-login: Login: fptarget [62.4.1.170] Jul 22 16:25:32 kiwi imap-login: SSL_read() syscall failed: EOF [62.4.1.170] Jul 22 16:25:59 kiwi imap-login: SSL_read() syscall failed: EOF [62.4.1.170] Jul 22 16:26:43 kiwi imap-login: Login: fptarget [62.4.1.170] Jul 22 16:26:45 kiwi imap-login: SSL_read() syscall failed: EOF [62.4.1.170] Jul 22 16:26:47 kiwi imap-login: Login: fptarget [62.4.1.170] Jul 22 16:26:48 kiwi imap-login: SSL_read() syscall failed: EOF [62.4.1.170] Is there any way to avoid that ? (except telling this user to stop using outlook ?). Thanks, /Xavier From tss@iki.fi Tue Jul 22 17:43:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2FA9423866; Tue, 22 Jul 2003 17:43:06 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 95F7A2384C for ; Tue, 22 Jul 2003 17:43:04 +0300 (EEST) Date: Tue, 22 Jul 2003 17:43:09 +0300 Subject: Re: [Dovecot] Outlook Express 6.0.280.1123 SSL and dovecot . Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <6F360AC3-BC52-11D7-925D-000393B64262@oav.net> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 14:43:06 -0000 X-UID: 1237 Status: O On Tuesday, Jul 22, 2003, at 17:40 Europe/Helsinki, Xavier Beaudouin wrote: > One of my users is using Outlook Express 6.0.280.1123 on XP with SSL. > I have lots of this in the syslog : > > Jul 22 16:26:48 kiwi imap-login: SSL_read() syscall failed: EOF > [62.4.1.170] > > Is there any way to avoid that ? (except telling this user to stop > using outlook ?). Set verbose_ssl = no (which is default). From maikel@ladot.com Tue Jul 22 18:10:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5BC4923866; Tue, 22 Jul 2003 18:10:14 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 808832384C for ; Tue, 22 Jul 2003 18:10:11 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h6MFMxZW050031; Tue, 22 Jul 2003 17:22:59 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Tue, 22 Jul 2003 17:11:19 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F229CF@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'Timo Sirainen'" , "'dovecot@procontrol.fi'" Subject: RE: [Dovecot] Loadable module Date: Tue, 22 Jul 2003 17:11:18 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C35063.80801D50" X-Spam-Status: No, hits=1.0 required=5.0 tests=HTML_10_20,HTML_MESSAGE,QUOTED_EMAIL_TEXT version=2.55 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:10:14 -0000 X-UID: 1238 Status: O Content-Length: 4573 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C35063.80801D50 Content-Type: text/plain Hi Timo, [snipped possible scenario's] > OK. 3) is the best idea :) But it requires a few changes to > make it work. I wouldn't expect it to work out of the box :) But if I read your suggestions right, you propose a "fixed" change in the maildir functions that call the quota update functions if necessary. So perhaps we should make a quota_enabled = yes|no flag int the config file, and use that? I would still be trying to make the quota update functions for you, and try to put them in. > Actually, I think this is exactly how I want quota and ACLs > to be implemented. No extra interface changes for either one of them. > > For quota, you'd want to do something like: > > expunge(): nothing special, just update the quota file after expunges Expunge should recalculate the whole mailfolder? > save_next(): Check data istream's size and if it's over quota, fail. Ok. So this one can be "easy". Just check if mailsize + current usage < max_quota. :) > copy(): this is somewhat problematic, if there wasn't the > maildir hardlinks you wouldn't have to touch it at all.. A copy can duplicate a message in the same store, but do hardlinks work on nfs? If not, we should add the message to the quota list. And maybe we should just add size of the email anyway, it won't be that much of a loss to the user, and it would save us a lot of checking. :) And how about a user that has no quota file (yet), can we "recreate" them? Maybe do a quota lookup for the user (database or file)? This can be done using a module I guess, so it could be "user configurable". Regards, Maikel Verheijen. ------_=_NextPart_001_01C35063.80801D50 Content-Type: text/html Content-Transfer-Encoding: quoted-printable RE: [Dovecot] Loadable module

Hi Timo,

[snipped possible scenario's]

> OK. 3) is the best idea :) But it requires a few = changes to
> make it work.
I wouldn't expect it to work out of the box = :)

But if I read your suggestions right, you propose a = "fixed" change in the maildir functions that call the quota = update functions if necessary. So perhaps we should make a = quota_enabled =3D yes|no flag int the config file, and use that? I = would still be trying to make the quota update functions for you, and = try to put them in.

> Actually, I think this is exactly how I want = quota and ACLs
> to be implemented. No extra interface changes = for either one of them.
>
> For quota, you'd want to do something = like:
>
> expunge(): nothing special, just update the = quota file after expunges
Expunge should recalculate the whole = mailfolder?

> save_next(): Check data istream's size and if = it's over quota, fail.

Ok. So this one can be "easy". Just check = if mailsize + current usage < max_quota. :)

> copy(): this is somewhat problematic, if there = wasn't the
> maildir hardlinks you wouldn't have to touch it = at all..

A copy can duplicate a message in the same store, but = do hardlinks work on nfs? If not, we should add the message to the = quota list. And maybe we should just add size of the email anyway, it = won't be that much of a loss to the user, and it would save us a lot of = checking. :)

And how about a user that has no quota file (yet), = can we "recreate" them? Maybe do a quota lookup for the user = (database or file)? This can be done using a module I guess, so it = could be "user configurable".

Regards,


Maikel Verheijen.

------_=_NextPart_001_01C35063.80801D50-- From tss@iki.fi Tue Jul 22 19:53:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D049823866; Tue, 22 Jul 2003 19:53:57 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BAB8423865; Tue, 22 Jul 2003 19:53:55 +0300 (EEST) Date: Tue, 22 Jul 2003 19:53:59 +0300 Subject: Re: [Dovecot] Loadable module Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: Maikel Verheijen From: Timo Sirainen In-Reply-To: <410777FC7A66D511911500B0D078345501F229CF@nlladot05.intern.ladot.com> Message-Id: <16DB7730-BC65-11D7-AA9B-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) X-Spam-Status: No, hits=-6.0 required=5.0 tests=BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: "'dovecot@procontrol.fi'" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 16:53:58 -0000 X-UID: 1239 Status: O Content-Length: 4646 On Tuesday, Jul 22, 2003, at 18:11 Europe/Helsinki, Maikel Verheijen wrote: > But if I read your suggestions right, you propose a "fixed" change in > the maildir functions that call the quota update functions if > necessary. So perhaps we should make a quota_enabled = yes|no flag int > the config file, and use that? I would still be trying to make the > quota update functions for you, and try to put them in. No, the core code wouldn't know anything about quota. The module would simply grab the calls to mailbox interface itself. Actually I'd really like if the same quota code was mail storage independent. So if you accessed the messages only through Dovecot's APIs the same code would work with maildir, mbox and whatever future formats I come up with. But I'm not sure how good idea this is with current APIs .. you probably could do it but it could be done faster. > > expunge(): nothing special, just update the quota file after expunges > Expunge should recalculate the whole mailfolder? Well .. it would be faster if it didn't have to. Problem is that you might not know the message's size always. Also there's some locking problems / race conditions if you try to calculate the new quota before actually expunging. > > copy(): this is somewhat problematic, if there wasn't the > > maildir hardlinks you wouldn't have to touch it at all.. > > A copy can duplicate a message in the same store, but do hardlinks > work on nfs? If not, we should add the message to the quota list. And > maybe we should just add size of the email anyway, it won't be that > much of a loss to the user, and it would save us a lot of checking. :) Hard links work with NFS. But the problem is adding the message to quota list. Normally copy() reads the messages and saves them using the normal save*() functions, so the quota checking would be done automatically. With hard links it doesn't go through save*(), so you'd have to do some special kludging if you wanted to account that copied message from quota too. One possibility is to just go through the messageset, get the message sizes, call copy(), see if quota was accounted by save*() functions, if not do it yourself. Another possibility is to fix the API by splitting all functions which handle multiple messages at once and replace them with iterator functions. ie. fetch*(), search*() and save*() are ok now, but expunge() and copy() are not. Something like: // initialize. very much like fetching messages. struct mail_copy_context *(*copy_init)(struct mailbox *box, enum mail_fetch_field wanted_fields, const char *messageset, int uidset); // copy next message. returns pointer to original message where you can find it's info // including message's size struct mail *(*copy_next)(struct mail_copy_context *ctx); You'd call copy_init() with wanted_fields being MESSAGE_FETCH_SIZE (or actually I should probably add _REAL_SIZE which would tell how much actual disk space it takes rather than the size with virtual CRs). Then you'd call copy_next(), use some kludge to see if it called your save_next(), if not you get the message size with mail->get_size(mail) and add it to quota. Expunging would work pretty much the same way: struct mail_expunge_context *(*expunge_init)(struct mailbox *box, enum mail_fetch_field wanted_fields); struct mail (*expunge_next)(struct mail_expunge_context *ctx); Only difference would be that mail->get_size() might return you -1, ie. unknown. In that case you'd have to recalculate the quota for the mailbox. Hmm. There's still a few small problems. And the _next() calls should probably be split to two, so you can first fetch the record, then decide if you really want to copy/expunge that message by calling _doit() or something. Umm. Actually then I might just as well use the normal fetch*() interface and just add a few new methods to struct mail: int (*expunge)(struct mail *mail); int (*copy)(struct mail *mail, struct mailbox *dest); I think that'd work. :) I'll try to make these changes to CVS soon. > And how about a user that has no quota file (yet), can we "recreate" > them? Maybe do a quota lookup for the user (database or file)? This > can be done using a module I guess, so it could be "user > configurable". Depends on how you want the quota stuff to work. I'm not sure about that yet. Maildir++ quota seemed a bit slow. It would require rescanning _all_ the mailboxes once in a while. That's kind of pointless if only a few mailboxes have changed. Of course we could internally calculate the quotas per mailbox and combine them all to one Maildir++ compatible quota file. From molter@tin.it Tue Jul 22 22:01:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E518223866; Tue, 22 Jul 2003 22:01:14 +0300 (EEST) Received: from mwinf0103.wanadoo.fr (smtp8.wanadoo.fr [193.252.22.30]) by danu.procontrol.fi (Postfix) with ESMTP id 26A9E23865 for ; Tue, 22 Jul 2003 22:01:10 +0300 (EEST) Received: from www.example.org (ANice-205-1-13-43.w81-249.abo.wanadoo.fr [81.249.10.43]) by mwinf0103.wanadoo.fr (SMTP Server) with SMTP id 75B1D1BFFF5B for ; Tue, 22 Jul 2003 21:01:04 +0200 (CEST) Received: (qmail 41876 invoked by uid 1000); 22 Jul 2003 19:00:49 -0000 Date: Tue, 22 Jul 2003 21:00:49 +0200 From: molter@tin.it To: dovecot@procontrol.fi Message-Id: <20030722210049.74db1611.molter@tin.it> X-Mailer: Sylpheed version 0.9.0claws (GTK+ 1.2.10; i386-portbld-freebsd4.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Dovecot] hierarchy_sep X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 19:01:15 -0000 X-UID: 1240 Status: O Hi Timo, I would like to add another naming scheme to dovecot to recognize maildir folders: As of today: ~/Maildir/.foo ~/Maildir/.foo.bar I would like to add: ~/Maildir/foo ~/Maildir/foo/bar I had a quick look at the code (very clean, I am impressed!) and I saw struct mail_storage, with field hierarchy_sep. I think I cannot just set hierarchy_sep to '/', because /foo would start from the root of the filesystem instead of being relative to ~/Maildir. Do you have any suggestions on the cleaner way of doing it? Or maybe do you think it is wrong to depart from '.' for some reason? thanks Marco From tss@iki.fi Tue Jul 22 22:32:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EF31E23866; Tue, 22 Jul 2003 22:32:28 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 301472384C for ; Tue, 22 Jul 2003 22:32:26 +0300 (EEST) Date: Tue, 22 Jul 2003 22:32:30 +0300 Subject: Re: [Dovecot] hierarchy_sep Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030722210049.74db1611.molter@tin.it> Message-Id: <3C3F42D8-BC7B-11D7-AA9B-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 19:32:29 -0000 X-UID: 1241 Status: O On Tuesday, Jul 22, 2003, at 22:00 Europe/Helsinki, molter@tin.it wrote: > I think I cannot just set hierarchy_sep to '/', because /foo would > start from the root of the filesystem instead of being relative to > ~/Maildir. > > Do you have any suggestions on the cleaner way of doing it? Or maybe > do you think it is wrong to depart from '.' for some reason? Well .. The '.' is currently pretty much hardcoded there in multiple places. I was going to make the separator that clients see configurable, and also support changing the real filesystem separator by modifying some single #define in sources.. If you wanted to change it to '/', I guess it would mostly work but you might have to create subdirectories sometimes. For example client could create "a/b/c/d" mailbox even if "a" didn't exist. Also you'd have to get the LIST code from mbox since it's very different in maildir++. From shalehperry@comcast.net Wed Jul 23 03:31:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C2B7F23866; Wed, 23 Jul 2003 03:31:46 +0300 (EEST) Received: from rwcrmhc13.comcast.net (rwcrmhc13.comcast.net [204.127.198.39]) by danu.procontrol.fi (Postfix) with ESMTP id C673E23865 for ; Wed, 23 Jul 2003 03:31:40 +0300 (EEST) Received: from one (12-235-54-7.client.attbi.com[12.235.54.7](untrusted sender)) by comcast.net (rwcrmhc13) with SMTP id <2003072300313401500qmrdpe>; Wed, 23 Jul 2003 00:31:34 +0000 From: Sean 'Shaleh' Perry To: dovecot@procontrol.fi Subject: Re: [Dovecot] FYI: dovecot is included in redhat beta Date: Tue, 22 Jul 2003 17:31:32 -0700 User-Agent: KMail/1.5.2 References: <3F1D2052.3060204@bnap.hu> In-Reply-To: <3F1D2052.3060204@bnap.hu> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200307221731.32814.shalehperry@comcast.net> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 00:31:46 -0000 X-UID: 1242 Status: O On Tuesday 22 July 2003 04:30, Farkas Levente wrote: > hi, > just note that in the current redhat beta they include dovecot 0.99.10:-) it's been in Debian for a while now (-: From maikel@ladot.com Wed Jul 23 13:48:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B6B2323866; Wed, 23 Jul 2003 13:48:13 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id CB77823865 for ; Wed, 23 Jul 2003 13:48:05 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h6NB1BZW072066 for ; Wed, 23 Jul 2003 13:01:11 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Wed, 23 Jul 2003 12:49:28 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F229E5@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'dovecot@procontrol.fi'" Date: Wed, 23 Jul 2003 12:49:28 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C35108.16D8C8C0" X-Spam-Status: No, hits=1.3 required=5.0 tests=HTML_20_30,HTML_MESSAGE version=2.55 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) Subject: [Dovecot] Imap 2 imap copy tool? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 10:48:13 -0000 X-UID: 1243 Status: O Content-Length: 3474 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C35108.16D8C8C0 Content-Type: text/plain Hi List! At the moment, our company is preparing to migrate from MS-Exchange to a dovecot mail platform. Since there is no way to access the emails on the file-store other than using webmail, pop or imap, I wanted to do this by using an imap-to-imap copy tool. I have found one that does the job (but POORLY), named migrate (http://prdownloads.sourceforge.net/cyrus-utils/). Does anyone know some other tool(s) for me I could have a look at? My requirements for such software are: - it should use a username;password list to do the migration (20k+ users) - it should be able to do imap to imap copy, or imap to maildir with a flexible path - it should copy all the folders too, except the "Public Folders" from exchange. - it has to be able to "ignore" unknown flags from the exchange imap server (\Recent). What I would love the software to have (and what imapmigrate lacks): - Folder and message syncing (to be able to keep the mailbox in sync) - detailed errors if something goes wrong, not too much fuss over accounts that DO get copied cleanly - fast tool? :) Thank you for your time! Kind regards, Maikel Verheijen. ------_=_NextPart_001_01C35108.16D8C8C0 Content-Type: text/html Content-Transfer-Encoding: quoted-printable Imap 2 imap copy tool?

Hi List!


At the moment, our company is preparing to migrate = from MS-Exchange to a dovecot mail platform. Since there is no way to = access the emails on the file-store other than using webmail, pop or = imap, I wanted to do this by using an imap-to-imap copy = tool.

I have found one that does the job (but POORLY), = named migrate (http://prdownloads.sourceforge.net/cyrus-utils/). = Does anyone know some other tool(s) for me I could have a look at? =

My requirements for such software are:
- it should use a username;password list to do the = migration (20k+ users)
- it should be able to do imap to imap copy, or imap = to maildir with a flexible path
- it should copy all the folders too, except the = "Public Folders" from exchange.
- it has to be able to "ignore" unknown = flags from the exchange imap server (\Recent).

What I would love the software to have (and what = imapmigrate lacks):
- Folder and message syncing (to be able to keep the = mailbox in sync)
- detailed errors if something goes wrong, not too = much fuss over accounts that DO get copied cleanly
- fast tool? :)

Thank you for your time!

Kind regards,


Maikel Verheijen.

------_=_NextPart_001_01C35108.16D8C8C0-- From grahame@ucs.uwa.edu.au Wed Jul 23 17:33:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A210C23866; Wed, 23 Jul 2003 17:33:11 +0300 (EEST) Received: from house.arach.net.au (mx2.arach.net.au [203.30.44.68]) by danu.procontrol.fi (Postfix) with SMTP id 4028B23865 for ; Wed, 23 Jul 2003 17:32:36 +0300 (EEST) Received: (qmail 23392 invoked from network); 23 Jul 2003 14:49:35 -0000 Received: from unknown (HELO solitaire) (202.89.170.203) by house.arach.net.au with SMTP for ; 23 Jul 2003 14:49:35 -0000 From: Grahame Bowland To: dovecot@procontrol.fi Content-Type: text/plain Organization: The University of Western Australia Message-Id: <1058970744.5521.4.camel@solitaire> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.3 Date: 23 Jul 2003 22:32:24 +0800 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Hooks on folder operations X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 14:33:11 -0000 X-UID: 1244 Status: O Content-Length: 1207 Hi all, I'm interested in implementing an anti-spam system using bayesian filtering. I had the idea of modifying and IMAP server to assist in training the spam filter. I was thinking of running a program whenever a message in moved to the folder "Spam" or to a "Safe" folder. This could be easily added to the server as a generic feature, with hook programs for: * new message in a folder (either new, or moved into the folder) * message in folder is modified * message in folder is removed and so on. If the support was generic enough there could be many uses for it. Security of the external program needs to be considered but doesn't really affect the IMAP server itself. Anyway, if I were to write a patch to add support for running an external program in these cases, would it be included? Any feedback would be appreciated, if I'm going to do this I might as well do it in a way that can be integrated back into the main tree! Cheers Grahame -- Grahame Bowland Email: grahame@ucs.uwa.edu.au University Communications Services Phone: +61 8 9380 1175 The University of Western Australia Fax: +61 8 9380 1109 CRICOS: 00126G From maikel@ladot.com Wed Jul 23 17:48:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4BEB723866; Wed, 23 Jul 2003 17:48:53 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 7B22E23865 for ; Wed, 23 Jul 2003 17:48:51 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h6NF1uZW074406; Wed, 23 Jul 2003 17:01:56 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Wed, 23 Jul 2003 16:50:13 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F229F9@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'dovecot@procontrol.fi'" Subject: RE: [Dovecot] Hooks on folder operations Date: Wed, 23 Jul 2003 16:50:07 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C35129.B55436D0" X-Spam-Status: No, hits=0.8 required=5.0 tests=HTML_20_30,HTML_MESSAGE,QUOTED_EMAIL_TEXT version=2.55 X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) cc: "'grahame@ucs.uwa.edu.au'" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 14:48:53 -0000 X-UID: 1245 Status: O Content-Length: 5454 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C35129.B55436D0 Content-Type: text/plain Hi Grahame, > Hi all, > > I'm interested in implementing an anti-spam system using > bayesian filtering. I had the idea of modifying and IMAP > server to assist in training the spam filter. Why do you want to hook it up into your imap server? I think it would be better to prevent emails to enter the mailbox with the MTA rather than removing it when the user is reading his email using imap. Why? Because the spam that is in the mailbox might push the user over his quota limit, and thus preventing legitimate emails to be delivered. > I was thinking of running a program whenever a message in > moved to the folder "Spam" or to a "Safe" folder. This could > be easily added to the server as a generic feature, with hook > programs for: > * new message in a folder (either new, or moved into the folder) > * message in folder is modified > * message in folder is removed > and so on. If the support was generic enough there could be > many uses for it. Security of the external program needs to > be considered but doesn't really affect the IMAP server itself. With the new API code that Timo is making now, I guess this would be possible. (After all: if quota's are updated, something was written to the mailbox, or deleted of course!) > Anyway, if I were to write a patch to add support for running > an external program in these cases, would it be included? Any > feedback would be appreciated, if I'm going to do this I > might as well do it in a way that can be integrated back into > the main tree! You can always build a plugin, and plugins can be loaded whenever an administrator wants them to load. I don't know if Timo wants to include all plugins that are / will be written for dovecot, but I guess there might be a plugins part, where people can "post" their plugins so other people can benefit from them :) > Cheers > Grahame Kind regards, Maikel Verheijen ------_=_NextPart_001_01C35129.B55436D0 Content-Type: text/html Content-Transfer-Encoding: quoted-printable RE: [Dovecot] Hooks on folder operations

Hi Grahame,

> Hi all,
>
> I'm interested in implementing an anti-spam = system using
> bayesian filtering. I had the idea of modifying = and IMAP
> server to assist in training the spam = filter.
Why do you want to hook it up into your imap server? = I think it would be better to prevent emails to enter the mailbox with = the MTA rather than removing it when the user is reading his email = using imap.

Why? Because the spam that is in the mailbox might = push the user over his quota limit, and thus preventing legitimate = emails to be delivered.

> I was thinking of running a program whenever a = message in
> moved to the folder "Spam" or to a = "Safe" folder. This could
> be easily added to the server as a generic = feature, with hook
> programs for:
>   * new message in a folder (either = new, or moved into the folder)
>   * message in folder is = modified
>   * message in folder is = removed
> and so on. If the support was generic enough = there could be
> many uses for it. Security of the external = program needs to
> be considered but doesn't really affect the = IMAP server itself.
With the new API code that Timo is making now, I = guess this would be possible.

(After all: if quota's are updated, something was = written to the mailbox, or deleted of course!)

> Anyway, if I were to write a patch to add = support for running
> an external program in these cases, would it be = included? Any
> feedback would be appreciated, if I'm going to = do this I
> might as well do it in a way that can be = integrated back into
> the main tree!
You can always build a plugin, and plugins can be = loaded whenever an administrator wants them to load. I don't know if = Timo wants to include all plugins that are / will be written for = dovecot, but I guess there might be a plugins part, where people can = "post" their plugins so other people can benefit from them = :)

> Cheers
> Grahame

Kind regards,

Maikel Verheijen

------_=_NextPart_001_01C35129.B55436D0-- From redjar@redjar.org Wed Jul 23 17:53:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1BF6123866; Wed, 23 Jul 2003 17:53:16 +0300 (EEST) Received: from mute.marlboro.edu (mute.marlboro.edu [12.6.230.75]) by danu.procontrol.fi (Postfix) with ESMTP id 3D65D23865 for ; Wed, 23 Jul 2003 17:52:43 +0300 (EEST) Received: from mdhcp48.marlboro.edu ([10.1.4.48] helo=redjar.org) by mute.marlboro.edu with esmtp (Exim 3.35 #1 (Debian)) id 19fKyp-00068A-00 for ; Wed, 23 Jul 2003 10:52:35 -0400 Date: Wed, 23 Jul 2003 10:52:35 -0400 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Jared To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <4BD2F72A-BD1D-11D7-840A-00039398ED48@redjar.org> X-Mailer: Apple Mail (2.552) X-MailScanner: clean X-MailScanner-SpamCheck: not spam, SpamAssassin (score=-1.5, required 7, AWL, SPAM_PHRASE_00_01, USER_AGENT_APPLEMAIL) Subject: [Dovecot] user database clarification X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 14:53:16 -0000 X-UID: 1246 Status: O Hi, this question gets back to a thread I started back on July 8th. (gosh how time flies) I still am not clear on why PAM is not supported for the user database. I'm in an environment that has users both in local flat files (/etc/passwd and /etc/shadow) AND in an LDAP database. Is it possible for this set up to work with dovecot? (both local and ldap users have imap/pop?) I'd prefer to just have Dovecot use PAM for user db and the password database so that I can configure PAM to try both local users and LDAP users. Thanks a lot. -jared From tss@iki.fi Wed Jul 23 18:03:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 913BF23866; Wed, 23 Jul 2003 18:03:41 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 69AAD23865 for ; Wed, 23 Jul 2003 18:03:09 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 1EB375C896A2 for ; Wed, 23 Jul 2003 18:03:09 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1058972588.1065.69.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 23 Jul 2003 18:03:08 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Courier's IMAP custom flags implementation X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 15:03:41 -0000 X-UID: 1247 Status: O Just thought to mention: http://dovecot.procontrol.fi/tmp/README.imapkeywords.html I'm not sure what to think of it. Good thing in it is that it doesn't limit the number of flags. Bad thing is that I think it's way too slow. Compared to Dovecot's implementation where I "steal" maildir flags a..z and treat them in the normal maildir way. Bad thing is obviously that it's limited to 26 different flags. And I really should fix that customflags file soon to be NFS-safe / read-lockless. It's just a bit problematic how to handle removing unused flags when you've hit the 26 limit and try to add new ones. From tss@iki.fi Wed Jul 23 18:07:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1D4BF23866; Wed, 23 Jul 2003 18:07:33 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8936023865 for ; Wed, 23 Jul 2003 18:07:31 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5591C5C896A2 for ; Wed, 23 Jul 2003 18:07:31 +0300 (EEST) Subject: Re: [Dovecot] user database clarification From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <4BD2F72A-BD1D-11D7-840A-00039398ED48@redjar.org> References: <4BD2F72A-BD1D-11D7-840A-00039398ED48@redjar.org> Content-Type: text/plain Message-Id: <1058972851.1063.74.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 23 Jul 2003 18:07:31 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 15:07:33 -0000 X-UID: 1248 Status: O On Wed, 2003-07-23 at 17:52, Jared wrote: > Hi, this question gets back to a thread I started back on July 8th. > (gosh how time flies) > > I still am not clear on why PAM is not supported for the user database. Because PAM only provides a way to ask "does user X have password Y?". It doesn't provide a way to ask user's UID, GID or home directory. > I'm in an environment that has users both in local flat files > (/etc/passwd and /etc/shadow) AND in an LDAP database. > > Is it possible for this set up to work with dovecot? (both local and > ldap users have imap/pop?) No fallbacking currently. I'll probably add it though. Fallbacking btw. is possible only with plaintext authentication, but I guess that's what everyone uses anyway.. From tss@iki.fi Wed Jul 23 18:17:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CF8AC23866; Wed, 23 Jul 2003 18:17:57 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1253423865 for ; Wed, 23 Jul 2003 18:17:56 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id CCFC55C896A2 for ; Wed, 23 Jul 2003 18:17:55 +0300 (EEST) Subject: RE: [Dovecot] Hooks on folder operations From: Timo Sirainen To: "'dovecot@procontrol.fi'" In-Reply-To: <410777FC7A66D511911500B0D078345501F229F9@nlladot05.intern.ladot.com> References: <410777FC7A66D511911500B0D078345501F229F9@nlladot05.intern.ladot.com> Content-Type: text/plain Message-Id: <1058973475.1065.86.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 23 Jul 2003 18:17:55 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 15:17:58 -0000 X-UID: 1249 Status: O Content-Length: 1656 On Wed, 2003-07-23 at 17:50, Maikel Verheijen wrote: > > I'm interested in implementing an anti-spam system using > > bayesian filtering. I had the idea of modifying and IMAP > > server to assist in training the spam filter. > Why do you want to hook it up into your imap server? I think it would > be better to prevent emails to enter the mailbox with the MTA rather > than removing it when the user is reading his email using imap. > > Why? Because the spam that is in the mailbox might push the user over > his quota limit, and thus preventing legitimate emails to be > delivered. Well, I'd actually want that too. I don't have quota problems and I make spamassassin put all spam into spam mailbox. The few spams that go through to inbox I usually just delete because I'm too lazy to make spamassassin's bayesian filter to learn it. If I only had to move them to spam mailbox, I'd probably do it :) > With the new API code that Timo is making now, I guess this would be > possible. Yep. > You can always build a plugin, and plugins can be loaded whenever an > administrator wants them to load. I don't know if Timo wants to > include all plugins that are / will be written for dovecot, but I > guess there might be a plugins part, where people can "post" their > plugins so other people can benefit from them :) I'll probably just add a plugins web page. Some of the most useful ones I'll include in the tarball. Also I'll make it possible to compile the plugins into the main binary so there's no overhead in dynamically loading them. At least quota and ACLs are going to be plugins. I'll make sure my APIs are flexible enough to allow that. From jared@marlboro.edu Wed Jul 23 18:53:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 75D2E23866; Wed, 23 Jul 2003 18:53:09 +0300 (EEST) Received: from mute.marlboro.edu (mute.marlboro.edu [12.6.230.75]) by danu.procontrol.fi (Postfix) with ESMTP id 92DEB2384C for ; Wed, 23 Jul 2003 18:53:07 +0300 (EEST) Received: from mdhcp48.marlboro.edu ([10.1.4.48] helo=marlboro.edu) by mute.marlboro.edu with esmtp (Exim 3.35 #1 (Debian)) id 19fLvH-0007Ki-00 for ; Wed, 23 Jul 2003 11:52:59 -0400 Date: Wed, 23 Jul 2003 11:52:58 -0400 Subject: Re: [Dovecot] user database clarification Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Jared To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <1058972851.1063.74.camel@hurina> Message-Id: X-Mailer: Apple Mail (2.552) X-MailScanner: clean X-MailScanner-SpamCheck: not spam, SpamAssassin (score=-3.1, required 7, AWL, EMAIL_ATTRIBUTION, IN_REP_TO, QUOTED_EMAIL_TEXT, SPAM_PHRASE_00_01, USER_AGENT_APPLEMAIL) X-Mailman-Approved-At: Wed, 23 Jul 2003 18:56:12 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 15:53:09 -0000 X-UID: 1250 Status: O On Wednesday, Jul 23, 2003, at 11:07 US/Eastern, Timo Sirainen wrote: > On Wed, 2003-07-23 at 17:52, Jared wrote: >> I still am not clear on why PAM is not supported for the user >> database. > > Because PAM only provides a way to ask "does user X have password Y?". > It doesn't provide a way to ask user's UID, GID or home directory. I'm way out of my league here, but I thought getting UID, GID, etc, was the job of nsswitch. > >> I'm in an environment that has users both in local flat files >> (/etc/passwd and /etc/shadow) AND in an LDAP database. >> >> Is it possible for this set up to work with dovecot? (both local and >> ldap users have imap/pop?) > > No fallbacking currently. I'll probably add it though. Fallbacking btw. > is possible only with plaintext authentication, but I guess that's what > everyone uses anyway.. I'd definitely like to see this. I've got a bunch of crufty old and oddball accounts that I'd prefer not to put in LDAP. Thanks, -jared From tss@iki.fi Wed Jul 23 19:06:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 33ABD23866; Wed, 23 Jul 2003 19:06:40 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 760312384C for ; Wed, 23 Jul 2003 19:06:35 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 372D25C896A2 for ; Wed, 23 Jul 2003 19:06:35 +0300 (EEST) Subject: Re: [Dovecot] user database clarification From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1058976395.1065.90.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 23 Jul 2003 19:06:35 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 16:06:40 -0000 X-UID: 1251 Status: O On Wed, 2003-07-23 at 18:52, Jared wrote: > >> I still am not clear on why PAM is not supported for the user > >> database. > > > > Because PAM only provides a way to ask "does user X have password Y?". > > It doesn't provide a way to ask user's UID, GID or home directory. > > I'm way out of my league here, but I thought getting UID, GID, etc, was > the job of nsswitch. That too. If you want to use nsswitch, use "passwd" as user database. From mem@mv.mv.com Wed Jul 23 19:22:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EF43F238C5; Wed, 23 Jul 2003 19:22:46 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 9B88F23865 for ; Wed, 23 Jul 2003 19:22:42 +0300 (EEST) Received: (qmail 10715 invoked by uid 101); 23 Jul 2003 12:22:41 -0400 From: "Mark E. Mallett" Date: Wed, 23 Jul 2003 12:22:41 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Courier's IMAP custom flags implementation Message-ID: <20030723162241.GL22237@iridium.mv.net> References: <1058972588.1065.69.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1058972588.1065.69.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 16:22:47 -0000 X-UID: 1252 Status: O On Wed, Jul 23, 2003 at 06:03:08PM +0300, Timo Sirainen wrote: > Just thought to mention: > > http://dovecot.procontrol.fi/tmp/README.imapkeywords.html That's almost as perverse as Maildir++ quotas :-) (Not that I have any better ideas on either..) mm From grahame@ucs.uwa.edu.au Wed Jul 23 19:32:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3400623865; Wed, 23 Jul 2003 19:32:31 +0300 (EEST) Received: from house.arach.net.au (mx2.arach.net.au [203.30.44.68]) by danu.procontrol.fi (Postfix) with SMTP id CA3542384C for ; Wed, 23 Jul 2003 19:32:26 +0300 (EEST) Received: (qmail 10130 invoked from network); 23 Jul 2003 16:49:36 -0000 Received: from unknown (HELO solitaire) (202.89.170.203) by house.arach.net.au with SMTP for ; 23 Jul 2003 16:49:36 -0000 Subject: RE: [Dovecot] Hooks on folder operations From: Grahame Bowland To: "'dovecot@procontrol.fi'" In-Reply-To: <1058973475.1065.86.camel@hurina> References: <410777FC7A66D511911500B0D078345501F229F9@nlladot05.intern.ladot.com> <1058973475.1065.86.camel@hurina> Content-Type: text/plain Organization: The University of Western Australia Message-Id: <1058977942.6527.5.camel@solitaire> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.3 Date: 24 Jul 2003 00:32:22 +0800 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 16:32:31 -0000 X-UID: 1253 Status: O Content-Length: 2848 On Wed, 2003-07-23 at 23:17, Timo Sirainen wrote: > On Wed, 2003-07-23 at 17:50, Maikel Verheijen wrote: > > > I'm interested in implementing an anti-spam system using > > > bayesian filtering. I had the idea of modifying and IMAP > > > server to assist in training the spam filter. > > Why do you want to hook it up into your imap server? I think it would > > be better to prevent emails to enter the mailbox with the MTA rather > > than removing it when the user is reading his email using imap. > > > > Why? Because the spam that is in the mailbox might push the user over > > his quota limit, and thus preventing legitimate emails to be > > delivered. > > Well, I'd actually want that too. I don't have quota problems and I make > spamassassin put all spam into spam mailbox. The few spams that go > through to inbox I usually just delete because I'm too lazy to make > spamassassin's bayesian filter to learn it. If I only had to move them > to spam mailbox, I'd probably do it :) > > > With the new API code that Timo is making now, I guess this would be > > possible. > > Yep. Ah, cool. The idea (I don't think I was clear enough) is to allow the user to move their spam into the "spam" folder manually. This is for spam that gets through the filter. When the mail is moved, a program runs (at the instigation of the IMAP server) that parses the spam email and updates the statistical information used to detect spam. Actual detection of spam is done in the local delivery agent, rather than in the IMAP server :-) We do tend to store mail we think is spam so the users can check, as most spam detection systems get a lot of false positives. > > You can always build a plugin, and plugins can be loaded whenever an > > administrator wants them to load. I don't know if Timo wants to > > include all plugins that are / will be written for dovecot, but I > > guess there might be a plugins part, where people can "post" their > > plugins so other people can benefit from them :) > > I'll probably just add a plugins web page. Some of the most useful ones > I'll include in the tarball. Also I'll make it possible to compile the > plugins into the main binary so there's no overhead in dynamically > loading them. > > At least quota and ACLs are going to be plugins. I'll make sure my APIs > are flexible enough to allow that. Great - I'll look at this at work in the morning. Thanks for the idea, I'll look at implementing this as a plug-in. By the way, thanks for your work on Dovecot. I'm looking at moving quite a few systems over to it from UW-IMAPd. It's really very good :-) -- Grahame Bowland Email: grahame@ucs.uwa.edu.au University Communications Services Phone: +61 8 9380 1175 The University of Western Australia Fax: +61 8 9380 1109 CRICOS: 00126G From mem@mv.mv.com Wed Jul 23 21:12:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 75F9123866; Wed, 23 Jul 2003 21:12:14 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 5B4B423865 for ; Wed, 23 Jul 2003 21:12:09 +0300 (EEST) Received: (qmail 6303 invoked by uid 101); 23 Jul 2003 14:12:05 -0400 From: "Mark E. Mallett" Date: Wed, 23 Jul 2003 14:12:05 -0400 To: Grahame Bowland Subject: Re: [Dovecot] Hooks on folder operations Message-ID: <20030723181205.GE24973@iridium.mv.net> References: <410777FC7A66D511911500B0D078345501F229F9@nlladot05.intern.ladot.com> <1058973475.1065.86.camel@hurina> <1058977942.6527.5.camel@solitaire> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1058977942.6527.5.camel@solitaire> User-Agent: Mutt/1.4.1i cc: "'dovecot@procontrol.fi'" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 18:12:14 -0000 X-UID: 1254 Status: O Content-Length: 1384 On Thu, Jul 24, 2003 at 12:32:22AM +0800, Grahame Bowland wrote: > > The idea (I don't think I was clear enough) is to allow the user to move > their spam into the "spam" folder manually. This is for spam that gets > through the filter. When the mail is moved, a program runs (at the > instigation of the IMAP server) that parses the spam email and updates > the statistical information used to detect spam. > > Actual detection of spam is done in the local delivery agent, rather > than in the IMAP server :-) We do tend to store mail we think is spam so > the users can check, as most spam detection systems get a lot of false > positives. I can see where that kind of thing would be useful- to have a hook on moving a message so that the message could essentially be reprocessed. One could do this to re-apply filters or to test a new filter set. (Or, as somebody said, to be assimilated into a spam database.) Of course to truly re-deliver a message it would be cool to have a folder type that was a essentially a pipe. You could use IMAP commands to move a message to the folder, and the result would be that it got piped into whatever agent you had specified. One could have various folders to accomplish things like "refile" or "report as spam" or "open a ticket" or "redistribute to a group" or anything. > By the way, thanks for your work on Dovecot. Indeed! mm From tss@iki.fi Wed Jul 23 22:20:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8372323866; Wed, 23 Jul 2003 22:20:46 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DA52F2384C for ; Wed, 23 Jul 2003 22:20:43 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id AB5295C896A2 for ; Wed, 23 Jul 2003 22:20:43 +0300 (EEST) Subject: Re: [Dovecot] Hooks on folder operations From: Timo Sirainen To: "'dovecot@procontrol.fi'" In-Reply-To: <20030723181205.GE24973@iridium.mv.net> References: <410777FC7A66D511911500B0D078345501F229F9@nlladot05.intern.ladot.com> <1058973475.1065.86.camel@hurina> <1058977942.6527.5.camel@solitaire> <20030723181205.GE24973@iridium.mv.net> Content-Type: text/plain Message-Id: <1058988043.1065.104.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 23 Jul 2003 22:20:43 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 19:20:46 -0000 X-UID: 1255 Status: O On Wed, 2003-07-23 at 21:12, Mark E. Mallett wrote: > Of course to truly re-deliver a message it would be cool to have a folder > type that was a essentially a pipe. You could use IMAP commands to > move a message to the folder, and the result would be that it got piped > into whatever agent you had specified. One could have various folders > to accomplish things like "refile" or "report as spam" or "open a ticket" > or "redistribute to a group" or anything. Hmm. I suppose a named pipe/socket could work as a mbox.. From tss@iki.fi Wed Jul 23 22:47:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 358B523865; Wed, 23 Jul 2003 22:47:14 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 99EAB2384C for ; Wed, 23 Jul 2003 22:47:10 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5912F5C896A2; Wed, 23 Jul 2003 22:47:10 +0300 (EEST) From: Timo Sirainen To: SIMflex Internet Support In-Reply-To: <000201c3513d$50a4d320$8c2943c6@doug> References: <000201c3513d$50a4d320$8c2943c6@doug> Content-Type: text/plain Message-Id: <1058989630.1057.126.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 23 Jul 2003 22:47:10 +0300 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi Subject: [Dovecot] Re: Stripping of domain name X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 19:47:14 -0000 X-UID: 1256 Status: O Content-Length: 2255 On Wed, 2003-07-23 at 20:10, SIMflex Internet Support wrote: > Dear sir, > > Can you please tell me how to make dovecot stipoff or ingore a > @domain.com in a username? Currently, we are only using one domain > (more may be needed in the future), and some of our clients have > incorrectly configured mail clients with the @domain.com in the user > name. We migrated from qpopper and teapop to use Maildirs (we are > building a LVS cluster) and could not use mboxes anymore. In short, > what I need is Well .. What password/user databases do you use? One way is to set default_realm and set the @domain for all users in passdb/userdb. Another way is to patch the code. Below is a patch for plaintext authentication. Or maybe I should make option that if given realm is default_realm, it would look up the user without the realm. I'm not sure if it's worth doing though. BTW. Your mail to dovecot-list got stuck at spamassassin. I raised the spam points a bit and lowered HTML mail's points a bit. Better would be if I could update SA's whitelist automatically when people subscribe. But I'm not really sure how to do that with mailman. RCS file: /home/cvs/dovecot/src/auth/mech-plain.c,v retrieving revision 1.13 diff -u -r1.13 mech-plain.c --- mech-plain.c 8 May 2003 03:18:43 -0000 1.13 +++ mech-plain.c 23 Jul 2003 19:31:13 -0000 @@ -48,14 +48,8 @@ mech_auth_finish(auth_request, NULL, 0, FALSE); } else { /* split and save user/realm */ - if (strchr(authenid, '@') == NULL && default_realm != NULL) { - auth_request->user = p_strconcat(auth_request->pool, - authenid, "@", - default_realm, NULL); - } else { - auth_request->user = p_strdup(auth_request->pool, - authenid); - } + auth_request->user = p_strdup(auth_request->pool, + t_strcut(authenid, '@')); if (!mech_is_valid_username(auth_request->user)) { /* invalid username */ From jaldhar@debian.org Thu Jul 24 01:31:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9282A23866; Thu, 24 Jul 2003 01:31:25 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 4CD9E23865 for ; Thu, 24 Jul 2003 01:31:16 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 7C3EC80A6 for ; Wed, 23 Jul 2003 18:31:15 -0400 (EDT) Date: Wed, 23 Jul 2003 18:31:11 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: dovecot@procontrol.fi Subject: Re: [Dovecot] FYI: dovecot is included in redhat beta In-Reply-To: <200307221731.32814.shalehperry@comcast.net> Message-ID: References: <3F1D2052.3060204@bnap.hu> <200307221731.32814.shalehperry@comcast.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 22:31:25 -0000 X-UID: 1257 Status: O On Tue, 22 Jul 2003, Sean 'Shaleh' Perry wrote: > On Tuesday 22 July 2003 04:30, Farkas Levente wrote: > > hi, > > just note that in the current redhat beta they include dovecot 0.99.10:-) > > it's been in Debian for a while now (-: > I believe we were the first. Unless you only count stable releases in which case we will probably be last. :) -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From amyzing@talsever.com Thu Jul 24 05:52:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 32E4F23866; Thu, 24 Jul 2003 05:52:36 +0300 (EEST) Received: from tisch.mail.mindspring.net (tisch.mail.mindspring.net [207.69.200.157]) by danu.procontrol.fi (Postfix) with ESMTP id BAC8823865 for ; Thu, 24 Jul 2003 05:52:19 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by tisch.mail.mindspring.net with esmtp (Exim 3.33 #1) id 19fWDK-0001my-00 for dovecot@procontrol.fi; Wed, 23 Jul 2003 22:52:18 -0400 Received: from lirdala.talsever.com (lirdala.talsever.com [192.168.0.28]) by marajen.talsever.com (Postfix) with SMTP id 457358068 for ; Wed, 23 Jul 2003 22:52:17 -0400 (EDT) Date: Wed, 23 Jul 2003 22:52:17 -0400 From: Amelia A Lewis To: dovecot@procontrol.fi Message-Id: <20030723225217.73dde8ac.amyzing@talsever.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.3 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Dovecot] Why does dovecot confuse mutt? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2003 02:52:36 -0000 X-UID: 1258 Status: O Content-Length: 2162 Heylas, I just switched my primary mail server from courier imap to dovecot (I've been waiting to do this; dovecot showed up in debian testing for alpha, at last). So, using the same set of maildirs, there are slightly different behaviors. First, of course, dovecot displays the hierarchy as I thought it ought to be, such that INBOX is a sibling of all other top-level boxes, not the parent of everything. This is A Good Thing[tm]. That works as expected. However, as far as mutt is concerned, *every* mailbox has child folders. My muttrc contains the line: set folder=imap://localhost/. (and the home folder is set to imap://localhost/INBOX; the idea is to do all mail munging through the server, never directly touching the maildirs with an MUA). Oh, and I'm using maildir (~/Maildir). In mutt, from the currently-selected mailbox, one can use 'c' to change boxes, and ? displays a navigable folder hierarchy. If a folder contains only mail (no child folders), it shows up as "FolderName", if it has child folders (whether or not it has mail), it shows up as "FolderName.". You can display the mail in a folder that has child folders, but it requires a different keystroke than the default (enter selects a folder, which means showing child folders if there are any, showing mail if there aren't; to display mail in a folder that has child folders, space). This is tripping me up a little, because of course the commands are mostly bred into my fingertips, and it's a difficult adjustment. I hit return, and I see a folder that contains the "child" folder "../". Is this a glitch in mutt's handling of information that I ought to report to mutt maintainers? Is it a glitch in dovecot's presentation of information that I ought to report to ... err, well. *laugh* My other primary mail client seems to cope beautifully with the information that's supplied (sylpheed, if it matters). But then, sylpheed also coped perfectly when courier was supplying information. I gather that courier and dovecot are reporting something slightly different, somehow, but I don't really know what, and I don't know which should be considered "correct". Amy! From reuben-dovecot@reub.net Thu Jul 24 06:01:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4978223866; Thu, 24 Jul 2003 06:01:46 +0300 (EEST) Received: from tornado.reub.net (219-88-72-199.adsl.xtra.co.nz [219.88.72.199]) by danu.procontrol.fi (Postfix) with SMTP id 5D34523865 for ; Thu, 24 Jul 2003 06:01:42 +0300 (EEST) Received: (qmail 17241 invoked from network); 24 Jul 2003 03:01:37 -0000 Received: from typhoon.reub.net (192.168.0.5) by tornado.reub.net with SMTP; 24 Jul 2003 03:01:37 -0000 Message-Id: <6.0.0.14.2.20030724145248.01ae7880@tornado.reub.net> X-Sender: (Unverified) X-Mailer: QUALCOMM Windows Eudora Version 6.0.0.14 (Beta) Date: Thu, 24 Jul 2003 14:59:36 +1200 To: Amelia A Lewis , dovecot@procontrol.fi From: Reuben Farrelly Subject: Re: [Dovecot] Why does dovecot confuse mutt? In-Reply-To: <20030723225217.73dde8ac.amyzing@talsever.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2003 03:01:46 -0000 X-UID: 1259 Status: O Content-Length: 2838 Hi, I'm seeing the same problem with Eudora 5 and 6 so I'm guessing it's not a mutt problem. Every mailbox appears as a folder :( I've had no response from Qualcomm about this despite offering to work with them about it. However everything fine in Netscape 7.1 - and all _looks_ fine with Outlook Express 6 till you try open a mailbox within a folder and it simply complains "Mailbox doesn't exist: Maildir.Mailing lists.RHL-Beta". Everything worked fine with all those clients using UW-IMAP so I'm wondering if it is a dovecot issue... Reuben At 02:52 p.m. 24/07/2003, Amelia A Lewis wrote: >Heylas, > >I just switched my primary mail server from courier imap to dovecot (I've >been waiting to do this; dovecot showed up in debian testing for alpha, at >last). So, using the same set of maildirs, there are slightly different >behaviors. > >First, of course, dovecot displays the hierarchy as I thought it ought to >be, such that INBOX is a sibling of all other top-level boxes, not the >parent of everything. This is A Good Thing[tm]. That works as expected. > >However, as far as mutt is concerned, *every* mailbox has child >folders. My muttrc contains the line: set folder=imap://localhost/. (and >the home folder is set to imap://localhost/INBOX; the idea is to do all >mail munging through the server, never directly touching the maildirs with >an MUA). Oh, and I'm using maildir (~/Maildir). In mutt, from the >currently-selected mailbox, one can use 'c' to change boxes, and ? >displays a navigable folder hierarchy. If a folder contains only mail (no >child folders), it shows up as "FolderName", if it has child folders >(whether or not it has mail), it shows up as "FolderName.". You can >display the mail in a folder that has child folders, but it requires a >different keystroke than the default (enter selects a folder, which means >showing child folders if there are any, showing mail if there aren't; to >display mail in a folder that has child folders, space). > >This is tripping me up a little, because of course the commands are mostly >bred into my fingertips, and it's a difficult adjustment. I hit return, >and I see a folder that contains the "child" folder "../". > >Is this a glitch in mutt's handling of information that I ought to report >to mutt maintainers? Is it a glitch in dovecot's presentation of >information that I ought to report to ... err, well. *laugh* My other >primary mail client seems to cope beautifully with the information that's >supplied (sylpheed, if it matters). But then, sylpheed also coped >perfectly when courier was supplying information. I gather that courier >and dovecot are reporting something slightly different, somehow, but I >don't really know what, and I don't know which should be considered "correct". > >Amy! From lfarkas@bnap.hu Thu Jul 24 12:05:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AC304238C5; Thu, 24 Jul 2003 12:05:31 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 0332723866 for ; Thu, 24 Jul 2003 12:05:28 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id 85B206E4019 for ; Thu, 24 Jul 2003 11:04:57 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 71BB8176E9E; Thu, 24 Jul 2003 11:05:23 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 57ABE1769DF for ; Thu, 24 Jul 2003 11:05:23 +0200 (CEST) Message-ID: <3F1FA152.8010508@bnap.hu> Date: Thu, 24 Jul 2003 11:05:22 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030630 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] phpgroupware's imap client with dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2003 09:05:31 -0000 X-UID: 1260 Status: O hi, we try to use http://www.phpgroupware.org/ imap client with dovecot, but it doesn't working. is there any way to get it working with dovecot? there are a few possibbilities for imap type: courier or cyrus WUash WU-maildir but none of them seems to be working, although pop3 is working. any tip? can I send any log? thanks in advance. -- Levente "Si vis pacem para bellum!" From tss@iki.fi Thu Jul 24 12:38:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E3EE0238C5; Thu, 24 Jul 2003 12:38:51 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 401B82384C for ; Thu, 24 Jul 2003 12:38:50 +0300 (EEST) Date: Thu, 24 Jul 2003 12:38:49 +0300 Subject: Re: [Dovecot] Why does dovecot confuse mutt? Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030723225217.73dde8ac.amyzing@talsever.com> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2003 09:38:52 -0000 X-UID: 1261 Status: O On Thursday, Jul 24, 2003, at 05:52 Europe/Helsinki, Amelia A Lewis wrote: > However, as far as mutt is concerned, *every* mailbox has child > folders. I think this is because Dovecot doesn't send \NoChildren flag for mailboxes. I'm not sure when that got lost.. Maybe it's time to rewrite the mailbox listing code once again. From rob@thini.dyndns.org Thu Jul 24 13:01:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 083F2238C5; Thu, 24 Jul 2003 13:01:43 +0300 (EEST) Received: from digital (81-86-202-8.dsl.pipex.com [81.86.202.8]) by danu.procontrol.fi (Postfix) with ESMTP id A039C2384C for ; Thu, 24 Jul 2003 13:01:40 +0300 (EEST) Received: from rob by digital with local (Exim 3.36 #1 (Debian)) id 19fdHi-0001Ch-00 for ; Thu, 24 Jul 2003 11:25:18 +0100 From: Rob Thyssen Organization: THINi Business Solutions To: dovecot@procontrol.fi Date: Thu, 24 Jul 2003 11:25:18 +0100 User-Agent: KMail/1.5.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200307241125.18334.dove@thys.co.uk> Sender: Rob Thyssen Subject: [Dovecot] Dovecot, Squirrelmail and KMail X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dove@thys.co.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2003 10:01:43 -0000 X-UID: 1262 Status: O I just installed Dovecot and squirrelmail to read my email when I'm away from home. I subscribed to all the folders in my mail directory but I can't actually see any email. Is this a dovecot issue or a squirrelmail issue? I'm running KMail from KDE 3.1.2 and use Debian (Testing) on a Digital Alpha and installed both squirrelmail and dovecot using apt-get. I had to set 'default_mail_env = maildir:~/Mail' To get it to see the parent folders but I'm stuck there. Any advice appreciated. /rob From tss@iki.fi Thu Jul 24 13:36:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 075D2238C5; Thu, 24 Jul 2003 13:36:41 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 87D9B23866 for ; Thu, 24 Jul 2003 13:36:39 +0300 (EEST) Date: Thu, 24 Jul 2003 13:36:39 +0300 Subject: Re: [Dovecot] Dovecot, Squirrelmail and KMail Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <200307241125.18334.dove@thys.co.uk> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2003 10:36:41 -0000 X-UID: 1263 Status: O On Thursday, Jul 24, 2003, at 13:25 Europe/Helsinki, Rob Thyssen wrote: > I just installed Dovecot and squirrelmail to read my email when I'm > away from > home. I subscribed to all the folders in my mail directory but I can't > actually see any email. Is this a dovecot issue or a squirrelmail > issue? > > I'm running KMail from KDE 3.1.2 and use Debian (Testing) on a Digital > Alpha > and installed both squirrelmail and dovecot using apt-get. I had to set > 'default_mail_env = maildir:~/Mail' To get it to see the parent > folders but > I'm stuck there. And it shows in kmail? You'll probably just have to setup squirrelmail not to use the INBOX-prefix: 1. Default Folder Prefix : 12. Default Sub. of INBOX : false From tss@iki.fi Thu Jul 24 13:47:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5D247238C5; Thu, 24 Jul 2003 13:47:08 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id E348223866 for ; Thu, 24 Jul 2003 13:47:06 +0300 (EEST) Date: Thu, 24 Jul 2003 13:47:06 +0300 Subject: Re: [Dovecot] phpgroupware's imap client with dovecot Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot List Content-Transfer-Encoding: 7bit In-Reply-To: <3F1FA152.8010508@bnap.hu> Message-Id: <2B28E0BF-BDC4-11D7-B3F9-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2003 10:47:08 -0000 X-UID: 1264 Status: O On Thursday, Jul 24, 2003, at 12:05 Europe/Helsinki, Farkas Levente wrote: > hi, > we try to use > http://www.phpgroupware.org/ > imap client with dovecot, but it doesn't working. is there any way to > get it working with dovecot? > there are a few possibbilities for imap type: > courier or cyrus > WUash > WU-maildir > but none of them seems to be working, although pop3 is working. > any tip? It looks like it's using php's built-in imap functions which are using c-client. Pine is built using c-client too, so there shouldn't be any problems. But if it lets you specify server type, I guess it's doing some own strange things as well.. Debian's php4-imap package is broken currently so I can't test it myself now. I'd guess it's again some prefix/namespace problem. IMAP servers aren't that much different.. > can I send any log? Rawlog could help. From dove@thys.co.uk Thu Jul 24 14:14:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2726C238C5; Thu, 24 Jul 2003 14:14:22 +0300 (EEST) Received: from colossus.systems.pipex.net (colossus.systems.pipex.net [62.241.160.73]) by danu.procontrol.fi (Postfix) with ESMTP id 5A55E23866 for ; Thu, 24 Jul 2003 14:14:17 +0300 (EEST) Received: from thini.dsl.pipex.com (81-86-202-8.dsl.pipex.com [81.86.202.8]) by colossus.systems.pipex.net (Postfix) with ESMTP id BBF381600048F for ; Thu, 24 Jul 2003 12:14:15 +0100 (BST) From: Rob Thyssen Organization: THINi Business Solutions To: dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot, Squirrelmail and KMail Date: Thu, 24 Jul 2003 12:38:00 +0100 User-Agent: KMail/1.5.2 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200307241238.00496.dove@thys.co.uk> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dove@thys.co.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2003 11:14:22 -0000 X-UID: 1265 Status: O On Thursday 24 Jul 2003 11:36 am, Timo Sirainen wrote: > And it shows in kmail? It does display correctly in kmail... > You'll probably just have to setup squirrelmail not to use the > INBOX-prefix: > 1. Default Folder Prefix : > 12. Default Sub. of INBOX : false I thot that was going to sort it, alas it doesn't. Has it got something to do with the fact that kmail puts the contents of subfolders into a hidden directory in ~/Mail ? In kmail I have folders like: Forums, Newsletters, etc... These have subfolders, but in the file system it looks like: /home/rob/Mail/.Forums.directory/DCLUG/ instead of the expected: /home/rob/Mail/Forums/DCLUG/ Thanks for your help! /rob From tss@iki.fi Thu Jul 24 14:45:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 68B61238C5; Thu, 24 Jul 2003 14:45:35 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D5BE32384C for ; Thu, 24 Jul 2003 14:45:32 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 11E6F5C896A2 for ; Thu, 24 Jul 2003 14:45:31 +0300 (EEST) Subject: Re: [Dovecot] Dovecot, Squirrelmail and KMail From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <200307241238.00496.dove@thys.co.uk> References: <200307241238.00496.dove@thys.co.uk> Content-Type: text/plain Message-Id: <1059047130.1060.132.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 24 Jul 2003 14:45:30 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2003 11:45:35 -0000 X-UID: 1266 Status: O On Thu, 2003-07-24 at 14:38, Rob Thyssen wrote: > In kmail I have folders like: Forums, Newsletters, etc... These have > subfolders, but in the file system it looks like: > /home/rob/Mail/.Forums.directory/DCLUG/ Oh, you let kmail directly access the mailboxes rather than via IMAP. Dovecot uses Maildir++ which works like: Mail/.mailbox Mail/.mailbox.submailbox Mail/.anotherbox etc. all in one directory, hiearchies separated with dot. kmail's way looks pretty strange. From lfarkas@bnap.hu Thu Jul 24 15:26:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 22B7B238C5; Thu, 24 Jul 2003 15:26:10 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id CA16323866 for ; Thu, 24 Jul 2003 15:26:02 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [194.143.224.170]) by mail1.bppiac.hu (Postfix) with ESMTP id CD06C6E4020 for ; Thu, 24 Jul 2003 14:25:31 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 55E0617708C; Thu, 24 Jul 2003 14:26:00 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 37B8A176C92 for ; Thu, 24 Jul 2003 14:26:00 +0200 (CEST) Message-ID: <3F1FD057.6040909@bnap.hu> Date: Thu, 24 Jul 2003 14:25:59 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030630 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] phpgroupware's imap client with dovecot References: <2B28E0BF-BDC4-11D7-B3F9-000393CC2E90@iki.fi> In-Reply-To: <2B28E0BF-BDC4-11D7-B3F9-000393CC2E90@iki.fi> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jul 2003 12:26:10 -0000 X-UID: 1267 Status: O Content-Length: 1129 Timo Sirainen wrote: > On Thursday, Jul 24, 2003, at 12:05 Europe/Helsinki, Farkas Levente wrote: > >> hi, >> we try to use >> http://www.phpgroupware.org/ >> imap client with dovecot, but it doesn't working. is there any way to >> get it working with dovecot? >> there are a few possibbilities for imap type: >> courier or cyrus >> WUash >> WU-maildir >> but none of them seems to be working, although pop3 is working. >> any tip? > > > It looks like it's using php's built-in imap functions which are using > c-client. Pine is built using c-client too, so there shouldn't be any > problems. But if it lets you specify server type, I guess it's doing > some own strange things as well.. > > Debian's php4-imap package is broken currently so I can't test it myself > now. I'd guess it's again some prefix/namespace problem. IMAP servers > aren't that much different.. > >> can I send any log? > > > Rawlog could help. it turn out they also include INBOX. as a prefix and this cause not to working... currently I don't know the solution... -- Levente "Si vis pacem para bellum!" From adam@personaltelco.net Fri Jul 25 06:11:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A9D26238C5; Fri, 25 Jul 2003 06:11:29 +0300 (EEST) Received: from maus.spack.org (maus.spack.org [204.245.198.90]) by danu.procontrol.fi (Postfix) with ESMTP id D911423865 for ; Fri, 25 Jul 2003 06:11:24 +0300 (EEST) Received: from personaltelco.net (morannon.wetafx.co.nz [203.98.17.18]) h6P3BIft000575 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2003 20:11:20 -0700 Message-ID: <3F209FD5.5070308@personaltelco.net> Date: Fri, 25 Jul 2003 15:11:17 +1200 From: Adam Shand User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030210 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Fri, 25 Jul 2003 14:26:18 +0300 Subject: [Dovecot] Is dovecot NFS safe? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jul 2003 03:11:29 -0000 X-UID: 1268 Status: O I'm migrating our mailserver from cyrus 2.0 to Postfix and Dovecot. We're using maildirs delivered to /var/maildir, which is mounted via NFS from a Netapp. My understanding was that maildir was completely happy in an NFS environment but I've seen a couple messages here recently which mention the dovecot index files not being NFS safe. Are their any caveats or gotcha's that I need to be aware of? Thanks, Adam. From stu@spacehopper.org Fri Jul 25 15:13:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7E287238C8; Fri, 25 Jul 2003 15:13:24 +0300 (EEST) Received: from eeyore.37.spacehopper.org (eeyore.37.spacehopper.org [213.152.51.82]) by danu.procontrol.fi (Postfix) with ESMTP id 23EC42384C for ; Fri, 25 Jul 2003 15:13:17 +0300 (EEST) Received: from amethyst.37.spacehopper.org (amethyst.37.spacehopper.org [213.152.51.85]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by eeyore.37.spacehopper.org (Postfix) with ESMTP id 85EE01E008; Fri, 25 Jul 2003 13:12:49 +0100 (BST) Date: Fri, 25 Jul 2003 13:12:47 +0100 From: Stuart Henderson To: Adam Shand , dovecot@procontrol.fi Subject: Re: [Dovecot] Is dovecot NFS safe? Message-ID: <75506203.1059138767@amethyst.37.spacehopper.org> In-Reply-To: <3F209FD5.5070308@personaltelco.net> References: <3F209FD5.5070308@personaltelco.net> X-Mailer: Mulberry/3.1.0b4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jul 2003 12:13:24 -0000 X-UID: 1269 Status: O > I'm migrating our mailserver from cyrus 2.0 to Postfix and Dovecot. > > We're using maildirs delivered to /var/maildir, which is mounted via > NFS from a Netapp. My understanding was that maildir was completely > happy in an NFS environment but I've seen a couple messages here > recently which mention the dovecot index files not being NFS safe. > > Are their any caveats or gotcha's that I need to be aware of? You'll probably want to keep them in memory or on local disk. See for more information - default_mail_env needs either ":INDEX=/local/path/to/indexes/%u" or ":INDEX=MEMORY", all machines accessing the mailstore should have sync'd clocks, and all imap servers need separate hostnames. --Stu From maikel@ladot.com Fri Jul 25 16:52:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2C773238C9; Fri, 25 Jul 2003 16:52:15 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 034CF2384C for ; Fri, 25 Jul 2003 16:52:10 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h6PE5JZW010207 for ; Fri, 25 Jul 2003 16:05:19 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Fri, 25 Jul 2003 15:53:27 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F22A87@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'Dovecot (E-mail)'" Subject: FW: [Dovecot] Is dovecot NFS safe? Date: Fri, 25 Jul 2003 15:53:27 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C352B4.1F9B53D0" X-Spam-Status: No, hits=0.5 required=5.0 tests=HTML_30_40,HTML_MESSAGE,QUOTED_EMAIL_TEXT version=2.55 X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jul 2003 13:52:15 -0000 X-UID: 1270 Status: O Content-Length: 6004 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C352B4.1F9B53D0 Content-Type: text/plain This was ment for the list :) Sorry Stuart, for the double email... Regards, Maikel. > -----Original Message----- > From: Maikel Verheijen > Sent: Friday, July 25, 2003 3:40 PM > To: 'Stuart Henderson' > Subject: RE: [Dovecot] Is dovecot NFS safe? > > > Hi, > > Be aware that also your .subscriptions file and .customflags > are not nfs safe (yet) in dovecot-0.99.10. > > I know Timo is working on that though :) > > Kind regards, > > Maikel Verheijen. > > Ps: I have a "crude" patch to make .subscriptions and > .customflags nfs aware (I can not guarentee it is nfs safe ;-). > My own setup runs on nfs with the indexes in memory. > > > -----Original Message----- > > From: Stuart Henderson [mailto:stu@spacehopper.org] > > Sent: Friday, July 25, 2003 2:13 PM > > To: Adam Shand; dovecot@procontrol.fi > > Subject: Re: [Dovecot] Is dovecot NFS safe? > > > > > > > I'm migrating our mailserver from cyrus 2.0 to Postfix > and Dovecot. > > > > > > We're using maildirs delivered to /var/maildir, which is > > mounted via > > > NFS from a Netapp. My understanding was that maildir was > > completely > > > happy in an NFS environment but I've seen a couple messages here > > > recently which mention the dovecot index files not being NFS safe. > > > > > > Are their any caveats or gotcha's that I need to be aware of? > > > > You'll probably want to keep them in memory or on local disk. See > > for more information - > > default_mail_env needs either ":INDEX=/local/path/to/indexes/%u" or > > ":INDEX=MEMORY", all machines accessing the mailstore should have > > sync'd clocks, and all imap servers need separate hostnames. > > > > --Stu > > > ------_=_NextPart_001_01C352B4.1F9B53D0 Content-Type: text/html Content-Transfer-Encoding: quoted-printable FW: [Dovecot] Is dovecot NFS safe?

This was ment for the list :)

Sorry Stuart, for the double email...

Regards,


Maikel.

> -----Original Message-----
> From: Maikel Verheijen
> Sent: Friday, July 25, 2003 3:40 PM
> To: 'Stuart Henderson'
> Subject: RE: [Dovecot] Is dovecot NFS = safe?
>
>
> Hi,
>
> Be aware that also your .subscriptions file and = .customflags
> are not nfs safe (yet) in = dovecot-0.99.10.
>
> I know Timo is working on that though :)
>
> Kind regards,
>
> Maikel Verheijen.
>
> Ps: I have a "crude" patch to make = .subscriptions and
> .customflags nfs aware (I can not guarentee it = is nfs safe ;-).
>     My own setup runs on = nfs with the indexes in memory.
>
> > -----Original Message-----
> > From: Stuart Henderson [mailto:stu@spacehopper.org]
> > Sent: Friday, July 25, 2003 2:13 PM
> > To: Adam Shand; = dovecot@procontrol.fi
> > Subject: Re: [Dovecot] Is dovecot NFS = safe?
> >
> >
> > > I'm migrating our mailserver from = cyrus 2.0 to Postfix
> and Dovecot.
> > >
> > > We're using maildirs delivered to = /var/maildir, which is
> > mounted via
> > > NFS from a Netapp.  My = understanding was that maildir was
> > completely
> > > happy in an NFS environment but I've = seen a couple messages here
> > > recently which mention the dovecot = index files not being NFS safe.
> > >
> > > Are their any caveats or gotcha's = that I need to be aware of?
> >
> > You'll probably want to keep them in = memory or on local disk. See
> > <http://dovecot.procontrol.fi/doc/nfs.txt> for = more information -
> > default_mail_env needs either = ":INDEX=3D/local/path/to/indexes/%u" or
> > ":INDEX=3DMEMORY", all machines = accessing the mailstore should have
> > sync'd clocks, and all imap servers need = separate hostnames.
> >
> > --Stu
> >
>

------_=_NextPart_001_01C352B4.1F9B53D0-- From matthias.andree@gmx.de Fri Jul 25 17:21:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9E1E2238C8; Fri, 25 Jul 2003 17:21:59 +0300 (EEST) Received: from m2a2.dyndns.org (pD951F5BC.dip.t-dialin.net [217.81.245.188]) by danu.procontrol.fi (Postfix) with ESMTP id 9BF1D238C5 for ; Fri, 25 Jul 2003 17:21:56 +0300 (EEST) Received: from merlin.emma.line.org (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with SMTP id 42ECD1E6B for ; Fri, 25 Jul 2003 16:21:53 +0200 (CEST) Date: Fri, 25 Jul 2003 16:21:52 +0200 From: Matthias Andree To: dovecot@procontrol.fi Subject: Re: [Dovecot] Is dovecot NFS safe? Message-Id: <20030725162152.2fc3af63.matthias.andree@gmx.de> In-Reply-To: <3F209FD5.5070308@personaltelco.net> References: <3F209FD5.5070308@personaltelco.net> X-Mailer: Sylpheed version 0.9.3claws (GTK+ 1.2.10; i686-suse-linux) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jul 2003 14:21:59 -0000 X-UID: 1271 Status: O On Fri, 25 Jul 2003 15:11:17 +1200 Adam Shand wrote: > I'm migrating our mailserver from cyrus 2.0 to Postfix and Dovecot. > > We're using maildirs delivered to /var/maildir, which is mounted via > NFS from a Netapp. My understanding was that maildir was completely > happy in an NFS environment but I've seen a couple messages here > recently which mention the dovecot index files not being NFS safe. > > Are their any caveats or gotcha's that I need to be aware of? Well, Postfix delivering to Maildir mailboxes is a matter that Wietse isn't particularly fond of. Make sure your mount options are correct in that they provide synchronous link() and rename() semantics. -- Matthias Andree From jennyw@dangerousideas.com Fri Jul 25 18:26:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DD545238C8; Fri, 25 Jul 2003 18:26:15 +0300 (EEST) Received: from dangerousideas.com (dsl093-079-183.sfo2.dsl.speakeasy.net [66.93.79.183]) by danu.procontrol.fi (Postfix) with ESMTP id 0667E2384C for ; Fri, 25 Jul 2003 18:26:14 +0300 (EEST) Received: by dangerousideas.com (Postfix, from userid 1000) id C10A8BA9AC; Fri, 25 Jul 2003 08:26:11 -0700 (PDT) Date: Fri, 25 Jul 2003 08:26:11 -0700 From: jennyw To: dovecot Message-ID: <20030725152611.GA21873@dangerousideas.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i Subject: [Dovecot] Dovecot on Mac OS X? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jul 2003 15:26:16 -0000 X-UID: 1272 Status: O Just wondering if anyone has successfully gotten Dovecot to run on Mac OS X? If so, I'd love to hear what your experience has been! Thanks! Jen From tss@iki.fi Fri Jul 25 20:48:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5EB1F238C8; Fri, 25 Jul 2003 20:48:12 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CE97F2384C for ; Fri, 25 Jul 2003 20:48:07 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 92C3D5C896A2 for ; Fri, 25 Jul 2003 20:48:07 +0300 (EEST) Subject: Re: [Dovecot] Dovecot on Mac OS X? From: Timo Sirainen To: dovecot In-Reply-To: <20030725152611.GA21873@dangerousideas.com> References: <20030725152611.GA21873@dangerousideas.com> Content-Type: text/plain Message-Id: <1059155287.1066.161.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 25 Jul 2003 20:48:07 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jul 2003 17:48:12 -0000 X-UID: 1273 Status: O On Fri, 2003-07-25 at 18:26, jennyw wrote: > Just wondering if anyone has successfully gotten Dovecot to run on Mac > OS X? If so, I'd love to hear what your experience has been! 0.99.10 gives quite a lot of warnings while compiling, but they're not real problems. Works fine AFAIK. From matthias.andree@gmx.de Sat Jul 26 10:51:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1F08D238C5; Sat, 26 Jul 2003 10:51:16 +0300 (EEST) Received: from m2a2.dyndns.org (p508776BA.dip.t-dialin.net [80.135.118.186]) by danu.procontrol.fi (Postfix) with ESMTP id 09CEC2384C for ; Sat, 26 Jul 2003 10:51:14 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 12987A9A8; Sat, 26 Jul 2003 09:51:12 +0200 (CEST) To: dovecot@procontrol.fi Subject: Re: [Dovecot] Is dovecot NFS safe? In-Reply-To: <20030725162152.2fc3af63.matthias.andree@gmx.de> (Matthias Andree's message of "Fri, 25 Jul 2003 16:21:52 +0200") References: <3F209FD5.5070308@personaltelco.net> <20030725162152.2fc3af63.matthias.andree@gmx.de> From: Matthias Andree Date: Sat, 26 Jul 2003 09:51:11 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Jul 2003 07:51:16 -0000 X-UID: 1274 Status: O Matthias Andree writes: > Well, Postfix delivering to Maildir mailboxes is a matter that Wietse > isn't particularly fond of. Make sure your mount options are correct in > that they provide synchronous link() and rename() semantics. Whooops. That's a typo, I meant: Postfix delivering to NFS Maildir mailboxes... (Maildir on a local file system works fine of course, mbox on NFS is inherently unreliable and heavily dependent on working locking.) -- Matthias Andree From tss@iki.fi Sat Jul 26 21:47:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ECFC12387A; Sat, 26 Jul 2003 21:47:03 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BE6D22384C for ; Sat, 26 Jul 2003 21:46:59 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5DDA45C896A2 for ; Sat, 26 Jul 2003 21:46:58 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1059245217.1061.177.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 26 Jul 2003 21:46:58 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] API changes and plugins X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Jul 2003 18:47:04 -0000 X-UID: 1275 Status: O There's been quite a lot of changes in CVS lately, mostly related to API changes but also some index file changes. They've both had very little testing, so there's probably a few bugs left. Especially mbox users should be careful. pop3 might also be deleting wrong messages.. Anyway. The new mail storage API should allow plugins to hook into pretty much any operation they want to. It's not exactly pretty with C syntax, but I think conceptually it's nice object oriented design :) There's example (non-working) quota plugin at: http://dovecot.procontrol.fi/patches/quota.c I also built 0.99.11-test3 from current CVS: http://dovecot.procontrol.fi/test/ From tss@iki.fi Sun Jul 27 08:55:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B1A26238D1; Sun, 27 Jul 2003 08:55:19 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 14CFF23865 for ; Sun, 27 Jul 2003 08:55:17 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id BE1A65C896A2 for ; Sun, 27 Jul 2003 08:55:16 +0300 (EEST) From: Timo Sirainen To: Dovecot List Content-Type: text/plain Message-Id: <1059285316.1062.193.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 27 Jul 2003 08:55:16 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Namespaces X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jul 2003 05:55:19 -0000 X-UID: 1276 Status: O 0.99.11-test4 release: http://dovecot.procontrol.fi/test/ Finally namespaces somewhat working. Example: namespace private { separator = / prefix = INBOX/ location = maildir:~/Maildir } namespace private { separator = / prefix = #mbox/ location = mbox:~/mail } Problems: - Mailbox listing lists only the first namespace unless you clearly ask mailboxes under some namespace. Not really a problem, but related to: - There should be only one common subscriptions file for all namespaces. This needs some thinking how to do it well. - Having multiple different mailbox formats in one namespace still isn't possible. Needs some more thinking as well. From gmid-dovecot@m.gmane.org Mon Jul 28 07:50:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F2B89238C5; Mon, 28 Jul 2003 07:50:13 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by danu.procontrol.fi (Postfix) with ESMTP id 220FE2384C for ; Mon, 28 Jul 2003 07:50:10 +0300 (EEST) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 19gzxU-0004Iz-00 for ; Mon, 28 Jul 2003 06:50:04 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@procontrol.fi Received: from news by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 19gvll-0008H4-00 for ; Mon, 28 Jul 2003 02:21:41 +0200 From: Adam Shand Date: Mon, 28 Jul 2003 12:21:39 +1200 Lines: 24 Message-ID: References: <3F209FD5.5070308@personaltelco.net> <20030725162152.2fc3af63.matthias.andree@gmx.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@main.gmane.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030210 X-Accept-Language: en-us, en In-Reply-To: Sender: news X-Mailman-Approved-At: Tue, 29 Jul 2003 01:23:34 +0300 Subject: [Dovecot] Re: Is dovecot NFS safe? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jul 2003 04:50:14 -0000 X-UID: 1277 Status: O Stuart Henderson wrote: > You'll probably want to keep them in memory or on local disk. See > for more information - > default_mail_env needs either ":INDEX=/local/path/to/indexes/%u" or > ":INDEX=MEMORY", all machines accessing the mailstore should have > sync'd clocks, and all imap servers need separate hostnames. Okay that's exactly the information I was looking for, thanks. I assume making this change will take care of these errors: Jul 27 10:24:02 maus imap(adam): file_wait_lock() failed with index file /var/maildir/adam/.INBOX/.imap.index: No locks available Matthias Andree wrote: > Postfix delivering to NFS Maildir mailboxes... (Maildir on a local file > system works fine of course, mbox on NFS is inherently unreliable and > heavily dependent on working locking.) Isn't the main point of Maildir (as opposed to mbox) that it *is* NFS safe and doesn't require working locking? Thanks! Adam. From ma@dt.e-technik.uni-dortmund.de Tue Jul 29 20:10:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 57E112387F; Tue, 29 Jul 2003 20:10:54 +0300 (EEST) Received: from m2a2.dyndns.org (pD951F032.dip.t-dialin.net [217.81.240.50]) by danu.procontrol.fi (Postfix) with ESMTP id 51A452384C for ; Tue, 29 Jul 2003 20:10:49 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 49F1486C8F; Tue, 29 Jul 2003 19:10:43 +0200 (CEST) To: Adam Shand Subject: Re: [Dovecot] Re: Is dovecot NFS safe? In-Reply-To: (Adam Shand's message of "Mon, 28 Jul 2003 12:21:39 +1200") References: <3F209FD5.5070308@personaltelco.net> <20030725162152.2fc3af63.matthias.andree@gmx.de> From: Matthias Andree Date: Tue, 29 Jul 2003 19:10:43 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailman-Approved-At: Tue, 29 Jul 2003 20:34:59 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jul 2003 17:10:54 -0000 X-UID: 1278 Status: O Adam Shand writes: >> Postfix delivering to NFS Maildir mailboxes... (Maildir on a local file >> system works fine of course, mbox on NFS is inherently unreliable and >> heavily dependent on working locking.) > > Isn't the main point of Maildir (as opposed to mbox) that it *is* NFS > safe and doesn't require working locking? It is, and works (and has workarounds for non-idempotent NFS operations), but Wietse doesn't exactly bless NFS no matter what format you use. -- Matthias Andree From redjar@redjar.org Wed Jul 30 00:31:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 49A8D2387F; Wed, 30 Jul 2003 00:31:11 +0300 (EEST) Received: from mute.marlboro.edu (mute.marlboro.edu [12.6.230.75]) by danu.procontrol.fi (Postfix) with ESMTP id 593C823865 for ; Wed, 30 Jul 2003 00:31:00 +0300 (EEST) Received: from mdhcp48.marlboro.edu ([10.1.4.48] helo=redjar.org) by mute.marlboro.edu with esmtp (Exim 3.35 #1 (Debian)) id 19hc3c-0000K7-00 for ; Tue, 29 Jul 2003 17:30:56 -0400 Date: Tue, 29 Jul 2003 17:30:57 -0400 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Jared To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: X-Mailer: Apple Mail (2.552) X-MailScanner: clean X-MailScanner-SpamCheck: not spam, SpamAssassin (score=-1.8, required 7, AWL, SPAM_PHRASE_01_02, USER_AGENT_APPLEMAIL) Subject: [Dovecot] corrupt mbox, mailboxes not found, and message read status X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jul 2003 21:31:11 -0000 X-UID: 1279 Status: O Content-Length: 2358 I'm running dovecot 0.99.10-0.rc2 deb packages for Debian Woody from braincells.com. My old environment was a server running UW-IMAP for IMAP and POP services. We are still using mbox for all mailboxes. I use IMP for web based access. Forgive me if these issues have already been discussed or fixed in cvs. Any additional pointers to this info. would be appreciated. I have noticed a few issues. ---- I've seen a whole slew of entries like the following: pop3(username): Error indexing mbox file /home/username/mail/inbox: LF not found where expected According to this mailing list post from June 16, 2003: http://dovecot.procontrol.fi/list/dovecot/2003-June/001668.html it may be because of adjacent From mail headers in a message. I've had one user that this was not the case. They said they were deleting lots of messages in IMP and when he went back to his inbox, it was empty. When I looked at the mbox file, a message had been truncated. When I deleted the imap index and removed that truncated message, the mailbox became visible again. Has the adjacent From issue been fixed? Is there a way to find out more specifically what part of the mbox file dovecot is unhappy about? ie. a line number. ---- Inside IMP several users have set up a filter to send messages marked as spam by SpamAssassin into a spam folder. When they log-in or click the filter icon, the filter runs. However, now when the the filter runs, it reports: "Problem with filter rule 1: folder does not exist: mail/spam". However, the spam folder is still there, and when I open that folder in IMP, it opens just fine. I've already changed IMP's folder prefix from 'mail/' to ''. I've also tried deleting the imap index. The message still shows up and the filter fails to run. ---- With the old set-up, when I check mail with a pop3 client, the UW pop server modifies the Status and/or X-Keywords headers for the message. When the mailbox is viewed with an IMAP client such as IMP, messages that have already been downloaded via pop are marked as read. This doesn't seem to happen with dovecot. I found a Oct 19 2003 thread ( http://dovecot.procontrol.fi/list/dovecot/2002-October/000774.html ) on the mailing list where Timo said he was intending to use the X-Keywords trick. Did this ever get implemented? ---- Thanks, -jared From tss@iki.fi Thu Jul 31 05:47:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B64DA23866; Thu, 31 Jul 2003 05:47:49 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F3DAB2384C for ; Thu, 31 Jul 2003 05:47:41 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 31F895C896A2 for ; Thu, 31 Jul 2003 05:47:41 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1059619660.1062.301.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 31 Jul 2003 05:47:40 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] New index file code X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Jul 2003 02:47:50 -0000 X-UID: 1280 Status: O Content-Length: 4227 I just had to write this even while it's not just yet in CVS, but it's only a few fixes away from being committed.. My year long dream has finally came true :) [Summary: Next release will have REALLY kickass indexes] Previously the biggest problem with caching message data in indexes was that we had to do it while syncing the mailbox, before client even saw those messages. This caused index rebuilds to be very slow since it had to go through all mails and cache all of them, even if client never would access them. Alternative was to not cache anything at all, but that wasn't really good idea either. Now Dovecot caches the data when client is actually requesting it. That way it will never do any extra work for caching something that client isn't currently interested in. There's still the anticipatory caching for data that client is likely to be interested in later, but that is done only when it doesn't cause extra disk I/O. The reason why it took this long was because it was previously too difficult with read/write locking that indexes required. I couldn't have relied on it working since changing from read lock -> write lock could deadlock and dropping the lock in the middle would have caused even more problems. So, what I did was to rewrite the cache file handling completely: - It doesn't require any locking to read from it. - It will be NFS-safe without being too costly. - The file format itself is now architecture-independent. - Uses less space than before - OpenBSD support is now worse than before, even worse than NFS-support. They should get that unified cache done. Cached data is also selected better: - Specifically requested message headers are cached (FETCH, SEARCH, SORT, THREAD, etc.) - IMAP ENVELOPE isn't treated in any special way anymore. It's treated just as if you had requested HEADER.FIELDS (Date Subject From ...etc.). - Maildir filenames aren't constantly updated in the cache file anymore. This takes more memory now, but should reduce disk I/O. There's a few more tweaks that I'll probably add later: - Maildir: When compressing cache file we update mail's filename to current one so if message's flags aren't changed often, it won't use any extra memory either. - A normal text/plain message doesn't need to have it's IMAP BODYSTRUCTURE cached. It only needs a single bit set in flags. Should reduce used space quite a lot. - Message with only one body part doesn't need to have it's body structure stored at all since it's mostly just useful for fetching body parts. Plus the body structure could be generated if message sizes were known. All this work was only for index cache file (ex. .data file). There's still the main .imap.index file and modify log files. Modify log should be easy to make NFS-safe - I'm currently using some stupid file locking to figure out when the file is safe to overwrite, but I should have simply replaced the old file with rename(). That will solve some other problems as well as make the code simpler. It should be possible to be made read-lockless as well. The main index file is more problematic though. It contains a lot of changing fields in the header, such as number of messages, number of seen messages, etc. I can't think of any way to make it safe to read these fields without locks (my previous ideas didn't actually work). Lockless reads are pretty much a must for scalable NFS-safety. I think it could be done by simply removing all the constantly changing headers. If you want to know how many seen messages there are, just read all the records in the file and count them. Expunging would be done by rewriting the file and rename()ing it over the old file. Appending new messages is a bit tricky to do safely, but I think I know how to do that too.. read/write locks allow the changing headers, but there's locking contention problems with shared mailboxes.. I think I'll make it optional how to do this. Oh, and I also thought how indexes would work with shared mailboxes. You could use one shared cache file, but each user would have their own main index and modify log. That would allow storing per-user flags in the index file and also expunge (hide) messages by removing them from user's index. From tss@iki.fi Thu Jul 31 05:58:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 80F282387F; Thu, 31 Jul 2003 05:58:34 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BD42823866 for ; Thu, 31 Jul 2003 05:58:32 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 718665C896A2 for ; Thu, 31 Jul 2003 05:58:32 +0300 (EEST) Subject: Re: [Dovecot] corrupt mbox, mailboxes not found, and message read status From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1059620312.1057.313.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 31 Jul 2003 05:58:32 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Jul 2003 02:58:34 -0000 X-UID: 1281 Status: O Content-Length: 2664 On Wed, 2003-07-30 at 00:30, Jared wrote: > pop3(username): Error indexing mbox file /home/username/mail/inbox: LF > not found where expected > > I've had one user that this was not the case. They said they were > deleting lots of messages in IMP and when he went back to his inbox, it > was empty. When I looked at the mbox file, a message had been > truncated. When I deleted the imap index and removed that truncated > message, the mailbox became visible again. Hm. A truncated message shouldn't corrupt the whole mbox, at least if you delete index file.. Of course the truncation itself isn't good either. Could it be because you've set Dovecot to use different locking methods than your MTA? I haven't noticed corruption myself yet and I use mboxes all the time. Maybe I've been lucky though. I'll probably also rewrite most of the mbox handling code in a few months.. > Has the adjacent From issue been fixed? Not yet, but it will be. > Is there a way to find out more specifically what part of the mbox file > dovecot is unhappy about? ie. a line number. No. Hmm. Counting line numbers is a bit too kludgy to add, but exact offset would be possible. > Inside IMP several users have set up a filter to send messages marked > as spam by SpamAssassin into a spam folder. When they log-in or click > the filter icon, the filter runs. However, now when the the filter > runs, it reports: "Problem with filter rule 1: folder does not exist: > mail/spam". However, the spam folder is still there, and when I open > that folder in IMP, it opens just fine. I've already changed IMP's > folder prefix from 'mail/' to ''. I've also tried deleting the imap > index. The message still shows up and the filter fails to run. Looks like IMP still tries to use mail/ prefix for the filter. Does the filter configuration have the mailbox set to mail/spam? Just guessing, I've never used IMP. > With the old set-up, when I check mail with a pop3 client, the UW pop > server modifies the Status and/or X-Keywords headers for the message. > When the mailbox is viewed with an IMAP client such as IMP, messages > that have already been downloaded via pop are marked as read. This > doesn't seem to happen with dovecot. I found a Oct 19 2003 thread > ( http://dovecot.procontrol.fi/list/dovecot/2002-October/000774.html ) > on the mailing list where Timo said he was intending to use the > X-Keywords trick. Did this ever get implemented? X-Keywords have been used for a long time now. It's possible to set \Seen flag for messages downloaded with POP3, but I don't know if it's worth the trouble. Who uses POP3 and IMAP mixed anyway? From maikel@ladot.com Thu Jul 31 14:06:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 454B323866; Thu, 31 Jul 2003 14:06:47 +0300 (EEST) Received: from zeus.ladot.com (office.ladot.com [217.22.64.134]) by danu.procontrol.fi (Postfix) with ESMTP id 6198423865 for ; Thu, 31 Jul 2003 14:06:45 +0300 (EEST) Received: from nlladot05.freehosting (nlladot05.intern.ladot.com [172.31.2.13]) by zeus.ladot.com (8.12.9/8.12.9) with ESMTP id h6VBK2ZW081709 for ; Thu, 31 Jul 2003 13:20:03 +0200 (CEST) (envelope-from maikel@ladot.com) Received: by nlladot05.intern.ladot.com with Internet Mail Service (5.5.2653.19) id ; Thu, 31 Jul 2003 13:07:47 +0200 Message-ID: <410777FC7A66D511911500B0D078345501F22B55@nlladot05.intern.ladot.com> From: Maikel Verheijen To: "'dovecot@procontrol.fi'" Subject: RE: [Dovecot] corrupt mbox, mailboxes not found, and message rea d status Date: Thu, 31 Jul 2003 13:07:44 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C35753.F7E72A90" X-Spam-Status: No, hits=0.8 required=5.0 tests=HTML_20_30,HTML_MESSAGE,QUOTED_EMAIL_TEXT version=2.55 X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Jul 2003 11:06:47 -0000 X-UID: 1282 Status: O Content-Length: 2595 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C35753.F7E72A90 Content-Type: text/plain [SNIP] > http://dovecot.procontrol.fi/list/dovecot/2002> -October/000774.html ) > > on the mailing list where Timo said he was intending to use the > > X-Keywords trick. Did this ever get implemented? > > X-Keywords have been used for a long time now. It's possible > to set \Seen flag for messages downloaded with POP3, but I > don't know if it's worth the trouble. Who uses POP3 and IMAP > mixed anyway? > A lot of our customers, since we only supported pop3 in the past, and our new webmail uses imap. :) And a lot of people don't click on "This is an imap server" when creating their account in for instance outlook-express. Kind regards, Maikel Verheijen. ------_=_NextPart_001_01C35753.F7E72A90 Content-Type: text/html Content-Transfer-Encoding: quoted-printable RE: [Dovecot] corrupt mbox, mailboxes not found, and message = read status

[SNIP]

> http://dovecot.procontrol.fi/list/dovecot/2002>= -October/000774.html )
> > on the mailing list where Timo said he was = intending to use the
> > X-Keywords trick.  Did this ever get = implemented?
>
> X-Keywords have been used for a long time now. = It's possible
> to set \Seen flag for messages downloaded with = POP3, but I
> don't know if it's worth the trouble. Who uses = POP3 and IMAP
> mixed anyway?
>

A lot of our customers, since we only supported pop3 = in the past, and our new webmail uses imap. :)

And a lot of people don't click on "This is an = imap server" when creating their account in for instance = outlook-express.

Kind regards,


Maikel Verheijen.

------_=_NextPart_001_01C35753.F7E72A90-- From charlieb-dovecot@e-smith.com Thu Jul 31 20:45:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A537E23866; Thu, 31 Jul 2003 20:45:26 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 654912384C for ; Thu, 31 Jul 2003 20:45:22 +0300 (EEST) Received: (qmail 14621 invoked by uid 404); 31 Jul 2003 17:45:19 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 31 Jul 2003 13:45:18 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 31 Jul 2003 17:45:18 -0000 Received: (qmail 4544 invoked by uid 5008); 31 Jul 2003 17:45:18 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 31 Jul 2003 17:45:18 -0000 Date: Thu, 31 Jul 2003 13:45:18 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: "'dovecot@procontrol.fi'" Subject: RE: [Dovecot] corrupt mbox, mailboxes not found, and message rea d status In-Reply-To: <410777FC7A66D511911500B0D078345501F22B55@nlladot05.intern.ladot.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Jul 2003 17:45:26 -0000 X-UID: 1283 Status: O On Thu, 31 Jul 2003, Maikel Verheijen wrote: > [SNIP] > > > don't know if it's worth the trouble. Who uses POP3 and IMAP > > mixed anyway? > > A lot of our customers, since we only supported pop3 in the past, and our > new webmail uses imap. :) A surpising number of ours as well, usually when interleaving webmail and Lookout!. -- Charlie From redjar@redjar.org Thu Jul 31 21:02:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D54652387F; Thu, 31 Jul 2003 21:02:41 +0300 (EEST) Received: from mute.marlboro.edu (mute.marlboro.edu [12.6.230.75]) by danu.procontrol.fi (Postfix) with ESMTP id 19DBF23866 for ; Thu, 31 Jul 2003 21:02:38 +0300 (EEST) Received: from mc-priv-10.0.4.86.marlboro.edu ([10.0.4.86] helo=redjar.org) by mute.marlboro.edu with esmtp (Exim 3.35 #1 (Debian)) id 19iHl0-0006Jm-00 for ; Thu, 31 Jul 2003 14:02:30 -0400 Date: Thu, 31 Jul 2003 14:02:29 -0400 Subject: Re: [Dovecot] corrupt mbox, mailboxes not found, and message rea d status Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Jared To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: Message-Id: <26BAFA8C-C381-11D7-AB75-00039398ED48@redjar.org> X-Mailer: Apple Mail (2.552) X-MailScanner: clean X-MailScanner-SpamCheck: not spam, SpamAssassin (score=-3.3, required 7, AWL, EMAIL_ATTRIBUTION, IN_REP_TO, QUOTED_EMAIL_TEXT, SPAM_PHRASE_00_01, USER_AGENT_APPLEMAIL) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Jul 2003 18:02:42 -0000 X-UID: 1284 Status: O On Thursday, Jul 31, 2003, at 13:45 US/Eastern, Charlie Brady wrote: > > On Thu, 31 Jul 2003, Maikel Verheijen wrote: > >> [SNIP] >> >>> don't know if it's worth the trouble. Who uses POP3 and IMAP >>> mixed anyway? >> >> A lot of our customers, since we only supported pop3 in the past, and >> our >> new webmail uses imap. :) > > A surpising number of ours as well, usually when interleaving webmail > and > Lookout!. A lot of my users too. I'm in a higher ed. environment where most students have personal computers which they use POP on (so they can archive their mail on their own computer) but they spend most of their day out of their room (classes, library, computer lab, friends rooms, etc.), so they like to quickly check their mail via webmail/IMAP. This is pretty common in a college setting I think. -jared From jaldhar@debian.org Sat Aug 2 00:23:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D5111238C5; Sat, 2 Aug 2003 00:23:55 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 494DA2384C for ; Sat, 2 Aug 2003 00:23:53 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 54E1C80AC; Fri, 1 Aug 2003 17:23:53 -0400 (EDT) Date: Fri, 1 Aug 2003 17:23:50 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: Jared Subject: Re: [Dovecot] corrupt mbox, mailboxes not found, and message read status In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Aug 2003 21:23:56 -0000 X-UID: 1285 Status: O On Tue, 29 Jul 2003, Jared wrote: > I'm running dovecot 0.99.10-0.rc2 deb packages for Debian Woody from > braincells.com. Yikes! That reminds me I never uploaded the backport of 0.99.10 final. (It's been in sid for a long time.) The packages are up there now. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From amartinez@equital.com.uy Sat Aug 2 17:25:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9200E2387F; Sat, 2 Aug 2003 17:25:58 +0300 (EEST) Received: from sistemas.equital.lx (r200-40-171-82.adsl.anteldata.net.uy [200.40.171.82]) by danu.procontrol.fi (Postfix) with ESMTP id 9637C23866 for ; Sat, 2 Aug 2003 17:25:54 +0300 (EEST) Received: from equital-mail.equital.com (correo.equital.lx [1.1.2.202]) by sistemas.equital.lx (8.12.9/8.11.6) with ESMTP id h72EPjEL011125 for ; Sat, 2 Aug 2003 11:25:47 -0300 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Date: Sat, 2 Aug 2003 11:25:42 -0300 Message-ID: <30F0523D384016498241055B0311A0722ABC0E@equital-mail.equital.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Confusion Thread-Index: AcNZAfSpQ33wo46BTJOKLju12BcLGw== From: "Alejandro Martinez" To: X-MailScanner-Information: Please contact the ISP for more information X-MailScanner: Found to be clean Subject: [Dovecot] Confusion X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Aug 2003 14:25:58 -0000 X-UID: 1286 Status: O Content-Length: 1167 Hi, I have a great confusion about mbox, maildir. I use a passwd-file to authenticate users, because I want to use non = local users. I have a test user in that file that is this: test:VGRAafc3NHJwI:502:100:Usuario = Virtual:/var/spool/mail/virtual/test:/no/shell I create inside /var/spool/mail/virtual/test a folder Maildir and inside = Maildir /var/spool/mail/virtual/test/Maildir/cur/ /var/spool/mail/virtual/test/Maildir/new/ /var/spool/mail/virtual/test/Maildir/tmp/ I get an error when I login to the server admin@slk90 /$ telnet localhost 143 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. * OK dovecot ready. . login test test . OK Logged in. Connection closed by foreign host. The /var/spool/mail/error is this "Aug 2 08:46:46 slk90 imap(test): Failed to create storage with data: = /var/spool/mail/virtual/test/Maildir" I've tried setting default_mail_env =3D maildir:~/Maildir and = mbox:~/Maildir, but nothing work. Any help ? Regards. --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.506 / Virus Database: 303 - Release Date: 01/08/2003 =20 From eskimoe@ananzi.co.za Sat Aug 2 17:55:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 99EEE238B6; Sat, 2 Aug 2003 17:55:20 +0300 (EEST) Received: from sun.com (port-212-202-37-84.reverse.qsc.de [212.202.37.84]) by danu.procontrol.fi (Postfix) with SMTP id AE98723866 for ; Sat, 2 Aug 2003 17:55:13 +0300 (EEST) Received: (qmail 7766 invoked by uid 1000); 2 Aug 2003 14:58:29 -0000 Date: Sat, 2 Aug 2003 16:58:29 +0200 From: Moe Webber To: dovecot@procontrol.fi Subject: Re: [Dovecot] corrupt mbox, mailboxes not found, and message read status Message-ID: <20030802145828.GA6089@woom.net> Mail-Followup-To: Moe Webber , dovecot@procontrol.fi References: <1059620312.1057.313.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1059620312.1057.313.camel@hurina> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Aug 2003 14:55:20 -0000 X-UID: 1287 Status: O On Thu, Jul 31, 2003 at 05:58:32AM +0300, Timo Sirainen wrote: > X-Keywords have been used for a long time now. It's possible to set > \Seen flag for messages downloaded with POP3, but I don't know if it's > worth the trouble. Who uses POP3 and IMAP mixed anyway? Why does dovecot support POP3 if you don't intend that kind of usage? From tss@iki.fi Sat Aug 2 19:53:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8AE2F23866; Sat, 2 Aug 2003 19:53:06 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A639923865 for ; Sat, 2 Aug 2003 19:53:04 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 6FAAA5C896A8 for ; Sat, 2 Aug 2003 19:53:04 +0300 (EEST) Subject: Re: [Dovecot] corrupt mbox, mailboxes not found, and message read status From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030802145828.GA6089@woom.net> References: <1059620312.1057.313.camel@hurina> <20030802145828.GA6089@woom.net> Content-Type: text/plain Message-Id: <1059843183.410.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 02 Aug 2003 19:53:04 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Aug 2003 16:53:06 -0000 X-UID: 1288 Status: O On Sat, 2003-08-02 at 17:58, Moe Webber wrote: > On Thu, Jul 31, 2003 at 05:58:32AM +0300, Timo Sirainen wrote: > > X-Keywords have been used for a long time now. It's possible to set > > \Seen flag for messages downloaded with POP3, but I don't know if it's > > worth the trouble. Who uses POP3 and IMAP mixed anyway? > > Why does dovecot support POP3 if you don't intend that kind of usage? It's useful to support different users who use either POP3 or IMAP, but a same user using both of them can't get really sensible behaviour in any case. But I guess using POP3 normally and IMAP webmail occationally is good enough excuse to save the \Seen flags. From tss@iki.fi Sat Aug 2 19:56:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 97D7A238C5; Sat, 2 Aug 2003 19:56:18 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 13DD223866 for ; Sat, 2 Aug 2003 19:56:17 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D36BD5C896A8 for ; Sat, 2 Aug 2003 19:56:16 +0300 (EEST) Subject: Re: [Dovecot] Confusion From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <30F0523D384016498241055B0311A0722ABC0E@equital-mail.equital.com> References: <30F0523D384016498241055B0311A0722ABC0E@equital-mail.equital.com> Content-Type: text/plain Message-Id: <1059843376.417.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 02 Aug 2003 19:56:16 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Aug 2003 16:56:18 -0000 X-UID: 1289 Status: O On Sat, 2003-08-02 at 17:25, Alejandro Martinez wrote: > "Aug 2 08:46:46 slk90 imap(test): Failed to create storage with data: /var/spool/mail/virtual/test/Maildir" Your settings looked fine, but are the directory permissions correct? > I've tried setting default_mail_env = maildir:~/Maildir and mbox:~/Maildir, but nothing work. "default_mail_env = maildir:~/Maildir" should give you a better error message. Possibly about permissions, missing directories or something. From tss@iki.fi Mon Aug 4 03:35:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3B33023866; Mon, 4 Aug 2003 03:35:36 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 1AC4F23865 for ; Mon, 4 Aug 2003 03:35:34 +0300 (EEST) Date: Mon, 4 Aug 2003 03:35:33 +0300 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: multipart/mixed; boundary=Apple-Mail-11-45755179 From: Timo Sirainen To: dovecot@procontrol.fi Message-Id: <8F10FB9E-C613-11D7-9D22-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) Subject: [Dovecot] Some benchmarking X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 00:35:36 -0000 X-UID: 1290 Status: O Content-Length: 4249 --Apple-Mail-11-45755179 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed So I finally got the new mail caching code fully working in normal conditions. Index rebuilding and some error correction still needs a bit work. mbox is also still broken. Anyway, I was mostly interested how fast Dovecot now works with my 367000 LKML mails, but thought I'd have to get something to compare the results against, so here's Dovecot vs. Courier. Results against older Dovecot would have been pretty boring, the older Dovecot could never perform threading without opening all the files and reading References-headers from them. Sorting would could have been done from cache if IMAP ENVELOPEs were cached, I'd estimate maybe 2-3x larger user CPU usage with it and a _lot_ larger cache file since it would have stored from, to, etc. fields in it. Results against Cyrus would be interesting. I'll probably do those sometimes later too.. Last I checked, Cyrus was very slow at inserting the mails into it's database, it took .. was it 1-3 hours to insert all those mails, while a simple copying took maybe 20 mins. Anyway, Cyrus's caching is pretty dummy as well so I'd expect Dovecot to be many times faster in threading and likely somewhat faster in sorting. --Apple-Mail-11-45755179 Content-Disposition: attachment; filename=dovecot-new-benchmarks.txt Content-Transfer-Encoding: 7bit Content-Type: text/plain; x-unix-mode=0640; name="dovecot-new-benchmarks.txt" Maildir: Linux Kernel Mailing List with 367918 mails, total of 1,9GB. NOTE: The total times are heavily affected by disk I/O. In these tests the index files are cached in memory by OS. The files themselves are mostly uncached (I flushed the cache by reading another 2GB file 3 times). System: 1GHz AMD Athlon CPU, 1GB RAM, 120GB IDE disk, Linux 2.4.21, XFS filesystem DOVECOT 0.99.11 --------------- - NOTE: Debugging enabled, disabling it might give slightly lower user CPU times 1) select mailbox for the first time 2.85s user 2.20s system 55% cpu 9.035 total 2) select mailbox for second time 0.01s user 0.02s system 127% cpu 0.024 total 3) resync cur/ directory (touch cur, select mailbox) 2.91s user 0.55s system 77% cpu 4.483 total 4) "uid thread references us-ascii all" for the first time 67.27s user 41.25s system 27% cpu 6:30.85 total 5) "uid thread references us-ascii all" for the second time (uses indexes) 30.39s user 0.25s system 95% cpu 32.055 total 6) "uid sort (date) us-ascii all" (uses indexes that threading created) 22.88s user 0.13s system 99% cpu 23.048 total 7) "uid sort (subject) us-ascii all" (uses indexes that threading created) 38.41s user 0.15s system 99% cpu 38.708 total size of created index file: 4636252 .imap.index 121513984 .imap.index.cache 8) cache file compression 4.21s user 1.42s system 26% cpu 21.270 total 113536000 .imap.index.cache Compression had only minimal effect on performance. Compression isn't usually done until 30% of file consists of old data for expunged messages. COURIER 1.72 ------------ 1) select mailbox for the first time 4.93s user 0.51s system 80% cpu 6.762 total - slightly faster since it doesn't have to write 21MB of index files 2) select mailbox for second time - courier doesn't have a indexes so this is equilevant to 3) 3) resync cur/ directory (touch cur, select mailbox) 12.91s user 0.42s system 100% cpu 13.324 total - oops, slower than generating the uids first time. slow hashes or something.. 4) "uid thread references us-ascii all" for the first time 606.94s user 69.56s system 64% cpu 17:22.02 total - that's 10x slower in user CPU. Over 2.5x slower in total time. 5) "uid thread references us-ascii all" for the second time - courier doesn't have indexes, so this is equilevant to 4) 6) "uid sort (date) us-ascii all" 442.58s user 55.11s system 61% cpu 13:28.79 total - courier doesn't have indexes, so it has to open all mail files. 7) "uid sort (subject) us-ascii all" 444.13s user 56.82s system 59% cpu 14:03.14 total - courier doesn't have indexes, so it has to open all mail files --Apple-Mail-11-45755179-- From charlie@rubberduck.com Mon Aug 4 06:25:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D68AA23866; Mon, 4 Aug 2003 06:25:51 +0300 (EEST) Received: from lazy.spodder.com (unknown [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id B53E62384C for ; Mon, 4 Aug 2003 06:25:43 +0300 (EEST) Received: from machine.internal.schools.net.au (unknown [203.22.23.246]) by lazy.spodder.com (Postfix) with ESMTP id A15969077 for ; Mon, 4 Aug 2003 13:24:22 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 501) id 1228B115324; Mon, 4 Aug 2003 13:25:31 +1000 (EST) Date: Mon, 4 Aug 2003 13:25:30 +1000 From: Charlie Allom To: dovecot@procontrol.fi Message-ID: <20030804032530.GB1888@myinternet.com.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="MfFXiAuoTsnnDAfZ" Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] why wont /usr/pkg/libexec/dovecot/imap see my Maildir X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 03:25:52 -0000 X-UID: 1291 Status: O Content-Length: 1338 --MfFXiAuoTsnnDAfZ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable When I invoke /usr/pkg/libexec/dovecot/imap from the command loine on the mail host, it logs me in, but won't see my emails: 13:22 yeled@lazy:~$ /usr/pkg/libexec/dovecot/imap * PREAUTH [CAPABILITY IMAP4rev1 SORT THREAD=3DREFERENCES MULTIAPPEND * UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED] Logged in * as yeled 0 select inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] * Flags permitted. * 0 EXISTS * 0 RECENT * OK [UIDVALIDITY 1059959635] UIDs valid * OK [UIDNEXT 1] Predicted next UID 0 OK [READ-WRITE] Select completed. I know I have many emails in there, and I can see them when I login via telnet localhost 443. Any tips? would be nice to use fetchmail with ssh here. C. --=20 charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --MfFXiAuoTsnnDAfZ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (Darwin) iD8DBQE/LdIqqiZDwhSqeUERAsmCAJ9RHUN3HTIC1H4/na8hE/LF7JDXpQCggeM7 nlHp8nAAH7eCOW3Aa5mUfCo= =BRLw -----END PGP SIGNATURE----- --MfFXiAuoTsnnDAfZ-- From tss@iki.fi Mon Aug 4 06:46:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C292823866; Mon, 4 Aug 2003 06:46:03 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 744D32384C for ; Mon, 4 Aug 2003 06:46:01 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 468D15C896A2 for ; Mon, 4 Aug 2003 06:46:01 +0300 (EEST) Subject: Re: [Dovecot] why wont /usr/pkg/libexec/dovecot/imap see my Maildir From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030804032530.GB1888@myinternet.com.au> References: <20030804032530.GB1888@myinternet.com.au> Content-Type: text/plain Message-Id: <1059968756.417.175.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 04 Aug 2003 06:45:56 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 03:46:03 -0000 X-UID: 1292 Status: O Content-Length: 1178 On Mon, 2003-08-04 at 06:25, Charlie Allom wrote: > When I invoke /usr/pkg/libexec/dovecot/imap from the command loine on > the mail host, it logs me in, but won't see my emails: .. > I know I have many emails in there, and I can see them when I login > via telnet localhost 443. I'd guess it's because you have MAIL environment pointing to some mbox file. Try "unset MAIL", or "export MAIL=~/Maildir" before running imap. Note that imap binary doesn't read your configuration file at all, so if you've changed any defaults you'll have to give them in environment. Hmm. Maybe it would be useful to add an option to dovecot binary to read configuration (which it does always anyway) and then exec() a given binary with the configuration moved into environment. Something like: dovecot --exec /usr/pkg/libexec/imap/imap Or something even simpler, since it can read the binary path from configuration anyway: dovecot --exec-mail imap Another optional feature that I was thinking is to allow users to override default settings using ~/.dovecotrc file. It would be mostly useful for namespace configuration and maybe setting some client-specific workarounds or optimizations. From charlie@rubberduck.com Mon Aug 4 07:44:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AD1B023866; Mon, 4 Aug 2003 07:44:35 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 4DD7923865 for ; Mon, 4 Aug 2003 07:44:31 +0300 (EEST) Received: from machine.internal.schools.net.au (unknown [203.22.23.246]) by lazy.spodder.com (Postfix) with ESMTP id 6F78B8F56; Mon, 4 Aug 2003 14:43:15 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 501) id 80695119397; Mon, 4 Aug 2003 14:25:40 +1000 (EST) Date: Mon, 4 Aug 2003 14:25:40 +1000 From: Charlie Allom To: Timo Sirainen Subject: Re: [Dovecot] why wont /usr/pkg/libexec/dovecot/imap see my Maildir Message-ID: <20030804042540.GI1888@myinternet.com.au> References: <20030804032530.GB1888@myinternet.com.au> <1059968756.417.175.camel@hurina> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ijf6z65S790CMqo8" Content-Disposition: inline In-Reply-To: <1059968756.417.175.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 04:44:35 -0000 X-UID: 1293 Status: O Content-Length: 1572 --ijf6z65S790CMqo8 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Aug 04, 2003 at 06:45:56AM +0300, Timo Sirainen wrote: > On Mon, 2003-08-04 at 06:25, Charlie Allom wrote: > > When I invoke /usr/pkg/libexec/dovecot/imap from the command loine on > > the mail host, it logs me in, but won't see my emails: > .. > > I know I have many emails in there, and I can see them when I login > > via telnet localhost 443. >=20 > I'd guess it's because you have MAIL environment pointing to some mbox > file. Try "unset MAIL", or "export MAIL=3D~/Maildir" before running imap. > Note that imap binary doesn't read your configuration file at all, so if > you've changed any defaults you'll have to give them in environment. You're right. I thought it would be along these lines .. Thanks! > Hmm. Maybe it would be useful to add an option to dovecot binary to read > configuration (which it does always anyway) and then exec() a given > binary with the configuration moved into environment. Something like: Well I'll leave this up to you, you're doing very well so far :) --=20 charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --ijf6z65S790CMqo8 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (Darwin) iD8DBQE/LeBEqiZDwhSqeUERAvmGAJ0ZwsmWMZWKj3iyhENIpwWBLkwPYwCgl9tK 39h/3AywWSSHlnAcKrTbIcU= =0//y -----END PGP SIGNATURE----- --ijf6z65S790CMqo8-- From matthias.andree@gmx.de Mon Aug 4 11:43:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EA92023866; Mon, 4 Aug 2003 11:43:56 +0300 (EEST) Received: from m2a2.dyndns.org (p50877B95.dip.t-dialin.net [80.135.123.149]) by danu.procontrol.fi (Postfix) with ESMTP id 2539C23865 for ; Mon, 4 Aug 2003 11:43:53 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 2F68D7634C; Mon, 4 Aug 2003 10:43:51 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] corrupt mbox, mailboxes not found, and message read status In-Reply-To: <1059620312.1057.313.camel@hurina> (Timo Sirainen's message of "31 Jul 2003 05:58:32 +0300") References: <1059620312.1057.313.camel@hurina> From: Matthias Andree Date: Mon, 04 Aug 2003 10:43:51 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 08:43:57 -0000 X-UID: 1294 Status: O Timo Sirainen writes: > X-Keywords have been used for a long time now. It's possible to set > \Seen flag for messages downloaded with POP3, but I don't know if it's > worth the trouble. Who uses POP3 and IMAP mixed anyway? I do. In fact, many people do that handle their mail from various sites. If you claim Courier-IMAP compatibility, you'll have to do the marking, for Courier-IMAP does it, too. -- Matthias Andree From matthias.andree@gmx.de Mon Aug 4 11:44:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 08B48238B6; Mon, 4 Aug 2003 11:44:28 +0300 (EEST) Received: from m2a2.dyndns.org (p50877B95.dip.t-dialin.net [80.135.123.149]) by danu.procontrol.fi (Postfix) with ESMTP id AB98923865 for ; Mon, 4 Aug 2003 11:44:23 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id CCB5C7634C; Mon, 4 Aug 2003 10:44:22 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] corrupt mbox, mailboxes not found, and message read status In-Reply-To: <1059843183.410.17.camel@hurina> (Timo Sirainen's message of "02 Aug 2003 19:53:04 +0300") References: <1059620312.1057.313.camel@hurina> <20030802145828.GA6089@woom.net> <1059843183.410.17.camel@hurina> From: Matthias Andree Date: Mon, 04 Aug 2003 10:44:22 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 08:44:28 -0000 X-UID: 1295 Status: O Timo Sirainen writes: > It's useful to support different users who use either POP3 or IMAP, but > a same user using both of them can't get really sensible behaviour in > any case. For sensible use, POP3 supports UIDL. -- Matthias Andree From jens@freebsdforum.de Tue Aug 5 21:30:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E6AB723866; Tue, 5 Aug 2003 21:30:14 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id AA99E23865 for ; Tue, 5 Aug 2003 21:30:07 +0300 (EEST) Received: from localhost (localhost [213.133.103.207])26CD2114015 for ; Tue, 5 Aug 2003 20:29:56 +0200 (CEST) From: Jens Gutzeit To: dovecot@procontrol.fi Date: Tue, 5 Aug 2003 20:29:37 +0200 User-Agent: KMail/1.5.3 MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200308052030.09278.jens@freebsdforum.de> Subject: [Dovecot] compile with dietlibc X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Aug 2003 18:30:15 -0000 X-UID: 1296 Status: O =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi all, I'm used to test the software which I use with dietlibc, just to see if it= =20 could run without the bloat of glibc. While compiling dovecot 0.99.10 I got these errors: In file included from lib.h:20, from alarm-hup.c:26: compat.h:30: conflicting types for `uint_fast32_t' /opt/diet/include/stdint.h:25: previous declaration of `uint_fast32_t' I've solved this in a dirty way, but is this something which could be fixed= in=20 the future? Thanks in advance, Jens Gutzeit =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/L/etLPHiyaqJLscRAuNGAJ9jlOQzx86T+NS9h7FfjoDi86R4ygCgs6gb 1XyNB93ybwiG4gFatz797qo=3D =3DWZod =2D----END PGP SIGNATURE----- From tss@iki.fi Tue Aug 5 22:44:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 511EC2387F; Tue, 5 Aug 2003 22:44:45 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 742902384C for ; Tue, 5 Aug 2003 22:44:40 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E0ECA5C896A2 for ; Tue, 5 Aug 2003 22:44:39 +0300 (EEST) Subject: Re: [Dovecot] compile with dietlibc From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <200308052030.09278.jens@freebsdforum.de> References: <200308052030.09278.jens@freebsdforum.de> Content-Type: text/plain Message-Id: <1060112679.410.193.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 05 Aug 2003 22:44:39 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Aug 2003 19:44:45 -0000 X-UID: 1297 Status: O Content-Length: 1324 On Tue, 2003-08-05 at 21:29, Jens Gutzeit wrote: > compat.h:30: conflicting types for `uint_fast32_t' > /opt/diet/include/stdint.h:25: previous declaration of `uint_fast32_t' > > I've solved this in a dirty way, but is this something which could be fixed in > the future? Try this patch: Index: configure.in =================================================================== RCS file: /home/cvs/dovecot/configure.in,v retrieving revision 1.142 diff -u -r1.142 configure.in --- configure.in 2 Aug 2003 17:38:15 -0000 1.142 +++ configure.in 5 Aug 2003 19:43:05 -0000 @@ -478,13 +478,19 @@ AC_MSG_RESULT($i_cv_type_$1) ]) -AC_CHECKTYPE2(uintmax_t, [#include ]) +dnl some systems don't have stdint.h, but still have some of the types +dnl defined elsewhere +AC_CHECK_HEADER(stdint.h, [ + stdint_include="#include " +]) + +AC_CHECKTYPE2(uintmax_t, [$stdint_include]) if test $i_cv_type_uintmax_t = yes; then AC_DEFINE(HAVE_UINTMAX_T,, Define if you have uintmax_t (C99 type)) fi dnl use separate check, eg. Solaris 8 has uintmax_t but not uint_fast32_t -AC_CHECKTYPE2(uint_fast32_t, [#include ]) +AC_CHECKTYPE2(uint_fast32_t, [$stdint_include]) if test $i_cv_type_uint_fast32_t = yes; then AC_DEFINE(HAVE_UINT_FAST32_T,, Define if you have uint_fast32_t (C99 type)) fi From jens@freebsdforum.de Tue Aug 5 23:29:21 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8B1202387F; Tue, 5 Aug 2003 23:29:21 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id E527D23866 for ; Tue, 5 Aug 2003 23:29:18 +0300 (EEST) Received: from localhost (localhost [213.133.103.207])C808E1141A6 for ; Tue, 5 Aug 2003 22:29:08 +0200 (CEST) From: Jens Gutzeit To: dovecot@procontrol.fi Subject: Re: [Dovecot] compile with dietlibc Date: Tue, 5 Aug 2003 22:29:12 +0200 User-Agent: KMail/1.5.3 References: <200308052030.09278.jens@freebsdforum.de> <1060112679.410.193.camel@hurina> In-Reply-To: <1060112679.410.193.camel@hurina> MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200308052229.22349.jens@freebsdforum.de> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Aug 2003 20:29:21 -0000 X-UID: 1298 Status: O -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tuesday 05 August 2003 21:44, Timo Sirainen wrote: > > Try this patch: Thanks you, it works now. Jens -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/MBOeLPHiyaqJLscRAtFoAJ9qNB2LWKgltsnwowioR1rtqOrUCgCfepHU CcwtFhm6AYx33gtq6OhtlF8= =+4BE -----END PGP SIGNATURE----- From esj@harvee.org Wed Aug 6 05:32:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 437072387F; Wed, 6 Aug 2003 05:32:30 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 440CC23866 for ; Wed, 6 Aug 2003 05:32:27 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h762WOpg017325 for ; Tue, 5 Aug 2003 22:32:25 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 5 Aug 2003 22:32:21 -0400 Message-ID: <3F30685A.90604@harvee.org> Date: Tue, 05 Aug 2003 22:30:50 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030806:dovecot@procontrol.fi:069c159a21ddedfc Subject: [Dovecot] thinking seriously about converting X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 02:32:30 -0000 X-UID: 1299 Status: O to dovecot from UW imap. I think I will go all the way to maildir while I'm at it. I was having performance problems with mbox format files and converted to mbx but it's not really yielding a huge performance gain. Deletes and moves are still rather slow at times. my mailboxes are typically 2000 to 5000 messages. I've scanned the mailing lists a bit and picked up some hints on the conversion. Any bits of advice before I convert? Since it's only my own account I'm converting (my wife likes mutt), I'm torn between two different ways of converting the mailboxes. First is to convert all of the mbx format mailboxes back to mbox. Then convert from mbox to maildir. Second is running both imap server simultaneously (obviously one on a different port number) and running some form of a tool to read from one imap server and write to the other. any better ideas? many thanks ---eric From lesliev@icoc.co.za Wed Aug 6 11:46:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3258623866; Wed, 6 Aug 2003 11:46:41 +0300 (EEST) Received: from acesonline.org.za (unknown [196.37.98.115]) by danu.procontrol.fi (Postfix) with ESMTP id 15FBD23865 for ; Wed, 6 Aug 2003 11:46:38 +0300 (EEST) Received: from ASSP-nospam (localhost [127.0.0.1]) by acesonline.org.za (Postfix) with ESMTP id A7A9CF6E5 for ; Wed, 6 Aug 2003 10:52:21 -0700 (PDT) Received: from 196.37.98.116 ([196.37.98.116] helo=\[192\.168\.40\.201\]) by ASSP-nospam ; 6 Aug 03 17:52:21 -0000 From: Leslie Viljoen To: Dovecot Content-Type: text/plain Organization: Africa Missions Message-Id: <1060159799.9628.1.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 06 Aug 2003 10:49:59 +0200 Content-Transfer-Encoding: 7bit X-Assp-Spam-Prob: 0.00000 Subject: [Dovecot] Slow bulk deleting X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: lesliev@icoc.co.za List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 08:46:41 -0000 X-UID: 1300 Status: O Hi! I am finding Dovecot very slow to delete large numbers of messages. IS this a known problem? Leslie From craig@askings.com.au Wed Aug 6 07:42:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 999232387F; Wed, 6 Aug 2003 07:42:41 +0300 (EEST) Received: from epsilon3.themadship.dhs.org (ppp187-159.lns1.bne1.internode.on.net [150.101.187.159]) by danu.procontrol.fi (Postfix) with ESMTP id 1054D23866 for ; Wed, 6 Aug 2003 07:42:37 +0300 (EEST) Received: from whitestar ([192.168.0.111]) by epsilon3.themadship.dhs.org with esmtp (Exim 4.20) id 19kG82-0004OH-Nf; Wed, 06 Aug 2003 14:42:26 +1000 Subject: Re: [Dovecot] thinking seriously about converting From: Craig Askings To: "Eric S. Johansson" In-Reply-To: <3F30685A.90604@harvee.org> References: <3F30685A.90604@harvee.org> Content-Type: text/plain Organization: Askings & Medina Business Services Message-Id: <1060144942.20088.8.camel@whitestar> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.3 Date: 06 Aug 2003 14:42:24 +1000 Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Wed, 06 Aug 2003 15:35:11 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 04:42:41 -0000 X-UID: 1301 Status: O Content-Length: 1567 I converted to dovecot from UWimap about 2 - 3 weeks ago. I kept my email in the original mbox format. The indexing that dovecot does make it much more responsive when I am checking my mailing list folders which 5000+ messages. Not to mention my girlfriends 1.2gig mbox file for one of her high traffic lists (Paintshop pro stuff) Not to mention it handles outlook express's brain dead way of checking imap folders much faster (i.e. login check one folder logout, loop ad infinitum) so no matter what email client you are using you should see an improvement. Craig On Wed, 2003-08-06 at 12:30, Eric S. Johansson wrote: > to dovecot from UW imap. I think I will go all the way to maildir while I'm at > it. I was having performance problems with mbox format files and converted to > mbx but it's not really yielding a huge performance gain. Deletes and moves are > still rather slow at times. my mailboxes are typically 2000 to 5000 messages. > > I've scanned the mailing lists a bit and picked up some hints on the conversion. > Any bits of advice before I convert? Since it's only my own account I'm > converting (my wife likes mutt), I'm torn between two different ways of > converting the mailboxes. First is to convert all of the mbx format mailboxes > back to mbox. Then convert from mbox to maildir. Second is running both imap > server simultaneously (obviously one on a different port number) and running > some form of a tool to read from one imap server and write to the other. > > any better ideas? > > many thanks > ---eric > > From tss@iki.fi Wed Aug 6 16:10:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6782723865; Wed, 6 Aug 2003 16:10:46 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B21792384C for ; Wed, 6 Aug 2003 16:10:44 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 1D9115C896A2 for ; Wed, 6 Aug 2003 16:10:44 +0300 (EEST) Subject: Re: [Dovecot] Slow bulk deleting From: Timo Sirainen To: Dovecot In-Reply-To: <1060159799.9628.1.camel@localhost.localdomain> References: <1060159799.9628.1.camel@localhost.localdomain> Content-Type: text/plain Message-Id: <1060175442.765.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 06 Aug 2003 16:10:42 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 13:10:46 -0000 X-UID: 1302 Status: O On Wed, 2003-08-06 at 11:49, Leslie Viljoen wrote: > I am finding Dovecot very slow to delete large numbers of messages. IS > this a known problem? Maildir or mbox? How many messages do you have in the mailbox? How many are you deleting? How slow is very slow? I don't remember it having any problems.. Well, except if you have a huge maildir with ext2/ext3 filesystem that's going to be slow. From matthias.andree@gmx.de Thu Aug 7 00:32:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4157E23866; Thu, 7 Aug 2003 00:32:39 +0300 (EEST) Received: from m2a2.dyndns.org (pD951F13E.dip.t-dialin.net [217.81.241.62]) by danu.procontrol.fi (Postfix) with ESMTP id 7DDFA23865 for ; Thu, 7 Aug 2003 00:32:35 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 69964197B; Wed, 6 Aug 2003 23:32:29 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] compile with dietlibc In-Reply-To: <1060112679.410.193.camel@hurina> (Timo Sirainen's message of "05 Aug 2003 22:44:39 +0300") References: <200308052030.09278.jens@freebsdforum.de> <1060112679.410.193.camel@hurina> From: Matthias Andree Date: Wed, 06 Aug 2003 23:32:29 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 21:32:39 -0000 X-UID: 1303 Status: O Timo Sirainen writes: > -AC_CHECKTYPE2(uintmax_t, [#include ]) > +dnl some systems don't have stdint.h, but still have some of the types > +dnl defined elsewhere > +AC_CHECK_HEADER(stdint.h, [ > + stdint_include="#include " > +]) > + > +AC_CHECKTYPE2(uintmax_t, [$stdint_include]) inttypes.h is supposed to pull in stdint.h if the latter is present according to IEEE Std 1003.1-2001, so an application will not need to use stdint.h explicitly. -- Matthias Andree From lesliev@icoc.co.za Thu Aug 7 14:18:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D47A823887; Thu, 7 Aug 2003 14:18:13 +0300 (EEST) Received: from acesonline.org.za (unknown [196.37.98.115]) by danu.procontrol.fi (Postfix) with ESMTP id 66F0123866 for ; Thu, 7 Aug 2003 14:18:07 +0300 (EEST) Received: from ASSP-nospam (localhost [127.0.0.1]) by acesonline.org.za (Postfix) with ESMTP id 7691FF71F for ; Thu, 7 Aug 2003 13:23:48 -0700 (PDT) Received: from 196.37.98.116 ([196.37.98.116] helo=\[192\.168\.40\.201\]) by ASSP-nospam ; 7 Aug 03 20:23:48 -0000 Subject: Re: [Dovecot] Slow bulk deleting From: Leslie Viljoen To: Dovecot In-Reply-To: <1060175442.765.6.camel@hurina> References: <1060159799.9628.1.camel@localhost.localdomain> <1060175442.765.6.camel@hurina> Content-Type: text/plain Organization: Africa Missions Message-Id: <1060255288.5950.18.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 07 Aug 2003 13:21:28 +0200 Content-Transfer-Encoding: 7bit X-Assp-Spam-Prob: 0.00000 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: lesliev@icoc.co.za List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2003 11:18:14 -0000 X-UID: 1304 Status: O Content-Length: 1064 Using reiserfs and Maildir. I had about 2000 messages, and when I select about 200 of them and press delete, the client seems to hang (I waited about 4 minutes). Outlook Express would pop up a message every minute and say that it hadn't heard from the server in 60 seconds. Evolution would just hang. If I then cancelled/killed the client and accessed the server again, the messages would be marked deleted and I could purge them without problems. I don't know IMAP protocol at all, but the log file seems I have an Outlook Express log file (500k) if that would help you at all. Les On Wed, 2003-08-06 at 15:10, Timo Sirainen wrote: > On Wed, 2003-08-06 at 11:49, Leslie Viljoen wrote: > > I am finding Dovecot very slow to delete large numbers of messages. IS > > this a known problem? > > Maildir or mbox? How many messages do you have in the mailbox? How many > are you deleting? How slow is very slow? > > I don't remember it having any problems.. Well, except if you have a > huge maildir with ext2/ext3 filesystem that's going to be slow. > > From jethro.binks@strath.ac.uk Fri Aug 8 01:26:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7279723887; Fri, 8 Aug 2003 01:26:53 +0300 (EEST) Received: from mailrouter1.strath.ac.uk (orkney.cc.strath.ac.uk [130.159.248.40]) by danu.procontrol.fi (Postfix) with ESMTP id 55EAB23866 for ; Fri, 8 Aug 2003 01:26:45 +0300 (EEST) Received: from defjam.cc.strath.ac.uk ([130.159.96.19]) by mailrouter1.strath.ac.uk with esmtp (Exim 3.32 #2) id 19ktDY-0001dq-00 for dovecot@procontrol.fi; Thu, 07 Aug 2003 23:26:44 +0100 Date: Thu, 7 Aug 2003 23:26:44 +0100 (BST) From: Jethro R Binks X-X-Sender: ras99101@defjam.cc.strath.ac.uk To: dovecot@procontrol.fi Message-ID: <20030807232152.Y17326-100000@defjam.cc.strath.ac.uk> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Direct RADIUS support, not via PAM X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2003 22:26:53 -0000 X-UID: 1305 Status: O Hi, I'm currently testing dovecot to authenticate user passwords against a radius server, via pam_radius_auth, and that seems to work fine. However, I am running other software (Exim MTA) that also authenticates via radius, using the radiusclient library from: http://www.mcs.de/~lf/radius/ Is there any chance that this library could be used by Dovecot as a further authentication option, and save me having two separate radius configurations for two different (but related) pieces of software, and the need to install pam_radius_auth, which I don't otherwise use? Jethro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jethro R Binks Computing Officer, IT Services University Of Strathclyde, Glasgow, UK From tss@iki.fi Fri Aug 8 02:08:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C23EF23887; Fri, 8 Aug 2003 02:08:06 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 51FE723866 for ; Fri, 8 Aug 2003 02:08:03 +0300 (EEST) Received: from iki.fi (localhost [127.0.0.1]) by shodan.irccrew.org (Postfix) with ESMTP id DC3732E003 for ; Fri, 8 Aug 2003 02:08:02 +0300 (EEST) Date: Fri, 8 Aug 2003 02:02:43 +0300 Subject: Re: [Dovecot] Direct RADIUS support, not via PAM Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030807232152.Y17326-100000@defjam.cc.strath.ac.uk> Message-Id: <40514EB5-C92B-11D7-88D0-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2003 23:08:06 -0000 X-UID: 1306 Status: O On Friday, Aug 8, 2003, at 01:26 Europe/Helsinki, Jethro R Binks wrote: > However, I am running other software (Exim MTA) that also authenticates > via radius, using the radiusclient library from: > > http://www.mcs.de/~lf/radius/ > > Is there any chance that this library could be used by Dovecot as a > further authentication option, and save me having two separate radius > configurations for two different (but related) pieces of software, and > the > need to install pam_radius_auth, which I don't otherwise use? That doesn't look very secure. It's coders didn't seem to understand how strncpy() and strncat() works. I wouldn't use it or consider including support for it in Dovecot before auditing the whole thing. From gmid-dovecot@m.gmane.org Sun Aug 10 00:59:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5B7E023887; Sun, 10 Aug 2003 00:59:25 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by danu.procontrol.fi (Postfix) with ESMTP id B11142387F for ; Sun, 10 Aug 2003 00:59:18 +0300 (EEST) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 19lblJ-00026v-00 for ; Sun, 10 Aug 2003 00:00:33 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@procontrol.fi Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19lbXb-0001wr-00 for ; Sat, 09 Aug 2003 23:46:23 +0200 Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 19lbWG-0003Lc-00 for ; Sat, 09 Aug 2003 23:45:00 +0200 From: Matthias Andree Date: Sat, 09 Aug 2003 21:14:03 +0200 Lines: 6 Message-ID: References: <8F10FB9E-C613-11D7-9D22-000393CC2E90@iki.fi> X-Complaints-To: usenet@sea.gmane.org User-Agent: tin/1.6.0-20030714 ("Vatersay") (UNIX) (Linux/2.4.22-pre10-ac1 (i686)) Sender: news Subject: [Dovecot] Re: Some benchmarking X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Aug 2003 21:59:25 -0000 X-UID: 1307 Status: O * Timo Sirainen [Mon, 4 Aug 2003 03:35:33 +0300]: > System: 1GHz AMD Athlon CPU, 1GB RAM, 120GB IDE disk, > Linux 2.4.21, XFS filesystem Ugh. ATA disk drive for mail server? Who'd do such things in production? :-> From mike@skew.org Sun Aug 10 01:42:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 128D523887; Sun, 10 Aug 2003 01:42:24 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by danu.procontrol.fi (Postfix) with ESMTP id E5E5D23866 for ; Sun, 10 Aug 2003 01:42:20 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.9/8.12.9) with ESMTP id h79MgIfD049094 for ; Sat, 9 Aug 2003 16:42:18 -0600 (MDT) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.9/8.12.9/Submit) id h79MgIrX049093 for dovecot@procontrol.fi; Sat, 9 Aug 2003 16:42:18 -0600 (MDT) From: Mike Brown Message-Id: <200308092242.h79MgIrX049093@chilled.skew.org> To: dovecot@procontrol.fi Date: Sat, 9 Aug 2003 16:42:18 -0600 (MDT) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, hits=0.8 required=5.0 tests=SPAM_PHRASE_02_03,SUPERLONG_LINE version=2.43 Subject: [Dovecot] CVS/test version config/build failures on FreeBSD X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Aug 2003 22:42:24 -0000 X-UID: 1308 Status: O Content-Length: 3479 While diagnosing a problem I was having with IMAP and SSL (which I ended up fixing by simply upgrading from 0.99.9.1 to 0.99.10, and possibly affected by upgrading openssl libs from 0.9.7a to 0.9.7.b), I attempted to try the CVS version of Dovecot. When using the CVS version, apparently I have to first generate 'configure' using autogen.sh (?). This was the result of that, on FreeBSD 4.8-STABLE (2003-08-06): # ./autogen.sh automake: configure.in: installing `./install-sh' automake: configure.in: installing `./mkinstalldirs' automake: configure.in: installing `./missing' configure.in: 3: required file `./config.h.in' not found automake: configure.in: installing `./depcomp' configure.in:3: warning: do not use m4_patsubst: use patsubst or m4_bpatsubst configure.in:13: warning: AC_ARG_PROGRAM invoked multiple times configure.in:1126: warning: do not use m4_regexp: use regexp or m4_bregexp autoheader: `config.h.in' is created And then... # ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... no checking for mawk... no checking for nawk... nawk checking whether make sets ${MAKE}... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking dependency style of gcc... gcc checking for strerror in -lcposix... no checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking dependency style of gcc... (cached) gcc checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for gcc option to accept ANSI C... none needed checking for inline... inline checking build system type... i386-unknown-freebsdelf4.8 checking host system type... i386-unknown-freebsdelf4.8 checking for ranlib... ranlib checking for ld used by GCC... /usr/libexec/elf/ld checking if the linker (/usr/libexec/elf/ld) is GNU ld... yes checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes loading cache /dev/null within ltconfig ./ltconfig: .: /dev/null: not a regular file ltconfig: you must specify a host type if you use `--no-verify' Try `ltconfig --help' for more information. configure: error: libtool configure failed I also attempted to use 0.99.11-test4 from http://dovecot.procontrol.fi/test/, but this failed to build: [...] Making all in maildir gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../src/lib -I../../../../src/lib-mail -I../../../../src/lib-imap -I../../../../src/lib-index -I../../../../src/lib-index/maildir -I../../../../src/lib-storage -I../../../../src/lib-storage/index -I/usr/local/include -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c maildir-copy.c make: don't know how to make ../../../../src/lib-storage/index/index-expunge.h. Stop *** Error code 1 Stop in /usr/local/src/dovecot/dovecot-0.99.11-test4/src/lib-storage/index. Just thought you'd like to know :) -Mike From mike@skew.org Sun Aug 10 18:24:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2301723896; Sun, 10 Aug 2003 18:24:11 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by danu.procontrol.fi (Postfix) with ESMTP id F363D2387F for ; Sun, 10 Aug 2003 18:24:06 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.9/8.12.9) with ESMTP id h7AFO4fD052791; Sun, 10 Aug 2003 09:24:04 -0600 (MDT) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.9/8.12.9/Submit) id h7AFNxJl052790; Sun, 10 Aug 2003 09:23:59 -0600 (MDT) From: Mike Brown Message-Id: <200308101523.h7AFNxJl052790@chilled.skew.org> Subject: Re: [Dovecot] CVS/test version config/build failures on FreeBSD In-Reply-To: <200308100932.57246.dom@wirespeed.org.uk> "from Dominic Marks at Aug 10, 2003 09:32:56 am" To: dom@wirespeed.org.uk Date: Sun, 10 Aug 2003 09:23:58 -0600 (MDT) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, hits=0.0 required=5.0 tests=IN_REP_TO,QUOTED_EMAIL_TEXT,SPAM_PHRASE_05_08 version=2.43 cc: Mike Brown cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Aug 2003 15:24:11 -0000 X-UID: 1309 Status: O Dominic Marks wrote: > On Saturday 09 August 2003 10:42 pm, Mike Brown wrote: > > ./ltconfig: .: /dev/null: not a regular file > > ltconfig: you must specify a host type if you use `--no-verify' > > Try `ltconfig --help' for more information. > > configure: error: libtool configure failed > > You might want to duplicate most of the configure arguments from the > port. Ah, I see you're the port maintainer. Adding arguments didn't make a difference... ./configure --localstatedir=/var --with-ssl=openssl \ --with-ssldir=/var/dovecot/ssl --with-pop3d --with-pam \ CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib I infer that you have no trouble with the latest CVS version? From dom@wirespeed.org.uk Sun Aug 10 11:32:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 18B4623896; Sun, 10 Aug 2003 11:32:27 +0300 (EEST) Received: from carbon.btinternet.com (carbon.btinternet.com [194.73.73.92]) by danu.procontrol.fi (Postfix) with ESMTP id 2D25423866 for ; Sun, 10 Aug 2003 11:32:19 +0300 (EEST) Received: from host81-128-91-43.in-addr.btopenworld.com ([81.128.91.43] helo=192.168.0.6) by carbon.btinternet.com with esmtp (Exim 3.22 #23) id 19llcT-0000rj-00; Sun, 10 Aug 2003 09:32:05 +0100 From: Dominic Marks To: Mike Brown , dovecot@procontrol.fi Subject: Re: [Dovecot] CVS/test version config/build failures on FreeBSD Date: Sun, 10 Aug 2003 09:32:56 +0000 User-Agent: KMail/1.5.3 References: <200308092242.h79MgIrX049093@chilled.skew.org> In-Reply-To: <200308092242.h79MgIrX049093@chilled.skew.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200308100932.57246.dom@wirespeed.org.uk> X-Mailman-Approved-At: Sun, 10 Aug 2003 18:44:30 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dom@wirespeed.org.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Aug 2003 08:32:27 -0000 X-UID: 1310 Status: O Content-Length: 3880 On Saturday 09 August 2003 10:42 pm, Mike Brown wrote: > While diagnosing a problem I was having with IMAP and SSL (which I > ended up fixing by simply upgrading from 0.99.9.1 to 0.99.10, and > possibly affected by upgrading openssl libs from 0.9.7a to > 0.9.7.b), I attempted to try the CVS version of Dovecot. > > When using the CVS version, apparently I have to first generate > 'configure' using autogen.sh (?). This was the result of that, on > FreeBSD 4.8-STABLE (2003-08-06): > > # ./autogen.sh > automake: configure.in: installing `./install-sh' > automake: configure.in: installing `./mkinstalldirs' > automake: configure.in: installing `./missing' > configure.in: 3: required file `./config.h.in' not found > automake: configure.in: installing `./depcomp' > configure.in:3: warning: do not use m4_patsubst: use patsubst or > m4_bpatsubst configure.in:13: warning: AC_ARG_PROGRAM invoked > multiple times configure.in:1126: warning: do not use m4_regexp: > use regexp or m4_bregexp autoheader: `config.h.in' is created As far as I know these are harmless. > And then... > > # ./configure > checking for a BSD-compatible install... /usr/bin/install -c > checking whether build environment is sane... yes > checking for gawk... no > checking for mawk... no > checking for nawk... nawk > checking whether make sets ${MAKE}... yes > checking whether to enable maintainer-specific portions of > Makefiles... no checking for style of include used by make... GNU > checking for gcc... gcc > checking for C compiler default output... a.out > checking whether the C compiler works... yes > checking whether we are cross compiling... no > checking for suffix of executables... > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking dependency style of gcc... gcc > checking for strerror in -lcposix... no > checking for gcc... (cached) gcc > checking whether we are using the GNU C compiler... (cached) yes > checking whether gcc accepts -g... (cached) yes > checking dependency style of gcc... (cached) gcc > checking how to run the C preprocessor... gcc -E > checking for ANSI C header files... yes > checking for gcc option to accept ANSI C... none needed > checking for inline... inline > checking build system type... i386-unknown-freebsdelf4.8 > checking host system type... i386-unknown-freebsdelf4.8 > checking for ranlib... ranlib > checking for ld used by GCC... /usr/libexec/elf/ld > checking if the linker (/usr/libexec/elf/ld) is GNU ld... yes > checking for BSD-compatible nm... /usr/bin/nm -B > checking whether ln -s works... yes > loading cache /dev/null within ltconfig > ./ltconfig: .: /dev/null: not a regular file > ltconfig: you must specify a host type if you use `--no-verify' > Try `ltconfig --help' for more information. > configure: error: libtool configure failed You might want to duplicate most of the configure arguments from the port. > I also attempted to use 0.99.11-test4 from > http://dovecot.procontrol.fi/test/, but this failed to build: > > [...] > Making all in maildir > gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../src/lib > -I../../../../src/lib-mail -I../../../../src/lib-imap > -I../../../../src/lib-index -I../../../../src/lib-index/maildir > -I../../../../src/lib-storage > -I../../../../src/lib-storage/index -I/usr/local/include -g -O2 > -Wall -W -Wmissing-prototypes -Wmissing-declarations > -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c > maildir-copy.c make: don't know how to make > ../../../../src/lib-storage/index/index-expunge.h. Stop *** Error > code 1 Timo fixed this in CVS :-) > Stop in > /usr/local/src/dovecot/dovecot-0.99.11-test4/src/lib-storage/index. > > > Just thought you'd like to know :) > > -Mike Thanks, -- Dominic From tss@iki.fi Sun Aug 10 18:47:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ACED3238C5; Sun, 10 Aug 2003 18:47:04 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2CCFC23896 for ; Sun, 10 Aug 2003 18:47:02 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 588EF5C896A2 for ; Sun, 10 Aug 2003 18:47:00 +0300 (EEST) Subject: Re: [Dovecot] CVS/test version config/build failures on FreeBSD From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <200308092242.h79MgIrX049093@chilled.skew.org> References: <200308092242.h79MgIrX049093@chilled.skew.org> Content-Type: text/plain Message-Id: <1060530419.762.10.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 10 Aug 2003 18:47:00 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Aug 2003 15:47:04 -0000 X-UID: 1311 Status: O On Sun, 2003-08-10 at 01:42, Mike Brown wrote: > When using the CVS version, That's really not a good idea at the moment. The indexing code is still pretty broken there. > apparently I have to first generate 'configure' > using autogen.sh (?). Yes. > loading cache /dev/null within ltconfig > ./ltconfig: .: /dev/null: not a regular file > ltconfig: you must specify a host type if you use `--no-verify' > Try `ltconfig --help' for more information. > configure: error: libtool configure failed Looks like some automake/libtool incompatibility. You'll probably have to upgrade libtool. From dom@wirespeed.org.uk Sun Aug 10 21:07:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C9D91238C5; Sun, 10 Aug 2003 21:07:13 +0300 (EEST) Received: from zinc.btinternet.com (zinc.btinternet.com [194.73.73.148]) by danu.procontrol.fi (Postfix) with ESMTP id AE9BF23896 for ; Sun, 10 Aug 2003 21:07:09 +0300 (EEST) Received: from host81-128-91-43.in-addr.btopenworld.com ([81.128.91.43] helo=192.168.0.6) by zinc.btinternet.com with esmtp (Exim 3.22 #23) id 19luaw-00046S-00; Sun, 10 Aug 2003 19:07:06 +0100 From: Dominic Marks To: Mike Brown Subject: Re: [Dovecot] CVS/test version config/build failures on FreeBSD Date: Sun, 10 Aug 2003 19:07:55 +0000 User-Agent: KMail/1.5.3 References: <200308101523.h7AFNxJl052790@chilled.skew.org> In-Reply-To: <200308101523.h7AFNxJl052790@chilled.skew.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200308101907.55918.dom@wirespeed.org.uk> X-Mailman-Approved-At: Sun, 10 Aug 2003 21:49:50 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dom@wirespeed.org.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Aug 2003 18:07:14 -0000 X-UID: 1312 Status: O Content-Length: 1648 On Sunday 10 August 2003 3:23 pm, Mike Brown wrote: > Dominic Marks wrote: > > On Saturday 09 August 2003 10:42 pm, Mike Brown wrote: > > > ./ltconfig: .: /dev/null: not a regular file > > > ltconfig: you must specify a host type if you use `--no-verify' > > > Try `ltconfig --help' for more information. > > > configure: error: libtool configure failed > > > > You might want to duplicate most of the configure arguments from > > the port. > > Ah, I see you're the port maintainer. Yep. > Adding arguments didn't make a difference... > > ./configure --localstatedir=/var --with-ssl=openssl \ > --with-ssldir=/var/dovecot/ssl --with-pop3d --with-pam \ > CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib > > I infer that you have no trouble with the latest CVS version? I keep a development copy of the port tracking the test releases and I have test4 building fine here. I had to add a hack to get the index-expunge.h file copied, but Timo has fixed that now. As someone else said, and I suspected, you probably need to update libtool. I'm using libtool 1.3.5_1 from ports. On an unrelated note do you have some abstract email configurations ? I hit Reply-All in KMail to your message and added your address to the To: and Cc: lines, but didn't include the mailing list. Alternatively it could be my email configurations :) or just KMail being odd. On an even more unrelated note: Timo: any chance of the kqueue ioloop patch I submitted to you being integrated ? I'm willing to have a go at removing the priorities stuff in ioloop and ioloop_{poll,select} if that would help. Cheers, -- Dominic From tss@iki.fi Sun Aug 10 21:56:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B6561238C5; Sun, 10 Aug 2003 21:56:32 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1679023866; Sun, 10 Aug 2003 21:56:31 +0300 (EEST) Date: Sun, 10 Aug 2003 21:56:34 +0300 Subject: Re: [Dovecot] CVS/test version config/build failures on FreeBSD Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: dom@wirespeed.org.uk From: Timo Sirainen In-Reply-To: <200308101907.55918.dom@wirespeed.org.uk> Message-Id: <5C941FBE-CB64-11D7-8736-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Aug 2003 18:56:32 -0000 X-UID: 1313 Status: O On Sunday, Aug 10, 2003, at 22:07 Europe/Helsinki, Dominic Marks wrote: > On an even more unrelated note: > Timo: any chance of the kqueue ioloop patch I submitted to you being > integrated ? I'm willing to have a go at removing the priorities > stuff in ioloop and ioloop_{poll,select} if that would help. Well, it's in TODO .. :) I did actually remove the priority stuff from ioloop, so if you'll just update the patch I'll commit it to CVS. From dom@wirespeed.org.uk Sun Aug 10 23:10:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E29AE238C5; Sun, 10 Aug 2003 23:10:17 +0300 (EEST) Received: from tungsten.btinternet.com (tungsten.btinternet.com [194.73.73.81]) by danu.procontrol.fi (Postfix) with ESMTP id 3E07F23896 for ; Sun, 10 Aug 2003 23:10:12 +0300 (EEST) Received: from host81-128-91-43.in-addr.btopenworld.com ([81.128.91.43] helo=192.168.0.6) by tungsten.btinternet.com with esmtp (Exim 3.22 #23) id 19lwW2-0007dI-00; Sun, 10 Aug 2003 21:10:10 +0100 From: Dominic Marks To: Timo Sirainen Subject: Re: [Dovecot] CVS/test version config/build failures on FreeBSD Date: Sun, 10 Aug 2003 21:10:51 +0000 User-Agent: KMail/1.5.3 References: <5C941FBE-CB64-11D7-8736-000393CC2E90@iki.fi> In-Reply-To: <5C941FBE-CB64-11D7-8736-000393CC2E90@iki.fi> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200308102110.52089.dom@wirespeed.org.uk> cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dom@wirespeed.org.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Aug 2003 20:10:18 -0000 X-UID: 1314 Status: O On Sunday 10 August 2003 6:56 pm, Timo Sirainen wrote: > On Sunday, Aug 10, 2003, at 22:07 Europe/Helsinki, Dominic Marks wrote: > > On an even more unrelated note: > > Timo: any chance of the kqueue ioloop patch I submitted to you > > being integrated ? I'm willing to have a go at removing the > > priorities stuff in ioloop and ioloop_{poll,select} if that would > > help. > > Well, it's in TODO .. :) I did actually remove the priority stuff > from ioloop, so if you'll just update the patch I'll commit it to > CVS. Should have it ready for review in a short time then :-) Thanks, -- Dominic From mike@skew.org Mon Aug 11 01:26:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 42B13238C9; Mon, 11 Aug 2003 01:26:39 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by danu.procontrol.fi (Postfix) with ESMTP id 179CA23866 for ; Mon, 11 Aug 2003 01:26:35 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.9/8.12.9) with ESMTP id h7AMQWio057358; Sun, 10 Aug 2003 16:26:32 -0600 (MDT) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.9/8.12.9/Submit) id h7AMQWXo057357; Sun, 10 Aug 2003 16:26:32 -0600 (MDT) From: Mike Brown Message-Id: <200308102226.h7AMQWXo057357@chilled.skew.org> Subject: Re: [Dovecot] CVS/test version config/build failures on FreeBSD In-Reply-To: <200308101907.55918.dom@wirespeed.org.uk> "from Dominic Marks at Aug 10, 2003 07:07:55 pm" To: dom@wirespeed.org.uk Date: Sun, 10 Aug 2003 16:26:32 -0600 (MDT) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, hits=-0.8 required=5.0 tests=IN_REP_TO,QUOTED_EMAIL_TEXT,SPAM_PHRASE_00_01 version=2.43 cc: Mike Brown cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Aug 2003 22:26:39 -0000 X-UID: 1315 Status: O Dominic Marks wrote: > As someone else said, and I suspected, you probably need to update > libtool. I'm using libtool 1.3.5_1 from ports. I was using 1.3.4 from the ports. I upgraded, but it did not help. Oh well, I'm not going to worry about it, since the dovecot port works for me. > On an unrelated note do you have some abstract email configurations ? > I hit Reply-All in KMail to your message and added your address to > the To: and Cc: lines, but didn't include the mailing list. My message came through the list with two Cc lines: one for me and one for the list (your address was in the To). I think it was rewritten at procontrol.fi, because it went out of my system with a single CC line. From zach.bagnall@bulletinwireless.com Mon Aug 11 01:53:21 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 19315238C9; Mon, 11 Aug 2003 01:53:21 +0300 (EEST) Received: from piranha.intra.jungledrum.co.nz (ns1.jungledrum.co.nz [210.54.149.34]) by danu.procontrol.fi (Postfix) with ESMTP id 1FDBB23866 for ; Mon, 11 Aug 2003 01:53:16 +0300 (EEST) Received: from piranha (localhost.localdomain [127.0.0.1]) by piranha.intra.jungledrum.co.nz (Postfix) with SMTP id 21CEA15006 for ; Mon, 11 Aug 2003 10:53:07 +1200 (NZST) Date: Mon, 11 Aug 2003 10:53:02 +1200 From: Zach Bagnall To: dovecot@procontrol.fi Subject: Re: [Dovecot] Re: Some benchmarking Message-Id: <20030811105302.30adbe66.zach.bagnall@bulletinwireless.com> In-Reply-To: References: <8F10FB9E-C613-11D7-9D22-000393CC2E90@iki.fi> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.9.0claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.eHzWPkIql_ZN0q" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Aug 2003 22:53:21 -0000 X-UID: 1316 Status: O --=.eHzWPkIql_ZN0q Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Sat, 09 Aug 2003 21:14:03 +0200, Matthias Andree wrote: > * Timo Sirainen [Mon, 4 Aug 2003 03:35:33 +0300]: > > System: 1GHz AMD Athlon CPU, 1GB RAM, 120GB IDE disk, > > Linux 2.4.21, XFS filesystem > > Ugh. ATA disk drive for mail server? Who'd do such things in > production?:-> People without a budget ;). At work we run dovecot for ~25 users (~7Gb of Maildir content in reiserfs) on an Athlon 1800 with 2x 40Gb 7k2 drives in RAID1 mirror using a 3Ware 2ch ATA RAID card. Zach. --=.eHzWPkIql_ZN0q Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE/NszS4jDFYT+aqaIRAsZ5AKCR0YWZsasZkFz+jbIp+iRuFKINlQCgkb6c GtlbS4rNnjakOA0Ac3k0fCc= =VAKC -----END PGP SIGNATURE----- --=.eHzWPkIql_ZN0q-- From tss@iki.fi Mon Aug 11 05:52:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BBC42238CB; Mon, 11 Aug 2003 05:52:20 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EE20B238C9; Mon, 11 Aug 2003 05:52:15 +0300 (EEST) Date: Mon, 11 Aug 2003 05:52:19 +0300 Subject: Re: [Dovecot] CVS/test version config/build failures on FreeBSD Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: Mike Brown From: Timo Sirainen In-Reply-To: <200308102226.h7AMQWXo057357@chilled.skew.org> Message-Id: Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi cc: dom@wirespeed.org.uk X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Aug 2003 02:52:20 -0000 X-UID: 1317 Status: O On Monday, Aug 11, 2003, at 01:26 Europe/Helsinki, Mike Brown wrote: > My message came through the list with two Cc lines: one for me and one > for the > list (your address was in the To). I think it was rewritten at > procontrol.fi, > because it went out of my system with a single CC line. Hmm. That's strange. Lets see if it happens with this message too.. From tss@iki.fi Mon Aug 11 06:01:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 71122238CE; Mon, 11 Aug 2003 06:01:39 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DF8F8238C9 for ; Mon, 11 Aug 2003 06:01:37 +0300 (EEST) Date: Mon, 11 Aug 2003 06:01:42 +0300 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <225BEF31-CBA8-11D7-B537-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) Subject: [Dovecot] 0.99.10-test5 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Aug 2003 03:01:39 -0000 X-UID: 1318 Status: O Again at http://dovecot.procontrol.fi/test/ if someone wants to test it. - new index file code should work now - mbox support is completely broken - caching isn't very smart yet. it always caches only what client requested at the time - header caching might have some problems actually now that I think of it.. I was anyway going to change a bit how it worked. From mem@mv.mv.com Tue Aug 12 23:20:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E5D2A238C9; Tue, 12 Aug 2003 23:20:32 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 62A3D23896 for ; Tue, 12 Aug 2003 23:20:27 +0300 (EEST) Received: (qmail 571 invoked by uid 101); 12 Aug 2003 16:20:24 -0400 From: "Mark E. Mallett" Date: Tue, 12 Aug 2003 16:20:24 -0400 To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10-test5 Message-ID: <20030812202024.GI18171@iridium.mv.net> References: <225BEF31-CBA8-11D7-B537-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <225BEF31-CBA8-11D7-B537-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Aug 2003 20:20:33 -0000 X-UID: 1319 Status: O On Mon, Aug 11, 2003 at 06:01:42AM +0300, Timo Sirainen wrote: > Again at http://dovecot.procontrol.fi/test/ if someone wants to test it. > > - new index file code should work now > - mbox support is completely broken We use both maildir and mbox here so I'll probably have to hold off until the unbreakening. (debreaking?) (just figured you might want that feedback). mm From dovecot@andreas.hanssen.name Tue Aug 12 23:24:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 26409238D3; Tue, 12 Aug 2003 23:24:24 +0300 (EEST) Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id 567872384C for ; Tue, 12 Aug 2003 23:24:19 +0300 (EEST) Received: (qmail 474 invoked from network); 12 Aug 2003 20:24:18 -0000 Received: from localhost (HELO lexx.infeline.org) (andreaha@127.0.0.1) by localhost with SMTP; 12 Aug 2003 20:24:18 -0000 Date: Tue, 12 Aug 2003 22:24:18 +0200 (CEST) From: Andreas Aardal Hanssen Sender: andreaha@lexx.infeline.org To: Dovecot mailing list Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Hardlinks in copy X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Aug 2003 20:24:24 -0000 X-UID: 1320 Status: O Hi, Dovecotters. In the Maildir code, dovecot-0.99.10/src/lib-storage/index/maildir/maildir-copy.c, I see that hardlinks are used. It seems that (line 185) if MAILDIR_COPY_WITH_HARDLINKS is exported, then copying is attempted by using link. Having problems reading the source / flow of control, I resort to this list. When a file is linked, the mtime is naturally kept on the destination. This gives the destination message the same internaldate as the original. The destination mailbox would then be likely to get an arrival with an earlier internaldate than its newest message. The IMAP protocol says to bump UIDVALIDITY when this happens. Does Dovecot always bump UIDVALIDITY when messages are copied, or is not the mtime used for internaldate? Best regards, Andreas -- Andreas Aardal Hanssen From rjhjr@cox.net Tue Aug 12 23:40:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A438F238D5; Tue, 12 Aug 2003 23:40:40 +0300 (EEST) Received: from lakemtao01.cox.net (lakemtao01.cox.net [68.1.17.244]) by danu.procontrol.fi (Postfix) with ESMTP id 4B8752384C for ; Tue, 12 Aug 2003 23:40:37 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao01.cox.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP id <20030812204036.WKOV7142.lakemtao01.cox.net@kongemord.krig.net> for ; Tue, 12 Aug 2003 16:40:36 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Tue, 12 Aug 2003 16:40:35 -0400 From: "Bob Hall" Date: Tue, 12 Aug 2003 16:40:35 -0400 To: Dovecot Mail List Message-ID: <20030812204035.GA14371@kongemord.krig.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] login w/ IMAP & LDAP X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Aug 2003 20:40:40 -0000 X-UID: 1321 Status: O Content-Length: 2277 I'm getting imap-login: Internal login failure: bob whenever I try to check mail. I'm new to mail server setup, new to IMAP, and I don't know a heck of a lot about authentication schemes. I've set up Dovecot as an IMAP server on FreeBSD 4.8. I've got OpenLDAP running on the same system. Users will access mail via Eudora on Windows and Macs, so that's how I'm testing. If I try to test Dovecot using IMAP commands via telnet, Dovecot tells me LOGIN BAD Error in IMAP command received by server. I also can't telnet via localhost; I have to specify the host name, so I'm connecting via the host's external interface. I have no problem connecting to localhost on ports not used by Dovecot. So I have two questions: 1) How do I correct my configuration to make login successful? 2) How can I test Dovecot without using an MUA? If I have to use an MUA, I can't distinguish between errors in the MUA and errors in the IMAP server. Thanks for any help with these two. Configuration follows. Eudora: Server configuration: IMAP IMAP Mailbox Location Prefix: /var/mail/bob/Mail Authentication Style: passwords dovecot.conf ---------------- protocols = imap imaps imap_listen = *:143 login_user = dovecot default_mail_env = mbox:/var/mail/%u/Mail auth_userdb = ldap /usr/local/etc/dovecot-ldap.conf auth_passdb = ldap /usr/local/etc/dovecot-ldap.conf auth_user = dovecot dovecot-ldap.conf ------------------- hosts = localhost dn = cn=dovecot,dc=domain,dc=tld dnpass = ********** ldap_version = 3 base = ou=accounts,dc=domain,dc=tld deref = never scope = subtree user_attrs = uid user_filter = (&(objectClass=inetOrgPerson)(uid=%u)) pass_attrs = uid,userPassword pass_filter = (&(objectClass=inetOrgPerson)(uid=%u)) default_pass_scheme = PLAIN slapd.conf ----------------- password-hash {CLEARTEXT} If I change this last to CRYPT (comment out the dovecot-ldap default_pass_scheme and change the slapd.conf password-hash to {CRYPT} and re-enter the password into LDAP), I get the same error. I have no problem accessing the LDAP data from the command line. If I comment out the dovecot-ldap.conf user_filter and pass_filter, I get dovecot-auth: ldap(bob): unknown user I interpret as meaning that the user_filter and pass_filter are necessary. Bob Hall From tss@iki.fi Tue Aug 12 23:41:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 19E2F23995; Tue, 12 Aug 2003 23:41:14 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 61D1F238D7 for ; Tue, 12 Aug 2003 23:41:11 +0300 (EEST) Date: Tue, 12 Aug 2003 23:41:13 +0300 Subject: Re: [Dovecot] Hardlinks in copy Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot mailing list Content-Transfer-Encoding: 7bit In-Reply-To: Message-Id: <502F8024-CD05-11D7-856B-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Aug 2003 20:41:14 -0000 X-UID: 1322 Status: O On Tuesday, Aug 12, 2003, at 23:24 Europe/Helsinki, Andreas Aardal Hanssen wrote: > When a file is linked, the mtime is naturally kept on the destination. > This gives the destination message the same internaldate as the > original. > The destination mailbox would then be likely to get an arrival with an > earlier internaldate than its newest message. Internaldate should be preserved while copying in any case. > The IMAP protocol says to > bump UIDVALIDITY when this happens. Where? From stefan@sels.com Wed Aug 13 02:33:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 85DD023993; Wed, 13 Aug 2003 02:33:11 +0300 (EEST) Received: from dsl-mail.kamp.net (mail.kamp-dsl.de [195.62.99.42]) by danu.procontrol.fi (Postfix) with SMTP id 5796B23896 for ; Wed, 13 Aug 2003 02:33:06 +0300 (EEST) Received: (qmail 6891 invoked by uid 505); 12 Aug 2003 23:33:05 -0000 Received: from stefan@sels.com by dsl-mail by uid 502 with qmail-scanner-1.14 (spamassassin: 2.43. Clear:. Processed in 0.072632 secs); 12 Aug 2003 23:33:05 -0000 Received: from unknown (HELO sels.com) (213.146.112.93) by dsl-mail.kamp.net with SMTP; 12 Aug 2003 23:33:05 -0000 Message-ID: <3F397957.8020204@sels.com> Date: Wed, 13 Aug 2003 01:33:43 +0200 From: Stefan Sels User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Mozilla X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Aug 2003 23:33:11 -0000 X-UID: 1323 Status: O Hi, I hope this problem is not answered before. Mozilla is making trouble with searching and subscribing folders. Do I have to change the "namespace" ? If I start a search (other than just in To & CC or subject) mozilla complains about a closed connection. A fresh mozilla installation just lists no folder beside "Inbox". Regards, Stefan Sels From tss@iki.fi Wed Aug 13 03:30:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6D905238CE; Wed, 13 Aug 2003 03:30:14 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 35EDD2384C for ; Wed, 13 Aug 2003 03:30:06 +0300 (EEST) Received: from iki.fi (unknown [192.168.10.209]) by oma.irssi.org (Postfix) with ESMTP id BCFFF5C896A2 for ; Wed, 13 Aug 2003 00:19:47 +0300 (EEST) Date: Wed, 13 Aug 2003 00:19:54 +0300 Subject: Re: [Dovecot] login w/ IMAP & LDAP Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <20030812204035.GA14371@kongemord.krig.net> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Aug 2003 00:30:14 -0000 X-UID: 1324 Status: O Content-Length: 1558 On Tuesday, Aug 12, 2003, at 23:40 Europe/Helsinki, Bob Hall wrote: > I'm getting > imap-login: Internal login failure: bob > whenever I try to check mail. I'm new to mail server setup, > new to IMAP, and I don't know a heck of a lot about authentication > schemes. There should be another error message before that line? > If I try > to test Dovecot using IMAP commands via telnet, Dovecot tells me > LOGIN BAD Error in IMAP command received by server. How did you try it? It should be: 1 login username password > I also can't telnet via localhost; I have to specify the host name, > so I'm connecting via the host's external interface. I have no > problem connecting to localhost on ports not used by Dovecot. I'd guess it's because localhost resolves to IPv6 localhost ::1, and Dovecot doesn't listen in IPv6 interfaces with *BSD fow now, since it requires two sockets. > So I have two questions: > 1) How do I correct my configuration to make login successful? The real error message should be in the logs, but I'd guess it's got something to do with user ids. What uids have you given to users in LDAP? Are they smaller than 500, which is the default minimum accepted uid? You could change first_valid_uid in config file. > Server configuration: IMAP > IMAP Mailbox Location Prefix: /var/mail/bob/Mail > Authentication Style: passwords Don't give any IMAP prefix to clients. > login_user = dovecot > auth_user = dovecot It's better not to use the same user for auth and login. Maybe I should add a check to disallow this entirely.. From rjhjr@cox.net Wed Aug 13 10:03:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1FE95238CE; Wed, 13 Aug 2003 10:03:37 +0300 (EEST) Received: from lakemtao02.cox.net (lakemtao02.cox.net [68.1.17.243]) by danu.procontrol.fi (Postfix) with ESMTP id 68AA52384C for ; Wed, 13 Aug 2003 10:03:33 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao02.cox.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP id <20030813070330.GDLT24359.lakemtao02.cox.net@kongemord.krig.net> for ; Wed, 13 Aug 2003 03:03:30 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 13 Aug 2003 03:03:31 -0400 From: "Bob Hall" Date: Wed, 13 Aug 2003 03:03:30 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] login w/ IMAP & LDAP Message-ID: <20030813070330.GA15468@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030812204035.GA14371@kongemord.krig.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Aug 2003 07:03:37 -0000 X-UID: 1325 Status: O Content-Length: 3641 Wow. Thanks for the rapid and detailed response! On Wed, Aug 13, 2003 at 12:19:54AM +0300, Timo Sirainen wrote: > On Tuesday, Aug 12, 2003, at 23:40 Europe/Helsinki, Bob Hall wrote: > > >I'm getting > > imap-login: Internal login failure: bob > >whenever I try to check mail. I'm new to mail server setup, > >new to IMAP, and I don't know a heck of a lot about authentication > >schemes. > > There should be another error message before that line? No. The complete log entries related to my last attempt to log in are Aug 12 21:46:31 kongemord imap-login: Internal login failure: bob [192.168.0.2] Aug 12 21:46:31 kongemord dovecot: child 14690 (auth) killed with signal 11 This is from maillog. > >If I try > >to test Dovecot using IMAP commands via telnet, Dovecot tells me > > LOGIN BAD Error in IMAP command received by server. > > How did you try it? It should be: > 1 login username password That's what I used. telnet imap 143 Trying xxx.xxx.xxx.xxx... Connected to imap.domain.tld. Escape character is '^]'. * OK dovecot ready. LOGIN dovecot secret LOGIN BAD Error in IMAP command received by server. > >I also can't telnet via localhost; I have to specify the host name, > >so I'm connecting via the host's external interface. I have no > >problem connecting to localhost on ports not used by Dovecot. > > I'd guess it's because localhost resolves to IPv6 localhost ::1, and > Dovecot doesn't listen in IPv6 interfaces with *BSD fow now, since it > requires two sockets. No, localhost resolves to 127.0.0.1. However, compiling Dovecot with the --disable-ipv6 flag fixed that problem. Now I can connect via localhost, but I can't LOGIN. Error is identical to above. In case it helps, here's my compile flags from the Makefile: CONFIGURE_ARGS+= --with-shadow --disable-ipv6 \ --localstatedir=/var --with-ldap --with-rawlog \ --without-vpopmail --without-pgsql --without-pam --with-rawlog doesn't seem to do anything. I've added the dovecot.rawlog directory to both the root home and my home, and nothing is showing up in either location, even though maillog continues to receive error messages. > >So I have two questions: > >1) How do I correct my configuration to make login successful? > > The real error message should be in the logs, but I'd guess it's got The error message I quoted is from the logs. > something to do with user ids. What uids have you given to users in > LDAP? Are they smaller than 500, which is the default minimum accepted > uid? You could change first_valid_uid in config file. I'm confused. In the documentation and schemas that come with OpenLDAP, a uid is a login. E.g. my account uid is 'bob'. Unix uses numeric uids, but if I'm using LDAP, I'm not accessing anything with numeric uids. posixAccount uses uidNumber, but I'm not using that class. > >Server configuration: IMAP > >IMAP Mailbox Location Prefix: /var/mail/bob/Mail > >Authentication Style: passwords > > Don't give any IMAP prefix to clients. OK. The Eudora documentation says I need it. This is why I want to be able to test w/out an MUA, so that I don't mix my client errors with my server errors. I've removed it, and I'm still getting the error message. > >login_user = dovecot > >auth_user = dovecot > > It's better not to use the same user for auth and login. Maybe I should > add a check to disallow this entirely.. I don't know enough about it to know why that's a bad idea, but I got it from a sample config file online. I've changed auth_user to dovecot-auth and I'm still getting the same error. Thanks again for the response. Bob Hall From tss@iki.fi Wed Aug 13 17:42:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 259FA238CE; Wed, 13 Aug 2003 17:42:07 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 592B62384C for ; Wed, 13 Aug 2003 17:42:03 +0300 (EEST) Date: Wed, 13 Aug 2003 17:42:09 +0300 Subject: Re: [Dovecot] login w/ IMAP & LDAP Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <20030813070330.GA15468@kongemord.krig.net> Message-Id: <513C13EF-CD9C-11D7-856B-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Aug 2003 14:42:07 -0000 X-UID: 1326 Status: O Content-Length: 2494 On Wednesday, Aug 13, 2003, at 10:03 Europe/Helsinki, Bob Hall wrote: >> There should be another error message before that line? > > No. The complete log entries related to my last attempt to log in are > > Aug 12 21:46:31 kongemord imap-login: Internal login failure: bob > [192.168.0.2] > Aug 12 21:46:31 kongemord dovecot: child 14690 (auth) killed with > signal 11 OK, so the problem is that dovecot-auth process crashes. Maybe it's because you didn't give homeDirectory? It's not really needed, but there was a bug when it wasn't given. Here's a patch to fix it: http://dovecot.procontrol.fi/patches/auth-no-homedir.patch > LOGIN dovecot secret All IMAP commands starts with a "tag", which can be pretty much any text. Add "x" or whatever before the LOGIN command. >> I'd guess it's because localhost resolves to IPv6 localhost ::1, and >> Dovecot doesn't listen in IPv6 interfaces with *BSD fow now, since it >> requires two sockets. > > No, localhost resolves to 127.0.0.1. However, compiling Dovecot with > the --disable-ipv6 flag fixed that problem. Now I can connect via > localhost, but I can't LOGIN. Error is identical to above. Well, that's a bit strange.. >> something to do with user ids. What uids have you given to users in >> LDAP? Are they smaller than 500, which is the default minimum accepted >> uid? You could change first_valid_uid in config file. > > I'm confused. In the documentation and schemas that come with OpenLDAP, > a uid is a login. E.g. my account uid is 'bob'. Unix uses numeric > uids, but if I'm using LDAP, I'm not accessing anything with numeric > uids. posixAccount uses uidNumber, but I'm not using that class. Dovecot still needs to map usernames to system UID numbers. If you want to use only one system UID, you can set user_global_uid and user_global_gid in dovecot-ldap.conf. Otherwise you'll need to set uidNumber and gidNumber for all users. >>> login_user = dovecot >>> auth_user = dovecot >> >> It's better not to use the same user for auth and login. Maybe I >> should >> add a check to disallow this entirely.. > > I don't know enough about it to know why that's a bad idea, but I got > it from a sample config file online. I've changed auth_user to > dovecot-auth and I'm still getting the same error. It's mostly just that login process is designed to be "safe" even if it contains some security holes. If other processes are running with same userid, the login process may be able to do some evil things to them. From rjhjr@cox.net Wed Aug 13 21:38:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 053C723996; Wed, 13 Aug 2003 21:38:47 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 5C36E238CE for ; Wed, 13 Aug 2003 21:38:41 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP id <20030813183840.PVRI23518.lakemtao03.cox.net@kongemord.krig.net> for ; Wed, 13 Aug 2003 14:38:40 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 13 Aug 2003 14:38:39 -0400 From: "Bob Hall" Date: Wed, 13 Aug 2003 14:38:39 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] login w/ IMAP & LDAP Message-ID: <20030813183839.GB44170@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030813070330.GA15468@kongemord.krig.net> <513C13EF-CD9C-11D7-856B-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <513C13EF-CD9C-11D7-856B-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Aug 2003 18:38:47 -0000 X-UID: 1327 Status: O Content-Length: 3730 On Wed, Aug 13, 2003 at 05:42:09PM +0300, Timo Sirainen wrote: > On Wednesday, Aug 13, 2003, at 10:03 Europe/Helsinki, Bob Hall wrote: > > >>There should be another error message before that line? > > > >No. The complete log entries related to my last attempt to log in are > > > >Aug 12 21:46:31 kongemord imap-login: Internal login failure: bob > >[192.168.0.2] > >Aug 12 21:46:31 kongemord dovecot: child 14690 (auth) killed with > >signal 11 > > OK, so the problem is that dovecot-auth process crashes. Maybe it's > because you didn't give homeDirectory? It's not really needed, but > there was a bug when it wasn't given. Here's a patch to fix it: > http://dovecot.procontrol.fi/patches/auth-no-homedir.patch I've never done a patch before, and I looked at the FBSD documentation on it, and couldn't figure out how it was done. So I modified my test entry in the LDAP directory and added posixAccount with homeDirectory and uidNumber and gidNumber. Restart OpenLDAP, retest, and same error message. > >LOGIN dovecot secret > > All IMAP commands starts with a "tag", which can be pretty much any > text. Add "x" or whatever before the LOGIN command. x login dovecot secret x NO Authentication failed. The dovecot Unix account and the dovecot LDAP entry have been assigned the same password. > >>I'd guess it's because localhost resolves to IPv6 localhost ::1, and > >>Dovecot doesn't listen in IPv6 interfaces with *BSD fow now, since it > >>requires two sockets. > > > >No, localhost resolves to 127.0.0.1. However, compiling Dovecot with > >the --disable-ipv6 flag fixed that problem. Now I can connect via > >localhost, but I can't LOGIN. Error is identical to above. > > Well, that's a bit strange.. > > >>something to do with user ids. What uids have you given to users in > >>LDAP? Are they smaller than 500, which is the default minimum accepted > >>uid? You could change first_valid_uid in config file. > > > >I'm confused. In the documentation and schemas that come with OpenLDAP, > >a uid is a login. E.g. my account uid is 'bob'. Unix uses numeric > >uids, but if I'm using LDAP, I'm not accessing anything with numeric > >uids. posixAccount uses uidNumber, but I'm not using that class. > > Dovecot still needs to map usernames to system UID numbers. If you want > to use only one system UID, you can set user_global_uid and > user_global_gid in dovecot-ldap.conf. Otherwise you'll need to set > uidNumber and gidNumber for all users. OK. I've added uidNumber and gidNumber for my LDAP test entry, and user_global_uid = 2000 user_global_gid = 6 6 is the mail group. 2000 is no one in particular. I added dovecot to the mail group, but since Dovecot runs as root, I don't think that's necessary. > >>>login_user = dovecot > >>>auth_user = dovecot > >> > >>It's better not to use the same user for auth and login. Maybe I > >>should > >>add a check to disallow this entirely.. > > > >I don't know enough about it to know why that's a bad idea, but I got > >it from a sample config file online. I've changed auth_user to > >dovecot-auth and I'm still getting the same error. > > It's mostly just that login process is designed to be "safe" even if it > contains some security holes. If other processes are running with same > userid, the login process may be able to do some evil things to them. OK. Dovecot (the app) runs under root. dovecot-auth (the process) runs under dovecot-auth (the user), imap-login runs under dovecot (the user), and nor the twain shall meet. Does that seem right? Sorry if I seem slow, but I'm really unfamiliar with mail servers and authentication. It takes me hours to think through your replies and apply them to what I've done. Bob Hall From tss@iki.fi Thu Aug 14 04:33:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5EA9A23996; Thu, 14 Aug 2003 04:33:33 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5C43D23896 for ; Thu, 14 Aug 2003 04:33:26 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2E6785C896A2 for ; Thu, 14 Aug 2003 04:33:26 +0300 (EEST) Subject: Re: [Dovecot] Mozilla From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3F397957.8020204@sels.com> References: <3F397957.8020204@sels.com> Content-Type: text/plain Message-Id: <1060824805.768.24.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 14 Aug 2003 04:33:26 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 01:33:33 -0000 X-UID: 1328 Status: O On Wed, 2003-08-13 at 02:33, Stefan Sels wrote: > Hi, > > I hope this problem is not answered before. > Mozilla is making trouble with searching and subscribing folders. > Do I have to change the "namespace" ? Namespace should be kept empty. > If I start a search (other than just in To & CC or subject) mozilla > complains about a closed connection. Is there anything in Dovecot's log file? /var/log/mail.log usually. Maybe it crashed. > A fresh mozilla installation just lists no folder beside "Inbox". Did Mozilla show only subscribed folders? Were they listed in subscription dialog? If not, some namespace issues. From tss@iki.fi Thu Aug 14 04:40:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D083B23996; Thu, 14 Aug 2003 04:40:54 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D23DF23896 for ; Thu, 14 Aug 2003 04:40:51 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 609805C896A2 for ; Thu, 14 Aug 2003 04:40:50 +0300 (EEST) Subject: Re: [Dovecot] login w/ IMAP & LDAP From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030813183839.GB44170@kongemord.krig.net> References: <20030813070330.GA15468@kongemord.krig.net> <513C13EF-CD9C-11D7-856B-000393CC2E90@iki.fi> <20030813183839.GB44170@kongemord.krig.net> Content-Type: text/plain Message-Id: <1060825250.766.33.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 14 Aug 2003 04:40:50 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 01:40:55 -0000 X-UID: 1329 Status: O Content-Length: 1251 On Wed, 2003-08-13 at 21:38, Bob Hall wrote: > > >Aug 12 21:46:31 kongemord dovecot: child 14690 (auth) killed with > > >signal 11 > I've never done a patch before, and I looked at the FBSD documentation > on it, and couldn't figure out how it was done. cd src/auth patch -p0 < auth-no-homedir.patch (I forgot to make the patch against root dir so the cd command is needed..) > So I modified my test > entry in the LDAP directory and added posixAccount with homeDirectory > and uidNumber and gidNumber. Restart OpenLDAP, retest, and same error > message. Well, since it's still crashing, check with gdb: ps ax|grep dovecot-auth -> get PID gdb /usr/local/libexec/dovecot/dovecot-auth PID continue Now try to login, and it should crash. Then type "bt" and copy&paste the output and mail it to me. http://dovecot.procontrol.fi/bugreport.html shows what the gdb output should look like. > x login dovecot secret > x NO Authentication failed. Yeah. User doesn't get very specific error messages, they're in the log file. > OK. Dovecot (the app) runs under root. dovecot-auth (the process) runs > under dovecot-auth (the user), imap-login runs under dovecot (the user), > and nor the twain shall meet. Does that seem right? That's fine. From rjhjr@cox.net Thu Aug 14 06:25:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E02612399A; Thu, 14 Aug 2003 06:25:16 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id B4E0023996 for ; Thu, 14 Aug 2003 06:25:09 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP id <20030814032508.SNSN13930.lakemtao04.cox.net@kongemord.krig.net> for ; Wed, 13 Aug 2003 23:25:08 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 13 Aug 2003 23:25:08 -0400 From: "Bob Hall" Date: Wed, 13 Aug 2003 23:25:08 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] login w/ IMAP & LDAP Message-ID: <20030814032508.GB52396@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030813070330.GA15468@kongemord.krig.net> <513C13EF-CD9C-11D7-856B-000393CC2E90@iki.fi> <20030813183839.GB44170@kongemord.krig.net> <1060825250.766.33.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1060825250.766.33.camel@hurina> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 03:25:17 -0000 X-UID: 1330 Status: O Content-Length: 2103 On Thu, Aug 14, 2003 at 04:40:50AM +0300, Timo Sirainen wrote: > On Wed, 2003-08-13 at 21:38, Bob Hall wrote: > > > >Aug 12 21:46:31 kongemord dovecot: child 14690 (auth) killed with > > > >signal 11 > > I've never done a patch before, and I looked at the FBSD documentation > > on it, and couldn't figure out how it was done. > > cd src/auth > patch -p0 < auth-no-homedir.patch Hmmm. That must Linux. I can't find a src/auth on FBSD, and I don't know what the FBSD equivalent would be. > (I forgot to make the patch against root dir so the cd command is > needed..) > > > So I modified my test > > entry in the LDAP directory and added posixAccount with homeDirectory > > and uidNumber and gidNumber. Restart OpenLDAP, retest, and same error > > message. > > Well, since it's still crashing, check with gdb: > > ps ax|grep dovecot-auth -> get PID > gdb /usr/local/libexec/dovecot/dovecot-auth PID > continue > > Now try to login, and it should crash. Then type "bt" and copy&paste the > output and mail it to me. http://dovecot.procontrol.fi/bugreport.html > shows what the gdb output should look like. It doesn't crash, it hangs. 1 login bob secret * OK Waiting for authentication process to respond.. * BYE Disconnected for inactivity. Connection closed by foreign host. maillog gives no error message except mentioning that the connection was closed due to inactivity. I've sent the output from gdb, but it's very compassionate; no processes were killed during its production. > > x login dovecot secret > > x NO Authentication failed. > > Yeah. User doesn't get very specific error messages, they're in the log > file. The problem above is caused by the fact that dovecot is not in the same subtree in LDAP registry as the user accounts. I may have to rethink that. If I log in as myself, I duplicate the error I get when I try to connect as myself from an MUA. So at least now I know how to do that. Maybe someone can tell me; is there ever any reason to log onto dovecot as dovecot? Should I make the dovecot user's LDAP entry available to dovecot? Bob Hall From stefan@sels.com Thu Aug 14 09:22:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5133B2399D; Thu, 14 Aug 2003 09:22:50 +0300 (EEST) Received: from odo.oi.o123456789.net (unknown [217.69.77.197]) by danu.procontrol.fi (Postfix) with ESMTP id A06EC238CE for ; Thu, 14 Aug 2003 09:22:47 +0300 (EEST) Received: (qmail 22037 invoked from network); 14 Aug 2003 06:22:46 -0000 Received: from localhost (HELO sqmail.sels.com) ([127.0.0.1]) (envelope-sender ) by odo.oi.o123456789.net (qmail-ldap-1.03) with SMTP for ; 14 Aug 2003 06:22:46 -0000 Received: from 213.146.112.93 (SquirrelMail authenticated user stefan@sels.com) by sqmail.sels.com with HTTP; Thu, 14 Aug 2003 08:22:46 +0200 (CEST) Message-ID: <4594.213.146.112.93.1060842166.squirrel@sqmail.sels.com> In-Reply-To: <1060824805.768.24.camel@hurina> References: <3F397957.8020204@sels.com> <1060824805.768.24.camel@hurina> Date: Thu, 14 Aug 2003 08:22:46 +0200 (CEST) Subject: Re: [Dovecot] Mozilla From: stefan@sels.com To: "Timo Sirainen" User-Agent: SquirrelMail/1.4.1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal cc: Dovecot Mail List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 06:22:50 -0000 X-UID: 1331 Status: O > On Wed, 2003-08-13 at 02:33, Stefan Sels wrote: >> Mozilla is making trouble with searching and subscribing folders. >> Do I have to change the "namespace" ? > > Namespace should be kept empty. ok. >> If I start a search (other than just in To & CC or subject) mozilla >> complains about a closed connection. > > Is there anything in Dovecot's log file? /var/log/mail.log usually. > Maybe it crashed. I can´t reprocude this. Maybe it happened only with my large inbox (>5000 mails) which i cleand up now. >> A fresh mozilla installation just lists no folder beside "Inbox". > > Did Mozilla show only subscribed folders? Were they listed in > subscription dialog? If not, some namespace issues. The Subscription dialog just shows no subfolder at all. It´s empty. Regards, Stefan From molter@tin.it Thu Aug 14 10:07:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6BF9D2399E; Thu, 14 Aug 2003 10:07:11 +0300 (EEST) Received: from ams-iport-1.cisco.com (ams-iport-1.cisco.com [144.254.74.5]) by danu.procontrol.fi (Postfix) with ESMTP id 9CFEA238CE for ; Thu, 14 Aug 2003 10:07:06 +0300 (EEST) Received: from tin.it (144.254.74.60) by ams-iport-1.cisco.com with ESMTP; 14 Aug 2003 09:06:30 +0200 Received: from cisco.com (localhost [127.0.0.1])h7E74n8m012968 for ; Thu, 14 Aug 2003 09:04:49 +0200 (MET DST) Received: from www.example.org (dhcp-nic-val-26-108.cisco.com [64.103.26.108]) by cisco.com (8.8.8+Sun/8.8.8) with SMTP id JAA11914 for ; Thu, 14 Aug 2003 09:07:02 +0200 (MET DST) From: molter@tin.it Received: (qmail 6857 invoked by uid 1000); 14 Aug 2003 07:07:00 -0000 Date: Thu, 14 Aug 2003 09:07:00 +0200 To: dovecot@procontrol.fi Subject: Re: [Dovecot] login w/ IMAP & LDAP Message-Id: <20030814090700.2300d898.molter@tin.it> In-Reply-To: <20030814032508.GB52396@kongemord.krig.net> References: <20030813070330.GA15468@kongemord.krig.net> <513C13EF-CD9C-11D7-856B-000393CC2E90@iki.fi> <20030813183839.GB44170@kongemord.krig.net> <1060825250.766.33.camel@hurina> <20030814032508.GB52396@kongemord.krig.net> X-Mailer: Sylpheed version 0.9.0claws (GTK+ 1.2.10; i386-portbld-freebsd4.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 07:07:11 -0000 X-UID: 1332 Status: O On Wed, 13 Aug 2003 23:25:08 -0400 "Bob Hall" wrote: > > cd src/auth > > patch -p0 < auth-no-homedir.patch > > Hmmm. That must Linux. I can't find a src/auth on FBSD, and I don't > know what the FBSD equivalent would be. Bob, assuming you are using the fbsd port of dovecot: apply the patch: cd /usr/ports/mail/dovecot/work/dovecot-0.99.10/src/auth patch -p0 < auth-no-homedir.patch compile using the port: cd /usr/ports/mail/dovecot rm work/.build_done* make copy by hand the binary /usr/ports/mail/dovecot/work/dovecot-0.99.10/src/auth/dovecot-auth to /usr/local/libexec/dovecot/ marco From Nico@neo-lan.net Thu Aug 14 10:31:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 985242399E; Thu, 14 Aug 2003 10:31:53 +0300 (EEST) Received: from aster.neo-lan.net (vaugirard-3-81-57-244-52.fbx.proxad.net [81.57.244.52]) by danu.procontrol.fi (Postfix) with ESMTP id E463A2399A for ; Thu, 14 Aug 2003 10:31:50 +0300 (EEST) Received: from neo-lan.net (aneto [192.168.0.2]) by aster.neo-lan.net (Postfix) with ESMTP id 9ADCC1A387 for ; Thu, 14 Aug 2003 09:31:50 +0200 (CEST) Message-ID: <3F3B3AE6.8010706@neo-lan.net> Date: Thu, 14 Aug 2003 09:31:50 +0200 From: Nicolas STRANSKY Organization: CRANS Inc. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030714 Debian/1.4-2 X-Accept-Language: fr, fr-fr, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: [Dovecot] IMAP error after login X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 07:31:53 -0000 X-UID: 1333 Status: O Hello, I'm having a slight problem with Dovecot (0.99.10-0.rc2, on Debian woody). When using mozilla 1.4, there is an error message from the mailer just after login, but nothing in dovecot logs. "Alert The current command did not succeed. The mail server responded: Error in IMAP command UID: Too long argument.." How could I fix this problem ? Thanks, -- Nico J'ai une panne de micro et les parasites me brouillent l'écoute From esj@harvee.org Thu Aug 14 19:32:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 35A342399B; Thu, 14 Aug 2003 19:32:58 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 24078238CE for ; Thu, 14 Aug 2003 19:32:50 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7EGWm9H003920 for ; Thu, 14 Aug 2003 12:32:48 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Thu, 14 Aug 2003 12:32:45 -0400 Message-ID: <3F3BB952.5020606@harvee.org> Date: Thu, 14 Aug 2003 12:31:14 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030814:dovecot@procontrol.fi:f77d1b3ffab30485 Subject: [Dovecot] joys of transition. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 16:32:58 -0000 X-UID: 1334 Status: O Content-Length: 2315 Red Hat 8.0 stock dovecot 99.10 for a variety of reasons, I decided to cut over to dovecot this morning. I extracted all of my mailboxes from mbx purgatory back to mbox purgatory, set up dovecot and proceed to get authentication failures. (am using simple password based authentication either direct or through pam) I turned authentication verbosity on and got: Aug 14 11:51:38 harvee dovecot: Dovecot starting up Aug 14 11:51:46 harvee dovecot-auth: PAM: pam_authenticate(esj) failed: Authentication failure Aug 14 11:51:49 harvee dovecot-auth: PAM: pam_authenticate(esj) failed: Authentication failure Aug 14 11:51:52 harvee imap-login: Aborted login [192.168.0.10] not very informative. I already know that I can't login. So I fire up ethereal and capture the following transaction: * OK dovecot ready. 1 authenticate login 1 NO Unsupported authentication mechanism. 2 login "esj" "no peeking" 2 NO Authentication failed. 3 authenticate login 3 NO Unsupported authentication mechanism. 4 login "esj" "no peeking" 4 NO Authentication failed. 5 logout * BYE Logging out 5 OK Logout completed. hmm no unsupported authentication mechanism. So that means all authentication methods works right? ;-) looking a little further into the configuration, I see instructions to change auth_methods to add plain in front of digest-md5 (or is it digest_md5, both forms are present in the configuration file). No luck. Doing so gives me the following error message: Fatal: Error in configuration file /usr/local/etc/dovecot.conf line 430: Unknown setting: methods so, I'm not sure what to look for. It's probably something simple but googling didn't reveal anything pertinent although it turned up something amusing[1]and dovecot does apply. Suggestions or clues would be welcome. FYI, you probably could use a little bit more detail in the install instructions. For example instructing user to create a dovecot user and group name would be useful as would be a startup/shutdown script for init.d. I also find the SSL configuration lacking. On the other hand, I have enough scar tissue from certificates and mini-CA setups to hate them till the end of time. If I get them working better, I'll document and send it to the list. ---eric [1]http://www.oblomovka.com/eldritch/iag/ob1-5.htm From stefan@sels.com Thu Aug 14 19:52:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8FCA52399B; Thu, 14 Aug 2003 19:52:00 +0300 (EEST) Received: from odo.oi.o123456789.net (unknown [217.69.77.197]) by danu.procontrol.fi (Postfix) with ESMTP id 8AF83238CE for ; Thu, 14 Aug 2003 19:51:55 +0300 (EEST) Received: (qmail 24371 invoked from network); 14 Aug 2003 16:51:55 -0000 Received: from localhost (HELO sqmail.sels.com) ([127.0.0.1]) (envelope-sender ) by odo.oi.o123456789.net (qmail-ldap-1.03) with SMTP for ; 14 Aug 2003 16:51:55 -0000 Received: from 213.146.112.93 (SquirrelMail authenticated user stefan@sels.com) by sqmail.sels.com with HTTP; Thu, 14 Aug 2003 18:51:55 +0200 (CEST) Message-ID: <4729.213.146.112.93.1060879915.squirrel@sqmail.sels.com> In-Reply-To: <4594.213.146.112.93.1060842166.squirrel@sqmail.sels.com> References: <3F397957.8020204@sels.com> <1060824805.768.24.camel@hurina> <4594.213.146.112.93.1060842166.squirrel@sqmail.sels.com> Date: Thu, 14 Aug 2003 18:51:55 +0200 (CEST) Subject: [Dovecot] Mozilla Search Problem From: "Stefan Sels" To: stefan@sels.com User-Agent: SquirrelMail/1.4.1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal cc: Dovecot Mail List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 16:52:00 -0000 X-UID: 1335 Status: O >> On Wed, 2003-08-13 at 02:33, Stefan Sels wrote: >>> If I start a search (other than just in To & CC or subject) mozilla >>> complains about a closed connection. >> >> Is there anything in Dovecot's log file? /var/log/mail.log usually. >> Maybe it crashed. > > I can´t reprocude this. Maybe it happened only with my large inbox (>5000 > mails) which i cleand up now. I can now : captured search request (with ethereal) uid SEARCH UNDELETED OR HEADER TO "intern@koeln.x.de" HEADER CC "intern@koeln.x.de" the error from the logfile : Aug 14 18:45:32 odo imap(stefan@sels.com): file message-address.c: line 255 (message_address_write): assertion failed: (addr->domain != NULL) Aug 14 18:45:32 odo dovecot: child 24333 (imap) killed with signal 6 Regards, Stefan From tss@iki.fi Thu Aug 14 20:08:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 436842399E; Thu, 14 Aug 2003 20:08:10 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 95C162399B for ; Thu, 14 Aug 2003 20:08:07 +0300 (EEST) Date: Thu, 14 Aug 2003 20:08:13 +0300 Subject: Re: [Dovecot] joys of transition. Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F3BB952.5020606@harvee.org> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 17:08:10 -0000 X-UID: 1336 Status: O Content-Length: 2073 On Thursday, Aug 14, 2003, at 19:31 Europe/Helsinki, Eric S. Johansson wrote: > Aug 14 11:51:46 harvee dovecot-auth: PAM: pam_authenticate(esj) > failed: Authentication failure > > not very informative. I already know that I can't login. So I fire > up ethereal and capture the following transaction: Well, that's as informative as you can get from PAM :) It means that PAM decided the password was wrong. Do you have /etc/pam.d/imap file set up correctly? > 3 authenticate login > 3 NO Unsupported authentication mechanism. > > hmm no unsupported authentication mechanism. So that means all > authentication methods works right? ;-) Either your client is stupid or it tries to work around stupid servers. LOGIN command should be accepted by all servers and "login" SASL mechanism is some old not-really-standard. > looking a little further into the configuration, I see instructions to > change auth_methods to add plain in front of digest-md5 (or is it > digest_md5, both forms are present in the configuration file). No > luck. Doing so gives me the following error message: > > Fatal: Error in configuration file /usr/local/etc/dovecot.conf line > 430: Unknown setting: methods Um.. You must have had at least one auth_methods line before or it wouldn't have worked.. And the default dovecot-example.conf contained only plain there. > FYI, you probably could use a little bit more detail in the install > instructions. Yes, I have plans to write them .. before 1.0 :) > For example instructing user to create a dovecot user and group name > would be useful as would be a startup/shutdown script for init.d. I > also find the SSL configuration lacking. On the other hand, I have > enough scar tissue from certificates and mini-CA setups to hate them > till the end of time. If I get them working better, I'll document and > send it to the list. Yea, there really should be some easier ways to manage your own CAs. I found some certificate manager written with Qt (can't remember name), but something web based could be nice too. From tss@iki.fi Thu Aug 14 20:11:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D35B12399F; Thu, 14 Aug 2003 20:11:44 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 136192399E for ; Thu, 14 Aug 2003 20:11:42 +0300 (EEST) Date: Thu, 14 Aug 2003 20:11:49 +0300 Subject: Re: [Dovecot] IMAP error after login Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F3B3AE6.8010706@neo-lan.net> Message-Id: <6405E349-CE7A-11D7-B43D-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 17:11:45 -0000 X-UID: 1337 Status: O On Thursday, Aug 14, 2003, at 10:31 Europe/Helsinki, Nicolas STRANSKY wrote: > I'm having a slight problem with Dovecot (0.99.10-0.rc2, on Debian > woody). When using mozilla 1.4, there is an error message from the > mailer just after login, but nothing in dovecot logs. > "Alert > The current command did not succeed. The mail server responded: Error > in > IMAP command UID: Too long argument.." > > How could I fix this problem ? You have a large mailbox and Mozilla tries to send a huge command to Dovecot. Next release has max. command line length configurable from config file, but for now you'd have to modify sources or try to avoid so many changes at once. If you want to change it from sources, it's in beginning of src/imap/client.c MAX_INBUF_SIZE. From tss@iki.fi Thu Aug 14 20:14:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5F74F2399F; Thu, 14 Aug 2003 20:14:58 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2327B2399E for ; Thu, 14 Aug 2003 20:14:55 +0300 (EEST) Date: Thu, 14 Aug 2003 20:15:01 +0300 Subject: Re: [Dovecot] Mozilla Search Problem Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <4729.213.146.112.93.1060879915.squirrel@sqmail.sels.com> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 17:14:58 -0000 X-UID: 1338 Status: O On Thursday, Aug 14, 2003, at 19:51 Europe/Helsinki, Stefan Sels wrote: > the error from the logfile : > Aug 14 18:45:32 odo imap(stefan@sels.com): file message-address.c: line > 255 (message_address_write): assertion failed: (addr->domain != NULL) > Aug 14 18:45:32 odo dovecot: child 24333 (imap) killed with signal 6 Yes, I noticed this myself too some time ago and fixed it. I should get that new index code working and get a new release done.. :) From tss@iki.fi Thu Aug 14 20:18:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D66102399F; Thu, 14 Aug 2003 20:18:52 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3D58A2399E for ; Thu, 14 Aug 2003 20:18:50 +0300 (EEST) Date: Thu, 14 Aug 2003 20:18:56 +0300 Subject: Re: [Dovecot] login w/ IMAP & LDAP Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <20030814032508.GB52396@kongemord.krig.net> Message-Id: <62C07044-CE7B-11D7-B43D-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 17:18:53 -0000 X-UID: 1339 Status: O On Thursday, Aug 14, 2003, at 06:25 Europe/Helsinki, Bob Hall wrote: >> Now try to login, and it should crash. Then type "bt" and copy&paste >> the >> output and mail it to me. http://dovecot.procontrol.fi/bugreport.html >> shows what the gdb output should look like. > > It doesn't crash, it hangs. Your logs before showed that it crashes at least sometimes. The backtrace you sent was done before the crash, so it didn't help.. Did you give the "continue" command to gdb? Without that the process is just stuck in gdb. > Maybe someone can tell me; is there ever any reason to log onto dovecot > as dovecot? Should I make the dovecot user's LDAP entry available to > dovecot? There's no need to ever login as dovecot. I'll probably just add extra checks to make sure dovecot user isn't ever used for anything else than executing the login processes :) From rjhjr@cox.net Thu Aug 14 21:16:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4C571239A3; Thu, 14 Aug 2003 21:16:09 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id 542DB2399A for ; Thu, 14 Aug 2003 21:16:02 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP id <20030814181601.XWCN13930.lakemtao04.cox.net@kongemord.krig.net> for ; Thu, 14 Aug 2003 14:16:01 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Thu, 14 Aug 2003 14:16:00 -0400 From: "Bob Hall" Date: Thu, 14 Aug 2003 14:16:00 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] login w/ IMAP & LDAP Message-ID: <20030814181600.GB59570@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030814032508.GB52396@kongemord.krig.net> <62C07044-CE7B-11D7-B43D-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <62C07044-CE7B-11D7-B43D-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 18:16:09 -0000 X-UID: 1340 Status: O Content-Length: 1227 On Thu, Aug 14, 2003 at 08:18:56PM +0300, Timo Sirainen wrote: > On Thursday, Aug 14, 2003, at 06:25 Europe/Helsinki, Bob Hall wrote: > > >>Now try to login, and it should crash. Then type "bt" and copy&paste > >>the > >>output and mail it to me. http://dovecot.procontrol.fi/bugreport.html > >>shows what the gdb output should look like. > > > >It doesn't crash, it hangs. > > Your logs before showed that it crashes at least sometimes. The > backtrace you sent was done before the crash, so it didn't help.. Did > you give the "continue" command to gdb? Without that the process is > just stuck in gdb. No, I didn't know about continue. dovecot-auth now bleats appropriately and goes mildly to the slaughter. The new backtrace is on its way to you. > >Maybe someone can tell me; is there ever any reason to log onto dovecot > >as dovecot? Should I make the dovecot user's LDAP entry available to > >dovecot? > > There's no need to ever login as dovecot. I'll probably just add extra > checks to make sure dovecot user isn't ever used for anything else than > executing the login processes :) Dang. Everytime I try to do something, you add a check to prevent it. Are you trying to save me from myself? Bob Hall From tss@iki.fi Thu Aug 14 22:04:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D8E7C239A6; Thu, 14 Aug 2003 22:04:30 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3E5C92399F for ; Thu, 14 Aug 2003 22:04:29 +0300 (EEST) Date: Thu, 14 Aug 2003 22:04:35 +0300 Subject: Re: [Dovecot] login w/ IMAP & LDAP Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <20030814181600.GB59570@kongemord.krig.net> Message-Id: <256BA820-CE8A-11D7-B43D-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 19:04:31 -0000 X-UID: 1341 Status: O On Thursday, Aug 14, 2003, at 21:16 Europe/Helsinki, Bob Hall wrote: >> There's no need to ever login as dovecot. I'll probably just add extra >> checks to make sure dovecot user isn't ever used for anything else >> than >> executing the login processes :) > > Dang. Everytime I try to do something, you add a check to prevent it. > Are you trying to save me from myself? Yes :) But I try to give understandable error messages so you can fix them. Hopefully I'll also get some small easy to read installation document written.. From rjhjr@cox.net Thu Aug 14 22:23:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 870A3239A8; Thu, 14 Aug 2003 22:23:00 +0300 (EEST) Received: from lakemtao02.cox.net (lakemtao02.cox.net [68.1.17.243]) by danu.procontrol.fi (Postfix) with ESMTP id 696C42399A for ; Thu, 14 Aug 2003 22:22:54 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao02.cox.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP id <20030814192253.WSBH24359.lakemtao02.cox.net@kongemord.krig.net> for ; Thu, 14 Aug 2003 15:22:53 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Thu, 14 Aug 2003 15:22:53 -0400 From: "Bob Hall" Date: Thu, 14 Aug 2003 15:22:52 -0400 To: dovecot@procontrol.fi Subject: Re: [Dovecot] login w/ IMAP & LDAP Message-ID: <20030814192252.GC59570@kongemord.krig.net> Mail-Followup-To: dovecot@procontrol.fi References: <20030813070330.GA15468@kongemord.krig.net> <513C13EF-CD9C-11D7-856B-000393CC2E90@iki.fi> <20030813183839.GB44170@kongemord.krig.net> <1060825250.766.33.camel@hurina> <20030814032508.GB52396@kongemord.krig.net> <20030814090700.2300d898.molter@tin.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030814090700.2300d898.molter@tin.it> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 19:23:00 -0000 X-UID: 1342 Status: O On Thu, Aug 14, 2003 at 09:07:00AM +0200, molter@tin.it wrote: > On Wed, 13 Aug 2003 23:25:08 -0400 > "Bob Hall" wrote: > > > > cd src/auth > > > patch -p0 < auth-no-homedir.patch > > > > Hmmm. That must Linux. I can't find a src/auth on FBSD, and I don't > > know what the FBSD equivalent would be. > > Bob, > > assuming you are using the fbsd port of dovecot: > > apply the patch: > cd /usr/ports/mail/dovecot/work/dovecot-0.99.10/src/auth > patch -p0 < auth-no-homedir.patch Thanks, Marco. I saved the patch on the website to auth-no-homedir.patch and cp'ed it to /usr/ports/mail/dovecot/work/dovecot-0.99.10/src/auth. When I ran patch -p0 < auth-no-homedir.patch I got Hunk #1 failed at 55. 1 out of 1 hunks failed--saving rejects to master-connection.c.rej Hmm... Ignoring the trailing garbage. done I'm guessing that means I did something wrong? Bob Hall From tss@iki.fi Thu Aug 14 22:41:21 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 961CE239AB; Thu, 14 Aug 2003 22:41:21 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 011722399A for ; Thu, 14 Aug 2003 22:41:17 +0300 (EEST) Date: Thu, 14 Aug 2003 22:41:24 +0300 Subject: Re: [Dovecot] login w/ IMAP & LDAP Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030814192252.GC59570@kongemord.krig.net> Message-Id: <49C3CE53-CE8F-11D7-B43D-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 19:41:21 -0000 X-UID: 1343 Status: O On Thursday, Aug 14, 2003, at 22:22 Europe/Helsinki, Bob Hall wrote: > I saved the patch on the website to auth-no-homedir.patch and cp'ed > it to /usr/ports/mail/dovecot/work/dovecot-0.99.10/src/auth. When I > ran > patch -p0 < auth-no-homedir.patch You did it right. > Hunk #1 failed at 55. > 1 out of 1 hunks failed--saving rejects to master-connection.c.rej > Hmm... Ignoring the trailing garbage. But I don't understand why it says this. Maybe you somehow managed to corrupt the patch file when transferring? Like if you transferred it from windows it might have changed the linefeeds from LF -> CRLF. It goes in just fine with my Linux and FreeBSD 4.8. From jens@freebsdforum.de Thu Aug 14 23:20:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D7766239AC; Thu, 14 Aug 2003 23:20:24 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id 563FE239AB for ; Thu, 14 Aug 2003 23:20:22 +0300 (EEST) Received: from localhost (localhost [213.133.103.207])E33A21141B1 for ; Thu, 14 Aug 2003 22:20:06 +0200 (CEST) From: Jens Gutzeit To: Subject: Re: [Dovecot] login w/ IMAP & LDAP Date: Thu, 14 Aug 2003 22:20:48 +0200 User-Agent: KMail/1.5.3 References: <256BA820-CE8A-11D7-B43D-000393CC2E90@iki.fi> In-Reply-To: <256BA820-CE8A-11D7-B43D-000393CC2E90@iki.fi> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200308142220.48030.jens@freebsdforum.de> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 20:20:25 -0000 X-UID: 1344 Status: O On Thursday 14 August 2003 21:04, Timo Sirainen wrote: > Hopefully I'll also get some small easy to read installation document > written.. Just an idea, why not simply setup a Dovecot documentation wiki? Jens From jagger@oznog.org Thu Aug 14 23:36:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 14BC8239AD; Thu, 14 Aug 2003 23:36:44 +0300 (EEST) Received: from watson.jagger.ws (d-216-195-179-60.metrocast.net [216.195.179.60]) by danu.procontrol.fi (Postfix) with ESMTP id 791C0239A6 for ; Thu, 14 Aug 2003 23:36:41 +0300 (EEST) Received: from jagger by watson.jagger.ws with local (Exim 3.36 #1 (Debian)) id 19nOps-0001Nq-00 for ; Thu, 14 Aug 2003 16:36:40 -0400 Date: Thu, 14 Aug 2003 16:36:40 -0400 To: dovecot@procontrol.fi Message-ID: <20030814203640.GB5235@oznog.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i From: "Robert S. Jagger" Subject: [Dovecot] error in config file? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 20:36:44 -0000 X-UID: 1345 Status: O When I start dovecot I am getting an error about the ocnfig file. watson:~# /etc/init.d/dovecot start Starting mail server: dovecotFatal: Error in configuration file /etc/dovecot.conf line 185: Missing value So I look int /etc/dovecot.conf and line 185 is mbox:~/mail/:INBOX=/var/mail/%u/ Which seems like valid syntax according to the docs. I am using dovecot 0.99.10-2 From tss@iki.fi Fri Aug 15 00:23:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B4379239AD; Fri, 15 Aug 2003 00:23:58 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C9F8D239AC for ; Fri, 15 Aug 2003 00:23:48 +0300 (EEST) Date: Fri, 15 Aug 2003 00:23:55 +0300 Subject: Re: [Dovecot] login w/ IMAP & LDAP Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Content-Transfer-Encoding: 7bit In-Reply-To: <200308142220.48030.jens@freebsdforum.de> Message-Id: <9BFA25EE-CE9D-11D7-B43D-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 21:23:58 -0000 X-UID: 1346 Status: O On Thursday, Aug 14, 2003, at 23:20 Europe/Helsinki, Jens Gutzeit wrote: >> Hopefully I'll also get some small easy to read installation document >> written.. > > Just an idea, why not simply setup a Dovecot documentation wiki? I haven't really understood why they're so great. I just looked at twiki anyway, it's what most people seem to be using. Looks a bit insecure.. And looks like it takes some work to get it into useful state. From tss@iki.fi Fri Aug 15 00:24:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7A003239AD; Fri, 15 Aug 2003 00:24:57 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 067A3239AC for ; Fri, 15 Aug 2003 00:24:56 +0300 (EEST) Date: Fri, 15 Aug 2003 00:25:01 +0300 Subject: Re: [Dovecot] error in config file? Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030814203640.GB5235@oznog.org> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 21:24:57 -0000 X-UID: 1347 Status: O On Thursday, Aug 14, 2003, at 23:36 Europe/Helsinki, Robert S. Jagger wrote: > So I look int /etc/dovecot.conf and line 185 is > > mbox:~/mail/:INBOX=/var/mail/%u/ You're missing the "default_mail_env = " before it. From jens@freebsdforum.de Fri Aug 15 00:35:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B9E4C239AD; Fri, 15 Aug 2003 00:35:02 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id 291D7239AC for ; Fri, 15 Aug 2003 00:34:52 +0300 (EEST) Received: from localhost (localhost [213.133.103.207])1B1651141AF for ; Thu, 14 Aug 2003 23:34:42 +0200 (CEST) From: Jens Gutzeit To: Subject: Re: [Dovecot] login w/ IMAP & LDAP Date: Thu, 14 Aug 2003 23:35:24 +0200 User-Agent: KMail/1.5.3 References: <9BFA25EE-CE9D-11D7-B43D-000393CC2E90@iki.fi> In-Reply-To: <9BFA25EE-CE9D-11D7-B43D-000393CC2E90@iki.fi> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200308142335.24625.jens@freebsdforum.de> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 21:35:02 -0000 X-UID: 1348 Status: O On Thursday 14 August 2003 23:23, Timo Sirainen wrote: > On Thursday, Aug 14, 2003, at 23:20 Europe/Helsinki, Jens Gutzeit wrote: > > Just an idea, why not simply setup a Dovecot documentation wiki? > > I haven't really understood why they're so great. I just looked at Hmm, it would be easy to contribute documentation for all of us. > twiki anyway, it's what most people seem to be using. Looks a bit > insecure.. And looks like it takes some work to get it into useful > state. I don't like twiki very much, MoinMoin is IMHO a great wiki, it's written in python. http://moin.sourceforge.net/ Jens From esj@harvee.org Fri Aug 15 00:43:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E7D05239AD; Fri, 15 Aug 2003 00:43:07 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id E7247239AC for ; Fri, 15 Aug 2003 00:43:04 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7ELh19H008069 for ; Thu, 14 Aug 2003 17:43:01 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Thu, 14 Aug 2003 17:42:52 -0400 Message-ID: <3F3C0202.6070205@harvee.org> Date: Thu, 14 Aug 2003 17:41:22 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] joys of transition. References: In-Reply-To: X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030814:dovecot@procontrol.fi:b5e3b799033c22ae X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 21:43:08 -0000 X-UID: 1349 Status: O Content-Length: 2553 Timo Sirainen explained: > Well, that's as informative as you can get from PAM :) It means that PAM > decided the password was wrong. Do you have /etc/pam.d/imap file set up > correctly? don't know if it is correct but it is stock Red Hat. one more item for the install instructions. [root@harvee doc]# more /etc/pam.d/imap #%PAM-1.0 auth required /lib/security/pam_stack.so service=system-auth account required /lib/security/pam_stack.so service=system-auth [root@harvee doc]# > Either your client is stupid or it tries to work around stupid servers. > LOGIN command should be accepted by all servers and "login" SASL > mechanism is some old not-really-standard. I think I would choose the "stupid" option. I am using Mozilla 1.4 (the imap client on windows that sucks the least). >> Fatal: Error in configuration file /usr/local/etc/dovecot.conf line >> 430: Unknown setting: methods > > > Um.. You must have had at least one auth_methods line before or it > wouldn't have worked.. And the default dovecot-example.conf contained > only plain there. I think I understand. I screwed up my authentication definition because it wasn't clear. On a stock Red Hat system using password authentication, what works is: auth_userdb = passwd auth_passdb = shadow and leave the digest_md5 stuff alone (which I turned on in my confusion). But *yay* dovecot is working for me! Now all I need to do is turn on my inbox properly (and reclaim my 3300 messages from the old inbox) and I will be a happy camper. > Yes, I have plans to write them .. before 1.0 :) ya right... just like my intention to rewrite the camram antispam system documentation/web site. It's at least a year out of date but at least I have working code for sender pays antispam with some other nice features accommodating the real world. > Yea, there really should be some easier ways to manage your own CAs. I > found some certificate manager written with Qt (can't remember name), > but something web based could be nice too. I've been very happy with TinyCA. It's written in perl and uses tk for the GUI. It's not full featured but I found it hard to do things wrong. On the other hand, that might be a side effect of the scar tissue. ;-) anyway, as I said above, I now have things working (more or less) and I will find out how well the indexing works as I gradually open different mailboxes on demand. I may play with maildir mailboxes if I can mix and match mbox and maildir in the same directory. playing the fire? ---eric From esj@harvee.org Fri Aug 15 01:07:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 97648239BD; Fri, 15 Aug 2003 01:07:45 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id C0973239BA for ; Fri, 15 Aug 2003 01:07:42 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7EM7f9H008385 for ; Thu, 14 Aug 2003 18:07:41 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Thu, 14 Aug 2003 18:07:35 -0400 Message-ID: <3F3C07CC.5030307@harvee.org> Date: Thu, 14 Aug 2003 18:06:04 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030814:dovecot@procontrol.fi:91fd7825c2171dbc Subject: [Dovecot] more transitional joys X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 22:07:45 -0000 X-UID: 1350 Status: O well, now that I have moved to dovecot, I'm not getting any spam... in fact, I'm not getting e-mail at all. default_mail_env =mbox:~/IMap2/:INBOX=/var/spool/mail/%u when I first tried to access my inbox, I was told I had permission problems: Aug 14 17:47:22 harvee imap(esj): open(/var/spool/mail/esj.lock) failed: Permission denied Aug 14 17:47:22 harvee imap(esj): file_lock_dotlock() failed with mbox file /var/spool/mail/esj: Permission denied so I changed permissions on /var/spool/mail to 777 as a temporary work around. no luck. It tells me that I have no e-mail in my inbox... fat chance [root@harvee mail]# ls -l /var/spool/mail/esj -rw------- 1 esj mail 167772 Aug 14 18:05 /var/spool/mail/esj what simply obvious thing I am I missing now? ---eric From tss@iki.fi Fri Aug 15 01:31:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D15F3239BE; Fri, 15 Aug 2003 01:31:46 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 337CB239A6 for ; Fri, 15 Aug 2003 01:31:39 +0300 (EEST) Date: Fri, 15 Aug 2003 01:31:45 +0300 Subject: Re: [Dovecot] more transitional joys Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F3C07CC.5030307@harvee.org> Message-Id: <16229986-CEA7-11D7-B43D-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 22:31:47 -0000 X-UID: 1351 Status: O On Friday, Aug 15, 2003, at 01:06 Europe/Helsinki, Eric S. Johansson wrote: > when I first tried to access my inbox, I was told I had permission > problems: > > Aug 14 17:47:22 harvee imap(esj): open(/var/spool/mail/esj.lock) > failed: Permission denied > Aug 14 17:47:22 harvee imap(esj): file_lock_dotlock() failed with mbox > file /var/spool/mail/esj: Permission denied Hmh. I guess I'll really have to fix this too soon since everyone keeps having this problem. > so I changed permissions on /var/spool/mail to 777 as a temporary work > around. no luck. It tells me that I have no e-mail in my inbox... fat > chance Maybe it thinks the mbox is synchronized even while it stopped in error. Try rm -f .imap/INBOX/.imap.index*. Or just touching the mbox. Mixing mboxes and maildirs isn't possible with .10, but will be in next version. From esj@harvee.org Fri Aug 15 02:29:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 30A82239BD; Fri, 15 Aug 2003 02:29:36 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 277D2238C7 for ; Fri, 15 Aug 2003 02:29:21 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7ENTDC1009310 for ; Thu, 14 Aug 2003 19:29:14 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Thu, 14 Aug 2003 19:29:06 -0400 Message-ID: <3F3C1AE7.8060501@harvee.org> Date: Thu, 14 Aug 2003 19:27:35 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] more transitional joys References: <16229986-CEA7-11D7-B43D-000393CC2E90@iki.fi> In-Reply-To: <16229986-CEA7-11D7-B43D-000393CC2E90@iki.fi> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030814:dovecot@procontrol.fi:7ca046e781cb420c X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 23:29:36 -0000 X-UID: 1352 Status: O Content-Length: 1355 Timo Sirainen explained: > On Friday, Aug 15, 2003, at 01:06 Europe/Helsinki, Eric S. Johansson wrote: > Hmh. I guess I'll really have to fix this too soon since everyone keeps > having this problem. right now, you should probably just tell people about it and let them know to do the work around as I did. > Maybe it thinks the mbox is synchronized even while it stopped in error. > Try rm -f .imap/INBOX/.imap.index*. Or just touching the mbox. I tried deleting INBOX which did not do anything. New mail was coming in so the file was updated which wasn't detected. What finally worked was stopping and then restarting dovecot. so, if I was really energetic, I would go back and re-create the problem and find out what is the right solution. My suspicion is that the information got wedged inside dovecot somehow and the process restart fixed things up. > > Mixing mboxes and maildirs isn't possible with .10, but will be in next > version. looking forward to it. Since I'm the only user of imap on the system (my wife prefers mutt) I'm willing to give a shot at trying "relatively good" code. by the way, in recovering my old inbox I created a new imap mailbox and the process keeps complaining about "invalid mask" and then lost my subscriptions to all my mailboxes. What's that all about? Need a protocol trace? ---eric From esj@harvee.org Fri Aug 15 02:38:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 73AE7239CC; Fri, 15 Aug 2003 02:38:28 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 8D4E2239BD for ; Fri, 15 Aug 2003 02:38:26 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7ENcOC1009404 for ; Thu, 14 Aug 2003 19:38:24 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Thu, 14 Aug 2003 19:38:18 -0400 Message-ID: <3F3C1D0F.6070209@harvee.org> Date: Thu, 14 Aug 2003 19:36:47 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] login w/ IMAP & LDAP References: <9BFA25EE-CE9D-11D7-B43D-000393CC2E90@iki.fi> In-Reply-To: <9BFA25EE-CE9D-11D7-B43D-000393CC2E90@iki.fi> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030814:dovecot@procontrol.fi:a7dd678eaa9a05ed X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2003 23:38:28 -0000 X-UID: 1353 Status: O Content-Length: 1094 Timo Sirainen explained: > I haven't really understood why they're so great. I just looked at twiki > anyway, it's what most people seem to be using. Looks a bit insecure.. > And looks like it takes some work to get it into useful state. having used twiki and moinmoin, I think moinmoin is a better system now. I've run twiki as part of IPCop and it's worked rather well. We have had more damage done to us by sourceforge than we have by vandals. I believe moinmoin now keeps track of revisions which means it's easier to recover from a scribbler. I think part of the reason they are thought of as being "great" is because they make it dammed easy for anyone to contribute. They lower the threshold of effort needed to participate which makes it more accessible to more members of a community. I've submitted a feature request with the abiword people to add a plug-in which will make it even easier (i.e. no markup language knowledge necessary). This plug-in would allow one to import and export pages from the wiki and edit them in WYSIWYG mode inside of abiword. ---eric From tobi@darksystem.net Fri Aug 15 10:12:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 97CD2239D3; Fri, 15 Aug 2003 10:12:13 +0300 (EEST) Received: from gimli.darksystem.net (gimli.darksystem.net [212.202.144.210]) by danu.procontrol.fi (Postfix) with ESMTP id 0589323887 for ; Fri, 15 Aug 2003 10:12:10 +0300 (EEST) Received: by gimli.darksystem.net (Postfix, from userid 33) id 13DAB16BC; Fri, 15 Aug 2003 09:12:06 +0200 (CEST) Received: from 212.202.144.210 (SquirrelMail authenticated user tobi) by pluto.sunn.de with HTTP; Fri, 15 Aug 2003 09:12:06 +0200 (CEST) Message-ID: <64881.212.202.144.210.1060931526.squirrel@pluto.sunn.de> Date: Fri, 15 Aug 2003 09:12:06 +0200 (CEST) From: "Tobias Sasse" To: X-Priority: 3 Importance: Normal X-MSMail-Priority: Normal X-Mailer: SquirrelMail (version 1.2.4) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Subject: [Dovecot] Startup Problem X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Aug 2003 07:12:13 -0000 X-UID: 1354 Status: O Content-Length: 1028 Hello, i don't like asking stupid questions in mailinglist, 'cause i guess you got something better to do than answer it. But well this is an exception, because i didn't find anything on google. Here comes my problem: I'm using a NetBSD 1.6.0 System with the latest dovecot build. i want to start dovecot imapd by: root@balin:[/etc]$ ./rc.d/dovecot start Starting dovecot. Fatal: Error in configuration file /usr/pkg/etc/dovecot.conf line 88: Missing value This is my error ;) This is the line 88 in my conf file. maildir:/home/%u/mail the maildir was created by 'makemaildir mail' and exists: root@balin:[/home/tobi]$ ls -all total 18 drwxr-xr-x 4 tobi users 512 Aug 15 09:11 . drwxr-xr-x 3 root wheel 512 Aug 13 01:18 .. drwx------ 5 tobi users 512 Aug 14 12:47 mail there it is. in default option of the maildir line dovecot starts without problems but i really want to have my mails in /home/%u/mail and not in /var/mail/%1u/%u/mail So could somebody please put some light on it? Thank you, Tobi From jwt@qth.ath.cx Fri Aug 15 10:37:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E98DB239D6; Fri, 15 Aug 2003 10:37:58 +0300 (EEST) Received: from qth.ath.cx (usen-221x115x224x2.ap-US01.usen.ad.jp [221.115.224.2]) by danu.procontrol.fi (Postfix) with ESMTP id 10C1E239CC for ; Fri, 15 Aug 2003 10:37:55 +0300 (EEST) Received: from jwt by qth.ath.cx with local (Exim 4.20) id 19nZ9j-0005fI-O2; Fri, 15 Aug 2003 16:37:51 +0900 Date: Fri, 15 Aug 2003 16:37:51 +0900 From: Jim Tittsler To: Tobias Sasse Subject: Re: [Dovecot] Startup Problem Message-ID: <20030815073751.GA21716@server.onjapan.net> References: <64881.212.202.144.210.1060931526.squirrel@pluto.sunn.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <64881.212.202.144.210.1060931526.squirrel@pluto.sunn.de> User-Agent: Mutt/1.4.1i Organization: 7J1AJH/AI8A Tokyo cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Aug 2003 07:37:59 -0000 X-UID: 1355 Status: O On Fri, Aug 15, 2003 at 09:12:06AM +0200, Tobias Sasse wrote: > Fatal: Error in configuration file /usr/pkg/etc/dovecot.conf line 88: > Missing value > > This is my error ;) > > This is the line 88 in my conf file. > maildir:/home/%u/mail I think you are missing the 'default_mail_env = ' key in front of that value. Try: default_mail_env = maildir:/home/%u/mail Jim -- Jim Tittsler, Tokyo Kanto Computer Calendar http://www.OnJapan.net/calendar/ From timhunt@users.sf.net Fri Aug 15 20:49:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E7F66239AC; Fri, 15 Aug 2003 20:49:20 +0300 (EEST) Received: from timhunt.net (ns1.timhunt.net [216.27.147.130]) by danu.procontrol.fi (Postfix) with ESMTP id D561B238C6 for ; Fri, 15 Aug 2003 20:49:17 +0300 (EEST) Received: from users.sf.net (sun [192.168.10.100]) (authenticated) by timhunt.net (8.11.6/8.11.6) with ESMTP id h7FHnBn23678 for ; Fri, 15 Aug 2003 13:49:11 -0400 Message-ID: <3F3D1D17.4060203@users.sf.net> Date: Fri, 15 Aug 2003 13:49:11 -0400 From: "Tim H." User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5a) Gecko/20030718 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-MailScanner-Information: Please contact the ISP for more information X-MailScanner: Found to be clean Subject: [Dovecot] 0.9.10 and Cygwin X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Aug 2003 17:49:21 -0000 X-UID: 1356 Status: O Has anybody succeeded in compiling 0.9.10 with Cygwin? I'm getting the following error:- gcc -DHAVE_CONFIG_H -I. -I. -I../.. -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c istream-file.c istream-file.c:57: conflicting types for `_close' /usr/include/sys/unistd.h:148: previous declaration of `_close' istream-file.c:129: conflicting types for `_read' /usr/include/sys/unistd.h:153: previous declaration of `_read' make: *** [istream-file.o] Error 1 Thanks Tim From rjhjr@cox.net Sat Aug 16 20:45:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9D289238C5; Sat, 16 Aug 2003 20:45:14 +0300 (EEST) Received: from lakemtao01.cox.net (lakemtao01.cox.net [68.1.17.244]) by danu.procontrol.fi (Postfix) with ESMTP id 3980A238C7 for ; Sat, 16 Aug 2003 20:45:03 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao01.cox.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP id <20030816174500.NRXD7142.lakemtao01.cox.net@kongemord.krig.net> for ; Sat, 16 Aug 2003 13:45:00 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Sat, 16 Aug 2003 13:44:55 -0400 From: "Bob Hall" Date: Sat, 16 Aug 2003 13:44:55 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] login w/ IMAP & LDAP Message-ID: <20030816174455.GD6910@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030814181600.GB59570@kongemord.krig.net> <256BA820-CE8A-11D7-B43D-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <256BA820-CE8A-11D7-B43D-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Aug 2003 17:45:15 -0000 X-UID: 1357 Status: O Content-Length: 1296 Dovecot now works perfectly. In spite of having a homeDirectory value for my test LDAP entry, I still needed the LDAP patch. For any foolish beginners like myself, the procedure for patch-less patching in FBSD is: # cd /usr/ports/mail/dovecot If you have dovecot currently installed, then # make deinstall If you have a work directory, then # make distclean The next step reinstalls the work directory and any and all files that a patch might be applied to. # make patch Move to the directory with the file you want to patch. # cd /usr/ports/mail/dovecot/work/dovecot-0.99.10/src/auth Copy the patch file to the directory. # cp /path-to-patch-file/auth-no-homedir.patch . Do something that allows you to view both the patch file and the file to be patched. In my case, that's # vim -o master-connection.c auth-no-homedir.patch Find the line in the file to be patched that matches the line in the patch file marked with an "-". Replace it with the line in the patch file marked with a "+". Make absolutely sure that you have deleted only what should be deleted and have added everything that should be added, and in the correct location. Save and close. # cd /usr/ports/mail/dovecot # make install Thank you Marco, and thank you very very much Timo for your time and effort. Bob Hall From tss@iki.fi Sun Aug 17 02:13:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B2B9D238D1; Sun, 17 Aug 2003 02:13:34 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BC6B923866 for ; Sun, 17 Aug 2003 02:13:30 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 79C995C896D9 for ; Sun, 17 Aug 2003 02:13:30 +0300 (EEST) Subject: Re: [Dovecot] more transitional joys From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F3C1AE7.8060501@harvee.org> References: <16229986-CEA7-11D7-B43D-000393CC2E90@iki.fi> <3F3C1AE7.8060501@harvee.org> Content-Type: text/plain Message-Id: <1061075610.759.56.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 17 Aug 2003 02:13:30 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Aug 2003 23:13:35 -0000 X-UID: 1358 Status: O On Fri, 2003-08-15 at 02:27, Eric S. Johansson wrote: > by the way, in recovering my old inbox I created a new imap mailbox and the > process keeps complaining about "invalid mask" and then lost my subscriptions to > all my mailboxes. What's that all about? Need a protocol trace? It's most likely that Mozilla bug. Or maybe you have set wrong IMAP prefix? It tries anyway to subscribe using '/' hierarchy separator while Dovecot wants '.'. From tss@iki.fi Sun Aug 17 02:16:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B05E1238D4; Sun, 17 Aug 2003 02:16:20 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E122F238D1 for ; Sun, 17 Aug 2003 02:16:16 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B44995C896D9 for ; Sun, 17 Aug 2003 02:16:16 +0300 (EEST) Subject: Re: [Dovecot] 0.9.10 and Cygwin From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F3D1D17.4060203@users.sf.net> References: <3F3D1D17.4060203@users.sf.net> Content-Type: text/plain Message-Id: <1061075776.764.60.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 17 Aug 2003 02:16:16 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Aug 2003 23:16:21 -0000 X-UID: 1359 Status: O On Fri, 2003-08-15 at 20:49, Tim H. wrote: > Has anybody succeeded in compiling 0.9.10 with Cygwin? I'm getting the > following error:- Yea, it's in my TODO that I should probably fix those.. You'd only have to rename the _read and _close functions to something else. I haven't yet figured out what since I kind of like the _ naming convention.. :) Maybe a full i_stream_file_read.. From ianj@ian-justman.com Sun Aug 17 10:32:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 14B91238C8; Sun, 17 Aug 2003 10:32:47 +0300 (EEST) Received: from vector.chocobo.org (vector.chocobo.org [207.126.72.243]) by danu.procontrol.fi (Postfix) with ESMTP id D1BCC238C5 for ; Sun, 17 Aug 2003 10:32:42 +0300 (EEST) Received: from ian-justman.com (jidoor.chocobo.org [207.126.72.253]) by vector.chocobo.org (Postfix) with ESMTP id 1BAEAA90EA4; Sun, 17 Aug 2003 00:32:41 -0700 (PDT) Message-ID: <3F3F2F99.4010209@ian-justman.com> Date: Sun, 17 Aug 2003 00:32:41 -0700 From: "Ian R. Justman" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] more transitional joys References: <16229986-CEA7-11D7-B43D-000393CC2E90@iki.fi> <3F3C1AE7.8060501@harvee.org> <1061075610.759.56.camel@hurina> In-Reply-To: <1061075610.759.56.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Aug 2003 07:32:47 -0000 X-UID: 1360 Status: O Timo Sirainen wrote: > On Fri, 2003-08-15 at 02:27, Eric S. Johansson wrote: > >>by the way, in recovering my old inbox I created a new imap mailbox and the >>process keeps complaining about "invalid mask" and then lost my subscriptions to >>all my mailboxes. What's that all about? Need a protocol trace? > > > It's most likely that Mozilla bug. Or maybe you have set wrong IMAP > prefix? It tries anyway to subscribe using '/' hierarchy separator while > Dovecot wants '.'. I've never had any problems subscribing to mailboxes using Netscape (I use NS under Windows; I've had bad experiences with Moz under Windows). Running Netscape 7.1, and am using the "Server supports folders that contain sub-folders and messages" in the incoming server's advance properties as unchecked since I use mbox. --Ian. From tss@iki.fi Sun Aug 17 17:39:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C76B9238C8; Sun, 17 Aug 2003 17:39:26 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8B3E1238C5 for ; Sun, 17 Aug 2003 17:39:18 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 46D6F5C896D9 for ; Sun, 17 Aug 2003 17:39:18 +0300 (EEST) Subject: Re: [Dovecot] more transitional joys From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F3F2F99.4010209@ian-justman.com> References: <16229986-CEA7-11D7-B43D-000393CC2E90@iki.fi> <3F3C1AE7.8060501@harvee.org> <1061075610.759.56.camel@hurina> <3F3F2F99.4010209@ian-justman.com> Content-Type: text/plain Message-Id: <1061131157.768.77.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 17 Aug 2003 17:39:18 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Aug 2003 14:39:27 -0000 X-UID: 1361 Status: O On Sun, 2003-08-17 at 10:32, Ian R. Justman wrote: > > It's most likely that Mozilla bug. Or maybe you have set wrong IMAP > > prefix? It tries anyway to subscribe using '/' hierarchy separator while > > Dovecot wants '.'. > > I've never had any problems subscribing to mailboxes using Netscape (I use > NS under Windows; I've had bad experiences with Moz under Windows). > > Running Netscape 7.1, and am using the "Server supports folders that > contain sub-folders and messages" in the incoming server's advance > properties as unchecked since I use mbox. With mbox Dovecot wants to use '/' separator, so it's only maildir that's problematic :) Next version allows changing the hierarchy separator to anything you want. Could be a good idea to use '/' with maildirs as well. I'm not sure if I'd want to change the default though, might break some clients which have cached the separator. From matthias.andree@gmx.de Sun Aug 17 21:23:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6B9D5238D4; Sun, 17 Aug 2003 21:23:23 +0300 (EEST) Received: from m2a2.dyndns.org (p508779BA.dip.t-dialin.net [80.135.121.186]) by danu.procontrol.fi (Postfix) with ESMTP id EC922238C5 for ; Sun, 17 Aug 2003 21:23:17 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 22C1293A1B; Sun, 17 Aug 2003 20:23:15 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] more transitional joys In-Reply-To: <1061131157.768.77.camel@hurina> (Timo Sirainen's message of "17 Aug 2003 17:39:18 +0300") References: <16229986-CEA7-11D7-B43D-000393CC2E90@iki.fi> <3F3C1AE7.8060501@harvee.org> <1061075610.759.56.camel@hurina> <3F3F2F99.4010209@ian-justman.com> <1061131157.768.77.camel@hurina> From: Matthias Andree Date: Sun, 17 Aug 2003 20:23:15 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Aug 2003 18:23:23 -0000 X-UID: 1362 Status: O Timo Sirainen writes: > Next version allows changing the hierarchy separator to anything you > want. Could be a good idea to use '/' with maildirs as well. I'm not > sure if I'd want to change the default though, might break some clients > which have cached the separator. Cone is one of these clients that cache NAMESPACE information. -- Matthias Andree From tss@iki.fi Mon Aug 18 06:43:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0306A238C9; Mon, 18 Aug 2003 06:43:37 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 170822387F for ; Mon, 18 Aug 2003 06:43:04 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id DC6275C896D9 for ; Mon, 18 Aug 2003 06:43:03 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1061178183.764.89.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 18 Aug 2003 06:43:03 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] CVS note X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Aug 2003 03:43:37 -0000 X-UID: 1363 Status: O Another large update for header caching which breaks your old indexes. I think it's working pretty nicely now. Only some smaller tweaking left to do with caching in general. From amartinez@equital.com.uy Mon Aug 18 23:58:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 555A5238C5; Mon, 18 Aug 2003 23:58:27 +0300 (EEST) Received: from sistemas.equital.lx (r200-40-171-82.adsl.anteldata.net.uy [200.40.171.82]) by danu.procontrol.fi (Postfix) with ESMTP id 31D492387F for ; Mon, 18 Aug 2003 23:58:18 +0300 (EEST) Received: from equital-mail.equital.com (correo.equital.lx [1.1.2.202]) by sistemas.equital.lx (8.12.9/8.11.6) with ESMTP id h7IKw5KH020045 for ; Mon, 18 Aug 2003 17:58:11 -0300 MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Date: Mon, 18 Aug 2003 17:58:44 -0300 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 content-class: urn:content-classes:message Message-ID: <30F0523D384016498241055B0311A0722ABC9A@equital-mail.equital.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Questions Thread-Index: AcNly4NkBQfpU/hPQvm3oP1I3b++TA== From: "Alejandro Martinez" To: X-MailScanner-Information: Please contact the ISP for more information X-MailScanner: Found to be clean Subject: [Dovecot] Questions X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Aug 2003 20:58:27 -0000 X-UID: 1364 Status: O Content-Length: 2100 Hi, I'm still figthing with passwd-file, virtual users and permissions. I have created the directory /var/spool/virtual/test and inside I've = done a "maildirmake Maildir". I have a couple of questions : I use the same passwd-file for auth_userdb and as auth_passdb. 1) What program can I use to create the userdb file ?=20 What I do now is to use the htpasswd program and then I complete by hand = the rest of the fields (uid:group:GECOS:home:shell) htpasswd userdb test password: xxx again: xxx And then vi userdb test@test.com:ssasZXc00P1H6:502:102::/var/spool/virtual/test/:/bin/false = <--by hand. I think that if I want to offer virtual mail with imap is very tedious = to complete user by user. (If this second question does not fall in this list, then don't answer = it) 2) I know that postfix delivers in Maildir format, and when the user is = a virtual user, I do the next Modify the virtual file ---> test@test.com test.test.com Modify the aliases file--> test.test.com: = /var/spool/virtual/test/Maildir postmap hash:virtual postaliases hash:aliases postfix reload =20 but when I do a "echo testing | sendmail test@test.com " I receive an = error Aug 18 15:32:44 slk90 postfix/pickup[12208]: 95C3717D5C: uid=3D0 = from=3D Aug 18 15:32:44 slk90 postfix/cleanup[12252]: 95C3717D5C: = message-id=3D<20030818183244.95C3717D5C@slk90.equital.lx> Aug 18 15:32:44 slk90 postfix/qmgr[12209]: 95C3717D5C: = from=3D, size=3D291, nrcpt=3D1 (queue active) Aug 18 15:32:44 slk90 postfix/local[12254]: 95C3717D5C: = to=3D, orig_to=3D, = relay=3Dlocal, delay=3D0, status=3Dbounced (cannot append message to = destination file /var/spool/virtual/test/Maildir: cannot open file: = Permission denied) I'm confused about permissions. I set the /var/spool/virtual to = dovecot.postfix and the permissions are drwxrwx--- Thanks a lot. --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003 =20 From dovecot@spam.turbolink.net Tue Aug 19 00:00:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E3F38238D2; Tue, 19 Aug 2003 00:00:40 +0300 (EEST) Received: from delorean.turbolink.net (firewall.turbolink.net [209.120.199.48]) by danu.procontrol.fi (Postfix) with ESMTP id 202E1238CB for ; Tue, 19 Aug 2003 00:00:39 +0300 (EEST) Received: from localhost (junkmail@localhost) by delorean.turbolink.net (8.12.8/8.11.2) with ESMTP id h7IL6fG6018407 for ; Mon, 18 Aug 2003 17:06:41 -0400 Date: Mon, 18 Aug 2003 17:06:41 -0400 (EDT) From: dovecot@spam.turbolink.net X-X-Sender: junkmail@delorean.turbolink.net To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Re: CVS Note X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Aug 2003 21:00:41 -0000 X-UID: 1365 Status: O Is mbox support working again in CVS? - Mike From esj@harvee.org Tue Aug 19 00:26:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C555E238D3; Tue, 19 Aug 2003 00:26:43 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 9056B2384C for ; Tue, 19 Aug 2003 00:26:33 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7ILQVmj001118 for ; Mon, 18 Aug 2003 17:26:31 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Mon, 18 Aug 2003 17:26:21 -0400 Message-ID: <3F414423.3040702@harvee.org> Date: Mon, 18 Aug 2003 17:24:51 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030818:dovecot@procontrol.fi:bc55be8edfc7d2ba Subject: [Dovecot] transitional weirdnesses X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Aug 2003 21:26:43 -0000 X-UID: 1366 Status: O 1) not reproducible but when it occurred, its stuck: in the early transition to dovecot I would notice occasionally that messages would come up, I would delete them and then something would hang causing a major delay in the (Mozilla) e-mail client's response. When the system responded, I would notice that occasionally there would be an off by one offset between the index of messages and the message displayed. This error would persist until I killed off the index and the dovecot process. 2) very reproducible: after fetching messages from my inbox, there will be a long (30 sec.) delay. Dovecot demon is clearly busy doing something. I do have a large set of filter rules (approximately 150) sorting messages into different boxes. Is this a reason to switch to maildir? 3) just ended up with a message that displayed the entire header. Will look into this more but it's very strange. ---eric From rjhjr@cox.net Tue Aug 19 03:18:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6241E238CB; Tue, 19 Aug 2003 03:18:19 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 8E81C2384C for ; Tue, 19 Aug 2003 03:18:12 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP id <20030819001812.VCJX23518.lakemtao03.cox.net@kongemord.krig.net> for ; Mon, 18 Aug 2003 20:18:12 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Mon, 18 Aug 2003 20:18:11 -0400 From: "Bob Hall" Date: Mon, 18 Aug 2003 20:18:11 -0400 To: Dovecot Mail List Message-ID: <20030819001810.GD55027@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] Three oddities X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 00:18:19 -0000 X-UID: 1367 Status: O Content-Length: 2132 FBSD 4.8, Dovecot-0.99.10 1) I have mail accounts for people who use Macs and Windows, so their mail is stored on a Unix box where they don't have accounts. When their mail comes in, it is stored in /var/mail/. When I was setting this up, I used my own Unix account for testing, and that works fine. But for the other mail accounts, which don't correspond to Unix accounts, I want to give ownership of the /var/mail/* files to another account that doesn't have my privileges. However, no one can access their mail unless I own their files. As long as I own all the /var/mail/* files, everything works fine. But if I shift ownership to another account, users can log on to Dovecot but attempts to access an IMAP folder return an error. >From maillog: Aug 18 16:39:46 kongemord imap(philrodrigues): mkdir_parents(/var/mail/philrodri gues/.imap/INBOX) failed: Permission denied All files and directories in /var/mail/* are in the mail group. I tried adding dovecot to that group, but that didn't help. Since everyone can log on to Dovecot, but can't access their mail unless I own their files, I'm assuming that there's some simple ownership setting that I'm overlooking. But I haven't a clue what it is. Can someone tell me what I need to change? 2) The Macs have Eudora 4.2 installed, and the Win boxes have Eudora 5.1. The Macs can delete mail, put it in the trash, and empty the trash. The Win clients can mark mail deleted, but they can't remove it. The mail stays in the IMAP folder until the same user accesses their mail from a Mac and deletes it. If a user drags a message to another folder, a copy is created in the new folder but the old copy remains in the original folder. I'm not having this problem with Mutt, so it the problem seems to be specific to the Windows verson of Eudora. Is there a fix? 3) We're pulling our e-mail off our ISP's POP server and loading it into Dovecot to allow people to work with their mail from different machines. I'm using getmail to make the transfer. Is anyone else doing POP to IMAP, and how are they doing it? Any suggestions? TIA, Bob Hall From esj@harvee.org Tue Aug 19 04:09:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DD0D2238D3; Tue, 19 Aug 2003 04:09:40 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id AE983238C5 for ; Tue, 19 Aug 2003 04:09:35 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7J19Wmj003353; Mon, 18 Aug 2003 21:09:32 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Mon, 18 Aug 2003 21:09:28 -0400 Message-ID: <3F41786D.7010704@harvee.org> Date: Mon, 18 Aug 2003 21:07:57 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Bob Hall Subject: Re: [Dovecot] Three oddities References: <20030819001810.GD55027@kongemord.krig.net> In-Reply-To: <20030819001810.GD55027@kongemord.krig.net> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030819:rjhjr@cox.net:220812c43cc10928 X-Camram: stamp; 0:030819:dovecot@procontrol.fi:328409838947735c cc: Dovecot Mail List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 01:09:41 -0000 X-UID: 1368 Status: O Bob Hall explained: > > 3) > We're pulling our e-mail off our ISP's POP server and loading it into > Dovecot to allow people to work with their mail from different > machines. I'm using getmail to make the transfer. Is anyone else > doing POP to IMAP, and how are they doing it? Any suggestions? finally a question I can answer. :-) if you're not going to have direct SMTP delivery, you are doing it the only way you really can. One refinement would be to collect all e-mail for all addresses into a single pop3 box and use multidrop type functionality to retrieve and disburse the mail appropriately. in theory it would be possible to retrieve using pop3 and then push using imap but that is too ugly to even contemplate. ---eric From rjhjr@cox.net Tue Aug 19 07:32:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 894A9238CB; Tue, 19 Aug 2003 07:32:41 +0300 (EEST) Received: from lakemtao01.cox.net (lakemtao01.cox.net [68.1.17.244]) by danu.procontrol.fi (Postfix) with ESMTP id 0502923896 for ; Tue, 19 Aug 2003 07:32:29 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao01.cox.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP id <20030819043226.OJTH7142.lakemtao01.cox.net@kongemord.krig.net> for ; Tue, 19 Aug 2003 00:32:26 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Tue, 19 Aug 2003 00:32:27 -0400 From: "Bob Hall" Date: Tue, 19 Aug 2003 00:32:27 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] Three oddities Message-ID: <20030819043227.GA55571@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030819001810.GD55027@kongemord.krig.net> <3F41786D.7010704@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3F41786D.7010704@harvee.org> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 04:32:41 -0000 X-UID: 1369 Status: O Content-Length: 1308 On Mon, Aug 18, 2003 at 09:07:57PM -0400, Eric S. Johansson wrote: > Bob Hall explained: > > > > >3) > >We're pulling our e-mail off our ISP's POP server and loading it into > >Dovecot to allow people to work with their mail from different > >machines. I'm using getmail to make the transfer. Is anyone else > >doing POP to IMAP, and how are they doing it? Any suggestions? > > finally a question I can answer. :-) > > if you're not going to have direct SMTP delivery, you are doing it the only > way you really can. One refinement would be to collect all e-mail for all > addresses into a single pop3 box and use multidrop type functionality to > retrieve and disburse the mail appropriately. > > in theory it would be possible to retrieve using pop3 and then push using > imap but that is too ugly to even contemplate. If I understand you correctly, that's exactly what I'm doing. And here I thought my setup was a thing of beauty and a joy forever. I did look at the descriptions of multidrop setups in the fetchmail and getmail documentation, but decided, since eash user has his own POP account, to keep it that way in IMAP. Taking accounts that were seperate, blending them, and then seperating them again seemed more complicated than keeping them seperate. Am I wrong? Bob Hall From tss@iki.fi Tue Aug 19 16:11:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1E61A238CB; Tue, 19 Aug 2003 16:11:58 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6E27423896 for ; Tue, 19 Aug 2003 16:11:52 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 247765C896D9 for ; Tue, 19 Aug 2003 16:11:52 +0300 (EEST) Subject: Re: [Dovecot] Questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <30F0523D384016498241055B0311A0722ABC9A@equital-mail.equital.com> References: <30F0523D384016498241055B0311A0722ABC9A@equital-mail.equital.com> Content-Type: text/plain Message-Id: <1061298711.19009.2.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 19 Aug 2003 16:11:51 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 13:11:58 -0000 X-UID: 1370 Status: O Content-Length: 1233 On Mon, 2003-08-18 at 23:58, Alejandro Martinez wrote: > Hi, I'm still figthing with passwd-file, virtual users and permissions. > > I have created the directory /var/spool/virtual/test and inside I've done a "maildirmake Maildir". > I have a couple of questions : > > I use the same passwd-file for auth_userdb and as auth_passdb. > 1) What program can I use to create the userdb file ? I do it with text editor as well. > I think that if I want to offer virtual mail with imap is very tedious to complete user by user. You could keep the users in LDAP or SQL and find/build some user interface to update them easily. > (If this second question does not fall in this list, then don't answer it) > 2) I know that postfix delivers in Maildir format, and when the user is a virtual user, I do the next > > Modify the aliases file--> test.test.com: /var/spool/virtual/test/Maildir > Aug 18 15:32:44 slk90 postfix/local[12254]: 95C3717D5C: to=, orig_to=, relay=local, delay=0, status=bounced (cannot append message to destination file /var/spool/virtual/test/Maildir: cannot open file: Permission denied) You're missing the '/' after Maildir. It's trying to open it as mbox. From tss@iki.fi Tue Aug 19 16:12:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 92747238D7; Tue, 19 Aug 2003 16:12:22 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CFC6F23996 for ; Tue, 19 Aug 2003 16:12:20 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id AA4F25C896D9 for ; Tue, 19 Aug 2003 16:12:20 +0300 (EEST) Subject: Re: [Dovecot] Re: CVS Note From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1061298740.19006.4.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 19 Aug 2003 16:12:20 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 13:12:22 -0000 X-UID: 1371 Status: O On Tue, 2003-08-19 at 00:06, dovecot@spam.turbolink.net wrote: > Is mbox support working again in CVS? Nope. From tss@iki.fi Tue Aug 19 16:17:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 195BB23993; Tue, 19 Aug 2003 16:17:14 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 27A6823896 for ; Tue, 19 Aug 2003 16:17:11 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D66CD5C896D9 for ; Tue, 19 Aug 2003 16:17:10 +0300 (EEST) Subject: Re: [Dovecot] transitional weirdnesses From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F414423.3040702@harvee.org> References: <3F414423.3040702@harvee.org> Content-Type: text/plain Message-Id: <1061299030.19009.10.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 19 Aug 2003 16:17:10 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 13:17:14 -0000 X-UID: 1372 Status: O Content-Length: 1455 On Tue, 2003-08-19 at 00:24, Eric S. Johansson wrote: > 1) not reproducible but when it occurred, its stuck: in the early transition to > dovecot I would notice occasionally that messages would come up, I would delete > them and then something would hang causing a major delay in the (Mozilla) e-mail > client's response. When the system responded, I would notice that occasionally > there would be an off by one offset between the index of messages and the > message displayed. This error would persist until I killed off the index and > the dovecot process. > > 3) just ended up with a message that displayed the entire header. Will look > into this more but it's very strange. Corrupted messages with Mozilla sounds a bit like the bug I fixed in 0.99.10.. You don't happen to be using CR+LF linefeeds? Or alternatively it's just some mbox weirdness. I haven't noticed that myself though.. > 2) very reproducible: after fetching messages from my inbox, there will be a > long (30 sec.) delay. Dovecot demon is clearly busy doing something. I do have > a large set of filter rules (approximately 150) sorting messages into different > boxes. Is this a reason to switch to maildir? You could check with strace -p pid what imap process is doing. Or if those filter rules are done by client and one message at a time doing COPY + EXPUNGE, it's really no wonder. I'd suggest maildir anyway, it probably fixes your other problems too :) From tss@iki.fi Tue Aug 19 16:23:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 33DD1238C5; Tue, 19 Aug 2003 16:23:02 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6B40F23896 for ; Tue, 19 Aug 2003 16:23:00 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 34ABF5C896D9 for ; Tue, 19 Aug 2003 16:23:00 +0300 (EEST) Subject: Re: [Dovecot] Three oddities From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030819001810.GD55027@kongemord.krig.net> References: <20030819001810.GD55027@kongemord.krig.net> Content-Type: text/plain Message-Id: <1061299380.19006.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 19 Aug 2003 16:23:00 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 13:23:02 -0000 X-UID: 1373 Status: O Content-Length: 1586 On Tue, 2003-08-19 at 03:18, Bob Hall wrote: > FBSD 4.8, Dovecot-0.99.10 > 1) > >From maillog: > Aug 18 16:39:46 kongemord imap(philrodrigues): mkdir_parents(/var/mail/philrodri > gues/.imap/INBOX) failed: Permission denied > > All files and directories in /var/mail/* are in the mail group. I tried > adding dovecot to that group, but that didn't help. > > Since everyone can log on to Dovecot, but can't access their mail unless > I own their files, I'm assuming that there's some simple ownership > setting that I'm overlooking. But I haven't a clue what it is. Can someone > tell me what I need to change? What userdb are you using? Dovecot gets the uid/gid for users from there. Whatever you do, don't use the "dovecot" user's uid there :) Rather create a new one. Hm. Maybe I should rename it to dovecot-login to make it more clear what it's supposed to used for.. > 2) > The Macs have Eudora 4.2 installed, and the Win boxes have Eudora 5.1. > The Macs can delete mail, put it in the trash, and empty the trash. > The Win clients can mark mail deleted, but they can't remove it. The > mail stays in the IMAP folder until the same user accesses their mail > from a Mac and deletes it. If a user drags a message to another folder, > a copy is created in the new folder but the old copy remains in the > original folder. I'm not having this problem with Mutt, so it the > problem seems to be specific to the Windows verson of Eudora. Is there > a fix? Are there error messages in log file? /var/log/maillog probably. I can't think of any reason why it does that.. From tss@iki.fi Tue Aug 19 16:28:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 28F272399D; Tue, 19 Aug 2003 16:28:55 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A4A6B23999 for ; Tue, 19 Aug 2003 16:28:53 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5BDEA5C896D9 for ; Tue, 19 Aug 2003 16:28:53 +0300 (EEST) Subject: Re: [Dovecot] Three oddities From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3F41786D.7010704@harvee.org> References: <20030819001810.GD55027@kongemord.krig.net> <3F41786D.7010704@harvee.org> Content-Type: text/plain Message-Id: <1061299733.19006.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 19 Aug 2003 16:28:53 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 13:28:55 -0000 X-UID: 1374 Status: O On Tue, 2003-08-19 at 04:07, Eric S. Johansson wrote: > in theory it would be possible to retrieve using pop3 and then push using imap > but that is too ugly to even contemplate. Well, UW-IMAP supports that. I've actually thought about supporting as well :) It would work better to poll the pop3 box only when IMAP's INBOX is being accessed by IMAP client. Luckily this can be implemented as a plugin. From esj@harvee.org Tue Aug 19 16:41:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5901F23998; Tue, 19 Aug 2003 16:41:43 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 13D3923999 for ; Tue, 19 Aug 2003 16:41:11 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7JDf8mj008467 for ; Tue, 19 Aug 2003 09:41:08 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 19 Aug 2003 09:41:04 -0400 Message-ID: <3F422895.4050301@harvee.org> Date: Tue, 19 Aug 2003 09:39:33 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: Re: [Dovecot] Three oddities References: <20030819001810.GD55027@kongemord.krig.net> <3F41786D.7010704@harvee.org> <1061299733.19006.22.camel@hurina> In-Reply-To: <1061299733.19006.22.camel@hurina> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030819:dovecot@procontrol.fi:f8aec2d7a64cc5d2 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 13:41:43 -0000 X-UID: 1375 Status: O Content-Length: 1249 Timo Sirainen explained: > On Tue, 2003-08-19 at 04:07, Eric S. Johansson wrote: > >>in theory it would be possible to retrieve using pop3 and then push using imap >>but that is too ugly to even contemplate. > > > Well, UW-IMAP supports that. I've actually thought about supporting as > well :) It would work better to poll the pop3 box only when IMAP's INBOX > is being accessed by IMAP client. Luckily this can be implemented as a > plugin. it's one of those "just because you can do it, doesn't mean you should" situations. One of the big problems is that you bypass a lot of normal mail system functionality like antivirus or antispam filters. In my antispam system (camram), I'm currently using procmail as a way of intercepting the mail stream and working on the messages. Depositing messages via an imap backdoor would totally bypass filtering. Additionally, if you use a collect pop3 box and multidrop distribution, you reduce your security exposure because only one password known (i.e. that for the pop box) versus 1 for every user. I will need to look into the plug-in capability real soon now because it might be a good way to implement a correction mechanism for messages that aren't caught by the filter. ---eric From esj@harvee.org Tue Aug 19 16:46:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C805B239A7; Tue, 19 Aug 2003 16:46:11 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id EF2D12399D for ; Tue, 19 Aug 2003 16:46:09 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7JDk8mj008546 for ; Tue, 19 Aug 2003 09:46:08 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 19 Aug 2003 09:46:06 -0400 Message-ID: <3F4229C3.4010105@harvee.org> Date: Tue, 19 Aug 2003 09:44:35 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] transitional weirdnesses References: <3F414423.3040702@harvee.org> <1061299030.19009.10.camel@hurina> In-Reply-To: <1061299030.19009.10.camel@hurina> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030819:dovecot@procontrol.fi:777b5cc3f74a66fe X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 13:46:11 -0000 X-UID: 1376 Status: O Content-Length: 1202 Timo Sirainen explained: > On Tue, 2003-08-19 at 00:24, Eric S. Johansson wrote: > > Corrupted messages with Mozilla sounds a bit like the bug I fixed in > 0.99.10.. You don't happen to be using CR+LF linefeeds? Or alternatively > it's just some mbox weirdness. I haven't noticed that myself though.. no, I don't think I am. I will doublecheck however in any case, it only happened once so I'm not too worried > You could check with strace -p pid what imap process is doing. Or if > those filter rules are done by client and one message at a time doing > COPY + EXPUNGE, it's really no wonder. you know, I would not be surprised if Mozilla was doing that. It's not a very smart imap client but it sucks far less than the other ones out there. Now all I need is server side filtering that is manageable (unlike procmail) and I will be very happy (until the next time I stub my toe ;-) > I'd suggest maildir anyway, it probably fixes your other problems too :) I figured you'd say that. It's where I was going anyway... now I need to figure out how to make the delivery agent (procmail) deliver to my inbox using maildir and everybody else's mailbox in mbox.... time to STFW ---eric From tss@iki.fi Tue Aug 19 18:46:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D2E95239A7; Tue, 19 Aug 2003 18:46:00 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 499A023994 for ; Tue, 19 Aug 2003 18:45:59 +0300 (EEST) Date: Tue, 19 Aug 2003 18:46:08 +0300 Subject: Re: [Dovecot] Three oddities Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <3F422895.4050301@harvee.org> Message-Id: <4018B4B1-D25C-11D7-9050-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 15:46:01 -0000 X-UID: 1377 Status: O Content-Length: 1276 On Tuesday, Aug 19, 2003, at 16:39 Europe/Helsinki, Eric S. Johansson wrote: >> Well, UW-IMAP supports that. I've actually thought about supporting as >> well :) It would work better to poll the pop3 box only when IMAP's >> INBOX >> is being accessed by IMAP client. Luckily this can be implemented as a >> plugin. > > it's one of those "just because you can do it, doesn't mean you > should" situations. One of the big problems is that you bypass a lot > of normal mail system functionality like antivirus or antispam > filters. In my antispam system (camram), I'm currently using procmail > as a way of intercepting the mail stream and working on the messages. > Depositing messages via an imap backdoor would totally bypass > filtering. Nothing would prevent the same plugin from putting the messages through spam and virus checkers. > Additionally, if you use a collect pop3 box and multidrop > distribution, you reduce your security exposure because only one > password known (i.e. that for the pop box) versus 1 for every user. I meant that you'd still use multiple normal pop3 boxes. You could have per-user configuration for the pop3 box locations and passwords. Either using some ~/.dovecotrc file or ANNOTATEMORE extension once we support that. From ianj@ian-justman.com Tue Aug 19 18:48:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DF84C239AB; Tue, 19 Aug 2003 18:48:45 +0300 (EEST) Received: from sakura.ian-justman.com (sakura.ian-justman.com [207.126.72.246]) by danu.procontrol.fi (Postfix) with ESMTP id 0A447239A7 for ; Tue, 19 Aug 2003 18:48:41 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost.ian-justman.com (Postfix) with ESMTP id 03DAAC9B881; Tue, 19 Aug 2003 08:48:39 -0700 (PDT) Received: from sakura.ian-justman.com ([127.0.0.1]) by localhost (sakura [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 24866-01; Tue, 19 Aug 2003 08:48:37 -0700 (PDT) Received: from ian-justman.com (fenchurch.netasset.com [207.126.67.194]) by sakura.ian-justman.com (Postfix) with ESMTP id F0744C9B81F; Tue, 19 Aug 2003 08:48:36 -0700 (PDT) Message-ID: <3F4246D5.5040809@ian-justman.com> Date: Tue, 19 Aug 2003 08:48:37 -0700 From: "Ian R. Justman" Organization: Net Asset, Network Operations User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en, ja MIME-Version: 1.0 To: "Eric S. Johansson" Subject: Re: [Dovecot] transitional weirdnesses References: <3F414423.3040702@harvee.org> <1061299030.19009.10.camel@hurina> <3F4229C3.4010105@harvee.org> In-Reply-To: <3F4229C3.4010105@harvee.org> X-Enigmail-Version: 0.76.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new-20030616-p3 (Debian) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 15:48:46 -0000 X-UID: 1378 Status: O Eric S. Johansson wrote: > I figured you'd say that. It's where I was going anyway... now I need > to figure out how to make the delivery agent (procmail) deliver to my > inbox using maildir and everybody else's mailbox in mbox.... time to STFW Just follow your destination folder with a / and it will create a Maildir. --Ian. From tss@iki.fi Tue Aug 19 18:48:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B1EDA239B6; Tue, 19 Aug 2003 18:48:57 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 68E73239B7 for ; Tue, 19 Aug 2003 18:48:53 +0300 (EEST) Date: Tue, 19 Aug 2003 18:49:03 +0300 Subject: Re: [Dovecot] transitional weirdnesses Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F4229C3.4010105@harvee.org> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 15:48:57 -0000 X-UID: 1379 Status: O On Tuesday, Aug 19, 2003, at 16:44 Europe/Helsinki, Eric S. Johansson wrote: > Now all I need is server side filtering that is manageable (unlike > procmail) and I will be very happy (until the next time I stub my toe > ;-) That would probably be Sieve then. I think there's some GUIs for it as well. I'd just have to get around plugging libSieve into Dovecot. Last I tried it wasn't as simple as I thought. From esj@harvee.org Tue Aug 19 20:03:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E298723998; Tue, 19 Aug 2003 20:03:39 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id CC9ED23896 for ; Tue, 19 Aug 2003 20:03:29 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7JH3Rmj010394 for ; Tue, 19 Aug 2003 13:03:27 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 19 Aug 2003 13:03:26 -0400 Message-ID: <3F425803.6050107@harvee.org> Date: Tue, 19 Aug 2003 13:01:55 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List Subject: Re: [Dovecot] Three oddities References: <4018B4B1-D25C-11D7-9050-000393CC2E90@iki.fi> In-Reply-To: <4018B4B1-D25C-11D7-9050-000393CC2E90@iki.fi> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030819:dovecot@procontrol.fi:2b01cee3cf9eff7a X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 17:03:40 -0000 X-UID: 1380 Status: O Timo Sirainen explained: > Nothing would prevent the same plugin from putting the messages through > spam and virus checkers. quite correct and that occurred to me about 30 pico seconds after I hit the send button. at the same time, it's yet another thing that requires manual configuration. Yet another thing that can and probably will go wrong. > I meant that you'd still use multiple normal pop3 boxes. You could have > per-user configuration for the pop3 box locations and passwords. Either > using some ~/.dovecotrc file or ANNOTATEMORE extension once we support > that. ah. sorry about misunderstanding. Seems like there's quite a bit more functionality in dovecot then the web site conveys. No blame. I understand the phenomenon quite well and am a victim of myself. The camram documentation is currently a year out of date and I want to get 0.2 out the door before I start updating it. ---eric From esj@harvee.org Tue Aug 19 20:08:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CEF17239BE; Tue, 19 Aug 2003 20:08:13 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 0A6AE239BC for ; Tue, 19 Aug 2003 20:08:12 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7JH8Amj010532 for ; Tue, 19 Aug 2003 13:08:10 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 19 Aug 2003 13:08:07 -0400 Message-ID: <3F42591C.4070709@harvee.org> Date: Tue, 19 Aug 2003 13:06:36 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] transitional weirdnesses References: In-Reply-To: X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030819:dovecot@procontrol.fi:0910bc7ba3a3cdc4 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 17:08:14 -0000 X-UID: 1381 Status: O Timo Sirainen explained: > On Tuesday, Aug 19, 2003, at 16:44 Europe/Helsinki, Eric S. Johansson > wrote: > > That would probably be Sieve then. I think there's some GUIs for it as > well. I'd just have to get around plugging libSieve into Dovecot. Last I > tried it wasn't as simple as I thought. why is none of this stuff as easy as it should be? We should know enough now to be able to abstract appropriate bits functionality and communicate that abstraction clearly. Instead we still have a rather poor mishmash of knowledge compounded by a cluster of point simplifications when used together increase overall complexity. bah, humbug.. should have stayed in astronomy and physics. ---eric From warren@togami.com Tue Aug 19 22:30:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 59C0A2399B; Tue, 19 Aug 2003 22:30:28 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 5BD5E238CE for ; Tue, 19 Aug 2003 22:30:23 +0300 (EEST) Received: from localhost (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id A70185D8060 for ; Tue, 19 Aug 2003 09:50:36 -1000 (HST) From: Warren Togami To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1061321415.7623.103.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 (1.4.4-3) Date: Tue, 19 Aug 2003 09:30:15 -1000 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Squirrelmail and Dovecot folder namespace X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 19:30:28 -0000 X-UID: 1382 Status: O I am currently using Squirrelmail and Dovecot with this setting: default_mail_env = mbox:%h/mail/:INBOX=%h/mail/INBOX It works well, however folder subscriptions in Squirrelmail annoyingly end up with "./" prefixes because Squirrelmail refuses to work without overriding the folder namespace. All of my other IMAP clients work fine without setting that option. Squirrelmail's default setting is this: $default_folder_prefix = './mail'; This setting breaks Squirrelmail: $default_folder_prefix = ''; This setting becomes default if you attempt to blank that user's preference: $default_folder_prefix = './'; The end result of this is duplicate entries in .subscriptions, one with "./" prefix and one without. Most IMAP clients handle this by showing all the folders again in a folder named ".", or Mozilla displays all folders twice. =( When I asked one of the squirrelmail developers, he said that this might be a dovecot specific problem. Any ideas? Warren Togami warren@togami.com From tss@iki.fi Tue Aug 19 22:38:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1D00B2399E; Tue, 19 Aug 2003 22:38:12 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 90C472399C for ; Tue, 19 Aug 2003 22:38:10 +0300 (EEST) Date: Tue, 19 Aug 2003 22:38:20 +0300 Subject: Re: [Dovecot] Squirrelmail and Dovecot folder namespace Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <1061321415.7623.103.camel@laptop> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 19:38:12 -0000 X-UID: 1383 Status: O On Tuesday, Aug 19, 2003, at 22:30 Europe/Helsinki, Warren Togami wrote: > This setting breaks Squirrelmail: > $default_folder_prefix = ''; Breaks how? I use it with Squirrelmail 1.4, and everything including subscribing and unsubscribing seems to work fine. I use maildir, but I don't think that should make much of a difference. From rjhjr@cox.net Wed Aug 20 00:11:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1BEA423997; Wed, 20 Aug 2003 00:11:31 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id 9803723996 for ; Wed, 20 Aug 2003 00:11:26 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030819211124.XMY419.lakemtao04.cox.net@kongemord.krig.net> for ; Tue, 19 Aug 2003 17:11:24 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Tue, 19 Aug 2003 17:11:23 -0400 From: "Bob Hall" Date: Tue, 19 Aug 2003 17:11:23 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] Three oddities Message-ID: <20030819211109.GA2673@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030819001810.GD55027@kongemord.krig.net> <1061299380.19006.17.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1061299380.19006.17.camel@hurina> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 21:11:31 -0000 X-UID: 1384 Status: O Content-Length: 4338 On Tue, Aug 19, 2003 at 04:23:00PM +0300, Timo Sirainen wrote: > On Tue, 2003-08-19 at 03:18, Bob Hall wrote: > > FBSD 4.8, Dovecot-0.99.10 > > 1) > > >From maillog: > > Aug 18 16:39:46 kongemord imap(philrodrigues): mkdir_parents(/var/mail/philrodri > > gues/.imap/INBOX) failed: Permission denied > > > > All files and directories in /var/mail/* are in the mail group. I tried > > adding dovecot to that group, but that didn't help. > > > > Since everyone can log on to Dovecot, but can't access their mail unless > > I own their files, I'm assuming that there's some simple ownership > > setting that I'm overlooking. But I haven't a clue what it is. Can someone > > tell me what I need to change? > > What userdb are you using? Dovecot gets the uid/gid for users from The userdb is ldap. What are the uid and gid supposed to do? I have the default uid in dovecot-ldap.conf and the individual uidNumber and values in the LDAP registry set to the mail account (the one I want to own the mail files). The default gid and the individual gidNumbers are set to the mail group, which is the group assigned to all files in /var/mail. If the mail account owns the files, users can't access them. If I own the files, everthing works fine, but my uid and gid numbers are not listed anywhere that dovecot has access to. I know that imap-master checks uids and gids for validity, but aside from that I don't know what they're used for. I thought that maybe the fact that I'm a wheel and the mail user is not had something to do with it, but adding the mail account to the wheel group had no effect. I tried adding dovecot and the mail user to the mail group, again with no effect. I still have to be the owner of the mail files. > there. Whatever you do, don't use the "dovecot" user's uid there :) > Rather create a new one. Hm. Maybe I should rename it to dovecot-login > to make it more clear what it's supposed to used for.. I don't think that will make it clearer. Both dovecot.conf and "ps waux | grep dovecot" make it clear what the dovecot processes are used for. If you name it dovecot-login, I think it would be just as easy for someone to get confused and try to use the dovecot uid for themselves, in the belief that they need it to log in. I think you're at a point where you need to think about how you are going to explain Dovecot to users. If relatively ignorant users like me can install it easily and securely, then Dovecot will have a reputation for being easy to use and secure. If we don't know how to install Dovecot easily and securely, then it will get a reputation for being complicated and insecure, regardless of the reality. An application's reputation, earned or unearned, tends to be established by the lowest tier of users. If I feel I understand how to install and set up Dovecot, then I will feel that my installation is secure. If I have doubts about what I've done, then I'm going to have doubts about my security. And I don't think you want to spend all your spare time explaining Dovecot to us foolish beginners. > > 2) > > The Macs have Eudora 4.2 installed, and the Win boxes have Eudora 5.1. > > The Macs can delete mail, put it in the trash, and empty the trash. > > The Win clients can mark mail deleted, but they can't remove it. The > > mail stays in the IMAP folder until the same user accesses their mail > > from a Mac and deletes it. If a user drags a message to another folder, > > a copy is created in the new folder but the old copy remains in the > > original folder. I'm not having this problem with Mutt, so it the > > problem seems to be specific to the Windows verson of Eudora. Is there > > a fix? > > Are there error messages in log file? /var/log/maillog probably. I can't > think of any reason why it does that.. No. Nothing in maillog, and nothing in dovecot.rawlog. That's something else I'm confused about: When exactly does Dovecot write to the raw logs? I've got a boatload of entries from 20030814, and nothing before or since. Also, I get the following in the output from "ps waux | grep dovecot": dovecot 1004 0.0 0.9 2208 536 ?? S 7:58AM 0:01.48 imap-login: imap-login [IP address] (imap-login) The machine at [IP address] is physically shut down. Should there still be an imap-login process for it? From mem@mv.mv.com Wed Aug 20 01:09:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 073512399C; Wed, 20 Aug 2003 01:09:33 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id CCA31238CB for ; Wed, 20 Aug 2003 01:09:30 +0300 (EEST) Received: (qmail 10460 invoked by uid 101); 19 Aug 2003 18:09:29 -0400 From: "Mark E. Mallett" Date: Tue, 19 Aug 2003 18:09:29 -0400 To: Timo Sirainen Subject: Re: [Dovecot] transitional weirdnesses Message-ID: <20030819220929.GC16988@iridium.mv.net> References: <3F4229C3.4010105@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 22:09:33 -0000 X-UID: 1385 Status: O On Tue, Aug 19, 2003 at 06:49:03PM +0300, Timo Sirainen wrote: > On Tuesday, Aug 19, 2003, at 16:44 Europe/Helsinki, Eric S. Johansson > wrote: > > >Now all I need is server side filtering that is manageable (unlike > >procmail) and I will be very happy (until the next time I stub my toe > >;-) > > That would probably be Sieve then. I think there's some GUIs for it as > well. I'd just have to get around plugging libSieve into Dovecot. Last > I tried it wasn't as simple as I thought. I thought he was just musing about finding a delivery agent that included a filtering language. Not sure what good having such a thing in the IMAP server does, although I know some support it. Seems to me that a facility to re-deliver mail or other general ways to give a message to a standalone tool (as briefly discussed a while ago) would be superior. -mm- (currently using a sieve-ish filter on my inbox..) From esj@harvee.org Wed Aug 20 01:57:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 40C3123996; Wed, 20 Aug 2003 01:57:20 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 480C123896 for ; Wed, 20 Aug 2003 01:57:14 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7JMvBmj013542 for ; Tue, 19 Aug 2003 18:57:11 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 19 Aug 2003 18:57:09 -0400 Message-ID: <3F42AAEA.4080805@harvee.org> Date: Tue, 19 Aug 2003 18:55:38 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] transitional weirdnesses References: <3F4229C3.4010105@harvee.org> <20030819220929.GC16988@iridium.mv.net> In-Reply-To: <20030819220929.GC16988@iridium.mv.net> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030819:dovecot@procontrol.fi:483dbd052d06f650 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Aug 2003 22:57:20 -0000 X-UID: 1386 Status: O Content-Length: 2275 Mark E. Mallett explained: > On Tue, Aug 19, 2003 at 06:49:03PM +0300, Timo Sirainen wrote: > > I thought he was just musing about finding a delivery agent that Mark, I know you're just being polite. It's OK to say "grousing" or "whingeing" because that's what I was doing. ;-) > included a filtering language. Not sure what good having such a thing > in the IMAP server does, although I know some support it. Seems to me > that a facility to re-deliver mail or other general ways to give a > message to a standalone tool (as briefly discussed a while ago) would > be superior. in all seriousness, what you are describing is the right place to put a filter as long as the user agent has a channel for notifications of mail delivery to different mailboxes. Remember my grousing about complexity? This kind of simplification is necessary. So, to go to the next step, there are 4 components on the receive side of a mail system, MTA, LDA, MPA, MUA; mail transport agent, local delivery agent, mailbox presentation agent, and mail user agent. Sendmail and postfix are examples of mail transport agents. Procmail is an example of a local delivery agent. dovecot is an example of a mailbox presentation agent. And Eudora, Mozilla, outlook are all examples of mail user agents. if I understand you correctly Mark, you think that putting filter and plug-in facilities into the local delivery agent would be the appropriate place. Please correct me if I'm wrong. Architecturally, I consider putting the filter in the LDA appropriate because the filter operations happen at delivery time when it's appropriate not as you are trying to read your inbox. It's also the appropriate place to put other types of processing such as antispam and antivirus checking. One interesting thing about this model is that it implies if you can push mail around from the MPA, there is a question of whether or not you want to replicate LDA functionality in the MPA and if so, how much? or how much common code can a LDA and MPA share? Is there a different architectural structure where all inbound mail is injected through common path. I don't expect anyone to do anything about this. I'm just treading the ground to see what the terrain feels like. ---eric From mem@mv.mv.com Wed Aug 20 03:49:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6EB20238CB; Wed, 20 Aug 2003 03:49:24 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 1FEB223896 for ; Wed, 20 Aug 2003 03:49:22 +0300 (EEST) Received: (qmail 332 invoked by uid 101); 19 Aug 2003 20:49:21 -0400 From: "Mark E. Mallett" Date: Tue, 19 Aug 2003 20:49:21 -0400 To: "Eric S. Johansson" Subject: Re: [Dovecot] transitional weirdnesses Message-ID: <20030820004920.GK1902@iridium.mv.net> References: <3F4229C3.4010105@harvee.org> <20030819220929.GC16988@iridium.mv.net> <3F42AAEA.4080805@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3F42AAEA.4080805@harvee.org> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 00:49:24 -0000 X-UID: 1387 Status: O Content-Length: 3759 On Tue, Aug 19, 2003 at 06:55:38PM -0400, Eric S. Johansson wrote: > > Mark, I know you're just being polite. I guess there's always a first time :-) > So, to go to the next step, there are 4 components on the receive side of a > mail system, MTA, LDA, MPA, MUA; mail transport agent, local delivery > agent, mailbox presentation agent, and mail user agent. Sendmail and > postfix are examples of mail transport agents. Procmail is an example of a > local delivery agent. dovecot is an example of a mailbox presentation > agent. And Eudora, Mozilla, outlook are all examples of mail user agents. In my extreme ignorance, I have not heard of the term "MPA". However it does seem to fit. > if I understand you correctly Mark, you think that putting filter and > plug-in facilities into the local delivery agent would be the appropriate > place. Please correct me if I'm wrong. I dunno. Maybe I was just spouting off too much. I do think that filters that are designed to accomplish mail delivery are most appropriate in the delivery agent. But I am also in favor of having controls at various stages. The filtering controls at the MTA level are not likely to be the same as those at the delivery agent level-- here, I use both. And I suppose I can see where there might be a demand for filters that are active when the mail is fetched from the mailbox server (e.g. between IMAP server and mail user agent). But is something like Sieve the right fit there? Sieve is designed to control what happens to mail on delivery. (One might have such filters at the user agent side inasmuch as there is delivery to local folders going on there.) All I really said was that if you want to have filters that control how mail is filed on the mailbox server, have a mechanism to re-deliver the mail so that new delivery filters can be applied. This would isolate the delivery logic to one place. I would think there would be a different set of requirements for filters (or selection criteria) that are engaged when the mail client talks to the mailbox server. And a lot of that is already present and available by using the IMAP or POP3 protocol. > Architecturally, I consider putting the filter in the LDA appropriate > because the filter operations happen at delivery time when it's appropriate > not as you are trying to read your inbox. It's also the appropriate place > to put other types of processing such as antispam and antivirus checking. Well- there are conflicts. One wants to conserve resources, but the resources available are sometimes in opposition (horsepower on the server, bandwidth between the server and the client, time and effort involved to set up each client, the are all resources that have to be juggled). One puts filtering on the server in order to conserve bandwidth between the server and client. One puts heavy duty work on the client system because doing so on the server can't scale. (So whereas I can't run a CRM114 analysis on every message that hits the server, each client could do so on their own machine.) One may relegate virus checking to the client machine because the corrective stuff has to be done there anyway if a virus gets through. Etc. > One interesting thing about this model is that it implies if you can push > mail around from the MPA, there is a question of whether or not you want to > replicate LDA functionality in the MPA and if so, how much? or how much > common code can a LDA and MPA share? Is there a different architectural > structure where all inbound mail is injected through common path. > > I don't expect anyone to do anything about this. I'm just treading the > ground to see what the terrain feels like. (no comment, other than just nodding) -mm- From tss@iki.fi Wed Aug 20 06:12:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BD034238CE; Wed, 20 Aug 2003 06:12:02 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9CED923896 for ; Wed, 20 Aug 2003 06:11:59 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 6CB5B5C896D9 for ; Wed, 20 Aug 2003 06:11:59 +0300 (EEST) Subject: Re: [Dovecot] Three oddities From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030819211109.GA2673@kongemord.krig.net> References: <20030819001810.GD55027@kongemord.krig.net> <1061299380.19006.17.camel@hurina> <20030819211109.GA2673@kongemord.krig.net> Content-Type: text/plain Message-Id: <1061349119.19011.46.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 20 Aug 2003 06:11:59 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 03:12:02 -0000 X-UID: 1388 Status: O Content-Length: 3251 On Wed, 2003-08-20 at 00:11, Bob Hall wrote: > > What userdb are you using? Dovecot gets the uid/gid for users from > > The userdb is ldap. What are the uid and gid supposed to do? imap process is run under them. Actually after reading your mail, it feels like you haven't even noticed their existence? :) > I have > the default uid in dovecot-ldap.conf and the individual uidNumber and > values in the LDAP registry set to the mail account (the one I want to own > the mail files). The default gid and the individual gidNumbers are set > to the mail group, which is the group assigned to all files in /var/mail. Sounds correct then. Did you verify with ps that the imap processes are also running under that user? Are you sure the full /var/mail/etc path is accessible to that user? > If the mail account owns the files, users can't access them. If I own > the files, everthing works fine, but my uid and gid numbers are not listed > anywhere that dovecot has access to. Well, that sounds weird. It's sounds like it's still running the imap processes under your uid? > I know that imap-master checks uids > and gids for validity, but aside from that I don't know what they're used > for. They're just extra checks. > I thought that maybe the fact that I'm a wheel and the mail user is not > had something to do with it, No, and actually Dovecot drops the wheel group permissions if you happen to belong to it :) > I think you're at a point where you need to think about how you are > going to explain Dovecot to users. Yea .. I should write some simple to read installation manual. > > > 2) > > > The Macs have Eudora 4.2 installed, and the Win boxes have Eudora 5.1. > > > The Macs can delete mail, put it in the trash, and empty the trash. > > > The Win clients can mark mail deleted, but they can't remove it. The > > > mail stays in the IMAP folder until the same user accesses their mail > > > from a Mac and deletes it. If a user drags a message to another folder, > > > a copy is created in the new folder but the old copy remains in the > > > original folder. I'm not having this problem with Mutt, so it the > > > problem seems to be specific to the Windows verson of Eudora. Is there > > > a fix? > > > > Are there error messages in log file? /var/log/maillog probably. I can't > > think of any reason why it does that.. > > No. Nothing in maillog, But there's "Dovecot starting up" message anyway? > and nothing in dovecot.rawlog. That's something > else I'm confused about: When exactly does Dovecot write to the raw logs? > I've got a boatload of entries from 20030814, and nothing before or since. They're written to immediately. If you're not seeing them, there's two possibilities: dovecot.rawlog isn't located in user's home directory (or the home directory isn't given at all), or it doesn't have permissions to write there. > Also, I get the following in the output from "ps waux | grep dovecot": > > dovecot 1004 0.0 0.9 2208 536 ?? S 7:58AM 0:01.48 imap-login: > imap-login [IP address] (imap-login) > > The machine at [IP address] is physically shut down. Should there still > be an imap-login process for it? Hmm. Not really. Check with strace -p what it's doing? From tss@iki.fi Wed Aug 20 06:14:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DBAEB23996; Wed, 20 Aug 2003 06:14:26 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8EE7F238CE for ; Wed, 20 Aug 2003 06:14:23 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5345F5C896D9 for ; Wed, 20 Aug 2003 06:14:23 +0300 (EEST) Subject: Re: [Dovecot] transitional weirdnesses From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F42AAEA.4080805@harvee.org> References: <3F4229C3.4010105@harvee.org> <3F42AAEA.4080805@harvee.org> Content-Type: text/plain Message-Id: <1061349263.19010.50.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 20 Aug 2003 06:14:23 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 03:14:27 -0000 X-UID: 1389 Status: O On Wed, 2003-08-20 at 01:55, Eric S. Johansson wrote: > Architecturally, I consider putting the filter in the LDA appropriate because > the filter operations happen at delivery time when it's appropriate not as you > are trying to read your inbox. It's also the appropriate place to put other > types of processing such as antispam and antivirus checking. It's also where I was going to put the Sieve scripting. I was going to create a separate "deliver" binary which would read the mail from stdin and place it into proper mailbox. This could be also used to update indexes immediately while mail is being delivered. From rjhjr@cox.net Wed Aug 20 08:19:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 28361238CE; Wed, 20 Aug 2003 08:19:22 +0300 (EEST) Received: from lakemtao02.cox.net (lakemtao02.cox.net [68.1.17.243]) by danu.procontrol.fi (Postfix) with ESMTP id 0530B238CB for ; Wed, 20 Aug 2003 08:19:10 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao02.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030820051907.GNYS11854.lakemtao02.cox.net@kongemord.krig.net> for ; Wed, 20 Aug 2003 01:19:07 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 20 Aug 2003 01:19:08 -0400 From: "Bob Hall" Date: Wed, 20 Aug 2003 01:19:08 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] Three oddities Message-ID: <20030820051908.GA779@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030819001810.GD55027@kongemord.krig.net> <1061299380.19006.17.camel@hurina> <20030819211109.GA2673@kongemord.krig.net> <1061349119.19011.46.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1061349119.19011.46.camel@hurina> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 05:19:22 -0000 X-UID: 1390 Status: O Content-Length: 4305 On Wed, Aug 20, 2003 at 06:11:59AM +0300, Timo Sirainen wrote: > On Wed, 2003-08-20 at 00:11, Bob Hall wrote: > > > What userdb are you using? Dovecot gets the uid/gid for users from > > > > The userdb is ldap. What are the uid and gid supposed to do? > > imap process is run under them. Actually after reading your mail, it > feels like you haven't even noticed their existence? :) In the paragraph you quote below, I described setting the global and individual uids and gids, so I must have been aware of their existence. I thought they were being used to set permissions, but you explain otherwise below. > > I have > > the default uid in dovecot-ldap.conf and the individual uidNumber and > > values in the LDAP registry set to the mail account (the one I want to own > > the mail files). The default gid and the individual gidNumbers are set > > to the mail group, which is the group assigned to all files in /var/mail. > > Sounds correct then. Did you verify with ps that the imap processes are > also running under that user? Are you sure the full /var/mail/etc path > is accessible to that user? The main dovecot process runs under root. If I understand correctly, it forks subprocesses (imap) that run under the user. These never show up in ps. Is there a way to capture a transitory process in ps? My Dovecot installation is currently hosed, so the imap processes may not be spawning. > > If the mail account owns the files, users can't access them. If I own > > the files, everthing works fine, but my uid and gid numbers are not listed > > anywhere that dovecot has access to. > > Well, that sounds weird. It's sounds like it's still running the imap > processes under your uid? Yea. How do I check that, if imap never shows up in ps? > > I know that imap-master checks uids > > and gids for validity, but aside from that I don't know what they're used > > for. > > They're just extra checks. Just validity checks? OK, that makes sense. > > I thought that maybe the fact that I'm a wheel and the mail user is not > > had something to do with it, > > No, and actually Dovecot drops the wheel group permissions if you happen > to belong to it :) > > > I think you're at a point where you need to think about how you are > > going to explain Dovecot to users. > > Yea .. I should write some simple to read installation manual. > > > > > 2) > > > > The Macs have Eudora 4.2 installed, and the Win boxes have Eudora 5.1. > > > > The Macs can delete mail, put it in the trash, and empty the trash. > > > > The Win clients can mark mail deleted, but they can't remove it. The > > > > mail stays in the IMAP folder until the same user accesses their mail > > > > from a Mac and deletes it. If a user drags a message to another folder, > > > > a copy is created in the new folder but the old copy remains in the > > > > original folder. I'm not having this problem with Mutt, so it the > > > > problem seems to be specific to the Windows verson of Eudora. Is there > > > > a fix? > > > > > > Are there error messages in log file? /var/log/maillog probably. I can't > > > think of any reason why it does that.. > > > > No. Nothing in maillog, > > But there's "Dovecot starting up" message anyway? Yes. > > and nothing in dovecot.rawlog. That's something > > else I'm confused about: When exactly does Dovecot write to the raw logs? > > I've got a boatload of entries from 20030814, and nothing before or since. > > They're written to immediately. If you're not seeing them, there's two > possibilities: dovecot.rawlog isn't located in user's home directory (or > the home directory isn't given at all), or it doesn't have permissions > to write there. I've got it in my home directory, and it's listed in homeDirectory in the ldap registry. I made dovecot.rawlog world writable. Nothing is showing up. > > Also, I get the following in the output from "ps waux | grep dovecot": > > > > dovecot 1004 0.0 0.9 2208 536 ?? S 7:58AM 0:01.48 imap-login: > > imap-login [IP address] (imap-login) > > > > The machine at [IP address] is physically shut down. Should there still > > be an imap-login process for it? > > Hmm. Not really. Check with strace -p what it's doing? I'll try that as soon as I un-hose Dovecot. Bob Hall From tss@iki.fi Wed Aug 20 08:51:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 90C1D23996; Wed, 20 Aug 2003 08:51:34 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E1CB723896 for ; Wed, 20 Aug 2003 08:51:32 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 854675C896D9 for ; Wed, 20 Aug 2003 08:51:32 +0300 (EEST) Subject: Re: [Dovecot] Three oddities From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030820051908.GA779@kongemord.krig.net> References: <20030819001810.GD55027@kongemord.krig.net> <1061299380.19006.17.camel@hurina> <20030819211109.GA2673@kongemord.krig.net> <1061349119.19011.46.camel@hurina> <20030820051908.GA779@kongemord.krig.net> Content-Type: text/plain Message-Id: <1061358692.24981.80.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 20 Aug 2003 08:51:32 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 05:51:34 -0000 X-UID: 1391 Status: O Content-Length: 1297 On Wed, 2003-08-20 at 08:19, Bob Hall wrote: > > imap process is run under them. Actually after reading your mail, it > > feels like you haven't even noticed their existence? :) > > In the paragraph you quote below, I described setting the global and > individual uids and gids, so I must have been aware of their existence. I meant the imap processes actually. > > Sounds correct then. Did you verify with ps that the imap processes are > > also running under that user? Are you sure the full /var/mail/etc path > > is accessible to that user? > > The main dovecot process runs under root. If I understand correctly, > it forks subprocesses (imap) that run under the user. These never show > up in ps. Is there a way to capture a transitory process in ps? My > Dovecot installation is currently hosed, so the imap processes may not > be spawning. Try logging in manually? telnet localhost imap2 x login user pass Then you should have imap process. > I've got it in my home directory, and it's listed in homeDirectory in the > ldap registry. I made dovecot.rawlog world writable. Nothing is showing up. Oh and third thing. You had to configure dovecot with --with-rawlog. Actually that's probably the problem, otherwise it would print some permission denied errors in log file. From rjhjr@cox.net Wed Aug 20 11:29:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D5544238CB; Wed, 20 Aug 2003 11:29:36 +0300 (EEST) Received: from lakemtao02.cox.net (lakemtao02.cox.net [68.1.17.243]) by danu.procontrol.fi (Postfix) with ESMTP id 3C68723896 for ; Wed, 20 Aug 2003 11:29:33 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao02.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030820082930.HCBW11854.lakemtao02.cox.net@kongemord.krig.net> for ; Wed, 20 Aug 2003 04:29:30 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 20 Aug 2003 04:29:32 -0400 From: "Bob Hall" Date: Wed, 20 Aug 2003 04:29:32 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] Three oddities Message-ID: <20030820082931.GA939@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030819001810.GD55027@kongemord.krig.net> <1061299380.19006.17.camel@hurina> <20030819211109.GA2673@kongemord.krig.net> <1061349119.19011.46.camel@hurina> <20030820051908.GA779@kongemord.krig.net> <1061358692.24981.80.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1061358692.24981.80.camel@hurina> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 08:29:37 -0000 X-UID: 1392 Status: O Content-Length: 4481 On Wed, Aug 20, 2003 at 08:51:32AM +0300, Timo Sirainen wrote: > On Wed, 2003-08-20 at 08:19, Bob Hall wrote: > > > imap process is run under them. Actually after reading your mail, it > > > feels like you haven't even noticed their existence? :) > > > > In the paragraph you quote below, I described setting the global and > > individual uids and gids, so I must have been aware of their existence. > > I meant the imap processes actually. Then you're right. They didn't show up in ps, so I wasn't aware of them, except knowing from the documentation that imap-master begat imap and most of the work is done in imap. So I'm assuming that imap-master and the main dovecot process (/usr/local/sbin/dovecot) are the same. I knew, in a general sort of way, that they had to be lurking somewhere, but out of sight and out of mind. > > > Sounds correct then. Did you verify with ps that the imap processes are > > > also running under that user? Are you sure the full /var/mail/etc path > > > is accessible to that user? > > > > The main dovecot process runs under root. If I understand correctly, > > it forks subprocesses (imap) that run under the user. These never show > > up in ps. Is there a way to capture a transitory process in ps? My > > Dovecot installation is currently hosed, so the imap processes may not > > be spawning. > > Try logging in manually? > > telnet localhost imap2 > x login user pass > > Then you should have imap process. No, the problem was my stupidity, not my ignorance. I was using telnet localhost 143 which is the same, but I was grepping ps for dovecot, not imap. Now that I can see the imap processes, things are a lot clearer. > > I've got it in my home directory, and it's listed in homeDirectory in the > > ldap registry. I made dovecot.rawlog world writable. Nothing is showing up. > > Oh and third thing. You had to configure dovecot with --with-rawlog. > Actually that's probably the problem, otherwise it would print some > permission denied errors in log file. I did that back when I first started having problems, so raw logging has been enabled the whole time. So far, I've gotten records in dovecot.rawlog only with a test account where the mail user name matched the Unix account name and I was using passwd instead of LDAP. None of the actual mail user names match a Unix account name. All of the mail accounts run under a Unix account, and they all have the Unix account home directory in their LDAP homeDirectory records. I'm guessing that Dovecot isn't pulling this info from the LDAP registry, and therefore can't post inside dovecot.rawlog. At this point, after grepping ps for imap, I've got a much better understanding of what's going on. Everthing makes sense, and everything works the way I want, except raw logging. I think I've found a another bug. In dovecot-ldap.conf it says: # You can use same UID and GID for all user accounts if you really want to. # If the UID/GID is still found from LDAP reply, it overrides these values. This is ambiguous. I took it to mean it (LDAP entry) overrides these (global) values What it actually means, or at least what actually happens, is it (global) overrides these (LDAP entry) values Furthermore, if user_global_uid isn't explicitly set, it defaults to 0. If I set the uid number not equal to 0 in the LDAP entry, but don't set user_global_uid, then login fails. From maillog: Aug 20 03:15:15 kongemord dovecot: Logins with UID 0 not permitted (user rjhjr) Aug 20 03:15:15 kongemord imap-login: Internal login failure: rjhjr [127.0.0.1] The bug is this; since user_global_uid overrides LDAP entries, and since user_global_uid has a built-in default value of 0, you have to set user_global_uid, and consequently you can only use one uid setting if you use LDAP. That's exactly what I want to do, but I can think of situations where I might want to use different uid numbers for different mail accounts. I think it would be better to do things in the opposite way: 1) LDAP entries override user_global_uid. This would allow multiple uid numbers, but also allow you to specify a default value for LDAP entries with no uid number. 2) There's no default value for user_global_uid. If it isn't explicitly set, then it isn't set. That way, you don't have to have a default value. 3) If the uid isn't set in either the LDAP entry or user_global_uid, then the user gets a login error saying that there's no uid. Bob Hall From mem@mv.mv.com Wed Aug 20 19:30:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7B839238CB; Wed, 20 Aug 2003 19:30:59 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 73BE123896 for ; Wed, 20 Aug 2003 19:30:53 +0300 (EEST) Received: (qmail 13731 invoked by uid 101); 20 Aug 2003 12:30:43 -0400 From: "Mark E. Mallett" Date: Wed, 20 Aug 2003 12:30:43 -0400 To: Timo Sirainen Subject: Re: [Dovecot] transitional weirdnesses Message-ID: <20030820163043.GA9329@iridium.mv.net> References: <3F4229C3.4010105@harvee.org> <3F42AAEA.4080805@harvee.org> <1061349263.19010.50.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1061349263.19010.50.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 16:30:59 -0000 X-UID: 1393 Status: O Content-Length: 1275 On Wed, Aug 20, 2003 at 06:14:23AM +0300, Timo Sirainen wrote: > On Wed, 2003-08-20 at 01:55, Eric S. Johansson wrote: > > Architecturally, I consider putting the filter in the LDA appropriate because > > the filter operations happen at delivery time when it's appropriate not as you > > are trying to read your inbox. It's also the appropriate place to put other > > types of processing such as antispam and antivirus checking. > > It's also where I was going to put the Sieve scripting. I was going to > create a separate "deliver" binary which would read the mail from stdin > and place it into proper mailbox. This could be also used to update > indexes immediately while mail is being delivered. How important do you think it is for the local delivery agent to update the indexes upon delivery? I assume that would be the primary purpose of your including a delivery agent in the package.. If it's important to update the indexes upon delivery, perhaps it would be worthwhile to provide some kind of toolkit that could be included into other delivery agents. I'm already using a sieve-ish filtering delivery agent, and I imagine I would keep on using it. But I wouldn't be averse to adding logic to update indexes if it meant some kind of performance gain. mm From tss@iki.fi Wed Aug 20 19:47:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1DCA9238CE; Wed, 20 Aug 2003 19:47:26 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id B5D68238CB for ; Wed, 20 Aug 2003 19:47:24 +0300 (EEST) Date: Wed, 20 Aug 2003 19:47:36 +0300 Subject: Re: [Dovecot] Three oddities Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <20030820082931.GA939@kongemord.krig.net> Message-Id: <00728C8D-D32E-11D7-9050-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 16:47:26 -0000 X-UID: 1394 Status: O Content-Length: 1402 On Wednesday, Aug 20, 2003, at 11:29 Europe/Helsinki, Bob Hall wrote: > So I'm assuming that imap-master and the > main dovecot process (/usr/local/sbin/dovecot) are the same. yep. > All of the mail accounts run under a Unix > account, and they all have the Unix account home directory in their > LDAP > homeDirectory records. I'm guessing that Dovecot isn't pulling this > info > from the LDAP registry, and therefore can't post inside dovecot.rawlog. With Linux you could check what home directory imap process really used by looking at /proc/pid/pwd symlink. I don't know if FreeBSD has anything similiar. > I think I've found a another bug. In dovecot-ldap.conf it says: > # You can use same UID and GID for all user accounts if you really > want to. > # If the UID/GID is still found from LDAP reply, it overrides these > values. > This is ambiguous. I took it to mean > it (LDAP entry) overrides these (global) values > What it actually means, or at least what actually happens, is > it (global) overrides these (LDAP entry) values Oh? It's a bug then. > Furthermore, if user_global_uid isn't explicitly set, it defaults to > 0. If I set the uid number not equal to 0 in the LDAP entry, but don't > set > user_global_uid, then login fails. From maillog: > Aug 20 03:15:15 kongemord dovecot: Logins with UID 0 not permitted > (user rjhjr) Yes, the error message could be better. From tss@iki.fi Wed Aug 20 20:15:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E358F238CB; Wed, 20 Aug 2003 20:15:10 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id E88F123896 for ; Wed, 20 Aug 2003 20:15:02 +0300 (EEST) Date: Wed, 20 Aug 2003 20:15:14 +0300 Subject: Re: [Dovecot] transitional weirdnesses Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030820163043.GA9329@iridium.mv.net> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 17:15:11 -0000 X-UID: 1395 Status: O Content-Length: 1834 On Wednesday, Aug 20, 2003, at 19:30 Europe/Helsinki, Mark E. Mallett wrote: >> It's also where I was going to put the Sieve scripting. I was going to >> create a separate "deliver" binary which would read the mail from >> stdin >> and place it into proper mailbox. This could be also used to update >> indexes immediately while mail is being delivered. > > How important do you think it is for the local delivery agent > to update the indexes upon delivery? I assume that would be the > primary purpose of your including a delivery agent in the package.. No, the primary purpose would be to have Sieve scripting. The index updating then .. well, there's two reasons why it's useful at that point: First it reduces the overall server load. We have to read the mail into memory and write it to disk in any case, so we might as well parse it's contents and update indexes. If we do it later, we might have to fully read the mail from disk just for some client request. Although I don't know how smart the SMTP servers are with maildir - do they just link() their temporary file into the new/ dir rather than copy it? Second it distributes the load. If user hasn't opened some mailbox for a long time (eg. spambox) and it contains thousands of messages, the opening could take quite a long time if the wanted data isn't indexed. > If it's important to update the indexes upon delivery, perhaps it > would be worthwhile to provide some kind of toolkit that could be > included into other delivery agents. I'm already using a sieve-ish > filtering delivery agent, and I imagine I would keep on using it. But > I wouldn't be averse to adding logic to update indexes if it meant > some kind of performance gain. There already is, kind of. lib-storage/mail-storage.h is the main API that can be used to access mailboxes. From mem@mv.mv.com Wed Aug 20 20:20:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7559D238CB; Wed, 20 Aug 2003 20:20:35 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 0B91023896 for ; Wed, 20 Aug 2003 20:20:33 +0300 (EEST) Received: (qmail 16928 invoked by uid 101); 20 Aug 2003 13:20:28 -0400 From: "Mark E. Mallett" Date: Wed, 20 Aug 2003 13:20:26 -0400 To: Timo Sirainen Subject: Re: [Dovecot] transitional weirdnesses Message-ID: <20030820172026.GA10409@iridium.mv.net> References: <20030820163043.GA9329@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 17:20:35 -0000 X-UID: 1396 Status: O Content-Length: 1660 On Wed, Aug 20, 2003 at 08:15:14PM +0300, Timo Sirainen wrote: > On Wednesday, Aug 20, 2003, at 19:30 Europe/Helsinki, Mark E. Mallett > wrote: > > >>It's also where I was going to put the Sieve scripting. I was going to > >>create a separate "deliver" binary which would read the mail from > >>stdin > >>and place it into proper mailbox. This could be also used to update > >>indexes immediately while mail is being delivered. > > > >How important do you think it is for the local delivery agent > >to update the indexes upon delivery? I assume that would be the > >primary purpose of your including a delivery agent in the package.. > > No, the primary purpose would be to have Sieve scripting. Ah. I already have that, and I suspect that anybody who wants it can have it, too. > >If it's important to update the indexes upon delivery, perhaps it > >would be worthwhile to provide some kind of toolkit that could be > >included into other delivery agents. I'm already using a sieve-ish > >filtering delivery agent, and I imagine I would keep on using it. But > >I wouldn't be averse to adding logic to update indexes if it meant > >some kind of performance gain. > > There already is, kind of. lib-storage/mail-storage.h is the main API > that can be used to access mailboxes. I don't think that's an exact match. A delivery agent already has its own method of internalizing information about the mail message, (and already has a mail message open and parsed and in memory), and to have a hook into updating the indexes all that it really needs is some way of passing the indexable information to the indexer. If indeed it's worth doing. mm From tss@iki.fi Wed Aug 20 20:45:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2AEB2238CB; Wed, 20 Aug 2003 20:45:12 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 49DEA23887 for ; Wed, 20 Aug 2003 20:45:09 +0300 (EEST) Date: Wed, 20 Aug 2003 20:45:19 +0300 Subject: Re: [Dovecot] transitional weirdnesses Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030820172026.GA10409@iridium.mv.net> Message-Id: <109D2860-D336-11D7-9050-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 17:45:12 -0000 X-UID: 1397 Status: O Content-Length: 1051 On Wednesday, Aug 20, 2003, at 20:20 Europe/Helsinki, Mark E. Mallett wrote: >> No, the primary purpose would be to have Sieve scripting. > > Ah. I already have that, and I suspect that anybody who wants it can > have it, too. What program do you use for it? I haven't seen any yet. >> There already is, kind of. lib-storage/mail-storage.h is the main API >> that can be used to access mailboxes. > > I don't think that's an exact match. A delivery agent already has its > own method of internalizing information about the mail message, (and > already has a mail message open and parsed and in memory), and to have > a hook into updating the indexes all that it really needs is some way > of passing the indexable information to the indexer. If indeed it's > worth doing. Well, there's lib-index/ too .. :) But it requires some more work from the caller. Anyway I would like to improve the APIs so that it's all pretty and easy to use even by external projects. I don't think they're too bad now, but they're not really pretty yet either. From mem@mv.mv.com Wed Aug 20 20:56:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5A2A023996; Wed, 20 Aug 2003 20:56:27 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 5868823887 for ; Wed, 20 Aug 2003 20:56:22 +0300 (EEST) Received: (qmail 11184 invoked by uid 101); 20 Aug 2003 13:56:21 -0400 From: "Mark E. Mallett" Date: Wed, 20 Aug 2003 13:56:21 -0400 To: Timo Sirainen Subject: Re: [Dovecot] transitional weirdnesses Message-ID: <20030820175621.GA3577@iridium.mv.net> References: <20030820172026.GA10409@iridium.mv.net> <109D2860-D336-11D7-9050-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <109D2860-D336-11D7-9050-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 17:56:27 -0000 X-UID: 1398 Status: O On Wed, Aug 20, 2003 at 08:45:19PM +0300, Timo Sirainen wrote: > On Wednesday, Aug 20, 2003, at 20:20 Europe/Helsinki, Mark E. Mallett > wrote: > > >>No, the primary purpose would be to have Sieve scripting. > > > >Ah. I already have that, and I suspect that anybody who wants it can > >have it, too. > > What program do you use for it? I haven't seen any yet. homebrew (see http://www.mv.com/tools/mvmf/ if you care) but my claim was based on a number of sieve-related articles, and on putting "sieve" and "spam" into google. (and looking at various comments on the ietf-mta-filters mailing list.) > Anyway I would like to improve the APIs so that it's all pretty and > easy to use even by external projects. I don't think they're too bad > now, but they're not really pretty yet either. I suppose it might be nice to have a standalone utility that one could fork and give information to add to an index. mm From rjhjr@cox.net Wed Aug 20 22:25:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5BB23238C6; Wed, 20 Aug 2003 22:25:02 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 90A2123887 for ; Wed, 20 Aug 2003 22:24:55 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030820192454.NBJD10977.lakemtao03.cox.net@kongemord.krig.net> for ; Wed, 20 Aug 2003 15:24:54 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 20 Aug 2003 15:24:53 -0400 From: "Bob Hall" Date: Wed, 20 Aug 2003 15:24:53 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] Three oddities Message-ID: <20030820192453.GB4420@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030820082931.GA939@kongemord.krig.net> <00728C8D-D32E-11D7-9050-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <00728C8D-D32E-11D7-9050-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 19:25:02 -0000 X-UID: 1399 Status: O Content-Length: 4267 Timo, first of all I want to say how grateful I am for the time you spent helping to me. On Wed, Aug 20, 2003 at 07:47:36PM +0300, Timo Sirainen wrote: > On Wednesday, Aug 20, 2003, at 11:29 Europe/Helsinki, Bob Hall wrote: > > >So I'm assuming that imap-master and the > >main dovecot process (/usr/local/sbin/dovecot) are the same. > > yep. > > >All of the mail accounts run under a Unix > >account, and they all have the Unix account home directory in their > >LDAP > >homeDirectory records. I'm guessing that Dovecot isn't pulling this > >info > >from the LDAP registry, and therefore can't post inside dovecot.rawlog. > > With Linux you could check what home directory imap process really used > by looking at /proc/pid/pwd symlink. I don't know if FreeBSD has > anything similiar. I'm clueless on this. What does /proc/pid/pwd symlink do? Can you give an example from the command line? > >I think I've found a another bug. In dovecot-ldap.conf it says: > ># You can use same UID and GID for all user accounts if you really > >want to. > ># If the UID/GID is still found from LDAP reply, it overrides these > >values. > >This is ambiguous. I took it to mean > > it (LDAP entry) overrides these (global) values > >What it actually means, or at least what actually happens, is > > it (global) overrides these (LDAP entry) values > > Oh? It's a bug then. Thank god. I finally found something that *I* didn't screw up. :) As I said, it doesn't interfere with my present set up, but in other situation your LDAP users will want more flexibility. > >Furthermore, if user_global_uid isn't explicitly set, it defaults to > >0. If I set the uid number not equal to 0 in the LDAP entry, but don't > >set > >user_global_uid, then login fails. From maillog: > >Aug 20 03:15:15 kongemord dovecot: Logins with UID 0 not permitted > >(user rjhjr) > > Yes, the error message could be better. Actually, that error message was fine. In combination with the documentation, it made it clear what the problem was. That's what error messages are supposed to do; point you to something that is covered in the documentation. My problems with interpreting other error messages had mostly to do with lack of documentation. I did a lot of googling while I was setting Dovecot up, and while I didn't get much helpful info, I did find comments along the lines of "interesting, but poorly documented". That "poorly documented" may kill your project. People aren't going to be attracted to your software if it has a reputation for being poorly documented and hard to configure. Error messages by themselves are no good. You have to think of error messages as a part of your overall documentation. I want to second the people in other threads who suggested setting up some sort of collaborative documentation project. My reasons: 1) The people who know best what documentation is needed are the people using the software. They also tend to have a better idea how to express things in ways that make sense to users. 2) Doing an installation and setup is kind of exciting, and users tend to be a little hyped when it's over. I want to talk about what I've done, so I feel motivated to write about it. The developer is caught up in coding, and also has to talk to users, debug, and various administrative tasks. Writing documentation is just another task, so the developer doesn't have the motivation that some users have. 3) Even though I feel motivated to write, I don't have the time to write a complete description of Dovecot/LDAP installation. (That's why they put a clock on the Leaning Tower of Piza; there's no point in having the inclination if you haven't got the time.) If the basic document already existed, I could just add the missing bits that were relevant to my experience, which would take a lot less time and be a lot more feasable for busy people. 4) Because the work is spread among many people, collaborative documentation tends to happen faster. 5) People who collaborate with your project help spread the word. They tend to spend time telling other people why they're putting in the effort, which means telling people what they like about your project. Bob Hall From tss@iki.fi Wed Aug 20 23:34:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8794523896; Wed, 20 Aug 2003 23:34:01 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 84FFC23887 for ; Wed, 20 Aug 2003 23:33:54 +0300 (EEST) Date: Wed, 20 Aug 2003 23:34:05 +0300 Subject: Re: [Dovecot] Three oddities Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <20030820192453.GB4420@kongemord.krig.net> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 20:34:01 -0000 X-UID: 1400 Status: O Content-Length: 2110 On Wednesday, Aug 20, 2003, at 22:24 Europe/Helsinki, Bob Hall wrote: >> With Linux you could check what home directory imap process really >> used >> by looking at /proc/pid/pwd symlink. I don't know if FreeBSD has >> anything similiar. > > I'm clueless on this. What does /proc/pid/pwd symlink do? Can you give > an example from the command line? It would just show current directory of the process. Like: lrwxrwxrwx 1 cras cras 0 2003-08-20 23:25 cwd -> /home/cras >>> user_global_uid, then login fails. From maillog: >>> Aug 20 03:15:15 kongemord dovecot: Logins with UID 0 not permitted >>> (user rjhjr) >> >> Yes, the error message could be better. > > Actually, that error message was fine. In combination with the > documentation, it made it clear what the problem was. That's what > error messages are supposed to do; point you to something that is > covered in the documentation. Yes, but "no UID given" isn't really same as "UID 0". :) > My problems with interpreting other > error messages had mostly to do with lack of documentation. I did > a lot of googling while I was setting Dovecot up, and while I > didn't get much helpful info, I did find comments along the lines of > "interesting, but poorly documented". That "poorly documented" may > kill your project. People aren't going to be attracted to your > software if it has a reputation for being poorly documented and > hard to configure. Error messages by themselves are no good. You > have to think of error messages as a part of your overall > documentation. One of the reasons I haven't yet really bothered to write much is because Dovecot is just now changing a lot. Configuration file syntax changes, namespaces were added, indexes work differently than before .. what else .. > I want to second the people in other threads who suggested > setting up some sort of collaborative documentation project. Well, I installed MoinMoin Wiki, but didn't yet look much into it. I guess I should at least remove most of the default pages. There's a lot of german text. http://dovecot.procontrol.fi/dovewiki/ From charlieb-dovecot@e-smith.com Wed Aug 20 23:47:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7087F238CE; Wed, 20 Aug 2003 23:47:41 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 342BF23887 for ; Wed, 20 Aug 2003 23:47:37 +0300 (EEST) Received: (qmail 17242 invoked by uid 404); 20 Aug 2003 20:47:33 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 20 Aug 2003 16:47:33 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Aug 2003 20:47:33 -0000 Received: (qmail 26240 invoked by uid 5008); 20 Aug 2003 20:47:33 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Aug 2003 20:47:33 -0000 Date: Wed, 20 Aug 2003 16:47:33 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Dovecot Mail List Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] rawlog change suggestion X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 20:47:41 -0000 X-UID: 1401 Status: O I find the separate .in and .out files rather difficult to work with. I think it would be more useful if the in/out traffic were interleaved with a prefix to indicate direction, and suffix to indicate continuation, as recordio (http://cr.yp.to/ucspi-tcp/recordio.html) does: * LIST (\Noselect) ";" "" >a0002 OK List completed. * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) >* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags + >permitted. >* 18 EXISTS >* 0 RECENT >* OK [UNSEEN 18] First unseen. >* OK [UIDVALIDITY 1055795174] UIDs valid >* OK [UIDNEXT 6741] Predicted next UID >a0003 OK [READ-WRITE] Select completed. * STATUS "incoming.foo" (RECENT 397) >a0004 OK Status completed. a0005 OK NOOP completed. Comments? -- Charlie From tss@iki.fi Thu Aug 21 01:12:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 85A2E23996; Thu, 21 Aug 2003 01:12:44 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A67F6238C6 for ; Thu, 21 Aug 2003 01:12:12 +0300 (EEST) Date: Thu, 21 Aug 2003 01:12:24 +0300 Subject: Re: [Dovecot] rawlog change suggestion Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: Message-Id: <603A45E9-D35B-11D7-8B96-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 22:12:44 -0000 X-UID: 1402 Status: O On Wednesday, Aug 20, 2003, at 23:47 Europe/Helsinki, Charlie Brady wrote: > I find the separate .in and .out files rather difficult to work with. I > think it would be more useful if the in/out traffic were interleaved > with > a prefix to indicate direction, and suffix to indicate continuation, as > recordio (http://cr.yp.to/ucspi-tcp/recordio.html) does: Depends on usage. I've wanted both. > Comments? Thanks for reminding that rawlog functionality really doesn't belong to Dovecot. Rawlogging should be a separate binary which is executed by modifying mail_executable setting in config file. Something like: protocol imap { mail_executable = /usr/local/bin/rawlog /usr/local/libexec/dovecot/imap } What I'm not sure about is if I should distribute rawlog binary with Dovecot or not :) From rjhjr@cox.net Thu Aug 21 01:26:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E8A53239A6; Thu, 21 Aug 2003 01:26:25 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 828D323887 for ; Thu, 21 Aug 2003 01:26:19 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030820222619.PLCG10977.lakemtao03.cox.net@kongemord.krig.net> for ; Wed, 20 Aug 2003 18:26:19 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 20 Aug 2003 18:26:18 -0400 From: "Bob Hall" Date: Wed, 20 Aug 2003 18:26:18 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] Three oddities Message-ID: <20030820222617.GA5849@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030820192453.GB4420@kongemord.krig.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Aug 2003 22:26:26 -0000 X-UID: 1403 Status: O Content-Length: 2958 On Wed, Aug 20, 2003 at 11:34:05PM +0300, Timo Sirainen wrote: > On Wednesday, Aug 20, 2003, at 22:24 Europe/Helsinki, Bob Hall wrote: > >I'm clueless on this. What does /proc/pid/pwd symlink do? Can you give > >an example from the command line? > > It would just show current directory of the process. Like: > > lrwxrwxrwx 1 cras cras 0 2003-08-20 23:25 cwd -> > /home/cras OK, I'll google a bit and see if I can educate myself on this. > >>>user_global_uid, then login fails. From maillog: > >>>Aug 20 03:15:15 kongemord dovecot: Logins with UID 0 not permitted > >>>(user rjhjr) > >> > >>Yes, the error message could be better. > > > >Actually, that error message was fine. In combination with the > >documentation, it made it clear what the problem was. That's what > >error messages are supposed to do; point you to something that is > >covered in the documentation. > > Yes, but "no UID given" isn't really same as "UID 0". :) "no UID given" would be appropriate if Dovecot was ignoring the LDAP-supplied values and supplying no default UID. You know what Dovecot does better than I do, but it appears as if Dovecot was trying to use a UID; that of root. Since LDAP wasn't suppling UID 0, I knew the problem was with Dovecot, which led me to the config files. Had the message been "no UID given", I would have wasted time trying to figure out why Dovecot wasn't getting a UID. Putting it differently, an error message should tell you, as briefly as possible, exactly what triggered it, without explaining it. Explanations belong in the documentation. The error message should be at the same level as the documentation; e.g if you don't document your procedure calls, the error message shouldn't contain the procedure call that triggered it. (Actually, it can, but that's for the programmers, not the users.) The user should be able to take words or phrases from the error message and use them to search the documentation. "UID 0" meets those criteria, but "no UID given" is an explanation. > One of the reasons I haven't yet really bothered to write much is > because Dovecot is just now changing a lot. Configuration file syntax > changes, namespaces were added, indexes work differently than before .. > what else .. No programming project is ever finished. The developers just get tired and drift away. If you wait for an obvious stopping point to write documentation, you'll wait for ever. > >I want to second the people in other threads who suggested > >setting up some sort of collaborative documentation project. > > Well, I installed MoinMoin Wiki, but didn't yet look much into it. I > guess I should at least remove most of the default pages. There's a lot > of german text. > > http://dovecot.procontrol.fi/dovewiki/ Looks good in lynx. I'll try Mozilla when I have time. Programming is fun, writing documentation is boring. Keep the fun/boring ratio as high as possible. Bob From esj@harvee.org Thu Aug 21 19:12:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 223C6238C6; Thu, 21 Aug 2003 19:12:19 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 2399123887 for ; Thu, 21 Aug 2003 19:12:16 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7LGCDmj031892 for ; Thu, 21 Aug 2003 12:12:14 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Thu, 21 Aug 2003 12:12:08 -0400 Message-ID: <3F44EEFC.7080001@harvee.org> Date: Thu, 21 Aug 2003 12:10:36 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030821:dovecot@procontrol.fi:a77f8e06bc629e25 Subject: [Dovecot] Mozilla dovecot interaction X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Aug 2003 16:12:19 -0000 X-UID: 1404 Status: O I think this is more a Mozilla bug but just a heads up the case other people complain. periodically, the Mozilla e-mail client refuses to delete messages. It shows up either as absolutely no action when you press the delete key/button or it shows activity but refuses to perform any other action in that mailbox. Sometimes if you switch to another mailbox and then come back to the mailbox you're deleting e-mail message from, the messages deleted when you re-enter the mailbox. I looked with ethereal and it looks like Mozilla is not sending any imap commands. Hence my assertion that it's a Mozilla problem. The only reason I mention it here is because something about dovecot seems to trigger the problem more quickly. I was seeing this kind of problem before but only after a week or two of uptime in the browser. Now I'm seeing it in just under a week (I think) I've only seen at once but I will keep track for future reference. I got to get me a new client... ---eric From charlieb-dovecot@e-smith.com Thu Aug 21 21:32:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 83512238CB; Thu, 21 Aug 2003 21:32:00 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id 4131123887 for ; Thu, 21 Aug 2003 21:31:28 +0300 (EEST) Received: (qmail 31300 invoked by uid 404); 21 Aug 2003 18:31:22 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 21 Aug 2003 14:31:22 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 21 Aug 2003 18:31:22 -0000 Received: (qmail 7114 invoked by uid 5008); 21 Aug 2003 18:31:21 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 21 Aug 2003 18:31:21 -0000 Date: Thu, 21 Aug 2003 14:31:21 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Timo Sirainen Subject: Re: [Dovecot] rawlog change suggestion In-Reply-To: <603A45E9-D35B-11D7-8B96-000393CC2E90@iki.fi> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Dovecot Mail List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Aug 2003 18:32:00 -0000 X-UID: 1405 Status: O Content-Length: 1128 On Thu, 21 Aug 2003, Timo Sirainen wrote: > On Wednesday, Aug 20, 2003, at 23:47 Europe/Helsinki, Charlie Brady > wrote: > > > I find the separate .in and .out files rather difficult to work with. I > > think it would be more useful if the in/out traffic were interleaved > > with > > a prefix to indicate direction, and suffix to indicate continuation, as > > recordio (http://cr.yp.to/ucspi-tcp/recordio.html) does: > > Depends on usage. I've wanted both. You can easily generate the separate logs from a combined logs, but it is a much more difficult problem to combine the two logs to one (and I think you can only do it approximately, and then only if you assume that both client and server implement IMAP correctly). > > Comments? > > Thanks for reminding that rawlog functionality really doesn't belong to > Dovecot. Rawlogging should be a separate binary which is executed by > modifying mail_executable setting in config file. Something like: It suits me to have it built in and available without any sysadmin change, as it makes it easier to collect logs from unsophisticated users/admins. -- Charlie From tss@iki.fi Fri Aug 22 08:10:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BC4A923887; Fri, 22 Aug 2003 08:10:13 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AA71523866 for ; Fri, 22 Aug 2003 08:09:41 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5D8FE5C65485 for ; Fri, 22 Aug 2003 08:09:41 +0300 (EEST) Subject: Re: [Dovecot] Three oddities From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030820192453.GB4420@kongemord.krig.net> References: <20030820082931.GA939@kongemord.krig.net> <00728C8D-D32E-11D7-9050-000393CC2E90@iki.fi> <20030820192453.GB4420@kongemord.krig.net> Content-Type: text/plain Message-Id: <1061528980.19010.148.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 22 Aug 2003 08:09:41 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Aug 2003 05:10:13 -0000 X-UID: 1406 Status: O On Wed, 2003-08-20 at 22:24, Bob Hall wrote: > > >I think I've found a another bug. In dovecot-ldap.conf it says: > > ># You can use same UID and GID for all user accounts if you really > > >want to. > > ># If the UID/GID is still found from LDAP reply, it overrides these > > >values. > > >This is ambiguous. I took it to mean > > > it (LDAP entry) overrides these (global) values > > >What it actually means, or at least what actually happens, is > > > it (global) overrides these (LDAP entry) values > > > > Oh? It's a bug then. > > Thank god. I finally found something that *I* didn't screw up. :) Actually .. :) It doesn't override anything. If it seems that way, LDAP lookup didn't return uidNumber or gidNumber for some reason. > > >Aug 20 03:15:15 kongemord dovecot: Logins with UID 0 not permitted > > >(user rjhjr) > > > > Yes, the error message could be better. Now it says: Error: ldap(username): uidNumber not set and no default given in user_global_uid From tss@iki.fi Fri Aug 22 08:18:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BD12A238CB; Fri, 22 Aug 2003 08:18:30 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E8F8F238C6 for ; Fri, 22 Aug 2003 08:17:58 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A80BF5C65485 for ; Fri, 22 Aug 2003 08:17:58 +0300 (EEST) Subject: Re: [Dovecot] user database clarification From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1058972851.1063.74.camel@hurina> References: <4BD2F72A-BD1D-11D7-840A-00039398ED48@redjar.org> <1058972851.1063.74.camel@hurina> Content-Type: text/plain Message-Id: <1061529478.24982.157.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 22 Aug 2003 08:17:58 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Aug 2003 05:18:31 -0000 X-UID: 1407 Status: O On Wed, 2003-07-23 at 18:07, Timo Sirainen wrote: > > I'm in an environment that has users both in local flat files > > (/etc/passwd and /etc/shadow) AND in an LDAP database. > > > > Is it possible for this set up to work with dovecot? (both local and > > ldap users have imap/pop?) > > No fallbacking currently. I'll probably add it though. Fallbacking btw. > is possible only with plaintext authentication, but I guess that's what > everyone uses anyway.. CVS supports it now. I also moved auth client code into lib-auth/ directory. Mostly because it's cleaner there, but I was also thinking that maybe some other programs would want to talk to dovecot-auth. SMTP servers come to my mind first. Wouldn't it be nice to keep all the authentication settings in one place? :) It's possible with LDAP and SQL databases, but I'd rather use passwd-file with the few users I need. From rjhjr@cox.net Fri Aug 22 09:09:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DF3A6238C6; Fri, 22 Aug 2003 09:09:09 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 6BA82238C7 for ; Fri, 22 Aug 2003 09:08:37 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030822060835.ISAN10977.lakemtao03.cox.net@kongemord.krig.net> for ; Fri, 22 Aug 2003 02:08:35 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Fri, 22 Aug 2003 02:08:35 -0400 From: "Bob Hall" Date: Fri, 22 Aug 2003 02:08:35 -0400 To: Dovecot Mail List Message-ID: <20030822060834.GA5880@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030820192453.GB4420@kongemord.krig.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Subject: [Dovecot] No rawlog with LDAP X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Aug 2003 06:09:10 -0000 X-UID: 1408 Status: O Content-Length: 2994 In regard to getting rawlog entries with passwd but not with LDAP: On Wed, Aug 20, 2003 at 11:34:05PM +0300, Timo Sirainen wrote: > >I'm clueless on this. What does /proc/pid/pwd symlink do? Can you give > >an example from the command line? > > It would just show current directory of the process. Like: > > lrwxrwxrwx 1 cras cras 0 2003-08-20 23:25 cwd -> > /home/cras In FBSD, you get the files associated with a process with fstat -p For an imap process opened under LDAP authentication, the output is USER CMD PID FD MOUNT INUM MODE SZ|DV R/W postkont imap 5876 root / 2 drwxr-xr-x 1024 r postkont imap 5876 wd / 7961 drwx------ 512 r postkont imap 5876 text /usr 2301620 -r-xr-xr-x 326420 r postkont imap 5876 0* internet stream tcp c5f1efc0 postkont imap 5876 1* internet stream tcp c5f1efc0 postkont imap 5876 2 / 7957 crw-rw-rw- null r postkont imap 5876 3* local dgram c644bd20 <-> c6357f00 The working directory is marked by "wd" in the "FD" column. In this case, it's /. According to the man page, a "text" directory is an "executable text inode". I don't know what that means; I'm just quoting. If I switch to passwd authentication, then I get two imap processes: 5826 ?? S 0:00.01 imap [bob 127.0.0.1] 5827 ?? I 0:00.00 imap: imap [bob:5826 rawlog] (imap) fstat for the first is USER CMD PID FD MOUNT INUM MODE SZ|DV R/W bob imap 5826 root / 2 drwxr-xr-x 1024 r bob imap 5826 wd /usr 3960238 drwxr-xr-x 2560 r bob imap 5826 text /usr 2301620 -r-xr-xr-x 326420 r bob imap 5826 2 / 7957 crw-rw-rw- null r bob imap 5826 3* local dgram c6357640 <-> c6357f00 bob imap 5826 7* local stream c6357500 <-> c644bc80 The working directory is now /usr, and there's a local stream that wasn't present with LDAP. fstat for the rawlog imap process is USER CMD PID FD MOUNT INUM MODE SZ|DV R/W bob imap 5827 root / 2 drwxr-xr-x 1024 r bob imap 5827 wd /usr 3960238 drwxr-xr-x 2560 r bob imap 5827 text /usr 2301620 -r-xr-xr-x 326420 r bob imap 5827 0* internet stream tcp c5ea06c0 bob imap 5827 1* internet stream tcp c5ea06c0 bob imap 5827 2 / 7957 crw-rw-rw- null r bob imap 5827 3* local dgram c6357640 <-> c6357f00 bob imap 5827 4 /usr 3976421 -rw------- 0 w bob imap 5827 5 /usr 3976422 -rw------- 0 w bob imap 5827 6* local stream c644bc80 <-> c6357500 This is probably way more info that you need, but little of this means anything to me, so I don't know what is significant and what isn't. Bob Hall From elgino@n3rd.at Fri Aug 22 19:50:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 71A8D238C8; Fri, 22 Aug 2003 19:50:24 +0300 (EEST) Received: from n3rd.at (unknown [80.78.255.52]) by danu.procontrol.fi (Postfix) with ESMTP id 02BB423866 for ; Fri, 22 Aug 2003 19:49:51 +0300 (EEST) Received: (qmail 96566 invoked from network); 22 Aug 2003 16:48:02 -0000 Received: from unknown (HELO dell) (192.168.0.5) by n3rd.at with RC4-MD5 encrypted SMTP; 22 Aug 2003 16:48:02 -0000 Message-ID: <000b01c368ce$6d46e420$0500a8c0@dell> From: "eLgino" To: Date: Fri, 22 Aug 2003 18:57:09 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 Subject: [Dovecot] postfix+dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Aug 2003 16:50:24 -0000 X-UID: 1409 Status: O Hi folks, I will setup an mailserver with postfix an dovecot, but i would like to add the users and domains to postfix is this possible? because postfix can handle mysql. and if this possible anyone can say me HOW?, i do not find anything about this. if not anyone can say me how i do configure it with postgresql (dovecot)? ( i have NO pgsql skills). i hope anyone can understand my poor english, and thx in advance bye From tss@iki.fi Sat Aug 23 23:46:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F2063238C9; Sat, 23 Aug 2003 23:46:19 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 45B9623896 for ; Sat, 23 Aug 2003 23:45:47 +0300 (EEST) Received: from iki.fi (unknown [192.168.10.209]) by oma.irssi.org (Postfix) with ESMTP id 83EAE5C65485 for ; Sat, 23 Aug 2003 21:47:14 +0300 (EEST) Date: Sat, 23 Aug 2003 21:46:42 +0300 Subject: Re: [Dovecot] No rawlog with LDAP Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <20030822060834.GA5880@kongemord.krig.net> Message-Id: <23283E55-D59A-11D7-8B96-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Aug 2003 20:46:20 -0000 X-UID: 1410 Status: O On Friday, Aug 22, 2003, at 09:08 Europe/Helsinki, Bob Hall wrote: > For an imap process opened under LDAP authentication, the output is > USER CMD PID FD MOUNT INUM MODE SZ|DV R/W > postkont imap 5876 wd / 7961 drwx------ 512 r Root directory? I'm not sure why it would be there.. It should be in /var/run/dovecot/ directory if home directory wasn't given.. Unless the home dir was root. > If I switch to passwd authentication, then I get two imap processes: > The working directory is now /usr, and there's a local stream that > wasn't present with LDAP. Even more strange, especially if it works. I don't think your home directory is /usr either? Maybe the "wd" is buggy? Or something else weird is going on.. From thomas.may@x9media.com Sat Aug 23 23:29:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3F7FA238CB; Sat, 23 Aug 2003 23:29:17 +0300 (EEST) Received: from x9media.com (mail.x9media.com [62.75.136.200]) by danu.procontrol.fi (Postfix) with ESMTP id 4288523896 for ; Sat, 23 Aug 2003 23:28:45 +0300 (EEST) Received: from notebook (unverified [217.226.35.245]) by x9media.com (SurgeMail 1.3i) with ESMTP id 15166 for ; Sat, 23 Aug 2003 22:34:10 -3736800 Message-ID: <000501c369b5$1e7dbde0$8b01a8c0@notebook> From: "thomas may" To: Date: Sat, 23 Aug 2003 22:28:30 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-Server: High Performance Mail Server - http://surgemail.com X-Mailman-Approved-At: Sun, 24 Aug 2003 01:53:17 +0300 Subject: [Dovecot] ssl failure !! X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Aug 2003 20:29:17 -0000 X-UID: 1411 Status: O Hi, i havent yet any problems with dovecat but in my dovecot log i get the following warning, does anybody know what its wrong. imap-login: Aug 23 22:14:47 Warning: SSL_read() syscall failed: Connection reset by peer [192.168.1.139] imap-login: Aug 23 22:14:48 Info: Login: info@domain1.com [192.168.1.139] -th From rjhjr@cox.net Sun Aug 24 01:56:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6FD68238CE; Sun, 24 Aug 2003 01:56:50 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id C2759238C9 for ; Sun, 24 Aug 2003 01:56:16 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030823225615.DTWN419.lakemtao04.cox.net@kongemord.krig.net> for ; Sat, 23 Aug 2003 18:56:15 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Sat, 23 Aug 2003 18:56:14 -0400 From: "Bob Hall" Date: Sat, 23 Aug 2003 18:56:14 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] No rawlog with LDAP Message-ID: <20030823225613.GA6200@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030822060834.GA5880@kongemord.krig.net> <23283E55-D59A-11D7-8B96-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <23283E55-D59A-11D7-8B96-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Aug 2003 22:56:50 -0000 X-UID: 1412 Status: O Content-Length: 1475 On Sat, Aug 23, 2003 at 09:46:42PM +0300, Timo Sirainen wrote: > On Friday, Aug 22, 2003, at 09:08 Europe/Helsinki, Bob Hall wrote: > > >For an imap process opened under LDAP authentication, the output is > >USER CMD PID FD MOUNT INUM MODE SZ|DV R/W > >postkont imap 5876 wd / 7961 drwx------ 512 r > > Root directory? I'm not sure why it would be there.. It should be in > /var/run/dovecot/ directory if home directory wasn't given.. Unless the > home dir was root. Then shouldn't it be in /root instead of /? I mounted a linux proc file system. It doesn't have the pwd file that you mentioned was present in a Linux OS, but it did have a status file. In both cases, the UID number was the number associated with whatever account was named in the IMAP login. 1 login In neither case was it UID 0. BTW, I've got to hand it to Torvalds; the Linux status file is cooler than the BSD status file. Much easier to understand. > >If I switch to passwd authentication, then I get two imap processes: > >The working directory is now /usr, and there's a local stream that > >wasn't present with LDAP. > > Even more strange, especially if it works. I don't think your home > directory is /usr either? > > Maybe the "wd" is buggy? Or something else weird is going on.. I haven't a clue. It's all Finnish to me, Timo. :) You're the one who knows what he's doing. I just follow orders. Bob From tss@iki.fi Sun Aug 24 01:58:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C44BE2387F; Sun, 24 Aug 2003 01:58:32 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AAFA3238D1; Sun, 24 Aug 2003 01:57:58 +0300 (EEST) Date: Sun, 24 Aug 2003 01:58:09 +0300 Subject: Re: [Dovecot] ssl failure !! Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: "thomas may" From: Timo Sirainen In-Reply-To: <000501c369b5$1e7dbde0$8b01a8c0@notebook> Message-Id: <43FF632A-D5BD-11D7-8B14-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Aug 2003 22:58:32 -0000 X-UID: 1413 Status: O On Saturday, Aug 23, 2003, at 23:28 Europe/Helsinki, thomas may wrote: > i havent yet any problems with dovecat but in my dovecot log i get the > following warning, does anybody know what its wrong. > > imap-login: Aug 23 22:14:47 Warning: SSL_read() syscall failed: > Connection > reset by peer [192.168.1.139] It means you enabled verbose SSL logging and it's saying that the client connection was closed unexpectedly (network failure or whatever). That's pretty normal, just go set the verbose_ssl back to no :) From elgino@n3rd.at Sun Aug 24 02:51:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 41A76238C9; Sun, 24 Aug 2003 02:51:00 +0300 (EEST) Received: from n3rd.at (unknown [80.78.255.52]) by danu.procontrol.fi (Postfix) with ESMTP id 34AA42387F for ; Sun, 24 Aug 2003 02:50:28 +0300 (EEST) Received: (qmail 2491 invoked from network); 23 Aug 2003 23:48:36 -0000 Received: from unknown (HELO dell) (192.168.0.5) by n3rd.at with RC4-MD5 encrypted SMTP; 23 Aug 2003 23:48:36 -0000 Message-ID: <000b01c369d2$5f58a740$0500a8c0@dell> From: "eLgino" To: Date: Sun, 24 Aug 2003 01:57:55 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 Subject: [Dovecot] please add MySQL Support! X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Aug 2003 23:51:00 -0000 X-UID: 1414 Status: O Hi, Developer(s) I will use this fantastic IMAP/POP -Server but i dislike, no a realy HATE PostgreSQL!, please make a hack or code a MySQL support. I know its a strange mail, and "question" but every one's first choice for SQL-DBs is MySQL! :) and i love it!. thanks in advance eLgino From rueckert@informatik.uni-rostock.de Sun Aug 24 02:56:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B787123896; Sun, 24 Aug 2003 02:56:00 +0300 (EEST) Received: from irssi.ath.cx (vpn017074.uni-rostock.de [139.30.17.74]) by danu.procontrol.fi (Postfix) with ESMTP id A1B05238C9 for ; Sun, 24 Aug 2003 02:55:28 +0300 (EEST) Received: by irssi.ath.cx (Postfix, from userid 500) id 803CB71EFE0; Sun, 24 Aug 2003 01:56:12 +0200 (CEST) Date: Sun, 24 Aug 2003 01:56:12 +0200 From: Marcus Rueckert To: thomas may Subject: Re: [Dovecot] ssl failure !! Message-ID: <20030823235612.GE30522@irssi.ath.cx> References: <000501c369b5$1e7dbde0$8b01a8c0@notebook> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <000501c369b5$1e7dbde0$8b01a8c0@notebook> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Aug 2003 23:56:00 -0000 X-UID: 1415 Status: O On 2003-08-23 22:28:30 +0200, thomas may wrote: > i havent yet any problems with dovecat but in my dovecot log i get the > following warning, does anybody know what its wrong. > > imap-login: Aug 23 22:14:47 Warning: SSL_read() syscall failed: Connection > reset by peer [192.168.1.139] > imap-login: Aug 23 22:14:48 Info: Login: info@domain1.com [192.168.1.139] from my testing i can say it is normal if you use OE. it seems OE doesnt close the SSL link correctly. darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From tss@iki.fi Sun Aug 24 03:15:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3ADDA239A8; Sun, 24 Aug 2003 03:15:47 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6D09C239AC for ; Sun, 24 Aug 2003 03:15:09 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3D6865C65485 for ; Sun, 24 Aug 2003 03:15:09 +0300 (EEST) Subject: Re: [Dovecot] please add MySQL Support! From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <000b01c369d2$5f58a740$0500a8c0@dell> References: <000b01c369d2$5f58a740$0500a8c0@dell> Content-Type: text/plain Message-Id: <1061684108.19011.196.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 24 Aug 2003 03:15:09 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 00:15:47 -0000 X-UID: 1416 Status: O On Sun, 2003-08-24 at 02:57, eLgino wrote: > Hi, Developer(s) > > I will use this fantastic IMAP/POP -Server but i dislike, no a realy HATE > PostgreSQL!, please make a hack or code a MySQL support. > > I know its a strange mail, and "question" but every one's first choice for > SQL-DBs is MySQL! :) and i love it!. And I really hate MySQL :) I'm still hoping someone else would write the support for it. I might end up doing it eventually, but currently there's more important things to do. From tss@iki.fi Sun Aug 24 03:22:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7F174239B1; Sun, 24 Aug 2003 03:22:00 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A0CBB239AC for ; Sun, 24 Aug 2003 03:21:28 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5D2595C65485 for ; Sun, 24 Aug 2003 03:21:28 +0300 (EEST) Subject: Re: [Dovecot] No rawlog with LDAP From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030823225613.GA6200@kongemord.krig.net> References: <20030822060834.GA5880@kongemord.krig.net> <23283E55-D59A-11D7-8B96-000393CC2E90@iki.fi> <20030823225613.GA6200@kongemord.krig.net> Content-Type: text/plain Message-Id: <1061684488.24980.202.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 24 Aug 2003 03:21:28 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 00:22:00 -0000 X-UID: 1417 Status: O On Sun, 2003-08-24 at 01:56, Bob Hall wrote: > > >For an imap process opened under LDAP authentication, the output is > > >USER CMD PID FD MOUNT INUM MODE SZ|DV R/W > > >postkont imap 5876 wd / 7961 drwx------ 512 r > > > > Root directory? I'm not sure why it would be there.. It should be in > > /var/run/dovecot/ directory if home directory wasn't given.. Unless the > > home dir was root. > > Then shouldn't it be in /root instead of /? /root? Why? /root is usually root's home directory and you're not running imap as root. > You're the one who knows what he's doing. I just follow orders. I'm pretty sure it's just not getting the homeDirectory out of LDAP. Maybe it's related to why uidNumber/gidNumber wasn't working either. My LDAP knowledge isn't very good, but maybe it's looking into wrong schema? Did you change user_attrs or user_filter in dovecot-ldap.conf? And you did use the same dovecot-ldap.conf file for both passdb and userdb, right? From steve@lansol.com.au Sun Aug 24 07:03:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 798B7239A3; Sun, 24 Aug 2003 07:03:33 +0300 (EEST) Received: from mikayla.lansol.com.au (eth559.sa.adsl.internode.on.net [150.101.227.46]) by danu.procontrol.fi (Postfix) with ESMTP id 21C95238D3 for ; Sun, 24 Aug 2003 07:03:00 +0300 (EEST) Received: (from root@localhost) by mikayla.lansol.com.au (8.11.6/8.11.6) id h7O42v104716 for dovecot@procontrol.fi; Sun, 24 Aug 2003 13:32:57 +0930 Received: from lansol.com.au (office1.lansol.internal [192.168.2.75]) by mikayla.lansol.com.au (8.11.6/8.11.6) with ESMTP id h7O42tK04708 for ; Sun, 24 Aug 2003 13:32:55 +0930 Message-ID: <3F4838EE.2040302@lansol.com.au> Date: Sun, 24 Aug 2003 13:32:54 +0930 From: Steve Sloan User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by AMaViS perl-11 Subject: [Dovecot] Postfix and Maildirs X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 04:03:33 -0000 X-UID: 1418 Status: O Content-Length: 2627 Hope someone can help me with this as I am presently stuck I am setting up a new server with Dovecot 0.99.10, Redhat 9.0, Postfix, Amavisd-new and maildir's in the users home drive. I am using Netscape mail 7.1 as the main client to access the mail store via imap which works fine and various other imap clients can access the maildirs Ok as well. The problem is when Postfix delivers a message is insists on making a second Maildir directory in the user's home drive and put the message in there. The Maildir's are being created automatically ie. I didn't use maildirmake. Even if I delete one of the Maildir's it just gets recreated again. ie. this is the test user's home drive drwx------ 10 test2 test2 4096 Aug 23 20:53 Maildir drwx------ 6 test2 test2 4096 Aug 24 11:05 Maildir This is the Maildir that the clients are using and being accessed by Dovecot drwx------ 10 test2 test2 4096 Aug 23 20:53 . drwx------ 4 test2 test2 4096 Aug 24 11:05 .. drwx------ 2 test2 test2 4096 Aug 23 19:58 cur -rw------- 1 test2 test2 5 Aug 23 19:58 .customflags drwx------ 5 test2 test2 4096 Aug 23 19:59 .Drafts drwx------ 2 test2 test2 4096 Aug 23 19:58 .INBOX drwx------ 2 test2 test2 4096 Aug 23 19:58 new drwx------ 5 test2 test2 4096 Aug 23 20:15 .Sent -rw------- 1 test2 test2 29 Aug 23 20:13 .subscriptions drwx------ 5 test2 test2 4096 Aug 23 20:11 .test drwx------ 2 test2 test2 4096 Aug 23 19:58 tmp drwx------ 5 test2 test2 4096 Aug 23 20:11 .Trash and the other one which Postfix user's drwx------ 6 test2 test2 4096 Aug 24 11:05 . drwx------ 4 test2 test2 4096 Aug 24 11:05 .. drwx------ 2 test2 test2 4096 Aug 24 11:05 cur -rw------- 1 test2 test2 5 Aug 24 11:05 .customflags drwx------ 2 test2 test2 4096 Aug 24 11:05 .INBOX drwx------ 2 test2 test2 4096 Aug 24 11:05 new drwx------ 2 test2 test2 4096 Aug 24 11:05 tmp This one has no index files and looks just like a courier Maildir For Postfix main.cf I have set home_mailbox = Maildir/ and /etc/dovecot.conf default_mail_env = maildir:/home/%u/Maildir Hope this make sense to someone Steve -- _____________________________________________ LanSol Computers 283 Sir Donald Bradman Drv. Brooklyn Park SA 5032 Ph 618 8238 3406 Fax 618 83538479 Mobile 0414 398166 Email steve@lansol.com.au URL www.lansol.com.au _____________________________________________ From rjhjr@cox.net Sun Aug 24 07:11:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CB9EB239AC; Sun, 24 Aug 2003 07:11:30 +0300 (EEST) Received: from lakemtao02.cox.net (lakemtao02.cox.net [68.1.17.243]) by danu.procontrol.fi (Postfix) with ESMTP id 6F9F2239A3 for ; Sun, 24 Aug 2003 07:10:58 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao02.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030824041054.LMQS11854.lakemtao02.cox.net@kongemord.krig.net> for ; Sun, 24 Aug 2003 00:10:54 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Sun, 24 Aug 2003 00:10:57 -0400 From: "Bob Hall" Date: Sun, 24 Aug 2003 00:10:57 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] No rawlog with LDAP Message-ID: <20030824041056.GA8650@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030822060834.GA5880@kongemord.krig.net> <23283E55-D59A-11D7-8B96-000393CC2E90@iki.fi> <20030823225613.GA6200@kongemord.krig.net> <1061684488.24980.202.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1061684488.24980.202.camel@hurina> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 04:11:30 -0000 X-UID: 1419 Status: O On Sun, Aug 24, 2003 at 03:21:28AM +0300, Timo Sirainen wrote: > LDAP knowledge isn't very good, but maybe it's looking into wrong > schema? Did you change user_attrs or user_filter in dovecot-ldap.conf? Bingo. When I was originally trying to get authentication to work, I removed everything from the user_attrs setting except uid. I copied the original setting back in from the original file, and now it works fine. The raw log directory is filling up like crazy. Timo, you've got to explain this setting. Here's the original setting: user_attrs = uid,homeDirectory,,uid,uidNumber,gidNumber ^^^^^ There's an extra uid and an extra comma, but when I remove them, authentication fails. What's going on? What's with the duplicates? Bob From charlie@rubberduck.com Sun Aug 24 07:21:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 066E3239B2; Sun, 24 Aug 2003 07:21:55 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 484CC239B1 for ; Sun, 24 Aug 2003 07:21:21 +0300 (EEST) Received: from machine.internal.schools.net.au (dsl-203-113-195-70.VIC.netspace.net.au [203.113.195.70]) by lazy.spodder.com (Postfix) with ESMTP id 97FAB9052; Sun, 24 Aug 2003 14:18:43 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 501) id 6EC0F1C08EB; Sun, 24 Aug 2003 14:21:12 +1000 (EST) Date: Sun, 24 Aug 2003 14:21:12 +1000 From: Charlie Allom To: Steve Sloan Subject: Re: [Dovecot] Postfix and Maildirs Message-ID: <20030824042111.GA801@myinternet.com.au> References: <3F4838EE.2040302@lansol.com.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="MGYHOYXEY6WxJCY8" Content-Disposition: inline In-Reply-To: <3F4838EE.2040302@lansol.com.au> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 04:21:55 -0000 X-UID: 1420 Status: O Content-Length: 1366 --MGYHOYXEY6WxJCY8 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Aug 24, 2003 at 01:32:54PM +0930, Steve Sloan wrote: >=20 > The problem is when Postfix delivers a message is insists on making a=20 > second Maildir directory in the user's home drive and put the message in= =20 > there. > ie. this is the test user's home drive >=20 > drwx------ 10 test2 test2 4096 Aug 23 20:53 Maildir > drwx------ 6 test2 test2 4096 Aug 24 11:05 Maildir >=20 You may have a space on the end, or dovecot is reading the . > This one has no index files and looks just like a courier Maildir >=20 > For Postfix main.cf I have set > home_mailbox =3D Maildir/ > and > /etc/dovecot.conf > default_mail_env =3D maildir:/home/%u/Maildir Put a / after the Maildir, as you have in postfix, and make sure you have no spaces. I could be wrong. C. --=20 charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --MGYHOYXEY6WxJCY8 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (Darwin) iD8DBQE/SD03qiZDwhSqeUERApNkAJ9++BtjaiqJW/zxMnHnK5rJYeB+5ACfThr4 8izXNo8qUg6IQRw3+RVV2Q8= =/zOb -----END PGP SIGNATURE----- --MGYHOYXEY6WxJCY8-- From steve@lansol.com.au Sun Aug 24 07:43:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 16014239B5; Sun, 24 Aug 2003 07:43:51 +0300 (EEST) Received: from mikayla.lansol.com.au (eth559.sa.adsl.internode.on.net [150.101.227.46]) by danu.procontrol.fi (Postfix) with ESMTP id 9A017238C9 for ; Sun, 24 Aug 2003 07:43:17 +0300 (EEST) Received: (from root@localhost) by mikayla.lansol.com.au (8.11.6/8.11.6) id h7O4hGO04957; Sun, 24 Aug 2003 14:13:16 +0930 Received: from lansol.com.au (office1.lansol.internal [192.168.2.75]) by mikayla.lansol.com.au (8.11.6/8.11.6) with ESMTP id h7O4hEK04949; Sun, 24 Aug 2003 14:13:14 +0930 Message-ID: <3F484261.8090901@lansol.com.au> Date: Sun, 24 Aug 2003 14:13:13 +0930 From: Steve Sloan User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Charlie Allom Subject: Re: [Dovecot] Postfix and Maildirs References: <3F4838EE.2040302@lansol.com.au> <20030824042111.GA801@myinternet.com.au> In-Reply-To: <20030824042111.GA801@myinternet.com.au> Content-Type: multipart/alternative; boundary="------------000402020408040507090009" X-Virus-Scanned: by AMaViS perl-11 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 04:43:51 -0000 X-UID: 1421 Status: O Content-Length: 3806 This is a multi-part message in MIME format. --------------000402020408040507090009 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Thankyou, I had a space at the end of default_mail_env = maildir:/home/%u/Maildir If I have read the maillog file a bit more closely I should have picked that up. Anyway thanks again Steve Charlie Allom wrote: >On Sun, Aug 24, 2003 at 01:32:54PM +0930, Steve Sloan wrote: > > >>The problem is when Postfix delivers a message is insists on making a >>second Maildir directory in the user's home drive and put the message in >>there. >> >> > > > >>ie. this is the test user's home drive >> >>drwx------ 10 test2 test2 4096 Aug 23 20:53 Maildir >>drwx------ 6 test2 test2 4096 Aug 24 11:05 Maildir >> >> >> > >You may have a space on the end, or dovecot is reading the . > > > >>This one has no index files and looks just like a courier Maildir >> >>For Postfix main.cf I have set >>home_mailbox = Maildir/ >>and >>/etc/dovecot.conf >>default_mail_env = maildir:/home/%u/Maildir >> >> > >Put a / after the Maildir, as you have in postfix, and make sure you >have no spaces. > >I could be wrong. > > C. > > -- _____________________________________________ LanSol Computers 283 Sir Donald Bradman Drv. Brooklyn Park SA 5032 Ph 618 8238 3406 Fax 618 83538479 Mobile 0414 398166 Email steve@lansol.com.au URL www.lansol.com.au _____________________________________________ --------------000402020408040507090009 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Thankyou,

I had a space at the end of
default_mail_env = maildir:/home/%u/Maildir

If I have read the maillog file a bit more closely I should have picked that up.

Anyway thanks again

Steve

Charlie Allom wrote:
On Sun, Aug 24, 2003 at 01:32:54PM +0930, Steve Sloan wrote:
  
The problem is when Postfix delivers a message is insists on making a 
second Maildir directory in the user's home drive and put the message in 
there.
    

  
ie. this is the test user's home drive

drwx------   10 test2    test2        4096 Aug 23 20:53 Maildir
drwx------    6 test2    test2        4096 Aug 24 11:05 Maildir

    

You may have a space on the end, or dovecot is reading the <CR>.

  
This one has no index files and looks just like a courier Maildir

For Postfix main.cf I have set
home_mailbox = Maildir/
and
/etc/dovecot.conf
default_mail_env = maildir:/home/%u/Maildir
    

Put a / after the Maildir, as you have in postfix, and make sure you
have no spaces.

I could be wrong.

  C.
  

-- 

_____________________________________________
 
LanSol Computers
283 Sir Donald Bradman Drv.
Brooklyn Park SA 5032
Ph 618 8238 3406   Fax 618 83538479
Mobile    0414 398166
Email   steve@lansol.com.au
URL  www.lansol.com.au
 _____________________________________________
--------------000402020408040507090009-- From mreimer@vpop.net Sun Aug 24 06:44:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 41FFB238D3; Sun, 24 Aug 2003 06:44:52 +0300 (EEST) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 2DA4A2384C for ; Sun, 24 Aug 2003 06:44:20 +0300 (EEST) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 68B9E3A6563; Sat, 23 Aug 2003 20:44:14 -0700 (PDT) Message-ID: <3F48349D.2090007@vpop.net> Date: Sat, 23 Aug 2003 22:44:29 -0500 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.4) Gecko/20030701 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] please add MySQL Support! References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Sun, 24 Aug 2003 08:38:33 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 03:44:52 -0000 X-UID: 1422 Status: O Timo Sirainen wrote: > On Sun, 2003-08-24 at 02:57, eLgino wrote: > >>Hi, Developer(s) >> >>I will use this fantastic IMAP/POP -Server but i dislike, no a realy HATE >>PostgreSQL!, please make a hack or code a MySQL support. >> >>I know its a strange mail, and "question" but every one's first choice for >>SQL-DBs is MySQL! :) and i love it!. > > > And I really hate MySQL :) I'm still hoping someone else would write the > support for it. I might end up doing it eventually, but currently > there's more important things to do. Just yesterday I got this working, using the pgsql stuff as a guide. After I clean up the patch and make sure I'm not leaking memory, I'll send it to the list. Matt From rjhjr@cox.net Sun Aug 24 08:44:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 88633238D5; Sun, 24 Aug 2003 08:44:19 +0300 (EEST) Received: from lakemtao01.cox.net (lakemtao01.cox.net [68.1.17.244]) by danu.procontrol.fi (Postfix) with ESMTP id 17290238D1 for ; Sun, 24 Aug 2003 08:43:47 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao01.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030824054346.UWRT5378.lakemtao01.cox.net@kongemord.krig.net> for ; Sun, 24 Aug 2003 01:43:46 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Sun, 24 Aug 2003 01:43:45 -0400 From: "Bob Hall" Date: Sun, 24 Aug 2003 01:43:45 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] No rawlog with LDAP Message-ID: <20030824054345.GA9103@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030822060834.GA5880@kongemord.krig.net> <23283E55-D59A-11D7-8B96-000393CC2E90@iki.fi> <20030823225613.GA6200@kongemord.krig.net> <1061684488.24980.202.camel@hurina> <20030824041056.GA8650@kongemord.krig.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030824041056.GA8650@kongemord.krig.net> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 05:44:19 -0000 X-UID: 1423 Status: O On Sun, Aug 24, 2003 at 12:10:57AM -0400, Bob Hall wrote: > There's an extra uid and an extra comma, but when I remove them, > authentication fails. What's going on? What's with the duplicates? Never mind. Figured it out. Bob From tss@iki.fi Sun Aug 24 08:47:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ED8C5239B5; Sun, 24 Aug 2003 08:47:52 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1AA07238D1 for ; Sun, 24 Aug 2003 08:47:20 +0300 (EEST) Date: Sun, 24 Aug 2003 08:47:31 +0300 Subject: Re: [Dovecot] No rawlog with LDAP Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <20030824041056.GA8650@kongemord.krig.net> Message-Id: <73DDCAE5-D5F6-11D7-9D97-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 05:47:53 -0000 X-UID: 1424 Status: O Content-Length: 1187 On Sunday, Aug 24, 2003, at 07:10 Europe/Helsinki, Bob Hall wrote: > Bingo. When I was originally trying to get authentication to work, I > removed everything from the user_attrs setting except uid. I copied > the original setting back in from the original file, and now it works > fine. The raw log directory is filling up like crazy. Great :) > Timo, you've got to explain this setting. Here's the original setting: > user_attrs = uid,homeDirectory,,uid,uidNumber,gidNumber > ^^^^^ > There's an extra uid and an extra comma, but when I remove them, > authentication fails. What's going on? What's with the duplicates? The first uid is the virtual user name that you log in with. For example user@domain.com. The second uid is the system user id which is used to lookup groups from /etc/groups file. Hmm.. This should probably be said more clearly there. You really don't want to have it if you have only virtual users. Two commas mean simply that the value in the middle of them doesn't exist. That'd be the MAIL environment which you can use to override config file's default_mail_env. By default it doesn't exist in LDAP so it's empty. From tss@iki.fi Sun Aug 24 08:50:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AA9DF238D1; Sun, 24 Aug 2003 08:50:34 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CBD3A239B6 for ; Sun, 24 Aug 2003 08:50:02 +0300 (EEST) Date: Sun, 24 Aug 2003 08:50:14 +0300 Subject: Re: [Dovecot] Postfix and Maildirs Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F484261.8090901@lansol.com.au> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 05:50:34 -0000 X-UID: 1425 Status: O On Sunday, Aug 24, 2003, at 07:43 Europe/Helsinki, Steve Sloan wrote: > I had a space at the end of > > default_mail_env = maildir:/home/%u/Maildir Next version will strip the spaces from end. There's been too many problems with them already. It will still be possible to add spaces to end by quoting the value with " or '. From tss@iki.fi Sun Aug 24 11:43:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EBBAE239B6; Sun, 24 Aug 2003 11:43:29 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F1DBF238C9 for ; Sun, 24 Aug 2003 11:42:55 +0300 (EEST) Date: Sun, 24 Aug 2003 11:43:08 +0300 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: X-Mailer: Apple Mail (2.552) Subject: [Dovecot] 0.99.11-test6 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 08:43:30 -0000 X-UID: 1426 Status: O Content-Length: 1432 http://dovecot.procontrol.fi/test/ I think I've fixed the problems that were corrupting indexes with the new code. It happened every time you had expunged some messages and new messages arrived. I think this release might actually work :) disable_plaintext_auth = yes will be default from now on. It allows plaintext authentication from localhost (127.*, ::1) however. I just figured out that the lockless cache file reading prevents me from fixing the mbox code to work the same way it used to. I'm not sure actually how this would be best fixed.. Problem is that headers in mails change and move the messages around in the mailbox, so I have to keep track of them. Previously I just updated the header size in index files.. but without read locks this can't be done safely. One possibility would be to parse the whole mbox file every time when the mailbox is opened (or when it needs to be read) and save the header sizes in memory. That'd make it slower than it is today though.. Or maybe it'd work if I just grabbed exclusive lock whenever reading header sizes. They could be then copied into memory to avoid locking more than once. But that still creates locking contention if lots of clients are reading the mailbox. Exactly in the situation where I'd mostly use mboxes.. I could also save it in .imap.index file which still currently uses read-locks. But I'd rather want to get rid of them in there too. From bert@rosanneke.com Sun Aug 24 15:49:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 58CEA239CE; Sun, 24 Aug 2003 15:49:58 +0300 (EEST) Received: from smtp09.wxs.nl (smtp09.wxs.nl [195.121.6.38]) by danu.procontrol.fi (Postfix) with ESMTP id 9BD6E239B6 for ; Sun, 24 Aug 2003 15:49:26 +0300 (EEST) Received: from rosanneke.com (ip3e83fde6.speed.planet.nl [62.131.253.230]) by smtp09.wxs.nl (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003)) with ESMTP id <0HK4001FEJJKNU@smtp09.wxs.nl> for dovecot@procontrol.fi; Sun, 24 Aug 2003 14:47:44 +0200 (MEST) Date: Sun, 24 Aug 2003 14:49:23 +0200 From: Bert Koelewijn To: dovecot@procontrol.fi Message-id: <3F48B453.50205@rosanneke.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii; format=flowed Content-transfer-encoding: 7BIT X-Accept-Language: en-us, en User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Subject: [Dovecot] Chrooting the Mail processes X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 12:49:58 -0000 X-UID: 1427 Status: O Hello! Could somebody give some feedback on this configuration: - OpenBSD box with local ssh users. - /home directory mounted with nosuid,noexec. - postfix dropping mail in /home/username/mail/INBOX, with the UID/GID of the user. - dovecot: valid_chroot_dirs = /home default_mail_env = mbox:/home/%u/mail/:INBOX=/home/%u/mail/INBOX Are there any obvious ways for a local user to help dovecot escape the chroot jail? How can I check that dovecot is REALLY using /home as chroot jail for the imap process? Thanks! Bert Koelewijn From tss@iki.fi Sun Aug 24 16:08:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2A07A239CE; Sun, 24 Aug 2003 16:08:15 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4AF5B239D0 for ; Sun, 24 Aug 2003 16:07:42 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 14E055C65485 for ; Sun, 24 Aug 2003 16:07:42 +0300 (EEST) Subject: Re: [Dovecot] Chrooting the Mail processes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F48B453.50205@rosanneke.com> References: <3F48B453.50205@rosanneke.com> Content-Type: text/plain Message-Id: <1061730461.24980.221.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 24 Aug 2003 16:07:42 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 13:08:15 -0000 X-UID: 1428 Status: O On Sun, 2003-08-24 at 15:49, Bert Koelewijn wrote: > valid_chroot_dirs = /home > default_mail_env = mbox:/home/%u/mail/:INBOX=/home/%u/mail/INBOX > > Are there any obvious ways for a local user to help dovecot escape the > chroot jail? Not really. They can of course create hardlinks elsewhere in /home. > How can I check that dovecot is REALLY using /home as chroot jail for > the imap process? It's not chrooting anywhere yet with those settings. Hmm. I think I'd need to add "mail_chroot" setting which would specify the default chroot. For now you'd have to change user's home directories to contain /./ to speficy chroot. Like "/home/./user". From tss@iki.fi Sun Aug 24 16:14:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5424D239D3; Sun, 24 Aug 2003 16:14:54 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6D289239CE for ; Sun, 24 Aug 2003 16:14:20 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2B2395C65485 for ; Sun, 24 Aug 2003 16:14:20 +0300 (EEST) Subject: Re: [Dovecot] Chrooting the Mail processes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1061730461.24980.221.camel@hurina> References: <3F48B453.50205@rosanneke.com> <1061730461.24980.221.camel@hurina> Content-Type: multipart/mixed; boundary="=-ZdN+8zXN4AfbVRmAMNOZ" Message-Id: <1061730859.24982.223.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 24 Aug 2003 16:14:20 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 13:14:54 -0000 X-UID: 1429 Status: O Content-Length: 2705 --=-ZdN+8zXN4AfbVRmAMNOZ Content-Type: text/plain Content-Transfer-Encoding: 7bit On Sun, 2003-08-24 at 16:07, Timo Sirainen wrote: > It's not chrooting anywhere yet with those settings. Hmm. I think I'd > need to add "mail_chroot" setting which would specify the default > chroot. Here's a patch. --=-ZdN+8zXN4AfbVRmAMNOZ Content-Disposition: attachment; filename=chroot.diff Content-Type: text/x-patch; name=chroot.diff; charset=iso-8859-15 Content-Transfer-Encoding: 7bit diff -ru dovecot-0.99.10/dovecot-example.conf dovecot-0.99.10.new/dovecot-example.conf --- dovecot-0.99.10/dovecot-example.conf 2003-06-26 19:11:06.000000000 +0300 +++ dovecot-0.99.10.new/dovecot-example.conf 2003-08-24 16:11:56.000000000 +0300 @@ -166,6 +166,10 @@ # allow shell access for users. See doc/configuration.txt for more information. #valid_chroot_dirs = +# Default chroot directory for mail processes. This can be overridden by +# giving /./ in user's home directory (eg. /home/./user chroots into /home). +#mail_chroot = + # Default MAIL environment to use when it's not set. By leaving this empty # dovecot tries to do some automatic detection as described in # doc/mail-storages.txt. There's a few special variables you can use: diff -ru dovecot-0.99.10/src/master/mail-process.c dovecot-0.99.10.new/src/master/mail-process.c --- dovecot-0.99.10/src/master/mail-process.c 2003-06-25 02:26:44.000000000 +0300 +++ dovecot-0.99.10.new/src/master/mail-process.c 2003-08-24 16:12:34.000000000 +0300 @@ -118,6 +118,9 @@ home_dir = data + reply->home_idx; chroot_dir = data + reply->chroot_idx; + if (*chroot_dir == '\0') + chroot_dir = set->mail_chroot; + if (*chroot_dir != '\0' && !validate_chroot(chroot_dir)) { i_error("Invalid chroot directory: %s", chroot_dir); return FALSE; diff -ru dovecot-0.99.10/src/master/master-settings.c dovecot-0.99.10.new/src/master/master-settings.c --- dovecot-0.99.10/src/master/master-settings.c 2003-05-21 14:43:04.000000000 +0300 +++ dovecot-0.99.10.new/src/master/master-settings.c 2003-08-24 16:11:56.000000000 +0300 @@ -43,6 +43,7 @@ /* mail */ DEF(SET_STR, valid_chroot_dirs), + DEF(SET_STR, mail_chroot), DEF(SET_INT, max_mail_processes), DEF(SET_BOOL, verbose_proctitle), diff -ru dovecot-0.99.10/src/master/master-settings.h dovecot-0.99.10.new/src/master/master-settings.h --- dovecot-0.99.10/src/master/master-settings.h 2003-05-18 15:26:29.000000000 +0300 +++ dovecot-0.99.10.new/src/master/master-settings.h 2003-08-24 16:11:56.000000000 +0300 @@ -29,6 +29,7 @@ /* mail */ const char *valid_chroot_dirs; + const char *mail_chroot; unsigned int max_mail_processes; int verbose_proctitle; --=-ZdN+8zXN4AfbVRmAMNOZ-- From bert@rosanneke.com Sun Aug 24 21:18:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D340223993; Sun, 24 Aug 2003 21:18:57 +0300 (EEST) Received: from smtp09.wxs.nl (smtp09.wxs.nl [195.121.6.38]) by danu.procontrol.fi (Postfix) with ESMTP id AEE75238D7 for ; Sun, 24 Aug 2003 21:18:24 +0300 (EEST) Received: from rosanneke.com (ip3e83fde6.speed.planet.nl [62.131.253.230]) by smtp09.wxs.nl (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003)) with ESMTP id <0HK4002P2YQUGS@smtp09.wxs.nl> for dovecot@procontrol.fi; Sun, 24 Aug 2003 20:16:20 +0200 (MEST) Date: Sun, 24 Aug 2003 20:17:38 +0200 From: Bert Koelewijn Subject: Re: [Dovecot] Chrooting the Mail processes In-reply-to: <1061730859.24982.223.camel@hurina> To: Timo Sirainen Message-id: <3F490142.3090009@rosanneke.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii; format=flowed Content-transfer-encoding: 7BIT X-Accept-Language: en-us, en User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 References: <3F48B453.50205@rosanneke.com> <1061730461.24980.221.camel@hurina> <1061730859.24982.223.camel@hurina> cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 18:18:58 -0000 X-UID: 1430 Status: O Content-Length: 3057 Timo, I think you forgot to post some diff's: MEMBER(valid_chroot_dirs) NULL, MEMBER(mail_chroot) ... and this can't be right: static int validate_chroot(const char *dir) { const char *const *chroot_dirs; if (*dir == '\0') return FALSE; if (set->valid_chroot_dirs == NULL) return FALSE; and some more I guess. But thanks for your fast reply anyway! Bert Timo Sirainen wrote: > On Sun, 2003-08-24 at 16:07, Timo Sirainen wrote: > >>It's not chrooting anywhere yet with those settings. Hmm. I think I'd >>need to add "mail_chroot" setting which would specify the default >>chroot. > > > Here's a patch. > > > > ------------------------------------------------------------------------ > > diff -ru dovecot-0.99.10/dovecot-example.conf dovecot-0.99.10.new/dovecot-example.conf > --- dovecot-0.99.10/dovecot-example.conf 2003-06-26 19:11:06.000000000 +0300 > +++ dovecot-0.99.10.new/dovecot-example.conf 2003-08-24 16:11:56.000000000 +0300 > @@ -166,6 +166,10 @@ > # allow shell access for users. See doc/configuration.txt for more information. > #valid_chroot_dirs = > > +# Default chroot directory for mail processes. This can be overridden by > +# giving /./ in user's home directory (eg. /home/./user chroots into /home). > +#mail_chroot = > + > # Default MAIL environment to use when it's not set. By leaving this empty > # dovecot tries to do some automatic detection as described in > # doc/mail-storages.txt. There's a few special variables you can use: > diff -ru dovecot-0.99.10/src/master/mail-process.c dovecot-0.99.10.new/src/master/mail-process.c > --- dovecot-0.99.10/src/master/mail-process.c 2003-06-25 02:26:44.000000000 +0300 > +++ dovecot-0.99.10.new/src/master/mail-process.c 2003-08-24 16:12:34.000000000 +0300 > @@ -118,6 +118,9 @@ > home_dir = data + reply->home_idx; > chroot_dir = data + reply->chroot_idx; > > + if (*chroot_dir == '\0') > + chroot_dir = set->mail_chroot; > + > if (*chroot_dir != '\0' && !validate_chroot(chroot_dir)) { > i_error("Invalid chroot directory: %s", chroot_dir); > return FALSE; > diff -ru dovecot-0.99.10/src/master/master-settings.c dovecot-0.99.10.new/src/master/master-settings.c > --- dovecot-0.99.10/src/master/master-settings.c 2003-05-21 14:43:04.000000000 +0300 > +++ dovecot-0.99.10.new/src/master/master-settings.c 2003-08-24 16:11:56.000000000 +0300 > @@ -43,6 +43,7 @@ > > /* mail */ > DEF(SET_STR, valid_chroot_dirs), > + DEF(SET_STR, mail_chroot), > DEF(SET_INT, max_mail_processes), > DEF(SET_BOOL, verbose_proctitle), > > diff -ru dovecot-0.99.10/src/master/master-settings.h dovecot-0.99.10.new/src/master/master-settings.h > --- dovecot-0.99.10/src/master/master-settings.h 2003-05-18 15:26:29.000000000 +0300 > +++ dovecot-0.99.10.new/src/master/master-settings.h 2003-08-24 16:11:56.000000000 +0300 > @@ -29,6 +29,7 @@ > > /* mail */ > const char *valid_chroot_dirs; > + const char *mail_chroot; > unsigned int max_mail_processes; > int verbose_proctitle; > From tss@iki.fi Mon Aug 25 02:14:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3011E238D4; Mon, 25 Aug 2003 02:14:43 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 76C8C238C5 for ; Mon, 25 Aug 2003 02:14:39 +0300 (EEST) Date: Mon, 25 Aug 2003 02:14:49 +0300 Subject: Re: [Dovecot] Chrooting the Mail processes Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F490142.3090009@rosanneke.com> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Aug 2003 23:14:43 -0000 X-UID: 1431 Status: O On Sunday, Aug 24, 2003, at 21:17 Europe/Helsinki, Bert Koelewijn wrote: > I think you forgot to post some diff's: > > MEMBER(valid_chroot_dirs) NULL, > MEMBER(mail_chroot) ... Oh, forgot to add it myself too. Looks like gcc 3 doesn't anymore complain if some of those are missing. > and this can't be right: > > static int validate_chroot(const char *dir) > { > const char *const *chroot_dirs; > > if (*dir == '\0') > return FALSE; > > if (set->valid_chroot_dirs == NULL) > return FALSE; I don't see why not? The point of that function is to return TRUE if given directory is found from valid_chroot_dirs list. From rjhjr@cox.net Mon Aug 25 06:04:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6B694238E1; Mon, 25 Aug 2003 06:04:43 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 4E3D5238C5 for ; Mon, 25 Aug 2003 06:04:31 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030825030429.SQVD10977.lakemtao03.cox.net@kongemord.krig.net> for ; Sun, 24 Aug 2003 23:04:29 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Sun, 24 Aug 2003 23:04:29 -0400 From: "Bob Hall" Date: Sun, 24 Aug 2003 23:04:28 -0400 To: Dovecot Mail List Message-ID: <20030825030428.GA12508@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] Docs on the wiki X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 03:04:43 -0000 X-UID: 1432 Status: O I went to the Dove Wiki page and added a couple of docs. There's a DoveWikiMainPage link at the top of the first page now. Click on that and the next page has links to the two docs. Someone who knows more than I do about wiki formatting should make this look good. The two docs are for Dovecot/OpenLDAP installation. The first is detailed instructions and the second is a cheat sheet. You don't need to contact me if you find errors; just click "Edit this page" at the bottom. Anyone who wants to use parts of my docs to use in documenting other types of installation should feel free. There's no mention of copyright policy, but I assume everthing is GPL copyleft. Bob Hall From tss@iki.fi Mon Aug 25 06:04:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F0659239A2; Mon, 25 Aug 2003 06:04:49 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E5762238D4 for ; Mon, 25 Aug 2003 06:04:39 +0300 (EEST) Date: Mon, 25 Aug 2003 06:04:52 +0300 Subject: Re: [Dovecot] Chrooting the Mail processes Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 03:04:50 -0000 X-UID: 1433 Status: O On Monday, Aug 25, 2003, at 02:14 Europe/Helsinki, Timo Sirainen wrote: >> static int validate_chroot(const char *dir) > > I don't see why not? The point of that function is to return TRUE if > given directory is found from valid_chroot_dirs list. Well, it crashed before calling it :) --- mail-process.c 24 Aug 2003 13:14:47 -0000 1.32 +++ mail-process.c 25 Aug 2003 03:02:49 -0000 1.33 @@ -156,7 +156,7 @@ home_dir = data + reply->home_idx; chroot_dir = data + reply->chroot_idx; - if (*chroot_dir == '\0') + if (*chroot_dir == '\0' && set->mail_chroot != NULL) chroot_dir = set->mail_chroot; if (*chroot_dir != '\0' && !validate_chroot(set, chroot_dir)) { From tss@iki.fi Mon Aug 25 07:15:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E801923998; Mon, 25 Aug 2003 07:15:02 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 763E8238C8 for ; Mon, 25 Aug 2003 07:14:54 +0300 (EEST) Date: Mon, 25 Aug 2003 07:15:07 +0300 Subject: Re: [Dovecot] 0.99.11-test6 Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 04:15:03 -0000 X-UID: 1434 Status: O On Sunday, Aug 24, 2003, at 11:43 Europe/Helsinki, Timo Sirainen wrote: > I just figured out that the lockless cache file reading prevents me > from fixing the mbox code to work the same way it used to. I'm not > sure actually how this would be best fixed.. Problem is that headers > in mails change and move the messages around in the mailbox, so I have > to keep track of them. Previously I just updated the header size in > index files.. but without read locks this can't be done safely. Stupid stupid stupid. Why did it take this long to figure out. Write: lock(); data[0] = stuff; data[1] = stuff; unlock(); Read: do { copy = data; } while (copy[0] != copy[1]); There's my lockless reading for data that changes. Solves mbox problems, allows easily changing .imap.index to be read-lockless and probably more. Doubles the space requirements, but that's still small. From charlie@rubberduck.com Mon Aug 25 08:06:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 372DF23995; Mon, 25 Aug 2003 08:06:50 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 265BB238E1 for ; Mon, 25 Aug 2003 08:06:43 +0300 (EEST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 658988F21; Mon, 25 Aug 2003 15:04:06 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 501) id 766291C6872; Mon, 25 Aug 2003 15:06:33 +1000 (EST) Date: Mon, 25 Aug 2003 15:06:33 +1000 From: Charlie Allom To: Timo Sirainen Subject: Re: [Dovecot] 0.99.11-test6 Message-ID: <20030825050633.GD6879@myinternet.com.au> References: Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="nHwqXXcoX0o6fKCv" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 05:06:50 -0000 X-UID: 1435 Status: O --nHwqXXcoX0o6fKCv Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Aug 25, 2003 at 07:15:07AM +0300, Timo Sirainen wrote: >=20 > Why did it take this long to figure out. >=20 > Write: lock(); data[0] =3D stuff; data[1] =3D stuff; unlock(); > Read: do { copy =3D data; } while (copy[0] !=3D copy[1]); It's above me Timo, but well done anyway :) C. --=20 charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --nHwqXXcoX0o6fKCv Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (Darwin) iD8DBQE/SZlYqiZDwhSqeUERAiOcAJ4zJSPr4U/mnBaPV45fj+HpJhUmjQCdHSTb vOvB8CA2HCnb4ck0vjhqAqs= =X+wc -----END PGP SIGNATURE----- --nHwqXXcoX0o6fKCv-- From matthias.andree@gmx.de Mon Aug 25 12:10:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 023B723995; Mon, 25 Aug 2003 12:10:30 +0300 (EEST) Received: from m2a2.dyndns.org (pD9E1EBD8.dip.t-dialin.net [217.225.235.216]) by danu.procontrol.fi (Postfix) with ESMTP id 03957238E1 for ; Mon, 25 Aug 2003 12:09:57 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id DF72E938BA; Mon, 25 Aug 2003 11:09:53 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] 0.99.11-test6 In-Reply-To: (Timo Sirainen's message of "Sun, 24 Aug 2003 11:43:08 +0300") References: From: Matthias Andree Date: Mon, 25 Aug 2003 11:09:53 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 09:10:30 -0000 X-UID: 1436 Status: O Timo Sirainen writes: > Or maybe it'd work if I just grabbed exclusive lock whenever reading > header sizes. They could be then copied into memory to avoid locking > more than once. But that still creates locking contention if lots of > clients are reading the mailbox. Exactly in the situation where I'd > mostly use mboxes.. Would not one rather use Maildir and assume the Kernel caches directory data? No locking contention... -- Matthias Andree From tom@replic8.net Mon Aug 25 13:36:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 548F123999; Mon, 25 Aug 2003 13:36:05 +0300 (EEST) Received: from rpunkt.kicks-ass.net (p508610D3.dip0.t-ipconnect.de [80.134.16.211]) by danu.procontrol.fi (Postfix) with ESMTP id 10CCB238E1 for ; Mon, 25 Aug 2003 13:35:33 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by rpunkt.kicks-ass.net (Postfix) with ESMTP id 888AF416B1 for ; Mon, 25 Aug 2003 10:35:00 +0000 (GMT) Received: from rpunkt.kicks-ass.net ([127.0.0.1]) by localhost (commbox.rpdnet.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 29289-05 for ; Mon, 25 Aug 2003 10:34:59 +0000 (GMT) Received: from aural.rpdnet.com (unknown [192.168.100.25]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by rpunkt.kicks-ass.net (Postfix) with ESMTP id C5322416B0 for ; Mon, 25 Aug 2003 10:34:59 +0000 (GMT) Date: Mon, 25 Aug 2003 12:36:09 +0200 From: tom hensel To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.11-test6 Message-Id: <20030825123609.554611ed.tom@replic8.net> In-Reply-To: References: X-Mailer: Sylpheed version 0.9.4 (GTK+ 1.2.10; i386--netbsdelf) User-Agent: Get Lost 5.23r42 X-Operating-System: *BSD X-ERFA: c3h Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="=.bN/HyBc:.UkVND" X-Virus-Scanned: by amavisd-new X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 10:36:05 -0000 X-UID: 1437 Status: O --=.bN/HyBc:.UkVND Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit hi, > Stupid stupid stupid. hehe, be patient with yourself ;) > Why did it take this long to figure out. good solutions need time. that's it. > Write: lock(); data[0] = stuff; data[1] = stuff; unlock(); > Read: do { copy = data; } while (copy[0] != copy[1]); go ahead ;-) thanks for your effort! -- regards, TOM Key fingerprint = 1862 006F B4A8 7C65 5704 63A3 663F 5F19 6E72 53CF --=.bN/HyBc:.UkVND Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (NetBSD) iD8DBQE/SeaZZj9fGW5yU88RAv+lAKCSUFt3hV2B//AYD/mQG5YEfPeQuQCdEUOE W62Ll3g6Vxy1BjhnMo0D9ZY= =byM/ -----END PGP SIGNATURE----- --=.bN/HyBc:.UkVND-- From tss@iki.fi Mon Aug 25 14:33:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 91DCB23999; Mon, 25 Aug 2003 14:33:44 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 1D5CF23995 for ; Mon, 25 Aug 2003 14:33:43 +0300 (EEST) Date: Mon, 25 Aug 2003 14:33:57 +0300 Subject: Re: [Dovecot] 0.99.11-test6 Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: Message-Id: <03870185-D6F0-11D7-9D97-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 11:33:44 -0000 X-UID: 1438 Status: O On Monday, Aug 25, 2003, at 12:09 Europe/Helsinki, Matthias Andree wrote: >> Or maybe it'd work if I just grabbed exclusive lock whenever reading >> header sizes. They could be then copied into memory to avoid locking >> more than once. But that still creates locking contention if lots of >> clients are reading the mailbox. Exactly in the situation where I'd >> mostly use mboxes.. > > Would not one rather use Maildir and assume the Kernel caches directory > data? No locking contention... For read-only mailboxes it's much faster to read a single mbox file than to keep opening multiple maildir files. And when you're only reading mboxes, there's no lock contention. From dovecot@andreas.hanssen.name Mon Aug 25 15:02:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EED9823999; Mon, 25 Aug 2003 15:02:23 +0300 (EEST) Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id 1ABF8238C8 for ; Mon, 25 Aug 2003 15:02:00 +0300 (EEST) Received: (qmail 25931 invoked from network); 25 Aug 2003 12:01:59 -0000 Received: from localhost (HELO shusaku.troll.no) (andreaha@127.0.0.1) by localhost with SMTP; 25 Aug 2003 12:01:59 -0000 Date: Mon, 25 Aug 2003 14:01:58 +0200 (CEST) From: Andreas Aardal Hanssen Sender: ahanssen@shusaku.troll.no To: Dovecot mailing list Subject: Re: [Dovecot] 0.99.11-test6 In-Reply-To: <03870185-D6F0-11D7-9D97-000393CC2E90@iki.fi> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 12:02:24 -0000 X-UID: 1439 Status: O On Mon, 25 Aug 2003, Timo Sirainen wrote: >On Monday, Aug 25, 2003, at 12:09 Europe/Helsinki, Matthias Andree >wrote: >> Would not one rather use Maildir and assume the Kernel caches directory >> data? No locking contention... >For read-only mailboxes it's much faster to read a single mbox file >than to keep opening multiple maildir files. And when you're only >reading mboxes, there's no lock contention. If a truncation occurs while concurrent processes are reading, how is this handled? Andy -- Andreas Aardal Hanssen From tss@iki.fi Mon Aug 25 15:27:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6E508239BA; Mon, 25 Aug 2003 15:27:35 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id F2D3823999 for ; Mon, 25 Aug 2003 15:27:33 +0300 (EEST) Date: Mon, 25 Aug 2003 15:27:46 +0300 Subject: Re: [Dovecot] 0.99.11-test6 Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot mailing list Content-Transfer-Encoding: 7bit In-Reply-To: Message-Id: <887FA7CA-D6F7-11D7-9D97-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 12:27:35 -0000 X-UID: 1440 Status: O On Monday, Aug 25, 2003, at 15:01 Europe/Helsinki, Andreas Aardal Hanssen wrote: >> For read-only mailboxes it's much faster to read a single mbox file >> than to keep opening multiple maildir files. And when you're only >> reading mboxes, there's no lock contention. > > If a truncation occurs while concurrent processes are reading, how is > this > handled? There's no truncation with read-only mailboxes of course :) Anyway, the mbox files themselves will still be read-locked so no-one can modify them (if they still do, it breaks of course). It's only the indexes that won't be read-locked. Indexes are never truncated, but they may be replaced with rename(). I'm actually still wondering a bit if this works. Have to ask from some people who really know. The problem is that if I write 123 over XXX, can a simultaneous read() return 1X3 in some situation? (1XX, 12X, XX3 and X23 are fine) That might break my plan.. From G.Ohrner@post.rwth-aachen.de Tue Aug 26 01:41:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 200AC238D1; Tue, 26 Aug 2003 01:41:02 +0300 (EEST) Received: from Blubb.wwWLAN.net (unknown [62.112.158.193]) by danu.procontrol.fi (Postfix) with ESMTP id 48EE623896 for ; Tue, 26 Aug 2003 01:40:38 +0300 (EEST) Received: by Blubb.wwWLAN.net (Postfix, from userid 106) id B474634407A; Tue, 26 Aug 2003 00:40:40 +0200 (CEST) Received: from HornBurg.CustomCDROM.de (ach9-d9bbaa8d.pool.mediaWays.net [217.187.170.141]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by Blubb.wwWLAN.net (Postfix) with ESMTP id B7C7F344079 for ; Tue, 26 Aug 2003 00:40:08 +0200 (CEST) Received: from unseenuniversity.scheibenwelt ([192.168.42.20] ident=a7b5a281b62b5447817b95e0de010615) by HornBurg.CustomCDROM.de with esmtp (Exim 3.35 #1 (Debian)) id 19rQ0H-0001DB-00 for ; Tue, 26 Aug 2003 00:40:01 +0200 Received: from localhost ([127.0.0.1] ident=59d30ca882418ffae32a1be561984202) by UnseenUniversity.Scheibenwelt with esmtp (Exim 3.36 #1 (Debian)) id 19rQ0G-0005El-00 for ; Tue, 26 Aug 2003 00:40:00 +0200 From: Gunter Ohrner To: dovecot@procontrol.fi Date: Tue, 26 Aug 2003 00:39:42 +0200 User-Agent: KMail/1.5.3 MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200308260039.59754@mail.CustomCDROM.de> X-Spam-Status: No, hits=-2.9 required=5.0 tests=PGP_SIGNATURE,USER_AGENT_KMAIL version=2.55 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) Subject: [Dovecot] mail accounts for users without home dirs X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2003 22:41:02 -0000 X-UID: 1441 Status: O Content-Length: 1080 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi! I use dovecot on a machine where users without an existing home directory (= Not=20 my idea...) need to access their mailboxes. Unfortunately dovecot tries to= =20 chdir to the users home directory before allowing IMAP access - is there=20 anything I can do about that besides creating a dummy-homedirectory for the= se=20 users? Greetings, Gunter =2D --=20 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + PGP-verschl=FCsselte Mails bevorzugt! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Chain-mail isn't much defence against an arrow. It certainly isn't when=20 the arrow is being aimed between your eyes. -- (Terry Pratchett,=20 Lords and Ladies) +-+-+-+-+-+-+-+-+-+-+-+-+ http://www.lspace.org +-+-+-+-+-+-+-+-+-+-+-+-+ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/SpA/0ORHvREo8l8RAvFcAJ0ZsnnRTmBUzQEuon6QLDSOWMB2lgCfVFJw C/6nmMXb8cyvOWog0cfmi6E=3D =3DiO/e =2D----END PGP SIGNATURE----- From jens@freebsdforum.de Tue Aug 26 04:39:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 314A423887; Tue, 26 Aug 2003 04:39:47 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id 7398F23896 for ; Tue, 26 Aug 2003 04:39:23 +0300 (EEST) Received: from localhost (localhost [213.133.103.207])327261141C1 for ; Tue, 26 Aug 2003 03:39:12 +0200 (CEST) From: Jens Gutzeit To: Subject: Re: [Dovecot] 0.99.11-test6 Date: Tue, 26 Aug 2003 03:40:32 +0200 User-Agent: KMail/1.5.3 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200308260340.32689.jens@freebsdforum.de> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 01:39:47 -0000 X-UID: 1442 Status: O On Sunday 24 August 2003 10:43, Timo Sirainen wrote: > messages arrived. I think this release might actually work :) But not on my machine ;( I got those compilation errors: Making all in lib-auth make[3]: Entering directory `/home/jens/dovecot-0.99.11-test6/src/lib-auth' /opt/diet/bin/diet gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -L/usr/local/lib -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c auth-client.c auth-client.c:7: auth-server-connection.h: No such file or directory make[3]: *** [auth-client.o] Error 1 make[3]: Leaving directory `/home/jens/dovecot-0.99.11-test6/src/lib-auth' Using auth-server-connection.h from CVS worked ok, until I got: auth-server-connection.c:11: auth-server-request.h: No such file or directory looks like you've forgotten some files. Anyway, I will test latest CVS on my machines :) Jens From rjhjr@cox.net Tue Aug 26 05:43:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A4DA3238C7; Tue, 26 Aug 2003 05:43:51 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 5CD5B238C6 for ; Tue, 26 Aug 2003 05:43:27 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030826024323.JLUZ10977.lakemtao03.cox.net@kongemord.krig.net> for ; Mon, 25 Aug 2003 22:43:23 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Mon, 25 Aug 2003 22:43:25 -0400 From: "Bob Hall" Date: Mon, 25 Aug 2003 22:43:25 -0400 To: dovecot@procontrol.fi Subject: Re: [Dovecot] mail accounts for users without home dirs Message-ID: <20030826024325.GC17307@kongemord.krig.net> Mail-Followup-To: dovecot@procontrol.fi References: <200308260039.59754@mail.CustomCDROM.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200308260039.59754@mail.CustomCDROM.de> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 02:43:51 -0000 X-UID: 1443 Status: O Content-Length: 1249 On Tue, Aug 26, 2003 at 12:39:42AM +0200, Gunter Ohrner wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi! > > I use dovecot on a machine where users without an existing home directory (Not > my idea...) need to access their mailboxes. Unfortunately dovecot tries to > chdir to the users home directory before allowing IMAP access - is there > anything I can do about that besides creating a dummy-homedirectory for these > users? I have a similar set up; none of the mail accounts correspond to an account in my passwd file. I have a postoffice account in the passwd file that owns the /var/mail directories where mail is stored. I use LDAP to assign each user the UID number for the postoffice account so that Dovecot's imap process can work with their mail. The postoffice home directory receives the raw log entries, and the account runs some related cron jobs that help manage the mail. So basically, I have one Unix account and home directory to handle all mail users. If you don't want to deal with LDAP, you should be able to do something similar with PgSQL, or perhaps one of the other supported user databases. The key is always passing the postoffice UID number to Dovecot, regardless of the user. Bob Hall From tss@iki.fi Tue Aug 26 11:59:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0762D238D5; Tue, 26 Aug 2003 11:59:49 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 50B2C23896 for ; Tue, 26 Aug 2003 11:59:25 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2110A5C65485 for ; Tue, 26 Aug 2003 11:59:25 +0300 (EEST) Subject: Re: [Dovecot] 0.99.11-test6 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <200308260340.32689.jens@freebsdforum.de> References: <200308260340.32689.jens@freebsdforum.de> Content-Type: text/plain Message-Id: <1061888365.834.12.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 26 Aug 2003 11:59:25 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 08:59:49 -0000 X-UID: 1444 Status: O On Tue, 2003-08-26 at 04:40, Jens Gutzeit wrote: > > messages arrived. I think this release might actually work :) > > But not on my machine ;( > > auth-client.c:7: auth-server-connection.h: No such file or directory Right.. I always forget to add those .h files into Makefiles. automake should complain about them.. 0.99.11-test7 fixes that. From matthias.andree@gmx.de Tue Aug 26 16:22:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CE9B8238C6; Tue, 26 Aug 2003 16:22:50 +0300 (EEST) Received: from m2a2.dyndns.org (pD951FE41.dip.t-dialin.net [217.81.254.65]) by danu.procontrol.fi (Postfix) with ESMTP id 80826238C7 for ; Tue, 26 Aug 2003 16:22:17 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 4344791112; Tue, 26 Aug 2003 15:22:15 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] 0.99.11-test6 In-Reply-To: <1061888365.834.12.camel@hurina> (Timo Sirainen's message of "Tue, 26 Aug 2003 11:59:25 +0300") References: <200308260340.32689.jens@freebsdforum.de> <1061888365.834.12.camel@hurina> From: Matthias Andree Date: Tue, 26 Aug 2003 15:22:15 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 13:22:51 -0000 X-UID: 1445 Status: O Timo Sirainen writes: > On Tue, 2003-08-26 at 04:40, Jens Gutzeit wrote: >> > messages arrived. I think this release might actually work :) >> >> But not on my machine ;( >> >> auth-client.c:7: auth-server-connection.h: No such file or directory > > Right.. I always forget to add those .h files into Makefiles. automake > should complain about them.. Run "make distdir" and configure and compile from the newly-made distdir, then you'll see what's missing from the distro. CVS is a different matter, you'd need to cvs export to a fresh directory first to find files that have to be added. -- Matthias Andree From dovecot@andreas.hanssen.name Tue Aug 26 16:44:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B043F238C7; Tue, 26 Aug 2003 16:44:28 +0300 (EEST) Received: from lexx.infeline.org (unknown [217.144.230.27]) by danu.procontrol.fi (Postfix) with SMTP id 5A975238D1 for ; Tue, 26 Aug 2003 16:43:54 +0300 (EEST) Received: (qmail 18920 invoked from network); 26 Aug 2003 13:43:53 -0000 Received: from localhost (HELO shusaku.troll.no) (andreaha@127.0.0.1) by localhost with SMTP; 26 Aug 2003 13:43:53 -0000 Date: Tue, 26 Aug 2003 15:43:52 +0200 (CEST) From: Andreas Aardal Hanssen Sender: ahanssen@shusaku.troll.no To: Dovecot mailing list Subject: Re: [Dovecot] 0.99.11-test6 In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 13:44:28 -0000 X-UID: 1446 Status: O On Tue, 26 Aug 2003, Matthias Andree wrote: >Timo Sirainen writes: >> On Tue, 2003-08-26 at 04:40, Jens Gutzeit wrote: >>> > messages arrived. I think this release might actually work :) >>> But not on my machine ;( >>> auth-client.c:7: auth-server-connection.h: No such file or directory >> Right.. I always forget to add those .h files into Makefiles. automake >> should complain about them.. >Run "make distdir" and configure and compile from the newly-made >distdir, then you'll see what's missing from the distro. "make distcheck" does it all for you, if I'm not mistaken. Andy :-) -- Andreas Aardal Hanssen From matthias.andree@gmx.de Tue Aug 26 18:19:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 99B58238D3; Tue, 26 Aug 2003 18:19:09 +0300 (EEST) Received: from m2a2.dyndns.org (p50877333.dip.t-dialin.net [80.135.115.51]) by danu.procontrol.fi (Postfix) with ESMTP id 7DDBB238C8 for ; Tue, 26 Aug 2003 18:18:45 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 5335526BE; Tue, 26 Aug 2003 17:18:43 +0200 (CEST) To: Andreas Aardal Hanssen Subject: Re: [Dovecot] 0.99.11-test6 In-Reply-To: (Andreas Aardal Hanssen's message of "Tue, 26 Aug 2003 15:43:52 +0200 (CEST)") References: From: Matthias Andree Date: Tue, 26 Aug 2003 17:18:43 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: Dovecot mailing list X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 15:19:09 -0000 X-UID: 1447 Status: O Andreas Aardal Hanssen writes: > On Tue, 26 Aug 2003, Matthias Andree wrote: >>Timo Sirainen writes: >>> On Tue, 2003-08-26 at 04:40, Jens Gutzeit wrote: >>>> > messages arrived. I think this release might actually work :) >>>> But not on my machine ;( >>>> auth-client.c:7: auth-server-connection.h: No such file or directory >>> Right.. I always forget to add those .h files into Makefiles. automake >>> should complain about them.. >>Run "make distdir" and configure and compile from the newly-made >>distdir, then you'll see what's missing from the distro. > > "make distcheck" does it all for you, if I'm not mistaken. make distcheck does more than just that, it'll also try make dist and do a VPATH build. -- Matthias Andree From esj@harvee.org Tue Aug 26 20:19:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1CA08238C8; Tue, 26 Aug 2003 20:19:25 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id EC8D223896 for ; Tue, 26 Aug 2003 20:19:00 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7QHIsiE022852 for ; Tue, 26 Aug 2003 13:18:54 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 26 Aug 2003 13:18:51 -0400 Message-ID: <3F4B9601.3070300@harvee.org> Date: Tue, 26 Aug 2003 13:16:49 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030826:dovecot@procontrol.fi:03463794e07549db Subject: [Dovecot] conversion to maildir X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 17:19:25 -0000 X-UID: 1448 Status: O is really a royal pain in the butt. most of the conversion tools only do a partial job. mb2md seems to be the best but it does not convert the from line correctly unless you are using exim for an MTA. It also does not get the file status right so everything is written to the new maildir directory. something else that makes the process painful is when you have folders containing mailboxes. And the process is *slow* when you have 2 GB of mail (yes, I will be deleting some soon). looks like I will be debugging and rewrapping this package real soon now.. to relate this to dovecot: this is probably not the job of the imap server but it would be real nice to be able to fit in some sort of a plug-in that could automatically do the conversion on a mailbox as it is opened. it would make migrations trivial easy. give me the ability to use python for plug-ins and I will write such a tool. ---eric From wyodlows@andromeda.rutgers.edu Tue Aug 26 21:03:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CFEF8238C7; Tue, 26 Aug 2003 21:03:12 +0300 (EEST) Received: from ajax1.rutgers.edu (ajax1.rutgers.edu [165.230.79.235]) by danu.procontrol.fi (Postfix) with ESMTP id 2AA2023896 for ; Tue, 26 Aug 2003 21:02:49 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by ajax1.rutgers.edu (Postfix) with ESMTP id 851FFB3D0; Tue, 26 Aug 2003 13:36:41 -0400 (EDT) Received: from ajax1.rutgers.edu ([127.0.0.1]) by localhost (ajax1.rutgers.edu [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 03006-01-11; Tue, 26 Aug 2003 13:36:40 -0400 (EDT) Received: from andromeda.rutgers.edu (andromeda.backend.invalid [192.168.0.41]) by ajax1.rutgers.edu (Postfix) with ESMTP id BF09DB16D; Tue, 26 Aug 2003 13:36:40 -0400 (EDT) Received: from andromeda.rutgers.edu (localhost [127.0.0.1]) by andromeda.rutgers.edu (Postfix) with ESMTP id E2EC542046; Tue, 26 Aug 2003 13:36:16 -0400 (EDT) To: "Eric S. Johansson" Subject: Re: [Dovecot] conversion to maildir In-reply-to: <3F4B9601.3070300@harvee.org> X-Mailer: nmh X-PGP-Fingerprint: AB4B 584D B0FF D770 2B70 10B5 5708 E111 9A52 9B97 Date: Tue, 26 Aug 2003 13:36:16 -0400 From: William Yodlowsky Message-Id: <20030826173616.E2EC542046@andromeda.rutgers.edu> X-Virus-Scanned: by amavisd-new X-Mailman-Approved-At: Tue, 26 Aug 2003 21:48:25 +0300 cc: Dovecot Mail List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 18:03:12 -0000 X-UID: 1449 Status: O On 26 August 2003 at 13:16, "Eric S. Johansson" wrote: > to relate this to dovecot: this is probably not the job of the imap server but > it would be real nice to be able to fit in some sort of a plug-in that could > automatically do the conversion on a mailbox as it is opened. > > it would make migrations trivial easy. give me the ability to use python for > plug-ins and I will write such a tool. I wouldn't mind seeing such a tool also :) From tss@iki.fi Tue Aug 26 22:19:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9AA3D23997; Tue, 26 Aug 2003 22:19:00 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CBDE3238CB for ; Tue, 26 Aug 2003 22:18:36 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 73E1B5C65485 for ; Tue, 26 Aug 2003 22:18:36 +0300 (EEST) Subject: Re: [Dovecot] conversion to maildir From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3F4B9601.3070300@harvee.org> References: <3F4B9601.3070300@harvee.org> Content-Type: text/plain Message-Id: <1061925515.1455.10.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 26 Aug 2003 22:18:36 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 19:19:00 -0000 X-UID: 1450 Status: O Content-Length: 1206 On Tue, 2003-08-26 at 20:16, Eric S. Johansson wrote: > is really a royal pain in the butt. most of the conversion tools only do a > partial job. mb2md seems to be the best but it does not convert the from line > correctly unless you are using exim for an MTA. It also does not get the file > status right so everything is written to the new maildir directory. something > else that makes the process painful is when you have folders containing > mailboxes. And the process is *slow* when you have 2 GB of mail (yes, I will be > deleting some soon). Next Dovecot version will support both mboxes and maildir. That could do it at least one mailbox at a time. > to relate this to dovecot: this is probably not the job of the imap server but > it would be real nice to be able to fit in some sort of a plug-in that could > automatically do the conversion on a mailbox as it is opened. Yes, that should be possible. > it would make migrations trivial easy. give me the ability to use python for > plug-ins and I will write such a tool. We'd need a Python plugin :) I don't think it was difficult to export C stuff from .h files to Python using some tool .. which I can't remember anymore. From charlieb-dovecot@e-smith.com Tue Aug 26 22:37:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1B8BA238CB; Tue, 26 Aug 2003 22:37:15 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id E5BF52399F for ; Tue, 26 Aug 2003 22:36:50 +0300 (EEST) Received: (qmail 9170 invoked by uid 404); 26 Aug 2003 19:36:46 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 26 Aug 2003 15:36:45 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 26 Aug 2003 19:36:45 -0000 Received: (qmail 11708 invoked by uid 5008); 26 Aug 2003 19:36:45 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 26 Aug 2003 19:36:45 -0000 Date: Tue, 26 Aug 2003 15:36:45 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: "Eric S. Johansson" Subject: Re: [Dovecot] conversion to maildir In-Reply-To: <3F4B9601.3070300@harvee.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Dovecot Mail List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 19:37:15 -0000 X-UID: 1451 Status: O On Tue, 26 Aug 2003, Eric S. Johansson wrote: > to relate this to dovecot: this is probably not the job of the imap server I disagree. An imap server can be expected to copy messages from one folder to another perfectly. Here's one tool - http://home.arcor.de/armin.diehl/imapcopy/imapcopy.html - I expect there are others. -- Charlie From esj@harvee.org Tue Aug 26 22:58:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 750292399C; Tue, 26 Aug 2003 22:58:28 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 5EBB523996 for ; Tue, 26 Aug 2003 22:58:04 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7QJvwiE025390; Tue, 26 Aug 2003 15:57:58 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 26 Aug 2003 15:57:48 -0400 Message-ID: <3F4BBB43.50409@harvee.org> Date: Tue, 26 Aug 2003 15:55:47 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen , Dovecot Mail List Subject: Re: [Dovecot] conversion to maildir References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> In-Reply-To: <1061925515.1455.10.camel@hurina> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030826:tss@iki.fi:b01acdaeef19d945 X-Camram: stamp; 0:030826:dovecot@procontrol.fi:782d8bf173b4fabf X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 19:58:28 -0000 X-UID: 1452 Status: O Content-Length: 1730 Timo Sirainen explained: > Next Dovecot version will support both mboxes and maildir. That could do > it at least one mailbox at a time. I wonder if we're both envisioning the same thing? I'm envisioning a sequence where the maildir directory is looked for first and failing that, trying for a mbox one. for example, if you have a mailbox called plugh it would look for a maildir directory called plugh and if it did not exist, look for a mbox file called plugh. Granted it would make the subscription to semantics a little funky but not unmanageable. then, if the mbox file was the only mailbox, its contents would be converted to maildir and the mbox file would be moved to a "junk" directory >>to relate this to dovecot: this is probably not the job of the imap server but >>it would be real nice to be able to fit in some sort of a plug-in that could >>automatically do the conversion on a mailbox as it is opened. > > > Yes, that should be possible. in addition to my ramblings above, seems to me that might be more practical to specify a "magic" directory addition to the imap directory representation which contains the hierarchy of mbox files which would allow users to copy and then delete mboxes to convert formats. I personally prefer the automatic invisible conversion if at all possible because it makes the customer experience a dream (if it works right). > We'd need a Python plugin :) I don't think it was difficult to export C > stuff from .h files to Python using some tool .. which I can't remember > anymore. > http://psyco.sourceforge.net/ but it's not all that you need. You want to embed python in dovecot and find a way to invoke dovecot functions mailbox from python. ---eric From tss@iki.fi Tue Aug 26 23:13:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 92749238CB; Tue, 26 Aug 2003 23:13:01 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5B3DC23996 for ; Tue, 26 Aug 2003 23:12:37 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2D7AA5C65485 for ; Tue, 26 Aug 2003 23:12:37 +0300 (EEST) Subject: Re: [Dovecot] conversion to maildir From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <3F4BBB43.50409@harvee.org> References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> <3F4BBB43.50409@harvee.org> Content-Type: text/plain Message-Id: <1061928756.1459.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 26 Aug 2003 23:12:37 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 20:13:01 -0000 X-UID: 1453 Status: O Content-Length: 1298 On Tue, 2003-08-26 at 22:55, Eric S. Johansson wrote: > > Next Dovecot version will support both mboxes and maildir. That could do > > it at least one mailbox at a time. > > I wonder if we're both envisioning the same thing? I think you were talking about two things - mbox2maildir script first and then the automatic thingy. > in addition to my ramblings above, seems to me that might be more practical to > specify a "magic" directory addition to the imap directory representation which > contains the hierarchy of mbox files which would allow users to copy and then > delete mboxes to convert formats. That's what I meant with being possible with next version: namespace private { separator = / prefix = #mbox/ location = mbox:~/mail } > > We'd need a Python plugin :) I don't think it was difficult to export C > > stuff from .h files to Python using some tool .. which I can't remember > > anymore. > > > http://psyco.sourceforge.net/ > > but it's not all that you need. You want to embed python in dovecot and find a > way to invoke dovecot functions mailbox from python. I was thinking about SWIG. http://www.swig.org/ You'd mostly just need to convert src/lib-storage/mail-storage.h, imap/client.h and imap/commands-util.h. Maybe some of lib-imap/*.h and lib-mail/*.h From G.Ohrner@post.rwth-aachen.de Tue Aug 26 23:17:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 398D22399E; Tue, 26 Aug 2003 23:17:00 +0300 (EEST) Received: from Blubb.wwWLAN.net (unknown [62.112.158.193]) by danu.procontrol.fi (Postfix) with ESMTP id 88EAB23996 for ; Tue, 26 Aug 2003 23:16:34 +0300 (EEST) Received: by Blubb.wwWLAN.net (Postfix, from userid 106) id 6351034407C; Tue, 26 Aug 2003 22:16:36 +0200 (CEST) Received: from HornBurg.CustomCDROM.de (ach9-d9bbaaeb.pool.mediaWays.net [217.187.170.235]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by Blubb.wwWLAN.net (Postfix) with ESMTP id 6D55D344079 for ; Tue, 26 Aug 2003 22:16:34 +0200 (CEST) Received: from unseenuniversity.scheibenwelt ([192.168.42.20] ident=3028ebb0b537f4e2e5b7d9f6e764c41f) by HornBurg.CustomCDROM.de with esmtp (Exim 3.35 #1 (Debian)) id 19rkEs-0000Zm-00 for ; Tue, 26 Aug 2003 22:16:26 +0200 Received: from localhost ([127.0.0.1] ident=d2857a865a4daed5d3ceccb156aee853) by UnseenUniversity.Scheibenwelt with esmtp (Exim 3.36 #1 (Debian)) id 19rkEr-00051e-00 for ; Tue, 26 Aug 2003 22:16:25 +0200 From: Gunter Ohrner To: Dovecot Mail List Subject: Re: [Dovecot] conversion to maildir Date: Tue, 26 Aug 2003 22:16:17 +0200 User-Agent: KMail/1.5.3 References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> <3F4BBB43.50409@harvee.org> In-Reply-To: <3F4BBB43.50409@harvee.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200308262216.24849@mail.CustomCDROM.de> X-Spam-Status: No, hits=-5.3 required=5.0 tests=IN_REP_TO,PGP_SIGNATURE,QUOTED_EMAIL_TEXT,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_KMAIL version=2.55 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2003 20:17:00 -0000 X-UID: 1454 Status: O =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am Dienstag, 26. August 2003 21:55 schrieb Eric S. Johansson: > then, if the mbox file was the only mailbox, its contents would be > converted to maildir and the mbox file would be moved to a "junk" directo= ry Why don't you convert your mbox files using formail and procmail? Greetings, Gunter =2D --=20 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + PGP-verschl=FCsselte Mails bevorzugt! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Dummheit ist die seltsamste aller Krankheiten. Der Kranke leidet niemals=20 unter ihr. Aber die anderen. -- Paul-Henri Spaak +-+-+-+-+-+-+-+-+-+-+-+-+ http://www.lspace.org +-+-+-+-+-+-+-+-+-+-+-+-+ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/S8AX0ORHvREo8l8RApZuAJ91tUsxWd6bLW67Q3NsuTDbzfMlqgCgi98I deJuqLCTcnXX0DSFaUm+zho=3D =3DcaTN =2D----END PGP SIGNATURE----- From rjhjr@cox.net Wed Aug 27 07:14:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DEDDB239DB; Wed, 27 Aug 2003 07:14:15 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 2C240239D0 for ; Wed, 27 Aug 2003 07:13:41 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030827041337.CQBG10977.lakemtao03.cox.net@kongemord.krig.net> for ; Wed, 27 Aug 2003 00:13:37 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 27 Aug 2003 00:13:39 -0400 From: "Bob Hall" Date: Wed, 27 Aug 2003 00:13:39 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] conversion to maildir Message-ID: <20030827041338.GA6024@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> <3F4BBB43.50409@harvee.org> <200308262216.24849@mail.CustomCDROM.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200308262216.24849@mail.CustomCDROM.de> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Aug 2003 04:14:16 -0000 X-UID: 1455 Status: O On Tue, Aug 26, 2003 at 10:16:17PM +0200, Gunter Ohrner wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Am Dienstag, 26. August 2003 21:55 schrieb Eric S. Johansson: > > then, if the mbox file was the only mailbox, its contents would be > > converted to maildir and the mbox file would be moved to a "junk" directory > > Why don't you convert your mbox files using formail and procmail? Because I don't know how. Can you post a script? or guidelines and suggestions? Bob Hall From rjhjr@cox.net Wed Aug 27 07:17:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 554B5239DC; Wed, 27 Aug 2003 07:17:33 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 2E423239DB for ; Wed, 27 Aug 2003 07:17:31 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030827041728.CQVY10977.lakemtao03.cox.net@kongemord.krig.net> for ; Wed, 27 Aug 2003 00:17:28 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 27 Aug 2003 00:17:30 -0400 From: "Bob Hall" Date: Wed, 27 Aug 2003 00:17:30 -0400 To: Dovecot Mail List Message-ID: <20030827041729.GB6024@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] No localhost after reboot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Aug 2003 04:17:33 -0000 X-UID: 1456 Status: O Rebooted the server box today. Now Dovecot doesn't listen at localhost. It does listen at the LAN interface, so it is perfectly usable, but... Does anyone have any idea why it has stopped listening at localhost? Bob Hall From ianj@ian-justman.com Wed Aug 27 17:25:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DB23E239EE; Wed, 27 Aug 2003 17:25:54 +0300 (EEST) Received: from vector.chocobo.org (vector.chocobo.org [207.126.72.243]) by danu.procontrol.fi (Postfix) with ESMTP id 27C80239F5 for ; Wed, 27 Aug 2003 17:25:22 +0300 (EEST) Received: from ian-justman.com (jidoor.chocobo.org [207.126.72.253]) by vector.chocobo.org (Postfix) with ESMTP id F2776A90EA9; Wed, 27 Aug 2003 07:25:18 -0700 (PDT) Message-ID: <3F4CBF4F.8070200@ian-justman.com> Date: Wed, 27 Aug 2003 07:25:19 -0700 From: "Ian R. Justman" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Bob Hall Subject: Re: [Dovecot] conversion to maildir References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> <3F4BBB43.50409@harvee.org> <200308262216.24849@mail.CustomCDROM.de> <20030827041338.GA6024@kongemord.krig.net> In-Reply-To: <20030827041338.GA6024@kongemord.krig.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: Dovecot Mail List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Aug 2003 14:25:55 -0000 X-UID: 1457 Status: O Content-Length: 1650 Bob Hall wrote: >>Why don't you convert your mbox files using formail and procmail? > > > Because I don't know how. Can you post a script? or guidelines and > suggestions? It's mind-numbingly easy. As for getting the mail into Procmail, that's where Formail comes in. You tell it to parse the mailbox, spitting out one message at a time, which you then feed back into Procmail which goes by your rules. As it goes, it'll then re-deliver based on your rules. This example is based directly from the set of examples from Formail's man page: cat mailbox | formail -ds procmail With your Procmail recipes, follow your mailbox name with a slant, e.g.: :0: * 1^0 ^Return-Path:.*dovecot-bounces@procontrol.fi * 1^0 ^Return-Path:.*dovecot-bounce@procontrol.fi /home/ianj/maildir/dovecot/ This one is based on a real recipe which on my system does a mbox by month, augmented to deliver to a maildir. and bingo! Any subsequent mail will be delivered to a maildir. The cool part is that you don't have to do anything special beforehand. For a main inbox, you'd remove the condition lines, and of course, specify the path to the directory (followed by a slant to tell Procmail that you want maildir delivery). Though one of the other people on the list mentioned wanting to be able to make maildir the system-wide default mailbox format for users' inboxes, which of course can be overridden in ~/.procmailrc. Any thoughts on this one? I may move my inbox to a maildir format while all my mailing list traffic will be filed in monthly mbox files since I rarely make any writes to those files from my MUA to begin with. --Ian. From tss@iki.fi Wed Aug 27 18:43:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4E2CD239FE; Wed, 27 Aug 2003 18:43:55 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 703DA239FD for ; Wed, 27 Aug 2003 18:43:23 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3A1165C65485 for ; Wed, 27 Aug 2003 18:43:23 +0300 (EEST) Subject: Re: [Dovecot] No localhost after reboot From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030827041729.GB6024@kongemord.krig.net> References: <20030827041729.GB6024@kongemord.krig.net> Content-Type: text/plain Message-Id: <1061999002.1454.121.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Wed, 27 Aug 2003 18:43:23 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Aug 2003 15:43:55 -0000 X-UID: 1458 Status: O On Wed, 2003-08-27 at 07:17, Bob Hall wrote: > Rebooted the server box today. Now Dovecot doesn't listen at > localhost. It does listen at the LAN interface, so it is > perfectly usable, but... > > Does anyone have any idea why it has stopped listening at > localhost? If settings still say imap_listen = *, it's probably got something to do with IPv6.. I think localhost was defined as ::1 in BSDs.. I'm not sure why it worked before then :) From wouter@pair.com Wed Aug 27 20:23:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8B1AB23A03; Wed, 27 Aug 2003 20:23:28 +0300 (EEST) Received: from amsfep16-int.chello.nl (amsfep16-int.chello.nl [213.46.243.26]) by danu.procontrol.fi (Postfix) with ESMTP id 591AE23A09 for ; Wed, 27 Aug 2003 20:22:56 +0300 (EEST) Received: from hibernate.cryolabs.net ([213.132.150.78]) by amsfep16-int.chello.nlSMTP <20030827172254.YSDE26236.amsfep16-int.chello.nl@hibernate.cryolabs.net> for ; Wed, 27 Aug 2003 19:22:54 +0200 Received: (qmail 695 invoked from network); 27 Aug 2003 19:22:34 +0200 Received: from unknown (HELO cocaine.cryolabs.net) (192.168.196.5) by hibernate.cryolabs.net with SMTP; 27 Aug 2003 19:22:34 +0200 Date: Wed, 27 Aug 2003 19:22:53 +0200 (CEST) From: Wouter Van Hemel To: Timo Sirainen Subject: Re: [Dovecot] IMAP error after login In-Reply-To: <6405E349-CE7A-11D7-B43D-000393CC2E90@iki.fi> Message-ID: References: <6405E349-CE7A-11D7-B43D-000393CC2E90@iki.fi> PGP: 0B B4 BC 28 53 62 FE 94 6A 57 EE B8 A6 E2 1B E4 (0xAA5412F0) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Aug 2003 17:23:28 -0000 X-UID: 1459 Status: O On Thu, 14 Aug 2003, Timo Sirainen wrote: > On Thursday, Aug 14, 2003, at 10:31 Europe/Helsinki, Nicolas STRANSKY > wrote: > > > I'm having a slight problem with Dovecot (0.99.10-0.rc2, on Debian > > woody). When using mozilla 1.4, there is an error message from the > > mailer just after login, but nothing in dovecot logs. > > "Alert > > The current command did not succeed. The mail server responded: Error > > in > > IMAP command UID: Too long argument.." > > > > How could I fix this problem ? > > You have a large mailbox and Mozilla tries to send a huge command to > Dovecot. [...] If this is Mozilla's problem for not cutting up the command into smaller pieces - I believe the rfc limits the length of an IMAP command? - maybe a bugreport could be filed in the project's bugzilla. In the long run, that might be better than enlarging the buffer to a certain maximum amount of messages, which could prove to be a game without end. How about other imap clients? Do they split up long commands? From rjhjr@cox.net Wed Aug 27 20:47:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 46B4D23A08; Wed, 27 Aug 2003 20:47:57 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id EB1A6239F3 for ; Wed, 27 Aug 2003 20:47:24 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030827174723.MVMZ419.lakemtao04.cox.net@kongemord.krig.net> for ; Wed, 27 Aug 2003 13:47:23 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 27 Aug 2003 13:47:23 -0400 From: "Bob Hall" Date: Wed, 27 Aug 2003 13:47:23 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] No localhost after reboot Message-ID: <20030827174722.GB8961@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1061999002.1454.121.camel@hurina> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Aug 2003 17:47:57 -0000 X-UID: 1460 Status: O On Wed, Aug 27, 2003 at 06:43:23PM +0300, Timo Sirainen wrote: > On Wed, 2003-08-27 at 07:17, Bob Hall wrote: > > Rebooted the server box today. Now Dovecot doesn't listen at > > localhost. It does listen at the LAN interface, so it is > > perfectly usable, but... > > > > Does anyone have any idea why it has stopped listening at > > localhost? > > If settings still say imap_listen = *, it's probably got something to do > with IPv6.. I think localhost was defined as ::1 in BSDs.. I'm not sure > why it worked before then :) I've tried both of the following: imap_listen = * imap_listen = :143 They behave the same; no localhost. Prior to the reboot, I was using localhost on a daily basis for testing. I never use IP6 for anything, so the OS kernel is compiled without IP6 support. When I try to log in, I get $ telnet localhost 143 Trying 127.0.0.1... so the system is trying to connect on an IP4 interface. Bob Hall From alex@wankwood.com Thu Aug 28 03:35:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 376D8239EB; Thu, 28 Aug 2003 03:35:04 +0300 (EEST) Received: from net-srv-0001.bvrd.com (mail.bvrd.com [216.216.73.130]) by danu.procontrol.fi (Postfix) with SMTP id 6DFD0239CC for ; Thu, 28 Aug 2003 03:34:29 +0300 (EEST) Received: (qmail 926 invoked from network); 27 Aug 2003 19:34:26 -0500 Received: from psn01.birdview.com (HELO net-srv-0001.bvrd.com) (192.168.254.2) by psn01.birdview.com with SMTP; 27 Aug 2003 19:34:26 -0500 Date: Wed, 27 Aug 2003 19:34:26 -0500 (CDT) From: Alex Howansky X-X-Sender: alex@net-srv-0001.bvrd.com To: dovecot@procontrol.fi Subject: Re: [Dovecot] mail accounts for users without home dirs In-Reply-To: <20030826024325.GC17307@kongemord.krig.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 00:35:04 -0000 X-UID: 1461 Status: O Content-Length: 1341 > > I use dovecot on a machine where users without an existing home directory (Not > > my idea...) need to access their mailboxes. Unfortunately dovecot tries to > > chdir to the users home directory before allowing IMAP access - is there > > anything I can do about that besides creating a dummy-homedirectory for these > > users? > > I have a similar set up; none of the mail accounts correspond to an > account in my passwd file. I have a postoffice account in the passwd file > that owns the /var/mail directories where mail is stored. I use LDAP to > assign each user the UID number for the postoffice account so that > Dovecot's imap process can work with their mail. The postoffice home > directory receives the raw log entries, and the account runs some > related cron jobs that help manage the mail. So basically, I have one > Unix account and home directory to handle all mail users. If you don't > want to deal with LDAP, you should be able to do something similar with > PgSQL, or perhaps one of the other supported user databases. The key is > always passing the postoffice UID number to Dovecot, regardless of the > user. You can accomplish this with the static userdb: auth_userdb = static uid=210 gid=210 home=/var/mail/%d/%n ...or something to that effect. -- Alex Howansky Wankwood Associates http://www.wankwood.com/ From tss@iki.fi Thu Aug 28 03:58:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 61C6F23A0D; Thu, 28 Aug 2003 03:58:07 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 748BE239CC for ; Thu, 28 Aug 2003 03:57:35 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D5E3A5C65485 for ; Thu, 28 Aug 2003 03:57:30 +0300 (EEST) Subject: Re: [Dovecot] No localhost after reboot From: Timo Sirainen To: Dovecot Mail List In-Reply-To: <20030827174722.GB8961@kongemord.krig.net> References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> <20030827174722.GB8961@kongemord.krig.net> Content-Type: text/plain Message-Id: <1062032250.1460.150.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 28 Aug 2003 03:57:30 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 00:58:07 -0000 X-UID: 1462 Status: O On Wed, 2003-08-27 at 20:47, Bob Hall wrote: > imap_listen = * What does "netstat -na|grep 143" say with this? > imap_listen = :143 > They behave the same; no localhost. Prior to the reboot, I was using > localhost on a daily basis for testing. I never use IP6 for anything, > so the OS kernel is compiled without IP6 support. When I try to log > in, I get > $ telnet localhost 143 > Trying 127.0.0.1... > so the system is trying to connect on an IP4 interface. OK, so it's not that then. From tss@iki.fi Thu Aug 28 04:00:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B3D62239CC; Thu, 28 Aug 2003 04:00:44 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5C3D5239E9 for ; Thu, 28 Aug 2003 04:00:11 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 369565C65485 for ; Thu, 28 Aug 2003 04:00:11 +0300 (EEST) Subject: Re: [Dovecot] mail accounts for users without home dirs From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1062032410.1455.154.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 28 Aug 2003 04:00:11 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 01:00:44 -0000 X-UID: 1463 Status: O On Thu, 2003-08-28 at 03:34, Alex Howansky wrote: > You can accomplish this with the static userdb: > > auth_userdb = static uid=210 gid=210 home=/var/mail/%d/%n Of course, I don't really suggest of using just one uid for everything.. Preferrably each user should have separate one, or at least one for each domain or other group of users that "trust" each others. From tss@iki.fi Thu Aug 28 04:13:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7BAF9239E9; Thu, 28 Aug 2003 04:13:30 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A3B1A239FF for ; Thu, 28 Aug 2003 04:12:58 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7A6755C65485 for ; Thu, 28 Aug 2003 04:12:58 +0300 (EEST) Subject: Re: [Dovecot] IMAP error after login From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <6405E349-CE7A-11D7-B43D-000393CC2E90@iki.fi> Content-Type: text/plain Message-Id: <1062033178.1454.158.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 28 Aug 2003 04:12:58 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 01:13:30 -0000 X-UID: 1464 Status: O On Wed, 2003-08-27 at 20:22, Wouter Van Hemel wrote: > If this is Mozilla's problem for not cutting up the command into smaller > pieces - I believe the rfc limits the length of an IMAP command? Not the IMAP4 RFC, but "IMAP4 Implementation recommandations". > - maybe a > bugreport could be filed in the project's bugzilla. In the long run, that > might be better than enlarging the buffer to a certain maximum amount of > messages, which could prove to be a game without end. Yeah. I've just been lazy :) http://bugzilla.mozilla.org/show_bug.cgi?id=217518 > How about other imap clients? Do they split up long commands? I haven't noticed problems with other clients. That doesn't say that they wouldn't of course.. I would guess it's mostly because of Mozilla's bad messageset generation. If it sends 1,2,3,4 rather than 1:4 it gets large easily. From tss@iki.fi Thu Aug 28 04:23:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AD749239E9; Thu, 28 Aug 2003 04:23:47 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B8D46239FF for ; Thu, 28 Aug 2003 04:23:15 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7B2E35C65485 for ; Thu, 28 Aug 2003 04:23:15 +0300 (EEST) Subject: Re: [Dovecot] 0.99.11-test6 From: Timo Sirainen To: Dovecot mailing list In-Reply-To: <887FA7CA-D6F7-11D7-9D97-000393CC2E90@iki.fi> References: <887FA7CA-D6F7-11D7-9D97-000393CC2E90@iki.fi> Content-Type: text/plain Message-Id: <1062033795.1458.167.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 28 Aug 2003 04:23:15 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 01:23:47 -0000 X-UID: 1465 Status: O Content-Length: 1866 On Mon, 2003-08-25 at 15:27, Timo Sirainen wrote: > I'm actually still wondering a bit if this works. Have to ask from some > people who really know. The problem is that if I write 123 over XXX, > can a simultaneous read() return 1X3 in some situation? (1XX, 12X, XX3 > and X23 are fine) That might break my plan.. That would probably work, but just to make sure here's an addition to the plan. Can anyone think of a situation where this would break? While MD5 is probably good enough, it doesn't _guarantee_ the consistency. I just thought of a simple algorithm that I think would. I'll go and use that unless someone proves it wrong :) Except of course if there's 256 writes and the last one is non-ordered and it all happens while a read() is executing.. Less than unlikely I'd say. I don't think there's any other potential problems with read() than that it may not have all data up to date? Such as it would never temporarily show the data as zero? static int verify(const unsigned char *buf, size_t size) { const unsigned char *checksum = buf + size; unsigned char xor; size_t i; xor = buf[0] ^ checksum[0]; for (i = 1; i < size; i++) { if ((buf[i] ^ xor) != checksum[i]) return 0; } return 1; } void write_data(const void *data, size_t size) { unsigned char *checksum = buf + size; unsigned char xor; size_t i; memcpy(buf, data, size); checksum[0]++; // always different checksum xor = buf[0] ^ checksum[0]; for (i = 1; i < size; i++) checksum[i] = buf[i] ^ xor; } void read_data(void *data, size_t size) { unsigned char copy[size*2]; do { memcpy(copy, buf, size*2); } while (!verify(copy, size)); memcpy(data, copy, size); } From rjhjr@cox.net Thu Aug 28 05:39:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 92141239FF; Thu, 28 Aug 2003 05:39:24 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id C5C2D239EB for ; Thu, 28 Aug 2003 05:38:51 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030828023850.UJGW419.lakemtao04.cox.net@kongemord.krig.net> for ; Wed, 27 Aug 2003 22:38:50 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 27 Aug 2003 22:38:50 -0400 From: "Bob Hall" Date: Wed, 27 Aug 2003 22:38:50 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] No localhost after reboot Message-ID: <20030828023849.GC537@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> <20030827174722.GB8961@kongemord.krig.net> <1062032250.1460.150.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1062032250.1460.150.camel@hurina> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 02:39:24 -0000 X-UID: 1466 Status: O Content-Length: 1145 On Thu, Aug 28, 2003 at 03:57:30AM +0300, Timo Sirainen wrote: > On Wed, 2003-08-27 at 20:47, Bob Hall wrote: > > imap_listen = * > > What does "netstat -na|grep 143" say with this? It says that the server is listening at that port and there are users connected, but that's on the LAN interface. There's no mention of 127.0.0.1. If I try to open a connection from the command line, netstat reports SYN_SENT to 127.0.0.1:143, but there's no response and no connection is established. > > imap_listen = :143 > > They behave the same; no localhost. Prior to the reboot, I was using > > localhost on a daily basis for testing. I never use IP6 for anything, > > so the OS kernel is compiled without IP6 support. When I try to log > > in, I get > > $ telnet localhost 143 > > Trying 127.0.0.1... > > so the system is trying to connect on an IP4 interface. > > OK, so it's not that then. Ever since tools got more complicated than the hammer, civilization has been going downhill. Hammers use binary logic; if you hit something, it either goes or . I don't know what computers use; pixie dust maybe? Bob Hall From rjhjr@cox.net Thu Aug 28 06:06:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E940D23A18; Thu, 28 Aug 2003 06:06:07 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id BC1CF23A10 for ; Thu, 28 Aug 2003 06:05:34 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030828030534.USJQ419.lakemtao04.cox.net@kongemord.krig.net> for ; Wed, 27 Aug 2003 23:05:34 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Wed, 27 Aug 2003 23:05:33 -0400 From: "Bob Hall" Date: Wed, 27 Aug 2003 23:05:33 -0400 To: dovecot@procontrol.fi Subject: Re: [Dovecot] mail accounts for users without home dirs Message-ID: <20030828030533.GD537@kongemord.krig.net> Mail-Followup-To: dovecot@procontrol.fi References: <1062032410.1455.154.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1062032410.1455.154.camel@hurina> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 03:06:08 -0000 X-UID: 1467 Status: O Content-Length: 1281 On Thu, Aug 28, 2003 at 04:00:11AM +0300, Timo Sirainen wrote: > On Thu, 2003-08-28 at 03:34, Alex Howansky wrote: > > You can accomplish this with the static userdb: > > > > auth_userdb = static uid=210 gid=210 home=/var/mail/%d/%n > > Of course, I don't really suggest of using just one uid for everything.. > Preferrably each user should have separate one, or at least one for each > domain or other group of users that "trust" each others. Let's say you have one server box and 20 users. Only the admins have accounts on the server box. Users can access mail only through the mail servier, via port 143. This involves three types of Unix accounts: root, human admins, and the non-human mail account that owns the mail files and runs mail scripts. Use sudo to give the admins the right to perform any necessary tasks that need the mail account, so that the mail account password doesn't get passed around. 1) What are the security weaknesses? 2) How does having one UID differ from having one password that gives you access to all the UIDs in the database? 3) How is this handled in settings with hundreds of users? Do they create hundreds of Unix accounts? Sorry about all the questions, but I'm trying to get a better understanding of security. Bob Hall From amyzing@talsever.com Thu Aug 28 06:25:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5BB4D23A1B; Thu, 28 Aug 2003 06:25:40 +0300 (EEST) Received: from hall.mail.mindspring.net (hall.mail.mindspring.net [207.69.200.60]) by danu.procontrol.fi (Postfix) with ESMTP id BA799239F5 for ; Thu, 28 Aug 2003 06:25:05 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by hall.mail.mindspring.net with esmtp (Exim 3.33 #1) id 19sDPD-0001hG-00; Wed, 27 Aug 2003 23:25:03 -0400 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id 20A6B8053; Wed, 27 Aug 2003 23:25:00 -0400 (EDT) Date: Wed, 27 Aug 2003 23:24:59 -0400 From: "Amelia A. Lewis" To: "Bob Hall" Subject: Re: [Dovecot] No localhost after reboot Message-Id: <20030827232459.028c4c4d.amyzing@talsever.com> In-Reply-To: <20030828023849.GC537@kongemord.krig.net> References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> <20030827174722.GB8961@kongemord.krig.net> <1062032250.1460.150.camel@hurina> <20030828023849.GC537@kongemord.krig.net> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.4 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 03:25:40 -0000 X-UID: 1468 Status: O On Wed, 27 Aug 2003 22:38:50 -0400 "Bob Hall" wrote: > Ever since tools got more complicated than the hammer, civilization > has been going downhill. Hammers use binary logic; if you hit > something, it either goes or . I don't know what > computers use; pixie dust maybe? Magic smoke, actually. You can tell, 'cause when the magic smoke escapes from inside, then the machine stops working. A hammer can be used to prove this thesis (but it's a ternary-logic hammer; in this case, it generally goes ). Amy! -- Amelia A. Lewis amyzing {at} talsever.com Tongue-tied and twisted, just an earthbound misfit, I. -- Pink Floyd From tss@iki.fi Thu Aug 28 06:39:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DD94C23A17; Thu, 28 Aug 2003 06:39:23 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CEA24239F5 for ; Thu, 28 Aug 2003 06:38:50 +0300 (EEST) Date: Thu, 28 Aug 2003 06:39:04 +0300 Subject: Re: [Dovecot] No localhost after reboot Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: <20030828023849.GC537@kongemord.krig.net> Message-Id: <2C2B4303-D909-11D7-A165-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 03:39:24 -0000 X-UID: 1469 Status: O On Thursday, Aug 28, 2003, at 05:38 Europe/Helsinki, Bob Hall wrote: >> What does "netstat -na|grep 143" say with this? > > It says that the server is listening at that port and there are > users connected, but that's on the LAN interface. So it's listening in "xx.xx.xx.xx.143", not "*.143"? What about other services? Anyway, I don't really know. Default is to listen in all IPv4 interfaces and that's what imap_listen = * does too. From tss@iki.fi Thu Aug 28 06:50:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 229F6239CC; Thu, 28 Aug 2003 06:50:35 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4A675239F5 for ; Thu, 28 Aug 2003 06:50:03 +0300 (EEST) Date: Thu, 28 Aug 2003 06:50:18 +0300 Subject: Re: [Dovecot] mail accounts for users without home dirs Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030828030533.GD537@kongemord.krig.net> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 03:50:35 -0000 X-UID: 1470 Status: O Content-Length: 1329 On Thursday, Aug 28, 2003, at 06:05 Europe/Helsinki, Bob Hall wrote: > Let's say you have one server box and 20 users. Only the admins have > accounts on the server box. Users can access mail only through the > mail servier, via port 143. This involves three types of Unix accounts: > root, human admins, and the non-human mail account that owns the > mail files and runs mail scripts. Use sudo to give the admins the > right to perform any necessary tasks that need the mail account, so > that the mail account password doesn't get passed around. > 1) What are the security weaknesses? With shared uids the problem is that if there's a security hole in Dovecot, attacker can access all the files that are owned by his uid. So different uids just provide operating system level security. > 2) How does having one UID differ from having one password that gives > you > access to all the UIDs in the database? If you know the password, it doesn't differ. If you don't, but you could exploit security hole in Dovecot you then have access. > 3) How is this handled in settings with hundreds of users? Do they > create hundreds of Unix accounts? They don't have to have real accounts, just the uids have to be reserved for them. For example you could just decide that uids above 10000 are for virtual users in LDAP. From tss@iki.fi Thu Aug 28 08:25:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 823C623A14; Thu, 28 Aug 2003 08:25:49 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 92EBC239F5 for ; Thu, 28 Aug 2003 08:25:17 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 4507B5C65485 for ; Thu, 28 Aug 2003 08:25:17 +0300 (EEST) Subject: Re: [Dovecot] 0.99.11-test6 From: Timo Sirainen To: Dovecot mailing list In-Reply-To: <1062033795.1458.167.camel@hurina> References: <887FA7CA-D6F7-11D7-9D97-000393CC2E90@iki.fi> <1062033795.1458.167.camel@hurina> Content-Type: text/plain Message-Id: <1062048316.1456.189.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 28 Aug 2003 08:25:17 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 05:25:49 -0000 X-UID: 1471 Status: O On Thu, 2003-08-28 at 04:23, Timo Sirainen wrote: > That would probably work, but just to make sure here's an addition to > the plan. Can anyone think of a situation where this would break? Sure someone could :) Yet another idea which looks simple enough to hopefully work perfectly: checksum[n] = data[n-1] xor data[n] And if it does work, I'm sure it's some widely known algorithm that I've just never heard of.. :) It also just occured to me that this provides easy detection of corrupted data if system crashes or whatever. From rjhjr@cox.net Thu Aug 28 09:18:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0079C23A1F; Thu, 28 Aug 2003 09:18:35 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id 78B2C23A14 for ; Thu, 28 Aug 2003 09:18:03 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030828061803.WFGE419.lakemtao04.cox.net@kongemord.krig.net> for ; Thu, 28 Aug 2003 02:18:03 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Thu, 28 Aug 2003 02:18:02 -0400 From: "Bob Hall" Date: Thu, 28 Aug 2003 02:18:02 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] No localhost after reboot Message-ID: <20030828061802.GC2511@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030828023849.GC537@kongemord.krig.net> <2C2B4303-D909-11D7-A165-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2C2B4303-D909-11D7-A165-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 06:18:36 -0000 X-UID: 1472 Status: O On Thu, Aug 28, 2003 at 06:39:04AM +0300, Timo Sirainen wrote: > On Thursday, Aug 28, 2003, at 05:38 Europe/Helsinki, Bob Hall wrote: > > >>What does "netstat -na|grep 143" say with this? > > > >It says that the server is listening at that port and there are > >users connected, but that's on the LAN interface. > > So it's listening in "xx.xx.xx.xx.143", not "*.143"? What about other > services? I'm sorry, I should have quoted the output instead of interpreting it. is the address for the mail server. .143 .1240 ESTABLISHED .1240 .143 ESTABLISHED .143 *.* LISTEN That what it says right now. At other times, you can see connections from other computers. > Anyway, I don't really know. Default is to listen in all IPv4 > interfaces and that's what imap_listen = * does too. The output doesn't change if I set imap_listen = .143 or imap_listen = * Bob Hall From rjhjr@cox.net Thu Aug 28 09:26:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ABBB123A26; Thu, 28 Aug 2003 09:26:59 +0300 (EEST) Received: from lakemtao02.cox.net (lakemtao02.cox.net [68.1.17.243]) by danu.procontrol.fi (Postfix) with ESMTP id 3B87923A20 for ; Thu, 28 Aug 2003 09:26:27 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao02.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030828062618.BZE11854.lakemtao02.cox.net@kongemord.krig.net> for ; Thu, 28 Aug 2003 02:26:18 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Thu, 28 Aug 2003 02:26:26 -0400 From: "Bob Hall" Date: Thu, 28 Aug 2003 02:26:26 -0400 To: dovecot@procontrol.fi Subject: Re: [Dovecot] No localhost after reboot Message-ID: <20030828062625.GD2511@kongemord.krig.net> Mail-Followup-To: dovecot@procontrol.fi References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> <20030827174722.GB8961@kongemord.krig.net> <1062032250.1460.150.camel@hurina> <20030828023849.GC537@kongemord.krig.net> <20030827232459.028c4c4d.amyzing@talsever.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030827232459.028c4c4d.amyzing@talsever.com> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 06:26:59 -0000 X-UID: 1473 Status: O On Wed, Aug 27, 2003 at 11:24:59PM -0400, Amelia A. Lewis wrote: > On Wed, 27 Aug 2003 22:38:50 -0400 > "Bob Hall" wrote: > > Ever since tools got more complicated than the hammer, civilization > > has been going downhill. Hammers use binary logic; if you hit > > something, it either goes or . I don't know what > > computers use; pixie dust maybe? > > Magic smoke, actually. You can tell, 'cause when the magic smoke > escapes from inside, then the machine stops working. A hammer can be You mean the smoke emitting diodes weren't designed that way? > used to prove this thesis (but it's a ternary-logic hammer; in this > case, it generally goes ). I wouldn't know. I prefer to use a rock on computers. It doesn't make the computer work better, but the juxtaposition of the geological and the computational seems to restore harmony in the universe. Bob Hall Bob Hall From rjhjr@cox.net Thu Aug 28 10:02:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 680E623A17; Thu, 28 Aug 2003 10:02:17 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id DDE3123A23 for ; Thu, 28 Aug 2003 10:01:44 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030828070140.UUQP10977.lakemtao03.cox.net@kongemord.krig.net> for ; Thu, 28 Aug 2003 03:01:40 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Thu, 28 Aug 2003 03:01:43 -0400 From: "Bob Hall" Date: Thu, 28 Aug 2003 03:01:42 -0400 To: dovecot@procontrol.fi Subject: Re: [Dovecot] mail accounts for users without home dirs Message-ID: <20030828070132.GE2511@kongemord.krig.net> Mail-Followup-To: dovecot@procontrol.fi References: <20030828030533.GD537@kongemord.krig.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 07:02:17 -0000 X-UID: 1474 Status: O Content-Length: 1692 On Thu, Aug 28, 2003 at 06:50:18AM +0300, Timo Sirainen wrote: > On Thursday, Aug 28, 2003, at 06:05 Europe/Helsinki, Bob Hall wrote: > > >Let's say you have one server box and 20 users. Only the admins have > >accounts on the server box. Users can access mail only through the > >mail servier, via port 143. This involves three types of Unix accounts: > >root, human admins, and the non-human mail account that owns the > >mail files and runs mail scripts. Use sudo to give the admins the > >right to perform any necessary tasks that need the mail account, so > >that the mail account password doesn't get passed around. > >1) What are the security weaknesses? > > With shared uids the problem is that if there's a security hole in > Dovecot, attacker can access all the files that are owned by his uid. > So different uids just provide operating system level security. > > >2) How does having one UID differ from having one password that gives > >you > > access to all the UIDs in the database? > > If you know the password, it doesn't differ. If you don't, but you > could exploit security hole in Dovecot you then have access. > > >3) How is this handled in settings with hundreds of users? Do they > > create hundreds of Unix accounts? > > They don't have to have real accounts, just the uids have to be > reserved for them. For example you could just decide that uids above > 10000 are for virtual users in LDAP. Since the UIDs don't correspond to actual system accounts, then I take it that there's no OS level security? So if you have a requirement for stringent security, you can't use large scale mail systems? Multidrop boxes must have the same weakness. Bob From tss@iki.fi Thu Aug 28 10:19:21 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E179B23A31; Thu, 28 Aug 2003 10:19:21 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DED0723A23 for ; Thu, 28 Aug 2003 10:18:48 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A44EF5C65485 for ; Thu, 28 Aug 2003 10:18:48 +0300 (EEST) Subject: Re: [Dovecot] mail accounts for users without home dirs From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030828070132.GE2511@kongemord.krig.net> References: <20030828030533.GD537@kongemord.krig.net> <20030828070132.GE2511@kongemord.krig.net> Content-Type: text/plain Message-Id: <1062055128.1457.195.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 28 Aug 2003 10:18:48 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 07:19:22 -0000 X-UID: 1475 Status: O On Thu, 2003-08-28 at 10:01, Bob Hall wrote: > > They don't have to have real accounts, just the uids have to be > > reserved for them. For example you could just decide that uids above > > 10000 are for virtual users in LDAP. > > Since the UIDs don't correspond to actual system accounts, then I > take it that there's no OS level security? There is. With unix accounts I mean about having the user in /etc/passwd or equilevant. Kernel doesn't care about that, it only cares about the uids used for files and processes. From rjhjr@cox.net Thu Aug 28 11:04:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1667D23A21; Thu, 28 Aug 2003 11:04:38 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id B390323A24 for ; Thu, 28 Aug 2003 11:04:04 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030828080404.WOVH419.lakemtao04.cox.net@kongemord.krig.net> for ; Thu, 28 Aug 2003 04:04:04 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Thu, 28 Aug 2003 04:04:03 -0400 From: "Bob Hall" Date: Thu, 28 Aug 2003 04:04:03 -0400 To: dovecot@procontrol.fi Subject: Re: [Dovecot] mail accounts for users without home dirs Message-ID: <20030828080402.GA4324@kongemord.krig.net> Mail-Followup-To: dovecot@procontrol.fi References: <20030828030533.GD537@kongemord.krig.net> <20030828070132.GE2511@kongemord.krig.net> <1062055128.1457.195.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1062055128.1457.195.camel@hurina> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 08:04:38 -0000 X-UID: 1476 Status: O On Thu, Aug 28, 2003 at 10:18:48AM +0300, Timo Sirainen wrote: > On Thu, 2003-08-28 at 10:01, Bob Hall wrote: > > > They don't have to have real accounts, just the uids have to be > > > reserved for them. For example you could just decide that uids above > > > 10000 are for virtual users in LDAP. > > > > Since the UIDs don't correspond to actual system accounts, then I > > take it that there's no OS level security? > > There is. With unix accounts I mean about having the user in /etc/passwd > or equilevant. Kernel doesn't care about that, it only cares about the > uids used for files and processes. I thought that the OS used UIDs to associate files and processes with passwd accounts. So if you pass Dovecot a UID that doesn't correspond to the account that owns the mail files, then you don't get access to the mail files. For example, when I passed one account UID number to Dovecot, and the mail files were owned by another account, access was denied. Are you saying there's a work-around? Bob Hall From tss@iki.fi Thu Aug 28 12:02:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8BA0A23A1A; Thu, 28 Aug 2003 12:02:49 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9298C23A21 for ; Thu, 28 Aug 2003 12:02:17 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 917065C65485 for ; Thu, 28 Aug 2003 12:02:16 +0300 (EEST) Subject: Re: [Dovecot] mail accounts for users without home dirs From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030828080402.GA4324@kongemord.krig.net> References: <20030828030533.GD537@kongemord.krig.net> <20030828070132.GE2511@kongemord.krig.net> <1062055128.1457.195.camel@hurina> <20030828080402.GA4324@kongemord.krig.net> Content-Type: text/plain Message-Id: <1062061336.1455.245.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 28 Aug 2003 12:02:16 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 09:02:49 -0000 X-UID: 1477 Status: O On Thu, 2003-08-28 at 11:04, Bob Hall wrote: > > There is. With unix accounts I mean about having the user in /etc/passwd > > or equilevant. Kernel doesn't care about that, it only cares about the > > uids used for files and processes. > > I thought that the OS used UIDs to associate files and processes with > passwd accounts. So if you pass Dovecot a UID that doesn't correspond > to the account that owns the mail files, then you don't get access to > the mail files. The point was that the mail files are owned by the same uid that is running imap process. It doesn't matter if the uid is in passwd-file or not, it's just ls, ps and other userspace programs that map uids to usernames using it. So you would have to have same uid <-> username maps for Dovecot and SMTP server, but they don't have to be anywhere else. From grahame@ucs.uwa.edu.au Thu Aug 28 12:26:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5DF0923A1A; Thu, 28 Aug 2003 12:26:52 +0300 (EEST) Received: from asclepius.uwa.edu.au (asclepius.uwa.edu.au [130.95.128.56]) by danu.procontrol.fi (Postfix) with ESMTP id A3BAD23A21 for ; Thu, 28 Aug 2003 12:26:19 +0300 (EEST) Received: from 127.0.0.1 (localhost [127.0.0.1]) by dummy.domain.name (Postfix) with SMTP id D461536693A for ; Thu, 28 Aug 2003 17:26:17 +0800 (WST) Received: from typhaon.ucs.uwa.edu.au (typhaon.ucs.uwa.edu.au [130.95.128.67]) by asclepius.uwa.edu.au (Postfix) with ESMTP id CC4B23668FD for ; Thu, 28 Aug 2003 17:26:17 +0800 (WST) Received: from localhost (localhost [127.0.0.1]) by typhaon.ucs.uwa.edu.au (Postfix) with ESMTP id 585D0408ACD2; Thu, 28 Aug 2003 17:26:17 +0800 (WST) Subject: Re: [Dovecot] conversion to maildir From: Grahame Bowland To: Timo Sirainen In-Reply-To: <1061928756.1459.19.camel@hurina> References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> <3F4BBB43.50409@harvee.org> <1061928756.1459.19.camel@hurina> Content-Type: text/plain Organization: The University of Western Australia Message-Id: <1062062777.32020.51.camel@typhaon.ucs.uwa.edu.au> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 28 Aug 2003 17:26:17 +0800 Content-Transfer-Encoding: 7bit cc: Dovecot Mail List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 09:26:52 -0000 X-UID: 1478 Status: O Content-Length: 1749 On Wed, 2003-08-27 at 04:12, Timo Sirainen wrote: > > > We'd need a Python plugin :) I don't think it was difficult to export C > > > stuff from .h files to Python using some tool .. which I can't remember > > > anymore. > > > > > http://psyco.sourceforge.net/ > > > > but it's not all that you need. You want to embed python in dovecot and find a > > way to invoke dovecot functions mailbox from python. > > I was thinking about SWIG. http://www.swig.org/ > > You'd mostly just need to convert src/lib-storage/mail-storage.h, > imap/client.h and imap/commands-util.h. Maybe some of lib-imap/*.h and > lib-mail/*.h Do dovecot plugins run as seperate processes and communicate with some sort of IPC, or do they run within the same process as the main server? If they run within a plugin would need to embed the actual interpreter. By the way, I converted over UWA's student email server to dovecot from UW-IMAP and cucipop last night. Relatively few problems, which I've now fixed with some tweaks to the config. The only outstanding problem is these assertions I keep getting in the logs: Aug 28 17:03:51 tartarus imap(mpienaar): file mbox-rewrite.c: line 429 (mbox_write_header): assertion failed: (hdr_parsed_size.physical_size == hdr_size) Does the assertion indicate a corrupted mailbox file? I can open that user's mailbox fine with mutt. It's dovecot 0.99.10-5 from Debian. Load has dropped a lot on the server (we have 20k accounts), so thanks for a useful program :) Cheers Grahame -- Grahame Bowland Email: grahame@ucs.uwa.edu.au University Communications Services Phone: +61 8 9380 1175 The University of Western Australia Fax: +61 8 9380 1109 CRICOS: 00126G From Nicolas.Stransky@crans.org Thu Aug 28 13:02:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8C4E423A28; Thu, 28 Aug 2003 13:02:44 +0300 (EEST) Received: from mailhost.curie.fr (burton1.curie.fr [193.49.205.23]) by danu.procontrol.fi (Postfix) with ESMTP id 0639D23A31 for ; Thu, 28 Aug 2003 13:02:08 +0300 (EEST) Received: from mailhost.curie.fr (localhost [127.0.0.1]) by mailhost.curie.fr/1 with ESMTP id h7SA26LS009930 for ; Thu, 28 Aug 2003 12:02:06 +0200 (CEST) Received: from crans.org (jpt-0115-6340.curie.fr [10.10.11.73]) by mailhost.curie.fr/0 with ESMTP id h7SA1wmw009908 for ; Thu, 28 Aug 2003 12:01:58 +0200 (CEST) X-Client-Addr: 10.10.11.73 jpt-0115-6340.curie.fr (OK) X-Client-Sender: Nicolas.Stransky@crans.org Message-ID: <3F4DD316.2060603@crans.org> Date: Thu, 28 Aug 2003 12:01:58 +0200 From: Nicolas STRANSKY User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030612 X-Accept-Language: fr-fr, fr, en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> In-Reply-To: <1061925515.1455.10.camel@hurina> X-Enigmail-Version: 0.74.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Status: No, hits=0.0 required=8.0 tests=none version=2.60-cvs Subject: [Dovecot] Re: conversion to maildir X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: nico@neo-lan.net List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 10:02:44 -0000 X-UID: 1479 Status: O Le 26/08/2003 21:18, Timo Sirainen a écrit : > Next Dovecot version will support both mboxes and maildir. That could do > it at least one mailbox at a time. Do you mean that with the actual stable version (99.10) it is not possible to handle both maildir and mailbox imap folders for the same account ? -- Nico From tss@iki.fi Thu Aug 28 13:05:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2FCF723A34; Thu, 28 Aug 2003 13:05:30 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 73D3023A28 for ; Thu, 28 Aug 2003 13:04:56 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 351C85C65485; Thu, 28 Aug 2003 13:04:56 +0300 (EEST) Subject: Re: [Dovecot] conversion to maildir From: Timo Sirainen To: Grahame Bowland In-Reply-To: <1062062777.32020.51.camel@typhaon.ucs.uwa.edu.au> References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> <3F4BBB43.50409@harvee.org> <1061928756.1459.19.camel@hurina> <1062062777.32020.51.camel@typhaon.ucs.uwa.edu.au> Content-Type: text/plain Message-Id: <1062065095.1459.292.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 28 Aug 2003 13:04:56 +0300 Content-Transfer-Encoding: 7bit cc: Dovecot Mail List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 10:05:30 -0000 X-UID: 1480 Status: O Content-Length: 2030 On Thu, 2003-08-28 at 12:26, Grahame Bowland wrote: > Do dovecot plugins run as seperate processes and communicate with some > sort of IPC, or do they run within the same process as the main server? > If they run within a plugin would need to embed the actual interpreter. They run within the server. I don't think there's much point in separating them into other processes. So yes, you'd need embedded interpreter but I don't think that's much of a problem. > By the way, I converted over UWA's student email server to dovecot from > UW-IMAP and cucipop last night. Relatively few problems, which I've now > fixed with some tweaks to the config. Nice :) > The only outstanding problem is > these assertions I keep getting in the logs: > Aug 28 17:03:51 tartarus imap(mpienaar): file mbox-rewrite.c: line 429 > (mbox_write_header): assertion failed: (hdr_parsed_size.physical_size == > hdr_size) > > Does the assertion indicate a corrupted mailbox file? I can open that > user's mailbox fine with mutt. It's dovecot 0.99.10-5 from Debian. I heard about similiar problem before too.. I couldn't really figure out what it was that caused the problem. I've never seen it myself and I've been using mboxes all the time. What that error message means is that message header size is different when rewriting mbox than what it was at last synchronization. But since the syncing is done just before the rewriting, that should never happen. Except if there's a bug somewhere.. If it's possible I would like to see that mbox file. Actually it could be enough if you just hide the actual content in it. Here's a pretty perl script for that: perl -e 'while (<>) { if (/^From ([^ ]*) *(.*)$/) { $hdr = 1; print "From foo\@bar.org $2\n"; } elsif ($hdr) { if (/^$/) { $hdr = 0; print "\n"; } elsif (/^Date:/i || /^Status:/i || /^X-Status:/i || /^X-Keywords:/i || /^X-UID:/i || /^X-IMAPbase:/i || /^Content-Length/i) { print $_; } else { s/^([^:]+:) (.*)/("$1 "."X"x length($2))/e; print $_; } } else { s/./B/g; print $_; } }' < inbox From tss@iki.fi Thu Aug 28 13:29:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 922BE23A28; Thu, 28 Aug 2003 13:29:32 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8DFDA23A22 for ; Thu, 28 Aug 2003 13:29:00 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5FCA95C65485 for ; Thu, 28 Aug 2003 13:29:00 +0300 (EEST) Subject: Re: [Dovecot] Re: conversion to maildir From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F4DD316.2060603@crans.org> References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> <3F4DD316.2060603@crans.org> Content-Type: text/plain Message-Id: <1062066540.1455.324.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 28 Aug 2003 13:29:00 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 10:29:32 -0000 X-UID: 1481 Status: O On Thu, 2003-08-28 at 13:01, Nicolas STRANSKY wrote: > > Next Dovecot version will support both mboxes and maildir. That could do > > it at least one mailbox at a time. > > Do you mean that with the actual stable version (99.10) it is not > possible to handle both maildir and mailbox imap folders for the same > account ? Yep. It didn't need that much changes, but I hadn't bothered to do that until now. From michael@michaelandniki.com Fri Aug 29 00:29:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 968A823A4C; Fri, 29 Aug 2003 00:29:24 +0300 (EEST) Received: from mail.michaelandniki.com (node-402418ea.mdw.onnet.us.uu.net [64.36.24.234]) by danu.procontrol.fi (Postfix) with ESMTP id 9638923A31 for ; Fri, 29 Aug 2003 00:28:52 +0300 (EEST) Received: from [192.168.6.9] (unknown [12.32.94.66]) by mail.michaelandniki.com (Postfix) with ESMTP id 61518175BE for ; Thu, 28 Aug 2003 16:27:44 -0500 (CDT) From: Michael Ducy To: dovecot@procontrol.fi Content-Type: text/plain Organization: Message-Id: <1062106138.8206.21.camel@mannix.spacedock.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 28 Aug 2003 16:28:58 -0500 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Postgresql and Dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 21:29:24 -0000 X-UID: 1482 Status: O I am having some issues getting dovecot to work with postgres. Dovecot starts up and runs fine without using postgres (ie passwd and pam). There is nothing in /var/log/messages other than: Aug 28 12:44:05 mail dovecot: dovecot startup succeeded Then ps -A shows no running dovecot processes (or the imap-login or pop-login). I have tried with both the RPMs that are on the download page and buidling it myself on 2 different boxes (yes I configured with --with-pgsql - Red Hat 7.3 and Red Hat 9.0). Any suggestions would be appreciated as this is the only imap/pop server with pgsql support and flatfile support I can find. Michael From michael@michaelandniki.com Fri Aug 29 00:47:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9E4E823A4C; Fri, 29 Aug 2003 00:47:47 +0300 (EEST) Received: from mail.michaelandniki.com (node-402418ea.mdw.onnet.us.uu.net [64.36.24.234]) by danu.procontrol.fi (Postfix) with ESMTP id E7AA9239BA for ; Fri, 29 Aug 2003 00:47:45 +0300 (EEST) Received: from [192.168.6.9] (unknown [12.32.94.66]) by mail.michaelandniki.com (Postfix) with ESMTP id 3A163175BE for ; Thu, 28 Aug 2003 16:46:38 -0500 (CDT) Subject: Re: [Dovecot] Postgresql and Dovecot From: Michael Ducy To: dovecot@procontrol.fi In-Reply-To: <1062106138.8206.21.camel@mannix.spacedock.com> References: <1062106138.8206.21.camel@mannix.spacedock.com> Content-Type: text/plain Organization: Message-Id: <1062107262.13637.4.camel@mannix.spacedock.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 28 Aug 2003 16:47:42 -0500 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 21:47:47 -0000 X-UID: 1483 Status: O Sorry, it has been a long day. I noticed my message left something out. When I start dovecot using "pgsql /etc/dovecot-pgsql.conf" for auth_passdb and auth_userdb it dies with no error. On Thu, 2003-08-28 at 16:28, Michael Ducy wrote: > I am having some issues getting dovecot to work with postgres. Dovecot > starts up and runs fine without using postgres (ie passwd and pam). > There is nothing in /var/log/messages other than: > > Aug 28 12:44:05 mail dovecot: dovecot startup succeeded > > Then ps -A shows no running dovecot processes (or the imap-login or > pop-login). I have tried with both the RPMs that are on the download > page and buidling it myself on 2 different boxes (yes I configured with > --with-pgsql - Red Hat 7.3 and Red Hat 9.0). > > Any suggestions would be appreciated as this is the only imap/pop server > with pgsql support and flatfile support I can find. > > > > Michael From dovecot@alexolson.com Fri Aug 29 01:50:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 181C823A4E; Fri, 29 Aug 2003 01:50:14 +0300 (EEST) Received: from bhodoo.homelinux.net (cs666894-25.austin.rr.com [66.68.94.25]) by danu.procontrol.fi (Postfix) with ESMTP id 47C9123A31 for ; Fri, 29 Aug 2003 01:49:42 +0300 (EEST) Received: from 192.168.0.1 (localhost [127.0.0.1]) by bhodoo.homelinux.net (Postfix) with SMTP id A3A805DAC for ; Thu, 28 Aug 2003 17:49:59 -0500 (CDT) Received: from 192.168.0.2 (SquirrelMail authenticated user alex) by 192.168.0.1 with HTTP; Thu, 28 Aug 2003 22:49:59 -0000 (UTC) Message-ID: <1040.192.168.0.2.1062110999.squirrel@192.168.0.1> Date: Thu, 28 Aug 2003 22:49:59 -0000 (UTC) From: "Alex" To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Squirrelmail & Dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 22:50:14 -0000 X-UID: 1484 Status: O What are the optimum IMAP settings for Squirelmail on dovecot? I am having good luck with the Cyrus settings, but I would prefer to know the real truth... Thanks -Alex From jens@freebsdforum.de Fri Aug 29 02:17:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5E555239A1; Fri, 29 Aug 2003 02:17:04 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id C3390238D6 for ; Fri, 29 Aug 2003 02:16:30 +0300 (EEST) Received: from localhost (localhost [213.133.103.207])0AD0A1141EE for ; Fri, 29 Aug 2003 01:16:17 +0200 (CEST) From: Jens Gutzeit To: dovecot@procontrol.fi Subject: Re: [Dovecot] Squirrelmail & Dovecot Date: Fri, 29 Aug 2003 03:17:51 +0200 User-Agent: KMail/1.5.3 References: <1040.192.168.0.2.1062110999.squirrel@192.168.0.1> In-Reply-To: <1040.192.168.0.2.1062110999.squirrel@192.168.0.1> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200308290317.51215.jens@freebsdforum.de> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2003 23:17:04 -0000 X-UID: 1485 Status: O On Friday 29 August 2003 00:49, Alex wrote: > What are the optimum IMAP settings for Squirelmail on dovecot? I am having > good luck with the Cyrus settings, but I would prefer to know the real > truth... According to http://dovecot.procontrol.fi/clients.html "Others" should be correct. Well, I haven't any problems with "Others". > Thanks > > -Alex Jens From matthias.andree@gmx.de Fri Aug 29 03:59:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8FC1E239AB; Fri, 29 Aug 2003 03:59:52 +0300 (EEST) Received: from m2a2.dyndns.org (pD951FDEA.dip.t-dialin.net [217.81.253.234]) by danu.procontrol.fi (Postfix) with ESMTP id 72854238D6 for ; Fri, 29 Aug 2003 03:59:20 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 9CF2293093; Fri, 29 Aug 2003 02:59:18 +0200 (CEST) To: Dovecot Mail List Subject: Re: [Dovecot] No localhost after reboot In-Reply-To: <20030828023849.GC537@kongemord.krig.net> (Bob Hall's message of "Wed, 27 Aug 2003 22:38:50 -0400") References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> <20030827174722.GB8961@kongemord.krig.net> <1062032250.1460.150.camel@hurina> <20030828023849.GC537@kongemord.krig.net> From: Matthias Andree Date: Fri, 29 Aug 2003 02:59:18 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 00:59:52 -0000 X-UID: 1486 Status: O "Bob Hall" writes: > On Thu, Aug 28, 2003 at 03:57:30AM +0300, Timo Sirainen wrote: >> On Wed, 2003-08-27 at 20:47, Bob Hall wrote: >> > imap_listen = * >> >> What does "netstat -na|grep 143" say with this? > > It says that the server is listening at that port and there are > users connected, but that's on the LAN interface. There's no > mention of 127.0.0.1. If I try to open a connection from the > command line, netstat reports SYN_SENT to 127.0.0.1:143, but > there's no response and no connection is established. Check your firewall settings and make sure your loopback device is up and configured and working. Check /etc/resolv.conf and DNS servers perhaps. SYN_SENT shouldn't happen for loopback connections. -- Matthias Andree From matthias.andree@gmx.de Fri Aug 29 04:02:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5D641239AB; Fri, 29 Aug 2003 04:02:29 +0300 (EEST) Received: from m2a2.dyndns.org (pD951FDEA.dip.t-dialin.net [217.81.253.234]) by danu.procontrol.fi (Postfix) with ESMTP id 0F10D23A22 for ; Fri, 29 Aug 2003 04:01:57 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 23B8393097; Fri, 29 Aug 2003 03:01:56 +0200 (CEST) To: "Alex" Subject: Re: [Dovecot] Squirrelmail & Dovecot In-Reply-To: <1040.192.168.0.2.1062110999.squirrel@192.168.0.1> (dovecot@alexolson.com's message of "Thu, 28 Aug 2003 22:49:59 -0000 (UTC)") References: <1040.192.168.0.2.1062110999.squirrel@192.168.0.1> From: Matthias Andree Date: Fri, 29 Aug 2003 03:01:56 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 01:02:29 -0000 X-UID: 1487 Status: O "Alex" writes: > What are the optimum IMAP settings for Squirelmail on dovecot? I am having > good luck with the Cyrus settings, but I would prefer to know the real > truth... I chose Courier and reset the namespace related stuff, worksforme[tm]. -- Matthias Andree From mda@discerning.com Fri Aug 29 08:25:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E250E239A9; Fri, 29 Aug 2003 08:25:15 +0300 (EEST) Received: from smtp02.mrf.mail.rcn.net (smtp02.mrf.mail.rcn.net [207.172.4.61]) by danu.procontrol.fi (Postfix) with ESMTP id 1D3DC2387F for ; Fri, 29 Aug 2003 08:24:43 +0300 (EEST) Received: from 64-121-192-147.c3-0.sfpo-ubr1.sfrn-sfpo.ca.cable.rcn.com ([64.121.192.147] helo=discerning.com) by smtp02.mrf.mail.rcn.net with esmtp (Exim 3.35 #4) id 19sbkX-00006d-00 for dovecot@procontrol.fi; Fri, 29 Aug 2003 01:24:41 -0400 Message-ID: <3F4EE37E.2090805@discerning.com> Date: Thu, 28 Aug 2003 22:24:14 -0700 From: Mark Anderson User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.5b) Gecko/20030727 Thunderbird/0.1 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] better body and text search? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 05:25:16 -0000 X-UID: 1488 Status: O (this is a resend, sorry if duplicate but my first post didn't get through). I was wondering what plans dovecot has for text and body search? This is one of those issues that *no* imap implementation ever seems to document :(. Not cyrus, courier, bincimap, or dovecot.... i speed-read some of the sources and found src/lib-mail/message-body-search.c After a quick scan, it seems: - it uses no text index at all, but does a linear search over the folder. - it searches only messages with content-type starting with "text/" or "message/" - it does no special parsing of "text/html", so tags and attributes would match - it appears to exclude any mime messages, since it skips "multipart/mixed" for example. - it does deal with content encoding and charset. There is a lucene-based text indexing utility for IMAP stores here: http://www.tropo.com/techno/java/lucene/imap.html But ideally there would be pluggable text indexing builtin.... -mda From rjhjr@cox.net Fri Aug 29 10:27:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6C8AD239BE; Fri, 29 Aug 2003 10:27:28 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 525AD239A9 for ; Fri, 29 Aug 2003 10:26:55 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030829072650.KTFU10977.lakemtao03.cox.net@kongemord.krig.net> for ; Fri, 29 Aug 2003 03:26:50 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Fri, 29 Aug 2003 03:26:53 -0400 From: "Bob Hall" Date: Fri, 29 Aug 2003 03:26:53 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] No localhost after reboot Message-ID: <20030829072653.GA413@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> <20030827174722.GB8961@kongemord.krig.net> <1062032250.1460.150.camel@hurina> <20030828023849.GC537@kongemord.krig.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 07:27:28 -0000 X-UID: 1489 Status: O Content-Length: 1405 On Fri, Aug 29, 2003 at 02:59:18AM +0200, Matthias Andree wrote: > "Bob Hall" writes: > > > On Thu, Aug 28, 2003 at 03:57:30AM +0300, Timo Sirainen wrote: > >> On Wed, 2003-08-27 at 20:47, Bob Hall wrote: > >> > imap_listen = * > >> > >> What does "netstat -na|grep 143" say with this? > > > > It says that the server is listening at that port and there are > > users connected, but that's on the LAN interface. There's no > > mention of 127.0.0.1. If I try to open a connection from the > > command line, netstat reports SYN_SENT to 127.0.0.1:143, but > > there's no response and no connection is established. > > Check your firewall settings and make sure your loopback device is up > and configured and working. Check /etc/resolv.conf and DNS servers > perhaps. > > SYN_SENT shouldn't happen for loopback connections. Hmm. How are you going to establish a TCP connection without a handshake? The interface doesn't make any difference. Besides, it has nothing to do with Dovecot. Dovecot is the intended recipient, not the sender. The LDAP server listens on localhost, and it currently has a connection established with dovecot-auth. Aside from Dovecot, NAT, DNS, Privoxy, and Squid all use localhost, so if the loopback wasn't working, I'd know about it pretty quickly. /etc/resolv.conf looks normal; it's got the search domains and the name server addresses. Bob Hall From mda@discerning.com Fri Aug 29 11:16:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9C22A239A9; Fri, 29 Aug 2003 11:16:35 +0300 (EEST) Received: from smtp02.mrf.mail.rcn.net (smtp02.mrf.mail.rcn.net [207.172.4.61]) by danu.procontrol.fi (Postfix) with ESMTP id 538E22384C for ; Fri, 29 Aug 2003 11:16:31 +0300 (EEST) Received: from 64-121-192-147.c3-0.sfpo-ubr1.sfrn-sfpo.ca.cable.rcn.com ([64.121.192.147] helo=discerning.com) by smtp02.mrf.mail.rcn.net with esmtp (Exim 3.35 #4) id 19sTJj-00069R-00 for dovecot@procontrol.fi; Thu, 28 Aug 2003 16:24:27 -0400 Message-ID: <3F4E64DE.4070603@discerning.com> Date: Thu, 28 Aug 2003 13:23:58 -0700 From: Mark Anderson User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.5b) Gecko/20030727 Thunderbird/0.1 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] better body and text search? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 08:16:36 -0000 X-UID: 1490 Status: O I was wondering what plans dovecot has for text and body search? This is one of those issues that *no* imap implementation ever seems to document :(. Not cyrus, courier, bincimap, or dovecot.... i speed-read some of the sources and found src/lib-mail/message-body-search.c After a quick scan, it seems: - it uses no text index at all, but does a linear search over the folder. - it searches only messages with content-type starting with "text/" or "message/" - it does no special parsing of "text/html", so tags and attributes would match - it appears to exclude any mime messages, since it skips "multipart/mixed" for example. - it does deal with content encoding and charset. There is a lucene-based text indexing utility for IMAP stores here: http://www.tropo.com/techno/java/lucene/imap.html But ideally there would be pluggable text indexing builtin.... -mda From tss@iki.fi Fri Aug 29 11:19:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5EC3F239A9; Fri, 29 Aug 2003 11:19:42 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 80D9223A57 for ; Fri, 29 Aug 2003 11:19:10 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 03B115C65485 for ; Fri, 29 Aug 2003 11:19:09 +0300 (EEST) Subject: Re: [Dovecot] Postgresql and Dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1062107262.13637.4.camel@mannix.spacedock.com> References: <1062106138.8206.21.camel@mannix.spacedock.com> <1062107262.13637.4.camel@mannix.spacedock.com> Content-Type: text/plain Message-Id: <1062145149.1458.356.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 29 Aug 2003 11:19:09 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 08:19:42 -0000 X-UID: 1491 Status: O On Fri, 2003-08-29 at 00:47, Michael Ducy wrote: > Sorry, it has been a long day. I noticed my message left something > out. When I start dovecot using "pgsql /etc/dovecot-pgsql.conf" for > auth_passdb and auth_userdb it dies with no error. dovecot process dies too? If there's no error, it means it crashes. Check if there's a core file in /usr/local/var/run/dovecot/? Or if not: gdb /usr/local/sbin/dovecot run -F then you should see where it crashes? "bt" gives backtrace. From tss@iki.fi Fri Aug 29 11:33:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B678B23A55; Fri, 29 Aug 2003 11:33:49 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BF85923A4E for ; Fri, 29 Aug 2003 11:33:47 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7A2F35C65485 for ; Fri, 29 Aug 2003 11:33:47 +0300 (EEST) Subject: Re: [Dovecot] better body and text search? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F4EE37E.2090805@discerning.com> References: <3F4EE37E.2090805@discerning.com> Content-Type: text/plain Message-Id: <1062146027.1458.372.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 29 Aug 2003 11:33:47 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 08:33:49 -0000 X-UID: 1492 Status: O Content-Length: 2636 On Fri, 2003-08-29 at 08:24, Mark Anderson wrote: > (this is a resend, sorry if duplicate but my first post didn't get through). Looks like it came just now :) > I was wondering what plans dovecot has for text and body search? > > This is one of those issues that *no* imap implementation ever > seems to document :(. > Not cyrus, courier, bincimap, or dovecot.... Well, because it's already pretty strictly documented in IMAP4 RFC. > i speed-read some of the sources and found src/lib-mail/message-body-search.c > After a quick scan, it seems: > - it uses no text index at all, but does a linear search over the folder. Only RFC-compatible index (you need _exact_ matching) would be what Cyrus squat does. And not many people seem to use it, so it seems like it's not worth the trouble either. I might try it some day though. One problem with Cyrus code was that it didn't have incremental updates. > - it searches only messages with content-type starting with "text/" or "message/" For now, yes. Makes it much faster :) > - it does no special parsing of "text/html", so tags and attributes would match I think doing that wouldn't be RFC-compatible.. > - it appears to exclude any mime messages, since it skips "multipart/mixed" for example. No, it shouldn't. It skips the multipart/mixed body itself (which doesn't really exist anyway), but not it's children. > - it does deal with content encoding and charset. But it doesn't do case-insensitive matching for non-ASCII characters. I'd need utf8_toupper() function.. > There is a lucene-based text indexing utility for IMAP stores here: > http://www.tropo.com/techno/java/lucene/imap.html I'm not really sure how that is supposed to be useful.. There's a few header fields which Dovecot also has in it's indexes. Then there's this "contents" string which looks like it's all the text data in the message? There's not much point in copying the whole mailbox data to index file. > But ideally there would be pluggable text indexing builtin.... Yes. - could optionally support scanning inside file attachments and use plugins to extract text out of them (word, excel, pdf, etc. etc.) - use a trie index for fast text searching, like cyrus squat? - Create our own extension: When searching with TEXT/BODY, return the message text surrounding the keywords just like web search engines do. like: SEARCH X-PRINT-MATCHES TEXT "hello" -> * SEARCH 1 "He said: Hello world!" 2 "Hello, I'm ...". This would be especially useful with the above attachment scanning. And a less strict search command extension would be useful as well.. From msabhnan@eng.utoledo.edu Fri Aug 29 15:13:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2632123A63; Fri, 29 Aug 2003 15:13:23 +0300 (EEST) Received: from green.eng.utoledo.edu (green.eng.utoledo.edu [131.183.18.5]) by danu.procontrol.fi (Postfix) with ESMTP id 67F20239B9 for ; Fri, 29 Aug 2003 15:13:19 +0300 (EEST) Received: from localhost (msabhnan@localhost)h7TCDG8x007415 for ; Fri, 29 Aug 2003 08:13:16 -0400 (EDT) Date: Fri, 29 Aug 2003 08:13:16 -0400 (EDT) From: maheshkumar sabhnani X-Sender: msabhnan@green.eng.utoledo.edu To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Filter-Version: 1.14 (green.eng.utoledo.edu) Subject: [Dovecot] Conf problems ?? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 12:13:23 -0000 X-UID: 1493 Status: O Hello, I am having problems with configuring dovecit. The imap directory was correctly made in ~/mail/.imap But I can't see any mail headers. My mbox path is ~/mail/incoming Currently I am trying to use "mbox:~/mail/:INBOX=~/mail/incoming" for configuration but it complains about missing value. Can someone send me more information on configuration directives especially mbox and INBOX. Early reply shall be appreciated. Regards, Mahesh From tss@iki.fi Fri Aug 29 16:15:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7B04623A89; Fri, 29 Aug 2003 16:15:45 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1C41823A88 for ; Fri, 29 Aug 2003 16:15:41 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id C045F5C65485 for ; Fri, 29 Aug 2003 16:15:40 +0300 (EEST) Subject: Re: [Dovecot] Conf problems ?? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1062162940.1455.376.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 29 Aug 2003 16:15:40 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 13:15:45 -0000 X-UID: 1494 Status: O On Fri, 2003-08-29 at 15:13, maheshkumar sabhnani wrote: > Currently I am trying to use "mbox:~/mail/:INBOX=~/mail/incoming" for > configuration but it complains about missing value. Can someone send me > more information on configuration directives especially mbox and INBOX. You didn't set "default_mail_env = " before the mbox:..? From michael@michaelandniki.com Fri Aug 29 17:00:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CEDED239D1; Fri, 29 Aug 2003 17:00:44 +0300 (EEST) Received: from mail.michaelandniki.com (node-402418ea.mdw.onnet.us.uu.net [64.36.24.234]) by danu.procontrol.fi (Postfix) with ESMTP id 315C223A5D for ; Fri, 29 Aug 2003 17:00:09 +0300 (EEST) Received: from [192.168.6.9] (unknown [12.32.94.66]) by mail.michaelandniki.com (Postfix) with ESMTP id 2BF13175BF for ; Fri, 29 Aug 2003 08:58:58 -0500 (CDT) Subject: Re: [Dovecot] Postgresql and Dovecot From: Michael Ducy To: dovecot@procontrol.fi In-Reply-To: <1062145149.1458.356.camel@hurina> References: <1062106138.8206.21.camel@mannix.spacedock.com> <1062107262.13637.4.camel@mannix.spacedock.com> <1062145149.1458.356.camel@hurina> Content-Type: text/plain Organization: Message-Id: <1062165612.17054.32.camel@mannix.spacedock.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 29 Aug 2003 09:00:12 -0500 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 14:00:44 -0000 X-UID: 1495 Status: O gdb says the program exits normally. However I have found the problem. In my dovecot-pgsql.conf file my user_query was written as user_query= SELECT .....; dovecot doesn't like that (and doesn't let me know that :) ) user_query = SELECT works. Thanks, Michael On Fri, 2003-08-29 at 03:19, Timo Sirainen wrote: > On Fri, 2003-08-29 at 00:47, Michael Ducy wrote: > > Sorry, it has been a long day. I noticed my message left something > > out. When I start dovecot using "pgsql /etc/dovecot-pgsql.conf" for > > auth_passdb and auth_userdb it dies with no error. > > dovecot process dies too? If there's no error, it means it crashes. > Check if there's a core file in /usr/local/var/run/dovecot/? Or if not: > > gdb /usr/local/sbin/dovecot > run -F > > then you should see where it crashes? "bt" gives backtrace. > From tss@iki.fi Fri Aug 29 17:14:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E7AE723A95; Fri, 29 Aug 2003 17:14:58 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 88B3223A90 for ; Fri, 29 Aug 2003 17:14:53 +0300 (EEST) Date: Fri, 29 Aug 2003 17:15:11 +0300 Subject: Re: [Dovecot] Postgresql and Dovecot Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <1062165612.17054.32.camel@mannix.spacedock.com> Message-Id: <33B92362-DA2B-11D7-803E-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 14:14:59 -0000 X-UID: 1496 Status: O On Friday, Aug 29, 2003, at 17:00 Europe/Helsinki, Michael Ducy wrote: > user_query= SELECT .....; OK, have to fix that. The space shouldn't be so important there. > dovecot doesn't like that (and doesn't let me know that :) ) Maybe you're just looking into wrong place, or configured logging wrong in some way? :) Aug 29 17:12:38 hurina dovecot: Dovecot starting up Aug 29 17:12:39 hurina dovecot-auth: Error in configuration file /usr/local/etc/dovecot-pgsql.conf line 81: Missing value Aug 29 17:12:39 hurina dovecot: Auth process died too early - shutting down Aug 29 17:12:39 hurina dovecot: child 11731 (auth) returned error 89 From msabhnan@eng.utoledo.edu Fri Aug 29 17:17:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E629B23A6B; Fri, 29 Aug 2003 17:17:54 +0300 (EEST) Received: from green.eng.utoledo.edu (green.eng.utoledo.edu [131.183.18.5]) by danu.procontrol.fi (Postfix) with ESMTP id D3834239BE for ; Fri, 29 Aug 2003 17:17:51 +0300 (EEST) Received: from NI101314 (NI101314.ni.utoledo.edu [131.183.23.107]) h7TEHjdq007762 for ; Fri, 29 Aug 2003 10:17:46 -0400 (EDT) From: "Maheshkumar Sabhnani" To: Date: Fri, 29 Aug 2003 10:17:45 -0400 Message-ID: <000001c36e38$5187e3f0$6b17b783@ni.utoledo.edu> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0001_01C36E16.CA7643F0" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.2627 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.00.3018.1300 X-Filter-Version: 1.14 (green.eng.utoledo.edu) Subject: [Dovecot] Custom flags. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 14:17:55 -0000 X-UID: 1497 Status: O Content-Length: 4835 This is a multi-part message in MIME format. ------=_NextPart_000_0001_01C36E16.CA7643F0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit How do I define custom flags? What are added features of IMAP apart from Online access and Hierarchy folders. I created a new folder and copied couple of messages from incoming file. Where is this new folder created? Also Microsoft Outlook still shows the messages in incoming as deleted. How do I refresh list to permanently delete the messages that I have already transferred to a different folder. Mahesh ------=_NextPart_000_0001_01C36E16.CA7643F0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

How do I define custom = flags? What are added features of IMAP apart from Online access and Hierarchy folders.

 

 

I created a new folder and = copied couple of messages from incoming file. Where is this new folder created? = Also Microsoft Outlook still shows the messages in incoming as deleted. How = do I refresh list to permanently delete the messages that I have already = transferred to a different folder.

 

Mahesh

------=_NextPart_000_0001_01C36E16.CA7643F0-- From tss@iki.fi Fri Aug 29 17:37:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 54CC423AA7; Fri, 29 Aug 2003 17:37:58 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7600C239F7 for ; Fri, 29 Aug 2003 17:37:26 +0300 (EEST) Date: Fri, 29 Aug 2003 17:37:43 +0300 Subject: Re: [Dovecot] Custom flags. Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Content-Transfer-Encoding: 7bit In-Reply-To: <000001c36e38$5187e3f0$6b17b783@ni.utoledo.edu> Message-Id: <59B4643D-DA2E-11D7-803E-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 14:37:58 -0000 X-UID: 1498 Status: O On Friday, Aug 29, 2003, at 17:17 Europe/Helsinki, Maheshkumar Sabhnani wrote: > How do I define custom flags? That depends on your IMAP client. Outlook and OE don't support them at all. Only few seem to support them actually. > What are added features of IMAP apart from Online access and > Hierarchy folders. To me the biggest benefit is being able to read the same mail from multiple computers. There's lots of smaller features, but they're not that important. > I created a new folder and copied couple of messages from incoming > file. Where is this new folder created? ~/mail/ directory. > Also Microsoft Outlook still shows the messages in incoming as > deleted. How do I refresh list to permanently delete the messages that > I have already transferred to a different folder. Use "expunge" command. I think it's somewhere in the menus. From michael@michaelandniki.com Fri Aug 29 18:19:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2572123AB2; Fri, 29 Aug 2003 18:19:52 +0300 (EEST) Received: from mail.michaelandniki.com (node-402418ea.mdw.onnet.us.uu.net [64.36.24.234]) by danu.procontrol.fi (Postfix) with ESMTP id 426E023A99 for ; Fri, 29 Aug 2003 18:19:49 +0300 (EEST) Received: from [192.168.6.9] (unknown [12.32.94.66]) by mail.michaelandniki.com (Postfix) with ESMTP id AB91A175BF for ; Fri, 29 Aug 2003 10:18:40 -0500 (CDT) Subject: Re: [Dovecot] Postgresql and Dovecot From: Michael Ducy To: dovecot@procontrol.fi In-Reply-To: <33B92362-DA2B-11D7-803E-000393CC2E90@iki.fi> References: <33B92362-DA2B-11D7-803E-000393CC2E90@iki.fi> Content-Type: text/plain Organization: Message-Id: <1062170385.17054.76.camel@mannix.spacedock.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 29 Aug 2003 10:19:45 -0500 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 15:19:52 -0000 X-UID: 1499 Status: O Content-Length: 1633 I didn't touch the logging settings, however I would be more than happy too. :) I didn't set a verboseness level in dovecot.conf. I am now putting informational messages into a file. Any other settings I should change? I have another question. I am authenticating against an existing database. Postfix drops mail in /var/spool/mail/%u . The existing database only has login (the username) and password. My user_query is: user_query = SELECT '/var/spool/mail'||login as mail, 89 AS uid, 89 AS gid FROM user_common WHERE login='%u'; I am getting : +OK dovecot ready. user username +OK pass password +OK Logged in. * BYE Internal login failure. Connection closed by foreign host. default_mail_env is set to: default_mail_env = mbox:/var/spool/mail/%u 89 is the uid and gid of the dovecot user which is what auth_user is set to. Any ideas on the "Internal login failure" failure? Thanks, Michael On Fri, 2003-08-29 at 09:15, Timo Sirainen wrote: > On Friday, Aug 29, 2003, at 17:00 Europe/Helsinki, Michael Ducy wrote: > > > user_query= SELECT .....; > > OK, have to fix that. The space shouldn't be so important there. > > > dovecot doesn't like that (and doesn't let me know that :) ) > > Maybe you're just looking into wrong place, or configured logging wrong > in some way? :) > > Aug 29 17:12:38 hurina dovecot: Dovecot starting up > Aug 29 17:12:39 hurina dovecot-auth: Error in configuration file > /usr/local/etc/dovecot-pgsql.conf line 81: Missing value > Aug 29 17:12:39 hurina dovecot: Auth process died too early - shutting > down > Aug 29 17:12:39 hurina dovecot: child 11731 (auth) returned error 89 From matthias.andree@gmx.de Fri Aug 29 18:55:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4EC4923A7B; Fri, 29 Aug 2003 18:55:23 +0300 (EEST) Received: from m2a2.dyndns.org (p5087763D.dip.t-dialin.net [80.135.118.61]) by danu.procontrol.fi (Postfix) with ESMTP id 2A6FC23A92 for ; Fri, 29 Aug 2003 18:54:51 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id D2033937AF; Fri, 29 Aug 2003 17:54:48 +0200 (CEST) To: Dovecot Mail List Subject: Re: [Dovecot] No localhost after reboot In-Reply-To: <20030829072653.GA413@kongemord.krig.net> (Bob Hall's message of "Fri, 29 Aug 2003 03:26:53 -0400") References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> <20030827174722.GB8961@kongemord.krig.net> <1062032250.1460.150.camel@hurina> <20030828023849.GC537@kongemord.krig.net> <20030829072653.GA413@kongemord.krig.net> From: Matthias Andree Date: Fri, 29 Aug 2003 17:54:48 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 15:55:23 -0000 X-UID: 1500 Status: O Content-Length: 1142 "Bob Hall" writes: >> SYN_SENT shouldn't happen for loopback connections. > > Hmm. How are you going to establish a TCP connection without a > handshake? Of course, SYN_SENT will be one state, but I find it intimidating that apparently all other services work but one on the same interface. There isn't really much that the application can do to prevent the kernel from returning ACK. Are you running a firewall? Check its stats to see where the packets are lost. Are you running BPF-based applications? Might one of these hijack^Wdetour the packets? > The interface doesn't make any difference. Besides, it has nothing to do > with Dovecot. Dovecot is the intended recipient, not the sender. Shouldn't matter, the connection is bidirectional, but the SYN|ACK-packet is not getting returned -- and on lo0, it's kernel replying to itself, so it must work unless something is in the way. Can you tcpdump port 143 on lo (or lo0)? Can you strace/truss/whichever the process listening on localhost's port 143 to see if it shows any other signs of life? -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95 From mda@discerning.com Fri Aug 29 19:12:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 146A123A62; Fri, 29 Aug 2003 19:12:40 +0300 (EEST) Received: from smtp02.mrf.mail.rcn.net (smtp02.mrf.mail.rcn.net [207.172.4.61]) by danu.procontrol.fi (Postfix) with ESMTP id 48FA523AB1 for ; Fri, 29 Aug 2003 19:12:07 +0300 (EEST) Received: from 64-121-192-147.c3-0.sfpo-ubr1.sfrn-sfpo.ca.cable.rcn.com ([64.121.192.147] helo=discerning.com) by smtp02.mrf.mail.rcn.net with esmtp (Exim 3.35 #4) id 19slpp-0000cA-00 for dovecot@procontrol.fi; Fri, 29 Aug 2003 12:10:49 -0400 Message-ID: <3F4F7AE6.8090809@discerning.com> Date: Fri, 29 Aug 2003 09:10:14 -0700 From: Mark Anderson User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.5b) Gecko/20030727 Thunderbird/0.1 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] better body and text search? References: <3F4EE37E.2090805@discerning.com> <1062146027.1458.372.camel@hurina> In-Reply-To: <1062146027.1458.372.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 16:12:40 -0000 X-UID: 1501 Status: O Content-Length: 3865 Timo Sirainen wrote: > On Fri, 2003-08-29 at 08:24, Mark Anderson wrote: > >>(this is a resend, sorry if duplicate but my first post didn't get through). > > > Looks like it came just now :) I think there might be a race condition regarding the mailman confirmation. I sent my post the instant that i got the confirmation message. Anyhow, not too important. >> >>This is one of those issues that *no* imap implementation ever >>seems to document :(. >>Not cyrus, courier, bincimap, or dovecot.... > > > Well, because it's already pretty strictly documented in IMAP4 RFC. Well, what it should do is in the RFC. How it is implemented is another matter; having text indexing is kind of a big implementation detail. >>i speed-read some of the sources and found src/lib-mail/message-body-search.c >>After a quick scan, it seems: >>- it uses no text index at all, but does a linear search over the folder. > > > Only RFC-compatible index (you need _exact_ matching) would be what > Cyrus squat does. And not many people seem to use it, so it seems like > it's not worth the trouble either. I might try it some day though. One > problem with Cyrus code was that it didn't have incremental updates. [aside: Understanding cyrus squat also requires source examination, it seems :(. i must say i find your code a lot more readable than cyrus. And of course uw-imap is impossible.] exact matching is fine for me. this feature is useful for using IMAP in front of large mailing list archives, for example. or those of us with INBOX folders containing every message we've ever received in the past 10 years :). quite a few email clients with local stores create text indexes (local storage either because on unix they have direct access to mailboxes, or local storage made from keeping copies of what is read). but those clients lose that feature when connecting to IMAP when configured to not make local copies. it makes a big difference in user experience to get back search results in subsecond time, versus having to wait a minute or more, which is my experience with every IMAP server i've tried on my larger stores. >>- it appears to exclude any mime messages, since it skips "multipart/mixed" for example. > > > No, it shouldn't. It skips the multipart/mixed body itself (which > doesn't really exist anyway), but not it's children. ah, i missed the loop in message_body_search_ctx(). it is not recursive, so it would deal only with one level of MIME nesting, but this would cover almost all MIME messages, for practical purposes. >>- it does deal with content encoding and charset. > > > But it doesn't do case-insensitive matching for non-ASCII characters. > I'd need utf8_toupper() function.. ah. probably more an issue for you guys on the other side of the pond :). > > >>There is a lucene-based text indexing utility for IMAP stores here: >>http://www.tropo.com/techno/java/lucene/imap.html > > > I'm not really sure how that is supposed to be useful.. There's a few > header fields which Dovecot also has in it's indexes. Then there's this > "contents" string which looks like it's all the text data in the > message? There's not much point in copying the whole mailbox data to > index file. well, for example a web-based email application might complement the IMAP server with that external text index, for search operations. what sort of header field indexing does dovecot have, if any? glancing at index-mail.c and mail-index.c it appears that: - there is no header field indexing, in the sense of hashing or database lookup. - the persistent "index" file per folder is mmap'd. it has a record per message, which contains a linked list of all headers in the message, and some summary information about the message. - to perform header search, it iterates through the headers in the mmap'd records for the folder. -mda From tss@iki.fi Fri Aug 29 19:31:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BC6C023AD0; Fri, 29 Aug 2003 19:31:27 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1DAFB23AB2 for ; Fri, 29 Aug 2003 19:31:26 +0300 (EEST) Date: Fri, 29 Aug 2003 19:31:42 +0300 Subject: Re: [Dovecot] better body and text search? Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F4F7AE6.8090809@discerning.com> Message-Id: <45B6601A-DA3E-11D7-803E-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 16:31:27 -0000 X-UID: 1502 Status: O Content-Length: 2954 On Friday, Aug 29, 2003, at 19:10 Europe/Helsinki, Mark Anderson wrote: > Well, what it should do is in the RFC. > How it is implemented is another matter; having text indexing is > kind of a big implementation detail. Yes, but the implementation can't really optimize it that much if it wants to stay RFC-compatible.. >> Only RFC-compatible index (you need _exact_ matching) would be what >> Cyrus squat does. And not many people seem to use it, so it seems like >> it's not worth the trouble either. I might try it some day though. One >> problem with Cyrus code was that it didn't have incremental updates. > > [aside: > Understanding cyrus squat also requires source examination, it seems > :(. I think the comment at the beginning of the squat.c (or something) was enough to understand it. It basically generates all possible combinations of letters up to 4 characters (IIRC) that are in the messages and stores a list of UIDs where they're found. It's quite a large file since each message has a lot of 4 letter combinations in it.. I'm not sure how much this would really help searching. Maybe enough to make it useful.. > it makes a big difference in user experience to get back search results > in subsecond time, versus having to wait a minute or more, which > is my experience with every IMAP server i've tried on my larger stores. It'd be much nicer if I was able to create the text indexes with binary trees. So that you could only search from the beginning of the word, not from the middle of it. But IMAP's search command doesn't allow that kind of indexes. > ah, i missed the loop in message_body_search_ctx(). > it is not recursive, so it would deal only with one level of MIME > nesting, but this would cover almost all MIME messages, for practical > purposes. Oh? I guess that's a bug then. > what sort of header field indexing does dovecot have, if any? There's ENVELOPE caching which contains several headers. CVS version has real header caching. It caches whatever headers you specifically ask with FETCH or SEARCH commands. > glancing at index-mail.c and mail-index.c it appears that: > - there is no header field indexing, in the sense of hashing or > database lookup. Right. That wouldn't be really useful for IMAP's searching since you have to be able to match substrings as well. It doesn't help much to be able to say fast which messages definitely match if you still have to check the others the slow way. > - the persistent "index" file per folder is mmap'd. > it has a record per message, which contains a linked list of all > headers Hmm. Not really a linked list. I'm not sure if you're talking about CVS or 0.99.10. I don't think .10 had linked lists at all. In CVS it's a linked list of "cache records" which may contain multiple cached fields including some headers. > - to perform header search, it iterates through the headers in the > mmap'd records > for the folder. Yep. From tss@iki.fi Fri Aug 29 19:34:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9D92023AD6; Fri, 29 Aug 2003 19:34:38 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1232523AD3 for ; Fri, 29 Aug 2003 19:34:37 +0300 (EEST) Date: Fri, 29 Aug 2003 19:34:53 +0300 Subject: Re: [Dovecot] Postgresql and Dovecot Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <1062170385.17054.76.camel@mannix.spacedock.com> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 16:34:38 -0000 X-UID: 1503 Status: O Content-Length: 1096 On Friday, Aug 29, 2003, at 18:19 Europe/Helsinki, Michael Ducy wrote: > I didn't touch the logging settings, however I would be more than happy > too. :) I didn't set a verboseness level in dovecot.conf. I am now > putting informational messages into a file. Any other settings I > should > change? No, and the verbosivity isn't really needed either. If you mean auth_verbose, it only says why some login failed (invalid password, no such user etc). > I have another question. I am authenticating against an existing > database. Postfix drops mail in /var/spool/mail/%u . The existing > database only has login (the username) and password. My user_query is: > > user_query = SELECT '/var/spool/mail'||login as mail, 89 AS uid, 89 AS > gid FROM user_common WHERE login='%u'; Shouldn't you have / after the /var/spool/mail? And it's not really needed anyway if it's the same as default_mail_env. And I think > * BYE Internal login failure. > > Any ideas on the "Internal login failure" failure? It's told in log file. If you don't see it, you really have some logging problem :) From alex@wankwood.com Fri Aug 29 22:18:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 30E3623A68; Fri, 29 Aug 2003 22:18:31 +0300 (EEST) Received: from net-srv-0001.bvrd.com (mail.bvrd.com [216.216.73.130]) by danu.procontrol.fi (Postfix) with SMTP id D10F623A59 for ; Fri, 29 Aug 2003 22:17:58 +0300 (EEST) Received: (qmail 31521 invoked from network); 29 Aug 2003 14:17:57 -0500 Received: from psn01.birdview.com (HELO net-srv-0001.bvrd.com) (192.168.254.2) by psn01.birdview.com with SMTP; 29 Aug 2003 14:17:57 -0500 Date: Fri, 29 Aug 2003 14:17:57 -0500 (CDT) From: Alex Howansky X-X-Sender: alex@net-srv-0001.bvrd.com To: dovecot@procontrol.fi Subject: Re: [Dovecot] Postgresql and Dovecot In-Reply-To: <1062170385.17054.76.camel@mannix.spacedock.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 19:18:31 -0000 X-UID: 1504 Status: O > I have another question. I am authenticating against an existing > database. Postfix drops mail in /var/spool/mail/%u . The existing > database only has login (the username) and password. My user_query is: > > user_query = SELECT '/var/spool/mail'||login as mail, 89 AS uid, 89 AS > gid FROM user_common WHERE login='%u'; I think you want a slash after /var/spool/mail, and select the mail directory field as "home", not "mail": user_query = SELECT '/var/spool/mail/'||login AS home, 89 AS uid, 89 AS gid FROM user_common WHERE login='%u'; -- Alex Howansky Wankwood Associates http://www.wankwood.com/ From rjhjr@cox.net Fri Aug 29 23:21:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BF76823A03; Fri, 29 Aug 2003 23:21:12 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id B4EB323A65 for ; Fri, 29 Aug 2003 23:20:39 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030829202038.TZWM419.lakemtao04.cox.net@kongemord.krig.net> for ; Fri, 29 Aug 2003 16:20:38 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Fri, 29 Aug 2003 16:20:37 -0400 From: "Bob Hall" Date: Fri, 29 Aug 2003 16:20:37 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] No localhost after reboot Message-ID: <20030829202036.GA7042@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> <20030827174722.GB8961@kongemord.krig.net> <1062032250.1460.150.camel@hurina> <20030828023849.GC537@kongemord.krig.net> <20030829072653.GA413@kongemord.krig.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 20:21:12 -0000 X-UID: 1505 Status: O Content-Length: 1029 I've been SIGHUPing Dovecot when I make changes in dovecot.conf. This seemed to work fine; I made changes to the imap_listen setting and Dovecot accepted them. However, I just reset imap_listen = * and used killall instead of SIGHUP, and restarted, and Dovecot is listening on localhost. Previously, Dovecot would listen on both the LAN interface and localhost if I set imap_listen = :143 but now it listens only on the specified socket. The reboot that changed Dovecot's behavior also changed my LDAP server. It was using CRYPT as the default without the --with-crypt flag. But after the reboot, I had to recompile OpenLADP with the --with-crypt flag. (The flag isn't mentioned in the instructions on the OpenLDAP site.) Maybe I shouldn't have swapped keyboards during the reboot. Or maybe the keyboard uses the wrong brand of pixie dust. Or maybe I need to hit it with a hammer. Or maybe the power company flushed out some fat electrons when they cleaned the tap brushes on the dynamos... Bob Hall From matthias.andree@gmx.de Sat Aug 30 01:14:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9BDB523A6D; Sat, 30 Aug 2003 01:14:29 +0300 (EEST) Received: from m2a2.dyndns.org (p5087763D.dip.t-dialin.net [80.135.118.61]) by danu.procontrol.fi (Postfix) with ESMTP id 04C9223A59 for ; Sat, 30 Aug 2003 01:14:26 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 316788FD7A; Sat, 30 Aug 2003 00:14:25 +0200 (CEST) To: Dovecot Mail List Subject: Re: [Dovecot] No localhost after reboot In-Reply-To: <20030829202036.GA7042@kongemord.krig.net> (Bob Hall's message of "Fri, 29 Aug 2003 16:20:37 -0400") References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> <20030827174722.GB8961@kongemord.krig.net> <1062032250.1460.150.camel@hurina> <20030828023849.GC537@kongemord.krig.net> <20030829072653.GA413@kongemord.krig.net> <20030829202036.GA7042@kongemord.krig.net> From: Matthias Andree Date: Sat, 30 Aug 2003 00:14:25 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 22:14:30 -0000 X-UID: 1506 Status: O Content-Length: 1054 "Bob Hall" writes: > I've been SIGHUPing Dovecot when I make changes in dovecot.conf. This > seemed to work fine; I made changes to the imap_listen setting and > Dovecot accepted them. However, I just reset > imap_listen = * > and used killall instead of SIGHUP, and restarted, and Dovecot is Don't do this on SysV (Solaris 8 has pkill instead) - killall kills EVERYTHING there. (used for shutting down the system). Anyways, can we please have a decent set of manual pages for dovecot before 1.0 that specifies what is re-read after SIGHUP and what needs a full restart? :-> > Maybe I shouldn't have swapped keyboards during the reboot. Or maybe > the keyboard uses the wrong brand of pixie dust. Or maybe I need to > hit it with a hammer. Or maybe the power company flushed out some > fat electrons when they cleaned the tap brushes on the dynamos... Maybe the current was the wrong color? ;-) (One Power Co here in Germany is called Yello Strom) -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95 From rjhjr@cox.net Sat Aug 30 01:54:21 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 45EE0239E9; Sat, 30 Aug 2003 01:54:21 +0300 (EEST) Received: from lakemtao02.cox.net (lakemtao02.cox.net [68.1.17.243]) by danu.procontrol.fi (Postfix) with ESMTP id A8333239BB for ; Sat, 30 Aug 2003 01:53:59 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao02.cox.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with SMTP id <20030829225356.ZEIT11854.lakemtao02.cox.net@kongemord.krig.net> for ; Fri, 29 Aug 2003 18:53:56 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Fri, 29 Aug 2003 18:53:58 -0400 From: "Bob Hall" Date: Fri, 29 Aug 2003 18:53:58 -0400 To: Dovecot Mail List Subject: Re: [Dovecot] No localhost after reboot Message-ID: <20030829225357.GA417@kongemord.krig.net> Mail-Followup-To: Dovecot Mail List References: <20030827041729.GB6024@kongemord.krig.net> <1061999002.1454.121.camel@hurina> <20030827174722.GB8961@kongemord.krig.net> <1062032250.1460.150.camel@hurina> <20030828023849.GC537@kongemord.krig.net> <20030829072653.GA413@kongemord.krig.net> <20030829202036.GA7042@kongemord.krig.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 22:54:21 -0000 X-UID: 1507 Status: O Content-Length: 1283 On Sat, Aug 30, 2003 at 12:14:25AM +0200, Matthias Andree wrote: > "Bob Hall" writes: > > > I've been SIGHUPing Dovecot when I make changes in dovecot.conf. This > > seemed to work fine; I made changes to the imap_listen setting and > > Dovecot accepted them. However, I just reset > > imap_listen = * > > and used killall instead of SIGHUP, and restarted, and Dovecot is > > Don't do this on SysV (Solaris 8 has pkill instead) - killall kills > EVERYTHING there. (used for shutting down the system). I suppose "kill " is more universal than "killall "? At any rate, use whatever sends the TERM signal. > Anyways, can we please have a decent set of manual pages for dovecot > before 1.0 that specifies what is re-read after SIGHUP and what needs a > full restart? :-> > > > Maybe I shouldn't have swapped keyboards during the reboot. Or maybe > > the keyboard uses the wrong brand of pixie dust. Or maybe I need to > > hit it with a hammer. Or maybe the power company flushed out some > > fat electrons when they cleaned the tap brushes on the dynamos... > > Maybe the current was the wrong color? ;-) > (One Power Co here in Germany is called Yello Strom) And what do they use to generate "yello strom"; starkbier? Bob Hall From emily@lib.utk.edu Fri Aug 29 22:06:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8492A23A6A; Fri, 29 Aug 2003 22:06:30 +0300 (EEST) Received: from aztec.lib.utk.edu (aztec.lib.utk.edu [160.36.192.52]) by danu.procontrol.fi (Postfix) with SMTP id 0B7B123A68 for ; Fri, 29 Aug 2003 22:05:58 +0300 (EEST) Received: (qmail 27484 invoked from network); 29 Aug 2003 19:05:51 -0000 Received: from harimtu.lib.utk.edu (HELO lib.utk.edu) (160.36.193.103) by aztec.lib.utk.edu with SMTP; 29 Aug 2003 19:05:51 -0000 Message-ID: <3F4FA415.2080609@lib.utk.edu> Date: Fri, 29 Aug 2003 15:05:57 -0400 From: Emily User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Sat, 30 Aug 2003 02:18:22 +0300 Subject: [Dovecot] converting from courier-imap X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 19:06:30 -0000 X-UID: 1508 Status: O Content-Length: 1513 Hello. I apologize if there is a simple answer to this question, but I haven't been able to figure it out. Our people use various clients (pine 4.50 with maildir patch, eudora, messenger, outlook, squirrelmail), and all of them work with courier-imap. But I've become very interested in dovecot after reading about it, so I'm trying it out on another server. The results are mixed. Strangely enough, squirrelmail 1.4.1 works wonderfully. For some reason, it duplicates Sent, Drafts, and Trash, but I deleted the duplicates and it was fine. Mozilla messenger is also fine, but with the same duplication of those special folders. Everything seems nice and fast. But some of our users still cling to pine, which works with courier-imap using these three lines in .pinerc: inbox-path={our.server.edu/ssl/novalidate-cert/user=emily}INBOX default-fcc={our.server.edu/ssl/novalidate-cert/user=emily}INBOX.Sent folder-collections="IMAP Folders" {our.server.edu/user=emily/ssl/novalidate-cert}INBOX.[] On the test server I'm using dovecot-0.99.10 compiled against openssl-0.9.7b in Redhat 9. This pine configuration worked in courier, but when I try pine with dovecot, I can't see any folders under "Folder Collection" other than those special three (Drafts, Sent, Trash). I'm sure there's just something I'm doing wrong, but I couldn't find anything in the dovecot list archives. I would appreciate any advice on what I'm doing wrong in getting pine to see the whole collection. Thanks, -- Emily From mreimer@vpop.net Sat Aug 30 02:16:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7786E239F7; Sat, 30 Aug 2003 02:16:32 +0300 (EEST) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 332E4239CE for ; Sat, 30 Aug 2003 02:15:58 +0300 (EEST) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id DCD673A6608 for ; Fri, 29 Aug 2003 16:15:52 -0700 (PDT) Message-ID: <3F4FDED8.3040906@vpop.net> Date: Fri, 29 Aug 2003 18:16:40 -0500 From: Matthew Reimer Organization: VPOP Technologies, Inc. User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.4) Gecko/20030701 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: multipart/mixed; boundary="------------000906090001020704090403" X-Mailman-Approved-At: Sat, 30 Aug 2003 02:18:22 +0300 Subject: [Dovecot] PATCH: mysql authentication X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 23:16:32 -0000 X-UID: 1509 Status: O Content-Length: 21714 This is a multi-part message in MIME format. --------------000906090001020704090403 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Here's a patch that implements mysql authentication. I started with the pgsql files and tweaked them to use mysql instead. It works for me, but there might be a couple of memory leaks. I'm welcome to suggestions on how to clean it up so it can be committed. Enjoy! Matt --------------000906090001020704090403 Content-Type: text/plain; name="dovecot-mysql.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dovecot-mysql.patch" diff -u -r --new-file work/dovecot-0.99.10/doc/dovecot-mysql.conf work.patched/dovecot-0.99.10/doc/dovecot-mysql.conf --- work/dovecot-0.99.10/doc/dovecot-mysql.conf Wed Dec 31 18:00:00 1969 +++ work.patched/dovecot-0.99.10/doc/dovecot-mysql.conf Fri Aug 15 13:43:05 2003 @@ -0,0 +1,70 @@ +# For the mysql passdb module, you'll need a database with a table that +# contains fields for at least the userid and password. If you want to +# use the user@domain syntax, you might want to have a separate domain +# field as well. +# +# If your users all have the same uig/gid, and have predictable home +# directories, you can use the static userdb module to generate the home +# dir based on the userid and domain. In this case, you won't need fields +# for home, uid, or gid in the database. +# +# If you prefer to use the mysql userdb module, you'll want to add fields +# for home, uid, and gid. Here is an example table: +# +# CREATE TABLE users ( +# userid VARCHAR(128) NOT NULL, +# password VARCHAR(64) NOT NULL, +# home VARCHAR(256) NOT NULL, +# uid INTEGER NOT NULL, +# gid INTEGER NOT NULL, +# active CHAR(1) DEFAULT 'Y' NOT NULL +# ); + +db_host = localhost +db_port = 3306 +#db_unix_socket = /var/tmp/mysql.sock +db = users +db_user = dovecot-db +db_passwd = opensesame +db_client_flags = 0 + +# Default password scheme. +# +# Currently supported schemes include PLAIN, PLAIN-MD5, DIGEST-MD5, and CRYPT. +# +#default_pass_scheme = PLAIN-MD5 + +# Query to retrieve the password. +# +# The query should return one row, one column. If more than one row or column +# is returned, authentication will automatically fail. +# +# Available substitutions: +# %u = entire userid +# %n = user part of user@domain +# %d = domain part of user@domain +# +# Example: +# password_query = SELECT password FROM users WHERE userid = '%n' AND domain = '%d' +# password_query = SELECT password FROM users WHERE userid = '%u' AND active = 'Y' +# +#password_query = SELECT password FROM users WHERE userid = '%u' + +# Query to retrieve the user information. +# +# The query must return only one row. The columns to return are: +# home - Home directory +# mail - MAIL environment +# system_user - System user name (for initgroups()) +# uid - System UID +# gid - System GID +# +# Either home or mail is required. uid and gid are required. If more than one +# row is returned or there's missing fields, login will automatically fail. +# +# Examples +# user_query = SELECT home, uid, gid FROM users WHERE userid = '%n' AND domain = '%d' +# user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u' +# user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u' +# +#user_query = SELECT home, uid, gid FROM users WHERE userid = '%u' diff -u -r --new-file work/dovecot-0.99.10/src/auth/Makefile.am work.patched/dovecot-0.99.10/src/auth/Makefile.am --- work/dovecot-0.99.10/src/auth/Makefile.am Sun May 18 07:26:28 2003 +++ work.patched/dovecot-0.99.10/src/auth/Makefile.am Fri Aug 15 16:47:21 2003 @@ -19,6 +19,7 @@ auth-module.c \ db-ldap.c \ db-pgsql.c \ + db-mysql.c \ db-passwd-file.c \ login-connection.c \ main.c \ @@ -38,6 +39,7 @@ passdb-shadow.c \ passdb-vpopmail.c \ passdb-pgsql.c \ + passdb-mysql.c \ password-scheme.c \ userdb.c \ userdb-ldap.c \ @@ -45,7 +47,8 @@ userdb-passwd-file.c \ userdb-static.c \ userdb-vpopmail.c \ - userdb-pgsql.c + userdb-pgsql.c \ + userdb-mysql.c noinst_HEADERS = \ auth-login-interface.h \ @@ -54,6 +57,7 @@ auth-module.h \ db-ldap.h \ db-pgsql.h \ + db-mysql.h \ db-passwd-file.h \ common.h \ login-connection.h \ diff -u -r --new-file work/dovecot-0.99.10/src/auth/db-mysql.c work.patched/dovecot-0.99.10/src/auth/db-mysql.c --- work/dovecot-0.99.10/src/auth/db-mysql.c Wed Dec 31 18:00:00 1969 +++ work.patched/dovecot-0.99.10/src/auth/db-mysql.c Fri Aug 22 17:56:44 2003 @@ -0,0 +1,181 @@ +/* Copyright (C) 2003 Alex Howansky, Timo Sirainen */ + +#include "config.h" +#undef HAVE_CONFIG_H + +#if defined(PASSDB_MYSQL) || defined(USERDB_MYSQL) + +#include "common.h" +#include "network.h" +#include "str.h" +#include "settings.h" +#include "db-mysql.h" + +#include +#include +#include + +#define DEF(type, name) { type, #name, offsetof(struct mysql_settings, name) } + +static struct setting_def setting_defs[] = { + DEF(SET_STR, db_host), + DEF(SET_STR, db_port), + DEF(SET_STR, db_unix_socket), + DEF(SET_STR, db), + DEF(SET_STR, db_user), + DEF(SET_STR, db_passwd), + DEF(SET_STR, db_client_flags), + DEF(SET_STR, password_query), + DEF(SET_STR, user_query), + DEF(SET_STR, default_pass_scheme) +}; + +struct mysql_settings default_mysql_settings = { + MEMBER(db_host) "localhost", + MEMBER(db_port) "0", + MEMBER(db_unix_socket) "/var/tmp/mysql.sock", + MEMBER(db) "email_accounts", + MEMBER(db_user) "dovecot", + MEMBER(db_passwd) "changeme", + MEMBER(db_client_flags) "0", + MEMBER(password_query) "SELECT password FROM users WHERE userid = '%u'", + MEMBER(user_query) "SELECT home, uid, gid FROM users WHERE userid = '%u'", + MEMBER(default_pass_scheme) "PLAIN-MD5" +}; + +static struct mysql_connection *mysql_connections = NULL; + +static int mysql_conn_open(struct mysql_connection *conn); +static void mysql_conn_close(struct mysql_connection *conn); + +void db_mysql_query(struct mysql_connection *conn, const char *query, + struct mysql_request *request) +{ + MYSQL_RES *res; + int failed; + + if (!conn->connected) { + if (!mysql_conn_open(conn)) { + request->callback(conn, request, NULL); + return; + } + } + + if (verbose_debug) + i_info("MYSQL: Performing query: %s", query); + + if (mysql_query(conn->mysql, query)) + i_info("MYSQL: Error executing query \"%s\": %s", query, + mysql_error(conn->mysql)); + + if ((res = mysql_store_result(conn->mysql))) + failed = FALSE; + else { + i_info("MYSQL: Error retrieving results: %s", + mysql_error(conn->mysql)); + failed = TRUE; + } + + request->callback(conn, request, failed ? NULL : res); + mysql_free_result(res); + i_free(request); +} + +static int mysql_conn_open(struct mysql_connection *conn) +{ + if (conn->connected) + return TRUE; + + if (conn->mysql == NULL) { + conn->mysql = mysql_init(NULL); + if (conn->mysql == NULL) { + i_error("MYSQL: mysql_init failed"); + return FALSE; + } + + if (!mysql_real_connect(conn->mysql, conn->set.db_host, + conn->set.db_user, conn->set.db_passwd, + conn->set.db, + atoi(conn->set.db_port), + conn->set.db_unix_socket, + strtoul(conn->set.db_client_flags, + NULL, 10))) { + i_error("MYSQL: Can't connect to database %s: %s", + conn->set.db, mysql_error(conn->mysql)); + return FALSE; + } + } + + conn->connected = TRUE; + return TRUE; +} + +static void mysql_conn_close(struct mysql_connection *conn) +{ + conn->connected = FALSE; + + if (conn->mysql != NULL) { + mysql_close(conn->mysql); + conn->mysql = NULL; + } +} + +static struct mysql_connection *mysql_conn_find(const char *config_path) +{ + struct mysql_connection *conn; + + for (conn = mysql_connections; conn != NULL; conn = conn->next) { + if (strcmp(conn->config_path, config_path) == 0) + return conn; + } + + return NULL; +} + +static const char *parse_setting(const char *key, const char *value, + void *context) +{ + struct mysql_connection *conn = context; + + return parse_setting_from_defs(conn->pool, setting_defs, + &conn->set, key, value); +} + +struct mysql_connection *db_mysql_init(const char *config_path) +{ + struct mysql_connection *conn; + pool_t pool; + + conn = mysql_conn_find(config_path); + if (conn != NULL) { + conn->refcount++; + return conn; + } + + pool = pool_alloconly_create("mysql_connection", 1024); + conn = p_new(pool, struct mysql_connection, 1); + conn->pool = pool; + + conn->refcount = 1; + + conn->config_path = p_strdup(pool, config_path); + conn->set = default_mysql_settings; + settings_read(config_path, parse_setting, conn); + + (void)mysql_conn_open(conn); + + conn->next = mysql_connections; + mysql_connections = conn; + return conn; +} + +void db_mysql_unref(struct mysql_connection *conn) +{ + if (--conn->refcount > 0) + return; + + mysql_conn_close(conn); + pool_unref(conn->pool); +} + +#endif diff -u -r --new-file work/dovecot-0.99.10/src/auth/db-mysql.h work.patched/dovecot-0.99.10/src/auth/db-mysql.h --- work/dovecot-0.99.10/src/auth/db-mysql.h Wed Dec 31 18:00:00 1969 +++ work.patched/dovecot-0.99.10/src/auth/db-mysql.h Fri Aug 15 13:40:56 2003 @@ -0,0 +1,51 @@ +#ifndef __DB_MYSQL_H +#define __DB_MYSQL_H + +#include + +struct mysql_connection; +struct mysql_request; + +typedef void mysql_query_callback_t(struct mysql_connection *conn, + struct mysql_request *request, + MYSQL_RES *res); + +struct mysql_settings { + const char *db_host; + const char *db_port; + const char *db_unix_socket; + const char *db; + const char *db_user; + const char *db_passwd; + const char *db_client_flags; + const char *password_query; + const char *user_query; + const char *default_pass_scheme; +}; + +struct mysql_connection { + struct mysql_connection *next; + + pool_t pool; + int refcount; + + char *config_path; + struct mysql_settings set; + + MYSQL *mysql; + + unsigned int connected:1; +}; + +struct mysql_request { + mysql_query_callback_t *callback; + void *context; +}; + +void db_mysql_query(struct mysql_connection *conn, const char *query, + struct mysql_request *request); + +struct mysql_connection *db_mysql_init(const char *config_path); +void db_mysql_unref(struct mysql_connection *conn); + +#endif diff -u -r --new-file work/dovecot-0.99.10/src/auth/master-connection.c work.patched/dovecot-0.99.10/src/auth/master-connection.c --- work/dovecot-0.99.10/src/auth/master-connection.c Mon May 26 10:27:13 2003 +++ work.patched/dovecot-0.99.10/src/auth/master-connection.c Fri Aug 22 17:56:18 2003 @@ -55,7 +55,7 @@ reply.virtual_user_idx = reply_add(buf, user->virtual_user); reply.mail_idx = reply_add(buf, user->mail); - p = strstr(user->home, "/./"); + p = user->home ? strstr(user->home, "/./") : NULL; if (p == NULL) { reply.home_idx = reply_add(buf, user->home); reply.chroot_idx = reply_add(buf, NULL); diff -u -r --new-file work/dovecot-0.99.10/src/auth/passdb-mysql.c work.patched/dovecot-0.99.10/src/auth/passdb-mysql.c --- work/dovecot-0.99.10/src/auth/passdb-mysql.c Wed Dec 31 18:00:00 1969 +++ work.patched/dovecot-0.99.10/src/auth/passdb-mysql.c Fri Aug 15 14:24:44 2003 @@ -0,0 +1,171 @@ +/* Copyright (C) 2003 Alex Howansky, Timo Sirainen */ + +#include "config.h" +#undef HAVE_CONFIG_H + +#ifdef PASSDB_MYSQL + +#include "common.h" +#include "str.h" +#include "strescape.h" +#include "var-expand.h" +#include "password-scheme.h" +#include "db-mysql.h" +#include "passdb.h" + +#include +#include +#include + +struct passdb_mysql_connection { + struct mysql_connection *conn; +}; + +struct passdb_mysql_request { + struct mysql_request request; + + enum passdb_credentials credentials; + union { + verify_plain_callback_t *verify_plain; + lookup_credentials_callback_t *lookup_credentials; + } callback; + + char password[1]; +}; + +static struct passdb_mysql_connection *passdb_mysql_conn; + +static void mysql_handle_request(struct mysql_connection *conn, + struct mysql_request *request, MYSQL_RES *res) +{ + struct passdb_mysql_request *mysql_request = + (struct passdb_mysql_request *) request; + struct auth_request *auth_request = request->context; + const char *user, *password, *scheme; + int ret = 0; + + user = auth_request->user; + password = NULL; + + if (res != NULL) { + if (mysql_num_rows(res) == 0) { + if (verbose) + i_info("mysql(%s): Unknown user", user); + } else if (mysql_num_rows(res) > 1) { + i_error("mysql(%s): Multiple matches for user", user); + } else if (mysql_num_fields(res) != 1) { + i_error("mysql(%s): Password query returned " + "more than one field", user); + } else { + MYSQL_ROW row; + + row = mysql_fetch_row(res); + if (row) + password = t_strdup(row[0]); /* XXX binary? */ + } + } + + scheme = password_get_scheme(&password); + if (scheme == NULL) { + scheme = conn->set.default_pass_scheme; + i_assert(scheme != NULL); + } + + if (mysql_request->credentials != -1) { + passdb_handle_credentials(mysql_request->credentials, + user, password, scheme, + mysql_request->callback.lookup_credentials, + auth_request); + return; + } + + /* verify plain */ + if (password == NULL) { + mysql_request->callback.verify_plain(PASSDB_RESULT_USER_UNKNOWN, + auth_request); + return; + } + + ret = password_verify(mysql_request->password, password, + scheme, user); + if (ret < 0) + i_error("mysql(%s): Unknown password scheme %s", user, scheme); + else if (ret == 0) { + if (verbose) + i_info("mysql(%s): Password mismatch", user); + } + + mysql_request->callback.verify_plain(ret > 0 ? PASSDB_RESULT_OK : + PASSDB_RESULT_PASSWORD_MISMATCH, + auth_request); +} + +static void mysql_lookup_pass(struct auth_request *auth_request, + struct mysql_request *mysql_request) +{ + struct mysql_connection *conn = passdb_mysql_conn->conn; + const char *query; + string_t *str; + + str = t_str_new(512); + var_expand(str, conn->set.password_query, + str_escape(auth_request->user), NULL); + query = str_c(str); + + mysql_request->callback = mysql_handle_request; + mysql_request->context = auth_request; + + db_mysql_query(conn, query, mysql_request); +} + +static void +mysql_verify_plain(struct auth_request *request, const char *password, + verify_plain_callback_t *callback) +{ + struct passdb_mysql_request *mysql_request; + + mysql_request = i_malloc(sizeof(struct passdb_mysql_request) + + strlen(password)); + mysql_request->credentials = -1; + mysql_request->callback.verify_plain = callback; + strcpy(mysql_request->password, password); + + mysql_lookup_pass(request, &mysql_request->request); +} + +static void mysql_lookup_credentials(struct auth_request *request, + enum passdb_credentials credentials, + lookup_credentials_callback_t *callback) +{ + struct passdb_mysql_request *mysql_request; + + mysql_request = i_new(struct passdb_mysql_request, 1); + mysql_request->credentials = credentials; + mysql_request->callback.lookup_credentials = callback; + + mysql_lookup_pass(request, &mysql_request->request); +} + +static void passdb_mysql_init(const char *args) +{ + struct mysql_connection *conn; + + passdb_mysql_conn = i_new(struct passdb_mysql_connection, 1); + passdb_mysql_conn->conn = conn = db_mysql_init(args); +} + +static void passdb_mysql_deinit(void) +{ + db_mysql_unref(passdb_mysql_conn->conn); + i_free(passdb_mysql_conn); +} + +struct passdb_module passdb_mysql = { + passdb_mysql_init, + passdb_mysql_deinit, + + mysql_verify_plain, + mysql_lookup_credentials +}; + +#endif diff -u -r --new-file work/dovecot-0.99.10/src/auth/passdb.c work.patched/dovecot-0.99.10/src/auth/passdb.c --- work/dovecot-0.99.10/src/auth/passdb.c Sun May 18 07:26:28 2003 +++ work.patched/dovecot-0.99.10/src/auth/passdb.c Fri Aug 15 11:39:31 2003 @@ -110,6 +110,10 @@ if (strcasecmp(name, "pgsql") == 0) passdb = &passdb_pgsql; #endif +#ifdef PASSDB_MYSQL + if (strcasecmp(name, "mysql") == 0) + passdb = &passdb_mysql; +#endif #ifdef HAVE_MODULES passdb_module = passdb != NULL ? NULL : auth_module_open(name); if (passdb_module != NULL) { diff -u -r --new-file work/dovecot-0.99.10/src/auth/passdb.h work.patched/dovecot-0.99.10/src/auth/passdb.h --- work/dovecot-0.99.10/src/auth/passdb.h Thu Mar 20 09:46:33 2003 +++ work.patched/dovecot-0.99.10/src/auth/passdb.h Fri Aug 15 16:45:43 2003 @@ -58,6 +58,7 @@ extern struct passdb_module passdb_vpopmail; extern struct passdb_module passdb_ldap; extern struct passdb_module passdb_pgsql; +extern struct passdb_module passdb_mysql; void passdb_init(void); void passdb_deinit(void); diff -u -r --new-file work/dovecot-0.99.10/src/auth/userdb-mysql.c work.patched/dovecot-0.99.10/src/auth/userdb-mysql.c --- work/dovecot-0.99.10/src/auth/userdb-mysql.c Wed Dec 31 18:00:00 1969 +++ work.patched/dovecot-0.99.10/src/auth/userdb-mysql.c Fri Aug 22 17:53:56 2003 @@ -0,0 +1,148 @@ +/* Copyright (C) 2003 Alex Howansky, Timo Sirainen */ + +#include "config.h" +#undef HAVE_CONFIG_H + +#ifdef USERDB_MYSQL + +#include "common.h" +#include "str.h" +#include "strescape.h" +#include "var-expand.h" +#include "db-mysql.h" +#include "userdb.h" + +#include +#include +#include + +struct userdb_mysql_connection { + struct mysql_connection *conn; +}; + +struct userdb_mysql_request { + struct mysql_request request; + userdb_callback_t *userdb_callback; + + char username[1]; /* variable width */ +}; + +static struct userdb_mysql_connection *userdb_mysql_conn; + +static int is_result_valid(MYSQL_RES *res) +{ + + if (res == NULL) { + i_error("MYSQL: Query failed"); + return FALSE; + } + + if (mysql_num_rows(res) == 0) { + if (verbose) + i_error("MYSQL: Authenticated user not found"); + return FALSE; + } + + /* XXX */ + if (mysql_num_fields(res) < 3) { + i_error("MYSQL: Not enough fields returned"); + return FALSE; + } +/* XXX + if (PQfnumber(res, "uid") == -1) { + i_error("MYSQL: User query did not return 'uid' field"); + return FALSE; + } + + if (PQfnumber(res, "gid") == -1) { + i_error("MYSQL: User query did not return 'gid' field"); + return FALSE; + } +*/ + + return TRUE; +} + +static const char *my_get_str(MYSQL_RES *res, MYSQL_ROW row, const char *field) +{ + int i, n_fields; + unsigned long *lengths; + MYSQL_FIELD *fields; + + n_fields = mysql_num_fields(res); + lengths = mysql_fetch_lengths(res); + fields = mysql_fetch_fields(res); + for (i = 0; i < n_fields; i++) + if (strcmp(field, fields[i].name) == 0) + return (const char *) lengths[i] == 0 ? + NULL : t_strdup(row[i]); + + return NULL; +} + +static void mysql_handle_request(struct mysql_connection *conn __attr_unused__, + struct mysql_request *request, MYSQL_RES *res) +{ + struct userdb_mysql_request *urequest = + (struct userdb_mysql_request *) request; + struct user_data user; + MYSQL_ROW row; + + if (res != NULL && is_result_valid(res) && + (row = mysql_fetch_row(res))) { + memset(&user, 0, sizeof(user)); + user.virtual_user = urequest->username; + user.system_user = my_get_str(res, row, "system_user"); + user.home = my_get_str(res, row, "home"); + user.mail = my_get_str(res, row, "mail"); + user.uid = atoi(my_get_str(res, row, "uid")); /* XXX leak */ + user.gid = atoi(my_get_str(res, row, "gid")); /* XXX leak */ + urequest->userdb_callback(&user, request->context); + } else { + urequest->userdb_callback(NULL, request->context); + } +} + +static void userdb_mysql_lookup(const char *user, userdb_callback_t *callback, + void *context) +{ + struct mysql_connection *conn = userdb_mysql_conn->conn; + struct userdb_mysql_request *request; + const char *query; + string_t *str; + + str = t_str_new(512); + var_expand(str, conn->set.user_query, str_escape(user), NULL); + query = str_c(str); + + request = i_malloc(sizeof(struct userdb_mysql_request) + strlen(user)); + request->request.callback = mysql_handle_request; + request->request.context = context; + request->userdb_callback = callback; + strcpy(request->username, user); + + db_mysql_query(conn, query, &request->request); +} + +static void userdb_mysql_init(const char *args) +{ + struct mysql_connection *conn; + + userdb_mysql_conn = i_new(struct userdb_mysql_connection, 1); + userdb_mysql_conn->conn = conn = db_mysql_init(args); +} + +static void userdb_mysql_deinit(void) +{ + db_mysql_unref(userdb_mysql_conn->conn); + i_free(userdb_mysql_conn); +} + +struct userdb_module userdb_mysql = { + userdb_mysql_init, + userdb_mysql_deinit, + + userdb_mysql_lookup +}; + +#endif diff -u -r --new-file work/dovecot-0.99.10/src/auth/userdb.c work.patched/dovecot-0.99.10/src/auth/userdb.c --- work/dovecot-0.99.10/src/auth/userdb.c Sun May 18 07:26:28 2003 +++ work.patched/dovecot-0.99.10/src/auth/userdb.c Fri Aug 22 13:07:21 2003 @@ -49,6 +49,10 @@ if (strcasecmp(name, "pgsql") == 0) userdb = &userdb_pgsql; #endif +#ifdef USERDB_MYSQL + if (strcasecmp(name, "mysql") == 0) + userdb = &userdb_mysql; +#endif #ifdef HAVE_MODULES userdb_module = userdb != NULL ? NULL : auth_module_open(name); if (userdb_module != NULL) { diff -u -r --new-file work/dovecot-0.99.10/src/auth/userdb.h work.patched/dovecot-0.99.10/src/auth/userdb.h --- work/dovecot-0.99.10/src/auth/userdb.h Sun May 18 07:26:28 2003 +++ work.patched/dovecot-0.99.10/src/auth/userdb.h Fri Aug 22 13:07:53 2003 @@ -29,6 +29,7 @@ extern struct userdb_module userdb_vpopmail; extern struct userdb_module userdb_ldap; extern struct userdb_module userdb_pgsql; +extern struct userdb_module userdb_mysql; void userdb_init(void); void userdb_deinit(void); --------------000906090001020704090403-- From tss@iki.fi Sat Aug 30 02:22:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 38D4723A66; Sat, 30 Aug 2003 02:22:55 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E68DD239CE for ; Sat, 30 Aug 2003 02:22:21 +0300 (EEST) Date: Sat, 30 Aug 2003 02:22:37 +0300 Subject: Re: [Dovecot] No localhost after reboot Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot Mail List Content-Transfer-Encoding: 7bit In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 23:22:55 -0000 X-UID: 1510 Status: O On Saturday, Aug 30, 2003, at 01:14 Europe/Helsinki, Matthias Andree wrote: > Anyways, can we please have a decent set of manual pages for dovecot > before 1.0 that specifies what is re-read after SIGHUP and what needs a > full restart? :-> From TODO: - bugs - SIGHUP didn't update imap_listen. this is a bit annoying to fix though, since new listen() may fail for a few times because login processes may not die immediately.. - SIGHUP doesn't update log file location. From tss@iki.fi Sat Aug 30 02:25:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C7E1323A67; Sat, 30 Aug 2003 02:25:10 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 338CC239CE; Sat, 30 Aug 2003 02:25:09 +0300 (EEST) Date: Sat, 30 Aug 2003 02:25:25 +0300 Subject: Re: [Dovecot] converting from courier-imap Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: Emily From: Timo Sirainen In-Reply-To: <3F4FA415.2080609@lib.utk.edu> Message-Id: <114A74D5-DA78-11D7-803E-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) X-Spam-Status: No, hits=-5.8 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, RCVD_IN_OSIRUSOFT_COM,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 23:25:10 -0000 X-UID: 1511 Status: O On Friday, Aug 29, 2003, at 22:05 Europe/Helsinki, Emily wrote: > This pine configuration worked in courier, but when I try pine with > dovecot, I can't see any folders under "Folder Collection" other than > those special three (Drafts, Sent, Trash). I'm sure there's just > something I'm doing wrong, but I couldn't find anything in the dovecot > list archives. I would appreciate any advice on what I'm doing wrong > in getting pine to see the whole collection. It's about IMAP namespaces. With Courier, you have everything under INBOX. With Dovecot everything is in the root along INBOX. The fix would be to set the "IMAP folder prefix" or whatever it's called in clients to empty instead of "INBOX." From tss@iki.fi Sat Aug 30 02:34:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3D2E923A67; Sat, 30 Aug 2003 02:34:42 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A11B823A5B for ; Sat, 30 Aug 2003 02:34:40 +0300 (EEST) Date: Sat, 30 Aug 2003 02:34:56 +0300 Subject: Re: [Dovecot] PATCH: mysql authentication Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F4FDED8.3040906@vpop.net> Message-Id: <658D44CA-DA79-11D7-803E-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 23:34:42 -0000 X-UID: 1512 Status: O Content-Length: 1095 On Saturday, Aug 30, 2003, at 02:16 Europe/Helsinki, Matthew Reimer wrote: > Here's a patch that implements mysql authentication. I started with > the pgsql files and tweaked them to use mysql instead. It works for > me, but there might be a couple of memory leaks. I'm welcome to > suggestions on how to clean it up so it can be committed. Thank you. I'll look at it more closely later, but it looked fine with a quick look. It would be nice to be able to use asynchronous database lookups. I'm not sure how easy that is with MySQL, of if it's possible at all. With PostgreSQL it looked annoyingly difficult so I haven't done it yet. Synchronous calls anyway mean that there's only one SQL statement executing at a time and that may slow down the authentication if there's a _lot_ of users logging in constantly. If that's a problem, growing auth_count should help at least some. It specifies the number of auth processes that respond to the authentication queries. And some day I'll probably move the sql stuff into separate lib-sql and have only a single sql authenticator.. From lsa@business.auc.dk Sat Aug 30 20:17:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D7995239AC; Sat, 30 Aug 2003 20:17:22 +0300 (EEST) Received: from haddock.business.auc.dk (haddock.business.auc.dk [130.225.62.11]) by danu.procontrol.fi (Postfix) with ESMTP id C5E3523A25 for ; Sat, 30 Aug 2003 20:16:48 +0300 (EEST) Received: from localhost (basilosaurus.business.auc.dk [130.225.62.171]) by haddock.business.auc.dk (Postfix) with ESMTP id 8E1A24B05; Sat, 30 Aug 2003 19:16:08 +0200 (MET DST) Received: from haddock.business.auc.dk ([130.225.62.11]) by localhost (basilosaurus [130.225.62.171]) (amavisd-new, port 10024) with LMTP id 11172-01-32; Sat, 30 Aug 2003 19:16:03 +0200 (CEST) Received: from codfish.business.auc.dk (codfish.business.auc.dk [130.225.62.177]) by haddock.business.auc.dk (Postfix) with ESMTP id 588F94B03; Sat, 30 Aug 2003 19:16:08 +0200 (MET DST) Received: by codfish.business.auc.dk (Postfix, from userid 135) id 95C7515040D; Sat, 30 Aug 2003 13:16:46 -0400 (EDT) Date: Sat, 30 Aug 2003 19:16:46 +0200 From: Lars Anderson To: Grahame Bowland Subject: Re: [Dovecot] conversion to maildir Message-ID: <20030830171646.GA8820@business.auc.dk> References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> <3F4BBB43.50409@harvee.org> <1061928756.1459.19.camel@hurina> <1062062777.32020.51.camel@typhaon.ucs.uwa.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1062062777.32020.51.camel@typhaon.ucs.uwa.edu.au> Organization: Department of Business Studies - Aalborg University User-Agent: Mutt/1.5.4i X-Virus-Scanned: by amavisd-new at business.auc.dk cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Aug 2003 17:17:23 -0000 X-UID: 1513 Status: O On Thu, Aug 28, 2003 at 17:26:17, Grahame Bowland wrote: Hi Grahame, > > By the way, I converted over UWA's student email server to dovecot from > UW-IMAP and cucipop last night. Relatively few problems, which I've now > fixed with some tweaks to the config. The only outstanding problem is > these assertions I keep getting in the logs: > Aug 28 17:03:51 tartarus imap(mpienaar): file mbox-rewrite.c: line 429 > (mbox_write_header): assertion failed: (hdr_parsed_size.physical_size == > hdr_size) > We are also considering leaving UW-IMAP in favour of dovecot, I would be very gratefull if you would care to share your tweaks to the config with us? Best wishes Lars -- Lars Anderson mailto:lsa@business.auc.dk Department of Business Studies http://www.business.auc.dk/~lsa/ Aalborg University Voice: +45 96358225, Fax: +45 98153505 Denmark Office: Fib4-117 From skvidal@phy.duke.edu Sat Aug 30 20:34:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 26BD723A8D; Sat, 30 Aug 2003 20:34:09 +0300 (EEST) Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by danu.procontrol.fi (Postfix) with ESMTP id 2B417239BB for ; Sat, 30 Aug 2003 20:33:36 +0300 (EEST) Received: from opus.phy.duke.edu (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id 42766A77CD; Sat, 30 Aug 2003 13:33:32 -0400 (EDT) Subject: Re: [Dovecot] conversion to maildir From: seth vidal To: Lars Anderson In-Reply-To: <20030830171646.GA8820@business.auc.dk> References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> <3F4BBB43.50409@harvee.org> <1061928756.1459.19.camel@hurina> <1062062777.32020.51.camel@typhaon.ucs.uwa.edu.au> <20030830171646.GA8820@business.auc.dk> Content-Type: text/plain Message-Id: <1062264808.3837.0.camel@opus> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.3 (1.4.3-1.duke.1) Date: 30 Aug 2003 13:33:28 -0400 Content-Transfer-Encoding: 7bit cc: Grahame Bowland cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Aug 2003 17:34:09 -0000 X-UID: 1514 Status: O > We are also considering leaving UW-IMAP in favour of dovecot, I > would be very gratefull if you would care to share your tweaks to the > config with us? At the risk of sounding too ridiculous: ditto, I'd like to see those tweaks too. -sv From cras@irccrew.org Sat Aug 30 21:46:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BB43B239D2; Sat, 30 Aug 2003 21:46:25 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 05E9C23AA2 for ; Sat, 30 Aug 2003 21:45:54 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id DD91F2E030; Sat, 30 Aug 2003 21:45:53 +0300 (EEST) Date: Sat, 30 Aug 2003 21:45:53 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] conversion to maildir Message-ID: <20030830184553.GA15598@irccrew.org> References: <3F4B9601.3070300@harvee.org> <1061925515.1455.10.camel@hurina> <3F4BBB43.50409@harvee.org> <1061928756.1459.19.camel@hurina> <1062062777.32020.51.camel@typhaon.ucs.uwa.edu.au> <20030830171646.GA8820@business.auc.dk> <1062264808.3837.0.camel@opus> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <1062264808.3837.0.camel@opus> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Aug 2003 18:46:25 -0000 X-UID: 1515 Status: O On Sat, Aug 30, 2003 at 01:33:28PM -0400, seth vidal wrote: > > > We are also considering leaving UW-IMAP in favour of dovecot, I > > would be very gratefull if you would care to share your tweaks to the > > config with us? > > At the risk of sounding too ridiculous: > > ditto, I'd like to see those tweaks too. yea, me too ;) there shouldn't be much tweaks needed really. Just set the default_mail_env and mbox_locks correctly. If you want to have backwards compatibility for clients so that their ~/mail and ~user/mail prefixes still work, set full_filesystem_access = yes. From esj@harvee.org Mon Sep 1 00:54:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0A8A5239B0; Mon, 1 Sep 2003 00:54:47 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id C416923997 for ; Mon, 1 Sep 2003 00:54:13 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h7VLsAiE030877 for ; Sun, 31 Aug 2003 17:54:11 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Sun, 31 Aug 2003 17:54:08 -0400 Message-ID: <3F526E05.5000700@harvee.org> Date: Sun, 31 Aug 2003 17:52:05 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Mail List X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030831:dovecot@procontrol.fi:1e5af048fa4eda8f Subject: [Dovecot] observations about delays X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 Aug 2003 21:54:47 -0000 X-UID: 1516 Status: O Content-Length: 1965 I've tried two imap clients (mahogany and Mozilla) and they both have strange delays and weird failures. As a reminder, I am using mbox format mailboxes on the server and client side filtering of messages from the inbox. In both cases when the client fetches messages from the inbox and starts redistributing them, CPU utilization on the imap server goes to around 40 percent for Mozilla and around 90 percent for mahogany. There are long delays on the order of two minutes when filtering messages. or 30 to 50 seconds when opening a mailbox. Other than the performance problems, Mozilla is relatively well-behaved. Mahogany on the other hand is a bit more rough and (not) ready. It uses c-client for its imap code and during the filter driven message redistribution process, it all of a sudden started started complaining about unexpected EOF and I found one corrupted message: on 31/8/03 7:36 pm, Morten Christensen at ipcop-d@indbakke.dk wrote: >> These bugs might keep many people from trying a new alpha with >> interesting improvements. >> >> A more detailed help for fixing them after install is needed. OK, I'll have a From esj@harvee.org Sun Aug 31 16:01:21 2003 Return-Path: Received: from red.harvee.home (red [192.168.25.1] (may be forged)) by harvee.org (8.12.8/8.12.8) with ESMTP id h7VK1KiE029762 for ; Sun, 31 Aug 2003 16:01:20 -0400 Received: from sc8-sf-list2.sourceforge.net (lists.sourceforge.net [66.35.250.206]) by red.harvee.home (8.11.6/8.11.6) with ESMTP id h7VK1I111902 for ; Sun, 31 Aug 2003 16:01:19 -0400 Received: from sc8-sf-list1-b.sourceforge.net ([10.3.1.13] helo=sc8-sf-list1.sourceforge.net) I had read this message before it was filtered and moved to the right mailbox. It was complete then. Now it's not so happy. How can I gather more data to make it possible to debug these problems. ---eric From Nicolas.Stransky@crans.org Mon Sep 1 10:34:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 68EC123AEC; Mon, 1 Sep 2003 10:34:40 +0300 (EEST) Received: from aster.neo-lan.net (vaugirard-3-81-57-244-52.fbx.proxad.net [81.57.244.52]) by danu.procontrol.fi (Postfix) with ESMTP id 8DF91239EA for ; Mon, 1 Sep 2003 10:34:08 +0300 (EEST) Received: from crans.org (aneto.local.lan [192.168.0.2]) by aster.neo-lan.net (Postfix) with ESMTP id D95AE1A37C for ; Mon, 1 Sep 2003 09:34:06 +0200 (CEST) Message-ID: <3F52F677.9070805@crans.org> Date: Mon, 01 Sep 2003 09:34:15 +0200 From: Nicolas STRANSKY Organization: CRANS Inc. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030827 Debian/1.4-3 X-Accept-Language: fr, fr-fr, en MIME-Version: 1.0 To: dovecot@procontrol.fi X-Enigmail-Version: 0.76.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Mon, 01 Sep 2003 15:03:36 +0300 Subject: [Dovecot] Crash when searching messages X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2003 07:34:40 -0000 X-UID: 1517 Status: O Hi, I've been encountering a crash when trying to use the "Search messages" function with mozilla on a newly indexed/subscribed mailbox. I tryed to search something in "To or CC" and got the following : Sep 1 09:07:13 aster imap(nico): file message-address.c: line 255 (message_address_write): assertion failed: (addr->domain != NULL) Sep 1 09:07:13 aster dovecot: child 15674 (imap) killed with signal 6 In addition, mozilla gives the following message : "Server mail.neo-lan.net has disconnected. The server may have gone down or there may be a network problem" and the search fails. But there was no problem when doing other searches. After trying several different types of searches, the initial one (on TO or CC) worked fine, but the crash is reproducible on an other newly subscribed mbox. -- Nico Si cela fonctionne, c'est obsolète. Marshall McLuhan From tss@iki.fi Mon Sep 1 15:07:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 065FA239E7; Mon, 1 Sep 2003 15:07:47 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 171C8239D3 for ; Mon, 1 Sep 2003 15:07:14 +0300 (EEST) Date: Mon, 1 Sep 2003 15:07:33 +0300 Subject: Re: [Dovecot] observations about delays Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F526E05.5000700@harvee.org> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2003 12:07:47 -0000 X-UID: 1518 Status: O On Monday, Sep 1, 2003, at 00:52 Europe/Helsinki, Eric S. Johansson wrote: > In both cases when the client fetches messages from the inbox and > starts redistributing them, CPU utilization on the imap server goes to > around 40 percent for Mozilla and around 90 percent for mahogany. > There are long delays on the order of two minutes when filtering > messages. or 30 to 50 seconds when opening a mailbox. Check what Dovecot is doing at the time. Use rawlog (or network sniffer) and strace. > Other than the performance problems, Mozilla is relatively > well-behaved. Mahogany on the other hand is a bit more rough and (not) > ready. It uses c-client for its imap code and during the filter > driven message redistribution process, it all of a sudden started > started complaining about unexpected EOF and I found one corrupted > message: Humm.. If it copies a message from a mailbox to itself, that could break mbox, or at least complain about some errors.. Could it be that? From tss@iki.fi Mon Sep 1 15:09:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7B43F239D3; Mon, 1 Sep 2003 15:09:00 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8662723B03 for ; Mon, 1 Sep 2003 15:08:28 +0300 (EEST) Date: Mon, 1 Sep 2003 15:08:48 +0300 Subject: Re: [Dovecot] Crash when searching messages Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F52F677.9070805@crans.org> Message-Id: <0AF478B8-DC75-11D7-803E-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2003 12:09:00 -0000 X-UID: 1519 Status: O On Monday, Sep 1, 2003, at 10:34 Europe/Helsinki, Nicolas STRANSKY wrote: > I've been encountering a crash when trying to use the "Search messages" > function with mozilla on a newly indexed/subscribed mailbox. I tryed to > search something in "To or CC" and got the following : See the patch in Dovecot's news web page. From esj@harvee.org Mon Sep 1 16:20:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C45E523B10; Mon, 1 Sep 2003 16:20:45 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 9816D23B0E for ; Mon, 1 Sep 2003 16:20:12 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h81DK8iE008665; Mon, 1 Sep 2003 09:20:08 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Mon, 1 Sep 2003 09:19:58 -0400 Message-ID: <3F534704.7080905@harvee.org> Date: Mon, 01 Sep 2003 09:17:56 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] observations about delays References: In-Reply-To: X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030901:tss@iki.fi:740d76c7edf01cb4 X-Camram: stamp; 0:030901:dovecot@procontrol.fi:e3ba06876755327a cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2003 13:20:45 -0000 X-UID: 1520 Status: O Timo Sirainen explained: > On Monday, Sep 1, 2003, at 00:52 Europe/Helsinki, Eric S. Johansson wrote: > >> In both cases when the client fetches messages from the inbox and >> starts redistributing them, CPU utilization on the imap server goes to >> around 40 percent for Mozilla and around 90 percent for mahogany. >> There are long delays on the order of two minutes when filtering >> messages. or 30 to 50 seconds when opening a mailbox. > > > Check what Dovecot is doing at the time. Use rawlog (or network sniffer) > and strace. will do. should I be using the latest from cvs or from 99.10 like I have been? > > Humm.. If it copies a message from a mailbox to itself, that could break > mbox, or at least complain about some errors.. Could it be that? I don't believe so. The mahogany filters were under construction to meet my needs here. I am looking forward to server side filtering because I am getting rather tired of replicating 100+ filters every time I change clients. From tweek@jesus.ch Mon Sep 1 20:57:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4077323A0B; Mon, 1 Sep 2003 20:57:37 +0300 (EEST) Received: from mx1.init7.net (mx1.init7.net [213.144.129.5]) by danu.procontrol.fi (Postfix) with ESMTP id 48739239EA for ; Mon, 1 Sep 2003 20:57:05 +0300 (EEST) Received: from jesus.ch (johannes.livenet.ch [213.144.148.4]) by mx1.init7.net (8.11.6/8.11.6) with ESMTP id h81Hv3P17665 for ; Mon, 1 Sep 2003 19:57:04 +0200 From: "Tweek" To: dovecot@procontrol.fi Date: Mon, 1 Sep 2003 18:57:03 +0100 Message-Id: <20030901175630.M38510@jesus.ch> X-Mailer: Livenet WebMail 2.01 20030512 X-OriginatingIP: 62.245.162.109 (tweek) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Subject: [Dovecot] How do i load a configfile ? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2003 17:57:37 -0000 X-UID: 1521 Status: O hello, this may be a very stupid question but how do i load a config file? i didn't find the docs part which explains how to start the imapserver at all. i have put this in my xinetd.conf: service imap { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/local/dovecot/imap flags = IPv4 } and the server is running, but thats all. as u can see i have installed the server in /usr/local/dovecot and i have put the config file in /etc, /usr/local/etc and the programmdir itself - nothing worked. what commands must i write in the xinetd.conf to get the server running ? thanks -- E-Mail by http://www.jesus.ch/ and http://www.livenet.ch/ News, Magazin, Events, Forum, Chat, Free E-Mail, Dialin, Jobs, Top-Newsletter From tss@iki.fi Mon Sep 1 21:07:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 669DA23A12; Mon, 1 Sep 2003 21:07:44 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 80A7023A0B for ; Mon, 1 Sep 2003 21:07:12 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 42C355C65485 for ; Mon, 1 Sep 2003 21:07:12 +0300 (EEST) Subject: Re: [Dovecot] How do i load a configfile ? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030901175630.M38510@jesus.ch> References: <20030901175630.M38510@jesus.ch> Content-Type: text/plain Message-Id: <1062439631.1457.480.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 01 Sep 2003 21:07:11 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2003 18:07:44 -0000 X-UID: 1522 Status: O On Mon, 2003-09-01 at 20:57, Tweek wrote: > hello, > > this may be a very stupid question but how do i load a config file? > i didn't find the docs part which explains how to start the imapserver at > all. There's two possibilities: Run the "dovecot" binary which does everything itself, or start imap-login from inetd. > server = /usr/local/dovecot/imap So imap-login here :) From tweek@jesus.ch Mon Sep 1 21:54:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8C54B23AEB; Mon, 1 Sep 2003 21:54:28 +0300 (EEST) Received: from mx1.init7.net (mx1.init7.net [213.144.129.5]) by danu.procontrol.fi (Postfix) with ESMTP id 4F65823A12 for ; Mon, 1 Sep 2003 21:53:56 +0300 (EEST) Received: from jesus.ch (johannes.livenet.ch [213.144.148.4]) by mx1.init7.net (8.11.6/8.11.6) with ESMTP id h81IrsP22138 for ; Mon, 1 Sep 2003 20:53:55 +0200 From: "Tweek" To: dovecot@procontrol.fi Subject: Re: [Dovecot] How do i load a configfile ? Date: Mon, 1 Sep 2003 19:53:54 +0100 Message-Id: <20030901185244.M51934@jesus.ch> X-Mailer: Livenet WebMail 2.01 20030512 X-OriginatingIP: 62.245.162.109 (tweek) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2003 18:54:28 -0000 X-UID: 1523 Status: O >which does everything itself without loading the config file it dosen't do anything - i can connect to the server but thats all. how should the server know where i store my mboxes etc. i must load the config file - but how ? ----- Original Message ----- From: "Timo Sirainen" To: Sent: Monday, September 01, 2003 8:07 PM Subject: Re: [Dovecot] How do i load a configfile ? > On Mon, 2003-09-01 at 20:57, Tweek wrote: > > hello, > > > > this may be a very stupid question but how do i load a config file? > > i didn't find the docs part which explains how to start the imapserver at > > all. > > There's two possibilities: Run the "dovecot" binary which does > everything itself, or start imap-login from inetd. > > > server = /usr/local/dovecot/imap > > So imap-login here :) > > -- E-Mail by http://www.jesus.ch/ and http://www.livenet.ch/ News, Magazin, Events, Forum, Chat, Free E-Mail, Dialin, Jobs, Top-Newsletter From tss@iki.fi Mon Sep 1 22:10:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 624D7239CB; Mon, 1 Sep 2003 22:10:07 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9024723A11 for ; Mon, 1 Sep 2003 22:09:35 +0300 (EEST) Date: Mon, 1 Sep 2003 22:09:52 +0300 Subject: Re: [Dovecot] How do i load a configfile ? Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030901185244.M51934@jesus.ch> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2003 19:10:07 -0000 X-UID: 1524 Status: O On Monday, Sep 1, 2003, at 21:53 Europe/Helsinki, Tweek wrote: >> which does everything itself > > without loading the config file it dosen't do anything - i can > connect to > the server but thats all. > how should the server know where i store my mboxes etc. > > i must load the config file - but how ? I'm not sure what you mean. dovecot reads the config file from installed_prefix/etc/dovecot.conf file (ie. usually /usr/local/etc/dovecot.conf). imap-login executes dovecot which does that too. From tweek@jesus.ch Mon Sep 1 23:31:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E660C239F3; Mon, 1 Sep 2003 23:31:43 +0300 (EEST) Received: from mx1.init7.net (mx1.init7.net [213.144.129.5]) by danu.procontrol.fi (Postfix) with ESMTP id 4E21D239F2 for ; Mon, 1 Sep 2003 23:30:32 +0300 (EEST) Received: from jesus.ch (johannes.livenet.ch [213.144.148.4]) by mx1.init7.net (8.11.6/8.11.6) with ESMTP id h81KUCP08157 for ; Mon, 1 Sep 2003 22:30:12 +0200 From: "Tweek" To: dovecot@procontrol.fi Subject: Re: [Dovecot] How do i load a configfile ? Date: Mon, 1 Sep 2003 21:30:06 +0100 Message-Id: <20030901195927.M76493@jesus.ch> In-Reply-To: References: <20030901185244.M51934@jesus.ch> X-Mailer: Livenet WebMail 2.01 20030512 X-OriginatingIP: 62.245.162.109 (tweek) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2003 20:31:44 -0000 X-UID: 1525 Status: O > I'm not sure what you mean. dovecot reads the config file from > installed_prefix/etc/dovecot.conf file thats what i asked, thanks - in my case installed in /usr/local/dovecot this would be /usr/local/dovecot/etc/dovecot.conf, am i right? i have tried this out but still no mails, i can create folders the server saves them (by the way where?). im storing my mails in /var/mail/username in mbox format and have configurated: default_mail_env = mbox:/var/mail/%u:INDEX=/var/mail/indexes/%u shouldn't that be enough ? sorry for all that dump questions but im totaly new in imap server's... -- E-Mail by http://www.jesus.ch/ and http://www.livenet.ch/ News, Magazin, Events, Forum, Chat, Free E-Mail, Dialin, Jobs, Top-Newsletter From lasse@danielsen.tk Tue Sep 2 22:59:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1CE4523993; Tue, 2 Sep 2003 22:59:22 +0300 (EEST) Received: from mail.firmaserver.com (mail.psxc.com [193.216.236.21]) by danu.procontrol.fi (Postfix) with SMTP id 3A07B2387A for ; Tue, 2 Sep 2003 22:59:00 +0300 (EEST) Received: (qmail 180 invoked by uid 2853); 2 Sep 2003 19:58:55 -0000 Received: from [193.217.147.210] (HELO kari) (193.217.147.210) by mail.firmaserver.com (qpsmtpd/0.26) with SMTP; Tue, 02 Sep 2003 21:58:51 +0200 From: "Lasse Danielsen" To: "dovecot" Date: Tue, 2 Sep 2003 22:00:45 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-SMTPD: qpsmtpd/0.26, http://develooper.com/code/qpsmtpd/ X-Spam-Check-By: mail.firmaserver.com X-Spam-Status: Yes (Spam: No ; -0.5 / 4.5) X-Virus-Scanned: Yep, sure did. X-Mailman-Approved-At: Tue, 02 Sep 2003 23:49:57 +0300 Subject: [Dovecot] dovecot, vpopmail and djb's tcpserver X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Sep 2003 19:59:22 -0000 X-UID: 1526 Status: O Hello! I've tried to set up dovecot in conjuction with vpopmail, and running it under djb's tcpserver instead of (x)inetd. Btw - there was no reference to setting dovecot up using (x)inetd either in the manuals/faqs i read, though I didn't search all that hard. Anyway, back to my Q: vpopmail uses vchkpw as an authentication mechanism, and with tcpserver I can do relaycontrol (based on vchkpw) with roaming users. Is there anyone who have tried this, and succeeded? Right now I use two imap services to accomplish this (bincimap has support for vchkpw). Thank you for any response. - Lasse Danielsen Never argue with an idiot. He'll drag you down to his level, then beat you with experience. From marcotte@panix.com Wed Sep 3 01:45:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 280B523996; Wed, 3 Sep 2003 01:45:34 +0300 (EEST) Received: from mail3.panix.com (mail3.panix.com [166.84.1.74]) by danu.procontrol.fi (Postfix) with ESMTP id 5F9912387A for ; Wed, 3 Sep 2003 01:45:11 +0300 (EEST) Received: from panix.com (mailspool3.panix.com [166.84.1.78]) by mail3.panix.com (Postfix) with SMTP id 2E0579875D; Tue, 2 Sep 2003 18:45:05 -0400 (EDT) Received: from 166.84.1.190 (SquirrelMail authenticated user marcotte@panix.com) by mail.panix.com with HTTP; Tue, 2 Sep 2003 18:45:06 -0400 (EDT) Message-ID: <65328.166.84.1.190.1062542706.squirrel@mail.panix.com> Date: Tue, 2 Sep 2003 18:45:06 -0400 (EDT) From: "Brian Marcotte" To: X-Priority: 3 Importance: Normal X-Mailer: SquirrelMail (version 1.2.11) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit cc: marcotte@panix.com Subject: [Dovecot] namespaces X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Sep 2003 22:45:34 -0000 X-UID: 1527 Status: O Content-Length: 1306 I'm trying to use the namespaces feature to set up dovecot to look just like our existing Courier IMAP server, and our previous Cyrus server. That is, all folders are subfolders of INBOX, and the hierachy separator is ".". I put this in the configuration file: namespace private { separator = . prefix = INBOX. location = maildir:~/.maildir } This makes subfolders work correctly, but it can't find the INBOX: x1 select INBOX x1 NO Unknown namespace. Also, I don't really want to specify the location here. I want to use the userdb settings (I'm using password-file). Is there a way to make it use my setting in the userdb/password-file? Also, I'm not sure if it actually matters, but when selecting a folder, the number of RECENT messages is always the same as the number of messages which EXISTS: x2 select INBOX.Tech * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 70 EXISTS * 70 RECENT * OK [UNSEEN 69] First unseen. * OK [UIDVALIDITY 1057356619] UIDs valid * OK [UIDNEXT 181] Predicted next UID x2 OK [READ-WRITE] Select completed. I'm afraid some clients may use this information for something, and display incorrect information to the user. Thanks! -- - Brian From tss@iki.fi Wed Sep 3 19:41:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B982B23999; Wed, 3 Sep 2003 19:41:35 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F30692387F for ; Wed, 3 Sep 2003 19:41:02 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B5F925C65485 for ; Wed, 3 Sep 2003 19:41:02 +0300 (EEST) Subject: Re: [Dovecot] dovecot, vpopmail and djb's tcpserver From: Timo Sirainen To: dovecot In-Reply-To: References: Content-Type: text/plain Message-Id: <1062607262.26920.74.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Wed, 03 Sep 2003 19:41:02 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Sep 2003 16:41:35 -0000 X-UID: 1528 Status: O On Tue, 2003-09-02 at 23:00, Lasse Danielsen wrote: > I've tried to set up dovecot in conjuction with vpopmail, and running it > under djb's tcpserver instead of (x)inetd. > > Btw - there was no reference to setting dovecot up using (x)inetd either in > the manuals/faqs i read, though I didn't search all that hard. Yes, manual isn't really written yet.. :) > Anyway, back to my Q: > > vpopmail uses vchkpw as an authentication mechanism, and with tcpserver I > can do relaycontrol (based on vchkpw) with roaming users. Is there anyone > who have tried this, and succeeded? Right now I use two imap services to > accomplish this (bincimap has support for vchkpw). I don't really know what vchkpw is supposed to do. Doesn't the vpopmail library call it? Would Dovecot need separate vchkpw support, not just the vpopmail library support? From tss@iki.fi Wed Sep 3 19:45:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A5657239A2; Wed, 3 Sep 2003 19:45:37 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7E53423999 for ; Wed, 3 Sep 2003 19:45:34 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2DB495C65485 for ; Wed, 3 Sep 2003 19:45:34 +0300 (EEST) Subject: Re: [Dovecot] namespaces From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <65328.166.84.1.190.1062542706.squirrel@mail.panix.com> References: <65328.166.84.1.190.1062542706.squirrel@mail.panix.com> Content-Type: text/plain Message-Id: <1062607533.26916.80.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Wed, 03 Sep 2003 19:45:34 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Sep 2003 16:45:37 -0000 X-UID: 1529 Status: O On Wed, 2003-09-03 at 01:45, Brian Marcotte wrote: > namespace private { > separator = . > prefix = INBOX. > location = maildir:~/.maildir > } > > This makes subfolders work correctly, but it can't find the INBOX: How about adding new "inbox = yes" setting to specify that it contains INBOX? > Also, I don't really want to specify the location here. I want to use the > userdb settings (I'm using password-file). Is there a way to make it use > my setting in the userdb/password-file? Maybe if it wasn't set it could use the one from userdb. > Also, I'm not sure if it actually matters, but when selecting a folder, > the number of RECENT messages is always the same as the number of messages > which EXISTS: Yes, I haven't yet fixed recent counters. > I'm afraid some clients may use this information for something, and > display incorrect information to the user. A few do. From marcotte@panix.com Wed Sep 3 20:10:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 861402387A; Wed, 3 Sep 2003 20:10:35 +0300 (EEST) Received: from mail3.panix.com (mail3.panix.com [166.84.1.74]) by danu.procontrol.fi (Postfix) with ESMTP id A3EBE23996 for ; Wed, 3 Sep 2003 20:10:03 +0300 (EEST) Received: from panix.com (mailspool2.panix.com [166.84.1.79]) by mail3.panix.com (Postfix) with SMTP id C356898255 for ; Wed, 3 Sep 2003 13:10:02 -0400 (EDT) Received: from 166.84.167.10 (SquirrelMail authenticated user marcotte@panix.com) by mail.panix.com with HTTP; Wed, 3 Sep 2003 13:10:02 -0400 (EDT) Message-ID: <1689.166.84.167.10.1062609002.squirrel@mail.panix.com> Date: Wed, 3 Sep 2003 13:10:02 -0400 (EDT) Subject: Re: [Dovecot] namespaces From: "Brian Marcotte" To: In-Reply-To: <1062607533.26916.80.camel@hurina> References: <65328.166.84.1.190.1062542706.squirrel@mail.panix.com> <1062607533.26916.80.camel@hurina> X-Priority: 3 Importance: Normal X-Mailer: SquirrelMail (version 1.2.11) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Sep 2003 17:10:35 -0000 X-UID: 1530 Status: O > How about adding new "inbox = yes" setting to specify that it contains > INBOX? That would work for me! > Maybe if [location in namespace section] wasn't set it could use the one > from userdb. Sounds like a good idea. It seems that the location option is most useful with the shared folders rather than the private ones. Thanks! -- - Brian From jethro.binks@strath.ac.uk Thu Sep 4 01:10:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E420523999; Thu, 4 Sep 2003 01:10:25 +0300 (EEST) Received: from orkney.cc.strath.ac.uk (orkney.cc.strath.ac.uk [130.159.248.40]) by danu.procontrol.fi (Postfix) with ESMTP id 679F22387A for ; Thu, 4 Sep 2003 01:09:52 +0300 (EEST) Received: from defjam.cc.strath.ac.uk ([130.159.96.19]) by orkney.cc.strath.ac.uk with esmtp (Exim 3.32 #2) id 19ufp1-0006aZ-00 for dovecot@procontrol.fi; Wed, 03 Sep 2003 23:09:51 +0100 Date: Wed, 3 Sep 2003 23:09:51 +0100 (BST) From: Jethro R Binks X-X-Sender: ras99101@defjam.cc.strath.ac.uk To: dovecot@procontrol.fi Message-ID: <20030903224339.E30006@defjam.cc.strath.ac.uk> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] pine, INBOX, and dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Sep 2003 22:10:26 -0000 X-UID: 1531 Status: O Content-Length: 1521 Hi all, I've been experimenting with Dovecot; tests with Maildir seemed to work fine. However, now I'm trying with mbox folders, and I'm having a problem where I do not get an INBOX listed using pine. Outlook Express and IMP show it fine. I snooped part of the session, which appears to go like this (it is slightly garbled, sorry -- I couldn't get rawlog to work by creating dovecot.rawlog in the mail home directory): 00000002 CAPABILITY\r\n * CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UN 00000003 LIST "" %\r\n" * LIST (\NoInferiors) "/" INBOX * LIST (\NoInferiors \UnMarked) "/" "test" * LIST (\NoInferiors \UnMarked) ""/" "Sent Items" * LIST (\NoInferiors \UnMarked) "/" "Drafts" 0000000a OK List .completed.. Pine just displays "test", "Sent Items", and "Drafts". OE happily downloads mail from the inbox I put there, and IMP can see it and read it. Perhaps there is something there that IMAP protocol people might see. Or else, perhaps there is a known reason why pine does this? Any clues would be appreciated - I browsed the list archives but couldn't spot anything very relevant. Pine version is very recent - I updated today to 4.56. Incidentally, is mbox support still broken in the CVS version? Is there an expected timescale for the next release, preferably with mbox fixed again?! Thanks for any advice. Jethro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jethro R Binks Computing Officer, IT Services University Of Strathclyde, Glasgow, UK From jethro.binks@strath.ac.uk Thu Sep 4 01:27:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B129E239A3; Thu, 4 Sep 2003 01:27:45 +0300 (EEST) Received: from orkney.cc.strath.ac.uk (orkney.cc.strath.ac.uk [130.159.248.40]) by danu.procontrol.fi (Postfix) with ESMTP id 2A2DC2387A for ; Thu, 4 Sep 2003 01:27:43 +0300 (EEST) Received: from defjam.cc.strath.ac.uk ([130.159.96.19]) by orkney.cc.strath.ac.uk with esmtp (Exim 3.32 #2) id 19ug6I-0000N0-00 for dovecot@procontrol.fi; Wed, 03 Sep 2003 23:27:42 +0100 Date: Wed, 3 Sep 2003 23:27:42 +0100 (BST) From: Jethro R Binks X-X-Sender: ras99101@defjam.cc.strath.ac.uk To: dovecot@procontrol.fi In-Reply-To: <20030903224339.E30006@defjam.cc.strath.ac.uk> Message-ID: <20030903232103.K30105@defjam.cc.strath.ac.uk> References: <20030903224339.E30006@defjam.cc.strath.ac.uk> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Re: pine, INBOX, and dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Sep 2003 22:27:45 -0000 X-UID: 1532 Status: O Content-Length: 2948 Typical, send something off and _then_ get the inspiration. Poking around a bit more, it looks like a peculiarity of my pine setup. I'm testing dovecot on a new server, but my real mail is still being delivered to the old server, also read in that pine. For testing, I added: "new server" {dns.name}[], to folder-collections in my .pinerc, as an addition to my usual setup. That gives me a folder collection I can select, displaying the folders I mentioned, but not the inbox. I now see that the inbox is treated specially. I tried adding: {dns.name}inbox to incoming-folders, and I got a new collection called Incoming-Folders or something with my usual INBOX folder and the inbox on the new server. Neither of the other collection (current or dovecot testing) now lists an inbox, which I think I remember is just the way pine works. So, I surmise that if I just run a "clean" pine config, without anything relating to my current server and just stuff relating to the testing server, I will be able to see the inbox. But it is too late tonight to test that now. If it works out, sorry for wasting your brain cells! Jethro. On Wed, 3 Sep 2003, Jethro R Binks wrote: > Hi all, > > I've been experimenting with Dovecot; tests with Maildir seemed to work > fine. However, now I'm trying with mbox folders, and I'm having a problem > where I do not get an INBOX listed using pine. Outlook Express and > IMP show it fine. > > I snooped part of the session, which appears to go like this (it is > slightly garbled, sorry -- I couldn't get rawlog to work by creating > dovecot.rawlog in the mail home directory): > > 00000002 CAPABILITY\r\n > * CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UN > 00000003 LIST "" %\r\n" > * LIST (\NoInferiors) "/" INBOX > * LIST (\NoInferiors \UnMarked) "/" "test" > * LIST (\NoInferiors \UnMarked) ""/" "Sent Items" > * LIST (\NoInferiors \UnMarked) "/" "Drafts" > 0000000a OK List .completed.. > > Pine just displays "test", "Sent Items", and "Drafts". OE happily > downloads mail from the inbox I put there, and IMP can see it and read it. > > Perhaps there is something there that IMAP protocol people might see. Or > else, perhaps there is a known reason why pine does this? Any clues would > be appreciated - I browsed the list archives but couldn't spot anything > very relevant. > > Pine version is very recent - I updated today to 4.56. > > Incidentally, is mbox support still broken in the CVS version? Is there > an expected timescale for the next release, preferably with mbox fixed > again?! > > Thanks for any advice. > > Jethro. > > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > Jethro R Binks > Computing Officer, IT Services > University Of Strathclyde, Glasgow, UK > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jethro R Binks Computing Officer, IT Services University Of Strathclyde, Glasgow, UK From tss@iki.fi Thu Sep 4 02:22:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7C50A2399D; Thu, 4 Sep 2003 02:22:20 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id C74F723999 for ; Thu, 4 Sep 2003 02:22:18 +0300 (EEST) Date: Thu, 4 Sep 2003 02:22:39 +0300 Subject: Re: [Dovecot] pine, INBOX, and dovecot Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030903224339.E30006@defjam.cc.strath.ac.uk> Message-Id: <82D0BA1F-DE65-11D7-803E-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Sep 2003 23:22:20 -0000 X-UID: 1533 Status: O On Thursday, Sep 4, 2003, at 01:09 Europe/Helsinki, Jethro R Binks wrote: > Incidentally, is mbox support still broken in the CVS version? Is > there > an expected timescale for the next release, preferably with mbox fixed > again?! It works as read-only. Expunge will crash. I haven't dared to try rewriting yet, probably corrupts everything :) Maybe I'll now finally optimize the rewriting and expunging into same thing rather than spend time debugging and kludging around problems. CVS code also finally hides mbox headers which contain message flags etc. Those caused message to change constantly which isn't allowed by IMAP. From matthias.andree@gmx.de Thu Sep 4 10:25:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 36ECC23999; Thu, 4 Sep 2003 10:25:08 +0300 (EEST) Received: from m2a2.dyndns.org (p50877930.dip.t-dialin.net [80.135.121.48]) by danu.procontrol.fi (Postfix) with ESMTP id 46BE9238C5 for ; Thu, 4 Sep 2003 10:24:32 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 3CEFD41710; Wed, 3 Sep 2003 15:11:58 +0200 (CEST) To: "Lasse Danielsen" Subject: Re: [Dovecot] dovecot, vpopmail and djb's tcpserver In-Reply-To: (Lasse Danielsen's message of "Tue, 2 Sep 2003 22:00:45 +0200") References: From: Matthias Andree Date: Wed, 03 Sep 2003 15:11:58 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Sep 2003 07:25:08 -0000 X-UID: 1534 Status: O "Lasse Danielsen" writes: > vpopmail uses vchkpw as an authentication mechanism, and with tcpserver I > can do relaycontrol (based on vchkpw) with roaming users. Is there anyone > who have tried this, and succeeded? Right now I use two imap services to > accomplish this (bincimap has support for vchkpw). The proper way to authenticate roaming users is SMTP AUTH and not a botch like SMTP-after-POP/IMAP (which I assume you're trying to do as otherwise, the IMAP/POP3 server isn't concerned with relaying mail). SMTP AUTH works independently of Dovecot or BincIMAP. -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95 From charlie@rubberduck.com Thu Sep 4 10:37:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 95BCC239A3; Thu, 4 Sep 2003 10:37:53 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id A1DAD23999 for ; Thu, 4 Sep 2003 10:37:20 +0300 (EEST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 01A6E8F0B for ; Thu, 4 Sep 2003 17:33:41 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 501) id E07B5219708; Thu, 4 Sep 2003 17:37:18 +1000 (EST) Date: Thu, 4 Sep 2003 17:37:18 +1000 From: Charlie Allom To: dovecot@procontrol.fi Message-ID: <20030904073716.GA6696@myinternet.com.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Y7xTucakfITjPcLV" Content-Disposition: inline User-Agent: Mutt/1.5.4i Subject: [Dovecot] still getting weird .{inbox} folder creations with latest -test7 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Sep 2003 07:37:53 -0000 X-UID: 1535 Status: O Content-Length: 8629 --Y7xTucakfITjPcLV Content-Type: multipart/mixed; boundary="ibTvN161/egqYuK8" Content-Disposition: inline --ibTvN161/egqYuK8 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, I am still getting strange creation and mailbox lookups from 0.99.11-test7. dovecot creates in ~/Maildir/ .INBOX/ .imap.index .imap.index.cache .imap.index.log .customflags dovecot-uidlist =09 =2EINBOX seems to be a reference to ~/Maildir/{cur,new,tmp} yet I cannot get an IMAP client uo pick up my other maildir, located at ~/Maildir/mi/{cur,new,tmp}. In Apple's Mail.app, it picks up a file called ~/Maildir/.procmaillog as if it were a maildir directory! This is with the Mail.app preference for "IMAP Path Prefix" set to null. mutt just seems plain confused. I have these settings: # imap styleee set folder=3Dimap://yeled@lazy.spodder.com/ set mbox=3Dimap://yeled@lazy.spodder.com/mbox set record=3Dimap://yeled@lazy.spodder.com/sent set postponed=3Dimap://yeled@lazy.spodder.com/postponed set spoolfile=3Dimap://yeled@lazy.spodder.com/ set certificate_file=3D~/.mutt/certificates set mail_check=3D10 set timeout=3D10 set imap_home_namespace=3D"" set imap_pass=3D"foo" I have included the tcpflow files to show what the clients are doing.. Is it normal to search for folders starting with "." ? Why won't it just pick up my normally nested maildir folders? C. --=20 charlie@rubberduck.com - http://rubberduck.com/~yeled/ --ibTvN161/egqYuK8 Content-Type: text/plain; charset=us-ascii Content-Description: mutt tcpflow Content-Disposition: attachment; filename="203.018.243.123.00143-203.031.232.002.50048" * OK dovecot ready. * CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED NAMESPACE STARTTLS AUTH=PLAIN a0000 OK Capability completed. a0001 OK Logged in. * LIST (\Noselect) "." "" a0002 OK List completed. * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 0 EXISTS * 0 RECENT * OK [UIDVALIDITY 1062657336] UIDs valid * OK [UIDNEXT 12] Predicted next UID a0003 OK [READ-WRITE] Select completed. a0004 OK NOOP completed. * NAMESPACE (("" ".")) NIL NIL a0005 OK Namespace completed. * LIST (\NoChildren) "." INBOX * LIST (\NoChildren) "." "procmaillog" a0006 OK List completed. * NAMESPACE (("" ".")) NIL NIL a0007 OK Namespace completed. * LIST (\NoChildren) "." INBOX * LIST (\NoChildren) "." "procmaillog" a0008 OK List completed. a0009 OK List completed. * NAMESPACE (("" ".")) NIL NIL a0010 OK Namespace completed. * LIST (\NoChildren) "." INBOX * LIST (\NoChildren) "." "procmaillog" a0011 OK List completed. a0012 OK List completed. * NAMESPACE (("" ".")) NIL NIL a0013 OK Namespace completed. * LIST (\NoChildren) "." INBOX * LIST (\NoChildren) "." "procmaillog" a0014 OK List completed. a0015 OK NOOP completed. a0016 OK List completed. a0017 OK List completed. a0018 OK List completed. a0019 OK List completed. a0020 OK NOOP completed. * LIST (\NoChildren) "." INBOX * LIST (\NoChildren) "." "procmaillog" a0021 OK List completed. a0022 OK Close completed. a0023 NO Mailbox doesn't exist: =mi * BYE Logging out a0024 OK Logout completed. --ibTvN161/egqYuK8 Content-Type: text/plain; charset=us-ascii Content-Description: mutt tcpflow Content-Disposition: attachment; filename="203.031.232.002.50048-203.018.243.123.00143" a0000 CAPABILITY a0001 LOGIN "yeled" "foo" a0002 LIST "" "" a0003 SELECT "INBOX" a0004 NOOP a0005 NAMESPACE a0006 LIST "" "%" a0007 NAMESPACE a0008 LIST "" "%" a0009 LIST "" "procmaillog.%" a0010 NAMESPACE a0011 LIST "" "%" a0012 LIST "" "INBOX.%" a0013 NAMESPACE a0014 LIST "" "%" a0015 NOOP a0016 LIST "" ".mi" a0017 LIST "" ".mi%" a0018 LIST "" ".mi" a0019 LIST "" ".mi%" a0020 NOOP a0021 LIST "" "%" a0022 CLOSE a0023 SELECT "=mi" a0024 LOGOUT --ibTvN161/egqYuK8 Content-Type: text/plain; charset=us-ascii Content-Description: Mail.app tcpflow Content-Disposition: attachment; filename="203.018.243.123.00143-203.031.232.002.50001" Content-Transfer-Encoding: quoted-printable * OK dovecot ready.=0D 1 OK Logged in.=0D * CAPABILITY IMAP4rev1 SORT THREAD=3DREFERENCES MULTIAPPEND UNSELECT LITERA= L+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED NAMESPACE=0D 2 OK Capability completed.=0D * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)=0D * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags p= ermitted.=0D * 3 EXISTS=0D * 3 RECENT=0D * OK [UNSEEN 1] First unseen.=0D * OK [UIDVALIDITY 1062657336] UIDs valid=0D * OK [UIDNEXT 9] Predicted next UID=0D 3 OK [READ-WRITE] Select completed.=0D * 1 FETCH (UID 6 FLAGS (\Recent))=0D * 2 FETCH (UID 7 FLAGS (\Recent))=0D * 3 FETCH (UID 8 FLAGS (\Recent))=0D 4 OK Fetch completed.=0D * 1 FETCH (UID 6 FLAGS (\Recent) INTERNALDATE "04-Sep-2003 16:44:15 +1000" = RFC822.SIZE 4714 BODY[HEADER.FIELDS (DATE SUBJECT FROM TO)] {147}=0D Date: Thu, 4 Sep 2003 00:41:05 -0600=0D Subject: Re: Phone software=0D To: George =0D =46rom: guy =0D )=0D 5 OK Fetch completed.=0D * 1 FETCH (UID 6 BODY[HEADER] {2536}=0D Return-Path: =0D X-Original-To: charlie@rubberduck.com=0D Delivered-To: yeled@lazy.spodder.com=0D =0D <<<>>>=0D =0D )=0D 12 OK Fetch completed.=0D 13 OK NOOP completed.=0D 14 OK NOOP completed.=0D 15 OK NOOP completed.=0D 16 OK Close completed.=0D * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)=0D * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags p= ermitted.=0D * 0 EXISTS=0D * 0 RECENT=0D * OK [UIDVALIDITY 1062657336] UIDs valid=0D * OK [UIDNEXT 9] Predicted next UID=0D 17 OK [READ-WRITE] Select completed.=0D * 1 FETCH (UID 8 FLAGS (\Deleted \Seen \Recent))=0D 18 OK Fetch completed.=0D 19 OK Close completed.=0D * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)=0D * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags p= ermitted.=0D * 0 EXISTS=0D * 0 RECENT=0D * OK [UIDVALIDITY 1062657336] UIDs valid=0D * OK [UIDNEXT 9] Predicted next UID=0D 20 OK [READ-WRITE] Select completed.=0D * 1 FETCH (UID 8 FLAGS (\Deleted \Seen \Recent))=0D 21 OK Fetch completed.=0D --ibTvN161/egqYuK8 Content-Type: text/plain; charset=us-ascii Content-Description: Mail.app tcpflow Content-Disposition: attachment; filename="203.018.243.123.00143-203.031.232.002.50002" * OK dovecot ready. 1 OK Logged in. * CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED NAMESPACE 2 OK Capability completed. * LIST (\Noselect) "." "" 3 OK List completed. * LIST (\NoChildren) "." INBOX * LIST (\NoChildren) "." "procmaillog" 4 OK List completed. 5 NO Internal error [2003-09-04 16:45:54] * LIST (\NoChildren) "." INBOX * LIST (\NoChildren) "." "procmaillog" 6 OK List completed. 7 NO Internal error [2003-09-04 16:45:57] 8 NO Internal error [2003-09-04 16:46:03] 9 NO Internal error [2003-09-04 16:46:09] 10 BAD No mailbox selected. --ibTvN161/egqYuK8 Content-Type: text/plain; charset=us-ascii Content-Description: Mail.app tcpflow Content-Disposition: attachment; filename="203.031.232.002.50001-203.018.243.123.00143" 1 LOGIN yeled "foo" 2 CAPABILITY 3 SELECT INBOX 4 UID FETCH 1:15 (UID FLAGS) 5 UID FETCH 6:6 (INTERNALDATE UID RFC822.SIZE FLAGS BODY.PEEK[HEADER.FIELDS (date subject from to)]) 6 UID FETCH 6 BODY.PEEK[HEADER] 7 UID FETCH 7:8 (INTERNALDATE UID RFC822.SIZE FLAGS BODY.PEEK[HEADER.FIELDS (date subject from to)]) 8 UID FETCH 7 BODY.PEEK[HEADER] 9 UID FETCH 8 BODY.PEEK[HEADER] 10 UID FETCH 8 BODY.PEEK[] 11 UID FETCH 6 BODY.PEEK[] 12 UID FETCH 7 BODY.PEEK[] 13 NOOP 14 NOOP 15 NOOP 16 CLOSE 17 SELECT INBOX 18 UID FETCH 1:8 (UID FLAGS) 19 CLOSE 20 SELECT INBOX 21 UID FETCH 1:8 (UID FLAGS) --ibTvN161/egqYuK8 Content-Type: text/plain; charset=us-ascii Content-Description: Mail.app tcpflow Content-Disposition: attachment; filename="203.031.232.002.50002-203.018.243.123.00143" 1 LOGIN yeled "jam" 2 CAPABILITY 3 LIST "" "" 4 LIST "" "*" 5 STATUS procmaillog (UNSEEN) 6 LIST "" "*" 7 STATUS procmaillog (UNSEEN) 8 SELECT procmaillog 9 SELECT procmaillog 10 CLOSE --ibTvN161/egqYuK8-- --Y7xTucakfITjPcLV Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/VuusqiZDwhSqeUERApc2AJ41TMn+vokC7dwC6PtjYYetjIF67gCgqKNd exb0kWfARBfVmsqhBWmF3b0= =0/sr -----END PGP SIGNATURE----- --Y7xTucakfITjPcLV-- From grahame@ucs.uwa.edu.au Thu Sep 4 11:29:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E27ED23999; Thu, 4 Sep 2003 11:29:19 +0300 (EEST) Received: from asclepius.uwa.edu.au (asclepius.uwa.edu.au [130.95.128.56]) by danu.procontrol.fi (Postfix) with ESMTP id 83F902387A for ; Thu, 4 Sep 2003 11:28:46 +0300 (EEST) Received: from 127.0.0.1 (localhost [127.0.0.1]) by dummy.domain.name (Postfix) with SMTP id 0CEEA3666C9 for ; Thu, 4 Sep 2003 16:28:44 +0800 (WST) Received: from typhaon.ucs.uwa.edu.au (typhaon.ucs.uwa.edu.au [130.95.128.67]) by asclepius.uwa.edu.au (Postfix) with ESMTP id 0719036664A for ; Thu, 4 Sep 2003 16:28:44 +0800 (WST) Received: from localhost (localhost [127.0.0.1]) by typhaon.ucs.uwa.edu.au (Postfix) with ESMTP id 84B1D401238D; Thu, 4 Sep 2003 16:28:43 +0800 (WST) Subject: Re: [Dovecot] still getting weird .{inbox} folder creations with latest -test7 From: Grahame Bowland To: Charlie Allom In-Reply-To: <20030904073716.GA6696@myinternet.com.au> References: <20030904073716.GA6696@myinternet.com.au> Content-Type: text/plain Organization: The University of Western Australia Message-Id: <1062664123.25301.35.camel@typhaon.ucs.uwa.edu.au> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 04 Sep 2003 16:28:43 +0800 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Sep 2003 08:29:20 -0000 X-UID: 1536 Status: O Content-Length: 1070 On Thu, 2003-09-04 at 15:37, Charlie Allom wrote: > Hi, > > I am still getting strange creation and mailbox lookups from > 0.99.11-test7. > > dovecot creates in ~/Maildir/ > .INBOX/ > .imap.index > .imap.index.cache > .imap.index.log > .customflags > dovecot-uidlist > > .INBOX seems to be a reference to ~/Maildir/{cur,new,tmp} yet I > cannot get an IMAP client uo pick up my other maildir, located at > ~/Maildir/mi/{cur,new,tmp}. I think you want to name your subfolders with a "." in front of them; it's mentioned in the documentation somewhere. So you'd have ~/Maildir/.mi/{cur,new,tmp} - try creating a folder in an IMAP email client and you should notice this behaviour. -- Grahame Bowland Email: grahame@ucs.uwa.edu.au University Communications Services Phone: +61 8 9380 1175 The University of Western Australia Fax: +61 8 9380 1109 CRICOS: 00126G From charlie@myinternet.com.au Thu Sep 4 11:53:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AA32F23999; Thu, 4 Sep 2003 11:53:47 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 63C902387A for ; Thu, 4 Sep 2003 11:53:44 +0300 (EEST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 62B8E8F11; Thu, 4 Sep 2003 18:50:00 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 501) id 1DCDC219E57; Thu, 4 Sep 2003 18:53:37 +1000 (EST) Date: Thu, 4 Sep 2003 18:53:36 +1000 From: Charlie Allom To: Grahame Bowland Subject: Re: [Dovecot] still getting weird .{inbox} folder creations with latest -test7 Message-ID: <20030904085336.GA6728@myinternet.com.au> References: <20030904073716.GA6696@myinternet.com.au> <1062664123.25301.35.camel@typhaon.ucs.uwa.edu.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="3V7upXqbjpZ4EhLz" Content-Disposition: inline In-Reply-To: <1062664123.25301.35.camel@typhaon.ucs.uwa.edu.au> User-Agent: Mutt/1.5.4i X-Mailman-Approved-At: Thu, 04 Sep 2003 13:58:30 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Sep 2003 08:53:47 -0000 X-UID: 1537 Status: O Content-Length: 1048 --3V7upXqbjpZ4EhLz Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Sep 04, 2003 at 04:28:43PM +0800, Grahame Bowland wrote: > On Thu, 2003-09-04 at 15:37, Charlie Allom wrote: > >=20 > I think you want to name your subfolders with a "." in front of them; > it's mentioned in the documentation somewhere. So you'd have > ~/Maildir/.mi/{cur,new,tmp} - try creating a folder in an IMAP email > client and you should notice this behaviour. Thanks I'm half way to rearranging my procmailrc to set this up - But i'd prefer not to. Is this an RFC thing or just historically set to create .dotfile mailboxes? C. --=20 charlie@myinternet.com.au - http://rubberduck.com/~yeled/ --3V7upXqbjpZ4EhLz Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/Vv2QqiZDwhSqeUERAkKWAKCrhYvZjQtM/moRX6FchcADPn8N1QCgnXLZ nvIABACMcsrCQ/hdn2jW4SE= =07Jg -----END PGP SIGNATURE----- --3V7upXqbjpZ4EhLz-- From tss@iki.fi Thu Sep 4 14:07:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B0FF72399D; Thu, 4 Sep 2003 14:07:11 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CDF9823999 for ; Thu, 4 Sep 2003 14:06:39 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 9BB715C65485 for ; Thu, 4 Sep 2003 14:06:39 +0300 (EEST) Subject: Re: [Dovecot] still getting weird .{inbox} folder creations with latest -test7 From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030904085336.GA6728@myinternet.com.au> References: <20030904073716.GA6696@myinternet.com.au> <1062664123.25301.35.camel@typhaon.ucs.uwa.edu.au> <20030904085336.GA6728@myinternet.com.au> Content-Type: text/plain Message-Id: <1062673599.26916.92.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 04 Sep 2003 14:06:39 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Sep 2003 11:07:11 -0000 X-UID: 1538 Status: O On Thu, 2003-09-04 at 11:53, Charlie Allom wrote: > Is this an RFC thing or just historically set to create .dotfile > mailboxes? That's how Courier-compatible Maildir++ works. If you want subfolders, you'd create ".sub.folder.name". There's a few good things with this: - There's no namespace conflicts since only mailboxes begin with dot. You can create eg. "new" mailbox. - Listing all mailboxes is fast since everything is in one directory CVS has been optimized to assume all files beginning with a dot (except .subscriptions currently) are mailboxes. This is faster since it doesn't have to stat() each file to figure out if it's a directory or not. Perhaps that should be optional. New Linux systems (maybe others too) wouldn't actually even need the stat().. I'll probably some day also add support for dotless directory-structured mailbox locations, but it's not really high priority. From lasse@danielsen.tk Thu Sep 4 15:54:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9AAF823999; Thu, 4 Sep 2003 15:54:59 +0300 (EEST) Received: from mail.firmaserver.com (mail.psxc.com [193.216.236.21]) by danu.procontrol.fi (Postfix) with SMTP id BAE46238C5 for ; Thu, 4 Sep 2003 15:54:27 +0300 (EEST) Received: (qmail 17713 invoked by uid 2853); 4 Sep 2003 12:54:21 -0000 Received: from [193.217.147.210] (HELO kari) (193.217.147.210) by mail.firmaserver.com (qpsmtpd/0.26) with SMTP; Thu, 04 Sep 2003 14:54:16 +0200 From: "Lasse Danielsen" To: "dovecot" Subject: RE: [Dovecot] dovecot, vpopmail and djb's tcpserver Date: Thu, 4 Sep 2003 14:56:12 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) In-reply-to: X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Importance: Normal X-SMTPD: qpsmtpd/0.26, http://develooper.com/code/qpsmtpd/ X-Spam-Check-By: mail.firmaserver.com X-Spam-Status: Yes (Spam: No ; -1.5 / 4.5) X-Virus-Scanned: Yep, sure did. X-Mailman-Approved-At: Thu, 04 Sep 2003 17:08:17 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Sep 2003 12:54:59 -0000 X-UID: 1539 Status: O Well, what is proper and not can be discussed, I'm sure. I prefer using the "botch" as you call it. I assume support for some kind of external authentication mechanism need to be supported in dovecot for pop/imap-before-smtp. Afaik, vchkpw is one of many such mechanism. I was just asking if this had been done before, or if it's currently unsupported. Regards, Lasse Danielsen > -----Original Message----- > From: dovecot-bounces@procontrol.fi > [mailto:dovecot-bounces@procontrol.fi]On Behalf Of Matthias Andree > The proper way to authenticate roaming users is SMTP AUTH and not a > botch like SMTP-after-POP/IMAP (which I assume you're trying to do as > otherwise, the IMAP/POP3 server isn't concerned with relaying > mail). SMTP AUTH works independently of Dovecot or BincIMAP. > > -- > Matthias Andree > > Encrypt your mail: my GnuPG key ID is 0x052E7D95 > From matthias.andree@gmx.de Thu Sep 4 22:24:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2B53223998; Thu, 4 Sep 2003 22:24:50 +0300 (EEST) Received: from m2a2.dyndns.org (p50877490.dip.t-dialin.net [80.135.116.144]) by danu.procontrol.fi (Postfix) with ESMTP id 761462387A for ; Thu, 4 Sep 2003 22:24:17 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id A7C81946EF; Thu, 4 Sep 2003 21:24:15 +0200 (CEST) To: "Lasse Danielsen" Subject: Re: [Dovecot] dovecot, vpopmail and djb's tcpserver In-Reply-To: (Lasse Danielsen's message of "Thu, 4 Sep 2003 14:56:12 +0200") References: From: Matthias Andree Date: Thu, 04 Sep 2003 21:24:15 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Sep 2003 19:24:50 -0000 X-UID: 1540 Status: O "Lasse Danielsen" writes: > Well, what is proper and not can be discussed, I'm sure. I prefer using the > "botch" as you call it. I assume support for some kind of external > authentication mechanism need to be supported in dovecot for > pop/imap-before-smtp. Afaik, vchkpw is one of many such mechanism. I was > just asking if this had been done before, or if it's currently unsupported. If you really need it today, how about grepping the log for now (but beware of the infamous time zone!)? You may need to set auth_verbose=yes though. Sep 4 20:07:11 mail imap-login: Login: ma [80.135.11X.XXX] That should be sufficient to enable SMTP for a minute or two from that IP. A couple of lines of Perl around File::Tail should do. -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95 From lists@ceskyserver.cz Fri Sep 5 18:46:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8D1CC238CE; Fri, 5 Sep 2003 18:46:02 +0300 (EEST) Received: from ceskyserver.cz (myadmin.ceskyserver.cz [81.0.235.157]) by danu.procontrol.fi (Postfix) with SMTP id ADFA2238C6 for ; Fri, 5 Sep 2003 18:45:30 +0300 (EEST) Received: (qmail 4277 invoked by uid 89); 5 Sep 2003 15:46:25 -0000 Message-ID: <20030905154625.4276.qmail@ceskyserver.cz> From: "Antonin Karasek" To: dovecot@procontrol.fi Date: Fri, 05 Sep 2003 17:46:25 +0200 Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Dovecot] Dovecot not starting X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Sep 2003 15:46:02 -0000 X-UID: 1541 Status: O Hello everybody, sorry for stupid qustion, but I have following problem: I succesfully installed Dovecot on Debian (from source). Now I want to run it. I tryed: # /usr/local/dovecot/sbin/dovecot # but nothing happened: # ps -Af | grep dove ....... ps -Af | grep dove # What is wrong? I want Dovecot to serve POP3 over SSL. Many thanks and sorry again :o) From jens@freebsdforum.de Fri Sep 5 19:16:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1B956238C9; Fri, 5 Sep 2003 19:16:14 +0300 (EEST) Received: from lieber-annanas-als-annatrocken.de (lieber-annanas-als-annatrocken.de [213.133.103.207]) by danu.procontrol.fi (Postfix) with ESMTP id AEDED2387A for ; Fri, 5 Sep 2003 19:15:39 +0300 (EEST) Received: from localhost (localhost [213.133.103.207])60BB2114014 for ; Fri, 5 Sep 2003 18:15:23 +0200 (CEST) From: Jens Gutzeit To: dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot not starting Date: Fri, 5 Sep 2003 18:15:51 +0200 User-Agent: KMail/1.5.3 References: <20030905154625.4276.qmail@ceskyserver.cz> In-Reply-To: <20030905154625.4276.qmail@ceskyserver.cz> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200309051815.51373.jens@freebsdforum.de> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Sep 2003 16:16:14 -0000 X-UID: 1542 Status: O On Friday 05 September 2003 17:46, Antonin Karasek wrote: > Hello everybody, > sorry for stupid qustion, but I have following problem: > I succesfully installed Dovecot on Debian (from source). Now I want to run > it. I tryed: > # /usr/local/dovecot/sbin/dovecot > # > but nothing happened: > # ps -Af | grep dove > ....... ps -Af | grep dove > # > > What is wrong? Probably misconfigured, show some logs. > I want Dovecot to serve POP3 over SSL. > > Many thanks and sorry again :o) From lists@ceskyserver.cz Fri Sep 5 19:21:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B943B238C9; Fri, 5 Sep 2003 19:21:42 +0300 (EEST) Received: from ceskyserver.cz (wmail.ceskyserver.cz [81.0.235.159]) by danu.procontrol.fi (Postfix) with SMTP id 92D902387A for ; Fri, 5 Sep 2003 19:21:10 +0300 (EEST) Received: (qmail 4418 invoked by uid 89); 5 Sep 2003 16:22:03 -0000 Message-ID: <20030905162203.4417.qmail@ceskyserver.cz> References: <30F0523D384016498241055B0311A072487209@equital-mail.equital.com> In-Reply-To: <30F0523D384016498241055B0311A072487209@equital-mail.equital.com> From: "Antonin Karasek" To: dovecot@procontrol.fi Date: Fri, 05 Sep 2003 18:22:03 +0200 Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Dovecot] Re: Dovecot not starting X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Sep 2003 16:21:42 -0000 X-UID: 1543 Status: O Thanks for fast response :) This is copy of syslog: Sep 5 17:58:40 cernunnos dovecot: Dovecot starting up Sep 5 17:58:41 cernunnos dovecot: Auth process died too early - shutting down Sep 5 17:58:41 cernunnos dovecot: child 4327 (auth) returned error 11 Sep 5 17:58:41 cernunnos pop3-login: fd_send(-1) failed: Broken pipe Alejandro Martinez writes: > Did you see the logs ? > > -----Mensaje original----- > De: Antonin Karasek [mailto:lists@ceskyserver.cz] > Enviado el: viernes, 05 de septiembre de 2003 12:46 > Para: dovecot@procontrol.fi > Asunto: [Dovecot] Dovecot not starting > > > Hello everybody, > sorry for stupid qustion, but I have following problem: > I succesfully installed Dovecot on Debian (from source). Now I want to > run > it. I tryed: > # /usr/local/dovecot/sbin/dovecot > # > but nothing happened: > # ps -Af | grep dove > ....... ps -Af | grep dove > # > > What is wrong? > > I want Dovecot to serve POP3 over SSL. > > Many thanks and sorry again :o) From jaldhar@debian.org Fri Sep 5 21:50:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E2054238D5; Fri, 5 Sep 2003 21:50:00 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 1F2A4238C9 for ; Fri, 5 Sep 2003 21:49:28 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 187007FB6; Fri, 5 Sep 2003 14:49:28 -0400 (EDT) Date: Fri, 5 Sep 2003 14:49:24 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: Antonin Karasek Subject: Re: [Dovecot] Dovecot not starting In-Reply-To: <20030905154625.4276.qmail@ceskyserver.cz> Message-ID: References: <20030905154625.4276.qmail@ceskyserver.cz> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Sep 2003 18:50:01 -0000 X-UID: 1544 Status: O On Fri, 5 Sep 2003, Antonin Karasek wrote: > Hello everybody, > sorry for stupid qustion, but I have following problem: > I succesfully installed Dovecot on Debian (from source). Is there any reason why you can't/don't want to use the dovecot Debian packages? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From jaldhar@debian.org Fri Sep 5 22:30:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0DAE3238C6; Fri, 5 Sep 2003 22:30:01 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 69D442387A for ; Fri, 5 Sep 2003 22:29:58 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 1CA7E7FB6 for ; Fri, 5 Sep 2003 15:29:51 -0400 (EDT) Date: Fri, 5 Sep 2003 15:29:50 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Debian bug #201444: More verbose logging X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Sep 2003 19:30:01 -0000 X-UID: 1545 Status: O I brought this up a while ago but the submitter is wondering if there has been any progress on this issue. He says: It would be extremely nice to have a little bit more detailed logging, and I believe it doesn't really require that much code. I use now a daemon which logs login (name, ip; as dovecot does), and logout (with name, logout reason if any special) with the numbers of "read new mail number and size" and "mail left on server number and size". Would be nice to have something like that in dovecot. Could something like this be added for the next version? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From ianj@ian-justman.com Sat Sep 6 02:38:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B272B2387A; Sat, 6 Sep 2003 02:38:34 +0300 (EEST) Received: from sakura.ian-justman.com (sakura.ian-justman.com [207.126.72.246]) by danu.procontrol.fi (Postfix) with ESMTP id F2A9F238C6 for ; Sat, 6 Sep 2003 02:38:00 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost.ian-justman.com (Postfix) with ESMTP id 58F13C8DDCE for ; Fri, 5 Sep 2003 16:37:59 -0700 (PDT) Received: from sakura.ian-justman.com ([127.0.0.1]) by localhost (sakura [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 09084-01 for ; Fri, 5 Sep 2003 16:37:57 -0700 (PDT) Received: from ian-justman.com (fenchurch.netasset.com [207.126.67.194]) by sakura.ian-justman.com (Postfix) with ESMTP id 177A9C8DDCD for ; Fri, 5 Sep 2003 16:37:57 -0700 (PDT) Message-ID: <3F591E54.2000803@ian-justman.com> Date: Fri, 05 Sep 2003 16:37:56 -0700 From: "Ian R. Justman" Organization: Net Asset, Network Operations User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en, ja MIME-Version: 1.0 To: dovecot Subject: Re: [Dovecot] dovecot, vpopmail and djb's tcpserver References: In-Reply-To: X-Enigmail-Version: 0.76.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Sep 2003 23:38:35 -0000 X-UID: 1546 Status: O Content-Length: 1424 Matthias Andree wrote: > "Lasse Danielsen" writes: > > >>Well, what is proper and not can be discussed, I'm sure. I prefer using the >>"botch" as you call it. I assume support for some kind of external >>authentication mechanism need to be supported in dovecot for >>pop/imap-before-smtp. Afaik, vchkpw is one of many such mechanism. I was >>just asking if this had been done before, or if it's currently unsupported. > > > If you really need it today, how about grepping the log for now (but > beware of the infamous time zone!)? You may need to set auth_verbose=yes > though. > > Sep 4 20:07:11 mail imap-login: Login: ma [80.135.11X.XXX] > > That should be sufficient to enable SMTP for a minute or two from that > IP. A couple of lines of Perl around File::Tail should do. Or here's another implementation of the "botch" method: http://www.authd.org This method does not use the system logs, but works by taking cues from a hacked POP3/IMAP server, or in my case, a hacked POP3/IMAP proxy (Perdition). Thankfully, I no longer have to hack my MTA (Postfix) for that side of the equation. ;) I use a snapshot version of Authd, for everyone's information. However, since I implemented SMTP AUTH on my own servers, at some point, I am considering completely phasing out POP-before-SMTP because it's a Very Ugly Kludge(R). Besides, the less I have to hack, the better. ;) --Ian. From charlie@rubberduck.com Sat Sep 6 08:59:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3A1D0238C6; Sat, 6 Sep 2003 08:59:46 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 78FCD23896 for ; Sat, 6 Sep 2003 08:59:11 +0300 (EEST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 8D2188FD7; Sat, 6 Sep 2003 15:55:32 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 501) id 6E7B32423E9; Sat, 6 Sep 2003 15:59:03 +1000 (EST) Date: Sat, 6 Sep 2003 15:59:03 +1000 From: Charlie Allom To: Timo Sirainen Subject: Re: [Dovecot] still getting weird .{inbox} folder creations with latest -test7 Message-ID: <20030906055903.GA6002@myinternet.com.au> References: <20030904073716.GA6696@myinternet.com.au> <1062664123.25301.35.camel@typhaon.ucs.uwa.edu.au> <20030904085336.GA6728@myinternet.com.au> <1062673599.26916.92.camel@hurina> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ZGiS0Q5IWpPtfppv" Content-Disposition: inline In-Reply-To: <1062673599.26916.92.camel@hurina> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Sep 2003 05:59:46 -0000 X-UID: 1547 Status: O --ZGiS0Q5IWpPtfppv Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Sep 04, 2003 at 02:06:39PM +0300, Timo Sirainen wrote: >=20 > That's how Courier-compatible Maildir++ works. If you want subfolders, > you'd create ".sub.folder.name". There's a few good things with this: Great! Thanks for this. > CVS has been optimized to assume all files beginning with a dot (except > .subscriptions currently) are mailboxes.=20 Ah I see. Cheers Timo.. C. --=20 charlie@rubberduck.com - http://rubberduck.com/~yeled/ --ZGiS0Q5IWpPtfppv Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/WXenqiZDwhSqeUERApD8AJ9PikHWwLDbjeDKOd/ysB2FGeC6ywCeICgf lR3i8qbV59/mIqrjuVks3bM= =zU3F -----END PGP SIGNATURE----- --ZGiS0Q5IWpPtfppv-- From lists@ceskyserver.cz Sat Sep 6 14:43:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E37F423896; Sat, 6 Sep 2003 14:43:33 +0300 (EEST) Received: from ceskyserver.cz (wmail.ceskyserver.cz [81.0.235.159]) by danu.procontrol.fi (Postfix) with SMTP id 834872387A for ; Sat, 6 Sep 2003 14:43:01 +0300 (EEST) Received: (qmail 5468 invoked by uid 89); 6 Sep 2003 11:43:53 -0000 Message-ID: <20030906114353.5467.qmail@ceskyserver.cz> References: <20030905154625.4276.qmail@ceskyserver.cz> In-Reply-To: From: "Antonin Karasek" To: dovecot@procontrol.fi Date: Sat, 06 Sep 2003 13:43:53 +0200 Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Dovecot] Re: Dovecot not starting X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Sep 2003 11:43:34 -0000 X-UID: 1548 Status: O Jaldhar H. Vyas writes: > On Fri, 5 Sep 2003, Antonin Karasek wrote: > >> Hello everybody, >> sorry for stupid qustion, but I have following problem: >> I succesfully installed Dovecot on Debian (from source). > > Is there any reason why you can't/don't want to use the dovecot Debian > packages? Yes, I have compiled qmail. So, dpkg don't know, that I have it and want to instal a mail-server. And more - I'm using Debian-stable and Dovecot is only in Debian-unstable (or testing - may be). Do you thing, it is a bug or bad configuration? In attachment is copy of my dovecot.conf. Many thanks :o) > -- > Jaldhar H. Vyas > La Salle Debain - http://www.braincells.com/debian/ From tss@iki.fi Sat Sep 6 20:56:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DCECB238C6; Sat, 6 Sep 2003 20:56:17 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EE74C23896 for ; Sat, 6 Sep 2003 20:55:45 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A47CD5C65485 for ; Sat, 6 Sep 2003 20:55:45 +0300 (EEST) Subject: Re: [Dovecot] Debian bug #201444: More verbose logging From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1062870944.23541.9.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sat, 06 Sep 2003 20:55:45 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Sep 2003 17:56:18 -0000 X-UID: 1549 Status: O O I use now a daemon which logs login (name, ip; as dovecot does), and > logout (with name, logout reason if any special) with the numbers of "read > new mail number and size" and "mail left on server number and size". Would > be nice to have something like that in dovecot. > > Could something like this be added for the next version? Hmm. I think plugins should do that. No-one will agree on what they want to log anyway :) And the above is likely meant just for POP3 users. But I think master process should actually handle logging the user's comings and goings so that they couldn't be faked. Especially logins from imap/pop3-login processes.. imap/pop3 processes could then just tell master process what extra stuff they want logged such as those mail counts and sizes. Maybe master process should handle all logging anyway. Processes would just print to stderr which master process would redirect into proper log file.. From tss@iki.fi Sat Sep 6 20:57:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 65DFF2387A; Sat, 6 Sep 2003 20:57:29 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DEE93238D7 for ; Sat, 6 Sep 2003 20:56:55 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id AC9415C65485 for ; Sat, 6 Sep 2003 20:56:55 +0300 (EEST) Subject: Re: [Dovecot] namespaces From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1689.166.84.167.10.1062609002.squirrel@mail.panix.com> References: <65328.166.84.1.190.1062542706.squirrel@mail.panix.com> <1062607533.26916.80.camel@hurina> <1689.166.84.167.10.1062609002.squirrel@mail.panix.com> Content-Type: text/plain Message-Id: <1062871015.23538.12.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sat, 06 Sep 2003 20:56:55 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Sep 2003 17:57:29 -0000 X-UID: 1550 Status: O On Wed, 2003-09-03 at 20:10, Brian Marcotte wrote: > > How about adding new "inbox = yes" setting to specify that it contains > > INBOX? > > That would work for me! > > > Maybe if [location in namespace section] wasn't set it could use the one > > from userdb. > > Sounds like a good idea. It seems that the location option is most useful > with the shared folders rather than the private ones. These are in CVS now. From tss@iki.fi Sat Sep 6 23:30:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 99B1D238C7; Sat, 6 Sep 2003 23:30:51 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 52F592387A for ; Sat, 6 Sep 2003 23:30:49 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 0F0B05C65485 for ; Sat, 6 Sep 2003 23:30:41 +0300 (EEST) Subject: Re: [Dovecot] Re: Dovecot not starting From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030905162203.4417.qmail@ceskyserver.cz> References: <30F0523D384016498241055B0311A072487209@equital-mail.equital.com> <20030905162203.4417.qmail@ceskyserver.cz> Content-Type: text/plain Message-Id: <1062880240.23533.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sat, 06 Sep 2003 23:30:41 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Sep 2003 20:30:51 -0000 X-UID: 1551 Status: O On Fri, 2003-09-05 at 19:22, Antonin Karasek wrote: > Thanks for fast response :) > > This is copy of syslog: > > Sep 5 17:58:40 cernunnos dovecot: Dovecot starting up > Sep 5 17:58:41 cernunnos dovecot: Auth process died too early - shutting > down > Sep 5 17:58:41 cernunnos dovecot: child 4327 (auth) returned error 11 > Sep 5 17:58:41 cernunnos pop3-login: fd_send(-1) failed: Broken pipe You probably haven't set user's home directory. It's not really needed though, you can get a patch to fix it: http://dovecot.procontrol.fi/auth-home.patch From jaldhar@debian.org Sun Sep 7 04:54:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 91D8D238C6; Sun, 7 Sep 2003 04:54:56 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 7F32223896 for ; Sun, 7 Sep 2003 04:54:24 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id AF3737F67; Sat, 6 Sep 2003 21:54:18 -0400 (EDT) Date: Sat, 6 Sep 2003 21:54:12 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: Antonin Karasek Subject: Re: [Dovecot] Re: Dovecot not starting In-Reply-To: <20030906114353.5467.qmail@ceskyserver.cz> Message-ID: References: <20030905154625.4276.qmail@ceskyserver.cz> <20030906114353.5467.qmail@ceskyserver.cz> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Sep 2003 01:54:56 -0000 X-UID: 1552 Status: O On Sat, 6 Sep 2003, Antonin Karasek wrote: > Yes, I have compiled qmail. So, dpkg don't know, that I have it and want to > instal a mail-server. apt-get install equivs and read its' documentation to find out how to make a "fake" package. > And more - I'm using Debian-stable and Dovecot is only > in Debian-unstable (or testing - may be). > I maintain a backport to woody at http://www.braincells.com/open/ -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From jaldhar@debian.org Sun Sep 7 05:00:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 95379238C7; Sun, 7 Sep 2003 05:00:39 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 114D92387A for ; Sun, 7 Sep 2003 05:00:32 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id D593F7FC1; Sat, 6 Sep 2003 22:00:33 -0400 (EDT) Date: Sat, 6 Sep 2003 22:00:33 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: Timo Sirainen Subject: Re: [Dovecot] Debian bug #201444: More verbose logging In-Reply-To: <1062870944.23541.9.camel@hurina> Message-ID: References: <1062870944.23541.9.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Sep 2003 02:00:40 -0000 X-UID: 1553 Status: O On Sat, 6 Sep 2003, Timo Sirainen wrote: > Maybe master process should handle all logging anyway. Processes would > just print to stderr which master process would redirect into proper log > file.. > I think this is a better solution than plugins. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From lfarkas@bnap.hu Mon Sep 8 19:00:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A37D823896; Mon, 8 Sep 2003 19:00:08 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id B9C252387A for ; Mon, 8 Sep 2003 18:59:34 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by mail1.bppiac.hu (Postfix) with ESMTP id 51D216E4012 for ; Mon, 8 Sep 2003 17:59:22 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 6E65916F8EF; Mon, 8 Sep 2003 17:59:32 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 9D6D116F80A for ; Mon, 8 Sep 2003 17:59:30 +0200 (CEST) Message-ID: <3F5CA758.2080307@bnap.hu> Date: Mon, 08 Sep 2003 17:59:20 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030630 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] what is the current state X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 16:00:09 -0000 X-UID: 1554 Status: O hi, what is the current state of dovecot? is it worth to upgrade now or wait for some release in the near future? -- Levente "Si vis pacem para bellum!" From cras@irccrew.org Mon Sep 8 19:53:21 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D92362387A; Mon, 8 Sep 2003 19:53:21 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id A9AB723896 for ; Mon, 8 Sep 2003 19:52:49 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 7E2A82E030; Mon, 8 Sep 2003 19:52:49 +0300 (EEST) Date: Mon, 8 Sep 2003 19:52:49 +0300 From: Timo Sirainen To: Dovecot List Subject: Re: [Dovecot] what is the current state Message-ID: <20030908165249.GA15533@irccrew.org> References: <3F5CA758.2080307@bnap.hu> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <3F5CA758.2080307@bnap.hu> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 16:53:22 -0000 X-UID: 1555 Status: O On Mon, Sep 08, 2003 at 05:59:20PM +0200, Farkas Levente wrote: > what is the current state of dovecot? is it worth to upgrade now or wait > for some release in the near future? It's probably not a good idea to use CVS yet. There's a few small bugs (which I'll fix today) and it doesn't yet do any smart decisions on what it should save into cache. It might work better than 0.99.10, but I'll probably break the index format a few times more before 0.99.11. I wasted yesterday trying to figure out why Cyrus was faster in simple fetches. Such as fetching UID for 360k mails took a bit over second in Cyrus while Dovecot used two seconds. Annoying :) Probably has something to do with Cyrus printing things directly into stdout while Dovecot copies the data through a couple of buffers. Anyway, I would really like to know if the new indexing code helps with your load problems. It should use much less disk I/O. From esj@harvee.org Mon Sep 8 19:57:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BC05E238C8; Mon, 8 Sep 2003 19:57:10 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 788FB23896 for ; Mon, 8 Sep 2003 19:56:38 +0300 (EEST) Received: from harvee.org (rufus.billerica.ma.us [192.168.0.10]) by harvee.org (8.12.8/8.12.8) with ESMTP id h88GuasC031382 for ; Mon, 8 Sep 2003 12:56:36 -0400 Message-ID: <3F5CB442.9050804@harvee.org> Date: Mon, 08 Sep 2003 12:54:26 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5b) Gecko/20030901 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] what is the current state References: <3F5CA758.2080307@bnap.hu> <20030908165249.GA15533@irccrew.org> In-Reply-To: <20030908165249.GA15533@irccrew.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 16:57:11 -0000 X-UID: 1556 Status: O Timo Sirainen wrote: > Anyway, I would really like to know if the new indexing code helps with your > load problems. It should use much less disk I/O. sounds like this would also help with some of the problems I was having with long delays. Think it would be worth trying? ---eric From cras@irccrew.org Mon Sep 8 20:24:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 56C55238CE; Mon, 8 Sep 2003 20:24:14 +0300 (EEST) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 5DF88238C8 for ; Mon, 8 Sep 2003 20:24:11 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 43F8E2E030; Mon, 8 Sep 2003 20:24:11 +0300 (EEST) Date: Mon, 8 Sep 2003 20:24:11 +0300 From: Timo Sirainen To: Dovecot List Subject: Re: [Dovecot] what is the current state Message-ID: <20030908172411.GB15533@irccrew.org> References: <3F5CA758.2080307@bnap.hu> <20030908165249.GA15533@irccrew.org> <3F5CB442.9050804@harvee.org> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <3F5CB442.9050804@harvee.org> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 17:24:14 -0000 X-UID: 1557 Status: O On Mon, Sep 08, 2003 at 12:54:26PM -0400, Eric S. Johansson wrote: > >Anyway, I would really like to know if the new indexing code helps with > >your > >load problems. It should use much less disk I/O. > > sounds like this would also help with some of the problems I was having > with long delays. Think it would be worth trying? I think your problems were mostly due to general mbox slowness :) mbox support also isn't really working in CVS now. I'd have to figure out some nice algorithm how to quickly write changes to mbox. From esj@harvee.org Mon Sep 8 20:38:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1ECE523993; Mon, 8 Sep 2003 20:38:31 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id C596A238D4 for ; Mon, 8 Sep 2003 20:37:57 +0300 (EEST) Received: from harvee.org (rufus.billerica.ma.us [192.168.0.10]) by harvee.org (8.12.8/8.12.8) with ESMTP id h88HbusC031835 for ; Mon, 8 Sep 2003 13:37:56 -0400 Message-ID: <3F5CBDF2.6040202@harvee.org> Date: Mon, 08 Sep 2003 13:35:46 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5b) Gecko/20030901 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] what is the current state References: <3F5CA758.2080307@bnap.hu> <20030908165249.GA15533@irccrew.org> <3F5CB442.9050804@harvee.org> <20030908172411.GB15533@irccrew.org> In-Reply-To: <20030908172411.GB15533@irccrew.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 17:38:31 -0000 X-UID: 1558 Status: O Timo Sirainen wrote: > On Mon, Sep 08, 2003 at 12:54:26PM -0400, Eric S. Johansson wrote: > > I think your problems were mostly due to general mbox slowness :) mbox > support also isn't really working in CVS now. I'd have to figure out some > nice algorithm how to quickly write changes to mbox. :-) crush dreams why don't you? seriously, on mbox, the best thing we can do is to provide minimal support (i.e. reliable and it works no worse than uw) and make maildir transition as trivial as possible (i.e. switch mbox to maildir on first write). the automatic switching code should be relatively trivial and the process would be something like: Move mbox to mbox-xyxzzy make directory mbox iterate over mbox-xyzzy copying each message into maildir entry. move mbox-xyzzy safe-dir I'm willing to bet that 90 percent of this code exists in dovecot. there are probably a few other guards when they want to put around this code to make it truly safe but I believe it would be really good idea. ---eric From mem@mv.mv.com Mon Sep 8 20:45:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 795E523993; Mon, 8 Sep 2003 20:45:30 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 7703B23998 for ; Mon, 8 Sep 2003 20:44:57 +0300 (EEST) Received: (qmail 27628 invoked by uid 101); 8 Sep 2003 13:44:52 -0400 From: "Mark E. Mallett" Date: Mon, 8 Sep 2003 13:44:52 -0400 To: "Eric S. Johansson" Subject: Re: [Dovecot] what is the current state Message-ID: <20030908174452.GA13163@iridium.mv.net> References: <3F5CA758.2080307@bnap.hu> <20030908165249.GA15533@irccrew.org> <3F5CB442.9050804@harvee.org> <20030908172411.GB15533@irccrew.org> <3F5CBDF2.6040202@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3F5CBDF2.6040202@harvee.org> User-Agent: Mutt/1.4.1i cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 17:45:30 -0000 X-UID: 1559 Status: O On Mon, Sep 08, 2003 at 01:35:46PM -0400, Eric S. Johansson wrote: > Timo Sirainen wrote: > > >On Mon, Sep 08, 2003 at 12:54:26PM -0400, Eric S. Johansson wrote: > > > >I think your problems were mostly due to general mbox slowness :) mbox > >support also isn't really working in CVS now. I'd have to figure out some > >nice algorithm how to quickly write changes to mbox. > > :-) crush dreams why don't you? > > seriously, on mbox, the best thing we can do is to provide minimal > support (i.e. reliable and it works no worse than uw) and make maildir > transition as trivial as possible (i.e. switch mbox to maildir on first > write). I would not consider that to be the best thing. I'm not interested in having our mboxes converted automatically to maildirs. We have systems where each is used, and enviromnents where both are used, by choice. -mm- From esj@harvee.org Mon Sep 8 20:49:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6017123997; Mon, 8 Sep 2003 20:49:15 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 8AB8023994 for ; Mon, 8 Sep 2003 20:49:12 +0300 (EEST) Received: from harvee.org (rufus.billerica.ma.us [192.168.0.10]) by harvee.org (8.12.8/8.12.8) with ESMTP id h88HnBsC032006 for ; Mon, 8 Sep 2003 13:49:11 -0400 Message-ID: <3F5CC095.8050401@harvee.org> Date: Mon, 08 Sep 2003 13:47:01 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5b) Gecko/20030901 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] what is the current state References: <3F5CA758.2080307@bnap.hu> <20030908165249.GA15533@irccrew.org> <3F5CB442.9050804@harvee.org> <20030908172411.GB15533@irccrew.org> <3F5CBDF2.6040202@harvee.org> In-Reply-To: <3F5CBDF2.6040202@harvee.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 17:49:15 -0000 X-UID: 1560 Status: O Eric S. Johansson wrote: > > there > are probably a few other guards when they want to put around this code > urg...speech recognition errors... ...there are probably a few other guards one would want to put around this code... From esj@harvee.org Mon Sep 8 21:17:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 57373238CE; Mon, 8 Sep 2003 21:17:57 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 2E6372387A for ; Mon, 8 Sep 2003 21:17:54 +0300 (EEST) Received: from harvee.org (rufus.billerica.ma.us [192.168.0.10]) by harvee.org (8.12.8/8.12.8) with ESMTP id h88IHpsC032336 for ; Mon, 8 Sep 2003 14:17:51 -0400 Message-ID: <3F5CC74D.5020601@harvee.org> Date: Mon, 08 Sep 2003 14:15:41 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5b) Gecko/20030901 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Subject: Re: [Dovecot] what is the current state References: <3F5CA758.2080307@bnap.hu> <20030908165249.GA15533@irccrew.org> <3F5CB442.9050804@harvee.org> <20030908172411.GB15533@irccrew.org> <3F5CBDF2.6040202@harvee.org> <20030908174452.GA13163@iridium.mv.net> In-Reply-To: <20030908174452.GA13163@iridium.mv.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 18:17:57 -0000 X-UID: 1561 Status: O Content-Length: 1472 Mark E. Mallett wrote: > On Mon, Sep 08, 2003 at 01:35:46PM -0400, Eric S. Johansson wrote: >>seriously, on mbox, the best thing we can do is to provide minimal >>support (i.e. reliable and it works no worse than uw) and make maildir >>transition as trivial as possible (i.e. switch mbox to maildir on first >>write). > > > I would not consider that to be the best thing. I'm not interested > in having our mboxes converted automatically to maildirs. We have > systems where each is used, and enviromnents where both are used, > by choice. I think we're in more agreement than not. Like you, I would not want them to be converted automatically. That is *unless* I set configuration to convert them automatically. mbox accesse is never going to be fast or efficient. If it was possible to make mbox access faster, it would be because enough bright people have thought about the problem to find a solution if there was one. I'm not saying there isn't an undiscovered magic option like marking a message as replaced, writing an updated copy to the end of the file, and sorting out the order at read time. Only that it's highly unlikely. the reason I advocate automatic conversion is that the process is usually painful and error prone when it does not need to be. Someone should be able to turn on dovecot and have the conversion happen automatically and feel confident that they will be able to get their e-mail quickly and reliably. ---eric From tss@iki.fi Mon Sep 8 21:38:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A7ED623993; Mon, 8 Sep 2003 21:38:51 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 954E1238CE for ; Mon, 8 Sep 2003 21:38:47 +0300 (EEST) Date: Mon, 8 Sep 2003 21:39:13 +0300 Subject: Re: [Dovecot] what is the current state Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Dovecot List Content-Transfer-Encoding: 7bit In-Reply-To: <3F5CC74D.5020601@harvee.org> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 18:38:51 -0000 X-UID: 1562 Status: O Content-Length: 1846 On Monday, Sep 8, 2003, at 21:15 Europe/Helsinki, Eric S. Johansson wrote: > mbox accesse is never going to be fast or efficient. If it was > possible to make mbox access faster, it would be because enough bright > people have thought about the problem to find a solution if there was > one. I'm not saying there isn't an undiscovered magic option like > marking a message as replaced, writing an updated copy to the end of > the file, and sorting out the order at read time. Only that it's > highly unlikely. Well .. mbox performance does depend on what the client does. Synchronizing can do all kinds of tricks to speed it up when Dovecot is the only one accessing the mbox. I'll probably do these once I get mbox working in general. Sync optimization would work so that whenever Dovecot modifies mbox or synchronizes it, it keeps the mbox read-locked for at least two seconds. This guarantees that if someone else modifies the mbox, the timestamp changes and we know it. If it doesn't change, our index is up to date and we don't need any syncing. Only problem is that if there's lots of unsynced mailboxes, we don't really want to just keep waiting for those 2 seconds. We'd rather just want to keep the lock and remove it two seconds later. But we don't necessarily want to keep all the mboxes open and eat all available file decriptors.. Maybe it should keep max. 10 mboxes open before waiting for one of them to finish the wait. Expunging can't do much optimizations or it wouldn't be mbox-compatible anymore. But luckily most expunges are done for new messages and then it doesn't have to move that much data. That sync optimization would actually help with your slowdown, if Dovecot also indexed mails at the time they were copied/appended. That also makes UIDPLUS extension possible with little effort.. From mem@mv.mv.com Mon Sep 8 21:57:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8FEF423997; Mon, 8 Sep 2003 21:57:47 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 046AC238C8 for ; Mon, 8 Sep 2003 21:57:45 +0300 (EEST) Received: (qmail 25304 invoked by uid 101); 8 Sep 2003 14:57:43 -0400 From: "Mark E. Mallett" Date: Mon, 8 Sep 2003 14:57:43 -0400 To: "Eric S. Johansson" Subject: Re: [Dovecot] what is the current state Message-ID: <20030908185743.GA24401@iridium.mv.net> References: <3F5CA758.2080307@bnap.hu> <20030908165249.GA15533@irccrew.org> <3F5CB442.9050804@harvee.org> <20030908172411.GB15533@irccrew.org> <3F5CBDF2.6040202@harvee.org> <20030908174452.GA13163@iridium.mv.net> <3F5CC74D.5020601@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3F5CC74D.5020601@harvee.org> User-Agent: Mutt/1.4.1i cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 18:57:47 -0000 X-UID: 1563 Status: O > I think we're in more agreement than not. ah, yep, sounds like it. Autoconversion where desired could be a useful thing. -mm- From warren@togami.com Tue Sep 9 06:55:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 897A123896; Tue, 9 Sep 2003 06:55:00 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 9A3322387A for ; Tue, 9 Sep 2003 06:54:28 +0300 (EEST) Received: from localhost (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id 2D5525D804B for ; Mon, 8 Sep 2003 17:57:22 -1000 (HST) From: Warren Togami To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1063079664.18659.561.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 (1.4.4-5) Date: Mon, 08 Sep 2003 17:54:24 -1000 Content-Transfer-Encoding: 7bit Subject: [Dovecot] squirrelmail + dovecot + qmail + vpopmail error X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Sep 2003 03:55:00 -0000 X-UID: 1564 Status: O ERROR : Could not complete request. Query: COPY 99:99 "INBOX.SPAM" Reason Given: [TRYCREATE] Mailbox doesn't exist: INBOX.SPAM Running latest stable version of squirrelmail, dovecot, qmail and vpopmail with Maildir storage in virtual users. One of my users reports seeing this yesterday, then it went away for a few hours, then early in the next day it happened again on the same account, but went away a little while after that. Any idea what could be happening here? Warren Togami warren@togami.com From lfarkas@bnap.hu Tue Sep 9 12:07:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0222E238C8; Tue, 9 Sep 2003 12:07:21 +0300 (EEST) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 6280923896 for ; Tue, 9 Sep 2003 12:07:18 +0300 (EEST) Received: from mail2.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by mail1.bppiac.hu (Postfix) with ESMTP id 6DCCF6E404E for ; Tue, 9 Sep 2003 11:07:04 +0200 (CEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 9A12316F5FF; Tue, 9 Sep 2003 11:07:16 +0200 (CEST) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 8CEF316F4C3 for ; Tue, 9 Sep 2003 11:07:16 +0200 (CEST) Message-ID: <3F5D9839.9000108@bnap.hu> Date: Tue, 09 Sep 2003 11:07:05 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030630 X-Accept-Language: en-us, en MIME-Version: 1.0 Cc: Dovecot List Subject: Re: [Dovecot] what is the current state References: <3F5CA758.2080307@bnap.hu> <20030908165249.GA15533@irccrew.org> In-Reply-To: <20030908165249.GA15533@irccrew.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Sep 2003 09:07:22 -0000 X-UID: 1565 Status: O Content-Length: 1469 Timo Sirainen wrote: > On Mon, Sep 08, 2003 at 05:59:20PM +0200, Farkas Levente wrote: > >>what is the current state of dovecot? is it worth to upgrade now or wait >>for some release in the near future? > > > It's probably not a good idea to use CVS yet. There's a few small bugs > (which I'll fix today) and it doesn't yet do any smart decisions on what it > should save into cache. > > It might work better than 0.99.10, but I'll probably break the index format > a few times more before 0.99.11. > > I wasted yesterday trying to figure out why Cyrus was faster in simple > fetches. Such as fetching UID for 360k mails took a bit over second in Cyrus > while Dovecot used two seconds. Annoying :) Probably has something to do > with Cyrus printing things directly into stdout while Dovecot copies the > data through a couple of buffers. > > Anyway, I would really like to know if the new indexing code helps with your > load problems. It should use much less disk I/O. as you know we'd a lot of problem with dovecot at the begining (with stability and the load). now there is one version of dovecot (a cvs around 99.10) which still has a high load, but work both with mozilla and OE6. this's a production system about 300 user so we can't play with it too much. that was the reason why I ask it. try now or wait a bit more? but as I see it's better to wait a bit more... thanks. -- Levente "Si vis pacem para bellum!" From david@rohr.se Tue Sep 9 14:09:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 39DF42387F; Tue, 9 Sep 2003 14:09:48 +0300 (EEST) Received: from angelica.rajraj.net (angelica.rajraj.net [217.151.192.103]) by danu.procontrol.fi (Postfix) with ESMTP id CEC242384C for ; Tue, 9 Sep 2003 14:09:14 +0300 (EEST) Received: from angelica.rajraj.net (localhost [127.0.0.1]) h89B9BMD005795 for ; Tue, 9 Sep 2003 13:09:11 +0200 Received: (from david@localhost) by angelica.rajraj.net (8.12.9/8.12.6/Debian-5) id h89B9A8u005791 for dovecot@procontrol.fi; Tue, 9 Sep 2003 13:09:10 +0200 X-Authentication-Warning: angelica.rajraj.net: david set sender to david@rohr.se using -f Date: Tue, 9 Sep 2003 13:09:10 +0200 From: David =?iso-8859-1?Q?R=F6hr?= To: dovecot@procontrol.fi Message-ID: <20030909110910.GA5483@angelica.rajraj.net> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.4.1i X-AllYourBaseAreBelongTo: Us X-Warning: Junk / bulk email will be reported: http://rohr.nu/nospam.php X-Crypto: GnuPG/1.2.2-1 http://www.gnupg.org X-GPG-Fingerprint: 71AD 5E55 2B2E 8B7D 524F EC36 9C11 AE32 548A 5ECF X-Uptime: 14:01 X-URL: http://www.rohr.se/ X-Accept-Language: sv en de X-Location: Europe, Sweden, Stockholm Subject: [Dovecot] Problem with mbox files. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Sep 2003 11:09:48 -0000 X-UID: 1566 Status: O Content-Length: 1153 I have trouble to get my INBOX-mbox to work properly. I have set the default_mail_env, to this.. "default_mail_env = mbox:~/mail/:INBOX=/var/mail/%u" Since my users are using thier home-dirs to store folders and old mails, and recieving them in /var/mail/username. But when logging in i get this.. Sep 9 12:25:23 angelica imap-login: Login: username [217.151.192.103] Sep 9 12:25:23 angelica imap(username): stat() failed with mbox file /var/mail/username : No such file or directory Just like the file wasn't there?! But checking.. .~ > ls -l /var/mail/username 1200 -rw-rw---- 1 username mail 1222055 Sep 9 12:16 /var/mail/username I can see that it is there, and containing mails.. It's not corrupt or anything like that. And its not a link of any kind. Why am I getting this error? And how do I solve it? I've tested to disable chroots, but get the same error... /d -- ... david röhr | o_ .. unix systems consultant | o/ /\ Solaris, AIX, HP-UX . qbranch system management | /|_, \\ and GNU/Linux Certified. www.qbranch.se / ` From tss@iki.fi Tue Sep 9 16:09:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 510F92387F; Tue, 9 Sep 2003 16:09:16 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6DC582387A for ; Tue, 9 Sep 2003 16:08:44 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 391AF5C65485 for ; Tue, 9 Sep 2003 16:08:44 +0300 (EEST) Subject: Re: [Dovecot] Problem with mbox files. From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030909110910.GA5483@angelica.rajraj.net> References: <20030909110910.GA5483@angelica.rajraj.net> Content-Type: text/plain; charset=iso-8859-15 Message-Id: <1063112923.9345.34.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 09 Sep 2003 16:08:44 +0300 Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Sep 2003 13:09:16 -0000 X-UID: 1567 Status: O On Tue, 2003-09-09 at 14:09, David Röhr wrote: > "default_mail_env = mbox:~/mail/:INBOX=/var/mail/%u" > Sep 9 12:25:23 angelica imap(username): stat() failed with mbox file > /var/mail/username : No such file or directory Do you have space after the %u? Dovecot thinks it belongs to the mailbox name. From david@rohr.se Tue Sep 9 16:12:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 442C123896; Tue, 9 Sep 2003 16:12:03 +0300 (EEST) Received: from angelica.rajraj.net (angelica.rajraj.net [217.151.192.103]) by danu.procontrol.fi (Postfix) with ESMTP id B26B12387F for ; Tue, 9 Sep 2003 16:12:01 +0300 (EEST) Received: from angelica.rajraj.net (localhost [127.0.0.1]) h89DC0MD014075 for ; Tue, 9 Sep 2003 15:12:00 +0200 Received: (from david@localhost) by angelica.rajraj.net (8.12.9/8.12.6/Debian-5) id h89DC08I014074 for dovecot@procontrol.fi; Tue, 9 Sep 2003 15:12:00 +0200 X-Authentication-Warning: angelica.rajraj.net: david set sender to david@rohr.se using -f Date: Tue, 9 Sep 2003 15:12:00 +0200 From: David =?iso-8859-1?Q?R=F6hr?= To: dovecot@procontrol.fi Subject: Re: [Dovecot] Problem with mbox files. Message-ID: <20030909131200.GA13825@angelica.rajraj.net> References: <20030909110910.GA5483@angelica.rajraj.net> <1063112923.9345.34.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1063112923.9345.34.camel@hurina> User-Agent: Mutt/1.4.1i X-AllYourBaseAreBelongTo: Us X-Warning: Junk / bulk email will be reported: http://rohr.nu/nospam.php X-Crypto: GnuPG/1.2.2-1 http://www.gnupg.org X-GPG-Fingerprint: 71AD 5E55 2B2E 8B7D 524F EC36 9C11 AE32 548A 5ECF X-Uptime: 16:06 X-URL: http://www.rohr.se/ X-Accept-Language: sv en de X-Location: Europe, Sweden, Stockholm X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Sep 2003 13:12:03 -0000 X-UID: 1568 Status: O On Tue, 09 Sep 2003 [16:08], Timo Sirainen (tss@iki.fi) wrote: > On Tue, 2003-09-09 at 14:09, David Röhr wrote: > > "default_mail_env = mbox:~/mail/:INBOX=/var/mail/%u" > > > Sep 9 12:25:23 angelica imap(username): stat() failed with mbox file > > /var/mail/username : No such file or directory > > Do you have space after the %u? Dovecot thinks it belongs to the mailbox > name. You are my saviour. That was the case! Haha, I can't realy see how I didn't see that before. Been looking everywhere for the bug. Thanks! /d -- ... david röhr | o_ .. unix systems consultant | o/ /\ Solaris, AIX, HP-UX . qbranch system management | /|_, \\ and GNU/Linux Certified. www.qbranch.se / ` From tss@iki.fi Tue Sep 9 18:36:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A019023896; Tue, 9 Sep 2003 18:36:13 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id D34CA2387A for ; Tue, 9 Sep 2003 18:36:11 +0300 (EEST) Date: Tue, 9 Sep 2003 18:36:37 +0300 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <668CB2EA-E2DB-11D7-8771-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) Subject: [Dovecot] Web administration tool X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Sep 2003 15:36:13 -0000 X-UID: 1569 Status: O Any suggestions for a small web based tool to manage virtual domains/users? I tried to look but didn't really find anything that didn't seem to be tightly integrated with Courier or Cyrus, and I'd rather not spend time writing yet another one of those. I would be using Postfix and Squirrelmail with LDAP or PostgreSQL. On a somewhat related thought, I've been thinking about writing some kind of performance and statistics tool which would at least show the users who are logged in and how much CPU, memory and disk I/O they're eating so that you could see what's happening when load is too high. From Dovecot side that'd be done using a plugin. I'm not sure what the client side would be.. HTML might not be enough. Java maybe. Would Flash be too evil? :) From mem@mv.mv.com Tue Sep 9 18:42:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 02C7D2387A; Tue, 9 Sep 2003 18:42:31 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id A847F2384C for ; Tue, 9 Sep 2003 18:41:57 +0300 (EEST) Received: (qmail 10836 invoked by uid 101); 9 Sep 2003 11:41:52 -0400 From: "Mark E. Mallett" Date: Tue, 9 Sep 2003 11:41:52 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Web administration tool Message-ID: <20030909154152.GD10814@iridium.mv.net> References: <668CB2EA-E2DB-11D7-8771-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <668CB2EA-E2DB-11D7-8771-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Sep 2003 15:42:31 -0000 X-UID: 1570 Status: O > > On a somewhat related thought, I've been thinking about writing some > kind of performance and statistics tool which would at least show the > users who are logged in and how much CPU, memory and disk I/O they're > eating so that you could see what's happening when load is too high. > From Dovecot side that'd be done using a plugin. I'm not sure what the > client side would be.. HTML might not be enough. Java maybe. Would > Flash be too evil? :) I'd say java would be evil and Flash would be unconscionable :-) mm From lists@pote.com Tue Sep 9 21:03:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4D3D7238B6; Tue, 9 Sep 2003 21:03:17 +0300 (EEST) Received: from gull.mail.pas.earthlink.net (gull.mail.pas.earthlink.net [207.217.120.84]) by danu.procontrol.fi (Postfix) with ESMTP id 22BD22387A for ; Tue, 9 Sep 2003 21:02:45 +0300 (EEST) Received: from user-0cceuil.cable.mindspring.com ([24.199.122.85] helo=X31.earthlink.net) by gull.mail.pas.earthlink.net with esmtp (Exim 3.33 #1) id 19wmp7-0004wB-00 for dovecot@procontrol.fi; Tue, 09 Sep 2003 11:02:42 -0700 Date: Tue, 9 Sep 2003 14:02:46 -0400 (Eastern Daylight Time) From: Paul Adams To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Mailman-Approved-At: Tue, 09 Sep 2003 21:32:43 +0300 Subject: [Dovecot] PC-Pine "Junk in end of group" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Sep 2003 18:03:17 -0000 X-UID: 1571 Status: O I am running PC-Pine under Windows XP, connecting via SSL to a Dovecot IMAP server (0.99.10-2 under Debian woody). When I open a mail folder (mbox format) in Pine I get the following non-fatal error: [Junk in end of group: pn=undisclosed-recipients al= dn=] A similar error was reported to comp.mail.pine as happening with a Lotus Domino server. Mark Crispin explained it as a server-side bug: http://groups.google.com/groups?hl=en&lr=lang_en&ie=UTF-8&safe=off&threadm=4192a0ec.0307090631.32e1a815%40posting.google.com&rnum=1&prev=/groups%3Fq%3D%2522junk%2Bin%2Bend%2Bof%2Bgroup%2522%26hl%3Den%26lr%3Dlang_en%26ie%3DUTF-8%26safe%3Doff%26selm%3D4192a0ec.0307090631.32e1a815%2540posting.google.com%26rnum%3D1 Is this something that can be easily fixed? Paul From tss@iki.fi Tue Sep 9 21:52:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2622B238C8; Tue, 9 Sep 2003 21:52:27 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5F133238B6; Tue, 9 Sep 2003 21:52:25 +0300 (EEST) Date: Tue, 9 Sep 2003 21:52:51 +0300 Subject: Re: [Dovecot] PC-Pine "Junk in end of group" Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: Paul Adams From: Timo Sirainen In-Reply-To: Message-Id: Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) X-Spam-Status: No, hits=-6.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO, PATCH_UNIFIED_DIFF,QUOTED_EMAIL_TEXT,RCVD_IN_OSIRUSOFT_COM, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Sep 2003 18:52:27 -0000 X-UID: 1572 Status: O On Tuesday, Sep 9, 2003, at 21:02 Europe/Helsinki, Paul Adams wrote: > I am running PC-Pine under Windows XP, connecting via SSL to a Dovecot > IMAP server (0.99.10-2 under Debian woody). When I open a mail folder > (mbox format) in Pine I get the following non-fatal error: > > [Junk in end of group: pn=undisclosed-recipients al= dn=] I think this patch fixes it: diff -u -r1.6 message-address.c --- src/lib-mail/message-address.c 17 Jul 2003 14:50:45 -0000 1.6 +++ src/lib-mail/message-address.c 9 Sep 2003 18:51:52 -0000 @@ -196,7 +196,7 @@ /* beginning of group */ addr = new_address(pool, &next_addr); max_addresses--; - addr->name = p_strdup(pool, str_c(mailbox)); + addr->mailbox = p_strdup(pool, str_c(mailbox)); str_truncate(mailbox, 0); str_truncate(comment, 0); From bakirov@transfer.kg Wed Sep 10 06:12:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9B6B3238B6; Wed, 10 Sep 2003 06:12:18 +0300 (EEST) Received: from mail.transfer.kg (unknown [81.88.192.10]) by danu.procontrol.fi (Postfix) with ESMTP id 00E9923896 for ; Wed, 10 Sep 2003 06:11:44 +0300 (EEST) Received: by mail.transfer.kg (Postfix, from userid 503) id 9DF93340F6; Wed, 10 Sep 2003 09:09:51 +0600 (KGST) Received: from dotcoder.transfer.kg (unknown [81.88.192.7]) by mail.transfer.kg (Postfix) with ESMTP id 74EEF340E7 for ; Wed, 10 Sep 2003 09:09:51 +0600 (KGST) From: Meder Bakirov Organization: Transfer Ltd. To: dovecot@procontrol.fi Subject: Re: [Dovecot] Web administration tool Date: Wed, 10 Sep 2003 09:09:38 +0600 User-Agent: KMail/1.5.3 References: <668CB2EA-E2DB-11D7-8771-000393CC2E90@iki.fi> <20030909154152.GD10814@iridium.mv.net> In-Reply-To: <20030909154152.GD10814@iridium.mv.net> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200309100909.49192.bakirov@transfer.kg> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: bakirov@transfer.kg List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Sep 2003 03:12:18 -0000 X-UID: 1573 Status: O -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I would vote for a Java (JSP, servlets) and/or for PHP. On Tuesday 09 September 2003 21:41, Mark E. Mallett wrote: > > On a somewhat related thought, I've been thinking about writing some > > kind of performance and statistics tool which would at least show the > > users who are logged in and how much CPU, memory and disk I/O they're > > eating so that you could see what's happening when load is too high. > > From Dovecot side that'd be done using a plugin. I'm not sure what the > > client side would be.. HTML might not be enough. Java maybe. Would > > Flash be too evil? :) > > I'd say java would be evil and Flash would be unconscionable :-) > > mm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/XpX8iHZXWv0HWscRAihZAJ9evJUXs6R4bXDr2nzbeouCBb96YQCcC0Vg LmOoCT9SzGcy0bzy1KmSKOw= =h0xw -----END PGP SIGNATURE----- From david@madole.net Wed Sep 10 21:37:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8052423896; Wed, 10 Sep 2003 21:37:12 +0300 (EEST) Received: from omdev.com (dhcp-209-54-72-175.ct.dsl.ntplx.com [209.54.72.175]) by danu.procontrol.fi (Postfix) with ESMTP id 794E02387A for ; Wed, 10 Sep 2003 21:36:37 +0300 (EEST) Received: from [209.54.72.175] (helo=madole.net) by omdev.com with smtp (Exim 4.20) id 19x9pU-000OMe-Ob for dovecot@procontrol.fi; Wed, 10 Sep 2003 14:36:36 -0400 Received: from 12.148.10.20 (SquirrelMail authenticated user david@madole.net) by www.omdev.com with HTTP; Wed, 10 Sep 2003 14:36:36 -0400 (EDT) Message-ID: <57695.12.148.10.20.1063218996.squirrel@www.omdev.com> Date: Wed, 10 Sep 2003 14:36:36 -0400 (EDT) From: "David S Madole" To: X-Priority: 3 Importance: Normal X-Mailer: SquirrelMail (version 1.2.10) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Subject: [Dovecot] Patch for auto-creating home directories X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Sep 2003 18:37:12 -0000 X-UID: 1574 Status: O Content-Length: 3690 I've created a patch that adds a feature that is helpful to my setup. If 'parent_dir_umask' is set in the configuration file, any missing directories in the home directory path are created. The home directory itself is created according to the 'umask' setting, 'parent_dir_umask' is only used for intermediate directories that might need creating. This is useful to me, as I pull user information from a PostgreSQL database. This allows a new account to be created just by populating the database. The directory gets created the first time the user logs in (by Dovecot) or mail is received (by the MTA). As the patch is of modest length, I have included it below. I hope my meager skills are not an insult to the beatiful Dovecot code base! Thanks, David *** ./src/master/mail-process.c.orig Wed Sep 10 10:14:04 2003 --- ./src/master/mail-process.c Wed Sep 10 12:16:06 2003 *************** *** 95,100 **** --- 95,136 ---- return str_c(str); } + static int create_directories(const char *directory, mode_t mask) + { + char *chunk, *slash, *path; + mode_t oldmask; + int result; + + if (mkdir(directory, 0777) == 0 || errno == EEXIST) + return TRUE; + + if (errno != ENOENT) + return FALSE; + + path = t_strdup_noconst(directory); + + oldmask = umask(mask); + + for (chunk = path; (slash = strchr(chunk, '/')); chunk = slash + 1) { + + if (slash > chunk) { + + *slash = '\0'; + result = mkdir(path, 0777); + *slash = '/'; + + if (result != 0 && errno != EEXIST) { + umask(oldmask); + return FALSE; + } + } + } + + umask(oldmask); + + return (mkdir(path, 0777) == 0 || errno == EEXIST); + } + int create_mail_process(int socket, struct ip_addr *ip, const char *executable, const char *module_dir, unsigned int process_size, int process_type, *************** *** 156,164 **** --- 192,205 ---- restrict_process_size(process_size, (unsigned int)-1); + (void)umask(set->umask); + if (*home_dir != '\0') { full_home_dir = *chroot_dir == '\0' ? home_dir : t_strconcat(chroot_dir, "/", home_dir, NULL); + if (set->parent_dir_umask != 0777 && + !create_directories(full_home_dir, set->parent_dir_umask)) + i_fatal("mkdir(%s) failed: %m", full_home_dir); if (chdir(full_home_dir) < 0) i_fatal("chdir(%s) failed: %m", full_home_dir); } *************** *** 188,194 **** env_put("MAILDIR_CHECK_CONTENT_CHANGES=1"); if (set->mail_full_filesystem_access) env_put("FULL_FILESYSTEM_ACCESS=1"); - (void)umask(set->umask); env_put(t_strconcat("MBOX_LOCKS=", set->mbox_locks, NULL)); env_put(t_strdup_printf("MBOX_LOCK_TIMEOUT=%u", --- 229,234 ---- *** ./src/master/master-settings.h.orig Wed Sep 10 12:13:45 2003 --- ./src/master/master-settings.h Wed Sep 10 12:13:47 2003 *************** *** 51,56 **** --- 51,57 ---- int mbox_read_dotlock; unsigned int mbox_lock_timeout; unsigned int mbox_dotlock_change_timeout; + unsigned int parent_dir_umask; unsigned int umask; int mail_drop_priv_before_exec; *** ./src/master/master-settings.c.orig Wed Sep 10 12:13:59 2003 --- ./src/master/master-settings.c Wed Sep 10 12:14:40 2003 *************** *** 67,72 **** --- 67,73 ---- DEF(SET_BOOL, mbox_read_dotlock), DEF(SET_INT, mbox_lock_timeout), DEF(SET_INT, mbox_dotlock_change_timeout), + DEF(SET_INT, parent_dir_umask), DEF(SET_INT, umask), DEF(SET_BOOL, mail_drop_priv_before_exec), *************** *** 180,185 **** --- 181,187 ---- MEMBER(mbox_read_dotlock) FALSE, MEMBER(mbox_lock_timeout) 300, MEMBER(mbox_dotlock_change_timeout) 30, + MEMBER(parent_dir_umask) 0777, MEMBER(umask) 0077, MEMBER(mail_drop_priv_before_exec) FALSE, From peter-clark@bethel.edu Thu Sep 11 18:39:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BC3B423896; Thu, 11 Sep 2003 18:39:31 +0300 (EEST) Received: from m1.ispmail.dnbsi.com (m1.dnbsi.com [198.136.194.44]) by danu.procontrol.fi (Postfix) with ESMTP id C800323887 for ; Thu, 11 Sep 2003 18:38:59 +0300 (EEST) Received: from 0-2pool130-132.nas4.minneapolis1.mn.us.da.qwest.net (0-2pool130-132.nas4.minneapolis1.mn.us.da.qwest.net [67.4.130.132]) by m1.ispmail.dnbsi.com (Postfix) with ESMTP id 4A2ED8FC7A for ; Thu, 11 Sep 2003 08:38:57 -0700 (PDT) From: Peter Clark To: dovecot@procontrol.fi Date: Thu, 11 Sep 2003 10:27:25 -0500 User-Agent: KMail/1.5.3 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200309111027.25544.peter-clark@bethel.edu> Subject: [Dovecot] Setting up a local shared mailbox X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Sep 2003 15:39:31 -0000 X-UID: 1575 Status: O One: I have never set up an IMAP server before, so I thought I would ask first before blindly stumbling around. The problem I am want to solve is this: my wife and I have a "joint" email account that we both want to access (we also have our own personal accounts, but that's beside the point.) I posed the question to my local LUG, and several suggested setting up a local IMAP server so that we can both access it through KMail. Would you concur? If so, is there a tutorial or something similar that gives instructions for setting up dovecot locally? As I said, I've never set up an IMAP server before, and I'm not really sure how to go about it. (I'm running Debian Sid, so the packages are already installed, but I don't know what additional steps need to be taken.) Thanks for your help, :Peter From rjhjr@cox.net Thu Sep 11 23:29:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E92FE238B6; Thu, 11 Sep 2003 23:29:32 +0300 (EEST) Received: from lakemtao03.cox.net (lakemtao03.cox.net [68.1.17.242]) by danu.procontrol.fi (Postfix) with ESMTP id 0DBE02387F for ; Thu, 11 Sep 2003 23:29:00 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao03.cox.net (InterMail vM.5.01.06.05 201-253-122-130-105-20030824) with SMTP id <20030911202857.HWSF9576.lakemtao03.cox.net@kongemord.krig.net> for ; Thu, 11 Sep 2003 16:28:57 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Thu, 11 Sep 2003 16:28:58 -0400 From: "Bob Hall" Date: Thu, 11 Sep 2003 16:28:58 -0400 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Setting up a local shared mailbox Message-ID: <20030911202858.GI86658@kongemord.krig.net> Mail-Followup-To: dovecot@procontrol.fi References: <200309111027.25544.peter-clark@bethel.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200309111027.25544.peter-clark@bethel.edu> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Sep 2003 20:29:33 -0000 X-UID: 1576 Status: O Content-Length: 3338 On Thu, Sep 11, 2003 at 10:27:25AM -0500, Peter Clark wrote: > One: I have never set up an IMAP server before, so I thought I would ask > first before blindly stumbling around. The problem I am want to solve is > this: my wife and I have a "joint" email account that we both want to access > (we also have our own personal accounts, but that's beside the point.) I > posed the question to my local LUG, and several suggested setting up a local > IMAP server so that we can both access it through KMail. Would you concur? If > so, is there a tutorial or something similar that gives instructions for > setting up dovecot locally? As I said, I've never set up an IMAP server > before, and I'm not really sure how to go about it. (I'm running Debian Sid, > so the packages are already installed, but I don't know what additional steps > need to be taken.) I just finished doing the same thing, and there really isn't any documentation specific to this. Read the documentation on the dovecot web site. Also, Timo has set up a Wiki at http://dovecot.procontrol.fi/dovewiki Immediately above the word "MoinMoinWiki" is a link to the contents. The troubleshooting section may be helpful. Any one can contribute a new topic or edit an existing one, so someone who solved problems not currently documented could add to the troubleshooting guide or even write a guide to setting up dovecot for your specific needs. Hint. Hint. Wink. Wink. Nudge. Nudge. What you want to do is very easy if you avoid all the mistakes I made. Most of my mistakes involved the interaction between Dovecot and LDAP. If you use the passwd file for authentication, it becomes much easier. (I.e. there are fewer opportunities for making mistakes.) Post questions and people will try to answer them. Here's a rough outline of my system: This is handled on a FreeBSD box. getmail imports mail from various POP3 accounts with a couple of ISPs. getmail runs under a postoffice account (normal Unix user) that runs mail-related cron jobs and performs other mail-admin tasks. POP3-to- IMAP accounts are 1-to-1; e.g. mail at the POP3 account wibble@isp.net is imported to /var/mail/wibble/inbox. All accounts are virtual; none of the accounts are mentioned in passwd. I use LDAP to store account names and passwords, but there are other solutions. The easiest is probably 'static' (see Timo's documentation). Each account has a directory in /var/mail; e.g. the account wibble has its mail in /var/mail/wibble. The directories in /var/mail are all owned by the postoffice account. I don't know what the Linux equivalent of /var/mail would be. I'm using the mbox format for mailboxes, because the mailboxes were already in that format when I imported them to Dovecot. I found a script for converting them to maildir, but I'm busy and mbox works, and I may never get around to it. Outgoing mail goes directly from the MUA to the outside account. Since every /var/mail/wibble corresponds to a wibble@isp.net, I don't need to do anything except set up the MUA to send outgoing mail to the SMTP server at the ISP, exactly as you are probably doing now. We offer no services on the Internet, so the firewall and hosts.allow file both refuse connection attempts from outside the LAN. This makes security relatively easy. Bob Hall From warren@togami.com Fri Sep 12 06:32:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 46C77238B6; Fri, 12 Sep 2003 06:32:19 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 124FF2387F for ; Fri, 12 Sep 2003 06:31:46 +0300 (EEST) Received: from localhost (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id 17EE25D8060 for ; Thu, 11 Sep 2003 17:35:25 -1000 (HST) From: Warren Togami To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1063337498.9924.3.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 (1.4.4-5) Date: Thu, 11 Sep 2003 17:31:39 -1000 Content-Transfer-Encoding: 7bit Subject: [Dovecot] dovecot IMAP misserving problem? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Sep 2003 03:32:19 -0000 X-UID: 1577 Status: O http://togami.com/~warren/archive/2003/evolution-1.4.4-crash.mbox I suspect that dovecot-0.99.10 is misserving this message in some way that is confusing some IMAP clients. This behavior causes evolution-1.4.4 to segfault, and squirrelmail-1.4.1 to be unable to read the message. The same message served by uw-imapd works works fine in both evolution and squirrelmail. https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=104288 Red Hat Bugzilla dovecot report https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=104289 Red Hat Bugzilla evolution segfault report http://bugzilla.ximian.com/show_bug.cgi?id=48418 Ximian evolution segfault report From kyler@lairds.com Fri Sep 12 02:43:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E04EB23887; Fri, 12 Sep 2003 02:43:24 +0300 (EEST) Received: from ns.purdue.org (ns.purdue.org [206.230.5.18]) by danu.procontrol.fi (Postfix) with ESMTP id 7B7302387F for ; Fri, 12 Sep 2003 02:42:51 +0300 (EEST) Received: from portproxy by ns.purdue.org with local (Exim 3.36 #1 (Debian)) id 19xb5N-0004ew-00 for ; Thu, 11 Sep 2003 18:42:49 -0500 Received: from kyler by lairds.com with local (masqmail 0.2.20) id 19xb3D-8El-00; Thu, 11 Sep 2003 18:40:35 -0500 Date: Thu, 11 Sep 2003 18:40:35 -0500 From: Kyler Laird To: grahame@ucs.uwa.edu.au Message-ID: <20030911234035.GF24978@jowls> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i X-Mailman-Approved-At: Fri, 12 Sep 2003 15:44:07 +0300 cc: dovecot@procontrol.fi Subject: [Dovecot] Dovecot on Linux 2.6.0-test1-ac1 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: kyler-dated-1063582650.97713a@lairds.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Sep 2003 23:43:25 -0000 X-UID: 1578 Status: O I've been using Dovecot on 2.6.0-test1 for quite awhile but today I jumped ahead to test5 and it broke in the way you described. http://dovecot.procontrol.fi/list/dovecot/2003-July/001943.html I used your workaround and now everyone is back in business. Thank you for the help! (I was sweating there for a bit.) --kyler From peter-clark@bethel.edu Fri Sep 12 19:55:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ED19E238B6; Fri, 12 Sep 2003 19:55:38 +0300 (EEST) Received: from m1.ispmail.dnbsi.com (m1.dnbsi.com [198.136.194.44]) by danu.procontrol.fi (Postfix) with ESMTP id 3E64D23887 for ; Fri, 12 Sep 2003 19:55:05 +0300 (EEST) Received: from 0-1pool205-129.nas29.minneapolis1.mn.us.da.qwest.net (0-1pool205-129.nas29.minneapolis1.mn.us.da.qwest.net [67.4.205.129]) by m1.ispmail.dnbsi.com (Postfix) with ESMTP id A62398FC69 for ; Fri, 12 Sep 2003 09:54:59 -0700 (PDT) From: Peter Clark To: dovecot@procontrol.fi Subject: Re: [Dovecot] Setting up a local shared mailbox Date: Fri, 12 Sep 2003 11:54:56 -0500 User-Agent: KMail/1.5.3 References: <200309111027.25544.peter-clark@bethel.edu> <20030911202858.GI86658@kongemord.krig.net> In-Reply-To: <20030911202858.GI86658@kongemord.krig.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200309121154.57436.peter-clark@bethel.edu> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dovecot@procontrol.fi List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Sep 2003 16:55:39 -0000 X-UID: 1579 Status: O Content-Length: 1349 On Thursday 11 September 2003 03:28 pm, Bob Hall wrote: > I just finished doing the same thing, and there really isn't any > documentation specific to this. Read the documentation on the dovecot > web site. Also, Timo has set up a Wiki at > http://dovecot.procontrol.fi/dovewiki This was helpful, especially the "cheat sheet." Here's my setup: base_dir = /var/run/dovecot/ protocols = imap imap_listen = * ssl_disable = yes login_chroot = yes login = imap login_executable = /usr/lib/dovecot/imap-login login_user = dovecot verbose_proctitle = yes valid_chroot_dirs = /var/mail default_mail_env = maildir:/var/mail/theclarks imap_executable = /usr/lib/dovecot/imap auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = pam auth_executable = /usr/lib/dovecot/dovecot-auth auth_user = root auth_verbose = yes Almost everything works fine, although I'm concerned about 'imap_listen = *'. Is there any way to restrict this to just localhost? I tried 'imap_listen = localhost', but that didn't seem to work. (Ditto with 127.0.0.1). (The other problem is that KMail doesn't indicate new messages in the folder, so the only way to see if there are new messages is to click on the folder itself, but that's off-topic, I suppose.) Suggestions? :Peter -- Oh what a tangled web they weave who try a new word to conceive! From rjhjr@cox.net Fri Sep 12 21:42:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C133F238C5; Fri, 12 Sep 2003 21:42:59 +0300 (EEST) Received: from lakemtao04.cox.net (lakemtao04.cox.net [68.1.17.241]) by danu.procontrol.fi (Postfix) with ESMTP id DF64423887 for ; Fri, 12 Sep 2003 21:42:26 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao04.cox.net (InterMail vM.5.01.06.05 201-253-122-130-105-20030824) with SMTP id <20030912184226.VQTX29227.lakemtao04.cox.net@kongemord.krig.net> for ; Fri, 12 Sep 2003 14:42:26 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Fri, 12 Sep 2003 14:42:25 -0400 From: "Bob Hall" Date: Fri, 12 Sep 2003 14:42:25 -0400 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Setting up a local shared mailbox Message-ID: <20030912184224.GA3173@kongemord.krig.net> Mail-Followup-To: dovecot@procontrol.fi References: <200309111027.25544.peter-clark@bethel.edu> <20030911202858.GI86658@kongemord.krig.net> <200309121154.57436.peter-clark@bethel.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200309121154.57436.peter-clark@bethel.edu> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Sep 2003 18:42:59 -0000 X-UID: 1580 Status: O Content-Length: 1682 On Fri, Sep 12, 2003 at 11:54:56AM -0500, Peter Clark wrote: > auth_passdb = pam > auth_user = root I thought you didn't need to be root to authenticate with PAM? If you can do this as dovecot-auth, it will be more secure. > > Almost everything works fine, although I'm concerned about 'imap_listen = *'. > Is there any way to restrict this to just localhost? I tried 'imap_listen = > localhost', but that didn't seem to work. (Ditto with 127.0.0.1). (The other If you set it to localhost, then you can only access mail from the one machine. I was under the impression that you were trying to access mail from more than one machine on your LAN. If not, then I'm not sure what IMAP is doing for you. I haven't tried setting it to the loopback interface. I did set it to the LAN interface, but that eliminated loopback. Since I want both, I set it back to *. That means that it's also listening on the Internet interface, but the firewall and permissions are both blocking any connections there, so we're probably pretty secure. Regarding the cheatsheet: I got the idea from McKusick's site at www.mostgraveconcern.com. It seems to be a good way of packing the maximum info into the minimum space. Sort of like an extra-terse man page. A series of cheatsheets for specific implementations might be the fastest, easiest way of supplementing the existing documentation. Since it consists only of the config files without comments, perhaps other people could edit their files and contribute them? Particularly for unusual setups? Also, if you find a solution to a specific problem, please consider adding it to the troubleshooting guide on the Wiki. Bob Hall From peter-clark@bethel.edu Fri Sep 12 23:54:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2BC4623887; Fri, 12 Sep 2003 23:54:26 +0300 (EEST) Received: from m1.ispmail.dnbsi.com (m1.dnbsi.com [198.136.194.44]) by danu.procontrol.fi (Postfix) with ESMTP id 735402387F for ; Fri, 12 Sep 2003 23:54:21 +0300 (EEST) Received: from 0-1pool204-179.nas29.minneapolis1.mn.us.da.qwest.net (0-1pool204-179.nas29.minneapolis1.mn.us.da.qwest.net [67.4.204.179]) by m1.ispmail.dnbsi.com (Postfix) with ESMTP id DA2898FD1F for ; Fri, 12 Sep 2003 13:54:17 -0700 (PDT) From: Peter Clark To: dovecot@procontrol.fi Subject: Re: [Dovecot] Setting up a local shared mailbox Date: Fri, 12 Sep 2003 15:54:14 -0500 User-Agent: KMail/1.5.3 References: <200309111027.25544.peter-clark@bethel.edu> <200309121154.57436.peter-clark@bethel.edu> <20030912184224.GA3173@kongemord.krig.net> In-Reply-To: <20030912184224.GA3173@kongemord.krig.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200309121554.14426.peter-clark@bethel.edu> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dovecot@procontrol.fi List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Sep 2003 20:54:26 -0000 X-UID: 1581 Status: O Content-Length: 1477 On Friday 12 September 2003 01:42 pm, Bob Hall wrote: > On Fri, Sep 12, 2003 at 11:54:56AM -0500, Peter Clark wrote: > > auth_passdb = pam > > auth_user = root > > I thought you didn't need to be root to authenticate with PAM? If you > can do this as dovecot-auth, it will be more secure. Hey, I don't know. :) I'll try, though. > > Almost everything works fine, although I'm concerned about 'imap_listen > > = *'. Is there any way to restrict this to just localhost? I tried > > 'imap_listen = localhost', but that didn't seem to work. (Ditto with > > 127.0.0.1). (The other > > If you set it to localhost, then you can only access mail from the one > machine. I was under the impression that you were trying to access mail > from more than one machine on your LAN. If not, then I'm not sure what > IMAP is doing for you. No, it's one machine. My "desktop" is vt7, my wife's is vt8. We both want to access the same maildir that is our common account (while keeping our own accounts separate--my wife doesn't want to wade through the 100 emails I get daily). The LUG members in my area recommended IMAP, rather than trying to symlink it. If you think it would be better to symlink it, please say so. And BTW, "localhost" doesn't work, even on one machine. > Also, if you find a solution to a specific problem, please consider > adding it to the troubleshooting guide on the Wiki. Will do. :Peter -- Oh what a tangled web they weave who try a new word to conceive! From tss@iki.fi Sat Sep 13 05:03:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 402E8238D5; Sat, 13 Sep 2003 05:03:36 +0300 (EEST) Received: from iki.fi (cb-33.mpy.kv9.net [217.78.213.33]) by danu.procontrol.fi (Postfix) with ESMTP id ACD83238C5 for ; Sat, 13 Sep 2003 05:03:02 +0300 (EEST) Date: Sat, 13 Sep 2003 05:03:29 +0300 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <787104AA-E58E-11D7-B223-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) Subject: [Dovecot] Dovecot Wiki X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Sep 2003 02:03:36 -0000 X-UID: 1582 Status: O I finally got around to cleaning up the MoinMoin pages out of it and added a link to it from main page. I also got dovecot.fi domain, so Dovecot pages can be accessed from http://www.dovecot.fi/ and Wiki is at http://wiki.dovecot.fi/ From tss@iki.fi Sat Sep 13 05:28:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E66BF238D7; Sat, 13 Sep 2003 05:28:13 +0300 (EEST) Received: from iki.fi (cb-33.mpy.kv9.net [217.78.213.33]) by danu.procontrol.fi (Postfix) with ESMTP id 756D3238D5; Sat, 13 Sep 2003 05:28:11 +0300 (EEST) Date: Sat, 13 Sep 2003 05:28:38 +0300 Subject: Re: [Dovecot] Patch for auto-creating home directories Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: "David S Madole" From: Timo Sirainen In-Reply-To: <57695.12.148.10.20.1063218996.squirrel@www.omdev.com> Message-Id: Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) X-Spam-Status: No, hits=-5.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, RCVD_IN_OSIRUSOFT_COM,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Sep 2003 02:28:14 -0000 X-UID: 1583 Status: O On Wednesday, Sep 10, 2003, at 21:36 Europe/Helsinki, David S Madole wrote: > I've created a patch that adds a feature that is helpful to my setup. > If > 'parent_dir_umask' is set in the configuration file, any missing > directories in the home directory path are created. Hmm. Looks like the home directory owner is kept as root, or did I miss something? :) There's actually mkdir_parents() function which does pretty much what your create_directories() does. It should also work with multiple uids so that directories up until the home directory would be owned by root (or configurable?). The home directory itself should have user's uid/gid as owner/group. Other than that it's good :) From tss@iki.fi Sat Sep 13 05:42:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9932B23993; Sat, 13 Sep 2003 05:42:42 +0300 (EEST) Received: from iki.fi (cb-33.mpy.kv9.net [217.78.213.33]) by danu.procontrol.fi (Postfix) with ESMTP id B143B238D5 for ; Sat, 13 Sep 2003 05:42:40 +0300 (EEST) Date: Sat, 13 Sep 2003 05:43:08 +0300 Subject: Re: [Dovecot] dovecot IMAP misserving problem? Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <1063337498.9924.3.camel@laptop> Message-Id: <01E83A68-E594-11D7-B223-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Sep 2003 02:42:42 -0000 X-UID: 1584 Status: O On Friday, Sep 12, 2003, at 06:31 Europe/Helsinki, Warren Togami wrote: > http://togami.com/~warren/archive/2003/evolution-1.4.4-crash.mbox > I suspect that dovecot-0.99.10 is misserving this message in some way > that is confusing some IMAP clients. This behavior causes > evolution-1.4.4 to segfault, and squirrelmail-1.4.1 to be unable to > read > the message. The same message served by uw-imapd works works fine in > both evolution and squirrelmail. Problem is that it contained message/rfc822 attachment which didn't actually have any headers (Content-Type especially). Dovecot didn't write empty envelope for it in BODY or BODYSTRUCTURE replies. It's fixed in CVS, I think it was this change: http://dovecot.fi/bodystructure.patch From tss@iki.fi Sat Sep 13 05:46:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 99A7623994; Sat, 13 Sep 2003 05:46:45 +0300 (EEST) Received: from iki.fi (cb-33.mpy.kv9.net [217.78.213.33]) by danu.procontrol.fi (Postfix) with ESMTP id B14BB23993 for ; Sat, 13 Sep 2003 05:46:42 +0300 (EEST) Date: Sat, 13 Sep 2003 05:47:10 +0300 Subject: Re: [Dovecot] Setting up a local shared mailbox Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030912184224.GA3173@kongemord.krig.net> Message-Id: <92928873-E594-11D7-B223-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Sep 2003 02:46:45 -0000 X-UID: 1585 Status: O On Friday, Sep 12, 2003, at 21:42 Europe/Helsinki, Bob Hall wrote: > On Fri, Sep 12, 2003 at 11:54:56AM -0500, Peter Clark wrote: >> auth_passdb = pam >> auth_user = root > > I thought you didn't need to be root to authenticate with PAM? If you > can do this as dovecot-auth, it will be more secure. I think PAM always requires roots. From tss@iki.fi Sat Sep 13 05:49:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 14F5F2399A; Sat, 13 Sep 2003 05:49:47 +0300 (EEST) Received: from iki.fi (cb-33.mpy.kv9.net [217.78.213.33]) by danu.procontrol.fi (Postfix) with ESMTP id 01F8523993 for ; Sat, 13 Sep 2003 05:49:44 +0300 (EEST) Date: Sat, 13 Sep 2003 05:50:12 +0300 Subject: Re: [Dovecot] Setting up a local shared mailbox Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <200309121154.57436.peter-clark@bethel.edu> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Sep 2003 02:49:47 -0000 X-UID: 1586 Status: O On Friday, Sep 12, 2003, at 19:54 Europe/Helsinki, Peter Clark wrote: > Almost everything works fine, although I'm concerned about > 'imap_listen = *'. > Is there any way to restrict this to just localhost? I tried > 'imap_listen = > localhost', but that didn't seem to work. (Ditto with 127.0.0.1). That should work. What do you mean by it didn't work? Does Dovecot start? Is there anything in log files (/var/log/mail.log)? Can you "telnet localhost imap2"? Does "netstat -l" show that it's listening there? From phil@brutsche.us Sat Sep 13 07:07:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ECAE12399D; Sat, 13 Sep 2003 07:07:01 +0300 (EEST) Received: from tux.obix.com (tux.creighton.edu [147.134.5.192]) by danu.procontrol.fi (Postfix) with ESMTP id AEF1D2399C for ; Sat, 13 Sep 2003 07:06:29 +0300 (EEST) Received: from giedi.brutsche.us ([68.224.160.76]) by tux.obix.com with asmtp (TLSv1:EDH-RSA-DES-CBC3-SHA:168) (Exim 4.20) id 19y1g2-0000eA-Lg for dovecot@procontrol.fi; Fri, 12 Sep 2003 23:06:26 -0500 Received: from dhcp-0-225.brutsche.com ([192.168.0.225] helo=brutsche.us) by giedi.brutsche.us with esmtp (Exim 4.20) id 19y1fx-00038g-DP for dovecot@procontrol.fi; Fri, 12 Sep 2003 23:06:21 -0500 Message-ID: <3F62983A.5080508@brutsche.us> Date: Fri, 12 Sep 2003 23:08:26 -0500 From: Phil Brutsche User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 Cc: dovecot@procontrol.fi Subject: Re: [Dovecot] Setting up a local shared mailbox References: <92928873-E594-11D7-B223-000393CC2E90@iki.fi> In-Reply-To: <92928873-E594-11D7-B223-000393CC2E90@iki.fi> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Sep 2003 04:07:02 -0000 X-UID: 1587 Status: O Timo Sirainen wrote: > On Friday, Sep 12, 2003, at 21:42 Europe/Helsinki, Bob Hall wrote: > > >>On Fri, Sep 12, 2003 at 11:54:56AM -0500, Peter Clark wrote: >> >>>auth_passdb = pam >>>auth_user = root >> >>I thought you didn't need to be root to authenticate with PAM? If you >>can do this as dovecot-auth, it will be more secure. > > > I think PAM always requires roots. The process authenticating via PAM needs whatever access rights are required to read the password database. Anyone who uses PAM to authenticate out of /etc/shadow (or the equivalent) will inevitably end up with the authentication daemon running as root. If you tell PAM to authenticate via: * LDAP * any SQL database * SMB (aka ask a Windows or Samba box) * winbind (aka ask a WinNT, Win2k, or Win2k3 domain controller) then the ability to open a TCP, UDP, or unix domain socket is the only access required. Note that the above list of PAM authentication mechanisms is by no means complete. -- Phil Brutsche phil@brutsche.us From warren@togami.com Sat Sep 13 12:50:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ECD6A238C7; Sat, 13 Sep 2003 12:50:56 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id D4569238B6 for ; Sat, 13 Sep 2003 12:50:23 +0300 (EEST) Received: from localhost (unknown [127.0.0.1]) by pan.mplug.org (Postfix) with ESMTP id 0D9245D8060; Fri, 12 Sep 2003 23:54:25 -1000 (HST) Subject: Re: [Dovecot] dovecot IMAP misserving problem? From: Warren Togami To: Timo Sirainen In-Reply-To: <01E83A68-E594-11D7-B223-000393CC2E90@iki.fi> References: <01E83A68-E594-11D7-B223-000393CC2E90@iki.fi> Content-Type: text/plain Message-Id: <1063444255.3226.1.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 (1.4.4-5) Date: Fri, 12 Sep 2003 23:50:18 -1000 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Sep 2003 09:50:57 -0000 X-UID: 1588 Status: O Content-Length: 1146 On Fri, 2003-09-12 at 16:43, Timo Sirainen wrote: > On Friday, Sep 12, 2003, at 06:31 Europe/Helsinki, Warren Togami wrote: > > > http://togami.com/~warren/archive/2003/evolution-1.4.4-crash.mbox > > I suspect that dovecot-0.99.10 is misserving this message in some way > > that is confusing some IMAP clients. This behavior causes > > evolution-1.4.4 to segfault, and squirrelmail-1.4.1 to be unable to > > read > > the message. The same message served by uw-imapd works works fine in > > both evolution and squirrelmail. > > Problem is that it contained message/rfc822 attachment which didn't > actually have any headers (Content-Type especially). Dovecot didn't > write empty envelope for it in BODY or BODYSTRUCTURE replies. It's > fixed in CVS, I think it was this change: > http://dovecot.fi/bodystructure.patch Tested this patch with 0.99.10. evolution-1.4.4 still segfaults, and squirrelmail-1.4.1 similarly is unable to read the message. Mozilla still works. Please suggest anything more to test. http://bugzilla.ximian.com/show_bug.cgi?id=48418 Ximian evolution segfault bug report Thanks, Warren Togami warren@togami.com From tss@iki.fi Sat Sep 13 14:33:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 22EB323887; Sat, 13 Sep 2003 14:33:27 +0300 (EEST) Received: from iki.fi (cb-33.mpy.kv9.net [217.78.213.33]) by danu.procontrol.fi (Postfix) with ESMTP id B7C4823866; Sat, 13 Sep 2003 14:33:22 +0300 (EEST) Date: Sat, 13 Sep 2003 14:33:51 +0300 Subject: Re: [Dovecot] dovecot IMAP misserving problem? Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: Warren Togami From: Timo Sirainen In-Reply-To: <1063444255.3226.1.camel@laptop> Message-Id: <25F0676A-E5DE-11D7-B223-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Sep 2003 11:33:27 -0000 X-UID: 1589 Status: O On Saturday, Sep 13, 2003, at 12:50 Europe/Helsinki, Warren Togami wrote: >> Problem is that it contained message/rfc822 attachment which didn't >> actually have any headers (Content-Type especially). Dovecot didn't >> write empty envelope for it in BODY or BODYSTRUCTURE replies. It's >> fixed in CVS, I think it was this change: >> http://dovecot.fi/bodystructure.patch > > Tested this patch with 0.99.10. evolution-1.4.4 still segfaults, and > squirrelmail-1.4.1 similarly is unable to read the message. Mozilla > still works. > > Please suggest anything more to test. Dovecot probably cached the reply. Try deleting .imap.index* files. From rjhjr@cox.net Sun Sep 14 01:39:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7630A238B6; Sun, 14 Sep 2003 01:39:19 +0300 (EEST) Received: from lakemtao01.cox.net (lakemtao01.cox.net [68.1.17.244]) by danu.procontrol.fi (Postfix) with ESMTP id 87C4B23887 for ; Sun, 14 Sep 2003 01:38:44 +0300 (EEST) Received: from kongemord.krig.net ([68.100.111.121]) by lakemtao01.cox.net (InterMail vM.5.01.06.05 201-253-122-130-105-20030824) with SMTP id <20030913223843.SEGF29208.lakemtao01.cox.net@kongemord.krig.net> for ; Sat, 13 Sep 2003 18:38:43 -0400 Received: by kongemord.krig.net (sSMTP sendmail emulation); Sat, 13 Sep 2003 18:38:42 -0400 From: "Bob Hall" Date: Sat, 13 Sep 2003 18:38:42 -0400 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Setting up a local shared mailbox Message-ID: <20030913223841.GA84630@kongemord.krig.net> Mail-Followup-To: dovecot@procontrol.fi References: <92928873-E594-11D7-B223-000393CC2E90@iki.fi> <3F62983A.5080508@brutsche.us> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3F62983A.5080508@brutsche.us> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Sep 2003 22:39:19 -0000 X-UID: 1590 Status: O On Fri, Sep 12, 2003 at 11:08:26PM -0500, Phil Brutsche wrote: > The process authenticating via PAM needs whatever access rights are > required to read the password database. Thanks for the correction. Bob Hall From matthias.andree@gmx.de Sun Sep 14 19:09:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4D42D238B6; Sun, 14 Sep 2003 19:09:06 +0300 (EEST) Received: from mail.gmx.net (imap.gmx.net [213.165.64.20]) by danu.procontrol.fi (Postfix) with SMTP id 01B1123887 for ; Sun, 14 Sep 2003 19:08:32 +0300 (EEST) Received: (qmail 23796 invoked by uid 65534); 14 Sep 2003 16:08:28 -0000 Received: from pD951FF21.dip.t-dialin.net (EHLO merlin.emma.line.org) (217.81.255.33) by mail.gmx.net (mp005) with SMTP; 14 Sep 2003 18:08:28 +0200 Date: Sun, 14 Sep 2003 18:08:27 +0200 To: Timo Sirainen , dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot Wiki References: <787104AA-E58E-11D7-B223-000393CC2E90@iki.fi> Message-ID: From: Matthias Andree Content-Type: text/plain; format=flowed; charset=iso-8859-15 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit In-Reply-To: <787104AA-E58E-11D7-B223-000393CC2E90@iki.fi> User-Agent: Opera7.20/FreeBSD M2 build 459 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Sep 2003 16:09:06 -0000 X-UID: 1591 Status: O On Sat, 13 Sep 2003 05:03:29 +0300, Timo Sirainen wrote: > I finally got around to cleaning up the MoinMoin pages out of it and > added a link to it from main page. I also got dovecot.fi domain, so > Dovecot pages can be accessed from http://www.dovecot.fi/ and Wiki is at > http://wiki.dovecot.fi/ I've polished the FrontPage and the Question and Answers page a tiny bit, and found that the "UserPreferences" buttons and links (top right of the pages) seem non-functional. Could these be fixed so I can edit my preferences? That's useful to set e. g. the edit window size. Thanks in advance. -- Matthias Andree From tss@iki.fi Sun Sep 14 19:17:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 846C2238B6; Sun, 14 Sep 2003 19:17:13 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AFB0B23887 for ; Sun, 14 Sep 2003 19:16:40 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 740655C65485 for ; Sun, 14 Sep 2003 19:16:40 +0300 (EEST) Subject: Re: [Dovecot] Dovecot Wiki From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <787104AA-E58E-11D7-B223-000393CC2E90@iki.fi> Content-Type: text/plain Message-Id: <1063556199.855.86.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sun, 14 Sep 2003 19:16:40 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Sep 2003 16:17:13 -0000 X-UID: 1592 Status: O On Sun, 2003-09-14 at 19:08, Matthias Andree wrote: > I've polished the FrontPage and the Question and Answers page a tiny bit, > and found that the "UserPreferences" buttons and links (top right of the > pages) seem non-functional. Could these be fixed so I can edit my > preferences? That's useful to set e. g. the edit window size. Fixed. Anything else broken? From G.Ohrner@post.rwth-aachen.de Sun Sep 14 20:11:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8126A23887; Sun, 14 Sep 2003 20:11:09 +0300 (EEST) Received: from Blubb.wwWLAN.net (unknown [62.112.158.193]) by danu.procontrol.fi (Postfix) with ESMTP id 0370C23866 for ; Sun, 14 Sep 2003 20:10:48 +0300 (EEST) Received: by Blubb.wwWLAN.net (Postfix, from userid 106) id 73EC2344087; Sun, 14 Sep 2003 19:10:50 +0200 (CEST) Received: from HornBurg.CustomCDROM.de (ach9-d9bba996.pool.mediaWays.net [217.187.169.150]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by Blubb.wwWLAN.net (Postfix) with ESMTP id CD4B7344086 for ; Sun, 14 Sep 2003 19:10:49 +0200 (CEST) Received: from unseenuniversity.scheibenwelt ([192.168.42.20] ident=d5f6cbda3352de9a1d245605c057247c) by HornBurg.CustomCDROM.de with esmtp (Exim 3.35 #1 (Debian)) id 19yaOY-0002I8-00 for ; Sun, 14 Sep 2003 19:10:42 +0200 Received: from localhost ([127.0.0.1] ident=ecf9dc44daf30a1040dd1ba4abe0fb0d) by UnseenUniversity.Scheibenwelt with esmtp (Exim 3.36 #1 (Debian)) id 19yaOf-0003Bt-00 for ; Sun, 14 Sep 2003 19:10:49 +0200 From: Gunter Ohrner To: dovecot@procontrol.fi Date: Sun, 14 Sep 2003 19:10:32 +0200 User-Agent: KMail/1.5.3 MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200309141910.48991@mail.CustomCDROM.de> X-Spam-Status: No, hits=-2.9 required=5.0 tests=PGP_SIGNATURE,USER_AGENT_KMAIL version=2.55 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) Subject: [Dovecot] child 9436 (pop3) killed with signal 11 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Sep 2003 17:11:09 -0000 X-UID: 1593 Status: O Content-Length: 1974 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi! Suddenly since this afternoon the following happens: Sep 14 18:16:55 UnseenUniversity pop3-login: Login: gunter [127.0.0.1] Sep 14 18:16:55 UnseenUniversity pop3(gunter): Corrupted index data file / home/gunter/Mail/.imap/INBOX/.imap.index.data: Field 1 size points outside= =20 file (205408 / 205376) for record 4662 Sep 14 18:16:55 UnseenUniversity pop3(gunter): Corrupted index data file / home/gunter/Mail/.imap/INBOX/.imap.index.data: Missing location field for=20 record 4662 Sep 14 18:16:55 UnseenUniversity dovecot: child 9436 (pop3) killed with sig= nal=20 11 I thought dovecot would delete damaged index files but I get this always wh= en=20 checking mail for the first time, cheking mail for the second time tells me: Sep 14 18:18:43 UnseenUniversity pop3-login: Login: gunter [127.0.0.1] Sep 14 18:18:43 UnseenUniversity pop3(gunter): Corrupted binary tree file / home/gunter/Mail/.imap/INBOX/.imap.index.tree: Invalid used_file_size in=20 header (0) but actually fetches the mail after that. So what can/should I do? Simply delete the offending index file? The dovecot version I'm using here is Debian's ii dovecot-pop3d 0.99.10-7 A secure POP3 server that supports mbox a= nd and only it's pop3 part. Greetings, Gunter =2D --=20 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + PGP-verschl=FCsselte Mails bevorzugt! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3) I don't sign parts of the body, even if they're still attached. =20 -- From Terry's Rules of Book Signing (Terry Pratchett,=20 alt.fan.pratchett) +-+-+-+-+-+-+-+-+-+-+-+-+ http://www.lspace.org +-+-+-+-+-+-+-+-+-+-+-+-+ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQE/ZKEX0ORHvREo8l8RAnKoAJoDpKu3OprNQ0W7ZWXpj5/RcYmZFgCfWU2c s5uLQS9yQpe7LQlVDRbnlvk=3D =3DngZu =2D----END PGP SIGNATURE----- From tss@iki.fi Mon Sep 15 20:08:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5CCD8238B6; Mon, 15 Sep 2003 20:08:47 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id B4F5F2387F for ; Mon, 15 Sep 2003 20:08:45 +0300 (EEST) Date: Mon, 15 Sep 2003 20:09:16 +0300 Subject: Re: [Dovecot] child 9436 (pop3) killed with signal 11 Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <200309141910.48991@mail.CustomCDROM.de> Message-Id: <56146A10-E79F-11D7-AD52-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 17:08:47 -0000 X-UID: 1594 Status: O On Sunday, Sep 14, 2003, at 20:10 Europe/Helsinki, Gunter Ohrner wrote: > I thought dovecot would delete damaged index files It should rebuild them automatically. I guess there are some situations when it fails to do that. > but I get this always when > checking mail for the first time, cheking mail for the second time > tells me: > > Sep 14 18:18:43 UnseenUniversity pop3-login: Login: gunter [127.0.0.1] > Sep 14 18:18:43 UnseenUniversity pop3(gunter): Corrupted binary tree > file / > home/gunter/Mail/.imap/INBOX/.imap.index.tree: Invalid used_file_size > in > header (0) > > but actually fetches the mail after that. > So what can/should I do? Simply delete the offending index file? Yes, see if it helps. From kollathodi@yahoo.com Tue Sep 16 01:35:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DE36D238B6; Tue, 16 Sep 2003 01:35:47 +0300 (EEST) Received: from web20804.mail.yahoo.com (web20804.mail.yahoo.com [216.136.226.193]) by danu.procontrol.fi (Postfix) with SMTP id 56A3923866 for ; Tue, 16 Sep 2003 01:35:14 +0300 (EEST) Message-ID: <20030915223509.9640.qmail@web20804.mail.yahoo.com> Received: from [217.17.233.135] by web20804.mail.yahoo.com via HTTP; Mon, 15 Sep 2003 15:35:09 PDT Date: Mon, 15 Sep 2003 15:35:09 -0700 (PDT) From: nasir nasir To: dovecot@procontrol.fi MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] Unable to access the mailbox or folders !! X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 22:35:48 -0000 X-UID: 1595 Status: O Content-Length: 1322 Hi all, I have installed dovecot on redhat linux with ldap backend. I can login using ldap account in to my webmail (squirrelmail) .But when I login to the webmail , I cant see any inbox or anything . Just some error messages like this , ERROR: ERROR : Connection dropped by imap-server. Query: LIST "" "Sent" ERROR : Could not complete request. Query: SELECT "INBOX" Reason Given: I tried to telnet to port 143. Its also similar case. It allows me to login but when I give "select" command , it gives error(in fact, "NO" and nothing else). Required info, OS - Redhat 8.0 dovecot - dovecot-0.99.10-2.dag.src.rpm ( --with-ldap --with-rawlog additionally) MTA - Exim 4.14 Webmail - Squirrelmail 1.4.1-2 Location of Maildir - /var/spool/mail/USERNAME/Maildir dovecot configuration has the following line, default_mail_env = maildir:/var/spool/mail/%u/Maildir Is there anything I am missing or doing wrong ? I am sorry if this is a silly question. But I am a newbie to dovecot and did a lot of google search for this error or even additional documentation for dovecot without any success. Any suggestion or advice would be highly appreciated. Regards, Nasirudheen __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From tss@iki.fi Tue Sep 16 01:40:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C7D7B238C5; Tue, 16 Sep 2003 01:40:41 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9CB8F238B6 for ; Tue, 16 Sep 2003 01:40:09 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 57E6C5C654A5 for ; Tue, 16 Sep 2003 01:40:09 +0300 (EEST) Subject: Re: [Dovecot] Unable to access the mailbox or folders !! From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030915223509.9640.qmail@web20804.mail.yahoo.com> References: <20030915223509.9640.qmail@web20804.mail.yahoo.com> Content-Type: text/plain Message-Id: <1063665609.18684.48.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 16 Sep 2003 01:40:09 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 22:40:41 -0000 X-UID: 1596 Status: O On Tue, 2003-09-16 at 01:35, nasir nasir wrote: > Hi all, > I have installed dovecot on redhat linux with > ldap backend. I can login using ldap account in to my > webmail (squirrelmail) .But when I login to the > webmail , I cant see any inbox or anything . Just some > error messages like this , Check the log file. /var/log/mail.log usually. It should give more specific error message on what happened. > I tried to telnet to port 143. Its also similar case. > It allows me to login but when I give "select" command > , it gives error(in fact, "NO" and nothing else). "x select inbox" too? From tss@iki.fi Tue Sep 16 06:22:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E5FB9238B6; Tue, 16 Sep 2003 06:22:10 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id ED4C023866 for ; Tue, 16 Sep 2003 06:22:05 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id AFB005EC10A5 for ; Tue, 16 Sep 2003 06:22:05 +0300 (EEST) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1063682525.18682.54.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 16 Sep 2003 06:22:05 +0300 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Dovecot + PostgreSQL + Postfix with SMTP AUTH HOWTO X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 03:22:11 -0000 X-UID: 1597 Status: O Just built one and figured I'd write down what I did :) Still needing some web thingy to configure it. At least a password changer plugin for Squirrelmail. http://wiki.dovecot.fi/moin.cgi/DovecotPostgresql From ian@onepost.net Tue Sep 16 07:22:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 261DA238B6; Tue, 16 Sep 2003 07:22:58 +0300 (EEST) Received: from orb.pobox.com (orb.pobox.com [216.65.124.72]) by danu.procontrol.fi (Postfix) with ESMTP id 8114E2387F for ; Tue, 16 Sep 2003 07:22:25 +0300 (EEST) Received: from texas.pobox.com (texas.pobox.com[64.49.223.111]) by orb.pobox.com (Postfix) with ESMTP id 0C6BB15607B for ; Tue, 16 Sep 2003 00:22:21 -0400 (EDT) Received: from [10.0.1.3] (209-6-159-188.c3-0.smr-ubr3.sbo-smr.ma.cable.rcn.com [209.6.159.188]) by texas.pobox.com (Postfix) with ESMTP id 65FF74551B for ; Tue, 16 Sep 2003 00:22:20 -0400 (EDT) User-Agent: Microsoft-Entourage/10.1.1.2418 Date: Tue, 16 Sep 2003 00:22:17 -0400 From: Ian Marlier To: Message-ID: Mime-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit Subject: [Dovecot] Locking foolishness X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 04:22:58 -0000 X-UID: 1598 Status: O I'm working on getting Dovecot set up on my school's mailserver, as an IMAP and POP server. Everything is going well, move over to maildir went well, and all that... The catch: When I coverted from mbox to maildir (as part of this whole process), I put the Maildir folders under user home dirs -- and the home dirs are mounted via NFS from a server. This is for reasons of space as well as simply seeming to make sense. Now I get errors in my mail.log which read: imap-login: Sep 16 00:16:24 dovecot:Info: Login: marlier [209.6.159.188] imap(marlier): Sep 16 00:16:28 dovecot:Error: file_wait_lock() failed with index file /Network/Servers/network.uphamscornercs.net/Users/marlier/Maildir/.INBOX/.im ap.index: Invalid argument It looks to me like it's a file locking problem...any thoughts on how to get around it? I've already tried the dotlock mechanism alone...without success... More information available upon request... - Ian From jello@waste.org Tue Sep 16 09:21:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BBC02238B6; Tue, 16 Sep 2003 09:21:54 +0300 (EEST) Received: from waste.org (waste.org [209.173.204.2]) by danu.procontrol.fi (Postfix) with ESMTP id 2A54B2387F for ; Tue, 16 Sep 2003 09:21:21 +0300 (EEST) Received: from localhost (kdslppp194.mpls.uswest.net [63.225.147.194]) by waste.org (8.12.3/8.12.3/Debian-6.4) with ESMTP id h8G6LHxc027507 for ; Tue, 16 Sep 2003 01:21:17 -0500 Received: from localhost (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id 29FD83BD for ; Tue, 16 Sep 2003 01:21:16 -0500 (CDT) Received: from localhost ([127.0.0.1]) by localhost (refuse [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02522-03 for ; Tue, 16 Sep 2003 01:21:15 -0500 (CDT) Received: by localhost (Postfix, from userid 1001) id E94453BF; Tue, 16 Sep 2003 01:21:14 -0500 (CDT) Date: Tue, 16 Sep 2003 01:21:14 -0500 From: John Ello To: dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot + PostgreSQL + Postfix with SMTP AUTH HOWTO Message-ID: <20030916062114.GA722@waste.org> References: <1063682525.18682.54.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1063682525.18682.54.camel@hurina> User-Agent: Mutt/1.5.4i X-Virus-Scanned: by amavisd-new-20030616-p3 (Debian) at refuse.waste.org X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 06:21:55 -0000 X-UID: 1599 Status: O > Just built one and figured I'd write down what I did :) Still needing > some web thingy to configure it. At least a password changer plugin for > Squirrelmail. > > http://wiki.dovecot.fi/moin.cgi/DovecotPostgresql Cool. I've built something similar with MySQL instead of Postgres recently. I have to use passwd-file until Dovecot supports Mysql directly which is a bit hackish obviously. I have a perl CGI GUI thing that's almost done, it supports multiple admins each with access only to their own domains. It should be easily possible to make it use postgres instead of mysql. I'll drop a note here when it's ready for testing, I'll be releasing it under the GPL. From kollathodi@yahoo.com Tue Sep 16 11:17:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0595C238B6; Tue, 16 Sep 2003 11:17:36 +0300 (EEST) Received: from web20801.mail.yahoo.com (web20801.mail.yahoo.com [216.136.226.190]) by danu.procontrol.fi (Postfix) with SMTP id 1BF752387F for ; Tue, 16 Sep 2003 11:17:01 +0300 (EEST) Message-ID: <20030916081659.73157.qmail@web20801.mail.yahoo.com> Received: from [217.17.233.135] by web20801.mail.yahoo.com via HTTP; Tue, 16 Sep 2003 01:16:59 PDT Date: Tue, 16 Sep 2003 01:16:59 -0700 (PDT) From: nasir nasir Subject: [Dovecot] Unable to access the mailbox or folders !! To: dovecot@procontrol.fi MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 08:17:36 -0000 X-UID: 1600 Status: O Content-Length: 1777 Hi, Thanx a lot for your reply. But my log file(its /var/log/dovecot) doesnt have any information other than the following line for example, imap-login: Sep 16 10:31:50 Info: Login: usr1 [127.0.0.1] After this when I give select command or anything like that, its not logged(I dont know also, how to enable maximum debug information, I checked the docs and all) Again, let me tell you that I suspect there is something wrong with the mail environment setting. its as follows default_mail_env = maildir:/var/spool/mail/%u/Maildir and when i give some nonexisting location ( eg; /var/blah/blah) also, I get the SAME ERROR. Here is a sample telnet session Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. * OK dovecot ready. a01 login usr1 XXXXXXXXX a01 OK Logged in. a02 select inbox a02 NO Please tell me if you would like to have any other info. Thanx again and regards, Nasirudheen --- Timo Sirainen wrote: > On Tue, 2003-09-16 at 01:35, nasir nasir wrote: > > Hi all, > > I have installed dovecot on redhat linux > with > > ldap backend. I can login using ldap account in to > my > > webmail (squirrelmail) .But when I login to the > > webmail , I cant see any inbox or anything . Just > some > > error messages like this , > > Check the log file. /var/log/mail.log usually. It > should give more > specific error message on what happened. > > > I tried to telnet to port 143. Its also similar > case. > > It allows me to login but when I give "select" > command > > , it gives error(in fact, "NO" and nothing else). > > "x select inbox" too? > > __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From ian@onepost.net Tue Sep 16 15:47:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 59A2D238B6; Tue, 16 Sep 2003 15:47:23 +0300 (EEST) Received: from orb.pobox.com (orb.pobox.com [216.65.124.72]) by danu.procontrol.fi (Postfix) with ESMTP id B681A2387F for ; Tue, 16 Sep 2003 15:47:19 +0300 (EEST) Received: from texas.pobox.com (texas.pobox.com[64.49.223.111]) by orb.pobox.com (Postfix) with ESMTP id 809C515628B for ; Tue, 16 Sep 2003 08:47:18 -0400 (EDT) Received: from [10.0.0.23] (pool-151-203-115-71.bos.east.verizon.net [151.203.115.71]) by texas.pobox.com (Postfix) with ESMTP id 309DE45519 for ; Tue, 16 Sep 2003 08:47:17 -0400 (EDT) User-Agent: Microsoft-Entourage/10.1.1.2418 Date: Tue, 16 Sep 2003 08:47:13 -0400 From: Ian Marlier To: Message-ID: Mime-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit Subject: [Dovecot] Locking foolishness - Better info X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 12:47:23 -0000 X-UID: 1601 Status: O Content-Length: 5012 I realized that my last message about locking gave bad information -- or rather, very little information. Here's my setup: - Home directories and user login information are located on an Xserve running Mac OS X 10.2.6. Home directories are split between 2 different directories -- /Users and /Students. Home dirs are exported via NFS to the mail server. User login info is shared via LDAP to the mail server and to Windows machines in classrooms. - The mail server is an old beige G3 running Debian Woody (linux 2.4.20) kernel. It's completely up-to-date. Homedirs are mounted at /Network/Servers/network.uphamscornercs.net/Users and /Network/Servers/network.uphamscornercs.net/Students, in keeping with the OS X Server userdir name scheme. The only user with a shell on the server is root, other than that all user information is pulled from LDAP using PAM. Postfix is setup to deliver mail to maildir:~/Maildir, and dovecot is set to read mail from the same directory. This is working without any problem. - Clients Entourage works fine to access mailboxes -- it reads mail without a problem. However, it pops up an error message intermittently that reads "Mail could not be read: Internal Error []". This message doesn't seem to interfere with reading mail, it's just an annoyance. Squirrelmail doesn't work to access mailboxes. It logs in fine, but gives the following error message in all windows that require mailbox access: "ERROR : Could not complete request. Query: Reason Given: Internal error []" In both cases (Entourage and Squirrelmail), the Internal Error is accompanied by the following error message in the /var/log/mail.log file: "imap(marlier): Sep 16 08:40:45 dovecot:Error: /Network/Servers/network.uphamscornercs.net/Users/marlier/Maildir/.subscript ions failed with subscription file file_wait_lock(): Invalid argument" So, it looks to me like something isn't working with locking. I'm not sure whether the problem is with the NFS mount, or with dovecot, or with permissions, or something else, but I'd like to get it fixed. I love the server, and if I can get this licked I think I've got a long-term setup. Relevant sections of /usr/local/etc/dovecot.conf: -------- # Use mmap() instead of read() to read mail files. read() seems to be a bit # faster with my Linux/x86 and it's better with NFS, so that's the default. mail_read_mmaped = no # Copy mail to another folders using hard links. This is much faster than # actually copying the file. This is problematic only if something modifies # the mail in one folder but doesn't want it modified in the others. I don't # know any MUA which would modify mail files directly. IMAP protocol also # requires that the mails don't change, so it would be problematic in any case. # If you care about performance, enable it. maildir_copy_with_hardlinks = no # Check if mails' content has been changed by external programs. This slows # down things as extra stat() needs to be called for each file. If changes are # noticed, the message is treated as a new message, since IMAP protocol # specifies that existing message are immutable. maildir_check_content_changes = yes # Which locking methods to use for locking mbox. There's three available: # dotlock: Create .lock file. This is the oldest and most NFS-safe # solution. If you want to use /var/mail/ like directory, the users # will need write access to that directory. # fcntl : Use this if possible. Works with NFS too if lockd is used. # flock : May not exist in all systems. Doesn't work with NFS. # # You can use both fcntl and flock too; if you do the order they're declared # with is important to avoid deadlocks if other MTAs/MUAs are using both fcntl # and flock. Some operating systems don't allow using both of them # simultaneously, eg. BSDs. If dotlock is used, it's always created first. mbox_locks = dotlock # Should we create dotlock file even when we want only a read-lock? Setting # this to yes hurts the performance when the mailbox is accessed simultaneously # by multiple processes, but it's needed for reliable reading if no other # locking methods are available. mbox_read_dotlock = yes # Maximum time in seconds to wait for lock (all of them) before aborting. mbox_lock_timeout = 300 # If dotlock exists but the mailbox isn't modified in any way, override the # lock file after this many seconds. mbox_dotlock_change_timeout = 30 # umask to use for mail files and directories umask = 0077 # Drop all privileges before exec()ing the mail process. This is mostly # meant for debugging, otherwise you don't get core dumps. Note that setting # this to yes means that log file is opened as the logged in user, which # might not work. It could also be a small security risk if you use single UID # for multiple users, as the users could ptrace() each others processes then. mail_drop_priv_before_exec = no --------- Thanks in advance for any help you can give. - Ian From cao@bus.net Tue Sep 16 16:56:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 92947238B6; Tue, 16 Sep 2003 16:56:11 +0300 (EEST) Received: from mail.c.bus.net (65-85-139-25.client.dsl.net [65.85.139.25]) by danu.procontrol.fi (Postfix) with ESMTP id 9FA4F23866 for ; Tue, 16 Sep 2003 16:55:49 +0300 (EEST) Received: from ws100.c.bus.net (ws102.c.bus.net [192.168.1.12]) by mail.c.bus.net (Postfix) with ESMTP id C42F75487A for ; Tue, 16 Sep 2003 09:54:36 -0400 (EDT) Received: (from cao@localhost) by ws100.c.bus.net (8.12.6/8.12.6/Submit) id h8GDtlvY005549 for dovecot@procontrol.fi; Tue, 16 Sep 2003 09:55:47 -0400 (EDT) (envelope-from cao) Date: Tue, 16 Sep 2003 09:55:47 -0400 From: chuck odonnell To: dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot + PostgreSQL + Postfix with SMTP AUTH HOWTO Message-ID: <20030916135546.GA5492@bus.net> References: <1063682525.18682.54.camel@hurina> <20030916062114.GA722@waste.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030916062114.GA722@waste.org> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 13:56:11 -0000 X-UID: 1602 Status: O On Tue, Sep 16, 2003 at 01:21:14AM -0500, John Ello wrote: > > Cool. I've built something similar with MySQL instead of Postgres > recently. I have to use passwd-file until Dovecot supports Mysql > directly which is a bit hackish obviously. I have a perl CGI GUI thing speaking of MySQL support, how many folks would use this? i am comfortable with the MySQL C API, but after poking around the dovecot src/auth directory, it looks like there are quite a few files and linkages that have to be created to get a new auth module up and running. is there any documentation available for the dovecot AUTH mechanism? cheers. chuck From tss@iki.fi Tue Sep 16 18:17:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2AD1A238C5; Tue, 16 Sep 2003 18:17:15 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 24D112387F for ; Tue, 16 Sep 2003 18:17:13 +0300 (EEST) Date: Tue, 16 Sep 2003 18:17:43 +0300 Subject: Re: [Dovecot] Locking foolishness Content-Type: text/plain; delsp=yes; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: Content-Transfer-Encoding: 7bit In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 15:17:15 -0000 X-UID: 1603 Status: O Content-Length: 1070 On Tuesday, Sep 16, 2003, at 07:22 Europe/Helsinki, Ian Marlier wrote: > When I coverted from mbox to maildir (as part of this whole process), > I put > the Maildir folders under user home dirs -- and the home dirs are > mounted > via NFS from a server. This is for reasons of space as well as simply > seeming to make sense. > > Now I get errors in my mail.log which read: > imap-login: Sep 16 00:16:24 dovecot:Info: Login: marlier > [209.6.159.188] > imap(marlier): Sep 16 00:16:28 dovecot:Error: file_wait_lock() failed > with > index file > /Network/Servers/network.uphamscornercs.net/Users/marlier/Maildir/ > .INBOX/.im > ap.index: Invalid argument 1) Index files can't be accessed safely via NFS. You can disable them by appending :INDEX=MEMORY in default_mail_env. 2) .subscriptions file isn't NFS safe yet. It has been fixed in CVS. 3) .customflags file isn't NFS safe yet. It hasn't been fixed in CVS. You could use lockd to enable fcntl() locks which would make 2 and 3 work, but many NFS client implementations don't really support lockd.. From daniel@electricrain.com Wed Sep 17 01:55:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8348C238B6; Wed, 17 Sep 2003 01:55:03 +0300 (EEST) Received: from electricrain.com (electricrain.com [64.71.143.226]) by danu.procontrol.fi (Postfix) with ESMTP id 0EFF02387F for ; Wed, 17 Sep 2003 01:54:31 +0300 (EEST) Received: (qmail 32285 invoked by uid 501); 16 Sep 2003 22:54:29 -0000 Date: Tue, 16 Sep 2003 15:54:29 -0700 From: Dan Sully To: dovecot@procontrol.fi Message-ID: <20030916225429.GY7437@electricrain.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Invader-Zim: The dogs! After my juicy meat body of baloney meat! User-Agent: Mutt/1.5.4i Subject: [Dovecot] Multiple auth checkers X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 22:55:03 -0000 X-UID: 1604 Status: O I noticed this is in the TODO: - support for multiple auth checkers. passdb+userdb should be tied together. auth process configurations really should be used for this.. and is functionality that I really would like, as I have local users (passwd+shadow) and vpopmail users. In -test7's dovecot-example.conf, there is a different format for "blocking" multiple auth types, and I created a conf as such: auth default { mechanisms = plain userdb = passwd passdb = shadow user = root count = 2 } auth vpopmail { mechanisms = plain userdb = vpopmail passdb = vpopmail user = vpopmail count = 2 } Password authentication still works fine, but I can't find a way to get it to fallback to using the vpopmail auth. Is this simply not working yet? Timo - what part of the code needs this update? Thanks. -D -- Change? We fear change. From tss@iki.fi Wed Sep 17 02:52:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DBAD7238B6; Wed, 17 Sep 2003 02:52:06 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C7F9C23866 for ; Wed, 17 Sep 2003 02:51:33 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id BF8665EC10F1 for ; Wed, 17 Sep 2003 02:51:32 +0300 (EEST) Subject: Re: [Dovecot] Unable to access the mailbox or folders !! From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030916081659.73157.qmail@web20801.mail.yahoo.com> References: <20030916081659.73157.qmail@web20801.mail.yahoo.com> Content-Type: text/plain Message-Id: <1063756292.12669.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Wed, 17 Sep 2003 02:51:32 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 23:52:07 -0000 X-UID: 1605 Status: O Content-Length: 1156 On Tue, 2003-09-16 at 11:16, nasir nasir wrote: > Hi, > Thanx a lot for your reply. But my log file(its > /var/log/dovecot) doesnt have any information other > than the following line for example, > imap-login: Sep 16 10:31:50 Info: Login: usr1 > [127.0.0.1] > After this when I give select command or anything like > that, its not logged(I dont know also, how to enable > maximum debug information, I checked the docs and all) Hmmh. It's difficult to say anything. If it returns just "NO" it means something returns a failure without setting any error message. That really shouldn't happen.. > Again, let me tell you that I suspect there is > something wrong with the mail environment setting. its > as follows > > default_mail_env = maildir:/var/spool/mail/%u/Maildir > > and when i give some nonexisting location ( eg; > /var/blah/blah) also, I get the SAME ERROR. It probably has something to do with not finding the maildir, or that the maildir doesn't work for some reason or .. hmm. Do you use one or multiple UIDs? Try this: MAIL=/var/spool/mail/username/Maildir /usr/local/libexec/dovecot/imap and see if you can select inbox there? From tss@iki.fi Wed Sep 17 02:53:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 60128238C6; Wed, 17 Sep 2003 02:53:46 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7735423866 for ; Wed, 17 Sep 2003 02:53:44 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 50FD45EC10F1 for ; Wed, 17 Sep 2003 02:53:44 +0300 (EEST) Subject: Re: [Dovecot] Dovecot + PostgreSQL + Postfix with SMTP AUTH HOWTO From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030916135546.GA5492@bus.net> References: <1063682525.18682.54.camel@hurina> <20030916062114.GA722@waste.org> <20030916135546.GA5492@bus.net> Content-Type: text/plain Message-Id: <1063756424.12665.7.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Wed, 17 Sep 2003 02:53:44 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 23:53:46 -0000 X-UID: 1606 Status: O On Tue, 2003-09-16 at 16:55, chuck odonnell wrote: > speaking of MySQL support, how many folks would use this? > > i am comfortable with the MySQL C API, but after poking around the > dovecot src/auth directory, it looks like there are quite a few files > and linkages that have to be created to get a new auth module up and > running. is there any documentation available for the dovecot AUTH > mechanism? There's already a mysql auth module, although it needs a few more fixes: http://dovecot.procontrol.fi/list/dovecot/2003-August/002237.html I'll add it to next release. From tss@iki.fi Wed Sep 17 02:58:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BB35A238B6; Wed, 17 Sep 2003 02:58:53 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 17E252387F for ; Wed, 17 Sep 2003 02:58:52 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id BCAC35EC10F1 for ; Wed, 17 Sep 2003 02:58:51 +0300 (EEST) Subject: Re: [Dovecot] Multiple auth checkers From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030916225429.GY7437@electricrain.com> References: <20030916225429.GY7437@electricrain.com> Content-Type: text/plain Message-Id: <1063756731.12664.11.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Wed, 17 Sep 2003 02:58:51 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 23:58:53 -0000 X-UID: 1607 Status: O On Wed, 2003-09-17 at 01:54, Dan Sully wrote: > auth default { > mechanisms = plain > userdb = passwd > passdb = shadow > user = root > count = 2 > } > > auth vpopmail { > mechanisms = plain > userdb = vpopmail > passdb = vpopmail > user = vpopmail > count = 2 > } Does vpopmail authentication work alone? > Password authentication still works fine, but I can't find a way to get it to > fallback to using the vpopmail auth. Is this simply not working yet? Timo - > what part of the code needs this update? -test7 should support this already. Maybe I've fixed something in it since. I'll create -test8 now, see if it helps. From daniel@electricrain.com Wed Sep 17 03:04:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 40898238B6; Wed, 17 Sep 2003 03:04:11 +0300 (EEST) Received: from electricrain.com (electricrain.com [64.71.143.226]) by danu.procontrol.fi (Postfix) with ESMTP id 09CD92387F for ; Wed, 17 Sep 2003 03:04:08 +0300 (EEST) Received: (qmail 17331 invoked by uid 501); 17 Sep 2003 00:04:06 -0000 Date: Tue, 16 Sep 2003 17:04:06 -0700 From: Dan Sully To: Timo Sirainen Subject: Re: [Dovecot] Multiple auth checkers Message-ID: <20030917000406.GB2132@electricrain.com> Mail-Followup-To: Timo Sirainen , dovecot@procontrol.fi References: <20030916225429.GY7437@electricrain.com> <1063756731.12664.11.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1063756731.12664.11.camel@hurina> X-Invader-Zim: BALONEY! Zim has introduced baloney dna into my body?! User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 00:04:11 -0000 X-UID: 1608 Status: O * Timo Sirainen shaped the electrons to say... > Does vpopmail authentication work alone? Yes it does. > > Password authentication still works fine, but I can't find a way to get it to > > fallback to using the vpopmail auth. Is this simply not working yet? Timo - > > what part of the code needs this update? > > -test7 should support this already. Maybe I've fixed something in it > since. I'll create -test8 now, see if it helps. Ok, thanks. Is that the correct configuration? It seems to me that there should be a list of valid auth checkers to try in a certain order. -D -- It appears my hypocrisy knows no bounds. From tss@iki.fi Wed Sep 17 03:22:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6C025238B6; Wed, 17 Sep 2003 03:22:20 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5C6022387F for ; Wed, 17 Sep 2003 03:22:18 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2A3365EC10F1 for ; Wed, 17 Sep 2003 03:22:18 +0300 (EEST) Subject: Re: [Dovecot] Multiple auth checkers From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030917000406.GB2132@electricrain.com> References: <20030916225429.GY7437@electricrain.com> <20030917000406.GB2132@electricrain.com> Content-Type: text/plain Message-Id: <1063758137.12666.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Wed, 17 Sep 2003 03:22:18 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 00:22:20 -0000 X-UID: 1609 Status: O On Wed, 2003-09-17 at 03:04, Dan Sully wrote: > > > Password authentication still works fine, but I can't find a way to get it to > > > fallback to using the vpopmail auth. Is this simply not working yet? Timo - > > > what part of the code needs this update? > > > > -test7 should support this already. Maybe I've fixed something in it > > since. I'll create -test8 now, see if it helps. > > Ok, thanks. > > Is that the correct configuration? Yes. It should be enough to just add multiple auth blocks. > It seems to me that there should be a list > of valid auth checkers to try in a certain order. I was thinking about checking them in specified order, but I don't think it's really worth the trouble. It's not even really possible with eg. PAM since it only tells that the check failed, it doesn't know why. Besides I actually like that I can login to my test server using either of the two passwords. :) From daniel@electricrain.com Wed Sep 17 03:29:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4459C238B6; Wed, 17 Sep 2003 03:29:41 +0300 (EEST) Received: from electricrain.com (electricrain.com [64.71.143.226]) by danu.procontrol.fi (Postfix) with ESMTP id 167A52387F for ; Wed, 17 Sep 2003 03:29:39 +0300 (EEST) Received: (qmail 21628 invoked by uid 501); 17 Sep 2003 00:29:37 -0000 Date: Tue, 16 Sep 2003 17:29:37 -0700 From: Dan Sully To: Timo Sirainen Subject: Re: [Dovecot] Multiple auth checkers Message-ID: <20030917002937.GC2132@electricrain.com> Mail-Followup-To: Timo Sirainen , dovecot@procontrol.fi References: <20030916225429.GY7437@electricrain.com> <20030917000406.GB2132@electricrain.com> <1063758137.12666.26.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1063758137.12666.26.camel@hurina> X-Invader-Zim: BALONEY! Zim has introduced baloney dna into my body?! User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 00:29:41 -0000 X-UID: 1610 Status: O * Timo Sirainen shaped the electrons to say... > > Is that the correct configuration? > > Yes. It should be enough to just add multiple auth blocks. Where in the code does it "fallback" to the other blocks? I can't seem to find it. -D -- you know, most free operating systems come preinstalled with their own high horse. From tss@iki.fi Wed Sep 17 03:40:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6E198238B6; Wed, 17 Sep 2003 03:40:07 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 30A562387F for ; Wed, 17 Sep 2003 03:40:04 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E570F5EC10F1 for ; Wed, 17 Sep 2003 03:40:03 +0300 (EEST) Subject: Re: [Dovecot] Multiple auth checkers From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030917002937.GC2132@electricrain.com> References: <20030916225429.GY7437@electricrain.com> <1063758137.12666.26.camel@hurina> <20030917002937.GC2132@electricrain.com> Content-Type: text/plain Message-Id: <1063759203.12669.32.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Wed, 17 Sep 2003 03:40:03 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 00:40:07 -0000 X-UID: 1611 Status: O On Wed, 2003-09-17 at 03:29, Dan Sully wrote: > > Yes. It should be enough to just add multiple auth blocks. > > Where in the code does it "fallback" to the other blocks? > > I can't seem to find it. src/lib-auth/auth-server-request.c sends two requests at the same time. If the first one fails (AUTH_CLIENT_RESULT_FAILURE) it hides the failure and continues with the next one. The reason it sends multiple requests at the same time is that PAM waits for two seconds before replying failure. The other check can be done while waiting for it. Actually all failed password checks should wait for one or two seconds before replying, I just haven't got around implementing it.. From daniel@electricrain.com Thu Sep 18 02:56:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6E770238B6; Thu, 18 Sep 2003 02:56:08 +0300 (EEST) Received: from electricrain.com (electricrain.com [64.71.143.226]) by danu.procontrol.fi (Postfix) with ESMTP id 85FD523866 for ; Thu, 18 Sep 2003 02:55:35 +0300 (EEST) Received: (qmail 32221 invoked by uid 501); 17 Sep 2003 23:55:31 -0000 Date: Wed, 17 Sep 2003 16:55:31 -0700 From: Dan Sully To: Timo Sirainen Subject: Re: [Dovecot] Multiple auth checkers Message-ID: <20030917235531.GI13675@electricrain.com> Mail-Followup-To: Timo Sirainen , dovecot@procontrol.fi References: <20030917002937.GC2132@electricrain.com> <1063759203.12669.32.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1063759203.12669.32.camel@hurina> X-Invader-Zim: I have already stuffed my normal human belly so full of delicious human FILTH than I could not eat another bite. User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 23:56:08 -0000 X-UID: 1612 Status: O * Timo Sirainen shaped the electrons to say... > src/lib-auth/auth-server-request.c sends two requests at the same time. > If the first one fails (AUTH_CLIENT_RESULT_FAILURE) it hides the failure > and continues with the next one. Thanks. Got it all working. -test8 did the trick for whatever reason. -D -- Minds are like parachutes... they work best when open. From daniel@electricrain.com Fri Sep 19 06:21:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 76345238B6; Fri, 19 Sep 2003 06:21:11 +0300 (EEST) Received: from electricrain.com (electricrain.com [64.71.143.226]) by danu.procontrol.fi (Postfix) with ESMTP id A992A23866 for ; Fri, 19 Sep 2003 06:20:37 +0300 (EEST) Received: (qmail 2327 invoked by uid 501); 19 Sep 2003 03:20:33 -0000 Date: Thu, 18 Sep 2003 20:20:33 -0700 From: Dan Sully To: dovecot@procontrol.fi Message-ID: <20030919032033.GJ7575@electricrain.com> Mail-Followup-To: dovecot@procontrol.fi Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Invader-Zim: BALONEY! Zim has introduced baloney dna into my body?! User-Agent: Mutt/1.5.4i Subject: [Dovecot] Feature question/request X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 03:21:11 -0000 X-UID: 1613 Status: O So I have a bunch of users who are roaming - IE no static IP address from all over the internet. Some of them are able to use SMTP-AUTH which is great, but for those that can't, a pop before smtp solution is in place using relay-ctrl-age & cdb files via qmail. Would it be desirable to have this feature in dovecot? I'd really like to ditch qmail-pop3d, etc. vpopmail has a open_smtp_relay() when using vchkpw directly. -D -- I won't be satisfied until I have a rectally-insertable laptop From tss@iki.fi Fri Sep 19 10:57:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5B8D5238B6; Fri, 19 Sep 2003 10:57:48 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0A8EC23896 for ; Fri, 19 Sep 2003 10:57:44 +0300 (EEST) Date: Fri, 19 Sep 2003 10:58:13 +0300 Subject: Re: [Dovecot] Feature question/request Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20030919032033.GJ7575@electricrain.com> Message-Id: <04C33D9F-EA77-11D7-86F1-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 07:57:48 -0000 X-UID: 1614 Status: O On Friday, Sep 19, 2003, at 06:20 Europe/Helsinki, Dan Sully wrote: > So I have a bunch of users who are roaming - IE no static IP address > from all > over the internet. Some of them are able to use SMTP-AUTH which is > great, but > for those that can't, a pop before smtp solution is in place using > relay-ctrl-age & cdb files via qmail. > > Would it be desirable to have this feature in dovecot? I'd really like > to > ditch qmail-pop3d, etc. There's a plugin for drac: http://mail.cc.umanitoba.ca/drac/ http://dovecot.fi/patches/drac.c From security@jlug.org Fri Sep 19 11:05:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 897B8238B6; Fri, 19 Sep 2003 11:05:19 +0300 (EEST) Received: from smtp.tele.fi (smtp.tele.fi [192.89.123.25]) by danu.procontrol.fi (Postfix) with ESMTP id C699923896 for ; Fri, 19 Sep 2003 11:04:47 +0300 (EEST) Received: from jlug.fi (jlug.fi [192.194.49.184]) by smtp.tele.fi (Postfix) with ESMTP id 9A8FA966D for ; Fri, 19 Sep 2003 11:04:47 +0300 (EEST) Received: (qmail 17158 invoked by uid 537); 19 Sep 2003 08:04:43 -0000 Received: from security@jlug.org by jlug by uid 510 with qmail-scanner-1.20rc3 (f-prot: 3.12/. spamassassin: 2.50. Clear:RC:0:SA:0(2.0/10.0):. Processed in 1.872632 secs); 19 Sep 2003 08:04:43 -0000 Received: from unknown (HELO desktop) (security@jlug.org@195.197.199.46) by 0 with SMTP; 19 Sep 2003 08:04:41 -0000 Message-ID: <039801c37e84$ae5fe990$0200a8c0@desktop> From: "Eero Volotinen" To: Date: Fri, 19 Sep 2003 11:04:41 +0300 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 1 X-MSMail-Priority: High X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-Spam-Status: No, hits=2.0 required=10.0 tests=X_PRIORITY_HIGH version=2.50 X-Spam-Level: ** X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) Subject: [Dovecot] feature request: maildirquota X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 08:05:19 -0000 X-UID: 1615 Status: O Content-Length: 1417 Hope maildirquota++ is soon supported, without it, dovecot is useless in my use (mail hosting with maildirquotas). Also QUOTA cabability in dovecot is needed to get to use my webmail plugins that use a001 CAPABILITY to get quota support. Courier imapd supports this. --snippet from quota usage plugin to squirrelmail-- function sqimap_get_quota ($imap_stream, $mailbox) { if (check_quota_capability($imap_stream, "QUOTA")) { fputs ($imap_stream, "a001 GETQUOTAROOT \"$mailbox\"\r\n"); $read_ary = sqimap_read_data ($imap_stream, 'a001', true, $result, $message); for ($i = 0; $i < count($read_ary); $i++) { if (ereg("STORAGE", $read_ary[$i])) { $tempusage = ereg_replace("^.*[(]STORAGE +(.*)[)].*$", "\\1", $read_ary[$i]); $usagearray = explode(" ", $tempusage); return $usagearray[0].":".$usagearray[1]; } } } return "NOQUOTA"; } function check_quota_capability($imap_stream, $capability) { global $imap_general_debug; fputs ($imap_stream, "a001 CAPABILITY\r\n"); $read_ary = sqimap_read_data($imap_stream, 'a001', true, $a, $b); for($i = 0; $i < count($read_ary); $i++) { if (ereg("QUOTA", $read_ary[$i])) return TRUE; } return false; } -- end snippet-- -- Eero From daniel@electricrain.com Fri Sep 19 17:38:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C7215238B6; Fri, 19 Sep 2003 17:38:57 +0300 (EEST) Received: from electricrain.com (electricrain.com [64.71.143.226]) by danu.procontrol.fi (Postfix) with ESMTP id E684423896 for ; Fri, 19 Sep 2003 17:38:53 +0300 (EEST) Received: (qmail 23110 invoked by uid 501); 19 Sep 2003 14:38:51 -0000 Date: Fri, 19 Sep 2003 07:38:51 -0700 From: Dan Sully To: Timo Sirainen Subject: Re: [Dovecot] Feature question/request Message-ID: <20030919143851.GN7575@electricrain.com> Mail-Followup-To: Timo Sirainen , dovecot@procontrol.fi References: <20030919032033.GJ7575@electricrain.com> <04C33D9F-EA77-11D7-86F1-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <04C33D9F-EA77-11D7-86F1-000393CC2E90@iki.fi> X-Invader-Zim: BALONEY! Zim has introduced baloney dna into my body?! User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 14:38:58 -0000 X-UID: 1616 Status: O * Timo Sirainen shaped the electrons to say... > On Friday, Sep 19, 2003, at 06:20 Europe/Helsinki, Dan Sully wrote: > > There's a plugin for drac: > > http://mail.cc.umanitoba.ca/drac/ > http://dovecot.fi/patches/drac.c drac appears to be sendmail only. *searches google for drac + qmail* -D -- kernel's original recipe: 11 secret args and switches From matthias.andree@gmx.de Fri Sep 19 22:43:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7CFB4238D4; Fri, 19 Sep 2003 22:43:26 +0300 (EEST) Received: from m2a2.dyndns.org (p508778FC.dip.t-dialin.net [80.135.120.252]) by danu.procontrol.fi (Postfix) with ESMTP id 4B60E23866 for ; Fri, 19 Sep 2003 22:42:54 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id A4986938EE; Fri, 19 Sep 2003 21:42:51 +0200 (CEST) To: dovecot@procontrol.fi Subject: Re: [Dovecot] Feature question/request In-Reply-To: <20030919032033.GJ7575@electricrain.com> (Dan Sully's message of "Thu, 18 Sep 2003 20:20:33 -0700") References: <20030919032033.GJ7575@electricrain.com> From: Matthias Andree Date: Fri, 19 Sep 2003 21:42:51 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 19:43:26 -0000 X-UID: 1617 Status: O Dan Sully writes: > So I have a bunch of users who are roaming - IE no static IP address from all > over the internet. Some of them are able to use SMTP-AUTH which is great, but > for those that can't, a pop before smtp solution is in place using > relay-ctrl-age & cdb files via qmail. Why cannot they use SMTP AUTH? -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95 From daniel@electricrain.com Fri Sep 19 23:00:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 84949238D4; Fri, 19 Sep 2003 23:00:11 +0300 (EEST) Received: from electricrain.com (electricrain.com [64.71.143.226]) by danu.procontrol.fi (Postfix) with ESMTP id 4536E238D2 for ; Fri, 19 Sep 2003 23:00:02 +0300 (EEST) Received: (qmail 2995 invoked by uid 501); 19 Sep 2003 19:59:59 -0000 Date: Fri, 19 Sep 2003 12:59:59 -0700 From: Dan Sully To: Matthias Andree Subject: Re: [Dovecot] Feature question/request Message-ID: <20030919195959.GN7452@electricrain.com> Mail-Followup-To: Matthias Andree , dovecot@procontrol.fi References: <20030919032033.GJ7575@electricrain.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Invader-Zim: As soon as my skeleton stops being broken, I'm going to destroy you, Dib. User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 20:00:11 -0000 X-UID: 1618 Status: O * Matthias Andree shaped the electrons to say... > > So I have a bunch of users who are roaming - IE no static IP address from all > > over the internet. Some of them are able to use SMTP-AUTH which is great, but > > for those that can't, a pop before smtp solution is in place using > > relay-ctrl-age & cdb files via qmail. > > Why cannot they use SMTP AUTH? A number of people are using older mail programs that don't support it. I'm not trying to solve that problem right now. -D -- I am the Supreme Being, I'm not entirely dim. From marcotte@panix.com Sat Sep 20 02:12:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7056D238D5; Sat, 20 Sep 2003 02:12:43 +0300 (EEST) Received: from mail3.panix.com (mail3.panix.com [166.84.1.74]) by danu.procontrol.fi (Postfix) with ESMTP id 7648823866 for ; Sat, 20 Sep 2003 02:12:11 +0300 (EEST) Received: from panix.com (mailspool3.panix.com [166.84.1.78]) by mail3.panix.com (Postfix) with SMTP id 7871B981EA for ; Fri, 19 Sep 2003 19:12:10 -0400 (EDT) Received: from 166.84.1.190 (SquirrelMail authenticated user marcotte@panix.com) by mail.panix.com with HTTP; Fri, 19 Sep 2003 19:12:10 -0400 (EDT) Message-ID: <57541.166.84.1.190.1064013130.squirrel@mail.panix.com> Date: Fri, 19 Sep 2003 19:12:10 -0400 (EDT) Subject: Re: [Dovecot] namespaces From: "Brian Marcotte" To: In-Reply-To: <1062871015.23538.12.camel@hurina> References: <65328.166.84.1.190.1062542706.squirrel@mail.panix.com> <1062607533.26916.80.camel@hurina> <1689.166.84.167.10.1062609002.squirrel@mail.panix.com> <1062871015.23538.12.camel@hurina> X-Priority: 3 Importance: Normal X-Mailer: SquirrelMail (version 1.2.11) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 23:12:43 -0000 X-UID: 1619 Status: O I'm using dovecot-0.99.11-test9, and still have one problem with namespaces: > > Maybe if [location in namespace section] wasn't set it could use the > > one from userdb. > > These are in CVS now. I tried this (no "location" setting): namespace private { separator = . prefix = INBOX. inbox = yes } I was able to log in using the userdb, but it didn't use the mailbox path I specified in the userdb. It instead was searching other places for the folders like ~/Maildir, ~/mail and many other things. When I specified a "location", everything worked including finding the inbox, but that's not an option I have for my mail servers. ----------------- Despite the above issue, I've rolled out dovecot on some of our shell machines as an option (alternate port). This is a subset of our users, but also the ones most likely to benefit from Dovecot's indexes. The results have been very promising so far. Mutt and pine are now blazingly fast! Thanks again! -- - Brian From charlie@rubberduck.com Sat Sep 20 04:29:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 254BF238D5; Sat, 20 Sep 2003 04:29:51 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 5C38223866 for ; Sat, 20 Sep 2003 04:29:18 +0300 (EEST) Received: from machine.internal.schools.net.au (dsl-203-113-202-186.VIC.netspace.net.au [203.113.202.186]) by lazy.spodder.com (Postfix) with ESMTP id 156E88F28; Sat, 20 Sep 2003 11:24:37 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 501) id 73CD42D2B1C; Sat, 20 Sep 2003 11:29:04 +1000 (EST) Date: Sat, 20 Sep 2003 11:29:03 +1000 From: Charlie Allom To: Timo Sirainen , dovecot@procontrol.fi Subject: Re: [Dovecot] Feature question/request Message-ID: <20030920012903.GA6893@myinternet.com.au> References: <20030919032033.GJ7575@electricrain.com> <04C33D9F-EA77-11D7-86F1-000393CC2E90@iki.fi> <20030919143851.GN7575@electricrain.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="a8Wt8u1KmwUX3Y2C" Content-Disposition: inline In-Reply-To: <20030919143851.GN7575@electricrain.com> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 01:29:51 -0000 X-UID: 1620 Status: O --a8Wt8u1KmwUX3Y2C Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Sep 19, 2003 at 07:38:51AM -0700, Dan Sully wrote: > * Timo Sirainen shaped the electrons to say... >=20 > > On Friday, Sep 19, 2003, at 06:20 Europe/Helsinki, Dan Sully wrote: > >=20 > > There's a plugin for drac: > >=20 > > http://mail.cc.umanitoba.ca/drac/ > > http://dovecot.fi/patches/drac.c >=20 > drac appears to be sendmail only. I use DRAC with postfix. C. --=20 charlie@rubberduck.com - http://rubberduck.com/~yeled/ --a8Wt8u1KmwUX3Y2C Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/a61fqiZDwhSqeUERAvqRAJ9QaKl/fRcdXzDNhaBEYcD4BMeFYgCfb4Ag QiGzc+WI4oNKgM6PrF3n/f8= =Myiu -----END PGP SIGNATURE----- --a8Wt8u1KmwUX3Y2C-- From daniel@electricrain.com Sat Sep 20 04:41:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 408E2238D7; Sat, 20 Sep 2003 04:41:29 +0300 (EEST) Received: from electricrain.com (electricrain.com [64.71.143.226]) by danu.procontrol.fi (Postfix) with ESMTP id 6544D23866 for ; Sat, 20 Sep 2003 04:40:55 +0300 (EEST) Received: (qmail 7711 invoked by uid 501); 20 Sep 2003 01:40:51 -0000 Date: Fri, 19 Sep 2003 18:40:51 -0700 From: Dan Sully To: dovecot@procontrol.fi Subject: Re: [Dovecot] Feature question/request Message-ID: <20030920014051.GA2147@electricrain.com> Mail-Followup-To: dovecot@procontrol.fi References: <20030919143851.GN7575@electricrain.com> <20030920012903.GA6893@myinternet.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030920012903.GA6893@myinternet.com.au> X-Invader-Zim: Is it a fair fight? Is this...moose...creature wielding any type of projectile weapons? User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 01:41:29 -0000 X-UID: 1621 Status: O * Charlie Allom shaped the electrons to say... > > drac appears to be sendmail only. > > I use DRAC with postfix. That's nice and all, but postfix is a lot more like sendmail than qmail is. Qmail has a built in interface to using a CDB - constant database, which although similar, is not the BerkeleyDB that DRAC uses. -D -- <_> oops i dropped weed in the keyboard ctrl-alt-marijuana From wouter@pair.com Sat Sep 20 05:18:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B2BE3238D2; Sat, 20 Sep 2003 05:18:05 +0300 (EEST) Received: from amsfep11-int.chello.nl (amsfep11-int.chello.nl [213.46.243.20]) by danu.procontrol.fi (Postfix) with ESMTP id 2CBB923866 for ; Sat, 20 Sep 2003 05:17:33 +0300 (EEST) Received: from hibernate.cryolabs.net ([213.132.150.78]) by amsfep11-int.chello.nlSMTP <20030920021731.YRZA1843.amsfep11-int.chello.nl@hibernate.cryolabs.net> for ; Sat, 20 Sep 2003 04:17:31 +0200 Received: (qmail 27006 invoked from network); 20 Sep 2003 04:17:24 +0200 Received: from unknown (HELO cocaine.cryolabs.net) (192.168.196.5) by hibernate.cryolabs.net with SMTP; 20 Sep 2003 04:17:24 +0200 Date: Sat, 20 Sep 2003 04:17:31 +0200 (CEST) From: Wouter Van Hemel Sender: Wouter Van Hemel To: dovecot@procontrol.fi Subject: Re: [Dovecot] Feature question/request In-Reply-To: <20030920014051.GA2147@electricrain.com> Message-ID: References: <20030919143851.GN7575@electricrain.com> <20030920012903.GA6893@myinternet.com.au> <20030920014051.GA2147@electricrain.com> PGP: 0B B4 BC 28 53 62 FE 94 6A 57 EE B8 A6 E2 1B E4 (0xAA5412F0) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 02:18:05 -0000 X-UID: 1622 Status: O On Fri, 19 Sep 2003, Dan Sully wrote: > * Charlie Allom shaped the electrons to say... > > > > drac appears to be sendmail only. > > > > I use DRAC with postfix. > > That's nice and all, but postfix is a lot more like sendmail than qmail is. > Huh? >:-) > Qmail has a built in interface to using a CDB - constant database, which > although similar, is not the BerkeleyDB that DRAC uses. > Well, you shouldn't use Qmail and complain it doesn't have features. ;) I'm afraid you are stretching it to the point it doesn't make sense anymore to still choose Qmail. Anyway, out of curiosity, which clients still don't have SMTP AUTH support? From daniel@electricrain.com Sat Sep 20 10:28:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2716123993; Sat, 20 Sep 2003 10:28:31 +0300 (EEST) Received: from electricrain.com (electricrain.com [64.71.143.226]) by danu.procontrol.fi (Postfix) with ESMTP id 2171423887 for ; Sat, 20 Sep 2003 10:28:25 +0300 (EEST) Received: (qmail 2885 invoked by uid 501); 20 Sep 2003 07:28:23 -0000 Date: Sat, 20 Sep 2003 00:28:23 -0700 From: Dan Sully To: Wouter Van Hemel Subject: Re: [Dovecot] Feature question/request Message-ID: <20030920072823.GB9190@electricrain.com> Mail-Followup-To: Wouter Van Hemel , dovecot@procontrol.fi References: <20030919143851.GN7575@electricrain.com> <20030920012903.GA6893@myinternet.com.au> <20030920014051.GA2147@electricrain.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Invader-Zim: Hey...I'm delicious! Gaz, taste me! I'm delicious! User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 07:28:31 -0000 X-UID: 1623 Status: O * Wouter Van Hemel shaped the electrons to say... > > Qmail has a built in interface to using a CDB - constant database, which > > although similar, is not the BerkeleyDB that DRAC uses. > > Well, you shouldn't use Qmail and complain it doesn't have features. ;) > > I'm afraid you are stretching it to the point it doesn't make sense > anymore to still choose Qmail. Well, I could be using courier-imap which does support this feature, but I'd rather use dovecot. =) > Anyway, out of curiosity, which clients still don't have SMTP AUTH support? Older versions of Eudora is what I know of right off. -D -- The things you own end up owning you. From tss@iki.fi Sat Sep 20 21:46:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 603FC238C8; Sat, 20 Sep 2003 21:46:04 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AD61C23896 for ; Sat, 20 Sep 2003 21:45:32 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 700A35C65486 for ; Sat, 20 Sep 2003 21:45:32 +0300 (EEST) Subject: Re: [Dovecot] namespaces From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <57541.166.84.1.190.1064013130.squirrel@mail.panix.com> References: <65328.166.84.1.190.1062542706.squirrel@mail.panix.com> <1062607533.26916.80.camel@hurina> <1689.166.84.167.10.1062609002.squirrel@mail.panix.com> <1062871015.23538.12.camel@hurina> <57541.166.84.1.190.1064013130.squirrel@mail.panix.com> Content-Type: text/plain Message-Id: <1064083532.13836.9.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sat, 20 Sep 2003 21:45:32 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 18:46:04 -0000 X-UID: 1624 Status: O On Sat, 2003-09-20 at 02:12, Brian Marcotte wrote: > > > Maybe if [location in namespace section] wasn't set it could use the > > > one from userdb. > > > > These are in CVS now. > > I was able to log in using the userdb, but it didn't use the mailbox path > I specified in the userdb. It instead was searching other places for the > folders like ~/Maildir, ~/mail and many other things. Whops, here's a fix: diff -u -r1.37 mail-process.c --- mail-process.c 15 Sep 2003 14:02:07 -0000 1.37 +++ mail-process.c 20 Sep 2003 18:44:25 -0000 @@ -296,7 +296,7 @@ if (set->server->namespaces != NULL) { env_put_namespace(set->server->namespaces, - set->default_mail_env, user, home_dir); + mail, user, home_dir); } env_put(t_strconcat("MAIL=", mail, NULL)); From tss@iki.fi Sat Sep 20 21:52:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3E763238B6; Sat, 20 Sep 2003 21:52:40 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 78BB323896 for ; Sat, 20 Sep 2003 21:52:37 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 34E825C65486 for ; Sat, 20 Sep 2003 21:52:37 +0300 (EEST) Subject: Re: [Dovecot] feature request: maildirquota From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <039801c37e84$ae5fe990$0200a8c0@desktop> References: <039801c37e84$ae5fe990$0200a8c0@desktop> Content-Type: text/plain Message-Id: <1064083957.13836.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sat, 20 Sep 2003 21:52:37 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 18:52:40 -0000 X-UID: 1625 Status: O On Fri, 2003-09-19 at 11:04, Eero Volotinen wrote: > Hope maildirquota++ is soon supported, without it, dovecot is useless in my > use (mail hosting with maildirquotas). I don't really have plans to write quota support before 1.0. It will be done via plugin anyway (which can be compiled into binary), and it's already possible to write such plugin for CVS Dovecot. Or almost, there's a small problem with calculating quota correctly when saving new mails via IMAP, but that will be fixed hopefully sooner than later :) There's an example quota plugin if someone wants to write the real thing. Just fill the i_warning() calls with real quota calculations: http://dovecot.fi/patches/quota.c From marcotte@panix.com Sun Sep 21 01:03:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 63ABD238CB; Sun, 21 Sep 2003 01:03:53 +0300 (EEST) Received: from mail1.panix.com (mail1.panix.com [166.84.1.72]) by danu.procontrol.fi (Postfix) with ESMTP id A404923896 for ; Sun, 21 Sep 2003 01:03:19 +0300 (EEST) Received: from panix5.panix.com (panix5.panix.com [166.84.1.5]) by mail1.panix.com (Postfix) with ESMTP id 1B4EE487D0; Sat, 20 Sep 2003 18:03:18 -0400 (EDT) Received: (from marcotte@localhost) by panix5.panix.com (8.11.6p2-a/8.8.8/PanixN1.1) id h8KM3IY22365; Sat, 20 Sep 2003 18:03:18 -0400 (EDT) Date: Sat, 20 Sep 2003 18:03:18 -0400 From: Brian Marcotte To: Timo Sirainen Subject: Re: [Dovecot] namespaces Message-ID: <20030920220318.GA22328@panix.com> References: <65328.166.84.1.190.1062542706.squirrel@mail.panix.com> <1062607533.26916.80.camel@hurina> <1689.166.84.167.10.1062609002.squirrel@mail.panix.com> <1062871015.23538.12.camel@hurina> <57541.166.84.1.190.1064013130.squirrel@mail.panix.com> <1064083532.13836.9.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1064083532.13836.9.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 22:03:53 -0000 X-UID: 1626 Status: O > > I was able to log in using the userdb, but it didn't use the mailbox path > > I specified in the userdb. It instead was searching other places for the > > folders like ~/Maildir, ~/mail and many other things. > > Whops, here's a fix: It works now. Thanks! -- - Brian From warren@togami.com Sun Sep 21 11:41:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AB6EB238CE; Sun, 21 Sep 2003 11:41:04 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 51D8123896 for ; Sun, 21 Sep 2003 11:40:32 +0300 (EEST) Received: from laptop (cpe-24-94-73-135.hawaii.rr.com [24.94.73.135]) by pan.mplug.org (Postfix) with ESMTP id 79B295D8078 for ; Sat, 20 Sep 2003 23:16:44 -1000 (HST) Subject: Re: [Dovecot] dovecot IMAP misserving problem? From: Warren Togami To: dovecot@procontrol.fi In-Reply-To: <25F0676A-E5DE-11D7-B223-000393CC2E90@iki.fi> References: <25F0676A-E5DE-11D7-B223-000393CC2E90@iki.fi> Content-Type: text/plain Message-Id: <1064133626.10215.5.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 (1.4.4-7) Date: Sat, 20 Sep 2003 22:40:27 -1000 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 08:41:04 -0000 X-UID: 1627 Status: O On Sat, 2003-09-13 at 01:33, Timo Sirainen wrote: > On Saturday, Sep 13, 2003, at 12:50 Europe/Helsinki, Warren Togami > wrote: > > >> Problem is that it contained message/rfc822 attachment which didn't > >> actually have any headers (Content-Type especially). Dovecot didn't > >> write empty envelope for it in BODY or BODYSTRUCTURE replies. It's > >> fixed in CVS, I think it was this change: > >> http://dovecot.fi/bodystructure.patch > > > > Tested this patch with 0.99.10. evolution-1.4.4 still segfaults, and > > squirrelmail-1.4.1 similarly is unable to read the message. Mozilla > > still works. > > > > Please suggest anything more to test. > > Dovecot probably cached the reply. Try deleting .imap.index* files. I have determined that it was not a caching issue. With the patch applied the message is still unreadable in Squirrelmail, causes Evolution to crash, but readable in Mozilla. Please advise further testing options. Thanks, Warren From aline@ronnie.rdsor.ro Sun Sep 21 15:12:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6610823993; Sun, 21 Sep 2003 15:12:19 +0300 (EEST) Received: from ronnie.rdsor.ro (unknown [193.231.188.240]) by danu.procontrol.fi (Postfix) with ESMTP id 63B66238D3 for ; Sun, 21 Sep 2003 15:11:47 +0300 (EEST) Received: by ronnie.rdsor.ro (qmail, from userid 500) id 99DC0D7407; Sun, 21 Sep 2003 15:11:46 +0300 (EEST) From: Alin Osan Organization: Fundatia Casa To: dovecot@procontrol.fi Date: Sun, 21 Sep 2003 15:11:46 +0300 User-Agent: KMail/1.5.4 X-OS: GNU/Linux 2.4.20 athlon: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200309211511.46433@X-OS> Subject: [Dovecot] convert wu-imap Maildir format to dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: al@casa.org.ro List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 12:12:19 -0000 X-UID: 1628 Status: O Hello, I intend to migrate a mail server with Maildir from wu-imap to dovecot imap. Using horde/IMP, users can not access their imap forders, as wu-imap created Mail directory that holds all created folders. Dovecot could not detect the mail directory so I had to put default_mail_env = ~/Maildir in dovecot.conf. Before I begin to read the source-code of dovecot or try to migrate the the mailboxes using a shell script, is there any way I can make dovecot read the wu-imap folders format? Please suggest any solution that you find viable. Thank you. -- -- We are what we repeatedly do. Excellence, then, is not an act, but a habit. -- Alin Osan From tss@iki.fi Sun Sep 21 15:23:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 530BC23994; Sun, 21 Sep 2003 15:23:28 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 201E0238D3 for ; Sun, 21 Sep 2003 15:23:26 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id CF88A5C65486 for ; Sun, 21 Sep 2003 15:23:25 +0300 (EEST) Subject: Re: [Dovecot] dovecot IMAP misserving problem? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1064133626.10215.5.camel@laptop> References: <25F0676A-E5DE-11D7-B223-000393CC2E90@iki.fi> <1064133626.10215.5.camel@laptop> Content-Type: text/plain Message-Id: <1064147005.13841.92.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sun, 21 Sep 2003 15:23:25 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 12:23:28 -0000 X-UID: 1629 Status: O On Sun, 2003-09-21 at 11:40, Warren Togami wrote: > > >> Problem is that it contained message/rfc822 attachment which didn't > > >> actually have any headers (Content-Type especially). Dovecot didn't > > >> write empty envelope for it in BODY or BODYSTRUCTURE replies. It's > > >> fixed in CVS, I think it was this change: > > >> http://dovecot.fi/bodystructure.patch > I have determined that it was not a caching issue. With the patch > applied the message is still unreadable in Squirrelmail, causes > Evolution to crash, but readable in Mozilla. I missed a few more changes which were needed. I updated the patch in the above url. From tss@iki.fi Sun Sep 21 15:34:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 784EA23994; Sun, 21 Sep 2003 15:34:24 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B8497238D3 for ; Sun, 21 Sep 2003 15:34:21 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 68BFC5C65486; Sun, 21 Sep 2003 15:34:21 +0300 (EEST) Subject: Re: [Dovecot] convert wu-imap Maildir format to dovecot From: Timo Sirainen To: al@casa.org.ro In-Reply-To: <200309211511.46433@X-OS> References: <200309211511.46433@X-OS> Content-Type: text/plain Message-Id: <1064147661.13839.103.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sun, 21 Sep 2003 15:34:21 +0300 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 12:34:24 -0000 X-UID: 1630 Status: O Content-Length: 1481 On Sun, 2003-09-21 at 15:11, Alin Osan wrote: > I intend to migrate a mail server with Maildir from wu-imap to dovecot > imap. Using horde/IMP, users can not access their imap forders, as wu-imap > created Mail directory that holds all created folders. Dovecot could not > detect the mail directory so I had to put default_mail_env = ~/Maildir in > dovecot.conf. Mail or Maildir? .. > Before I begin to read the source-code of dovecot or try to migrate the the > mailboxes using a shell script, is there any way I can make dovecot read > the wu-imap folders format? I don't really know what format uw-imap's maildir patch uses, but I'm guessing it's not Maildir++ which Dovecot and Courier use. Maildir++ works like: ~/Maildir/{cur,new,tmp} = INBOX ~/Maildir/.folder/{cur,new,tmp} = folder ~/Maildir/.folder.subfolder/{cur,new,tmp} = folder.subfolder ie. everything under ~/Maildir/, hierarchies separated by dot. I've been thinking on supporting something like what I'd guess uw-imap's maildir uses: ~/Maildir/{cur,new,tmp} = INBOX ~/Maildir/folder/{cur,new,tmp} = folder ~/Maildir/folder/subfolder/{cur,new,tmp} = folder/subfolder One bad thing with that format is that you can't have mailbox named cur, new or tmp. Anyway, supporting that format isn't really in my short term plans.. Hmm. Was it also uw-imap's maildir patch that added the UID into maildir filename like: 12345,U=uid? I was also considering on supporting it, but I think it had some problems.. From aline@ronnie.rdsor.ro Sun Sep 21 15:46:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0DB2723995; Sun, 21 Sep 2003 15:46:30 +0300 (EEST) Received: from ronnie.rdsor.ro (unknown [193.231.188.240]) by danu.procontrol.fi (Postfix) with ESMTP id 7DBBC23994 for ; Sun, 21 Sep 2003 15:46:28 +0300 (EEST) Received: by ronnie.rdsor.ro (qmail, from userid 500) id 2C38AD7407; Sun, 21 Sep 2003 15:46:15 +0300 (EEST) From: Alin Osan Organization: Fundatia Casa To: Timo Sirainen Subject: Re: [Dovecot] convert wu-imap Maildir format to dovecot Date: Sun, 21 Sep 2003 15:46:15 +0300 User-Agent: KMail/1.5.4 References: <200309211511.46433@X-OS> <1064147661.13839.103.camel@hurina> In-Reply-To: <1064147661.13839.103.camel@hurina> X-OS: GNU/Linux 2.4.20 athlon: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200309211546.15010@X-OS> cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: al@casa.org.ro List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 12:46:30 -0000 X-UID: 1631 Status: O Content-Length: 1506 On Sunday 21 September 2003 15:34, Timo Sirainen wrote: > Mail or Maildir? .. Maildir. I also lets you put folders in a Mail directory, but that has nothing to do with Maildir. From IMP you can create an imap directory pretty much where you want. > I don't really know what format uw-imap's maildir patch uses, but I'm > guessing it's not Maildir++ which Dovecot and Courier use. Maildir++ > works like: No, it's not Maildir++, that is my problem. > ~/Maildir/{cur,new,tmp} = INBOX > ~/Maildir/.folder/{cur,new,tmp} = folder > ~/Maildir/.folder.subfolder/{cur,new,tmp} = folder.subfolder > > ie. everything under ~/Maildir/, hierarchies separated by dot. > > I've been thinking on supporting something like what I'd guess uw-imap's > maildir uses: > > ~/Maildir/{cur,new,tmp} = INBOX > ~/Maildir/folder/{cur,new,tmp} = folder > ~/Maildir/folder/subfolder/{cur,new,tmp} = folder/subfolder Yes, that is the format used by wu-imap. > One bad thing with that format is that you can't have mailbox named cur, > new or tmp. Anyway, supporting that format isn't really in my short term > plans.. No problem, I think that a converter added to dovecot would be a much better solution. > Hmm. Was it also uw-imap's maildir patch that added the UID into maildir > filename like: 12345,U=uid? I was also considering on supporting it, but > I think it had some problems.. No, it's not IMO. Thank you, Timo. -- -- We are what we repeatedly do. Excellence, then, is not an act, but a habit. -- Alin Osan From security@jlug.org Sun Sep 21 15:49:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A7DC42399B; Sun, 21 Sep 2003 15:49:46 +0300 (EEST) Received: from smtp.tele.fi (smtp.tele.fi [192.89.123.25]) by danu.procontrol.fi (Postfix) with ESMTP id DE87923994 for ; Sun, 21 Sep 2003 15:49:14 +0300 (EEST) Received: from jlug.fi (jlug.fi [192.194.49.184]) by smtp.tele.fi (Postfix) with ESMTP id ECE6B177C8 for ; Sun, 21 Sep 2003 15:49:13 +0300 (EEST) Received: (qmail 11496 invoked by uid 537); 21 Sep 2003 12:49:08 -0000 Received: from security@jlug.org by jlug by uid 510 with qmail-scanner-1.20rc3 (f-prot: 3.12/. spamassassin: 2.50. Clear:RC:0:SA:0(-9.8/10.0):. Processed in 3.091397 secs); 21 Sep 2003 12:49:08 -0000 Received: from unknown (HELO desktop) (security@jlug.org@195.197.199.46) by 0 with SMTP; 21 Sep 2003 12:49:05 -0000 Message-ID: <053101c3803e$bd80fa20$0200a8c0@desktop> From: "Eero Volotinen" To: References: <200309211511.46433@X-OS> <1064147661.13839.103.camel@hurina> <200309211546.15010@X-OS> Subject: Re: [Dovecot] convert wu-imap Maildir format to dovecot Date: Sun, 21 Sep 2003 15:49:04 +0300 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-Spam-Status: No, hits=-9.8 required=10.0 tests=QUOTED_EMAIL_TEXT,REFERENCES autolearn=ham version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 12:49:46 -0000 X-UID: 1632 Status: O > No problem, I think that a converter added to dovecot would be a much > better solution. There is to maildir conversion scripts in qmail.org -- Eero From aline@ronnie.rdsor.ro Sun Sep 21 16:01:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 420C42399D; Sun, 21 Sep 2003 16:01:22 +0300 (EEST) Received: from ronnie.rdsor.ro (unknown [193.231.188.240]) by danu.procontrol.fi (Postfix) with ESMTP id C86DE23866 for ; Sun, 21 Sep 2003 16:01:20 +0300 (EEST) Received: by ronnie.rdsor.ro (qmail, from userid 500) id 53296D7407; Sun, 21 Sep 2003 16:01:20 +0300 (EEST) From: Alin Osan Organization: Fundatia Casa To: dovecot@procontrol.fi Subject: Re: [Dovecot] convert wu-imap Maildir format to dovecot Date: Sun, 21 Sep 2003 16:01:20 +0300 User-Agent: KMail/1.5.4 References: <200309211511.46433@X-OS> <200309211546.15010@X-OS> <053101c3803e$bd80fa20$0200a8c0@desktop> In-Reply-To: <053101c3803e$bd80fa20$0200a8c0@desktop> X-OS: GNU/Linux 2.4.20 athlon: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200309211601.20208@X-OS> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: al@casa.org.ro List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 13:01:22 -0000 X-UID: 1633 Status: O On Sunday 21 September 2003 15:49, Eero Volotinen wrote: > > No problem, I think that a converter added to dovecot would be a much > > better solution. > > There is to maildir conversion scripts in qmail.org I was thinking of a Maildir to Maildir++ converter. -- -- We are what we repeatedly do. Excellence, then, is not an act, but a habit. -- Alin Osan From security@jlug.org Sun Sep 21 16:05:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 245DD2399E; Sun, 21 Sep 2003 16:05:08 +0300 (EEST) Received: from smtp.tele.fi (smtp.tele.fi [192.89.123.25]) by danu.procontrol.fi (Postfix) with ESMTP id ABCBF2399D for ; Sun, 21 Sep 2003 16:05:06 +0300 (EEST) Received: from jlug.fi (jlug.fi [192.194.49.184]) by smtp.tele.fi (Postfix) with ESMTP id 5FA6F27A36 for ; Sun, 21 Sep 2003 16:05:06 +0300 (EEST) Received: (qmail 12989 invoked by uid 537); 21 Sep 2003 13:05:01 -0000 Received: from security@jlug.org by jlug by uid 510 with qmail-scanner-1.20rc3 (f-prot: 3.12/. spamassassin: 2.50. Clear:RC:0:SA:0(-7.2/10.0):. Processed in 3.413181 secs); 21 Sep 2003 13:05:01 -0000 Received: from unknown (HELO desktop) (security@jlug.org@195.197.199.46) by 0 with SMTP; 21 Sep 2003 13:04:57 -0000 Message-ID: <055401c38040$f4fc8d00$0200a8c0@desktop> From: "Eero Volotinen" To: References: <200309211511.46433@X-OS> <200309211546.15010@X-OS><053101c3803e$bd80fa20$0200a8c0@desktop> <200309211601.20208@X-OS> Subject: Re: [Dovecot] convert wu-imap Maildir format to dovecot Date: Sun, 21 Sep 2003 16:04:56 +0300 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-Spam-Status: No, hits=-7.2 required=10.0 tests=QUOTE_TWICE_1,REFERENCES autolearn=ham version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 13:05:08 -0000 X-UID: 1634 Status: O > > There is to maildir conversion scripts in qmail.org > > I was thinking of a Maildir to Maildir++ converter. Why? Maildir quota is not supported by dovecot. Maildir and maildir++ are compatible. -- Eero From aline@ronnie.rdsor.ro Sun Sep 21 16:17:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B7FF32399F; Sun, 21 Sep 2003 16:17:32 +0300 (EEST) Received: from ronnie.rdsor.ro (193.231.188.240.catv.rdsor.ro [193.231.188.240]) by danu.procontrol.fi (Postfix) with ESMTP id 2D0A62399E for ; Sun, 21 Sep 2003 16:17:30 +0300 (EEST) Received: by ronnie.rdsor.ro (qmail, from userid 500) id E6645D7407; Sun, 21 Sep 2003 16:17:22 +0300 (EEST) From: Alin Osan Organization: Fundatia Casa To: dovecot@procontrol.fi Subject: Re: [Dovecot] convert wu-imap Maildir format to dovecot Date: Sun, 21 Sep 2003 16:17:22 +0300 User-Agent: KMail/1.5.4 References: <200309211511.46433@X-OS> <200309211601.20208@X-OS> <055401c38040$f4fc8d00$0200a8c0@desktop> In-Reply-To: <055401c38040$f4fc8d00$0200a8c0@desktop> X-OS: GNU/Linux 2.4.20 athlon: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200309211617.22793@X-OS> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: al@casa.org.ro List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 13:17:32 -0000 X-UID: 1635 Status: O On Sunday 21 September 2003 16:04, Eero Volotinen wrote: > Why? Maildir quota is not supported by dovecot. I didn't know that. > Maildir and maildir++ are compatible. Well, actually I need to convert the wu-imap Maildir format to something dovecot can work with. Maildir++ seemed the best solution for this, as this is supported by dovecot. But Maildir would do just fine, I suppose. -- -- We are what we repeatedly do. Excellence, then, is not an act, but a habit. -- Alin Osan From tss@iki.fi Sun Sep 21 16:34:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E7466239A7; Sun, 21 Sep 2003 16:34:10 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 44FE62399F for ; Sun, 21 Sep 2003 16:34:09 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D32615C65486 for ; Sun, 21 Sep 2003 16:34:05 +0300 (EEST) Subject: Re: [Dovecot] convert wu-imap Maildir format to dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <055401c38040$f4fc8d00$0200a8c0@desktop> References: <200309211511.46433@X-OS> <200309211546.15010@X-OS> <053101c3803e$bd80fa20$0200a8c0@desktop> <200309211601.20208@X-OS> <055401c38040$f4fc8d00$0200a8c0@desktop> Content-Type: text/plain Message-Id: <1064151245.13841.109.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sun, 21 Sep 2003 16:34:05 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 13:34:11 -0000 X-UID: 1636 Status: O On Sun, 2003-09-21 at 16:04, Eero Volotinen wrote: > Maildir and maildir++ are compatible. Maildir++ defines where non-INBOX mailboxes are located and how they're named. Dovecot doesn't support accessing maildirs from random locations in filesystem. That was his problem. From tss@iki.fi Sun Sep 21 21:16:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CF15E239A8; Sun, 21 Sep 2003 21:16:27 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4715523994 for ; Sun, 21 Sep 2003 21:16:23 +0300 (EEST) Date: Sun, 21 Sep 2003 21:16:57 +0300 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: X-Mailer: Apple Mail (2.552) Subject: [Dovecot] Secure coding guide X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 18:16:28 -0000 X-UID: 1637 Status: O I thought I'd write a small guide to what Dovecot's "secure coding techniques" are and how you'd use them: http://dovecot.fi/doc/securecoding.txt From matthias.andree@gmx.de Sun Sep 21 23:43:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CCF12239A8; Sun, 21 Sep 2003 23:43:07 +0300 (EEST) Received: from m2a2.dyndns.org (pD951F1EB.dip.t-dialin.net [217.81.241.235]) by danu.procontrol.fi (Postfix) with ESMTP id 6846F23994 for ; Sun, 21 Sep 2003 23:42:33 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 96D0296372; Sun, 21 Sep 2003 22:42:31 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] feature request: maildirquota In-Reply-To: <1064083957.13836.17.camel@hurina> (Timo Sirainen's message of "Sat, 20 Sep 2003 21:52:37 +0300") References: <039801c37e84$ae5fe990$0200a8c0@desktop> <1064083957.13836.17.camel@hurina> From: Matthias Andree Date: Sun, 21 Sep 2003 22:42:31 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 20:43:08 -0000 X-UID: 1638 Status: O Timo Sirainen writes: > I don't really have plans to write quota support before 1.0. It will be > done via plugin anyway (which can be compiled into binary), and it's > already possible to write such plugin for CVS Dovecot. Or almost, > there's a small problem with calculating quota correctly when saving new > mails via IMAP, but that will be fixed hopefully sooner than later :) Using *real* user accounts and *file system* quotas should work today, and should be bullet-proof on sane operating systems. I wouldn't place any bets on Linux quota code though. ;-) -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95 From ewald@geschwinde.net Mon Sep 22 00:42:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1811B239A9; Mon, 22 Sep 2003 00:42:10 +0300 (EEST) Received: from sx4gdsl001.gdsl.at (sx4gdsl001.globalcore.net [80.78.225.200]) by danu.procontrol.fi (Postfix) with ESMTP id 7D46B2399F for ; Mon, 22 Sep 2003 00:42:08 +0300 (EEST) Received: from geschwinde.net (unknown [80.78.255.20]) by sx4gdsl001.gdsl.at (Postfix) with ESMTP id 176325800AB for ; Sun, 21 Sep 2003 23:14:57 +0200 (CEST) Message-ID: <3F6E1A10.5010108@geschwinde.net> Date: Sun, 21 Sep 2003 23:37:20 +0200 From: Ewald Geschwinde User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5b) Gecko/20030903 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] problem with auth X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2003 21:42:10 -0000 X-UID: 1639 Status: O I'm new to dovecot (it's a cool piece of software!!!) I'm using Debian woody I'm trying to start the server but then there is this mail Do I have to set an environment variable or waht does this mean. I'm trying to use a pgsql backend for authentification and I have compiled it from source /usr/local/libexec/dovecot/dovecot-auth start dovecot-auth: Fatal: MECHANISMS environment is unset Regards Ewald Geschwinde From tss@iki.fi Mon Sep 22 14:06:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0DA46238C6; Mon, 22 Sep 2003 14:06:58 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8712C23896 for ; Mon, 22 Sep 2003 14:06:55 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 54E205C65486 for ; Mon, 22 Sep 2003 14:06:55 +0300 (EEST) Subject: Re: [Dovecot] problem with auth From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F6E1A10.5010108@geschwinde.net> References: <3F6E1A10.5010108@geschwinde.net> Content-Type: text/plain Message-Id: <1064228815.13836.152.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 22 Sep 2003 14:06:55 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2003 11:06:58 -0000 X-UID: 1640 Status: O On Mon, 2003-09-22 at 00:37, Ewald Geschwinde wrote: > I'm trying to start the server but then there is this mail > Do I have to set an environment variable or waht does this mean. No .. I should probably start talking about it with a different name in docs. "mailbox location" or something rather than "MAIL environment". :) And rename default_mail_env from dovecot.conf with default_mailbox_location. > I'm trying to use a pgsql backend for authentification > and I have compiled it from source > > > /usr/local/libexec/dovecot/dovecot-auth start > dovecot-auth: Fatal: MECHANISMS environment is unset Start /usr/local/sbin/dovecot binary. From dovecot@fabre.id.au Mon Sep 22 16:13:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A4914238C6; Mon, 22 Sep 2003 16:13:28 +0300 (EEST) Received: from mail006.syd.optusnet.com.au (mail006.syd.optusnet.com.au [211.29.132.63]) by danu.procontrol.fi (Postfix) with ESMTP id 210DD23896 for ; Mon, 22 Sep 2003 16:13:22 +0300 (EEST) Received: from the-system.home.lan (c210-49-179-203.eburwd1.vic.optusnet.com.au [210.49.179.203]) h8MDDKi32335 for ; Mon, 22 Sep 2003 23:13:20 +1000 Date: Mon, 22 Sep 2003 23:13:17 +1000 From: Ron To: dovecot@procontrol.fi Message-Id: <20030922231317.3b6664ca.dovecot@fabre.id.au> X-Mailer: Sylpheed version 0.9.5claws (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Dovecot] Multiple instances of .customflags staying open X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2003 13:13:29 -0000 X-UID: 1641 Status: O Content-Length: 1413 # cat /proc/version Linux version 2.4.20-18.9 (bhcompile@daffy.perf.redhat.com) (gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) #1 Thu May 29 07:09:43 EDT 2003 # dovecot --version 0.99.10 I've just recently noticed a serious problem with my system. After about an hour or so I get errors in /var/log/maillog such as this; Sep 21 06:40:16 the-system imap(ray): opendir() failed with file \ \/home/ray/Maildir//new: Too many open files I investigated with 'lsof' and found that many copies of '.customflags' were open for each and every folder. ie; Each folder's '.customflags' file was open 15 times! I suspect that postfix is not able to store newly collected email while this is occuring, therefore I am likely losing messages. I've tried with multiple mail clients (Sylpheed & Evolution) and multiple users, always with the same result. Further investigation indicates that each time the client scans for new mail another instance of each and every '.customflags' is opened. As I have the client set for checking at five minute intervals then it was probably 75 minutes until the client barfed. Less, if I manualy scan for new mail a few times. If I shutdown the client and restart it then everything is fine for about an hour. Running 'lsof /home/ray/Maildir/.customflags' on the server I can see the list of files increasing each time the client checks for new mail. Any help would be appreciated! From tss@iki.fi Mon Sep 22 17:28:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 031F2238D3; Mon, 22 Sep 2003 17:28:54 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F40BB238B6 for ; Mon, 22 Sep 2003 17:28:48 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B1CC15C65486 for ; Mon, 22 Sep 2003 17:28:48 +0300 (EEST) Subject: Re: [Dovecot] Multiple instances of .customflags staying open From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030922231317.3b6664ca.dovecot@fabre.id.au> References: <20030922231317.3b6664ca.dovecot@fabre.id.au> Content-Type: multipart/mixed; boundary="=-vbqoi7YN4os9IgUNurfK" Message-Id: <1064240928.13839.160.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 22 Sep 2003 17:28:48 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2003 14:28:54 -0000 X-UID: 1642 Status: O Content-Length: 2009 --=-vbqoi7YN4os9IgUNurfK Content-Type: text/plain Content-Transfer-Encoding: 7bit On Mon, 2003-09-22 at 16:13, Ron wrote: > I've just recently noticed a serious problem with my system. After about > an hour or so I get errors in /var/log/maillog such as this; > Sep 21 06:40:16 the-system imap(ray): opendir() failed with file \ > \/home/ray/Maildir//new: Too many open files > > I investigated with 'lsof' and found that many copies of '.customflags' > were open for each and every folder. ie; Each folder's '.customflags' > file was open 15 times! Could it be that your .customflags files are not writable to users? That's the only code path that I can see it leaking file descriptors for .customflags. Attached patch should also fix it. --=-vbqoi7YN4os9IgUNurfK Content-Disposition: attachment; filename=leak.diff Content-Type: text/x-patch; name=leak.diff; charset=iso-8859-15 Content-Transfer-Encoding: 7bit Index: src/lib-index/mail-custom-flags.c =================================================================== RCS file: /home/cvs/dovecot/src/lib-index/mail-custom-flags.c,v retrieving revision 1.23 diff -u -r1.23 mail-custom-flags.c --- src/lib-index/mail-custom-flags.c 6 Aug 2003 20:15:31 -0000 1.23 +++ src/lib-index/mail-custom-flags.c 22 Sep 2003 14:27:47 -0000 @@ -248,16 +248,14 @@ CUSTOM_FLAGS_FILE_NAME, NULL); fd = !readonly ? open(path, O_RDWR | O_CREAT, 0660) : open(path, O_RDONLY); - if (fd == -1) { - if (errno == EACCES) { - fd = open(path, O_RDONLY); - readonly = TRUE; - } - if (errno != EACCES && errno != ENOENT && - !ENOSPACE(errno)) { - index_file_set_syscall_error(index, path, "open()"); - return FALSE; - } + if (fd == -1 && errno == EACCES) { + fd = open(path, O_RDONLY); + readonly = TRUE; + } + if (fd == -1 && errno != EACCES && errno != ENOENT && + !ENOSPACE(errno)) { + index_file_set_syscall_error(index, path, "open()"); + return FALSE; } } else { path = NULL; --=-vbqoi7YN4os9IgUNurfK-- From esj@harvee.org Mon Sep 22 22:19:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2B43D238D3; Mon, 22 Sep 2003 22:19:56 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id ECA80238C6 for ; Mon, 22 Sep 2003 22:19:22 +0300 (EEST) Received: from harvee.org ([192.168.0.59]) by harvee.org (8.12.8/8.12.8) with ESMTP id h8MJJIsC011023 for ; Mon, 22 Sep 2003 15:19:18 -0400 Message-ID: <3F6F4B32.1000908@harvee.org> Date: Mon, 22 Sep 2003 15:19:14 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5b) Gecko/20030901 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] status of maildir and mbox X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2003 19:19:56 -0000 X-UID: 1643 Status: O what is the status of mixed support of maildir and mbox at the same time? Has any progress been made? --- eric From tss@iki.fi Mon Sep 22 22:30:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4D37523996; Mon, 22 Sep 2003 22:30:17 +0300 (EEST) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 57B7923993 for ; Mon, 22 Sep 2003 22:29:55 +0300 (EEST) Date: Mon, 22 Sep 2003 22:30:31 +0300 Subject: Re: [Dovecot] status of maildir and mbox Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <3F6F4B32.1000908@harvee.org> Message-Id: <3B02BDB8-ED33-11D7-86F1-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2003 19:30:17 -0000 X-UID: 1644 Status: O On Monday, Sep 22, 2003, at 22:19 Europe/Helsinki, Eric S. Johansson wrote: > what is the status of mixed support of maildir and mbox at the same > time? Has any progress been made? It was working in CVS after I added support for namespaces. Then I broke mbox support with index changes and still haven't managed to kick myself into fixing the mbox code. From esj@harvee.org Mon Sep 22 22:37:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7BE5C23996; Mon, 22 Sep 2003 22:37:16 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id A1A9423993 for ; Mon, 22 Sep 2003 22:37:13 +0300 (EEST) Received: from harvee.org ([192.168.0.59]) by harvee.org (8.12.8/8.12.8) with ESMTP id h8MJbAsC011175; Mon, 22 Sep 2003 15:37:10 -0400 Message-ID: <3F6F4F61.8090300@harvee.org> Date: Mon, 22 Sep 2003 15:37:05 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5b) Gecko/20030901 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] status of maildir and mbox References: <3B02BDB8-ED33-11D7-86F1-000393CC2E90@iki.fi> In-Reply-To: <3B02BDB8-ED33-11D7-86F1-000393CC2E90@iki.fi> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2003 19:37:16 -0000 X-UID: 1645 Status: O Timo Sirainen wrote: > On Monday, Sep 22, 2003, at 22:19 Europe/Helsinki, Eric S. Johansson > wrote: > >> what is the status of mixed support of maildir and mbox at the same >> time? Has any progress been made? > > > It was working in CVS after I added support for namespaces. Then I > broke mbox support with index changes and still haven't managed to > kick myself into fixing the mbox code. what kind of a bribe will it take? Chocolate (not that we make anything good east of the Continental divide although I do know of a rather nice chocolate shop in Rockport Massachusetts that makes yummy handmade truffles and peppermint candy canes), music, videos,?? --- eric From mem@mv.mv.com Tue Sep 23 05:12:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CA9E723993; Tue, 23 Sep 2003 05:12:36 +0300 (EEST) Received: from mv.mv.com (iridium.mv.net [199.125.85.17]) by danu.procontrol.fi (Postfix) with SMTP id 29D21238D1 for ; Tue, 23 Sep 2003 05:12:04 +0300 (EEST) Received: (qmail 12693 invoked by uid 101); 22 Sep 2003 22:12:01 -0400 From: "Mark E. Mallett" Date: Mon, 22 Sep 2003 22:12:01 -0400 To: "Eric S. Johansson" Subject: Re: [Dovecot] status of maildir and mbox Message-ID: <20030923021201.GF25879@iridium.mv.net> References: <3B02BDB8-ED33-11D7-86F1-000393CC2E90@iki.fi> <3F6F4F61.8090300@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3F6F4F61.8090300@harvee.org> User-Agent: Mutt/1.4.1i cc: Timo Sirainen cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 02:12:37 -0000 X-UID: 1646 Status: O On Mon, Sep 22, 2003 at 03:37:05PM -0400, Eric S. Johansson wrote: > Timo Sirainen wrote: > > >On Monday, Sep 22, 2003, at 22:19 Europe/Helsinki, Eric S. Johansson > >wrote: > > > >>what is the status of mixed support of maildir and mbox at the same > >>time? Has any progress been made? > > > > > >It was working in CVS after I added support for namespaces. Then I > >broke mbox support with index changes and still haven't managed to > >kick myself into fixing the mbox code. > > what kind of a bribe will it take? Chocolate (not that we make anything > good east of the Continental divide although I do know of a rather nice > chocolate shop in Rockport Massachusetts that makes yummy handmade > truffles and peppermint candy canes), music, videos,?? I'll pitch in-- I'm even close enough to Rockport to drive there :-) mm From warren@togami.com Tue Sep 23 10:58:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 378B423993; Tue, 23 Sep 2003 10:58:18 +0300 (EEST) Received: from pan.mplug.org (unknown [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 0A224238D1 for ; Tue, 23 Sep 2003 10:57:45 +0300 (EEST) Received: from laptop (cpe-24-94-73-135.hawaii.rr.com [24.94.73.135]) by pan.mplug.org (Postfix) with ESMTP id A51745D8079 for ; Mon, 22 Sep 2003 22:34:29 -1000 (HST) Subject: Re: [Dovecot] dovecot IMAP misserving problem? From: Warren Togami To: dovecot@procontrol.fi In-Reply-To: <1064147005.13841.92.camel@hurina> References: <25F0676A-E5DE-11D7-B223-000393CC2E90@iki.fi> <1064133626.10215.5.camel@laptop> <1064147005.13841.92.camel@hurina> Content-Type: text/plain Message-Id: <1064303859.24880.55.camel@laptop> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 (1.4.4-7) Date: Mon, 22 Sep 2003 21:57:40 -1000 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 07:58:18 -0000 X-UID: 1647 Status: O On Sun, 2003-09-21 at 02:23, Timo Sirainen wrote: > On Sun, 2003-09-21 at 11:40, Warren Togami wrote: > > > >> Problem is that it contained message/rfc822 attachment which didn't > > > >> actually have any headers (Content-Type especially). Dovecot didn't > > > >> write empty envelope for it in BODY or BODYSTRUCTURE replies. It's > > > >> fixed in CVS, I think it was this change: > > > >> http://dovecot.fi/bodystructure.patch > > > I have determined that it was not a caching issue. With the patch > > applied the message is still unreadable in Squirrelmail, causes > > Evolution to crash, but readable in Mozilla. > > I missed a few more changes which were needed. I updated the patch in > the above url. > Confirmed, that patch now seems to fix the problem for dovecot-0.99.10. I am running it in production now for long term testing. Warren From dovecot@fabre.id.au Tue Sep 23 14:17:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0D8D823996; Tue, 23 Sep 2003 14:17:14 +0300 (EEST) Received: from mail002.syd.optusnet.com.au (mail002.syd.optusnet.com.au [211.29.132.32]) by danu.procontrol.fi (Postfix) with ESMTP id 8CF35238C6 for ; Tue, 23 Sep 2003 14:16:36 +0300 (EEST) Received: from the-system.home.lan (c210-49-179-203.eburwd1.vic.optusnet.com.au [210.49.179.203]) h8NBGUj30887 for ; Tue, 23 Sep 2003 21:16:31 +1000 Date: Tue, 23 Sep 2003 21:16:28 +1000 From: Ron To: dovecot@procontrol.fi Subject: Re: [Dovecot] Multiple instances of .customflags staying open Message-Id: <20030923211628.29a154d4.dovecot@fabre.id.au> In-Reply-To: <1064240928.13839.160.camel@hurina> References: <20030922231317.3b6664ca.dovecot@fabre.id.au> <1064240928.13839.160.camel@hurina> X-Mailer: Sylpheed version 0.9.5claws (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 11:17:14 -0000 X-UID: 1648 Status: O Content-Length: 1077 On Mon, 22 Sep 2003 17:28:48 +0300 Timo Sirainen (Timo Sirainen ) said: > On Mon, 2003-09-22 at 16:13, Ron wrote: > > I've just recently noticed a serious problem with my system. After > > about an hour or so I get errors in /var/log/maillog such as this; > > Sep 21 06:40:16 the-system imap(ray): opendir() failed with file \ > > \/home/ray/Maildir//new: Too many open files > > > > I investigated with 'lsof' and found that many copies of > > '.customflags' were open for each and every folder. ie; Each > > folder's '.customflags' file was open 15 times! > > Could it be that your .customflags files are not writable to users? No, they're all writable to the user. > That's the only code path that I can see it leaking file descriptors > for.customflags. Attached patch should also fix it. This is likely a dumb question, but how do I apply the patch? I'm no programmer, just an admin/user. btw, the situation got worse today. I couldn't keep the mail client running for more than a minute at a time. This is a real nuicence. Thanks for the speedy reply! From t1lt@bk.ru Tue Sep 23 06:27:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5CC6A23993; Tue, 23 Sep 2003 06:27:56 +0300 (EEST) Received: from sun.com (port-212-202-39-64.reverse.qsc.de [212.202.39.64]) by danu.procontrol.fi (Postfix) with SMTP id 2FF7D238C6 for ; Tue, 23 Sep 2003 06:27:23 +0300 (EEST) Received: (qmail 12162 invoked by uid 1000); 23 Sep 2003 03:31:21 -0000 Date: Tue, 23 Sep 2003 05:31:21 +0200 From: Samuel Verner To: dovecot@procontrol.fi Message-ID: <20030923033121.GA1700@woom.net> Mail-Followup-To: Samuel Verner , dovecot@procontrol.fi Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Mailman-Approved-At: Tue, 23 Sep 2003 15:07:49 +0300 Subject: [Dovecot] shared folders? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 03:27:56 -0000 X-UID: 1649 Status: O hello, does dovecot support shared folders (a very nice feature in cyrus-imapd)? sam From tss@iki.fi Tue Sep 23 15:27:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 76EE4239A3; Tue, 23 Sep 2003 15:27:16 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2DD392399B for ; Tue, 23 Sep 2003 15:27:12 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3ACE65EC1162 for ; Tue, 23 Sep 2003 15:27:11 +0300 (EEST) Subject: Re: [Dovecot] Multiple instances of .customflags staying open From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030923211628.29a154d4.dovecot@fabre.id.au> References: <20030922231317.3b6664ca.dovecot@fabre.id.au> <1064240928.13839.160.camel@hurina> <20030923211628.29a154d4.dovecot@fabre.id.au> Content-Type: text/plain Message-Id: <1064320030.23454.12.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 23 Sep 2003 15:27:10 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 12:27:16 -0000 X-UID: 1650 Status: O Content-Length: 1188 On Tue, 2003-09-23 at 14:16, Ron wrote: > > > I investigated with 'lsof' and found that many copies of > > > '.customflags' were open for each and every folder. ie; Each > > > folder's '.customflags' file was open 15 times! Try manually running: MAIL=~Maildir /usr/local/libexec/dovecot/imap x select inbox and check if that process also is leaking .customflags files? And is it really the same .customflags file that is open 15 times? Do you use INDEX=MEMORY? > > Could it be that your .customflags files are not writable to users? > > No, they're all writable to the user. Then that patch probably doesn't help. Hmm. There's another way actually for leaks to happen but I think it also leaks .data files. Happens when opening indexes fails because it has to be rebuilt. Shouldn't happen normally so I'm not sure if that's your problem either. I'll fix that later today anyway. > > That's the only code path that I can see it leaking file descriptors > > for.customflags. Attached patch should also fix it. > > This is likely a dumb question, but how do I apply the patch? I'm no > programmer, just an admin/user. cd dovecot-0.99.10 patch -p0 < file.diff (or -p1 sometimes) From tss@iki.fi Tue Sep 23 15:28:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E7D15239AC; Tue, 23 Sep 2003 15:28:39 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 63D9B239A8 for ; Tue, 23 Sep 2003 15:28:38 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 396C25EC1162 for ; Tue, 23 Sep 2003 15:28:38 +0300 (EEST) Subject: Re: [Dovecot] status of maildir and mbox From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F6F4F61.8090300@harvee.org> References: <3B02BDB8-ED33-11D7-86F1-000393CC2E90@iki.fi> <3F6F4F61.8090300@harvee.org> Content-Type: text/plain Message-Id: <1064320118.23451.15.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 23 Sep 2003 15:28:38 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 12:28:40 -0000 X-UID: 1651 Status: O On Mon, 2003-09-22 at 22:37, Eric S. Johansson wrote: > >> what is the status of mixed support of maildir and mbox at the same > >> time? Has any progress been made? > > > > It was working in CVS after I added support for namespaces. Then I > > broke mbox support with index changes and still haven't managed to > > kick myself into fixing the mbox code. > > what kind of a bribe will it take? I don't know if bribes help, I've been wanting it myself for a while now too. > Chocolate (not that we make anything > good east of the Continental divide although I do know of a rather nice > chocolate shop in Rockport Massachusetts that makes yummy handmade > truffles and peppermint candy canes), music, videos,?? I don't really like chocolate :) From tss@iki.fi Tue Sep 23 15:29:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 834D6239AB; Tue, 23 Sep 2003 15:29:41 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1A4C22399B for ; Tue, 23 Sep 2003 15:29:40 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E91AC5EC1162; Tue, 23 Sep 2003 15:29:39 +0300 (EEST) Subject: Re: [Dovecot] shared folders? From: Timo Sirainen To: Samuel Verner In-Reply-To: <20030923033121.GA1700@woom.net> References: <20030923033121.GA1700@woom.net> Content-Type: text/plain Message-Id: <1064320179.23448.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 23 Sep 2003 15:29:39 +0300 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 12:29:41 -0000 X-UID: 1652 Status: O On Tue, 2003-09-23 at 06:31, Samuel Verner wrote: > does dovecot support shared folders (a very nice feature in cyrus-imapd)? Not yet. It's planned after 1.0 release. From dovecot@fabre.id.au Tue Sep 23 16:09:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 63EA8239A2; Tue, 23 Sep 2003 16:09:28 +0300 (EEST) Received: from mail017.syd.optusnet.com.au (mail017.syd.optusnet.com.au [211.29.132.168]) by danu.procontrol.fi (Postfix) with ESMTP id D7132238C6 for ; Tue, 23 Sep 2003 16:08:54 +0300 (EEST) Received: from the-system.home.lan (c210-49-179-203.eburwd1.vic.optusnet.com.au [210.49.179.203]) h8ND8pX07305 for ; Tue, 23 Sep 2003 23:08:52 +1000 Date: Tue, 23 Sep 2003 23:08:50 +1000 From: Ron To: dovecot@procontrol.fi Subject: Re: [Dovecot] Multiple instances of .customflags staying open Message-Id: <20030923230850.4b9fa09c.dovecot@fabre.id.au> In-Reply-To: <1064320030.23454.12.camel@hurina> References: <20030922231317.3b6664ca.dovecot@fabre.id.au> <1064240928.13839.160.camel@hurina> <20030923211628.29a154d4.dovecot@fabre.id.au> <1064320030.23454.12.camel@hurina> X-Mailer: Sylpheed version 0.9.5claws (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 13:09:28 -0000 X-UID: 1653 Status: O On Tue, 23 Sep 2003 15:27:10 +0300 Timo Sirainen (Timo Sirainen ) said: > Try manually running: > MAIL=~Maildir /usr/local/libexec/dovecot/imap > x select inbox > and check if that process also is leaking .customflags files? Two copies of the .customflags file get opened, and stay opened. I execute the commands (1 select INBOX, 2 select INBOX, etc) and only the two are opened; # lsof|grep customflag imap 1703 ron mem REG 3,5 5 5488711 /home/ron/Maildir/.customflags 1703 ron 5u REG 3,5 5 5488711 /home/ron/Maildir/.customflags imap > And is it really the same .customflags file that is open 15 times? Yes, absolutely. > Do you use INDEX=MEMORY? Do you mean this?; default_mail_env = maildir:%h/Maildir/:INDEX=MEMORY Thanks again! From ewald@geschwinde.net Tue Sep 23 20:15:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6AAA0239AB; Tue, 23 Sep 2003 20:15:47 +0300 (EEST) Received: from sx4gdsl001.gdsl.at (sx4gdsl001.globalcore.net [80.78.225.200]) by danu.procontrol.fi (Postfix) with ESMTP id B9E18238C6 for ; Tue, 23 Sep 2003 20:15:11 +0300 (EEST) Received: from geschwinde.net (unknown [80.78.255.20]) by sx4gdsl001.gdsl.at (Postfix) with ESMTP id AD9885800AB for ; Tue, 23 Sep 2003 18:47:37 +0200 (CEST) Message-ID: <3F707EAC.4070801@geschwinde.net> Date: Tue, 23 Sep 2003 19:11:08 +0200 From: Ewald Geschwinde User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5b) Gecko/20030903 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] debian installation X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 17:15:47 -0000 X-UID: 1654 Status: O apt-get install postfix-tls postfix-pgsql sasl2-bin libsasl2-modules postgresql libpam-pgsql Reading Package Lists... Done Building Dependency Tree... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: Sorry, but the following packages have unmet dependencies: sasl2-bin: Depends: libcomerr1-kerberos4kth (>= 1.2.2-2) but it is not installable E: Sorry, broken packages I think the new users should know this Maybe it takes some time before the sasl2-bin is update Regards Ewald Geschwinde From tss@iki.fi Tue Sep 23 20:40:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 207BF239AC; Tue, 23 Sep 2003 20:40:57 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7A77F239AB for ; Tue, 23 Sep 2003 20:40:24 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7E83F5EC1162 for ; Tue, 23 Sep 2003 20:40:23 +0300 (EEST) Subject: Re: [Dovecot] Multiple instances of .customflags staying open From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030923230850.4b9fa09c.dovecot@fabre.id.au> References: <20030922231317.3b6664ca.dovecot@fabre.id.au> <1064240928.13839.160.camel@hurina> <20030923211628.29a154d4.dovecot@fabre.id.au> <1064320030.23454.12.camel@hurina> <20030923230850.4b9fa09c.dovecot@fabre.id.au> Content-Type: multipart/mixed; boundary="=-LxcRs9J/K2udB/rK1bZL" Message-Id: <1064338823.23444.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 23 Sep 2003 20:40:23 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 17:40:57 -0000 X-UID: 1655 Status: O Content-Length: 3862 --=-LxcRs9J/K2udB/rK1bZL Content-Type: text/plain Content-Transfer-Encoding: 7bit On Tue, 2003-09-23 at 16:08, Ron wrote: > > Do you use INDEX=MEMORY? > > Do you mean this?; > default_mail_env = maildir:%h/Maildir/:INDEX=MEMORY Yes. OK, got it :) It happens with INDEX=MEMORY. Included patch should fix it. --=-LxcRs9J/K2udB/rK1bZL Content-Disposition: attachment; filename=inmem.diff Content-Type: text/x-patch; name=inmem.diff; charset=iso-8859-15 Content-Transfer-Encoding: 7bit diff -ru ../dovecot-0.99.10/src/lib-storage/index/index-storage.c src/lib-storage/index/index-storage.c --- ../dovecot-0.99.10/src/lib-storage/index/index-storage.c 2003-06-15 06:43:05.000000000 +0300 +++ src/lib-storage/index/index-storage.c 2003-09-23 20:36:20.000000000 +0300 @@ -42,27 +42,31 @@ indexes = list; } -struct mail_index *index_storage_lookup_ref(const char *path) +struct mail_index * +index_storage_lookup_ref(const char *index_dir, const char *path) { struct index_list **list, *rec; struct mail_index *match; struct stat st1, st2; int destroy_count; - if (stat(path, &st1) < 0) - return NULL; + if (index_dir != NULL) { + if (stat(index_dir, &st1) < 0) + return NULL; + } - /* compare inodes so we don't break even with symlinks */ + /* compare index_dir inodes so we don't break even with symlinks. + for in-memory indexes compare just mailbox paths */ destroy_count = 0; match = NULL; for (list = &indexes; *list != NULL;) { rec = *list; - if (stat(rec->index->dir, &st2) == 0) { - if (st1.st_ino == st2.st_ino && - st1.st_dev == st2.st_dev) { - rec->refcount++; - match = rec->index; - } + if ((index_dir != NULL && stat(rec->index->dir, &st2) == 0 && + st1.st_ino == st2.st_ino && st1.st_dev == st2.st_dev) || + (index_dir == NULL && + strcmp(path, rec->index->mailbox_path) == 0)) { + rec->refcount++; + match = rec->index; } if (rec->refcount == 0) { diff -ru ../dovecot-0.99.10/src/lib-storage/index/index-storage.h src/lib-storage/index/index-storage.h --- ../dovecot-0.99.10/src/lib-storage/index/index-storage.h 2003-06-15 06:43:05.000000000 +0300 +++ src/lib-storage/index/index-storage.h 2003-09-23 20:33:30.000000000 +0300 @@ -42,7 +42,8 @@ enum mail_lock_type lock_type); void index_storage_add(struct mail_index *index); -struct mail_index *index_storage_lookup_ref(const char *path); +struct mail_index * +index_storage_lookup_ref(const char *index_dir, const char *path); void index_storage_unref(struct mail_index *index); void index_storage_destroy_unrefed(void); diff -ru ../dovecot-0.99.10/src/lib-storage/index/maildir/maildir-storage.c src/lib-storage/index/maildir/maildir-storage.c --- ../dovecot-0.99.10/src/lib-storage/index/maildir/maildir-storage.c 2003-06-15 06:43:05.000000000 +0300 +++ src/lib-storage/index/maildir/maildir-storage.c 2003-09-23 20:36:27.000000000 +0300 @@ -301,7 +301,7 @@ index_dir = maildir_get_index_path(storage, name); control_dir = maildir_get_control_path(storage, name); - index = index_storage_lookup_ref(index_dir); + index = index_storage_lookup_ref(index_dir, path); if (index == NULL) { index = maildir_index_alloc(path, index_dir, control_dir); index_storage_add(index); diff -ru ../dovecot-0.99.10/src/lib-storage/index/mbox/mbox-storage.c src/lib-storage/index/mbox/mbox-storage.c --- ../dovecot-0.99.10/src/lib-storage/index/mbox/mbox-storage.c 2003-06-26 04:02:04.000000000 +0300 +++ src/lib-storage/index/mbox/mbox-storage.c 2003-09-23 20:36:36.000000000 +0300 @@ -337,7 +337,7 @@ index_dir = mbox_get_index_dir(storage, name); } - index = index_storage_lookup_ref(index_dir); + index = index_storage_lookup_ref(index_dir, path); if (index == NULL) { index = mbox_index_alloc(path, index_dir, index_dir); index_storage_add(index); --=-LxcRs9J/K2udB/rK1bZL-- From tss@iki.fi Tue Sep 23 20:47:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 203F6239B0; Tue, 23 Sep 2003 20:47:19 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 91BB2239AB for ; Tue, 23 Sep 2003 20:47:17 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5BA0E5EC1162 for ; Tue, 23 Sep 2003 20:47:17 +0300 (EEST) Subject: Re: [Dovecot] debian installation From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F707EAC.4070801@geschwinde.net> References: <3F707EAC.4070801@geschwinde.net> Content-Type: text/plain Message-Id: <1064339237.23449.30.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 23 Sep 2003 20:47:17 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 17:47:19 -0000 X-UID: 1656 Status: O On Tue, 2003-09-23 at 20:11, Ewald Geschwinde wrote: > Sorry, but the following packages have unmet dependencies: > sasl2-bin: Depends: libcomerr1-kerberos4kth (>= 1.2.2-2) but it is not > installable I had the same problem. Why do they have to put that kerberos stuff everywhere.. I used then some older packages and kludgeing to install it. > I think the new users should know this It's anyway a temporary problem.. And probably not a problem with Debian stable/testing(?) From ewald@geschwinde.net Tue Sep 23 21:03:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2316F239B1; Tue, 23 Sep 2003 21:03:47 +0300 (EEST) Received: from sx4gdsl001.gdsl.at (sx4gdsl001.globalcore.net [80.78.225.200]) by danu.procontrol.fi (Postfix) with ESMTP id 6D63F2399B for ; Tue, 23 Sep 2003 21:03:44 +0300 (EEST) Received: from geschwinde.net (unknown [80.78.255.20]) by sx4gdsl001.gdsl.at (Postfix) with ESMTP id 9F39E5800AB; Tue, 23 Sep 2003 19:36:11 +0200 (CEST) Message-ID: <3F7089FF.1080501@geschwinde.net> Date: Tue, 23 Sep 2003 19:59:27 +0200 From: Ewald Geschwinde User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5b) Gecko/20030903 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] debian installation References: <3F707EAC.4070801@geschwinde.net> <1064339237.23449.30.camel@hurina> In-Reply-To: <1064339237.23449.30.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 18:03:47 -0000 X-UID: 1657 Status: O Timo Sirainen wrote: >On Tue, 2003-09-23 at 20:11, Ewald Geschwinde wrote: > > >>Sorry, but the following packages have unmet dependencies: >> sasl2-bin: Depends: libcomerr1-kerberos4kth (>= 1.2.2-2) but it is not >>installable >> >> > >I had the same problem. Why do they have to put that kerberos stuff >everywhere.. I used then some older packages and kludgeing to install >it. > > > >>I think the new users should know this >> >> > >It's anyway a temporary problem.. And probably not a problem with Debian >stable/testing(?) > > > > > no it's an unstable problem From jaldhar@debian.org Tue Sep 23 23:28:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A1CC8239B4; Tue, 23 Sep 2003 23:28:29 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 04AB7239B1 for ; Tue, 23 Sep 2003 23:27:56 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 83F01854B for ; Tue, 23 Sep 2003 16:27:56 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20806-02 for ; Tue, 23 Sep 2003 16:27:56 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id F3853806F for ; Tue, 23 Sep 2003 16:27:55 -0400 (EDT) Date: Tue, 23 Sep 2003 16:27:55 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: dovecot@procontrol.fi Subject: Re: [Dovecot] debian installation In-Reply-To: <1064339237.23449.30.camel@hurina> Message-ID: References: <3F707EAC.4070801@geschwinde.net> <1064339237.23449.30.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at braincells.com X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 20:28:29 -0000 X-UID: 1658 Status: O On Tue, 23 Sep 2003, Timo Sirainen wrote: > It's anyway a temporary problem.. And probably not a problem with Debian > stable/testing(?) > No just unstable. http://snapshot.debian.net is a good resource for users who need to rollback a package when unstable gets a little too unstable. It shouldn't affect installing dovecot because it only depends on libsasl2 and I'm going to take even that out at your request. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From dovecot@fabre.id.au Wed Sep 24 00:09:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 29932239B4; Wed, 24 Sep 2003 00:09:40 +0300 (EEST) Received: from mail008.syd.optusnet.com.au (mail008.syd.optusnet.com.au [211.29.132.212]) by danu.procontrol.fi (Postfix) with ESMTP id 8EBB3239B0 for ; Wed, 24 Sep 2003 00:09:06 +0300 (EEST) Received: from the-system.home.lan (c210-49-179-203.eburwd1.vic.optusnet.com.au [210.49.179.203]) h8NL94604471 for ; Wed, 24 Sep 2003 07:09:04 +1000 Date: Wed, 24 Sep 2003 07:09:01 +1000 From: Ron To: dovecot@procontrol.fi Subject: Re: [Dovecot] Multiple instances of .customflags staying open Message-Id: <20030924070901.62f1411b.dovecot@fabre.id.au> In-Reply-To: <1064338823.23444.22.camel@hurina> References: <20030922231317.3b6664ca.dovecot@fabre.id.au> <1064240928.13839.160.camel@hurina> <20030923211628.29a154d4.dovecot@fabre.id.au> <1064320030.23454.12.camel@hurina> <20030923230850.4b9fa09c.dovecot@fabre.id.au> <1064338823.23444.22.camel@hurina> X-Mailer: Sylpheed version 0.9.5claws (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 21:09:40 -0000 X-UID: 1659 Status: O Content-Length: 1118 On Tue, 23 Sep 2003 20:40:23 +0300 Timo Sirainen (Timo Sirainen ) said: > On Tue, 2003-09-23 at 16:08, Ron wrote: > > > Do you use INDEX=MEMORY? > > > > Do you mean this?; > > default_mail_env = maildir:%h/Maildir/:INDEX=MEMORY > > Yes. OK, got it :) It happens with INDEX=MEMORY. Included patch should > fix it. Beaut, thanks. I'll apply it later today and report back. One more piece of information I've discovered which may help though; I changed the mail checking interval from five minutes to thirty minutes and then left the mail client running overnight. It did _not_ die. There was only five occurences of any one .customflags file open, whereas there should have been around fifteen (and therefore it would have locked up). Maybe the opened files are timing out after a period of maybe two or three hours? Therefore the problem had been there all along (on my system, anyway) until a week or so ago when I changed from ten minute intervals to five minute intervals. ie; I'm opening the files faster than they timeout and close. What do you think? Or have I gone completely mad? ;-) cheers! From esj@harvee.org Wed Sep 24 00:35:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3FAFA239B6; Wed, 24 Sep 2003 00:35:23 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 56C2A239B0 for ; Wed, 24 Sep 2003 00:34:50 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h8NLYmsC002022 for ; Tue, 23 Sep 2003 17:34:48 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 23 Sep 2003 17:34:34 -0400 Message-ID: <3F70BBDE.5040004@harvee.org> Date: Tue, 23 Sep 2003 17:32:14 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] status of maildir and mbox References: <3B02BDB8-ED33-11D7-86F1-000393CC2E90@iki.fi> <3F6F4F61.8090300@harvee.org> <1064320118.23451.15.camel@hurina> In-Reply-To: <1064320118.23451.15.camel@hurina> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:030923:dovecot@procontrol.fi:8e19eaaca0aa49c7 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2003 21:35:23 -0000 X-UID: 1660 Status: O Timo Sirainen explained: > I don't know if bribes help, I've been wanting it myself for a while now > too. I can understand that. Today is the Equinox and the days are going to get shorter. The only good thing about this season is that 80 m opens to Europe and points east. I still need to put up an inverted L too. > I don't really like chocolate :) pervert... ;-) hmmm maybe pizza? Estonian vodka? antique Shaker style furniture? ---eric From dovecot@fabre.id.au Wed Sep 24 12:18:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D3FD9239B0; Wed, 24 Sep 2003 12:18:13 +0300 (EEST) Received: from mail004.syd.optusnet.com.au (mail004.syd.optusnet.com.au [211.29.132.145]) by danu.procontrol.fi (Postfix) with ESMTP id A8BE02399B for ; Wed, 24 Sep 2003 12:17:39 +0300 (EEST) Received: from the-system.home.lan (c210-49-179-203.eburwd1.vic.optusnet.com.au [210.49.179.203]) h8O9HYn27950 for ; Wed, 24 Sep 2003 19:17:36 +1000 Date: Wed, 24 Sep 2003 19:16:39 +1000 From: Ron To: dovecot@procontrol.fi Subject: Re: [Dovecot] Multiple instances of .customflags staying open Message-Id: <20030924191639.6b3b8080.dovecot@fabre.id.au> In-Reply-To: <20030924070901.62f1411b.dovecot@fabre.id.au> References: <20030922231317.3b6664ca.dovecot@fabre.id.au> <1064240928.13839.160.camel@hurina> <20030923211628.29a154d4.dovecot@fabre.id.au> <1064320030.23454.12.camel@hurina> <20030923230850.4b9fa09c.dovecot@fabre.id.au> <1064338823.23444.22.camel@hurina> <20030924070901.62f1411b.dovecot@fabre.id.au> X-Mailer: Sylpheed version 0.9.5claws (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2003 09:18:14 -0000 X-UID: 1661 Status: O Content-Length: 1090 On Wed, 24 Sep 2003 07:09:01 +1000 Ron (Ron ) said: > On Tue, 23 Sep 2003 20:40:23 +0300 Timo Sirainen (Timo Sirainen > ) said: > > > Yes. OK, got it :) It happens with INDEX=MEMORY. Included patch > > should fix it. > > Beaut, thanks. I'll apply it later today and report back. ok, I applied the patch and things are much better. When I check for open customflags files I find that there are only a couple of unique ones, and only for a short time (probably while the client is scanning the folders). However, a new bug has appeared. When I press send on a message I sometimes get this error; The message was queued but could not be sent. Use "Send queued messages" from the main window to retry. The message does not actualy appear in the Queue folder unless I quit the client and restart it (this bit could be a client issue). When I check maillog I see this entry; Sep 24 19:03:53 the-system imap(ron): Corrupted index file \ (in-memory index for /home/ron/Maildir//.Queue): UIDVALIDITY \ changed in uidlist Any (new) ideas? cheers! From lists@pote.com Wed Sep 24 21:17:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 207292399B; Wed, 24 Sep 2003 21:17:57 +0300 (EEST) Received: from grebe.mail.pas.earthlink.net (grebe.mail.pas.earthlink.net [207.217.120.46]) by danu.procontrol.fi (Postfix) with ESMTP id 27C10238C6 for ; Wed, 24 Sep 2003 21:17:22 +0300 (EEST) Received: from user-0ccemou.cable.mindspring.com ([24.199.91.30] helo=tarsier.pote.com) by grebe.mail.pas.earthlink.net with smtp (Exim 3.33 #1) id 1A2ECV-0005eq-00 for dovecot@procontrol.fi; Wed, 24 Sep 2003 11:17:19 -0700 Received: (qmail 10688 invoked from network); 24 Sep 2003 18:17:17 -0000 Received: from unknown (HELO mayfly.earthlink.net) (eater@192.168.50.1) by 192.168.50.105 with SMTP; 24 Sep 2003 14:17:17 -0400 Date: Wed, 24 Sep 2003 14:17:20 -0400 (Eastern Daylight Time) From: Paul To: dovecot@procontrol.fi Subject: Re: [Dovecot] PC-Pine "Junk in end of group" In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2003 18:17:57 -0000 X-UID: 1662 Status: O Content-Length: 1180 Timo, thanks - I applied the patch and recompiled, but I am still getting the same error, under the same circumstances. Paul On September 9, at 9:52pm, Timo Sirainen wrote: > On Tuesday, Sep 9, 2003, at 21:02 Europe/Helsinki, Paul Adams wrote: > > > I am running PC-Pine under Windows XP, connecting via SSL to a Dovecot > > IMAP server (0.99.10-2 under Debian woody). When I open a mail folder > > (mbox format) in Pine I get the following non-fatal error: > > > > [Junk in end of group: pn=undisclosed-recipients al= dn=] > > I think this patch fixes it: > > diff -u -r1.6 message-address.c > --- src/lib-mail/message-address.c 17 Jul 2003 14:50:45 -0000 > 1.6 > +++ src/lib-mail/message-address.c 9 Sep 2003 18:51:52 -0000 > @@ -196,7 +196,7 @@ > /* beginning of group */ > addr = new_address(pool, &next_addr); > max_addresses--; > - addr->name = p_strdup(pool, str_c(mailbox)); > + addr->mailbox = p_strdup(pool, str_c(mailbox)); > > str_truncate(mailbox, 0); > str_truncate(comment, 0); > From lists@pote.com Wed Sep 24 21:20:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1E4C52399B; Wed, 24 Sep 2003 21:20:52 +0300 (EEST) Received: from scaup.mail.pas.earthlink.net (scaup.mail.pas.earthlink.net [207.217.120.49]) by danu.procontrol.fi (Postfix) with ESMTP id 40A01239B5 for ; Wed, 24 Sep 2003 21:20:20 +0300 (EEST) Received: from user-0ccemou.cable.mindspring.com ([24.199.91.30] helo=tarsier.pote.com) by scaup.mail.pas.earthlink.net with smtp (Exim 3.33 #1) id 1A2EFL-0004mP-00 for dovecot@procontrol.fi; Wed, 24 Sep 2003 11:20:15 -0700 Received: (qmail 10708 invoked from network); 24 Sep 2003 18:20:13 -0000 Received: from unknown (HELO mayfly.earthlink.net) (eater@192.168.50.1) by 192.168.50.105 with SMTP; 24 Sep 2003 14:20:13 -0400 Date: Wed, 24 Sep 2003 14:20:15 -0400 (Eastern Daylight Time) From: Paul To: To: ; Subject: Re: [Dovecot] PC-Pine "Junk in end of group" (fwd) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Mailman-Approved-At: Thu, 25 Sep 2003 02:47:07 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2003 18:20:52 -0000 X-UID: 1663 Status: O Also, this line is popping up in my syslog. It wasn't there before the recompile: imap(paul): Error indexing mbox file /home/paul/mail/postponed-msgs: LF not found where expected Paul ---------- Forwarded message ---------- Date: Wed, 24 Sep 2003 14:17:20 -0400 (Eastern Daylight Time) From: Paul To: dovecot@procontrol.fi Subject: Re: [Dovecot] PC-Pine "Junk in end of group" Timo, thanks - I applied the patch and recompiled, but I am still getting the same error, under the same circumstances. Paul From tss@iki.fi Thu Sep 25 02:48:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 92449238D6; Thu, 25 Sep 2003 02:48:59 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 812B3238C9 for ; Thu, 25 Sep 2003 02:48:27 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 586395EC1169 for ; Thu, 25 Sep 2003 02:48:27 +0300 (EEST) Subject: Re: [Dovecot] PC-Pine "Junk in end of group" From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1064447307.3584.36.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 25 Sep 2003 02:48:27 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2003 23:48:59 -0000 X-UID: 1664 Status: O On Wed, 2003-09-24 at 21:17, Paul wrote: > I applied the patch and recompiled, but I am still getting the same > error, under the same circumstances. It's probably because Dovecot has cached the data in index files. Try deleting .imap.index* files for the mailbox. From tss@iki.fi Thu Sep 25 02:53:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5503E2399B; Thu, 25 Sep 2003 02:53:25 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DCBCC238C9 for ; Thu, 25 Sep 2003 02:53:23 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A4E5C5EC1169 for ; Thu, 25 Sep 2003 02:53:23 +0300 (EEST) Subject: Re: [Dovecot] PC-Pine "Junk in end of group" (fwd) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1064447603.3580.43.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 25 Sep 2003 02:53:23 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2003 23:53:25 -0000 X-UID: 1665 Status: O On Wed, 2003-09-24 at 21:20, Paul wrote: > Also, this line is popping up in my syslog. It wasn't there before the > recompile: > > imap(paul): Error indexing mbox file /home/paul/mail/postponed-msgs: LF not found where expected I've been getting similiar errors in my drafts mbox. I guess it doesn't always like when mbox gets empty, but I haven't noticed any real problems from that either :) From tss@iki.fi Thu Sep 25 02:57:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B8987238C6; Thu, 25 Sep 2003 02:57:06 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D7AAC238C9 for ; Thu, 25 Sep 2003 02:57:03 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 8DB8E5EC1169 for ; Thu, 25 Sep 2003 02:57:03 +0300 (EEST) Subject: Re: [Dovecot] Multiple instances of .customflags staying open From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030924191639.6b3b8080.dovecot@fabre.id.au> References: <20030922231317.3b6664ca.dovecot@fabre.id.au> <1064240928.13839.160.camel@hurina> <20030923211628.29a154d4.dovecot@fabre.id.au> <1064320030.23454.12.camel@hurina> <20030923230850.4b9fa09c.dovecot@fabre.id.au> <1064338823.23444.22.camel@hurina> <20030924070901.62f1411b.dovecot@fabre.id.au> <20030924191639.6b3b8080.dovecot@fabre.id.au> Content-Type: text/plain Message-Id: <1064447823.3580.49.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 25 Sep 2003 02:57:03 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2003 23:57:06 -0000 X-UID: 1666 Status: O On Wed, 2003-09-24 at 12:16, Ron wrote: > The message does not actualy appear in the Queue folder unless I quit > the client and restart it (this bit could be a client issue). When I > check maillog I see this entry; > > Sep 24 19:03:53 the-system imap(ron): Corrupted index file \ > (in-memory index for /home/ron/Maildir//.Queue): UIDVALIDITY \ > changed in uidlist > > Any (new) ideas? Hmh. I guess INDEX=MEMORY doesn't work too well. I can't reproduce this myself though. Do you use multiple clients, or does your client use multiple IMAP connections? Can you check if the UIDVALIDITY really changes in the file? It's the middle number in first line of dovecot-uidlist file. From tss@iki.fi Thu Sep 25 03:04:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9E7CF239CC; Thu, 25 Sep 2003 03:04:13 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 20600238C9 for ; Thu, 25 Sep 2003 03:04:12 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D8AC55EC1169 for ; Thu, 25 Sep 2003 03:04:11 +0300 (EEST) Subject: Re: [Dovecot] status of maildir and mbox From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F70BBDE.5040004@harvee.org> References: <3B02BDB8-ED33-11D7-86F1-000393CC2E90@iki.fi> <3F6F4F61.8090300@harvee.org> <1064320118.23451.15.camel@hurina> <3F70BBDE.5040004@harvee.org> Content-Type: text/plain Message-Id: <1064448251.3582.57.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 25 Sep 2003 03:04:11 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 00:04:13 -0000 X-UID: 1667 Status: O On Wed, 2003-09-24 at 00:32, Eric S. Johansson wrote: > > I don't really like chocolate :) > > pervert... ;-) > > hmmm maybe pizza? Estonian vodka? antique Shaker style furniture? I'd rather eat something else than pizza for a change. Don't know about Estonian voda, I've drank only Finlandia. I could use a bit more furniture though - a book shelf and some carpets on the floor, but I think those are being taken care of already :) Hmm. I don't know what I'd really want. Except maybe a nicer apartment, better car and From tss@iki.fi Thu Sep 25 03:08:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BD204239CC; Thu, 25 Sep 2003 03:08:05 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4BFAD238C9 for ; Thu, 25 Sep 2003 03:08:04 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 0DA7B5EC1169 for ; Thu, 25 Sep 2003 03:08:04 +0300 (EEST) Subject: Re: [Dovecot] status of maildir and mbox From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1064448251.3582.57.camel@hurina> References: <3B02BDB8-ED33-11D7-86F1-000393CC2E90@iki.fi> <3F6F4F61.8090300@harvee.org> <1064320118.23451.15.camel@hurina> <3F70BBDE.5040004@harvee.org> <1064448251.3582.57.camel@hurina> Content-Type: text/plain Message-Id: <1064448483.3583.61.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 25 Sep 2003 03:08:03 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 00:08:05 -0000 X-UID: 1668 Status: O On Thu, 2003-09-25 at 03:04, Timo Sirainen wrote: > Hmm. I don't know what I'd really want. Except maybe a nicer apartment, > better car and Oops, I wondered how long it'd take to hit ctrl-enter (send mail) accidentally the first time :) Anyway, that's pretty much that. s/and/:)/. Oh, and new 15" powerbook I think. Assuming it isn't as hot as 12" and it's not "too big". Will see once they arrive. :) From tss@iki.fi Thu Sep 25 03:11:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3E962239D1; Thu, 25 Sep 2003 03:11:00 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AE310239D0 for ; Thu, 25 Sep 2003 03:10:58 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 806525EC1169 for ; Thu, 25 Sep 2003 03:10:58 +0300 (EEST) Subject: Re: [Dovecot] Multiple instances of .customflags staying open From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030924070901.62f1411b.dovecot@fabre.id.au> References: <20030922231317.3b6664ca.dovecot@fabre.id.au> <1064240928.13839.160.camel@hurina> <20030923211628.29a154d4.dovecot@fabre.id.au> <1064320030.23454.12.camel@hurina> <20030923230850.4b9fa09c.dovecot@fabre.id.au> <1064338823.23444.22.camel@hurina> <20030924070901.62f1411b.dovecot@fabre.id.au> Content-Type: text/plain Message-Id: <1064448658.3584.65.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 25 Sep 2003 03:10:58 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 00:11:00 -0000 X-UID: 1669 Status: O On Wed, 2003-09-24 at 00:09, Ron wrote: > Maybe the opened files are timing out after a period of maybe two or > three hours? Therefore the problem had been there all along (on my > system, anyway) until a week or so ago when I changed from ten minute > intervals to five minute intervals. ie; I'm opening the files faster > than they timeout and close. > > What do you think? Or have I gone completely mad? ;-) It leaked one file descriptor every time a client did STATUS or SELECT command, so it was there before too. I don't think it ever closed them.. Maybe your client reconnected. Dunno :) From tss@iki.fi Thu Sep 25 03:42:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0C709238D6; Thu, 25 Sep 2003 03:42:52 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 219A8238D4 for ; Thu, 25 Sep 2003 03:42:50 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B46015EC1169; Thu, 25 Sep 2003 03:42:49 +0300 (EEST) From: Timo Sirainen To: Akhilesh Agarwal In-Reply-To: References: Content-Type: text/plain Message-Id: <1064450569.3583.88.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 25 Sep 2003 03:42:49 +0300 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi Subject: [Dovecot] Re: Bug: Message time gets changed during move/copy X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 00:42:52 -0000 X-UID: 1670 Status: O Content-Length: 1669 On Sat, 2003-09-13 at 13:10, Akhilesh Agarwal wrote: > SERVER > > * Redhat 9.0 stable (with all up2date updates installed) > * Sendmail-8.12.8-6.90 > * Dovecot 0.99.10 release > * On the workstation running Outlook Express, there should be > some existing messages in Local Folders. (example: message > downloaded from a POP3 server) > * Change the time zone of the workstation machine to non-GMT > time zone. In my case GMT +0530 (Indian Standard Time) > * Create a test IMAP account on the server > * Configure Outlook Express to connect to the IMAP account. > * Now select a message in the Local Folders and copy it to a > folder on the IMAP server. > * If you check the message time on the IMAP account, you will > find that +0530 hrs was added to the message time. (+0530 is > apparently the time zone of my workstation as configure above) Sorry for taking this long to reply, it always takes so much effort to turn on my Windows computer :) I cannot reproduce this. I have my server and workstation set to GMT+3 and copying message from Dovecot to OE6 local folder and back keeps the message date the same. Or actually it looks like IMAP -> local folder copies using the message's Date field rather than IMAP's INTERNALDATE which Received-field shows. I'm not sure if this could be Dovecot's or OE6's fault .. Has anyone else seen timestamps going wrong when copying? > Can anyone please confirm this and let me know, as I am not subscribed > to the list. It actually never made it to list because it was decided to be spam (mostly due to being HTML). From dovecot@fabre.id.au Thu Sep 25 04:31:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 92CD5239CC; Thu, 25 Sep 2003 04:31:11 +0300 (EEST) Received: from mail014.syd.optusnet.com.au (mail014.syd.optusnet.com.au [211.29.132.160]) by danu.procontrol.fi (Postfix) with ESMTP id 2511D239B5 for ; Thu, 25 Sep 2003 04:30:37 +0300 (EEST) Received: from the-system.home.lan (c210-49-179-203.eburwd1.vic.optusnet.com.au [210.49.179.203]) h8P1UWO16311 for ; Thu, 25 Sep 2003 11:30:33 +1000 Received: from lemon.office.cyber.com.au (unknown [192.168.1.10]) by the-system.home.lan (Postfix) with SMTP id AEA796500BC for ; Thu, 25 Sep 2003 11:30:31 +1000 (EST) Date: Thu, 25 Sep 2003 11:30:30 +1000 From: Ron To: dovecot@procontrol.fi Subject: Re: [Dovecot] Multiple instances of .customflags staying open Message-Id: <20030925113030.7904afdc.dovecot@fabre.id.au> In-Reply-To: <1064447823.3580.49.camel@hurina> References: <20030922231317.3b6664ca.dovecot@fabre.id.au> <1064240928.13839.160.camel@hurina> <20030923211628.29a154d4.dovecot@fabre.id.au> <1064320030.23454.12.camel@hurina> <20030923230850.4b9fa09c.dovecot@fabre.id.au> <1064338823.23444.22.camel@hurina> <20030924070901.62f1411b.dovecot@fabre.id.au> <20030924191639.6b3b8080.dovecot@fabre.id.au> <1064447823.3580.49.camel@hurina> X-Mailer: Sylpheed version 0.9.5claws (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 01:31:11 -0000 X-UID: 1671 Status: O On Thu, 25 Sep 2003 02:57:03 +0300 Timo Sirainen (Timo Sirainen ) said: > Hmh. I guess INDEX=MEMORY doesn't work too well. I can't reproduce > this myself though. Do you use multiple clients, or does your client > use multiple IMAP connections? > > Can you check if the UIDVALIDITY really changes in the file? It's the > middle number in first line of dovecot-uidlist file. Before creating the new message; 1 1061811585 283 282 1064450999.P20289Q9M323521.the-system After sending, but failing; 1 1061811585 283 282 1064450999.P20289Q9M323521.the-system After the message appeared in the queue, and was successfully sent; 1 1061811585 284 283 1064452695.P20289Q14M935913.the-system btw, it doesn't require a restart of the client, if I wait for about 30 seconds then the message appears in the Queue folder ready for me to force the send again. cheers! From jonas@illuminet.se Thu Sep 25 12:23:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1B660238C9; Thu, 25 Sep 2003 12:23:49 +0300 (EEST) Received: from server.illuminet.se (h144n3fls27o1055.bredband.comhem.se [217.209.104.144]) by danu.procontrol.fi (Postfix) with ESMTP id CEC9A23887 for ; Thu, 25 Sep 2003 12:23:15 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by server.illuminet.se (8.12.8/8.12.5) with ESMTP id h8P9NDYK001593 for ; Thu, 25 Sep 2003 11:23:13 +0200 From: Jonas Bosson To: dovecot@procontrol.fi Content-Type: text/plain Organization: IllumiNet AB Message-Id: <1064481793.1177.44.camel@server.illuminet.se> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 25 Sep 2003 11:23:13 +0200 Content-Transfer-Encoding: 7bit Subject: [Dovecot] can't read attachments using javamail with dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 09:23:49 -0000 X-UID: 1672 Status: O Content-Length: 1884 Dear folks, this might be a java-bug, but it seems to occur only when connecting to dovecot-IMAP. UW and Cyrus-ditto works, while when I try to read attachments (base64), I get slapped in the face with this: java.lang.NullPointerException at com.sun.mail.iap.Response.parse(Response.java:99) at com.sun.mail.iap.Response.(Response.java:68) at com.sun.mail.imap.protocol.IMAPResponse.(IMAPResponse.java:31) at com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:105) at com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:153) at com.sun.mail.iap.Protocol.command(Protocol.java:215) at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:882) at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:874) at com.sun.mail.imap.protocol.IMAPProtocol.fetchBody(IMAPProtocol.java:677) at com.sun.mail.imap.IMAPInputStream.fill(IMAPInputStream.java:74) at com.sun.mail.imap.IMAPInputStream.read(IMAPInputStream.java:105) at com.sun.mail.util.BASE64DecoderStream.decode(BASE64DecoderStream.java:143) at com.sun.mail.util.BASE64DecoderStream.read(BASE64DecoderStream.java:54) at se.illuminet.httpd.mail.MailXMLService.serviceXml(MailXMLService.java:361) This occurs in booth javamail 1.2 and 1.3(.1) using dovecot. Of course this unfriendly/unhandled response is a problem with javamail while biting the dust. Further analysis points to that the reading works OK up until 2^16 bytes, so it fails either in reading the tail of the attachment or resuming after the first buffered data is consumed. I tried the BODYSTRCUTURE-patch (booth #1 and then #2), but it didn't help. Now I am fresh out of ideas. The java-bug has a three week delay to surface on "bug-parade". But I still have to explain why it works in UW/Cyrus and not with dovecot. Next step would be to add trace-lines in dovecot. Any ideas? /Jonas From charlieb-dovecot@e-smith.com Thu Sep 25 12:52:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 37CDC238D2; Thu, 25 Sep 2003 12:52:10 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id B9F80238C9 for ; Thu, 25 Sep 2003 12:51:36 +0300 (EEST) Received: (qmail 6161 invoked by uid 404); 25 Sep 2003 09:51:33 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 25 Sep 2003 05:51:33 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 25 Sep 2003 09:51:33 -0000 Received: (qmail 18945 invoked by uid 5008); 25 Sep 2003 09:51:33 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 25 Sep 2003 09:51:33 -0000 Date: Thu, 25 Sep 2003 05:51:33 -0400 (EDT) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Ron Subject: Re: [Dovecot] Multiple instances of .customflags staying open In-Reply-To: <20030925113030.7904afdc.dovecot@fabre.id.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 09:52:10 -0000 X-UID: 1673 Status: O Content-Length: 1037 Hi Ron! On Thu, 25 Sep 2003, Ron wrote: > On Thu, 25 Sep 2003 02:57:03 +0300 Timo Sirainen (Timo Sirainen > ) said: > > > Hmh. I guess INDEX=MEMORY doesn't work too well. I can't reproduce > > this myself though. Do you use multiple clients, or does your client > > use multiple IMAP connections? I wonder why INDEX=MEMORY is being used at all. IIRC, Ron said it was RH standard config. > > Can you check if the UIDVALIDITY really changes in the file? It's the > > middle number in first line of dovecot-uidlist file. > > Before creating the new message; > 1 1061811585 283 > 282 1064450999.P20289Q9M323521.the-system > > After sending, but failing; > 1 1061811585 283 > 282 1064450999.P20289Q9M323521.the-system I don't see how swnding mail has anything to do with dovecot. That's a transaction between your mail client and your SMTP daemon. Timo, Ron has an strace of the imap process if you need any further confirmation of the location of the fd leak. But it looks like you've found it anyway. -- Charlie From rueckert@informatik.uni-rostock.de Thu Sep 25 14:04:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B1334238D2; Thu, 25 Sep 2003 14:04:05 +0300 (EEST) Received: from irssi.ath.cx (vpn017235.uni-rostock.de [139.30.17.235]) by danu.procontrol.fi (Postfix) with ESMTP id 55830238C9 for ; Thu, 25 Sep 2003 14:03:33 +0300 (EEST) Received: by irssi.ath.cx (Postfix, from userid 500) id AE7F97471B8; Thu, 25 Sep 2003 13:03:50 +0200 (CEST) Date: Thu, 25 Sep 2003 13:03:50 +0200 From: Marcus Rueckert To: Charlie Brady Subject: Re: [Dovecot] Multiple instances of .customflags staying open Message-ID: <20030925110350.GF8439@irssi.ath.cx> References: <20030925113030.7904afdc.dovecot@fabre.id.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.4i cc: Ron cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 11:04:05 -0000 X-UID: 1674 Status: O On 2003-09-25 05:51:33 -0400, Charlie Brady wrote: > I don't see how swnding mail has anything to do with dovecot. That's a > transaction between your mail client and your SMTP daemon. i think is "sentmail" folder is on the imap server. darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From dovecot@fabre.id.au Thu Sep 25 16:59:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8A0E0238D6; Thu, 25 Sep 2003 16:59:41 +0300 (EEST) Received: from mail005.syd.optusnet.com.au (mail005.syd.optusnet.com.au [211.29.132.54]) by danu.procontrol.fi (Postfix) with ESMTP id CFED9238C6 for ; Thu, 25 Sep 2003 16:59:05 +0300 (EEST) Received: from the-system.home.lan (c210-49-179-203.eburwd1.vic.optusnet.com.au [210.49.179.203]) h8PDx2G25212 for ; Thu, 25 Sep 2003 23:59:03 +1000 Date: Thu, 25 Sep 2003 23:52:14 +1000 From: Ron To: dovecot@procontrol.fi Subject: Re: [Dovecot] Multiple instances of .customflags staying open Message-Id: <20030925235214.19ffb391.dovecot@fabre.id.au> In-Reply-To: References: <20030925113030.7904afdc.dovecot@fabre.id.au> X-Mailer: Sylpheed version 0.9.5claws (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 13:59:41 -0000 X-UID: 1675 Status: O On Thu, 25 Sep 2003 05:51:33 -0400 (EDT) Charlie Brady (Charlie Brady ) said: > Hi Ron! Howdy stranger! ;-) > I don't see how swnding mail has anything to do with dovecot. That's a > transaction between your mail client and your SMTP daemon. Except that the messages get stored in both the Queue and Sent folders. It's the Queue folder that is generating the error. > Timo, Ron has an strace of the imap process if you need any further > confirmation of the location of the fd leak. But it looks like you've > found it anyway. heh. I almost forgot about that. cheers! Ron From dovecot@fabre.id.au Thu Sep 25 16:59:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EFFD5239B5; Thu, 25 Sep 2003 16:59:54 +0300 (EEST) Received: from mail010.syd.optusnet.com.au (mail010.syd.optusnet.com.au [211.29.132.56]) by danu.procontrol.fi (Postfix) with ESMTP id 16A53238D5 for ; Thu, 25 Sep 2003 16:59:20 +0300 (EEST) Received: from the-system.home.lan (c210-49-179-203.eburwd1.vic.optusnet.com.au [210.49.179.203]) h8PDx3L29384; Thu, 25 Sep 2003 23:59:03 +1000 Date: Thu, 25 Sep 2003 23:52:40 +1000 From: Ron To: Marcus Rueckert Subject: Re: [Dovecot] Multiple instances of .customflags staying open Message-Id: <20030925235240.37cee629.dovecot@fabre.id.au> In-Reply-To: <20030925110350.GF8439@irssi.ath.cx> References: <20030925113030.7904afdc.dovecot@fabre.id.au> <20030925110350.GF8439@irssi.ath.cx> X-Mailer: Sylpheed version 0.9.5claws (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 13:59:55 -0000 X-UID: 1676 Status: O On Thu, 25 Sep 2003 13:03:50 +0200 Marcus Rueckert (Marcus Rueckert ) said: > On 2003-09-25 05:51:33 -0400, Charlie Brady wrote: > > I don't see how swnding mail has anything to do with dovecot. That's > > a transaction between your mail client and your SMTP daemon. > > i think is "sentmail" folder is on the imap server. Yes, my Sent and Queue folders are on the IMAP server. This problem normaly appears when sending mail, and therefore in the Queue folder, however I've occasionaly noticed it in other folders. cheers! From lists@pote.com Thu Sep 25 19:51:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 42981238D5; Thu, 25 Sep 2003 19:51:24 +0300 (EEST) Received: from grouse.mail.pas.earthlink.net (grouse.mail.pas.earthlink.net [207.217.120.116]) by danu.procontrol.fi (Postfix) with ESMTP id BC401238C6 for ; Thu, 25 Sep 2003 19:50:51 +0300 (EEST) Received: from user-0ccemou.cable.mindspring.com ([24.199.91.30] helo=tarsier.pote.com) by grouse.mail.pas.earthlink.net with smtp (Exim 3.33 #1) id 1A2ZKF-0005cb-00 for dovecot@procontrol.fi; Thu, 25 Sep 2003 09:50:43 -0700 Received: (qmail 19272 invoked from network); 25 Sep 2003 16:50:41 -0000 Received: from unknown (HELO mayfly.earthlink.net) (eater@192.168.50.1) by 192.168.50.105 with SMTP; 25 Sep 2003 12:50:41 -0400 Date: Thu, 25 Sep 2003 12:50:35 -0400 (Eastern Daylight Time) From: Paul To: dovecot@procontrol.fi In-Reply-To: <20030925090003.CAF68238D2@danu.procontrol.fi> Message-ID: References: <20030925090003.CAF68238D2@danu.procontrol.fi> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] mailbox sorting issue X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 16:51:24 -0000 X-UID: 1677 Status: O Content-Length: 1834 Thanks for the "junk at end" help. Now I'm having one more perplexing issue: When I sort a Dovecot mbox in Pine, the most recent messages tend to linger near the bottom of the message list, regardless of how they're sorted. Here's a snippet of the bottom of the list, sorted by arrival time: 448 2003-09-24 20:31 sprightly@e... Re: *hoopoe 449 2003-09-24 21:05 mlescaut@w... Re: yes! 450 2003-09-24 23:57 jackulysses@y... Re: oh my lord 451 2003-09-25 01:43 sprightly@e... attachments==take a look 452 2003-09-25 01:29 avantguild@m... Your Membership is Almost Up 453 2003-09-25 10:40 heidi@p... xhtml 454 2003-09-25 11:04 dembo@s. Re: bridge 455 2003-09-25 11:54 JKesner@m... Bombay 456 2003-09-25 12:05 cm2144@c... Re: bridge at linda's And here is a snippet of the same mbox list, sorted by From address: 449 2003-09-25 01:43 sprightly@e... attachments==take a look 450 2003-09-10 16:06 staff@c... Tribute in Light Shines 451 2003-09-08 18:44 starpiekat@y... Re: Sorry! 452 2003-09-23 22:01 starry@p... but... 453 2003-09-25 12:05 cm2144@c... Re: bridge at linda's 454 2003-09-17 17:07 wahrman@s... RE: bridge etc. 455 2003-09-19 13:11 wahrman@s... RE: bridge etc. 456 2003-09-15 23:39 waycross@u... waycross - the eagle Notice that message from cm2144 in both lists, way out of order in the second! I'm not 100% sure that this is a Dovecot issue, but I suspect it is, since this doesn't happen if I open the same mailbox locally or with UW-IMAP. I know that Pine makes use of IMAP server-based sorting if it is available. I tried deleting .imap-index* files, just in case, but that didn't help. thanks, Paul From jonas@illuminet.se Thu Sep 25 20:12:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1BA8F238D5; Thu, 25 Sep 2003 20:12:40 +0300 (EEST) Received: from localhost.localdomain (h107n2fls32o263.telia.com [217.209.33.107]) by danu.procontrol.fi (Postfix) with ESMTP id 0E554238D2 for ; Thu, 25 Sep 2003 20:12:07 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id h8PHBtWo023017 for ; Thu, 25 Sep 2003 19:11:55 +0200 From: Jonas Bosson To: dovecot@procontrol.fi Content-Type: text/plain Organization: Message-Id: <1064509914.22904.2.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 25 Sep 2003 19:11:55 +0200 Content-Transfer-Encoding: 7bit Subject: [Dovecot] can't read attachments using javamail with dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 17:12:40 -0000 X-UID: 1678 Status: O Content-Length: 1887 Dear folks, this might be a javamail-bug, but it seems to occur only when connecting to dovecot-IMAP. UW and Cyrus-ditto works, while when I try to read attachments (base64), I get slapped in the face with this: java.lang.NullPointerException at com.sun.mail.iap.Response.parse(Response.java:99) at com.sun.mail.iap.Response.(Response.java:68) at com.sun.mail.imap.protocol.IMAPResponse.(IMAPResponse.java:31) at com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:105) at com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:153) at com.sun.mail.iap.Protocol.command(Protocol.java:215) at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:882) at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:874) at com.sun.mail.imap.protocol.IMAPProtocol.fetchBody(IMAPProtocol.java:677) at com.sun.mail.imap.IMAPInputStream.fill(IMAPInputStream.java:74) at com.sun.mail.imap.IMAPInputStream.read(IMAPInputStream.java:105) at com.sun.mail.util.BASE64DecoderStream.decode(BASE64DecoderStream.java:143) at com.sun.mail.util.BASE64DecoderStream.read(BASE64DecoderStream.java:54) at se.illuminet.httpd.mail.MailXMLService.serviceXml(MailXMLService.java:361) This occurs in booth javamail 1.2 and 1.3(.1) using dovecot. Of course this unfriendly/unhandled response is a problem with javamail while it bites the dust. Further analysis points to that the reading works OK up until 2^16 bytes, so it fails either in reading the tail of the attachment or resuming after the first buffered data is consumed. I tried the BODYSTRCUTURE-patch (booth #1 and then #2), but it didn't help. Now I am fresh out of ideas. The java-bug has a three week delay to surface on "bug-parade". But I still have to explain why it works in UW/Cyrus and not with dovecot. Next step would be to add trace-lines in dovecot. Any ideas? /Jonas From cirvis@konts.lv Thu Sep 25 21:14:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2062E238D5; Thu, 25 Sep 2003 21:14:54 +0300 (EEST) Received: from card.konts.lv (card.konts.lv [159.148.139.17]) by danu.procontrol.fi (Postfix) with ESMTP id 041C6238C6 for ; Thu, 25 Sep 2003 21:14:19 +0300 (EEST) Received: (from daemon@localhost) by card.konts.lv (8.11.6/8.11.6) id h8PIEDX23541 for ; Thu, 25 Sep 2003 21:14:13 +0300 Received: from (gugu.konts.lv [10.10.1.171]) by card.konts.lv via smap (V2.1) id xma023344; Thu, 25 Sep 03 21:14:07 +0300 Message-ID: <3F733057.90403@konts.lv> Date: Thu, 25 Sep 2003 21:13:43 +0300 From: Gasha User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3 X-Accept-Language: en-us MIME-Version: 1.0 To: Dovecot Mail List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-18.3 required=6.0 tests=AWL,BAYES_00,USER_AGENT_MOZILLA_UA autolearn=ham version=2.52 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.52 (1.174.2.8-2003-03-24-exp) Subject: [Dovecot] pine and mozilla at the same time X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 18:14:54 -0000 X-UID: 1679 Status: O Hi all, what is the best way to read e-mail from server using "pine" ?? I would like to use graphical IMAP client, mozilla for example. And sometimes run pine from shell. mbox or Maildir? Or maybe setup pine to use IMAP server on "localhost" ?? Gasha From matthias.andree@gmx.de Fri Sep 26 02:11:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DF88F238C8; Fri, 26 Sep 2003 02:11:23 +0300 (EEST) Received: from m2a2.dyndns.org (pD9E1E4E1.dip.t-dialin.net [217.225.228.225]) by danu.procontrol.fi (Postfix) with ESMTP id D5026238C7 for ; Fri, 26 Sep 2003 02:10:50 +0300 (EEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 7AF2E94EC4; Fri, 26 Sep 2003 01:10:48 +0200 (CEST) To: Gasha Subject: Re: [Dovecot] pine and mozilla at the same time In-Reply-To: <3F733057.90403@konts.lv> (cirvis@konts.lv's message of "Thu, 25 Sep 2003 21:13:43 +0300") References: <3F733057.90403@konts.lv> From: Matthias Andree Date: Fri, 26 Sep 2003 01:10:48 +0200 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: Dovecot Mail List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2003 23:11:24 -0000 X-UID: 1680 Status: O Gasha writes: > what is the best way to read e-mail from server using "pine" ?? > I would like to use graphical IMAP client, mozilla for example. > And sometimes run pine from shell. > > mbox or Maildir? I prefer Maildir since it's much friendlier to differential and incremental backups, however, since PINE doesn't natively talk Maildir, you'd do... > Or maybe setup pine to use IMAP server on "localhost" ?? ...just that anyways if you were into Maildir. -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95 From tim@gem.win.co.nz Sat Sep 27 09:02:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B29EA238C7; Sat, 27 Sep 2003 09:02:13 +0300 (EEST) Received: from gem.win.co.nz (gem.win.co.nz [210.55.105.242]) by danu.procontrol.fi (Postfix) with ESMTP id 1CB60238C6 for ; Sat, 27 Sep 2003 09:01:40 +0300 (EEST) Received: from localhost (tim@localhost) by gem.win.co.nz (8.9.3p2/8.9.3) with ESMTP id SAA21775 for ; Sat, 27 Sep 2003 18:01:22 +1200 Date: Sat, 27 Sep 2003 18:01:22 +1200 (NZST) From: Tim Miller To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Odd problem with dovecot segfaulting X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Sep 2003 06:02:13 -0000 X-UID: 1681 Status: O Content-Length: 1465 Hi All, I installed dovecot on one of my servers the other day, and I want to use it in a vhosting environment. To this end, I have set it up to use password file authentication with a passwd file specified by me. This file will contain both system users and virtual accounts. To test it, I set up two accounts in the dovecot passwd file. One is a system user, I give his home dir in the correct field, along with the MD5 hash of his password in its field, and everything seems to work OK (he can login, read mail out of /var/spool/mail/user etc.). The seconmd account is a vhosted account, and I set the uid and gid to that under which the vhosting account exists. I did not set a home dir, but I set a mail dir in /var/spool/vmail/imap/vhost/user, and made this dir group writeable by dovecot. The user can login, but immediately upon authentication, dovecot segfaults (the log reports an "Internal login failure" and the authentication process is killed with signal 11, i.e. a segfault). Has anyone encountered this before? Is this even the right way to set up vhosting (I don't want to go with LDAP or SQL authentication right at the moment, but I may move to that later on)? Are there any things I should look for (this is probably due to something I've done wrong) or make dovecot be a bit more verbose in reporting errors to its log? Thanks in advance for any help. From what I've seen so far, dovecot looks like an excellent product. Best, Tim Miller From keith@midnighthax.com Mon Sep 29 14:08:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EF45E238B6; Mon, 29 Sep 2003 14:08:36 +0300 (EEST) Received: from gs001.rg2.tiger-computing.com (unknown [81.168.16.33]) by danu.procontrol.fi (Postfix) with ESMTP id CFAB123866 for ; Mon, 29 Sep 2003 14:08:02 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by gs001.rg2.tiger-computing.com (Postfix) with ESMTP id 6F0E932DE7 for ; Mon, 29 Sep 2003 12:08:02 +0100 (BST) Received: from gs001.rg2.tiger-computing.com ([127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 03043-04 for ; Mon, 29 Sep 2003 12:08:01 +0100 (BST) Received: from zaphod.rg2.tiger-computing.com (zaphod.rg2.tiger-computing.com [10.0.0.100]) by gs001.rg2.tiger-computing.com (Postfix) with SMTP id CE56732DE5 for ; Mon, 29 Sep 2003 12:08:01 +0100 (BST) Date: Mon, 29 Sep 2003 12:08:01 +0100 From: Keith Edmunds To: dovecot@procontrol.fi Message-Id: <20030929120801.6132fe24.keith@midnighthax.com> X-Mailer: Sylpheed version 0.9.5claws36 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gs001.rg2.tiger-computing.com Subject: [Dovecot] UIDPLUS? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2003 11:08:37 -0000 X-UID: 1682 Status: O Any plans to implement UIDPLUS in Dovecot? Keith From bernard@blackham.com.au Mon Sep 29 15:16:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ED6FA238C7; Mon, 29 Sep 2003 15:16:28 +0300 (EEST) Received: from dagobah.blackham.com.au (dsl-202-72-159-76.wa.westnet.com.au [202.72.159.76]) by danu.procontrol.fi (Postfix) with ESMTP id B001623896 for ; Mon, 29 Sep 2003 15:16:04 +0300 (EEST) Received: from amidala.home ([192.168.0.10] helo=localhost) by dagobah.blackham.com.au with esmtp (Exim 3.35 #1 (Debian)) id 1A3wwc-0002x1-00 for ; Mon, 29 Sep 2003 20:16:02 +0800 Received: from b by localhost with local (Exim 3.36 #1 (Debian)) id 1A3wwc-0004aq-00 for ; Mon, 29 Sep 2003 20:16:02 +0800 Date: Mon, 29 Sep 2003 20:16:02 +0800 From: Bernard Blackham To: dovecot@procontrol.fi Message-ID: <20030929121602.GA17431@amidala> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="YiEDa0DAkWCtVeE4" Content-Disposition: inline Organization: Dagobah Systems User-Agent: Mutt/1.5.4i Sender: Bernard Blackham Subject: [Dovecot] Handling of X-Status flags X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2003 12:16:29 -0000 X-UID: 1683 Status: O Content-Length: 4346 --YiEDa0DAkWCtVeE4 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi all, I've done a bit of searching and haven't seen anybody else coming across this problem yet: I noticed that Dovecot uses the opposite flags for marking messages as deleted and draft to most other MUAs I've seen or used: With PINE, mutt and uw-imapd at least, messages are marked with X-Status 'D' for Deleted, and 'T' for drafT. Dovecot reverses this behaviour, using 'D' for Draft, and 'T' for Trashed. Was there any reason behind this? Or have I gone loopy? At our site, we have users reading mail with a mix of PINE locally, and through dovecot via WebMail and there seems to arise a bit of confusion between the two flags. Attached is a patch that reverses this behaviour (prepared against 0.99.10 but applies with a little fuzz to cvs). I'd like to hear people's comments on the issue... is it just me? :) Thanks, Bernard. -- Bernard Blackham bernard at blackham dot com dot au --YiEDa0DAkWCtVeE4 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="dovecot-DT.patch" diff -ruN dovecot-0.99.10/src/lib-index/maildir/maildir-index.c dovecot-0.99.10.brb/src/lib-index/maildir/maildir-index.c --- dovecot-0.99.10/src/lib-index/maildir/maildir-index.c Fri Jun 27 00:11:06 2003 +++ dovecot-0.99.10.brb/src/lib-index/maildir/maildir-index.c Sat Sep 27 13:17:04 2003 @@ -109,10 +109,10 @@ case 'S': /* seen */ flags |= MAIL_SEEN; break; - case 'T': /* trashed */ + case 'D': /* trashed */ flags |= MAIL_DELETED; break; - case 'D': /* draft */ + case 'T': /* draft */ flags |= MAIL_DRAFT; break; case 'F': /* flagged */ @@ -168,9 +168,9 @@ nextflag = *oldflags == '\0' || *oldflags == ',' ? 256 : (unsigned char) *oldflags; - if ((flags & MAIL_DRAFT) && nextflag > 'D') { + if ((flags & MAIL_DELETED) && nextflag > 'D') { str_append_c(flags_str, 'D'); - flags &= ~MAIL_DRAFT; + flags &= ~MAIL_DELETED; } if ((flags & MAIL_FLAGGED) && nextflag > 'F') { str_append_c(flags_str, 'F'); @@ -184,9 +184,9 @@ str_append_c(flags_str, 'S'); flags &= ~MAIL_SEEN; } - if ((flags & MAIL_DELETED) && nextflag > 'T') { + if ((flags & MAIL_DRAFT) && nextflag > 'T') { str_append_c(flags_str, 'T'); - flags &= ~MAIL_DELETED; + flags &= ~MAIL_DRAFT; } if ((flags & MAIL_CUSTOM_FLAGS_MASK) && nextflag > 'a') { diff -ruN dovecot-0.99.10/src/lib-index/mbox/mbox-index.c dovecot-0.99.10.brb/src/lib-index/mbox/mbox-index.c --- dovecot-0.99.10/src/lib-index/mbox/mbox-index.c Mon May 19 15:26:46 2003 +++ dovecot-0.99.10.brb/src/lib-index/mbox/mbox-index.c Sat Sep 27 13:19:41 2003 @@ -157,13 +157,13 @@ case 'F': flags |= MAIL_FLAGGED; break; - case 'D': + case 'T': flags |= MAIL_DRAFT; break; case 'R': flags |= MAIL_SEEN; break; - case 'T': + case 'D': flags |= MAIL_DELETED; break; } diff -ruN dovecot-0.99.10/src/lib-index/mbox/mbox-rewrite.c dovecot-0.99.10.brb/src/lib-index/mbox/mbox-rewrite.c --- dovecot-0.99.10/src/lib-index/mbox/mbox-rewrite.c Sun Jun 15 11:43:05 2003 +++ dovecot-0.99.10.brb/src/lib-index/mbox/mbox-rewrite.c Sat Sep 27 13:19:54 2003 @@ -210,9 +210,9 @@ str = t_strconcat("X-Status: ", (ctx->msg_flags & MAIL_ANSWERED) ? "A" : "", - (ctx->msg_flags & MAIL_DRAFT) ? "D" : "", + (ctx->msg_flags & MAIL_DELETED) ? "D" : "", (ctx->msg_flags & MAIL_FLAGGED) ? "F" : "", - (ctx->msg_flags & MAIL_DELETED) ? "T" : "", + (ctx->msg_flags & MAIL_DRAFT) ? "T" : "", x_status, NULL); if (o_stream_send_str(ctx->output, str) < 0) diff -ruN dovecot-0.99.10/src/lib-storage/index/mbox/mbox-save.c dovecot-0.99.10.brb/src/lib-storage/index/mbox/mbox-save.c --- dovecot-0.99.10/src/lib-storage/index/mbox/mbox-save.c Sun Jun 15 11:43:05 2003 +++ dovecot-0.99.10.brb/src/lib-storage/index/mbox/mbox-save.c Sat Sep 27 13:20:28 2003 @@ -131,11 +131,11 @@ if ((flags & MAIL_ANSWERED) != 0) str_append_c(str, 'A'); - if ((flags & MAIL_DRAFT) != 0) + if ((flags & MAIL_DELETED) != 0) str_append_c(str, 'D'); if ((flags & MAIL_FLAGGED) != 0) str_append_c(str, 'F'); - if ((flags & MAIL_DELETED) != 0) + if ((flags & MAIL_DRAFT) != 0) str_append_c(str, 'T'); str_append_c(str, '\n'); } --YiEDa0DAkWCtVeE4-- From tss@iki.fi Mon Sep 29 16:54:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0221B238CB; Mon, 29 Sep 2003 16:54:48 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E731323866 for ; Mon, 29 Sep 2003 16:54:34 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 78F7D5EC1176 for ; Mon, 29 Sep 2003 16:54:31 +0300 (EEST) Subject: Re: [Dovecot] can't read attachments using javamail with dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1064481793.1177.44.camel@server.illuminet.se> References: <1064481793.1177.44.camel@server.illuminet.se> Content-Type: text/plain Message-Id: <1064843671.32107.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 29 Sep 2003 16:54:31 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2003 13:54:48 -0000 X-UID: 1684 Status: O On Thu, 2003-09-25 at 12:23, Jonas Bosson wrote: > This occurs in booth javamail 1.2 and 1.3(.1) using dovecot. Of > course this unfriendly/unhandled response is a problem with javamail > while biting the dust. > > Further analysis points to that the reading works OK up until 2^16 > bytes, so it fails either in reading the tail of the attachment or > resuming after the first buffered data is consumed. Can you check what the IMAP traffic is between them? http://dovecot.procontrol.fi/bugreport.html#sniffing It's probably asking the attachment in 64kB blocks and maybe Dovecot doesn't give a correct reply.. I think Mozilla works that way too and there hasn't been problems with it for a while now. From tss@iki.fi Mon Sep 29 17:03:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3F152238CB; Mon, 29 Sep 2003 17:03:59 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 66DCE238C7 for ; Mon, 29 Sep 2003 17:03:46 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2BCFC5EC1176 for ; Mon, 29 Sep 2003 17:03:46 +0300 (EEST) Subject: Re: [Dovecot] Odd problem with dovecot segfaulting From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1064844225.32106.13.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 29 Sep 2003 17:03:46 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2003 14:03:59 -0000 X-UID: 1685 Status: O Content-Length: 1467 On Sat, 2003-09-27 at 09:01, Tim Miller wrote: > The seconmd account is a vhosted account, and I set the uid and gid to > that under which the vhosting account exists. I did not set a home dir, > but I set a mail dir in /var/spool/vmail/imap/vhost/user, and made this > dir group writeable by dovecot. The user can login, but immediately upon > authentication, dovecot segfaults (the log reports an "Internal login > failure" and the authentication process is killed with signal 11, i.e. a > segfault). This patch fixes it: http://dovecot.fi/auth-home.patch > Has anyone encountered this before? Is this even the right way to set up > vhosting (I don't want to go with LDAP or SQL authentication right at the > moment, but I may move to that later on)? You could also just set the home directory to the mail dir. It doesn't really matter which way you use. The reason why I used SQL authentication rather than passwd-file is that Postfix doesn't really like passwd-file type files. And it's a bit easier to write some simple web user interface for changing the data. > Are there any things I should > look for (this is probably due to something I've done wrong) or make > dovecot be a bit more verbose in reporting errors to its log? There's auth_verbose setting but that's mostly useful for figuring out why authentication fails. Dovecot should have verbose enough logging for all error handling, but for crashes it can't say much more than that it crashed. From tss@iki.fi Mon Sep 29 17:07:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7412C238CB; Mon, 29 Sep 2003 17:07:40 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 79332238C7 for ; Mon, 29 Sep 2003 17:07:27 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 31C855EC1176 for ; Mon, 29 Sep 2003 17:07:27 +0300 (EEST) Subject: Re: [Dovecot] UIDPLUS? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030929120801.6132fe24.keith@midnighthax.com> References: <20030929120801.6132fe24.keith@midnighthax.com> Content-Type: text/plain Message-Id: <1064844447.32104.18.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 29 Sep 2003 17:07:27 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2003 14:07:40 -0000 X-UID: 1686 Status: O On Mon, 2003-09-29 at 14:08, Keith Edmunds wrote: > Any plans to implement UIDPLUS in Dovecot? Yes. It will be simple to add once saving mails updates indexes immediately instead of when syncing mailbox later. I'll do this change anyway, hopefully soon. From tss@iki.fi Mon Sep 29 17:15:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 001B323996; Mon, 29 Sep 2003 17:15:36 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C8D43238CB for ; Mon, 29 Sep 2003 17:15:16 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 8DC195C2BBB0 for ; Mon, 29 Sep 2003 17:15:16 +0300 (EEST) Subject: Re: [Dovecot] Handling of X-Status flags From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20030929121602.GA17431@amidala> References: <20030929121602.GA17431@amidala> Content-Type: text/plain Message-Id: <1064844916.32105.25.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 29 Sep 2003 17:15:16 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2003 14:15:37 -0000 X-UID: 1687 Status: O On Mon, 2003-09-29 at 15:16, Bernard Blackham wrote: > I noticed that Dovecot uses the opposite flags for marking messages > as deleted and draft to most other MUAs I've seen or used: > > With PINE, mutt and uw-imapd at least, messages are marked with > X-Status 'D' for Deleted, and 'T' for drafT. Dovecot reverses this > behaviour, using 'D' for Draft, and 'T' for Trashed. > > Was there any reason behind this? Maildir uses T for Trash, D for Draft. I didn't notice that mbox does it differently. > Attached is a patch that reverses this behaviour (prepared against > 0.99.10 but applies with a little fuzz to cvs). I'd like to hear > people's comments on the issue... is it just me? :) Thanks, committed to CVS after I removed the maildir changes. From bernard@blackham.com.au Mon Sep 29 17:41:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C163C238CB; Mon, 29 Sep 2003 17:41:26 +0300 (EEST) Received: from dagobah.blackham.com.au (dsl-202-72-159-76.wa.westnet.com.au [202.72.159.76]) by danu.procontrol.fi (Postfix) with ESMTP id 59281238C7 for ; Mon, 29 Sep 2003 17:41:13 +0300 (EEST) Received: from amidala.home ([192.168.0.10] helo=localhost) by dagobah.blackham.com.au with esmtp (Exim 3.35 #1 (Debian)) id 1A3zD0-0003DV-00 for ; Mon, 29 Sep 2003 22:41:06 +0800 Received: from b by localhost with local (Exim 3.36 #1 (Debian)) id 1A3zD1-0004uM-00 for ; Mon, 29 Sep 2003 22:41:07 +0800 Resent-From: bernard@blackham.com.au Resent-Date: Mon, 29 Sep 2003 22:41:07 +0800 Resent-Message-ID: <20030929144107.GA18835@amidala> Resent-To: dovecot@procontrol.fi Date: Mon, 29 Sep 2003 22:38:09 +0800 From: Bernard Blackham To: dovecot@procontrol.fi Subject: Re: [Dovecot] Handling of X-Status flags Message-ID: <20030929143809.GA18769@amidala> References: <20030929121602.GA17431@amidala> <1064844916.32105.25.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1064844916.32105.25.camel@hurina> Organization: Dagobah Systems User-Agent: Mutt/1.5.4i Resent-Sender: Bernard Blackham X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2003 14:41:26 -0000 X-UID: 1688 Status: O On Mon, Sep 29, 2003 at 05:15:16PM +0300, Timo Sirainen wrote: > > With PINE, mutt and uw-imapd at least, messages are marked with > > X-Status 'D' for Deleted, and 'T' for drafT. Dovecot reverses this > > behaviour, using 'D' for Draft, and 'T' for Trashed. > > > > Was there any reason behind this? > > Maildir uses T for Trash, D for Draft. I didn't notice that mbox does it > differently. Ahhh... yay for (psuedo)standards :) > > Attached is a patch that reverses this behaviour (prepared against > > 0.99.10 but applies with a little fuzz to cvs). I'd like to hear > > people's comments on the issue... is it just me? :) > > Thanks, committed to CVS after I removed the maildir changes. Thanks! Bernard. -- Bernard Blackham bernard at blackham dot com dot au From jonas@illuminet.se Mon Sep 29 20:03:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DD7D2238D1; Mon, 29 Sep 2003 20:03:22 +0300 (EEST) Received: from localhost.localdomain (h107n2fls32o263.telia.com [217.209.33.107]) by danu.procontrol.fi (Postfix) with ESMTP id 4185523866 for ; Mon, 29 Sep 2003 20:02:48 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id h8TH2NWo004929 for ; Mon, 29 Sep 2003 19:02:34 +0200 Subject: Re: [Dovecot] can't read attachments using javamail with dovecot From: Jonas Bosson To: dovecot@procontrol.fi In-Reply-To: <1064843671.32107.6.camel@hurina> References: <1064481793.1177.44.camel@server.illuminet.se> <1064843671.32107.6.camel@hurina> Content-Type: text/plain Organization: Message-Id: <1064854943.3748.219.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 29 Sep 2003 19:02:23 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2003 17:03:23 -0000 X-UID: 1689 Status: O On Mon, 2003-09-29 at 15:54, Timo Sirainen wrote: > Can you check what the IMAP traffic is between them? > http://dovecot.procontrol.fi/bugreport.html#sniffing > > It's probably asking the attachment in 64kB blocks and maybe Dovecot > doesn't give a correct reply.. I think Mozilla works that way too and > there hasn't been problems with it for a while now. > Now I have conducted the trace and all seems fine, unless dovecot should not append the mime-boundary too... witch it does. That could explain why the javamail base64 parser flips out. It this the problem perhaps? --- snip from tail --- zym/MizHsizPMi3Xsi3f8qgFBAAAOx== --=-u5ZQZIAhsi8nf+mzzgM1-- ) A9 OK Fetch completed. --- SNAP best regards, Jonas From jonas@illuminet.se Mon Sep 29 20:43:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 70B6B238D1; Mon, 29 Sep 2003 20:43:01 +0300 (EEST) Received: from localhost.localdomain (h107n2fls32o263.telia.com [217.209.33.107]) by danu.procontrol.fi (Postfix) with ESMTP id 5379F23866 for ; Mon, 29 Sep 2003 20:42:48 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id h8THgYWo004944 for ; Mon, 29 Sep 2003 19:42:35 +0200 Subject: Re: [Dovecot] can't read attachments using javamail with dovecot From: Jonas Bosson To: dovecot@procontrol.fi In-Reply-To: <1064854943.3748.219.camel@localhost> References: <1064481793.1177.44.camel@server.illuminet.se> <1064854943.3748.219.camel@localhost> Content-Type: text/plain Organization: Message-Id: <1064857354.3748.225.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 29 Sep 2003 19:42:34 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2003 17:43:01 -0000 X-UID: 1690 Status: O On Mon, 2003-09-29 at 19:02, Jonas Bosson wrote: > Now I have conducted the trace and all seems fine, unless dovecot should > not append the mime-boundary too... witch it does. That could explain > why the javamail base64 parser flips out. > > It this the problem perhaps? > > --- snip from tail --- > zym/MizHsizPMi3Xsi3f8qgFBAAAOx== > > --=-u5ZQZIAhsi8nf+mzzgM1-- > ) > A9 OK Fetch completed. > --- SNAP Also, dovecot includes the boundary in the "length" of the body part in: A3 OK [READ-ONLY] Select completed. * 103 FETCH (BODYSTRUCTURE (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 15 3 NIL NIL NIL)("image" "gif" ("name" "usenet-traffic-globe.gif") NIL NIL "base64" 81076 NIL ("attachment" ("filename" "usenet-traffic-globe.gif")) NIL) "mixed" ("boundary" "=-u5ZQZIAhsi8nf+mzzgM1") NIL NIL)) A4 OK Fetch completed. 81076 includes the boundary shown above. Sorry if this is entirely up the wrong tree. And thanks for any advice. /Jonas From t1lt@bk.ru Wed Oct 1 03:47:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8599423887; Wed, 1 Oct 2003 03:47:46 +0300 (EEST) Received: from sun.com (port-212-202-39-64.reverse.qsc.de [212.202.39.64]) by danu.procontrol.fi (Postfix) with SMTP id 07CA823866 for ; Wed, 1 Oct 2003 03:47:12 +0300 (EEST) Received: (qmail 848 invoked by uid 1000); 1 Oct 2003 00:51:13 -0000 Date: Wed, 1 Oct 2003 02:51:13 +0200 From: Samuel Verner To: dovecot@procontrol.fi Subject: Re: [Dovecot] Why does dovecot confuse mutt? Message-ID: <20031001005112.GA30133@woom.net> Mail-Followup-To: Samuel Verner , dovecot@procontrol.fi References: <20030723225217.73dde8ac.amyzing@talsever.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Mailman-Approved-At: Wed, 01 Oct 2003 04:13:41 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Oct 2003 00:47:46 -0000 X-UID: 1691 Status: O On Thu, Jul 24, 2003 at 12:38:49PM +0300, Timo Sirainen wrote: > On Thursday, Jul 24, 2003, at 05:52 Europe/Helsinki, Amelia A Lewis > wrote: > > >However, as far as mutt is concerned, *every* mailbox has child > >folders. > > I think this is because Dovecot doesn't send \NoChildren flag for > mailboxes. I'm not sure when that got lost.. Maybe it's time to rewrite > the mailbox listing code once again. Is this fixed in latest dovecot? hand From bert@rosanneke.com Wed Oct 1 13:37:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B2F4723866; Wed, 1 Oct 2003 13:37:34 +0300 (EEST) Received: from mailhost1.tudelft.nl (mailhost1.tudelft.nl [130.161.180.15]) by danu.procontrol.fi (Postfix) with ESMTP id D544623887 for ; Wed, 1 Oct 2003 13:37:02 +0300 (EEST) Received: from 127.0.0.1 (localhost [127.0.0.1]) by rav.antivirus (Postfix) with SMTP id 7A2413E3D for ; Wed, 1 Oct 2003 12:36:52 +0200 (CEST) Received: from rosanneke.com (cpzp-n-22.practica.twi.tudelft.nl [130.161.31.150]) by mailhost1.tudelft.nl (Postfix) with ESMTP id 2B1D23C4B for ; Wed, 1 Oct 2003 12:36:52 +0200 (CEST) Message-ID: <3F7AAE4E.9010100@rosanneke.com> Date: Wed, 01 Oct 2003 12:37:02 +0200 From: Bert Koelewijn User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] SSL Client Certificate Support X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Oct 2003 10:37:34 -0000 X-UID: 1692 Status: O Dear Timo, most modern enterprises make use of a Public Key Infrastructure. It would be nice to have dovecot check a client certificate instead of a password. This makes life much easier and more secure. Mail clients like Mozilla and MS Outlook do support this. What do you think of the following feature request: - Client authenticates with a certificate via SSL. (Like stunnel can) - Dovecot looks the username up in a table with (public key, username) - The mailclient gives a name and password, but dovecot ignores them - Dovecot gives the client access by the username found in the table This way existing mail clients can use this system and you can save your username with an empty password. Best Regards, Bert Koelewijn From jaekel@webgods.de Wed Oct 1 13:57:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5ED4E23887; Wed, 1 Oct 2003 13:57:12 +0300 (EEST) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by danu.procontrol.fi (Postfix) with ESMTP id AB02A23866 for ; Wed, 1 Oct 2003 13:56:49 +0300 (EEST) Received: from ANDREAS-M5LES2F.webgods.de (rz-gw.cronon.net [192.166.192.225]) by fredda.webgods.de (Postfix) with ESMTP id 6E90113C004; Wed, 1 Oct 2003 12:56:44 +0200 (CEST) Message-Id: <5.2.1.1.0.20031001125307.00b0e528@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Wed, 01 Oct 2003 12:55:30 +0200 To: Bert Koelewijn , dovecot@procontrol.fi From: Andreas Jaekel Subject: Re: [Dovecot] SSL Client Certificate Support In-Reply-To: <3F7AAE4E.9010100@rosanneke.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Oct 2003 10:57:12 -0000 X-UID: 1693 Status: O Content-Length: 1547 Aloha! At 12:37 01/10/2003 +0200, Bert Koelewijn wrote: >Dear Timo, > >most modern enterprises make use of a Public Key Infrastructure. It would >be nice to have dovecot check a client certificate instead of a password. >This makes life much easier and more secure. >Mail clients like Mozilla and MS Outlook do support this. What do you >think of the following feature request: > >- Client authenticates with a certificate via SSL. (Like stunnel can) >- Dovecot looks the username up in a table with (public key, username) >- The mailclient gives a name and password, but dovecot ignores them >- Dovecot gives the client access by the username found in the table > >This way existing mail clients can use this system and you can save your >username with an empty password. Wouldn't it be much better to take the list of valid usernames from X.509 extension fields instead of a lookup table? That way the usernames are also verified and trusted information. dovecot-auth would then allow the client to log in with any of the certified usernames using any arbitrary password, or to additional usernames using the correct password. Of course, one could also use attribute certificates... :) Anyway, one thing to remember might be that a ceritifcate usually identifies a person, not an account, so if a lookup table is used it should allow the person to have more than one account, and dovecot should allow that person into any one of them. Which one the person wants would be indicated by the username given to LOGIN. Regards, Andy From bert@rosanneke.com Wed Oct 1 15:04:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2ECC623887; Wed, 1 Oct 2003 15:04:28 +0300 (EEST) Received: from mailhost1.tudelft.nl (mailhost1.tudelft.nl [130.161.180.15]) by danu.procontrol.fi (Postfix) with ESMTP id DF21A23866 for ; Wed, 1 Oct 2003 15:03:54 +0300 (EEST) Received: from 127.0.0.1 (localhost [127.0.0.1]) by rav.antivirus (Postfix) with SMTP id 957C05893; Wed, 1 Oct 2003 14:03:44 +0200 (CEST) Received: from rosanneke.com (cpfwf.twi.tudelft.nl [130.161.156.6]) by mailhost1.tudelft.nl (Postfix) with ESMTP id 2C1BA5843; Wed, 1 Oct 2003 14:03:44 +0200 (CEST) Message-ID: <3F7AC2A9.1080907@rosanneke.com> Date: Wed, 01 Oct 2003 14:03:53 +0200 From: Bert Koelewijn User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Andreas Jaekel Subject: Re: [Dovecot] SSL Client Certificate Support References: <5.2.1.1.0.20031001125307.00b0e528@fredda.webgods.de> In-Reply-To: <5.2.1.1.0.20031001125307.00b0e528@fredda.webgods.de> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Oct 2003 12:04:28 -0000 X-UID: 1694 Status: O Content-Length: 1785 Andreas Jaekel wrote: > Aloha! > > > At 12:37 01/10/2003 +0200, Bert Koelewijn wrote: > >> Dear Timo, >> >> most modern enterprises make use of a Public Key Infrastructure. It >> would be nice to have dovecot check a client certificate instead of a >> password. This makes life much easier and more secure. >> Mail clients like Mozilla and MS Outlook do support this. What do you >> think of the following feature request: >> >> - Client authenticates with a certificate via SSL. (Like stunnel can) >> - Dovecot looks the username up in a table with (public key, username) >> - The mailclient gives a name and password, but dovecot ignores them >> - Dovecot gives the client access by the username found in the table >> >> This way existing mail clients can use this system and you can save >> your username with an empty password. > > > > Wouldn't it be much better to take the list of valid usernames from X.509 > extension fields instead of a lookup table? That way the usernames are > also > verified and trusted information. > > dovecot-auth would then allow the client to log in with any of the > certified > usernames using any arbitrary password, or to additional usernames using > the correct password. > > Of course, one could also use attribute certificates... :) > > Anyway, one thing to remember might be that a ceritifcate usually > identifies > a person, not an account, so if a lookup table is used it should allow > the person to have more than one account, and dovecot should allow that > person into any one of them. Which one the person wants would be indicated > by the username given to LOGIN. > > Regards, > Andy > > Yep, you're totally right. In our company everybody has 1 mailbox, then one could use X.509 extensions. Thanks! Bert From bert@rosanneke.com Wed Oct 1 15:23:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 310E423887; Wed, 1 Oct 2003 15:23:19 +0300 (EEST) Received: from mailhost1.tudelft.nl (mailhost1.tudelft.nl [130.161.180.15]) by danu.procontrol.fi (Postfix) with ESMTP id 59C4C23866 for ; Wed, 1 Oct 2003 15:23:06 +0300 (EEST) Received: from 127.0.0.1 (localhost [127.0.0.1]) by rav.antivirus (Postfix) with SMTP id 0F3DC4171; Wed, 1 Oct 2003 14:22:56 +0200 (CEST) Received: from rosanneke.com (cpfwf.twi.tudelft.nl [130.161.156.6]) by mailhost1.tudelft.nl (Postfix) with ESMTP id A514A2970; Wed, 1 Oct 2003 14:22:55 +0200 (CEST) Message-ID: <3F7AC728.1040101@rosanneke.com> Date: Wed, 01 Oct 2003 14:23:04 +0200 From: Bert Koelewijn User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Andreas Jaekel Subject: Re: [Dovecot] SSL Client Certificate Support References: <5.2.1.1.0.20031001125307.00b0e528@fredda.webgods.de> <3F7AC2A9.1080907@rosanneke.com> In-Reply-To: <3F7AC2A9.1080907@rosanneke.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Oct 2003 12:23:19 -0000 X-UID: 1695 Status: O Content-Length: 2032 Bert Koelewijn wrote: > Andreas Jaekel wrote: > >> Aloha! >> >> >> At 12:37 01/10/2003 +0200, Bert Koelewijn wrote: >> >>> Dear Timo, >>> >>> most modern enterprises make use of a Public Key Infrastructure. It >>> would be nice to have dovecot check a client certificate instead of a >>> password. This makes life much easier and more secure. >>> Mail clients like Mozilla and MS Outlook do support this. What do you >>> think of the following feature request: >>> >>> - Client authenticates with a certificate via SSL. (Like stunnel can) >>> - Dovecot looks the username up in a table with (public key, username) >>> - The mailclient gives a name and password, but dovecot ignores them >>> - Dovecot gives the client access by the username found in the table >>> >>> This way existing mail clients can use this system and you can save >>> your username with an empty password. >> >> >> >> >> Wouldn't it be much better to take the list of valid usernames from X.509 >> extension fields instead of a lookup table? That way the usernames >> are also >> verified and trusted information. >> >> dovecot-auth would then allow the client to log in with any of the >> certified >> usernames using any arbitrary password, or to additional usernames using >> the correct password. >> >> Of course, one could also use attribute certificates... :) >> >> Anyway, one thing to remember might be that a ceritifcate usually >> identifies >> a person, not an account, so if a lookup table is used it should allow >> the person to have more than one account, and dovecot should allow that >> person into any one of them. Which one the person wants would be >> indicated >> by the username given to LOGIN. >> >> Regards, >> Andy >> >> > > Yep, you're totally right. In our company everybody has 1 mailbox, then > one could use X.509 extensions. > > Thanks! > > Bert > > > If you don't use a lookup table, you HAVE to implement CRL's! You can make a script to download a new CRL and set it in your cron tabs. Regards, Bert From jaekel@webgods.de Wed Oct 1 15:34:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 494B723887; Wed, 1 Oct 2003 15:34:15 +0300 (EEST) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by danu.procontrol.fi (Postfix) with ESMTP id 8984223866 for ; Wed, 1 Oct 2003 15:34:02 +0300 (EEST) Received: from ANDREAS-M5LES2F.webgods.de (rz-gw.cronon.net [192.166.192.225]) by fredda.webgods.de (Postfix) with ESMTP id D8CC013C004; Wed, 1 Oct 2003 14:34:01 +0200 (CEST) Message-Id: <5.2.1.1.0.20031001142618.034f2258@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Wed, 01 Oct 2003 14:32:48 +0200 To: Bert Koelewijn From: Andreas Jaekel Subject: Re: [Dovecot] SSL Client Certificate Support In-Reply-To: <3F7AC728.1040101@rosanneke.com> References: <3F7AC2A9.1080907@rosanneke.com> <5.2.1.1.0.20031001125307.00b0e528@fredda.webgods.de> <3F7AC2A9.1080907@rosanneke.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Oct 2003 12:34:15 -0000 X-UID: 1696 Status: O Content-Length: 2432 At 14:23 01/10/2003 +0200, Bert Koelewijn wrote: >Bert Koelewijn wrote: > >>Andreas Jaekel wrote: >> >>>Aloha! >>> >>> >>>At 12:37 01/10/2003 +0200, Bert Koelewijn wrote: >>> >>>>Dear Timo, >>>> >>>>most modern enterprises make use of a Public Key Infrastructure. It >>>>would be nice to have dovecot check a client certificate instead of a >>>>password. This makes life much easier and more secure. >>>>Mail clients like Mozilla and MS Outlook do support this. What do you >>>>think of the following feature request: >>>> >>>>- Client authenticates with a certificate via SSL. (Like stunnel can) >>>>- Dovecot looks the username up in a table with (public key, username) >>>>- The mailclient gives a name and password, but dovecot ignores them >>>>- Dovecot gives the client access by the username found in the table >>>> >>>>This way existing mail clients can use this system and you can save >>>>your username with an empty password. >>> >>> >>> >>> >>>Wouldn't it be much better to take the list of valid usernames from X.509 >>>extension fields instead of a lookup table? That way the usernames are also >>>verified and trusted information. >>> >>>dovecot-auth would then allow the client to log in with any of the certified >>>usernames using any arbitrary password, or to additional usernames using >>>the correct password. >>> >>>Of course, one could also use attribute certificates... :) >>> >>>Anyway, one thing to remember might be that a ceritifcate usually identifies >>>a person, not an account, so if a lookup table is used it should allow >>>the person to have more than one account, and dovecot should allow that >>>person into any one of them. Which one the person wants would be indicated >>>by the username given to LOGIN. >>> >>>Regards, >>> Andy >>> >>Yep, you're totally right. In our company everybody has 1 mailbox, then >>one could use X.509 extensions. >>Thanks! >>Bert >> >If you don't use a lookup table, you HAVE to implement CRL's! You can make >a script to download a new CRL and set it in your cron tabs. > >Regards, > >Bert > Wouldn't it be CA- and config specific how to implement revocation lists? Maybe dovecot wants to do real time checks via LDAP and use an internal cache with weekly updates. A cron job would be easiest, thought, and the fastest way to get there. I imagine the cert code from Apache could be used to verify certs and extract X.509 extensions. Regards, Andy From esj@harvee.org Wed Oct 1 16:09:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3804223887; Wed, 1 Oct 2003 16:09:30 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id D14212385D for ; Wed, 1 Oct 2003 16:08:57 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h91D8tfO011548 for ; Wed, 1 Oct 2003 09:08:55 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Wed, 1 Oct 2003 09:08:47 -0400 Message-ID: <3F7AD153.1070503@harvee.org> Date: Wed, 01 Oct 2003 09:06:27 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] SSL Client Certificate Support References: <3F7AC2A9.1080907@rosanneke.com> <5.2.1.1.0.20031001125307.00b0e528@fredda.webgods.de> <3F7AC2A9.1080907@rosanneke.com> <5.2.1.1.0.20031001142618.034f2258@fredda.webgods.de> In-Reply-To: <5.2.1.1.0.20031001142618.034f2258@fredda.webgods.de> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:031001:dovecot@procontrol.fi:04810c2878142788 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Oct 2003 13:09:30 -0000 X-UID: 1697 Status: O Content-Length: 1610 Andreas Jaekel queried: > Wouldn't it be CA- and config specific how to implement revocation lists? > Maybe dovecot wants to do real time checks via LDAP and use an internal cache > with weekly updates. A cron job would be easiest, thought, and the fastest > way to get there. this is one of those cases where theory and practice in certificates collide rather unpleasantly. In theory, the entity receiving a certificate should query the CA's revocation list each and every time it sees a certificate. To be most accurate, this query should go directly to the CA and receive an answer directly from their primary copy of the revocation list. Unfortunately, this model doesn't scale beyond something like a few thousand certificates. Implementation assumptions might get you better scaling on the order of a few tens of percent but you won't see the order of magnitude scaling that is frequently needed. The suggestion you gave is more practical but does create an opportunity for a revoked certificate to still be used. This opportunity is the latency between the time the certificate is revoked and the time the revocation list is propagated. If you can use a push model (from CA to certificate receiver), it will keep the latency to a minimum. Personally, I think the whole PKI idea is fundamentally flawed as do many cryptographic and security experts in the world. It works in the small. It doesn't work in the large and as long as you recognize that and are willing to accept the limitations of the implementation, you will be OK. Just never forget the limitations. ---eric From jaldhar@debian.org Thu Oct 2 18:48:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F0C9B23887; Thu, 2 Oct 2003 18:48:52 +0300 (EEST) Received: from mail.braincells.com (unknown [69.55.226.47]) by danu.procontrol.fi (Postfix) with ESMTP id A9EE62385D for ; Thu, 2 Oct 2003 18:48:20 +0300 (EEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 5F5F21D70069 for ; Thu, 2 Oct 2003 11:48:16 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1])10024) with ESMTP id 11413-03 for ; Thu, 2 Oct 2003 11:48:16 -0400 (EDT) Received: from turiya.braincells.com (turiya.braincells.com [69.55.226.47]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 2704F1D70064 for ; Thu, 2 Oct 2003 11:48:16 -0400 (EDT) Date: Thu, 2 Oct 2003 11:48:15 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@turiya.braincells.com To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at braincells.com Subject: [Dovecot] Patches X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Oct 2003 15:48:53 -0000 X-UID: 1698 Status: O As the freeze for Debian sarge slowly approaches I want to make sure the Dovecot packages are in as good condition as possible. I see there have been a number of patches since 0.99.10. I have added the following patches: * segfault when user home directory is empty * Proper PAM service name * Make suid work on 2.6 kernels Any other patches thatI ought to add. Or better yet, will there be a 0.99.11 soon? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From jonas@illuminet.se Thu Oct 2 19:23:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6F14D23887; Thu, 2 Oct 2003 19:23:49 +0300 (EEST) Received: from localhost.localdomain (h107n2fls32o263.telia.com [217.209.33.107]) by danu.procontrol.fi (Postfix) with ESMTP id 6C66D23866 for ; Thu, 2 Oct 2003 19:23:16 +0300 (EEST) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id h92GMUXc006602 for ; Thu, 2 Oct 2003 18:22:55 +0200 Subject: Re: [Dovecot] can't read attachments using javamail with dovecot From: Jonas Bosson To: dovecot@procontrol.fi In-Reply-To: <1064857354.3748.225.camel@localhost> References: <1064481793.1177.44.camel@server.illuminet.se> <1064854943.3748.219.camel@localhost> <1064857354.3748.225.camel@localhost> Content-Type: text/plain Organization: Message-Id: <1065111750.5445.116.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 02 Oct 2003 18:22:30 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Oct 2003 16:23:49 -0000 X-UID: 1699 Status: O Content-Length: 1164 Where should I look to change this behavior (below)? lib-mail, lib-imap or lib-storage? On Mon, 2003-09-29 at 19:42, Jonas Bosson wrote: > On Mon, 2003-09-29 at 19:02, Jonas Bosson wrote: > > > Now I have conducted the trace and all seems fine, unless dovecot should > > not append the mime-boundary too... witch it does. That could explain > > why the javamail base64 parser flips out. > > > > It this the problem perhaps? > > > > --- snip from tail --- > > zym/MizHsizPMi3Xsi3f8qgFBAAAOx== > > > > --=-u5ZQZIAhsi8nf+mzzgM1-- > > ) > > A9 OK Fetch completed. > > --- SNAP > > Also, dovecot includes the boundary in the "length" of the body part in: > > A3 OK [READ-ONLY] Select completed. > * 103 FETCH (BODYSTRUCTURE (("text" "plain" ("charset" "us-ascii") NIL > NIL "7bit" 15 3 NIL NIL NIL)("image" "gif" ("name" > "usenet-traffic-globe.gif") NIL NIL "base64" 81076 NIL ("attachment" > ("filename" "usenet-traffic-globe.gif")) NIL) "mixed" ("boundary" > "=-u5ZQZIAhsi8nf+mzzgM1") NIL NIL)) > A4 OK Fetch completed. > > 81076 includes the boundary shown above. > Sorry if this is entirely up the wrong tree. > And thanks for any advice. > > /Jonas > From tim@gem.win.co.nz Thu Oct 2 20:56:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EE3A1238C7; Thu, 2 Oct 2003 20:56:26 +0300 (EEST) Received: from gem.win.co.nz (gem.win.co.nz [210.55.105.242]) by danu.procontrol.fi (Postfix) with ESMTP id 0FBBE23896 for ; Thu, 2 Oct 2003 20:55:53 +0300 (EEST) Received: from localhost (tim@localhost) by gem.win.co.nz (8.9.3p2/8.9.3) with ESMTP id FAA26241 for ; Fri, 3 Oct 2003 05:57:44 +1200 Date: Fri, 3 Oct 2003 05:57:43 +1200 (NZST) From: Tim Miller To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] another Dovecot problem X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Oct 2003 17:56:27 -0000 X-UID: 1700 Status: O Content-Length: 1472 Hi All-- First, thanks to Timo for solving my last issue. I got dovecot up and running on one of my machines, and it does exactly what I want. Now I'm trying to install dovecot on an older box (glibc 2.0.7 Linux kernel 2.0.36), and encountering some problems: -- firstly autoconf/automake does not seem to correctly deal with the madvise function on this system. It detects that we don't have madvise, yet it's prototyped in /usr/include/sys/mman.h. This causes the compilation to fail when dovecot tries to redefine this function. -- I attempted to solve this problem by renaming the function dovecot prototypes to dc_madvise and then changed all the calls in the code (and the implementation) from madvise to dc_madvise. This allows the code to compile correctly. -- However, once the server is installed, it does not appear to work correctly. I can login, but when I try to list my folders or select any folder (one that exists or one that doesn't exist) the connection times out and the following entry is written to the log file: dovecot: Oct 03 05:38:56 Error: login: received another "not listening" notification (if you can't login at all, see src/lib/fdpass.c) I tracked this message down in the source, but didn't see any obvious way to trace back the problem. Does anyone have experience building on this older configuration (the glibc is a Red Hat version, if it makes any difference)? Any ideas on what might be causing this issue? Best, Tim Miller From lists@ceskyserver.cz Fri Oct 3 14:28:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5E22923887; Fri, 3 Oct 2003 14:28:06 +0300 (EEST) Received: from cernunnos.ceskyserver.cz (wmail.ceskyserver.cz [81.0.235.159]) by danu.procontrol.fi (Postfix) with ESMTP id BD0182385D for ; Fri, 3 Oct 2003 14:27:33 +0300 (EEST) Received: (qmail 13682 invoked by uid 89); 3 Oct 2003 11:26:29 -0000 Message-ID: <20031003112629.13681.qmail@cernunnos.ceskyserver.cz> From: "Antonin Karasek" To: dovecot@procontrol.fi Date: Fri, 03 Oct 2003 13:26:29 +0200 Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Dovecot] pop3s in Outlook X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 11:28:06 -0000 X-UID: 1701 Status: O Hi, I'm using Dovecot for pop3-ssl. Unofortunatelly, most of my users are using MS Outlook. I want them to be able to remove standard mesage: "The certificat is not signed by...", but I don't know how :-( In the dialog isn't a button "Trust this certificate forever"... Is there anybody, who know, how to solve this? Many thanks. From jonas@illuminet.se Fri Oct 3 16:34:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7C26E23896; Fri, 3 Oct 2003 16:34:23 +0300 (EEST) Received: from localhost.localdomain (h107n2fls32o263.telia.com [217.209.33.107]) by danu.procontrol.fi (Postfix) with ESMTP id 23FC12385D for ; Fri, 3 Oct 2003 16:33:51 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id h93DXSXc007945 for ; Fri, 3 Oct 2003 15:33:28 +0200 Subject: Re: [Dovecot] can't read attachments using javamail with dovecot From: Jonas Bosson To: dovecot@procontrol.fi In-Reply-To: <1065111750.5445.116.camel@localhost> References: <1064481793.1177.44.camel@server.illuminet.se> <1064857354.3748.225.camel@localhost> <1065111750.5445.116.camel@localhost> Content-Type: text/plain Organization: Message-Id: <1065188008.7697.36.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 03 Oct 2003 15:33:28 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 13:34:23 -0000 X-UID: 1702 Status: O Content-Length: 1743 I have put the source mail and the traces from dovecot in: http://www.illuminet.se/test/error.tgz It also seems there is different behavior in size, small sizes work fine, but larger attachments go bezerk. This example for instance overruns the boundary of the larger attachment and displays part of the following one. I have been tracing the use of message_find_boundary and message_size structs, but have not found the miss calculation yet. /Jonas On Thu, 2003-10-02 at 18:22, Jonas Bosson wrote: > Where should I look to change this behavior (below)? > lib-mail, lib-imap or lib-storage? > > > On Mon, 2003-09-29 at 19:42, Jonas Bosson wrote: > > On Mon, 2003-09-29 at 19:02, Jonas Bosson wrote: > > > > > Now I have conducted the trace and all seems fine, unless dovecot should > > > not append the mime-boundary too... witch it does. That could explain > > > why the javamail base64 parser flips out. > > > > > > It this the problem perhaps? > > > > > > --- snip from tail --- > > > zym/MizHsizPMi3Xsi3f8qgFBAAAOx== > > > > > > --=-u5ZQZIAhsi8nf+mzzgM1-- > > > ) > > > A9 OK Fetch completed. > > > --- SNAP > > > > Also, dovecot includes the boundary in the "length" of the body part in: > > > > A3 OK [READ-ONLY] Select completed. > > * 103 FETCH (BODYSTRUCTURE (("text" "plain" ("charset" "us-ascii") NIL > > NIL "7bit" 15 3 NIL NIL NIL)("image" "gif" ("name" > > "usenet-traffic-globe.gif") NIL NIL "base64" 81076 NIL ("attachment" > > ("filename" "usenet-traffic-globe.gif")) NIL) "mixed" ("boundary" > > "=-u5ZQZIAhsi8nf+mzzgM1") NIL NIL)) > > A4 OK Fetch completed. > > > > 81076 includes the boundary shown above. > > Sorry if this is entirely up the wrong tree. > > And thanks for any advice. > > > > /Jonas > > From grahame@typhaon.ucs.uwa.edu.au Fri Oct 3 07:27:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0C56723887; Fri, 3 Oct 2003 07:27:52 +0300 (EEST) Received: from asclepius.uwa.edu.au (asclepius.uwa.edu.au [130.95.128.56]) by danu.procontrol.fi (Postfix) with ESMTP id 6369623866 for ; Fri, 3 Oct 2003 07:27:17 +0300 (EEST) Received: from 127.0.0.1 (localhost [127.0.0.1]) by dummy.domain.name (Postfix) with SMTP id 55C903675FE for ; Fri, 3 Oct 2003 12:27:14 +0800 (WST) Received: from typhaon.ucs.uwa.edu.au (typhaon.ucs.uwa.edu.au [130.95.128.67]) by asclepius.uwa.edu.au (Postfix) with ESMTP id 4FE86366EFC for ; Fri, 3 Oct 2003 12:27:14 +0800 (WST) Received: by typhaon.ucs.uwa.edu.au (Postfix, from userid 60001) id 62AC44087109; Fri, 3 Oct 2003 12:27:13 +0800 (WST) Date: Fri, 3 Oct 2003 12:27:13 +0800 To: "Jaldhar H. Vyas" Subject: Re: [Dovecot] Patches Message-ID: <20031003042713.GA25044@typhaon.ucs.uwa.edu.au> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.4i From: grahame@typhaon.ucs.uwa.edu.au (Grahame Bowland) X-Mailman-Approved-At: Fri, 03 Oct 2003 17:07:25 +0300 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 04:27:52 -0000 X-UID: 1703 Status: O Content-Length: 1024 On Thu, Oct 02, 2003 at 11:48:15AM -0400, Jaldhar H. Vyas wrote: > As the freeze for Debian sarge slowly approaches I want to make sure > the Dovecot packages are in as good condition as possible. I see there > have been a number of patches since 0.99.10. I have added the following > patches: > > * segfault when user home directory is empty > * Proper PAM service name > * Make suid work on 2.6 kernels > > Any other patches thatI ought to add. Or better yet, will there be a > 0.99.11 soon? The only other patch we're running is the one by Bernard Blackham (it's in the list archives) so that "Deleted" and "Draft" messages are handled properly in mbox files. It's a fairly important patch, and it'd be really great if it was in the Debian package. Cheers Grahame -- Grahame Bowland Email: grahame@ucs.uwa.edu.au University Communications Services Phone: +61 8 9380 1175 The University of Western Australia Fax: +61 8 9380 1109 CRICOS: 00126G From Nicolas.Stransky@crans.org Fri Oct 3 17:16:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 036C2238B6; Fri, 3 Oct 2003 17:16:48 +0300 (EEST) Received: from mailhost.curie.fr (burton1.curie.fr [193.49.205.23]) by danu.procontrol.fi (Postfix) with ESMTP id 6455E23887 for ; Fri, 3 Oct 2003 17:16:14 +0300 (EEST) Received: from mailhost.curie.fr (localhost [127.0.0.1]) by mailhost.curie.fr/1 with ESMTP id h93EGCVC002704 for ; Fri, 3 Oct 2003 16:16:12 +0200 (CEST) Received: from crans.org (jpt-0115-6340.curie.fr [10.10.11.73]) by mailhost.curie.fr/0 with ESMTP id h93EG7ZK002693 for ; Fri, 3 Oct 2003 16:16:07 +0200 (CEST) X-Client-Addr: 10.10.11.73 jpt-0115-6340.curie.fr (OK) X-Client-Sender: Nicolas.Stransky@crans.org Message-ID: <3F7D84A7.7000907@crans.org> Date: Fri, 03 Oct 2003 16:16:07 +0200 From: Nicolas STRANSKY User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20030925 X-Accept-Language: fr-fr, fr, en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi References: <20031003112629.13681.qmail@cernunnos.ceskyserver.cz> In-Reply-To: <20031003112629.13681.qmail@cernunnos.ceskyserver.cz> X-Enigmail-Version: 0.76.7.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, hits=0.0 required=8.0 tests=none version=2.60-cvs X-Mailman-Approved-At: Fri, 03 Oct 2003 17:36:26 +0300 Subject: [Dovecot] Re: pop3s in Outlook X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 14:16:48 -0000 X-UID: 1704 Status: O Le 03/10/2003 13:26, Antonin Karasek a écrit : > Hi, > I'm using Dovecot for pop3-ssl. Unofortunatelly, most of my users are > using MS Outlook. I want them to be able to remove standard mesage: "The > certificat is not signed by...", but I don't know how :-( In the dialog > isn't a button "Trust this certificate forever"... > Is there anybody, who know, how to solve this? I have written something about this some time ago. http://www.crans.org/docs/stunnel.html Sorry it's in french, but the important part is that you have got to export your certificate in a format that outlook (or windows) is able to import. openssl x509 -in certificate.pem -outform DER -out certificate_for_outlook.der Then you can distribute this certificate and your users only have to double clic on it to import it. -- Nico From tss@iki.fi Fri Oct 3 17:39:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6F3A5238B6; Fri, 3 Oct 2003 17:39:36 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8A94C23887 for ; Fri, 3 Oct 2003 17:39:04 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 17C5C5EC117D for ; Fri, 3 Oct 2003 17:39:04 +0300 (EEST) Subject: Re: [Dovecot] can't read attachments using javamail with dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1065188008.7697.36.camel@localhost> References: <1064481793.1177.44.camel@server.illuminet.se> <1065111750.5445.116.camel@localhost> <1065188008.7697.36.camel@localhost> Content-Type: text/plain Message-Id: <1065191943.32104.89.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 03 Oct 2003 17:39:03 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 14:39:36 -0000 X-UID: 1705 Status: O On Fri, 2003-10-03 at 16:33, Jonas Bosson wrote: > I have put the source mail and the traces from dovecot in: > http://www.illuminet.se/test/error.tgz Thanks. The real problem was the it was asking more data than there really was in the body part, and my checks were a bit wrong there. http://dovecot.fi/fetch-body.patch From tss@iki.fi Fri Oct 3 17:40:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BD54623887; Fri, 3 Oct 2003 17:40:46 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7E39F238D1 for ; Fri, 3 Oct 2003 17:40:06 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 558C55EC117D for ; Fri, 3 Oct 2003 17:40:03 +0300 (EEST) Subject: Re: [Dovecot] Why does dovecot confuse mutt? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20031001005112.GA30133@woom.net> References: <20030723225217.73dde8ac.amyzing@talsever.com> <20031001005112.GA30133@woom.net> Content-Type: text/plain Message-Id: <1065192003.32099.91.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 03 Oct 2003 17:40:03 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 14:40:46 -0000 X-UID: 1706 Status: O On Wed, 2003-10-01 at 03:51, Samuel Verner wrote: > > I think this is because Dovecot doesn't send \NoChildren flag for > > mailboxes. I'm not sure when that got lost.. Maybe it's time to rewrite > > the mailbox listing code once again. > > Is this fixed in latest dovecot? It's fixed in CVS, but I don't think it's in 0.99.10.. From tss@iki.fi Fri Oct 3 17:48:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 451A6238B6; Fri, 3 Oct 2003 17:48:27 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 93EFC23896 for ; Fri, 3 Oct 2003 17:48:14 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5B74A5EC117D for ; Fri, 3 Oct 2003 17:48:14 +0300 (EEST) Subject: Re: [Dovecot] SSL Client Certificate Support From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F7AAE4E.9010100@rosanneke.com> References: <3F7AAE4E.9010100@rosanneke.com> Content-Type: text/plain Message-Id: <1065192494.32105.100.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 03 Oct 2003 17:48:14 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 14:48:27 -0000 X-UID: 1707 Status: O On Wed, 2003-10-01 at 13:37, Bert Koelewijn wrote: > most modern enterprises make use of a Public Key Infrastructure. It > would be nice to have dovecot check a client certificate instead of a > password. This makes life much easier and more secure. > Mail clients like Mozilla and MS Outlook do support this. What do you > think of the following feature request: > > - Client authenticates with a certificate via SSL. (Like stunnel can) > - Dovecot looks the username up in a table with (public key, username) > - The mailclient gives a name and password, but dovecot ignores them > - Dovecot gives the client access by the username found in the table I've thought about it before myself a few times. I'm not against such patch, but I don't think I'll implement it myself anytime soon. Doing this also worries me a bit. Wasn't the recent security hole in OpenSSL just in the client certificate parsing? SSL cert authentication would have to rely on OpenSSL (or GNUTLS). From tss@iki.fi Fri Oct 3 18:02:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6806E23887; Fri, 3 Oct 2003 18:02:25 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 342012385D for ; Fri, 3 Oct 2003 18:02:12 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E0AA65EC117D for ; Fri, 3 Oct 2003 18:02:11 +0300 (EEST) Subject: Re: [Dovecot] another Dovecot problem From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: multipart/mixed; boundary="=-t5deGpcRIJq0ZMJjhLWJ" Message-Id: <1065193331.32105.115.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 03 Oct 2003 18:02:11 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 15:02:25 -0000 X-UID: 1708 Status: O Content-Length: 4350 --=-t5deGpcRIJq0ZMJjhLWJ Content-Type: text/plain Content-Transfer-Encoding: 7bit On Thu, 2003-10-02 at 20:57, Tim Miller wrote: > First, thanks to Timo for solving my last issue. I got dovecot up and > running on one of my machines, and it does exactly what I want. Now I'm > trying to install dovecot on an older box (glibc 2.0.7 Linux kernel > 2.0.36), and encountering some problems: > > -- firstly autoconf/automake does not seem to correctly deal with the > madvise function on this system. It detects that we don't have madvise, > yet it's prototyped in /usr/include/sys/mman.h. This causes the > compilation to fail when dovecot tries to redefine this function. > > -- I attempted to solve this problem by renaming the function dovecot > prototypes to dc_madvise and then changed all the calls in the code (and > the implementation) from madvise to dc_madvise. This allows the code to > compile correctly. Well, I fixed it in a bit easier way :) diff -u -r1.4 -r1.5 --- mmap-util.h 28 Oct 2002 09:00:25 -0000 1.4 +++ mmap-util.h 3 Oct 2003 14:50:48 -0000 1.5 @@ -15,7 +15,8 @@ #endif #ifndef HAVE_MADVISE -int madvise(void *start, size_t length, int advice); +# define madvise my_madvise +int my_madvise(void *start, size_t length, int advice); # ifndef MADV_NORMAL # define MADV_NORMAL 0 # define MADV_RANDOM 0 > -- However, once the server is installed, it does not appear to work > correctly. I can login, but when I try to list my folders or select any > folder (one that exists or one that doesn't exist) the connection times > out and the following entry is written to the log file: > > dovecot: Oct 03 05:38:56 Error: login: received another "not listening" > notification (if you can't login at all, see src/lib/fdpass.c) > > I tracked this message down in the source, but didn't see any obvious way > to trace back the problem. Linux 2.0.x kernels requires changes in the source to work. I didn't think anyone would really bother trying Dovecot with 2.0 kernels anymore so there was only a comment about it there. Apply the included patch and compile with -DLINUX20 and it should work. --=-t5deGpcRIJq0ZMJjhLWJ Content-Disposition: attachment; filename=fdpass.patch Content-Type: text/plain; name=fdpass.patch; charset=iso-8859-15 Content-Transfer-Encoding: 7bit ? src/lib/file-lock-remote.c ? src/lib/file-lock-remote.h ? src/lib/istream-copy.c ? src/lib/istream-data.c2 ? src/lib/istream-filter.c ? src/lib/istream-filter.h ? src/lib/m Index: src/lib/fdpass.c =================================================================== RCS file: /home/cvs/dovecot/src/lib/fdpass.c,v retrieving revision 1.26 diff -u -r1.26 fdpass.c --- src/lib/fdpass.c 26 Aug 2003 21:06:44 -0000 1.26 +++ src/lib/fdpass.c 3 Oct 2003 15:01:33 -0000 @@ -78,6 +78,22 @@ return sendmsg(handle, &msg, 0); } +#ifdef __osf__ +# define CHECK_MSG(msg) TRUE /* Tru64 */ +#else +# define CHECK_MSG(msg) (msg).msg_controllen >= CMSG_SPACE(sizeof(int)) +#endif + +#ifdef LINUX20 +/* Linux 2.0.x doesn't set any cmsg fields. Note that this might make some + attacks possible so don't do it unless you really have to. */ +# define CHECK_CMSG(cmsg) ((cmsg) != NULL) +#else +# define CHECK_CMSG(cmsg) \ + ((cmsg) != NULL && (cmsg)->cmsg_len >= CMSG_LEN(sizeof(int)) && \ + (cmsg)->cmsg_level == SOL_SOCKET && (cmsg)->cmsg_type == SCM_RIGHTS) +#endif + ssize_t fd_read(int handle, void *data, size_t size, int *fd) { struct msghdr msg; @@ -109,17 +125,10 @@ /* at least one byte transferred - we should have the fd now. do extra checks to make sure it really is an fd that is being transferred to avoid potential DoS conditions. some systems don't - set all these values correctly however: - - Linux 2.0.x - cmsg_len, cmsg_level, cmsg_type are not set - Tru64 - msg_controllen isn't set */ + set all these values correctly however so CHECK_MSG() and + CHECK_CMSG() are somewhat system dependent */ cmsg = CMSG_FIRSTHDR(&msg); - if ( -#ifndef __osf__ /* Tru64 */ - msg.msg_controllen < CMSG_SPACE(sizeof(int)) || -#endif - cmsg == NULL || cmsg->cmsg_len < CMSG_LEN(sizeof(int)) || - cmsg->cmsg_level != SOL_SOCKET || cmsg->cmsg_type != SCM_RIGHTS) + if (!CHECK_MSG(msg) || !CHECK_CMSG(cmsg)) *fd = -1; else *fd = *((int *) CMSG_DATA(cmsg)); --=-t5deGpcRIJq0ZMJjhLWJ-- From tss@iki.fi Fri Oct 3 18:04:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 78A0E23887; Fri, 3 Oct 2003 18:04:48 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D38AC2385D for ; Fri, 3 Oct 2003 18:04:35 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A4EB25EC117D for ; Fri, 3 Oct 2003 18:04:35 +0300 (EEST) Subject: Re: [Dovecot] Patches From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1065193475.32107.118.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 03 Oct 2003 18:04:35 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 15:04:48 -0000 X-UID: 1709 Status: O On Thu, 2003-10-02 at 18:48, Jaldhar H. Vyas wrote: > Or better yet, will there be a 0.99.11 soon? Maybe it's time for 0.99.10.1 with all the small fixes.. 0.99.11 is still waiting for the mbox code to get fixed. From tss@iki.fi Fri Oct 3 19:29:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ED13023896; Fri, 3 Oct 2003 19:29:39 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2CD8623887 for ; Fri, 3 Oct 2003 19:29:27 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E49D85EC117D for ; Fri, 3 Oct 2003 19:29:26 +0300 (EEST) Subject: Re: [Dovecot] mailbox sorting issue From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <20030925090003.CAF68238D2@danu.procontrol.fi> Content-Type: text/plain Message-Id: <1065198566.32105.127.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 03 Oct 2003 19:29:26 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 16:29:40 -0000 X-UID: 1710 Status: O On Thu, 2003-09-25 at 19:50, Paul wrote: > When I sort a Dovecot mbox in Pine, the most recent messages tend to > linger near the bottom of the message list, regardless of how they're > sorted. Here's a snippet of the bottom of the list, sorted by arrival > time: Looks like it's buggy in 0.99.10. I found several sorting bugs from CVS as well. CVS works now correctly, I'll look at 0.99.10 later again since the problem is elsewhere in it.. Maybe I'll just kludge the mbox support working again to get 0.99.11 out :) From mreimer@vpop.net Fri Oct 3 19:55:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7142723896; Fri, 3 Oct 2003 19:55:01 +0300 (EEST) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 902C823887 for ; Fri, 3 Oct 2003 19:54:28 +0300 (EEST) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id DE8D03A6016 for ; Fri, 3 Oct 2003 09:54:24 -0700 (PDT) Message-ID: <3F7DA9D8.2030409@vpop.net> Date: Fri, 03 Oct 2003 11:54:48 -0500 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.4) Gecko/20030701 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] PATCH: mysql authentication Content-Type: multipart/mixed; boundary="------------090209080508010809040904" X-Mailman-Approved-At: Fri, 03 Oct 2003 20:04:26 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 16:55:01 -0000 X-UID: 1711 Status: O Content-Length: 26769 This is a multi-part message in MIME format. --------------090209080508010809040904 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Here's another patch. This one isn't much different from the last patch, except it tries a little harder to make sure that the required fields are returned by the query (like the pgsql module does). One question about how t_strdup works. How and who should memory returned by t_strdup be freed? My patch has a function my_get_str() which returns the value of t_strdup, and then I do this: user.uid = atoi(my_get_str(res, row, "uid")); /* XXX leak */ user.gid = atoi(my_get_str(res, row, "gid")); /* XXX leak */ Will this result in a memory leak? Matt --------------090209080508010809040904 Content-Type: text/plain; name="dovecot.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dovecot.patch" diff -u -r --new-file work/dovecot-0.99.10/doc/dovecot-mysql.conf work.patched/dovecot-0.99.10/doc/dovecot-mysql.conf --- work/dovecot-0.99.10/doc/dovecot-mysql.conf Wed Dec 31 16:00:00 1969 +++ work.patched/dovecot-0.99.10/doc/dovecot-mysql.conf Tue Sep 30 12:24:00 2003 @@ -0,0 +1,70 @@ +# For the mysql passdb module, you'll need a database with a table that +# contains fields for at least the userid and password. If you want to +# use the user@domain syntax, you might want to have a separate domain +# field as well. +# +# If your users all have the same uig/gid, and have predictable home +# directories, you can use the static userdb module to generate the home +# dir based on the userid and domain. In this case, you won't need fields +# for home, uid, or gid in the database. +# +# If you prefer to use the mysql userdb module, you'll want to add fields +# for home, uid, and gid. Here is an example table: +# +# CREATE TABLE users ( +# userid VARCHAR(128) NOT NULL, +# password VARCHAR(64) NOT NULL, +# home VARCHAR(256) NOT NULL, +# uid INTEGER NOT NULL, +# gid INTEGER NOT NULL, +# active CHAR(1) DEFAULT 'Y' NOT NULL +# ); + +db_host = localhost +db_port = 3306 +#db_unix_socket = /var/tmp/mysql.sock +db = users +db_user = dovecot-db +db_passwd = opensesame +db_client_flags = 0 + +# Default password scheme. +# +# Currently supported schemes include PLAIN, PLAIN-MD5, DIGEST-MD5, and CRYPT. +# +#default_pass_scheme = PLAIN-MD5 + +# Query to retrieve the password. +# +# The query should return one row, one column. If more than one row or column +# is returned, authentication will automatically fail. +# +# Available substitutions: +# %u = entire userid +# %n = user part of user@domain +# %d = domain part of user@domain +# +# Example: +# password_query = SELECT password FROM users WHERE userid = '%n' AND domain = '%d' +# password_query = SELECT password FROM users WHERE userid = '%u' AND active = 'Y' +# +#password_query = SELECT password FROM users WHERE userid = '%u' + +# Query to retrieve the user information. +# +# The query must return only one row. The columns to return are: +# home - Home directory +# mail - MAIL environment +# system_user - System user name (for initgroups()) +# uid - System UID +# gid - System GID +# +# Either home or mail is required. uid and gid are required. If more than one +# row is returned or there's missing fields, login will automatically fail. +# +# Examples +# user_query = SELECT home, uid, gid FROM users WHERE userid = '%n' AND domain = '%d' +# user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u' +# user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u' +# +#user_query = SELECT home, uid, gid FROM users WHERE userid = '%u' diff -u -r --new-file work/dovecot-0.99.10/src/auth/Makefile.in work.patched/dovecot-0.99.10/src/auth/Makefile.in --- work/dovecot-0.99.10/src/auth/Makefile.in Thu Jun 26 09:15:11 2003 +++ work.patched/dovecot-0.99.10/src/auth/Makefile.in Tue Sep 30 12:24:00 2003 @@ -99,10 +99,10 @@ dovecot_auth_LDADD = ../lib-settings/libsettings.a ../lib/liblib.a $(AUTH_LIBS) $(RAND_LIBS) $(MODULE_LIBS) -dovecot_auth_SOURCES = auth-module.c db-ldap.c db-pgsql.c db-passwd-file.c login-connection.c main.c master-connection.c md5crypt.c mech.c mech-anonymous.c mech-cyrus-sasl2.c mech-plain.c mech-digest-md5.c mycrypt.c passdb.c passdb-ldap.c passdb-passwd.c passdb-passwd-file.c passdb-pam.c passdb-shadow.c passdb-vpopmail.c passdb-pgsql.c password-scheme.c userdb.c userdb-ldap.c userdb-passwd.c userdb-passwd-file.c userdb-static.c userdb-vpopmail.c userdb-pgsql.c +dovecot_auth_SOURCES = auth-module.c db-ldap.c db-pgsql.c db-mysql.c db-passwd-file.c login-connection.c main.c master-connection.c md5crypt.c mech.c mech-anonymous.c mech-cyrus-sasl2.c mech-plain.c mech-digest-md5.c mycrypt.c passdb.c passdb-ldap.c passdb-passwd.c passdb-passwd-file.c passdb-pam.c passdb-shadow.c passdb-vpopmail.c passdb-pgsql.c passdb-mysql.c password-scheme.c userdb.c userdb-ldap.c userdb-passwd.c userdb-passwd-file.c userdb-static.c userdb-vpopmail.c userdb-pgsql.c userdb-mysql.c -noinst_HEADERS = auth-login-interface.h auth-master-interface.h auth-mech-desc.h auth-module.h db-ldap.h db-pgsql.h db-passwd-file.h common.h login-connection.h master-connection.h md5crypt.h mech.h mycrypt.h passdb.h password-scheme.h userdb.h userdb-vpopmail.h +noinst_HEADERS = auth-login-interface.h auth-master-interface.h auth-mech-desc.h auth-module.h db-ldap.h db-pgsql.h db-mysql.h db-passwd-file.h common.h login-connection.h master-connection.h md5crypt.h mech.h mycrypt.h passdb.h password-scheme.h userdb.h userdb-vpopmail.h mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../../config.h @@ -116,17 +116,17 @@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ dovecot_auth_OBJECTS = auth-module.$(OBJEXT) db-ldap.$(OBJEXT) \ -db-pgsql.$(OBJEXT) db-passwd-file.$(OBJEXT) login-connection.$(OBJEXT) \ +db-pgsql.$(OBJEXT) db-mysql.$(OBJEXT) db-passwd-file.$(OBJEXT) login-connection.$(OBJEXT) \ main.$(OBJEXT) master-connection.$(OBJEXT) md5crypt.$(OBJEXT) \ mech.$(OBJEXT) mech-anonymous.$(OBJEXT) mech-cyrus-sasl2.$(OBJEXT) \ mech-plain.$(OBJEXT) mech-digest-md5.$(OBJEXT) mycrypt.$(OBJEXT) \ passdb.$(OBJEXT) passdb-ldap.$(OBJEXT) passdb-passwd.$(OBJEXT) \ passdb-passwd-file.$(OBJEXT) passdb-pam.$(OBJEXT) \ passdb-shadow.$(OBJEXT) passdb-vpopmail.$(OBJEXT) \ -passdb-pgsql.$(OBJEXT) password-scheme.$(OBJEXT) userdb.$(OBJEXT) \ +passdb-pgsql.$(OBJEXT) passdb-mysql.$(OBJEXT) password-scheme.$(OBJEXT) userdb.$(OBJEXT) \ userdb-ldap.$(OBJEXT) userdb-passwd.$(OBJEXT) \ userdb-passwd-file.$(OBJEXT) userdb-static.$(OBJEXT) \ -userdb-vpopmail.$(OBJEXT) userdb-pgsql.$(OBJEXT) +userdb-vpopmail.$(OBJEXT) userdb-pgsql.$(OBJEXT) userdb-mysql.$(OBJEXT) dovecot_auth_DEPENDENCIES = ../lib-settings/libsettings.a \ ../lib/liblib.a dovecot_auth_LDFLAGS = @@ -295,6 +295,13 @@ ../../src/lib/strfuncs.h ../../src/lib/network.h \ ../../src/lib/str.h ../../src/lib-settings/settings.h \ db-pgsql.h +db-mysql.o: db-mysql.c ../../config.h common.h ../../src/lib/lib.h \ + ../../src/lib/compat.h ../../src/lib/macros.h \ + ../../src/lib/failures.h ../../src/lib/data-stack.h \ + ../../src/lib/mempool.h ../../src/lib/imem.h \ + ../../src/lib/strfuncs.h ../../src/lib/network.h \ + ../../src/lib/str.h ../../src/lib-settings/settings.h \ + db-mysql.h login-connection.o: login-connection.c common.h ../../src/lib/lib.h \ ../../config.h ../../src/lib/compat.h ../../src/lib/macros.h \ ../../src/lib/failures.h ../../src/lib/data-stack.h \ @@ -388,6 +395,14 @@ ../../src/lib/str.h ../../src/lib/strescape.h \ ../../src/lib/var-expand.h password-scheme.h db-pgsql.h \ passdb.h mech.h auth-login-interface.h +passdb-mysql.o: passdb-mysql.c ../../config.h common.h \ + ../../src/lib/lib.h ../../src/lib/compat.h \ + ../../src/lib/macros.h ../../src/lib/failures.h \ + ../../src/lib/data-stack.h ../../src/lib/mempool.h \ + ../../src/lib/imem.h ../../src/lib/strfuncs.h \ + ../../src/lib/str.h ../../src/lib/strescape.h \ + ../../src/lib/var-expand.h password-scheme.h db-mysql.h \ + passdb.h mech.h auth-login-interface.h passdb-shadow.o: passdb-shadow.c ../../config.h common.h \ ../../src/lib/lib.h ../../src/lib/compat.h \ ../../src/lib/macros.h ../../src/lib/failures.h \ @@ -428,6 +443,13 @@ ../../src/lib/imem.h ../../src/lib/strfuncs.h \ ../../src/lib/str.h ../../src/lib/strescape.h \ ../../src/lib/var-expand.h db-pgsql.h userdb.h +userdb-mysql.o: userdb-mysql.c ../../config.h common.h \ + ../../src/lib/lib.h ../../src/lib/compat.h \ + ../../src/lib/macros.h ../../src/lib/failures.h \ + ../../src/lib/data-stack.h ../../src/lib/mempool.h \ + ../../src/lib/imem.h ../../src/lib/strfuncs.h \ + ../../src/lib/str.h ../../src/lib/strescape.h \ + ../../src/lib/var-expand.h db-mysql.h userdb.h userdb-static.o: userdb-static.c ../../config.h common.h \ ../../src/lib/lib.h ../../src/lib/compat.h \ ../../src/lib/macros.h ../../src/lib/failures.h \ diff -u -r --new-file work/dovecot-0.99.10/src/auth/db-mysql.c work.patched/dovecot-0.99.10/src/auth/db-mysql.c --- work/dovecot-0.99.10/src/auth/db-mysql.c Wed Dec 31 16:00:00 1969 +++ work.patched/dovecot-0.99.10/src/auth/db-mysql.c Tue Sep 30 12:24:00 2003 @@ -0,0 +1,181 @@ +/* Copyright (C) 2003 Alex Howansky, Timo Sirainen */ + +#include "config.h" +#undef HAVE_CONFIG_H + +#if defined(PASSDB_MYSQL) || defined(USERDB_MYSQL) + +#include "common.h" +#include "network.h" +#include "str.h" +#include "settings.h" +#include "db-mysql.h" + +#include +#include +#include + +#define DEF(type, name) { type, #name, offsetof(struct mysql_settings, name) } + +static struct setting_def setting_defs[] = { + DEF(SET_STR, db_host), + DEF(SET_STR, db_port), + DEF(SET_STR, db_unix_socket), + DEF(SET_STR, db), + DEF(SET_STR, db_user), + DEF(SET_STR, db_passwd), + DEF(SET_STR, db_client_flags), + DEF(SET_STR, password_query), + DEF(SET_STR, user_query), + DEF(SET_STR, default_pass_scheme) +}; + +struct mysql_settings default_mysql_settings = { + MEMBER(db_host) "localhost", + MEMBER(db_port) "0", + MEMBER(db_unix_socket) "/var/tmp/mysql.sock", + MEMBER(db) "email_accounts", + MEMBER(db_user) "dovecot", + MEMBER(db_passwd) "changeme", + MEMBER(db_client_flags) "0", + MEMBER(password_query) "SELECT password FROM users WHERE userid = '%u'", + MEMBER(user_query) "SELECT home, uid, gid FROM users WHERE userid = '%u'", + MEMBER(default_pass_scheme) "PLAIN-MD5" +}; + +static struct mysql_connection *mysql_connections = NULL; + +static int mysql_conn_open(struct mysql_connection *conn); +static void mysql_conn_close(struct mysql_connection *conn); + +void db_mysql_query(struct mysql_connection *conn, const char *query, + struct mysql_request *request) +{ + MYSQL_RES *res; + int failed; + + if (!conn->connected) { + if (!mysql_conn_open(conn)) { + request->callback(conn, request, NULL); + return; + } + } + + if (verbose_debug) + i_info("MYSQL: Performing query: %s", query); + + if (mysql_query(conn->mysql, query)) + i_info("MYSQL: Error executing query \"%s\": %s", query, + mysql_error(conn->mysql)); + + if ((res = mysql_store_result(conn->mysql))) + failed = FALSE; + else { + i_info("MYSQL: Error retrieving results: %s", + mysql_error(conn->mysql)); + failed = TRUE; + } + + request->callback(conn, request, failed ? NULL : res); + mysql_free_result(res); + i_free(request); +} + +static int mysql_conn_open(struct mysql_connection *conn) +{ + if (conn->connected) + return TRUE; + + if (conn->mysql == NULL) { + conn->mysql = mysql_init(NULL); + if (conn->mysql == NULL) { + i_error("MYSQL: mysql_init failed"); + return FALSE; + } + + if (!mysql_real_connect(conn->mysql, conn->set.db_host, + conn->set.db_user, conn->set.db_passwd, + conn->set.db, + atoi(conn->set.db_port), + conn->set.db_unix_socket, + strtoul(conn->set.db_client_flags, + NULL, 10))) { + i_error("MYSQL: Can't connect to database %s: %s", + conn->set.db, mysql_error(conn->mysql)); + return FALSE; + } + } + + conn->connected = TRUE; + return TRUE; +} + +static void mysql_conn_close(struct mysql_connection *conn) +{ + conn->connected = FALSE; + + if (conn->mysql != NULL) { + mysql_close(conn->mysql); + conn->mysql = NULL; + } +} + +static struct mysql_connection *mysql_conn_find(const char *config_path) +{ + struct mysql_connection *conn; + + for (conn = mysql_connections; conn != NULL; conn = conn->next) { + if (strcmp(conn->config_path, config_path) == 0) + return conn; + } + + return NULL; +} + +static const char *parse_setting(const char *key, const char *value, + void *context) +{ + struct mysql_connection *conn = context; + + return parse_setting_from_defs(conn->pool, setting_defs, + &conn->set, key, value); +} + +struct mysql_connection *db_mysql_init(const char *config_path) +{ + struct mysql_connection *conn; + pool_t pool; + + conn = mysql_conn_find(config_path); + if (conn != NULL) { + conn->refcount++; + return conn; + } + + pool = pool_alloconly_create("mysql_connection", 1024); + conn = p_new(pool, struct mysql_connection, 1); + conn->pool = pool; + + conn->refcount = 1; + + conn->config_path = p_strdup(pool, config_path); + conn->set = default_mysql_settings; + settings_read(config_path, parse_setting, conn); + + (void)mysql_conn_open(conn); + + conn->next = mysql_connections; + mysql_connections = conn; + return conn; +} + +void db_mysql_unref(struct mysql_connection *conn) +{ + if (--conn->refcount > 0) + return; + + mysql_conn_close(conn); + pool_unref(conn->pool); +} + +#endif diff -u -r --new-file work/dovecot-0.99.10/src/auth/db-mysql.h work.patched/dovecot-0.99.10/src/auth/db-mysql.h --- work/dovecot-0.99.10/src/auth/db-mysql.h Wed Dec 31 16:00:00 1969 +++ work.patched/dovecot-0.99.10/src/auth/db-mysql.h Tue Sep 30 12:24:00 2003 @@ -0,0 +1,51 @@ +#ifndef __DB_MYSQL_H +#define __DB_MYSQL_H + +#include + +struct mysql_connection; +struct mysql_request; + +typedef void mysql_query_callback_t(struct mysql_connection *conn, + struct mysql_request *request, + MYSQL_RES *res); + +struct mysql_settings { + const char *db_host; + const char *db_port; + const char *db_unix_socket; + const char *db; + const char *db_user; + const char *db_passwd; + const char *db_client_flags; + const char *password_query; + const char *user_query; + const char *default_pass_scheme; +}; + +struct mysql_connection { + struct mysql_connection *next; + + pool_t pool; + int refcount; + + char *config_path; + struct mysql_settings set; + + MYSQL *mysql; + + unsigned int connected:1; +}; + +struct mysql_request { + mysql_query_callback_t *callback; + void *context; +}; + +void db_mysql_query(struct mysql_connection *conn, const char *query, + struct mysql_request *request); + +struct mysql_connection *db_mysql_init(const char *config_path); +void db_mysql_unref(struct mysql_connection *conn); + +#endif diff -u -r --new-file work/dovecot-0.99.10/src/auth/master-connection.c work.patched/dovecot-0.99.10/src/auth/master-connection.c --- work/dovecot-0.99.10/src/auth/master-connection.c Mon May 26 08:27:13 2003 +++ work.patched/dovecot-0.99.10/src/auth/master-connection.c Tue Sep 30 12:24:00 2003 @@ -55,7 +55,7 @@ reply.virtual_user_idx = reply_add(buf, user->virtual_user); reply.mail_idx = reply_add(buf, user->mail); - p = strstr(user->home, "/./"); + p = user->home ? strstr(user->home, "/./") : NULL; if (p == NULL) { reply.home_idx = reply_add(buf, user->home); reply.chroot_idx = reply_add(buf, NULL); diff -u -r --new-file work/dovecot-0.99.10/src/auth/passdb-mysql.c work.patched/dovecot-0.99.10/src/auth/passdb-mysql.c --- work/dovecot-0.99.10/src/auth/passdb-mysql.c Wed Dec 31 16:00:00 1969 +++ work.patched/dovecot-0.99.10/src/auth/passdb-mysql.c Tue Sep 30 12:24:00 2003 @@ -0,0 +1,171 @@ +/* Copyright (C) 2003 Alex Howansky, Timo Sirainen */ + +#include "config.h" +#undef HAVE_CONFIG_H + +#ifdef PASSDB_MYSQL + +#include "common.h" +#include "str.h" +#include "strescape.h" +#include "var-expand.h" +#include "password-scheme.h" +#include "db-mysql.h" +#include "passdb.h" + +#include +#include +#include + +struct passdb_mysql_connection { + struct mysql_connection *conn; +}; + +struct passdb_mysql_request { + struct mysql_request request; + + enum passdb_credentials credentials; + union { + verify_plain_callback_t *verify_plain; + lookup_credentials_callback_t *lookup_credentials; + } callback; + + char password[1]; +}; + +static struct passdb_mysql_connection *passdb_mysql_conn; + +static void mysql_handle_request(struct mysql_connection *conn, + struct mysql_request *request, MYSQL_RES *res) +{ + struct passdb_mysql_request *mysql_request = + (struct passdb_mysql_request *) request; + struct auth_request *auth_request = request->context; + const char *user, *password, *scheme; + int ret = 0; + + user = auth_request->user; + password = NULL; + + if (res != NULL) { + if (mysql_num_rows(res) == 0) { + if (verbose) + i_info("mysql(%s): Unknown user", user); + } else if (mysql_num_rows(res) > 1) { + i_error("mysql(%s): Multiple matches for user", user); + } else if (mysql_num_fields(res) != 1) { + i_error("mysql(%s): Password query returned " + "more than one field", user); + } else { + MYSQL_ROW row; + + row = mysql_fetch_row(res); + if (row) + password = t_strdup(row[0]); + } + } + + scheme = password_get_scheme(&password); + if (scheme == NULL) { + scheme = conn->set.default_pass_scheme; + i_assert(scheme != NULL); + } + + if (mysql_request->credentials != -1) { + passdb_handle_credentials(mysql_request->credentials, + user, password, scheme, + mysql_request->callback.lookup_credentials, + auth_request); + return; + } + + /* verify plain */ + if (password == NULL) { + mysql_request->callback.verify_plain(PASSDB_RESULT_USER_UNKNOWN, + auth_request); + return; + } + + ret = password_verify(mysql_request->password, password, + scheme, user); + if (ret < 0) + i_error("mysql(%s): Unknown password scheme %s", user, scheme); + else if (ret == 0) { + if (verbose) + i_info("mysql(%s): Password mismatch", user); + } + + mysql_request->callback.verify_plain(ret > 0 ? PASSDB_RESULT_OK : + PASSDB_RESULT_PASSWORD_MISMATCH, + auth_request); +} + +static void mysql_lookup_pass(struct auth_request *auth_request, + struct mysql_request *mysql_request) +{ + struct mysql_connection *conn = passdb_mysql_conn->conn; + const char *query; + string_t *str; + + str = t_str_new(512); + var_expand(str, conn->set.password_query, + str_escape(auth_request->user), NULL); + query = str_c(str); + + mysql_request->callback = mysql_handle_request; + mysql_request->context = auth_request; + + db_mysql_query(conn, query, mysql_request); +} + +static void +mysql_verify_plain(struct auth_request *request, const char *password, + verify_plain_callback_t *callback) +{ + struct passdb_mysql_request *mysql_request; + + mysql_request = i_malloc(sizeof(struct passdb_mysql_request) + + strlen(password)); + mysql_request->credentials = -1; + mysql_request->callback.verify_plain = callback; + strcpy(mysql_request->password, password); + + mysql_lookup_pass(request, &mysql_request->request); +} + +static void mysql_lookup_credentials(struct auth_request *request, + enum passdb_credentials credentials, + lookup_credentials_callback_t *callback) +{ + struct passdb_mysql_request *mysql_request; + + mysql_request = i_new(struct passdb_mysql_request, 1); + mysql_request->credentials = credentials; + mysql_request->callback.lookup_credentials = callback; + + mysql_lookup_pass(request, &mysql_request->request); +} + +static void passdb_mysql_init(const char *args) +{ + struct mysql_connection *conn; + + passdb_mysql_conn = i_new(struct passdb_mysql_connection, 1); + passdb_mysql_conn->conn = conn = db_mysql_init(args); +} + +static void passdb_mysql_deinit(void) +{ + db_mysql_unref(passdb_mysql_conn->conn); + i_free(passdb_mysql_conn); +} + +struct passdb_module passdb_mysql = { + passdb_mysql_init, + passdb_mysql_deinit, + + mysql_verify_plain, + mysql_lookup_credentials +}; + +#endif diff -u -r --new-file work/dovecot-0.99.10/src/auth/passdb.c work.patched/dovecot-0.99.10/src/auth/passdb.c --- work/dovecot-0.99.10/src/auth/passdb.c Sun May 18 05:26:28 2003 +++ work.patched/dovecot-0.99.10/src/auth/passdb.c Tue Sep 30 12:24:00 2003 @@ -110,6 +110,10 @@ if (strcasecmp(name, "pgsql") == 0) passdb = &passdb_pgsql; #endif +#ifdef PASSDB_MYSQL + if (strcasecmp(name, "mysql") == 0) + passdb = &passdb_mysql; +#endif #ifdef HAVE_MODULES passdb_module = passdb != NULL ? NULL : auth_module_open(name); if (passdb_module != NULL) { diff -u -r --new-file work/dovecot-0.99.10/src/auth/passdb.h work.patched/dovecot-0.99.10/src/auth/passdb.h --- work/dovecot-0.99.10/src/auth/passdb.h Thu Mar 20 07:46:33 2003 +++ work.patched/dovecot-0.99.10/src/auth/passdb.h Tue Sep 30 12:24:00 2003 @@ -58,6 +58,7 @@ extern struct passdb_module passdb_vpopmail; extern struct passdb_module passdb_ldap; extern struct passdb_module passdb_pgsql; +extern struct passdb_module passdb_mysql; void passdb_init(void); void passdb_deinit(void); diff -u -r --new-file work/dovecot-0.99.10/src/auth/userdb-mysql.c work.patched/dovecot-0.99.10/src/auth/userdb-mysql.c --- work/dovecot-0.99.10/src/auth/userdb-mysql.c Wed Dec 31 16:00:00 1969 +++ work.patched/dovecot-0.99.10/src/auth/userdb-mysql.c Tue Sep 30 12:24:00 2003 @@ -0,0 +1,160 @@ +/* Copyright (C) 2003 Alex Howansky, Timo Sirainen */ + +#include "config.h" +#undef HAVE_CONFIG_H + +#ifdef USERDB_MYSQL + +#include "common.h" +#include "str.h" +#include "strescape.h" +#include "var-expand.h" +#include "db-mysql.h" +#include "userdb.h" + +#include +#include +#include + +struct userdb_mysql_connection { + struct mysql_connection *conn; +}; + +struct userdb_mysql_request { + struct mysql_request request; + userdb_callback_t *userdb_callback; + + char username[1]; /* variable width */ +}; + +static struct userdb_mysql_connection *userdb_mysql_conn; + +static int is_result_valid(MYSQL_RES *res) +{ + int i, n_fields, found; + MYSQL_FIELD *fields; + + if (res == NULL) { + i_error("MYSQL: Query failed"); + return FALSE; + } + + if (mysql_num_rows(res) == 0) { + if (verbose) + i_error("MYSQL: Authenticated user not found"); + return FALSE; + } + + n_fields = mysql_num_fields(res); + fields = mysql_fetch_fields(res); + + /* Make sure the 'uid' field exists. */ + for (found = 0, i = 0; i < n_fields; i++) + if (strcmp("uid", fields[i].name) == 0) { + found = 1; + break; + } + + if (!found) { + i_error("MYSQL: User query did not return 'uid' field"); + return FALSE; + } + + /* Make sure the 'gid' field exists. */ + for (found = 0, i = 0; i < n_fields; i++) + if (strcmp("gid", fields[i].name) == 0) { + found = 1; + break; + } + + if (!found) { + i_error("MYSQL: User query did not return 'gid' field"); + return FALSE; + } + + return TRUE; +} + +static const char *my_get_str(MYSQL_RES *res, MYSQL_ROW row, const char *field) +{ + int i, n_fields; + unsigned long *lengths; + MYSQL_FIELD *fields; + + n_fields = mysql_num_fields(res); + lengths = mysql_fetch_lengths(res); + fields = mysql_fetch_fields(res); + for (i = 0; i < n_fields; i++) + if (strcmp(field, fields[i].name) == 0) + return (const char *) lengths[i] == 0 ? + NULL : t_strdup(row[i]); + + return NULL; +} + +static void mysql_handle_request(struct mysql_connection *conn __attr_unused__, + struct mysql_request *request, MYSQL_RES *res) +{ + struct userdb_mysql_request *urequest = + (struct userdb_mysql_request *) request; + struct user_data user; + MYSQL_ROW row; + + if (res != NULL && is_result_valid(res) && + (row = mysql_fetch_row(res))) { + memset(&user, 0, sizeof(user)); + user.virtual_user = urequest->username; + user.system_user = my_get_str(res, row, "system_user"); + user.home = my_get_str(res, row, "home"); + user.mail = my_get_str(res, row, "mail"); + user.uid = atoi(my_get_str(res, row, "uid")); /* XXX leak */ + user.gid = atoi(my_get_str(res, row, "gid")); /* XXX leak */ + urequest->userdb_callback(&user, request->context); + } else { + urequest->userdb_callback(NULL, request->context); + } +} + +static void userdb_mysql_lookup(const char *user, userdb_callback_t *callback, + void *context) +{ + struct mysql_connection *conn = userdb_mysql_conn->conn; + struct userdb_mysql_request *request; + const char *query; + string_t *str; + + str = t_str_new(512); + var_expand(str, conn->set.user_query, str_escape(user), NULL); + query = str_c(str); + + request = i_malloc(sizeof(struct userdb_mysql_request) + strlen(user)); + request->request.callback = mysql_handle_request; + request->request.context = context; + request->userdb_callback = callback; + strcpy(request->username, user); + + db_mysql_query(conn, query, &request->request); +} + +static void userdb_mysql_init(const char *args) +{ + struct mysql_connection *conn; + + userdb_mysql_conn = i_new(struct userdb_mysql_connection, 1); + userdb_mysql_conn->conn = conn = db_mysql_init(args); +} + +static void userdb_mysql_deinit(void) +{ + db_mysql_unref(userdb_mysql_conn->conn); + i_free(userdb_mysql_conn); +} + +struct userdb_module userdb_mysql = { + userdb_mysql_init, + userdb_mysql_deinit, + + userdb_mysql_lookup +}; + +#endif diff -u -r --new-file work/dovecot-0.99.10/src/auth/userdb.c work.patched/dovecot-0.99.10/src/auth/userdb.c --- work/dovecot-0.99.10/src/auth/userdb.c Sun May 18 05:26:28 2003 +++ work.patched/dovecot-0.99.10/src/auth/userdb.c Tue Sep 30 12:24:00 2003 @@ -49,6 +49,10 @@ if (strcasecmp(name, "pgsql") == 0) userdb = &userdb_pgsql; #endif +#ifdef USERDB_MYSQL + if (strcasecmp(name, "mysql") == 0) + userdb = &userdb_mysql; +#endif #ifdef HAVE_MODULES userdb_module = userdb != NULL ? NULL : auth_module_open(name); if (userdb_module != NULL) { diff -u -r --new-file work/dovecot-0.99.10/src/auth/userdb.h work.patched/dovecot-0.99.10/src/auth/userdb.h --- work/dovecot-0.99.10/src/auth/userdb.h Sun May 18 05:26:28 2003 +++ work.patched/dovecot-0.99.10/src/auth/userdb.h Tue Sep 30 12:24:00 2003 @@ -29,6 +29,7 @@ extern struct userdb_module userdb_vpopmail; extern struct userdb_module userdb_ldap; extern struct userdb_module userdb_pgsql; +extern struct userdb_module userdb_mysql; void userdb_init(void); void userdb_deinit(void); --------------090209080508010809040904-- From mreimer@vpop.net Fri Oct 3 20:06:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1F0D32385D; Fri, 3 Oct 2003 20:06:27 +0300 (EEST) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 235C4238B6 for ; Fri, 3 Oct 2003 20:06:14 +0300 (EEST) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 4E6E23A6712 for ; Fri, 3 Oct 2003 10:06:11 -0700 (PDT) Message-ID: <3F7DAC9B.5000306@vpop.net> Date: Fri, 03 Oct 2003 12:06:35 -0500 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.4) Gecko/20030701 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] PATCH: mysql authentication Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 17:06:27 -0000 X-UID: 1712 Status: O Content-Length: 3935 Timo Sirainen wrote: > > On Saturday, Aug 30, 2003, at 02:16 Europe/Helsinki, Matthew Reimer > wrote: > >> Here's a patch that implements mysql authentication. I started with >> the pgsql files and tweaked them to use mysql instead. It works for >> me, but there might be a couple of memory leaks. I'm welcome to >> suggestions on how to clean it up so it can be committed. > > Thank you. I'll look at it more closely later, but it looked fine with > a quick look. > > It would be nice to be able to use asynchronous database lookups. I'm > not sure how easy that is with MySQL, of if it's possible at all. With > PostgreSQL it looked annoyingly difficult so I haven't done it yet. > > Synchronous calls anyway mean that there's only one SQL statement > executing at a time and that may slow down the authentication if > there's a _lot_ of users logging in constantly. If that's a problem, > growing auth_count should help at least some. It specifies the number > of auth processes that respond to the authentication queries. > > And some day I'll probably move the sql stuff into separate lib-sql > and have only a single sql authenticator.. I'm not sure what you mean by asynchronous database lookups. Do you mean you'd like to be able to fire off a db lookup and then come back later to get the results? Like blocking vs non-blocking? I've pasted what may be relevant mysql documentation below in case it might help answer the question. N db handles could be allocated, giving us N simultaneous lookups. Matt --- From http://www.mysql.com/doc/en/C_API_function_overview.html: There are two ways for a client to process result sets. One way is to retrieve the entire result set all at once by calling mysql_store_result(). This function acquires from the server all the rows returned by the query and stores them in the client. The second way is for the client to initiate a row-by-row result set retrieval by calling mysql_use_result(). This function initialises the retrieval, but does not actually get any rows from the server. In both cases, you access rows by calling mysql_fetch_row(). With mysql_store_result(), mysql_fetch_row() accesses rows that have already been fetched from the server. With mysql_use_result(), mysql_fetch_row() actually retrieves the row from the server. Information about the size of the data in each row is available by calling mysql_fetch_lengths(). After you are done with a result set, call mysql_free_result() to free the memory used for it. The two retrieval mechanisms are complementary. Client programs should choose the approach that is most appropriate for their requirements. In practice, clients tend to use mysql_store_result() more commonly. An advantage of mysql_store_result() is that because the rows have all been fetched to the client, you not only can access rows sequentially, you can move back and forth in the result set using mysql_data_seek() or mysql_row_seek() to change the current row position within the result set. You can also find out how many rows there are by calling mysql_num_rows(). On the other hand, the memory requirements for mysql_store_result() may be very high for large result sets and you are more likely to encounter out-of-memory conditions. An advantage of mysql_use_result() is that the client requires less memory for the result set because it maintains only one row at a time (and because there is less allocation overhead, mysql_use_result() can be faster). Disadvantages are that you must process each row quickly to avoid tying up the server, you don't have random access to rows within the result set (you can only access rows sequentially), and you don't know how many rows are in the result set until you have retrieved them all. Furthermore, you must retrieve all the rows even if you determine in mid-retrieval that you've found the information you were looking for. --- end From tss@iki.fi Fri Oct 3 20:11:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E5B2C23896; Fri, 3 Oct 2003 20:11:32 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3FAEC2385D for ; Fri, 3 Oct 2003 20:11:20 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 0F0B35EC117D for ; Fri, 3 Oct 2003 20:11:20 +0300 (EEST) Subject: Re: [Dovecot] PATCH: mysql authentication From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F7DA9D8.2030409@vpop.net> References: <3F7DA9D8.2030409@vpop.net> Content-Type: text/plain Message-Id: <1065201079.32106.134.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 03 Oct 2003 20:11:19 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 17:11:33 -0000 X-UID: 1713 Status: O On Fri, 2003-10-03 at 19:54, Matthew Reimer wrote: > Here's another patch. This one isn't much different from the last patch, > except it tries a little harder to make sure that the required fields > are returned by the query (like the pgsql module does). Thanks. I'll look it again later :) > One question about how t_strdup works. How and who should memory > returned by t_strdup be freed? My patch has a function my_get_str() > which returns the value of t_strdup, and then I do this: > > user.uid = atoi(my_get_str(res, row, "uid")); /* XXX leak */ > user.gid = atoi(my_get_str(res, row, "gid")); /* XXX leak */ > > Will this result in a memory leak? No. Memory allocated by t_*() functions are freed "later". There's first t_push(), then you allocate memory, then t_pop() frees it all. So they never leak memory, but they could allocate more memory than necessary if called inside loop. That can be fixed by adding t_push/t_pop calls there. From tim@gem.win.co.nz Fri Oct 3 20:14:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8709B238B6; Fri, 3 Oct 2003 20:14:16 +0300 (EEST) Received: from gem.win.co.nz (gem.win.co.nz [210.55.105.242]) by danu.procontrol.fi (Postfix) with ESMTP id E921123896 for ; Fri, 3 Oct 2003 20:13:41 +0300 (EEST) Received: from localhost (tim@localhost) by gem.win.co.nz (8.9.3p2/8.9.3) with ESMTP id FAA11722; Sat, 4 Oct 2003 05:15:52 +1200 Date: Sat, 4 Oct 2003 05:15:52 +1200 (NZST) From: Tim Miller To: Timo Sirainen Subject: Re: [Dovecot] another Dovecot problem In-Reply-To: <1065193331.32105.115.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 17:14:16 -0000 X-UID: 1714 Status: O Content-Length: 1355 On Fri, 3 Oct 2003, Timo Sirainen wrote: > > -- However, once the server is installed, it does not appear to work > > correctly. I can login, but when I try to list my folders or select any > > folder (one that exists or one that doesn't exist) the connection times > > out and the following entry is written to the log file: > > > > dovecot: Oct 03 05:38:56 Error: login: received another "not listening" > > notification (if you can't login at all, see src/lib/fdpass.c) > > > > I tracked this message down in the source, but didn't see any obvious way > > to trace back the problem. > > Linux 2.0.x kernels requires changes in the source to work. I didn't > think anyone would really bother trying Dovecot with 2.0 kernels anymore > so there was only a comment about it there. Apply the included patch and > compile with -DLINUX20 and it should work. Hi Timo, I can't seem to apply your patch -- doing patch -p1 < fdpass.patch tells me it can't find input file on line 15. Looking at the diff, I think your line numbers are off (at least they don't seem to quite match the ones in my fdpass.c) -- I've tried this both on the dovecot-0.99.10 available on the web site and the version checked out of CVS. I could hack the source myself, but I want to make sure I don't break something else. Thanks again for all your help with this. Best, Tim From tss@iki.fi Fri Oct 3 20:23:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A146723896; Fri, 3 Oct 2003 20:23:26 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EC10C2385D for ; Fri, 3 Oct 2003 20:23:13 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A96125EC117D for ; Fri, 3 Oct 2003 20:23:10 +0300 (EEST) Subject: Re: [Dovecot] another Dovecot problem From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1065201790.32106.137.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Fri, 03 Oct 2003 20:23:10 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 17:23:26 -0000 X-UID: 1715 Status: O On Fri, 2003-10-03 at 20:15, Tim Miller wrote: > I can't seem to apply your patch -- doing patch -p1 < fdpass.patch tells > me it can't find input file on line 15. It'd be patch -p0 this time.. :) I'll try to keep the -p0 format from now on. > Looking at the diff, I think your > line numbers are off (at least they don't seem to quite match the ones in > my fdpass.c) That itself doesn't really matter. patch is able to fix the line numbers. > -- I've tried this both on the dovecot-0.99.10 available on > the web site and the version checked out of CVS. The patch is already committed to CVS. From mreimer@vpop.net Fri Oct 3 21:15:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F1ED8238B6; Fri, 3 Oct 2003 21:15:24 +0300 (EEST) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 5BC5623887 for ; Fri, 3 Oct 2003 21:15:07 +0300 (EEST) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id DB70A3A65E9 for ; Fri, 3 Oct 2003 11:15:00 -0700 (PDT) Message-ID: <3F7DBCBC.5000706@vpop.net> Date: Fri, 03 Oct 2003 13:15:24 -0500 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.4) Gecko/20030701 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] PATCH: mysql authentication References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 18:15:25 -0000 X-UID: 1716 Status: O Timo Sirainen wrote: > On Fri, 2003-10-03 at 19:54, Matthew Reimer wrote: >>One question about how t_strdup works. How and who should memory >>returned by t_strdup be freed? My patch has a function my_get_str() >>which returns the value of t_strdup, and then I do this: >> >> user.uid = atoi(my_get_str(res, row, "uid")); /* XXX leak */ >> user.gid = atoi(my_get_str(res, row, "gid")); /* XXX leak */ >> >>Will this result in a memory leak? > > > No. > > Memory allocated by t_*() functions are freed "later". There's first > t_push(), then you allocate memory, then t_pop() frees it all. So they > never leak memory, but they could allocate more memory than necessary if > called inside loop. That can be fixed by adding t_push/t_pop calls > there. Nice! Thanks for the answer Timo. Matt From mreimer@vpop.net Fri Oct 3 21:17:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 67A5523896; Fri, 3 Oct 2003 21:17:28 +0300 (EEST) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id DAD5123887 for ; Fri, 3 Oct 2003 21:17:13 +0300 (EEST) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 0CB693A66FD for ; Fri, 3 Oct 2003 11:17:11 -0700 (PDT) Message-ID: <3F7DBD3F.6010401@vpop.net> Date: Fri, 03 Oct 2003 13:17:35 -0500 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.4) Gecko/20030701 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] PATCH: mysql authentication References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 18:17:28 -0000 X-UID: 1717 Status: O > On Fri, 2003-10-03 at 19:54, Matthew Reimer wrote: > >Here's another patch. This one isn't much different from the last patch, >except it tries a little harder to make sure that the required fields >are returned by the query (like the pgsql module does). BTW, the patch lacks configure magic to detect mysql includes and libs, and to define USERDB_MYSQL and PASSDB_MYSQL in config.h. Matt From tim@gem.win.co.nz Fri Oct 3 22:50:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7000F23896; Fri, 3 Oct 2003 22:50:42 +0300 (EEST) Received: from gem.win.co.nz (gem.win.co.nz [210.55.105.242]) by danu.procontrol.fi (Postfix) with ESMTP id 2D51D2385D for ; Fri, 3 Oct 2003 22:50:28 +0300 (EEST) Received: from localhost (tim@localhost) by gem.win.co.nz (8.9.3p2/8.9.3) with ESMTP id HAA21172; Sat, 4 Oct 2003 07:52:43 +1200 Date: Sat, 4 Oct 2003 07:52:42 +1200 (NZST) From: Tim Miller To: Timo Sirainen Subject: Re: [Dovecot] another Dovecot problem In-Reply-To: <1065201790.32106.137.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 19:50:42 -0000 X-UID: 1718 Status: O Content-Length: 1287 On Fri, 3 Oct 2003, Timo Sirainen wrote: > On Fri, 2003-10-03 at 20:15, Tim Miller wrote: > > I can't seem to apply your patch -- doing patch -p1 < fdpass.patch tells > > me it can't find input file on line 15. > > It'd be patch -p0 this time.. :) I'll try to keep the -p0 format from > now on. Thanks -- I feel really silly now. Unfortunately, something still seems to be amiss. I compile dovecot with the patch, but the server refuses to start with: dovecot: Oct 04 07:37:01 Info: Dovecot starting up dovecot: Oct 04 07:37:03 Error: login: Authentication process 0 doesn't exist dovecot: Oct 04 07:37:03 Fatal: fcntl(F_GETFD, 0) failed: Bad file descriptor imap-login: Oct 04 07:37:03 Fatal: Master sent reply with unknown tag 0 imap-login: Oct 04 07:37:03 Warning: Error sending handshake to auth process: Broken pipe imap-login: Oct 04 07:37:03 Fatal: fd_send(-1) failed: Broken pipe This is from the Website version with the patch applied. I doubt it would help, but I'd like to try the CVS version (with all the patches), but it doesn't appear to have a configure or install.sh script when I check it out of the CVS. Shall I use these scripts from the released version, or is there another way to build the CVS version? Thanks again for all the help with this. Best, Tim From esj@harvee.org Sat Oct 4 01:30:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BBC0423896; Sat, 4 Oct 2003 01:30:20 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id C83D523887 for ; Sat, 4 Oct 2003 01:29:45 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h93MTghZ007187 for ; Fri, 3 Oct 2003 18:29:43 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Fri, 3 Oct 2003 18:29:38 -0400 Message-ID: <3F7DF7C5.9000109@harvee.org> Date: Fri, 03 Oct 2003 18:27:17 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] mailbox sorting issue References: <20030925090003.CAF68238D2@danu.procontrol.fi> <1065198566.32105.127.camel@hurina> In-Reply-To: <1065198566.32105.127.camel@hurina> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:031003:dovecot@procontrol.fi:66b9dd460241abb1 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 22:30:21 -0000 X-UID: 1719 Status: O Timo Sirainen explained: > Maybe I'll just kludge the mbox support working again to get 0.99.11 out > :) Timo's new mbox motto: Use brute force and bloody ignorance for something as ugly as mbox ;-) --- eric From bernard@blackham.com.au Sat Oct 4 04:27:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8722823896; Sat, 4 Oct 2003 04:27:49 +0300 (EEST) Received: from dagobah.blackham.com.au (unknown [202.72.159.76]) by danu.procontrol.fi (Postfix) with ESMTP id AD7512385D for ; Sat, 4 Oct 2003 04:27:14 +0300 (EEST) Received: from amidala.home ([192.168.0.10] helo=localhost ident=dagobah) by dagobah.blackham.com.au with esmtp (Exim 3.35 #1 (Debian)) id 1A5bBj-0004EK-00 for ; Sat, 04 Oct 2003 09:26:27 +0800 Received: from b by localhost with local (Exim 3.36 #1 (Debian)) id 1A5bCG-0001SP-00 for ; Sat, 04 Oct 2003 09:27:00 +0800 Date: Sat, 4 Oct 2003 09:27:00 +0800 From: Bernard Blackham To: dovecot@procontrol.fi Subject: Re: [Dovecot] Patches Message-ID: <20031004012700.GD1707@amidala> References: <20031003042713.GA25044@typhaon.ucs.uwa.edu.au> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="6c2NcOVqGQ03X4Wi" Content-Disposition: inline In-Reply-To: <20031003042713.GA25044@typhaon.ucs.uwa.edu.au> Organization: Dagobah Systems User-Agent: Mutt/1.5.4i Sender: Bernard Blackham X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Oct 2003 01:27:49 -0000 X-UID: 1720 Status: O Content-Length: 3166 --6c2NcOVqGQ03X4Wi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Oct 03, 2003 at 12:27:13PM +0800, Grahame Bowland wrote: > > Any other patches thatI ought to add. Or better yet, will there be a > > 0.99.11 soon? > > The only other patch we're running is the one by Bernard Blackham > (it's in the list archives) so that "Deleted" and "Draft" messages > are handled properly in mbox files. It's a fairly important patch, > and it'd be really great if it was in the Debian package. Timo clarified that the patch was only necessary for mboxes, not maildirs so part of it wasn't applied. Attached is the correct patch for mboxes only. Without it, users will get very confused very quickly so it'd be good to see it in the Debian package. :) For new installations, it's fine, but if you upgrade to a version with this patch, users will discover all their Draft messages as Deleted and all their Deleted messages as Draft. I have a small utility to reverse these flags in an mbox if anybody is interested. Thanks, Bernard. -- Bernard Blackham bernard at blackham dot com dot au --6c2NcOVqGQ03X4Wi Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="dovecot-DT.patch" diff -ruN dovecot-0.99.10/src/lib-index/mbox/mbox-index.c dovecot-0.99.10.brb/src/lib-index/mbox/mbox-index.c --- dovecot-0.99.10/src/lib-index/mbox/mbox-index.c Mon May 19 15:26:46 2003 +++ dovecot-0.99.10.brb/src/lib-index/mbox/mbox-index.c Sat Sep 27 13:19:41 2003 @@ -157,13 +157,13 @@ case 'F': flags |= MAIL_FLAGGED; break; - case 'D': + case 'T': flags |= MAIL_DRAFT; break; case 'R': flags |= MAIL_SEEN; break; - case 'T': + case 'D': flags |= MAIL_DELETED; break; } diff -ruN dovecot-0.99.10/src/lib-index/mbox/mbox-rewrite.c dovecot-0.99.10.brb/src/lib-index/mbox/mbox-rewrite.c --- dovecot-0.99.10/src/lib-index/mbox/mbox-rewrite.c Sun Jun 15 11:43:05 2003 +++ dovecot-0.99.10.brb/src/lib-index/mbox/mbox-rewrite.c Sat Sep 27 13:19:54 2003 @@ -210,9 +210,9 @@ str = t_strconcat("X-Status: ", (ctx->msg_flags & MAIL_ANSWERED) ? "A" : "", - (ctx->msg_flags & MAIL_DRAFT) ? "D" : "", + (ctx->msg_flags & MAIL_DELETED) ? "D" : "", (ctx->msg_flags & MAIL_FLAGGED) ? "F" : "", - (ctx->msg_flags & MAIL_DELETED) ? "T" : "", + (ctx->msg_flags & MAIL_DRAFT) ? "T" : "", x_status, NULL); if (o_stream_send_str(ctx->output, str) < 0) diff -ruN dovecot-0.99.10/src/lib-storage/index/mbox/mbox-save.c dovecot-0.99.10.brb/src/lib-storage/index/mbox/mbox-save.c --- dovecot-0.99.10/src/lib-storage/index/mbox/mbox-save.c Sun Jun 15 11:43:05 2003 +++ dovecot-0.99.10.brb/src/lib-storage/index/mbox/mbox-save.c Sat Sep 27 13:20:28 2003 @@ -131,11 +131,11 @@ if ((flags & MAIL_ANSWERED) != 0) str_append_c(str, 'A'); - if ((flags & MAIL_DRAFT) != 0) + if ((flags & MAIL_DELETED) != 0) str_append_c(str, 'D'); if ((flags & MAIL_FLAGGED) != 0) str_append_c(str, 'F'); - if ((flags & MAIL_DELETED) != 0) + if ((flags & MAIL_DRAFT) != 0) str_append_c(str, 'T'); str_append_c(str, '\n'); } --6c2NcOVqGQ03X4Wi-- From miquels@cistron.net Sat Oct 4 14:55:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A379B238C6; Sat, 4 Oct 2003 14:55:37 +0300 (EEST) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by danu.procontrol.fi (Postfix) with ESMTP id 9FB27238B6 for ; Sat, 4 Oct 2003 14:55:05 +0300 (EEST) Received: from a80-126-193-215.adsl.xs4all.nl ([80.126.193.215] helo=drinkel.cistron.nl) by smtp.cistron-office.nl with asmtp (Exim 3.35 #1 (Debian)) id 1A5l02-0000KB-00 for ; Sat, 04 Oct 2003 13:55:02 +0200 Date: Sat, 4 Oct 2003 13:55:01 +0200 From: Miquel van Smoorenburg To: dovecot@procontrol.fi Subject: mbox/maildir/directories [was: Re: [Dovecot] still getting weird .{inbox} folder creations with latest -test7] Message-ID: <20031004115501.GA31739@drinkel.cistron.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Mailer: Balsa 2.0.14 Lines: 26 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dovecot@procontrol.fi List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Oct 2003 11:55:38 -0000 X-UID: 1721 Status: O Content-Length: 1062 This is a bit of a late reply, but still: On Thu, 2003-09-04 at 15:06, Timo Sirainen wrote: > CVS has been optimized to assume all files beginning with a dot (except > .subscriptions currently) are mailboxes. This is faster since it doesn't > have to stat() each file to figure out if it's a directory or not. > Perhaps that should be optional. New Linux systems (maybe others too) > wouldn't actually even need the stat().. > > I'll probably some day also add support for dotless directory-structured > mailbox locations, but it's not really high priority. Well, on our systems the mailbox is in /var/mail in maildir format, and in ~/Mail users have split up their folders in subdirs, in mixed maildir and mbox formats. So if dovecot could support both dotless directory-structured mailbox locations and maildir/mbox mix-n-match in the same tree, that would be excellent for us. Mbox is a better format for archiving. Now if Dovecot could also access (read-only ofcourse) compressed mbox archives ... Food for thought. Just put it on the wishlist ;) Mike. From t1lt@bk.ru Sat Oct 4 14:06:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 56DDE238B6; Sat, 4 Oct 2003 14:06:51 +0300 (EEST) Received: from sun.com (port-212-202-39-248.reverse.qsc.de [212.202.39.248]) by danu.procontrol.fi (Postfix) with SMTP id 95FF323896 for ; Sat, 4 Oct 2003 14:06:18 +0300 (EEST) Received: (qmail 2706 invoked by uid 1000); 4 Oct 2003 11:10:25 -0000 Date: Sat, 4 Oct 2003 13:10:25 +0200 From: Sam Verner To: dovecot@procontrol.fi Subject: Re: [Dovecot] Why does dovecot confuse mutt? Message-ID: <20031004111025.GA16117@woom.net> Mail-Followup-To: Sam Verner , dovecot@procontrol.fi References: <20030723225217.73dde8ac.amyzing@talsever.com> <20031001005112.GA30133@woom.net> <1065192003.32099.91.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1065192003.32099.91.camel@hurina> X-Mailman-Approved-At: Sat, 04 Oct 2003 21:13:37 +0300 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Oct 2003 11:06:51 -0000 X-UID: 1722 Status: O On Fri, Oct 03, 2003 at 05:40:03PM +0300, Timo Sirainen wrote: > On Wed, 2003-10-01 at 03:51, Samuel Verner wrote: > > > I think this is because Dovecot doesn't send \NoChildren flag for > > > mailboxes. I'm not sure when that got lost.. Maybe it's time to rewrite > > > the mailbox listing code once again. > > > > Is this fixed in latest dovecot? > > It's fixed in CVS, but I don't think it's in 0.99.10.. Thanks. I'll wait for next release then. :-) hand From bert@rosanneke.com Sun Oct 5 13:01:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A427E238B6; Sun, 5 Oct 2003 13:01:05 +0300 (EEST) Received: from smtp06.wxs.nl (smtp06.wxs.nl [195.121.6.58]) by danu.procontrol.fi (Postfix) with ESMTP id 0745223896 for ; Sun, 5 Oct 2003 13:00:27 +0300 (EEST) Received: from rosanneke.com (ip3e83fde6.speed.planet.nl [62.131.253.230]) by smtp06.wxs.nl (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003)) with ESMTP id <0HMA00EZG3C4AO@smtp06.wxs.nl> for dovecot@procontrol.fi; Sun, 05 Oct 2003 11:50:29 +0200 (MEST) Date: Sun, 05 Oct 2003 11:52:56 +0200 From: Bert Koelewijn Subject: Re: [Dovecot] SSL Client Certificate Support In-reply-to: <1065192494.32105.100.camel@hurina> To: Timo Sirainen Message-id: <3F7FE9F8.8050200@rosanneke.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii; format=flowed Content-transfer-encoding: 7BIT X-Accept-Language: en-us, en User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 References: <3F7AAE4E.9010100@rosanneke.com> <1065192494.32105.100.camel@hurina> cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 10:01:05 -0000 X-UID: 1723 Status: O Timo Sirainen wrote: > I've thought about it before myself a few times. I'm not against such > patch, but I don't think I'll implement it myself anytime soon. Is there anything I can do to give this patch a higher priority? > > Doing this also worries me a bit. Wasn't the recent security hole in > OpenSSL just in the client certificate parsing? SSL cert authentication > would have to rely on OpenSSL (or GNUTLS). OpenSSL have been audited many times, by many experts. If you trust dovecot, I think you can trust OpenSSL too. From G.Ohrner@post.rwth-aachen.de Sun Oct 5 13:20:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9EE97238C6; Sun, 5 Oct 2003 13:20:13 +0300 (EEST) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.184]) by danu.procontrol.fi (Postfix) with ESMTP id 835F9238B6 for ; Sun, 5 Oct 2003 13:19:40 +0300 (EEST) Received: from [212.227.126.208] (helo=mrelayng.kundenserver.de) by moutng.kundenserver.de with esmtp (Exim 3.35 #1) id 1A65zH-0002lE-00 for dovecot@procontrol.fi; Sun, 05 Oct 2003 12:19:39 +0200 Received: from [217.187.170.109] (helo=HornBurg.CustomCDROM.de) (TLSv1:EDH-RSA-DES-CBC3-SHA:168) (Exim 3.35 #1) id 1A65zH-0002mz-00 for dovecot@procontrol.fi; Sun, 05 Oct 2003 12:19:39 +0200 Received: from unseenuniversity.scheibenwelt ([192.168.42.20] ident=cac13e3885583cad73849a8aa6533643) by HornBurg.CustomCDROM.de with esmtp (Exim 3.35 #1 (Debian)) id 1A65zD-0001OL-00 for ; Sun, 05 Oct 2003 12:19:35 +0200 Received: from localhost ([127.0.0.1] ident=91ab592e83ace09b64b322955538bc57) by UnseenUniversity.Scheibenwelt with esmtp (Exim 3.36 #1 (Debian)) id 1A65zK-0005IJ-00 for ; Sun, 05 Oct 2003 12:19:42 +0200 From: Gunter Ohrner To: dovecot@procontrol.fi Subject: Re: [Dovecot] Patches Date: Sun, 5 Oct 2003 12:19:40 +0200 User-Agent: KMail/1.5.3 References: <1065193475.32107.118.camel@hurina> In-Reply-To: <1065193475.32107.118.camel@hurina> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200310051219.41951@mail.CustomCDROM.de> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 10:20:13 -0000 X-UID: 1724 Status: O Content-Length: 1122 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am Freitag, 3. Oktober 2003 17:04 schrieb Timo Sirainen: > On Thu, 2003-10-02 at 18:48, Jaldhar H. Vyas wrote: > > Or better yet, will there be a 0.99.11 soon? > Maybe it's time for 0.99.10.1 with all the small fixes.. I'd definitely consider this to be a good idea, even if I do not depend on = it=20 if Jaldhar adds all fixes manually back to the Debian package. ;) Greetings, Gunter =2D --=20 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + PGP-verschl=FCsselte Mails bevorzugt! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Have a bit more patience with newbies. Of course some of them act dumb=20 =2D -- they're often *students*, for heaven's sake. -- (Terry=20 Pratchett, alt.fan.pratchett) +-+-+-+-+-+-+-+-+-+-+-+-+ http://www.lspace.org +-+-+-+-+-+-+-+-+-+-+-+-+ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQE/f/A80ORHvREo8l8RAqthAJ9YobQz9qY9VvEeTNylp87EvWtMUACeIGzc PYMnKckQfkLT+LY2yN0ogOQ=3D =3DM2Pr =2D----END PGP SIGNATURE----- From stefan@sels.com Sun Oct 5 13:32:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A73F4238C7; Sun, 5 Oct 2003 13:32:42 +0300 (EEST) Received: from odo.oi.o123456789.net (odo.oi.o123456789.net [217.69.77.194]) by danu.procontrol.fi (Postfix) with ESMTP id 7FD22238C6 for ; Sun, 5 Oct 2003 13:32:21 +0300 (EEST) Received: (qmail 24147 invoked from network); 5 Oct 2003 10:32:14 -0000 Received: from localhost (HELO sqmail.sels.com) ([127.0.0.1]) (envelope-sender ) by odo.oi.o123456789.net (qmail-ldap-1.03) with SMTP for ; 5 Oct 2003 10:32:14 -0000 Received: from 213.146.112.93 (SquirrelMail authenticated user stefan@sels.com) by sqmail.sels.com with HTTP; Sun, 5 Oct 2003 12:32:14 +0200 (CEST) Message-ID: <3100.213.146.112.93.1065349934.squirrel@sqmail.sels.com> In-Reply-To: <3F7FE9F8.8050200@rosanneke.com> References: <3F7AAE4E.9010100@rosanneke.com><1065192494.32105.100.camel@hurina> <3F7FE9F8.8050200@rosanneke.com> Date: Sun, 5 Oct 2003 12:32:14 +0200 (CEST) Subject: Re: [Dovecot] SSL Client Certificate Support From: "Stefan Sels" To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 10:32:42 -0000 X-UID: 1725 Status: O > Timo Sirainen wrote: >> Doing this also worries me a bit. Wasn't the recent security hole in >> OpenSSL just in the client certificate parsing? SSL cert authentication >> would have to rely on OpenSSL (or GNUTLS). > > OpenSSL have been audited many times, by many experts. If you trust > dovecot, I think you can trust OpenSSL too. this might be a bit off-topic but : -openssl might be audited by many experts, but this might apply to an version, but not the latest. -openssh is probably audited with the same affort as openssl. do you remember the bugs ? for me the conclusion is every security application which is used by a large userbase (as openssl or openssh) is audited so closely that they always find some bugs. regards, stefan From tss@iki.fi Sun Oct 5 21:07:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 49E64238C6; Sun, 5 Oct 2003 21:07:44 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 914D023887 for ; Sun, 5 Oct 2003 21:07:31 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3208B5EC1181 for ; Sun, 5 Oct 2003 21:07:31 +0300 (EEST) Subject: Re: mbox/maildir/directories [was: Re: [Dovecot] still getting weird .{inbox} folder creations with latest -test7] From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20031004115501.GA31739@drinkel.cistron.nl> References: <20031004115501.GA31739@drinkel.cistron.nl> Content-Type: text/plain Message-Id: <1065377250.19099.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sun, 05 Oct 2003 21:07:30 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 18:07:44 -0000 X-UID: 1726 Status: O On Sat, 2003-10-04 at 14:55, Miquel van Smoorenburg wrote: > Mbox is a better format for archiving. Now if Dovecot could also access > (read-only ofcourse) compressed mbox archives ... > > Food for thought. Just put it on the wishlist ;) It's actually already in wishlist. Also compressed Maildir files are in TODO :) It wouldn't be too difficult to implement, just an istream wrapper for zlib or bz2lib. From tss@iki.fi Sun Oct 5 21:19:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BE54A238CB; Sun, 5 Oct 2003 21:19:09 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9A77C23887 for ; Sun, 5 Oct 2003 21:18:56 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D02D15EC1181 for ; Sun, 5 Oct 2003 21:18:55 +0300 (EEST) Subject: Re: [Dovecot] another Dovecot problem From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1065377935.19103.13.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sun, 05 Oct 2003 21:18:55 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 18:19:10 -0000 X-UID: 1727 Status: O On Fri, 2003-10-03 at 22:52, Tim Miller wrote: > dovecot: Oct 04 07:37:03 Error: login: Authentication process 0 doesn't > exist > dovecot: Oct 04 07:37:03 Fatal: fcntl(F_GETFD, 0) failed: Bad file > descriptor Some fd_close_on_exec(0, ..) call failed. I checked them all through, I can't think of a reason why it should ever return "bad file descriptor". Maybe it's some glibc/linux 2.0 bugginess.. You could try commenting those fd_close_on_exec calls from src/master/*.c and seeing which one does it. > imap-login: Oct 04 07:37:03 Fatal: Master sent reply with unknown tag 0 Maybe related to above but can't be sure. Shouldn't really happen. > This is from the Website version with the patch applied. I doubt it would > help, but I'd like to try the CVS version (with all the patches), but it > doesn't appear to have a configure or install.sh script when I check it > out of the CVS. Shall I use these scripts from the released version, or is > there another way to build the CVS version? Run autogen.sh first. From tss@iki.fi Sun Oct 5 22:01:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 02700238CE; Sun, 5 Oct 2003 22:01:39 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D4436238C7 for ; Sun, 5 Oct 2003 22:01:06 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B08B25EC1181 for ; Sun, 5 Oct 2003 22:01:05 +0300 (EEST) Subject: Re: [Dovecot] SSL Client Certificate Support From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F7FE9F8.8050200@rosanneke.com> References: <3F7AAE4E.9010100@rosanneke.com> <1065192494.32105.100.camel@hurina> <3F7FE9F8.8050200@rosanneke.com> Content-Type: text/plain Message-Id: <1065380465.19102.56.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sun, 05 Oct 2003 22:01:05 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 19:01:39 -0000 X-UID: 1728 Status: O Content-Length: 1720 On Sun, 2003-10-05 at 12:52, Bert Koelewijn wrote: > Timo Sirainen wrote: > > I've thought about it before myself a few times. I'm not against such > > patch, but I don't think I'll implement it myself anytime soon. > Is there anything I can do to give this patch a higher priority? Well.. Personally I'd really like to get the current CVS code fully working as intended. Then there's some long standing bugs/features (eg. recent counters). Then some NFS safety problems. All those should have been fixed long ago. But it's also possible to buy features, support and whatever from Procontrol. I just don't really like that idea (well, support anyway) before 1.0 is released. Currently it's 85EUR/h if you really want it done :) > > Doing this also worries me a bit. Wasn't the recent security hole in > > OpenSSL just in the client certificate parsing? SSL cert authentication > > would have to rely on OpenSSL (or GNUTLS). > > OpenSSL have been audited many times, by many experts. If you trust > dovecot, I think you can trust OpenSSL too. Sendmail has also been audited many times by many experts and holes still keep showing up. OpenSSL sources aren't nearly as bad as sendmail, but they are pretty dirty. Auditing dirty code is very time consuming and it's too easy to overlook problems. I've thought about auditing OpenSSL a few times, but I always got tired after reading just a few files since they were full of code that looked suspicious. Also currently there's only dovecot-auth and master processes in Dovecot which have to be free of security holes to avoid pre-login security holes. That's not a lot of code. Using OpenSSL for authentication brings in tons of more code that has to be relied on. From bernard@blackham.com.au Sun Oct 5 22:43:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AB49A238D2; Sun, 5 Oct 2003 22:43:51 +0300 (EEST) Received: from dagobah.blackham.com.au (dsl-202-72-159-76.wa.westnet.com.au [202.72.159.76]) by danu.procontrol.fi (Postfix) with ESMTP id 10516238CE for ; Sun, 5 Oct 2003 22:43:19 +0300 (EEST) Received: from amidala.home ([192.168.0.10] helo=localhost ident=dagobah) by dagobah.blackham.com.au with esmtp (Exim 3.35 #1 (Debian)) id 1A6Elo-00076m-00 for ; Mon, 06 Oct 2003 03:42:20 +0800 Received: from b by localhost with local (Exim 3.36 #1 (Debian)) id 1A6EmY-0001KT-00 for ; Mon, 06 Oct 2003 03:43:06 +0800 Date: Mon, 6 Oct 2003 03:43:06 +0800 From: Bernard Blackham To: dovecot@procontrol.fi Message-ID: <20031005194306.GA5080@amidala> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Organization: Dagobah Systems User-Agent: Mutt/1.5.4i Sender: Bernard Blackham Subject: [Dovecot] those assertions X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 19:43:51 -0000 X-UID: 1729 Status: O Hi, I did a bit of digging into the assertions from mbox-rewrite.c (hdr_parsed_size.physical_size == hdr_size). Every time it happens, hdr_size is 0, while hdr_parsed_size.physical_size is non-zero (presumably the correct value). Does this help track it down? I can't manage to get hold of an mbox that causes this though. Another infrequent assertion that's popped up: file message-address.c: line 262 (message_address_write): assertion failed: (addr->domain != NULL) And one that's only ever been spotted once in the last few weeks: file imap-bodystructure.c: line 278 (part_parse_headers): assertion failed: (part->physical_pos >= input->v_offset - start_offset) I'm waiting for them to happen again to provide some more info... Regards, Bernard. -- Bernard Blackham bernard at blackham dot com dot au From tss@iki.fi Sun Oct 5 23:16:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ED71A238D2; Sun, 5 Oct 2003 23:16:09 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4B9BE238CB for ; Sun, 5 Oct 2003 23:15:56 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 15CF65EC1181 for ; Sun, 5 Oct 2003 23:15:56 +0300 (EEST) Subject: Re: [Dovecot] those assertions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20031005194306.GA5080@amidala> References: <20031005194306.GA5080@amidala> Content-Type: text/plain Message-Id: <1065384955.30739.4.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sun, 05 Oct 2003 23:15:56 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 20:16:10 -0000 X-UID: 1730 Status: O Content-Length: 1151 On Sun, 2003-10-05 at 22:43, Bernard Blackham wrote: > Hi, > > I did a bit of digging into the assertions from mbox-rewrite.c > (hdr_parsed_size.physical_size == hdr_size). Every time it happens, > hdr_size is 0, while hdr_parsed_size.physical_size is non-zero > (presumably the correct value). That'd mean the header size is saved incorrectly to index file.. Hmm. CVS doesn't anymore store header size in indexes and the assertion has been removed. Maybe that "fixes" it :) > Another infrequent assertion that's popped up: > file message-address.c: line 262 (message_address_write): assertion failed: (addr->domain != NULL) This is fixed by the address-parser patch in web page. > And one that's only ever been spotted once in the last few weeks: > file imap-bodystructure.c: line 278 (part_parse_headers): assertion failed: (part->physical_pos >= input->v_offset - start_offset) This assertion has also been removed from CVS, but it also indicates some index corruption.. Maybe next version magically fixes everything :) BTW. I fixed today the mbox code to work again and I'm now using it. Lets see how long it takes to corrupt my inbox :) From amyzing@talsever.com Mon Oct 6 01:09:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 30B55238D4; Mon, 6 Oct 2003 01:09:47 +0300 (EEST) Received: from smtp6.mindspring.com (smtp6.mindspring.com [207.69.200.110]) by danu.procontrol.fi (Postfix) with ESMTP id B74EA238CB for ; Mon, 6 Oct 2003 01:09:13 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by smtp6.mindspring.com with esmtp (Exim 3.33 #1) id 1A6H3w-0006bE-00 for dovecot@procontrol.fi; Sun, 05 Oct 2003 18:09:12 -0400 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id A48BC81AF for ; Sun, 5 Oct 2003 18:09:10 -0400 (EDT) Date: Sun, 5 Oct 2003 18:09:10 -0400 From: "Amelia A. Lewis" To: dovecot@procontrol.fi Message-Id: <20031005180910.24018fb5.amyzing@talsever.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.6 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Dovecot] Line length limitation in dovecot leads to out-of-control process? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 22:09:47 -0000 X-UID: 1731 Status: O Content-Length: 2394 Heylas! I've been copying mailboxes from one dovecot server (on an alpha running debian testing, 0.99.10-9) to another (on an i686 running debian unstable, 0.99.10-9). I encountered a weird problem, which I seem to have resolved by moving a message with a To: line from hell out of the mailbox. Both machines are running maildir. They're not exactly identical, but they're fairly similar, apart from differences in distribution and architecture; they're running the same version of dovecot, supposedly. Specifically, when I copied this folder over to the new location, dovecot went into CPU-feeding frenzy (up to 99.7% of CPU), and stayed there. If I killed the client and tried to look at the same mailbox using a different client (mutt instead of sylpheed), without killing the imap processor on the server, the indexes would be locked, mutt would fall back to reading headers instead, and then would send its imap process into CPU-feeding frenzy when it got to one particular message. After some experimentation, I found the message. Once I moved it out of cur, I could access the mailbox without problems. The odd thing is that I can look at the message on the original machine, but on the machine it was copied to, its mere existence makes the mailbox inaccessible. After a little more exploration (grep ^To name-of-message | wc, on both machines) I seem to have found the issue: the original message has a To: line that is 16504 characters long. In the copy, it's 8192 characters long, and ends in the middle of a (line in copy ends: user name X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 57BD6238D5; Mon, 6 Oct 2003 01:54:00 +0300 (EEST) Received: from smtp10.atl.mindspring.net (smtp10.atl.mindspring.net [207.69.200.246]) by danu.procontrol.fi (Postfix) with ESMTP id 46E3A238CB for ; Mon, 6 Oct 2003 01:53:28 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by smtp10.atl.mindspring.net with esmtp (Exim 3.33 #1) id 1A6Hkk-0000di-00 for dovecot@procontrol.fi; Sun, 05 Oct 2003 18:53:26 -0400 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id 9945481AF for ; Sun, 5 Oct 2003 18:53:26 -0400 (EDT) Date: Sun, 5 Oct 2003 18:53:26 -0400 From: "Amelia A. Lewis" To: dovecot@procontrol.fi Subject: Re: [Dovecot] Line length limitation in dovecot leads to out-of-control process? Message-Id: <20031005185326.6af608ff.amyzing@talsever.com> In-Reply-To: <20031005180910.24018fb5.amyzing@talsever.com> References: <20031005180910.24018fb5.amyzing@talsever.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.6 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 22:54:00 -0000 X-UID: 1732 Status: O A follow-up: The messages are roughly the same length on both machines. +2 on the copy-to machine (added LFs, I guess). It turns out that on copy, the to-line-from-hell is truncated, then continued (but without a space at the front of the "added" line, and truncation in mid-word), lather-rinse-repeat (original is 16504 long, so that's two by 8192 and a trailer). Problems therefore could be because the line ends abruptly, or because the two lines introduced are not valid header lines. Amy! -- Amelia A. Lewis amyzing {at} talsever.com I have spent nights with matches and knives, leaning over ledges, only two flights up. Cutting my heart, burning my soul. Nothing left to hold. Nothing left, but blood and fire. -- Indigo Girls From bert@rosanneke.com Mon Oct 6 22:14:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A894823896; Mon, 6 Oct 2003 22:14:44 +0300 (EEST) Received: from smtp02.wxs.nl (smtp02.wxs.nl [195.121.6.54]) by danu.procontrol.fi (Postfix) with ESMTP id 53B9D23887 for ; Mon, 6 Oct 2003 22:14:09 +0300 (EEST) Received: from rosanneke.com (ipd54ba005.premium.planet.nl [213.75.160.5]) by smtp02.wxs.nl (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003)) with ESMTP id <0HMC0080COB8XW@smtp02.wxs.nl> for dovecot@procontrol.fi; Mon, 06 Oct 2003 21:18:45 +0200 (MEST) Date: Mon, 06 Oct 2003 21:14:03 +0200 From: Bert Koelewijn Subject: Re: [Dovecot] SSL Client Certificate Support In-reply-to: <1065380465.19102.56.camel@hurina> To: Timo Sirainen Message-id: <3F81BEFB.2070407@rosanneke.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii; format=flowed Content-transfer-encoding: 7BIT X-Accept-Language: en-us, en User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 References: <3F7AAE4E.9010100@rosanneke.com> <1065192494.32105.100.camel@hurina> <3F7FE9F8.8050200@rosanneke.com> <1065380465.19102.56.camel@hurina> cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Oct 2003 19:14:45 -0000 X-UID: 1733 Status: O Timo Sirainen wrote: > Personally I'd really like to get the current CVS code fully working as > intended. Then there's some long standing bugs/features (eg. recent > counters). Then some NFS safety problems. All those should have been > fixed long ago. yes, it's better to get dovecot stable first. > Also currently there's only dovecot-auth and master processes in Dovecot > which have to be free of security holes to avoid pre-login security > holes. That's not a lot of code. Using OpenSSL for authentication brings > in tons of more code that has to be relied on. I understand. But please, keep it in mind for later versions of dovecot! From dovecot@spam.turbolink.net Mon Oct 6 22:58:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 37E0123896; Mon, 6 Oct 2003 22:58:28 +0300 (EEST) Received: from delorean.turbolink.net (firewall.turbolink.net [209.120.199.48]) by danu.procontrol.fi (Postfix) with ESMTP id 832952385D for ; Mon, 6 Oct 2003 22:57:55 +0300 (EEST) Received: from localhost (junkmail@localhost) by delorean.turbolink.net (8.12.8/8.11.2) with ESMTP id h96JvtYR019327 for ; Mon, 6 Oct 2003 15:57:56 -0400 Date: Mon, 6 Oct 2003 15:57:55 -0400 (EDT) From: dovecot@spam.turbolink.net X-X-Sender: junkmail@delorean.turbolink.net To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] those assertions X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Oct 2003 19:58:28 -0000 X-UID: 1734 Status: O Timo, Just FYI while you're working on the mbox code, I discovered a bug that occasionally causes dovecot to insert a single blank line at the beginning of the mbox, I'm not sure when/how/why. A single blank line seems to really confuse dovecot, and causes the server to crash when somebody connects to an afflicted mbox. ("Error indexing mbox" in the log, and disconects the user right away). I fixed it with lots of ugly code at our site (basically just remember that we skipped an intial blank line when doing other operations, instead of skipping it then forgetting later). I suspect there's a more elegant way to do it. - Mike From email@pbryan.net Tue Oct 7 11:09:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4D81423896; Tue, 7 Oct 2003 11:09:26 +0300 (EEST) Received: from mail.creatia.net (64-85-32-233.ip.van.radiant.net [64.85.32.233]) by danu.procontrol.fi (Postfix) with ESMTP id DBBF22385D for ; Tue, 7 Oct 2003 11:08:53 +0300 (EEST) Received: from pbryan.net (64-85-32-234.ip.van.radiant.net [64.85.32.234]) by mail.creatia.net (Postfix) with ESMTP id D536F88C065 for ; Tue, 7 Oct 2003 01:08:51 -0700 (PDT) Message-ID: <3F82748E.7000005@pbryan.net> Date: Tue, 07 Oct 2003 01:08:46 -0700 From: "Paul C. Bryan" User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030930 Debian/1.4-5 X-Accept-Language: en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Plaintext Authentication from Localhost X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Oct 2003 08:09:26 -0000 X-UID: 1735 Status: O Content-Length: 1067 Hi: It appears that at least at one time, Dovecot supported plaintext authentication from localhost, even if disable_plaintext_auth = yes. To wit, the example configuration file reads: # Disable LOGIN command and all other plaintext authentications unless # SSL/TLS is used (LOGINDISABLED capability). Note that 127.*.*.* and # IPv6 ::1 addresses are considered secure, this setting has no effect if # you connect from those addresses. #disable_plaintext_auth = yes On brief inspection of the code, there doesn't seem to be any such support. This is corroborated by the fact that 0.99.10 (Debian package) behaves by disallowing plaintext authentication via connections on localhost. This is a particularly useful feature, as local webmail clients can safely authenticate via the local interface without requiring secure authentication. So, the question is, is Dovecot supposed to support plaintext auth via localhost even if disallowed in dovecot.conf? If so, any suggestions as to what I may be doing wrong? Yours truly, Paul C. Bryan email@pbryan.net From diyab@ovis.net Wed Oct 8 03:10:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 603F723896; Wed, 8 Oct 2003 03:10:29 +0300 (EEST) Received: from mcfeely.r00td0wn.net (dsl093-212-010.clb1.dsl.speakeasy.net [66.93.212.10]) by danu.procontrol.fi (Postfix) with ESMTP id A7DBD2385D for ; Wed, 8 Oct 2003 03:09:56 +0300 (EEST) Received: from ovis.net ([172.16.1.222]) by mcfeely.r00td0wn.net with Microsoft SMTPSVC(5.0.2195.5329); Tue, 7 Oct 2003 20:09:55 -0400 Message-ID: <3F8355D3.3010304@ovis.net> Date: Tue, 07 Oct 2003 20:09:55 -0400 From: Timothy User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 08 Oct 2003 00:09:55.0391 (UTC) FILETIME=[80B6B4F0:01C38D30] Subject: [Dovecot] dovecot crashes on start X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Oct 2003 00:10:29 -0000 X-UID: 1736 Status: O Content-Length: 1064 Hello, I wasn't able to find anything about this on the site that could give me a definite answer, but when I start dovecot it dies immediately. The following is left in the logs. dovecot: Oct 06 20:59:30 Info: Dovecot starting up dovecot: Oct 06 20:59:32 Error: Auth process died too early - shutting down pop3-login: Oct 06 20:59:32 Fatal: fd_send(-1) failed: Broken pipe I thought this might have something to do with chrooting so I tried to disable all of that in the configuration. After that did not work I rebuilt dovecot with minimal configure options (compared to what I used originally) and used a stock configuration changing only the certificate locations so that dovecot would not complain about the certificates missing, still no luck and the same error. I've tried using strace on dovecot but it seems like it hardly ever hangs/dies at the same point. I'm trying to run this on a slackware 9.0 linux based machine. Any suggestions? Timothy, -- I put instant coffee in a microwave and almost went back in time. -- Steven Wright From jesse@pixeltechs.com Wed Oct 8 08:03:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6F07523896; Wed, 8 Oct 2003 08:03:55 +0300 (EEST) Received: from rwcrmhc11.comcast.net (rwcrmhc11.comcast.net [204.127.198.35]) by danu.procontrol.fi (Postfix) with ESMTP id E8FBE23887 for ; Wed, 8 Oct 2003 08:03:21 +0300 (EEST) Received: from pixeltechs.com (c-67-168-175-37.client.comcast.net[67.168.175.37]) by comcast.net (rwcrmhc11) with SMTP id <2003100805031901300qpbr5e>; Wed, 8 Oct 2003 05:03:20 +0000 Date: Tue, 7 Oct 2003 22:03:23 -0700 Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: tss@iki.fi From: Jesse Peterson Content-Transfer-Encoding: 7bit Message-Id: X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi Subject: [Dovecot] X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Oct 2003 05:03:55 -0000 X-UID: 1737 Status: O % uname -a Darwin xxx 6.6 Darwin Kernel Version 6.6: Sun Jul 6 05:12:51 PDT 2003; root:tmp/xnu-6.6.2-4-root.obj/RELEASE_PPC Power Macintosh powerpc Attached is a gzipped "sh autogen.sh >& autogen.log" for the above machine. What do you think? Jesse Peterson Office 206.441.7443 / Fax 206.441.8078 MacTechs / Macintosh System and Network Support 2121 First Avenue, Suite 103 / Seattle, Washington 98121 http://www.mactechs.com/ From jesse@pixeltechs.com Wed Oct 8 17:24:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 628C223887; Wed, 8 Oct 2003 17:24:15 +0300 (EEST) Received: from postoffice.mactechs.com (ns1.mactechs.com [206.63.241.14]) by danu.procontrol.fi (Postfix) with ESMTP id B82F223866 for ; Wed, 8 Oct 2003 17:23:39 +0300 (EEST) Received: from pixeltechs.com (ns2.mactechs.com [206.63.241.2]) by postoffice.mactechs.com (Postfix) with ESMTP id 6482E7F0; Wed, 8 Oct 2003 07:31:52 -0700 (PDT) Date: Wed, 8 Oct 2003 07:23:38 -0700 Content-Type: multipart/mixed; boundary=Apple-Mail-2--731011449 Mime-Version: 1.0 (Apple Message framework v552) To: tss@iki.fi From: Jesse Peterson Message-Id: <02131A40-F99B-11D7-9480-00306567080E@pixeltechs.com> X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi Subject: [Dovecot] Darwin Build (cvs) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Oct 2003 14:24:15 -0000 X-UID: 1738 Status: O Content-Length: 1803 --Apple-Mail-2--731011449 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Oops, I apologize for my short, breif message that didn't even include what I said it should inlcude =). Here's the deal: OpenDarwin 6.6 (closest relative being Mac OS X 10.2.6) won't build from CVS. Specifically libtoolize doesn't seem to exist (does it even come with libtool?) and the other parts of the "autogen.sh" fail miserably. This time (really) attached is a gzip of the log of autogen.sh: "./autogen.sh >& autogen.log". Thanks for any help! - Jesse --Apple-Mail-2--731011449 Content-Disposition: attachment; filename=autogen.log.gz Content-Transfer-Encoding: base64 Content-Type: application/x-gzip; x-unix-mode=0644; name="autogen.log.gz" H4sICEIKgj8AA2F1dG9nZW4ubG9nAO2bS2/aQBCA7/yKudFKyVppHkp9cwNNrcY4SkmknshiL3gV e9fdtdumv76zNqEE+uBUZaU5IDDMfDPz7XIcnpU642UImVYLuWyNYFKFcHQaQsUzo+E+SmbxRTq5 G4LSDSx0q3KQCko5N9w8DljA20YvhWK2CN23jdal/CEcsao4Bq/TBs9qnIT4C9RG18KArOpSVEI1 vJFagV6AKzuJp7Podpom0ccxfOO2xxzscBAy5/PyEeYi460VwPupWHUC0kIlrZVqyRjbyfysW7CF bsscTKue8qDRkBnBGwFNgYCFLMUBfhRqB9BloYCKP2DZJZdqqwi6sg0vS2wA7lmwejq0xfCvcdXD 6jmXxv4jtB9vOLjFydFcq6SSjeTuFHL4ystWuANDRIYTqd7wK/YaeANBa00wlypYz4BUAefHb4/Z YLtQ3wRbtsLa/1bNtvOt8Y/RuvjSSoP13MlsBBf4+/BPF+7o5DeJZVO5M8Pj2EizJnMtFkGCPbpI xqvt9nJR4wWvh4NuKFtwI9ZjHR6xs4BXLkao/E2XHSWj8TXkWtiuEK9rwY0zhRcd/16jeBqnk+jK X1zJ1fLQKXny9fJafNk4EkgCSaDXOBJIAkmg1zgSSAJJoNc4EkgCSaDXOBJIAkmg1zgSSAJJoNc4 EkgCSaDXOBJIAkmg1zgSSAJJoNc4EkgCSaDXOBJIAkmg1zgSSAJJoNc4EkgCSaDXOBJIAkmg1zgS SAI9FfgE6paGM9FtzkLC+zVPCxyTC2GgkZVwW8AL+d3t/VbQ1qzLLQTPhQlBGKPxLbpw9Pfx5ezD OBqNbz511ddL0pv7pztLrCtErbEJt7yMOdiFEnm/eR2uWv8F31k+3ofwbIn6OeFsP0ISxZMpvsY3 syQdjXeXaveBXN+kl7Or+N00Ta+2CKd7DoIu7rZSz/esvnkDfgKvLG9c8j4AAA== --Apple-Mail-2--731011449-- From tss@iki.fi Thu Oct 9 03:06:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 743EF23896; Thu, 9 Oct 2003 03:06:43 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D352A23866 for ; Thu, 9 Oct 2003 03:06:29 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 71ACD5EC1184 for ; Thu, 9 Oct 2003 03:06:29 +0300 (EEST) Subject: Re: [Dovecot] Darwin Build (cvs) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <02131A40-F99B-11D7-9480-00306567080E@pixeltechs.com> References: <02131A40-F99B-11D7-9480-00306567080E@pixeltechs.com> Content-Type: text/plain Message-Id: <1065657988.1377.43.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 09 Oct 2003 03:06:29 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Oct 2003 00:06:43 -0000 X-UID: 1739 Status: O On Wed, 2003-10-08 at 17:23, Jesse Peterson wrote: > Here's the deal: OpenDarwin 6.6 (closest relative being Mac OS X > 10.2.6) won't build from CVS. Specifically libtoolize doesn't seem to > exist (does it even come with libtool?) and the other parts of the > "autogen.sh" fail miserably. So, the solution is to get libtoolize :) Mine seems to have come from libtool14 package in Fink (although it is libtool v1.5, weird). Also it looks like you're missing iconv.m4. It's in gettext package in Fink. Did OpenDarwin use Fink? Anyway, building from CVS requires some more packages to install which aren't needed if you stick with tarballs. I could also build a new test tarball if you need :) From tss@iki.fi Thu Oct 9 03:11:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E0CB5238C6; Thu, 9 Oct 2003 03:11:14 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2277223896 for ; Thu, 9 Oct 2003 03:11:02 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D30ED5EC1184 for ; Thu, 9 Oct 2003 03:10:30 +0300 (EEST) Subject: Re: [Dovecot] dovecot crashes on start From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F8355D3.3010304@ovis.net> References: <3F8355D3.3010304@ovis.net> Content-Type: text/plain Message-Id: <1065658222.1376.48.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 09 Oct 2003 03:10:22 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Oct 2003 00:11:15 -0000 X-UID: 1740 Status: O Content-Length: 1259 On Wed, 2003-10-08 at 03:09, Timothy wrote: > I wasn't able to find anything about this on the site that could give me > a definite answer, but when I start dovecot it dies immediately. The > following is left in the logs. > > dovecot: Oct 06 20:59:30 Info: Dovecot starting up > dovecot: Oct 06 20:59:32 Error: Auth process died too early - shutting down > pop3-login: Oct 06 20:59:32 Fatal: fd_send(-1) failed: Broken pipe Doesn't it say why auth process died? It should say at least something.. Such as a crash.. > I thought this might have something to do with chrooting so I tried to > disable all of that in the configuration. After that did not work I > rebuilt dovecot with minimal configure options (compared to what I used > originally) and used a stock configuration changing only the certificate > locations so that dovecot would not complain about the certificates > missing, still no luck and the same error. So your auth_userdb = passwd and auth_passdb = pam? > I've tried using strace on > dovecot but it seems like it hardly ever hangs/dies at the same point. > I'm trying to run this on a slackware 9.0 linux based machine. Any > suggestions? I could take a look at one of the straces. And give the -f parameter to it. From tss@iki.fi Thu Oct 9 03:14:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AAF29238C7; Thu, 9 Oct 2003 03:14:34 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 58F37238C6 for ; Thu, 9 Oct 2003 03:14:20 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2140F5EC1184 for ; Thu, 9 Oct 2003 03:14:20 +0300 (EEST) Subject: Re: [Dovecot] Plaintext Authentication from Localhost From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F82748E.7000005@pbryan.net> References: <3F82748E.7000005@pbryan.net> Content-Type: text/plain Message-Id: <1065658459.1378.51.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 09 Oct 2003 03:14:20 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Oct 2003 00:14:34 -0000 X-UID: 1741 Status: O On Tue, 2003-10-07 at 11:08, Paul C. Bryan wrote: > Hi: > > It appears that at least at one time, Dovecot supported plaintext > authentication from localhost, even if disable_plaintext_auth = yes. To wit, > the example configuration file reads: Ah, but you're looking at the CVS version's config file :) I'm copying it to web page from CVS automatically. Maybe not that good idea but easy to keep up to date.. > So, the question is, is Dovecot supposed to support plaintext auth via > localhost even if disallowed in dovecot.conf? If so, any suggestions as to > what I may be doing wrong? I only added that code a few weeks ago. From tss@iki.fi Thu Oct 9 03:44:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6ED3F238C8; Thu, 9 Oct 2003 03:44:15 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8ADBD238C6 for ; Thu, 9 Oct 2003 03:44:02 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 6CFAE5EC1184 for ; Thu, 9 Oct 2003 03:44:01 +0300 (EEST) Subject: Re: [Dovecot] Line length limitation in dovecot leads to out-of-control process? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20031005180910.24018fb5.amyzing@talsever.com> References: <20031005180910.24018fb5.amyzing@talsever.com> Content-Type: text/plain Message-Id: <1065660240.1382.55.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 09 Oct 2003 03:44:01 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Oct 2003 00:44:15 -0000 X-UID: 1742 Status: O On Mon, 2003-10-06 at 01:09, Amelia A. Lewis wrote: > After a little more exploration (grep ^To name-of-message | wc, on both > machines) I seem to have found the issue: the original message has a To: > line that is 16504 characters long. In the copy, it's 8192 characters > long, and ends in the middle of a (line in copy ends: > user name *latter* that's causing dovecot to die a messy death. Or, actually, to > turn into a very *rude* process that *doesn't* die. Yes, it happens when the header name is larger than 8192 bytes. Dovecot wants to read more data, but the buffer is already full and it tries again.. Actually there is code to handle this, but it has a bug somewhere. I'll fix this and check that other parsers don't have the same problem. From warren@togami.com Thu Oct 9 03:54:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 42F88238C8; Thu, 9 Oct 2003 03:54:01 +0300 (EEST) Received: from pan.mplug.org (pan.togami.com [66.139.75.105]) by danu.procontrol.fi (Postfix) with ESMTP id 3A6D723896 for ; Thu, 9 Oct 2003 03:53:29 +0300 (EEST) Received: by pan.mplug.org (Postfix, from userid 48) id ED7535D8078; Wed, 8 Oct 2003 15:34:05 -1000 (HST) Received: from 128.171.104.130 (SquirrelMail authenticated user warren) by togami.com with HTTP; Wed, 8 Oct 2003 15:34:05 -1000 (HST) Message-ID: <1202.128.171.104.130.1065663245.squirrel@togami.com> In-Reply-To: <000f01c38dd5$fe4ebf70$2401a8c0@MELON> References: <000f01c38dd5$fe4ebf70$2401a8c0@MELON> Date: Wed, 8 Oct 2003 15:34:05 -1000 (HST) From: "Warren Togami" To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.1-2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Dovecot pop3 and Outlook Express timeout X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Oct 2003 00:54:01 -0000 X-UID: 1743 Status: O > Vince did some troubleshooting at my Dad's place and found that part of > the problem was related to dovecot timing out in communicating with > outlook express. Any ideas? You can do a raw pop3 connection which works > fine, but if you try to do the same from within outlook it times out or > gives "server not found". This sounds like what I was experiencing here > with my outlook express as well. > > thanks, > scott > Any idea what could be happening here? They insist that Outlook Express constant times out when trying to download POP3 from the latest stable dovecot. Thanks, Warren Togami warren@togami.com From diyab@ovis.net Thu Oct 9 04:25:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 81D92238C9; Thu, 9 Oct 2003 04:25:04 +0300 (EEST) Received: from mcfeely.r00td0wn.net (dsl093-212-010.clb1.dsl.speakeasy.net [66.93.212.10]) by danu.procontrol.fi (Postfix) with ESMTP id 181D92385D for ; Thu, 9 Oct 2003 04:24:32 +0300 (EEST) Received: from ovis.net ([172.16.1.222]) by mcfeely.r00td0wn.net with Microsoft SMTPSVC(5.0.2195.5329); Wed, 8 Oct 2003 21:24:30 -0400 Message-ID: <3F84B8CE.6040503@ovis.net> Date: Wed, 08 Oct 2003 21:24:30 -0400 From: Timothy User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] dovecot crashes on start References: <3F8355D3.3010304@ovis.net> <1065658222.1376.48.camel@hurina> In-Reply-To: <1065658222.1376.48.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 09 Oct 2003 01:24:30.0249 (UTC) FILETIME=[16599990:01C38E04] cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Oct 2003 01:25:04 -0000 X-UID: 1744 Status: O I think I found the problem. The second trace had this line. [pid 14987] writev(2, [{"dovecot-auth", 12}, {": ", 2}, {"error while loading shared libra"..., 36}, {": ", 2}, {"libpq.so.3", 10}, {": ", 2}, {"cannot open shared object file", 30}, {": ", 2}, {"No such file or directory", 25}, {"\n", 1}], 10 so I added /usr/local/pgsql/lib into /etc/ld.so.conf and ran ldconfig. I now have running dovecot processes. I apologize for wasting your time. Timothy, -- I put instant coffee in a microwave and almost went back in time. -- Steven Wright From olive@pasteur.fr Thu Oct 9 17:18:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B586523896; Thu, 9 Oct 2003 17:18:26 +0300 (EEST) Received: from electre.pasteur.fr (electre.pasteur.fr [157.99.64.120]) by danu.procontrol.fi (Postfix) with ESMTP id 756632385D for ; Thu, 9 Oct 2003 17:17:52 +0300 (EEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by electre.pasteur.fr (8.12.10/8.12.10) with ESMTP id h99EHnbs202885 for ; Thu, 9 Oct 2003 16:17:49 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 47A3B3F67A; Thu, 9 Oct 2003 16:17:57 +0200 (CEST) Date: Thu, 9 Oct 2003 16:17:57 +0200 From: Olivier Tharan To: dovecot@procontrol.fi Message-ID: <20031009141757.GQ10510@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@procontrol.fi Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Attribution: Olive X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ Subject: [Dovecot] gzipped files in Mail directory X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Oct 2003 14:18:26 -0000 X-UID: 1745 Status: O Hi, I have been testing dovecot on my own machine before a bigger deployment. Basically I have all my mbox mailboxes in ~/Mail, delivered by procmail. Some mbox's are gzipped because they are archives which I can grep into, but do not want to look at often. When I first launched an IMAP client, dovecot created the indexes (I think) and gave several errors when finding a gzipped file, such as: ,---- | Oct 1 19:53:21 mafate imap(olive): File isn't in mbox format: /home/olive/Mail//Archives/daily.d/mafate.2003.gz `---- After 19 gzipped mbox's, I had the following crash: ,---- | Oct 1 19:53:21 mafate dovecot: child 4923 (imap) killed with signal 10 `---- Does dovecot not like gzipped mbox's? For the moment, all gzipped files are in ~/Mail/.Archives and I can live with it. -- olive From jesse@pixeltechs.com Thu Oct 9 21:18:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7232A23896; Thu, 9 Oct 2003 21:18:01 +0300 (EEST) Received: from postoffice.mactechs.com (postoffice.mactechs.com [206.63.241.14]) by danu.procontrol.fi (Postfix) with ESMTP id D0F1523866 for ; Thu, 9 Oct 2003 21:17:25 +0300 (EEST) Received: from pixeltechs.com (ns2.mactechs.com [206.63.241.2]) by postoffice.mactechs.com (Postfix) with ESMTP id E4B3D7F5 for ; Thu, 9 Oct 2003 11:25:33 -0700 (PDT) Date: Thu, 9 Oct 2003 11:17:15 -0700 Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Jesse Peterson To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <20031009090005.76DCA238C8@danu.procontrol.fi> Message-Id: X-Mailer: Apple Mail (2.552) Subject: [Dovecot] Re: Darwin Build (cvs) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Oct 2003 18:18:01 -0000 X-UID: 1746 Status: O Content-Length: 1318 On Thursday, October 9, 2003, at 02:00 AM, dovecot-request@procontrol.fi wrote: > From: Timo Sirainen > Subject: Re: [Dovecot] Darwin Build (cvs) > To: dovecot@procontrol.fi > Message-ID: <1065657988.1377.43.camel@hurina> > Content-Type: text/plain > > On Wed, 2003-10-08 at 17:23, Jesse Peterson wrote: >> Here's the deal: OpenDarwin 6.6 (closest relative being Mac OS X >> 10.2.6) won't build from CVS. Specifically libtoolize doesn't seem to >> exist (does it even come with libtool?) and the other parts of the >> "autogen.sh" fail miserably. > > So, the solution is to get libtoolize :) Mine seems to have come from > libtool14 package in Fink (although it is libtool v1.5, weird). Thought so. I wasn't sure if it came with libtool or not (OpenDarwin does ship with libtool). > > Also it looks like you're missing iconv.m4. It's in gettext package in > Fink. Ahh, I'll grab that as well. > > Did OpenDarwin use Fink? > Yes, although they've switched from 'DarwinPorts' to MetaPkg. Not sure the status on either of those, though. > Anyway, building from CVS requires some more packages to install which > aren't needed if you stick with tarballs. I could also build a new test > tarball if you need :) > This would be great. Maybe an automatically posted daily snapshot? Thanks Timo. From vikrant@linmark.com Mon Oct 13 13:46:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 605E6238A8; Mon, 13 Oct 2003 13:46:18 +0300 (EEST) Received: from hanghau.pacific.net.hk (hanghau.pacific.net.hk [202.64.33.137]) by danu.procontrol.fi (Postfix) with ESMTP id 5B2A52385D for ; Mon, 13 Oct 2003 13:45:44 +0300 (EEST) Received: from linmark1 ([202.64.253.222]) by hanghau.pacific.net.hk with ESMTP id h9DAjcK1027737 for ; Mon, 13 Oct 2003 18:45:38 +0800 (CST) Received: from 192.168.1.50 by linmark1 ([192.168.1.1] running VPOP3) with ESMTP for ; Mon, 13 Oct 2003 18:58:54 +0800 From: vikrant@linmark.com To: dovecot@procontrol.fi Date: Mon, 13 Oct 2003 18:45:37 +0800 MIME-Version: 1.0 Message-ID: <3F8AF2D1.26309.210D2BA@localhost> Priority: normal X-mailer: Pegasus Mail for Windows (v4.12a) Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Content-description: Mail message body X-Server: VPOP3 V1.4.5 - Registered Subject: [Dovecot] Ignore purge and delete command X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Oct 2003 10:46:18 -0000 X-UID: 1747 Status: O Hi, Does anyone know how to ignore the purge or delete command from the imap clients. Actually I created a mail archive and using dovecot and so far I am happy with the performance. But the problem I am facing right now is I do not want the users to delete the mail by themselves and want to disable the purge or delete command. Thanks Vikrant From david@madole.net Mon Oct 13 16:50:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 04D3A238A8; Mon, 13 Oct 2003 16:50:08 +0300 (EEST) Received: from box1.omd3.com (box1.omd3.com [69.46.19.120]) by danu.procontrol.fi (Postfix) with ESMTP id ACAB623866 for ; Mon, 13 Oct 2003 16:49:33 +0300 (EEST) Received: from [69.46.19.120] (helo=ssl.omd3.com) by box1.omd3.com with smtp (Exim 4.23) id 1A934l-000KON-0X for dovecot@procontrol.fi; Mon, 13 Oct 2003 13:49:31 +0000 Received: from 12.148.10.20 (SquirrelMail authenticated user david@madole.net) by ssl.omd3.com with HTTP; Mon, 13 Oct 2003 09:49:31 -0400 (EDT) Message-ID: <56192.12.148.10.20.1066052971.squirrel@ssl.omd3.com> Date: Mon, 13 Oct 2003 09:49:31 -0400 (EDT) From: david@madole.net To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Tips to build from CVS? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Oct 2003 13:50:08 -0000 X-UID: 1748 Status: O Content-Length: 1344 I am struggling to compile Dovecot from CVS. I don't seem to be able to get a good configure script, always ending up with an error during configure. # sh autogen.sh configure.in:13: warning: AC_ARG_PROGRAM invoked multiple times # ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes [...] checking build system type... i386-unknown-freebsd4.8 checking host system type... i386-unknown-freebsd4.8 [...] checking whether va_lists can be copied by value... yes checking for gnutls_global_init in -lgnutls... no ./configure.lineno: 25085: Syntax error: word unexpected (expecting ")") Looking at the script: cat >>confdefs.h <<\_ACEOF #define HAVE_GNUTLS _ACEOF SSL_LIBS="-lgnutls -lgcrypt" have_ssl="yes (GNUTLS)" have_gnutls=yes fi done <-- line 25085 fi fi if test "$want_openssl" = "yes" && test "$have_ssl" = "no"; then if pkg-config --exists openssl; then I have the following installed: autoconf-2.57 automake-1.7.7 libtool-1.5 I've alto tried: autoconf-2.13 automake-1.5 With similar results except a different line number and more warnings from autogen.sh Any ideas? David From ian@onepost.net Tue Oct 14 03:03:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D83EF238A8; Tue, 14 Oct 2003 03:03:12 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by danu.procontrol.fi (Postfix) with ESMTP id 7BBAF2385D for ; Tue, 14 Oct 2003 03:02:39 +0300 (EEST) Received: from texas.pobox.com (texas.pobox.com[64.49.223.111]) by puzzle.pobox.com (Postfix) with ESMTP id C4983E480B for ; Mon, 13 Oct 2003 20:02:36 -0400 (EDT) Received: from [10.0.0.21] (pool-68-163-96-164.bos.east.verizon.net [68.163.96.164]) by texas.pobox.com (Postfix) with ESMTP id ADB0345354 for ; Mon, 13 Oct 2003 20:02:34 -0400 (EDT) User-Agent: Microsoft-Entourage/10.1.1.2418 Date: Mon, 13 Oct 2003 20:02:32 -0400 From: Ian Marlier To: Dovecot <"mailto:dovecot"@procontrol.fi> Message-ID: Mime-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit X-Mailman-Approved-At: Tue, 14 Oct 2003 22:12:26 +0300 Subject: [Dovecot] Ordering mailboxes X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Oct 2003 00:03:13 -0000 X-UID: 1749 Status: O Content-Length: 20476 I have a really weird problem. To whit: I compiled dovecot 0.99.10 on two different systems: a linux-ppc box running Debian, and a Mac OS X Server v. 10.2.8. It compiled fine on both. The same Maildir's are being served up on both -- the OS X server exports home directories to the clients via NFS. BUT the OS X box orders mailboxes this way: INBOX Deleted Items Sent Items . . . And the Debian box orders mailboxes this way: INBOX INBOX/Deleted Items INBOX/Sent Items . . . The compilation options were the same in both cases. The dovecot.conf files are essentially identical -- the only changes are the names of the SSL certificates and the name of the dovecot user. What I can't figure out is, why is the ordering of the mailboxes different? This is the Maildir directory list: [network:/Users/foc/Maildir] root# ls -al /Network/Servers/network.uphamscornercs.net/Users/marlier/Maildir/ total 816 drwxrw---- 22 marlier staff 748 Oct 13 19:52 . drwxr-xr-x 64 marlier staff 2176 Oct 10 14:08 .. drwxrw---- 13 marlier staff 442 Oct 13 19:14 .Deleted Items drwxrwxr-x 9 marlier staff 306 Oct 13 19:14 .Dovecot drwxrw---- 12 marlier staff 408 Oct 8 12:26 .Drafts drwxrw---- 7 marlier staff 238 Oct 13 19:28 .INBOX drwxrw---- 13 marlier staff 442 Sep 16 22:59 .Jen drwxrw---- 13 marlier staff 442 Oct 13 18:30 .Klimas List drwxrw---- 13 marlier staff 442 Oct 13 17:57 .Rachel drwxrw---- 13 marlier staff 442 Oct 13 19:14 .Sent Items drwxrw---- 13 marlier staff 442 Oct 13 19:16 .UCCS -rw-rw---- 1 marlier staff 5 Sep 15 20:58 .customflags -rw-rw---- 1 marlier staff 120 Oct 13 18:16 .subscriptions -rw------- 1 marlier staff 296206 Oct 13 19:40 bincimap-cache -rw------- 1 marlier staff 534 Sep 22 17:45 bincimap-subscribed -rw------- 1 marlier staff 197 Sep 16 21:38 bincimap-subscribed.old -rw------- 1 marlier staff 59 Oct 13 19:40 bincimap-uidvalidity drwx------ 3582 marlier staff 121788 Oct 13 19:36 cur -rw------- 1 marlier staff 96421 Oct 13 19:36 dovecot-uidlist drwx------ 2 marlier staff 68 Oct 13 19:36 new drwxrw--w- 2 marlier staff 68 Sep 15 20:58 recov drwx------ 2 marlier staff 68 Oct 13 19:36 tmp [network:/Users/foc/Maildir] root# Any thoughts? (dovecot.conf files is included here, if it's helpful): [network:/Users/foc/Maildir] root# more /usr/local/etc/dovecot.conf ## Dovecot 1.0 configuration file # Default values are shown after each value, it's not required to uncomment # any of the lines. Exception to this are paths, they're just examples # with real defaults being based on configure options. The paths listed here # are for configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var # --with-ssldir=/etc/ssl # Base directory where to store runtime data. base_dir = /var/run/dovecot/ # Protocols we want to be serving: # imap imaps pop3 pop3s protocols = imap imaps pop3 pop3s # IP or host address where to listen in for connections. It's not currently # possible to specify multiple addresses. "*" listens in all IPv4 interfaces. # "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4 # interfaces depending on the operating system. You can specify ports with # "host:port". imap_listen = * pop3_listen = * # IP or host address where to listen in for SSL connections. Defaults # to above non-SSL equilevants if not specified. #imaps_listen = #pop3s_listen = # Disable SSL/TLS support. ssl_disable = no # PEM encoded X.509 SSL/TLS certificate and private key. They're opened before # dropping root privileges, so keep the key file unreadable by anyone but # root. Included doc/mkcert.sh can be used to easily generate self-signed # certificate, just make sure to update the domains in dovecot-openssl.cnf ssl_cert_file = /etc/ssl/certs/imapd.pem ssl_key_file = /etc/ssl/private/imapd.pem # SSL parameter file. Master process generates this file for login processes. # It contains Diffie Hellman and RSA parameters. ssl_parameters_file = /var/run/dovecot/ssl-parameters.dat # How often to regenerate the SSL parameters file. Generation is quite CPU # intensive operation. The value is in hours, 0 disables regeneration # entirely. ssl_parameters_regenerate = 0 # Disable LOGIN command and all other plaintext authentications unless # SSL/TLS is used (LOGINDISABLED capability) disable_plaintext_auth = no # Use this logfile instead of syslog(). /dev/stderr can be used if you want to # use stderr for logging (ONLY /dev/stderr - otherwise it is closed). log_path = /var/log/mail.log # For informational messages, use this logfile instead of the default info_log_path = /var/log/mail.log # Prefix for each line written to log file. % codes are in strftime(3) # format. Note the extra space at the end of line. log_timestamp = %b %d %H:%M:%S dovecot: ## ## Login processes ## # Directory where authentication process places authentication UNIX sockets # which login needs to be able to connect to. The sockets are created when # running as root, so you don't have to worry about permissions. login_dir = /var/run/dovecot/login # chroot login process to the login_dir. Only reason not to do this is if you # wish to run the whole Dovecot without roots. login_chroot = yes ## ## IMAP login process ## login = imap # Executable location. login_executable = /usr/local/libexec/dovecot/imap-login # User to use for the login process. Create a completely new user for this, # and don't use it anywhere else. The user must also belong to a group where # only it has access, it's used to control access for authentication process. login_user = dovecot # Set max. process size in megabytes. If you don't use # login_process_per_connection you might need to grow this. login_process_size = 32 # Should each login be processed in it's own process (yes), or should one # login process be allowed to process multiple connections (no)? Yes is more # secure, espcially with SSL/TLS enabled. No is faster since there's no need # to create processes all the time. login_process_per_connection = yes # Number of login processes to create. If login_process_per_user is # yes, this is the number of extra processes waiting for users to log in. login_processes_count = 5 # Maximum number of extra login processes to create. The extra process count # usually stays at login_processes_count, but when multiple users start logging # in at the same time more extra processes are created. To prevent fork-bombing # we check only once in a second if new processes should be created - if all # of them are used at the time, we double their amount until limit set by this # setting is reached. This setting is used only if login_process_per_use is yes. login_max_processes_count = 128 # Maximum number of connections allowed in login state. When this limit is # reached, the oldest connections are dropped. If login_process_per_user # is no, this is a per-process value, so the absolute maximum number of users # logging in actually login_processes_count * max_logging_users. login_max_logging_users = 256 ## ## POP3 login process ## # Settings default to same as above, so you don't have to set anything # unless you want to override them. login = pop3 # Exception to above rule being the executable location. login_executable = /usr/local/libexec/dovecot/pop3-login ## ## Mail processes ## # Maximum number of running mail processes. When this limit is reached, # new users aren't allowed to log in. max_mail_processes = 1024 # Show more verbose process titles (in ps). Currently shows user name and # IP address. Useful for seeing who are actually using the IMAP processes # (eg. shared mailboxes or if same uid is used for multiple accounts). verbose_proctitle = yes # Show protocol level SSL errors. verbose_ssl = yes # Valid UID range for users, defaults to 500 and above. This is mostly # to make sure that users can't log in as daemons or other system users. # Note that denying root logins is hardcoded to dovecot binary and can't # be done even if first_valid_uid is set to 0. first_valid_uid = 30 #last_valid_uid = 0 # Valid GID range for users, defaults to non-root/wheel. Users having # non-valid GID as primary group ID aren't allowed to log in. If user # belongs to supplementary groups with non-valid GIDs, those groups are # not set. first_valid_gid = 1 #last_valid_gid = 0 # ':' separated list of directories under which chrooting is allowed for mail # processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too). # This setting doesn't affect login_chroot or auth_chroot variables. # WARNING: Never add directories here which local users can modify, that # may lead to root exploit. Usually this should be done only if you don't # allow shell access for users. See doc/configuration.txt for more information. # valid_chroot_dirs = /var/mail # Default MAIL environment to use when it's not set. By leaving this empty # dovecot tries to do some automatic detection as described in # doc/mail-storages.txt. There's a few special variables you can use: # # %u - username # %n - user part in user@domain, same as %u if there's no domain # %d - domain part in user@domain, empty if user there's no domain # %h - home directory # # You can also limit a width of string by giving the number of max. characters # after the '%' character. For example %1u gives the first character of # username. Some examples: # # maildir:/var/mail/%1u/%u/Maildir # mbox:~/mail/:INBOX=/var/mail/%u # mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n # default_mail_env = maildir:~/Maildir # Space-separated list of fields to cache for all mails. Currently these # fields are allowed followed by a list of commands they speed up: # # Envelope - FETCH ENVELOPE and SEARCH FROM, TO, CC, BCC, SUBJECT, # SENTBEFORE, SENTON, SENTSINCE, HEADER MESSAGE-ID, # HEADER IN-REPLY-TO # Body - FETCH BODY # Bodystructure - FETCH BODY, BODYSTRUCTURE # MessagePart - FETCH BODY[1.2.3] (ie. body parts), RFC822.SIZE, # SEARCH SMALLER, LARGER, also speeds up BODY/BODYSTRUCTURE # generation. This is always set with mbox mailboxes, and # also default with Maildir. # # Different IMAP clients work in different ways, that's why Dovecot by default # only caches MessagePart which speeds up most operations. Whenever client # does something where caching could be used, the field is automatically marked # to be cached later. For example after FETCH BODY the BODY will be cached # for all new messages. Normally you should leave this alone, unless you know # what most of your IMAP clients are. Caching more fields than needed makes # the index files larger and generate useless I/O. # # With maildir there's one extra optimization - if nothing is cached, indexing # the maildir becomes much faster since it's not opening any of the mail files. # This could be useful if your IMAP clients access only new mails. mail_cache_fields = MessagePart Envelope Bodystructure Body # Space-separated list of fields that Dovecot should never set to be cached. # Useful if you want to save disk space at the cost of more I/O when the fields # needed. #mail_never_cache_fields = # Workarounds for various client bugs: # oe6-fetch-no-newmail: # Never send EXISTS/RECENT when replying to FETCH command. Outlook Express # seems to think they are FETCH replies and gives user "Message no longer # in server" error. Note that OE6 still breaks even with this workaround # if synchronization is set to "Headers Only". # outlook-idle: # Outlook and Outlook Express never abort IDLE command, so if no mail # arrives in half a hour, Dovecot closes the connection. This is still # fine, except Outlook doesn't connect back so you don't see if new mail # arrives. #client_workarounds = # Dovecot can notify client of new mail in selected mailbox soon after it's # received. This setting specifies the minimum interval in seconds between # new mail notifications to client - internally they may be checked more or # less often. Setting this to 0 disables the checking. # NOTE: Evolution client breaks with this option when it's trying to APPEND. mailbox_check_interval = 30 # Like mailbox_check_interval, but used for IDLE command. #mailbox_idle_check_interval = 30 # Allow full filesystem access to clients. There's no access checks other than # what the operating system does for the active UID/GID. It works with both # maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/ # or ~user/. mail_full_filesystem_access = no # Maximum allowed length for custom flag name. It's only forced when trying # to create new flags. mail_max_flag_length = 50 # Save mails with CR+LF instead of plain LF. This makes sending those mails # take less CPU, especially with sendfile() syscall with Linux and FreeBSD. # But it also creates a bit more disk I/O which may just make it slower. mail_save_crlf = no # Use mmap() instead of read() to read mail files. read() seems to be a bit # faster with my Linux/x86 and it's better with NFS, so that's the default. mail_read_mmaped = no # Copy mail to another folders using hard links. This is much faster than # actually copying the file. This is problematic only if something modifies # the mail in one folder but doesn't want it modified in the others. I don't # know any MUA which would modify mail files directly. IMAP protocol also # requires that the mails don't change, so it would be problematic in any case. # If you care about performance, enable it. maildir_copy_with_hardlinks = no # Check if mails' content has been changed by external programs. This slows # down things as extra stat() needs to be called for each file. If changes are # noticed, the message is treated as a new message, since IMAP protocol # specifies that existing message are immutable. maildir_check_content_changes = yes # Which locking methods to use for locking mbox. There's three available: # dotlock: Create .lock file. This is the oldest and most NFS-safe # solution. If you want to use /var/mail/ like directory, the users # will need write access to that directory. # fcntl : Use this if possible. Works with NFS too if lockd is used. # flock : May not exist in all systems. Doesn't work with NFS. # # You can use both fcntl and flock too; if you do the order they're declared # with is important to avoid deadlocks if other MTAs/MUAs are using both fcntl # and flock. Some operating systems don't allow using both of them # simultaneously, eg. BSDs. If dotlock is used, it's always created first. mbox_locks = fcntl # Should we create dotlock file even when we want only a read-lock? Setting # this to yes hurts the performance when the mailbox is accessed simultaneously # by multiple processes, but it's needed for reliable reading if no other # locking methods are available. mbox_read_dotlock = no # Maximum time in seconds to wait for lock (all of them) before aborting. mbox_lock_timeout = 300 # If dotlock exists but the mailbox isn't modified in any way, override the # lock file after this many seconds. mbox_dotlock_change_timeout = 30 # umask to use for mail files and directories umask = 0077 # Drop all privileges before exec()ing the mail process. This is mostly # meant for debugging, otherwise you don't get core dumps. Note that setting # this to yes means that log file is opened as the logged in user, which # might not work. It could also be a small security risk if you use single UID # for multiple users, as the users could ptrace() each others processes then. mail_drop_priv_before_exec = no ## ## IMAP process ## # Executable location imap_executable = /usr/local/libexec/dovecot/imap # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. imap_process_size = 256 # Support for dynamically loadable modules. imap_use_modules = no #imap_modules = /usr/local/lib/dovecot/imap ## ## POP3 process ## # Executable location pop3_executable = /usr/local/libexec/dovecot/pop3 # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. pop3_process_size = 256 # Support for dynamically loadable modules. pop3_use_modules = no #pop3_modules = /usr/lib/dovecot/pop3 ## ## Authentication processes ## # You can have multiple processes; each time "auth = xx" is seen, a new # process definition is started. The point of multiple processes is to be # able to set stricter permissions to others. For example, plain/PAM # authentication requires roots, but if you also use digest-md5 authentication # for some users, you can authenticate them without any privileges in a # separate auth process. Just remember that only one auth process is asked # for the password, so you can't have different passwords with different # processes (unless they have different auth methods, and you're ok with # having different password for each method). # Authentication process name. auth = default # Space separated list of wanted authentication mechanisms: # plain digest-md5 anonymous auth_mechanisms = plain # Space separated list of realms for SASL authentication mechanisms that need # them. You can leave it empty if you don't want to support multiple realms. # Many clients simply use the first one listed here, so keep the default realm # first. #auth_realms = # Default realm to use if none was specified. #auth_default_realm = # Where user database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # passwd-file : passwd-like file with specified location # static uid= gid= home=: static settings # vpopmail: vpopmail library # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf auth_userdb = passwd # auth_userdb = ldap /usr/local/etc/dovecot-ldap.conf # Where password database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # shadow: /etc/shadow or similiar, using getspnam() # pam [ | *]: PAM authentication # passwd-file : passwd-like file with specified location # vpopmail: vpopmail authentication # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf auth_passdb = pam dovecot # auth_passdb = ldap /usr/local/etc/dovecot-ldap.conf # Executable location auth_executable = /usr/local/libexec/dovecot/dovecot-auth # Set max. process size in megabytes. auth_process_size = 256 # User to use for the process. This user needs access to only user and # password databases, nothing else. Only shadow and pam authentication # requires roots, so use something else if possible. auth_user = root # Directory where to chroot the process. Most authentication backends don't # work if this is set, and there's no point chrooting if auth_user is root. #auth_chroot = # Number of authentication processes to create auth_count = 2 # List of allowed characters in username. If the user-given username contains # a character not listed in here, the login automatically fails. This is just # an extra check to make sure user can't exploit any potential quote escaping # vulnerabilities with SQL/LDAP databases. If you want to allow all characters, # set this value to empty. auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ # Username to use for users logging in with ANONYMOUS SASL mechanism #auth_anonymous_username = anonymous # More verbose logging. Useful for figuring out why authentication isn't # working. auth_verbose = yes # digest-md5 authentication process. It requires special MD5 passwords which # /etc/shadow and PAM doesn't support, so we never need roots to handle it. # Note that the passwd-file is opened before chrooting and dropping root # privileges, so it may be 0600-root owned file. #auth = digest_md5 #auth_methods = digest-md5 #auth_realms = #auth_userdb = passwd-file /etc/passwd.imap #auth_passdb = passwd-file /etc/passwd.imap #auth_user = imapauth #auth_chroot = # if you plan to use only passwd-file, you don't need the two auth processes, # simply set "auth_methods = plain digest-md5" From gavin@estey.com Wed Oct 15 05:44:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B8EF2238A8; Wed, 15 Oct 2003 05:44:42 +0300 (EEST) Received: from chicken.bock.com (unknown [64.30.29.62]) by danu.procontrol.fi (Postfix) with ESMTP id 26E232385D for ; Wed, 15 Oct 2003 05:44:09 +0300 (EEST) Received: from estey.com (chicken.bock.com [64.30.29.62]) (authenticated) by chicken.bock.com (8.11.6/8.11.6) with ESMTP id h9F2i9211845 for ; Tue, 14 Oct 2003 22:44:10 -0400 Date: Tue, 14 Oct 2003 22:44:17 -0400 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Gavin Estey To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <78BEEC14-FEB9-11D7-AB9B-000393BE445A@estey.com> X-Mailer: Apple Mail (2.552) Subject: [Dovecot] problem getting mail from mbox X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Oct 2003 02:44:42 -0000 X-UID: 1750 Status: O Content-Length: 1614 I'm trying to set up dovecot and I'm running into a few problems. I just want to use IMAP for one user, everyone else gets POP3 from the existing (working server). $MAIL is set to /var/spool/mail/gavin_imap In my /var/spool/mail directory I now have a problem: -rw------- 1 gavin_im mail 1392 Oct 14 22:28 gavin_imap -rw------- 1 gavin_im popusers 0 Oct 14 21:54 gavin_imap When I try to get my mail, I guess it's checking the wrong file as I can't download anything. I also can't delete the file (which I find confusing as I am root): [root@chicken mail]# rm gavin_imap rm: cannot remove `gavin_imap': No such file or directory I actually have the same problem with the dovecot log file. I have this in my config: info_log_path = /tmp/dovecot -rw------- 1 root root 4436 Oct 14 22:40 dovecot [root@chicken tmp]# cat dovecot cat: dovecot: No such file or directory I don't get any obvious errors if I telnet in: [root@chicken tmp]# telnet localhost 143 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK dovecot ready. 1 LOGIN gavin_imap 1 OK Logged in. 1 SELECT Inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 0 EXISTS * 0 RECENT * OK [UIDVALIDITY 1066184985] UIDs valid * OK [UIDNEXT 1] Predicted next UID 1 OK [READ-WRITE] Select completed. 1 LOGOUT * BYE Logging out 1 OK Logout completed. Connection closed by foreign host. This is confusing the hell out of me. Is there anything obvious that I've screwed up? Thanks! Gavin. From gavin@estey.com Wed Oct 15 06:36:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A08EA238A8; Wed, 15 Oct 2003 06:36:39 +0300 (EEST) Received: from chicken.bock.com (unknown [64.30.29.62]) by danu.procontrol.fi (Postfix) with ESMTP id 23C9B23866 for ; Wed, 15 Oct 2003 06:36:06 +0300 (EEST) Received: from estey.com (chicken.bock.com [64.30.29.62]) (authenticated) by chicken.bock.com (8.11.6/8.11.6) with ESMTP id h9F3a8212378 for ; Tue, 14 Oct 2003 23:36:08 -0400 Date: Tue, 14 Oct 2003 23:36:15 -0400 Subject: Re: [Dovecot] problem getting mail from mbox Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Gavin Estey To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: <78BEEC14-FEB9-11D7-AB9B-000393BE445A@estey.com> Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Oct 2003 03:36:39 -0000 X-UID: 1751 Status: O On Tuesday, October 14, 2003, at 10:44 PM, Gavin Estey wrote: > I'm trying to set up dovecot and I'm running into a few problems. > I've finally solved the "odd filename" issue. If I run: $ find . -name "dovecot*" -print0 | xargs -0 cat I get to see the file. Is there some bug where dovecot has got a space or a NULL or something stuck on the filename? An "ls -Q" seems to confirm this: $ ls -Q dovecot* "dovecot " $ ls -Q /var/spool/mail/gavin_imap* "/var/spool/mail/gavin_imap" "/var/spool/mail/gavin_imap " Hope this helps. Gavin. From drk@doctornet.at Thu Oct 16 15:53:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4E90E238A8; Thu, 16 Oct 2003 15:53:47 +0300 (EEST) Received: from hoedlmayr (chello080110026181.205.12.tuwien.teleweb.at [80.110.26.181]) by danu.procontrol.fi (Postfix) with ESMTP id 205712385D for ; Thu, 16 Oct 2003 15:53:15 +0300 (EEST) Received: from dwh.doctornet.at ([192.168.0.5] ident=mail) by hoedlmayr with esmtp (Exim 3.35 #1 (Debian)) id 1AA7cq-00013f-00 for ; Thu, 16 Oct 2003 14:53:08 +0200 Received: from drk by dwh.doctornet.at with local (Exim 3.36 #1 (Debian)) id 1AA7cn-0000a9-00 for ; Thu, 16 Oct 2003 14:53:05 +0200 Date: Thu, 16 Oct 2003 14:53:05 +0200 From: Krammer Clemens To: dovecot@procontrol.fi Message-ID: <20031016125302.GB31215@dwh.doctornet.at> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline Organisation: Doctornet.at User-Agent: Mutt/1.5.4i Sender: Krammer Clemens Subject: [Dovecot] exchange, dovecot, mutt, evolution X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 12:53:47 -0000 X-UID: 1752 Status: O Dear all, When I "migrate" my outlook folders to imapd (dovecot) it works well from a Windoze perspective, but if I open a migrated folder via imap (mutt, evolution) a cannot see the Senders. If i open the folder locally via mutt, the Senders are displayed correctly. By examining one folder with vi I recognised that there are no valid From headers but Return-Paths. Is there a common way to see the senders when connecting with imap? Best Regards, Clemens From jaekel@webgods.de Thu Oct 16 17:17:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B8305238A8; Thu, 16 Oct 2003 17:17:08 +0300 (EEST) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by danu.procontrol.fi (Postfix) with ESMTP id 32E302385D for ; Thu, 16 Oct 2003 17:16:34 +0300 (EEST) Received: from ANDREAS-M5LES2F.webgods.de (rz-gw.cronon.net [192.166.192.225]) by fredda.webgods.de (Postfix) with ESMTP id DC00813C007 for ; Thu, 16 Oct 2003 16:16:31 +0200 (CEST) Message-Id: <5.2.1.1.0.20031016155732.03530f90@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Thu, 16 Oct 2003 16:14:21 +0200 To: dovecot@procontrol.fi From: Andreas Jaekel Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: [Dovecot] A view quirks X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 14:17:09 -0000 X-UID: 1753 Status: O Content-Length: 1324 Aloha Timo. I found a few odd things while playing with dovecot. At least one of them bugs me, but it might be a result of my own patches - I haven't testet it with mbox or maildir, yet. The details :) 1. * OK dovecot ready. A = ( Connection closed by foreign host. 2. * OK dovecot ready. A001 LOGIN xxxxxx xxxxxx A001 OK Logged in. A002 COPY 1 INBOX Connection closed by foreign host. (segfault) 3. [...] A003 SEARCH SUBJECT "test" * SEARCH 1 A003 OK Search completed. A004 SEARCH SUBJECT {6} + OK "test" * SEARCH A004 OK Search completed. I think these two searches should give identical results. 4. (my current nemesis) A002 CREATE bla A003 SELECT INBOX A004 COPY 1 bla A005 SELECT bla A006 COPY 1 bla * NO Internal error [2003-10-16 16:07:21] A006 OK Copy completed. If I copy from the current folder to the current folder I get a scrambled mailbox and an error. This might be selfmade, though. I'm currently trying to find this bug, but the various layers of [_oi]streams and callback and function pointer structs do not help :) I think the stream routines hide the mstream(istream(realstream(iostream))) and the ostream(_ostream(iostream)) behind the same file descriptor and the data gets written to the wrong position. BTW: what exactly is "max_pos"? Greetings and thanks! Andy From tss@iki.fi Thu Oct 16 18:19:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 353C4238A8; Thu, 16 Oct 2003 18:19:06 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9277423866 for ; Thu, 16 Oct 2003 18:18:32 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5246D5C25CD0 for ; Thu, 16 Oct 2003 18:18:32 +0300 (EEST) Subject: Re: [Dovecot] Dovecot pop3 and Outlook Express timeout From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1202.128.171.104.130.1065663245.squirrel@togami.com> References: <000f01c38dd5$fe4ebf70$2401a8c0@MELON> <1202.128.171.104.130.1065663245.squirrel@togami.com> Content-Type: text/plain Message-Id: <1066317512.26594.303.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 16 Oct 2003 18:18:32 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 15:19:06 -0000 X-UID: 1754 Status: O On Thu, 2003-10-09 at 04:34, Warren Togami wrote: > Any idea what could be happening here? They insist that Outlook Express > constant times out when trying to download POP3 from the latest stable > dovecot. No idea .. Is it authentication problem or does Dovecot just get stuck later when trying to download messages? From tss@iki.fi Thu Oct 16 18:21:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0FAAC238C7; Thu, 16 Oct 2003 18:21:07 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 38133238A8 for ; Thu, 16 Oct 2003 18:20:34 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 0A5035C25CD0 for ; Thu, 16 Oct 2003 18:20:34 +0300 (EEST) Subject: Re: [Dovecot] dovecot crashes on start From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F84B8CE.6040503@ovis.net> References: <3F8355D3.3010304@ovis.net> <1065658222.1376.48.camel@hurina> <3F84B8CE.6040503@ovis.net> Content-Type: text/plain Message-Id: <1066317633.26593.306.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 16 Oct 2003 18:20:33 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 15:21:07 -0000 X-UID: 1755 Status: O On Thu, 2003-10-09 at 04:24, Timothy wrote: > I think I found the problem. The second trace had this line. > > [pid 14987] writev(2, [{"dovecot-auth", 12}, {": ", 2}, {"error while > loading shared libra"..., 36}, {": ", 2}, {"libpq.so.3", 10}, {": ", > 2}, {"cannot open shared object file", 30}, {": ", 2}, > {"No such file or directory", 25}, {"\n", 1}], 10 > > so I added /usr/local/pgsql/lib into /etc/ld.so.conf and ran ldconfig. > I now have running dovecot processes. I apologize for wasting your time. I think I'll have to change the logging a bit, so that anything written to stderr will go into log file.. Then these kind of problems could be noticed easily. From tss@iki.fi Thu Oct 16 18:26:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B04C9238C7; Thu, 16 Oct 2003 18:26:59 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D1332238C6 for ; Thu, 16 Oct 2003 18:26:27 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 95CC75C25CD0 for ; Thu, 16 Oct 2003 18:26:27 +0300 (EEST) Subject: Re: [Dovecot] Ignore purge and delete command From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3F8AF2D1.26309.210D2BA@localhost> References: <3F8AF2D1.26309.210D2BA@localhost> Content-Type: text/plain Message-Id: <1066317987.26589.311.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 16 Oct 2003 18:26:27 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 15:26:59 -0000 X-UID: 1756 Status: O On Mon, 2003-10-13 at 13:45, vikrant@linmark.com wrote: > Hi, > > Does anyone know how to ignore the purge or delete command > from the imap clients. > > Actually I created a mail archive and using dovecot and so far I am > happy with the performance. But the problem I am facing right now > is I do not want the users to delete the mail by themselves and want > to disable the purge or delete command. Instead of ignoring some commands, how about just changing the file permissions to read-only? 0.99.10 already should support that well with mbox. Dovecot-list's IMAP archives are also implemented so that the imap user has only read access to everything except for index files which are located elsewhere. From tss@iki.fi Thu Oct 16 18:35:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E2C53238CB; Thu, 16 Oct 2003 18:35:10 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C7BE5238C6 for ; Thu, 16 Oct 2003 18:34:37 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 88F725C25CD0 for ; Thu, 16 Oct 2003 18:34:37 +0300 (EEST) Subject: Re: [Dovecot] Ordering mailboxes From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1066318477.26597.317.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 16 Oct 2003 18:34:37 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 15:35:11 -0000 X-UID: 1757 Status: O On Tue, 2003-10-14 at 03:02, Ian Marlier wrote: > I compiled dovecot 0.99.10 on two different systems: a linux-ppc box running > Debian, and a Mac OS X Server v. 10.2.8. It compiled fine on both. > > The same Maildir's are being served up on both -- the OS X server exports > home directories to the clients via NFS. > > And the Debian box orders mailboxes this way: > INBOX > INBOX/Deleted Items > INBOX/Sent Items Where did you get these names? Dovecot uses '.' instead of '/' as separator and it doesn't support showing mailboxes under INBOX. In CVS both are possible though. I think the explanation is simply.. > -rw------- 1 marlier staff 296206 Oct 13 19:40 bincimap-cache > -rw------- 1 marlier staff 534 Sep 22 17:45 bincimap-subscribed > -rw------- 1 marlier staff 197 Sep 16 21:38 bincimap-subscribed.old > -rw------- 1 marlier staff 59 Oct 13 19:40 bincimap-uidvalidity .. that you're still running bincimap in your Debian server :) From tss@iki.fi Thu Oct 16 18:39:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AF81F238D1; Thu, 16 Oct 2003 18:39:59 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D3C1D238C6 for ; Thu, 16 Oct 2003 18:39:27 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 953CF5C25CD0 for ; Thu, 16 Oct 2003 18:39:27 +0300 (EEST) Subject: Re: [Dovecot] problem getting mail from mbox From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <78BEEC14-FEB9-11D7-AB9B-000393BE445A@estey.com> References: <78BEEC14-FEB9-11D7-AB9B-000393BE445A@estey.com> Content-Type: text/plain Message-Id: <1066318767.26594.322.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 16 Oct 2003 18:39:27 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 15:39:59 -0000 X-UID: 1758 Status: O On Wed, 2003-10-15 at 05:44, Gavin Estey wrote: > I'm trying to set up dovecot and I'm running into a few problems. > > I just want to use IMAP for one user, everyone else gets POP3 from the > existing (working server). > > $MAIL is set to /var/spool/mail/gavin_imap You mean default_mail_env setting in config file too? > In my /var/spool/mail directory I now have a problem: > > -rw------- 1 gavin_im mail 1392 Oct 14 22:28 gavin_imap > -rw------- 1 gavin_im popusers 0 Oct 14 21:54 gavin_imap How are there two gavin_imap files? They probably have spaces or something after the name? You probably added space at the end of default_mail_env in config file which is causing the problems? > info_log_path = /tmp/dovecot > > -rw------- 1 root root 4436 Oct 14 22:40 dovecot > > [root@chicken tmp]# cat dovecot > cat: dovecot: No such file or directory Maybe the same space problem? BTW. Next version will ignore the spaces automatically. From tss@iki.fi Thu Oct 16 18:44:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B6360238D2; Thu, 16 Oct 2003 18:44:04 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E24BD238C6 for ; Thu, 16 Oct 2003 18:43:32 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 89F2B5C25CD0 for ; Thu, 16 Oct 2003 18:43:28 +0300 (EEST) Subject: Re: [Dovecot] exchange, dovecot, mutt, evolution From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20031016125302.GB31215@dwh.doctornet.at> References: <20031016125302.GB31215@dwh.doctornet.at> Content-Type: text/plain Message-Id: <1066319008.26596.325.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 16 Oct 2003 18:43:28 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 15:44:04 -0000 X-UID: 1759 Status: O On Thu, 2003-10-16 at 15:53, Krammer Clemens wrote: > When I "migrate" my outlook folders to imapd (dovecot) it works well > from a Windoze perspective, but if I open a migrated folder via imap > (mutt, evolution) a cannot see the Senders. If i open the folder locally > via mutt, the Senders are displayed correctly. By examining one folder > with vi I recognised that there are no valid From headers but > Return-Paths. Is there a common way to see the senders when connecting > with imap? Umm. Why aren't there From headers? That's the explanation then.. Anyway IMAP specifications don't allow server to grab the sender from Return-Path header, and I'm not sure if it's such a good idea anyway. I guess Outlook does it somehow differently than other clients. From jaekel@webgods.de Thu Oct 16 19:09:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 58B32238C9; Thu, 16 Oct 2003 19:09:03 +0300 (EEST) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by danu.procontrol.fi (Postfix) with ESMTP id 8DF5F238C5 for ; Thu, 16 Oct 2003 19:08:31 +0300 (EEST) Received: from ANDREAS-M5LES2F.webgods.de (rz-gw.cronon.net [192.166.192.225]) by fredda.webgods.de (Postfix) with ESMTP id EB82413C007 for ; Thu, 16 Oct 2003 18:08:30 +0200 (CEST) Message-Id: <5.2.1.1.0.20031016180203.0354b798@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Thu, 16 Oct 2003 18:06:21 +0200 To: dovecot@procontrol.fi From: Andreas Jaekel Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: [Dovecot] Copy from INBOX to INBOX corrupts file X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 16:09:03 -0000 X-UID: 1760 Status: O Aloha, again, Timo. Concerning the problem of copying within one folder... I'm still not sure it's not a problem I created myself, but I think it's caused by the use of the buffered IO routines in ostream-file.c ... you use io_add() to schedule write operations for later while simultanously reading new chunks from the very same file. This seems to confuse dovecot and make it write the copy to the strangest locations. I think when working within one folder I should use either blocking IO or a lot of calls to o_stream_flush()... what do you think? Greetings, Andy From tss@iki.fi Thu Oct 16 19:13:21 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F2839238D6; Thu, 16 Oct 2003 19:13:20 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5389F238C5 for ; Thu, 16 Oct 2003 19:12:48 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 09E4C5C25CD0 for ; Thu, 16 Oct 2003 19:12:48 +0300 (EEST) Subject: Re: [Dovecot] A view quirks From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <5.2.1.1.0.20031016155732.03530f90@fredda.webgods.de> References: <5.2.1.1.0.20031016155732.03530f90@fredda.webgods.de> Content-Type: text/plain Message-Id: <1066320767.26596.353.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 16 Oct 2003 19:12:47 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 16:13:21 -0000 X-UID: 1761 Status: O Content-Length: 2691 On Thu, 2003-10-16 at 17:14, Andreas Jaekel wrote: > 1. > > * OK dovecot ready. > A = ( > Connection closed by foreign host. Fixed. It always disconnected if there was an error in the IMAP command syntax. > 2. > > * OK dovecot ready. > A001 LOGIN xxxxxx xxxxxx > A001 OK Logged in. > A002 COPY 1 INBOX > Connection closed by foreign host. > (segfault) Fixed. > 3. > > [...] > A003 SEARCH SUBJECT "test" > * SEARCH 1 > A003 OK Search completed. > A004 SEARCH SUBJECT {6} > + OK > "test" > * SEARCH > A004 OK Search completed. > > I think these two searches should give identical results. No. First you are searching for test without quotes. Then you are searching for "test" with quotes. Correct way would be {4}\r\ntest, or SEARCH SUBJECT "\"test\"". > 4. (my current nemesis) > > A002 CREATE bla > A003 SELECT INBOX > A004 COPY 1 bla > A005 SELECT bla > A006 COPY 1 bla > * NO Internal error [2003-10-16 16:07:21] > A006 OK Copy completed. > > If I copy from the current folder to the current folder I get > a scrambled mailbox and an error. This might be selfmade, though. Yeah. It's in my TODO list too. Problem is that it uses the same file descriptor for both reading and writing and the seek offsets get mixed up. This could be fixed by always seeking to correct position, but that's a bit annoying since either you have to do it always (unnecessary nearly always) or add some extra kludgy checks. You could also be just reading with mmap() or pread() but I'm not sure if it's a good idea to rely on them either. > I'm currently trying to find this bug, but the various layers of > [_oi]streams and callback and function pointer structs do not help :) > I think the stream routines hide the mstream(istream(realstream(iostream))) > and the ostream(_ostream(iostream)) behind the same file descriptor > and the data gets written to the wrong position. Yes, the stream stuff is kind of ugly and difficult to follow. Maybe still has some bugs too.. Cleaning them up would be a good idea, but I'm not sure if I know how. I don't think the class system is too bad though, you can't do it much better with C. > BTW: what exactly is "max_pos"? You mean high_pos? It's .. um.. some kludge.. that I added to fix some problem.. :) I think it went: Normally "pos" contains the amount of data that has been read from the underlying stream. But when you temporarily set a read limit, it has to shrink "pos" as well or things break. So "high_pos" is there just to remember what the "pos" was before any read limits. It should work so that istream.c does every stream's buffering. The istream-*.c then just provide a way to fill the buffer and seek around in the stream. From tss@iki.fi Thu Oct 16 19:16:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 372D8238C9; Thu, 16 Oct 2003 19:16:32 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A6181238C5 for ; Thu, 16 Oct 2003 19:15:58 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id CF3F65C25CD0 for ; Thu, 16 Oct 2003 19:15:53 +0300 (EEST) Subject: Re: [Dovecot] Copy from INBOX to INBOX corrupts file From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <5.2.1.1.0.20031016180203.0354b798@fredda.webgods.de> References: <5.2.1.1.0.20031016180203.0354b798@fredda.webgods.de> Content-Type: text/plain Message-Id: <1066320953.26595.357.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 16 Oct 2003 19:15:53 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 16:16:32 -0000 X-UID: 1762 Status: O On Thu, 2003-10-16 at 19:06, Andreas Jaekel wrote: > Concerning the problem of copying within one folder... > > I'm still not sure it's not a problem I created myself, No, it's with mbox too. > but I think it's caused by the use of the buffered IO > routines in ostream-file.c ... you use io_add() to schedule > write operations for later while simultanously reading > new chunks from the very same file. This seems to > confuse dovecot and make it write the copy to the > strangest locations. I think when working within one > folder I should use either blocking IO or a lot > of calls to o_stream_flush()... what do you think? I think it is using blocking I/O? I'm not actually sure if Dovecot ever really uses the io_add() there anymore.. mbox-save.c: ctx->output = o_stream_create_file(ibox->index->mbox_fd, default_pool, 4096, FALSE); o_stream_set_blocking(ctx->output, 60000, NULL, NULL); From gavin@estey.com Thu Oct 16 19:20:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ABE5F238E1; Thu, 16 Oct 2003 19:20:00 +0300 (EEST) Received: from chicken.bock.com (unknown [64.30.29.62]) by danu.procontrol.fi (Postfix) with ESMTP id 3CF41238C5 for ; Thu, 16 Oct 2003 19:19:27 +0300 (EEST) Received: from gavinw2k ([64.30.29.43]) (authenticated) by chicken.bock.com (8.11.6/8.11.6) with ESMTP id h9GGJJ217702; Thu, 16 Oct 2003 12:19:20 -0400 Message-ID: <00c301c39401$473c05e0$2b1d1e40@gavinw2k> From: "Gavin Estey" To: "Timo Sirainen" , References: <78BEEC14-FEB9-11D7-AB9B-000393BE445A@estey.com> <1066318767.26594.322.camel@hurina> Subject: Re: [Dovecot] problem getting mail from mbox Date: Thu, 16 Oct 2003 12:19:30 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 16:20:00 -0000 X-UID: 1763 Status: O On Thursday, October 16, 2003 11:39 AM, Timo Sirainen wrote: > How are there two gavin_imap files? They probably have spaces or > something after the name? > > You probably added space at the end of default_mail_env in config file > which is causing the problems? > That's it! Thanks. Everything is working fine now. Gavin. From tss@iki.fi Thu Oct 16 19:26:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1E3F323993; Thu, 16 Oct 2003 19:26:31 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F2F22238E1 for ; Thu, 16 Oct 2003 19:25:57 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 67DE15C25CD0 for ; Thu, 16 Oct 2003 19:25:51 +0300 (EEST) Subject: Re: [Dovecot] Re: Darwin Build (cvs) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1066321551.26595.359.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Thu, 16 Oct 2003 19:25:51 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 16:26:31 -0000 X-UID: 1764 Status: O On Thu, 2003-10-09 at 21:17, Jesse Peterson wrote: > > Anyway, building from CVS requires some more packages to install which > > aren't needed if you stick with tarballs. I could also build a new test > > tarball if you need :) > > > > This would be great. Maybe an automatically posted daily snapshot? http://dovecot.fi/nightly/ From canfield@uindy.edu Fri Oct 17 19:29:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 40DB7238CE; Fri, 17 Oct 2003 19:29:12 +0300 (EEST) Received: from mail.uindy.edu (balrog.is.uindy.edu [192.146.191.11]) by danu.procontrol.fi (Postfix) with ESMTP id 09639238C5 for ; Fri, 17 Oct 2003 19:28:39 +0300 (EEST) Received: from [192.146.191.70] (defiant.is.uindy.edu [192.146.191.70]) by mail.uindy.edu (Postfix) with ESMTP id CCE8A53DFB6 for ; Fri, 17 Oct 2003 11:29:14 -0500 (EST) From: D Canfield To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1066408118.10385.69.camel@defiant.is.uindy.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-3) Date: Fri, 17 Oct 2003 11:28:38 -0500 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Shared Folders X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Oct 2003 16:29:12 -0000 X-UID: 1765 Status: O Content-Length: 2089 I was just wondering if any thought has been given to shared folders and how they might be implemented yet? True shared folders are compelling enough to our organization that I've been looking into moving to Cyrus from Courier, but transparent folder migration looks to be nearly impossible for more than a handful of accounts... so that leaves me back at hoping courier or dovecot can eventually do what we want. We have a lot of organizations on campus that have a generic mail address such as "maintenance" of "physics." We don't like the idea of shared accounts (invariably either the mailbox gets forgotten about when a secretary changes, the password gets lost, or everyone on campus ends up with the password), so our policies require such generic accounts to be forwarded to a folder in a "real person's" account. This works well for us, but the users are clamoring for the ability to have more than one person access those folders. The problem with Courier's shared folders is that one person owns the folder and while others can see that mailbox, only the owner has write access. This kills most of the utility of shared folders, except for use as announcement areas. As I understand it, the reason Courier does it this way is that it uses the underlying unix permissions to control access to the mailbox. I'm thinking that even if dovecot uses the same concept for shared folders, it should be possible to allow multiple users to write to the folders if filesystem ACL support is used. At least ext3 and XFS both support ACL's, so there is a reasonable amount of support for them, and they would allow dovecot to give multiple users write access to the folders without having to manage it's own security system. The only issue would be that the delivery agent would have to make sure that that ACLs for a folder are kept consistent... I'm not even sure dovecot has to be ACL-aware. Anyway, if there is a completely different plan in the works, that's great too, but I wanted to at least voice an opinion and offer a suggestion of how to make it work. Thanks DC From sem@ciam.ru Sat Oct 18 10:24:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3B904238D4; Sat, 18 Oct 2003 10:24:43 +0300 (EEST) Received: from hueymiccailhuitl.mtu.ru (hueytecuilhuitl.mtu.ru [195.34.32.123]) by danu.procontrol.fi (Postfix) with ESMTP id 012CB238C6 for ; Sat, 18 Oct 2003 10:24:10 +0300 (EEST) Received: from ciam.ru (ppp139-157.dialup.mtu-net.ru [62.118.139.157]) by hueymiccailhuitl.mtu.ru (Postfix) with ESMTP id 46B22F8461 for ; Sat, 18 Oct 2003 11:24:08 +0400 (MSD) (envelope-from sem@ciam.ru) Message-ID: <3F90EA98.9070208@ciam.ru> Date: Sat, 18 Oct 2003 11:24:08 +0400 From: Sergey Matveychuk User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5b) Gecko/20030827 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] move from imap-uw X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Oct 2003 07:24:43 -0000 X-UID: 1766 Status: O Hello! I've just subscribed and I'd like to ask. Is there any troubles if I change my imap-uw with davecot? Will davecot pick up imap-uw created folders (mboxes)? I use all protocols: imap, imaps, pop and pops. I've seen some problems with mbox was mention on this maillist. What kind of problem? -- Sem. From esj@harvee.org Sat Oct 18 15:41:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BF538238D4; Sat, 18 Oct 2003 15:41:32 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 1994F238C5 for ; Sat, 18 Oct 2003 15:40:58 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id h9ICeiMY026678; Sat, 18 Oct 2003 08:40:45 -0400 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Sat, 18 Oct 2003 08:40:38 -0400 Message-ID: <3F913439.2030300@harvee.org> Date: Sat, 18 Oct 2003 08:38:17 -0400 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Sergey Matveychuk Subject: Re: [Dovecot] move from imap-uw References: <3F90EA98.9070208@ciam.ru> In-Reply-To: <3F90EA98.9070208@ciam.ru> X-Enigmail-Version: 0.76.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Camram: stamp; 0:031018:sem@ciam.ru:8ec612df4196ac91 X-Camram: stamp; 0:031018:dovecot@procontrol.fi:885e3d53636acbd9 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Oct 2003 12:41:32 -0000 X-UID: 1767 Status: O Content-Length: 1194 Sergey Matveychuk explained: > Hello! > > I've just subscribed and I'd like to ask. Is there any troubles if I > change my imap-uw with davecot? Will davecot pick up imap-uw created > folders (mboxes)? I use all protocols: imap, imaps, pop and pops. > > I've seen some problems with mbox was mention on this maillist. What > kind of problem? the only problem I had (and it was severe enough to push me back to UW) was that client side filtering seemed to trigger reindexing every time a message was moved. This problem made my e-mail processing very very slow. If I had moved to maildir, I think things would have been a very different story. I will say however that I am quite confident that Timo will solve this problem and also make it trivially easy for people to convert away from mbox to maildir in an opportunistic fashion as they access each mailbox. And I am sitting here with mboxes just waiting to be a guinea pig! It will be also interesting to see the solution for mail delivery when you have a mixture of users accepting mail through /var/spool/mail/XXX and others in home directory maildir. And yes, I know of sites where they need to do this. ---eric From tss@iki.fi Mon Oct 20 08:26:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2802223850; Mon, 20 Oct 2003 08:26:29 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B68A82384E for ; Mon, 20 Oct 2003 08:25:56 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 767CA5C616E3 for ; Mon, 20 Oct 2003 08:25:53 +0300 (EEST) Subject: Re: [Dovecot] Shared Folders From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1066408118.10385.69.camel@defiant.is.uindy.edu> References: <1066408118.10385.69.camel@defiant.is.uindy.edu> Content-Type: text/plain Message-Id: <1066627553.26589.411.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 20 Oct 2003 08:25:53 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Oct 2003 05:26:29 -0000 X-UID: 1768 Status: O Content-Length: 2337 On Fri, 2003-10-17 at 19:28, D Canfield wrote: > I was just wondering if any thought has been given to shared folders and > how they might be implemented yet? Some, but I've thought of it as mostly post-1.0 feature. > The problem with Courier's shared folders is that one person owns the > folder and while others can see that mailbox, only the owner has write > access. This kills most of the utility of shared folders, except for > use as announcement areas. Really? I thought it wanted to set sticky bit to the directory so that others could write there and they would "own" their posts. > As I understand it, the reason Courier does it this way is that it uses > the underlying unix permissions to control access to the mailbox. I'm > thinking that even if dovecot uses the same concept for shared folders, > it should be possible to allow multiple users to write to the folders if > filesystem ACL support is used. At least ext3 and XFS both support > ACL's, so there is a reasonable amount of support for them, and they > would allow dovecot to give multiple users write access to the folders > without having to manage it's own security system. The only issue would > be that the delivery agent would have to make sure that that ACLs for a > folder are kept consistent... I'm not even sure dovecot has to be > ACL-aware. Filesystem ACLs should work just fine at least with CVS code base. The only problem is that currently everyone's message flags would be shared as well. There would be two ways to allow private flags: a) Do it like Courier with symlinking. Kind of ugly and some complain about it taking too much inodes. b) Ignore maildir file flags and just use the flags in index files. Somewhat more easier to get corrupted. b) would probably be quite easy to do. You'd just have to figure out somehow that the mailbox is shared (eg. some empty dovecot-shared file) and then you'd just add a few checks to code so that Dovecot wouldn't try to sync maildir flags. Also I'm not sure how you'd set what permissions new mails would get. group+r or group+rw? Maybe take from the directory's mode? Hmmm.. Is it really that easy? ACL extension itself could be supported later, but filesystem ACLs (even regular UNIX ones) with flags in index files would provide easy and quick way to get shared mailbox support :) From tss@iki.fi Mon Oct 20 09:10:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C4D89238C6; Mon, 20 Oct 2003 09:10:52 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CB712238C5 for ; Mon, 20 Oct 2003 09:10:20 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 98B965C616E2 for ; Mon, 20 Oct 2003 09:10:20 +0300 (EEST) Subject: Re: [Dovecot] Shared Folders From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1066627553.26589.411.camel@hurina> References: <1066408118.10385.69.camel@defiant.is.uindy.edu> <1066627553.26589.411.camel@hurina> Content-Type: text/plain Message-Id: <1066630220.26595.422.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 20 Oct 2003 09:10:20 +0300 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Oct 2003 06:10:52 -0000 X-UID: 1769 Status: O Content-Length: 1256 On Mon, 2003-10-20 at 08:25, Timo Sirainen wrote: > Hmmm.. Is it really that easy? ACL extension itself could be supported > later, but filesystem ACLs (even regular UNIX ones) with flags in index > files would provide easy and quick way to get shared mailbox support :) Done in CVS (also latest in http://dovecot.fi/nightly/): - Create dovecot-shared file to maildir you want to share - dovecot-shared file permissions should be the same as you want to give to new mails (0640 or 0660 probably). Or should this be taken from new/ dir's mode instead? I'm not sure. - It's possible to specify which flags are shared between users and which are private. Currently I've just hardcoded \Seen flag to be private. Any suggestions where and how this should be configured? Maybe inside dovecot-shared file a list of flag names? - Custom flag names can't be private currently. This is a bit problematic situation if you want both private and shared custom flags since then there would have to be two .customflags files.. - ANNOTATE extension supports accessing both shared and private message flags. We don't currently support ANNOTATE, but probably will later. This probably requires changing index files so that it contains both shared and private flags.. From jaekel@webgods.de Tue Oct 21 11:57:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 53AD323855; Tue, 21 Oct 2003 11:57:02 +0300 (EEST) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by danu.procontrol.fi (Postfix) with ESMTP id A071123850 for ; Tue, 21 Oct 2003 11:56:29 +0300 (EEST) Received: from ANDREAS-M5LES2F.webgods.de (rz-gw.cronon.net [192.166.192.225]) by fredda.webgods.de (Postfix) with ESMTP id E7D3813C008; Tue, 21 Oct 2003 10:56:25 +0200 (CEST) Message-Id: <5.2.1.1.0.20031021103035.035493b8@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Tue, 21 Oct 2003 10:50:52 +0200 To: Timo Sirainen , dovecot@procontrol.fi From: Andreas Jaekel Subject: Re: [Dovecot] A view quirks In-Reply-To: <1066320767.26596.353.camel@hurina> References: <5.2.1.1.0.20031016155732.03530f90@fredda.webgods.de> <5.2.1.1.0.20031016155732.03530f90@fredda.webgods.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Oct 2003 08:57:02 -0000 X-UID: 1770 Status: O Content-Length: 2974 Aloha Timo. Thanks for the other fixes. > > If I copy from the current folder to the current folder I get > > a scrambled mailbox and an error. This might be selfmade, though. > >Yeah. It's in my TODO list too. Problem is that it uses the same file >descriptor for both reading and writing and the seek offsets get mixed >up. This could be fixed by always seeking to correct position, but >that's a bit annoying since either you have to do it always (unnecessary >nearly always) or add some extra kludgy checks. You could also be just >reading with mmap() or pread() but I'm not sure if it's a good idea to >rely on them either. Well, always seeking on input and output works, (I tried) except it breaks APPEND, which reads from a socket, which fails seeking, which I have no clean way of knowing since it's all hidden behind the stream wrappers. I think a clean way may be to change the stream wrappers so they remember which streams are dup()s of other streams. Then, on each read or write operation they could consider the 'original stream' a kind of master record in order to store the current cursor position there on every operation. And check -before- every operation wether the master record's pos is equal to their own wanted position. If not, a seek is needed. Somewhat like: if (stream->master_copy->current_pos != stream->current_pos) stream->seek(stream->current_pos); After that the only problem would be to find the master record when creating new streams, but that should be possible. Another possible solution is to change output to always use pwrite(), avoiding the need for seeks completly. >Yes, the stream stuff is kind of ugly and difficult to follow. Maybe >still has some bugs too.. Cleaning them up would be a good idea, but I'm >not sure if I know how. I don't think the class system is too bad >though, you can't do it much better with C. Well, it's quite confusing sometimes, but it's also quite handy. It took me a while to figure out that mstreams make a difference between mail header read() and mail body read(), though :) > > BTW: what exactly is "max_pos"? > >You mean high_pos? It's .. um.. some kludge.. that I added to fix some >problem.. :) I think it went: > >Normally "pos" contains the amount of data that has been read from the >underlying stream. But when you temporarily set a read limit, it has to >shrink "pos" as well or things break. So "high_pos" is there just to >remember what the "pos" was before any read limits. > >It should work so that istream.c does every stream's buffering. The >istream-*.c then just provide a way to fill the buffer and seek around >in the stream. Hmm... when I made my copy of the mbox backend I had to modify my version of i_stream_create_mbox() to add a call to i_stream_seek() after i_stream_set_read_limit(), or else mail_storage_save() would break with unexpected EOF. The reason was that high_pos was != 0, but I don't remember the details anymore. :) From tss@iki.fi Tue Oct 21 13:12:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D698023866; Tue, 21 Oct 2003 13:12:54 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 616882385D for ; Tue, 21 Oct 2003 13:12:22 +0300 (EEST) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2043D5C616E3; Tue, 21 Oct 2003 13:12:22 +0300 (EEST) Subject: Re: [Dovecot] A view quirks From: Timo Sirainen To: Andreas Jaekel In-Reply-To: <5.2.1.1.0.20031021103035.035493b8@fredda.webgods.de> References: <5.2.1.1.0.20031016155732.03530f90@fredda.webgods.de> <5.2.1.1.0.20031016155732.03530f90@fredda.webgods.de> <5.2.1.1.0.20031021103035.035493b8@fredda.webgods.de> Content-Type: text/plain Message-Id: <1066731141.6026.34.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 21 Oct 2003 13:12:21 +0300 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Oct 2003 10:12:55 -0000 X-UID: 1771 Status: O Content-Length: 2184 On Tue, 2003-10-21 at 11:50, Andreas Jaekel wrote: > >that's a bit annoying since either you have to do it always (unnecessary > >nearly always) or add some extra kludgy checks. You could also be just > >reading with mmap() or pread() but I'm not sure if it's a good idea to > >rely on them either. > > > Well, always seeking on input and output works, (I tried) > except it breaks APPEND, which reads from a socket, which > fails seeking, which I have no clean way of knowing since > it's all hidden behind the stream wrappers. There's fstream->file which tells if it's a regular file :) > I think a clean way may be to change the stream wrappers so > they remember which streams are dup()s of other streams. They're not dup()ed, they just use the same file descriptors. But .. hmm. that would be possible, but that's still quite a lot of code for cases which are rarely needed.. > Another possible solution is to change output to always use > pwrite(), avoiding the need for seeks completly. Changing ostream to use pwrite() would require replacing the one writev() call too with multiple pwrite()s, not nice .. :) How about: diff -u -r1.9 istream-file.c --- istream-file.c 26 Aug 2003 21:18:16 -0000 1.9 +++ istream-file.c 21 Oct 2003 10:11:25 -0000 @@ -2,6 +2,8 @@ /* @UNSAFE: whole file */ +#define _XOPEN_SOURCE 500 /* for pread() / Linux */ + #include "lib.h" #include "alarm-hup.h" #include "istream-internal.h" @@ -169,7 +171,15 @@ return -1; } - ret = read(stream->fd, stream->w_buffer + stream->pos, size); + if (fstream->file) { + ret = pread(stream->fd, + stream->w_buffer + stream->pos, size, + stream->istream.start_offset + + stream->istream.v_offset); + } else { + ret = read(stream->fd, + stream->w_buffer + stream->pos, size); + } if (ret == 0) { /* EOF */ stream->istream.stream_errno = 0; From gmid-dovecot@m.gmane.org Tue Oct 21 15:07:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DFA8C238A8; Tue, 21 Oct 2003 15:07:28 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by danu.procontrol.fi (Postfix) with ESMTP id 114F92385D for ; Tue, 21 Oct 2003 15:06:56 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1ABvHr-0007FF-00 for ; Tue, 21 Oct 2003 14:06:55 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@procontrol.fi Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1ABvHq-0007F7-00 for ; Tue, 21 Oct 2003 14:06:54 +0200 Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 1ABvHq-0004x1-00 for ; Tue, 21 Oct 2003 14:06:54 +0200 From: Matthias Andree Date: Tue, 21 Oct 2003 01:31:17 +0200 Lines: 20 Message-ID: References: <1066408118.10385.69.camel@defiant.is.uindy.edu> <1066627553.26589.411.camel@hurina> <1066630220.26595.422.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.2 (gnu/linux) Cancel-Lock: sha1:dyL0GpfP9Y0nOVnwaUc3SqH+3I8= Sender: news Subject: [Dovecot] Re: Shared Folders X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Oct 2003 12:07:29 -0000 X-UID: 1772 Status: O Timo Sirainen writes: > On Mon, 2003-10-20 at 08:25, Timo Sirainen wrote: >> Hmmm.. Is it really that easy? ACL extension itself could be supported >> later, but filesystem ACLs (even regular UNIX ones) with flags in index >> files would provide easy and quick way to get shared mailbox support :) > > Done in CVS (also latest in http://dovecot.fi/nightly/): Makes me wonder what your release plans are. I'm still running v0.99.10 with NAMESPACE patch + extension which sorta works but sometimes confuses Mozilla (known issue). Should I hold my breath for the next version? :-) -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95 From jaekel@webgods.de Tue Oct 21 17:28:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4D6DE23866; Tue, 21 Oct 2003 17:28:32 +0300 (EEST) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by danu.procontrol.fi (Postfix) with ESMTP id CCA1A2385D for ; Tue, 21 Oct 2003 17:27:58 +0300 (EEST) Received: from ANDREAS-M5LES2F.webgods.de (rz-gw.cronon.net [192.166.192.225]) by fredda.webgods.de (Postfix) with ESMTP id 30E2E13C008; Tue, 21 Oct 2003 16:27:58 +0200 (CEST) Message-Id: <5.2.1.1.0.20031021161706.03651080@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Tue, 21 Oct 2003 16:25:49 +0200 To: Timo Sirainen , dovecot@procontrol.fi From: Andreas Jaekel Subject: Re: [Dovecot] A view quirks In-Reply-To: <1066731141.6026.34.camel@hurina> References: <5.2.1.1.0.20031021103035.035493b8@fredda.webgods.de> <5.2.1.1.0.20031016155732.03530f90@fredda.webgods.de> <5.2.1.1.0.20031016155732.03530f90@fredda.webgods.de> <5.2.1.1.0.20031021103035.035493b8@fredda.webgods.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Oct 2003 14:28:32 -0000 X-UID: 1773 Status: O Content-Length: 2295 Aloha. >here's fstream->file which tells if it's a regular file :) Oooh, nice! But does that work outside ostream.c? :) >They're not dup()ed, they just use the same file descriptors. But .. >hmm. that would be possible, but that's still quite a lot of code for >cases which are rarely needed.. But it'd be clean and the way to avoid the largest number of syscalls if pread/pwrite are not an option. > > Another possible solution is to change output to always use > > pwrite(), avoiding the need for seeks completly. > >Changing ostream to use pwrite() would require replacing the one >writev() call too with multiple pwrite()s, not nice .. :) > >How about: [...] Thank you for the patch. It worked, except for two little things: 1. I don't use Linux, so the #define for pseek broke the compile and 2. I had to remove the lseek() call in _read(), which was the whole point in using pread() :) In mbox folders this wouldn't have mattered since the loop is written in a way that assumes mail 4 starts exactly where mail 3 ends, which is not true for my case. This worked for me: --- ../dovecot/src/lib/istream-file.c Tue Aug 26 23:18:16 2003 +++ ./src/lib/istream-file.c Tue Oct 21 16:18:55 2003 @@ -169,7 +169,15 @@ return -1; } - ret = read(stream->fd, stream->w_buffer + stream->pos, size); + if (fstream->file) { + ret = pread(stream->fd, + stream->w_buffer + stream->pos, size, + stream->istream.start_offset + + stream->istream.v_offset); + } else { + ret = read(stream->fd, + stream->w_buffer + stream->pos, size); + } if (ret == 0) { /* EOF */ stream->istream.stream_errno = 0; @@ -228,7 +236,7 @@ stream->istream.stream_errno = EOVERFLOW; ret = -1; } else { - ret = lseek(stream->fd, (off_t)real_offset, SEEK_SET); + ret = (off_t)real_offset; if (ret < 0) stream->istream.stream_errno = errno; else if (ret != (off_t)real_offset) { From tss@iki.fi Tue Oct 21 18:00:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2B66A23866; Tue, 21 Oct 2003 18:00:22 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id DA40123855; Tue, 21 Oct 2003 18:00:15 +0300 (EEST) Date: Tue, 21 Oct 2003 18:00:39 +0300 Subject: Re: [Dovecot] A view quirks Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: Andreas Jaekel From: Timo Sirainen In-Reply-To: <5.2.1.1.0.20031021161706.03651080@fredda.webgods.de> Message-Id: <555A3C5C-03D7-11D8-8D59-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Oct 2003 15:00:22 -0000 X-UID: 1774 Status: O Content-Length: 1155 On Tuesday, Oct 21, 2003, at 17:25 Europe/Helsinki, Andreas Jaekel wrote: >> here's fstream->file which tells if it's a regular file :) > > Oooh, nice! But does that work outside ostream.c? :) I haven't seen a reason to make it visible outside .. >> They're not dup()ed, they just use the same file descriptors. But .. >> hmm. that would be possible, but that's still quite a lot of code for >> cases which are rarely needed.. > > But it'd be clean and the way to avoid the largest number of > syscalls if pread/pwrite are not an option. Yes, but is it really a problem? I just started thinking that pread/pwrite are probably supported by pretty much all new operating systems. Do we need to add lots of kludgeing for some old systems? > hank you for the patch. It worked, except for two little things: > > 1. I don't use Linux, so the #define for pseek broke > the compile and Oh .. I was thinking too that it might cause problems somewhere.. > 2. I had to remove the lseek() call in _read(), which was > the whole point in using pread() :) Well .. I left it there because I thought it might be useful in some cases .. well, maybe not :) From tss@iki.fi Tue Oct 21 18:03:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ACA8023866; Tue, 21 Oct 2003 18:03:04 +0300 (EEST) Received: from iki.fi (unknown [192.168.123.201]) by danu.procontrol.fi (Postfix) with ESMTP id 459FE23855 for ; Tue, 21 Oct 2003 18:03:03 +0300 (EEST) Date: Tue, 21 Oct 2003 18:03:27 +0300 Subject: Re: [Dovecot] Re: Shared Folders Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.552) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Oct 2003 15:03:04 -0000 X-UID: 1775 Status: O On Tuesday, Oct 21, 2003, at 02:31 Europe/Helsinki, Matthias Andree wrote: >> Done in CVS (also latest in http://dovecot.fi/nightly/): > > Makes me wonder what your release plans are. When it works. My logs are still showing some weird errors. There are also some other known bugs that I should fix and a few features that really have to be implemented. From jaekel@webgods.de Tue Oct 21 18:45:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1D30D23866; Tue, 21 Oct 2003 18:45:41 +0300 (EEST) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by danu.procontrol.fi (Postfix) with ESMTP id 95BF523855 for ; Tue, 21 Oct 2003 18:45:05 +0300 (EEST) Received: from ANDREAS-M5LES2F.webgods.de (rz-gw.cronon.net [192.166.192.225]) by fredda.webgods.de (Postfix) with ESMTP id B8AAC13C003; Tue, 21 Oct 2003 17:45:04 +0200 (CEST) Message-Id: <5.2.1.1.0.20031021170022.035c5ec0@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Tue, 21 Oct 2003 17:42:56 +0200 To: Timo Sirainen , dovecot@procontrol.fi From: Andreas Jaekel Subject: Re: [Dovecot] A view quirks In-Reply-To: <555A3C5C-03D7-11D8-8D59-000393CC2E90@iki.fi> References: <5.2.1.1.0.20031021161706.03651080@fredda.webgods.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Oct 2003 15:45:41 -0000 X-UID: 1776 Status: O >>2. I had to remove the lseek() call in _read(), which was >>the whole point in using pread() :) > >Well .. I left it there because I thought it might be useful in some cases >.. well, maybe not :) > I get some odd behaviour now which will have me testing and searching for a while, I guess. :) BTW: is it possible that the current CVS checkout does not include the pwrite() and can not COPY mails do empty folders? From mem@mv.mv.com Tue Oct 21 19:54:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 42A8F2385D; Tue, 21 Oct 2003 19:54:13 +0300 (EEST) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by danu.procontrol.fi (Postfix) with SMTP id 58BBC23855 for ; Tue, 21 Oct 2003 19:53:39 +0300 (EEST) Received: (qmail 22668 invoked from network); 21 Oct 2003 12:53:37 -0400 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 21 Oct 2003 12:53:37 -0400 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 24386 invoked by uid 101); 21 Oct 2003 12:53:37 -0400 From: "Mark E. Mallett" Date: Tue, 21 Oct 2003 12:53:37 -0400 To: Matthias Andree Subject: Re: [Dovecot] Re: Shared Folders Message-ID: <20031021165337.GG28809@iridium.mv.net> References: <1066408118.10385.69.camel@defiant.is.uindy.edu> <1066627553.26589.411.camel@hurina> <1066630220.26595.422.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Oct 2003 16:54:13 -0000 X-UID: 1777 Status: O On Tue, Oct 21, 2003 at 01:31:17AM +0200, Matthias Andree wrote: > Timo Sirainen writes: > > > On Mon, 2003-10-20 at 08:25, Timo Sirainen wrote: > >> Hmmm.. Is it really that easy? ACL extension itself could be supported > >> later, but filesystem ACLs (even regular UNIX ones) with flags in index > >> files would provide easy and quick way to get shared mailbox support :) > > > > Done in CVS (also latest in http://dovecot.fi/nightly/): > > Makes me wonder what your release plans are. > > I'm still running v0.99.10 with NAMESPACE patch + extension which sorta > works but sometimes confuses Mozilla (known issue). still running 0.99.10-rc4 here too. I have to restart it now and again because of a file descriptor leak (which I believe has been fixed in later code), but it continues to do the job. I'd move to a later rev when the mbox code is working again, but there are no other glaring issues for me and no real pressure. mm From lists@netxp.com.au Wed Oct 22 13:12:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4934A23866; Wed, 22 Oct 2003 13:12:11 +0300 (EEST) Received: from phil.netxp.com.au (dsl-2.217.240.220.dsl.comindico.com.au [220.240.217.2]) by danu.procontrol.fi (Postfix) with ESMTP id CE05423855 for ; Wed, 22 Oct 2003 13:11:38 +0300 (EEST) Received: from netxp.com.au (unknown [192.168.101.15]) by phil.netxp.com.au (Postfix) with ESMTP id A4A7BEE52E for ; Wed, 22 Oct 2003 20:12:21 +1000 (EST) Message-ID: <3F965803.2090005@netxp.com.au> Date: Wed, 22 Oct 2003 20:12:19 +1000 From: "lists@netxp.com.au" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3b) Gecko/20030210 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] root privilidge issues? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: lists@netxp.com.au List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Oct 2003 10:12:11 -0000 X-UID: 1778 Status: O hi all, i am migrating from imap-uw to dovecot on a freebsd machine and i am getting this error message: imap(phil): Oct 22 19:24:01 Fatal: We couldn't drop root group privileges imap-login: Oct 22 19:24:01 Info: Login: phil [220.240.217.2] dovecot: Oct 22 19:24:01 Error: child 1019 (imap) returned error 89 when it trie manually logining in this is what i see telnet localhost 143 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK dovecot ready. 1 login phil password 1 OK Logged in. Connection closed by foreign host. any ideas? thansk in advance phil From sem@ciam.ru Fri Oct 24 06:20:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0F51423866; Fri, 24 Oct 2003 06:20:04 +0300 (EEST) Received: from hueymiccailhuitl.mtu.ru (hueytecuilhuitl.mtu.ru [195.34.32.123]) by danu.procontrol.fi (Postfix) with ESMTP id A52C523855 for ; Fri, 24 Oct 2003 06:19:29 +0300 (EEST) Received: from ciam.ru (ppp129-176.dialup.mtu-net.ru [62.118.129.176]) by hueymiccailhuitl.mtu.ru (Postfix) with ESMTP id 084C3FE1CC; Fri, 24 Oct 2003 07:19:22 +0400 (MSD) (envelope-from sem@ciam.ru) Message-ID: <3F9899C6.5080806@ciam.ru> Date: Fri, 24 Oct 2003 07:17:26 +0400 From: Sergey Matveychuk User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: en-us, en MIME-Version: 1.0 To: lists@netxp.com.au Subject: Re: [Dovecot] root privilidge issues? References: <3F965803.2090005@netxp.com.au> In-Reply-To: <3F965803.2090005@netxp.com.au> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Oct 2003 03:20:04 -0000 X-UID: 1779 Status: O lists@netxp.com.au wrote: > hi all, > > i am migrating from imap-uw to dovecot on a freebsd machine > and i am getting this error message: > > imap(phil): Oct 22 19:24:01 Fatal: We couldn't drop root group privileges > imap-login: Oct 22 19:24:01 Info: Login: phil [220.240.217.2] > dovecot: Oct 22 19:24:01 Error: child 1019 (imap) returned error 89 You're in root (wheel) group with gid=0. Change it in passwd file to any other gid and add yourself in wheel group in /etc/group file. ---- Sem. From admin@xantara.co.uk Mon Oct 27 15:02:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C020D23866; Mon, 27 Oct 2003 15:02:18 +0200 (EET) Received: from neuron.xantara.co.uk (neuron.xantara.co.uk [212.135.164.120]) by danu.procontrol.fi (Postfix) with ESMTP id BA07023855 for ; Mon, 27 Oct 2003 15:01:45 +0200 (EET) Received: from nitro.xantara.co.uk ([212.135.164.121]) by neuron.xantara.co.uk with asmtp (TLSv1:RC4-SHA:128) (Exim 4.20) id 1AE705-0000GP-22 for dovecot@procontrol.fi; Mon, 27 Oct 2003 13:01:37 +0000 Mime-Version: 1.0 (Apple Message framework v606) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: text/plain; charset=US-ASCII; format=flowed To: dovecot@procontrol.fi From: Steve Gare Date: Mon, 27 Oct 2003 13:01:29 +0000 X-Mailer: Apple Mail (2.606) Subject: [Dovecot] SSL Certificate Chains? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Oct 2003 13:02:18 -0000 X-UID: 1780 Status: O Hi, Just a quicky, I can't see anything about how Dovecot handles certificate chains. 1, Does it handle them? 2, How, if if does? (Just got a cert from www.instantssl.com and I need there intermediate cert do validate it.., Works fine with Apache and Exim ) Cheers, Steve Gare - Xantara.Net -- 0845 123 5707 From jaekel@webgods.de Tue Oct 28 13:42:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A200D23866; Tue, 28 Oct 2003 13:42:36 +0200 (EET) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by danu.procontrol.fi (Postfix) with ESMTP id 1A2AF23855 for ; Tue, 28 Oct 2003 13:42:03 +0200 (EET) Received: from ANDREAS-M5LES2F.webgods.de (rz-gw.cronon.net [192.166.192.225]) by fredda.webgods.de (Postfix) with ESMTP id 1246413C003; Tue, 28 Oct 2003 12:42:00 +0100 (CET) Message-Id: <5.2.1.1.0.20031028114232.02b67530@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Tue, 28 Oct 2003 12:39:18 +0100 To: Timo Sirainen , dovecot@procontrol.fi From: Andreas Jaekel Subject: Re: [Dovecot] Copy from INBOX to INBOX corrupts file In-Reply-To: <1066320953.26595.357.camel@hurina> References: <5.2.1.1.0.20031016180203.0354b798@fredda.webgods.de> <5.2.1.1.0.20031016180203.0354b798@fredda.webgods.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Oct 2003 11:42:36 -0000 X-UID: 1781 Status: O Content-Length: 1838 Aloha Timo. I had some further looks into the folder corruption issue and it looks like non-blocking routines are being used. Could it be possible that you are setting the istream to non-blocking and that influences the ostream's/iostream's timeout_msecs settings? I got rid of the problem by using your pread() patch and doing seeks on output in mail_storage_save() and write_func(). Because ostream-file.c/_read() is somehow thinking ostream is non-blocking I had to do a call to o_stream_flush() after writing the body, too, or else a stray llseek() on input would make me write the body to a very unfortunate position in the file. io_add() is not being used, but the last bits of data were still just being written to an iov and write() was called only after some other operation. At 19:15 16/10/2003 +0300, Timo Sirainen wrote: >On Thu, 2003-10-16 at 19:06, Andreas Jaekel wrote: > > Concerning the problem of copying within one folder... > > > > I'm still not sure it's not a problem I created myself, > >No, it's with mbox too. > > > but I think it's caused by the use of the buffered IO > > routines in ostream-file.c ... you use io_add() to schedule > > write operations for later while simultanously reading > > new chunks from the very same file. This seems to > > confuse dovecot and make it write the copy to the > > strangest locations. I think when working within one > > folder I should use either blocking IO or a lot > > of calls to o_stream_flush()... what do you think? > >I think it is using blocking I/O? I'm not actually sure if Dovecot ever >really uses the io_add() there anymore.. > >mbox-save.c: > ctx->output = o_stream_create_file(ibox->index->mbox_fd, > default_pool, 4096, FALSE); > o_stream_set_blocking(ctx->output, 60000, NULL, NULL); From tss@iki.fi Wed Oct 29 14:57:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 010DA238A8; Wed, 29 Oct 2003 14:57:15 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EA81223850 for ; Wed, 29 Oct 2003 14:56:42 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 814F55C616E3 for ; Wed, 29 Oct 2003 14:56:40 +0200 (EET) Subject: Re: [Dovecot] SSL Certificate Chains? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1067432199.15028.208.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Wed, 29 Oct 2003 14:56:40 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Oct 2003 12:57:16 -0000 X-UID: 1782 Status: O On Mon, 2003-10-27 at 15:01, Steve Gare wrote: > Just a quicky, I can't see anything about how Dovecot handles > certificate chains. > > 1, Does it handle them? > 2, How, if if does? > > (Just got a cert from www.instantssl.com and I need there intermediate > cert do validate it.., Works fine with Apache and Exim ) Dovecot doesn't check client's certificate. It's client's job to check server's certificate and check the chains. Or at least I don't think there's anything special Dovecot should do with them.. From tss@iki.fi Wed Oct 29 15:40:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 17840238B6; Wed, 29 Oct 2003 15:40:53 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 32AB72385D for ; Wed, 29 Oct 2003 15:40:20 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D96285C616E3; Wed, 29 Oct 2003 15:40:19 +0200 (EET) Subject: Re: [Dovecot] Copy from INBOX to INBOX corrupts file From: Timo Sirainen To: Andreas Jaekel In-Reply-To: <5.2.1.1.0.20031028114232.02b67530@fredda.webgods.de> References: <5.2.1.1.0.20031016180203.0354b798@fredda.webgods.de> <5.2.1.1.0.20031016180203.0354b798@fredda.webgods.de> <5.2.1.1.0.20031028114232.02b67530@fredda.webgods.de> Content-Type: text/plain Message-Id: <1067434818.15032.212.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Wed, 29 Oct 2003 15:40:19 +0200 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Oct 2003 13:40:53 -0000 X-UID: 1783 Status: O On Tue, 2003-10-28 at 13:39, Andreas Jaekel wrote: > Aloha Timo. > > I had some further looks into the folder corruption issue > and it looks like non-blocking routines are being used. > Could it be possible that you are setting the istream to > non-blocking and that influences the ostream's/iostream's > timeout_msecs settings? I don't think it should be set non-blocking.. What makes it look like they're used? > io_add() is not being used, but the last bits of data > were still just being written to an iov and write() > was called only after some other operation. Yes, flushing has to be done to ostream since it does buffer data even in blocking mode. I just did several changes in CVS to make copying inside same mbox working. Lets see if those changes corrupt my mboxes.. :) From mreimer@vpop.net Wed Oct 29 17:21:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 108F12385D; Wed, 29 Oct 2003 17:21:31 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 74C2023850 for ; Wed, 29 Oct 2003 17:20:58 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 0FD4D3A6AE5; Wed, 29 Oct 2003 07:20:54 -0800 (PST) Message-ID: <3F9FDADE.50009@vpop.net> Date: Wed, 29 Oct 2003 09:21:02 -0600 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] SSL Certificate Chains? References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Oct 2003 15:21:31 -0000 X-UID: 1784 Status: O Timo Sirainen wrote: > On Mon, 2003-10-27 at 15:01, Steve Gare wrote: > >>Just a quicky, I can't see anything about how Dovecot handles >>certificate chains. >> >>1, Does it handle them? >>2, How, if if does? >> >>(Just got a cert from www.instantssl.com and I need there intermediate >>cert do validate it.., Works fine with Apache and Exim ) > > > Dovecot doesn't check client's certificate. It's client's job to check > server's certificate and check the chains. Or at least I don't think > there's anything special Dovecot should do with them.. I had trouble with an instantssl cert, and found that what I needed to do was to also include all the certs up the chain, in a certain order, to keep the client from complaining about an invalid certificate. The first certificate in the pem file should be the the server certificate, followed by its chain starting from the root certificate down. Matt From hacker@gnu-designs.com Thu Oct 30 20:37:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8F047238A8; Thu, 30 Oct 2003 20:37:52 +0200 (EET) Received: from aphrodite.gnu-designs.com (unknown [65.172.152.98]) by danu.procontrol.fi (Postfix) with ESMTP id 94EA12385D for ; Thu, 30 Oct 2003 20:37:19 +0200 (EET) Received: from localhost (japh@localhost.localdomain [127.0.0.1]) h9UIbIP3013139 for ; Thu, 30 Oct 2003 13:37:18 -0500 Date: Thu, 30 Oct 2003 13:37:18 -0500 (EST) From: "David A. Desrosiers" To: dovecot@procontrol.fi Message-ID: X-Biography: http://www.gnu-designs.com/palm+linux/ X-Advogato: http://www.advogato.org/person/hacker X-Sourcefubar: http://www.sourcefubar.net X-GPG-Fingerprint: 125A 3A28 0F57 72F7 AF7B 67DF 9114 0446 7075 AE4A MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Problems finding information on passwd-file X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Oct 2003 18:37:52 -0000 X-UID: 1785 Status: O I've recently converted over to dovecot to uw-imap, and am having a heck of a time trying to find actual docs that describe how to set up virtual users properly without using ldap or posgres.. Basically I need to know what goes in auth_userdb and auth_passdb for a system with *NO* local user accounts in /etc/passwd and /etc/shadow. I will only create mbox files for these users in /var/mail/%u and alternately a home directory where they can store their own mail folders under /home/%u. How can I do this, given the current dovecot codebase? I've googled for a few hours, talked to many people on irc, and checked the mailing lists (of what I could find) related to this, and found nothing whatsoever describing how to achive this. Dovecot apparently supports "virtual users", but I can't find any supporting documentation that describes exactly HOW to set that up. Thanks in advance. d. From gmid-dovecot@m.gmane.org Thu Oct 30 12:11:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A9443238B6; Thu, 30 Oct 2003 12:11:03 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by danu.procontrol.fi (Postfix) with ESMTP id 3BBA3238A8 for ; Thu, 30 Oct 2003 12:10:31 +0200 (EET) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AF9kz-0001Rx-00 for ; Thu, 30 Oct 2003 11:10:21 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@procontrol.fi Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AF9G4-00016J-00 for ; Thu, 30 Oct 2003 10:38:24 +0100 Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AF9G4-0004Fi-00 for ; Thu, 30 Oct 2003 10:38:24 +0100 From: peter gervai Date: Thu, 30 Oct 2003 10:38:22 +0100 Lines: 49 Message-ID: References: <1062870944.23541.9.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@sea.gmane.org User-Agent: Opera7.21/Linux M2 build 480 Sender: news X-Mailman-Approved-At: Fri, 31 Oct 2003 08:50:22 +0200 Subject: [Dovecot] Re: Debian bug #201444: More verbose logging X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Oct 2003 10:11:03 -0000 X-UID: 1786 Status: O Content-Length: 2181 About more verbose logging... (my only showstopper now) On Sat, 06 Sep 2003 20:55:45 +0300, Timo Sirainen wrote: > O I use now a daemon which logs login (name, ip; as dovecot does), and >> logout (with name, logout reason if any special) with the numbers of >> "read >> new mail number and size" and "mail left on server number and size". >> Would >> be nice to have something like that in dovecot. >> >> Could something like this be added for the next version? > > Hmm. I think plugins should do that. No-one will agree on what they want > to log anyway :) And the above is likely meant just for POP3 users. Mainly it was meant for POP3 users, but IMAP debugging is just as expected. For example it's often useful to know whether a user was actually _able_ to read their mail, delete them or kept them as read, how many bytes did they transfer and what way was the connection closed. Unfortunately it's pretty hard to tell a clueless end-user what the possible problem might have been when they have "no mail", "full mailbox" or "mail they never seen", if one can't see approximately what have happened. This stands for pop3 as well as for individual imap boxes (in the future for me, since there is no trusted imap servers so far). > But I think master process should actually handle logging the user's > comings and goings so that they couldn't be faked. Especially logins > from imap/pop3-login processes.. imap/pop3 processes could then just > tell master process what extra stuff they want logged such as those mail > counts and sizes. > > Maybe master process should handle all logging anyway. Processes would > just print to stderr which master process would redirect into proper log > file.. Probably that's the best way (log important info by master, and generate stats and misc logs in plugins sent to the master). But.... could you please tell whether I should expect that in the near future, or shall I start worrying about being stuck with qpopper? :-o (I do not have the time, but maybe I could try to help to write the plugin, or extend it, but it needs the internal code to handle it first anyway. No promise though...) thanks, Peter From mreimer@vpop.net Sat Nov 1 00:28:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 22D6C2385D; Sat, 1 Nov 2003 00:28:42 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 46AB523841 for ; Sat, 1 Nov 2003 00:28:07 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 11BD73A6695 for ; Fri, 31 Oct 2003 14:26:54 -0800 (PST) Message-ID: <3FA2E1C3.30207@vpop.net> Date: Fri, 31 Oct 2003 16:27:15 -0600 From: Matthew Reimer Organization: VPOP Technologies, Inc. User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: multipart/mixed; boundary="------------050801080502050205020902" Subject: [Dovecot] Bug with partial IMAP fetches X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Oct 2003 22:28:42 -0000 X-UID: 1787 Status: O Content-Length: 22960 This is a multi-part message in MIME format. --------------050801080502050205020902 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit There is a bug in partial IMAP fetches where the following happens:

fetch ... <0.10240>
correctly returns bytes 0-10239
fetch ... <10240.10240>
incorrectly returns bytes 20479...
fetch ... <10240.10240> (a 2nd time)
correctly returns bytes 10240-20479

While the second fetch fails, the third fetch works correctly. I tracked this down to a problem with partial_cache. There seems to be a bug in lib-mail/message-send.c:39 (CVS):

    ret = o_stream_send_istream(output, input) > 0;

This causes message_send() to return 0 or 1 (note the "> 0"), not the number of bytes sent. This in turn causes partial.pos.virtual_size to get a value of 1 rather than 10240 in fetch_body(), and this in turn results in the wrong portion of the message being returned for the subsequent fetch.

But then when I remove the "> 0" from the above line of code, I get off-by-one errors:

fetch ... <0.10240>
correctly returns bytes 0-10240
fetch ... <10240.10240>
incorrectly returns bytes 10241-20480
fetch ... <10240.10240> (a 2nd time)
correctly returns bytes 10240-20479

I'm guessing there is a bug in the interaction with message_skip_virtual(), but I haven't been able to find the problem yet.

Any ideas? I've attached the offending message.

Matt
--------------050801080502050205020902 Content-Type: text/plain; name="problem.msg" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="problem.msg" X-UIDL: 61c08992b287bf24b6fff123164620b2 Return-Path: Delivered-To: krista@vpop.net Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 6B7D43A60F6 for ; Sun, 6 Oct 2002 21:16:38 -0700 (PDT) Message-ID: <3DA10B4B.50405@vpop.net> Date: Sun, 06 Oct 2002 23:19:23 -0500 From: Matthew Reimer Organization: VPOP Technologies, Inc. User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.1) Gecko/20020829 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Krista Reimer Subject: WORLD October 12, 2002: Eight principles Content-Type: multipart/mixed; boundary="------------010405000308030207040500" This is a multi-part message in MIME format. --------------010405000308030207040500 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Lemme know if this doesn't come through right. http://www.worldmag.com/world/issue/10-12-02/closing_1.asp Matt --------------010405000308030207040500 Content-Type: text/html; charset=WINDOWS\252; name="www.worldmag.com/world/issue/10-12-02/closing_1.asp" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="www.worldmag.com/world/issue/10-12-02/closing_1.asp" Content-Base: "http://www.worldmag.com/world/issue/10 -12-02/closing_1.asp" Content-Location: "http://www.worldmag.com/world/issue/10 -12-02/closing_1.asp" WORLD October 12, 2002: Eight principles
Medical Ambassadors International


Call 1-800-951-NEWS (6397) to subscribe today!

October 12, 2002
Volume 17
Number 39




























REMEMBERING 9/11

Read Central Ideas in the Development of American Journalism, Telling the Truth and Prodigal Press, three books on journalism by Marvin Olasky.

Add Olasky, Belz, and other great thinkers to your reading list!

Free Book!

Find out how to contact us.

Not familiar with WORLD Magazine? Find out more about us.

Read our Mission Statement.

If you are already a WORLD reader, head to Help Us Out to find out how to help us grow.

Find out about this site.

Excellence in Home Education starts here. Visit the new God's World Book Club Online! www.gwbc.com.

Check out the World Journalism Institute website at www.worldji.com and apply online!

Since 1981, God's World News has been helping children to understand and interpret the world around them. Now you can visit God's World News Online at GWNews.com


JOHN PIPER

Eight principles

How Christians should relate to those of other faiths

1. We should not conceal aspects of our faith so as to avoid criticism or disapproval, and we should not ask others to do that. We believe it is just and loving to point out publicly the errors of other faiths, provided this is done with sufficient evidence that the sacred writings or representative spokesmen of those faiths do indeed express these errors. We must strive not to misrepresent other faiths, as that is not only disrespectful but also undermining of our own credibility.

2. We should acknowledge our sin and desperate need of salvation by a crucified and risen Savior, and not posture ourselves as worthy of salvation as if we had superior intellect or wisdom or goodness. We are beggars who have, by grace, found the life-giving bread of truth, forgiveness, and joy. As we expose the errors of other religions, we should feel and express sorrow and compassion for those who do not embrace Christ so as to be saved.

3. We should not expect a fair fight in a secular world that is hostile to God and uncomfortable around the truth of Christ. Therefore, our response to abuse, distortion, or slander should not be angry resentment, but patient witness to the truth, in the hope and with the prayer that returning good for evil may open hearts to the truth. We must recognize that persecution is normal and that much of the protection Christians have in America is abnormal in history and in the world. Our witness will be best advanced by kind, steadfast statements and reasonable defenses of the truth.

4. We should renounce all violence as a means of spreading our faith. Christians spread biblical faith by suffering, not by causing suffering. Authentic Christianity cannot be coerced by force or manipulation. We should acknowledge and proclaim that Christ will, at his personal appearing, punish those who have rejected him; his violence at the end of the age is a decisive reason we should not and may not exert violence against anyone because of his beliefs. This is Christ's right, not ours.

5. We believe that God has given to civil government, not individuals or the church, the duty to bear the sword for justice and safety. Civil authorities should not punish beliefs, but some behaviors rooted in beliefs—such as killing, assault, or theft—may be outside the law and therefore punishable by the civil authority. Which behaviors are legally prohibited in a society based on freedom of belief and religion will be determined in a process of persuasion, debate, and election of representative lawmakers, with checks and balances provided by the executive and judicial branches and by constitutional safeguards for the rights of minorities.

6. We should distinguish between a just war of defense against aggression and a religious war against people because of their beliefs. We should acknowledge that this distinction will probably not be recognized by certain religions that define their beliefs to include the right of cultural domination by force. But we should insist on this distinction rather than accept the claim of aggressors that our resistance is a religious attack on their faith. We should argue that the ground of such national defense is the civil right to freedom (of religion and speech and press and assembly), not disapproval of the religion underlying the attack.

7. We should distinguish between the right to express criticism of erroneous beliefs and sinful behaviors, on the one hand, and the false inference some draw from this criticism that proponents of the criticized beliefs can therefore legitimately be mistreated. We also should not accept the claim that being criticized or denounced as mistaken or as sinners is a form of mistreatment. It is not a crime (hate crime or otherwise) to say publicly that someone's belief is wrong and harmful, or to call someone's behavior sinful and destructive. A necessary part of all debate concerning beliefs, behaviors, or proposals is the argument that some are wrong, ill-founded, and have deleterious effects.

8. We believe that every religion, worldview, or philosophy of life may freely endeavor to influence and shape our culture. We renounce the use of force or bribery or deceit in this culture-shaping effort. We affirm preaching the gospel, publishing truth, and modeling love and justice, as well as prayer, persuasion, and participation in the political process. We recognize that all laws "impose" some group's behavioral conviction on all, so it is not a compelling criticism to say that a law that governs behavior is bad because it "imposes someone's morality" on society. It is therefore particularly vital to support principles, laws, and policies that protect the legal freedoms of minorities that do not have the numbers to sway lawmaking processes.

—These principles are further developed at the website http://www.desiringgod.org/library/topics/culture/tolerance_principles.html


Search for more
articles about:



exact phrase

© 1996 - 2002 WORLD Magazine. mailbag@worldmag.com
--------------010405000308030207040500-- --------------050801080502050205020902-- From mreimer@vpop.net Sat Nov 1 00:44:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5CB97238B6; Sat, 1 Nov 2003 00:44:08 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 7193423841 for ; Sat, 1 Nov 2003 00:43:36 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 204B13A6917 for ; Fri, 31 Oct 2003 14:43:33 -0800 (PST) Message-ID: <3FA2E5AB.2070209@vpop.net> Date: Fri, 31 Oct 2003 16:43:55 -0600 From: Matthew Reimer Organization: VPOP Technologies, Inc. User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Re: Bug with partial IMAP fetches X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Oct 2003 22:44:08 -0000 X-UID: 1788 Status: O A little more information: This bug results in Mozilla and pine never rendering the message, since dovecot lies about how much data was really sent, as seen in the following log in which only 394 bytes (rather than the 10240 dovecot is claiming to send) are returned: ---- 8 UID fetch 94 (UID RFC822.SIZE BODY[]<10240.10240>) * 24 FETCH (UID 94 RFC822.SIZE 20873 BODY[]<10240> {10240} G SRC="/world/image/nav/contents_bottom.gif" WIDTH="49" HEIGHT="15" BORDER="0" VSPACE="10">
--------------010405000308030207040500-- ) 8 OK Fetch completed. ---- Matt From tallison@tacocat.net Sun Nov 2 15:08:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3AF7E2385D; Sun, 2 Nov 2003 15:08:02 +0200 (EET) Received: from tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id 19CC723850 for ; Sun, 2 Nov 2003 15:07:30 +0200 (EET) Received: from tacocat.net (unknown [192.168.1.103]) by tacocat.net (Postfix) with ESMTP id 5B90E79D26 for ; Sun, 2 Nov 2003 08:07:29 -0500 (EST) Message-ID: <3FA5018D.8020307@tacocat.net> Date: Sun, 02 Nov 2003 08:07:25 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] dies on start-up: Auth process X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Nov 2003 13:08:02 -0000 X-UID: 1789 Status: O Content-Length: 3858 I was digging through some of the archives and ran into someone who was having the same problem, but for completely different reasons....i think. dovecot: Nov 02 07:58:51 Info: Dovecot starting up dovecot: Nov 02 07:58:52 Error: Auth process died too early - shutting down dovecot: Nov 02 07:58:52 Error: child 27673 (login) killed with signal 11 dovecot: Nov 02 07:58:52 Error: child 27672 (login) killed with signal 11 dovecot: Nov 02 07:58:52 Error: child 27671 (login) killed with signal 11 dovecot: Nov 02 07:58:52 Error: child 27670 (auth) killed with signal 11 So I took the advice posted and ran 'strace dovecot' and this is what I got. Unfortunately I'm not exactly good enough with this to even know what I'm looking at. But I suspect the notation about "/dev/null" might have something to do with it. my user, dovecot as a shell of /bin/bash and a $HOME of /usr/local/lib/dovecot By all rights, he's almost a regular user, except that his UID is <100 (I built user:dovecot as a system uid under SuSE 8.2) open("/var/run/dovecot/", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 close(3) = 0 lstat64("/var/run/dovecot/", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 open(".", O_RDONLY|O_LARGEFILE) = 3 open("/var/run/dovecot//login", O_RDONLY|O_LARGEFILE|O_NOFOLLOW) = 4 fchdir(4) = 0 open("/dev/null", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 ENOTDIR (Not a directory) open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 6 fstat64(6, {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0 fcntl64(6, F_SETFD, FD_CLOEXEC) = 0 brk(0) = 0x8061000 brk(0x8062000) = 0x8062000 getdents64(6, /* 2 entries */, 4096) = 48 getdents64(6, /* 0 entries */, 4096) = 0 close(4) = 0 close(6) = 0 fchdir(3) = 0 close(3) = 0 geteuid32() = 0 lstat64("/var/run/dovecot//login", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0 open("/var/run/dovecot//login", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0 close(3) = 0 lstat64("/var/run/dovecot//login", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0 access("/usr/local/libexec/dovecot/dovecot-auth", X_OK) = 0 open("/dev/null", O_RDONLY|O_LARGEFILE) = 3 fcntl64(3, F_GETFD) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 dup(3) = 4 fcntl64(4, F_GETFD) = 0 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 6 setsockopt(6, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 setsockopt(6, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0 bind(6, {sa_family=AF_INET, sin_port=htons(143), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 getsockname(6, {sa_family=AF_INET, sin_port=htons(143), sin_addr=inet_addr("0.0.0.0")}, [16]) = 0 listen(6, 8) = 0 fcntl64(6, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 fcntl64(6, F_GETFD) = 0 fcntl64(6, F_SETFD, FD_CLOEXEC) = 0 dup(4) = 7 fcntl64(7, F_GETFD) = 0 fcntl64(7, F_SETFD, FD_CLOEXEC) = 0 dup(4) = 8 fcntl64(8, F_GETFD) = 0 fcntl64(8, F_SETFD, FD_CLOEXEC) = 0 dup(4) = 9 fcntl64(9, F_GETFD) = 0 fcntl64(9, F_SETFD, FD_CLOEXEC) = 0 dup2(4, 0) = 0 dup2(4, 1) = 1 dup2(4, 2) = 2 fork() = 27706 exit_group(0) = ? From td3201@yahoo.com Sun Nov 2 23:55:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8B1A62385D; Sun, 2 Nov 2003 23:55:28 +0200 (EET) Received: from web60301.mail.yahoo.com (web60301.mail.yahoo.com [216.109.118.112]) by danu.procontrol.fi (Postfix) with SMTP id 3DB4C23850 for ; Sun, 2 Nov 2003 23:54:55 +0200 (EET) Message-ID: <20031102215454.64263.qmail@web60301.mail.yahoo.com> Received: from [68.99.19.201] by web60301.mail.yahoo.com via HTTP; Sun, 02 Nov 2003 13:54:54 PST Date: Sun, 2 Nov 2003 13:54:54 -0800 (PST) From: Terry To: dovecot@procontrol.fi MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] evolution - folders not displayed correctly X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Nov 2003 21:55:28 -0000 X-UID: 1790 Status: O Hello, First, I used thunderbird, and everything looks great. I tried my account in evolution and all the folders appear in one level and not in several as they were in thunderbird. Inbox Inbox.foo Inbox.bar instead of Inbox foo bar What could be the problem? Thanks! ===== Terry __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From matthias.andree@gmx.de Mon Nov 3 00:38:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C338B23850; Mon, 3 Nov 2003 00:38:42 +0200 (EET) Received: from m2a2.dyndns.org (pD951F1C5.dip.t-dialin.net [217.81.241.197]) by danu.procontrol.fi (Postfix) with ESMTP id 78B2023841 for ; Mon, 3 Nov 2003 00:38:10 +0200 (EET) Received: from merlin (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id 7140B980E0; Sun, 2 Nov 2003 23:38:08 +0100 (CET) To: dovecot@procontrol.fi From: Matthias Andree Organization: Content-Type: text/plain; format=flowed; charset=iso-8859-15 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Date: Sun, 02 Nov 2003 23:38:07 +0100 Message-ID: User-Agent: Opera7.21/Linux M2 build 480 Subject: [Dovecot] [POP3] RFC2449 conformance? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Nov 2003 22:38:42 -0000 X-UID: 1791 Status: O RFC2449 Section 5 ("Capabilities available in the AUTHORIZATION state MUST be announced in both states.") requires that POP3 extensions offered in Authentication state MUST be offered in Transaction state as well, this affects the "SASL" extension. This is a CVS version that is a couple of days old (the old 0.99.10 wouldn't run on Linux 2.6 because it has tighter resource limiting): +OK dovecot ready. capa +OK CAPA TOP USER UIDL RESP-CODES SASL PLAIN . user SECRET +OK pass VERYSECRET +OK Logged in. capa +OK CAPA TOP USER UIDL RESP-CODES . quit +OK Logging out. -- Matthias Andree From matthias.andree@gmx.de Mon Nov 3 00:40:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5F0A0238C5; Mon, 3 Nov 2003 00:40:38 +0200 (EET) Received: from m2a2.dyndns.org (pD951F1C5.dip.t-dialin.net [217.81.241.197]) by danu.procontrol.fi (Postfix) with ESMTP id 8A4A123841 for ; Mon, 3 Nov 2003 00:40:06 +0200 (EET) Received: from merlin (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id 159A4980E0; Sun, 2 Nov 2003 23:40:06 +0100 (CET) To: Tom Allison , dovecot@procontrol.fi Subject: Re: [Dovecot] dies on start-up: Auth process References: <3FA5018D.8020307@tacocat.net> Message-ID: From: Matthias Andree Organization: Content-Type: text/plain; format=flowed; charset=iso-8859-15 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Date: Sun, 02 Nov 2003 23:40:04 +0100 In-Reply-To: <3FA5018D.8020307@tacocat.net> User-Agent: Opera7.21/Linux M2 build 480 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Nov 2003 22:40:38 -0000 X-UID: 1792 Status: O Am Sun, 02 Nov 2003 08:07:25 -0500 hat Tom Allison geschrieben: > So I took the advice posted and ran 'strace dovecot' and this is what I > got. Unfortunately I'm not exactly good enough with this to even know > what I'm looking at. Can you run "strace -fF dovecot -F", so it traces the children that die prematurely? Your trace doesn't show processes that terminate by receiving a certain signal, unfortunately. -- Matthias Andree From td3201@yahoo.com Mon Nov 3 00:52:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B8A45238C5; Mon, 3 Nov 2003 00:52:50 +0200 (EET) Received: from web60309.mail.yahoo.com (web60309.mail.yahoo.com [216.109.118.120]) by danu.procontrol.fi (Postfix) with SMTP id 406AD23841 for ; Mon, 3 Nov 2003 00:52:17 +0200 (EET) Message-ID: <20031102225216.93071.qmail@web60309.mail.yahoo.com> Received: from [68.99.19.201] by web60309.mail.yahoo.com via HTTP; Sun, 02 Nov 2003 14:52:16 PST Date: Sun, 2 Nov 2003 14:52:16 -0800 (PST) From: Terry Subject: Re: [Dovecot] evolution - folders not displayed correctly To: Jonas Smedegaard In-Reply-To: <1067811639.11275.109.camel@auryn> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Nov 2003 22:52:50 -0000 X-UID: 1793 Status: O --- Jonas Smedegaard wrote: > søn, 2003-11-02 kl. 22:54 skrev Terry: > ... > > I tried my account in evolution and all the > folders > > appear in one level and not in several as they > were in > > thunderbird. > ... > > What could be the problem? Thanks! > > The documentation of offlineimap seems to reveil the > cause of the > problem: Evolution uses "/" as delimiter, not "." as > dovecot. > > It seems to not be configurable in Evolution, so > access the files > through dovecot instead of directly. > > - Jonas I am accessing my files via dovecot. That is why I am mailing the dovecot list. Maybe I misunderstood your response. I will check around to see that deliter...probably in the xml configs somewhere.... ===== Terry __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com From dr@jones.dk Mon Nov 3 01:16:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C5DD42385D; Mon, 3 Nov 2003 01:16:23 +0200 (EET) Received: from auryn.jones.dk (cpe.atm0-0-0-120101.0x3ef24ca2.albnxx2.customer.tele.dk [62.242.76.162]) by danu.procontrol.fi (Postfix) with ESMTP id EB48923850 for ; Mon, 3 Nov 2003 01:15:49 +0200 (EET) Received: from auryn (auryn [127.0.0.1]) (using SSLv3 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by auryn.jones.dk (Postfix) with ESMTP id 8AF183F210C; Mon, 3 Nov 2003 00:15:48 +0100 (CET) Subject: Re: [Dovecot] evolution - folders not displayed correctly From: Jonas Smedegaard To: Terry In-Reply-To: <20031102225216.93071.qmail@web60309.mail.yahoo.com> References: <20031102225216.93071.qmail@web60309.mail.yahoo.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-WeKNqGwqbNobdmEKlx4y" Organization: Spiff ApS Message-Id: <1067814947.11275.141.camel@auryn> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 03 Nov 2003 00:15:48 +0100 X-Mailman-Approved-At: Mon, 03 Nov 2003 07:30:51 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Nov 2003 23:16:24 -0000 X-UID: 1794 Status: O Content-Length: 1699 --=-WeKNqGwqbNobdmEKlx4y Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable s=F8n, 2003-11-02 kl. 23:52 skrev Terry: > --- Jonas Smedegaard wrote: > > sn, 2003-11-02 kl. 22:54 skrev Terry: > > ... > > > I tried my account in evolution and all the > > folders > > > appear in one level and not in several as they > > were in > > > thunderbird. > > ... > > > What could be the problem? Thanks! > >=20 > > The documentation of offlineimap seems to reveil the > > cause of the > > problem: Evolution uses "/" as delimiter, not "." as > > dovecot. > >=20 > > It seems to not be configurable in Evolution, so > > access the files > > through dovecot instead of directly. > >=20 > > - Jonas >=20 > I am accessing my files via dovecot. That is why I am > mailing the dovecot list. Maybe I misunderstood your > response. I will check around to see that > deliter...probably in the xml configs somewhere.... Sorry - I misunderstood. Thought that your problem was equal to mine last night (accessing dovecot-generated Maildir directly from Evolution). I'll shut up now, to make room for someone knowledgeable. - Jonas --=20 * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ - Enden er n=E6r: http://www.shibumi.org/eoti.htm --=-WeKNqGwqbNobdmEKlx4y Content-Type: application/pgp-signature; name=signature.asc Content-Description: Dette er en digitalt underskrevet brevdel -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/pZAjn7DbMsAkQLgRAoGzAJ0T4utB3L7xBgpfRqw1vUcnFW1EhQCdHnRf NHAmcUy7L72+USonRQ6vC78= =4XLP -----END PGP SIGNATURE----- --=-WeKNqGwqbNobdmEKlx4y-- From cras@irccrew.org Mon Nov 3 07:33:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B4577238C7; Mon, 3 Nov 2003 07:33:47 +0200 (EET) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id D4FF5238C5 for ; Mon, 3 Nov 2003 07:33:15 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id B65EB2E027; Mon, 3 Nov 2003 07:33:15 +0200 (EET) Date: Mon, 3 Nov 2003 07:33:15 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] Problems finding information on passwd-file Message-ID: <20031103053315.GA3832@irccrew.org> References: Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 05:33:47 -0000 X-UID: 1795 Status: O On Thu, Oct 30, 2003 at 01:37:18PM -0500, David A. Desrosiers wrote: > > I've recently converted over to dovecot to uw-imap, and am having a > heck of a time trying to find actual docs that describe how to set up > virtual users properly without using ldap or posgres.. Basically I need to > know what goes in auth_userdb and auth_passdb for a system with *NO* local > user accounts in /etc/passwd and /etc/shadow. I will only create mbox files > for these users in /var/mail/%u and alternately a home directory where they > can store their own mail folders under /home/%u. auth_userdb = passwd-file /etc/imap.passwd auth_passdb = passwd-file /etc/imap.passwd Then the imap.passwd is in the same format as normal /etc/passwd file, but there's a few extra fields. doc/auth.txt explains them. From cras@irccrew.org Mon Nov 3 07:37:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6A8B9238C7; Mon, 3 Nov 2003 07:37:14 +0200 (EET) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id A040D238C5 for ; Mon, 3 Nov 2003 07:36:42 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 812252E027; Mon, 3 Nov 2003 07:36:42 +0200 (EET) Date: Mon, 3 Nov 2003 07:36:42 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] Re: Debian bug #201444: More verbose logging Message-ID: <20031103053642.GB3832@irccrew.org> References: <1062870944.23541.9.camel@hurina> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 05:37:14 -0000 X-UID: 1796 Status: O On Thu, Oct 30, 2003 at 10:38:22AM +0100, peter gervai wrote: > About more verbose logging... (my only showstopper now) .. > But.... could you please tell whether I should expect that in the near > future, > or shall I start worrying about being stuck with qpopper? :-o My main priority is to get CVS version to work again. There's something wrong with index files but I haven't yet figured out what. Also I broke mbox code again and haven't had time to fix that yet either.. Can't really do any promises anything in near future. From cras@irccrew.org Mon Nov 3 07:38:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7D2E0238C5; Mon, 3 Nov 2003 07:38:44 +0200 (EET) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id BB6FE238D6 for ; Mon, 3 Nov 2003 07:38:12 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id A93382E027; Mon, 3 Nov 2003 07:38:12 +0200 (EET) Date: Mon, 3 Nov 2003 07:38:12 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] Re: Bug with partial IMAP fetches Message-ID: <20031103053812.GC3832@irccrew.org> References: <3FA2E5AB.2070209@vpop.net> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <3FA2E5AB.2070209@vpop.net> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 05:38:44 -0000 X-UID: 1797 Status: O On Fri, Oct 31, 2003 at 04:43:55PM -0600, Matthew Reimer wrote: > A little more information: > > This bug results in Mozilla and pine never rendering the message, since > dovecot lies about how much data was really sent, as seen in the > following log in which only 394 bytes (rather than the 10240 dovecot is > claiming to send) are returned: Does this patch fix it? http://dovecot.fi/fetch-body.patch From cras@irccrew.org Mon Nov 3 07:41:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5FD6F238C8; Mon, 3 Nov 2003 07:41:22 +0200 (EET) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 9D007238C5 for ; Mon, 3 Nov 2003 07:40:50 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 830FD2E027; Mon, 3 Nov 2003 07:40:50 +0200 (EET) Date: Mon, 3 Nov 2003 07:40:50 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] dies on start-up: Auth process Message-ID: <20031103054050.GD3832@irccrew.org> References: <3FA5018D.8020307@tacocat.net> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <3FA5018D.8020307@tacocat.net> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 05:41:22 -0000 X-UID: 1798 Status: O On Sun, Nov 02, 2003 at 08:07:25AM -0500, Tom Allison wrote: > I was digging through some of the archives and ran into someone who was > having the same problem, but for completely different reasons....i think. > > dovecot: Nov 02 07:58:51 Info: Dovecot starting up > dovecot: Nov 02 07:58:52 Error: Auth process died too early - shutting down > dovecot: Nov 02 07:58:52 Error: child 27673 (login) killed with signal 11 See what ldd /usr/local/libexec/dovecot/dovecot-auth says? Are there any unresolved libraries? I don't remember seeing other reasons yet why auth process dies immediately. From cras@irccrew.org Mon Nov 3 07:45:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 04870238D6; Mon, 3 Nov 2003 07:45:54 +0200 (EET) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 954CE238C5 for ; Mon, 3 Nov 2003 07:45:19 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 6A6642E027; Mon, 3 Nov 2003 07:45:19 +0200 (EET) Date: Mon, 3 Nov 2003 07:45:19 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] evolution - folders not displayed correctly Message-ID: <20031103054519.GE3832@irccrew.org> References: <20031102215454.64263.qmail@web60301.mail.yahoo.com> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20031102215454.64263.qmail@web60301.mail.yahoo.com> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 05:45:54 -0000 X-UID: 1799 Status: O On Sun, Nov 02, 2003 at 01:54:54PM -0800, Terry wrote: > Hello, > > First, I used thunderbird, and everything looks great. > I tried my account in evolution and all the folders > appear in one level and not in several as they were in > thunderbird. > > Inbox > Inbox.foo > Inbox.bar You're using mbox I guess? If you had set namespace prefix to "Inbox." in thunderbird, I guess it created all mailboxes with "Inbox." prefix. Solution would be to remove the Inbox-prefix from thunderbird and rename all mailboxes, or to set Inbox-prefix to Evolution as well. From cras@irccrew.org Mon Nov 3 07:57:02 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A370A238CB; Mon, 3 Nov 2003 07:57:01 +0200 (EET) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id BB4D3238C5 for ; Mon, 3 Nov 2003 07:56:29 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 9C3852E027; Mon, 3 Nov 2003 07:56:29 +0200 (EET) Date: Mon, 3 Nov 2003 07:56:29 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] [POP3] RFC2449 conformance? Message-ID: <20031103055629.GF3832@irccrew.org> References: Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 05:57:02 -0000 X-UID: 1800 Status: O On Sun, Nov 02, 2003 at 11:38:07PM +0100, Matthias Andree wrote: > RFC2449 Section 5 ("Capabilities available in the AUTHORIZATION state MUST > be announced in both states.") requires that POP3 extensions offered in > Authentication state MUST be offered in Transaction state as well, this > affects the "SASL" extension. Hmm.. So it seems. Available auth capabilities would have to be saved and sent to pop3 process since they're generated by asking from login processes what they support. Added in TODO. From tallison@tacocat.net Mon Nov 3 13:36:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F3600238B6; Mon, 3 Nov 2003 13:36:05 +0200 (EET) Received: from tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id 8C40B2385D for ; Mon, 3 Nov 2003 13:35:33 +0200 (EET) Received: from tacocat.net (unknown [192.168.1.103]) by tacocat.net (Postfix) with ESMTP id 8C9CF79D23; Mon, 3 Nov 2003 06:35:31 -0500 (EST) Message-ID: <3FA63D83.2090609@tacocat.net> Date: Mon, 03 Nov 2003 06:35:31 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] dies on start-up: Auth process References: <3FA5018D.8020307@tacocat.net> <20031103054050.GD3832@irccrew.org> In-Reply-To: <20031103054050.GD3832@irccrew.org> X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 11:36:06 -0000 X-UID: 1801 Status: O Timo Sirainen wrote: > On Sun, Nov 02, 2003 at 08:07:25AM -0500, Tom Allison wrote: > >>I was digging through some of the archives and ran into someone who was >>having the same problem, but for completely different reasons....i think. >> >>dovecot: Nov 02 07:58:51 Info: Dovecot starting up >>dovecot: Nov 02 07:58:52 Error: Auth process died too early - shutting down >>dovecot: Nov 02 07:58:52 Error: child 27673 (login) killed with signal 11 > > > See what ldd /usr/local/libexec/dovecot/dovecot-auth says? Are there any > unresolved libraries? I don't remember seeing other reasons yet why auth > process dies immediately. fluffy:/home/tallison # ldd /usr/local/libexec/dovecot/dovecot-auth libcrypt.so.1 => /lib/libcrypt.so.1 (0x40019000) libdl.so.2 => /lib/libdl.so.2 (0x4004a000) libc.so.6 => /lib/libc.so.6 (0x4004e000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) fluffy:/home/tallison # From tallison@tacocat.net Mon Nov 3 13:57:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DE9C0238B6; Mon, 3 Nov 2003 13:57:27 +0200 (EET) Received: from tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id C6A9E2385D for ; Mon, 3 Nov 2003 13:56:54 +0200 (EET) Received: from tacocat.net (unknown [192.168.1.103]) by tacocat.net (Postfix) with ESMTP id 0EA8479D23; Mon, 3 Nov 2003 06:56:54 -0500 (EST) Message-ID: <3FA64285.30006@tacocat.net> Date: Mon, 03 Nov 2003 06:56:53 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Matthias Andree Subject: Re: [Dovecot] dies on start-up: Auth process References: <3FA5018D.8020307@tacocat.net> In-Reply-To: X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 11:57:28 -0000 X-UID: 1802 Status: O Matthias Andree wrote: > Am Sun, 02 Nov 2003 08:07:25 -0500 hat Tom Allison > geschrieben: > >> So I took the advice posted and ran 'strace dovecot' and this is what >> I got. Unfortunately I'm not exactly good enough with this to even >> know what I'm looking at. > > > Can you run "strace -fF dovecot -F", so it traces the children that die > prematurely? > > Your trace doesn't show processes that terminate by receiving a certain > signal, unfortunately. > I did that, but it's too large to post and I can't send it to you directly. I'm getting my mail rejected as part of a DUL group. Any suggestions? From mreimer@vpop.net Mon Nov 3 14:18:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6A4522385D; Mon, 3 Nov 2003 14:18:20 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 8115C23841 for ; Mon, 3 Nov 2003 14:17:47 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 304903A7076; Mon, 3 Nov 2003 04:17:44 -0800 (PST) Message-ID: <3FA6478A.1040502@vpop.net> Date: Mon, 03 Nov 2003 06:18:18 -0600 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Re: Bug with partial IMAP fetches References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 12:18:20 -0000 X-UID: 1803 Status: O Timo Sirainen wrote: > On Fri, Oct 31, 2003 at 04:43:55PM -0600, Matthew Reimer wrote: > >>A little more information: >> >>This bug results in Mozilla and pine never rendering the message, since >>dovecot lies about how much data was really sent, as seen in the >>following log in which only 394 bytes (rather than the 10240 dovecot is >>claiming to send) are returned: > > > Does this patch fix it? http://dovecot.fi/fetch-body.patch No; I'm already using all available 0.99.10 patches. Sorry for not mentioning that before. Matt From tallison@tacocat.net Mon Nov 3 15:16:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9AD1D2385D; Mon, 3 Nov 2003 15:16:08 +0200 (EET) Received: from tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id 155AF23850 for ; Mon, 3 Nov 2003 15:15:33 +0200 (EET) Received: from tacocat.net (unknown [192.168.1.103]) by tacocat.net (Postfix) with ESMTP id 523F179D23; Mon, 3 Nov 2003 08:15:31 -0500 (EST) Message-ID: <3FA654F2.1020402@tacocat.net> Date: Mon, 03 Nov 2003 08:15:30 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tom Allison Subject: Re: [Dovecot] dies on start-up: Auth process References: <3FA5018D.8020307@tacocat.net> <20031103054050.GD3832@irccrew.org> <3FA63D83.2090609@tacocat.net> In-Reply-To: <3FA63D83.2090609@tacocat.net> X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: Timo Sirainen cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 13:16:08 -0000 X-UID: 1804 Status: O Tom Allison wrote: > Timo Sirainen wrote: > >> On Sun, Nov 02, 2003 at 08:07:25AM -0500, Tom Allison wrote: >> >>> I was digging through some of the archives and ran into someone who >>> was having the same problem, but for completely different >>> reasons....i think. >>> >>> dovecot: Nov 02 07:58:51 Info: Dovecot starting up >>> dovecot: Nov 02 07:58:52 Error: Auth process died too early - >>> shutting down >>> dovecot: Nov 02 07:58:52 Error: child 27673 (login) killed with >>> signal 11 >> I'm making some slow progress. It seemd to be better after I've added a configuration option for cyrus-sasl2 support and set the auth_userdb = passwd. It loads. but logging in is another matter entirely. I can't seem to authenticate. From tallison@tacocat.net Mon Nov 3 15:27:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 610462385D; Mon, 3 Nov 2003 15:27:18 +0200 (EET) Received: from tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id B5CB323850 for ; Mon, 3 Nov 2003 15:26:44 +0200 (EET) Received: from tacocat.net (unknown [192.168.1.103]) by tacocat.net (Postfix) with ESMTP id F0C8979D23 for ; Mon, 3 Nov 2003 08:26:43 -0500 (EST) Message-ID: <3FA65792.3090205@tacocat.net> Date: Mon, 03 Nov 2003 08:26:42 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] dies on start-up: Auth process References: <3FA5018D.8020307@tacocat.net> <20031103054050.GD3832@irccrew.org> <3FA63D83.2090609@tacocat.net> <3FA654F2.1020402@tacocat.net> In-Reply-To: <3FA654F2.1020402@tacocat.net> X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 13:27:18 -0000 X-UID: 1805 Status: O Content-Length: 3432 Tom Allison wrote: > Tom Allison wrote: > >> Timo Sirainen wrote: >> >>> On Sun, Nov 02, 2003 at 08:07:25AM -0500, Tom Allison wrote: >>> >>>> I was digging through some of the archives and ran into someone who >>>> was having the same problem, but for completely different >>>> reasons....i think. >>>> >>>> dovecot: Nov 02 07:58:51 Info: Dovecot starting up >>>> dovecot: Nov 02 07:58:52 Error: Auth process died too early - >>>> shutting down >>>> dovecot: Nov 02 07:58:52 Error: child 27673 (login) killed with >>>> signal 11 >>> >>> > > I'm making some slow progress. > It seemd to be better after I've added a configuration option for > cyrus-sasl2 support and set the auth_userdb = passwd. > > It loads. > > but logging in is another matter entirely. > > I can't seem to authenticate. Found the strace segment that has the response 'NO Authentication failed' srw-rw-rw- /var/run/.nscd_socket drwxr-xr-x /home/tallison/Maildir My log shows: imap-login: .. Warning Killed with signal 2 And I can use the user/passwd listed to login at the terminal and via SSH. Don't worry, this is behind a firewall right now and this specific account will be converted to a spam-trap once I launch so I really don't care about having a password exposed right now. I'm getting closer..... [pid 32035] <... poll resumed> [{fd=3, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=0, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNV AL}, {fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=9, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=10, events=POLLIN| POLLPRI|POLLERR|POLLHUP|POLLNVAL, revents=POLLIN}, {fd=11, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}], 6, 4367) = 1 [pid 32038] write(8, "\0tallison\0Appl3", 15 [pid 32035] gettimeofday( [pid 32038] <... write resumed> ) = 15 [pid 32035] <... gettimeofday resumed> {1067865382, 123624}, {300, 0}) = 0 [pid 32038] gettimeofday( [pid 32035] read(10, [pid 32038] <... gettimeofday resumed> {1067865382, 123963}, NULL) = 0 [pid 32035] <... read resumed> "\2\0\0\0\1\0\0\0\17\0\0\0\0tallison\0Appl3", 4076) = 27 [pid 32038] poll( [pid 32035] socket(PF_UNIX, SOCK_STREAM, 0) = 12 [pid 32035] connect(12, {sa_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = 0 [pid 32035] writev(12, [{"\2\0\0\0\0\0\0\0\t\0\0\0", 12}, {"tallison\0", 9}], 2) = 21 [pid 32035] read(12, "L\'\33@\1\0\0\0\t\0\0\0\2\0\0\0\364\1\0\0d\0\0\0\f\0\0"..., 36) = 36 [pid 32035] read(12, "tallison\0x\0Tom Allison\0/home/tal"..., 48) = 48 [pid 32035] close(12) = 0 [pid 32035] write(10, "\1\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20 [pid 32038] <... poll resumed> [{fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL, revents=POLLIN}, {fd=3, events=POLLIN|POLLPRI|POLLER R|POLLHUP|POLLNVAL}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}], 3, 328) = 1 [pid 32035] <... write resumed> ) = 20 [pid 32038] gettimeofday({1067865382, 131212}, {300, 0}) = 0 [pid 32038] read(8, "\1\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4068) = 20 [pid 32038] write(7, "1 NO Authentication failed.", 27) = 27 [pid 32038] write(7, "\r\n", 2) = 2 [pid 32038] gettimeofday({1067865382, 132062}, NULL) = 0 [pid 32038] poll( [pid 32035] gettimeofday({1067865382, 132352}, NULL) = 0 [pid 32035] poll( From td3201@yahoo.com Mon Nov 3 16:12:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 748DD2385D; Mon, 3 Nov 2003 16:12:48 +0200 (EET) Received: from web60304.mail.yahoo.com (web60304.mail.yahoo.com [216.109.118.115]) by danu.procontrol.fi (Postfix) with SMTP id E47AC23841 for ; Mon, 3 Nov 2003 16:12:15 +0200 (EET) Message-ID: <20031103141214.71437.qmail@web60304.mail.yahoo.com> Received: from [205.144.146.240] by web60304.mail.yahoo.com via HTTP; Mon, 03 Nov 2003 06:12:14 PST Date: Mon, 3 Nov 2003 06:12:14 -0800 (PST) From: Terry Subject: Re: [Dovecot] evolution - folders not displayed correctly To: dovecot@procontrol.fi In-Reply-To: <20031103054519.GE3832@irccrew.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 14:12:48 -0000 X-UID: 1806 Status: O --- Timo Sirainen wrote: > On Sun, Nov 02, 2003 at 01:54:54PM -0800, Terry > wrote: > > Hello, > > > > First, I used thunderbird, and everything looks > great. > > I tried my account in evolution and all the > folders > > appear in one level and not in several as they > were in > > thunderbird. > > > > Inbox > > Inbox.foo > > Inbox.bar > > You're using mbox I guess? If you had set namespace > prefix to "Inbox." in > thunderbird, I guess it created all mailboxes with > "Inbox." prefix. Solution > would be to remove the Inbox-prefix from thunderbird > and rename all > mailboxes, or to set Inbox-prefix to Evolution as > well. > Actually, I had a later email to the list better explaining my setup. This is using maildir. ===== Terry __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From matthias.andree@gmx.de Mon Nov 3 17:27:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CE4402385D; Mon, 3 Nov 2003 17:27:35 +0200 (EET) Received: from nx5.hrz.uni-dortmund.de (nx5.HRZ.Uni-Dortmund.DE [129.217.131.21]) by danu.procontrol.fi (Postfix) with ESMTP id 47C3F23850 for ; Mon, 3 Nov 2003 17:27:03 +0200 (EET) Received: from unimail.uni-dortmund.de (mx1.HRZ.Uni-Dortmund.DE [129.217.128.51]) by nx5.hrz.uni-dortmund.de (Postfix) with ESMTP id D16644AA494 for ; Mon, 3 Nov 2003 16:27:01 +0100 (MET) Received: from m2a2.myip.org (pD9E1E9DA.dip.t-dialin.net [217.225.233.218]) (authenticated (0 bits))hA3FQZow029593 for ; Mon, 3 Nov 2003 16:26:35 +0100 (MET) Received: from merlin.emma.line.org (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id A20701B210 for ; Mon, 3 Nov 2003 16:26:34 +0100 (CET) To: dovecot@procontrol.fi Subject: Re: [Dovecot] [POP3] RFC2449 conformance? References: <20031103055629.GF3832@irccrew.org> Message-ID: From: Matthias Andree Content-Type: text/plain; format=flowed; charset=iso-8859-15 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Date: Mon, 03 Nov 2003 16:26:33 +0100 In-Reply-To: <20031103055629.GF3832@irccrew.org> User-Agent: Opera7.21/FreeBSD M2 build 480 X-MailScanner-Information: UniDo-UniMail X-MailScanner: Found to be clean X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 15:27:36 -0000 X-UID: 1807 Status: O On Mon, 3 Nov 2003 07:56:29 +0200, Timo Sirainen wrote: > On Sun, Nov 02, 2003 at 11:38:07PM +0100, Matthias Andree wrote: >> RFC2449 Section 5 ("Capabilities available in the AUTHORIZATION state MUST >> be announced in both states.") requires that POP3 extensions offered in >> Authentication state MUST be offered in Transaction state as well, this >> affects the "SASL" extension. > > Hmm.. So it seems. Available auth capabilities would have to be saved and > sent to pop3 process since they're generated by asking from login processes > what they support. Added in TODO. While we're at it, does Dovecot support PIPELINING? If so, advertising it in Transaction state might improve performance of some clients. -- Matthias Andree From cras@irccrew.org Mon Nov 3 21:43:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C8C2F23850; Mon, 3 Nov 2003 21:43:55 +0200 (EET) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 2CA182385D for ; Mon, 3 Nov 2003 21:43:23 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 127F32E027; Mon, 3 Nov 2003 21:43:23 +0200 (EET) Date: Mon, 3 Nov 2003 21:43:22 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] dies on start-up: Auth process Message-ID: <20031103194322.GB10166@irccrew.org> References: <3FA5018D.8020307@tacocat.net> <3FA64285.30006@tacocat.net> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <3FA64285.30006@tacocat.net> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 19:43:56 -0000 X-UID: 1808 Status: O On Mon, Nov 03, 2003 at 06:56:53AM -0500, Tom Allison wrote: > >Can you run "strace -fF dovecot -F", so it traces the children that die > >prematurely? > > > >Your trace doesn't show processes that terminate by receiving a certain > >signal, unfortunately. > > > > I did that, but it's too large to post and I can't send it to you > directly. I'm getting my mail rejected as part of a DUL group. > > Any suggestions? [pid 26281] stat64("/usr/local/lib/dovecot/auth/pam.so", 0xbffffcd0) = -1 ENOENT (No such file or directory) This seems to indicate that you have set auth_passdb = pam, but without PAM support compiled in so it tries to look it up as module and still doesn't find it. [pid 26281] send(4, "<18>Nov 3 06:36:26 dovecot-auth"..., 59, 0) = 59 And I think this means it should have written "Unknown passdb type 'PAM'" error message to log file. It didn't get there? From cras@irccrew.org Mon Nov 3 21:46:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C08CD238B6; Mon, 3 Nov 2003 21:46:32 +0200 (EET) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 8B3182385D for ; Mon, 3 Nov 2003 21:46:00 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 7A91C2E027; Mon, 3 Nov 2003 21:46:00 +0200 (EET) Date: Mon, 3 Nov 2003 21:46:00 +0200 From: Timo Sirainen To: dovecot@procontrol.fi Subject: Re: [Dovecot] evolution - folders not displayed correctly Message-ID: <20031103194600.GC10166@irccrew.org> References: <20031103054519.GE3832@irccrew.org> <20031103141214.71437.qmail@web60304.mail.yahoo.com> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20031103141214.71437.qmail@web60304.mail.yahoo.com> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 19:46:32 -0000 X-UID: 1809 Status: O On Mon, Nov 03, 2003 at 06:12:14AM -0800, Terry wrote: > > > Inbox > > > Inbox.foo > > > Inbox.bar > > > > You're using mbox I guess? If you had set namespace > > prefix to "Inbox." in > > thunderbird, I guess it created all mailboxes with > > "Inbox." prefix. Solution > > would be to remove the Inbox-prefix from thunderbird > > and rename all > > mailboxes, or to set Inbox-prefix to Evolution as > > well. > > > > Actually, I had a later email to the list better > explaining my setup. This is using maildir. Hmm. Try: telnet localhost 143 x login username password x list "" * And copy&paste here what it says? From td3201@yahoo.com Mon Nov 3 22:26:15 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 26B442385D; Mon, 3 Nov 2003 22:26:15 +0200 (EET) Received: from web60305.mail.yahoo.com (web60305.mail.yahoo.com [216.109.118.116]) by danu.procontrol.fi (Postfix) with SMTP id B0D5223841 for ; Mon, 3 Nov 2003 22:25:42 +0200 (EET) Message-ID: <20031103202540.91390.qmail@web60305.mail.yahoo.com> Received: from [205.144.146.240] by web60305.mail.yahoo.com via HTTP; Mon, 03 Nov 2003 12:25:40 PST Date: Mon, 3 Nov 2003 12:25:40 -0800 (PST) From: Terry Subject: Re: [Dovecot] evolution - folders not displayed correctly To: Timo Sirainen , dovecot@procontrol.fi In-Reply-To: <20031103194600.GC10166@irccrew.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 20:26:15 -0000 X-UID: 1810 Status: O Content-Length: 1656 --- Timo Sirainen wrote: > On Mon, Nov 03, 2003 at 06:12:14AM -0800, Terry > wrote: > > > > Inbox > > > > Inbox.foo > > > > Inbox.bar > > > > > > You're using mbox I guess? If you had set > namespace > > > prefix to "Inbox." in > > > thunderbird, I guess it created all mailboxes > with > > > "Inbox." prefix. Solution > > > would be to remove the Inbox-prefix from > thunderbird > > > and rename all > > > mailboxes, or to set Inbox-prefix to Evolution > as > > > well. > > > > > > > Actually, I had a later email to the list better > > explaining my setup. This is using maildir. > > Hmm. Try: > > telnet localhost 143 > x login username password > x list "" * > > And copy&paste here what it says? > Thank you for the response: x OK Logged in. x list "" * * LIST (\Children \UnMarked) "." "INBOX" * LIST (\UnMarked) "." "INBOX.Bellevue" * LIST (\Children \UnMarked) "." "INBOX.Jobs" * LIST (\UnMarked) "." "INBOX.Jobs.Denied" * LIST (\UnMarked) "." "INBOX.Jobs.Future" * LIST (\UnMarked) "." "INBOX.Jobs.Pending" * LIST (\UnMarked) "." "INBOX.DiscoverCard" * LIST (\UnMarked) "." "INBOX.Domains" * LIST (\UnMarked) "." "INBOX.Ebay" * LIST (\UnMarked) "." "INBOX.Saved" * LIST (\UnMarked) "." "INBOX.Junk" * LIST (\UnMarked) "." "Drafts" * LIST (\UnMarked) "." "Templates" * LIST (\UnMarked) "." "Trash" * LIST (\UnMarked) "." "cur" * LIST (\UnMarked) "." "new" * LIST (\UnMarked) "." "tmp" * LIST (\UnMarked) "." "oldmbox" * LIST (\UnMarked) "." "Sent" x OK List completed. ===== Terry __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From tallison@tacocat.net Mon Nov 3 22:46:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 039952385D; Mon, 3 Nov 2003 22:46:29 +0200 (EET) Received: from tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id 402F723841 for ; Mon, 3 Nov 2003 22:45:55 +0200 (EET) Received: from www.tacocat.net (localhost [127.0.0.1]) by tacocat.net (Postfix) with SMTP id DC5D179D23; Mon, 3 Nov 2003 15:45:53 -0500 (EST) Received: from 198.208.159.14 (proxying for unknown) (SquirrelMail authenticated user tallison) by gandolf.tacocat.net with HTTP; Mon, 3 Nov 2003 15:45:53 -0500 (EST) Message-ID: <24614.198.208.159.14.1067892353.squirrel@gandolf.tacocat.net> In-Reply-To: <20031103194322.GB10166@irccrew.org> References: <3FA5018D.8020307@tacocat.net> <3FA64285.30006@tacocat.net> <20031103194322.GB10166@irccrew.org> Date: Mon, 3 Nov 2003 15:45:53 -0500 (EST) Subject: Re: [Dovecot] dies on start-up: Auth process From: tallison@tacocat.net To: "Timo Sirainen" User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 20:46:29 -0000 X-UID: 1811 Status: O Content-Length: 1160 > On Mon, Nov 03, 2003 at 06:56:53AM -0500, Tom Allison wrote: >> >Can you run "strace -fF dovecot -F", so it traces the children that die >> >prematurely? >> > >> >Your trace doesn't show processes that terminate by receiving a certain >> >signal, unfortunately. >> > >> >> I did that, but it's too large to post and I can't send it to you >> directly. I'm getting my mail rejected as part of a DUL group. >> >> Any suggestions? > > [pid 26281] stat64("/usr/local/lib/dovecot/auth/pam.so", 0xbffffcd0) = -1 > ENOENT (No such file or directory) > > This seems to indicate that you have set auth_passdb = pam, but without > PAM > support compiled in so it tries to look it up as module and still doesn't > find it. > > [pid 26281] send(4, "<18>Nov 3 06:36:26 dovecot-auth"..., 59, 0) = 59 > > And I think this means it should have written "Unknown passdb type 'PAM'" > error message to log file. It didn't get there? > IIRC, configure --help showed pam as a default authentication. Do you need to recompile this '--with-pam' as one of the options? I have been compiling this as: ./configure --enable-debug or ./configure --enable-debug --enable-cyrus-sasl2 From cras@irccrew.org Tue Nov 4 00:04:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A9BB32385D; Tue, 4 Nov 2003 00:04:05 +0200 (EET) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 2660423841 for ; Tue, 4 Nov 2003 00:03:33 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id A4B062E027; Tue, 4 Nov 2003 00:03:29 +0200 (EET) Date: Tue, 4 Nov 2003 00:03:29 +0200 From: Timo Sirainen To: Terry Subject: Re: [Dovecot] evolution - folders not displayed correctly Message-ID: <20031103220329.GD10166@irccrew.org> References: <20031103194600.GC10166@irccrew.org> <20031103202540.91390.qmail@web60305.mail.yahoo.com> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20031103202540.91390.qmail@web60305.mail.yahoo.com> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 22:04:05 -0000 X-UID: 1812 Status: O On Mon, Nov 03, 2003 at 12:25:40PM -0800, Terry wrote: > * LIST (\Children \UnMarked) "." "INBOX" > * LIST (\UnMarked) "." "INBOX.Bellevue" .. > * LIST (\UnMarked) "." "Drafts" > * LIST (\UnMarked) "." "Templates" .. Well, some of your mailboxes are with INBOX. prefix and some not. I don't think Evolution still should name them as "Inbox.Bellevue" though.. Anyway, how about removing the inbox-prefixes from all mail clients and renaming them so that they don't contain the INBOX-prefix? :) From cras@irccrew.org Tue Nov 4 00:07:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AEEF32385D; Tue, 4 Nov 2003 00:07:09 +0200 (EET) Received: from shodan.irccrew.org (shodan [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id BA7E323841 for ; Tue, 4 Nov 2003 00:06:37 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id A4BE42E027; Tue, 4 Nov 2003 00:06:37 +0200 (EET) Date: Tue, 4 Nov 2003 00:06:37 +0200 From: Timo Sirainen To: tallison@tacocat.net Subject: Re: [Dovecot] dies on start-up: Auth process Message-ID: <20031103220637.GE10166@irccrew.org> References: <3FA5018D.8020307@tacocat.net> <20031103194322.GB10166@irccrew.org> <24614.198.208.159.14.1067892353.squirrel@gandolf.tacocat.net> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <24614.198.208.159.14.1067892353.squirrel@gandolf.tacocat.net> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 22:07:09 -0000 X-UID: 1813 Status: O On Mon, Nov 03, 2003 at 03:45:53PM -0500, tallison@tacocat.net wrote: > IIRC, configure --help showed pam as a default authentication. > Do you need to recompile this '--with-pam' as one of the options? It tries to detect PAM automatically. Running configure should list it in passdb list. If it doesn't, you could check from config.log if there's some errors about PAM. > I have been compiling this as: > ./configure --enable-debug > or > ./configure --enable-debug --enable-cyrus-sasl2 Well, cyrus-sasl2 doesn't actually work at all and you shouldn't really use the debugging, that's mostly meant for my own use :) --enable-debug adds a lot of unnecessary things just so that I can quickly notice if I break some things. From td3201@yahoo.com Tue Nov 4 00:12:51 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 461EB2385D; Tue, 4 Nov 2003 00:12:51 +0200 (EET) Received: from web60305.mail.yahoo.com (web60305.mail.yahoo.com [216.109.118.116]) by danu.procontrol.fi (Postfix) with SMTP id B175223841 for ; Tue, 4 Nov 2003 00:12:18 +0200 (EET) Message-ID: <20031103221217.23350.qmail@web60305.mail.yahoo.com> Received: from [205.144.146.240] by web60305.mail.yahoo.com via HTTP; Mon, 03 Nov 2003 14:12:17 PST Date: Mon, 3 Nov 2003 14:12:17 -0800 (PST) From: Terry Subject: Re: [Dovecot] evolution - folders not displayed correctly To: Timo Sirainen In-Reply-To: <20031103220329.GD10166@irccrew.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 22:12:51 -0000 X-UID: 1814 Status: O Content-Length: 1079 --- Timo Sirainen wrote: > On Mon, Nov 03, 2003 at 12:25:40PM -0800, Terry > wrote: > > * LIST (\Children \UnMarked) "." "INBOX" > > * LIST (\UnMarked) "." "INBOX.Bellevue" > .. > > * LIST (\UnMarked) "." "Drafts" > > * LIST (\UnMarked) "." "Templates" > .. > > Well, some of your mailboxes are with INBOX. prefix > and some not. I don't > think Evolution still should name them as > "Inbox.Bellevue" though.. Anyway, > how about removing the inbox-prefixes from all mail > clients and renaming > them so that they don't contain the INBOX-prefix? :) > What should be the proper format for directories? If I do an ls -la in ~/Maildir, what should I see for subfolders? is Inbox.foo not correct? I used yammc.pl to convert my files from mbox to maildir so Evolution didn't create them. Mozilla displays them fine. In fact, if I try to create a subfolder under Inbox in evolution, I get 'Generic Error'. ===== Terry __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From scott@thenation.com Tue Nov 4 00:51:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4FEAA2385D; Tue, 4 Nov 2003 00:51:36 +0200 (EET) Received: from bone.thenation.com (mail.thenation.com [209.212.93.65]) by danu.procontrol.fi (Postfix) with ESMTP id 9F4C723841 for ; Tue, 4 Nov 2003 00:51:03 +0200 (EET) Received: from bone.thenation.com (bone.thenation.com [127.0.0.1]) by bone.thenation.com (8.12.8/8.12.5) with ESMTP id hA3MoUAM007012 for ; Mon, 3 Nov 2003 17:50:30 -0500 Received: (from scott@localhost) by bone.thenation.com (8.12.8/8.12.8/Submit) id hA3MoTjX007010 for dovecot@procontrol.fi; Mon, 3 Nov 2003 17:50:29 -0500 X-Authentication-Warning: bone.thenation.com: scott set sender to scott@thenation.com using -f Date: Mon, 3 Nov 2003 17:50:29 -0500 From: Scott Klein To: dovecot@procontrol.fi Message-ID: <20031103225029.GB23640@thenation.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-Mailer: Mutt http://www.mutt.org/ Subject: [Dovecot] dovecot vs cyrus, uw, etc. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 22:51:36 -0000 X-UID: 1815 Status: O Content-Length: 1036 I've been doing research on switching our current e-mail server (qpopper, sendmail) to imap. The decision on which server to use is essentially down to Cyrus and Dovecot -- I like Cyrus' approach to a lot of things, but the "blackbox" nature of it makes some niceties like using spamassassin and procmail difficult, or at least counterintuitive. Dovecot seems to play nicer with other apps. I'm a bit concerned with stability, though. Although we don't have a lot of users (about 60) they're all very big e-mail users -- my users rely on their e-mail more than on their phones. We can't afford any downtime, and with our pop3 server, we haven't had any. Does anybody on this list use Dovecot to serve mission critical e-mail to an entire company? What kind of uptime can I expect? Is it genuinely ready for prime time? Has anybody here migrated from a recent release of Cyrus and can compare apples-to-apples? Many thanks, Scott Klein -- Scott Klein Web Publisher/Director of Technology The Nation Magazine http://www.thenation.com From tallison@tacocat.net Tue Nov 4 02:18:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 035DA2385D; Tue, 4 Nov 2003 02:18:05 +0200 (EET) Received: from tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id EAE5B23841 for ; Tue, 4 Nov 2003 02:17:29 +0200 (EET) Received: from tacocat.net (unknown [192.168.1.103]) by tacocat.net (Postfix) with ESMTP id 0E73279D23 for ; Mon, 3 Nov 2003 19:17:27 -0500 (EST) Message-ID: <3FA6F011.3010105@tacocat.net> Date: Mon, 03 Nov 2003 19:17:21 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] dies on start-up: Auth process References: <3FA5018D.8020307@tacocat.net> <20031103194322.GB10166@irccrew.org> <24614.198.208.159.14.1067892353.squirrel@gandolf.tacocat.net> <20031103220637.GE10166@irccrew.org> In-Reply-To: <20031103220637.GE10166@irccrew.org> X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 00:18:06 -0000 X-UID: 1816 Status: O Timo Sirainen wrote: > On Mon, Nov 03, 2003 at 03:45:53PM -0500, tallison@tacocat.net wrote: > >>IIRC, configure --help showed pam as a default authentication. >>Do you need to recompile this '--with-pam' as one of the options? > > > It tries to detect PAM automatically. Running configure should list it in > passdb list. If it doesn't, you could check from config.log if there's some > errors about PAM. > > >>I have been compiling this as: >>./configure --enable-debug >>or >>./configure --enable-debug --enable-cyrus-sasl2 > > > Well, cyrus-sasl2 doesn't actually work at all and you shouldn't really use > the debugging, that's mostly meant for my own use :) --enable-debug adds a > lot of unnecessary things just so that I can quickly notice if I break some > things. ./configure --with-pam | grep pam returns: configure: line 8578: pkg-config: command not found checking for pam_start in -lpam... no From tallison@tacocat.net Tue Nov 4 02:30:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 89C07238B6; Tue, 4 Nov 2003 02:30:30 +0200 (EET) Received: from tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id 0C77D23841 for ; Tue, 4 Nov 2003 02:29:58 +0200 (EET) Received: from tacocat.net (unknown [192.168.1.103]) by tacocat.net (Postfix) with ESMTP id 5367879D23 for ; Mon, 3 Nov 2003 19:29:57 -0500 (EST) Message-ID: <3FA6F2FF.1030704@tacocat.net> Date: Mon, 03 Nov 2003 19:29:51 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] dovecot vs cyrus, uw, etc. References: <20031103225029.GB23640@thenation.com> In-Reply-To: <20031103225029.GB23640@thenation.com> X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 00:30:30 -0000 X-UID: 1817 Status: O Content-Length: 2866 Scott Klein wrote: > I've been doing research on switching our current e-mail server > (qpopper, sendmail) to imap. The decision on which server to use is > essentially down to Cyrus and Dovecot -- I like Cyrus' approach to a lot > of things, but the "blackbox" nature of it makes some niceties like > using spamassassin and procmail difficult, or at least counterintuitive. > Dovecot seems to play nicer with other apps. > > I'm a bit concerned with stability, though. Although we don't have a lot > of users (about 60) they're all very big e-mail users -- my users rely > on their e-mail more than on their phones. We can't afford any downtime, > and with our pop3 server, we haven't had any. > > Does anybody on this list use Dovecot to serve mission critical e-mail > to an entire company? What kind of uptime can I expect? Is it genuinely > ready for prime time? Has anybody here migrated from a recent release of > Cyrus and can compare apples-to-apples? > > Many thanks, > Scott Klein > I can only provide some input. It seems to me that cyrus does have something of a black box approach to doing things. However, it's still in a maildir format although not in the typical ~/Maildir location. With regard to procmail/spamassassin support I have the following recommendation, and it can be applied to both cyrus and dovecot (I think). You do not mention what SMTP system you are using, I will assume you are sticking with sendmail and changing qpopper to some IMAP server. However, I would suggest you consider postfix in place of sendmail. And yes, it's very ready for mission critical. There is a package called amavisd-new which allows you to set up an anti-virus scanner and spamassassin as an extension of postfix. This can process email before it's delivered from postfix to where ever (procmail/lmtp/...) This simplifies some things in that the mail, as delivered to the MDA has already been "bagged and tagged" as spam, virus, good/bad and you can use procmail/sieve equally effectively for filtering from there. downside with cyrus-imap and sieve is that you cannot "shell" out and do anything else with your email, like report spam to Vipul's razor. In the battle against spam, it can be very important to be able to take immediate actions against spam in many cases. Procmail allows you to do much of this on the fly. Sieve can't. The other downside, for me, is that cyrus has poor documentation. The advantage with cyrus is that it can be, from what I'm told, easily administered from web pages. I'm still new with this dovecot thing and I technically haven't even gotten it to compile/run correctly. However some advantages that I do see with it are: ~/Maildir based, so it's not rocket science. very lean and simple to run. procmail friendly. awesome technical support with patient developer-dudes on hand. From ian@onepost.net Tue Nov 4 02:36:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5F340238B6; Tue, 4 Nov 2003 02:36:39 +0200 (EET) Received: from icicle.pobox.com (icicle.pobox.com [207.8.214.2]) by danu.procontrol.fi (Postfix) with ESMTP id 3DB7723841 for ; Tue, 4 Nov 2003 02:36:07 +0200 (EET) Received: from texas.pobox.com (texas.pobox.com[64.49.223.111]) by icicle.pobox.com (Postfix) with ESMTP id ACE9F7986B; Mon, 3 Nov 2003 19:36:04 -0500 (EST) Received: from [10.0.1.10] (209-6-159-188.c3-0.smr-ubr3.sbo-smr.ma.cable.rcn.com [209.6.159.188]) by texas.pobox.com (Postfix) with ESMTP id BD3A54534A; Mon, 3 Nov 2003 19:36:03 -0500 (EST) User-Agent: Microsoft-Entourage/10.1.0.2006 Date: Mon, 03 Nov 2003 19:35:48 -0500 Subject: Re: [Dovecot] dovecot vs cyrus, uw, etc. From: Ian Marlier To: Tom Allison , Message-ID: In-Reply-To: <3FA6F2FF.1030704@tacocat.net> Mime-version: 1.0 Content-type: text/plain; charset="ISO-8859-1" Content-transfer-encoding: quoted-printable X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 00:36:39 -0000 X-UID: 1818 Status: O Content-Length: 3477 On 11/3/03 7:29 PM, "Tom Allison" wrote: > Scott Klein wrote: >> I've been doing research on switching our current e-mail server >> (qpopper, sendmail) to imap. The decision on which server to use is >> essentially down to Cyrus and Dovecot -- I like Cyrus' approach to a lot >> of things, but the "blackbox" nature of it makes some niceties like >> using spamassassin and procmail difficult, or at least counterintuitive. >> Dovecot seems to play nicer with other apps. >>=20 >> I'm a bit concerned with stability, though. Although we don't have a lot >> of users (about 60) they're all very big e-mail users -- my users rely >> on their e-mail more than on their phones. We can't afford any downtime, >> and with our pop3 server, we haven't had any. >>=20 >> Does anybody on this list use Dovecot to serve mission critical e-mail >> to an entire company? What kind of uptime can I expect? Is it genuinely >> ready for prime time? Has anybody here migrated from a recent release of >> Cyrus and can compare apples-to-apples? >>=20 >> Many thanks, >> Scott Klein >>=20 >=20 > I can only provide some input. >=20 > It seems to me that cyrus does have something of a black box approach to > doing things. However, it's still in a maildir format although not in > the typical ~/Maildir location. >=20 > With regard to procmail/spamassassin support I have the following > recommendation, and it can be applied to both cyrus and dovecot (I think)= . >=20 > You do not mention what SMTP system you are using, I will assume you are > sticking with sendmail and changing qpopper to some IMAP server. > However, I would suggest you consider postfix in place of sendmail. And > yes, it's very ready for mission critical. >=20 > There is a package called amavisd-new which allows you to set up an > anti-virus scanner and spamassassin as an extension of postfix. This > can process email before it's delivered from postfix to where ever > (procmail/lmtp/...) >=20 > This simplifies some things in that the mail, as delivered to the MDA > has already been "bagged and tagged" as spam, virus, good/bad and you > can use procmail/sieve equally effectively for filtering from there. >=20 > downside with cyrus-imap and sieve is that you cannot "shell" out and do > anything else with your email, like report spam to Vipul's razor. In > the battle against spam, it can be very important to be able to take > immediate actions against spam in many cases. Procmail allows you to do > much of this on the fly. Sieve can't. >=20 > The other downside, for me, is that cyrus has poor documentation. >=20 > The advantage with cyrus is that it can be, from what I'm told, easily > administered from web pages. >=20 > I'm still new with this dovecot thing and I technically haven't even > gotten it to compile/run correctly. However some advantages that I do > see with it are: > ~/Maildir based, so it's not rocket science. > very lean and simple to run. > procmail friendly. > awesome technical support with patient developer-dudes on hand. Second that. I replied to Scott personally, but it's worth mentioning to the list, I think -- I've been running Dovecot/Postfix/amavisd-new for a couple of months now, and have had no problems. It took a few days to get it set up, but once I did, it hasn=B9t needed to be touched. It's a money system. And find me a developer better at keeping on top of support and development than Timo and I'll buy you a beer ;-) - Ian From daniel@electricrain.com Tue Nov 4 10:02:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F3A0E2385D; Tue, 4 Nov 2003 10:02:58 +0200 (EET) Received: from electricrain.com (electricrain.com [64.71.143.226]) by danu.procontrol.fi (Postfix) with ESMTP id 28E9F23841 for ; Tue, 4 Nov 2003 10:02:25 +0200 (EET) Received: (qmail 30727 invoked by uid 501); 4 Nov 2003 08:02:19 -0000 Date: Tue, 4 Nov 2003 00:02:19 -0800 From: Dan Sully To: dovecot@procontrol.fi Message-ID: <20031104080219.GB19124@electricrain.com> Mail-Followup-To: dovecot@procontrol.fi Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Invader-Zim: Where's my moose? User-Agent: Mutt/1.5.4i Subject: [Dovecot] -test8 & Mail.app X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 08:02:59 -0000 X-UID: 1819 Status: O A user just tried to use OSX 10.3's Mail.app via imap. It caused the process to start eating CPU, and this in the logs. Any idea what could be happening here? What information should I get on his setup? imap-login: Nov 03 14:28:37 Info: Login: fenner [12.106.35.5] imap(fenner): Nov 03 14:30:37 Error: Timeout while waiting for release of exclusive fcntl() lock for index file /home/f/fenner/M>aildir/.INBOX/.imap.index imap(fenner): Nov 03 14:32:37 Error: Timeout while waiting for release of exclusive fcntl() lock for index file /home/f/fenner/M>aildir/.INBOX/.imap.index imap(fenner): Nov 03 14:32:37 Panic: file index-messageset.c: line 346 (index_messageset_next): assertion failed: (!(ctx->expung>es->uid1 <= mail->rec->uid && ctx->expunges->uid2 >= mail->rec->uid)) dovecot: Nov 03 14:32:37 Error: child 26371 (imap) killed with signal 6 Thanks. -D -- Ooo-Eee-Ooo-Ah-Ah-Ting-Tang-Walla-Walla-Bing-Bang From Clive.Jones+nospam+procontrol.fi@meridian.co.uk Tue Nov 4 14:37:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1AB7D2385D; Tue, 4 Nov 2003 14:37:59 +0200 (EET) Received: from greenwich.meridian-audio.ltd.uk (greenwich.meridian-audio.ltd.uk [194.203.67.114]) by danu.procontrol.fi (Postfix) with ESMTP id 1114E23841 for ; Tue, 4 Nov 2003 14:37:26 +0200 (EET) Received: from CLIVE (clive.uk.ma-int.com [10.76.18.1]) by greenwich.meridian-audio.ltd.uk (Postfix) with SMTP id 0F59F2D07 for ; Tue, 4 Nov 2003 12:37:23 +0000 (GMT) Message-ID: <0c9e01c3a2d0$60faeae0$01124c0a@uk.maint.com> From: "Clive Jones" To: Date: Tue, 4 Nov 2003 12:37:15 -0000 Organization: Meridian Audio MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4927.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4927.1200 Subject: [Dovecot] pop3-login process leakage X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 12:37:59 -0000 X-UID: 1820 Status: O Content-Length: 2479 Hi, I've recently deployed dovecot on our servers, to replace courier-imapd. I'm delighted with its features and performance, but there's a major problem - it's leaking pop3-login processes. We have about 60 client machines, each collecting mail once every two minutes. In this configuration, the number of pop3-login processes increases by about ten an hour - apparently without bound. My workaround is to increase the open files rlimit, and the kernel overall limit on open files. This postpones disaster for long enough that killing and restarting dovecot nightly avoids problems. A possibly related problem is that about 1% of attempted POP3 logins fail. At the server, all I see is a syslog entry like this: Nov 3 22:17:21 greenwich pop3-login: Disconnected: Inactivity [10.76.30.246] At the client, there is a long (about 60-second) timeout. Then the client automatically retries, and generally succeeds. There are *not* exactly as many such disconnects as there are stray pop3-login processes - I counted roughly 230 inactivity disconnects in the time it took for 190 stray processes to accumulate. We are running dovecot 0.99.10 on OpenBSD 3.2 . The configuration is fairly normal, except that we are using a custom userdb and passdb (compiled as shared objects): auth_userdb = passwd8 auth_passdb = smb passwd8 is just userdb-passwd.c with a trivial tweak to truncate presented user names to eight characters. smb is an shim that delegates authentication to smbclient, to check passwords against NT domain controllers. I've placed the source code for these two modules in: http://www.nsict.org/~clive/misc/dovecot-2003-11-04/ ...along with my dovecot.conf, and a file that illustrates the growth in the number of pop3-login processes over time. So far as I'm aware, those modules are loaded by the dovecot-auth process, not the pop3-login processes, and are therefore unlikely to be the problem? The client machines are LAN-connected, and running a mixture of Outlook (2000/XP) and Outlook Express (5.5 and 6). There are also a couple of people using Mozilla. Most are collecting e-mail via POP3, a few via IMAP. This issue didn't show up under beta-test loading before I deployed dovecot. Since it seems only to be exhibited (or, at least, noticeably exhibited) under live load, it's very hard for me to diagnose things further without disrupting service. I'd be very grateful if anyone could suggest what might be wrong. Regards, --Clive. From jaekel@webgods.de Tue Nov 4 19:10:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 34E2D2385D; Tue, 4 Nov 2003 19:10:31 +0200 (EET) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by danu.procontrol.fi (Postfix) with ESMTP id 6CE1523850 for ; Tue, 4 Nov 2003 19:09:59 +0200 (EET) Received: from ANDREAS-M5LES2F.webgods.de (rz-gw.cronon.net [192.166.192.225]) by fredda.webgods.de (Postfix) with ESMTP id DA3DF13C003 for ; Tue, 4 Nov 2003 18:09:56 +0100 (CET) Message-Id: <5.2.1.1.0.20031104173810.036d1430@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Tue, 04 Nov 2003 18:07:17 +0100 To: dovecot@procontrol.fi From: Andreas Jaekel Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=====================_969819046==_" Subject: [Dovecot] current CVS seems to have index problems. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 17:10:31 -0000 X-UID: 1821 Status: O Content-Length: 2899 --=====================_969819046==_ Content-Type: text/plain; charset="us-ascii"; format=flowed Hi Timo. I've checked out the current CVS version and tested it. There seems to be a problem when dovecot accesses mailboxes for the first time: I have a mailbox with 4 mails, and no special IMAP headers. (no X-IMAPBase, X-UID etc.) and it's in mbox format. I log in, SELECT the folder and do FETCH 2 BODY[] and receive only a snipplet of the mail from somewhere in the middle of it. After some debugging it seems like dovecot: 1. creates an index, for mbox_index_rewrite(), 2. rewrites the mbox, but then 3. forgets to update the index after the rewrite. and ends up in a state with a pre-rewrite index but a post-rewrite folder. Now, there are many ways to make dovecot rebuild the index after rewriting the folder, but some are ugly and some are not, some need extra code to avoid endless loops. I don't know how you would want this fixed. I attached a patch that worked for me. After that patch, I have more (new?) problems, which may or may not be related. Now, when I SELECT a folder and do a COPY within the folder (*smile*) I get this: A COPY 1 INBOX * BYE Mailbox is in inconsistent state, please relogin. Connection closed by foreign host. ... which is what I'm gonna start looking for right now. :) Regards, Andy --=====================_969819046==_ Content-Type: application/octet-stream; name="dovecot-04Nov03-initial-idx.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dovecot-04Nov03-initial-idx.patch" ZGlmZiAtTnVyIGRvdmVjb3Qvc3JjL2xpYi1pbmRleC9tYm94L21ib3gtcmV3cml0ZS5jIGRvdmVj b3QtaWR4L3NyYy9saWItaW5kZXgvbWJveC9tYm94LXJld3JpdGUuYwotLS0gZG92ZWNvdC9zcmMv bGliLWluZGV4L21ib3gvbWJveC1yZXdyaXRlLmMJU3VuIE9jdCAgNSAxOTo1NDoxOSAyMDAzCisr KyBkb3ZlY290LWlkeC9zcmMvbGliLWluZGV4L21ib3gvbWJveC1yZXdyaXRlLmMJVHVlIE5vdiAg NCAxODowMDoyOCAyMDAzCkBAIC03NjksNiArNzY5LDggQEAKIAkJfQogCX0KIAorICAgICAgICBp bmRleC0+c2V0X2ZsYWdzIHw9IE1BSUxfSU5ERVhfSERSX0ZMQUdfUkVCVUlMRDsKKwogCWlmICgh ZmFpbGVkKSB7CiAJCWlmICghcmVzZXRfZGlydHlfZmxhZ3MoaW5kZXgpKQogCQkJZmFpbGVkID0g VFJVRTsKZGlmZiAtTnVyIGRvdmVjb3Qvc3JjL2xpYi1pbmRleC9tYm94L21ib3gtc3luYy5jIGRv dmVjb3QtaWR4L3NyYy9saWItaW5kZXgvbWJveC9tYm94LXN5bmMuYwotLS0gZG92ZWNvdC9zcmMv bGliLWluZGV4L21ib3gvbWJveC1zeW5jLmMJV2VkIE9jdCAyOSAxNjo0NTo0MSAyMDAzCisrKyBk b3ZlY290LWlkeC9zcmMvbGliLWluZGV4L21ib3gvbWJveC1zeW5jLmMJVHVlIE5vdiAgNCAxODow MTowMCAyMDAzCkBAIC05Niw2ICs5Niw3IEBACiAKIAkJaWYgKChpbmRleC0+c2V0X2ZsYWdzICYg TUFJTF9JTkRFWF9IRFJfRkxBR19SRUJVSUxEKSAhPSAwKSB7CiAJCQkvKiB1aWR2YWxpZGl0eSBw cm9iYWJseSBjaGFuZ2VkLCByZWJ1aWxkICovCisJCQlpbmRleC0+c2V0X2ZsYWdzICY9IH5NQUlM X0lOREVYX0hEUl9GTEFHX1JFQlVJTEQ7CiAJCQlpZiAoIWluZGV4LT5yZWJ1aWxkKGluZGV4KSkK IAkJCQlyZXR1cm4gRkFMU0U7CiAJCX0K --=====================_969819046==_ Content-Type: text/plain; charset="us-ascii"; format=flowed --=====================_969819046==_-- From jaekel@webgods.de Tue Nov 4 19:19:10 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 16A0A238B6; Tue, 4 Nov 2003 19:19:10 +0200 (EET) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by danu.procontrol.fi (Postfix) with ESMTP id 7883F2385D for ; Tue, 4 Nov 2003 19:18:36 +0200 (EET) Received: from ANDREAS-M5LES2F.webgods.de (rz-gw.cronon.net [192.166.192.225]) by fredda.webgods.de (Postfix) with ESMTP id DED9513C003 for ; Tue, 4 Nov 2003 18:18:35 +0100 (CET) Message-Id: <5.2.1.1.0.20031104181417.02a83498@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Tue, 04 Nov 2003 18:15:56 +0100 To: dovecot@procontrol.fi From: Andreas Jaekel Subject: Re: [Dovecot] current CVS seems to have index problems. In-Reply-To: <5.2.1.1.0.20031104173810.036d1430@fredda.webgods.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 17:19:10 -0000 X-UID: 1822 Status: O Content-Length: 1449 Oops. The patch I sent was bad(tm)... the line in mbox_index_rewrite.c needs to be 3 lines up. Regards, Andy At 18:07 04/11/2003 +0100, you wrote: >Hi Timo. > >I've checked out the current CVS version and tested it. >There seems to be a problem when dovecot accesses mailboxes >for the first time: > >I have a mailbox with 4 mails, and no special IMAP headers. >(no X-IMAPBase, X-UID etc.) and it's in mbox format. > >I log in, SELECT the folder and do >FETCH 2 BODY[] >and receive only a snipplet of the mail from >somewhere in the middle of it. > >After some debugging it seems like dovecot: >1. creates an index, for mbox_index_rewrite(), >2. rewrites the mbox, but then >3. forgets to update the index after the rewrite. >and ends up in a state with a pre-rewrite index but >a post-rewrite folder. > >Now, there are many ways to make dovecot rebuild >the index after rewriting the folder, but some are >ugly and some are not, some need extra code to avoid >endless loops. I don't know how you would want this >fixed. > >I attached a patch that worked for me. > >After that patch, I have more (new?) problems, which >may or may not be related. > >Now, when I SELECT a folder and do a COPY within >the folder (*smile*) I get this: > >A COPY 1 INBOX >* BYE Mailbox is in inconsistent state, please relogin. >Connection closed by foreign host. > > >... which is what I'm gonna start looking for right now. :) > > >Regards, > Andy > > From mem@mv.mv.com Tue Nov 4 20:25:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4F80C238B6; Tue, 4 Nov 2003 20:25:14 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by danu.procontrol.fi (Postfix) with SMTP id 2D5B223841 for ; Tue, 4 Nov 2003 20:24:41 +0200 (EET) Received: (qmail 2923 invoked from network); 4 Nov 2003 13:24:39 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 4 Nov 2003 13:24:39 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 16730 invoked by uid 101); 4 Nov 2003 13:24:38 -0500 From: "Mark E. Mallett" Date: Tue, 4 Nov 2003 13:24:38 -0500 To: Scott Klein Subject: Re: [Dovecot] dovecot vs cyrus, uw, etc. Message-ID: <20031104182438.GD13882@iridium.mv.net> References: <20031103225029.GB23640@thenation.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20031103225029.GB23640@thenation.com> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 18:25:14 -0000 X-UID: 1823 Status: O Content-Length: 1182 On Mon, Nov 03, 2003 at 05:50:29PM -0500, Scott Klein wrote: > I've been doing research on switching our current e-mail server > (qpopper, sendmail) to imap. The decision on which server to use is > essentially down to Cyrus and Dovecot -- I like Cyrus' approach to a lot > of things, but the "blackbox" nature of it makes some niceties like > using spamassassin and procmail difficult, or at least counterintuitive. > Dovecot seems to play nicer with other apps. I'm a little confused about the question. qpopper, sendmail, and imap are all implementations of different things. You can have all three of those.. so the question about moving from (qpopper,sendmail) to imap confuses me. (Probably just me being too literal?) procmail/spamassassin can be applied at final delivery time, without affecting which POP or imap implementation you choose. > Does anybody on this list use Dovecot to serve mission critical e-mail > to an entire company? We use dovecot for some number of thousands of mailboxes. I'm quite happy with it. As with anything, one can always want more features, but the 0.99.10 version does what it does quite well. I know that's not an answer :-) mm From scott@thenation.com Tue Nov 4 20:34:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 46FD2238C5; Tue, 4 Nov 2003 20:34:05 +0200 (EET) Received: from bone.thenation.com (mail.thenation.com [209.212.93.65]) by danu.procontrol.fi (Postfix) with ESMTP id 1043123841 for ; Tue, 4 Nov 2003 20:33:33 +0200 (EET) Received: from bone.thenation.com (bone.thenation.com [127.0.0.1]) by bone.thenation.com (8.12.8/8.12.5) with ESMTP id hA4IWsAM006801 for ; Tue, 4 Nov 2003 13:32:54 -0500 Received: (from scott@localhost) by bone.thenation.com (8.12.8/8.12.8/Submit) id hA4IWsnP006799 for dovecot@procontrol.fi; Tue, 4 Nov 2003 13:32:54 -0500 X-Authentication-Warning: bone.thenation.com: scott set sender to scott@thenation.com using -f Date: Tue, 4 Nov 2003 13:32:54 -0500 From: Scott Klein To: dovecot@procontrol.fi Subject: Re: [Dovecot] dovecot vs cyrus, uw, etc. Message-ID: <20031104183254.GF17721@thenation.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-Mailer: Mutt http://www.mutt.org/ X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 18:34:05 -0000 X-UID: 1824 Status: O Thanks, all. I'm definitely leaning toward Dovecot. Cyrus is just too big a pain for very little payoff. From mreimer@vpop.net Tue Nov 4 21:10:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 73CBB238C5; Tue, 4 Nov 2003 21:10:47 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id C49B92385D for ; Tue, 4 Nov 2003 21:10:14 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id B1FDC3A70E9; Tue, 4 Nov 2003 11:10:08 -0800 (PST) Message-ID: <3FA7F9C0.5060100@vpop.net> Date: Tue, 04 Nov 2003 13:10:56 -0600 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Bug with partial IMAP fetches References: In-Reply-To: Content-Type: multipart/mixed; boundary="------------080900070609080104090805" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 19:10:47 -0000 X-UID: 1825 Status: O Content-Length: 4697 This is a multi-part message in MIME format. --------------080900070609080104090805 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Matthew Reimer wrote:
There is a bug in partial IMAP fetches where the following happens:

fetch ... <0.10240>
correctly returns bytes 0-10239
fetch ... <10240.10240>
incorrectly returns bytes 20479...
fetch ... <10240.10240> (a 2nd time)
correctly returns bytes 10240-20479

While the second fetch fails, the third fetch works correctly. I tracked this down to a problem with partial_cache. There seems to be a bug in lib-mail/message-send.c:39 (CVS):

    ret = o_stream_send_istream(output, input) > 0;

This causes message_send() to return 0 or 1 (note the "> 0"), not the number of bytes sent. This in turn causes partial.pos.virtual_size to get a value of 1 rather than 10240 in fetch_body(), and this in turn results in the wrong portion of the message being returned for the subsequent fetch.

But then when I remove the "> 0" from the above line of code, I get off-by-one errors:

fetch ... <0.10240>
correctly returns bytes 0-10240
fetch ... <10240.10240>
incorrectly returns bytes 10241-20480
fetch ... <10240.10240> (a 2nd time)
correctly returns bytes 10240-20479

I'm guessing there is a bug in the interaction with message_skip_virtual(), but I haven't been able to find the problem yet.

Any ideas? I've attached the offending message.

Matt
I think I've found the bug. The attached patch fixes the problem for me. The first problem is that the wrong value is being returned by message_send() because ret is getting set to the wrong value (see above or patch). The second problem is that in the special case where physical_size == virtual_size (i.e., sendfile can be used) i_stream_skip(input, virtual_skip) is being called on the input stream. This is wrong because virtual_skip is supposed to indicate that \r was the last character seen and therefore \n needs to be sent before any of the input stream; but in the sendfile case this is not necessary.

I think a little refactoring of seek_partial(), message_send() and message_skip_virtual() might be helpful to clarify the code. The virtual_skip argument to message_send() is an off_t but is only used to indicate that \r was the last character read, so it would probably be more clear to add another argument cr_skipped (like message_skip_virtual()). Better might be to put all the partial cache stuff in message-send.c.

Matt
--------------080900070609080104090805 Content-Type: text/plain; name="message-send.c.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="message-send.c.patch" --- message-send.c.orig Sun Jun 22 18:09:48 2003 +++ message-send.c Tue Nov 4 12:53:04 2003 @@ -31,12 +31,11 @@ if (msg_size->physical_size == msg_size->virtual_size && !fix_nuls) { /* no need to kludge with CRs, we can use sendfile() */ - i_stream_skip(input, virtual_skip); old_limit = input->v_limit; limit = input->v_offset + max_virtual_size; i_stream_set_read_limit(input, I_MIN(limit, old_limit)); - ret = o_stream_send_istream(output, input) > 0; + ret = o_stream_send_istream(output, input); i_stream_set_read_limit(input, old_limit); return ret; --------------080900070609080104090805-- From mreimer@vpop.net Tue Nov 4 21:38:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C7FF6238C8; Tue, 4 Nov 2003 21:38:29 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 46B022385D for ; Tue, 4 Nov 2003 21:37:55 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id DBBFE3A7138 for ; Tue, 4 Nov 2003 11:37:51 -0800 (PST) Message-ID: <3FA8003F.2070807@vpop.net> Date: Tue, 04 Nov 2003 13:38:39 -0600 From: Matthew Reimer Organization: VPOP Technologies, Inc. User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: multipart/mixed; boundary="------------070405060704010805040700" Subject: [Dovecot] PATCH: make local IP address available to auth modules X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 19:38:29 -0000 X-UID: 1826 Status: O Content-Length: 21871 This is a multi-part message in MIME format. --------------070405060704010805040700 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit The attached patch makes the local IP address to which the client connected available to the authentication modules; i.e., the local IP address is available for substitution as %i for the mysql and pgsql modules. We needed this feature to support thousands of our legacy accounts which are authenticated by username/local_part (not the full email address) and IP address (one per domain). Timo, would this be acceptable to commit? One further improvement would be to make the remote IP address available as well, in case one wanted to implement a tcpwrapper-like functionality. Matt --------------070405060704010805040700 Content-Type: text/plain; name="ip.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="ip.patch" diff -u -r work.patched/dovecot-0.99.10/src/auth/auth-login-interface.h work/dovecot-0.99.10/src/auth/auth-login-interface.h --- work.patched/dovecot-0.99.10/src/auth/auth-login-interface.h Sun May 18 07:26:28 2003 +++ work/dovecot-0.99.10/src/auth/auth-login-interface.h Fri Oct 24 13:57:18 2003 @@ -1,6 +1,8 @@ #ifndef __AUTH_LOGIN_INTERFACE_H #define __AUTH_LOGIN_INTERFACE_H +#include "network.h" + /* max. size for auth_login_request_continue.data[] */ #define AUTH_LOGIN_MAX_REQUEST_DATA_SIZE 4096 @@ -47,6 +49,7 @@ struct auth_login_request_new { enum auth_login_request_type type; /* AUTH_LOGIN_REQUEST_NEW */ unsigned int id; /* unique ID for the request */ + struct ip_addr ip_local; enum auth_mech mech; enum auth_protocol protocol; @@ -56,6 +59,7 @@ struct auth_login_request_continue { enum auth_login_request_type type; /* AUTH_LOGIN_REQUEST_CONTINUE */ unsigned int id; + struct ip_addr ip_local; size_t data_size; /* unsigned char data[]; */ diff -u -r work.patched/dovecot-0.99.10/src/auth/master-connection.c work/dovecot-0.99.10/src/auth/master-connection.c --- work.patched/dovecot-0.99.10/src/auth/master-connection.c Fri Aug 22 17:56:18 2003 +++ work/dovecot-0.99.10/src/auth/master-connection.c Fri Oct 24 13:57:35 2003 @@ -133,8 +133,9 @@ } send_reply(&failure_reply, sizeof(failure_reply), request->tag); } else { - userdb->lookup(auth_request->user, userdb_callback, - POINTER_CAST(request->tag)); + userdb->lookup(auth_request->user, + net_ip2addr(&auth_request->ip_local), + userdb_callback, POINTER_CAST(request->tag)); mech_request_free(login_conn, auth_request, request->id); } } diff -u -r work.patched/dovecot-0.99.10/src/auth/mech.c work/dovecot-0.99.10/src/auth/mech.c --- work.patched/dovecot-0.99.10/src/auth/mech.c Sun May 18 07:26:28 2003 +++ work/dovecot-0.99.10/src/auth/mech.c Fri Oct 24 13:57:51 2003 @@ -97,6 +97,7 @@ auth_request->created = ioloop_time; auth_request->conn = conn; auth_request->id = request->id; + auth_request->ip_local = request->ip_local; auth_request->protocol = request->protocol; hash_insert(conn->auth_requests, POINTER_CAST(request->id), diff -u -r work.patched/dovecot-0.99.10/src/auth/mech.h work/dovecot-0.99.10/src/auth/mech.h --- work.patched/dovecot-0.99.10/src/auth/mech.h Sun May 18 07:26:28 2003 +++ work/dovecot-0.99.10/src/auth/mech.h Fri Oct 24 13:58:02 2003 @@ -14,6 +14,7 @@ struct login_connection *conn; unsigned int id; + struct ip_addr ip_local; time_t created; enum auth_protocol protocol; diff -u -r work.patched/dovecot-0.99.10/src/auth/passdb-ldap.c work/dovecot-0.99.10/src/auth/passdb-ldap.c --- work.patched/dovecot-0.99.10/src/auth/passdb-ldap.c Thu Mar 20 09:55:57 2003 +++ work/dovecot-0.99.10/src/auth/passdb-ldap.c Fri Oct 24 13:58:20 2003 @@ -145,7 +145,8 @@ passdb_ldap_conn->attr_names[ATTR_VIRTUAL_USER], user); } else { str = t_str_new(512); - var_expand(str, conn->set.pass_filter, user, NULL); + var_expand(str, conn->set.pass_filter, user, NULL, + net_ip2addr(&auth_request->ip_local)); filter = str_c(str); } diff -u -r work.patched/dovecot-0.99.10/src/auth/passdb-mysql.c work/dovecot-0.99.10/src/auth/passdb-mysql.c --- work.patched/dovecot-0.99.10/src/auth/passdb-mysql.c Fri Aug 29 17:47:24 2003 +++ work/dovecot-0.99.10/src/auth/passdb-mysql.c Fri Oct 24 13:58:31 2003 @@ -109,7 +109,8 @@ str = t_str_new(512); var_expand(str, conn->set.password_query, - str_escape(auth_request->user), NULL); + str_escape(auth_request->user), NULL, + net_ip2addr(&auth_request->ip_local)); query = str_c(str); mysql_request->callback = mysql_handle_request; diff -u -r work.patched/dovecot-0.99.10/src/auth/passdb-pgsql.c work/dovecot-0.99.10/src/auth/passdb-pgsql.c --- work.patched/dovecot-0.99.10/src/auth/passdb-pgsql.c Fri Apr 4 06:17:25 2003 +++ work/dovecot-0.99.10/src/auth/passdb-pgsql.c Fri Oct 24 14:01:08 2003 @@ -105,7 +105,8 @@ str = t_str_new(512); var_expand(str, conn->set.password_query, - str_escape(auth_request->user), NULL); + str_escape(auth_request->user), NULL, + net_ip2addr(&auth_request->ip_local)); query = str_c(str); pgsql_request->callback = pgsql_handle_request; diff -u -r work.patched/dovecot-0.99.10/src/auth/userdb-ldap.c work/dovecot-0.99.10/src/auth/userdb-ldap.c --- work.patched/dovecot-0.99.10/src/auth/userdb-ldap.c Sun May 18 07:26:28 2003 +++ work/dovecot-0.99.10/src/auth/userdb-ldap.c Fri Oct 24 15:46:21 2003 @@ -142,8 +142,8 @@ t_pop(); } -static void userdb_ldap_lookup(const char *user, userdb_callback_t *callback, - void *context) +static void userdb_ldap_lookup(const char *user, const char *ip_local, + userdb_callback_t *callback, void *context) { struct ldap_connection *conn = userdb_ldap_conn->conn; struct userdb_ldap_request *request; @@ -156,7 +156,7 @@ userdb_ldap_conn->attr_names[ATTR_VIRTUAL_USER], user); } else { str = t_str_new(512); - var_expand(str, conn->set.user_filter, user, NULL); + var_expand(str, conn->set.user_filter, user, NULL, ip_local); filter = str_c(str); } diff -u -r work.patched/dovecot-0.99.10/src/auth/userdb-mysql.c work/dovecot-0.99.10/src/auth/userdb-mysql.c --- work.patched/dovecot-0.99.10/src/auth/userdb-mysql.c Fri Oct 24 15:07:12 2003 +++ work/dovecot-0.99.10/src/auth/userdb-mysql.c Fri Oct 24 14:58:08 2003 @@ -115,8 +115,8 @@ } } -static void userdb_mysql_lookup(const char *user, userdb_callback_t *callback, - void *context) +static void userdb_mysql_lookup(const char *user, const char *ip_local, + userdb_callback_t *callback, void *context) { struct mysql_connection *conn = userdb_mysql_conn->conn; struct userdb_mysql_request *request; @@ -124,7 +124,8 @@ string_t *str; str = t_str_new(512); - var_expand(str, conn->set.user_query, str_escape(user), NULL); + var_expand(str, conn->set.user_query, str_escape(user), NULL, + ip_local); query = str_c(str); request = i_malloc(sizeof(struct userdb_mysql_request) + strlen(user)); diff -u -r work.patched/dovecot-0.99.10/src/auth/userdb-passwd-file.c work/dovecot-0.99.10/src/auth/userdb-passwd-file.c --- work.patched/dovecot-0.99.10/src/auth/userdb-passwd-file.c Sun May 18 07:26:28 2003 +++ work/dovecot-0.99.10/src/auth/userdb-passwd-file.c Fri Oct 24 15:28:09 2003 @@ -11,8 +11,8 @@ struct passwd_file *userdb_pwf = NULL; -static void passwd_file_lookup(const char *user, userdb_callback_t *callback, - void *context) +static void passwd_file_lookup(const char *user, const char *ip_local, + userdb_callback_t *callback, void *context) { struct user_data data; struct passwd_user *pu; diff -u -r work.patched/dovecot-0.99.10/src/auth/userdb-passwd.c work/dovecot-0.99.10/src/auth/userdb-passwd.c --- work.patched/dovecot-0.99.10/src/auth/userdb-passwd.c Sun May 18 07:26:28 2003 +++ work/dovecot-0.99.10/src/auth/userdb-passwd.c Fri Oct 24 15:28:26 2003 @@ -10,8 +10,8 @@ #include -static void passwd_lookup(const char *user, userdb_callback_t *callback, - void *context) +static void passwd_lookup(const char *user, const char *ip_local, + userdb_callback_t *callback, void *context) { struct user_data data; struct passwd *pw; diff -u -r work.patched/dovecot-0.99.10/src/auth/userdb-pgsql.c work/dovecot-0.99.10/src/auth/userdb-pgsql.c --- work.patched/dovecot-0.99.10/src/auth/userdb-pgsql.c Sun May 18 07:26:28 2003 +++ work/dovecot-0.99.10/src/auth/userdb-pgsql.c Fri Oct 24 15:45:51 2003 @@ -84,8 +84,8 @@ } } -static void userdb_pgsql_lookup(const char *user, userdb_callback_t *callback, - void *context) +static void userdb_pgsql_lookup(const char *user, const char *ip_local, + userdb_callback_t *callback, void *context) { struct pgsql_connection *conn = userdb_pgsql_conn->conn; struct userdb_pgsql_request *request; @@ -93,7 +93,7 @@ string_t *str; str = t_str_new(512); - var_expand(str, conn->set.user_query, str_escape(user), NULL); + var_expand(str, conn->set.user_query, str_escape(user), NULL, ip_local); query = str_c(str); request = i_malloc(sizeof(struct userdb_pgsql_request) + strlen(user)); diff -u -r work.patched/dovecot-0.99.10/src/auth/userdb-static.c work/dovecot-0.99.10/src/auth/userdb-static.c --- work.patched/dovecot-0.99.10/src/auth/userdb-static.c Wed Feb 19 18:46:51 2003 +++ work/dovecot-0.99.10/src/auth/userdb-static.c Fri Oct 24 15:30:40 2003 @@ -16,8 +16,8 @@ static gid_t static_gid; static char *static_home_template; -static void static_lookup(const char *user, userdb_callback_t *callback, - void *context) +static void static_lookup(const char *user, const char *ip_local, + userdb_callback_t *callback, void *context) { struct user_data data; string_t *str; @@ -29,7 +29,7 @@ data.virtual_user = data.system_user = user; str = t_str_new(256); - var_expand(str, static_home_template, user, NULL); + var_expand(str, static_home_template, user, NULL, ip_local); data.home = str_c(str); callback(&data, context); diff -u -r work.patched/dovecot-0.99.10/src/auth/userdb-vpopmail.c work/dovecot-0.99.10/src/auth/userdb-vpopmail.c --- work.patched/dovecot-0.99.10/src/auth/userdb-vpopmail.c Thu Mar 20 09:46:33 2003 +++ work/dovecot-0.99.10/src/auth/userdb-vpopmail.c Fri Oct 24 15:29:24 2003 @@ -46,8 +46,8 @@ #ifdef USERDB_VPOPMAIL -static void vpopmail_lookup(const char *user, userdb_callback_t *callback, - void *context) +static void vpopmail_lookup(const char *user, const char *ip_local, + userdb_callback_t *callback, void *context) { char vpop_user[VPOPMAIL_LIMIT], vpop_domain[VPOPMAIL_LIMIT]; struct vqpasswd *vpw; diff -u -r work.patched/dovecot-0.99.10/src/auth/userdb.h work/dovecot-0.99.10/src/auth/userdb.h --- work.patched/dovecot-0.99.10/src/auth/userdb.h Fri Aug 22 13:07:53 2003 +++ work/dovecot-0.99.10/src/auth/userdb.h Fri Oct 24 15:47:11 2003 @@ -17,8 +17,8 @@ void (*init)(const char *args); void (*deinit)(void); - void (*lookup)(const char *user, userdb_callback_t *callback, - void *context); + void (*lookup)(const char *user, const char *ip_local, + userdb_callback_t *callback, void *context); }; extern struct userdb_module *userdb; diff -u -r work.patched/dovecot-0.99.10/src/imap-login/client.c work/dovecot-0.99.10/src/imap-login/client.c --- work.patched/dovecot-0.99.10/src/imap-login/client.c Wed Jun 25 20:02:04 2003 +++ work/dovecot-0.99.10/src/imap-login/client.c Fri Oct 24 14:21:46 2003 @@ -49,7 +49,7 @@ if (!verbose_proctitle || !process_per_connection) return; - addr = net_ip2addr(&client->common.ip); + addr = net_ip2addr(&client->common.ip_remote); if (addr == NULL) addr = "??"; @@ -126,7 +126,7 @@ client->common.io = NULL; } - fd_ssl = ssl_proxy_new(client->common.fd, &client->common.ip); + fd_ssl = ssl_proxy_new(client->common.fd, &client->common.ip_remote); if (fd_ssl != -1) { client->tls = TRUE; client_set_title(client); @@ -338,7 +338,8 @@ } } -struct client *client_create(int fd, struct ip_addr *ip, int ssl) +struct client *client_create(int fd, struct ip_addr *ip_remote, + struct ip_addr *ip_local, int ssl) { struct imap_client *client; @@ -357,7 +358,8 @@ client->refcount = 1; client->tls = ssl; - client->common.ip = *ip; + client->common.ip_remote = *ip_remote; + client->common.ip_local = *ip_local; client->common.fd = fd; client_open_streams(client, fd); @@ -439,7 +441,7 @@ { const char *addr; - addr = net_ip2addr(&client->common.ip); + addr = net_ip2addr(&client->common.ip_remote); if (addr == NULL) addr = "??"; diff -u -r work.patched/dovecot-0.99.10/src/imap-login/client.h work/dovecot-0.99.10/src/imap-login/client.h --- work.patched/dovecot-0.99.10/src/imap-login/client.h Tue Mar 4 19:43:04 2003 +++ work/dovecot-0.99.10/src/imap-login/client.h Fri Oct 24 14:23:02 2003 @@ -30,7 +30,8 @@ unsigned int destroyed:1; }; -struct client *client_create(int fd, struct ip_addr *ip, int ssl); +struct client *client_create(int fd, struct ip_addr *ip_remote, + struct ip_addr *ip_local, int ssl); void client_destroy(struct imap_client *client, const char *reason); void client_ref(struct imap_client *client); diff -u -r work.patched/dovecot-0.99.10/src/lib/var-expand.c work/dovecot-0.99.10/src/lib/var-expand.c --- work.patched/dovecot-0.99.10/src/lib/var-expand.c Sun Jan 26 19:27:51 2003 +++ work/dovecot-0.99.10/src/lib/var-expand.c Fri Oct 17 13:12:51 2003 @@ -5,7 +5,7 @@ #include "var-expand.h" void var_expand(string_t *dest, const char *str, - const char *user, const char *home) + const char *user, const char *home, const char *ip) { const char *var; unsigned int width; @@ -36,6 +36,9 @@ case 'd': var = strchr(user, '@'); if (var != NULL) var++; + break; + case 'i': + var = ip; break; default: str_append_c(dest, '%'); diff -u -r work.patched/dovecot-0.99.10/src/lib/var-expand.h work/dovecot-0.99.10/src/lib/var-expand.h --- work.patched/dovecot-0.99.10/src/lib/var-expand.h Sun Jan 26 19:27:51 2003 +++ work/dovecot-0.99.10/src/lib/var-expand.h Fri Oct 17 13:13:08 2003 @@ -6,8 +6,9 @@ %u user or user@domain %h home %n user - %d domain */ + %d domain + %i ip */ void var_expand(string_t *dest, const char *str, - const char *user, const char *home); + const char *user, const char *home, const char *ip); #endif diff -u -r work.patched/dovecot-0.99.10/src/login-common/auth-connection.c work/dovecot-0.99.10/src/login-common/auth-connection.c --- work.patched/dovecot-0.99.10/src/login-common/auth-connection.c Mon May 26 10:27:13 2003 +++ work/dovecot-0.99.10/src/login-common/auth-connection.c Fri Oct 24 14:47:17 2003 @@ -325,6 +325,7 @@ auth_request.protocol = protocol; auth_request.mech = request->mech; auth_request.id = request->id; + auth_request.ip_local = ((struct client *) request->context)->ip_local; if (o_stream_send(request->conn->output, &auth_request, sizeof(auth_request)) < 0) { errno = request->conn->output->stream_errno; @@ -342,6 +343,7 @@ /* send continued request to auth */ auth_request.type = AUTH_LOGIN_REQUEST_CONTINUE; auth_request.id = request->id; + auth_request.ip_local = ((struct client *) request->context)->ip_local; auth_request.data_size = data_size; if (o_stream_send(request->conn->output, &auth_request, diff -u -r work.patched/dovecot-0.99.10/src/login-common/client-common.h work/dovecot-0.99.10/src/login-common/client-common.h --- work.patched/dovecot-0.99.10/src/login-common/client-common.h Tue Mar 4 19:43:04 2003 +++ work/dovecot-0.99.10/src/login-common/client-common.h Fri Oct 24 14:23:58 2003 @@ -5,7 +5,8 @@ #include "master.h" struct client { - struct ip_addr ip; + struct ip_addr ip_remote; + struct ip_addr ip_local; int fd; struct io *io; @@ -17,7 +18,8 @@ /* ... */ }; -struct client *client_create(int fd, struct ip_addr *ip, int ssl); +struct client *client_create(int fd, struct ip_addr *ip_remote, + struct ip_addr *ip_local, int ssl); unsigned int clients_get_count(void); void clients_notify_auth_process(void); diff -u -r work.patched/dovecot-0.99.10/src/login-common/main.c work/dovecot-0.99.10/src/login-common/main.c --- work.patched/dovecot-0.99.10/src/login-common/main.c Sun Jun 22 18:09:48 2003 +++ work/dovecot-0.99.10/src/login-common/main.c Fri Oct 24 14:25:02 2003 @@ -75,28 +75,30 @@ static void login_accept(void *context __attr_unused__) { - struct ip_addr ip; + struct ip_addr ip_remote, ip_local; int fd; - fd = net_accept(LOGIN_LISTEN_FD, &ip, NULL); + fd = net_accept(LOGIN_LISTEN_FD, &ip_remote, NULL); if (fd < 0) { if (fd < -1) i_fatal("accept() failed: %m"); return; } + net_getsockname(fd, &ip_local, NULL); + if (process_per_connection) main_close_listen(); - (void)client_create(fd, &ip, FALSE); + (void)client_create(fd, &ip_remote, &ip_local, FALSE); } static void login_accept_ssl(void *context __attr_unused__) { - struct ip_addr ip; + struct ip_addr ip_remote, ip_local; int fd, fd_ssl; - fd = net_accept(LOGIN_SSL_LISTEN_FD, &ip, NULL); + fd = net_accept(LOGIN_SSL_LISTEN_FD, &ip_remote, NULL); if (fd < 0) { if (fd < -1) i_fatal("accept() failed: %m"); @@ -106,11 +108,12 @@ if (process_per_connection) main_close_listen(); - fd_ssl = ssl_proxy_new(fd, &ip); + fd_ssl = ssl_proxy_new(fd, &ip_remote); if (fd_ssl == -1) net_disconnect(fd); - else - (void)client_create(fd_ssl, &ip, TRUE); + + net_getsockname(fd_ssl, &ip_local, NULL); + (void)client_create(fd_ssl, &ip_remote, &ip_local, TRUE); } static void open_logfile(const char *name) @@ -219,7 +222,7 @@ int main(int argc __attr_unused__, char *argv[], char *envp[]) { const char *name, *group_name; - struct ip_addr ip; + struct ip_addr ip_remote, ip_local; int i, fd = -1, master_fd = -1; is_inetd = getenv("DOVECOT_MASTER") == NULL; @@ -257,7 +260,7 @@ main_init(); if (is_inetd) { - if (net_getsockname(1, &ip, NULL) < 0) { + if (net_getsockname(1, &ip_remote, NULL) < 0) { i_fatal("%s can be started only through dovecot " "master process, inetd or equilevant", argv[0]); } @@ -265,7 +268,7 @@ fd = 1; for (i = 1; i < argc; i++) { if (strcmp(argv[i], "--ssl") == 0) { - fd = ssl_proxy_new(fd, &ip); + fd = ssl_proxy_new(fd, &ip_remote); if (fd == -1) i_fatal("SSL initialization failed"); } else if (strncmp(argv[i], "--group=", 8) != 0) @@ -276,8 +279,10 @@ closing_down = TRUE; } - if (fd != -1) - (void)client_create(fd, &ip, TRUE); + if (fd != -1) { + net_getsockname(fd, &ip_local, NULL); + (void)client_create(fd, &ip_remote, &ip_local, TRUE); + } io_loop_run(ioloop); main_deinit(); diff -u -r work.patched/dovecot-0.99.10/src/login-common/master.c work/dovecot-0.99.10/src/login-common/master.c --- work.patched/dovecot-0.99.10/src/login-common/master.c Tue Mar 4 19:43:04 2003 +++ work/dovecot-0.99.10/src/login-common/master.c Fri Oct 24 14:25:57 2003 @@ -44,7 +44,7 @@ req.tag = client->fd; req.auth_pid = auth_pid; req.auth_id = auth_id; - req.ip = client->ip; + req.ip = client->ip_remote; if (fd_send(master_fd, client->fd, &req, sizeof(req)) != sizeof(req)) i_fatal("fd_send(%d) failed: %m", client->fd); diff -u -r work.patched/dovecot-0.99.10/src/master/mail-process.c work/dovecot-0.99.10/src/master/mail-process.c --- work.patched/dovecot-0.99.10/src/master/mail-process.c Fri Aug 22 18:04:27 2003 +++ work/dovecot-0.99.10/src/master/mail-process.c Fri Oct 17 13:25:54 2003 @@ -91,7 +91,7 @@ } /* expand %vars */ - var_expand(str, env, user, home); + var_expand(str, env, user, home, NULL); return str_c(str); } diff -u -r work.patched/dovecot-0.99.10/src/pop3-login/client.c work/dovecot-0.99.10/src/pop3-login/client.c --- work.patched/dovecot-0.99.10/src/pop3-login/client.c Mon May 26 10:27:13 2003 +++ work/dovecot-0.99.10/src/pop3-login/client.c Fri Oct 24 14:27:50 2003 @@ -42,7 +42,7 @@ if (!verbose_proctitle || !process_per_connection) return; - addr = net_ip2addr(&client->common.ip); + addr = net_ip2addr(&client->common.ip_remote); if (addr == NULL) addr = "??"; @@ -80,7 +80,7 @@ client->common.io = NULL; } - fd_ssl = ssl_proxy_new(client->common.fd, &client->common.ip); + fd_ssl = ssl_proxy_new(client->common.fd, &client->common.ip_remote); if (fd_ssl != -1) { client->tls = TRUE; client_set_title(client); @@ -231,7 +231,8 @@ } } -struct client *client_create(int fd, struct ip_addr *ip, int ssl) +struct client *client_create(int fd, struct ip_addr *ip_remote, + struct ip_addr *ip_local, int ssl) { struct pop3_client *client; @@ -250,7 +251,8 @@ client->refcount = 1; client->tls = ssl; - client->common.ip = *ip; + client->common.ip_remote = *ip_remote; + client->common.ip_local = *ip_local; client->common.fd = fd; client->common.io = io_add(fd, IO_READ, client_input, client); client_open_streams(client, fd); @@ -322,7 +324,7 @@ { const char *addr; - addr = net_ip2addr(&client->common.ip); + addr = net_ip2addr(&client->common.ip_remote); if (addr == NULL) addr = "??"; diff -u -r work.patched/dovecot-0.99.10/src/pop3-login/client.h work/dovecot-0.99.10/src/pop3-login/client.h --- work.patched/dovecot-0.99.10/src/pop3-login/client.h Tue Mar 4 19:43:04 2003 +++ work/dovecot-0.99.10/src/pop3-login/client.h Fri Oct 24 14:28:05 2003 @@ -24,7 +24,8 @@ unsigned int destroyed:1; }; -struct client *client_create(int fd, struct ip_addr *ip, int ssl); +struct client *client_create(int fd, struct ip_addr *ip_remote, + struct ip_addr *ip_local, int ssl); void client_destroy(struct pop3_client *client, const char *reason); void client_ref(struct pop3_client *client); --------------070405060704010805040700-- From emily@lib.utk.edu Tue Nov 4 14:43:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1BC332385D; Tue, 4 Nov 2003 14:43:01 +0200 (EET) Received: from aztec.lib.utk.edu (aztec.lib.utk.edu [160.36.192.52]) by danu.procontrol.fi (Postfix) with SMTP id 7518023841 for ; Tue, 4 Nov 2003 14:42:27 +0200 (EET) Received: (qmail 2830 invoked from network); 4 Nov 2003 12:40:15 -0000 Received: from harimtu.lib.utk.edu (HELO lib.utk.edu) (160.36.193.103) by aztec.lib.utk.edu with SMTP; 4 Nov 2003 12:40:15 -0000 Message-ID: <3FA79E06.6080707@lib.utk.edu> Date: Tue, 04 Nov 2003 07:39:34 -0500 From: Emily User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] dovecot vs cyrus, uw, etc. References: <20031103225029.GB23640@thenation.com> In-Reply-To: <20031103225029.GB23640@thenation.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Tue, 04 Nov 2003 22:53:15 +0200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 12:43:01 -0000 X-UID: 1827 Status: O Scott Klein wrote: >Does anybody on this list use Dovecot to serve mission critical e-mail >to an entire company? What kind of uptime can I expect? Is it genuinely > > We've been using dovecot+qmail+squirrelmail for over a month now (~350 users), and there have been no problems at all. People noticed the speed increase when we switched from courier-imap. I installed spamassassin as an option at the end (.qmail), rather than mandatory at the beginning of the chain, because people like their choices here. -- Emily From darren@3x3x3.org Sat Nov 8 06:37:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 62787238C5; Sat, 8 Nov 2003 06:37:16 +0200 (EET) Received: from 3x3x3.org (dsl092-017-251.sfo4.dsl.speakeasy.net [66.92.17.251]) by danu.procontrol.fi (Postfix) with ESMTP id 1E1BB23841 for ; Sat, 8 Nov 2003 06:36:43 +0200 (EET) Received: (qmail 24471 invoked by uid 89); 8 Nov 2003 04:33:34 -0000 Received: from dsl092-017-115.sfo4.dsl.speakeasy.net (HELO 3x3x3.org) (darren@3x3x3.org@66.92.17.115) by 0 with AES256-SHA encrypted SMTP; 8 Nov 2003 04:33:34 -0000 Message-ID: <3FAC72E8.9000100@3x3x3.org> Date: Fri, 07 Nov 2003 20:36:56 -0800 From: Darren David User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] pop3s fails, imaps works great X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Nov 2003 04:37:16 -0000 X-UID: 1828 Status: O hey all- i'm running dovecot-0.99.10p2 on OpenBSD 3.4-snapshot (installed from ports). i have had 0 problems with imaps -- it's been running like a charm! however, i'm trying to get pop3s set up for some of my users, but i can't seem to connect from ANY client. in /etc/dovecot.conf, i've got: protocols = imaps pop3s and i've also got pop3s_listen set up with the same IP as imaps. i'm using vpopmail for auth. nmap shows that port 995 is open, and netstat does show an established connection to pop3s when i attempt to connect, but i see no activity in the dovecot log, and the client just churns and churns and eventually i have to quit it since i get no response. any ideas what i could have wrong, or how to test? thanks in advance, darren david From gmid-dovecot@m.gmane.org Wed Nov 5 18:00:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8E2F12385D; Wed, 5 Nov 2003 18:00:45 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by danu.procontrol.fi (Postfix) with ESMTP id 4404823841 for ; Wed, 5 Nov 2003 18:00:11 +0200 (EET) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AHQ4m-0001fy-00 for ; Wed, 05 Nov 2003 17:00:08 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@procontrol.fi Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AHPuE-0001UJ-00 for ; Wed, 05 Nov 2003 16:49:14 +0100 Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AHPuE-0007QO-00 for ; Wed, 05 Nov 2003 16:49:14 +0100 From: Andreas Metzler Date: Wed, 5 Nov 2003 15:49:13 +0000 (UTC) Lines: 20 Message-ID: References: <20031103225029.GB23640@thenation.com> <3FA6F2FF.1030704@tacocat.net> X-Complaints-To: usenet@sea.gmane.org X-Archive: encrypt User-Agent: tin/1.7.2-20031019 ("Berneray") (UNIX) (Linux/2.4.21-pre4 (i686)) Sender: news X-Mailman-Approved-At: Sat, 08 Nov 2003 19:13:43 +0200 Subject: [Dovecot] Re: dovecot vs cyrus, uw, etc. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Nov 2003 16:00:45 -0000 X-UID: 1829 Status: O Tom Allison wrote: [...] > With regard to procmail/spamassassin support I have the following > recommendation, and it can be applied to both cyrus and dovecot (I think). > You do not mention what SMTP system you are using, I will assume you are > sticking with sendmail and changing qpopper to some IMAP server. > However, I would suggest you consider postfix in place of sendmail. And > yes, it's very ready for mission critical. > There is a package called amavisd-new which allows you to set up an > anti-virus scanner and spamassassin as an extension of postfix. This > can process email before it's delivered from postfix to where ever > (procmail/lmtp/...) [...] I am an exim-guy. ;-) But afaik this all is possible with sendmail, too, amavisd-new connects to sendmail's milter interface. /This/ is no reason to switch MTAs. cu andreas From tss@iki.fi Sat Nov 8 19:36:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5C345238C5; Sat, 8 Nov 2003 19:36:55 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CA7F023850 for ; Sat, 8 Nov 2003 19:36:22 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7A7FF5C616C7 for ; Sat, 8 Nov 2003 19:36:22 +0200 (EET) Subject: Re: [Dovecot] dovecot vs cyrus, uw, etc. From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Message-Id: <1068312982.9811.15.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sat, 08 Nov 2003 19:36:22 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Nov 2003 17:36:55 -0000 X-UID: 1830 Status: O On Tue, 2003-11-04 at 02:35, Ian Marlier wrote: > And find me a developer better at keeping on top of support and > development than Timo and I'll buy you a beer ;-) Hmm. I think I've been way too unresponsive in last few months, partly because of being busy at work and partly because CVS Dovecot + mbox is more or less broken and I haven't been able to read my mails easily :) From tss@iki.fi Sat Nov 8 19:53:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 334B0238C5; Sat, 8 Nov 2003 19:53:16 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AA63C23850 for ; Sat, 8 Nov 2003 19:52:43 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 689FD5C616C7 for ; Sat, 8 Nov 2003 19:52:43 +0200 (EET) Subject: Re: [Dovecot] evolution - folders not displayed correctly From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20031103221217.23350.qmail@web60305.mail.yahoo.com> References: <20031103221217.23350.qmail@web60305.mail.yahoo.com> Content-Type: text/plain Message-Id: <1068313963.9815.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sat, 08 Nov 2003 19:52:43 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Nov 2003 17:53:16 -0000 X-UID: 1831 Status: O On Tue, 2003-11-04 at 00:12, Terry wrote: > > Well, some of your mailboxes are with INBOX. prefix > > and some not. I don't > > think Evolution still should name them as > > "Inbox.Bellevue" though.. Anyway, > > how about removing the inbox-prefixes from all mail > > clients and renaming > > them so that they don't contain the INBOX-prefix? :) > > > > What should be the proper format for directories? If > I do an ls -la in ~/Maildir, what should I see for > subfolders? > > is Inbox.foo not correct? No, "foo" mailbox should be in "~/Maildir/.foo/" directory. > I used yammc.pl to convert > my files from mbox to maildir so Evolution didn't > create them. Mozilla displays them fine. That's most likely because you have "Inbox." namespace prefix set in Mozilla's configuration. > In fact, if > I try to create a subfolder under Inbox in evolution, > I get 'Generic Error'. Hmm. Don't know about that.. From tss@iki.fi Sat Nov 8 20:06:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7FCD2238C5; Sat, 8 Nov 2003 20:06:41 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9F9C523841 for ; Sat, 8 Nov 2003 20:06:09 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 535125C616C7; Sat, 8 Nov 2003 20:06:09 +0200 (EET) Subject: Re: [Dovecot] pop3-login process leakage From: Timo Sirainen To: Clive Jones In-Reply-To: <0c9e01c3a2d0$60faeae0$01124c0a@uk.maint.com> References: <0c9e01c3a2d0$60faeae0$01124c0a@uk.maint.com> Content-Type: text/plain Message-Id: <1068314769.9815.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sat, 08 Nov 2003 20:06:09 +0200 Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Nov 2003 18:06:41 -0000 X-UID: 1832 Status: O On Tue, 2003-11-04 at 14:37, Clive Jones wrote: > I've recently deployed dovecot on our servers, to replace > courier-imapd. I'm delighted with its features and performance, > but there's a major problem - it's leaking pop3-login processes. Do this to one of the processes: gdb /usr/local/libexec/dovecot/pop3-login p clients->nodes_count p main_refcount p auth_reconnect p auth_waiting_handshake_count From tss@iki.fi Sat Nov 8 20:18:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BEF0423841; Sat, 8 Nov 2003 20:18:00 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 36C4C238C8 for ; Sat, 8 Nov 2003 20:17:27 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 060435C616C7 for ; Sat, 8 Nov 2003 20:17:27 +0200 (EET) Subject: Re: [Dovecot] [POP3] RFC2449 conformance? From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <20031103055629.GF3832@irccrew.org> Content-Type: text/plain Message-Id: <1068315446.9809.29.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Sat, 08 Nov 2003 20:17:26 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Nov 2003 18:18:00 -0000 X-UID: 1833 Status: O On Mon, 2003-11-03 at 17:26, Matthias Andree wrote: > While we're at it, does Dovecot support PIPELINING? If so, advertising it in Transaction state might improve performance of some clients. Yes. You can just add it to src/pop3/capability.h. I added it to CVS now. From tss@iki.fi Sat Nov 8 22:46:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 09B90238C5; Sat, 8 Nov 2003 22:46:48 +0200 (EET) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DD16123841; Sat, 8 Nov 2003 22:46:14 +0200 (EET) Date: Sat, 8 Nov 2003 22:46:12 +0200 Subject: Re: [Dovecot] Bug with partial IMAP fetches Content-Type: multipart/mixed; boundary=Apple-Mail-5--177140456 Mime-Version: 1.0 (Apple Message framework v552) To: Matthew Reimer From: Timo Sirainen In-Reply-To: <3FA7F9C0.5060100@vpop.net> Message-Id: <96E96AF2-122C-11D8-B15F-000393CC2E90@iki.fi> X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Nov 2003 20:46:48 -0000 X-UID: 1834 Status: O Content-Length: 6134 --Apple-Mail-5--177140456 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On Tuesday, Nov 4, 2003, at 21:10 Europe/Helsinki, Matthew Reimer wrote: > I think I've found the bug. The attached patch fixes the problem for > me. The first problem is that the wrong value is being returned by > message_send() because ret is getting set to the wrong value (see > above or patch). The second problem is that in the special case where > physical_size == virtual_size (i.e., sendfile can be used) > i_stream_skip(input, virtual_skip) is being called on the input > stream. This is wrong because virtual_skip is supposed to indicate > that \r was the last character seen and therefore \n needs to be sent > before any of the input stream; but in the sendfile case this is not > necessary. > > I think a little refactoring of seek_partial(), message_send() and > message_skip_virtual() might be helpful to clarify the code. The > virtual_skip argument to message_send() is an off_t but is only used > to indicate that \r was the last character read, so it would probably > be more clear to add another argument cr_skipped (like > message_skip_virtual()). Better might be to put all the partial cache > stuff in message-send.c. It actually was supposed to be skip byte count, not just CR-indicator. But you're right, it was used wrong in sendfile code path. There was one piece of code anymore which used the virtual_skip more than just for CR (BODY[HEADER]<..>) and it was easy to change. I think the attached patch should fix it properly. --Apple-Mail-5--177140456 Content-Disposition: attachment; filename=fetch-crlf.diff Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0640; name="fetch-crlf.diff" Index: src/lib-mail/message-send.c =================================================================== RCS file: /home/cvs/dovecot/src/lib-mail/message-send.c,v retrieving revision 1.20 diff -u -r1.20 message-send.c --- src/lib-mail/message-send.c 5 Nov 2003 08:42:13 -0000 1.20 +++ src/lib-mail/message-send.c 8 Nov 2003 20:36:33 -0000 @@ -9,41 +9,30 @@ off_t message_send(struct ostream *output, struct istream *input, const struct message_size *msg_size, - uoff_t virtual_skip, uoff_t max_virtual_size, int *last_cr, + int cr_skipped, uoff_t max_virtual_size, int *last_cr, int fix_nuls) { const unsigned char *msg; - uoff_t old_limit, limit; size_t i, size; off_t ret; - int cr_skipped; unsigned char add; if (last_cr != NULL) *last_cr = -1; - if (msg_size->physical_size == 0 || - virtual_skip >= msg_size->virtual_size) + if (msg_size->physical_size == 0) return 0; - if (max_virtual_size > msg_size->virtual_size - virtual_skip) - max_virtual_size = msg_size->virtual_size - virtual_skip; - if (msg_size->physical_size == msg_size->virtual_size && !fix_nuls) { /* no need to kludge with CRs, we can use sendfile() */ - i_stream_skip(input, virtual_skip); - - old_limit = input->v_limit; - limit = input->v_offset + max_virtual_size; - i_stream_set_read_limit(input, I_MIN(limit, old_limit)); + input = i_stream_create_limit(default_pool, input, + input->v_offset, + max_virtual_size); ret = o_stream_send_istream(output, input); - i_stream_set_read_limit(input, old_limit); - + i_stream_unref(input); return ret; } - message_skip_virtual(input, virtual_skip, NULL, 0, &cr_skipped); - /* go through the message data and insert CRs where needed. */ ret = 0; while (max_virtual_size > 0 && @@ -53,8 +42,8 @@ max_virtual_size--; if (msg[i] == '\n') { - if ((i == 0 && !cr_skipped) || - (i > 0 && msg[i-1] != '\r')) { + if ((i > 0 && msg[i-1] != '\r') || + (i == 0 && !cr_skipped)) { /* missing CR */ add = '\r'; break; Index: src/lib-mail/message-send.h =================================================================== RCS file: /home/cvs/dovecot/src/lib-mail/message-send.h,v retrieving revision 1.11 diff -u -r1.11 message-send.h --- src/lib-mail/message-send.h 4 Jun 2003 15:57:58 -0000 1.11 +++ src/lib-mail/message-send.h 8 Nov 2003 20:36:33 -0000 @@ -4,13 +4,12 @@ struct message_size; /* Send message to client inserting CRs if needed. Only max_virtual_size - bytes if sent (relative to virtual_skip), if you want it unlimited, - use (uoff_t)-1. Remember that if input begins with LF, CR is inserted - before it unless virtual_skip = 1. last_cr is set to 1, 0 or -1 if not - known. Returns number of bytes sent, or -1 if error. */ + bytes are sent. If cr_skipped is FALSE and input begins with LF, it's + treated as CRLF. last_cr is set to 1, 0 or -1 if not known. Returns number + of bytes sent, or -1 if error. */ off_t message_send(struct ostream *output, struct istream *input, const struct message_size *msg_size, - uoff_t virtual_skip, uoff_t max_virtual_size, int *last_cr, + int cr_skipped, uoff_t max_virtual_size, int *last_cr, int fix_nuls); /* Skip number of virtual bytes from putfer. msg_size is updated if it's not Index: src/imap/imap-fetch-body-section.c =================================================================== RCS file: /home/cvs/dovecot/src/imap/imap-fetch-body-section.c,v retrieving revision 1.20 diff -u -r1.20 imap-fetch-body-section.c --- src/imap/imap-fetch-body-section.c 6 Oct 2003 20:17:19 -0000 1.20 +++ src/imap/imap-fetch-body-section.c 8 Nov 2003 20:36:33 -0000 @@ -305,7 +305,7 @@ const void *data; size_t data_size; uoff_t start_offset, send_size; - int failed; + int failed, skip_cr; /* HEADER, MIME, HEADER.FIELDS (list), HEADER.FIELDS.NOT (list) */ @@ -316,8 +316,12 @@ ctx->prefix, send_size); if (o_stream_send_str(ctx->output, str) < 0) return FALSE; + + skip_cr = seek_partial(ctx->select_counter, mail->uid, + &partial, input, 0, body->skip); + return message_send(ctx->output, input, size, - body->skip, send_size, NULL, + skip_cr, send_size, NULL, !mail->has_no_nuls) >= 0; } --Apple-Mail-5--177140456-- From tss@iki.fi Sat Nov 8 23:32:12 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 86C86238C5; Sat, 8 Nov 2003 23:32:12 +0200 (EET) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 10E5E23850 for ; Sat, 8 Nov 2003 23:31:40 +0200 (EET) Date: Sat, 8 Nov 2003 23:31:37 +0200 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: Timo Sirainen To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: X-Mailer: Apple Mail (2.552) Subject: [Dovecot] 0.99.10.1 RC X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Nov 2003 21:32:12 -0000 X-UID: 1835 Status: O Content-Length: 1567 Available from http://dovecot.fi/rc/ While still waiting for .11 with index file rewrites to stabilize, here's a release candidate for 0.99.10.1 which is basically 0.99.10 patched with most of the simple bugfixes from CVS. Some bugfixes such as LIST's children-flags were done with larger rewrites so I didn't try to apply them. All the changes are listed in ChangeLog. The important changes are: * mbox: \Draft and \Deleted flags used opposite flag chars in X-Status header. We were incompatible with other mbox accessing software. WARNING: Upgrading from previous version doesn't automatically swap the flags, so be careful not to accidentally expunge messages that had their \Draft flag changed to \Deleted. * Configuration file changes: - Whitespace at end of line is stripped, use quotes if you need it - # comments are supported after key=value lines. if you need '#' character, quote the value - Both " and ' quotes are supported. If you need to use them, '\' can be used for escaping. - mbox: COPY into same mailbox didn't work and could have corrupted the mailbox - Using Dovecot without index files would crash after using a while - Partial BODY[header] or BODY[part] fetches were buggy if client requested more data than was available in the header/part. - Partial BODY[...] fetches were buggy with messages that had CRLFs - Some BODY and BODYSTRUCTURE replies missed data for message/rfc822 MIME parts causing clients to break - SORT (SUBJECT) was buggy - Timezone fixes with Date-header From tallison@tacocat.net Sun Nov 9 01:00:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 52FC5238C5; Sun, 9 Nov 2003 01:00:55 +0200 (EET) Received: from fluffy.tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id 295D623850 for ; Sun, 9 Nov 2003 01:00:21 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by fluffy.tacocat.net (Postfix) with ESMTP id 79FC4108061; Sat, 8 Nov 2003 18:00:19 -0500 (EST) Received: from fluffy.tacocat.net ([127.0.0.1]) by localhost (fluffy [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28147-09; Sat, 8 Nov 2003 18:00:17 -0500 (EST) Received: from tacocat.net (unknown [192.168.1.103]) by fluffy.tacocat.net (Postfix) with ESMTP id BF56C10805F; Sat, 8 Nov 2003 18:00:17 -0500 (EST) Message-ID: <3FAD7581.7080801@tacocat.net> Date: Sat, 08 Nov 2003 18:00:17 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Andreas Metzler Subject: Re: [Dovecot] Re: dovecot vs cyrus, uw, etc. References: <20031103225029.GB23640@thenation.com> <3FA6F2FF.1030704@tacocat.net> In-Reply-To: X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at tacocat.net cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Nov 2003 23:00:55 -0000 X-UID: 1836 Status: O Content-Length: 1291 Andreas Metzler wrote: > Tom Allison wrote: > [...] > >>With regard to procmail/spamassassin support I have the following >>recommendation, and it can be applied to both cyrus and dovecot (I think). > > >>You do not mention what SMTP system you are using, I will assume you are >>sticking with sendmail and changing qpopper to some IMAP server. >>However, I would suggest you consider postfix in place of sendmail. And >>yes, it's very ready for mission critical. > > >>There is a package called amavisd-new which allows you to set up an >>anti-virus scanner and spamassassin as an extension of postfix. This >>can process email before it's delivered from postfix to where ever >>(procmail/lmtp/...) > > [...] > > I am an exim-guy. ;-) But afaik this all is possible with sendmail, too, > amavisd-new connects to sendmail's milter interface. /This/ is no reason > to switch MTAs. > cu andreas > True, amavis will work with sendmail or postfix equally well. I find people familiar with sendmail stick with it. Those who are newer to email find postfix a little easier or more secure* or something that makes it more compelling. * As I understand it, sendmail can be very insecure to someone who isn't paying attention to details. From tallison@tacocat.net Sun Nov 9 01:40:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5471E238C5; Sun, 9 Nov 2003 01:40:22 +0200 (EET) Received: from fluffy.tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id 5FF0723850 for ; Sun, 9 Nov 2003 01:39:48 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by fluffy.tacocat.net (Postfix) with ESMTP id 96BF8108061 for ; Sat, 8 Nov 2003 18:39:47 -0500 (EST) Received: from fluffy.tacocat.net ([127.0.0.1]) by localhost (fluffy [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28255-09 for ; Sat, 8 Nov 2003 18:39:46 -0500 (EST) Received: from tacocat.net (unknown [192.168.1.103]) by fluffy.tacocat.net (Postfix) with ESMTP id 4127C108014 for ; Sat, 8 Nov 2003 18:39:46 -0500 (EST) Message-ID: <3FAD7EC1.3040704@tacocat.net> Date: Sat, 08 Nov 2003 18:39:45 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at tacocat.net Subject: [Dovecot] openssl config. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Nov 2003 23:40:22 -0000 X-UID: 1837 Status: O I checked and I do have the openssl-devel rpm installed SuSE 8.2 openssl-devel-0.9.6i-12 openssl-0.9.61-19 dovecot 0.99.10 ./configure --with-ssl-openssl At the end of the configuration it says ssl support == 'no' :(... I was able to get pam support by picking up the pam-devel modules as suggested. But I got stuck here. After reading up a bit on imap, it seems reasonable to have both imap and imap-ssl support. imap for localhost connections (like squirrelmail) and imap-ssl for everything else. From tallison@tacocat.net Sun Nov 9 01:48:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A980C238C5; Sun, 9 Nov 2003 01:48:04 +0200 (EET) Received: from fluffy.tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id 9B80B23850 for ; Sun, 9 Nov 2003 01:47:32 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by fluffy.tacocat.net (Postfix) with ESMTP id D87F1108063; Sat, 8 Nov 2003 18:47:31 -0500 (EST) Received: from fluffy.tacocat.net ([127.0.0.1]) by localhost (fluffy [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28089-10; Sat, 8 Nov 2003 18:47:30 -0500 (EST) Received: from tacocat.net (unknown [192.168.1.103]) by fluffy.tacocat.net (Postfix) with ESMTP id CA271108061; Sat, 8 Nov 2003 18:47:29 -0500 (EST) Message-ID: <3FAD8091.3020107@tacocat.net> Date: Sat, 08 Nov 2003 18:47:29 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tom Allison Subject: Re: [Dovecot] openssl config. References: <3FAD7EC1.3040704@tacocat.net> In-Reply-To: <3FAD7EC1.3040704@tacocat.net> X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at tacocat.net cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Nov 2003 23:48:04 -0000 X-UID: 1838 Status: O Tom Allison wrote: > I checked and I do have the openssl-devel rpm installed > SuSE 8.2 > openssl-devel-0.9.6i-12 > openssl-0.9.61-19 > dovecot 0.99.10 > > ./configure --with-ssl-openssl > > At the end of the configuration it says ssl support == 'no' > > :(... > > I was able to get pam support by picking up the pam-devel modules as > suggested. > > But I got stuck here. > > After reading up a bit on imap, it seems reasonable to have both imap > and imap-ssl support. imap for localhost connections (like > squirrelmail) and imap-ssl for everything else. > Never mind!!!! Dumb luck or something, I tried it again and it says 'yes'. Now I just have to install it.... From tallison@tacocat.net Sun Nov 9 02:22:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 39C35238C5; Sun, 9 Nov 2003 02:22:56 +0200 (EET) Received: from fluffy.tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id 4615D23841 for ; Sun, 9 Nov 2003 02:22:24 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by fluffy.tacocat.net (Postfix) with ESMTP id 2BE59108066 for ; Sat, 8 Nov 2003 19:22:23 -0500 (EST) Received: from fluffy.tacocat.net ([127.0.0.1]) by localhost (fluffy [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28312-10 for ; Sat, 8 Nov 2003 19:22:22 -0500 (EST) Received: from tacocat.net (unknown [192.168.1.103]) by fluffy.tacocat.net (Postfix) with ESMTP id BBCCA108014 for ; Sat, 8 Nov 2003 19:22:21 -0500 (EST) Message-ID: <3FAD88BD.5010006@tacocat.net> Date: Sat, 08 Nov 2003 19:22:21 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at tacocat.net Subject: [Dovecot] openssl decryption failed X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Nov 2003 00:22:56 -0000 X-UID: 1839 Status: O I've got dovecot working on imap But when I try to run imaps I get: imap-login: Nove 08 19:11:19 Warning: SSL_accept() failed: error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac [192.168.1.103] Now I'm not sure if theres any difference here, but I don't have string for 'login = imaps' or 'login = pop3s' to match with my protocols string I also don't have any specific imaps_listen interface defined, but since there's something in the logs, I assume that this is not a problem. SETUP fluffy:~ # egrep "^\w" /usr/local/etc/dovecot.conf base_dir = /var/run/dovecot/ protocols = imap imaps pop3s log_path = /var/log/dovecot.log info_log_path = /var/log/dovecot.info login = imap login = pop3 verbose_ssl = yes auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = pam auth_user = root auth_verbose = yes From tallison@tacocat.net Sun Nov 9 02:35:28 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 804F6238C5; Sun, 9 Nov 2003 02:35:28 +0200 (EET) Received: from fluffy.tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id A168B23841 for ; Sun, 9 Nov 2003 02:34:56 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by fluffy.tacocat.net (Postfix) with ESMTP id E1BD5108064 for ; Sat, 8 Nov 2003 19:34:55 -0500 (EST) Received: from fluffy.tacocat.net ([127.0.0.1]) by localhost (fluffy [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25942-01 for ; Sat, 8 Nov 2003 19:34:54 -0500 (EST) Received: from tacocat.net (unknown [192.168.1.103]) by fluffy.tacocat.net (Postfix) with ESMTP id 8F9E4108014 for ; Sat, 8 Nov 2003 19:34:54 -0500 (EST) Message-ID: <3FAD8BAD.3060705@tacocat.net> Date: Sat, 08 Nov 2003 19:34:53 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 Cc: dovecot@procontrol.fi Subject: Re: [Dovecot] openssl config. References: <3FAD7EC1.3040704@tacocat.net> In-Reply-To: <3FAD7EC1.3040704@tacocat.net> X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at tacocat.net X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Nov 2003 00:35:28 -0000 X-UID: 1840 Status: O Tom Allison wrote: > I checked and I do have the openssl-devel rpm installed > SuSE 8.2 > openssl-devel-0.9.6i-12 > openssl-0.9.61-19 > dovecot 0.99.10 > My apologies for going on and on about this problem, but there seems to be about one thread on google regarding this and I'm trying to sort out the details therein. The threads mentioned that there is a liklihood of openssl version 0.9.7 not working well and maybe openssl 0.9.6 would work. Since I'm running 0.9.61 I guess I'm looking to see if anyone can confirm/deny these problems under Linux. Thanks in advance. From tss@iki.fi Sun Nov 9 13:59:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 39470238C5; Sun, 9 Nov 2003 13:59:49 +0200 (EET) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E096623850; Sun, 9 Nov 2003 13:59:16 +0200 (EET) Date: Sun, 9 Nov 2003 13:59:14 +0200 Subject: Re: [Dovecot] openssl decryption failed Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: Tom Allison From: Timo Sirainen In-Reply-To: <3FAD88BD.5010006@tacocat.net> Message-Id: <23548676-12AC-11D8-867E-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Nov 2003 11:59:49 -0000 X-UID: 1841 Status: O On Sunday, Nov 9, 2003, at 02:22 Europe/Helsinki, Tom Allison wrote: > imap-login: Nove 08 19:11:19 Warning: SSL_accept() failed: > error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad > record mac [192.168.1.103] Last I saw these was because Dovecot was chrooting login processes and OpenSSL didn't have access to /dev/urandom. This is fixed in 0.99.10, but you could try if it works with setting login_chroot = no. From tallison@tacocat.net Sun Nov 9 19:02:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CBD66238C5; Sun, 9 Nov 2003 19:02:00 +0200 (EET) Received: from fluffy.tacocat.net (dhcp024-208-242-024.twmi.rr.com [24.208.242.24]) by danu.procontrol.fi (Postfix) with ESMTP id 0997223841 for ; Sun, 9 Nov 2003 19:01:28 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by fluffy.tacocat.net (Postfix) with ESMTP id 89882108069; Sun, 9 Nov 2003 12:01:26 -0500 (EST) Received: from fluffy.tacocat.net ([127.0.0.1]) by localhost (fluffy [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26544-08; Sun, 9 Nov 2003 12:01:18 -0500 (EST) Received: from tacocat.net (unknown [192.168.1.103]) by fluffy.tacocat.net (Postfix) with ESMTP id 8AD3A108014; Sun, 9 Nov 2003 12:01:17 -0500 (EST) Message-ID: <3FAE72DD.2000102@tacocat.net> Date: Sun, 09 Nov 2003 12:01:17 -0500 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] openssl decryption failed References: <23548676-12AC-11D8-867E-000393CC2E90@iki.fi> In-Reply-To: <23548676-12AC-11D8-867E-000393CC2E90@iki.fi> X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at tacocat.net cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Nov 2003 17:02:01 -0000 X-UID: 1842 Status: O Timo Sirainen wrote: > On Sunday, Nov 9, 2003, at 02:22 Europe/Helsinki, Tom Allison wrote: > >> imap-login: Nove 08 19:11:19 Warning: SSL_accept() failed: >> error:1408F455:SSL routines:SSL3_GET_RECORD:decryption failed or bad >> record mac [192.168.1.103] > > > Last I saw these was because Dovecot was chrooting login processes and > OpenSSL didn't have access to /dev/urandom. This is fixed in 0.99.10, > but you could try if it works with setting login_chroot = no. > :(... No luck. Same error. dovecot version 0.99.10 openssl version 0.9.61 From aredridel@nbtsc.org Mon Nov 10 06:40:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 13C9D238C5; Mon, 10 Nov 2003 06:40:39 +0200 (EET) Received: from polis.nbtsc.org (polis.nbtsc.org [206.168.119.2]) by danu.procontrol.fi (Postfix) with ESMTP id D84D623850 for ; Mon, 10 Nov 2003 06:40:05 +0200 (EET) Received: from 67x102.ouraynet.com ([206.168.67.102] helo=mizar.nbtsc.org) by polis.nbtsc.org with asmtp (Exim 4.24) id 1AJ3qO-0000Pe-2W for dovecot@procontrol.fi; Sun, 09 Nov 2003 21:40:04 -0700 From: Aredridel To: Dovecot List Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-xzSTabflhkSL0a3v4dFs" Message-Id: <1068439204.6341.25.camel@mizar.nbtsc.org> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 09 Nov 2003 21:40:04 -0700 X-Scan-Signature: 8ca4da096431e0e47209a29b5646b275 X-Spam-Score: 0.0 (/) Subject: [Dovecot] Problems with Linux 2.6 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2003 04:40:39 -0000 X-UID: 1843 Status: O Content-Length: 1560 --=-xzSTabflhkSL0a3v4dFs Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I'm running Dovecot under PLD GNU/Linux, on two servers. Under kernel 2.4, it works wonderfully. Under 2.6, I get this in the log: Nov 9 21:36:38 polis dovecot: Dovecot starting up Nov 9 21:36:39 polis imap-login: setuid(97) failed: Resource temporarily unavailable Nov 9 21:36:39 polis imap-login: setuid(97) failed: Resource temporarily unavailable Nov 9 21:36:39 polis pop3-login: setuid(97) failed: Resource temporarily unavailable Nov 9 21:36:39 polis pop3-login: setuid(97) failed: Resource temporarily unavailable Nov 9 21:36:39 polis dovecot: Login process died too early - shutting down Nov 9 21:36:39 polis dovecot: child 32404 (login) returned error 89 Nov 9 21:36:39 polis dovecot: child 32405 (login) returned error 89 Nov 9 21:36:39 polis dovecot: child 32406 (login) returned error 89 Nov 9 21:36:39 polis dovecot: child 32408 (login) returned error 89 Nov 9 21:36:39 polis pop3-login: fd_send(-1) failed: Broken pipe Any ideas? the setuid32() call is returning EAGAIN, though I have no resource limits on user nobody (nor does it work as a dovecot user). Aredridel --=-xzSTabflhkSL0a3v4dFs Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/rxaktP09exA3hooRAgsjAJ40yqx2+s4RKMfJrBkEFd3d5kIHigCfRdoh ALP6sDeJrUJgPbzWYTBLN4s= =gajN -----END PGP SIGNATURE----- --=-xzSTabflhkSL0a3v4dFs-- From gmid-dovecot@m.gmane.org Mon Nov 10 13:55:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3874423850; Mon, 10 Nov 2003 13:55:47 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by danu.procontrol.fi (Postfix) with ESMTP id 0740423841 for ; Mon, 10 Nov 2003 13:55:15 +0200 (EET) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AJAdV-0001vn-00 for ; Mon, 10 Nov 2003 12:55:13 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@procontrol.fi Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AJAdU-0001vf-00 for ; Mon, 10 Nov 2003 12:55:12 +0100 Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AJAdU-0004px-00 for ; Mon, 10 Nov 2003 12:55:12 +0100 From: peter gervai Date: Mon, 10 Nov 2003 12:55:10 +0100 Lines: 11 Message-ID: References: <1068439204.6341.25.camel@mizar.nbtsc.org> Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@sea.gmane.org User-Agent: Opera7.21/Linux M2 build 480 Sender: news Subject: [Dovecot] Re: Problems with Linux 2.6 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2003 11:55:47 -0000 X-UID: 1844 Status: O On Sun, 09 Nov 2003 21:40:04 -0700, Aredridel wrote: > I'm running Dovecot under PLD GNU/Linux, on two servers. Under kernel > 2.4, it works wonderfully. Under 2.6, I get this in the log: > > Nov 9 21:36:38 polis dovecot: Dovecot starting up > Nov 9 21:36:39 polis imap-login: setuid(97) failed: Resource > temporarily unavailable read the mail archieves, there was a patch for that. i thought it's already included in the latest version. From joshua@shallow.net Mon Nov 10 17:30:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4F981238C5; Mon, 10 Nov 2003 17:30:04 +0200 (EET) Received: from yello.shallow.net (unknown [203.18.243.120]) by danu.procontrol.fi (Postfix) with ESMTP id A376D23841 for ; Mon, 10 Nov 2003 17:29:30 +0200 (EET) Received: by yello.shallow.net (Postfix, from userid 1001) id A4A0C2C9A; Tue, 11 Nov 2003 02:29:16 +1100 (EST) Date: Tue, 11 Nov 2003 02:29:16 +1100 From: Joshua Goodall To: dovecot@procontrol.fi Message-ID: <20031110152916.GI37761@roughtrade.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Qgd2S+2VS1hsWwXW" Content-Disposition: inline User-Agent: Mutt/1.5.4i Subject: [Dovecot] PATCH: CRAM-MD5 for Dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2003 15:30:04 -0000 X-UID: 1845 Status: O Content-Length: 24907 --Qgd2S+2VS1hsWwXW Content-Type: multipart/mixed; boundary="j/HO4hzKTNbM1mOX" Content-Disposition: inline --j/HO4hzKTNbM1mOX Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Timo, Mozilla 1.5 doesn't understand DIGEST-MD5; it only speaks CRAM-MD5 or PLAIN. Maybe other clients have the same problem. My users like Mozilla, so I wrote new code for Dovecot to speak CRAM-MD5, using your mech-digest-md5.c as a reference. Attached diff in two formats i) for current CVS ii) against last release both tested and working with Mozilla and KMail's CRAM-MD5. I don't know if I've caught precisely the coding style you use for Dovecot. I hope so, but I'm unsure if I've used your string and buffer libraries properly. Please enlighten me if you have time. Would you consider including this in the next release? Regards, Joshua --=20 Joshua Goodall joshua@roughtrade.net "Your object hit ratio is weak, old man" "If you cache me now, I will dump more core than you can possibly imagine" --j/HO4hzKTNbM1mOX Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="dovecot-crammd5-cvs.diff" Content-Transfer-Encoding: quoted-printable diff -ruN dovecot/src/auth/Makefile.am dovecot-crammd5/src/auth/Makefile.am --- dovecot/src/auth/Makefile.am Thu Oct 30 01:10:20 2003 +++ dovecot-crammd5/src/auth/Makefile.am Mon Nov 10 18:35:23 2003 @@ -28,6 +28,7 @@ mech-anonymous.c \ mech-cyrus-sasl2.c \ mech-plain.c \ + mech-cram-md5.c \ mech-digest-md5.c \ mycrypt.c \ passdb.c \ diff -ruN dovecot/src/auth/auth-client-interface.h dovecot-crammd5/src/auth= /auth-client-interface.h --- dovecot/src/auth/auth-client-interface.h Fri Aug 22 12:42:13 2003 +++ dovecot-crammd5/src/auth/auth-client-interface.h Mon Nov 10 18:35:34 20= 03 @@ -12,6 +12,7 @@ AUTH_MECH_PLAIN =3D 0x01, AUTH_MECH_DIGEST_MD5 =3D 0x02, AUTH_MECH_ANONYMOUS =3D 0x04, + AUTH_MECH_CRAM_MD5 =3D 0x08, =20 AUTH_MECH_COUNT }; diff -ruN dovecot/src/auth/auth-mech-desc.h dovecot-crammd5/src/auth/auth-m= ech-desc.h --- dovecot/src/auth/auth-mech-desc.h Thu May 8 13:24:57 2003 +++ dovecot-crammd5/src/auth/auth-mech-desc.h Mon Nov 10 18:35:34 2003 @@ -10,6 +10,7 @@ =20 static struct auth_mech_desc auth_mech_desc[AUTH_MECH_COUNT] =3D { { AUTH_MECH_PLAIN, "PLAIN", TRUE, FALSE }, + { AUTH_MECH_CRAM_MD5, "CRAM-MD5", FALSE, TRUE }, { AUTH_MECH_DIGEST_MD5, "DIGEST-MD5", FALSE, TRUE }, { AUTH_MECH_ANONYMOUS, "ANONYMOUS", FALSE, TRUE } }; diff -ruN dovecot/src/auth/mech-cram-md5.c dovecot-crammd5/src/auth/mech-cr= am-md5.c --- dovecot/src/auth/mech-cram-md5.c Thu Jan 1 10:00:00 1970 +++ dovecot-crammd5/src/auth/mech-cram-md5.c Tue Nov 11 01:43:53 2003 @@ -0,0 +1,225 @@ +/* CRAM-MD5 SASL authentication, see RFC-2195 + Joshua Goodall + + Derived from mech-digest-md5.c by Timo Sirainen. + + Copyright (C) 2002,2003 Timo Sirainen / Joshua Goodall + */ + +#include "common.h" +#include "buffer.h" +#include "hex-binary.h" +#include "md5.h" +#include "randgen.h" +#include "str.h" +#include "mech.h" +#include "passdb.h" +#include "hostpid.h" +#include "safe-memset.h" + +#include +#include + +struct cram_auth_request { + struct auth_request auth_request; + + pool_t pool; + + /* requested: */ + char *challenge; + + /* received: */ + char *username; + char *response; + unsigned long maxbuf; +}; + +static string_t *get_cram_challenge(struct cram_auth_request *auth) +{ + string_t *str; + struct { + uint64_t v1,v2; + } challenge; + + random_fill(&challenge, sizeof(challenge)); + hostpid_init(); + str =3D t_str_new(256); + str_printfa(str, "<%llu%llu.%u@%s>", challenge.v1, challenge.v2, time(NUL= L), my_hostname); + auth->challenge =3D p_strdup(auth->pool, str_data(str)); + + return str; +} + +static int verify_credentials(struct cram_auth_request *auth, + const char *credentials) +{ +=09 + unsigned char digest[16], context_digest[32], *cdp; + struct md5_context ctxo, ctxi; + buffer_t *context_digest_buf; + const char *response_hex; + + if (credentials =3D=3D NULL) + return FALSE; + + context_digest_buf =3D buffer_create_data(pool_datastack_create(), + context_digest, sizeof(context_digest)); + + if (hex_to_binary(credentials, context_digest_buf) <=3D 0) + return FALSE; + +#define CDGET(p,c) do { \ + (c) =3D (*p++); \ + (c) +=3D (*p++ << 8); \ + (c) +=3D (*p++ << 16); \ + (c) +=3D (*p++ << 24); \ +} while (0) + + cdp =3D context_digest; + CDGET(cdp, ctxo.a); + CDGET(cdp, ctxo.b); + CDGET(cdp, ctxo.c); + CDGET(cdp, ctxo.d); + CDGET(cdp, ctxi.a); + CDGET(cdp, ctxi.b); + CDGET(cdp, ctxi.c); + CDGET(cdp, ctxi.d); + + ctxo.lo =3D ctxi.lo =3D 64; + ctxo.hi =3D ctxi.hi =3D 0; + + md5_update(&ctxi, auth->challenge, strlen(auth->challenge)); + md5_final(&ctxi, digest); + md5_update(&ctxo, digest, 16); + md5_final(&ctxo, digest); + response_hex =3D binary_to_hex(digest, 16); + + if (memcmp(response_hex, auth->response, 32) !=3D 0) { + if (verbose) + i_info("cram-md5(%s): password mismatch", auth->username); + return FALSE; + } + + return TRUE; +} + +static int parse_cram_response(struct cram_auth_request *auth, + const char *data, const char **error) +{ + char *digest; + int failed; + + *error =3D NULL; + failed =3D FALSE; + + digest =3D strchr(data, ' '); + if (digest !=3D NULL) { + auth->username =3D p_strdup_until(auth->pool, data, digest); + digest++; + auth->response =3D p_strdup(auth->pool, digest); + } else { + *error =3D "missing digest"; + failed =3D TRUE; + } + + return !failed; +} + +static void credentials_callback(const char *result, + struct auth_request *request) +{ + struct cram_auth_request *auth =3D + (struct cram_auth_request *) request; + + if (verify_credentials(auth, result)) { + if (verbose) + i_info("cram-md5(%s): authenticated", auth->username =3D=3D NULL ? "" := auth->username); + mech_auth_finish(request, NULL, 0, TRUE); + } else { + if (verbose) + i_info("cram-md5(%s): authentication failed", auth->username =3D=3D NUL= L ? "" : auth->username); + mech_auth_finish(request, NULL, 0, FALSE); + } +} + +static int +mech_cram_md5_auth_continue(struct auth_request *auth_request, + struct auth_client_request_continue *request, + const unsigned char *data, + mech_callback_t *callback) +{ + struct cram_auth_request *auth =3D + (struct cram_auth_request *)auth_request; + const char *error; + + /* unused */ + (void)request; + + if (parse_cram_response(auth, (const char *) data, &error)) { + auth_request->callback =3D callback; + + auth_request->user =3D p_strdup(auth_request->pool, auth->username); + + if (mech_is_valid_username(auth_request->user)) { + passdb->lookup_credentials(&auth->auth_request, + PASSDB_CREDENTIALS_CRAM_MD5, + credentials_callback); + return TRUE; + } + + error =3D "invalid username"; + } + + if (error =3D=3D NULL) + error =3D "authentication failed"; + + if (verbose) + i_info("cram-md5(%s): %s", auth->username =3D=3D NULL ? "" : auth->usern= ame, error); + + /* failed */ + mech_auth_finish(auth_request, NULL, 0, FALSE); + return FALSE; +} + +static void mech_cram_md5_auth_free(struct auth_request *auth_request) +{ + + pool_unref(auth_request->pool); +} + +static struct auth_request * +mech_cram_md5_auth_new(struct auth_client_connection *conn, + unsigned int id, mech_callback_t *callback) +{ + struct auth_client_request_reply reply; + struct cram_auth_request *auth; + pool_t pool; + string_t *challenge; + + pool =3D pool_alloconly_create("cram_md5_auth_request", 2048); + auth =3D p_new(pool, struct cram_auth_request, 1); + auth->pool =3D pool; + + auth->auth_request.refcount =3D 1; + auth->auth_request.pool =3D pool; + auth->auth_request.auth_continue =3D mech_cram_md5_auth_continue; + auth->auth_request.auth_free =3D mech_cram_md5_auth_free; + + /* initialize reply */ + mech_init_auth_client_reply(&reply); + reply.id =3D id; + reply.result =3D AUTH_CLIENT_RESULT_CONTINUE; + + /* send the initial challenge */ + reply.reply_idx =3D 0; + challenge =3D get_cram_challenge(auth); + reply.data_size =3D str_len(challenge); + callback(&reply, str_data(challenge), conn); + + return &auth->auth_request; +} + +struct mech_module mech_cram_md5 =3D { + AUTH_MECH_CRAM_MD5, + mech_cram_md5_auth_new +}; diff -ruN dovecot/src/auth/mech.c dovecot-crammd5/src/auth/mech.c --- dovecot/src/auth/mech.c Mon Oct 20 14:15:16 2003 +++ dovecot-crammd5/src/auth/mech.c Mon Nov 10 18:35:34 2003 @@ -215,6 +215,7 @@ } =20 extern struct mech_module mech_plain; +extern struct mech_module mech_cram_md5; extern struct mech_module mech_digest_md5; extern struct mech_module mech_anonymous; =20 @@ -242,6 +243,8 @@ while (*mechanisms !=3D NULL) { if (strcasecmp(*mechanisms, "PLAIN") =3D=3D 0) mech_register_module(&mech_plain); + else if (strcasecmp(*mechanisms, "CRAM-MD5") =3D=3D 0) + mech_register_module(&mech_cram_md5); else if (strcasecmp(*mechanisms, "DIGEST-MD5") =3D=3D 0) mech_register_module(&mech_digest_md5); else if (strcasecmp(*mechanisms, "ANONYMOUS") =3D=3D 0) { @@ -293,6 +296,7 @@ void mech_deinit(void) { mech_unregister_module(&mech_plain); + mech_unregister_module(&mech_cram_md5); mech_unregister_module(&mech_digest_md5); mech_unregister_module(&mech_anonymous); } diff -ruN dovecot/src/auth/passdb.c dovecot-crammd5/src/auth/passdb.c --- dovecot/src/auth/passdb.c Thu Oct 30 01:10:20 2003 +++ dovecot-crammd5/src/auth/passdb.c Mon Nov 10 18:35:34 2003 @@ -24,6 +24,8 @@ return "PLAIN"; case PASSDB_CREDENTIALS_CRYPT: return "CRYPT"; + case PASSDB_CREDENTIALS_CRAM_MD5: + return "CRAM-MD5"; case PASSDB_CREDENTIALS_DIGEST_MD5: return "DIGEST-MD5"; } @@ -132,6 +134,10 @@ if ((auth_mechanisms & AUTH_MECH_PLAIN) && passdb->verify_plain =3D=3D NULL) i_fatal("Passdb %s doesn't support PLAIN method", name); + + if ((auth_mechanisms & AUTH_MECH_CRAM_MD5) && + passdb->lookup_credentials =3D=3D NULL) + i_fatal("Passdb %s doesn't support CRAM-MD5 method", name); =20 if ((auth_mechanisms & AUTH_MECH_DIGEST_MD5) && passdb->lookup_credentials =3D=3D NULL) diff -ruN dovecot/src/auth/passdb.h dovecot-crammd5/src/auth/passdb.h --- dovecot/src/auth/passdb.h Thu Oct 30 01:10:20 2003 +++ dovecot-crammd5/src/auth/passdb.h Mon Nov 10 18:35:34 2003 @@ -11,6 +11,7 @@ =20 PASSDB_CREDENTIALS_PLAINTEXT, PASSDB_CREDENTIALS_CRYPT, + PASSDB_CREDENTIALS_CRAM_MD5, PASSDB_CREDENTIALS_DIGEST_MD5 }; =20 diff -ruN dovecot/src/auth/password-scheme.c dovecot-crammd5/src/auth/passw= ord-scheme.c --- dovecot/src/auth/password-scheme.c Fri Apr 4 09:42:54 2003 +++ dovecot-crammd5/src/auth/password-scheme.c Mon Nov 10 18:36:51 2003 @@ -7,6 +7,7 @@ #include "mycrypt.h" #include "randgen.h" #include "password-scheme.h" +#include "safe-memset.h" =20 static const char *salt_chars =3D "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; @@ -86,7 +87,8 @@ const char *scheme) { const char *realm, *str; - unsigned char digest[16]; + unsigned char digest[16], ipad[64], opad[64], context_digest[32], *cdp; + struct md5_context ctxo, ctxi; char salt[9]; int i; =20 @@ -108,6 +110,51 @@ =20 if (strcasecmp(scheme, "PLAIN") =3D=3D 0) return plaintext; + + if (strcasecmp(scheme, "CRAM-MD5") =3D=3D 0) { + safe_memset(ipad, '\0', sizeof(ipad)); + safe_memset(opad, '\0', sizeof(opad)); + + /* Hash excessively long passwords */ + i =3D strlen(plaintext); + if (i > 64) { + md5_get_digest(plaintext, i, digest); + memcpy(ipad, digest, 16); + memcpy(opad, digest, 16); + } else { + memcpy(ipad, plaintext, i); + memcpy(opad, plaintext, i); + } + + /* ipad/opad operation */ + for (i =3D 0; i < 64; i++) { + ipad[i] ^=3D 0x36; + opad[i] ^=3D 0x5c; + } + md5_init(&ctxi); + md5_init(&ctxo); + md5_update(&ctxi, ipad, 64); + md5_update(&ctxo, opad, 64); + + /* Make HMAC-MD5 hex digest */ +#define CDPUT(p,c) do { \ + *p++ =3D (c) & 0xff; \ + *p++ =3D (c)>>8 & 0xff; \ + *p++ =3D (c)>>16 & 0xff; \ + *p++ =3D (c)>>24 & 0xff; \ +} while (0) + cdp =3D context_digest; + CDPUT(cdp, ctxo.a); + CDPUT(cdp, ctxo.b); + CDPUT(cdp, ctxo.c); + CDPUT(cdp, ctxo.d); + CDPUT(cdp, ctxi.a); + CDPUT(cdp, ctxi.b); + CDPUT(cdp, ctxi.c); + CDPUT(cdp, ctxi.d); + + return binary_to_hex(context_digest, sizeof(context_digest)); + } =20 if (strcasecmp(scheme, "DIGEST-MD5") =3D=3D 0) { /* user:realm:passwd */ --j/HO4hzKTNbM1mOX Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="dovecot-crammd5-release.diff" Content-Transfer-Encoding: quoted-printable diff -ruN dovecot-0.99.10/dovecot-example.conf dovecot-0.99.10-crammd5/dove= cot-example.conf --- dovecot-0.99.10/dovecot-example.conf Tue Nov 11 02:08:28 2003 +++ dovecot-0.99.10-crammd5/dovecot-example.conf Tue Nov 11 02:07:47 2003 @@ -357,7 +357,7 @@ auth =3D default =20 # Space separated list of wanted authentication mechanisms: -# plain digest-md5 anonymous +# plain cram-md5 digest-md5 anonymous auth_mechanisms =3D plain =20 # Space separated list of realms for SASL authentication mechanisms that n= eed diff -ruN dovecot-0.99.10/src/auth/Makefile.am dovecot-0.99.10-crammd5/src/= auth/Makefile.am --- dovecot-0.99.10/src/auth/Makefile.am Sun May 18 22:26:28 2003 +++ dovecot-0.99.10-crammd5/src/auth/Makefile.am Tue Nov 11 02:07:46 2003 @@ -28,6 +28,7 @@ mech-anonymous.c \ mech-cyrus-sasl2.c \ mech-plain.c \ + mech-cram-md5.c \ mech-digest-md5.c \ mycrypt.c \ passdb.c \ diff -ruN dovecot-0.99.10/src/auth/auth-login-interface.h dovecot-0.99.10-c= rammd5/src/auth/auth-login-interface.h --- dovecot-0.99.10/src/auth/auth-login-interface.h Sun May 18 22:26:28 2003 +++ dovecot-0.99.10-crammd5/src/auth/auth-login-interface.h Tue Nov 11 02:0= 7:46 2003 @@ -12,6 +12,7 @@ AUTH_MECH_PLAIN =3D 0x01, AUTH_MECH_DIGEST_MD5 =3D 0x02, AUTH_MECH_ANONYMOUS =3D 0x04, + AUTH_MECH_CRAM_MD5 =3D 0x08, =20 AUTH_MECH_COUNT }; diff -ruN dovecot-0.99.10/src/auth/auth-mech-desc.h dovecot-0.99.10-crammd5= /src/auth/auth-mech-desc.h --- dovecot-0.99.10/src/auth/auth-mech-desc.h Sun May 18 22:26:28 2003 +++ dovecot-0.99.10-crammd5/src/auth/auth-mech-desc.h Tue Nov 11 02:07:46 2= 003 @@ -10,6 +10,7 @@ =20 static struct auth_mech_desc auth_mech_desc[AUTH_MECH_COUNT] =3D { { AUTH_MECH_PLAIN, "PLAIN", TRUE, FALSE }, + { AUTH_MECH_CRAM_MD5, "CRAM-MD5", FALSE, TRUE }, { AUTH_MECH_DIGEST_MD5, "DIGEST-MD5", FALSE, TRUE }, { AUTH_MECH_ANONYMOUS, "ANONYMOUS", FALSE, TRUE } }; diff -ruN dovecot-0.99.10/src/auth/mech-cram-md5.c dovecot-0.99.10-crammd5/= src/auth/mech-cram-md5.c --- dovecot-0.99.10/src/auth/mech-cram-md5.c Thu Jan 1 10:00:00 1970 +++ dovecot-0.99.10-crammd5/src/auth/mech-cram-md5.c Tue Nov 11 02:08:01 20= 03 @@ -0,0 +1,224 @@ +/* CRAM-MD5 SASL authentication, see RFC-2195 + Joshua Goodall + + Derived from mech-digest-md5.c by Timo Sirainen. + + Copyright (C) 2002,2003 Timo Sirainen / Joshua Goodall + */ + +#include "common.h" +#include "buffer.h" +#include "hex-binary.h" +#include "md5.h" +#include "randgen.h" +#include "str.h" +#include "mech.h" +#include "passdb.h" +#include "hostpid.h" +#include "safe-memset.h" + +#include +#include + +struct cram_auth_request { + struct auth_request auth_request; + + pool_t pool; + + /* requested: */ + char *challenge; + + /* received: */ + char *username; + char *response; + unsigned long maxbuf; +}; + +static string_t *get_cram_challenge(struct cram_auth_request *auth) +{ + string_t *str; + struct { + uint64_t v1,v2; + } challenge; + + random_fill(&challenge, sizeof(challenge)); + hostpid_init(); + str =3D t_str_new(256); + str_printfa(str, "<%llu%llu.%u@%s>", challenge.v1, challenge.v2, time(NUL= L), my_hostname); + auth->challenge =3D p_strdup(auth->pool, str_data(str)); + + return str; +} + +static int verify_credentials(struct cram_auth_request *auth, + const char *credentials) +{ +=09 + unsigned char digest[16], context_digest[32], *cdp; + struct md5_context ctxo, ctxi; + buffer_t *context_digest_buf; + const char *response_hex; + + if (credentials =3D=3D NULL) + return FALSE; + + context_digest_buf =3D buffer_create_data(data_stack_pool, + context_digest, sizeof(context_digest)); + + if (hex_to_binary(credentials, context_digest_buf) <=3D 0) + return FALSE; + +#define CDGET(p,c) do { \ + (c) =3D (*p++); \ + (c) +=3D (*p++ << 8); \ + (c) +=3D (*p++ << 16); \ + (c) +=3D (*p++ << 24); \ +} while (0) + + cdp =3D context_digest; + CDGET(cdp, ctxo.a); + CDGET(cdp, ctxo.b); + CDGET(cdp, ctxo.c); + CDGET(cdp, ctxo.d); + CDGET(cdp, ctxi.a); + CDGET(cdp, ctxi.b); + CDGET(cdp, ctxi.c); + CDGET(cdp, ctxi.d); + + ctxo.lo =3D ctxi.lo =3D 64; + ctxo.hi =3D ctxi.hi =3D 0; + + md5_update(&ctxi, auth->challenge, strlen(auth->challenge)); + md5_final(&ctxi, digest); + md5_update(&ctxo, digest, 16); + md5_final(&ctxo, digest); + response_hex =3D binary_to_hex(digest, 16); + + if (memcmp(response_hex, auth->response, 32) !=3D 0) { + if (verbose) + i_info("cram-md5(%s): password mismatch", auth->username); + return FALSE; + } + + return TRUE; +} + +static int parse_cram_response(struct cram_auth_request *auth, + const char *data, const char **error) +{ + char *digest; + int failed; + + *error =3D NULL; + failed =3D FALSE; + + digest =3D strchr(data, ' '); + if (digest !=3D NULL) { + auth->username =3D p_strdup_until(auth->pool, data, digest); + digest++; + auth->response =3D p_strdup(auth->pool, digest); + } else { + *error =3D "missing digest"; + failed =3D TRUE; + } + + return !failed; +} + +static void credentials_callback(const char *result, + struct auth_request *request) +{ + struct cram_auth_request *auth =3D + (struct cram_auth_request *) request; + + if (verify_credentials(auth, result)) { + if (verbose) + i_info("cram-md5(%s): authenticated", auth->username =3D=3D NULL ? "" := auth->username); + mech_auth_finish(request, NULL, 0, TRUE); + } else { + if (verbose) + i_info("cram-md5(%s): authentication failed", auth->username =3D=3D NUL= L ? "" : auth->username); + mech_auth_finish(request, NULL, 0, FALSE); + } +} + +static int +mech_cram_md5_auth_continue(struct auth_request *auth_request, + struct auth_login_request_continue *request, + const unsigned char *data, + mech_callback_t *callback) +{ + struct cram_auth_request *auth =3D + (struct cram_auth_request *)auth_request; + const char *error; + + /* unused */ + (void)request; + + if (parse_cram_response(auth, (const char *) data, &error)) { + auth_request->callback =3D callback; + + auth_request->user =3D p_strdup(auth_request->pool, auth->username); + + if (mech_is_valid_username(auth_request->user)) { + passdb->lookup_credentials(&auth->auth_request, + PASSDB_CREDENTIALS_CRAM_MD5, + credentials_callback); + return TRUE; + } + + error =3D "invalid username"; + } + + if (error =3D=3D NULL) + error =3D "authentication failed"; + + if (verbose) + i_info("cram-md5(%s): %s", auth->username =3D=3D NULL ? "" : auth->usern= ame, error); + + /* failed */ + mech_auth_finish(auth_request, NULL, 0, FALSE); + return FALSE; +} + +static void mech_cram_md5_auth_free(struct auth_request *auth_request) +{ + + pool_unref(auth_request->pool); +} + +static struct auth_request * +mech_cram_md5_auth_new(struct login_connection *conn, + unsigned int id, mech_callback_t *callback) +{ + struct auth_login_reply reply; + struct cram_auth_request *auth; + pool_t pool; + string_t *challenge; + + pool =3D pool_alloconly_create("cram_md5_auth_request", 2048); + auth =3D p_new(pool, struct cram_auth_request, 1); + auth->pool =3D pool; + + auth->auth_request.pool =3D pool; + auth->auth_request.auth_continue =3D mech_cram_md5_auth_continue; + auth->auth_request.auth_free =3D mech_cram_md5_auth_free; + + /* initialize reply */ + mech_init_login_reply(&reply); + reply.id =3D id; + reply.result =3D AUTH_LOGIN_RESULT_CONTINUE; + + /* send the initial challenge */ + reply.reply_idx =3D 0; + challenge =3D get_cram_challenge(auth); + reply.data_size =3D str_len(challenge); + callback(&reply, str_data(challenge), conn); + + return &auth->auth_request; +} + +struct mech_module mech_cram_md5 =3D { + AUTH_MECH_CRAM_MD5, + mech_cram_md5_auth_new +}; diff -ruN dovecot-0.99.10/src/auth/mech.c dovecot-0.99.10-crammd5/src/auth/= mech.c --- dovecot-0.99.10/src/auth/mech.c Sun May 18 22:26:28 2003 +++ dovecot-0.99.10-crammd5/src/auth/mech.c Tue Nov 11 02:07:47 2003 @@ -201,6 +201,7 @@ } =20 extern struct mech_module mech_plain; +extern struct mech_module mech_cram_md5; extern struct mech_module mech_digest_md5; extern struct mech_module mech_anonymous; =20 @@ -228,6 +229,8 @@ while (*mechanisms !=3D NULL) { if (strcasecmp(*mechanisms, "PLAIN") =3D=3D 0) mech_register_module(&mech_plain); + else if (strcasecmp(*mechanisms, "CRAM-MD5") =3D=3D 0) + mech_register_module(&mech_cram_md5); else if (strcasecmp(*mechanisms, "DIGEST-MD5") =3D=3D 0) mech_register_module(&mech_digest_md5); else if (strcasecmp(*mechanisms, "ANONYMOUS") =3D=3D 0) { @@ -279,6 +282,7 @@ void mech_deinit(void) { mech_unregister_module(&mech_plain); + mech_unregister_module(&mech_cram_md5); mech_unregister_module(&mech_digest_md5); mech_unregister_module(&mech_anonymous); } diff -ruN dovecot-0.99.10/src/auth/passdb.c dovecot-0.99.10-crammd5/src/aut= h/passdb.c --- dovecot-0.99.10/src/auth/passdb.c Sun May 18 22:26:28 2003 +++ dovecot-0.99.10-crammd5/src/auth/passdb.c Tue Nov 11 02:07:47 2003 @@ -24,6 +24,8 @@ return "PLAIN"; case PASSDB_CREDENTIALS_CRYPT: return "CRYPT"; + case PASSDB_CREDENTIALS_CRAM_MD5: + return "CRAM-MD5"; case PASSDB_CREDENTIALS_DIGEST_MD5: return "DIGEST-MD5"; } @@ -128,6 +130,10 @@ if ((auth_mechanisms & AUTH_MECH_PLAIN) && passdb->verify_plain =3D=3D NULL) i_fatal("Passdb %s doesn't support PLAIN method", name); + + if ((auth_mechanisms & AUTH_MECH_CRAM_MD5) && + passdb->lookup_credentials =3D=3D NULL) + i_fatal("Passdb %s doesn't support CRAM-MD5 method", name); =20 if ((auth_mechanisms & AUTH_MECH_DIGEST_MD5) && passdb->lookup_credentials =3D=3D NULL) diff -ruN dovecot-0.99.10/src/auth/passdb.h dovecot-0.99.10-crammd5/src/aut= h/passdb.h --- dovecot-0.99.10/src/auth/passdb.h Fri Mar 21 02:46:33 2003 +++ dovecot-0.99.10-crammd5/src/auth/passdb.h Tue Nov 11 02:07:47 2003 @@ -11,6 +11,7 @@ =20 PASSDB_CREDENTIALS_PLAINTEXT, PASSDB_CREDENTIALS_CRYPT, + PASSDB_CREDENTIALS_CRAM_MD5, PASSDB_CREDENTIALS_DIGEST_MD5 }; =20 diff -ruN dovecot-0.99.10/src/auth/password-scheme.c dovecot-0.99.10-crammd= 5/src/auth/password-scheme.c --- dovecot-0.99.10/src/auth/password-scheme.c Sun May 4 04:32:59 2003 +++ dovecot-0.99.10-crammd5/src/auth/password-scheme.c Tue Nov 11 02:07:47 = 2003 @@ -7,6 +7,7 @@ #include "mycrypt.h" #include "randgen.h" #include "password-scheme.h" +#include "safe-memset.h" =20 static const char *salt_chars =3D "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; @@ -86,7 +87,8 @@ const char *scheme) { const char *realm, *str; - unsigned char digest[16]; + unsigned char digest[16], ipad[64], opad[64], context_digest[32], *cdp; + struct md5_context ctxo, ctxi; char salt[9]; int i; =20 @@ -108,6 +110,51 @@ =20 if (strcasecmp(scheme, "PLAIN") =3D=3D 0) return plaintext; + + if (strcasecmp(scheme, "CRAM-MD5") =3D=3D 0) { + safe_memset(ipad, '\0', sizeof(ipad)); + safe_memset(opad, '\0', sizeof(opad)); + + /* Hash excessively long passwords */ + i =3D strlen(plaintext); + if (i > 64) { + md5_get_digest(plaintext, i, digest); + memcpy(ipad, digest, 16); + memcpy(opad, digest, 16); + } else { + memcpy(ipad, plaintext, i); + memcpy(opad, plaintext, i); + } + + /* ipad/opad operation */ + for (i =3D 0; i < 64; i++) { + ipad[i] ^=3D 0x36; + opad[i] ^=3D 0x5c; + } + md5_init(&ctxi); + md5_init(&ctxo); + md5_update(&ctxi, ipad, 64); + md5_update(&ctxo, opad, 64); + + /* Make HMAC-MD5 hex digest */ +#define CDPUT(p,c) do { \ + *p++ =3D (c) & 0xff; \ + *p++ =3D (c)>>8 & 0xff; \ + *p++ =3D (c)>>16 & 0xff; \ + *p++ =3D (c)>>24 & 0xff; \ +} while (0) + cdp =3D context_digest; + CDPUT(cdp, ctxo.a); + CDPUT(cdp, ctxo.b); + CDPUT(cdp, ctxo.c); + CDPUT(cdp, ctxo.d); + CDPUT(cdp, ctxi.a); + CDPUT(cdp, ctxi.b); + CDPUT(cdp, ctxi.c); + CDPUT(cdp, ctxi.d); + + return binary_to_hex(context_digest, sizeof(context_digest)); + } =20 if (strcasecmp(scheme, "DIGEST-MD5") =3D=3D 0) { /* user:realm:passwd */ --j/HO4hzKTNbM1mOX-- --Qgd2S+2VS1hsWwXW Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (FreeBSD) iD8DBQE/r67MPsqE37hMaDwRAqKCAKDmgWoRQoHf0u59b9yVBvAhv5V4yQCfWw/S kmzOc8C9GEzfpZMRQyCwxS4= =xovT -----END PGP SIGNATURE----- --Qgd2S+2VS1hsWwXW-- From joshua@shallow.net Mon Nov 10 17:56:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0F615238C6; Mon, 10 Nov 2003 17:56:00 +0200 (EET) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by danu.procontrol.fi (Postfix) with ESMTP id AB8E2238C6 for ; Mon, 10 Nov 2003 17:55:26 +0200 (EET) Received: by yello.shallow.net (Postfix, from userid 1001) id 0208C2C9A; Tue, 11 Nov 2003 02:55:22 +1100 (EST) Date: Tue, 11 Nov 2003 02:55:21 +1100 From: Joshua Goodall To: dovecot@procontrol.fi Subject: Re: [Dovecot] PATCH: CRAM-MD5 for Dovecot Message-ID: <20031110155521.GJ37761@roughtrade.net> References: <20031110152916.GI37761@roughtrade.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20031110152916.GI37761@roughtrade.net> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2003 15:56:00 -0000 X-UID: 1846 Status: O On Tue, Nov 11, 2003 at 02:29:16AM +1100, I wrote: > Attached diff in two formats > i) for current CVS > ii) against last release > > both tested and working with Mozilla and KMail's CRAM-MD5. To be more precise, it's specifically tested and known to authenticate/deny correctly with clients Mozilla 1.5 and KMail version 1.5.4 (KDE3.1.4), connecting to Dovecot 0.99.10 and CVS20031111 running on FreeBSD 5.1 (actually 5-CURRENT), with the LDAP backend fetching unhashed userPasswords from OpenLDAP 2.1. - J From tss@iki.fi Mon Nov 10 21:00:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3D968238C7; Mon, 10 Nov 2003 21:00:44 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E5F0623841 for ; Mon, 10 Nov 2003 21:00:09 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 6CAB85C616C7 for ; Mon, 10 Nov 2003 21:00:09 +0200 (EET) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Message-Id: <1068490809.2794.7.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 10 Nov 2003 21:00:09 +0200 Content-Transfer-Encoding: 7bit Subject: [Dovecot] 0.99.10.1 released X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2003 19:00:44 -0000 X-UID: 1847 Status: O Content-Length: 1385 Since release candidate I added fix for CRLF + partial BODY[] fetching. I hope everything works :) I've been running it with mbox for a while and it seems to work fine. v0.99.10.1 2003-11-10 Timo Sirainen * mbox: \Draft and \Deleted flags used opposite flag chars in X-Status header. We were incompatible with other mbox accessing software. WARNING: Upgrading from previous version doesn't automatically swap the flags, so be careful not to accidentally expunge messages that had their \Draft flag changed to \Deleted. * Configuration file changes: - Whitespace at end of line is stripped, use quotes if you need it - # comments are supported after key=value lines. if you need '#' character, quote the value - Both " and ' quotes are supported. If you need to use them, '\' can be used for escaping. - mbox: COPY into same mailbox didn't work and could have corrupted the mailbox - Using Dovecot without index files would crash after using a while - Partial BODY[header] or BODY[part] fetches were buggy if client requested more data than was available in the header/part. - Partial BODY[...] fetches were buggy with messages that had CRLFs - Some BODY and BODYSTRUCTURE replies missed data for message/rfc822 MIME parts causing clients to break - SORT (SUBJECT) was buggy - Timezone fixes with Date-header From tss@iki.fi Mon Nov 10 22:36:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C11DB23850; Mon, 10 Nov 2003 22:36:40 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 43F9C238C7 for ; Mon, 10 Nov 2003 22:36:08 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id DD8E15C616C7 for ; Mon, 10 Nov 2003 22:36:07 +0200 (EET) Subject: Re: [Dovecot] PATCH: CRAM-MD5 for Dovecot From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20031110152916.GI37761@roughtrade.net> References: <20031110152916.GI37761@roughtrade.net> Content-Type: text/plain Message-Id: <1068496567.2794.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Mon, 10 Nov 2003 22:36:07 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2003 20:36:40 -0000 X-UID: 1848 Status: O Content-Length: 1288 On Mon, 2003-11-10 at 17:29, Joshua Goodall wrote: > Hi Timo, > > Mozilla 1.5 doesn't understand DIGEST-MD5; it only speaks CRAM-MD5 or > PLAIN. Maybe other clients have the same problem. My users like > Mozilla, so I wrote new code for Dovecot to speak CRAM-MD5, using > your mech-digest-md5.c as a reference. Thanks. I thought CRAM-MD5 required plaintext password in server side, but looks like you store them in some MD5 hash. That's good :) > I don't know if I've caught precisely the coding style you use for > Dovecot. I hope so, but I'm unsure if I've used your string and > buffer libraries properly. Please enlighten me if you have time. I did some cosmetical changes, but it was mostly ok. One real potential problem was: auth->challenge = p_strdup(auth->pool, str_data(str)); str_data() doesn't guarantee the returned string to be NUL-terminated, str_c() would be correct. And I rather try to avoid using 64bit integers which you used there, so I changed them to just print 16 random digits. It'd be nice to add CRAM-MD5 support to password_verify() too so that plaintext authentication could work with such passwords. But not that important. > Would you consider including this in the next release? Committed to CVS, see if it still works after my changes? ;) From mem@mv.mv.com Tue Nov 11 00:14:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C8C8B238D2; Tue, 11 Nov 2003 00:14:54 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by danu.procontrol.fi (Postfix) with SMTP id 7CC95238C7 for ; Tue, 11 Nov 2003 00:14:19 +0200 (EET) Received: (qmail 22707 invoked from network); 10 Nov 2003 17:14:17 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 10 Nov 2003 17:14:17 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 18583 invoked by uid 101); 10 Nov 2003 17:14:17 -0500 From: "Mark E. Mallett" Date: Mon, 10 Nov 2003 17:14:17 -0500 To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.1 released Message-ID: <20031110221417.GA11416@iridium.mv.net> References: <1068490809.2794.7.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1068490809.2794.7.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2003 22:14:55 -0000 X-UID: 1849 Status: O Content-Length: 1217 On Mon, Nov 10, 2003 at 09:00:09PM +0200, Timo Sirainen wrote: > Since release candidate I added fix for CRLF + partial BODY[] fetching. > I hope everything works :) I've been running it with mbox for a while > and it seems to work fine. First thing I notice is that various settings that are read out of the dovecot.conf file are no longer defaulted. I get coredumps starting the master process (dovecot) because of things not filled into the "set" structure at the settings_verify stage. My dovecot.conf file has most things left commented (which is supposed to default to the default, and did in previous versions). If I uncomment the specific thing causing the coredump (e.g. the location of the imap executable), it solves that particular problem but then I get a coredump on the next item. I'd just go in and make everything explicitly set in dovecot.conf but I imagine this is a bug. (Plus I'd prefer not to do that.) Yours, -mm- PS: of the couple of things that *are* picked up by default, the location of the pop3 and imap modules directory are the same path as the pop3 and imap executables. To make it happy I simply turned off the module support in the conf file, but that's a budding conflict. From tss@iki.fi Tue Nov 11 00:25:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ECD00238E1; Tue, 11 Nov 2003 00:25:03 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AEC57238D2 for ; Tue, 11 Nov 2003 00:24:31 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3CC6F5EC11A2 for ; Tue, 11 Nov 2003 00:24:31 +0200 (EET) Subject: Re: [Dovecot] 0.99.10.1 released From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20031110221417.GA11416@iridium.mv.net> References: <1068490809.2794.7.camel@hurina> <20031110221417.GA11416@iridium.mv.net> Content-Type: text/plain Message-Id: <1068503071.2802.27.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 Date: Tue, 11 Nov 2003 00:24:31 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2003 22:25:04 -0000 X-UID: 1850 Status: O Content-Length: 1118 On Tue, 2003-11-11 at 00:14, Mark E. Mallett wrote: > On Mon, Nov 10, 2003 at 09:00:09PM +0200, Timo Sirainen wrote: > > Since release candidate I added fix for CRLF + partial BODY[] fetching. > > I hope everything works :) I've been running it with mbox for a while > > and it seems to work fine. > > First thing I notice is that various settings that are read out > of the dovecot.conf file are no longer defaulted. I get coredumps > starting the master process (dovecot) because of things not > filled into the "set" structure at the settings_verify stage. Oh well, there had to be something :) I think it was broken only with older non-C99 capable compilers (gcc 2.95 I guess). This should fix, also released it as 0.99.10.2: --- dovecot-0.99.10.1/src/master/master-settings.c 2003-11-08 17:35:01.000000000 +0200 +++ dovecot-0.99.10.2/src/master/master-settings.c 2003-11-11 00:19:49.000000000 +0200 @@ -157,6 +157,7 @@ /* mail */ MEMBER(valid_chroot_dirs) NULL, + MEMBER(mail_chroot) NULL, MEMBER(max_mail_processes) 1024, MEMBER(verbose_proctitle) FALSE, From joshua@shallow.net Tue Nov 11 00:54:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4033F23993; Tue, 11 Nov 2003 00:54:13 +0200 (EET) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by danu.procontrol.fi (Postfix) with ESMTP id D829E238E1 for ; Tue, 11 Nov 2003 00:53:39 +0200 (EET) Received: by yello.shallow.net (Postfix, from userid 1001) id 96F832D94; Tue, 11 Nov 2003 09:53:35 +1100 (EST) Date: Tue, 11 Nov 2003 09:53:35 +1100 From: Joshua Goodall To: dovecot@procontrol.fi Subject: Re: [Dovecot] PATCH: CRAM-MD5 for Dovecot Message-ID: <20031110225335.GK37761@roughtrade.net> References: <20031110152916.GI37761@roughtrade.net> <1068496567.2794.17.camel@hurina> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="3rMDlCEgcaHQQFB+" Content-Disposition: inline In-Reply-To: <1068496567.2794.17.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2003 22:54:13 -0000 X-UID: 1851 Status: O Content-Length: 7746 --3rMDlCEgcaHQQFB+ Content-Type: multipart/mixed; boundary="/t6ASE28jIy1gGy9" Content-Disposition: inline --/t6ASE28jIy1gGy9 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Nov 10, 2003 at 10:36:07PM +0200, Timo Sirainen wrote: > Thanks. I thought CRAM-MD5 required plaintext password in server side, > but looks like you store them in some MD5 hash. That's good :) Well - sort of good. Unfortunately, the HMAC-MD5 encoding used doesn't salt the passwords as they're hashed. Theft of the hash allows an attacker to authenticate as that user, and also permits a dictionary attack. These weaknessess partially motivate DIGEST-MD5, of course, but it's still better than pure cleartext. The format is the same as that used by Courier IMAP. Properly, it should be called {HMAC-MD5}, so the attached patch makes that change before this settles. [snip] > And I rather try to avoid using 64bit integers which you used there, so > I changed them to just print 16 random digits. :) I was trying to minimise the amount of entropy pulled from the PRNG. (For the same amount of entropy, using ints produced a challenge space of 2^128 integers vs roughly 2^53). > It'd be nice to add CRAM-MD5 support to password_verify() too so that > plaintext authentication could work with such passwords. But not that > important. done. tested with passwd-file. see attached. > > Would you consider including this in the next release? >=20 > Committed to CVS, see if it still works after my changes? ;) I had problems with RFC noncompliance of the challenge (missing "<",">" and comedy challenge characters with %10 of signed chars). fixed, see patc= h. It Works For Me(tm). I've also added a doco update, and claimed copyright of the HMAC routine :) Joshua. --=20 Joshua Goodall joshua@roughtrade.net "Your object hit ratio is weak, old man" "If you cache me now, I will dump more core than you can possibly imagine" --/t6ASE28jIy1gGy9 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="cvs-2.diff" Content-Transfer-Encoding: quoted-printable Index: dovecot-example.conf =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/dovecot-example.conf,v retrieving revision 1.77 diff -u -r1.77 dovecot-example.conf --- dovecot-example.conf 6 Sep 2003 17:25:33 -0000 1.77 +++ dovecot-example.conf 10 Nov 2003 22:41:07 -0000 @@ -386,7 +386,7 @@ =20 auth default { # Space separated list of wanted authentication mechanisms: - # plain digest-md5 anonymous + # plain digest-md5 cram-md5 anonymous mechanisms =3D plain =20 # Where user database is kept: Index: doc/auth.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/doc/auth.txt,v retrieving revision 1.10 diff -u -r1.10 auth.txt --- doc/auth.txt 25 Jun 2003 23:15:35 -0000 1.10 +++ doc/auth.txt 10 Nov 2003 22:41:07 -0000 @@ -8,6 +8,8 @@ - DIGEST-MD5: Should be quite secure by itself. It also supports integrity protecting and crypting the rest of the communication, but we don't support those yet. + - CRAM-MD5: Protects the secret in transit from eavesdroppers. Doesn't + provide any integrity guarantees. - ANONYMOUS: No authentication required. User will be logged in as the us= er specified by auth_anonymous_username setting (default "anonymous"). The= re's no special restrictions given for anonymous users so you have to make s= ure @@ -46,6 +48,7 @@ =20 - PLAIN: Although not that good idea, it enables support for all current and future authentication mechanisms. + - HMAC-MD5: HMAC-MD5 context of password, for the CRAM-MD5 mechanism. - DIGEST-MD5: MD5 sum of "user:realm:password", as required by DIGEST-MD5 mechanism. =20 Index: src/auth/mech-cram-md5.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/auth/mech-cram-md5.c,v retrieving revision 1.2 diff -u -r1.2 mech-cram-md5.c --- src/auth/mech-cram-md5.c 10 Nov 2003 21:44:54 -0000 1.2 +++ src/auth/mech-cram-md5.c 10 Nov 2003 22:41:10 -0000 @@ -32,7 +32,7 @@ =20 static const char *get_cram_challenge(void) { - char buf[17]; + unsigned char buf[17]; size_t i; =20 hostpid_init(); @@ -42,7 +42,7 @@ buf[i] =3D (buf[i] % 10) + '0'; buf[sizeof(buf)-1] =3D '\0'; =20 - return t_strdup_printf("%s.%s@%s", buf, dec2str(ioloop_time), + return t_strdup_printf("<%s.%s@%s>", buf, dec2str(ioloop_time), my_hostname); } =20 Index: src/auth/passdb.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/auth/passdb.c,v retrieving revision 1.12 diff -u -r1.12 passdb.c --- src/auth/passdb.c 10 Nov 2003 20:36:02 -0000 1.12 +++ src/auth/passdb.c 10 Nov 2003 22:41:10 -0000 @@ -25,7 +25,7 @@ case PASSDB_CREDENTIALS_CRYPT: return "CRYPT"; case PASSDB_CREDENTIALS_CRAM_MD5: - return "CRAM-MD5"; + return "HMAC-MD5"; case PASSDB_CREDENTIALS_DIGEST_MD5: return "DIGEST-MD5"; } Index: src/auth/password-scheme-cram-md5.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/auth/password-scheme-cram-md5.c,v retrieving revision 1.1 diff -u -r1.1 password-scheme-cram-md5.c --- src/auth/password-scheme-cram-md5.c 10 Nov 2003 20:36:02 -0000 1.1 +++ src/auth/password-scheme-cram-md5.c 10 Nov 2003 22:41:10 -0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 Timo Sirainen */ +/* Copyright (C) 2003 Timo Sirainen / Joshua Goodall */ =20 #include "lib.h" #include "md5.h" Index: src/auth/password-scheme.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/auth/password-scheme.c,v retrieving revision 1.4 diff -u -r1.4 password-scheme.c --- src/auth/password-scheme.c 10 Nov 2003 20:36:02 -0000 1.4 +++ src/auth/password-scheme.c 10 Nov 2003 22:41:11 -0000 @@ -30,6 +30,11 @@ if (strcasecmp(scheme, "PLAIN") =3D=3D 0) return strcmp(password, plaintext) =3D=3D 0; =20 + if (strcasecmp(scheme, "HMAC-MD5") =3D=3D 0) { + str =3D password_generate_cram_md5(plaintext); + return strcmp(str, password) =3D=3D 0; + } + if (strcasecmp(scheme, "DIGEST-MD5") =3D=3D 0) { /* user:realm:passwd */ realm =3D strchr(user, '@'); @@ -110,7 +115,7 @@ if (strcasecmp(scheme, "PLAIN") =3D=3D 0) return plaintext; =20 - if (strcasecmp(scheme, "CRAM-MD5") =3D=3D 0) + if (strcasecmp(scheme, "HMAC-MD5") =3D=3D 0) return password_generate_cram_md5(plaintext); =20 if (strcasecmp(scheme, "DIGEST-MD5") =3D=3D 0) { --/t6ASE28jIy1gGy9-- --3rMDlCEgcaHQQFB+ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (FreeBSD) iD8DBQE/sBbvPsqE37hMaDwRAlFpAJ9wQZffdYf4+FAb8+KcmbjLxLeTewCg/nl7 TSEDZ6O/Vdl73mCEsn6+IYE= =TNtv -----END PGP SIGNATURE----- --3rMDlCEgcaHQQFB+-- From mem@mv.mv.com Tue Nov 11 04:48:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1D5CD238C8; Tue, 11 Nov 2003 04:48:17 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by danu.procontrol.fi (Postfix) with SMTP id 897F5238C7 for ; Tue, 11 Nov 2003 04:47:42 +0200 (EET) Received: (qmail 12235 invoked from network); 10 Nov 2003 21:47:41 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 10 Nov 2003 21:47:41 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 525 invoked by uid 101); 10 Nov 2003 21:47:40 -0500 From: "Mark E. Mallett" Date: Mon, 10 Nov 2003 21:47:40 -0500 To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.1 released Message-ID: <20031111024740.GA17761@iridium.mv.net> References: <1068490809.2794.7.camel@hurina> <20031110221417.GA11416@iridium.mv.net> <1068503071.2802.27.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1068503071.2802.27.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Nov 2003 02:48:17 -0000 X-UID: 1852 Status: O > > Oh well, there had to be something :) I think it was broken only with > older non-C99 capable compilers (gcc 2.95 I guess). This should fix, > also released it as 0.99.10.2: That seemed to fix it, thanks. on to try more things :-) -mm- From joshua@shallow.net Tue Nov 11 11:21:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2928F238C5; Tue, 11 Nov 2003 11:21:19 +0200 (EET) Received: from yello.shallow.net (unknown [203.18.243.120]) by danu.procontrol.fi (Postfix) with ESMTP id 8741D23841 for ; Tue, 11 Nov 2003 11:20:42 +0200 (EET) Received: by yello.shallow.net (Postfix, from userid 1001) id 113512DDE; Tue, 11 Nov 2003 20:20:29 +1100 (EST) Date: Tue, 11 Nov 2003 20:20:28 +1100 From: Joshua Goodall To: dovecot@procontrol.fi Subject: Re: [Dovecot] PATCH: CRAM-MD5 for Dovecot Message-ID: <20031111092028.GS37761@roughtrade.net> References: <20031110152916.GI37761@roughtrade.net> <1068496567.2794.17.camel@hurina> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="TG7lY2/6mW/akb80" Content-Disposition: inline In-Reply-To: <1068496567.2794.17.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Nov 2003 09:21:19 -0000 X-UID: 1853 Status: O --TG7lY2/6mW/akb80 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Nov 10, 2003 at 10:36:07PM +0200, Timo Sirainen wrote: > Committed to CVS, see if it still works after my changes? ;) I'm now maintaining a backport of this for the 0.99.10.2 release at my website. Recently also tested with NetBSD and Mail.app. http://www.roughtrade.net/dovecot/ Joshua. --TG7lY2/6mW/akb80 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (FreeBSD) iD8DBQE/sKncPsqE37hMaDwRAq+WAKDMGEk3C/Cks+OawpwyXzKYLOb8pACguBF5 DylW7nXfDUYgA88E4bT+JqM= =59pa -----END PGP SIGNATURE----- --TG7lY2/6mW/akb80-- From mreimer@vpop.net Tue Nov 11 19:31:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D1F4C238C5; Tue, 11 Nov 2003 19:31:13 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id E0F6423850 for ; Tue, 11 Nov 2003 19:30:40 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 0B2323A62A5; Tue, 11 Nov 2003 09:30:36 -0800 (PST) Message-ID: <3FB11D14.5060706@vpop.net> Date: Tue, 11 Nov 2003 11:32:04 -0600 From: Matthew Reimer Organization: VPOP Technologies, Inc. User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Bug with partial IMAP fetches References: <96E96AF2-122C-11D8-B15F-000393CC2E90@iki.fi> In-Reply-To: <96E96AF2-122C-11D8-B15F-000393CC2E90@iki.fi> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Nov 2003 17:31:14 -0000 X-UID: 1854 Status: O Content-Length: 1586 Timo Sirainen wrote: > On Tuesday, Nov 4, 2003, at 21:10 Europe/Helsinki, Matthew Reimer wrote: > >> I think I've found the bug. The attached patch fixes the problem for >> me. The first problem is that the wrong value is being returned by >> message_send() because ret is getting set to the wrong value (see >> above or patch). The second problem is that in the special case where >> physical_size == virtual_size (i.e., sendfile can be used) >> i_stream_skip(input, virtual_skip) is being called on the input >> stream. This is wrong because virtual_skip is supposed to indicate >> that \r was the last character seen and therefore \n needs to be sent >> before any of the input stream; but in the sendfile case this is not >> necessary. >> >> I think a little refactoring of seek_partial(), message_send() and >> message_skip_virtual() might be helpful to clarify the code. The >> virtual_skip argument to message_send() is an off_t but is only used >> to indicate that \r was the last character read, so it would probably >> be more clear to add another argument cr_skipped (like >> message_skip_virtual()). Better might be to put all the partial cache >> stuff in message-send.c. > > > It actually was supposed to be skip byte count, not just CR-indicator. > But you're right, it was used wrong in sendfile code path. There was > one piece of code anymore which used the virtual_skip more than just > for CR (BODY[HEADER]<..>) and it was easy to change. I think the > attached patch should fix it properly. I tested 0.99.10.2 and it works fine. Thanks! Matt From mem@mv.mv.com Wed Nov 12 00:48:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 89DAD238C6; Wed, 12 Nov 2003 00:48:18 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by danu.procontrol.fi (Postfix) with SMTP id CC80F23841 for ; Wed, 12 Nov 2003 00:47:45 +0200 (EET) Received: (qmail 21799 invoked from network); 11 Nov 2003 17:47:43 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 11 Nov 2003 17:47:43 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 5328 invoked by uid 101); 11 Nov 2003 17:47:28 -0500 From: "Mark E. Mallett" Date: Tue, 11 Nov 2003 17:47:28 -0500 To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.1 released Message-ID: <20031111224728.GA1646@iridium.mv.net> References: <1068490809.2794.7.camel@hurina> <20031110221417.GA11416@iridium.mv.net> <1068503071.2802.27.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1068503071.2802.27.camel@hurina> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Nov 2003 22:48:19 -0000 X-UID: 1855 Status: O Oh, and thanks much for the support for recognizing timezones on the "From " line in mboxes. (mbox_from_parse_date). However, it looks like a minor tweak is needed. After you recognize the year, I think you need to skip over the following space in order to recognize the timezone offset. i.e., where there is: /* year */ if (!i_isdigit(msg[0]) || !i_isdigit(msg[1]) || !i_isdigit(msg[2]) || !i_isdigit(msg[3])) return (time_t)-1; tm.tm_year = (msg[0]-'0') * 1000 + (msg[1]-'0') * 100 + (msg[2]-'0') * 10 + (msg[3]-'0') - 1900; msg += 4; Perhaps add: if ( msg[0] == ' ' ) ++msg; (Sorry that's not a patch, I had added a few other lines would skew it anyway.) mm From zach.bagnall@bulletinwireless.com Wed Nov 12 01:05:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DEAD6238C7; Wed, 12 Nov 2003 01:05:09 +0200 (EET) Received: from hawk.bulletinwireless.net (ns1.jungledrum.co.nz [210.54.149.34]) by danu.procontrol.fi (Postfix) with ESMTP id A6104238C5 for ; Wed, 12 Nov 2003 01:04:36 +0200 (EET) Received: from localhost (localhost.localdomain [127.0.0.1]) by hawk.bulletinwireless.net (Postfix) with ESMTP id CA61A5F5E for ; Wed, 12 Nov 2003 12:04:27 +1300 (NZDT) Received: from hawk.bulletinwireless.net ([127.0.0.1]) by localhost (hawk [127.0.0.1:10024]) (amavisd-new) with LMTP id 31018-01-44 for ; Wed, 12 Nov 2003 12:04:25 +1300 (NZDT) Received: from piranha (piranha.intra.jungledrum.co.nz [192.168.1.13]) by hawk.bulletinwireless.net (Postfix) with ESMTP id 395F95F49 for ; Wed, 12 Nov 2003 12:04:25 +1300 (NZDT) Date: Wed, 12 Nov 2003 12:04:20 +1300 From: Zach Bagnall To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.1 released (gentoo) Message-Id: <20031112120420.5aa52aaf.zach.bagnall@bulletinwireless.com> In-Reply-To: <1068503071.2802.27.camel@hurina> References: <1068490809.2794.7.camel@hurina> <20031110221417.GA11416@iridium.mv.net> <1068503071.2802.27.camel@hurina> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.9.6claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Wed__12_Nov_2003_12_04_20_+1300_vQqKMKMgnJ8fLwcj" X-Virus-Scanned: by amavisd-new X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Nov 2003 23:05:10 -0000 X-UID: 1856 Status: O --Signature=_Wed__12_Nov_2003_12_04_20_+1300_vQqKMKMgnJ8fLwcj Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit On Tue, 11 Nov 2003 00:24:31 +0200, Timo Sirainen wrote: [snip] > Oh well, there had to be something :) I think it was broken only with > older non-C99 capable compilers (gcc 2.95 I guess). This should fix, > also released it as 0.99.10.2: BTW: Gentoo ebuild for 0.99.10.2 updated at: http://bugs.gentoo.org/show_bug.cgi?id=22080 Would be good to get this tested more widely. Any problems or suggestions, add em to that ticket please. Zach. --Signature=_Wed__12_Nov_2003_12_04_20_+1300_vQqKMKMgnJ8fLwcj Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/sWr44jDFYT+aqaIRAppGAJ9hgywHgz8SL/Dr8rYYOnub7EFCaQCgyyWT EQCL7l04PjcWhkSF50INO2Y= =lcYs -----END PGP SIGNATURE----- --Signature=_Wed__12_Nov_2003_12_04_20_+1300_vQqKMKMgnJ8fLwcj-- From mreimer@vpop.net Wed Nov 12 03:08:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EE1D5238C6; Wed, 12 Nov 2003 03:08:28 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 1F70D23850 for ; Wed, 12 Nov 2003 03:07:54 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 517413A74F6 for ; Tue, 11 Nov 2003 17:07:49 -0800 (PST) Message-ID: <3FB1883F.8070209@vpop.net> Date: Tue, 11 Nov 2003 19:09:19 -0600 From: Matthew Reimer Organization: VPOP Technologies, Inc. User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Problem with DIGEST-MD5 authentication and plaintext passwords X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Nov 2003 01:08:29 -0000 X-UID: 1857 Status: O I wasn't able to get DIGEST-MD5 authentication working with passwords stored as plaintext until I tweaked password_generate() to make it not use the domain portion of user@domain.com as the realm. Both evolution and kmail send the email address as the username with no realm; when dovecot tries to convert the username to user + realm, the hash is different and so DIGEST-MD5 authentication fails. Having password_generate() hash user@domain.com::password instead of user:domain.com:password fixes it. I need this to work because I need to support all of PLAIN, CRAM-MD5, and DIGEST-MD5 at the same time. Timo, do you think this is a proper fix, or are kmail and evolution broken? Matt From jaldhar@debian.org Wed Nov 12 08:10:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 39141238C6; Wed, 12 Nov 2003 08:10:56 +0200 (EET) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id C40A9238C5 for ; Wed, 12 Nov 2003 08:10:21 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id B25B97F5C for ; Wed, 12 Nov 2003 01:10:23 -0500 (EST) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 31036-06 for ; Wed, 12 Nov 2003 01:10:23 -0500 (EST) Received: from samadhi.braincells.com (samadhi.braincells.com [216.162.42.100]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 4DB747F52 for ; Wed, 12 Nov 2003 01:10:23 -0500 (EST) Date: Wed, 12 Nov 2003 01:10:21 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at braincells.com Subject: [Dovecot] 0.99.10.2 for debian X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Nov 2003 06:10:56 -0000 X-UID: 1858 Status: O I just uploaded it to sid. A woody backport is available from http://www.braincells.com/open/ I came across an error: giving --without-cyrus-sasl2 to the configure script doesn't work i.e. it looks for -lsasl anyway. Other than that, it seems to be working fine. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From lfarkas@bnap.hu Wed Nov 12 17:03:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0DC4F238C9; Wed, 12 Nov 2003 17:03:01 +0200 (EET) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id C0FA023866 for ; Wed, 12 Nov 2003 17:02:26 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by mail1.bppiac.hu (Postfix) with ESMTP id C79C76E4012 for ; Wed, 12 Nov 2003 15:59:05 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 9C78716F4CE; Wed, 12 Nov 2003 16:02:23 +0100 (CET) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 8D1F416F4CD for ; Wed, 12 Nov 2003 16:02:23 +0100 (CET) Message-ID: <3FB24B7E.6050402@bnap.hu> Date: Wed, 12 Nov 2003 16:02:22 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1) Gecko/20031030 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] namesapce patch X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Nov 2003 15:03:01 -0000 X-UID: 1859 Status: O hi, where can I find the namspace patch? I remember there was an email on this list, that if I'd not like to open all sufolder's in mozilla's mailer on startup, but I'd like to start mozilla to open all subfolder I've to apply the namespace patch. now it getting more and more anoying so I'd like to apply, but I can't find it... thanks. -- Levente "Si vis pacem para bellum!" From miquels@cistron.net Thu Nov 13 16:42:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9C54A238B6; Thu, 13 Nov 2003 16:42:35 +0200 (EET) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by danu.procontrol.fi (Postfix) with ESMTP id 1ADB423866 for ; Thu, 13 Nov 2003 16:42:03 +0200 (EET) Received: from traveler.cistron-office.nl ([62.216.29.67] helo=traveler) by smtp.cistron-office.nl with esmtp (Exim 3.35 #1 (Debian)) id 1AKIfY-0001su-00 for ; Thu, 13 Nov 2003 15:42:00 +0100 Date: Thu, 13 Nov 2003 15:42:00 +0100 From: Miquel van Smoorenburg To: Dovecot List Message-ID: <20031113144200.GE4476@traveler.cistron.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Mailer: Balsa 2.0.15 Lines: 31 Subject: [Dovecot] Children, HasChildren X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Nov 2003 14:42:35 -0000 X-UID: 1860 Status: O Hello, I'm using dovecot 0.99.10.2 on a debian box. Mailstore is maildir. If I list the IMAP hierarchy in mutt (debian, 1.5.4+20031024-1) it shows all my plain mailboxes as having subfolders - while none of them have. I straced mutt and this is the IMAP exchange (a bit reformatted for readability): write(6, "a0001 LSUB \"\" \"%\"\r\n", 19) = 19 read(3, " * LSUB () \".\" \"Drafts\" * LSUB () \".\" \"INBOX\" * LSUB () \".\" \"Sent\" * LSUB () \".\" \"Trash\" * LSUB (\\Noselect \\Children) \".\" \"broadband\" * LSUB (\\Noselect \\Children) \".\" \"cistron\" * LSUB (\\Noselect \\Children) \".\" \"debian\" * LSUB (\\Noselect \\Children) \".\" \"ip\" * LSUB (\\Noselect \\Children) \".\" \"lists\" * LSUB (\\Noselect \\Children) \".\" \"prive\" a0001 OK Lsub completed. ", 1024) = 374 Now this is strange - I read RFC3348 and shouldn't \\Children be \\HasChildren, also shouldn't the plain mailboxes (first four) be listed with \\HasNoChildren ? Mike. From bah@webmedic.net Thu Nov 13 20:04:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 26904238B6; Thu, 13 Nov 2003 20:04:30 +0200 (EET) Received: from courage.vosn.net (courage.vosn.net [209.151.74.1]) by danu.procontrol.fi (Postfix) with ESMTP id E8EEF23866 for ; Thu, 13 Nov 2003 20:03:54 +0200 (EET) Received: from pppoe64-91-122-4.vcr.centurytel.net ([64.91.122.4] helo=192.168.1.10) by courage.vosn.net with esmtp (Exim 4.24) id 1AKLor-0002Bo-HQ for dovecot@procontrol.fi; Thu, 13 Nov 2003 11:03:49 -0700 From: Brook Humphrey Organization: Mobile PC Medic To: dovecot@procontrol.fi Subject: Re: [Dovecot] dovecot vs cyrus, uw, etc. Date: Thu, 13 Nov 2003 10:03:50 -0800 User-Agent: KMail/1.5.93 References: <20031103225029.GB23640@thenation.com> <3FA6F2FF.1030704@tacocat.net> In-Reply-To: <3FA6F2FF.1030704@tacocat.net> X-Crash-Handler: MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Message-Id: <200311131003.50263.bah@webmedic.net> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - courage.vosn.net X-AntiAbuse: Original Domain - procontrol.fi X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - webmedic.net X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Nov 2003 18:04:30 -0000 X-UID: 1861 Status: O Content-Length: 2900 On Wednesday 31 December 1969 04:00 pm, you wrote: > There is a package called amavisd-new which allows you to set up an > anti-virus scanner and spamassassin as an extension of postfix. =A0This > can process email before it's delivered from postfix to where ever > (procmail/lmtp/...) > > This simplifies some things in that the mail, as delivered to the MDA > has already been "bagged and tagged" as spam, virus, good/bad and you > can use procmail/sieve equally effectively for filtering from there. here I dont have 60 employies but I do generate about 1200 emials a day. I = use=20 Postfix with maildrop wich is much easier to use than procmail and at least= =20 if not more powerful. I have maildrop do local delivery and then use doveco= t=20 in secure mode with imap to get the emails. Even with imap dovecot is=20 blindingly fast. Folders with around 10000 emails refresh in under a minute= =20 with about 600 or so at a time that are new.=20 The nice thing about this is that with maildrop I can easily filter spam wh= it=20 spamassassin. At about 600 spam emails a day it misses about 1% I have only= =20 had about 2 or 3 false positives for about 30000 or 40000 spam emails. That= s=20 a very good ratio.=20 I also filter virii with anomy saitizer. It works very simply and never nee= ds=20 any definition update files. You can set the config file to simply not allo= w=20 certain kinds of atachments. It is 100% secure 100% of the time. It can=20 easily be set to allow some kinds of atachments like zip or whatever. This = is=20 not so bad as any user that knows enough to unzip a file is a little more=20 advanced and hopefully knows a little bit more about their system. Anomy al= so=20 defangs bad html in some emails to protect from that kind of atack. I then have maildrop filter the spam out and virii out into thier own folde= rs=20 on the imap server. The files can still be accessed but for hte most part y= ou=20 dont need to.=20 The reason i use imap is so that i can check the virii and spam and see if = it=20 is all legit.=20 Pop would be very easy to set up and run on this also allowing the user to= =20 easily download anything that is not spam or virii which the admin could=20 later check out and either transfer for the user and simply delete.=20 If it is needed maildrop could also be setup to make spamassassin autolearn= =20 new spam or ham. =2D-=20 New and improved with advanced outlook crash handler.=20 -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'= ~- Brook Humphrey =20 Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 =20 http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com =20 Holiness unto the Lord -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'= ~- From list@networkshop.com.hk Sun Nov 16 17:06:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 92B4323866; Sun, 16 Nov 2003 17:06:18 +0200 (EET) Received: from stars.networkshop.com.hk (167-028.onebb.com [202.180.167.28]) by danu.procontrol.fi (Postfix) with ESMTP id 2121323841 for ; Sun, 16 Nov 2003 17:05:45 +0200 (EET) Received: from networkshop.com.hk ([192.168.101.114]) by stars.networkshop.com.hk (8.11.6/8.11.6) with ESMTP id hAGF8FV32747 for ; Sun, 16 Nov 2003 23:08:16 +0800 Message-ID: <3FB79243.2000101@networkshop.com.hk> Date: Sun, 16 Nov 2003 23:05:39 +0800 From: Jerry Chiu User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Migrate from Courier-imap X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Nov 2003 15:06:18 -0000 X-UID: 1862 Status: O Hi, I have a redhat server running courier-imap + squirrelmail webmail. I am migrating to dovecot... the problem is - the existing sub-folders are all disappear from the folder list. What can I do to fix this problem? Thanks, Jerry Chiu From tss@iki.fi Sun Nov 16 17:57:14 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A11C923866; Sun, 16 Nov 2003 17:57:14 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6703723841 for ; Sun, 16 Nov 2003 17:56:42 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 1C2FE5C5D266 for ; Sun, 16 Nov 2003 17:56:42 +0200 (EET) Subject: Re: [Dovecot] Problem with DIGEST-MD5 authentication and plaintext passwords From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <3FB1883F.8070209@vpop.net> References: <3FB1883F.8070209@vpop.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-nT7uLa5pvfWz8efupCNf" Message-Id: <1068998201.24450.12.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 16 Nov 2003 17:56:41 +0200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Nov 2003 15:57:14 -0000 X-UID: 1863 Status: O Content-Length: 1527 --=-nT7uLa5pvfWz8efupCNf Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2003-11-12 at 03:09, Matthew Reimer wrote: > I wasn't able to get DIGEST-MD5 authentication working with passwords=20 > stored as plaintext until I tweaked password_generate() to make it not=20 > use the domain portion of user@domain.com as the realm. Both evolution=20 > and kmail send the email address as the username with no realm; when=20 > dovecot tries to convert the username to user + realm, the hash is=20 > different and so DIGEST-MD5 authentication fails. Having=20 > password_generate() hash user@domain.com::password instead of=20 > user:domain.com:password fixes it. I need this to work because I need to=20 > support all of PLAIN, CRAM-MD5, and DIGEST-MD5 at the same time. >=20 > Timo, do you think this is a proper fix, or are kmail and evolution broke= n? Well .. Looks like most clients don't actually use realms, but I rather wouldn't completely drop support for them which your change would do. Correct fix would be to separate realm and "@domain" handling in code, that should work with both cases. I'll see if I can get that done. --=-nT7uLa5pvfWz8efupCNf Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/t545yUhSUUBViskRAoiXAKCQCOz91poyqM7POsLpbT7mP0z8NgCgkgBN YX1Z58QEXlytPVvOBerE90A= =osmv -----END PGP SIGNATURE----- --=-nT7uLa5pvfWz8efupCNf-- From tss@iki.fi Sun Nov 16 17:58:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3A52023866; Sun, 16 Nov 2003 17:58:31 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4AC5E238CB for ; Sun, 16 Nov 2003 17:57:59 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id C4D5C5C5D266; Sun, 16 Nov 2003 17:57:58 +0200 (EET) Subject: Re: [Dovecot] namesapce patch From: Timo Sirainen To: Farkas Levente In-Reply-To: <3FB24B7E.6050402@bnap.hu> References: <3FB24B7E.6050402@bnap.hu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-YiXVYgVQeIfmU/M0S1Sz" Message-Id: <1068998278.24435.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 16 Nov 2003 17:57:58 +0200 cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Nov 2003 15:58:31 -0000 X-UID: 1864 Status: O --=-YiXVYgVQeIfmU/M0S1Sz Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2003-11-12 at 17:02, Farkas Levente wrote: > hi, > where can I find the namspace patch? I remember there was an email on=20 > this list, that if I'd not like to open all sufolder's in mozilla's=20 > mailer on startup, but I'd like to start mozilla to open all subfolder=20 > I've to apply the namespace patch. now it getting more and more anoying=20 > so I'd like to apply, but I can't find it... This I guess: http://dovecot.procontrol.fi/list/dovecot/2003-June/001814.html --=-YiXVYgVQeIfmU/M0S1Sz Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/t56GyUhSUUBViskRAocMAJ4+nvrjhKE5z17V7YPfgm02cX3I9ACgpV0l WNdog3rUvylvkF88O7pHdZw= =185d -----END PGP SIGNATURE----- --=-YiXVYgVQeIfmU/M0S1Sz-- From tss@iki.fi Sun Nov 16 17:59:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4F85923841; Sun, 16 Nov 2003 17:59:58 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 689A3238CB for ; Sun, 16 Nov 2003 17:59:26 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3211E5C5D266; Sun, 16 Nov 2003 17:59:26 +0200 (EET) Subject: Re: [Dovecot] Children, HasChildren From: Timo Sirainen To: Miquel van Smoorenburg In-Reply-To: <20031113144200.GE4476@traveler.cistron.net> References: <20031113144200.GE4476@traveler.cistron.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-/uzLuhtJDXEVtTpABxhL" Message-Id: <1068998365.24437.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 16 Nov 2003 17:59:26 +0200 cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Nov 2003 15:59:58 -0000 X-UID: 1865 Status: O --=-/uzLuhtJDXEVtTpABxhL Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2003-11-13 at 16:42, Miquel van Smoorenburg wrote: > If I list the IMAP hierarchy in mutt (debian, 1.5.4+20031024-1) it shows > all my plain mailboxes as having subfolders - while none of them have. Children flags are more or less buggy.. I'll see if I can get them at least bit less buggy for 0.99.10.3.. CVS version would have them working correctly. --=-/uzLuhtJDXEVtTpABxhL Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/t57dyUhSUUBViskRAi4cAJ45U49xFzie9725Meeo3W1HIRHuvQCcDv91 3BsgMol2Xb9jIAoKTA3aS5s= =0N4j -----END PGP SIGNATURE----- --=-/uzLuhtJDXEVtTpABxhL-- From tss@iki.fi Sun Nov 16 18:01:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E5687238C9; Sun, 16 Nov 2003 18:01:17 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9B8CF238CB for ; Sun, 16 Nov 2003 18:00:22 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 669C05C5D266; Sun, 16 Nov 2003 18:00:22 +0200 (EET) Subject: Re: [Dovecot] Migrate from Courier-imap From: Timo Sirainen To: Jerry Chiu In-Reply-To: <3FB79243.2000101@networkshop.com.hk> References: <3FB79243.2000101@networkshop.com.hk> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-GkrU4iopbS/whPA3JGuF" Message-Id: <1068998422.24450.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 16 Nov 2003 18:00:22 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Nov 2003 16:01:18 -0000 X-UID: 1866 Status: O --=-GkrU4iopbS/whPA3JGuF Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2003-11-16 at 17:05, Jerry Chiu wrote: > Hi, >=20 > I have a redhat server running courier-imap + squirrelmail webmail. > I am migrating to dovecot... > the problem is - the existing sub-folders are all disappear from the=20 > folder list. >=20 > What can I do to fix this problem? Remove "INBOX." namespace prefix from squirrelmail configuration and it should work. --=-GkrU4iopbS/whPA3JGuF Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/t58WyUhSUUBViskRAr+OAJ9q36JVfEg6h4wtxt8m2dvzE9GV1gCaA4ph n4Sp8roBYClbyvCHs58Ax5Q= =Jfc1 -----END PGP SIGNATURE----- --=-GkrU4iopbS/whPA3JGuF-- From james@giantrobot.co.nz Mon Nov 17 06:54:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1AD2F23866; Mon, 17 Nov 2003 06:54:40 +0200 (EET) Received: from mechamail.giantrobot.co.nz (unknown [219.88.241.211]) by danu.procontrol.fi (Postfix) with ESMTP id 4AE8323841 for ; Mon, 17 Nov 2003 06:54:07 +0200 (EET) Received: from orac.giantrobot.co.nz ([210.54.175.118] helo=giantrobot.co.nz) by mechamail.giantrobot.co.nz with esmtp (Exim 4.14) id 1ALbJS-00029Z-PK for dovecot@procontrol.fi; Mon, 17 Nov 2003 17:48:34 +1300 Date: Mon, 17 Nov 2003 17:53:58 +1300 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: James Tyson To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: <0E45EC01-18BA-11D8-8CBA-000A957DCC26@giantrobot.co.nz> X-Mailer: Apple Mail (2.552) Subject: [Dovecot] MySQL patch + Debian X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 04:54:40 -0000 X-UID: 1867 Status: O Content-Length: 2512 Hi folks. Sorry to post here about a patch that hasn't been officially integrated into Dovecot, however I am trying to get it going and seem to have hit a dead end. I downloaded the Debianised source for Dovecot (0.99.10-9) from sarge: > wedge:/usr/local/src# apt-get -t testing source dovecot then applied the latest MySQL patch that I could find on the list: > wedge:/usr/local/src/dovecot-0.99.10# cat ../dovecot-mysql.patch | > patch -p 2 and manually fixed a merge issue with src/auth/master-connection.c, fiddled with the debian changelog to indicate the patch and then used dpkg-buildpackage -b to compile the package. Everything looked to build alright and I grepped the output to make sure that it compiled userdb-mysql.o and passdb-mysql.o into dovecot-auth. Problem is that dovecot-auth says "Unknown userdb type 'mysql'" and an ldd of /src/auth/dovecot-auth shows no libmysqlclient10: > wedge:/usr/local/src/dovecot-0.99.10# ldd src/auth/dovecot-auth > libpam.so.0 => /lib/libpam.so.0 (0x4001a000) > libldap.so.2 => /usr/lib/libldap.so.2 (0x40022000) > libpq.so.3 => /usr/lib/libpq.so.3 (0x4005a000) > libcrypt.so.1 => /lib/libcrypt.so.1 (0x4006e000) > libdl.so.2 => /lib/libdl.so.2 (0x4009c000) > libc.so.6 => /lib/libc.so.6 (0x4009f000) > liblber.so.2 => /usr/lib/liblber.so.2 (0x401cd000) > libresolv.so.2 => /lib/libresolv.so.2 (0x401da000) > libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x401ec000) > libgnutls.so.7 => /usr/lib/libgnutls.so.7 (0x401fe000) > libssl.so.0.9.7 => /usr/lib/i686/cmov/libssl.so.0.9.7 > (0x40231000) > libcrypto.so.0.9.7 => /usr/lib/i686/cmov/libcrypto.so.0.9.7 > (0x40260000) > libkrb5.so.17 => /usr/lib/libkrb5.so.17 (0x40351000) > libnsl.so.1 => /lib/libnsl.so.1 (0x40387000) > /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) > libtasn1.so.0 => /usr/lib/libtasn1.so.0 (0x4039c000) > libgcrypt.so.1 => /usr/lib/libgcrypt.so.1 (0x403aa000) > libz.so.1 => /usr/lib/libz.so.1 (0x403e8000) > libcom_err.so.1 => /usr/lib/libcom_err.so.1 (0x403f7000) > libkrb.so.1 => /usr/lib/libkrb.so.1 (0x403f9000) > libasn1.so.6 => /usr/lib/libasn1.so.6 (0x40415000) > libroken.so.16 => /usr/lib/libroken.so.16 (0x40435000) > libdb3.so.3 => /usr/lib/libdb3.so.3 (0x40445000) Anyone know what I'm missing? --- James Tyson Director, Giant Robot Ltd http://www.giantrobot.co.nz/ From david@madole.net Mon Nov 17 07:15:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 77C72238B7; Mon, 17 Nov 2003 07:15:29 +0200 (EET) Received: from omdev.com (dhcp-209-54-72-175.ct.dsl.ntplx.com [209.54.72.175]) by danu.procontrol.fi (Postfix) with ESMTP id 589422385D for ; Mon, 17 Nov 2003 07:14:57 +0200 (EET) Received: from [192.168.231.227] (helo=DAVID) by omdev.com with smtp (Exim 4.20) id 1ALbiw-000B7L-GU; Mon, 17 Nov 2003 00:14:54 -0500 Message-ID: <000901c3acc9$b7b9b1b0$e3e7a8c0@DAVID> From: "David S. Madole" To: References: <0E45EC01-18BA-11D8-8CBA-000A957DCC26@giantrobot.co.nz> Subject: Re: [Dovecot] MySQL patch + Debian Date: Mon, 17 Nov 2003 00:14:46 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 05:15:29 -0000 X-UID: 1868 Status: O > Problem is that dovecot-auth says "Unknown userdb type 'mysql'" and an > ldd of /src/auth/dovecot-auth shows no libmysqlclient10: > Anyone know what I'm missing? Don't know for sure what you're missing, but did you include -DPASSDB_MYSQL -DUSERDB_MYSQL when building? If it helps, I use the following when building mine and it works fine: AUTH_CFLAGS="-I/usr/local/include/mysql -DPASSDB_MYSQL -DUSERDB_MYSQL" \ AUTH_LIBS="-L/usr/local/lib/mysql -lmysqlclient" \ \ ./configure \ --prefix= \ --disable-ipv6 \ --with-ssldir=/etc \ --with-storages=maildir \ --without-passwd \ --without-passwd-file \ --without-static \ --without-pam \ \ && make From james@giantrobot.co.nz Mon Nov 17 07:48:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3317F23866; Mon, 17 Nov 2003 07:48:46 +0200 (EET) Received: from mechamail.giantrobot.co.nz (unknown [219.88.241.211]) by danu.procontrol.fi (Postfix) with ESMTP id 1799A2385D for ; Mon, 17 Nov 2003 07:48:14 +0200 (EET) Received: from orac.giantrobot.co.nz ([210.54.175.118] helo=giantrobot.co.nz) by mechamail.giantrobot.co.nz with asmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.14) id 1ALc9p-0002bH-4w; Mon, 17 Nov 2003 18:42:41 +1300 Date: Mon, 17 Nov 2003 18:48:08 +1300 Subject: Re: [Dovecot] MySQL patch + Debian Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) To: "David S. Madole" From: James Tyson In-Reply-To: <000901c3acc9$b7b9b1b0$e3e7a8c0@DAVID> Message-Id: <9EE37AC4-18C1-11D8-8CBA-000A957DCC26@giantrobot.co.nz> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.552) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 05:48:46 -0000 X-UID: 1869 Status: O On Monday, Nov 17, 2003, at 18:14 Pacific/Auckland, David S. Madole wrote: >> Problem is that dovecot-auth says "Unknown userdb type 'mysql'" and an >> ldd of /src/auth/dovecot-auth shows no libmysqlclient10: >> Anyone know what I'm missing? > > Don't know for sure what you're missing, but did you > include -DPASSDB_MYSQL -DUSERDB_MYSQL when building? > Now I feel stupid! Thanks! --- James Tyson Director, Giant Robot Ltd http://www.giantrobot.co.nz/ From maikel@ladot.com Mon Nov 17 09:38:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3EB2123866; Mon, 17 Nov 2003 09:38:33 +0200 (EET) Received: from amsfep13-int.chello.nl (amsfep13-int.chello.nl [213.46.243.24]) by danu.procontrol.fi (Postfix) with ESMTP id DCBBF2385D for ; Mon, 17 Nov 2003 09:37:59 +0200 (EET) Received: from myst.dohd.org ([62.195.154.30]) by amsfep13-int.chello.nl (InterMail vM.5.01.05.17 201-253-122-126-117-20021021) with ESMTP id <20031117073757.HAFF12589.amsfep13-int.chello.nl@myst.dohd.org>; Mon, 17 Nov 2003 08:37:57 +0100 Received: from [172.31.5.49] (pool-5.ladot.com [217.22.64.98]) (authenticated bits=0) by myst.dohd.org (8.12.9/8.12.6) with ESMTP id hAH7bShr016278; Mon, 17 Nov 2003 08:37:33 +0100 (CET) (envelope-from maikel@ladot.com) In-Reply-To: <1068998201.24450.12.camel@hurina> References: <1068998201.24450.12.camel@hurina> Mime-Version: 1.0 (Apple Message framework v606) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] Problem with DIGEST-MD5 authentication and plainte xt passwords Date: Mon, 17 Nov 2003 08:37:28 +0100 To: Timo Sirainen X-Mailer: Apple Mail (2.606) X-Spam-Status: No, hits=-3.4 required=5.0 tests=IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES,SPAM_PHRASE_01_02, USER_AGENT_APPLEMAIL version=2.43 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 07:38:33 -0000 X-UID: 1870 Status: O Content-Length: 1576 For what it's worth: We use postgres userlookups, and use an older version of dovecot (an old cvs version of around 0.99.9.1), and we DO use digest-md5 password encryption in the database and realms. It seems to work flawlessly in our situation, I used kmail, evolution, apple-mail, entourage, outlook, outlook-express and mutt. Have there been changes in the digest-md5 code since 0.99.9.1 ? Kind regards, Maikel Verheijen Ladot Nederland BV. On Nov 16, 2003, at 4:56 PM, Timo Sirainen wrote: > On Wed, 2003-11-12 at 03:09, Matthew Reimer wrote: >> I wasn't able to get DIGEST-MD5 authentication working with passwords >> stored as plaintext until I tweaked password_generate() to make it not > >> use the domain portion of user@domain.com as the realm. Both evolution > >> and kmail send the email address as the username with no realm; when >> dovecot tries to convert the username to user + realm, the hash is >> different and so DIGEST-MD5 authentication fails. Having >> password_generate() hash user@domain.com::password instead of >> user:domain.com:password fixes it. I need this to work because I need > to >> support all of PLAIN, CRAM-MD5, and DIGEST-MD5 at the same time. >> >> Timo, do you think this is a proper fix, or are kmail and evolution > broken? > > Well .. Looks like most clients don't actually use realms, but I rather > wouldn't completely drop support for them which your change would do. > > Correct fix would be to separate realm and "@domain" handling in code, > that should work with both cases. I'll see if I can get that done. > From tomi.hakala@clinet.fi Mon Nov 17 14:50:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 94537238A1; Mon, 17 Nov 2003 14:50:55 +0200 (EET) Received: from smtp2.song.fi (smtp2.song.fi [194.100.2.122]) by danu.procontrol.fi (Postfix) with ESMTP id 3400523841 for ; Mon, 17 Nov 2003 14:50:23 +0200 (EET) Received: from smtp2 (localhost [127.0.0.1]) by virusscanner.smtp2.song.fi (Postfix) with ESMTP id D294415A41 for ; Mon, 17 Nov 2003 14:50:22 +0200 (EET) Received: from localhost ([127.0.0.1]) by smtp2.song.fi (MailMonitor for SMTP v1.2.2 ) ; Mon, 17 Nov 2003 14:50:22 +0200 (EET) Received: from endeavour.fi.sn.net (endeavour.fi.sn.net [62.236.35.231]) by smtp2.song.fi (Postfix) with ESMTP id 8859315B54 for ; Mon, 17 Nov 2003 14:50:22 +0200 (EET) From: Tomi Hakala To: dovecot@procontrol.fi Content-Type: text/plain Organization: Message-Id: <1069073422.14049.66.camel@endeavour> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 17 Nov 2003 14:50:22 +0200 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Corrupted index files X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 12:50:55 -0000 X-UID: 1871 Status: O Content-Length: 1791 Hi, I'm playing with Dovecot in a lab environment and got it in state where it crashes on every incoming connection. I moved mail spool from ext2 file system to a ReiserFS on a another disk, mount point changed from /var/vmail to /spool/vmail. After that I managed to open mailbox and I moved about 2000 messages from INBOX to a subfolder. Then I tried to open mailbox with POP3 and it didn't succeed, from that point pop3d and imapd died every time I logged in until I removed all index files by hand. This is what I have in logs. imap-login: Nov 17 13:30:53 Info: Login: tomi.hakala@xx.fi [xx.xx.xx.xx] pop3-login: Nov 17 13:32:04 Info: Login: tomi.hakala@xx.fi [xx.xx.xx.xx] pop3(tomi.hakala@xx.fi): Nov 17 13:32:04 Error: Corrupted index file /spool/vmail/xx.fi/tomi.hakala@xx.fi/Maildir/.INBOX/.imap.index: Sequence 1848 not found from binary tree (5398 msgs says header) pop3-login: Nov 17 13:32:12 Info: Login: tomi.hakala@xx.fi [xx.xx.xx.xx] pop3(tomi.hakala@xx.fi): Nov 17 13:32:21 Error: Couldn't lock created modify log file /spool/vmail/xx.fi/tomi.hakala@xx.fi/Maildir/.INBOX/.imap.index.log imap(tomi.hakala@xx.fi): Nov 17 14:09:32 Error: IndexID mismatch for modify log file /spool/vmail/xx.fi/tomi.hakala@xx.fi/Maildir/.INBOX/.imap.index.log imap(tomi.hakala@xx.fi): Nov 17 14:09:33 Panic: file mail-tree-redblack.c: line 187 (rb_left_rotate): assertion failed: (node[x].right != RBNULL) dovecot: Nov 17 14:09:33 Error: child 19984 (imap) killed with signal 6 imap-login: Nov 17 14:27:24 Info: Login: tomi.hakala@xx.fi [xx.xx.xx.xx] imap(tomi.hakala@xx.fi): Nov 17 14:27:24 Panic: file mail-tree-redblack.c: line 232 (rb_right_rotate): assertion failed: (node[y].left != RBNULL) dovecot: Nov 17 14:27:24 Error: child 10478 (imap) killed with signal 6 -- Tomi Hakala From miquels@cistron.net Mon Nov 17 19:08:21 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A5473238A1; Mon, 17 Nov 2003 19:08:21 +0200 (EET) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by danu.procontrol.fi (Postfix) with ESMTP id C72AC2385D for ; Mon, 17 Nov 2003 19:07:47 +0200 (EET) Received: from traveler.cistron-office.nl ([62.216.29.67] helo=traveler) by smtp.cistron-office.nl with esmtp (Exim 3.35 #1 (Debian)) id 1ALmqi-00058g-00; Mon, 17 Nov 2003 18:07:40 +0100 Date: Mon, 17 Nov 2003 18:07:40 +0100 From: Miquel van Smoorenburg To: Timo Sirainen Subject: Re: [Dovecot] Children, HasChildren Message-ID: <20031117170740.GE18005@traveler.cistron.net> References: <20031113144200.GE4476@traveler.cistron.net> <1068998365.24437.17.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1068998365.24437.17.camel@hurina> (from tss@iki.fi on Sun, Nov 16, 2003 at 16:59:26 +0100) X-Mailer: Balsa 2.0.15 Lines: 13 cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 17:08:21 -0000 X-UID: 1872 Status: O On 2003.11.16 16:59, Timo Sirainen wrote: > On Thu, 2003-11-13 at 16:42, Miquel van Smoorenburg wrote: > > If I list the IMAP hierarchy in mutt (debian, 1.5.4+20031024-1) it shows > > all my plain mailboxes as having subfolders - while none of them have. > > Children flags are more or less buggy.. I'll see if I can get them at > least bit less buggy for 0.99.10.3.. CVS version would have them working > correctly. Yes but - it still uses \Children and \NoChildren instead of \HasChildren and \HasNoChildren as the RFC (3348) says. Mike. From tss@iki.fi Mon Nov 17 20:04:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 955A323841; Mon, 17 Nov 2003 20:04:32 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 46457238A1 for ; Mon, 17 Nov 2003 20:04:00 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 0FE345C5D267; Mon, 17 Nov 2003 20:04:00 +0200 (EET) Subject: Re: [Dovecot] Children, HasChildren From: Timo Sirainen To: Miquel van Smoorenburg In-Reply-To: <20031117170740.GE18005@traveler.cistron.net> References: <20031113144200.GE4476@traveler.cistron.net> <1068998365.24437.17.camel@hurina> <20031117170740.GE18005@traveler.cistron.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-dScpVJpBngfLHnaMPR6g" Message-Id: <1069092239.24455.82.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 17 Nov 2003 20:04:00 +0200 cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 18:04:32 -0000 X-UID: 1873 Status: O Content-Length: 1126 --=-dScpVJpBngfLHnaMPR6g Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2003-11-17 at 19:07, Miquel van Smoorenburg wrote: > On 2003.11.16 16:59, Timo Sirainen wrote: > > On Thu, 2003-11-13 at 16:42, Miquel van Smoorenburg wrote: > > > If I list the IMAP hierarchy in mutt (debian, 1.5.4+20031024-1) it sh= ows > > > all my plain mailboxes as having subfolders - while none of them have= . > >=20 > > Children flags are more or less buggy.. I'll see if I can get them at > > least bit less buggy for 0.99.10.3.. CVS version would have them workin= g > > correctly. >=20 > Yes but - it still uses \Children and \NoChildren instead of > \HasChildren and \HasNoChildren as the RFC (3348) says. Oh .. How did I get that wrong.. :) --=-dScpVJpBngfLHnaMPR6g Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/uQ2PyUhSUUBViskRAhR7AJ9Qfd6oK8UeYgR97KIjWsqfXcGqfwCeIYt5 GButE5RZZ6JcFkMze3b9m8E= =6Z5p -----END PGP SIGNATURE----- --=-dScpVJpBngfLHnaMPR6g-- From esj@harvee.org Mon Nov 17 22:59:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8F68B23866; Mon, 17 Nov 2003 22:59:03 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 60DB223841 for ; Mon, 17 Nov 2003 22:58:30 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id hAHKwQ2x016022 for ; Mon, 17 Nov 2003 15:58:27 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Mon, 17 Nov 2003 15:58:25 -0500 Message-ID: <3FB935E6.7000701@harvee.org> Date: Mon, 17 Nov 2003 15:56:06 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 Cc: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released References: <1068490809.2794.7.camel@hurina> <20031110221417.GA11416@iridium.mv.net> <1068503071.2802.27.camel@hurina> In-Reply-To: <1068503071.2802.27.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:031117:dovecot@procontrol.fi:30be4e4fe0b8f5a7 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 20:59:03 -0000 X-UID: 1874 Status: O Content-Length: 1149 bit late on trying out 99.10.2. Mailboxes are definitely working better with mbox format. I'm still seeing 15 to 30 seconds of 40% CPU utilization whenever I access the inbox (1400+ messages). I'm seeing similar magnitude but shorter duration hits of CPU utilization whenever I access any other mailbox. Utilization seems to go down a little bit once the indices have been built (i.e. after the first time) but the lag is noticeable. in other words, performance is better than UW. (woo hoo!). Very early on the testing I have the server vanish on me at one point but since I was lazy and use the binary rh8 RPM, I need to do little investigation to find out if or where any log might be. I haven't dared try mixed mbox/maildir mostly because of lack of time to a) research the right way to do it and b) clean up the mess if it dies. Converting over 100 percent to maildir has a similar barrier. I will get to it when the pain is bad enough. Fortunately 99.10.2 may have sufficient analgesic qualities for the short-term. ---eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From james@giantrobot.co.nz Tue Nov 18 00:03:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 289DB238B7; Tue, 18 Nov 2003 00:03:57 +0200 (EET) Received: from mechamail.giantrobot.co.nz (unknown [219.88.241.211]) by danu.procontrol.fi (Postfix) with ESMTP id 6FD2723866 for ; Tue, 18 Nov 2003 00:03:21 +0200 (EET) Received: from orac.giantrobot.co.nz ([210.54.175.118] helo=giantrobot.co.nz) by mechamail.giantrobot.co.nz with asmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.14) id 1ALrNS-0008TZ-Q9 for dovecot@procontrol.fi; Tue, 18 Nov 2003 10:57:47 +1300 Date: Tue, 18 Nov 2003 11:03:08 +1300 Mime-Version: 1.0 (Apple Message framework v552) Content-Type: text/plain; charset=US-ASCII; format=flowed From: James Tyson To: dovecot@procontrol.fi Content-Transfer-Encoding: 7bit Message-Id: X-Mailer: Apple Mail (2.552) Subject: [Dovecot] SSL and certificate authorities. X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 22:03:57 -0000 X-UID: 1875 Status: O Hi all. Usually for in-house use and SSL I would just generate a self-signed certificate because most clients either ignore it or only ask the first time the account is configured. In terms of offering the service to our customers is there any value of getting someone like thawte or instantssl to sign a certificate for imaps/pop3s/smtp? Also, is there a configuration directive for dovecot to add the issuers ca bundle similar to apache's SSLCACertificateFile? And thanks for writing such a kick-arse imap server. It blows courier out of the water! --- James Tyson Director, Giant Robot Ltd http://www.giantrobot.co.nz/ From mreimer@vpop.net Tue Nov 18 00:45:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 018B2238B7; Tue, 18 Nov 2003 00:45:57 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 7789723866 for ; Tue, 18 Nov 2003 00:45:22 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id AA2463A6625 for ; Mon, 17 Nov 2003 14:45:16 -0800 (PST) Message-ID: <3FB94FFF.30203@vpop.net> Date: Mon, 17 Nov 2003 16:47:27 -0600 From: Matthew Reimer Organization: VPOP Technologies, Inc. User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] IMAP subscribe/unsubscribe broken in 0.99.10.2 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 22:45:58 -0000 X-UID: 1876 Status: O IMAP subscribe/unsubscribe is broken in 0.99.10.2 (and earlier releases), specifically subsfile_set_subscribed(), where the logic is all wrong. I tried just copying over the latest subscription-file.c but it has dependencies on some file locking/dotlocking stuff that 0.99.10.2 doesn't have. Timo, would it be possible to incorporate the latest subscription-file.c into 0.99.10.3 (whenever that will be)? Matt From mreimer@vpop.net Tue Nov 18 00:52:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8ADD7238C5; Tue, 18 Nov 2003 00:52:22 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id C74D623866 for ; Tue, 18 Nov 2003 00:51:49 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 616383A689D; Mon, 17 Nov 2003 14:51:46 -0800 (PST) Message-ID: <3FB95185.7020100@vpop.net> Date: Mon, 17 Nov 2003 16:53:57 -0600 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Problem with DIGEST-MD5 authentication and plainte xt passwords References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 22:52:22 -0000 X-UID: 1877 Status: O Maikel Verheijen wrote: > For what it's worth: > > We use postgres userlookups, and use an older version of dovecot (an old > cvs version of around 0.99.9.1), and we DO use digest-md5 password > encryption in the database and realms. It seems to work flawlessly in > our situation, I used kmail, evolution, apple-mail, entourage, outlook, > outlook-express and mutt. > > > Have there been changes in the digest-md5 code since 0.99.9.1 ? > > > Kind regards, > > > Maikel Verheijen > Ladot Nederland BV. The problem is not with passwords that are stored in the db in digest-md5 format (i.e., as an md5 hash of user:realm:password), but with dovecot's password_generate() that takes the username and password and hashes it on the fly. Matt From mreimer@vpop.net Tue Nov 18 00:54:42 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 18833238C8; Tue, 18 Nov 2003 00:54:42 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id E28D4238C5 for ; Tue, 18 Nov 2003 00:54:08 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 84B163A7166; Mon, 17 Nov 2003 14:54:01 -0800 (PST) Message-ID: <3FB9520C.4070605@vpop.net> Date: Mon, 17 Nov 2003 16:56:12 -0600 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Problem with DIGEST-MD5 authentication and plaintext passwords References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2003 22:54:42 -0000 X-UID: 1878 Status: O Content-Length: 1157 Timo Sirainen wrote: > On Wed, 2003-11-12 at 03:09, Matthew Reimer wrote: > >>I wasn't able to get DIGEST-MD5 authentication working with passwords >>stored as plaintext until I tweaked password_generate() to make it not >>use the domain portion of user@domain.com as the realm. Both evolution >>and kmail send the email address as the username with no realm; when >>dovecot tries to convert the username to user + realm, the hash is >>different and so DIGEST-MD5 authentication fails. Having >>password_generate() hash user@domain.com::password instead of >>user:domain.com:password fixes it. I need this to work because I need to >>support all of PLAIN, CRAM-MD5, and DIGEST-MD5 at the same time. >> >>Timo, do you think this is a proper fix, or are kmail and evolution broken? > > > Well .. Looks like most clients don't actually use realms, but I rather > wouldn't completely drop support for them which your change would do. > > Correct fix would be to separate realm and "@domain" handling in code, > that should work with both cases. I'll see if I can get that done. Thanks Timo. Send me a patch when you're done and I'll test it. Matt From zach.bagnall@bulletinwireless.com Tue Nov 18 04:15:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 86C0F238C5; Tue, 18 Nov 2003 04:15:46 +0200 (EET) Received: from hawk.bulletinwireless.net (ns1.jungledrum.co.nz [210.54.149.34]) by danu.procontrol.fi (Postfix) with ESMTP id 9074D238B7 for ; Tue, 18 Nov 2003 04:15:08 +0200 (EET) Received: from localhost (localhost.localdomain [127.0.0.1]) by hawk.bulletinwireless.net (Postfix) with ESMTP id 99BF165DA for ; Tue, 18 Nov 2003 15:15:01 +1300 (NZDT) Received: from hawk.bulletinwireless.net ([127.0.0.1]) by localhost (hawk [127.0.0.1:10024]) (amavisd-new) with LMTP id 09176-01-4 for ; Tue, 18 Nov 2003 15:14:59 +1300 (NZDT) Received: from piranha (piranha.intra.jungledrum.co.nz [192.168.1.13]) by hawk.bulletinwireless.net (Postfix) with ESMTP id B846365C9 for ; Tue, 18 Nov 2003 15:14:59 +1300 (NZDT) Date: Tue, 18 Nov 2003 15:14:57 +1300 From: Zach Bagnall To: dovecot@procontrol.fi Subject: Re: [Dovecot] SSL and certificate authorities. Message-Id: <20031118151457.34ab0eaa.zach.bagnall@bulletinwireless.com> In-Reply-To: References: Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.9.6claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Tue__18_Nov_2003_15_14_57_+1300_YLGcslAeY1VuGcxq" X-Virus-Scanned: by amavisd-new X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 02:15:47 -0000 X-UID: 1879 Status: O --Signature=_Tue__18_Nov_2003_15_14_57_+1300_YLGcslAeY1VuGcxq Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit IIRC Outlook will complain every time if the cert isn't signed by one of Windows' recognised CAs. All the *nix MUAs I've tried have been fine after the first attempt. Zach. On Tue, 18 Nov 2003 11:03:08 +1300, James Tyson wrote: > In terms of offering the service to our customers is there any value > of getting someone like thawte or instantssl to sign a certificate for > imaps/pop3s/smtp? --Signature=_Tue__18_Nov_2003_15_14_57_+1300_YLGcslAeY1VuGcxq Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/uYCj4jDFYT+aqaIRAoa5AJ9IfJLmMQCKm5YVAe8f4p8So81lOACffjhL CNvgqHUkA4sZcV/XC/HgRtE= =6hPF -----END PGP SIGNATURE----- --Signature=_Tue__18_Nov_2003_15_14_57_+1300_YLGcslAeY1VuGcxq-- From zach.bagnall@bulletinwireless.com Tue Nov 18 04:59:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DA78D238C8; Tue, 18 Nov 2003 04:59:03 +0200 (EET) Received: from hawk.bulletinwireless.net (ns1.jungledrum.co.nz [210.54.149.34]) by danu.procontrol.fi (Postfix) with ESMTP id 378C1238C5 for ; Tue, 18 Nov 2003 04:58:30 +0200 (EET) Received: from localhost (localhost.localdomain [127.0.0.1]) by hawk.bulletinwireless.net (Postfix) with ESMTP id 59FB765EA for ; Tue, 18 Nov 2003 15:58:25 +1300 (NZDT) Received: from hawk.bulletinwireless.net ([127.0.0.1]) by localhost (hawk [127.0.0.1:10024]) (amavisd-new) with LMTP id 13816-01-21 for ; Tue, 18 Nov 2003 15:58:24 +1300 (NZDT) Received: from piranha (piranha.intra.jungledrum.co.nz [192.168.1.13]) by hawk.bulletinwireless.net (Postfix) with ESMTP id EB65865BC for ; Tue, 18 Nov 2003 15:58:23 +1300 (NZDT) Date: Tue, 18 Nov 2003 15:58:19 +1300 From: Zach Bagnall To: dovecot@procontrol.fi Subject: Re: [Dovecot] SSL and certificate authorities. Message-Id: <20031118155819.0bd8dc6c.zach.bagnall@bulletinwireless.com> In-Reply-To: References: Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.9.6claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Tue__18_Nov_2003_15_58_19_+1300_mr_kdPs+B3aKeMDX" X-Virus-Scanned: by amavisd-new X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 02:59:04 -0000 X-UID: 1880 Status: O Content-Length: 4505 --Signature=_Tue__18_Nov_2003_15_58_19_+1300_mr_kdPs+B3aKeMDX Content-Type: multipart/mixed; boundary="Multipart=_Tue__18_Nov_2003_15_58_19_+1300_umFwIuJiBbuWC/8R" --Multipart=_Tue__18_Nov_2003_15_58_19_+1300_umFwIuJiBbuWC/8R Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit I don't see it in the source. Try the patch attached. Dovecot seems to run OK, but it hasn't been tested with a real key/cert/CA setup. On Tue, 18 Nov 2003 11:03:08 +1300, James Tyson wrote: > Also, is there a configuration directive for dovecot to add the > issuers ca bundle similar to apache's SSLCACertificateFile? --Multipart=_Tue__18_Nov_2003_15_58_19_+1300_umFwIuJiBbuWC/8R Content-Type: text/x-diff; name="dovecot-0.99.10.2-ca.diff" Content-Disposition: attachment; filename="dovecot-0.99.10.2-ca.diff" Content-Transfer-Encoding: 7bit diff -ur dovecot-0.99.10.2/src/login-common/ssl-proxy-openssl.c dovecot-0.99.10.2-ca/src/login-common/ssl-proxy-openssl.c --- dovecot-0.99.10.2/src/login-common/ssl-proxy-openssl.c 2003-06-18 13:35:55.000000000 +1200 +++ dovecot-0.99.10.2-ca/src/login-common/ssl-proxy-openssl.c 2003-11-18 15:14:03.000000000 +1300 @@ -403,9 +403,10 @@ void ssl_proxy_init(void) { - const char *certfile, *keyfile, *paramfile; + const char *cafile, *certfile, *keyfile, *paramfile; char buf; + cafile = getenv("SSL_CA_FILE"); certfile = getenv("SSL_CERT_FILE"); keyfile = getenv("SSL_KEY_FILE"); paramfile = getenv("SSL_PARAM_FILE"); @@ -428,6 +429,13 @@ SSL_CIPHER_LIST, ssl_last_error()); } + if(cafile) { + if (SSL_CTX_load_verify_locations(ssl_ctx, cafile, NULL) != 1) { + i_fatal("Can't load CA file %s: %s", + certfile, ssl_last_error()); + } + } + if (SSL_CTX_use_certificate_chain_file(ssl_ctx, certfile) != 1) { i_fatal("Can't load certificate file %s: %s", certfile, ssl_last_error()); diff -ur dovecot-0.99.10.2/src/master/login-process.c dovecot-0.99.10.2-ca/src/master/login-process.c --- dovecot-0.99.10.2/src/master/login-process.c 2003-05-27 03:27:13.000000000 +1200 +++ dovecot-0.99.10.2-ca/src/master/login-process.c 2003-11-18 15:07:33.000000000 +1300 @@ -396,6 +396,10 @@ env_put("DOVECOT_MASTER=1"); if (!set->ssl_disable) { + if(set->ssl_ca_file) { + env_put(t_strconcat("SSL_CA_FILE=", + set->ssl_ca_file, NULL)); + } env_put(t_strconcat("SSL_CERT_FILE=", set->ssl_cert_file, NULL)); env_put(t_strconcat("SSL_KEY_FILE=", set->ssl_key_file, NULL)); diff -ur dovecot-0.99.10.2/src/master/master-settings.c dovecot-0.99.10.2-ca/src/master/master-settings.c --- dovecot-0.99.10.2/src/master/master-settings.c 2003-11-11 11:19:49.000000000 +1300 +++ dovecot-0.99.10.2-ca/src/master/master-settings.c 2003-11-18 15:13:32.000000000 +1300 @@ -30,6 +30,7 @@ DEF(SET_STR, pop3s_listen), DEF(SET_BOOL, ssl_disable), + DEF(SET_STR, ssl_ca_file), DEF(SET_STR, ssl_cert_file), DEF(SET_STR, ssl_key_file), DEF(SET_STR, ssl_parameters_file), @@ -144,6 +145,7 @@ MEMBER(pop3s_listen) NULL, MEMBER(ssl_disable) FALSE, + MEMBER(ssl_ca_file) NULL, MEMBER(ssl_cert_file) SSLDIR"/certs/dovecot.pem", MEMBER(ssl_key_file) SSLDIR"/private/dovecot.pem", MEMBER(ssl_parameters_file) "ssl-parameters.dat", @@ -382,6 +384,11 @@ #ifdef HAVE_SSL if (!set->ssl_disable) { + if (set->ssl_ca_file && access(set->ssl_ca_file, R_OK) < 0) { + i_fatal("Can't use SSL CA file %s: %m", + set->ssl_ca_file); + } + if (access(set->ssl_cert_file, R_OK) < 0) { i_fatal("Can't use SSL certificate %s: %m", set->ssl_cert_file); diff -ur dovecot-0.99.10.2/src/master/master-settings.h dovecot-0.99.10.2-ca/src/master/master-settings.h --- dovecot-0.99.10.2/src/master/master-settings.h 2003-08-25 01:11:56.000000000 +1200 +++ dovecot-0.99.10.2-ca/src/master/master-settings.h 2003-11-18 14:56:09.000000000 +1300 @@ -16,6 +16,7 @@ const char *pop3s_listen; int ssl_disable; + const char *ssl_ca_file; const char *ssl_cert_file; const char *ssl_key_file; const char *ssl_parameters_file; --Multipart=_Tue__18_Nov_2003_15_58_19_+1300_umFwIuJiBbuWC/8R-- --Signature=_Tue__18_Nov_2003_15_58_19_+1300_mr_kdPs+B3aKeMDX Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/uYrP4jDFYT+aqaIRAm38AKDi+s/cEncbgLmuG0kHHbHEuUSKjACfWEeU kHRO8fsJC9evHF88nxN+x1M= =tLHN -----END PGP SIGNATURE----- --Signature=_Tue__18_Nov_2003_15_58_19_+1300_mr_kdPs+B3aKeMDX-- From zach.bagnall@bulletinwireless.com Tue Nov 18 05:06:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C6BE4238C8; Tue, 18 Nov 2003 05:06:19 +0200 (EET) Received: from hawk.bulletinwireless.net (ns1.jungledrum.co.nz [210.54.149.34]) by danu.procontrol.fi (Postfix) with ESMTP id 48217238C5 for ; Tue, 18 Nov 2003 05:05:46 +0200 (EET) Received: from localhost (localhost.localdomain [127.0.0.1]) by hawk.bulletinwireless.net (Postfix) with ESMTP id 2E5E565EF for ; Tue, 18 Nov 2003 16:05:43 +1300 (NZDT) Received: from hawk.bulletinwireless.net ([127.0.0.1]) by localhost (hawk [127.0.0.1:10024]) (amavisd-new) with LMTP id 16222-01-5 for ; Tue, 18 Nov 2003 16:05:41 +1300 (NZDT) Received: from piranha (piranha.intra.jungledrum.co.nz [192.168.1.13]) by hawk.bulletinwireless.net (Postfix) with ESMTP id A787265D0 for ; Tue, 18 Nov 2003 16:05:41 +1300 (NZDT) Date: Tue, 18 Nov 2003 16:05:40 +1300 From: Zach Bagnall To: dovecot@procontrol.fi Subject: Re: [Dovecot] SSL and certificate authorities. Message-Id: <20031118160540.28388dbf.zach.bagnall@bulletinwireless.com> In-Reply-To: <20031118155819.0bd8dc6c.zach.bagnall@bulletinwireless.com> References: <20031118155819.0bd8dc6c.zach.bagnall@bulletinwireless.com> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.9.6claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Tue__18_Nov_2003_16_05_40_+1300__ZL1Mkl2pOBBmGc." X-Virus-Scanned: by amavisd-new X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 03:06:19 -0000 X-UID: 1881 Status: O Content-Length: 4808 --Signature=_Tue__18_Nov_2003_16_05_40_+1300__ZL1Mkl2pOBBmGc. Content-Type: multipart/mixed; boundary="Multipart=_Tue__18_Nov_2003_16_05_40_+1300_CNgg8c=qHV1O+XB2" --Multipart=_Tue__18_Nov_2003_16_05_40_+1300_CNgg8c=qHV1O+XB2 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit D'oh. Missed a variable name. Correct version attached. On Tue, 18 Nov 2003 15:58:19 +1300, Zach Bagnall wrote: > I don't see it in the source. Try the patch attached. Dovecot seems to > run OK, but it hasn't been tested with a real key/cert/CA setup. > > On Tue, 18 Nov 2003 11:03:08 +1300, James Tyson > wrote: > > Also, is there a configuration directive for dovecot to add the > > issuers ca bundle similar to apache's SSLCACertificateFile? > -- Services & Support, Bulletin Wireless (NZ) http://www.bulletinwireless.com/ Ph +64 9 307 1764 Mob +64 21 115 0269 Fax +64 9 307 1148 --Multipart=_Tue__18_Nov_2003_16_05_40_+1300_CNgg8c=qHV1O+XB2 Content-Type: text/x-diff; name="dovecot-0.99.10.2-ca.diff" Content-Disposition: attachment; filename="dovecot-0.99.10.2-ca.diff" Content-Transfer-Encoding: 7bit diff -ur dovecot-0.99.10.2/src/login-common/ssl-proxy-openssl.c dovecot-0.99.10.2-ca/src/login-common/ssl-proxy-openssl.c --- dovecot-0.99.10.2/src/login-common/ssl-proxy-openssl.c 2003-06-18 13:35:55.000000000 +1200 +++ dovecot-0.99.10.2-ca/src/login-common/ssl-proxy-openssl.c 2003-11-18 15:14:03.000000000 +1300 @@ -403,9 +403,10 @@ void ssl_proxy_init(void) { - const char *certfile, *keyfile, *paramfile; + const char *cafile, *certfile, *keyfile, *paramfile; char buf; + cafile = getenv("SSL_CA_FILE"); certfile = getenv("SSL_CERT_FILE"); keyfile = getenv("SSL_KEY_FILE"); paramfile = getenv("SSL_PARAM_FILE"); @@ -428,6 +429,13 @@ SSL_CIPHER_LIST, ssl_last_error()); } + if(cafile) { + if (SSL_CTX_load_verify_locations(ssl_ctx, cafile, NULL) != 1) { + i_fatal("Can't load CA file %s: %s", + cafile, ssl_last_error()); + } + } + if (SSL_CTX_use_certificate_chain_file(ssl_ctx, certfile) != 1) { i_fatal("Can't load certificate file %s: %s", certfile, ssl_last_error()); diff -ur dovecot-0.99.10.2/src/master/login-process.c dovecot-0.99.10.2-ca/src/master/login-process.c --- dovecot-0.99.10.2/src/master/login-process.c 2003-05-27 03:27:13.000000000 +1200 +++ dovecot-0.99.10.2-ca/src/master/login-process.c 2003-11-18 15:07:33.000000000 +1300 @@ -396,6 +396,10 @@ env_put("DOVECOT_MASTER=1"); if (!set->ssl_disable) { + if(set->ssl_ca_file) { + env_put(t_strconcat("SSL_CA_FILE=", + set->ssl_ca_file, NULL)); + } env_put(t_strconcat("SSL_CERT_FILE=", set->ssl_cert_file, NULL)); env_put(t_strconcat("SSL_KEY_FILE=", set->ssl_key_file, NULL)); diff -ur dovecot-0.99.10.2/src/master/master-settings.c dovecot-0.99.10.2-ca/src/master/master-settings.c --- dovecot-0.99.10.2/src/master/master-settings.c 2003-11-11 11:19:49.000000000 +1300 +++ dovecot-0.99.10.2-ca/src/master/master-settings.c 2003-11-18 15:13:32.000000000 +1300 @@ -30,6 +30,7 @@ DEF(SET_STR, pop3s_listen), DEF(SET_BOOL, ssl_disable), + DEF(SET_STR, ssl_ca_file), DEF(SET_STR, ssl_cert_file), DEF(SET_STR, ssl_key_file), DEF(SET_STR, ssl_parameters_file), @@ -144,6 +145,7 @@ MEMBER(pop3s_listen) NULL, MEMBER(ssl_disable) FALSE, + MEMBER(ssl_ca_file) NULL, MEMBER(ssl_cert_file) SSLDIR"/certs/dovecot.pem", MEMBER(ssl_key_file) SSLDIR"/private/dovecot.pem", MEMBER(ssl_parameters_file) "ssl-parameters.dat", @@ -382,6 +384,11 @@ #ifdef HAVE_SSL if (!set->ssl_disable) { + if (set->ssl_ca_file && access(set->ssl_ca_file, R_OK) < 0) { + i_fatal("Can't use SSL CA file %s: %m", + set->ssl_ca_file); + } + if (access(set->ssl_cert_file, R_OK) < 0) { i_fatal("Can't use SSL certificate %s: %m", set->ssl_cert_file); diff -ur dovecot-0.99.10.2/src/master/master-settings.h dovecot-0.99.10.2-ca/src/master/master-settings.h --- dovecot-0.99.10.2/src/master/master-settings.h 2003-08-25 01:11:56.000000000 +1200 +++ dovecot-0.99.10.2-ca/src/master/master-settings.h 2003-11-18 14:56:09.000000000 +1300 @@ -16,6 +16,7 @@ const char *pop3s_listen; int ssl_disable; + const char *ssl_ca_file; const char *ssl_cert_file; const char *ssl_key_file; const char *ssl_parameters_file; --Multipart=_Tue__18_Nov_2003_16_05_40_+1300_CNgg8c=qHV1O+XB2-- --Signature=_Tue__18_Nov_2003_16_05_40_+1300__ZL1Mkl2pOBBmGc. Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/uYyE4jDFYT+aqaIRAp6kAKDDccYXKTNFy60Wc3xxHwtjWBZuIQCfVZt3 Gcxx0pNIl53hwckVyYaiggA= =uXT7 -----END PGP SIGNATURE----- --Signature=_Tue__18_Nov_2003_16_05_40_+1300__ZL1Mkl2pOBBmGc.-- From maikel@ladot.com Tue Nov 18 09:20:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1C6B2238C9; Tue, 18 Nov 2003 09:20:16 +0200 (EET) Received: from amsfep13-int.chello.nl (amsfep13-int.chello.nl [213.46.243.24]) by danu.procontrol.fi (Postfix) with ESMTP id 108E3238C5 for ; Tue, 18 Nov 2003 09:19:41 +0200 (EET) Received: from myst.dohd.org ([62.195.154.30]) by amsfep13-int.chello.nl (InterMail vM.5.01.05.17 201-253-122-126-117-20021021) with ESMTP id <20031118071939.CTTG12589.amsfep13-int.chello.nl@myst.dohd.org>; Tue, 18 Nov 2003 08:19:39 +0100 Received: from [172.31.5.49] (pool-5.ladot.com [217.22.64.98]) (authenticated bits=0) by myst.dohd.org (8.12.9/8.12.6) with ESMTP id hAI7I8hs019122; Tue, 18 Nov 2003 08:19:15 +0100 (CET) (envelope-from maikel@ladot.com) In-Reply-To: <3FB95185.7020100@vpop.net> References: <3FB95185.7020100@vpop.net> Mime-Version: 1.0 (Apple Message framework v606) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <854EBB7A-1997-11D8-8C18-000A95C5F82C@ladot.com> Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] Problem with DIGEST-MD5 authentication and plainte xt passwords Date: Tue, 18 Nov 2003 08:19:17 +0100 To: Matthew Reimer X-Mailer: Apple Mail (2.606) X-Spam-Status: No, hits=-3.1 required=5.0 tests=IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES,SPAM_PHRASE_00_01, USER_AGENT_APPLEMAIL version=2.43 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 07:20:16 -0000 X-UID: 1882 Status: O Ow, I am sorry, you mean when you actually LOG IN to a machine with digest-md5? My apologies! Maikel. On Nov 17, 2003, at 11:53 PM, Matthew Reimer wrote: > Maikel Verheijen wrote: >> For what it's worth: >> We use postgres userlookups, and use an older version of dovecot (an >> old cvs version of around 0.99.9.1), and we DO use digest-md5 >> password encryption in the database and realms. It seems to work >> flawlessly in our situation, I used kmail, evolution, apple-mail, >> entourage, outlook, outlook-express and mutt. >> Have there been changes in the digest-md5 code since 0.99.9.1 ? >> Kind regards, >> Maikel Verheijen >> Ladot Nederland BV. > > The problem is not with passwords that are stored in the db in > digest-md5 format (i.e., as an md5 hash of user:realm:password), but > with dovecot's password_generate() that takes the username and > password and hashes it on the fly. > > Matt From kiwi@oav.net Tue Nov 18 11:17:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0B3A523866; Tue, 18 Nov 2003 11:17:54 +0200 (EET) Received: from kaneda.oav.net (kaneda.oav.net [195.20.105.154]) by danu.procontrol.fi (Postfix) with ESMTP id 3A7F823841 for ; Tue, 18 Nov 2003 11:17:20 +0200 (EET) Received: from [192.168.0.7] (kiwi.adsl.isdnet.net [195.154.177.33]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by kaneda.oav.net (Postfix) with ESMTP id 2E88715709; Tue, 18 Nov 2003 10:17:14 +0100 (CET) (envelope-from kiwi@oav.net) In-Reply-To: <20031118151457.34ab0eaa.zach.bagnall@bulletinwireless.com> References: <20031118151457.34ab0eaa.zach.bagnall@bulletinwireless.com> Mime-Version: 1.0 (Apple Message framework v606) Content-Type: text/plain; charset=ISO-8859-1; format=flowed Message-Id: Content-Transfer-Encoding: quoted-printable From: Xavier Beaudouin Subject: Re: [Dovecot] SSL and certificate authorities. Date: Tue, 18 Nov 2003 10:17:14 +0100 To: Zach Bagnall X-Mailer: Apple Mail (2.606) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 09:17:54 -0000 X-UID: 1883 Status: O Zach, Add your root certificate to windows root cas... See http://www.kazar.net/faq.html (mostly french, but screen short are=20= english). /Xavier Le 18 nov. 03, =E0 03:14, Zach Bagnall a =E9crit : > IIRC Outlook will complain every time if the cert isn't signed by one=20= > of > Windows' recognised CAs. All the *nix MUAs I've tried have been fine > after the first attempt. > > Zach. > > On Tue, 18 Nov 2003 11:03:08 +1300, James Tyson=20 > > wrote: >> In terms of offering the service to our customers is there any value >> of getting someone like thawte or instantssl to sign a certificate = for >> imaps/pop3s/smtp? From Clive.Jones+nospam+procontrol.fi@meridian.co.uk Tue Nov 18 13:25:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 411C823866; Tue, 18 Nov 2003 13:25:24 +0200 (EET) Received: from greenwich.meridian-audio.ltd.uk (greenwich.meridian-audio.ltd.uk [194.203.67.114]) by danu.procontrol.fi (Postfix) with ESMTP id 532A523841 for ; Tue, 18 Nov 2003 13:24:52 +0200 (EET) Received: from CLIVE (clive.uk.ma-int.com [10.76.18.1]) by greenwich.meridian-audio.ltd.uk (Postfix) with SMTP id 4D5BA2D1D for ; Tue, 18 Nov 2003 11:24:51 +0000 (GMT) Message-ID: <047001c3adc6$950f17b0$01124c0a@uk.maint.com> From: "Clive Jones" To: References: <0c9e01c3a2d0$60faeae0$01124c0a@uk.maint.com> <1068314769.9815.26.camel@hurina> Subject: Re: [Dovecot] pop3-login process leakage Date: Tue, 18 Nov 2003 11:24:51 -0000 Organization: Meridian Audio MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4927.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4927.1200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 11:25:24 -0000 X-UID: 1884 Status: O Timo, Thanks for your message. Unfortunately, dovecot was running on a live server with debugging disabled in the kernel. It was a while before I could reboot it into a different kernel. (-8 > Do this to one of the processes: > > gdb /usr/local/libexec/dovecot/pop3-login Attaching to program `/usr/local/libexec/dovecot/pop3-login', process 23957 Reading symbols from /usr/libexec/ld.so...done. Reading symbols from /usr/lib/libssl.so.6.0...done. Reading symbols from /usr/lib/libcrypto.so.8.0...done. Reading symbols from /usr/lib/libc.so.28.5...done. 0x40142733 in poll () > p clients->nodes_count $1 = 0 > p main_refcount $2 = 2 > p auth_reconnect $3 = 0 > p auth_waiting_handshake_count $4 = 0 What's the verdict? Regards, --Clive. From payton@repligen.com Tue Nov 18 18:34:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 37FC623866; Tue, 18 Nov 2003 18:34:53 +0200 (EET) Received: from mithrin.repligen.com (66.237.173.210.ptr.us.xo.net [66.237.173.210]) by danu.procontrol.fi (Postfix) with SMTP id 5217B23841 for ; Tue, 18 Nov 2003 18:34:18 +0200 (EET) Received: (qmail 16483 invoked by uid 500); 18 Nov 2003 16:36:02 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 18 Nov 2003 16:36:02 -0000 Date: Tue, 18 Nov 2003 11:36:02 -0500 (EST) From: Payton X-X-Sender: payton@localhost.localdomain To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] entourage + dovecot bug? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 16:34:53 -0000 X-UID: 1885 Status: O Content-Length: 1303 I have dovecot set up to run IMAP services without SSL (I have tested many other configurations as well, but this reproduces the problem the simplest). When attempting to connect to the imap server using Entourage for OS X on a mac, I receive the following error: Mail could not be received at this time. The server returned the following error . Dovecot reports a successful login and nothing else in the mail log. All other email clients I have tried (mutt, Mail.app) work fine with the IMAP server. I have also tried this on multiple clients with the same results. All this leads me to believe a bug exists in Entourage, however: I also have a Red Hat 7.3 server running qmail and dovecot in nearly the same manner (except that it is using dovecot 0.99.10 and shadow for password authentication, instead of dovecot 0.99.10.2 and ldap password authentication). Entourage (and all other clients) works just fine with this setup. I'm not certain if the problem lies in some tweak between 0.99.10 and 0.99.10.2 or if it is something with the red hat system itself, but I can't find anything. I am using dovecot 0.99.10.2 on a Red Hat 9 system using qmail 1.04 (netqmail) and checking with the latest version (update 10.1.5) of Entourage on Mac OS 10.2.8. Thanks for any help! -Payton From kai.vehmanen@wakkanet.fi Tue Nov 18 18:36:06 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 890AA238B7; Tue, 18 Nov 2003 18:36:06 +0200 (EET) Received: from ecabase.localdomain (cs78188205.pp.htv.fi [62.78.188.205]) by danu.procontrol.fi (Postfix) with ESMTP id D005B238C7 for ; Tue, 18 Nov 2003 18:35:06 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by ecabase.localdomain (8.11.6/8.11.6) with ESMTP id hAIGZ6s02810; Tue, 18 Nov 2003 18:35:06 +0200 Date: Tue, 18 Nov 2003 18:35:06 +0200 (EET) From: Kai Vehmanen X-X-Sender: kaiv@ecabase.localdomain To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] error msgs about missing ssl/tls support X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 16:36:06 -0000 X-UID: 1886 Status: O Content-Length: 1564 Hi, I've been just testing 0.99.10.2 and had a really hard time getting the new Dovecot to start properly. First I thought it was an error in my old dovecot.conf, but the actual problem turned out to be simply that Dovecot was compiled without SSL/TLS support (I hadn't noticed this), but dovecot.conf on the other hand specified SSL/TLS ports. The error messages might be a bit more informative in this case. Currently I only got this to my logs: --cut-- Nov 18 18:17:00 dovecot: Dovecot starting up Nov 18 18:17:01 imap-login: BUG: SSL initialization parameters not given while they should have been Nov 18 18:17:01 imap-login: BUG: SSL initialization parameters not given while they should have been Nov 18 18:17:01 pop3-login: BUG: SSL initialization parameters not given while they should have been Nov 18 18:17:01 imap-login: BUG: SSL initialization parameters not given while they should have been Nov 18 18:17:01 dovecot: Login process died too early - shutting down Nov 18 18:17:01 dovecot: child 18482 (login) returned error 89 Nov 18 18:17:01 dovecot: child 18481 (login) returned error 89 Nov 18 18:17:01 dovecot: child 18480 (login) returned error 89 Nov 18 18:17:01 dovecot: child 18479 (login) returned error 89 --cut-- ... and Dovecot would exit. Running Dovecot under gdb would just exit (even with -F), and segfault if ran under strace. So it took a while before I realized that configure had not even detected SSL/TLS... Oh well, not a big thing, but still something to keep in mind. -- http://www.eca.cx Audio software for Linux! From darren@3x3x3.org Wed Nov 19 00:52:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 46A1B23866; Wed, 19 Nov 2003 00:52:11 +0200 (EET) Received: from 3x3x3.org (dsl092-017-251.sfo4.dsl.speakeasy.net [66.92.17.251]) by danu.procontrol.fi (Postfix) with ESMTP id C4B5423841 for ; Wed, 19 Nov 2003 00:51:38 +0200 (EET) Received: (qmail 5233 invoked by uid 89); 18 Nov 2003 22:48:12 -0000 Received: from dsl092-182-061.sfo1.dsl.speakeasy.net (HELO 3x3x3.org) (darren@3x3x3.org@66.92.182.61) by 0 with AES256-SHA encrypted SMTP; 18 Nov 2003 22:48:12 -0000 Message-ID: <3FBAA26C.5060104@3x3x3.org> Date: Tue, 18 Nov 2003 14:51:24 -0800 From: darren david User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] run POP3S + IMAPS simultaneously? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 22:52:11 -0000 X-UID: 1887 Status: O a quick one: is it possible to run POP3S and IMAPS services through dovecot at the same time? would i just uncomment both "login = imap" and "login = pop3" in /etc/dovecot.conf? or can i only run one at a time? apologies if the answer is obvious, i'm just still trying to wrap my head around all of this. thanks, darren david From zach.bagnall@bulletinwireless.com Wed Nov 19 01:12:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CC660238B7; Wed, 19 Nov 2003 01:12:57 +0200 (EET) Received: from hawk.bulletinwireless.net (ns1.jungledrum.co.nz [210.54.149.34]) by danu.procontrol.fi (Postfix) with ESMTP id 9707B2385D for ; Wed, 19 Nov 2003 01:12:25 +0200 (EET) Received: from localhost (localhost.localdomain [127.0.0.1]) by hawk.bulletinwireless.net (Postfix) with ESMTP id 6BE026811 for ; Wed, 19 Nov 2003 12:12:18 +1300 (NZDT) Received: from hawk.bulletinwireless.net ([127.0.0.1]) by localhost (hawk [127.0.0.1:10024]) (amavisd-new) with LMTP id 03450-01-70 for ; Wed, 19 Nov 2003 12:12:16 +1300 (NZDT) Received: from piranha (piranha.intra.jungledrum.co.nz [192.168.1.13]) by hawk.bulletinwireless.net (Postfix) with ESMTP id BCD7B6794 for ; Wed, 19 Nov 2003 12:12:16 +1300 (NZDT) Date: Wed, 19 Nov 2003 12:12:16 +1300 From: Zach Bagnall To: dovecot@procontrol.fi Subject: Re: [Dovecot] run POP3S + IMAPS simultaneously? Message-Id: <20031119121216.36e9e02c.zach.bagnall@bulletinwireless.com> In-Reply-To: <3FBAA26C.5060104@3x3x3.org> References: <3FBAA26C.5060104@3x3x3.org> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.9.6claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Wed__19_Nov_2003_12_12_16_+1300_+XI4a61LVDA5AOls" X-Virus-Scanned: by amavisd-new X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2003 23:12:57 -0000 X-UID: 1888 Status: O Content-Length: 1061 --Signature=_Wed__19_Nov_2003_12_12_16_+1300_+XI4a61LVDA5AOls Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit Yes, you can run both simultaneously. In addition, remember to add pop3s to the "protocols" line. Zach. On Tue, 18 Nov 2003 14:51:24 -0800, darren david wrote: > a quick one: > > is it possible to run POP3S and IMAPS services through dovecot at the > same time? would i just uncomment both "login = imap" and "login = > pop3" in /etc/dovecot.conf? or can i only run one at a time? > > apologies if the answer is obvious, i'm just still trying to wrap my > head around all of this. > > thanks, > darren david > --Signature=_Wed__19_Nov_2003_12_12_16_+1300_+XI4a61LVDA5AOls Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/uqdQ4jDFYT+aqaIRAhbTAJ9htRVc93qDMnlsDpDwfCGg+BgW2gCbBHIL AnkyQfw6i64yqQPy4Vo/jxw= =dyvk -----END PGP SIGNATURE----- --Signature=_Wed__19_Nov_2003_12_12_16_+1300_+XI4a61LVDA5AOls-- From darren@3x3x3.org Wed Nov 19 02:40:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 391D523866; Wed, 19 Nov 2003 02:40:24 +0200 (EET) Received: from 3x3x3.org (dsl092-017-251.sfo4.dsl.speakeasy.net [66.92.17.251]) by danu.procontrol.fi (Postfix) with ESMTP id 7F75A2385D for ; Wed, 19 Nov 2003 02:39:50 +0200 (EET) Received: (qmail 7332 invoked by uid 89); 19 Nov 2003 00:36:24 -0000 Received: from dsl092-182-061.sfo1.dsl.speakeasy.net (HELO 3x3x3.org) (darren@3x3x3.org@66.92.182.61) by 0 with AES256-SHA encrypted SMTP; 19 Nov 2003 00:36:24 -0000 Message-ID: <3FBABBC7.6010204@3x3x3.org> Date: Tue, 18 Nov 2003 16:39:35 -0800 From: darren david User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Zach Bagnall , dovecot@procontrol.fi Subject: Re: [Dovecot] run POP3S + IMAPS simultaneously? References: <3FBAA26C.5060104@3x3x3.org> <20031119121216.36e9e02c.zach.bagnall@bulletinwireless.com> In-Reply-To: <20031119121216.36e9e02c.zach.bagnall@bulletinwireless.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Nov 2003 00:40:24 -0000 X-UID: 1889 Status: O sure enough. and easy enough! thanks, darren Zach Bagnall wrote: >Yes, you can run both simultaneously. > >In addition, remember to add pop3s to the "protocols" line. > >Zach. > >On Tue, 18 Nov 2003 14:51:24 -0800, darren david >wrote: > > >>a quick one: >> >>is it possible to run POP3S and IMAPS services through dovecot at the >>same time? would i just uncomment both "login = imap" and "login = >>pop3" in /etc/dovecot.conf? or can i only run one at a time? >> >>apologies if the answer is obvious, i'm just still trying to wrap my >>head around all of this. >> >>thanks, >>darren david >> >> >> >>------------------------------------------------------------------------ >> >>!DSPAM:3fbaa6d8266971365816602! >> From esj@harvee.org Wed Nov 19 21:56:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4ED2B23866; Wed, 19 Nov 2003 21:56:07 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id BC3B723841 for ; Wed, 19 Nov 2003 21:55:34 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id hAJJtK2x027041 for ; Wed, 19 Nov 2003 14:55:32 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Wed, 19 Nov 2003 14:55:08 -0500 Message-ID: <3FBBCA11.4000704@harvee.org> Date: Wed, 19 Nov 2003 14:52:49 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released References: <1068490809.2794.7.camel@hurina> <20031110221417.GA11416@iridium.mv.net> <1068503071.2802.27.camel@hurina> <3FB935E6.7000701@harvee.org> In-Reply-To: <3FB935E6.7000701@harvee.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:031119:dovecot@procontrol.fi:636ff3c562a31a4a X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Nov 2003 19:56:07 -0000 X-UID: 1890 Status: O Eric S. Johansson wrote: > Mailboxes are definitely working better with mbox format. whoops, spoke too soon. delay are up to the 1-2 minute range for INBOX and 30 second delays are not uncommon with all the rest. --- eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From bah@webmedic.net Thu Nov 20 17:22:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D7325238B7; Thu, 20 Nov 2003 17:22:50 +0200 (EET) Received: from courage.vosn.net (courage.vosn.net [209.151.74.1]) by danu.procontrol.fi (Postfix) with ESMTP id 8C3B623841 for ; Thu, 20 Nov 2003 17:22:17 +0200 (EET) Received: from p11-66-112-120-164.rb.vcr.centurytel.net ([66.112.120.164] helo=mandrake.webmedic.net) by courage.vosn.net with esmtp (Exim 4.24) id 1AMqdH-0002C1-Ld for dovecot@procontrol.fi; Thu, 20 Nov 2003 08:22:14 -0700 From: Brook Humphrey Organization: Mobile PC Medic To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released Date: Thu, 20 Nov 2003 07:21:56 -0800 User-Agent: KMail/1.5.93 References: <1068490809.2794.7.camel@hurina> <3FB935E6.7000701@harvee.org> <3FBBCA11.4000704@harvee.org> In-Reply-To: <3FBBCA11.4000704@harvee.org> X-Crash-Handler: MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Message-Id: <200311200721.56873.bah@webmedic.net> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - courage.vosn.net X-AntiAbuse: Original Domain - procontrol.fi X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - webmedic.net X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 15:22:51 -0000 X-UID: 1891 Status: O Content-Length: 1463 On Wednesday 19 November 2003 11:52 am, Eric S. Johansson wrote: > whoops, spoke too soon. =A0delay are up to the 1-2 minute range for INBOX > and 30 second delays are not uncommon with all the rest. somebody out there still uses mbox? Hm wonders never cease.=20 I an say it does work well here using imap, pop3, imaps, and pop3s. Now I'm= =20 wondering about not using plain passwords. What is the easiest way to do=20 this. For now I authenticate using pam but can change that.=20 Also to note when using squirrelmail for some reason squirrelmail does not= =20 like to pick up all the mailboxes. It does the inbox fine but I also have=20 maildrop sorting out virii and spam into seperate folders. Squirrelmail doe= s=20 not like to find these. Kmail does find them fine however. Both of these ar= e=20 of course over imap. Am I just missing some setting here? Oh and squirrelma= il=20 will see on extra folder at a time but not more than that. =2D-=20 New and improved with advanced outlook crash handler.=20 -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'= ~- Brook Humphrey =20 Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 =20 http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com =20 Holiness unto the Lord -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'= ~- From esj@harvee.org Thu Nov 20 17:31:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 01AC2238C7; Thu, 20 Nov 2003 17:31:47 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id CF0AD23841 for ; Thu, 20 Nov 2003 17:31:13 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id hAKFV52x012370; Thu, 20 Nov 2003 10:31:10 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Thu, 20 Nov 2003 10:31:03 -0500 Message-ID: <3FBCDDAC.5050700@harvee.org> Date: Thu, 20 Nov 2003 10:28:44 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Brook Humphrey Subject: Re: [Dovecot] 0.99.10.2 released References: <1068490809.2794.7.camel@hurina> <3FB935E6.7000701@harvee.org> <3FBBCA11.4000704@harvee.org> <200311200721.56873.bah@webmedic.net> In-Reply-To: <200311200721.56873.bah@webmedic.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:031120:bah@webmedic.net:75675018df87fb0f X-Hashcash: 0:031120:dovecot@procontrol.fi:fa75098eb230c244 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 15:31:47 -0000 X-UID: 1892 Status: O Brook Humphrey wrote: > On Wednesday 19 November 2003 11:52 am, Eric S. Johansson wrote: > >>whoops, spoke too soon. delay are up to the 1-2 minute range for INBOX >>and 30 second delays are not uncommon with all the rest. > > > somebody out there still uses mbox? Hm wonders never cease. :-) we have a mixed marriage here. I use Thunderbird/imap, she uses mutt. Haven't figured out quite how to make global procmail deliver maildir to my mailboxes and mbox to her's. heck, just trying to figure out how to get procmail to deliver maildir everywhere is a bit trying. On the gripping hand, if mutt can do maildir with no change of user interface...hmmm time to research something. maybe it's also time to use a different local delivery agent. ---eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From G.Ohrner@post.rwth-aachen.de Thu Nov 20 17:55:18 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 108EC238B7; Thu, 20 Nov 2003 17:55:18 +0200 (EET) Received: from Blubb.wwWLAN.net (unknown [62.112.158.193]) by danu.procontrol.fi (Postfix) with ESMTP id C554F23841 for ; Thu, 20 Nov 2003 17:54:44 +0200 (EET) Received: by Blubb.wwWLAN.net (Postfix, from userid 106) id 50286344088; Thu, 20 Nov 2003 16:54:43 +0100 (CET) Received: from HornBurg.CustomCDROM.de (ach9-d9bbabcb.pool.mediaWays.net [217.187.171.203]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by Blubb.wwWLAN.net (Postfix) with ESMTP id C1742344087 for ; Thu, 20 Nov 2003 16:54:42 +0100 (CET) Received: from unseenuniversity.scheibenwelt ([192.168.42.20] ident=c067ab4153cf3f9f611ad10781f90b4c) by HornBurg.CustomCDROM.de with esmtp (Exim 3.35 #1 (Debian)) id 1AMDcS-0004nZ-00 for ; Tue, 18 Nov 2003 22:42:44 +0100 Received: from localhost ([127.0.0.1] ident=34557d7f09fe40b7cf340bdfa06bd03c) by UnseenUniversity.Scheibenwelt with esmtp (Exim 3.36 #1 (Debian)) id 1AMDce-0000zo-00 for ; Tue, 18 Nov 2003 22:42:56 +0100 From: Gunter Ohrner To: dovecot@procontrol.fi Subject: Re: [Dovecot] entourage + dovecot bug? Date: Tue, 18 Nov 2003 22:42:42 +0100 User-Agent: KMail/1.5.4 References: In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200311182242.55389@mail.CustomCDROM.de> X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on Blubb.wwwlan.net X-Spam-Level: X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 15:55:18 -0000 X-UID: 1893 Status: O Content-Length: 1112 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am Dienstag, 18. November 2003 17:36 schrieb Payton: > I'm not certain if the problem lies in some tweak between 0.99.10 > and 0.99.10.2 or if it is something with the red hat system itself, but I > can't find anything. Did you dump the network traffic between Entourage and the working and fail= ing=20 setup? This could probably help to track the problem. Greetings, Gunter =2D --=20 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + PGP-verschl=FCsselte Mails bevorzugt! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ =2D - "Remember -- that which does not kill us can only make us stronger." =2D - "And that which *does* kill us leaves us *dead*!" -- (Terry Pratchett, Carpe Jugulum) +-+-+-+-+-+-+-+-+-+-+-+-+ http://www.lspace.org +-+-+-+-+-+-+-+-+-+-+-+-+ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQE/upJe0ORHvREo8l8RAon5AJ9GNyI3BAqSZSbT7Yn1e2YHIiAI9QCglcpM 115aOM0gcfuWeXGZYH8mtyE=3D =3DLmKz =2D----END PGP SIGNATURE----- From tss@iki.fi Thu Nov 20 18:23:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 50F39238B7; Thu, 20 Nov 2003 18:23:41 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D312D2385D for ; Thu, 20 Nov 2003 18:23:06 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5E9DE5EC1149; Thu, 20 Nov 2003 18:23:01 +0200 (EET) Subject: Re: [Dovecot] IMAP subscribe/unsubscribe broken in 0.99.10.2 From: Timo Sirainen To: Matthew Reimer In-Reply-To: <3FB94FFF.30203@vpop.net> References: <3FB94FFF.30203@vpop.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-AbK2vjoEvCdhIJU29RX/" Message-Id: <1069345380.16673.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 20 Nov 2003 18:23:00 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 16:23:41 -0000 X-UID: 1894 Status: O Content-Length: 1138 --=-AbK2vjoEvCdhIJU29RX/ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2003-11-18 at 00:47, Matthew Reimer wrote: > IMAP subscribe/unsubscribe is broken in 0.99.10.2 (and earlier=20 > releases), specifically subsfile_set_subscribed(), where the logic is=20 > all wrong. I tried just copying over the latest subscription-file.c but=20 > it has dependencies on some file locking/dotlocking stuff that 0.99.10.2=20 > doesn't have. >=20 > Timo, would it be possible to incorporate the latest subscription-file.c=20 > into 0.99.10.3 (whenever that will be)? I see bugs in CVS's subscription implementation, but what's wrong in 0.99.10.2 implementation? Also your comments about dotlocking changes sound like you're trying some CVS snapshot :) --=-AbK2vjoEvCdhIJU29RX/ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/vOpjyUhSUUBViskRAthGAJwKfrJWLKkrmhEa667G8y1u2a9r5QCfbzBC HWGrhJOYv6bzkrbziCTEpBk= =VZZ9 -----END PGP SIGNATURE----- --=-AbK2vjoEvCdhIJU29RX/-- From gordon@doxxx.net Thu Nov 20 18:28:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1C66F238B7; Thu, 20 Nov 2003 18:28:31 +0200 (EET) Received: from sitraka.com (unknown [207.219.186.98]) by danu.procontrol.fi (Postfix) with ESMTP id 8BB582385D for ; Thu, 20 Nov 2003 18:27:57 +0200 (EET) Received: from doxxx.net (rd-gtyler.sitraka.com [10.4.114.103]) by sitraka.com (8.11.6/8.11.6) with ESMTP id hAKGRo304162 for ; Thu, 20 Nov 2003 11:27:50 -0500 Message-ID: <3FBCEB8A.6070401@doxxx.net> Date: Thu, 20 Nov 2003 11:27:54 -0500 From: Gordon Tyler User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released References: <1068490809.2794.7.camel@hurina> <3FB935E6.7000701@harvee.org> <3FBBCA11.4000704@harvee.org> <200311200721.56873.bah@webmedic.net> <3FBCDDAC.5050700@harvee.org> In-Reply-To: <3FBCDDAC.5050700@harvee.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 16:28:31 -0000 X-UID: 1895 Status: O Eric S. Johansson wrote: > :-) we have a mixed marriage here. I use Thunderbird/imap, she uses > mutt. Haven't figured out quite how to make global procmail deliver > maildir to my mailboxes and mbox to her's. heck, just trying to figure > out how to get procmail to deliver maildir everywhere is a bit trying. > On the gripping hand, if mutt can do maildir with no change of user > interface...hmmm time to research something. > > maybe it's also time to use a different local delivery agent. I can heartily recommend Maildrop. Readable filter language and it's able to handle both mbox and maildir. I'm using it combination with exim4, but I'm contemplating pointing fetchmail directly at maildrop and bypassing exim4 since the only reason exim4 is installed is to handle local delivery, it's never used as an outgoing server or as an incoming server other than via fetchmail. Ciao, Gordon From tss@iki.fi Thu Nov 20 18:29:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BA086238CE; Thu, 20 Nov 2003 18:29:43 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2870A238C9 for ; Thu, 20 Nov 2003 18:28:52 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 16C775EC1149; Thu, 20 Nov 2003 18:28:52 +0200 (EET) Subject: Re: [Dovecot] SSL and certificate authorities. From: Timo Sirainen To: Zach Bagnall In-Reply-To: <20031118155819.0bd8dc6c.zach.bagnall@bulletinwireless.com> References: <20031118155819.0bd8dc6c.zach.bagnall@bulletinwireless.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-/Y2bDGOGOOWZ/jTlh0NT" Message-Id: <1069345731.16670.21.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 20 Nov 2003 18:28:51 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 16:29:43 -0000 X-UID: 1896 Status: O --=-/Y2bDGOGOOWZ/jTlh0NT Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2003-11-18 at 04:58, Zach Bagnall wrote: > I don't see it in the source. Try the patch attached. Dovecot seems to > run OK, but it hasn't been tested with a real key/cert/CA setup. What exactly does this patch do? Gives client a list of accepted CAs, but it doesn't look like it actually requires client to provide a valid certificate? --=-/Y2bDGOGOOWZ/jTlh0NT Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/vOvDyUhSUUBViskRAo2CAJ9cT5h2yb4Qj0gknzrjA9Tr01iyBACgiqUx 8hRpfUVRAQtojW/SwcDRVPY= =6qdY -----END PGP SIGNATURE----- --=-/Y2bDGOGOOWZ/jTlh0NT-- From bah@webmedic.net Thu Nov 20 18:31:38 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 00F6E238C9; Thu, 20 Nov 2003 18:31:38 +0200 (EET) Received: from courage.vosn.net (courage.vosn.net [209.151.74.1]) by danu.procontrol.fi (Postfix) with ESMTP id 7B9C5238B7 for ; Thu, 20 Nov 2003 18:31:05 +0200 (EET) Received: from pppoe-64-91-111-171-rb.vcr.centurytel.net ([64.91.111.171] helo=mandrake.webmedic.net) by courage.vosn.net with esmtp (Exim 4.24) id 1AMrhw-0005j8-P1 for dovecot@procontrol.fi; Thu, 20 Nov 2003 09:31:04 -0700 From: Brook Humphrey Organization: Mobile PC Medic To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released Date: Thu, 20 Nov 2003 08:31:01 -0800 User-Agent: KMail/1.5.93 References: <1068490809.2794.7.camel@hurina> <200311200721.56873.bah@webmedic.net> <3FBCDDAC.5050700@harvee.org> In-Reply-To: <3FBCDDAC.5050700@harvee.org> X-Crash-Handler: MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200311200831.01327.bah@webmedic.net> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - courage.vosn.net X-AntiAbuse: Original Domain - procontrol.fi X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - webmedic.net X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 16:31:38 -0000 X-UID: 1897 Status: O Content-Length: 1997 On Thursday 20 November 2003 07:28 am, you wrote: > Brook Humphrey wrote: > > On Wednesday 19 November 2003 11:52 am, Eric S. Johansson wrote: > >>whoops, spoke too soon. delay are up to the 1-2 minute range for INBOX > >>and 30 second delays are not uncommon with all the rest. > > > > somebody out there still uses mbox? Hm wonders never cease. > > > :-) we have a mixed marriage here. I use Thunderbird/imap, she uses > > mutt. Haven't figured out quite how to make global procmail deliver > maildir to my mailboxes and mbox to her's. heck, just trying to figure > out how to get procmail to deliver maildir everywhere is a bit trying. > On the gripping hand, if mutt can do maildir with no change of user > interface...hmmm time to research something. Hm I use maildrop here and you can have individual rules for each user. These are stored in the users home directory. With maildrop i have it sorting spam and virii for me through spamassassin and anomy sanitizer. Really it could not be easier. I do believe bot dont quote me in this that maildrop does support mbox but I'm not sure. I dont use mutt but I do know that pine does support maildir. I did however look through the muttrc. Uhg. Anyway I see others on the net talking about it but I see no one showing how they did it. Mutt can use imap servers though and this may be a good solution. You could put here imap settings in the ~/.muttrc. > > maybe it's also time to use a different local delivery agent. > > > ---eric -- New and improved with advanced outlook crash handler. -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- Brook Humphrey Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com Holiness unto the Lord -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- From tss@iki.fi Thu Nov 20 18:32:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1DBD8238D4; Thu, 20 Nov 2003 18:32:56 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9DAE7238D3 for ; Thu, 20 Nov 2003 18:32:22 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A243D5EC1149; Thu, 20 Nov 2003 18:32:20 +0200 (EET) Subject: Re: [Dovecot] 0.99.10.2 released From: Timo Sirainen To: Brook Humphrey In-Reply-To: <200311200721.56873.bah@webmedic.net> References: <1068490809.2794.7.camel@hurina> <3FB935E6.7000701@harvee.org> <3FBBCA11.4000704@harvee.org> <200311200721.56873.bah@webmedic.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-RNwtkL7WcfLnlc5Tx6S5" Message-Id: <1069345939.16671.25.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 20 Nov 2003 18:32:20 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 16:32:56 -0000 X-UID: 1898 Status: O Content-Length: 1437 --=-RNwtkL7WcfLnlc5Tx6S5 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2003-11-20 at 17:21, Brook Humphrey wrote: > I an say it does work well here using imap, pop3, imaps, and pop3s. Now I= 'm=20 > wondering about not using plain passwords. What is the easiest way to do=20 > this. For now I authenticate using pam but can change that.=20 Depends on clients. If you only allow SSL connections, it doesn't matter if clients then give plaintext passwords. Most don't support anything else. > Also to note when using squirrelmail for some reason squirrelmail does no= t=20 > like to pick up all the mailboxes. It does the inbox fine but I also have= =20 > maildrop sorting out virii and spam into seperate folders. Squirrelmail d= oes=20 > not like to find these. Kmail does find them fine however. Both of these = are=20 > of course over imap. Am I just missing some setting here? Oh and squirrel= mail=20 > will see on extra folder at a time but not more than that. Squirrelmail shows only subscribed mailboxes, maybe kmail shows all? --=-RNwtkL7WcfLnlc5Tx6S5 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/vOyTyUhSUUBViskRAvPNAJwIEjldCfR3LEfyk8sRl81FsmNyNACfVL+7 DiauHUDme4BhDxMek/fvf4Y= =SeTc -----END PGP SIGNATURE----- --=-RNwtkL7WcfLnlc5Tx6S5-- From dinh.viet.hoa@free.fr Thu Nov 20 18:45:00 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EC8FA238C9; Thu, 20 Nov 2003 18:45:00 +0200 (EET) Received: from postfix4-2.free.fr (postfix4-2.free.fr [213.228.0.176]) by danu.procontrol.fi (Postfix) with ESMTP id 01C5D238B7 for ; Thu, 20 Nov 2003 18:44:27 +0200 (EET) Received: from homer.priv (lns-vlq-3-82-64-215-111.adsl.proxad.net [82.64.215.111]) by postfix4-2.free.fr (Postfix) with ESMTP id 571A6C3BC for ; Thu, 20 Nov 2003 17:44:21 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id hAKGiHP5010658 for ; Thu, 20 Nov 2003 17:44:17 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id hAKGiHx1010656; Thu, 20 Nov 2003 17:44:17 +0100 Date: Thu, 20 Nov 2003 17:38:40 +0100 From: DINH Viet Hoa To: dovecot ML Message-ID: X-Mailer: etPan - version 0.1 - new generation MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="3fbcef56_354b5112_2968" Content-Transfer-Encoding: 8bit Subject: [Dovecot] patch and bug report (from an other in fact) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 16:45:01 -0000 X-UID: 1899 Status: O Content-Length: 8368 --3fbcef56_354b5112_2968 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit When messages marked \Recent are deleted and expunged, the patch now sends the new message count and the new recent messages count (although the message count is not really necessary). >From RFC 3501 errata (ftp://ftp.cac.washington.edu/imap/rfc3501-errata) << Section 6.4.3, page 49: old: The EXPUNGE command permanently removes all messages that have the \Deleted flag set from the currently selected mailbox. Before returning an OK to the client, an untagged EXPUNGE response is sent for each message that is removed. new: The EXPUNGE command permanently removes all messages that have the \Deleted flag set from the currently selected mailbox. Before returning an OK to the client, an untagged EXPUNGE response is sent for each message that is removed. Note that if any messages with the \Recent flag set are expunged, an untagged RECENT response is sent after the untagged EXPUNGE(s) to update the client's count of RECENT messages. >> The bug is that when we connect to the IMAP server through a command (ssh /usr/libexec/imap for example). \Recent flags are not removed when we have finish the access to the mailbox. (I have not yet investigated about that) Besides that, did you found a solution for the message parser ? (the bug in FETCH ENVELOPE that I noticed personnaly to Timo) -- DINH V. Hoa, "s/^\(\(\\.\|[^\[]\|\[\(\^.\|[^^]\)[^]]*\]\)*\)\(\\[^\*[]\)/\1\\\4/" -- Stéphane CHAZELAS --3fbcef56_354b5112_2968 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="diff-result" PyBkaWZmLXJlc3VsdApJbmRleDogc3JjL2ltYXAvY21kLWV4cHVuZ2UuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD UyBmaWxlOiAvaG9tZS9jdnMvZG92ZWNvdC9zcmMvaW1hcC9jbWQtZXhwdW5nZS5jLHYKcmV0cmll dmluZyByZXZpc2lvbiAxLjUKZGlmZiAtdSAtcjEuNSBjbWQtZXhwdW5nZS5jCi0tLSBzcmMvaW1h cC9jbWQtZXhwdW5nZS5jCTI3IEp1bCAyMDAzIDA0OjQ4OjMyIC0wMDAwCTEuNQorKysgc3JjL2lt YXAvY21kLWV4cHVuZ2UuYwkyMCBOb3YgMjAwMyAxNjozNTo1MCAtMDAwMApAQCAtOSwxMCArOSwx MiBAQAogCWlmICghY2xpZW50X3ZlcmlmeV9vcGVuX21haWxib3goY2xpZW50KSkKIAkJcmV0dXJu IFRSVUU7CiAKLQlpZiAoaW1hcF9leHB1bmdlKGNsaWVudC0+bWFpbGJveCwgVFJVRSkpCi0JCWNs aWVudF9zZW5kX3RhZ2xpbmUoY2xpZW50LCAiT0sgRXhwdW5nZSBjb21wbGV0ZWQuIik7CisJaWYg KGltYXBfZXhwdW5nZShjbGllbnQtPm1haWxib3gsIFRSVUUpKSB7CisgICAgICAgICAgICAgICAg Y2xpZW50X3N5bmNfbWVzc2FnZV9jb3VudHMoY2xpZW50KTsKKyAgICAgICAgICAgICAgICBjbGll bnRfc2VuZF90YWdsaW5lKGNsaWVudCwgIk9LIEV4cHVuZ2UgY29tcGxldGVkLiIpOworICAgICAg ICB9CiAJZWxzZQogCQljbGllbnRfc2VuZF9zdG9yYWdlX2Vycm9yKGNsaWVudCwgY2xpZW50LT5t YWlsYm94LT5zdG9yYWdlKTsKLQorICAgICAgICAKIAlyZXR1cm4gVFJVRTsKIH0KSW5kZXg6IHNy Yy9pbWFwL2NvbW1hbmRzLXV0aWwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9jdnMvZG92 ZWNvdC9zcmMvaW1hcC9jb21tYW5kcy11dGlsLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjkK ZGlmZiAtdSAtcjEuMjkgY29tbWFuZHMtdXRpbC5jCi0tLSBzcmMvaW1hcC9jb21tYW5kcy11dGls LmMJMjQgQXVnIDIwMDMgMTI6NDU6MzIgLTAwMDAJMS4yOQorKysgc3JjL2ltYXAvY29tbWFuZHMt dXRpbC5jCTIwIE5vdiAyMDAzIDE2OjM1OjUxIC0wMDAwCkBAIC0xNDQsNiArMTQ0LDE4IEBACiAJ fQogfQogCit2b2lkIGNsaWVudF9zeW5jX21lc3NhZ2VfY291bnRzKHN0cnVjdCBjbGllbnQgKmNs aWVudCkKK3sKKwlpZiAoY2xpZW50LT5tYWlsYm94ID09IE5VTEwpCisJCXJldHVybjsKKworCWlm ICghY2xpZW50LT5tYWlsYm94LT5zeW5jKGNsaWVudC0+bWFpbGJveCwKKyAgICAgICAgICAgICAg ICBNQUlMQk9YX1NZTkNfRk9SQ0VfQ09VTlQpKSB7CisJCWNsaWVudF9zZW5kX3VudGFnZ2VkX3N0 b3JhZ2VfZXJyb3IoY2xpZW50LAorICAgICAgICAgICAgICAgICAgICBjbGllbnQtPm1haWxib3gt PnN0b3JhZ2UpOworCX0KK30KKwogdm9pZCBjbGllbnRfc2VuZF9zdG9yYWdlX2Vycm9yKHN0cnVj dCBjbGllbnQgKmNsaWVudCwKIAkJCSAgICAgICBzdHJ1Y3QgbWFpbF9zdG9yYWdlICpzdG9yYWdl KQogewpJbmRleDogc3JjL2ltYXAvY29tbWFuZHMtdXRpbC5oCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6 IC9ob21lL2N2cy9kb3ZlY290L3NyYy9pbWFwL2NvbW1hbmRzLXV0aWwuaCx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS4xMwpkaWZmIC11IC1yMS4xMyBjb21tYW5kcy11dGlsLmgKLS0tIHNyYy9pbWFw L2NvbW1hbmRzLXV0aWwuaAkyNyBKdWwgMjAwMyAwNDo0ODozMiAtMDAwMAkxLjEzCisrKyBzcmMv aW1hcC9jb21tYW5kcy11dGlsLmgJMjAgTm92IDIwMDMgMTY6MzU6NTIgLTAwMDAKQEAgLTMxLDYg KzMxLDkgQEAKIC8qIFN5bmNocm9uaXplIGFsbCBidXQgZXhwdW5nZXMgd2l0aCBjbGllbnQuICov CiB2b2lkIGNsaWVudF9zeW5jX3dpdGhvdXRfZXhwdW5nZXMoc3RydWN0IGNsaWVudCAqY2xpZW50 KTsKIAorLyogU3luY2hyb25pemUgbWVzc2FnZXMgY291bnRzIHdpdGggY2xpZW50LiAqLwordm9p ZCBjbGllbnRfc3luY19tZXNzYWdlX2NvdW50cyhzdHJ1Y3QgY2xpZW50ICpjbGllbnQpOworCiAv KiBTZW5kIGxhc3QgbWFpbCBzdG9yYWdlIGVycm9yIG1lc3NhZ2UgdG8gY2xpZW50LiAqLwogdm9p ZCBjbGllbnRfc2VuZF9zdG9yYWdlX2Vycm9yKHN0cnVjdCBjbGllbnQgKmNsaWVudCwKIAkJCSAg ICAgICBzdHJ1Y3QgbWFpbF9zdG9yYWdlICpzdG9yYWdlKTsKSW5kZXg6IHNyYy9saWItc3RvcmFn ZS9tYWlsLXN0b3JhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9jdnMvZG92ZWNvdC9z cmMvbGliLXN0b3JhZ2UvbWFpbC1zdG9yYWdlLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjIK ZGlmZiAtdSAtcjEuNjIgbWFpbC1zdG9yYWdlLmgKLS0tIHNyYy9saWItc3RvcmFnZS9tYWlsLXN0 b3JhZ2UuaAkyNiBPY3QgMjAwMyAyMDoxMzoxNSAtMDAwMAkxLjYyCisrKyBzcmMvbGliLXN0b3Jh Z2UvbWFpbC1zdG9yYWdlLmgJMjAgTm92IDIwMDMgMTY6MzU6NTUgLTAwMDAKQEAgLTk5LDcgKzk5 LDggQEAKIAlNQUlMQk9YX1NZTkNfTk9ORQkJPSAweDAwLAogCU1BSUxCT1hfU1lOQ19GVUxMCQk9 IDB4MDEsCiAJTUFJTEJPWF9TWU5DX0ZBU1QJCT0gMHgwMiwKLQlNQUlMQk9YX1NZTkNfRkxBR19O T19FWFBVTkdFUwk9IDB4MDQKKwlNQUlMQk9YX1NZTkNfRkxBR19OT19FWFBVTkdFUwk9IDB4MDQs CisJTUFJTEJPWF9TWU5DX0ZPUkNFX0NPVU5UICAgICAgICA9IDB4MDgKIH07CiAKIGVudW0gY2xp ZW50X3dvcmthcm91bmRzIHsKSW5kZXg6IHNyYy9saWItc3RvcmFnZS9pbmRleC9pbmRleC1zeW5j LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3ZzL2RvdmVjb3Qvc3JjL2xpYi1zdG9yYWdl L2luZGV4L2luZGV4LXN5bmMuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNwpkaWZmIC11IC1y MS4yNyBpbmRleC1zeW5jLmMKLS0tIHNyYy9saWItc3RvcmFnZS9pbmRleC9pbmRleC1zeW5jLmMJ MjQgQXVnIDIwMDMgMTI6NDU6MzMgLTAwMDAJMS4yNworKysgc3JjL2xpYi1zdG9yYWdlL2luZGV4 L2luZGV4LXN5bmMuYwkyMCBOb3YgMjAwMyAxNjozNTo1NiAtMDAwMApAQCAtMTAsNyArMTAsNyBA QAogLyogSG93IG9mdGVuIHRvIGRvIGZ1bGwgc3luYyB3aGVuIGZhc3Qgc3luYyBmbGFnIGlzIHNl dC4gKi8KICNkZWZpbmUgTUFJTEJPWF9GVUxMX1NZTkNfSU5URVJWQUwgNQogCi1zdGF0aWMgdm9p ZCBpbmRleF9zdG9yYWdlX3N5bmNfc2l6ZShzdHJ1Y3QgaW5kZXhfbWFpbGJveCAqaWJveCkKK3N0 YXRpYyB2b2lkIGluZGV4X3N0b3JhZ2Vfc3luY19zaXplKHN0cnVjdCBpbmRleF9tYWlsYm94ICpp Ym94LCBpbnQgZm9yY2UpCiB7CiAJc3RydWN0IG1haWxfc3RvcmFnZSAqc3RvcmFnZSA9IGlib3gt PmJveC5zdG9yYWdlOwogCXVuc2lnbmVkIGludCBtZXNzYWdlcywgcmVjZW50OwpAQCAtMjEsOSAr MjEsMTEgQEAKIAltZXNzYWdlcyA9IGlib3gtPmluZGV4LT5nZXRfaGVhZGVyKGlib3gtPmluZGV4 KS0+bWVzc2FnZXNfY291bnQ7CiAJbWVzc2FnZXMgKz0gbWFpbF9tb2RpZnlsb2dfZ2V0X2V4cHVu Z2VfY291bnQoaWJveC0+aW5kZXgtPm1vZGlmeWxvZyk7CiAKLQlpZiAobWVzc2FnZXMgIT0gaWJv eC0+c3luY2VkX21lc3NhZ2VzX2NvdW50KSB7Ci0JCWlfYXNzZXJ0KG1lc3NhZ2VzID4gaWJveC0+ c3luY2VkX21lc3NhZ2VzX2NvdW50KTsKLQorCWlmICgobWVzc2FnZXMgIT0gaWJveC0+c3luY2Vk X21lc3NhZ2VzX2NvdW50KSB8fCBmb3JjZSkgeworICAgICAgICAgICAgICAgIGlmICghZm9yY2Up IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlfYXNzZXJ0KG1lc3NhZ2VzID4gaWJveC0+c3lu Y2VkX21lc3NhZ2VzX2NvdW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg CiAJCS8qIG5ldyBtZXNzYWdlcyBpbiBtYWlsYm94ICovCiAJCXJlY2VudCA9IGluZGV4X3N0b3Jh Z2VfZ2V0X3JlY2VudF9jb3VudChpYm94LT5pbmRleCk7CiAJCXN0b3JhZ2UtPmNhbGxiYWNrcy0+ bmV3X21lc3NhZ2VzKCZpYm94LT5ib3gsIG1lc3NhZ2VzLCByZWNlbnQsCkBAIC04Miw3ICs4NCw3 IEBACiAJCXJldHVybiBUUlVFOyAvKiBubyBjaGFuZ2VzIC0gbXVzdCBiZSBubyBuZXcgbWFpbCBl aXRoZXIgKi8KIAogCWlmIChzeW5jX3NpemUpCi0JCWluZGV4X3N0b3JhZ2Vfc3luY19zaXplKGli b3gpOworCQlpbmRleF9zdG9yYWdlX3N5bmNfc2l6ZShpYm94LCAwKTsKIAogCS8qIG5vdGlmeSBj aGFuZ2VzIGluIGN1c3RvbSBmbGFncyAqLwogCWlmIChtYWlsX2N1c3RvbV9mbGFnc19oYXNfY2hh bmdlcyhpbmRleC0+Y3VzdG9tX2ZsYWdzKSAmJgpAQCAtMjQwLDExICsyNDIsMTUgQEAKIAkJcmV0 ID0gaW5kZXhfc3RvcmFnZV9zeW5jX21vZGlmeWxvZyhpYm94LCBGQUxTRSk7CiAJZWxzZQogCQly ZXQgPSBUUlVFOwotCi0JaW5kZXhfc3RvcmFnZV9zeW5jX3NpemUoaWJveCk7Ci0KKyAgICAgICAg CisgICAgICAgIGlmIChmbGFncyAmIE1BSUxCT1hfU1lOQ19GT1JDRV9DT1VOVCkKKyAgICAgICAg ICAgICAgICBpbmRleF9zdG9yYWdlX3N5bmNfc2l6ZShpYm94LCAxKTsKKyAgICAgICAgZWxzZQor ICAgICAgICAgICAgICAgIGluZGV4X3N0b3JhZ2Vfc3luY19zaXplKGlib3gsIDApOworICAgICAg ICAKIAlpZiAoIWluZGV4X3N0b3JhZ2VfbG9jayhpYm94LCBNQUlMX0xPQ0tfVU5MT0NLKSkKIAkJ cmV0dXJuIEZBTFNFOwogCiAJcmV0dXJuIHJldDsKIH0KKwo= --3fbcef56_354b5112_2968-- From G.Ohrner@post.rwth-aachen.de Thu Nov 20 19:26:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 88F94238C5; Thu, 20 Nov 2003 19:26:49 +0200 (EET) Received: from Blubb.wwWLAN.net (unknown [62.112.158.193]) by danu.procontrol.fi (Postfix) with ESMTP id AF15923841 for ; Thu, 20 Nov 2003 19:26:14 +0200 (EET) Received: by Blubb.wwWLAN.net (Postfix, from userid 106) id 7661D344094; Thu, 20 Nov 2003 18:26:13 +0100 (CET) Received: from 192.168.0.188 (wzl10126.WZL.RWTH-Aachen.DE [134.130.233.126]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by Blubb.wwWLAN.net (Postfix) with ESMTP id 225F7344087 for ; Thu, 20 Nov 2003 18:26:13 +0100 (CET) From: Gunter Ohrner Organization: Gunter Ohrner Datensysteme To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released Date: Thu, 20 Nov 2003 18:26:04 +0100 User-Agent: KMail/1.5.4 References: <1068490809.2794.7.camel@hurina> <200311200721.56873.bah@webmedic.net> <1069345939.16671.25.camel@hurina> In-Reply-To: <1069345939.16671.25.camel@hurina> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200311201826.04985.G.Ohrner@post.rwth-aachen.de> X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on Blubb.wwwlan.net X-Spam-Level: X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 17:26:49 -0000 X-UID: 1900 Status: O On Donnerstag, 20. November 2003 17:32, Timo Sirainen wrote: > > Squirrelmail does not like to find these. Kmail does find them fine > > however. Both of these are of course over imap. Am I just missing some > Squirrelmail shows only subscribed mailboxes, maybe kmail shows all? This can be configured in kMail, the default is to show all folders, even unsubscribed ones. Greetings, Gunter From G.Ohrner@post.rwth-aachen.de Thu Nov 20 19:33:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E139C238C5; Thu, 20 Nov 2003 19:33:27 +0200 (EET) Received: from Blubb.wwWLAN.net (unknown [62.112.158.193]) by danu.procontrol.fi (Postfix) with ESMTP id E8E3A23841 for ; Thu, 20 Nov 2003 19:32:54 +0200 (EET) Received: by Blubb.wwWLAN.net (Postfix, from userid 106) id 2DA0E344094; Thu, 20 Nov 2003 18:32:54 +0100 (CET) Received: from 192.168.0.188 (wzl10126.WZL.RWTH-Aachen.DE [134.130.233.126]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by Blubb.wwWLAN.net (Postfix) with ESMTP id C6689344087 for ; Thu, 20 Nov 2003 18:32:53 +0100 (CET) From: Gunter Ohrner Organization: Gunter Ohrner Datensysteme To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released Date: Thu, 20 Nov 2003 18:32:42 +0100 User-Agent: KMail/1.5.4 References: <1068490809.2794.7.camel@hurina> <200311200721.56873.bah@webmedic.net> <3FBCDDAC.5050700@harvee.org> In-Reply-To: <3FBCDDAC.5050700@harvee.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200311201832.42277.G.Ohrner@post.rwth-aachen.de> X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on Blubb.wwwlan.net X-Spam-Level: X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 17:33:28 -0000 X-UID: 1901 Status: O On Donnerstag, 20. November 2003 16:28, Eric S. Johansson wrote: > mutt. Haven't figured out quite how to make global procmail deliver > maildir to my mailboxes and mbox to her's. heck, just trying to figure If you really need a global procmailrc instead of local ones you could use a rule matching all of her mails to put these into an mbox and another rule to put alle the rest into your maildir. Greetings, Gunter From tss@iki.fi Thu Nov 20 19:45:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9FC432385D; Thu, 20 Nov 2003 19:45:16 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4E95723841 for ; Thu, 20 Nov 2003 19:44:44 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E82555EC114D; Thu, 20 Nov 2003 19:44:43 +0200 (EET) Subject: Re: [Dovecot] patch and bug report (from an other in fact) From: Timo Sirainen To: DINH Viet Hoa In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-MTxdS0vamBsY+eB7C3Sq" Message-Id: <1069350283.16673.47.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 20 Nov 2003 19:44:43 +0200 cc: dovecot ML X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 17:45:17 -0000 X-UID: 1902 Status: O Content-Length: 1810 --=-MTxdS0vamBsY+eB7C3Sq Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2003-11-20 at 18:38, DINH Viet Hoa wrote: > When messages marked \Recent are deleted and expunged, the patch now=20 > sends the new message count and the new recent messages count (although=20 > the message count is not really necessary). Yes, I noticed your mail in imap-list. :) The patch is wrong though, your session may see expunges made by another client as well. More correct location would be lib-storage/index/maildir/maildir-expunge.c, same for mbox, and lib-storage/index/index-sync.c:index_storage_sync_modifylog(). They could check if any \Recent messages were expunged, and if so then call storage->callbacks->new_messages(). > The bug is that when we connect to the IMAP server through a command > (ssh /usr/libexec/imap for example). \Recent flags are not removed when w= e=20 > have finish the access to the mailbox. (I have not yet investigated about= =20 > that) Recent counters are completely broken currently.. I had an idea how to fix them to work nicely, but haven't yet had time for that. http://www.washington.edu/imap/listarch/current/msg01039.html > Besides that, did you found a solution for the message parser ? > (the bug in FETCH ENVELOPE that I noticed personnaly to Timo) Solution is to rewrite lib-mail/message-address.c to work with string directly instead of tokens. Haven't done that yet either. --=-MTxdS0vamBsY+eB7C3Sq Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/vP2LyUhSUUBViskRAqWPAJ9xJCUK+MSXvJJfoK6rJUa1ucYckQCgn0hb eLsE2Faf3jYXkgAAfGwJKr4= =dDnN -----END PGP SIGNATURE----- --=-MTxdS0vamBsY+eB7C3Sq-- From tss@iki.fi Thu Nov 20 20:01:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0757B23866; Thu, 20 Nov 2003 20:01:11 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 298302385D for ; Thu, 20 Nov 2003 20:00:38 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B7DB65EC114D; Thu, 20 Nov 2003 20:00:37 +0200 (EET) Subject: Re: [Dovecot] pop3-login process leakage From: Timo Sirainen To: Clive Jones In-Reply-To: <047001c3adc6$950f17b0$01124c0a@uk.maint.com> References: <0c9e01c3a2d0$60faeae0$01124c0a@uk.maint.com> <1068314769.9815.26.camel@hurina> <047001c3adc6$950f17b0$01124c0a@uk.maint.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-VEhzXGV1sF3k3hWp0xM7" Message-Id: <1069351237.16663.53.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 20 Nov 2003 20:00:37 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 18:01:11 -0000 X-UID: 1903 Status: O Content-Length: 1092 --=-VEhzXGV1sF3k3hWp0xM7 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2003-11-18 at 13:24, Clive Jones wrote: > > gdb /usr/local/libexec/dovecot/pop3-login >=20 > > p clients->nodes_count >=20 > $1 =3D 0 >=20 > > p main_refcount >=20 > $2 =3D 2 >=20 > > p auth_reconnect >=20 > $3 =3D 0 >=20 > > p auth_waiting_handshake_count >=20 > $4 =3D 0 >=20 > What's the verdict? Looks like this process hasn't even accepted a pop3 connection yet.. Do they all do this? Ask these too: p closing_down p process_per_connection p ssl_proxies->nodes_count p io_master And have you changed login_processes_count, login_max_processes_count or login_max_logging_users settings? --=-VEhzXGV1sF3k3hWp0xM7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/vQFFyUhSUUBViskRAkDyAJ9qxHHvbDNhNxTBRhpLl6scHe5l4ACaAtNX 2agAJEXN3tMfEF1J3MqQtm0= =9BSa -----END PGP SIGNATURE----- --=-VEhzXGV1sF3k3hWp0xM7-- From bah@webmedic.net Thu Nov 20 21:19:25 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9D20D23866; Thu, 20 Nov 2003 21:19:25 +0200 (EET) Received: from courage.vosn.net (courage.vosn.net [209.151.74.1]) by danu.procontrol.fi (Postfix) with ESMTP id 8AA7F23841 for ; Thu, 20 Nov 2003 21:18:51 +0200 (EET) Received: from pppoe64-91-122-13.vcr.centurytel.net ([64.91.122.13] helo=mandrake.webmedic.net) by courage.vosn.net with esmtp (Exim 4.24) id 1AMuKB-0004wY-On for dovecot@procontrol.fi; Thu, 20 Nov 2003 12:18:44 -0700 From: Brook Humphrey Organization: Mobile PC Medic To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released Date: Thu, 20 Nov 2003 11:08:01 -0800 User-Agent: KMail/1.5.93 References: <1068490809.2794.7.camel@hurina> <1069345939.16671.25.camel@hurina> <200311201826.04985.G.Ohrner@post.rwth-aachen.de> In-Reply-To: <200311201826.04985.G.Ohrner@post.rwth-aachen.de> X-Crash-Handler: MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: quoted-printable Message-Id: <200311201108.01749.bah@webmedic.net> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - courage.vosn.net X-AntiAbuse: Original Domain - procontrol.fi X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - webmedic.net X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 19:19:25 -0000 X-UID: 1904 Status: O Content-Length: 1046 On Thursday 20 November 2003 09:26 am, Gunter Ohrner wrote: > This can be configured in kMail, the default is to show all folders, even > unsubscribed ones. > > Greetings, > > =A0 Gunter the problem with squirrelmail is it will only let me subscribe to one folde= r=20 besides the inbox. I can not subscribe to any other folders if I do it will= =20 add the new one and drop any other one that I'm subscribed to besides the=20 inbox. This behavior does not affect the inbox at all. And yes kmail shows= =20 them all by default.=20 =2D-=20 New and improved with advanced outlook crash handler.=20 -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'= ~- Brook Humphrey =20 Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 =20 http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com =20 Holiness unto the Lord -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'= ~- From payton@repligen.com Thu Nov 20 21:21:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0C5B7238B7; Thu, 20 Nov 2003 21:21:59 +0200 (EET) Received: from mithrin.repligen.com (66.237.173.210.ptr.us.xo.net [66.237.173.210]) by danu.procontrol.fi (Postfix) with SMTP id 4DF5A23841 for ; Thu, 20 Nov 2003 21:21:25 +0200 (EET) Received: (qmail 21509 invoked by uid 500); 20 Nov 2003 19:23:07 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Nov 2003 19:23:07 -0000 Date: Thu, 20 Nov 2003 14:23:07 -0500 (EST) From: Payton X-X-Sender: payton@localhost.localdomain To: dovecot@procontrol.fi Subject: Re: [Dovecot] entourage + dovecot bug? In-Reply-To: <200311182242.55389@mail.CustomCDROM.de> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1149730866-1069356187=:21507" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 19:21:59 -0000 X-UID: 1905 Status: O Content-Length: 13866 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --8323328-1149730866-1069356187=:21507 Content-Type: TEXT/PLAIN; charset=US-ASCII Following that advice, I used tethereal to dump a test transaction of both setups. Comparing the IMAP chatter, there is basically no difference! In fact, on the setup which gave the error message, I don't see why it didn't just work - judging by the traffic. I have attached both logs, if that's of any help. Does anyone have any ideas? -Payton On Tue, 18 Nov 2003, Gunter Ohrner wrote: > Am Dienstag, 18. November 2003 17:36 schrieb Payton: > > I'm not certain if the problem lies in some tweak between 0.99.10 > > and 0.99.10.2 or if it is something with the red hat system itself, but I > > can't find anything. > > Did you dump the network traffic between Entourage and the working and failing > setup? This could probably help to track the problem. > > Greetings, > > Gunter --8323328-1149730866-1069356187=:21507 Content-Type: TEXT/plain; name="traffic_fails.txt" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="traffic_fails.txt" ICAwLjAwMDAwMCAgIDEwLjAuMTAuNDUgLT4gMTAuMC4xMC4yNTUgIFVEUCBT b3VyY2UgcG9ydDogNTY3MDcgIERlc3RpbmF0aW9uIHBvcnQ6IDIyMjINCiAg OC42NzM4MjYgICAxMC4wLjEwLjQ1IC0+IDEwLjAuMTAuMjQgICBUQ1AgNDk0 NTggPiBpbWFwIFtTWU5dIFNlcT0xNjMwMTk3Njc0IEFjaz0wIFdpbj0zMjc2 OCBMZW49MA0KICA4LjY3Mzg2MyAgIDEwLjAuMTAuMjQgLT4gMTAuMC4xMC40 NSAgIFRDUCBpbWFwID4gNDk0NTggW1NZTiwgQUNLXSBTZXE9MzYzOTQwNDQy MyBBY2s9MTYzMDE5NzY3NSBXaW49NTc5MiBMZW49MA0KICA4LjY3NDMwNCAg IDEwLjAuMTAuNDUgLT4gMTAuMC4xMC4yNCAgIFRDUCA0OTQ1OCA+IGltYXAg W0FDS10gU2VxPTE2MzAxOTc2NzUgQWNrPTM2Mzk0MDQ0MjQgV2luPTMzMzA0 IExlbj0wDQogIDguNjc0ODU1ICAgMTAuMC4xMC4yNCAtPiAxMC4wLjEwLjQ1 ICAgSU1BUCBSZXNwb25zZTogKiBPSyBkb3ZlY290IHJlYWR5Lg0KICA4Ljg2 MTg0NCAgIDEwLjAuMTAuNDUgLT4gMTAuMC4xMC4yNCAgIFRDUCA0OTQ1OCA+ IGltYXAgW0FDS10gU2VxPTE2MzAxOTc2NzUgQWNrPTM2Mzk0MDQ0NDMgV2lu PTMzMzA0IExlbj0wDQogIDguODYxODU2ICAgMTAuMC4xMC4yNCAtPiAxMC4w LjEwLjQ1ICAgSU1BUCBSZXNwb25zZTogDQogIDguODYzMTU1ICAgMTAuMC4x MC40NSAtPiAxMC4wLjEwLjI0ICAgSU1BUCBSZXF1ZXN0OiBBMDAwIENBUEFC SUxJVFkNCiAgOC44NjMxNjIgICAxMC4wLjEwLjI0IC0+IDEwLjAuMTAuNDUg ICBUQ1AgaW1hcCA+IDQ5NDU4IFtBQ0tdIFNlcT0zNjM5NDA0NDQ1IEFjaz0x NjMwMTk3NjkyIFdpbj01NzkyIExlbj0wDQogIDguODYzMzI3ICAgMTAuMC4x MC4yNCAtPiAxMC4wLjEwLjQ1ICAgSU1BUCBSZXNwb25zZTogKiBDQVBBQklM SVRZIElNQVA0cmV2MSBTT1JUIFRIUkVBRD1SRUZFUkVOQ0VTIE1VTFRJQVBQ RU5EIFVOU0VMRUNUIExJVEVSQUwrIElETEUgQ0hJTERSRU4gTElTVEVYVCBM SVNULVNVQlNDUklCRUQgQVVUSD1QTEFJTg0KICA4Ljg3NjUxMSAgIDEwLjAu MTAuNDUgLT4gMTAuMC4xMC4yNCAgIElNQVAgUmVxdWVzdDogQTAwMSBMT0dJ TiAicGF5dG9uIiAieHh4eHh4eHgiDQogIDguODc4MjUyICAgMTAuMC4xMC4y NCAtPiAxMC4wLjEwLjQ1ICAgSU1BUCBSZXNwb25zZTogQTAwMSBPSyBMb2dn ZWQgaW4uDQogIDkuMDYyMDIzICAgMTAuMC4xMC40NSAtPiAxMC4wLjEwLjI0 ICAgVENQIDQ5NDU4ID4gaW1hcCBbQUNLXSBTZXE9MTYzMDE5NzcyNCBBY2s9 MzYzOTQwNDYyMCBXaW49MzMzMDQgTGVuPTANCiAgOS4wNjIwMzkgICAxMC4w LjEwLjI0IC0+IDEwLjAuMTAuNDUgICBJTUFQIFJlc3BvbnNlOiANCiAgOS4w NjY4MTMgICAxMC4wLjEwLjQ1IC0+IDEwLjAuMTAuMjQgICBJTUFQIFJlcXVl c3Q6IEEwMDIgTElTVCAiIiAiIg0KICA5LjA2Njk3MiAgIDEwLjAuMTAuMjQg LT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9uc2U6ICogTElTVCAoXE5vc2Vs ZWN0KSAiLyIgIiINCiAgOS4yMjgzNzUgICAxMC4wLjEwLjQ1IC0+IDEwLjAu MTAuMjQgICBJTUFQIFJlcXVlc3Q6IEEwMDMgQ0FQQUJJTElUWQ0KICA5LjIy ODQ2NCAgIDEwLjAuMTAuMjQgLT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9u c2U6ICogQ0FQQUJJTElUWSBJTUFQNHJldjEgU09SVCBUSFJFQUQ9UkVGRVJF TkNFUyBNVUxUSUFQUEVORCBVTlNFTEVDVCBMSVRFUkFMKyBJRExFIENISUxE UkVOIExJU1RFWFQgTElTVC1TVUJTQ1JJQkVEDQogIDkuMjUyMzM4ICAgMTAu MC4xMC40NSAtPiAxMC4wLjEwLjI0ICAgSU1BUCBSZXF1ZXN0OiBBMDA0IFNF TEVDVCAiSU5CT1giDQogIDkuMzAyMzMwICAgMTAuMC4xMC4yNCAtPiAxMC4w LjEwLjQ1ICAgVENQIGltYXAgPiA0OTQ1OCBbQUNLXSBTZXE9MzYzOTQwNDgy MCBBY2s9MTYzMDE5Nzc3OSBXaW49NTc5MiBMZW49MA0KICA5LjMzNjMxOSAg IDEwLjAuMTAuMjQgLT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9uc2U6ICog RkxBR1MgKFxBbnN3ZXJlZCBcRmxhZ2dlZCBcRGVsZXRlZCBcU2VlbiBcRHJh ZnQgTm90SnVuayBKdW5rKQ0KICA5LjQxMjc1MiAgIDEwLjAuMTAuNDUgLT4g MTAuMC4xMC4yNCAgIElNQVAgUmVxdWVzdDogQTAwNSBMSVNUICIiICJJTkJP WCoiDQogIDkuNDEyODM1ICAgMTAuMC4xMC4yNCAtPiAxMC4wLjEwLjQ1ICAg VENQIGltYXAgPiA0OTQ1OCBbQUNLXSBTZXE9MzYzOTQwNTE1OCBBY2s9MTYz MDE5NzgwMiBXaW49NTc5MiBMZW49MA0KICA5LjQxMjk1OSAgIDEwLjAuMTAu MjQgLT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9uc2U6ICogTElTVCAoXE5v SW5mZXJpb3JzKSAiLyIgSU5CT1gNCiAgOS40MTczNzggICAxMC4wLjEwLjQ1 IC0+IDEwLjAuMTAuMjQgICBJTUFQIFJlcXVlc3Q6IEEwMDYgTFNVQiAiIiAi SU5CT1gqIg0KICA5LjQxNzUxMyAgIDEwLjAuMTAuMjQgLT4gMTAuMC4xMC40 NSAgIElNQVAgUmVzcG9uc2U6IEEwMDYgT0sgTHN1YiBjb21wbGV0ZWQuDQog IDkuNDYyMjg0ICAgMTAuMC4xMC40NSAtPiAxMC4wLjEwLjI0ICAgVENQIDQ5 NDU4ID4gaW1hcCBbQUNLXSBTZXE9MTYzMDE5NzgyNSBBY2s9MzYzOTQwNTI0 MSBXaW49MzMzMDQgTGVuPTANCiAgOS40OTAzMTAgICAxMC4wLjEwLjQ1IC0+ IDEwLjAuMTAuMjQgICBJTUFQIFJlcXVlc3Q6IEEwMDcgRkVUQ0ggMToqIChV SUQgRkxBR1MpDQogIDkuNDkwNDU5ICAgMTAuMC4xMC4yNCAtPiAxMC4wLjEw LjQ1ICAgSU1BUCBSZXNwb25zZTogKiAxIEZFVENIIChVSUQgNiBGTEFHUyAo XFJlY2VudCkpDQogIDkuNTg0Mzg1ICAgMTAuMC4xMC40NSAtPiAxMC4wLjEw LjI0ICAgSU1BUCBSZXF1ZXN0OiBBMDA4IFVJRCBGRVRDSCA2IChVSUQgRkxB R1MgSU5URVJOQUxEQVRFIFJGQzgyMi5TSVpFIFJGQzgyMi5IRUFERVIpDQog IDkuNTg3MjUzICAgMTAuMC4xMC4yNCAtPiAxMC4wLjEwLjQ1ICAgSU1BUCBS ZXNwb25zZTogKiAxIEZFVENIIChVSUQgNiBGTEFHUyAoXFJlY2VudCkgSU5U RVJOQUxEQVRFICIyMC1Ob3YtMjAwMyAxNzoxMDowNSAtMDUwMCIgUkZDODIy LlNJWkUgNzM5IFJGQzgyMi5IRUFERVIgezcyNn0NCiAgOS42NTc0MTIgICAx MC4wLjEwLjQ1IC0+IDEwLjAuMTAuMjQgICBJTUFQIFJlcXVlc3Q6IEEwMDkg TE9HT1VUDQogIDkuNjU3NTQ0ICAgMTAuMC4xMC4yNCAtPiAxMC4wLjEwLjQ1 ICAgSU1BUCBSZXNwb25zZTogKiBCWUUgTG9nZ2luZyBvdXQNCiAgOS42NTc5 NTEgICAxMC4wLjEwLjI0IC0+IDEwLjAuMTAuNDUgICBUQ1AgaW1hcCA+IDQ5 NDU4IFtGSU4sIEFDS10gU2VxPTM2Mzk0MDYyMjggQWNrPTE2MzAxOTc5MzUg V2luPTU3OTIgTGVuPTANCiAgOS42NTgyMzcgICAxMC4wLjEwLjQ1IC0+IDEw LjAuMTAuMjQgICBUQ1AgNDk0NTggPiBpbWFwIFtSU1QsIEFDS10gU2VxPTE2 MzAxOTc5MzUgQWNrPTM2Mzk0MDYyMjggV2luPTMzMjU4IExlbj0wDQogIDku NjU4MzAzICAgMTAuMC4xMC40NSAtPiAxMC4wLjEwLjI0ICAgVENQIDQ5NDU4 ID4gaW1hcCBbUlNUXSBTZXE9MTYzMDE5NzkzNSBBY2s9MCBXaW49MCBMZW49 MA0KIDE1LjQzODYwNCAgIDEwLjAuMTAuNDUgLT4gMTAuMC4xMC4yNTUgIFVE UCBTb3VyY2UgcG9ydDogNTY3MDggIERlc3RpbmF0aW9uIHBvcnQ6IDIyMjIN Cg== --8323328-1149730866-1069356187=:21507 Content-Type: TEXT/plain; name="traffic_works.txt" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="traffic_works.txt" ICAwLjAwMDAwMCAgIDEwLjAuMTAuNDUgLT4gMjI0LjAuMC4yNTEgIE1ETlMg U3RhbmRhcmQgcXVlcnkgcmVzcG9uc2UgU1JWIDAgMCA1NDggR2xhZGRlbi5s b2NhbCBUWFQgQSAxMC4wLjEwLjQ1DQogIDcuNjgzMjg4ICAgMTAuMC4xMC40 NSAtPiAxMC4wLjEwLjMxICAgU01CIFRyYW5zMiBSZXF1ZXN0LCBRVUVSWV9Q QVRIX0lORk8sIFF1ZXJ5IEZpbGUgQmFzaWMgSW5mbywgUGF0aDogXA0KICA3 LjY4NDk1OSAgIDEwLjAuMTAuMzEgLT4gMTAuMC4xMC40NSAgIFNNQiBUcmFu czIgUmVzcG9uc2UsIFFVRVJZX1BBVEhfSU5GTw0KICA3LjY5ODI1MyAgIDEw LjAuMTAuNDUgLT4gMTAuMC4xMC4yNTUgIEVOSVAgU291cmNlIHBvcnQ6IDU2 NzA1ICBEZXN0aW5hdGlvbiBwb3J0OiAyMjIyDQogIDcuODU5NzY4ICAgMTAu MC4xMC40NSAtPiAxMC4wLjEwLjMxICAgVENQIDUxNDQzID4gbmV0Ymlvcy1z c24gW0FDS10gU2VxPTM4MDU5MjQzNDUgQWNrPTI3MzMwNTg4ODggV2luPTY1 NTM1IExlbj0wDQogMTYuMzA1NTQ4ICAgMTAuMC4xMC40NSAtPiAxMC4wLjEw LjMxICAgVENQIDQ5NDU3ID4gaW1hcCBbU1lOXSBTZXE9MjYzMzkzODg4OCBB Y2s9MCBXaW49MzI3NjggTGVuPTANCiAxNi4zMDU1OTYgICAxMC4wLjEwLjMx IC0+IDEwLjAuMTAuNDUgICBUQ1AgaW1hcCA+IDQ5NDU3IFtTWU4sIEFDS10g U2VxPTM2MDA4NTg2NzggQWNrPTI2MzM5Mzg4ODkgV2luPTU3OTIgTGVuPTAN CiAxNi4zMDU4NzEgICAxMC4wLjEwLjQ1IC0+IDEwLjAuMTAuMzEgICBUQ1Ag NDk0NTcgPiBpbWFwIFtBQ0tdIFNlcT0yNjMzOTM4ODg5IEFjaz0zNjAwODU4 Njc5IFdpbj0zMzMwNCBMZW49MA0KIDE2LjMwNzEzMCAgIDEwLjAuMTAuMzEg LT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9uc2U6ICogT0sgZG92ZWNvdCBy ZWFkeS4NCiAxNi40NjQ4NDAgICAxMC4wLjEwLjQ1IC0+IDEwLjAuMTAuMzEg ICBUQ1AgNDk0NTcgPiBpbWFwIFtBQ0tdIFNlcT0yNjMzOTM4ODg5IEFjaz0z NjAwODU4Njk4IFdpbj0zMzMwNCBMZW49MA0KIDE2LjQ2NDg4MyAgIDEwLjAu MTAuMzEgLT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9uc2U6IA0KIDE2LjQ2 NTk0NiAgIDEwLjAuMTAuNDUgLT4gMTAuMC4xMC4zMSAgIElNQVAgUmVxdWVz dDogQTAwMCBDQVBBQklMSVRZDQogMTYuNDY1OTYxICAgMTAuMC4xMC4zMSAt PiAxMC4wLjEwLjQ1ICAgVENQIGltYXAgPiA0OTQ1NyBbQUNLXSBTZXE9MzYw MDg1ODcwMCBBY2s9MjYzMzkzODkwNiBXaW49NTc5MiBMZW49MA0KIDE2LjQ2 NjIzNCAgIDEwLjAuMTAuMzEgLT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9u c2U6ICogQ0FQQUJJTElUWSBJTUFQNHJldjEgU09SVCBUSFJFQUQ9UkVGRVJF TkNFUyBNVUxUSUFQUEVORCBVTlNFTEVDVCBMSVRFUkFMKyBJRExFIENISUxE UkVOIExJU1RFWFQgTElTVC1TVUJTQ1JJQkVEIEFVVEg9UExBSU4NCiAxNi40 NzY0MDIgICAxMC4wLjEwLjQ1IC0+IDEwLjAuMTAuMzEgICBJTUFQIFJlcXVl c3Q6IEEwMDEgTE9HSU4gInBheXRvbiIgInh4eHh4eHh4Ig0KIDE2LjQ3Nzc1 MCAgIDEwLjAuMTAuMzEgLT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9uc2U6 IEEwMDEgT0sgTG9nZ2VkIGluLg0KIDE2LjY2NDk4NyAgIDEwLjAuMTAuNDUg LT4gMTAuMC4xMC4zMSAgIFRDUCA0OTQ1NyA+IGltYXAgW0FDS10gU2VxPTI2 MzM5Mzg5MzggQWNrPTM2MDA4NTg4NzUgV2luPTMzMzA0IExlbj0wDQogMTYu NjY1MDI5ICAgMTAuMC4xMC4zMSAtPiAxMC4wLjEwLjQ1ICAgSU1BUCBSZXNw b25zZTogDQogMTYuNjY3NzQ0ICAgMTAuMC4xMC40NSAtPiAxMC4wLjEwLjMx ICAgSU1BUCBSZXF1ZXN0OiBBMDAyIExJU1QgIiIgIiINCiAxNi42NjgwMTAg ICAxMC4wLjEwLjMxIC0+IDEwLjAuMTAuNDUgICBJTUFQIFJlc3BvbnNlOiAq IExJU1QgKFxOb3NlbGVjdCkgIi8iICIiDQogMTYuODI1MTA2ICAgMTAuMC4x MC40NSAtPiAxMC4wLjEwLjMxICAgSU1BUCBSZXF1ZXN0OiBBMDAzIENBUEFC SUxJVFkNCiAxNi44MjU1MjUgICAxMC4wLjEwLjMxIC0+IDEwLjAuMTAuNDUg ICBJTUFQIFJlc3BvbnNlOiAqIENBUEFCSUxJVFkgSU1BUDRyZXYxIFNPUlQg VEhSRUFEPVJFRkVSRU5DRVMgTVVMVElBUFBFTkQgVU5TRUxFQ1QgTElURVJB TCsgSURMRSBDSElMRFJFTiBMSVNURVhUIExJU1QtU1VCU0NSSUJFRA0KIDE2 Ljg1MjgwOSAgIDEwLjAuMTAuNDUgLT4gMTAuMC4xMC4zMSAgIElNQVAgUmVx dWVzdDogQTAwNCBTRUxFQ1QgIklOQk9YIg0KIDE2Ljg2NjEzOCAgIDEwLjAu MTAuMzEgLT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9uc2U6ICogRkxBR1Mg KFxBbnN3ZXJlZCBcRmxhZ2dlZCBcRGVsZXRlZCBcU2VlbiBcRHJhZnQpDQog MTYuOTQ0MTQwICAgMTAuMC4xMC40NSAtPiAxMC4wLjEwLjMxICAgSU1BUCBS ZXF1ZXN0OiBBMDA1IExJU1QgIiIgIklOQk9YKiINCiAxNi45NDQ3MTQgICAx MC4wLjEwLjMxIC0+IDEwLjAuMTAuNDUgICBJTUFQIFJlc3BvbnNlOiAqIExJ U1QgKFxOb0luZmVyaW9ycykgIi8iIElOQk9YDQogMTYuOTUwMjU3ICAgMTAu MC4xMC40NSAtPiAxMC4wLjEwLjMxICAgSU1BUCBSZXF1ZXN0OiBBMDA2IExT VUIgIiIgIklOQk9YKiINCiAxNi45NTA1MDggICAxMC4wLjEwLjMxIC0+IDEw LjAuMTAuNDUgICBJTUFQIFJlc3BvbnNlOiBBMDA2IE9LIExzdWIgY29tcGxl dGVkLg0KIDE3LjAyMzIwNiAgIDEwLjAuMTAuNDUgLT4gMTAuMC4xMC4zMSAg IElNQVAgUmVxdWVzdDogQTAwNyBGRVRDSCAxOiogKFVJRCBGTEFHUykNCiAx Ny4wMjM3ODUgICAxMC4wLjEwLjMxIC0+IDEwLjAuMTAuNDUgICBJTUFQIFJl c3BvbnNlOiAqIDEgRkVUQ0ggKFVJRCAxMCBGTEFHUyAoXFJlY2VudCkpDQog MTcuMDY1MTg2ICAgMTAuMC4xMC40NSAtPiAxMC4wLjEwLjMxICAgVENQIDQ5 NDU3ID4gaW1hcCBbQUNLXSBTZXE9MjYzMzkzOTA2NyBBY2s9MzYwMDg1OTUz MyBXaW49MzMzMDQgTGVuPTANCiAxNy40ODM1NzAgICAxMC4wLjEwLjQ1IC0+ IDEwLjAuMTAuMzEgICBJTUFQIFJlcXVlc3Q6IEEwMDggVUlEIEZFVENIIDEw IChVSUQgRkxBR1MgSU5URVJOQUxEQVRFIFJGQzgyMi5TSVpFIFJGQzgyMi5I RUFERVIpDQogMTcuNDg0MzAzICAgMTAuMC4xMC4zMSAtPiAxMC4wLjEwLjQ1 ICAgSU1BUCBSZXNwb25zZTogKiAxIEZFVENIIChVSUQgMTAgRkxBR1MgKFxS ZWNlbnQpIElOVEVSTkFMREFURSAiMjAtTm92LTIwMDMgMTc6MDk6NTUgLTA1 MDAiIFJGQzgyMi5TSVpFIDcwNiBSRkM4MjIuSEVBREVSIHs2OTN9DQogMTcu NjY1NDExICAgMTAuMC4xMC40NSAtPiAxMC4wLjEwLjMxICAgVENQIDQ5NDU3 ID4gaW1hcCBbQUNLXSBTZXE9MjYzMzkzOTEzNyBBY2s9MzYwMDg2MDM2OCBX aW49MzMzMDQgTGVuPTANCiAxNy45NTU5OTQgICAxMC4wLjEwLjQ1IC0+IDEw LjAuMTAuMzEgICBJTUFQIFJlcXVlc3Q6IEEwMDkgU1RBVFVTICJEZWxldGVk IEl0ZW1zIiAoVU5TRUVOKQ0KIDE3Ljk1NjQ4MyAgIDEwLjAuMTAuMzEgLT4g MTAuMC4xMC40NSAgIElNQVAgUmVzcG9uc2U6IEEwMDkgTk8gTWFpbGJveCBk b2Vzbid0IGV4aXN0OiBEZWxldGVkIEl0ZW1zDQogMTguMDM4OTczICAgMTAu MC4xMC40NSAtPiAxMC4wLjEwLjMxICAgSU1BUCBSZXF1ZXN0OiBBMDEwIFNU QVRVUyAiRHJhZnRzIiAoVU5TRUVOKQ0KIDE4LjAzOTQxMyAgIDEwLjAuMTAu MzEgLT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9uc2U6IEEwMTAgTk8gTWFp bGJveCBkb2Vzbid0IGV4aXN0OiBEcmFmdHMNCiAxOC4wNjU1OTggICAxMC4w LjEwLjQ1IC0+IDEwLjAuMTAuMzEgICBUQ1AgNDk0NTcgPiBpbWFwIFtBQ0td IFNlcT0yNjMzOTM5MjA2IEFjaz0zNjAwODYwNDUzIFdpbj0zMzMwNCBMZW49 MA0KIDE4LjA2NTcwOSAgIDEwLjAuMTAuNDUgLT4gMTAuMC4xMC4zMSAgIElN QVAgUmVxdWVzdDogQTAxMSBTVEFUVVMgIm1haWwvc2VudC1tYWlsIiAoVU5T RUVOKQ0KIDE4LjA2NTgzMyAgIDEwLjAuMTAuMzEgLT4gMTAuMC4xMC40NSAg IElNQVAgUmVzcG9uc2U6IEEwMTEgTk8gTWFpbGJveCBkb2Vzbid0IGV4aXN0 OiBtYWlsL3NlbnQtbWFpbA0KIDE4LjA3NDA4OSAgIDEwLjAuMTAuNDUgLT4g MTAuMC4xMC4zMSAgIElNQVAgUmVxdWVzdDogQTAxMiBTVEFUVVMgIm1haWwv c2F2ZWQtbWVzc2FnZXMiIChVTlNFRU4pDQogMTguMDc0MjE4ICAgMTAuMC4x MC4zMSAtPiAxMC4wLjEwLjQ1ICAgSU1BUCBSZXNwb25zZTogQTAxMiBOTyBN YWlsYm94IGRvZXNuJ3QgZXhpc3Q6IG1haWwvc2F2ZWQtbWVzc2FnZXMNCiAx OC4xMTUwMDkgICAxMC4wLjEwLjQ1IC0+IDEwLjAuMTAuMzEgICBJTUFQIFJl cXVlc3Q6IEEwMTMgU1RBVFVTICJtYWlsL3NlbnQtbWFpbC1zZXAtMjAwMyIg KFVOU0VFTikNCiAxOC4xMTU1MDMgICAxMC4wLjEwLjMxIC0+IDEwLjAuMTAu NDUgICBJTUFQIFJlc3BvbnNlOiBBMDEzIE5PIE1haWxib3ggZG9lc24ndCBl eGlzdDogbWFpbC9zZW50LW1haWwtc2VwLTIwMDMNCiAxOC4xMjc5NzQgICAx MC4wLjEwLjQ1IC0+IDEwLjAuMTAuMzEgICBJTUFQIFJlcXVlc3Q6IEEwMTQg U1RBVFVTICJtYWlsL3Rlc3QgZm9sZGVyIiAoVU5TRUVOKQ0KIDE4LjEyODEx NyAgIDEwLjAuMTAuMzEgLT4gMTAuMC4xMC40NSAgIElNQVAgUmVzcG9uc2U6 IEEwMTQgTk8gTWFpbGJveCBkb2Vzbid0IGV4aXN0OiBtYWlsL3Rlc3QgZm9s ZGVyDQogMTguMTUxOTgwICAgMTAuMC4xMC40NSAtPiAxMC4wLjEwLjMxICAg SU1BUCBSZXF1ZXN0OiBBMDE1IFNUQVRVUyAiU2VudCBJdGVtcyIgKFVOU0VF TikNCiAxOC4xNTIxMTcgICAxMC4wLjEwLjMxIC0+IDEwLjAuMTAuNDUgICBJ TUFQIFJlc3BvbnNlOiBBMDE1IE5PIE1haWxib3ggZG9lc24ndCBleGlzdDog U2VudCBJdGVtcw0KIDE4LjI2NTczNiAgIDEwLjAuMTAuNDUgLT4gMTAuMC4x MC4zMSAgIFRDUCA0OTQ1NyA+IGltYXAgW0FDS10gU2VxPTI2MzM5Mzk0MTMg QWNrPTM2MDA4NjA3MDAgV2luPTMzMzA0IExlbj0wDQogMjAuNTc4MzQ3ICAg MTAuMC4xMC40NSAtPiAxMC4wLjEwLjMxICAgSU1BUCBSZXF1ZXN0OiBBMDE2 IExPR09VVA0KIDIwLjU3ODc4OCAgIDEwLjAuMTAuMzEgLT4gMTAuMC4xMC40 NSAgIElNQVAgUmVzcG9uc2U6ICogQllFIExvZ2dpbmcgb3V0DQogMjAuNTc4 ODA0ICAgMTAuMC4xMC40NSAtPiAxMC4wLjEwLjMxICAgVENQIDQ5NDU3ID4g aW1hcCBbUlNULCBBQ0tdIFNlcT0yNjMzOTM5NDI2IEFjaz0zNjAwODYwNzAw IFdpbj0zMzMwNCBMZW49MA0KIDIwLjU3OTA4NyAgIDEwLjAuMTAuNDUgLT4g MTAuMC4xMC4zMSAgIFRDUCA0OTQ1NyA+IGltYXAgW1JTVF0gU2VxPTI2MzM5 Mzk0MjYgQWNrPTAgV2luPTAgTGVuPTANCiAyMS4zNjk0NTEgICAxMC4wLjEw LjQ1IC0+IDEwLjAuMTAuMjU1ICBFTklQIFNvdXJjZSBwb3J0OiA1NjcwNiAg RGVzdGluYXRpb24gcG9ydDogMjIyMg0K --8323328-1149730866-1069356187=:21507-- From zach.bagnall@bulletinwireless.com Thu Nov 20 22:32:52 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B618F238B7; Thu, 20 Nov 2003 22:32:52 +0200 (EET) Received: from hawk.bulletinwireless.net (ns1.jungledrum.co.nz [210.54.149.34]) by danu.procontrol.fi (Postfix) with ESMTP id 23D492385D for ; Thu, 20 Nov 2003 22:32:18 +0200 (EET) Received: from localhost (localhost.localdomain [127.0.0.1]) by hawk.bulletinwireless.net (Postfix) with ESMTP id 8C0F4660C; Fri, 21 Nov 2003 09:32:08 +1300 (NZDT) Received: from hawk.bulletinwireless.net ([127.0.0.1]) by localhost (hawk [127.0.0.1:10024]) (amavisd-new) with LMTP id 32593-01-13; Fri, 21 Nov 2003 09:32:06 +1300 (NZDT) Received: from piranha (piranha.intra.jungledrum.co.nz [192.168.1.13]) by hawk.bulletinwireless.net (Postfix) with ESMTP id 167A86651; Fri, 21 Nov 2003 09:32:06 +1300 (NZDT) Date: Fri, 21 Nov 2003 09:32:02 +1300 From: Zach Bagnall To: Timo Sirainen Subject: Re: [Dovecot] SSL and certificate authorities. Message-Id: <20031121093202.28368435.zach.bagnall@bulletinwireless.com> In-Reply-To: <1069345731.16670.21.camel@hurina> References: <20031118155819.0bd8dc6c.zach.bagnall@bulletinwireless.com> <1069345731.16670.21.camel@hurina> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.9.6claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Fri__21_Nov_2003_09_32_02_+1300_MDFaSlTWVOmOSrcC" X-Virus-Scanned: by amavisd-new cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 20:32:53 -0000 X-UID: 1906 Status: O Content-Length: 1602 --Signature=_Fri__21_Nov_2003_09_32_02_+1300_MDFaSlTWVOmOSrcC Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit On Thu, 20 Nov 2003 18:28:51 +0200, Timo Sirainen wrote: > What exactly does this patch do? Gives client a list of accepted CAs, > but it doesn't look like it actually requires client to provide a > valid certificate? On Tue, 18 Nov 2003 11:03:08 +1300, James Tyson wrote: > Also, is there a configuration directive for dovecot to add the > issuers ca bundle similar to apache's SSLCACertificateFile? I'm no SSL expert, but I took the requested feature to be a way to "make additional certificates available in order to complete a certificate chain". The apache equivalent, SSLCACertificateFile refers (http://httpd.apache.org/docs-2.0/mod/mod_ssl.html#sslcacertificatefile )to client authentication but that is just one use. For example, Verisign 128 bit certs require an "intermediate certificate" to be loaded into Apache to complete the chain and be accepted by SSL clients. See http://www.verisign.com/support/install/apache/v00g.html The ssl_ca_file option is just that - a way to make extra certs available when required. Zach. --Signature=_Fri__21_Nov_2003_09_32_02_+1300_MDFaSlTWVOmOSrcC Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/vSTF4jDFYT+aqaIRAmyCAKDmCE1sIDcV+E7+6Szv9VQuzB5+vwCfaEhV XNadaSnAfQoGml/HRLuLI5w= =uemN -----END PGP SIGNATURE----- --Signature=_Fri__21_Nov_2003_09_32_02_+1300_MDFaSlTWVOmOSrcC-- From mem@mv.mv.com Thu Nov 20 23:39:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4F4BE238B7; Thu, 20 Nov 2003 23:39:16 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by danu.procontrol.fi (Postfix) with SMTP id D97ED23841 for ; Thu, 20 Nov 2003 23:38:41 +0200 (EET) Received: (qmail 28351 invoked from network); 20 Nov 2003 16:38:37 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 20 Nov 2003 16:38:37 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 19460 invoked by uid 101); 20 Nov 2003 16:38:37 -0500 From: "Mark E. Mallett" Date: Thu, 20 Nov 2003 16:38:37 -0500 To: Brook Humphrey Subject: Re: [Dovecot] 0.99.10.2 released Message-ID: <20031120213837.GJ11323@iridium.mv.net> References: <1068490809.2794.7.camel@hurina> <200311200721.56873.bah@webmedic.net> <3FBCDDAC.5050700@harvee.org> <200311200831.01327.bah@webmedic.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200311200831.01327.bah@webmedic.net> User-Agent: Mutt/1.4.1i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2003 21:39:16 -0000 X-UID: 1907 Status: O Content-Length: 2150 On Thu, Nov 20, 2003 at 08:31:01AM -0800, Brook Humphrey wrote: > On Thursday 20 November 2003 07:28 am, you wrote: > > Brook Humphrey wrote: > > > On Wednesday 19 November 2003 11:52 am, Eric S. Johansson wrote: > > >>whoops, spoke too soon. delay are up to the 1-2 minute range for INBOX > > >>and 30 second delays are not uncommon with all the rest. > > > > > > somebody out there still uses mbox? Hm wonders never cease. Sounds like religion, there are inexplicably strong opinions on both sides. IMHO neither mbox or maildir are perfect, both have problems. I find mbox good for folders that never get very large. > > mutt. Haven't figured out quite how to make global procmail deliver > > maildir to my mailboxes and mbox to her's. heck, just trying to figure > > out how to get procmail to deliver maildir everywhere is a bit trying. > > On the gripping hand, if mutt can do maildir with no change of user > > interface...hmmm time to research something. > > Hm I use maildrop here and you can have individual rules for each user. These > are stored in the users home directory. With maildrop i have it sorting spam > and virii for me through spamassassin and anomy sanitizer. Really it could > not be easier. I do believe bot dont quote me in this that maildrop does > support mbox but I'm not sure. We also use a local delivery agent that allows the choice of mailbox format for new boxes, or will honor the current format for an existing box. > I dont use mutt but I do know that pine does support maildir. In some sense... last I knew there were patches available for pine, but the author of pine was very anti-maildir and refused to support it, ever. Has that changed? > I did however > look through the muttrc. Uhg. Anyway I see others on the net talking about it > but I see no one showing how they did it. Mutt will honor the existing format, either maildir or mbox (or MH or MMDF). New mailboxes are created with the type specified by "mbox_type" - if not set, the typical default is mbox. As mentioned, mutt will also support pop and imap access, so it doesn't necessarily have to create boxes directly. mm From tsg@cctg.com Fri Nov 21 02:54:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C9960238B7; Fri, 21 Nov 2003 02:54:27 +0200 (EET) Received: from tercesi.cctg.com (tercesi.cctg.com [66.80.224.100]) by danu.procontrol.fi (Postfix) with ESMTP id 45B3C2385D for ; Fri, 21 Nov 2003 02:53:55 +0200 (EET) Received: from tercesi.cctg.com (localhost [127.0.0.1])hAL0rsma008623 for ; Thu, 20 Nov 2003 16:53:54 -0800 (PST) X-Envelope-From: tsg@cctg.com X-Envelope-To: Received: (from nobody@localhost) by tercesi.cctg.com (8.12.10/8.12.6/Submit) id hAL0rrcA008622; Thu, 20 Nov 2003 16:53:53 -0800 (PST) X-Authentication-Warning: tercesi.cctg.com: nobody set sender to tsg@cctg.com using -f Received: from 66.80.224.60 (SquirrelMail authenticated user tsg9) by tercesi.cctg.com with HTTP; Thu, 20 Nov 2003 16:53:53 -0800 (PST) Message-ID: <1919.66.80.224.60.1069376033.squirrel@tercesi.cctg.com> Date: Thu, 20 Nov 2003 16:53:53 -0800 (PST) From: "Ted S. Garaventa" To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 X-Priority: 3 Importance: Normal Subject: [Dovecot] Compiling Dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: tsg@cctg.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 00:54:28 -0000 X-UID: 1908 Status: O Just found out about Dovecot and it seems to work great. My problem is that it compiles and runs on Redhat just fine. On the other hand it compiles on suse and solaris but will not work. When I start dovecot it silently stops running. No entries in the log or anything. Are there any specific instructions for compiling it on solaris x86 using gcc. Thanks From dinh.viet.hoa@free.fr Fri Nov 21 03:25:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2794C238B7; Fri, 21 Nov 2003 03:25:50 +0200 (EET) Received: from postfix4-2.free.fr (postfix4-2.free.fr [213.228.0.176]) by danu.procontrol.fi (Postfix) with ESMTP id 02A3023841 for ; Fri, 21 Nov 2003 03:25:18 +0200 (EET) Received: from homer.priv (lns-vlq-3-82-64-215-111.adsl.proxad.net [82.64.215.111]) by postfix4-2.free.fr (Postfix) with ESMTP id 8483DC094 for ; Fri, 21 Nov 2003 02:25:11 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id hAL1PFP5011437 for ; Fri, 21 Nov 2003 02:25:15 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id hAL1PFII011435; Fri, 21 Nov 2003 02:25:15 +0100 Date: Fri, 21 Nov 2003 02:24:46 +0100 From: DINH Viet Hoa To: dovecot@procontrol.fi Message-ID: In-Reply-To: <1919.66.80.224.60.1069376033.squirrel@tercesi.cctg.com> References: <1919.66.80.224.60.1069376033.squirrel@tercesi.cctg.com> Subject: Re: [Dovecot] Compiling Dovecot X-Mailer: etPan - version 0.1 - new generation MIME-Version: 1.0 Content-Type: multipart/signed; boundary="3fbd697a_3346f019_2ba2"; micalg="pgp-sha1"; protocol="application/pgp-signature" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 01:25:50 -0000 X-UID: 1909 Status: O Content-Length: 1082 --3fbd697a_3346f019_2ba2 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Ted S. Garaventa wrote : > Just found out about Dovecot and it seems to work great. >=20 > My problem is that it compiles and runs on Redhat just fine. On the oth= er > hand it compiles on suse and solaris but will not work. When I start > dovecot it silently stops running. No entries in the log or anything. > Are there any specific instructions for compiling it on solaris x86 usi= ng > gcc. what does truss dovcot answer ? --=20 DINH V. Hoa, =22s/=5E=5C(=5C(=5C=5C.=5C=7C=5B=5E=5C=5B=5D=5C=7C=5C=5B=5C(=5C=5E.=5C=7C= =5B=5E=5E=5D=5C)=5B=5E=5D=5D*=5C=5D=5C)*=5C)=5C(=5C=5C=5B=5E=5C*=5B=5D=5C= )/=5C1=5C=5C=5C4/=22 -- St=E9phane CHAZELAS --3fbd697a_3346f019_2ba2 Content-Type: application/pgp-signature Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA/vWl67w+pfAWHa3MRAnQbAJwNP5DX9zmKhNLH6Wck9498wBWtowCff7pj UspgCOfBCKSX1Hg5tRtXR4o= =Wa52 -----END PGP SIGNATURE----- --3fbd697a_3346f019_2ba2-- From bah@webmedic.net Fri Nov 21 04:19:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4BF18238C7; Fri, 21 Nov 2003 04:19:56 +0200 (EET) Received: from mandrake.webmedic.net (pppoe64-91-122-13.vcr.centurytel.net [64.91.122.13]) by danu.procontrol.fi (Postfix) with ESMTP id 93E8B2385D for ; Fri, 21 Nov 2003 04:19:21 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mandrake.webmedic.net (Postfix) with ESMTP id 72A638C2AA for ; Thu, 20 Nov 2003 18:19:17 -0800 (PST) From: Brook Humphrey Organization: Mobile PC Medic To: dovecot@procontrol.fi Date: Thu, 20 Nov 2003 18:19:16 -0800 User-Agent: KMail/1.5.93 References: <1068490809.2794.7.camel@hurina> <20031120213837.GJ11323@iridium.mv.net> <3FBD5840.4060801@jones.dk> In-Reply-To: <3FBD5840.4060801@jones.dk> X-Crash-Handler: MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200311201819.16404.bah@webmedic.net> Subject: [Dovecot] Re: Pine and Maildir (Was: 0.99.10.2 released) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 02:19:56 -0000 X-UID: 1910 Status: O On Thursday 20 November 2003 04:11 pm, you wrote: > Please tell me if there is somewhere patches actively supported, so I > can add back the Maildir support in the package. > > Oh, or even better: Extend dovecot to include a shared library for use > with php4 and other packages :-) a version of pine with these patches is actively maintained by the mandrake community. I happen to use them occasionaly. Mostly here though i use kmail or squirrelmail. -- New and improved with advanced outlook crash handler. -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- Brook Humphrey Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com Holiness unto the Lord -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- From miquels@cistron.net Fri Nov 21 12:19:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6138B238B7; Fri, 21 Nov 2003 12:19:37 +0200 (EET) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by danu.procontrol.fi (Postfix) with ESMTP id 94FA52385D for ; Fri, 21 Nov 2003 12:19:04 +0200 (EET) Received: from a80-126-193-215.adsl.xs4all.nl ([80.126.193.215] helo=drinkel.cistron.nl) by smtp.cistron-office.nl with asmtp (Exim 3.35 #1 (Debian)) id 1AN8NS-00073k-00 for ; Fri, 21 Nov 2003 11:19:02 +0100 Date: Fri, 21 Nov 2003 11:18:59 +0100 From: Miquel van Smoorenburg To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released Message-ID: <20031121101859.GC15458@drinkel.cistron.nl> References: <1068490809.2794.7.camel@hurina> <200311200721.56873.bah@webmedic.net> <3FBCDDAC.5050700@harvee.org> <200311200831.01327.bah@webmedic.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <200311200831.01327.bah@webmedic.net> (from bah@webmedic.net on Thu, Nov 20, 2003 at 17:31:01 +0100) X-Mailer: Balsa 2.0.15 Lines: 21 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dovecot@procontrol.fi List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 10:19:37 -0000 X-UID: 1911 Status: O On Thu, 20 Nov 2003 17:31:01, Brook Humphrey wrote: > I dont use mutt but I do know that pine does support maildir. Not out of the box. The author of the underlying c-client support library refuses to add Maildir support. I cleaned up and rewrote the maildir driver once, like many people did before me and after me, but it will always be buggy unless the upstream author incorporates it into c-client proper. I tried, but I'm convinced it will never happen. > I did however > look through the muttrc. Uhg. Anyway I see others on the net talking about it > but I see no one showing how they did it. Mutt can use imap servers though > and this may be a good solution. You could put here imap settings in the > ~/.muttrc. It couldn't be easier with mutt - you do not need to do anything special. Mutt autodetects the mailbox format. Point it to a mbox - it will work. Point it to a maildir directory - it will work. Etc. That's why there are no instructions on how to use maildirs - you don't need any. Mike. From Clive.Jones+nospam+procontrol.fi@meridian.co.uk Fri Nov 21 12:55:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BA65E238C7; Fri, 21 Nov 2003 12:55:19 +0200 (EET) Received: from greenwich.meridian-audio.ltd.uk (greenwich.meridian-audio.ltd.uk [194.203.67.114]) by danu.procontrol.fi (Postfix) with ESMTP id BBB2F238B7 for ; Fri, 21 Nov 2003 12:54:47 +0200 (EET) Received: from CLIVE (clive.uk.ma-int.com [10.76.18.1]) by greenwich.meridian-audio.ltd.uk (Postfix) with SMTP id E1FAF2D0B; Fri, 21 Nov 2003 10:54:45 +0000 (GMT) Message-ID: <056101c3b01d$e0397d30$01124c0a@uk.maint.com> From: "Clive Jones" To: "Timo Sirainen" References: <0c9e01c3a2d0$60faeae0$01124c0a@uk.maint.com> <1068314769.9815.26.camel@hurina> <047001c3adc6$950f17b0$01124c0a@uk.maint.com> <1069351237.16663.53.camel@hurina> Subject: Re: [Dovecot] pop3-login process leakage Date: Fri, 21 Nov 2003 10:54:04 -0000 Organization: Meridian Audio MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4927.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4927.1200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 10:55:19 -0000 X-UID: 1912 Status: O Content-Length: 1047 On Tue, 2003-11-18 at 13:24, Clive Jones wrote: > Looks like this process hasn't even accepted a pop3 connection yet.. Do > they all do this? It seems there are a tiny handful of live, working instances (which I don't want to touch, since they represent instances being used by real clients that I don't want to degrade service for) and many hundreds of old ones left lying around. Those all look essentially similar, though I must admit I've not checked every single one of them. (-8 > Ask these too: > > p closing_down $1 = 1 > p process_per_connection $2 = 1 > p ssl_proxies->nodes_count Error accessing memory address 0x10: Invalid argument. (gdb) p ssl_proxies $3 = (struct hash_table *) 0x0 > p io_master $4 = (struct io *) 0x151e0 (gdb) p *io_master $5 = {next = 0x0, fd = 3, condition = 1, destroyed = 0, callback = 0x4c30 , context = 0x0} > And have you changed login_processes_count, login_max_processes_count or > login_max_logging_users settings? No - they've been left at the default. Regards, --Clive. From esj@harvee.org Fri Nov 21 16:26:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 22955238C7; Fri, 21 Nov 2003 16:26:30 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 9833F2385D for ; Fri, 21 Nov 2003 16:25:52 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id hALEPi2x032721 for ; Fri, 21 Nov 2003 09:25:48 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Fri, 21 Nov 2003 09:25:38 -0500 Message-ID: <3FBE1FD7.4060506@harvee.org> Date: Fri, 21 Nov 2003 09:23:19 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released References: <1068490809.2794.7.camel@hurina> <200311200721.56873.bah@webmedic.net> <3FBCDDAC.5050700@harvee.org> <200311200831.01327.bah@webmedic.net> <20031121101859.GC15458@drinkel.cistron.nl> In-Reply-To: <20031121101859.GC15458@drinkel.cistron.nl> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:031121:dovecot@procontrol.fi:6fec7b4602fe82a9 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 14:26:30 -0000 X-UID: 1913 Status: O Content-Length: 1407 Miquel van Smoorenburg wrote: > On Thu, 20 Nov 2003 17:31:01, Brook Humphrey wrote: > >>I dont use mutt but I do know that pine does support maildir. > > > Not out of the box. The author of the underlying c-client support > library refuses to add Maildir support. I cleaned up and rewrote the > maildir driver once, like many people did before me and after me, > but it will always be buggy unless the upstream author incorporates > it into c-client proper. I tried, but I'm convinced it will never happen. by any chance would this be the same author who keeps refusing to document mbx format mailboxes and keeps claiming that a new indexed mailbox format is just around the corner? > It couldn't be easier with mutt - you do not need to do anything special. > Mutt autodetects the mailbox format. Point it to a mbox - it will work. > Point it to a maildir directory - it will work. Etc. That's why there > are no instructions on how to use maildirs - you don't need any. there you go, eliminating one more of my excuses for not making the conversion. Next thing you know, you will tell me that changing sendmail over to use maildrop for delivery of messages in maildir format is trivially easy and conversion of all existing mailboxes almost does itself. damm, there goes my weekend :-) ---eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From jonas@jones.dk Fri Nov 21 02:12:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5DF4F238B7; Fri, 21 Nov 2003 02:12:20 +0200 (EET) Received: from auryn.jones.dk (cpe.atm0-0-0-120101.0x3ef24ca2.albnxx2.customer.tele.dk [62.242.76.162]) by danu.procontrol.fi (Postfix) with ESMTP id BE0B62385D for ; Fri, 21 Nov 2003 02:11:46 +0200 (EET) Received: from jones.dk (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id 118A03F2730; Fri, 21 Nov 2003 01:11:45 +0100 (CET) Message-ID: <3FBD5840.4060801@jones.dk> Date: Fri, 21 Nov 2003 01:11:44 +0100 From: Jonas Smedegaard User-Agent: Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.5) Gecko/20031107 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Mark E. Mallett" References: <1068490809.2794.7.camel@hurina> <200311200721.56873.bah@webmedic.net> <3FBCDDAC.5050700@harvee.org> <200311200831.01327.bah@webmedic.net> <20031120213837.GJ11323@iridium.mv.net> In-Reply-To: <20031120213837.GJ11323@iridium.mv.net> X-Enigmail-Version: 0.81.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Fri, 21 Nov 2003 16:29:27 +0200 cc: Brook Humphrey cc: dovecot@procontrol.fi Subject: [Dovecot] Pine and Maildir (Was: 0.99.10.2 released) X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dr@jones.dk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 00:12:20 -0000 X-UID: 1914 Status: O Content-Length: 1568 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Mark E. Mallett wrote: | On Thu, Nov 20, 2003 at 08:31:01AM -0800, Brook Humphrey wrote: (...) |>I dont use mutt but I do know that pine does support maildir. | | | In some sense... last I knew there were patches available for pine, | but the author of pine was very anti-maildir and refused to support it, | ever. Has that changed? As far as I am aware, noone has worked on the unofficial pine/c-client patches to support Maildir for a couple of years. Here is the traces I have found about them - none of the patches are up-to-date: http://debian.jones.dk/official/uw-imap/changelog.maildir/ I maintain the c-client library (which is used in Pine, uw-imap, php4 among others) for Debian and has recently dropped the no longer maintained patches as I am not skilled myself to maintain them and they are buggy and incomplete as is, and possibly has security holes. Please tell me if there is somewhere patches actively supported, so I can add back the Maildir support in the package. Oh, or even better: Extend dovecot to include a shared library for use with php4 and other packages :-) ~ - Jonas - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er nær: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQE/vVhAn7DbMsAkQLgRAqqqAJ0SIrjU6NgLdGeqVWdA9gFHPxsdFACgpkNy gjyv2NJq2gUVeH3K3pk2QJE= =vH7C -----END PGP SIGNATURE----- From dinh.viet.hoa@free.fr Fri Nov 21 17:03:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5BB3D238D1; Fri, 21 Nov 2003 17:03:50 +0200 (EET) Received: from postfix4-2.free.fr (postfix4-2.free.fr [213.228.0.176]) by danu.procontrol.fi (Postfix) with ESMTP id 5E82D23841 for ; Fri, 21 Nov 2003 17:03:18 +0200 (EET) Received: from homer.priv (unknown [81.56.153.173]) by postfix4-2.free.fr (Postfix) with ESMTP id 6798BC2A6 for ; Fri, 21 Nov 2003 16:03:12 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id hALF3EP5013540 for ; Fri, 21 Nov 2003 16:03:14 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id hALF3EI3013538; Fri, 21 Nov 2003 16:03:14 +0100 Date: Fri, 21 Nov 2003 16:02:43 +0100 From: DINH Viet Hoa To: dovecot@procontrol.fi Message-ID: In-Reply-To: <3FBE1FD7.4060506@harvee.org> References: <1068490809.2794.7.camel@hurina> <200311200721.56873.bah@webmedic.net> <3FBCDDAC.5050700@harvee.org> <200311200831.01327.bah@webmedic.net> <20031121101859.GC15458@drinkel.cistron.nl> <3FBE1FD7.4060506@harvee.org> Subject: Re: [Dovecot] 0.99.10.2 released X-Mailer: etPan - new generation MIME-Version: 1.0 Content-Type: multipart/signed; boundary="3fbe2931_42a73ca6_349f"; micalg="pgp-sha1"; protocol="application/pgp-signature" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 15:03:50 -0000 X-UID: 1915 Status: O --3fbe2931_42a73ca6_349f Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Eric S. Johansson wrote : > by any chance would this be the same author who keeps refusing to=20 > document mbx format mailboxes and keeps claiming that a new indexed=20 > mailbox format is just around the corner=3F there some documentation about mbx format here : http://www.washington.edu/imap/IMAP-=46AQs/index.html=237.15 --=20 DINH V. Hoa, =22=E7a doit être une racaille pour être aussi con=22 -- Cent-Quarante-Si= x --3fbe2931_42a73ca6_349f Content-Type: application/pgp-signature Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA/vikw7w+pfAWHa3MRAr5UAJ42buS9Bp/rRpDMd8rT1Gn3cIQ92ACfYuu0 CCMOrlM3EjWJlCSTGU0x1xE= =w0jJ -----END PGP SIGNATURE----- --3fbe2931_42a73ca6_349f-- From jonas@jones.dk Fri Nov 21 17:22:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 29383238D6; Fri, 21 Nov 2003 17:22:23 +0200 (EET) Received: from auryn.jones.dk (cpe.atm0-0-0-120101.0x3ef24ca2.albnxx2.customer.tele.dk [62.242.76.162]) by danu.procontrol.fi (Postfix) with ESMTP id 2B86E238D5 for ; Fri, 21 Nov 2003 17:21:50 +0200 (EET) Received: from jones.dk (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id 31D313F2728; Fri, 21 Nov 2003 16:21:50 +0100 (CET) Message-ID: <3FBE2D8D.9030507@jones.dk> Date: Fri, 21 Nov 2003 16:21:49 +0100 From: Jonas Smedegaard User-Agent: Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.5) Gecko/20031107 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Brook Humphrey Subject: Re: [Dovecot] Re: Pine and Maildir (Was: 0.99.10.2 released) References: <1068490809.2794.7.camel@hurina> <20031120213837.GJ11323@iridium.mv.net> <3FBD5840.4060801@jones.dk> <200311201819.16404.bah@webmedic.net> In-Reply-To: <200311201819.16404.bah@webmedic.net> X-Enigmail-Version: 0.81.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dovecot@procontrol.fi List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 15:22:23 -0000 X-UID: 1916 Status: O Content-Length: 1451 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Brook Humphrey wrote: | On Thursday 20 November 2003 04:11 pm, you wrote: | |>Please tell me if there is somewhere patches actively supported, so I |>can add back the Maildir support in the package. (...) | a version of pine with these patches is actively maintained by the mandrake | community. I happen to use them occasionaly. Mostly here though i use kmail | or squirrelmail. Could you provide some pointers? The latest package I found - pine-4.50-1.1mdk.src.rpm from a mirror of Mandrake-old/updates didn't contain Maildir support as far as I could see - but it did contain the following in the changelog: * Thu Apr 26 04:00:00 2001 Vincent Danen 4.33-1mdk - - 4.33 - - sync patches with rh - - new maildir patch - - re-enable ssl to see if works better now If I am right about this, then "actively supported" means not updated since April 2001. Probably what was included was the patch that was latest worked on by Miquel van Smoorenburg... ~ - Jonas - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er nær: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQE/vi2Mn7DbMsAkQLgRAow2AKCdQzVgvZ+pqPZ1hDaLBkPfsnGhOgCffPte djcvjD5zXVJs8HFwop0bFVQ= =+xv3 -----END PGP SIGNATURE----- From bah@webmedic.net Fri Nov 21 17:43:54 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BE65A238D5; Fri, 21 Nov 2003 17:43:54 +0200 (EET) Received: from mandrake.webmedic.net (pppoe64-91-122-13.vcr.centurytel.net [64.91.122.13]) by danu.procontrol.fi (Postfix) with ESMTP id C03BE238D1 for ; Fri, 21 Nov 2003 17:43:19 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mandrake.webmedic.net (Postfix) with ESMTP id 9F2958BE50 for ; Fri, 21 Nov 2003 07:43:17 -0800 (PST) From: Brook Humphrey Organization: Mobile PC Medic To: dovecot@procontrol.fi Subject: Re: [Dovecot] Re: Pine and Maildir (Was: 0.99.10.2 released) Date: Fri, 21 Nov 2003 07:43:16 -0800 User-Agent: KMail/1.5.93 References: <1068490809.2794.7.camel@hurina> <200311201819.16404.bah@webmedic.net> <3FBE2D8D.9030507@jones.dk> In-Reply-To: <3FBE2D8D.9030507@jones.dk> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200311210743.16207.bah@webmedic.net> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 15:43:54 -0000 X-UID: 1917 Status: O Content-Length: 1824 On Friday 21 November 2003 07:21 am, you wrote: > If I am right about this, then "actively supported" means not updated > since April 2001. Probably what was included was the patch that was > latest worked on by Miquel van Smoorenburg... I said by the community. Due to licensing mandrake(the company) wont even touch pine. Go look for plf. They are a bunch of guys like me that support things not normally distributed due to licensing issues. They have stuff that supports dvd and a whole slew of things there. For the most part if it is something you want but is considered to have questionable license then it can most likely be found there. Pine is one of the packages there and they have patched it with maildir support. I also should be a little more precise. I'm not sure what version of pine it is and I dont really care as it offers what I need. By active I was saying that they keep a version of pine compiled for each new version of mandrake and at least it does have a working maildir support. It may be the latest for all I know but it works so I dont care. I'm sorry but you can only do so much with an email program the rest is just overload. After I started looking at the options for mutt that thing might as well be sendmail (from what I have heard of sendmail. No experiance with it myself). -- New and improved with advanced outlook crash handler. -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- Brook Humphrey Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com Holiness unto the Lord -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- From jonas@jones.dk Fri Nov 21 18:00:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B1B08238C7; Fri, 21 Nov 2003 18:00:13 +0200 (EET) Received: from auryn.jones.dk (cpe.atm0-0-0-120101.0x3ef24ca2.albnxx2.customer.tele.dk [62.242.76.162]) by danu.procontrol.fi (Postfix) with ESMTP id D7FAC238D1 for ; Fri, 21 Nov 2003 17:59:40 +0200 (EET) Received: from jones.dk (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id 693CE3F2728 for ; Fri, 21 Nov 2003 16:59:40 +0100 (CET) Message-ID: <3FBE366B.6020905@jones.dk> Date: Fri, 21 Nov 2003 16:59:39 +0100 From: Jonas Smedegaard User-Agent: Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.5) Gecko/20031107 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] Re: Pine and Maildir (Was: 0.99.10.2 released) References: <1068490809.2794.7.camel@hurina> <200311201819.16404.bah@webmedic.net> <3FBE2D8D.9030507@jones.dk> <200311210743.16207.bah@webmedic.net> In-Reply-To: <200311210743.16207.bah@webmedic.net> X-Enigmail-Version: 0.81.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: dovecot@procontrol.fi List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 16:00:14 -0000 X-UID: 1918 Status: O Content-Length: 1088 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Brook Humphrey wrote: | On Friday 21 November 2003 07:21 am, you wrote: | |>If I am right about this, then "actively supported" means not updated |>since April 2001. Probably what was included was the patch that was |>latest worked on by Miquel van Smoorenburg... | | | I said by the community. Due to licensing mandrake(the company) wont even | touch pine. Go look for plf. Ah, that helped. Thanks. Unfortunately it seems (from a quick glance) to be that same old patch. It may be good enough for Pine, but I don't trust it enough to include it in Debian for use with PHP4 and in other server-related places :-( ~ - Jonas - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er nær: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQE/vjZrn7DbMsAkQLgRAigoAKCQcDjDBKovyb2vMdrhKve/dLyBVgCfcL8i gXheWYUDylOM1csiRU+B5jI= =trGO -----END PGP SIGNATURE----- From jaldhar@debian.org Fri Nov 21 20:46:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E47F8238D6; Fri, 21 Nov 2003 20:46:49 +0200 (EET) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id D9FC8238C7 for ; Fri, 21 Nov 2003 20:46:16 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id D25CF7F5A for ; Fri, 21 Nov 2003 13:46:16 -0500 (EST) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02312-04 for ; Fri, 21 Nov 2003 13:46:16 -0500 (EST) Received: from samadhi.braincells.com (samadhi.braincells.com [216.162.42.100]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 51D247F55 for ; Fri, 21 Nov 2003 13:46:16 -0500 (EST) Date: Fri, 21 Nov 2003 13:46:14 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: dovecot@procontrol.fi Subject: Re: [Dovecot] Re: Pine and Maildir (Was: 0.99.10.2 released) In-Reply-To: <3FBE366B.6020905@jones.dk> Message-ID: References: <1068490809.2794.7.camel@hurina> <200311201819.16404.bah@webmedic.net> <3FBE2D8D.9030507@jones.dk> <200311210743.16207.bah@webmedic.net> <3FBE366B.6020905@jones.dk> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at braincells.com X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2003 18:46:50 -0000 X-UID: 1919 Status: O On Fri, 21 Nov 2003, Jonas Smedegaard wrote: > Brook Humphrey wrote: > | On Friday 21 November 2003 07:21 am, you wrote: > | > |>If I am right about this, then "actively supported" means not updated > |>since April 2001. Probably what was included was the patch that was > |>latest worked on by Miquel van Smoorenburg... > | > | > | I said by the community. Due to licensing mandrake(the company) wont even > | touch pine. Go look for plf. > > Ah, that helped. Thanks. > > Unfortunately it seems (from a quick glance) to be that same old patch. It is.They took that patch from the Debian package back when I was maintaining it. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From tss@iki.fi Sat Nov 22 23:00:31 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 08DEB238C7; Sat, 22 Nov 2003 23:00:31 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 160FD23841 for ; Sat, 22 Nov 2003 22:59:56 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id BF0245C616E2 for ; Sat, 22 Nov 2003 22:59:55 +0200 (EET) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-GExybJ3kiCrWkhH033r8" Message-Id: <1069534795.2499.119.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 Nov 2003 22:59:55 +0200 Subject: [Dovecot] New index / mailbox API X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Nov 2003 21:00:31 -0000 X-UID: 1920 Status: O Content-Length: 19622 --=-GExybJ3kiCrWkhH033r8 Content-Type: multipart/mixed; boundary="=-fRPNYuGMNG0yVP9/2G6V" --=-fRPNYuGMNG0yVP9/2G6V Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Today morning I had an idea how to make indexes more scalable with multiple concurrent writers. As a side effect it also made the locking issues much more simpler. So I thought I'd go and rewrite all the indexing code, it had gotten way too ugly and difficult to understand and maintain. I also thought to separate the index handling completely from mailbox handling. So there would be lib-index and lib-mailbox. lib-storage would then tie them together. Mailbox API still feels somewhat dirty though.. I didn't want it to depend on lib-index and I didn't want to duplicate any lib-index functionality in it to avoid uselessly allocating memory, so I can't reference to mails directly with their sequence number or UID. So I'm passing (void *id, size_t id_len) around - with maildir that would be the filename and with mbox it would be current offset in file. Suggestions welcome about both APIs. Some of the changes in indexes and it's API: - "modify log" -> "transaction log" which was the big change. All flag updates and expunges are first written to transaction log and only when committing it they will be moved into the main index. The transaction writes require the file locked for only very short time, so with lots of concurrent writers it means that several sessions could have written their wanted changes to log file, but they're all blocking on getting them moved into main index. When one session finally gets a lock in the main lock file, it writes everyone's changes into it. If lock can't be acquired in a second or so, the main index will be rewritten into temp file and rename()d over. This means that we can have tons of sessions reading and writing to same shared index file and no session can block others from reading or writing. Currently yoou could easily block changes for a very long time with eg. FETCH 1:* BODY.PEEK[] and reading it 1 bytes/sec. - mail_index will be a class interface, so it's implementation can be changed at runtime. In-memory indexing is going to be a totally different implementation this time with better memory usage. Could be useful for optimizing some special cases as well. - You'll get "views" into mailbox. A view will take care of keeping sequences synchronized according to what each client session thinks they are. Currently lib-storage does that in kind of ugly way. Hopefully this means that we can get rid of sequence parsing in lib-storage completely and move it into imap-only code. - You don't directly manipulate with locks and there's no rules of in which order you have to do something. You get views and transactions and use them. - You can have multiple views and transactions, so one opened index could be used to handle multiple client sessions. I'm not sure if that will ever be useful though :) - Error correction will be done automatically this time. Whenever some error is noticed, it will be fixed immediately and unless it changes syncing state, it doesn't force client to disconnect. Also it hopefully will be possible to change from disk-indexing to memory-indexing on the fly in case you run out of disk space. - I'm trying to get it NFS-safe.. - mail-cache that I recently rewrote doesn't change. The bad thing is that it seems to be broken in some way and probably needs rewriting anyway.. And I'm not sure if the problem is just in the code, or if the design itself is somehow broken with it. I'm fearing that memory doesn't somehow keep up with changes by other sessions, since we're not locking cache file for reading.. --=-fRPNYuGMNG0yVP9/2G6V Content-Disposition: attachment; filename=mail-index.h Content-Type: text/x-c-header; name=mail-index.h; charset=ISO-8859-15 Content-Transfer-Encoding: base64 I2lmbmRlZiBfX01BSUxfSU5ERVhfSA0KI2RlZmluZSBfX01BSUxfSU5ERVhfSA0KDQojaW5jbHVk ZSAibWFpbGJveC1kcml2ZXIuaCINCg0KI2RlZmluZSBNQUlMX0lOREVYX01BSk9SX1ZFUlNJT04g NA0KI2RlZmluZSBNQUlMX0lOREVYX01JTk9SX1ZFUlNJT04gMA0KDQovKiBOdW1iZXIgb2YgY3Vz dG9tIGZsYWdzIGluIG1haWxfaW5kZXhfcmVjb3JkLiAqLw0KI2RlZmluZSBJTkRFWF9DVVNUT01f RkxBR1NfQ09VTlQgKDMqOCkNCiNkZWZpbmUgSU5ERVhfQ1VTVE9NX0ZMQUdTX0JZVEVfQ09VTlQg KChJTkRFWF9DVVNUT01fRkxBR1NfQ09VTlQqNykvOCkNCg0KZW51bSBtYWlsX2luZGV4X29wZW5f ZmxhZ3Mgew0KCS8qIENyZWF0ZSBpbmRleCBpZiBpdCBkb2Vzbid0IGV4aXN0ICovDQoJTUFJTF9J TkRFWF9PUEVOX0ZMQUdfQ1JFQVRFCQk9IDB4MDEsDQoJLyogT3BlbiB0aGUgaW5kZXggYXMgZmFz dCBhcyBwb3NzaWJsZSAtIGRvIG9ubHkgbWluaW1hbCBjaGVja3MgYW5kDQoJICAgZGVsYXkgb3Bl bmluZyBjYWNoZS9sb2cgZmlsZXMgdW5sZXNzIHRoZXkncmUgbmVlZGVkLiAqLw0KCU1BSUxfSU5E RVhfT1BFTl9GTEFHX0ZBU1QJCT0gMHgwMg0KfTsNCg0KZW51bSBtYWlsX2luZGV4X2hlYWRlcl9j b21wYXRfZmxhZ3Mgew0KCU1BSUxfSU5ERVhfQ09NUEFUX0xJVFRMRV9FTkRJQU4JCT0gMHgwMQ0K fTsNCg0KZW51bSBtYWlsX2luZGV4X2hlYWRlcl9mbGFnIHsNCgkvKiBSZWJ1aWxkIGZsYWcgaXMg c2V0IHdoaWxlIGluZGV4IGlzIGJlaW5nIHJlYnVpbHQgb3Igd2hlbg0KCSAgIHNvbWUgZXJyb3Ig aXMgbm90aWNlZCBpbiB0aGUgaW5kZXggZmlsZS4gSWYgdGhpcyBmbGFnIGlzIHNldCwNCgkgICB0 aGUgaW5kZXggc2hvdWxkbid0IGJlIHVzZWQgYmVmb3JlIHJlYnVpbGRpbmcgaXQuICovDQoJTUFJ TF9JTkRFWF9IRFJfRkxBR19SRUJVSUxECQk9IDB4MDAwMSwNCglNQUlMX0lOREVYX0hEUl9GTEFH X0NPTVBSRVNTCQk9IDB4MDAwMiwNCglNQUlMX0lOREVYX0hEUl9GTEFHX0NPTVBSRVNTX0NBQ0hF CT0gMHgwMDA0LA0KCU1BSUxfSU5ERVhfSERSX0ZMQUdfRElSVFlfTUVTU0FHRVMJPSAweDAwMDgs DQoJTUFJTF9JTkRFWF9IRFJfRkxBR19ESVJUWV9DVVNUT01GTEFHUwk9IDB4MDAxMCwNCglNQUlM X0lOREVYX0hEUl9GTEFHX01BSUxESVJfTkVXCQk9IDB4MDAyMA0KfTsNCg0KZW51bSBtYWlsX2lu ZGV4X3JlY29yZF9mbGFnIHsNCgkvKiBJZiBiaW5hcnkgZmxhZ3MgYXJlIHNldCwgaXQncyBub3Qg Y2hlY2tlZCB3aGV0aGVyIG1haWwgaXMNCgkgICBtaXNzaW5nIENScy4gU28gdGhpcyBmbGFnIG1h eSBiZSBzZXQgYXMgYW4gb3B0aW1pemF0aW9uIGZvcg0KCSAgIHJlZ3VsYXIgbm9uLWJpbmFyeSBt YWlscyBhcyB3ZWxsIGlmIGl0J3Mga25vd24gdGhhdCBpdCBjb250YWlucw0KCSAgIHZhbGlkIENS K0xGIGxpbmUgYnJlYWtzLiAqLw0KCU1BSUxfSU5ERVhfRkxBR19CSU5BUllfSEVBREVSCQk9IDB4 MDAwMSwNCglNQUlMX0lOREVYX0ZMQUdfQklOQVJZX0JPRFkJCT0gMHgwMDAyLA0KDQoJLyogTWFp bCBoZWFkZXIgb3IgYm9keSBpcyBrbm93biB0byBjb250YWluIE5VTCBjaGFyYWN0ZXJzLiAqLw0K CU1BSUxfSU5ERVhfRkxBR19IQVNfTlVMUwkJPSAweDAwMDQsDQoJLyogTWFpbCBoZWFkZXIgb3Ig Ym9keSBpcyBrbm93biB0byBub3QgY29udGFpbiBOVUwgY2hhcmFjdGVycy4gKi8NCglNQUlMX0lO REVYX0ZMQUdfSEFTX05PX05VTFMJCT0gMHgwMDA4DQp9Ow0KDQplbnVtIG1haWxfbG9ja19ub3Rp ZnlfdHlwZSB7DQoJLyogTWFpbGJveCBpcyBsb2NrZWQsIHdpbGwgYWJvcnQgaW4gc2Vjc19sZWZ0 ICovDQoJTUFJTF9MT0NLX05PVElGWV9NQUlMQk9YX0FCT1JULA0KCS8qIE1haWxib3ggbG9jayBs b29rcyBzdGFsZSwgd2lsbCBvdmVycmlkZSBpbiBzZWNzX2xlZnQgKi8NCglNQUlMX0xPQ0tfTk9U SUZZX01BSUxCT1hfT1ZFUlJJREUsDQoJLyogSW5kZXggaXMgbG9ja2VkLCB3aWxsIGFib3J0IGlu IHNlY3NfbGVmdCAqLw0KCU1BSUxfTE9DS19OT1RJRllfSU5ERVhfQUJPUlQNCn07DQoNCmVudW0g bWFpbF9pbmRleF9lcnJvciB7DQoJLyogTm8gZXJyb3JzICovDQoJTUFJTF9JTkRFWF9FUlJPUl9O T05FLA0KCS8qIEludGVybmFsIGVycm9yLCBzZWUgZ2V0X2Vycm9yX3RleHQoKSBmb3IgbW9yZSBp bmZvcm1hdGlvbi4gKi8NCglNQUlMX0lOREVYX0VSUk9SX0lOVEVSTkFMLA0KCS8qIEluZGV4IGlz IG5vdyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUgd2l0aCB0aGUgcHJldmlvdXMga25vd24gc3RhdGUs DQoJICAgbWVhbmluZyB0aGF0IHRoZSBtZXNzYWdlIElEcyBldGMuIG1heSBoYXZlIGNoYW5nZWQg LSBvbmx5IHdheSB0bw0KCSAgIHJlY292ZXIgdGhpcyB3b3VsZCBiZSB0byBmdWxseSBjbG9zZSB0 aGUgbWFpbGJveCBhbmQgcmVvcGVuIGl0Lg0KCSAgIFdpdGggSU1BUCB0aGlzIHdvdWxkIG1lYW4g YSBmb3JjZWQgZGlzY29ubmVjdGlvbiBzaW5jZSB3ZSBjYW4ndCBkbw0KCSAgIGZvcmNlZCBDTE9T RS4gKi8NCglNQUlMX0lOREVYX0VSUk9SX0lOQ09OU0lTVEVOVCwNCgkvKiBXZSByYW4gb3V0IG9m IGF2YWlsYWJsZSBkaXNrIHNwYWNlLiAqLw0KCU1BSUxfSU5ERVhfRVJST1JfRElTS1NQQUNFLA0K CS8qIE1haWwgaW5kZXggbG9ja2luZyB0aW1lb3V0ZWQgKi8NCglNQUlMX0lOREVYX0VSUk9SX0lO REVYX0xPQ0tfVElNRU9VVCwNCgkvKiBNYWlsYm94IGxvY2tpbmcgdGltZW91dGVkICovDQoJTUFJ TF9JTkRFWF9FUlJPUl9NQUlMQk9YX0xPQ0tfVElNRU9VVA0KfTsNCg0KdHlwZWRlZiB2b2lkIG1h aWxfbG9ja19ub3RpZnlfY2FsbGJhY2tfdChlbnVtIG1haWxfbG9ja19ub3RpZnlfdHlwZSBub3Rp ZnlfdHlwZSwNCgkJCQkJIHVuc2lnbmVkIGludCBzZWNzX2xlZnQsIHZvaWQgKmNvbnRleHQpOw0K DQpzdHJ1Y3QgbWFpbF9pbmRleF9oZWFkZXIgew0KCS8qIG1ham9yIHZlcnNpb24gaXMgaW5jcmVh c2VkIG9ubHkgd2hlbiB5b3UgY2FuJ3QgaGF2ZSBiYWNrd2FyZHMNCgkgICBjb21wYXRpYmlsaXR5 LiBtaW5vciB2ZXJzaW9uIGlzIGluY3JlYXNlZCB3aGVuIGhlYWRlciBzaXplIGlzDQoJICAgaW5j cmVhc2VkIHRvIGNvbnRhaW4gbmV3IG5vbi1jcml0aWNhbCBmaWVsZHMuICovDQoJdWludDhfdCBt YWpvcl92ZXJzaW9uOw0KCXVpbnQ4X3QgbWlub3JfdmVyc2lvbjsNCgl1aW50OF90IGhlYWRlcl9z aXplOw0KCXVpbnQ4X3QgcmVzZXJ2ZWQ7DQoNCgkvKiAwID0gZmxhZ3MNCgkgICAxID0gc2l6ZW9m KHVvZmZfdCkNCgkgICAyID0gc2l6ZW9mKHRpbWVfdCkNCgkgICAzID0gcmVzZXJ2ZWQsIDAgZm9y IG5vdyAqLw0KCXVpbnQ4X3QgY29tcGF0X2RhdGFbNF07DQoNCgl1aW50MzJfdCBpbmRleGlkOw0K CXVpbnQzMl90IHVzZWRfZmlsZV9zaXplOw0KDQoJLyogZmlsZSBuZWVkcyB0byBiZSByZW9wZW5l ZCBpZiBzeW5jX2lkcyBjaGFuZ2UuICovDQoJdWludDMyX3QgbWFzdGVyX3N5bmNfaWQ7DQoJdWlu dDMyX3QgY2FjaGVfc3luY19pZDsNCgl1aW50MzJfdCBsb2dfc3luY19pZDsNCg0KCXVpbnQzMl90 IGZsYWdzOw0KDQoJdWludDMyX3QgdWlkX3ZhbGlkaXR5Ow0KCXVpbnQzMl90IG5leHRfdWlkOw0K DQoJdWludDMyX3QgbWVzc2FnZXNfY291bnQ7DQoJdWludDMyX3Qgc2Vlbl9tZXNzYWdlc19jb3Vu dDsNCgl1aW50MzJfdCBkZWxldGVkX21lc3NhZ2VzX2NvdW50Ow0KCXVpbnQzMl90IGxhc3Rfbm9u cmVjZW50X3VpZDsNCg0KCS8qIHRoZXNlIFVJRHMgbWF5IG5vdCBleGlzdCBhbmQgbWF5IG5vdCBl dmVuIGJlIHVuc2VlbiAqLw0KCXVpbnQzMl90IGZpcnN0X3Vuc2Vlbl91aWRfbG93d2F0ZXI7DQoJ dWludDMyX3QgZmlyc3RfZGVsZXRlZF91aWRfbG93d2F0ZXI7DQoNCgl1aW50MzJfdCBsb2dfZmls ZV9zZXE7DQoJdWludDMyX3QgbG9nX2ZpbGVfb2Zmc2V0Ow0KDQoJdWludDY0X3Qgc3luY19zaXpl Ow0KCXVpbnQzMl90IHN5bmNfc3RhbXA7DQp9Ow0KDQplbnVtIG1haWxfaW5kZXhfdmlld19zeW5j X3R5cGUgew0KICAgICAgICBNQUlMX0lOREVYX1ZJRVdfU1lOQ19UWVBFX05FVywNCglNQUlMX0lO REVYX1ZJRVdfU1lOQ19UWVBFX0VYUFVOR0UsDQoJTUFJTF9JTkRFWF9WSUVXX1NZTkNfVFlQRV9G TEFHUw0KfTsNCg0Kc3RydWN0IG1haWxfaW5kZXhfdmlld19zeW5jX3JlYyB7DQoJdWludDMyX3Qg c2VxMSwgc2VxMjsNCgl1aW50MzJfdCB1aWQxLCB1aWQyOw0KCWVudW0gbWFpbF9pbmRleF92aWV3 X3N5bmNfdHlwZSB0eXBlOw0KfTsNCg0KdHlwZWRlZiB1bnNpZ25lZCBjaGFyIGN1c3RvbV9mbGFn c19tYXNrX3RbSU5ERVhfQ1VTVE9NX0ZMQUdTX0JZVEVfQ09VTlRdOw0KDQpzdHJ1Y3QgbWFpbF9p bmRleDsNCnN0cnVjdCBtYWlsX2luZGV4X3ZpZXc7DQpzdHJ1Y3QgbWFpbF9pbmRleF90cmFuc2Fj dGlvbjsNCg0Kc3RydWN0IG1haWxfaW5kZXggKm1haWxfaW5kZXhfYWxsb2MoY29uc3QgY2hhciAq ZGlyLCBjb25zdCBjaGFyICpwcmVmaXgpOw0Kdm9pZCBtYWlsX2luZGV4X2ZyZWUoc3RydWN0IG1h aWxfaW5kZXggKmluZGV4KTsNCg0KaW50IG1haWxfaW5kZXhfb3BlbihzdHJ1Y3QgbWFpbF9pbmRl eCAqaW5kZXgsIGVudW0gbWFpbF9pbmRleF9vcGVuX2ZsYWdzIGZsYWdzKTsNCnZvaWQgbWFpbF9p bmRleF9jbG9zZShzdHJ1Y3QgbWFpbF9pbmRleCAqaW5kZXgpOw0KDQovKiBJZiB3ZSBoYXZlIHRv IHdhaXQgZm9yIHRoZSBsb2NrLCB0aGUgZ2l2ZW4gbG9jayBub3RpZnkgZnVuY3Rpb24NCiAgIGlz IGNhbGxlZCBvbmNlIGluIGEgd2hpbGUuICovDQp2b2lkIG1haWxfaW5kZXhfc2V0X2xvY2tfbm90 aWZ5X2NhbGxiYWNrKHN0cnVjdCBtYWlsX2luZGV4ICppbmRleCwNCgkJCQkJIG1haWxfbG9ja19u b3RpZnlfY2FsbGJhY2tfdCAqY2FsbGJhY2ssDQoJCQkJCSB2b2lkICpjb250ZXh0KTsNCg0KLyog VmlldyBjYW4gYmUgdXNlZCB0byBsb29rIGludG8gaW5kZXguIFNlcXVlbmNlIG51bWJlcnMgaW5z aWRlIHZpZXcgY2hhbmdlDQogICBvbmx5IHdoZW4geW91IHN5bmNocm9uaXplIGl0LiBUaGUgdmll dyBhY3F1aXJlcyByZXF1aXJlZCBsb2Nrcw0KICAgYXV0b21hdGljYWxseSwgYnV0IHlvdSdsbCBo YXZlIHRvIGRyb3AgdGhlbSBtYW51YWxseS4gT3BlbmluZyB2aWV3DQogICBhY3F1aXJlcyBhIGxv Y2sgaW1tZWRpYXRlbHkuICovDQpzdHJ1Y3QgbWFpbF9pbmRleF92aWV3ICptYWlsX2luZGV4X3Zp ZXdfb3BlbihzdHJ1Y3QgbWFpbF9pbmRleCAqaW5kZXgpOw0Kdm9pZCBtYWlsX2luZGV4X3ZpZXdf Y2xvc2Uoc3RydWN0IG1haWxfaW5kZXhfdmlldyAqdmlldyk7DQoNCi8qIENhbGwgd2hlbmV2ZXIg eW91J3ZlIGRvbmUgd2l0aCByZXF1ZXN0aW5nIG1lc3NhZ2VzIGZyb20gdmlldyBmb3IgYSB3aGls ZS4gKi8NCnZvaWQgbWFpbF9pbmRleF92aWV3X3VubG9jayhzdHJ1Y3QgbWFpbF9pbmRleF92aWV3 ICp2aWV3KTsNCi8qIFJldHVybnMgbnVtYmVyIG9mIG1haWxzIGluIHZpZXcuICovDQp1aW50MzJf dCBtYWlsX2luZGV4X3ZpZXdfZ2V0X21lc3NhZ2VfY291bnQoc3RydWN0IG1haWxfaW5kZXhfdmll dyAqdmlldyk7DQovKiBSZXR1cm5zIFRSVUUgaWYgd2UgbG9zdCB0cmFjayBvZiBjaGFuZ2VzIGZv ciBzb21lIHJlYXNvbi4gKi8NCmludCBtYWlsX2luZGV4X3ZpZXdfaXNfaW5jb25zaXN0ZW50KHN0 cnVjdCBtYWlsX2luZGV4X3ZpZXcgKnZpZXcpOw0KDQovKiBUcmFuc2FjdGlvbiBoYXMgdG8gYmUg b3BlbmVkIHRvIGJlIGFibGUgdG8gbW9kaWZ5IGluZGV4LiBZb3UgY2FuIGhhdmUNCiAgIG11bHRp cGxlIHRyYW5zYWN0aW9ucyBvcGVuIHNpbXVsdGFuZW91c2x5LiAqLw0Kc3RydWN0IG1haWxfaW5k ZXhfdHJhbnNhY3Rpb24gKg0KbWFpbF9pbmRleF90cmFuc2FjdGlvbl9iZWdpbihzdHJ1Y3QgbWFp bF9pbmRleF92aWV3ICp2aWV3KTsNCmludCBtYWlsX2luZGV4X3RyYW5zYWN0aW9uX2NvbW1pdChz dHJ1Y3QgbWFpbF9pbmRleF90cmFuc2FjdGlvbiAqdCk7DQp2b2lkIG1haWxfaW5kZXhfdHJhbnNh Y3Rpb25fcm9sbGJhY2soc3RydWN0IG1haWxfaW5kZXhfdHJhbnNhY3Rpb24gKnQpOw0KDQovKiBT eW5jaHJvbml6ZSBjaGFuZ2VzIGluIG1haWxib3guICovDQppbnQgbWFpbF9pbmRleF9zeW5jKHN0 cnVjdCBtYWlsX2luZGV4ICppbmRleCwgaW50ICpjaGFuZ2VzX3IpOw0KLyogUmVidWlsZCBpbmRl eC4gSW52YWxpZGF0ZXMgYWxsIHZpZXdzLiAqLw0KaW50IG1haWxfaW5kZXhfcmVidWlsZChzdHJ1 Y3QgbWFpbF9pbmRleCAqaW5kZXgpOw0KLyogQ2hlY2sgYW5kIGZpeCBhbnkgZm91bmQgcHJvYmxl bXMuIE1heSByZWJ1aWxkIGluZGV4IGlmIGl0IGZpbmRzIHNvbWUNCiAgIHNlcmlvdXMgcHJvYmxl bXMuICovDQppbnQgbWFpbF9pbmRleF9mc2NrKHN0cnVjdCBtYWlsX2luZGV4ICppbmRleCk7DQoN Ci8qIFN5bmNocm9uaXplIGNoYW5nZXMgaW4gdmlldy4gbmV4dCgpIHJldHVybnMgaW5mb3JtYXRp b24gb2Ygd2hhdCB3YXMNCiAgIHN5bmNocm9uaXplZCwgYnV0IGNhbGxpbmcgaXQgaXNuJ3QgcmVx dWlyZWQgLSBlbmQoKSB3aWxsIHNldCBldmVyeXRoaW5nDQogICBzeW5jaHJvbml6ZWQgYW55d2F5 LiAqLw0Kc3RydWN0IG1haWxfaW5kZXhfdmlld19zeW5jX2N0eCAqDQptYWlsX2luZGV4X3ZpZXdf c3luY19iZWdpbihzdHJ1Y3QgbWFpbF9pbmRleF92aWV3ICp2aWV3KTsNCmludCBtYWlsX2luZGV4 X3ZpZXdfc3luY19uZXh0KHN0cnVjdCBtYWlsX2luZGV4X3ZpZXdfc3luY19jdHggKmN0eCwNCgkJ CSAgICAgIHN0cnVjdCBtYWlsX2luZGV4X3ZpZXdfc3luY19yZWMgKnJlYyk7DQp2b2lkIG1haWxf aW5kZXhfdmlld19zeW5jX2VuZChzdHJ1Y3QgbWFpbF9pbmRleF92aWV3X3N5bmNfY3R4ICpjdHgp Ow0KDQovKiBSZXR1cm5zIHRoZSBpbmRleCBoZWFkZXIuICovDQpjb25zdCBzdHJ1Y3QgbWFpbF9p bmRleF9oZWFkZXIgKg0KbWFpbF9pbmRleF9nZXRfaGVhZGVyKHN0cnVjdCBtYWlsX2luZGV4X3Zp ZXcgKnZpZXcpOw0KDQovKiBGaW5kIGZpcnN0IGV4aXN0aW5nIG1haWwgZnJvbSBnaXZlbiBVSUQg cmFuZ2UuDQogICBTZXRzIHNlcV9yIHRvIDAgaWYgbm9uZSB3YXMgZm91bmQuICovDQppbnQgbWFp bF9pbmRleF9sb29rdXBfdWlkX3JhbmdlKHN0cnVjdCBtYWlsX2luZGV4X3ZpZXcgKnZpZXcsDQoJ CQkJdWludDMyX3QgZmlyc3RfdWlkLCB1aW50MzJfdCBsYXN0X3VpZCwNCgkJCQl1aW50MzJfdCAq c2VxX3IpOw0KDQovKiBBcHBlbmQgYSBuZXcgcmVjb3JkIHRvIGluZGV4LiBVSUQgaXNuJ3QgYXNz aWduZWQgdG8gdGhlIHJlY29yZCB1bnRpbA0KICAgY29tbWl0LiAqLw0Kdm9pZCBtYWlsX2luZGV4 X2FwcGVuZChzdHJ1Y3QgbWFpbF9pbmRleF90cmFuc2FjdGlvbiAqdCwgdWludDMyX3QgKnNlcV9y KTsNCi8qIEV4cHVuZ2UgcmVjb3JkIGZyb20gaW5kZXguIE5vdGUgdGhhdCB0aGlzIGRvZXNuJ3Qg YWZmZWN0IHNlcXVlbmNlIG51bWJlcnMNCiAgIHVudGlsIHRyYW5zYWN0aW9uIGlzIGNvbW1pdHRl ZC4gKi8NCnZvaWQgbWFpbF9pbmRleF9leHB1bmdlKHN0cnVjdCBtYWlsX2luZGV4X3RyYW5zYWN0 aW9uICp0LCB1aW50MzJfdCBzZXEpOw0KLyogVXBkYXRlIGZsYWdzIGluIGluZGV4LiAqLw0Kdm9p ZCBtYWlsX2luZGV4X3VwZGF0ZV9mbGFncyhzdHJ1Y3QgbWFpbF9pbmRleF90cmFuc2FjdGlvbiAq dCwgdWludDMyX3Qgc2VxLA0KCQkJICAgICBlbnVtIG1vZGlmeV90eXBlIG1vZGlmeV90eXBlLA0K CQkJICAgICBlbnVtIG1haWxfZmxhZ3MgZmxhZ3MsDQoJCQkgICAgIGN1c3RvbV9mbGFnc19tYXNr X3QgY3VzdG9tX2ZsYWdzKTsNCg0KLyogUmV0dXJucyB0aGUgbGFzdCBlcnJvciBjb2RlLiAqLw0K ZW51bSBtYWlsX2luZGV4X2Vycm9yIG1haWxfaW5kZXhfZ2V0X2xhc3RfZXJyb3Ioc3RydWN0IG1h aWxfaW5kZXggKmluZGV4KTsNCi8qIFJldHVybnMgdGhlIGZ1bGwgZXJyb3IgbWVzc2FnZSBmb3Ig bGFzdCBpbnRlcm5hbCBlcnJvci4gVGhpcyBtZXNzYWdlIG1heQ0KICAgY29udGFpbiBwYXRocyBl dGMuIHNvIGl0IHNob3VsZG4ndCBiZSBzaG93biB0byB1c2Vycy4gKi8NCmNvbnN0IGNoYXIgKm1h aWxfaW5kZXhfZ2V0X2ludGVybmFsX2Vycm9yKHN0cnVjdCBtYWlsX2luZGV4ICppbmRleCk7DQoN CiNlbmRpZg0K --=-fRPNYuGMNG0yVP9/2G6V Content-Disposition: attachment; filename=mailbox-driver.h Content-Type: text/x-c-header; name=mailbox-driver.h; charset=ISO-8859-15 Content-Transfer-Encoding: base64 I2lmbmRlZiBfX01BSUxCT1hfRFJJVkVSX0gNCiNkZWZpbmUgX19NQUlMQk9YX0RSSVZFUl9IDQoN CmVudW0gbWFpbF9mbGFncyB7DQoJTUFJTF9BTlNXRVJFRAk9IDB4MDEsDQoJTUFJTF9GTEFHR0VE CT0gMHgwMiwNCglNQUlMX0RFTEVURUQJPSAweDA0LA0KCU1BSUxfU0VFTgk9IDB4MDgsDQoJTUFJ TF9EUkFGVAk9IDB4MTAsDQoJTUFJTF9SRUNFTlQJPSAweDIwDQp9Ow0KDQpzdHJ1Y3QgbWFpbF9m dWxsX2ZsYWdzIHsNCgllbnVtIG1haWxfZmxhZ3MgZmxhZ3M7DQoNCgljb25zdCBjaGFyICoqY3Vz dG9tX2ZsYWdzOw0KCXVuc2lnbmVkIGludCBjdXN0b21fZmxhZ3NfY291bnQ7DQp9Ow0KDQplbnVt IG1vZGlmeV90eXBlIHsNCglNT0RJRllfQURELA0KCU1PRElGWV9SRU1PVkUsDQoJTU9ESUZZX1JF UExBQ0UNCn07DQoNCmVudW0gbWFpbGJveF9sb2NrX3R5cGUgew0KCU1BSUxCT1hfTE9DS19OT05F LA0KCU1BSUxCT1hfTE9DS19TSEFSRUQsDQoJTUFJTEJPWF9MT0NLX0VYQ0xVU0lWRQ0KfTsNCg0K c3RydWN0IG1haWxib3hfc3luYzsNCg0Kc3RydWN0IG1haWxib3hfZHJpdmVyIHsNCgkvKiBSZXR1 cm5zIDEgaWYgZ2l2ZW4gcGF0aCB3YXMgZGV0ZWN0ZWQgYXMgYSB2YWxpZCBtYWlsYm94IGZvciB0 aGlzDQoJICAgZHJpdmVyLCAtMSBpZiBub3Qgb3IgMCBpZiBnaXZlbiBwYXRoIGNhbiBiZSBoYW5k bGVkIGFzIGEgZ2VuZXJpYw0KCSAgIGZpbGUgKGllLiBmYWxsYmFjayB0byB0aGlzIGRyaXZlciBp ZiBuby1vbmUgZWxzZSBhbnN3ZXJzIDEpLiAqLw0KCWludCAoKmRldGVjdCkoY29uc3QgY2hhciAq cGF0aCk7DQoNCgkvKiBPcGVuIG1haWxib3guICovDQoJc3RydWN0IG1haWxib3hfZHJpdmVyICoo Km9wZW5fbWFpbGJveCkoY29uc3QgY2hhciAqcGF0aCk7DQoJdm9pZCAoKmNsb3NlX21haWxib3gp KHN0cnVjdCBtYWlsYm94X2RyaXZlciAqZHJ2KTsNCg0KCWludCAoKmxvY2spKHN0cnVjdCBtYWls Ym94X2RyaXZlciAqZHJ2LCBlbnVtIG1haWxib3hfbG9ja190eXBlIHR5cGUsDQoJCSAgICB1bnNp Z25lZCBpbnQgKmxvY2tfc2VxX3IpOw0KDQoJLyogQmVnaW4gc3luY2hyb25pemluZyBtYWlsYm94 LiBEcml2ZXIgZGV0ZXJtaW5lcyBpZiBzeW5jaW5nIGlzDQoJICAgbmVlZGVkIGJhc2VkIG9uIGdp dmVuIHN5bmNfc3RhdGVfaWQuIElmIHlvdSBkb24ndCBoYXZlIGFuIGV4aXN0aW5nDQoJICAgc3Rh dGUgaWQgb3IgeW91IHdhbnQgdG8gZm9yY2UgYSBmdWxsIHJlc3luYywganVzdCBwYXNzIE5VTEwg YW5kIDAuDQoNCgkgICBmaXJzdF91aWRfciBpcyBzZXQgdG8gdGhlIGZpcnN0IG1lc3NhZ2Ugd2hl cmUgc3luY2luZyBiZWdpbnMuDQoJICAgQW55IG1lc3NhZ2VzIGJlZm9yZSBpdCBzaG91bGRuJ3Qg YmUgdG91Y2hlZC4gc3luY19uZXh0KCkgcmV0dXJucw0KCSAgIGFsbCBtYWlscyBzdGFydGluZyBm cm9tIGZpcnN0X3VpZF9yIHRoYXQgZXhpc3QsIGllLiBpZiBpdCBza2lwcw0KCSAgIHNvbWUgbWVz c2FnZSBpdCBtZWFucyBpdCdzIGJlZW4gZXhwdW5nZWQuDQoNCgkgICBJZiBtaW5pbWFsX3N5bmMg aXMgVFJVRSwgb25seSBtaW5pbWFsIGNoZWNrcyBhcmUgZG9uZSBzbyB0aGF0DQoJICAgbWFpbF9v cGVuKCkgY2FuIGJlIHVzZWQgc2FmZWx5LiAqLw0KCXN0cnVjdCBtYWlsYm94X3N5bmMgKigqc3lu Y19pbml0KShzdHJ1Y3QgbWFpbGJveF9kcml2ZXIgKmRydiwNCgkJCQkJICBjb25zdCB2b2lkICpz eW5jX3N0YXRlX2lkLA0KCQkJCQkgIHNpemVfdCBzeW5jX3N0YXRlX2lkX2xlbiwNCgkJCQkJICB1 bnNpZ25lZCBpbnQgKmZpcnN0X3VpZF9yLA0KCQkJCQkgIGludCBtaW5pbWFsX3N5bmMpOw0KCXN0 cnVjdCBtYWlsYm94X21haWwgKigqc3luY19uZXh0KShzdHJ1Y3QgbWFpbGJveF9zeW5jICpzeW5j KTsNCgl2b2lkICooKnN5bmNfZ2V0X3N0YXRlX2lkKShzdHJ1Y3QgbWFpbGJveF9zeW5jICpzeW5j LCBzaXplX3QgKmxlbl9yKTsNCglpbnQgKCpzeW5jX2RlaW5pdCkoc3RydWN0IG1haWxib3hfc3lu YyAqc3luYyk7DQoNCgkvKiBPcGVuIG1haWwgd2l0aCBnaXZlbiBJRC4gTWFpbGJveCBtdXN0IGhh dmUgYmVlbiBzeW5jaHJvbml6ZWQgKi8NCglzdHJ1Y3QgbWFpbGJveF9tYWlsICooKm1haWxfb3Bl bikoc3RydWN0IG1haWxib3hfZHJpdmVyICpkcnYsDQoJCQkJCSAgY29uc3Qgdm9pZCAqaWQsIHNp emVfdCBpZF9sZW4pOw0KCS8qIEFwcGVuZCBhIG5ldyBtYWlsIHRvIG1haWxib3guICovDQoJc3Ry dWN0IG1haWxib3hfbWFpbCAqKCptYWlsX2FwcGVuZCkoc3RydWN0IG1haWxib3hfZHJpdmVyICpk cnYsDQoJCQkJCSAgICBzdHJ1Y3QgaXN0cmVhbSAqaW5wdXQpOw0KfTsNCg0Kc3RydWN0IG1haWxi b3hfbWFpbCB7DQoJc3RydWN0IG1haWxib3hfZHJpdmVyICpkcnY7DQoNCgkvKiBJTUFQIFVJRCAq Lw0KCXVuc2lnbmVkIGludCB1aWQ7DQoNCgkvKiBJZGVudGlmaWVyIGZvciBtZXNzYWdlLCBlZy4g bWFpbCBmaWxlIG5hbWUgb3Igb2Zmc2V0IGluIGZpbGUgKi8NCgljb25zdCB2b2lkICppZDsNCglz aXplX3QgaWRfbGVuOw0KDQoJLyogUmV0dXJucyBpbnB1dCBzdHJlYW0gcG9pbnRpbmcgdG8gYmVn aW5uaW5nIG9mIGhlYWRlcnMsDQoJICAgb3IgTlVMTCBpZiBtYWlsIHdhcyBqdXN0IGRlbGV0ZWQu ICovDQoJc3RydWN0IGlzdHJlYW0gKigqZ2V0X3N0cmVhbSkoc3RydWN0IG1haWxib3hfbWFpbCAq bWFpbCk7DQoJLyogUmV0dXJucyByZWNlaXZlZCBkYXRlLCBvciAodGltZV90KS0xIGlmIG1haWwg d2FzIGp1c3QgZGVsZXRlZC4gKi8NCgl0aW1lX3QgKCpnZXRfcmVjZWl2ZWRfZGF0ZSkoc3RydWN0 IG1haWxib3hfbWFpbCAqbWFpbCk7DQoJLyogQ2xvc2UgdGhpcyBtYWlsLiAqLw0KCXZvaWQgKCpj bG9zZSkoc3RydWN0IG1haWxib3hfbWFpbCAqbWFpbCk7DQoNCglpbnQgKCpleHB1bmdlKShzdHJ1 Y3QgbWFpbGJveF9zeW5jICpzeW5jKTsNCglpbnQgKCptYWlsX3VwZGF0ZV9mbGFncykoc3RydWN0 IG1haWxib3hfc3luYyAqc3luYywNCgkJCQkgZW51bSBtb2RpZnlfdHlwZSBtb2RpZnlfdHlwZSwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBtYWlsX2Z1bGxfZmxhZ3Mg KmZsYWdzKTsNCn07DQoNCiNlbmRpZg0K --=-fRPNYuGMNG0yVP9/2G6V-- --=-GExybJ3kiCrWkhH033r8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/v85LyUhSUUBViskRAgcFAJwNYyoVze84F7kd1L+64Fk0hLE1gQCfR/6N NJ+dZEDSLexLjjyhJDtcGO8= =69z3 -----END PGP SIGNATURE----- --=-GExybJ3kiCrWkhH033r8-- From G.Ohrner@post.rwth-aachen.de Sun Nov 23 00:10:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C0E0F238D1; Sun, 23 Nov 2003 00:10:49 +0200 (EET) Received: from relay.UserCenter.de (unknown [62.112.158.193]) by danu.procontrol.fi (Postfix) with ESMTP id ACE952385D for ; Sun, 23 Nov 2003 00:10:15 +0200 (EET) Received: by relay.UserCenter.de (Postfix, from userid 106) id A95A1344088; Sat, 22 Nov 2003 23:10:13 +0100 (CET) Received: from HornBurg.CustomCDROM.de (ach9-d9bba82b.pool.mediaWays.net [217.187.168.43]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by relay.UserCenter.de (Postfix) with ESMTP id 21B52344087 for ; Sat, 22 Nov 2003 23:10:13 +0100 (CET) Received: from unseenuniversity.scheibenwelt ([192.168.42.20] ident=4238df8f9dddab9247e57d6cce98c9c1) by HornBurg.CustomCDROM.de with esmtp (Exim 3.35 #1 (Debian)) id 1ANfx9-0001J5-00 for ; Sat, 22 Nov 2003 23:10:07 +0100 Received: from localhost ([127.0.0.1] ident=61880771b5216fa80c9ef5417bf8eac9) by UnseenUniversity.Scheibenwelt with esmtp (Exim 3.36 #1 (Debian)) id 1ANfxB-00004s-00 for ; Sat, 22 Nov 2003 23:10:09 +0100 From: Gunter Ohrner To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.2 released Date: Sat, 22 Nov 2003 23:10:07 +0100 User-Agent: KMail/1.5.4 References: <1068490809.2794.7.camel@hurina> <20031121101859.GC15458@drinkel.cistron.nl> <3FBE1FD7.4060506@harvee.org> In-Reply-To: <3FBE1FD7.4060506@harvee.org> MIME-Version: 1.0 Content-Description: clearsigned data Content-Disposition: inline X-UID: 3983 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Message-Id: <200311222310.08547@mail.CustomCDROM.de> X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on Blubb.wwwlan.net X-Spam-Level: X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Nov 2003 22:10:49 -0000 Status: O Content-Length: 1632 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am Freitag, 21. November 2003 15:23 schrieb Eric S. Johansson: > conversion. Next thing you know, you will tell me that changing > sendmail over to use maildrop for delivery of messages in maildir format > is trivially easy I don't know. > and conversion of all existing mailboxes almost does itself. It is, as has already been discussed on this list: formail -s procmail < /var/mail/"your_mbox" is the procmail version to convert a whole mbox into a maildir, including sorting the mails into various folders, if your procmailrc is set up correctly. The simpelest procmailrc to accomplish this might look as follow= s: ***** SHELL=3D/bin/sh MAILDIR=3D/var/maildir/$LOGNAME ORGMAIL=3D$MAILDIR/ DEFAULT=3D$ORGMAIL :0 =2E/ ***** Greetings, Gunter PS: Don't forget to back up your mails first! =2D -- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + PGP-verschl=FCsselte Mails bevorzugt! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The person on the other side was a young woman. Very obviously a young woman. There was no possible way that she could have been mistaken for a young man in any language, especially Braille. -- The goddess with the nice earrings (Terry Pratchett, Maskerade) +-+-+-+-+-+-+-+-+-+-+-+-+ http://www.lspace.org +-+-+-+-+-+-+-+-+-+-+-+-+ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQE/v96/0ORHvREo8l8RAo/HAJ9DiW3K9D4IjCc8lgYhKIWMdwIZFACgg5Hv pI0JwekK/H8Fp/BfsIiV9ZE=3D =3DKneQ =2D----END PGP SIGNATURE----- From G.Ohrner@post.rwth-aachen.de Sun Nov 23 00:18:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5ED8B238D7; Sun, 23 Nov 2003 00:18:13 +0200 (EET) Received: from relay.UserCenter.de (unknown [62.112.158.193]) by danu.procontrol.fi (Postfix) with ESMTP id 7BE3E238D1 for ; Sun, 23 Nov 2003 00:17:40 +0200 (EET) Received: by relay.UserCenter.de (Postfix, from userid 106) id DF526344088; Sat, 22 Nov 2003 23:17:39 +0100 (CET) Received: from HornBurg.CustomCDROM.de (ach9-d9bba82b.pool.mediaWays.net [217.187.168.43]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by relay.UserCenter.de (Postfix) with ESMTP id 5BA9F344087; Sat, 22 Nov 2003 23:17:39 +0100 (CET) Received: from unseenuniversity.scheibenwelt ([192.168.42.20] ident=dea831518ff2fcc6eb44bcc9d52996b2) by HornBurg.CustomCDROM.de with esmtp (Exim 3.35 #1 (Debian)) id 1ANg4M-0001K0-00; Sat, 22 Nov 2003 23:17:34 +0100 Received: from localhost ([127.0.0.1] ident=f5535d415641800d2485a4da98ada81d) by UnseenUniversity.Scheibenwelt with esmtp (Exim 3.36 #1 (Debian)) id 1ANg4O-0000AC-00; Sat, 22 Nov 2003 23:17:36 +0100 From: Gunter Ohrner To: Payton , dovecot@procontrol.fi Subject: Re: [Dovecot] entourage + dovecot bug? Date: Sat, 22 Nov 2003 23:17:34 +0100 User-Agent: KMail/1.5.4 References: In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200311222317.35681@mail.CustomCDROM.de> X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on Blubb.wwwlan.net X-Spam-Level: X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Nov 2003 22:18:13 -0000 X-UID: 3984 Status: O Content-Length: 1340 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am Donnerstag, 20. November 2003 20:23 schrieb Payton: > Following that advice, I used tethereal to dump a test transaction of both > setups. Comparing the IMAP chatter, there is basically no difference! In The flags returned for INBOX differ: "Response: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NotJunk Junk)" Maybe entourage chokes on the last two ones? The "\" seems to be missing,=20 which has already been mentioned as a bug on this list IIRC. However that#s= =20 just a wild and blind guess as I virtually know nothing about the IMAP=20 protocol in paticular. Greetings, Gunter =2D --=20 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + PGP-verschl=FCsselte Mails bevorzugt! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ how can i tell if i am getting attacked by another computer? frogman: you'll have keyboard imprints on your forehead. -- Life in irc://irc.freenode.org/#debian +-+-+-+-+-+-+-+-+-+-+-+-+ http://www.lspace.org +-+-+-+-+-+-+-+-+-+-+-+-+ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQE/v+B+0ORHvREo8l8RAlSLAJ9Bqg6QBPgLnbMMth5a7KcHiJyJSwCfTwfw lvyB1Hpk2J5KhDJS8WIMBbQ=3D =3DcOMR =2D----END PGP SIGNATURE----- From dinh.viet.hoa@free.fr Sun Nov 23 01:25:56 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7DF36238D7; Sun, 23 Nov 2003 01:25:56 +0200 (EET) Received: from postfix4-2.free.fr (postfix4-2.free.fr [213.228.0.176]) by danu.procontrol.fi (Postfix) with ESMTP id C71F6238C7 for ; Sun, 23 Nov 2003 01:25:23 +0200 (EET) Received: from homer.priv (lns-vlq-12-62-147-172-76.adsl.proxad.net [62.147.172.76]) by postfix4-2.free.fr (Postfix) with ESMTP id A9EA1C150 for ; Sun, 23 Nov 2003 00:25:17 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id hAMNPLP5015943 for ; Sun, 23 Nov 2003 00:25:21 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id hAMNPL7f015941; Sun, 23 Nov 2003 00:25:21 +0100 Date: Sun, 23 Nov 2003 00:22:42 +0100 From: DINH Viet Hoa To: dovecot@procontrol.fi Message-ID: In-Reply-To: <1069534795.2499.119.camel@hurina> References: <1069534795.2499.119.camel@hurina> Subject: Re: [Dovecot] New index / mailbox API X-Mailer: etPan - new generation MIME-Version: 1.0 Content-Type: multipart/signed; boundary="3fbff060_7fed12ab_35d2"; micalg="pgp-sha1"; protocol="application/pgp-signature" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Nov 2003 23:25:56 -0000 X-UID: 3985 Status: O --3fbff060_7fed12ab_35d2 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Timo Sirainen wrote : > with maildir that would be > the filename and with mbox it would be current offset in file. Is it a good idea to use the current offset of a message in a file since=20 there are (several) programs that rewrite entirely mailboxes ? I find it rather dirty to do this. In UW-IMAP, an UID is added into the message headers. --=20 DINH V. Hoa, =22Tu as lu combien de bandes dessin=E9es ce mois-ci ? 13 Go=22 --3fbff060_7fed12ab_35d2 Content-Type: application/pgp-signature Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA/v/Bg7w+pfAWHa3MRAtpkAJ9bCuWWv7J178blXSBlP0L8WvWJdQCfWT+6 lYPwG3Sd8LtzL3NNqr/ssFE= =lz/9 -----END PGP SIGNATURE----- --3fbff060_7fed12ab_35d2-- From tss@iki.fi Sun Nov 23 13:43:39 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 82A0B238C7; Sun, 23 Nov 2003 13:43:39 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D13E723841 for ; Sun, 23 Nov 2003 13:43:05 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 30E005C616E2; Sun, 23 Nov 2003 13:43:05 +0200 (EET) Subject: Re: [Dovecot] New index / mailbox API From: Timo Sirainen To: DINH Viet Hoa In-Reply-To: References: <1069534795.2499.119.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-aDA5ddvKL/lWSJhD0QFW" Message-Id: <1069587784.2511.124.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 23 Nov 2003 13:43:05 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Nov 2003 11:43:39 -0000 X-UID: 3986 Status: O Content-Length: 1246 --=-aDA5ddvKL/lWSJhD0QFW Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2003-11-23 at 01:22, DINH Viet Hoa wrote: > > with maildir that would be > > the filename and with mbox it would be current offset in file. >=20 > Is it a good idea to use the current offset of a message in a file since=20 > there are (several) programs that rewrite entirely mailboxes ? > I find it rather dirty to do this. >=20 > In UW-IMAP, an UID is added into the message headers. But if you give UID, there's no way to know where in the mbox file the message begins unless you store the UID -> offset in memory, which index already does, so why not just give the offset.. The point was that you have to have the mailbox locked and synchronized before trying to open any messages. Synchronizing updates the offsets and while mailbox is locked the offsets can't change. --=-aDA5ddvKL/lWSJhD0QFW Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/wJ1IyUhSUUBViskRAj7EAJ9quLgz8Vow25ouU0b30mJ1GC/gRACeKXfY ipU622aOlyaEKc/ghvfQZM4= =KwEu -----END PGP SIGNATURE----- --=-aDA5ddvKL/lWSJhD0QFW-- From tss@iki.fi Sun Nov 23 13:46:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6E237238C7; Sun, 23 Nov 2003 13:46:50 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5CB7B23841 for ; Sun, 23 Nov 2003 13:46:18 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 25B955C616E2; Sun, 23 Nov 2003 13:46:18 +0200 (EET) Subject: Re: [Dovecot] entourage + dovecot bug? From: Timo Sirainen To: Gunter Ohrner In-Reply-To: <200311222317.35681@mail.CustomCDROM.de> References: <200311222317.35681@mail.CustomCDROM.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-eQzDC/elytYRrA/njUpo" Message-Id: <1069587977.2510.128.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 23 Nov 2003 13:46:18 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Nov 2003 11:46:50 -0000 X-UID: 3987 Status: O Content-Length: 1177 --=-eQzDC/elytYRrA/njUpo Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2003-11-23 at 00:17, Gunter Ohrner wrote: > The flags returned for INBOX differ: >=20 > "Response: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NotJunk Junk= )" >=20 > Maybe entourage chokes on the last two ones? The "\" seems to be missing,= =20 > which has already been mentioned as a bug on this list IIRC. However that= #s=20 > just a wild and blind guess as I virtually know nothing about the IMAP=20 > protocol in paticular. Flags beginning with \ are the flags defined by IMAP protocol. Others are custom flags created by clients. I'm not sure if that is the problem.. You could try creating a new mailbox and saving some mails there, not using Mail.app which creates those Junk/NotJunk flags. --=-eQzDC/elytYRrA/njUpo Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/wJ4JyUhSUUBViskRAi1wAJ9JH4KkG/GjyVAwkPsj70SoWlgIIACeKj7y HenA58Frxker//jk/f3/lms= =RR7+ -----END PGP SIGNATURE----- --=-eQzDC/elytYRrA/njUpo-- From dinh.viet.hoa@free.fr Sun Nov 23 14:08:55 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DF77A238D1; Sun, 23 Nov 2003 14:08:55 +0200 (EET) Received: from postfix4-1.free.fr (postfix4-1.free.fr [213.228.0.62]) by danu.procontrol.fi (Postfix) with ESMTP id 07E142385D for ; Sun, 23 Nov 2003 14:08:23 +0200 (EET) Received: from homer.priv (lns-p19-9-82-65-81-142.adsl.proxad.net [82.65.81.142]) by postfix4-1.free.fr (Postfix) with ESMTP id 5FEE0FA0EA for ; Sun, 23 Nov 2003 13:08:21 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id hANC8KP5017528 for ; Sun, 23 Nov 2003 13:08:20 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id hANC8JEM017526; Sun, 23 Nov 2003 13:08:19 +0100 Date: Sun, 23 Nov 2003 13:07:07 +0100 From: DINH Viet Hoa To: dovecot@procontrol.fi Message-ID: In-Reply-To: <1069587784.2511.124.camel@hurina> References: <1069534795.2499.119.camel@hurina> <1069587784.2511.124.camel@hurina> Subject: Re: [Dovecot] New index / mailbox API X-Mailer: etPan - new generation - version 0.2-dev-20031123 MIME-Version: 1.0 Content-Type: multipart/signed; boundary="3fc0a332_5ed7e013_4459"; micalg="pgp-sha1"; protocol="application/pgp-signature" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Nov 2003 12:08:56 -0000 X-UID: 3988 Status: O --3fc0a332_5ed7e013_4459 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Timo Sirainen wrote : > But if you give UID, there's no way to know where in the mbox file the > message begins unless you store the UID -> offset in memory, which inde= x > already does, so why not just give the offset.. >=20 > The point was that you have to have the mailbox locked and synchronized= > before trying to open any messages. Synchronizing updates the offsets > and while mailbox is locked the offsets can't change. sorry, I thought it was for external IMAP UID. These are, in fact,=20 internal usage identifiers. --=20 DINH V. Hoa, =22monde de merde=22 -- Erwan David --3fc0a332_5ed7e013_4459 Content-Type: application/pgp-signature Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA/wKMy7w+pfAWHa3MRAqVkAJ4ssQYduIQr8JRN+Hl3zfEMLSDd/ACfdPZ6 U/nCRWpwyoK+Zf9l5YpwEFs= =pwIk -----END PGP SIGNATURE----- --3fc0a332_5ed7e013_4459-- From tsg@cctg.com Sun Nov 23 20:07:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A09A423838; Sun, 23 Nov 2003 20:07:43 +0200 (EET) Received: from tercesi.cctg.com (tercesi.cctg.com [66.80.224.100]) by danu.procontrol.fi (Postfix) with ESMTP id DDF962385D for ; Sun, 23 Nov 2003 20:07:08 +0200 (EET) Received: from tercesi.cctg.com (localhost [127.0.0.1])hANI76ma000493 for ; Sun, 23 Nov 2003 10:07:06 -0800 (PST) X-Envelope-From: tsg@cctg.com X-Envelope-To: Received: (from nobody@localhost) by tercesi.cctg.com (8.12.10/8.12.6/Submit) id hANI756t000492; Sun, 23 Nov 2003 10:07:05 -0800 (PST) X-Authentication-Warning: tercesi.cctg.com: nobody set sender to tsg@cctg.com using -f Received: from 66.80.224.70 (SquirrelMail authenticated user tsg9) by tercesi.cctg.com with HTTP; Sun, 23 Nov 2003 10:07:05 -0800 (PST) Message-ID: <33905.66.80.224.70.1069610825.squirrel@tercesi.cctg.com> Date: Sun, 23 Nov 2003 10:07:05 -0800 (PST) From: "Ted S. Garaventa" To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 X-Priority: 3 Importance: Normal Subject: [Dovecot] Compiling dovecot X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: tsg@cctg.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Nov 2003 18:07:43 -0000 X-UID: 3989 Status: O Still trying to compile dovecot to run on solaris8 x86. The program compiles without errors but does not run. The truss out put I get running the program is illegal system call by program: /usr/local/sbin/dovecot Any help is welcome. From dinh.viet.hoa@free.fr Sun Nov 23 20:22:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0C28B23838; Sun, 23 Nov 2003 20:22:47 +0200 (EET) Received: from postfix4-1.free.fr (postfix4-1.free.fr [213.228.0.62]) by danu.procontrol.fi (Postfix) with ESMTP id BA7CE23838 for ; Sun, 23 Nov 2003 20:22:13 +0200 (EET) Received: from homer.priv (lns-p19-9-82-65-81-142.adsl.proxad.net [82.65.81.142]) by postfix4-1.free.fr (Postfix) with ESMTP id 93220FB109 for ; Sun, 23 Nov 2003 19:22:10 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id hANIM8P5017799 for ; Sun, 23 Nov 2003 19:22:08 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id hANIM7nS017797; Sun, 23 Nov 2003 19:22:08 +0100 Date: Sun, 23 Nov 2003 19:20:31 +0100 From: DINH Viet Hoa To: dovecot@procontrol.fi Message-ID: In-Reply-To: <33905.66.80.224.70.1069610825.squirrel@tercesi.cctg.com> References: <33905.66.80.224.70.1069610825.squirrel@tercesi.cctg.com> Subject: Re: [Dovecot] Compiling dovecot X-Mailer: etPan - new generation - version 0.2-dev-20031123 MIME-Version: 1.0 Content-Type: multipart/signed; boundary="3fc0face_5b5a52cf_448a"; micalg="pgp-sha1"; protocol="application/pgp-signature" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Nov 2003 18:22:47 -0000 X-UID: 3990 Status: O --3fc0face_5b5a52cf_448a Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Ted S. Garaventa wrote : > Still trying to compile dovecot to run on solaris8 x86. The program > compiles without errors but does not run. The truss out put I get runn= ing > the program is illegal system call by program: /usr/local/sbin/dovecot= >=20 > Any help is welcome. could you give more details about where this illegal system call is ? You can have clue about that by reading the sequence of system calls=20 given by truss. Maybe something about locks ? --=20 DINH V. Hoa, =22monde de merde=22 -- Erwan David --3fc0face_5b5a52cf_448a Content-Type: application/pgp-signature Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA/wPrO7w+pfAWHa3MRAk93AJ9CeDlbCYT+dqpdsdz4b6pnH3S/qgCfXgwN 5i64AC/VxkkGUBh2itzXOXA= =igLz -----END PGP SIGNATURE----- --3fc0face_5b5a52cf_448a-- From scottheavner@comcast.net Sun Nov 23 19:34:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4A6B12385D; Sun, 23 Nov 2003 19:34:46 +0200 (EET) Received: from rwcrmhc13.comcast.net (rwcrmhc13.comcast.net [204.127.198.39]) by danu.procontrol.fi (Postfix) with ESMTP id E94CE23841 for ; Sun, 23 Nov 2003 19:34:12 +0200 (EET) Received: from en2scotth (c-24-4-168-253.client.comcast.net[24.4.168.253]) by comcast.net (rwcrmhc13) with SMTP id <2003112317340901500pndmfe>; Sun, 23 Nov 2003 17:34:09 +0000 From: "Scott Heavner" To: Subject: [Dovecot] IMAP subscribe/unsubscribe broken in 0.99.10.2 Date: Sun, 23 Nov 2003 09:38:51 -0800 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4927.1200 X-Mailman-Approved-At: Sun, 23 Nov 2003 21:04:29 +0200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: sdh@po.cwru.edu List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Nov 2003 17:34:46 -0000 X-UID: 3991 Status: O I saw this problem with 0.99.10.2 and had to revert back to 0.99.9.1. As I recall the subscription stuff was not respecting the end-of-line as a field separator. It would just cut the old text and drop the new in it's place. Or it might cut an inappropriate entry that should have been a partial string match. FolderOneOhNine FolderOne FolderThree Trying to delete FolderOne would probably [i didn't save any botched subscription files] result in this OhNine FolderOne FolderThree -scott From security@jlug.org Sun Nov 23 23:07:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 2FEBF2399A; Sun, 23 Nov 2003 23:07:24 +0200 (EET) Received: from jlug.fi (jlug.fi [192.194.49.184]) by danu.procontrol.fi (Postfix) with ESMTP id 389FD23841 for ; Sun, 23 Nov 2003 23:06:52 +0200 (EET) Received: (qmail 24355 invoked by uid 537); 23 Nov 2003 21:04:10 -0000 Received: from security@jlug.org by jlug by uid 510 with qmail-scanner-1.20rc3 (f-prot: 3.12/. spamassassin: 2.50. Clear:RC:0:SA:0(-6.6/10.0):. Processed in 10.605403 secs); 23 Nov 2003 21:04:10 -0000 Received: from unknown (HELO desktop) (security@jlug.org@195.197.199.46) by 0 with RC4-MD5 encrypted SMTP; 23 Nov 2003 21:03:59 -0000 Message-ID: <002d01c3b205$af465ab0$0200a8c0@desktop> From: "Eero Volotinen" To: References: <33905.66.80.224.70.1069610825.squirrel@tercesi.cctg.com> Date: Sun, 23 Nov 2003 23:06:36 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-Spam-Status: No, hits=-6.6 required=10.0 tests=REFERENCES autolearn=ham version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) Subject: [Dovecot] dc performance vs courier-imapd X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Nov 2003 21:07:24 -0000 X-UID: 3992 Status: O Any speed tests agains courier-imapd? -- Eero -- this message passed virusscanner at host jlug.fi -- From lfarkas@bnap.hu Mon Nov 24 14:19:59 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D1ACB2399B; Mon, 24 Nov 2003 14:19:59 +0200 (EET) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id 1564423838 for ; Mon, 24 Nov 2003 14:19:24 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by mail1.bppiac.hu (Postfix) with ESMTP id 6C8286E40B9; Mon, 24 Nov 2003 13:15:31 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 7773B16F4D0; Mon, 24 Nov 2003 13:19:23 +0100 (CET) Received: from bnap.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 65A4C16F4CF; Mon, 24 Nov 2003 13:19:23 +0100 (CET) Message-ID: <3FC1F74B.60101@bnap.hu> Date: Mon, 24 Nov 2003 13:19:23 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031016 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: speed Re: [Dovecot] New index / mailbox API References: <1069534795.2499.119.camel@hurina> In-Reply-To: <1069534795.2499.119.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 12:20:00 -0000 X-UID: 3993 Status: O Content-Length: 1762 hi, it's an interesting read, but go back to a higher level for a moment. I like dovecot since it's use simple files as mail storage (not like cyrus). in case of dovecot if something happend I can easily switch to another imap server, which is one of the most important feature in a production enviroment (there should have to be a way of escape). other important feature is the speed (when we have a few hundred of mailboxes). some kind of indexing seems to be a good way of to do this. but I always feel that dovecot reinvent the wheel, since there is a dozen of database system which has nothing else to do just indexing (ok it's not true, but..). they probably do it in the right way (or at least we can find some) and they has a few years of experience. they do right the indexing, the locking, the transactions, etc.. so why we not use one realy fast and good database engine to index our mail storage? the only reason what I can accept in this case, that this is some very special type of database and dovecot can use such algorithm which suited to this problem better then a general indexing algorithms. is this true? another thing which always come to my mind when think about speed: why we do the indexing when we look into the folders, since IMHO it'd be more efficient if we do it at the mail delivery time. the mail arrival is more balanced during the time, so the system load is more balanced. so there can be - one optional deivery helper application which can do the indexing during the deivery time, - indexing during remove, move, copy etc. imap operations, - and the current (eg, the new indexing engine) if someone do not use the delivery helper apps. just my 2c. -- Levente "Si vis pacem para bellum!" From dinh.viet.hoa@free.fr Mon Nov 24 14:34:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8545B2399F; Mon, 24 Nov 2003 14:34:34 +0200 (EET) Received: from postfix3-2.free.fr (postfix3-2.free.fr [213.228.0.169]) by danu.procontrol.fi (Postfix) with ESMTP id 6E3862399D for ; Mon, 24 Nov 2003 14:34:01 +0200 (EET) Received: from homer.priv (lns-vlq-5-82-64-209-233.adsl.proxad.net [82.64.209.233]) by postfix3-2.free.fr (Postfix) with ESMTP id DA4C2C3B7 for ; Mon, 24 Nov 2003 13:33:59 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id hAOCXxP5019659 for ; Mon, 24 Nov 2003 13:33:59 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id hAOCXwS8019657; Mon, 24 Nov 2003 13:33:58 +0100 Date: Mon, 24 Nov 2003 13:28:00 +0100 From: DINH Viet Hoa To: dovecot@procontrol.fi Message-ID: In-Reply-To: <3FC1F74B.60101@bnap.hu> References: <1069534795.2499.119.camel@hurina> <3FC1F74B.60101@bnap.hu> Subject: Re: speed Re: [Dovecot] New index / mailbox API X-Mailer: etPan - new generation - version 0.2-dev-20031123 MIME-Version: 1.0 Content-Type: multipart/signed; boundary="3fc1fab5_2c3b9fb4_4a04"; micalg="pgp-sha1"; protocol="application/pgp-signature" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 12:34:34 -0000 X-UID: 3994 Status: O Content-Length: 1141 --3fc1fab5_2c3b9fb4_4a04 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable =46arkas Levente wrote : > so why we not use one realy fast and good database engine to index our > mail storage=3F > the only reason what I can accept in this case, that this is some very > special type of database and dovecot can use such algorithm which suite= d > to this problem better then a general indexing algorithms. is this true= =3F What I do in libEtPan is to use a DB (Sleepycat/Berkeley) for that.=20 It is rather efficient to store the index. I just need to add N=46S safet= y=20 by creating a dotlock file when accessing this file, and serialize data=20 before before storing them in the database. --=20 DINH V. Hoa, etPan=21 - newsreader, mail user agent -- http://libetpan.sf.net/etpan --3fc1fab5_2c3b9fb4_4a04 Content-Type: application/pgp-signature Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA/wfq17w+pfAWHa3MRApefAJ9F1NduBTebpF8D/+MkOdxxJatL1ACeP5la Md0N4/mH8X/qyxMJ1i28LjA= =+kmr -----END PGP SIGNATURE----- --3fc1fab5_2c3b9fb4_4a04-- From payton@repligen.com Mon Nov 24 16:54:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D1F532399F; Mon, 24 Nov 2003 16:54:27 +0200 (EET) Received: from mithrin.repligen.com (66.237.173.210.ptr.us.xo.net [66.237.173.210]) by danu.procontrol.fi (Postfix) with SMTP id 304C723841 for ; Mon, 24 Nov 2003 16:53:55 +0200 (EET) Received: (qmail 5116 invoked by uid 500); 24 Nov 2003 14:55:37 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 24 Nov 2003 14:55:37 -0000 Date: Mon, 24 Nov 2003 09:55:37 -0500 (EST) From: Payton X-X-Sender: payton@localhost.localdomain To: dovecot@procontrol.fi Subject: Re: [Dovecot] entourage + dovecot bug? In-Reply-To: <1069587977.2510.128.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 14:54:28 -0000 X-UID: 3995 Status: O I tried with a completely clean mailbox as well, and the error persists (and those flags are not present). I've attached a log of that clean test. Has anyone successfully had an entourage email client work with imap on dovecot 0.99.10.2? -Payton On Sun, 23 Nov 2003, Timo Sirainen wrote: > Flags beginning with \ are the flags defined by IMAP protocol. Others > are custom flags created by clients. I'm not sure if that is the > problem.. You could try creating a new mailbox and saving some mails > there, not using Mail.app which creates those Junk/NotJunk flags. From amyzing@talsever.com Mon Nov 24 18:06:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 71C45239A6; Mon, 24 Nov 2003 18:06:43 +0200 (EET) Received: from blount.mail.mindspring.net (blount.mail.mindspring.net [207.69.200.226]) by danu.procontrol.fi (Postfix) with ESMTP id 7C00E239A0 for ; Mon, 24 Nov 2003 18:06:10 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by blount.mail.mindspring.net with esmtp (Exim 3.33 #1) id 1AOJE0-0002jB-00; Mon, 24 Nov 2003 11:06:09 -0500 Received: by marajen.talsever.com (Postfix, from userid 1000) id 927CDB937; Mon, 24 Nov 2003 11:06:05 -0500 (EST) Date: Mon, 24 Nov 2003 11:06:05 -0500 From: Amelia A Lewis To: Payton Subject: Re: [Dovecot] entourage + dovecot bug? Message-ID: <20031124160605.GA9262@talsever.com> References: <1069587977.2510.128.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 16:06:43 -0000 X-UID: 3996 Status: O Content-Length: 1754 I haven't tried Entourage, but an upgrade of dovecot to 0.99.10.2, and of sylpheed to 0.9.7, has resulted in very strange behavior for me: on access, however many items are in a mailbox (maildir), only one (or sometimes 2) is shown (sylpheed updates the numbe available). The rest aren't purged; they just aren't available. Other mail clients tested (mutt, mozilla-thunderbird) do not show the same behavior. But sylpheed is perfectly happy with two other dovecots (also over maildir; very similar setups in general) (both 0.99.10, both debian i386, one -10, one -9). I am not able to isolate the problem either to the client or the server. For both, I deleted existing configuration information, and created it anew. For dovecot, I also deleted all the imap* files throughout the maildir tree. It's rather frustrating .... Just point of information, since there seem to be interaction issues with particular clients, versus this version of dovecot. On Mon, Nov 24, 2003 at 09:55:37AM -0500, Payton wrote: >I tried with a completely clean mailbox as well, and the error persists >(and those flags are not present). I've attached a log of that clean test. > >Has anyone successfully had an entourage email client work with imap on >dovecot 0.99.10.2? >-Payton > >On Sun, 23 Nov 2003, Timo Sirainen wrote: > >> Flags beginning with \ are the flags defined by IMAP protocol. Others >> are custom flags created by clients. I'm not sure if that is the >> problem.. You could try creating a new mailbox and saving some mails >> there, not using Mail.app which creates those Junk/NotJunk flags. > > Amy! -- Amelia A. Lewis amyzing {at} talsever.com Better to have thirty minutes of wonderful than a lifetime of nothing special. From bah@webmedic.net Mon Nov 24 18:19:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 94216239AD; Mon, 24 Nov 2003 18:19:07 +0200 (EET) Received: from courage.vosn.net (courage.vosn.net [209.151.74.1]) by danu.procontrol.fi (Postfix) with ESMTP id 081AE239A0 for ; Mon, 24 Nov 2003 18:18:33 +0200 (EET) Received: from adsl-209-206-172-246-rb.vcr.centurytel.net ([209.206.172.246] helo=mandrake.webmedic.net) by courage.vosn.net with esmtp (Exim 4.24) id 1AOJPy-0003r1-AB for dovecot@procontrol.fi; Mon, 24 Nov 2003 09:18:30 -0700 From: Brook Humphrey Organization: Mobile PC Medic To: dovecot@procontrol.fi Subject: Re: [Dovecot] entourage + dovecot bug? Date: Mon, 24 Nov 2003 08:18:28 -0800 User-Agent: KMail/1.5.93 References: <1069587977.2510.128.camel@hurina> <20031124160605.GA9262@talsever.com> In-Reply-To: <20031124160605.GA9262@talsever.com> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200311240818.28148.bah@webmedic.net> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - courage.vosn.net X-AntiAbuse: Original Domain - procontrol.fi X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - webmedic.net X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 16:19:07 -0000 X-UID: 3997 Status: O Content-Length: 1388 On Monday 24 November 2003 08:06 am, Amelia A Lewis wrote: > I am not able to isolate the problem either to the client or the server. > For both, I deleted existing configuration information, and created it > anew. For dovecot, I also deleted all the imap* files throughout the > maildir tree. It's rather frustrating .... I tried the same multiple times. Yes it is rather frustrating. > > Just point of information, since there seem to be interaction issues with > particular clients, versus this version of dovecot. > I'm having issues though with kmail 3.2 beta. Some of the issues are jsut the beta kmail but on top of it there are issues like you describe above. This same server accessed from an older version of kmail 3.1.3 does not have these issues. I tried evolution also and it does not read any of the folders at all including the inbox. For me this is no issue as I dont use it and dont like gnome but for others I can see there may be issues. -- -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- Brook Humphrey Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com Holiness unto the Lord -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- From Juergen.Daubert@t-online.de Mon Nov 24 21:25:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 876DF239A6; Mon, 24 Nov 2003 21:25:44 +0200 (EET) Received: from mailout11.sul.t-online.com (mailout11.sul.t-online.com [194.25.134.85]) by danu.procontrol.fi (Postfix) with ESMTP id C5DBD23838 for ; Mon, 24 Nov 2003 21:25:11 +0200 (EET) Received: from fwd08.aul.t-online.de by mailout11.sul.t-online.com with smtp id 1AOKRq-0007m1-02; Mon, 24 Nov 2003 18:24:30 +0100 Received: from pD9E60C6B.dip.t-dialin.net (EB5xLoZLYeAtEvHuR2+nBZ-Y7Z2mgRgrHITqJVIOSt+6hjvuQ0Ni8n@[217.230.12.107]) by fwd08.sul.t-online.com with esmtp id 1AOKRc-0ktf960; Mon, 24 Nov 2003 18:24:16 +0100 Received: from 192.168.0.1 by ser.netz with esmtp (masqmail 0.2.20) id 1AOKRb-0sB-00 for ; Mon, 24 Nov 2003 18:24:15 +0100 Received: from juergen by jue.netz with local (masqmail 0.2.20) id 1AOKRb-03J-00 for ; Mon, 24 Nov 2003 18:24:15 +0100 Date: Mon, 24 Nov 2003 18:24:15 +0100 From: Juergen.Daubert@t-online.de (Juergen Daubert) To: dovecot@procontrol.fi Subject: Re: [Dovecot] entourage + dovecot bug? Message-ID: <20031124172415.GA191@jue.netz> Mail-Followup-To: dovecot@procontrol.fi References: <1069587977.2510.128.camel@hurina> <20031124160605.GA9262@talsever.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20031124160605.GA9262@talsever.com> User-Agent: Mutt/1.4.1i X-Seen: false X-ID: EB5xLoZLYeAtEvHuR2+nBZ-Y7Z2mgRgrHITqJVIOSt+6hjvuQ0Ni8n X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 19:25:44 -0000 X-UID: 3998 Status: O On Mon, Nov 24, 2003 at 11:06:05AM -0500, Amelia A Lewis wrote: > I haven't tried Entourage, but an upgrade of dovecot to 0.99.10.2, and of > sylpheed to 0.9.7, has resulted in very strange behavior for me: on access, > however many items are in a mailbox (maildir), only one (or sometimes 2) is > shown (sylpheed updates the numbe available). The rest aren't purged; they > just aren't available. Other mail clients tested (mutt, > mozilla-thunderbird) do not show the same behavior. But sylpheed is > perfectly happy with two other dovecots (also over maildir; very similar > setups in general) (both 0.99.10, both debian i386, one -10, one -9). Yep, same here. Sylpheed 0.9.7 and 0.9.6 works with dovecot 0.99.10, including the four patches, but not with 0.99.10.2. In another test with sylpheed-claws 0.9.6 everything works fine ... Greetings Jürgen -- juergen.daubert@t-online.de From tss@iki.fi Mon Nov 24 21:29:27 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5BEB5239AD; Mon, 24 Nov 2003 21:29:27 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6FAAA23838 for ; Mon, 24 Nov 2003 21:28:55 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 43BAB5EC1190 for ; Mon, 24 Nov 2003 21:28:55 +0200 (EET) From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-g6W1+UbeXNlp10IR6dwk" Message-Id: <1069702134.2513.259.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 24 Nov 2003 21:28:55 +0200 Subject: [Dovecot] 0.99.10.3 released X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 19:29:27 -0000 X-UID: 3999 Status: O --=-g6W1+UbeXNlp10IR6dwk Content-Type: text/plain Content-Transfer-Encoding: quoted-printable - SUBSCRIBE broke subscription lists - LIST code rewritten, children flags should be correct now - SORT and THREAD could have given invalid replies - Partial BODY[...] fetches might have returned wrong data or at least performed worse than was necessary Maybe Entourage was having problems with subscriptions? --=-g6W1+UbeXNlp10IR6dwk Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/wlv2yUhSUUBViskRApWvAJ4iRphZVusptmqxlzjoePWcMSVg/wCcDqvp JJVDGEz+777t0XJNICKsd5Q= =Pzoj -----END PGP SIGNATURE----- --=-g6W1+UbeXNlp10IR6dwk-- From tss@iki.fi Mon Nov 24 21:36:13 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D0A91239AF; Mon, 24 Nov 2003 21:36:13 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E36AB23838 for ; Mon, 24 Nov 2003 21:35:40 +0200 (EET) Received: from 6-allhosts (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 60ECC5C670A2 for ; Mon, 24 Nov 2003 21:35:30 +0200 (EET) Subject: Re: [Dovecot] 0.99.10.3 released From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1069702134.2513.259.camel@hurina> References: <1069702134.2513.259.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Hqmvd+gh0ra5XOvRhfhu" Message-Id: <1069702510.2500.261.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 24 Nov 2003 21:35:10 +0200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 19:36:13 -0000 X-UID: 4000 Status: O --=-Hqmvd+gh0ra5XOvRhfhu Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2003-11-24 at 21:28, Timo Sirainen wrote: > - SUBSCRIBE broke subscription lists > - LIST code rewritten, children flags should be correct now > - SORT and THREAD could have given invalid replies > - Partial BODY[...] fetches might have returned wrong data or at > least performed worse than was necessary >=20 > Maybe Entourage was having problems with subscriptions? No, its RFC822.HEADER which is what is causing problems with Sylpheed. No-one downloaded .10.3 yet, deleted, re-releasing with this fix soon ;) --=-Hqmvd+gh0ra5XOvRhfhu Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/wl1tyUhSUUBViskRAtwmAJ0S7eZpcNXamnT6qQ4g6rwBea4jEACgo2dV zUPYTB1lNXexmPBItzqXQMY= =wS+S -----END PGP SIGNATURE----- --=-Hqmvd+gh0ra5XOvRhfhu-- From tss@iki.fi Mon Nov 24 21:56:20 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 69500239B5; Mon, 24 Nov 2003 21:56:20 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6A99F23838 for ; Mon, 24 Nov 2003 21:55:48 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 19E4B5C670A2 for ; Mon, 24 Nov 2003 21:55:48 +0200 (EET) From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1069702510.2500.261.camel@hurina> References: <1069702134.2513.259.camel@hurina> <1069702510.2500.261.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-33Skr3FJJUn/+kwNJLqb" Message-Id: <1069703747.2510.263.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 24 Nov 2003 21:55:47 +0200 Subject: [Dovecot] 0.99.10.4 released X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 19:56:20 -0000 X-UID: 4001 Status: O Content-Length: 1269 --=-33Skr3FJJUn/+kwNJLqb Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2003-11-24 at 21:35, Timo Sirainen wrote: > On Mon, 2003-11-24 at 21:28, Timo Sirainen wrote: > > - SUBSCRIBE broke subscription lists > > - LIST code rewritten, children flags should be correct now > > - SORT and THREAD could have given invalid replies > > - Partial BODY[...] fetches might have returned wrong data or at > > least performed worse than was necessary > >=20 > > Maybe Entourage was having problems with subscriptions? >=20 > No, its RFC822.HEADER which is what is causing problems with Sylpheed. > No-one downloaded .10.3 yet, deleted, re-releasing with this fix soon ;) Now, this isn't going too well today :) - Fixed reference counters in imap-login and pop3-login. IMAP AUTHENTICATE and POP3 AUTH commands could have left the process stuck doing nothing forever. --=-33Skr3FJJUn/+kwNJLqb Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/wmJDyUhSUUBViskRAkTNAKCRgputDLfKrpYhD6xG3n0CkHj5cwCgipL/ TDhiGBBYrI7uEjBorHJnZ/k= =01Ry -----END PGP SIGNATURE----- --=-33Skr3FJJUn/+kwNJLqb-- From tss@iki.fi Mon Nov 24 22:52:05 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B5759239B9; Mon, 24 Nov 2003 22:52:05 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1FF5E239A0 for ; Mon, 24 Nov 2003 22:51:51 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D85BD5C670A2; Mon, 24 Nov 2003 22:51:50 +0200 (EET) Subject: Re: speed Re: [Dovecot] New index / mailbox API From: Timo Sirainen To: Farkas Levente In-Reply-To: <3FC1F74B.60101@bnap.hu> References: <1069534795.2499.119.camel@hurina> <3FC1F74B.60101@bnap.hu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-PqRUHcUFd5Ie1APoWEva" Message-Id: <1069707110.2499.290.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 24 Nov 2003 22:51:50 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 20:52:05 -0000 X-UID: 4002 Status: O Content-Length: 3358 --=-PqRUHcUFd5Ie1APoWEva Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2003-11-24 at 14:19, Farkas Levente wrote: > but I always feel that dovecot reinvent the wheel, since there is a > dozen of database system which has nothing else to do just indexing (ok > it's not true, but..). they probably do it in the right way (or at least > we can find some) and they has a few years of experience. they do right > the indexing, the locking, the transactions, etc.. > so why we not use one realy fast and good database engine to index our > mail storage? > the only reason what I can accept in this case, that this is some very > special type of database and dovecot can use such algorithm which suited > to this problem better then a general indexing algorithms. is this true? Pretty much, yes. Databases normally do binary tree (or similiar) indexes. Sometimes hash and bitmap indexes. Dovecot doesn't really use any of these. Or, well, cache file would work pretty well in a database since it's for UID -> some cached message data lookups. Rest of the indexes wouldn't work all that well in database though. For example modify/transaction log can be used to quickly figure out what another session changed in a mailbox (flags, expunges). How many databases allow you to easily and quickly look at transaction history? Well, it would be possible to create our own transaction log table for each mailbox, but it of course costs more. Another problem is how to do message sequence -> UID lookups. With old indexes we're doing it in a quite difficult way, but with new indexes it's a simple array lookup in index file. I don't think any database allows this kind of queries, so what we have to constantly keep an array of all message UIDs in memory. Not that bad necessarily, but it's extra memory overhead. Anyway, some day I will write SQL database support, but even if it was just Berkeley DB I bet there would be rather large memory, disk usage and CPU usage overhead compared to what we have now. I'm not sure if there are lock contention problems with databases. > another thing which always come to my mind when think about speed: > why we do the indexing when we look into the folders, since IMHO it'd be > more efficient if we do it at the mail delivery time. the mail arrival > is more balanced during the time, so the system load is more balanced. > so there can be > - one optional deivery helper application which can do the indexing > during the deivery time, > - indexing during remove, move, copy etc. imap operations, > - and the current (eg, the new indexing engine) if someone do not use > the delivery helper apps. Yep, this has been in TODO for a while. Once this is possible it's also simple to add support for UIDPLUS extension. And update mailbox quotas quickly and accurately. It's a bit difficult to implement to 0.99.10 code base, but should be pretty easy to add to current CVS. Once new indexing works, I'll add this immediately. --=-PqRUHcUFd5Ie1APoWEva Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/wm9myUhSUUBViskRAoRVAJwNXAg9VUYEO4O5by+nkQ/qXuJk3QCcCjTc YFY/piyV/bR8bVH9enRj+Ok= =InSu -----END PGP SIGNATURE----- --=-PqRUHcUFd5Ie1APoWEva-- From tss@iki.fi Mon Nov 24 23:12:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 411F5239CD; Mon, 24 Nov 2003 23:12:23 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3C490239B5 for ; Mon, 24 Nov 2003 23:12:10 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id F02BE5C670A2; Mon, 24 Nov 2003 23:12:09 +0200 (EET) Subject: Re: [Dovecot] dc performance vs courier-imapd From: Timo Sirainen To: Eero Volotinen In-Reply-To: <002d01c3b205$af465ab0$0200a8c0@desktop> References: <33905.66.80.224.70.1069610825.squirrel@tercesi.cctg.com> <002d01c3b205$af465ab0$0200a8c0@desktop> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-SadCkIhLHv+SwH5vB/ia" Message-Id: <1069708329.2520.305.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 24 Nov 2003 23:12:09 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 21:12:23 -0000 X-UID: 4003 Status: O Content-Length: 1717 --=-SadCkIhLHv+SwH5vB/ia Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2003-11-23 at 23:06, Eero Volotinen wrote: > Any speed tests agains courier-imapd? Well, a year old benchmark is here: http://dovecot.fi/dovecot-benchmark.txt I'm not sure why it's FETCH BODY/ENVELOPE times were that bad, they should have been cached and shouldn't have taken more than a few seconds to fetch. I had a newer benchmark after rewriting cache file code (ie. the current CVS indexing code), but because of several bugs in it that I later fixed, I think some of it's results are wrong for Dovecot. After the yet another (and hopefully last) index code rewrite I'll do some more benchmarking, maybe with some "real world" situations this time instead of a single 1,5GB mailbox :) It all mostly just depends on what IMAP clients are used. If they have a local cache that fetches just new messages, Dovecot probably isn't much faster than Courier. If same messages are fetched constantly or if same mailbox is accessed with multiple clients, the indexes start being useful. Also many webmails open and close IMAP connections constantly. Dovecot is very fast at opening a mailbox that hasn't changed. Some people have solved that problem with using IMAP proxy between webmail and the real IMAP server, I doubt Dovecot would need it. --=-SadCkIhLHv+SwH5vB/ia Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/wnQpyUhSUUBViskRAvyzAJ9R/bPtKFVX76U72rsewG03x4hJ0QCdGBHb 8rN3WEJZQzTG5EuD/rEkg64= =wUTt -----END PGP SIGNATURE----- --=-SadCkIhLHv+SwH5vB/ia-- From daemon@kzone.ch Mon Nov 24 23:35:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0204D239CE; Mon, 24 Nov 2003 23:35:17 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by danu.procontrol.fi (Postfix) with ESMTP id E6379239CD for ; Mon, 24 Nov 2003 23:34:43 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id WAA26602 for dovecot@procontrol.fi; Mon, 24 Nov 2003 22:34:43 +0100 From: Sven Kirmess To: dovecot@procontrol.fi Subject: Re: [Dovecot] 0.99.10.4 released Date: Mon, 24 Nov 2003 22:34:45 +0100 Organization: Kirmess Lines: 6 Message-ID: References: <1069702134.2513.259.camel@hurina> <1069702510.2500.261.camel@hurina> <1069703747.2510.263.camel@hurina> NNTP-Posting-Host: dax.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1069709682 26562 192.168.100.156 (24 Nov 2003 21:34:42 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 24 Nov 2003 21:34:42 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <1069703747.2510.263.camel@hurina> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 21:35:17 -0000 X-UID: 4004 Status: O Looks like that solved the problem I reported with Mulberry. Thanks a lot Sven From daemon@kzone.ch Mon Nov 24 23:44:24 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0EB01239CD; Mon, 24 Nov 2003 23:44:24 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by danu.procontrol.fi (Postfix) with ESMTP id 0BFC3239B6 for ; Mon, 24 Nov 2003 23:43:51 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id WAA26783 for dovecot@procontrol.fi; Mon, 24 Nov 2003 22:43:50 +0100 From: Sven Kirmess To: dovecot@procontrol.fi Date: Mon, 24 Nov 2003 22:43:52 +0100 Organization: Kirmess Lines: 28 Message-ID: NNTP-Posting-Host: dax.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1069710229 26778 192.168.100.156 (24 Nov 2003 21:43:49 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 24 Nov 2003 21:43:49 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: de-CH,de,de-AT,en Subject: [Dovecot] deliver mail with postfix to dovecot for mailinglists X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 21:44:24 -0000 X-UID: 4005 Status: O This is a bit off topic on that list. But the question is required because of a limitation of dovecot. It cannot have shared mailboxes into which one would collect mailing list mails. I assume one has already solved that problem and therefore ask this question on that list. I try to do the following: I would like to setup an alias dovecot@kzone.ch and subscribe this alias to the dovecot mailing list. Then I would like to create an alias to run maildrop with the correct parameter to put it into the directory ~ski/Maildir/.dovecot/. Of course, there is no user dovecot on my system and if there would be one she couldn't write to a directory owned by me. Is there a trick to do the following: ski -> ~ski/Maildir dovecot -> ~ski/Maildir/.dovecot postfix -> ~ski/Maildir/.postfix Any other idea? Any good documentation on that? Sven From miquels@cistron.net Tue Nov 25 01:08:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B5393239B9; Tue, 25 Nov 2003 01:08:35 +0200 (EET) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by danu.procontrol.fi (Postfix) with ESMTP id 62F79239B6 for ; Tue, 25 Nov 2003 01:08:00 +0200 (EET) Received: from a80-126-193-215.adsl.xs4all.nl ([80.126.193.215] helo=drinkel.cistron.nl) by smtp.cistron-office.nl with asmtp (Exim 3.35 #1 (Debian)) id 1AOPo3-0001s7-00; Tue, 25 Nov 2003 00:07:47 +0100 Date: Tue, 25 Nov 2003 00:07:46 +0100 From: Miquel van Smoorenburg To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.3 released Message-ID: <20031124230746.GY24739@drinkel.cistron.nl> References: <1069702134.2513.259.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1069702134.2513.259.camel@hurina> (from tss@iki.fi on Mon, Nov 24, 2003 at 20:28:55 +0100) X-Mailer: Balsa 2.0.15 Lines: 19 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 23:08:36 -0000 X-UID: 4006 Status: O On Mon, 24 Nov 2003 20:28:55, Timo Sirainen wrote: > - SUBSCRIBE broke subscription lists > - LIST code rewritten, children flags should be correct now It is correct as in that \HasChildren is now returned .. however, for mailboxes without children the \HasNoChildren flag is not returned. And the RFC says that if neither the \HasChildren flag is set, nor the \HasNoChildren, the folder might or might not have subfolders. Which means that the whole CHILDREN extension is basically useless, mutt still shows my plain folders as having subfolders and I can even "cd" into the "Drafts" subfolder.. which I should not be able to do, ofcourse. I looked at the CVS code and it should work there. This is probably not going to get fixed in the 0.99.10 series, right ? Thanks, Mike. From joshua@shallow.net Tue Nov 25 01:40:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 33945239B0; Tue, 25 Nov 2003 01:40:26 +0200 (EET) Received: from yello.shallow.net (unknown [203.18.243.120]) by danu.procontrol.fi (Postfix) with ESMTP id 6B12A23838 for ; Tue, 25 Nov 2003 01:39:50 +0200 (EET) Received: by yello.shallow.net (Postfix, from userid 1001) id B63622D77; Tue, 25 Nov 2003 10:39:34 +1100 (EST) Date: Tue, 25 Nov 2003 10:39:34 +1100 From: Joshua Goodall To: Sven Kirmess Subject: Re: [Dovecot] deliver mail with postfix to dovecot for mailinglists Message-ID: <20031124233934.GB702@roughtrade.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 23:40:26 -0000 X-UID: 4007 Status: O Content-Length: 1578 You might be able to achieve this with the virtual(8) delivery agent, since it can target arbitrary directories and UIDs. Also consider the "+" separator, as in user+foo@domain, which is integrated with the virtual(5) lookup in a reasonably intelligent way and may suit you. Of course, what we could really do is implement SIEVE (RFC3028) in a LMTP delivery agent for Dovecot. It'd attract a lot of the people currently depending on Cyrus. Joshua. On Mon, Nov 24, 2003 at 10:43:52PM +0100, Sven Kirmess wrote: > This is a bit off topic on that list. But the question is > required because of a limitation of dovecot. It cannot > have shared mailboxes into which one would collect mailing list > mails. I assume one has already solved that problem and > therefore ask this question on that list. > > I try to do the following: > I would like to setup an alias dovecot@kzone.ch > and subscribe this alias to the dovecot mailing list. Then > I would like to create an alias to run maildrop with the > correct parameter to put it into the directory > ~ski/Maildir/.dovecot/. Of course, there is no user dovecot > on my system and if there would be one she couldn't > write to a directory owned by me. > > Is there a trick to do the following: > > ski -> ~ski/Maildir > dovecot -> ~ski/Maildir/.dovecot > postfix -> ~ski/Maildir/.postfix > > Any other idea? > > Any good documentation on that? > > > Sven > -- Joshua Goodall "tea makes itself" joshua@roughtrade.net - Ana Susanj From daemon@kzone.ch Tue Nov 25 01:43:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4FD07239B0; Tue, 25 Nov 2003 01:43:26 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by danu.procontrol.fi (Postfix) with ESMTP id 658DD23838 for ; Tue, 25 Nov 2003 01:42:53 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id AAA29297 for dovecot@procontrol.fi; Tue, 25 Nov 2003 00:42:38 +0100 From: Sven Kirmess To: dovecot@procontrol.fi Subject: Re: [Dovecot] deliver mail with postfix to dovecot for mailinglists Date: Tue, 25 Nov 2003 00:42:38 +0100 Organization: Kirmess Lines: 41 Message-ID: References: NNTP-Posting-Host: dax.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1069717357 29292 192.168.100.156 (24 Nov 2003 23:42:37 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 24 Nov 2003 23:42:37 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 23:43:26 -0000 X-UID: 4008 Status: O Content-Length: 1186 I found an interesting document, describing how to use majordomo with postfix which I used to do what I want. (Actually, I didn't find anything to my problem. So I tried to set up majordomo... ;-) http://www.csh.rit.edu/~jon/projects/majordomo/#postfix That's what I did (ski is my login): 1) Create the mailbox where you would like to receive the mailing list into. I used my IMAP client and create a group called ml.test1 2) # mkdir /etc/postfix/mailing_list # mkdir /etc/postfix/mailing_list/ski # chown ski:ski /etc/postfix/mailing_list/ski 3) su - ski > cd /etc/postfix/mailing_list/ski > vi aliases test1: /var/spool/imap/ski/.ml.test1/ > /opt/postfix/sbin/postalias /etc/postfix/mailing_list/ski/aliases > ^D 4) # vi /etc/postfix/main.cf alias_maps = dbm:/etc/aliases, dbm:/etc/postfix/mailing_list/ski/aliases # /opt/postfix/sbin/postfix reload Now, whenever a mail to user test1 arrives, the alias is read from the file /etc/postfix/mailing_list/ski/aliases. Because there is no user test1 the delivery is done as the owner of the alias file, ski in this case. ski can write to ski's Maildir, of course... Sven From tss@iki.fi Tue Nov 25 03:31:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 998D5239DA; Tue, 25 Nov 2003 03:31:41 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D14C9239D1 for ; Tue, 25 Nov 2003 03:31:27 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 8F2125C288D8; Tue, 25 Nov 2003 03:31:26 +0200 (EET) Subject: Re: [Dovecot] 0.99.10.3 released From: Timo Sirainen To: Miquel van Smoorenburg In-Reply-To: <20031124230746.GY24739@drinkel.cistron.nl> References: <1069702134.2513.259.camel@hurina> <20031124230746.GY24739@drinkel.cistron.nl> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Y9LYYYYfD3X0YZbDRBe1" Message-Id: <1069723885.2509.344.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 25 Nov 2003 03:31:26 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 01:31:41 -0000 X-UID: 4009 Status: O Content-Length: 1615 --=-Y9LYYYYfD3X0YZbDRBe1 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2003-11-25 at 01:07, Miquel van Smoorenburg wrote: > On Mon, 24 Nov 2003 20:28:55, Timo Sirainen wrote: > > - SUBSCRIBE broke subscription lists > > - LIST code rewritten, children flags should be correct now >=20 > It is correct as in that \HasChildren is now returned .. however, > for mailboxes without children the \HasNoChildren flag is not > returned. And the RFC says that if neither the \HasChildren flag > is set, nor the \HasNoChildren, the folder might or might not > have subfolders. Which means that the whole CHILDREN extension > is basically useless, mutt still shows my plain folders as > having subfolders and I can even "cd" into the "Drafts" subfolder.. > which I should not be able to do, ofcourse. You're probably talking about LSUB command, not LIST? This is kind of designed that way to avoid unneeded traffic for most clients, using LISTEXT extension with: LIST (subscribed children) "" % works correctly. Hmm.. Maybe I should make it configurable.. > I looked at the CVS code and it should work there. This is > probably not going to get fixed in the 0.99.10 series, right ? I copied that code from CVS to .10.3. --=-Y9LYYYYfD3X0YZbDRBe1 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/wrDtyUhSUUBViskRAg3wAKCjAngTW4u5WK/b9g48x0fnA7YFPACeO/HA bYlAY6XEwSh85ScIKjC//Ow= =cYZG -----END PGP SIGNATURE----- --=-Y9LYYYYfD3X0YZbDRBe1-- From dinh.viet.hoa@free.fr Tue Nov 25 04:35:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7EBA7239BC; Tue, 25 Nov 2003 04:35:22 +0200 (EET) Received: from postfix4-2.free.fr (postfix4-2.free.fr [213.228.0.176]) by danu.procontrol.fi (Postfix) with ESMTP id 329F6239B6 for ; Tue, 25 Nov 2003 04:34:48 +0200 (EET) Received: from homer.priv (lns-p19-8-82-65-72-171.adsl.proxad.net [82.65.72.171]) by postfix4-2.free.fr (Postfix) with ESMTP id 69A40C116 for ; Tue, 25 Nov 2003 03:34:42 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id hAP2YjP5023277 for ; Tue, 25 Nov 2003 03:34:46 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id hAP2Yjrh023274; Tue, 25 Nov 2003 03:34:45 +0100 Date: Tue, 25 Nov 2003 03:31:33 +0100 From: DINH Viet Hoa To: dovecot ML Message-ID: X-Mailer: etPan - new generation - version 0.2-dev-20031123 MIME-Version: 1.0 Content-Type: multipart/signed; boundary="3fc2bfc3_482c26ab_59bf"; micalg="pgp-sha1"; protocol="application/pgp-signature" Subject: [Dovecot] mbox format X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 02:35:22 -0000 X-UID: 4010 Status: O --3fc2bfc3_482c26ab_59bf Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I wish to know some implementation details about mbox. When you you mbox format in IMAP, are you doing to keep the same message=20 UID across IMAP session if you know that any other program can modify=20 the mailbox as it wants, for example, two messages can be exchanged. In this case, will the UID kept the same ? If they keep their UID, how do you identify the messages ? Thanks, --=20 DINH V. Hoa, etPan=21 - newsreader, mail user agent -- http://libetpan.sf.net/etpan --3fc2bfc3_482c26ab_59bf Content-Type: application/pgp-signature Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA/wr/D7w+pfAWHa3MRAtPMAJ9Ljc0hda1FtYG1XbhG5qz2sXnBbACfVoAB TqOWQKU8+ckUiOXoVvUfyvA= =nWy/ -----END PGP SIGNATURE----- --3fc2bfc3_482c26ab_59bf-- From mem@mv.mv.com Tue Nov 25 06:41:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BF10B239BE; Tue, 25 Nov 2003 06:41:40 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by danu.procontrol.fi (Postfix) with SMTP id 79EAA239B6 for ; Tue, 25 Nov 2003 06:41:05 +0200 (EET) Received: (qmail 8042 invoked from network); 24 Nov 2003 23:41:03 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 24 Nov 2003 23:41:03 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 11277 invoked by uid 101); 24 Nov 2003 23:41:01 -0500 From: "Mark E. Mallett" Date: Mon, 24 Nov 2003 23:41:01 -0500 To: Joshua Goodall Subject: Re: [Dovecot] deliver mail with postfix to dovecot for mailinglists Message-ID: <20031125044101.GL7577@iridium.mv.net> References: <20031124233934.GB702@roughtrade.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20031124233934.GB702@roughtrade.net> User-Agent: Mutt/1.4.1i cc: Sven Kirmess cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 04:41:40 -0000 X-UID: 4011 Status: O Content-Length: 2463 On Tue, Nov 25, 2003 at 10:39:34AM +1100, Joshua Goodall wrote: > You might be able to achieve this with the virtual(8) delivery > agent, since it can target arbitrary directories and UIDs. > > Also consider the "+" separator, as in user+foo@domain, which is > integrated with the virtual(5) lookup in a reasonably intelligent way > and may suit you. > > Of course, what we could really do is implement SIEVE (RFC3028) > in a LMTP delivery agent for Dovecot. It'd attract a lot of the > people currently depending on Cyrus. OK, since we are way off topic.. Funny, I am writing and am using a local delivery agent that includes a mix of C and sieve constructs. I'm working on making it a little more ready for prime time before seeing if anybody else wants to try it. Here's a snippet of my own local delivery script #include sieve { require [ "fileinto", "copy", "reject" ]; require [ "editheader", "dnsbl" ]; require [ "relational", "comparator-i;ascii-numeric" ]; } /* Pre-tag the mail with any DNSBLs that "hit" for this message */ int i; char dnsblF; dnsblF = 0; string bl_list; bl_list = (string)""; /* Interim hack while array initialization is not yet implemented */ #define DNSBLC 6 string *dnsbls[DNSBLC]; dnsbls[0] = "spamcop"; dnsbls[1] = "spamhaus"; dnsbls[2] = "abuseat.cbl"; dnsbls[3] = "dsbl.list"; dnsbls[4] = "sorbs"; dnsbls[5] = "ahbs"; for ( i = 0; i < DNSBLC; ++i ) { if ( sieve { dnsbl [*dnsbls[i]] "std" } ) { if ( dnsblF ) bl_list += " "; dnsblF = 1; bl_list += (*dnsbls[i]); } } if ( dnsblF ) sieve { addheader "X-DNSBLs" [bl_list]; } sieve { /* Just so we can use elsif everywhere */ if false { keep; } . . lots of whitelisting and other stuff... . . elsif anyof ( header :contains "List-Post" [ "bsdi-users@mailinglists.org", "bugtraq@securityfocus.com", "cisco-nsp@puck.nether.net", "cisco-bba@puck.nether.net", "asrg@ietf.org", "dovecot.procontrol.fi" ], header :contains "List-id" "asrg.ietf.org", header :is "Sender" [ "owner-nanog@merit.edu", "owner-bss-l@iisc.com" ], address :is "Return-Path" "owner-discuss-list@opensrs.org", address :is :domain "Return-Path" "lists.isp-lists.com" ) { keep; } /* sobig macro from the mv.h library */ elsif _MV_SOBIG$F { addheader "X-Spam-Reason" "sobig.f profile"; fileinto "Spam/maybe"; } etc } From jonas@illuminet.se Tue Nov 25 10:09:30 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8B9DF239B6; Tue, 25 Nov 2003 10:09:30 +0200 (EET) Received: from corpus.illuminet.se (unknown [212.112.167.140]) by danu.procontrol.fi (Postfix) with ESMTP id A877C239A9 for ; Tue, 25 Nov 2003 10:08:56 +0200 (EET) Received: from illuminet.se (h107n2fls32o263.telia.com [217.209.33.107]) (authenticated bits=0) by corpus.illuminet.se (8.12.8/8.12.8) with ESMTP id hAP88m1b021478 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO); Tue, 25 Nov 2003 09:08:49 +0100 Message-ID: <3FC30E10.9030009@illuminet.se> Date: Tue, 25 Nov 2003 09:08:48 +0100 From: Jonas Bosson User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030702 X-Accept-Language: en-us, en, sv MIME-Version: 1.0 To: Timo Sirainen , dovecot@procontrol.fi Subject: Re: speed Re: [Dovecot] New index / mailbox API References: <1069534795.2499.119.camel@hurina> <3FC1F74B.60101@bnap.hu> <1069707110.2499.290.camel@hurina> In-Reply-To: <1069707110.2499.290.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 08:09:30 -0000 X-UID: 4012 Status: O Content-Length: 1234 Timo Sirainen wrote: > On Mon, 2003-11-24 at 14:19, Farkas Levente wrote: >>another thing which always come to my mind when think about speed: >>why we do the indexing when we look into the folders, since IMHO it'd be >>more efficient if we do it at the mail delivery time. the mail arrival >>is more balanced during the time, so the system load is more balanced. >>so there can be >>- one optional deivery helper application which can do the indexing >>during the deivery time, >>- indexing during remove, move, copy etc. imap operations, >>- and the current (eg, the new indexing engine) if someone do not use >>the delivery helper apps. > > > Yep, this has been in TODO for a while. Once this is possible it's also > simple to add support for UIDPLUS extension. And update mailbox quotas > quickly and accurately. It's a bit difficult to implement to 0.99.10 > code base, but should be pretty easy to add to current CVS. Once new > indexing works, I'll add this immediately. > And this would be as easy as to write a stdin -> imap-append app to go with procmail etc? And this would not trigger reindexing, but rather just index the appended part, am I wrong? /Jonas (just done that for java, but can rewrite it into c...) From miquels@cistron.net Tue Nov 25 12:28:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 20FC6239BE; Tue, 25 Nov 2003 12:28:43 +0200 (EET) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by danu.procontrol.fi (Postfix) with ESMTP id 97ABB239BC for ; Tue, 25 Nov 2003 12:28:10 +0200 (EET) Received: from a80-126-193-215.adsl.xs4all.nl ([80.126.193.215] helo=drinkel.cistron.nl) by smtp.cistron-office.nl with asmtp (Exim 3.35 #1 (Debian)) id 1AOaQJ-0005Hd-00; Tue, 25 Nov 2003 11:27:59 +0100 Date: Tue, 25 Nov 2003 11:27:57 +0100 From: Miquel van Smoorenburg To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.3 released Message-ID: <20031125102757.GA4357@drinkel.cistron.nl> References: <1069702134.2513.259.camel@hurina> <20031124230746.GY24739@drinkel.cistron.nl> <1069723885.2509.344.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1069723885.2509.344.camel@hurina> (from tss@iki.fi on Tue, Nov 25, 2003 at 02:31:26 +0100) X-Mailer: Balsa 2.0.15 Lines: 56 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 10:28:43 -0000 X-UID: 4013 Status: O Content-Length: 1783 On Tue, 25 Nov 2003 02:31:26, Timo Sirainen wrote: > On Tue, 2003-11-25 at 01:07, Miquel van Smoorenburg wrote: > > On Mon, 24 Nov 2003 20:28:55, Timo Sirainen wrote: > > > - SUBSCRIBE broke subscription lists > > > - LIST code rewritten, children flags should be correct now > > > > It is correct as in that \HasChildren is now returned .. however, > > for mailboxes without children the \HasNoChildren flag is not > > returned. > > > You're probably talking about LSUB command, not LIST? Let me check.. (reading strace output again) .. yes, mutt does LSUB "" "%" an then plain folders are not listed with \HasChildren or \HasNoChildren flags, but folders-with-subfolders do have the \HasChildren flag set. E.g. a002 lsub "" "%" * LSUB () "." "Drafts" * LSUB () "." INBOX * LSUB () "." "Sent" * LSUB () "." "Trash" * LSUB (\Noselect \HasChildren) "." "cistron" * LSUB (\Noselect \HasChildren) "." "debian" a002 OK Lsub completed. > This is kind of > designed that way to avoid unneeded traffic for most clients, using > LISTEXT extension with: > > LIST (subscribed children) "" % > > works correctly. Hmm.. Maybe I should make it configurable.. Ah, I see. I don't have any other IMAP servers running at the moment so I can't check to see what others do. But indeed, if I tell mutt to list all folders instead of the subscribed ones (so that it uses LIST rather than LSUB) it appears to work correctly. > > I looked at the CVS code and it should work there. This is > > probably not going to get fixed in the 0.99.10 series, right ? > > I copied that code from CVS to .10.3. Oh, OK. Somehow I had the impression that you just fixed the \Children -> \HasChildren typo but you added the lib-storage/index/maildir/ code to .10.3 as well. That is excellent, thanks. Mike. From lfarkas@bppiac.hu Mon Nov 24 14:00:57 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9046D2399B; Mon, 24 Nov 2003 14:00:57 +0200 (EET) Received: from mail1.bppiac.hu (blue.bppiac.hu [212.108.197.67]) by danu.procontrol.fi (Postfix) with ESMTP id E737423838 for ; Mon, 24 Nov 2003 14:00:19 +0200 (EET) Received: from mail2.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by mail1.bppiac.hu (Postfix) with ESMTP id 5F6126E40B2; Mon, 24 Nov 2003 12:56:25 +0100 (CET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 5FA1316F4D0; Mon, 24 Nov 2003 13:00:17 +0100 (CET) Received: from bppiac.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail2.bppiac.hu (Postfix) with ESMTP id 5103816F4CF; Mon, 24 Nov 2003 13:00:17 +0100 (CET) Message-ID: <3FC1F2D1.4000907@bppiac.hu> Date: Mon, 24 Nov 2003 13:00:17 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031016 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: speed Re: [Dovecot] New index / mailbox API References: <1069534795.2499.119.camel@hurina> In-Reply-To: <1069534795.2499.119.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Tue, 25 Nov 2003 13:32:30 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 12:00:57 -0000 X-UID: 4014 Status: O Content-Length: 1779 hi, it's an interesting read, but go back to a higher level for a moment. I like dovecot since it's use simple files as mail storage (not like cyrus). in case of dovecot if something happend I can easily switch to another imap server, which is one of the most important feature in a production enviroment (there should have to be a way of escape). other important feature is the speed (when we have a few hundred of mailboxes). some kind of indexing seems to be a good way of to do this. but I always feel that dovecot reinvent the wheel, since there is a dozen of database system which has nothing else to do just indexing (ok it's not true, but..). they probably do it in the right way (or at least we can find some) and they has a few years of experience. they do right the indexing, the locking, the transactions, etc.. so why we not use one realy fast and good database engine to index our mail storage? the only reason what I can accept in this case, that this is some very special type of database and dovecot can use such algorithm which suited to this problem better then a general indexing algorithms. is this true? another thing which always come to my mind when think about speed: why we do the indexing when we look into the folders, since IMHO it'd be more efficient if we do it at the mail delivery time. the mail arrival is more balanced during the time, so the system load is more balanced. so there can be - one optional deivery helper application which can do the indexing during the deivery time, - indexing during remove, move, copy etc. imap operations, - and the current (eg, the new indexing engine) if someone do not use the delivery helper apps. just my 2c. -- Levente "Si vis pacem para bellum!" From tss@iki.fi Tue Nov 25 13:35:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5248A239BE; Tue, 25 Nov 2003 13:35:11 +0200 (EET) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E8BB6239AC; Tue, 25 Nov 2003 13:34:37 +0200 (EET) Date: Tue, 25 Nov 2003 13:34:44 +0200 Subject: Re: speed Re: [Dovecot] New index / mailbox API Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-1--888912638" Mime-Version: 1.0 (Apple Message framework v553) To: Jonas Bosson From: Timo Sirainen In-Reply-To: <3FC30E10.9030009@illuminet.se> Message-Id: <5DA10872-1F3B-11D8-BBF9-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Pgp-Agent: GPGMail 1.0 (v30) X-Mailer: Apple Mail (2.553) X-Spam-Status: No, hits=-7.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 11:35:11 -0000 X-UID: 4015 Status: O Content-Length: 1284 --Apple-Mail-1--888912638 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On Tuesday, Nov 25, 2003, at 10:08 Europe/Helsinki, Jonas Bosson wrote: > Timo Sirainen wrote: >> Yep, this has been in TODO for a while. Once this is possible it's >> also >> simple to add support for UIDPLUS extension. And update mailbox quotas >> quickly and accurately. It's a bit difficult to implement to 0.99.10 >> code base, but should be pretty easy to add to current CVS. Once new >> indexing works, I'll add this immediately. > > And this would be as easy as to write a stdin -> imap-append app to go > with procmail etc? And this would not trigger reindexing, but rather > just index the appended part, am I wrong? Yes, it would work that way once APPEND works that way.. Which is not yet. --Apple-Mail-1--888912638 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/wz5UyUhSUUBViskRAjiqAKCg+zo+hqiqX6qOKkYMYqzg8f9CugCbBW3v eXRaex6y+l6Vo+tau2eSCok= =FLGb -----END PGP SIGNATURE----- --Apple-Mail-1--888912638-- From tss@iki.fi Tue Nov 25 13:42:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4BB96239DB; Tue, 25 Nov 2003 13:42:04 +0200 (EET) Received: from iki.fi (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0C725239D0; Tue, 25 Nov 2003 13:41:31 +0200 (EET) Date: Tue, 25 Nov 2003 13:41:41 +0200 Subject: Re: [Dovecot] mbox format Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-2--888495415" Mime-Version: 1.0 (Apple Message framework v553) To: DINH Viet Hoa From: Timo Sirainen In-Reply-To: Message-Id: <565059F6-1F3C-11D8-BBF9-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit X-Pgp-Agent: GPGMail 1.0 (v30) X-Mailer: Apple Mail (2.553) X-Spam-Status: No, hits=-7.0 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) cc: dovecot ML X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 11:42:04 -0000 X-UID: 4016 Status: O Content-Length: 1464 --Apple-Mail-2--888495415 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On Tuesday, Nov 25, 2003, at 04:31 Europe/Helsinki, DINH Viet Hoa wrote: > I wish to know some implementation details about mbox. > When you you mbox format in IMAP, are you doing to keep the same > message > UID across IMAP session if you know that any other program can modify > the mailbox as it wants, for example, two messages can be exchanged. > In this case, will the UID kept the same ? > If they keep their UID, how do you identify the messages ? I do it pretty much like UW-IMAP: Add X-UID header to each message's header. I don't try to support changing message order (well, I think I could but I don't think it matters much). If X-UID headers are out of order, all messages after that are rewritten with new UIDs. With read-only mailboxes + index files I use MD5 sums of a few headers to identify the messages. That doesn't support changing message order either. --Apple-Mail-2--888495415 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/wz/1yUhSUUBViskRAnOrAJ0eDNkxRofqYY2VgKp4ftShWwmnWgCfYOvx SrF++R2O8LHCKIU9jNs9yXg= =0eMz -----END PGP SIGNATURE----- --Apple-Mail-2--888495415-- From mreimer@vpop.net Tue Nov 25 17:52:34 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 96ECD239D0; Tue, 25 Nov 2003 17:52:34 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 5E9A0239E4 for ; Tue, 25 Nov 2003 17:52:02 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id ED7993A8554; Tue, 25 Nov 2003 07:51:56 -0800 (PST) Message-ID: <3FC37B4C.8050209@vpop.net> Date: Tue, 25 Nov 2003 09:54:52 -0600 From: Matthew Reimer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] SSL and certificate authorities. References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 15:52:34 -0000 X-UID: 4017 Status: O Content-Length: 1118 Zach Bagnall wrote: > On Thu, 20 Nov 2003 18:28:51 +0200, Timo Sirainen wrote: > >>What exactly does this patch do? Gives client a list of accepted CAs, >>but it doesn't look like it actually requires client to provide a >>valid certificate? > > > On Tue, 18 Nov 2003 11:03:08 +1300, James Tyson > wrote: > >>Also, is there a configuration directive for dovecot to add the >>issuers ca bundle similar to apache's SSLCACertificateFile? > > > I'm no SSL expert, but I took the requested feature to be a way to "make > additional certificates available in order to complete a certificate > chain". I had trouble with an instantssl cert, and found that what I needed to do was to also include all the certs up the chain in the .pem file, in a certain order, to keep the client from complaining about an invalid certificate. The first certificate in the pem file should be the the server certificate, followed by its chain starting from the root certificate down. Works for me without the need for patches (though something like SSLCACertificateFile would be nice). Matt From bah@webmedic.net Tue Nov 25 18:04:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ACF3A239E8; Tue, 25 Nov 2003 18:04:22 +0200 (EET) Received: from courage.vosn.net (courage.vosn.net [209.151.74.1]) by danu.procontrol.fi (Postfix) with ESMTP id BE019239BC for ; Tue, 25 Nov 2003 18:03:50 +0200 (EET) Received: from adsl-209-206-172-246-rb.vcr.centurytel.net ([209.206.172.246] helo=mandrake.webmedic.net) by courage.vosn.net with esmtp (Exim 4.24) id 1AOffF-0000BQ-Nu for dovecot@procontrol.fi; Tue, 25 Nov 2003 09:03:45 -0700 From: Brook Humphrey Organization: Mobile PC Medic To: dovecot ML Date: Tue, 25 Nov 2003 08:03:46 -0800 User-Agent: KMail/1.5.93 MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200311250803.46493.bah@webmedic.net> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - courage.vosn.net X-AntiAbuse: Original Domain - procontrol.fi X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - webmedic.net Subject: [Dovecot] The latest dovecot fixes the problems with most mail clients X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 16:04:22 -0000 X-UID: 4018 Status: O .99.10.4 fixes most the issues with kmail. For some reason if I look at an email and then go to another one and then try to go back to one I've already viewed sometimes it shows the mail as an atacment. This version does fix the problem with squrrelmail not being able to subscribe to folders. Thanks for the fixes. -- -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- Brook Humphrey Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com Holiness unto the Lord -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- From mreimer@vpop.net Tue Nov 25 22:41:49 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1005723866; Tue, 25 Nov 2003 22:41:49 +0200 (EET) Received: from boromir.vpop.net (dns1.vpop.net [207.178.248.2]) by danu.procontrol.fi (Postfix) with ESMTP id 230112385D for ; Tue, 25 Nov 2003 22:41:15 +0200 (EET) Received: from vpop.net (bilbo.vpop.net [65.103.33.41]) by boromir.vpop.net (Postfix) with ESMTP id 6688A3A636B; Tue, 25 Nov 2003 12:41:11 -0800 (PST) Message-ID: <3FC3BF18.4090609@vpop.net> Date: Tue, 25 Nov 2003 14:44:08 -0600 From: Matthew Reimer Organization: VPOP Technologies, Inc. User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031015 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] IMAP subscribe/unsubscribe broken in 0.99.10.2 References: <3FB94FFF.30203@vpop.net> <1069345380.16673.14.camel@hurina> In-Reply-To: <1069345380.16673.14.camel@hurina> Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 20:41:49 -0000 X-UID: 4019 Status: O Content-Length: 1235 Timo Sirainen wrote:
On Tue, 2003-11-18 at 00:47, Matthew Reimer wrote:
  
IMAP subscribe/unsubscribe is broken in 0.99.10.2 (and earlier 
releases), specifically subsfile_set_subscribed(), where the logic is 
all wrong. I tried just copying over the latest subscription-file.c but 
it has dependencies on some file locking/dotlocking stuff that 0.99.10.2 
doesn't have.

Timo, would it be possible to incorporate the latest subscription-file.c 
into 0.99.10.3 (whenever that will be)?
    

I see bugs in CVS's subscription implementation, but what's wrong in
0.99.10.2 implementation? Also your comments about dotlocking changes
sound like you're trying some CVS snapshot :)
  
Looks like you fixed it. Thanks! (I was using 0.99.10.2, and tried pulling in a file from CVS hoping I'd get lucky and it would work.)

Matt
From esj@harvee.org Tue Nov 25 23:13:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EC906238C5; Tue, 25 Nov 2003 23:13:50 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 72B1A23838 for ; Tue, 25 Nov 2003 23:13:16 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id hAPLDC2x013447 for ; Tue, 25 Nov 2003 16:13:13 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 25 Nov 2003 16:13:09 -0500 Message-ID: <3FC3C55A.6030606@harvee.org> Date: Tue, 25 Nov 2003 16:10:50 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:031125:dovecot@procontrol.fi:0af323ff8158084c Subject: [Dovecot] did the conversion and something broke X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 21:13:51 -0000 X-UID: 4020 Status: O figures. Converted over to maildir today. Procmail is a piece of cake once I managed to pride out of its cold dead fingers the essential tiny bit of documentation I needed. But I'm having a problem with my nested directories. I have a directory called incoming sort my incoming mail. The conversion utility created a bunch of files called incoming. and 1 file is visible incoming/pound. However, if I try to subscribe to anything else I get: the current command did not succeed. The mail server responded: Invalid mailbox name: incoming/ATMoB and this is how it set up. [esj@harvee Maildir]$ ls -ld .incomming.ATMoB/ drwx------ 5 esj esj 4096 Nov 25 13:45 .incomming.ATMoB/ [esj@harvee Maildir]$ ideas? ---eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From charlie@rubberduck.com Wed Nov 26 01:24:07 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7289F23866; Wed, 26 Nov 2003 01:24:07 +0200 (EET) Received: from lazy.spodder.com (unknown [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 8A03A23838 for ; Wed, 26 Nov 2003 01:23:33 +0200 (EET) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 9743B8F20; Wed, 26 Nov 2003 10:23:04 +1100 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id D350B9D14F; Wed, 26 Nov 2003 10:23:21 +1100 (EST) Date: Wed, 26 Nov 2003 10:23:21 +1100 From: Charlie Allom To: "Eric S. Johansson" Subject: Re: [Dovecot] did the conversion and something broke Message-ID: <20031125232321.GB20536@myinternet.com.au> References: <3FC3C55A.6030606@harvee.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="7ZAtKRhVyVSsbBD2" Content-Disposition: inline In-Reply-To: <3FC3C55A.6030606@harvee.org> User-Agent: Mutt/1.5.4i cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 23:24:07 -0000 X-UID: 4021 Status: O --7ZAtKRhVyVSsbBD2 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Nov 25, 2003 at 04:10:50PM -0500, Eric S. Johansson wrote: > if I try to subscribe to anything else I get: >=20 > the current command did not succeed. The mail server responded: > Invalid mailbox name: incoming/ATMoB >=20 > and this is how it set up. >=20 > [esj@harvee Maildir]$ ls -ld .incomming.ATMoB/ drwx------ 5 esj > esj 4096 Nov 25 13:45 .incomming.ATMoB/ [esj@harvee Maildir]$ Yes - you have two m's there? :) C. --=20 charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --7ZAtKRhVyVSsbBD2 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/w+RpqiZDwhSqeUERAvBVAJ9x5k0ZVnt2rBC3lz12St0WT3M/UACeP11t rN3FVJh5WDHOPjEqaNMKQow= =u62K -----END PGP SIGNATURE----- --7ZAtKRhVyVSsbBD2-- From esj@harvee.org Wed Nov 26 01:29:43 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id AF16F23866; Wed, 26 Nov 2003 01:29:43 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id 4AB4123838 for ; Wed, 26 Nov 2003 01:29:11 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id hAPNSw2x027143; Tue, 25 Nov 2003 18:29:08 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 25 Nov 2003 18:28:53 -0500 Message-ID: <3FC3E52A.7020402@harvee.org> Date: Tue, 25 Nov 2003 18:26:34 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Charlie Allom Subject: Re: [Dovecot] did the conversion and something broke References: <3FC3C55A.6030606@harvee.org> <20031125232321.GB20536@myinternet.com.au> In-Reply-To: <20031125232321.GB20536@myinternet.com.au> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:031125:charlie@rubberduck.com:8b0e3df13d284746 X-Hashcash: 0:031125:dovecot@procontrol.fi:f7a40cbf40b091c8 cc: Dovecot List X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2003 23:29:43 -0000 X-UID: 4022 Status: O Charlie Allom wrote: > On Tue, Nov 25, 2003 at 04:10:50PM -0500, Eric S. Johansson wrote: > > Yes - you have two m's there? :) > > C. thank you... can you tell that I typed instead of talked? :-) ---eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From dean-list-dovecot@arctic.org Wed Nov 26 05:12:22 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3EA3A238B7; Wed, 26 Nov 2003 05:12:22 +0200 (EET) Received: from twinlark.arctic.org (twinlark.arctic.org [168.75.98.6]) by danu.procontrol.fi (Postfix) with ESMTP id AE5EF23866 for ; Wed, 26 Nov 2003 05:11:49 +0200 (EET) Received: (qmail 19328 invoked by uid 500); 26 Nov 2003 03:11:48 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by 127.0.0.1 with SMTP; 26 Nov 2003 03:11:48 -0000 Date: Tue, 25 Nov 2003 19:11:48 -0800 (PST) From: dean gaudet To: dovecot@procontrol.fi Message-ID: X-comment: visit http://arctic.org/~dean/legal for information regarding copyright and disclaimer. MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] corrupted empty message with CVS X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 03:12:22 -0000 X-UID: 4023 Status: O Content-Length: 1463 with CVS as of an hour ago i'm seeing corruption of messages (in an mbox) with an empty message body. for example, here's what i have in my test INBOX right after receiving the empty message: --- top of INBOX --- >From dean@arctic.org Tue Nov 25 19:02:23 2003 Return-Path: Delivered-To: dgtest@arctic.org Received: (qmail 3626 invoked by uid 500); 26 Nov 2003 03:02:23 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by 127.0.0.1 with SMTP; 26 Nov 2003 03:02:23 -0000 Date: Tue, 25 Nov 2003 19:02:23 -0800 (PST) From: dean gaudet To: dgtest@arctic.org Subject: quibble Message-ID: X-comment: visit http://arctic.org/~dean/legal for information regarding copyright and disclaimer. MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on twinlark.arctic.org X-Spam-Level: X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=ham version=2.60 --- end of INBOX --- and then i use pine 4.58 to access {localhost}INBOX and it shows a corrupted message (no subject/etc) then i quit pine, and here's what the INBOX looks like on disk afterwards: --- top of INBOX --- >From dean@arctic.org Tue Nov 25 19:02:23 2003 X-IMAPbase: 1069815483 6 Status: RO X-UID: 6 Content-Length: 0 X-Keywords: --- end of INBOX --- any ideas or other info which would be useful? thanks -dean From esj@harvee.org Wed Nov 26 06:38:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E6E6C2385D; Wed, 26 Nov 2003 06:38:45 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by danu.procontrol.fi (Postfix) with ESMTP id E68812385D for ; Wed, 26 Nov 2003 06:38:31 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id hAQ4cD2x031407 for ; Tue, 25 Nov 2003 23:38:28 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Tue, 25 Nov 2003 23:38:06 -0500 Message-ID: <3FC42DA2.4080804@harvee.org> Date: Tue, 25 Nov 2003 23:35:46 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:031126:dovecot@procontrol.fi:8ae42374c0d4561e Subject: [Dovecot] a couple more tidbits on the conversion process X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 04:38:46 -0000 X-UID: 4024 Status: O Content-Length: 1047 a couple of things that really helped me when converting from mbox to maildir. First is to see how simple procmail changes could be. in your /etc/procmailrc file, just add the following. MAILDIR=$HOME/Maildir/ # Make sure this directory exists! DEFAULT=$MAILDIR if you're using per user procmail files, the exact same two lines will also work to ensure proper delivery. if you're anything like me with 200 plus mailboxes, the following utility is really superb at doing the conversion all at once. Granted, I had to wait awhile to convert the GB+ of e-mail but I had other things to do and not getting interrupted every few minutes made the time reasonably productive. :-) http://batleth.sapienti-sat.org/projects/mb2md/ I was getting an error about some sort of illegal character sequence but the mail seems to have converted fine. I think the next thing to do is create a new partition for home and make it ReiserFS. ---eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From tsg@cctg.com Wed Nov 26 10:17:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 31B61238C5; Wed, 26 Nov 2003 10:17:46 +0200 (EET) Received: from tercesi.cctg.com (cctg.com [66.80.224.100]) by danu.procontrol.fi (Postfix) with ESMTP id 9C17B238B7 for ; Wed, 26 Nov 2003 10:17:11 +0200 (EET) Received: from tercesi.cctg.com (localhost [127.0.0.1])hAQ8H8ma024670 for ; Wed, 26 Nov 2003 00:17:08 -0800 (PST) X-Envelope-From: tsg@cctg.com X-Envelope-To: Received: (from nobody@localhost) by tercesi.cctg.com (8.12.10/8.12.6/Submit) id hAQ8H7PA024669; Wed, 26 Nov 2003 00:17:07 -0800 (PST) X-Authentication-Warning: tercesi.cctg.com: nobody set sender to tsg@cctg.com using -f Received: from 66.80.224.70 (SquirrelMail authenticated user tsg9) by tercesi.cctg.com with HTTP; Wed, 26 Nov 2003 00:17:07 -0800 (PST) Message-ID: <32883.66.80.224.70.1069834627.squirrel@tercesi.cctg.com> Date: Wed, 26 Nov 2003 00:17:07 -0800 (PST) From: "Ted S. Garaventa" To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Compiling dovecot on SuSE 9 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: tsg@cctg.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 08:17:46 -0000 X-UID: 4025 Status: O Again I am asking for some help to compile and configure dovecot on SuSE 9. I have configured and compiled it as per the instructions and no errors or problems. When I try to run dovecot from the command line it does not complain or give me any errors. The daemon starts and dies almost immediately. Do I need to compile differently? What can I do to see what is the problem. I was asked to run strace but I don't know what it is telling me. Thanks From Clive.Jones+nospam+procontrol.fi@meridian.co.uk Wed Nov 26 13:05:11 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BD65C238C5; Wed, 26 Nov 2003 13:05:11 +0200 (EET) Received: from greenwich.meridian-audio.ltd.uk (greenwich.meridian-audio.ltd.uk [194.203.67.114]) by danu.procontrol.fi (Postfix) with ESMTP id A822B2385D for ; Wed, 26 Nov 2003 13:04:39 +0200 (EET) Received: from CLIVE (clive.uk.ma-int.com [10.76.18.1]) by greenwich.meridian-audio.ltd.uk (Postfix) with SMTP id 1FBE02D0F for ; Wed, 26 Nov 2003 11:04:35 +0000 (GMT) Message-ID: <002b01c3b40d$1374ebb0$01124c0a@uk.maint.com> From: "Clive Jones" To: Date: Wed, 26 Nov 2003 11:04:34 -0000 Organization: Meridian Audio MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4927.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4927.1200 Subject: [Dovecot] Pid file? X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 11:05:11 -0000 X-UID: 4026 Status: O Is there a way to make Dovecot maintain a pid file? Most daemons put their pid in /var/run/dovecot.pid (or similar) while they are running, then remove it on exit, but I can't find any option to do this in Dovecot. (Of course, if I could work out how on earth to stop Dovecot leaking processes, I wouldn't be looking for a simpler way to keep bringing the daemon down and restarting it. (-8 ) Regards, --Clive. From rueckert@informatik.uni-rostock.de Wed Nov 26 14:27:35 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 84C98238C5; Wed, 26 Nov 2003 14:27:35 +0200 (EET) Received: from monsters.rsn.uni-rostock.de (monsters.rsn.uni-rostock.de [139.30.253.26]) by danu.procontrol.fi (Postfix) with ESMTP id 76546238B7 for ; Wed, 26 Nov 2003 14:27:00 +0200 (EET) Received: by monsters.rsn.uni-rostock.de (Postfix, from userid 1001) id 05178FF5; Wed, 26 Nov 2003 13:26:54 +0100 (CET) Date: Wed, 26 Nov 2003 13:26:54 +0100 From: Marcus Rueckert To: "Ted S. Garaventa" Subject: Re: [Dovecot] Compiling dovecot on SuSE 9 Message-ID: <20031126122654.GS22102@irssi.ath.cx> References: <32883.66.80.224.70.1069834627.squirrel@tercesi.cctg.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <32883.66.80.224.70.1069834627.squirrel@tercesi.cctg.com> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 12:27:35 -0000 X-UID: 4027 Status: O Content-Length: 1443 On 2003-11-26 00:17:07 -0800, Ted S. Garaventa wrote: > Date: Wed, 26 Nov 2003 00:17:07 -0800 (PST) > From: "Ted S. Garaventa" > Subject: [Dovecot] Compiling dovecot on SuSE 9 > To: dovecot@procontrol.fi > > Again I am asking for some help to compile and configure dovecot on SuSE 9. im working on some rpm for it. i think ill release them on thursday. > I have configured and compiled it as per the instructions and no errors or > problems. When I try to run dovecot from the command line it does not > complain or give me any errors. The daemon starts and dies almost > immediately. you did everything right so far. the problem is that dovecot comes with SSL enabled by default but there is no cert for it. go to $SRCDIR/doc/ edit mkcert.sh (change imapd.pem to dovecot.pem) run it. restart dovecot and everything will be fine. but you need a dovecot pam file. i use the file from [1]. > Do I need to compile differently? What can I do to see what is the > problem. I was asked to run strace but I don't know what it is telling me. the solution would be: strace -e trace=file dovecot you would see a file not found error at the end of the log. darix [1] http://monsters.rsn.uni-rostock.de/~darix/suse/dovecot you can find the patch for mkcert.sh + dovecot.pam + init script there. and of course the rpm when it's done. -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From tss@iki.fi Wed Nov 26 17:45:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 93077238C5; Wed, 26 Nov 2003 17:45:17 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EFF242385D for ; Wed, 26 Nov 2003 17:44:43 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3EA8B5C288D8; Wed, 26 Nov 2003 17:44:43 +0200 (EET) Subject: Re: [Dovecot] Compiling dovecot on SuSE 9 From: Timo Sirainen To: Marcus Rueckert In-Reply-To: <20031126122654.GS22102@irssi.ath.cx> References: <32883.66.80.224.70.1069834627.squirrel@tercesi.cctg.com> <20031126122654.GS22102@irssi.ath.cx> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-vyddxUMRIIjo5wslI3pl" Message-Id: <1069861482.14203.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 26 Nov 2003 17:44:43 +0200 cc: dovecot@procontrol.fi cc: "Ted S. Garaventa" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 15:45:17 -0000 X-UID: 4028 Status: O --=-vyddxUMRIIjo5wslI3pl Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2003-11-26 at 14:26, Marcus Rueckert wrote: > > Do I need to compile differently? What can I do to see what is the > > problem. I was asked to run strace but I don't know what it is telling = me. > the solution would be: >=20 > strace -e trace=3Dfile dovecot >=20 > you would see a file not found error at the end of the log. Doesn't the error message get written to log file as well? If not, I'll have to fix it. --=-vyddxUMRIIjo5wslI3pl Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/xMpqyUhSUUBViskRApB9AJ4if7SaLc4206weuqe72YCvl+bo3ACgly5D 5MOMqkzyOPuaZU899ukr//Y= =+5M5 -----END PGP SIGNATURE----- --=-vyddxUMRIIjo5wslI3pl-- From tss@iki.fi Wed Nov 26 17:57:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C5E6D238C8; Wed, 26 Nov 2003 17:57:23 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 162172385D for ; Wed, 26 Nov 2003 17:56:51 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id BC7DE5C288D8; Wed, 26 Nov 2003 17:56:50 +0200 (EET) Subject: Re: [Dovecot] Pid file? From: Timo Sirainen To: Clive Jones In-Reply-To: <002b01c3b40d$1374ebb0$01124c0a@uk.maint.com> References: <002b01c3b40d$1374ebb0$01124c0a@uk.maint.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-XrEFKwPuC/7kuyW9MgoL" Message-Id: <1069862210.14203.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 26 Nov 2003 17:56:50 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 15:57:23 -0000 X-UID: 4029 Status: O Content-Length: 2132 --=-XrEFKwPuC/7kuyW9MgoL Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2003-11-26 at 13:04, Clive Jones wrote: > Is there a way to make Dovecot maintain a pid file? Most daemons > put their pid in /var/run/dovecot.pid (or similar) while they are > running, then remove it on exit, but I can't find any option to > do this in Dovecot. Hmm. I guess I could add it. > (Of course, if I could work out how on earth to stop Dovecot > leaking processes, I wouldn't be looking for a simpler way to > keep bringing the daemon down and restarting it. (-8 ) Well, I thought you would have looked at 0.99.10.4 release announcement mail: - Fixed reference counters in imap-login and pop3-login. IMAP AUTHENTICATE and POP3 AUTH commands could have left the process stuck doing nothing forever. I'd think it fixes your problem. Also last night I started thinking about this problem in general and figured out that manual reference counting is a bad idea. Either you unref too much and cause double-free() security holes, or you forget to unref something and it can be used to DoS like in this case. Garbage collector would help .. but I don't really like the idea of depending on Boehm GC. It's bloaty and I haven't had very good experiences with it so far. I couldn't figure out why it's incorrectly freeing some part of memory when running THREAD command and causing crashes. So.. I haven't fully finished my plan, but I think it would work if I made some kind of GC for "objects". There would be just a few of them, mostly where I use refcounting now. It would be fully ANSI-C and it might not be as easy to use as real GC, but I think I could make it safe so these kind of security holes would be prevented. --=-XrEFKwPuC/7kuyW9MgoL Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/xM1CyUhSUUBViskRAjcdAJ0bNDi8buTPO3jdbhTA+ouASdn6rwCgiA/L z58y5l2kJBhAYPZA2iy8Jf0= =/HsX -----END PGP SIGNATURE----- --=-XrEFKwPuC/7kuyW9MgoL-- From tss@iki.fi Wed Nov 26 17:58:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 05E3A238C9; Wed, 26 Nov 2003 17:58:03 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 36B072385D for ; Wed, 26 Nov 2003 17:57:24 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 123215C288D8 for ; Wed, 26 Nov 2003 17:57:24 +0200 (EET) Subject: Re: [Dovecot] corrupted empty message with CVS From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-kCUZkhOk4Df7W+uztipz" Message-Id: <1069862243.14192.21.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 26 Nov 2003 17:57:24 +0200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 15:58:03 -0000 X-UID: 4030 Status: O --=-kCUZkhOk4Df7W+uztipz Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2003-11-26 at 05:11, dean gaudet wrote: > with CVS as of an hour ago i'm seeing corruption of messages (in an mbox) > with an empty message body. CVS is more or less broken, especially with mbox. Not such a good idea to use it right now. --=-kCUZkhOk4Df7W+uztipz Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/xM1jyUhSUUBViskRAhTRAJ9cT11Ty8/xkCzgmX2UHl16Fh1s6ACfTnZr 1PLSqxJvpSw71U5ewlBP1hQ= =AEGv -----END PGP SIGNATURE----- --=-kCUZkhOk4Df7W+uztipz-- From dean-list-dovecot@arctic.org Wed Nov 26 19:52:36 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C223E238C9; Wed, 26 Nov 2003 19:52:36 +0200 (EET) Received: from twinlark.arctic.org (twinlark.arctic.org [168.75.98.6]) by danu.procontrol.fi (Postfix) with ESMTP id 2DBDF238C5 for ; Wed, 26 Nov 2003 19:52:03 +0200 (EET) Received: (qmail 10041 invoked by uid 500); 26 Nov 2003 17:52:00 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by 127.0.0.1 with SMTP; 26 Nov 2003 17:52:00 -0000 Date: Wed, 26 Nov 2003 09:52:00 -0800 (PST) From: dean gaudet To: Timo Sirainen Subject: Re: [Dovecot] corrupted empty message with CVS In-Reply-To: <1069862243.14192.21.camel@hurina> Message-ID: References: <1069862243.14192.21.camel@hurina> X-comment: visit http://arctic.org/~dean/legal for information regarding copyright and disclaimer. MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 17:52:36 -0000 X-UID: 4031 Status: O On Wed, 26 Nov 2003, Timo Sirainen wrote: > On Wed, 2003-11-26 at 05:11, dean gaudet wrote: > > with CVS as of an hour ago i'm seeing corruption of messages (in an mbox) > > with an empty message body. > > CVS is more or less broken, especially with mbox. Not such a good idea > to use it right now. darn... is there a 0.99.11-testN which you recommend? i tried -test8 and -test9 last night as well and they also didn't seem to be very happy with mbox (no corruption, but they couldn't parse some valid mbox files). primarily what i'm looking for is support for both /etc/shadow and vpopmail authentication. i was lead to believe i need some version of 0.99.11 to get these to work in concert. thanks -dean From tss@iki.fi Wed Nov 26 20:11:53 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 221FE238C9; Wed, 26 Nov 2003 20:11:53 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 68709238B7 for ; Wed, 26 Nov 2003 20:11:19 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2CD535C288D7 for ; Wed, 26 Nov 2003 20:11:19 +0200 (EET) Subject: Re: [Dovecot] corrupted empty message with CVS From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: <1069862243.14192.21.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-RK8tRIGC8aCtLhJOEVUh" Message-Id: <1069870278.14196.41.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 26 Nov 2003 20:11:19 +0200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 18:11:53 -0000 X-UID: 4032 Status: O Content-Length: 1173 --=-RK8tRIGC8aCtLhJOEVUh Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2003-11-26 at 19:52, dean gaudet wrote: > > CVS is more or less broken, especially with mbox. Not such a good idea > > to use it right now. >=20 > darn... is there a 0.99.11-testN which you recommend? i tried -test8 and > -test9 last night as well and they also didn't seem to be very happy with > mbox (no corruption, but they couldn't parse some valid mbox files). They're even more broken than current CVS :) > primarily what i'm looking for is support for both /etc/shadow and > vpopmail authentication. i was lead to believe i need some version of > 0.99.11 to get these to work in concert. Well, yes.. What probably would work quite well is to install CVS but use imap binary from 0.99.10.4. --=-RK8tRIGC8aCtLhJOEVUh Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/xOzGyUhSUUBViskRAtO2AKCT+c7fRFjS/StDbgsE6p7kgRiL5ACfYVB+ nPp5U8KVC7Xe9UOJm1nw3v0= =Y7bB -----END PGP SIGNATURE----- --=-RK8tRIGC8aCtLhJOEVUh-- From dean-list-dovecot@arctic.org Wed Nov 26 20:21:41 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1CA9023997; Wed, 26 Nov 2003 20:21:41 +0200 (EET) Received: from twinlark.arctic.org (twinlark.arctic.org [168.75.98.6]) by danu.procontrol.fi (Postfix) with ESMTP id 2685B238C9 for ; Wed, 26 Nov 2003 20:21:27 +0200 (EET) Received: (qmail 17322 invoked by uid 500); 26 Nov 2003 18:21:25 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by 127.0.0.1 with SMTP; 26 Nov 2003 18:21:25 -0000 Date: Wed, 26 Nov 2003 10:21:25 -0800 (PST) From: dean gaudet To: Timo Sirainen Subject: Re: [Dovecot] corrupted empty message with CVS In-Reply-To: <1069870278.14196.41.camel@hurina> Message-ID: References: <1069870278.14196.41.camel@hurina> X-comment: visit http://arctic.org/~dean/legal for information regarding copyright and disclaimer. MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Nov 2003 18:21:41 -0000 X-UID: 4033 Status: O On Wed, 26 Nov 2003, Timo Sirainen wrote: > On Wed, 2003-11-26 at 19:52, dean gaudet wrote: > > primarily what i'm looking for is support for both /etc/shadow and > > vpopmail authentication. i was lead to believe i need some version of > > 0.99.11 to get these to work in concert. > > Well, yes.. What probably would work quite well is to install CVS but > use imap binary from 0.99.10.4. haha! ok... i'll give that a whirl next time i have a chance :) i have a related question -- i wonder if it would be hard to move more config options into the auth subsections. i'd like to conditionalize default_mail_env, and {last,first}_valid_{u,g}id based on whether the login is "auth default" or "auth vpopmail". i was planning on digging through the code at some point, but figured it was worth asking. -dean From tsg@cctg.com Thu Nov 27 07:34:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7156C23999; Thu, 27 Nov 2003 07:34:08 +0200 (EET) Received: from tercesi.cctg.com (tercesi.cctg.com [66.80.224.100]) by danu.procontrol.fi (Postfix) with ESMTP id 259BD238C5 for ; Thu, 27 Nov 2003 07:33:33 +0200 (EET) Received: from tercesi.cctg.com (localhost [127.0.0.1])hAR5XVma000045 for ; Wed, 26 Nov 2003 21:33:31 -0800 (PST) X-Envelope-From: tsg@cctg.com X-Envelope-To: Received: (from nobody@localhost) by tercesi.cctg.com (8.12.10/8.12.6/Submit) id hAR5XUot000044; Wed, 26 Nov 2003 21:33:30 -0800 (PST) X-Authentication-Warning: tercesi.cctg.com: nobody set sender to tsg@cctg.com using -f Received: from 66.80.224.80 (SquirrelMail authenticated user tsg9) by tercesi.cctg.com with HTTP; Wed, 26 Nov 2003 21:33:30 -0800 (PST) Message-ID: <64611.66.80.224.80.1069911210.squirrel@tercesi.cctg.com> Date: Wed, 26 Nov 2003 21:33:30 -0800 (PST) Subject: [Fwd: Re: [Dovecot] Compiling dovecot on SuSE 9] From: "Ted S. Garaventa" To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 X-Priority: 3 Importance: Normal X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: tsg@cctg.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Nov 2003 05:34:08 -0000 X-UID: 4034 Status: O Content-Length: 4823 Thanks for the reply regarding the compilaton of dovecot to SuSE 9. I have made the key and put it in the correct area but still no luck. I have attached the strace output to the end of this email. Thanks!!! > Date: Wed, 26 Nov 2003 00:17:07 -0800 (PST) > From: "Ted S. Garaventa" > Subject: [Dovecot] Compiling dovecot on SuSE 9 > To: dovecot@procontrol.fi > > Again I am asking for some help to compile and configure dovecot on SuSE 9. im working on some rpm for it. i think ill release them on thursday. > I have configured and compiled it as per the instructions and no errors or problems. When I try to run dovecot from the command line it does not complain or give me any errors. The daemon starts and dies almost immediately. you did everything right so far. the problem is that dovecot comes with SSL enabled by default but there is no cert for it. go to $SRCDIR/doc/ edit mkcert.sh (change imapd.pem to dovecot.pem) run it. restart dovecot and everything will be fine. but you need a dovecot pam file. i use the file from [1]. > Do I need to compile differently? What can I do to see what is the problem. I was asked to run strace but I don't know what it is telling me. the solution would be: strace -e trace=file dovecot you would see a file not found error at the end of the log. darix [1] http://monsters.rsn.uni-rostock.de/~darix/suse/dovecot you can find the patch for mkcert.sh + dovecot.pam + init script there. and of course the rpm when it's done. -- irssi - the client of the smart and beautiful people http://www.irssi.de/ strace output follows: --------------------------------------------------------------------------- casella:/etc/ssl/private # strace -e trace=file /usr/local/sbin/dovecot execve("/usr/local/sbin/dovecot", ["/usr/local/sbin/dovecot"], [/* 55 vars */]) = 0 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=86690, ...}) = 0 open("/lib/i686/libc.so.6", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0755, st_size=1461208, ...}) = 0 open("/usr/local/etc/dovecot.conf", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=18087, ...}) = 0 pread(3, "## Dovecot 1.0 configuration fil"..., 2048, 0) = 2048 pread(3, "gfile instead of syslog(). /dev/"..., 2035, 2048) = 2035 pread(3, "k-bombing\n# we check only once i"..., 1978, 4083) = 1978 pread(3, "processes (ie. /var/mail will al"..., 2046, 6061) = 2046 pread(3, " which speeds up most operations"..., 2023, 8107) = 2023 pread(3, "s. There\'s no access checks othe"..., 2008, 10130) = 2008 pread(3, " and flock too; if you do the or"..., 2024, 12138) = 2024 pread(3, "modules = /usr/lib/dovecot/pop3\n"..., 2042, 14162) = 2042 pread(3, "e, see doc/dovecot-pgsql.conf\nau"..., 1883, 16204) = 1883 open("/etc/nsswitch.conf", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=1291, ...}) = 0 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=86690, ...}) = 0 open("/lib/libnss_compat.so.2", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0755, st_size=33795, ...}) = 0 open("/lib/libnsl.so.1", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0755, st_size=89220, ...}) = 0 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=86690, ...}) = 0 open("/lib/libnss_nis.so.2", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0755, st_size=40322, ...}) = 0 open("/lib/libnss_files.so.2", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0755, st_size=42162, ...}) = 0 open("/etc/passwd", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=1475, ...}) = 0 open("/etc/passwd", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=1475, ...}) = 0 access("/usr/local/libexec/dovecot/imap-login", X_OK) = 0 access("/usr/local/libexec/dovecot/imap", X_OK) = 0 lstat64("/usr/local/var/run/dovecot", {st_mode=S_IFDIR|0700, st_size=72, ...}) = 0 open("/usr/local/var/run/dovecot", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0700, st_size=72, ...}) = 0 lstat64("/usr/local/var/run/dovecot", {st_mode=S_IFDIR|0700, st_size=72, ...}) = 0 open(".", O_RDONLY|O_LARGEFILE) = 3 open("/usr/local/var/run/dovecot/login", O_RDONLY|O_LARGEFILE|O_NOFOLLOW) = 4 open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 5 fstat64(5, {st_mode=S_IFDIR|0750, st_size=48, ...}) = 0 lstat64("/usr/local/var/run/dovecot/login", {st_mode=S_IFDIR|0750, st_size=48, ...}) = 0 open("/usr/local/var/run/dovecot/login", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0750, st_size=48, ...}) = 0 lstat64("/usr/local/var/run/dovecot/login", {st_mode=S_IFDIR|0750, st_size=48, ...}) = 0 access("/usr/local/libexec/dovecot/dovecot-auth", X_OK) = 0 open("/dev/null", O_RDONLY|O_LARGEFILE) = 3 From kadlec@sunserv.kfki.hu Thu Nov 27 16:33:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6275E2399B; Thu, 27 Nov 2003 16:33:44 +0200 (EET) Received: from sunserv.kfki.hu (sunserv.kfki.hu [148.6.0.5]) by danu.procontrol.fi (Postfix) with ESMTP id EB328238C9 for ; Thu, 27 Nov 2003 16:33:11 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by sunserv.kfki.hu (Postfix) with ESMTP id 7FF3A354A0 for ; Thu, 27 Nov 2003 15:33:11 +0100 (MET) Received: from sunserv.kfki.hu ([127.0.0.1]) by localhost (sunserv [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 21832-01-2 for ; Thu, 27 Nov 2003 15:33:10 +0100 (MET) Received: by sunserv.kfki.hu (Postfix, from userid 311) id D6FF735462; Thu, 27 Nov 2003 15:33:10 +0100 (MET) Received: from localhost (localhost [127.0.0.1]) by sunserv.kfki.hu (Postfix) with ESMTP id D195583 for ; Thu, 27 Nov 2003 15:33:10 +0100 (MET) Date: Thu, 27 Nov 2003 15:33:10 +0100 (MET) From: Kadlecsik Jozsi To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new at kfki.hu Subject: [Dovecot] Incompatibility with eudora X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Nov 2003 14:33:44 -0000 X-UID: 4035 Status: O Content-Length: 1351 Hello, We installed dovecot-0.99.10.2 on Monday and upgraded to dovecot-0.99.10.4 today, but our eudora users still are very unhappy: old undeleted mail messages are donwloaded every time they use our server. Looking into the source code, we found that dovecot knows about the following status flags: A: answered F: flagged (?) T: draft (?) R: seen (read) D: deleted However, it does not know and ignore the O flag. According to IETF (http://www.ietf.org/internet-drafts/draft-palme-mailext-headers-08.txt) the following flags are valid (I know, it's a draft and not RFC): U: message is not downloaded and not deleted R: message is read or downloaded O: message is old but not deleted D: to be deleted N: new "Combinations of these characters can occur, such as "Status: OR" to indicate that a message is downloaded but not deleted." The old mails of our eudora users contain exactly this flag combination: Status: RO Could the compatibility problem somehow be fixed? Currently our system is pretty unusable for the users :-( Thank you and best regards, Jozsef -- E-mail : kadlec@sunserv.kfki.hu, kadlec@blackhole.kfki.hu PGP key: http://www.kfki.hu/~kadlec/pgp_public_key.txt Address: KFKI Research Institute for Particle and Nuclear Physics H-1525 Budapest 114, POB. 49, Hungary From rueckert@informatik.uni-rostock.de Thu Nov 27 17:00:33 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 45FEA238C5; Thu, 27 Nov 2003 17:00:33 +0200 (EET) Received: from monsters.rsn.uni-rostock.de (monsters.rsn.uni-rostock.de [139.30.253.26]) by danu.procontrol.fi (Postfix) with ESMTP id 2E4D3238C9 for ; Thu, 27 Nov 2003 17:00:00 +0200 (EET) Received: by monsters.rsn.uni-rostock.de (Postfix, from userid 1001) id 7BF12FF5; Thu, 27 Nov 2003 15:59:55 +0100 (CET) Date: Thu, 27 Nov 2003 15:59:55 +0100 From: Marcus Rueckert To: Timo Sirainen Subject: Re: [Dovecot] Compiling dovecot on SuSE 9 Message-ID: <20031127145955.GT22102@irssi.ath.cx> References: <32883.66.80.224.70.1069834627.squirrel@tercesi.cctg.com> <20031126122654.GS22102@irssi.ath.cx> <1069861482.14203.6.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1069861482.14203.6.camel@hurina> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi cc: "Ted S. Garaventa" X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Nov 2003 15:00:33 -0000 X-UID: 4036 Status: O hi, On 2003-11-26 17:44:43 +0200, Timo Sirainen wrote: > Doesn't the error message get written to log file as well? If not, I'll > have to fix it. timo it wasnt in earlier versions. but for 0.99.10.4 it reports the missing ssl cert to the stderr of the current console. but no messages in the log. and why did you enabled pgsql auth as default in the dovecot-example.conf? it took me 10 min to find out why it was whining about the conf. ;) and would it possible to modify the paths in the example config according to the sysconfdir? for Ted: http://monsters.rsn.uni-rostock.de/~darix/suse/9.0/ i added dovecot-0.99.10.4-1.i586.rpm today. darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From Clive.Jones+nospam+procontrol.fi@meridian.co.uk Thu Nov 27 18:07:03 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EE1792399E; Thu, 27 Nov 2003 18:07:02 +0200 (EET) Received: from greenwich.meridian-audio.ltd.uk (greenwich.meridian-audio.ltd.uk [194.203.67.114]) by danu.procontrol.fi (Postfix) with ESMTP id C07D12399B for ; Thu, 27 Nov 2003 18:06:30 +0200 (EET) Received: from CLIVE (clive.uk.ma-int.com [10.76.18.1]) by greenwich.meridian-audio.ltd.uk (Postfix) with SMTP id 5CD702D03 for ; Thu, 27 Nov 2003 16:06:30 +0000 (GMT) Message-ID: <00e601c3b500$6b6897b0$01124c0a@uk.maint.com> From: "Clive Jones" To: References: <002b01c3b40d$1374ebb0$01124c0a@uk.maint.com> <1069862210.14203.19.camel@hurina> Subject: Shared object problem under OpenBSD - Re: [Dovecot] Pid file? Date: Thu, 27 Nov 2003 16:06:30 -0000 Organization: Meridian Audio MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4927.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4927.1200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Nov 2003 16:07:03 -0000 X-UID: 4037 Status: O Content-Length: 1099 Timo wrote: > Well, I thought you would have looked at 0.99.10.4 release announcement > mail: Ah, oops. I figured I wasn't going to bother with any upgrades until the bug was fixed, and forgot you might only mention the bug fix in the release notes. Sorry! I've now built the new version, and will try deploying this evening. Incidentally, building a new version of dovecot has reminded me of a problem I encountered building under OpenBSD (version 3.2). When using dlsym() to find C symbols in shared objects, the symbol name must be prefixed with an underscore. For the time being, I've fixed the issue with the following shim in src/auth/auth-module.c : 97a98 > char buf[64]; 101c102,106 < ret = dlsym(module->handle, name); --- > buf[0]='_'; > strncpy(buf+1,name,62); > buf[63]='\0'; > > ret = dlsym(module->handle, buf); Without that fix, using modules for auth_userdb or auth_passdb won't work. I'm sure there must be some elegant way to deal with this portability issue, but for the moment it eludes me. (-8 Regards, --Clive. From dcmwai@amtb-m.org.my Fri Nov 28 07:07:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9CA80239A6; Fri, 28 Nov 2003 07:07:26 +0200 (EET) Received: from freenet.com.my (mail-gold.fnbs.net.my [202.9.108.194]) by danu.procontrol.fi (Postfix) with ESMTP id BFFE5238C9 for ; Fri, 28 Nov 2003 07:06:52 +0200 (EET) Received: from Amitabhasrv.amtb-m.int (unverified [219.95.163.220]) by freenet.com.my (SurgeMail 1.5e) with ESMTP id 64553 for ; Fri, 28 Nov 2003 13:06:49 +0800 MYT Received: from amtb-m.org.my ([219.95.214.39]) (authenticated bits=0) by Amitabhasrv.amtb-m.int (8.12.8/8.12.8) with ESMTP id hAS56f0t024719 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 28 Nov 2003 13:06:43 +0800 Message-ID: <3FC6D7E0.9030808@amtb-m.org.my> Date: Fri, 28 Nov 2003 13:06:40 +0800 From: =?Big5?B?s6+7yrC2IENoYW4gTWluIFdhaQ==?= User-Agent: Mozilla/5.0 (X11; U; Linux i686; zh-TW; rv:1.5) Gecko/20031125 X-Accept-Language: zh-tw, en-us, zh MIME-Version: 1.0 To: dovecot@procontrol.fi References: <3FC6D210.90902@amtb-m.org.my> In-Reply-To: <3FC6D210.90902@amtb-m.org.my> X-Enigmail-Version: 0.76.7.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=Big5 Content-Transfer-Encoding: 8bit X-www.amtb-m.org.my-MailScanner-Information: Please contact webmaster amtb-m.org.my for more information X-www.amtb-m.org.my-MailScanner: Found to be clean X-Server: High Performance Mail Server - http://surgemail.com X-Authenticated-User: amtbbudd Domain freenet.com.my Subject: [Dovecot] Re: Maildir Sub folder was not fetch as start X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Nov 2003 05:07:26 -0000 X-UID: 4038 Status: O -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ³¯»Ê°¶ Chan Min Wai ´£¨ì: > Hello all, > > [Snip > > Well Maybe This is not dovecot Problem so I'm here to Just make sure > this. > > BTW, I'm not using a subscribe folder in the mozilla. so that it will > show all folder in my Maildir. > > Thank You Chan Min Wai > I'm sure this is a bug on mozilla http://bugzilla.mozilla.org/show_bug.cgi?id=138759 http://bugzilla.mozilla.org/show_bug.cgi?id=200989 Thank You :) - -- °¨¨Ó¦è¨È²b©v¾Ç·| Amitabha Buddhist Society (M) 16A, 1st Floor, Jalan Pahang, 53000, Kuala Lumpur, Malaysia. Tel:+603-40414101, 40452630 Fax:+603-40412172 WebPage: http://www.amtb-m.org.my E-Mail: amtbmy@amtb-m.org.my -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQE/xtfgV0p9slMZLW4RAr2jAJ9ZuZ11nQRfpt9meVhraWVpMz+lcQCfasl3 HAWW8pRf60mshdW2FVA/W/g= =BCYt -----END PGP SIGNATURE----- From tsg@cctg.com Fri Nov 28 09:00:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 512EC239A9; Fri, 28 Nov 2003 09:00:17 +0200 (EET) Received: from tercesi.cctg.com (cctg.com [66.80.224.100]) by danu.procontrol.fi (Postfix) with ESMTP id 2F7442399E for ; Fri, 28 Nov 2003 08:59:44 +0200 (EET) Received: from tercesi.cctg.com (localhost [127.0.0.1])hAS6xfma005062 for ; Thu, 27 Nov 2003 22:59:41 -0800 (PST) X-Envelope-From: tsg@cctg.com X-Envelope-To: Received: (from nobody@localhost) by tercesi.cctg.com (8.12.10/8.12.6/Submit) id hAS6xfrS005061; Thu, 27 Nov 2003 22:59:41 -0800 (PST) X-Authentication-Warning: tercesi.cctg.com: nobody set sender to tsg@cctg.com using -f Received: from 66.80.224.70 (SquirrelMail authenticated user tsg9) by tercesi.cctg.com with HTTP; Thu, 27 Nov 2003 22:59:41 -0800 (PST) Message-ID: <32867.66.80.224.70.1070002781.squirrel@tercesi.cctg.com> Date: Thu, 27 Nov 2003 22:59:41 -0800 (PST) Subject: [Fwd: Re: [Dovecot] Compiling dovecot on SuSE 9] From: "Ted S. Garaventa" To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 X-Priority: 3 Importance: Normal X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: tsg@cctg.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Nov 2003 07:00:17 -0000 X-UID: 4039 Status: O Thank you very much for the rpm.... it works great on SuSE 9. I still don't understand how you compiled it to work!!! Thanks again Ted hi, On 2003-11-26 17:44:43 +0200, Timo Sirainen wrote: > Doesn't the error message get written to log file as well? If not, I'll have to fix it. timo it wasnt in earlier versions. but for 0.99.10.4 it reports the missing ssl cert to the stderr of the current console. but no messages in the log. and why did you enabled pgsql auth as default in the dovecot-example.conf? it took me 10 min to find out why it was whining about the conf. ;) and would it possible to modify the paths in the example config according to the sysconfdir? for Ted: http://monsters.rsn.uni-rostock.de/~darix/suse/9.0/ i added dovecot-0.99.10.4-1.i586.rpm today. darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From tsg@cctg.com Fri Nov 28 09:10:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B69AE239B2; Fri, 28 Nov 2003 09:10:45 +0200 (EET) Received: from tercesi.cctg.com (cctg.com [66.80.224.100]) by danu.procontrol.fi (Postfix) with ESMTP id 59612239A9 for ; Fri, 28 Nov 2003 09:10:12 +0200 (EET) Received: from tercesi.cctg.com (localhost [127.0.0.1])hAS7ABma005137 for ; Thu, 27 Nov 2003 23:10:11 -0800 (PST) X-Envelope-From: tsg@cctg.com X-Envelope-To: Received: (from nobody@localhost) by tercesi.cctg.com (8.12.10/8.12.6/Submit) id hAS7ABbS005136; Thu, 27 Nov 2003 23:10:11 -0800 (PST) X-Authentication-Warning: tercesi.cctg.com: nobody set sender to tsg@cctg.com using -f Received: from 66.80.224.70 (SquirrelMail authenticated user tsg9) by tercesi.cctg.com with HTTP; Thu, 27 Nov 2003 23:10:11 -0800 (PST) Message-ID: <32877.66.80.224.70.1070003411.squirrel@tercesi.cctg.com> Date: Thu, 27 Nov 2003 23:10:11 -0800 (PST) From: "Ted S. Garaventa" To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 X-Priority: 3 Importance: Normal Subject: [Dovecot] Dovecot for solaris 8 x86 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: tsg@cctg.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Nov 2003 07:10:45 -0000 X-UID: 4040 Status: O Does someone out there have the ability to compile dovecot for solaris 8 x86. I have tried and failed to get it to work. Any format would be acceptable tar or pkgadd. Thanks in advance for any help. Ted From dcmwai@amtb-m.org.my Fri Nov 28 06:42:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B5640239A6; Fri, 28 Nov 2003 06:42:44 +0200 (EET) Received: from freenet.com.my (mail-gold.fnbs.net.my [202.9.108.194]) by danu.procontrol.fi (Postfix) with ESMTP id 90E222399E for ; Fri, 28 Nov 2003 06:42:09 +0200 (EET) Received: from Amitabhasrv.amtb-m.int (unverified [219.95.163.220]) by freenet.com.my (SurgeMail 1.5e) with ESMTP id 64307 for ; Fri, 28 Nov 2003 12:42:03 +0800 MYT Received: from amtb-m.org.my ([219.95.214.39]) (authenticated bits=0) by Amitabhasrv.amtb-m.int (8.12.8/8.12.8) with ESMTP id hAS4fr0t024437 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 28 Nov 2003 12:41:55 +0800 Message-ID: <3FC6D210.90902@amtb-m.org.my> Date: Fri, 28 Nov 2003 12:41:52 +0800 From: =?Big5?B?s6+7yrC2IENoYW4gTWluIFdhaQ==?= User-Agent: Mozilla/5.0 (X11; U; Linux i686; zh-TW; rv:1.5) Gecko/20031125 X-Accept-Language: zh-tw, en-us, zh MIME-Version: 1.0 To: dovecot@procontrol.fi X-Enigmail-Version: 0.76.7.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=Big5 Content-Transfer-Encoding: 8bit X-www.amtb-m.org.my-MailScanner-Information: Please contact webmaster amtb-m.org.my for more information X-www.amtb-m.org.my-MailScanner: Found to be clean X-Server: High Performance Mail Server - http://surgemail.com X-Authenticated-User: amtbbudd Domain freenet.com.my X-Mailman-Approved-At: Fri, 28 Nov 2003 09:40:00 +0200 Subject: [Dovecot] Maildir Sub folder was not fetch as start X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Nov 2003 04:42:44 -0000 X-UID: 4041 Status: O Content-Length: 1751 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello all, I'm new to dovecot and have been using sinces Fedora Core 1 release. My setup is as below. Server : dovecot Imap Maildir (was from courier-imap) (v 0.99.10 from fedora) Client : Mozilla mail 1.5 (rpm from www.mozilla.org with some additional patch to work with fedora) The Problem is like this. When the Maildir is in this format .INBOX.Foldername And Subfolder is .INBOX.Foldername.Subfolder (courier-imap don't use this file names, I rename it personally) So that the client can access without any changes. When using this Folder format I've no problem on fetching the subfolder. They all load nicely when mozilla mail start. So One day I've change My Maildir into this format .INBOX.Foldername ---> .Foldername .INBOX.Foldername.Subfolder ---> .Foldername.Subfolder Something weird happen... My foldername is System Log The subfolder just don't load it correctly *ON THE FIRST TIME of access* on mozilla I'll have to click on the mail root (as a refresh) to make sure it fetch all the folder. Well Maybe This is not dovecot Problem so I'm here to Just make sure this. BTW, I'm not using a subscribe folder in the mozilla. so that it will show all folder in my Maildir. Thank You Chan Min Wai - -- °¨¨Ó¦è¨È²b©v¾Ç·| Amitabha Buddhist Society (M) 16A, 1st Floor, Jalan Pahang, 53000, Kuala Lumpur, Malaysia. Tel:+603-40414101, 40452630 Fax:+603-40412172 WebPage: http://www.amtb-m.org.my E-Mail: amtbmy@amtb-m.org.my -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQE/xtIPV0p9slMZLW4RAtQ0AKCuvyy2pkamzZh0CFhy1+0bbrEKzQCg0s7p oOPoooeQpMp/135MCyeJX1A= =Gqbu -----END PGP SIGNATURE----- From mm-mailinglist@madness.at Fri Nov 28 11:42:40 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0C95B239BB; Fri, 28 Nov 2003 11:42:40 +0200 (EET) Received: from cronos.madness.at (madness.at [213.153.61.104]) by danu.procontrol.fi (Postfix) with ESMTP id C4C38239B2 for ; Fri, 28 Nov 2003 11:42:07 +0200 (EET) Received: from gateway.conova.com ([213.153.32.181] helo=madness.at) by cronos.madness.at with asmtp (TLSv1:AES256-SHA:256) (Exim 4.24) id 1APf8J-000JdQ-JS; Fri, 28 Nov 2003 10:41:51 +0100 Message-ID: <3FC7185E.4000007@madness.at> Date: Fri, 28 Nov 2003 10:41:50 +0100 From: Stefan Kaltenbrunner User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031107 Debian/1.5-3 X-Accept-Language: en MIME-Version: 1.0 To: tsg@cctg.com Subject: Re: [Dovecot] Dovecot for solaris 8 x86 References: <32877.66.80.224.70.1070003411.squirrel@tercesi.cctg.com> In-Reply-To: <32877.66.80.224.70.1070003411.squirrel@tercesi.cctg.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Nov 2003 09:42:40 -0000 X-UID: 4042 Status: O Ted S. Garaventa wrote: > Does someone out there have the ability to compile dovecot for solaris 8 > x86. I have tried and failed to get it to work. Any format would be > acceptable tar or pkgadd. just tried it to compile - works out of the box for me (./configure && make) on Solaris 8/x86 with gcc 2.95.2 ... So what's the problem ? Stefan From Clive.Jones+nospam+procontrol.fi@meridian.co.uk Fri Nov 28 13:20:09 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B6CBE239BE; Fri, 28 Nov 2003 13:20:09 +0200 (EET) Received: from greenwich.meridian-audio.ltd.uk (greenwich.meridian-audio.ltd.uk [194.203.67.114]) by danu.procontrol.fi (Postfix) with ESMTP id CC704239A6 for ; Fri, 28 Nov 2003 13:19:35 +0200 (EET) Received: from CLIVE (clive.uk.ma-int.com [10.76.18.1]) by greenwich.meridian-audio.ltd.uk (Postfix) with SMTP id D90952D01 for ; Fri, 28 Nov 2003 11:19:34 +0000 (GMT) Message-ID: <027901c3b5a1$80abf120$01124c0a@uk.maint.com> From: "Clive Jones" To: References: <0c9e01c3a2d0$60faeae0$01124c0a@uk.maint.com><1068314769.9815.26.camel@hurina><047001c3adc6$950f17b0$01124c0a@uk.maint.com><1069351237.16663.53.camel@hurina> <056101c3b01d$e0397d30$01124c0a@uk.maint.com> Subject: Re: [Dovecot] pop3-login process leakage Date: Fri, 28 Nov 2003 11:19:34 -0000 Organization: Meridian Audio MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4927.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4927.1200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Nov 2003 11:20:09 -0000 X-UID: 4043 Status: O Hmm. I've now upgraded to Dovecot 0.99.10.4, and it doesn't appear to have helped much, if at all. Between 18:28 yesterday and 10:58 today, the number of pop3-login processes has risen from 12 to 186. Just for reference, I've gdb-ed the earliest of those processes again: (gdb) p clients->nodes_count $1 = 0 (gdb) p main_refcount $2 = 2 (gdb) p auth_reconnect $3 = 0 (gdb) p auth_waiting_handshake_count $4 = 0 (gdb) p closing_down $5 = 1 (gdb) p process_per_connection $6 = 1 (gdb) p ssl_proxies->nodes_count Error accessing memory address 0x10: Invalid argument. (gdb) p ssl_proxies $7 = (struct hash_table *) 0x0 (gdb) p io_master $8 = (struct io *) 0x151e0 (gdb) p *io_master $9 = {next = 0x0, fd = 3, condition = 1, destroyed = 0, callback = 0x4c50 , context = 0x0} This looks exactly as before, except that the master_input function has moved by 32 bytes. There's clearly still something going wrong, somewhere. )-8 Regards, --Clive. From rueckert@informatik.uni-rostock.de Fri Nov 28 14:27:37 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1D619239D3; Fri, 28 Nov 2003 14:27:37 +0200 (EET) Received: from monsters.rsn.uni-rostock.de (monsters.rsn.uni-rostock.de [139.30.253.26]) by danu.procontrol.fi (Postfix) with ESMTP id 9D9BD239BB for ; Fri, 28 Nov 2003 14:27:03 +0200 (EET) Received: by monsters.rsn.uni-rostock.de (Postfix, from userid 1001) id 805ABFF5; Fri, 28 Nov 2003 13:26:57 +0100 (CET) Date: Fri, 28 Nov 2003 13:26:57 +0100 From: Marcus Rueckert To: "Ted S. Garaventa" Subject: Re: [Fwd: Re: [Dovecot] Compiling dovecot on SuSE 9] Message-ID: <20031128122657.GV22102@irssi.ath.cx> References: <32867.66.80.224.70.1070002781.squirrel@tercesi.cctg.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <32867.66.80.224.70.1070002781.squirrel@tercesi.cctg.com> User-Agent: Mutt/1.5.4i cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Nov 2003 12:27:37 -0000 X-UID: 4044 Status: O On 2003-11-27 22:59:41 -0800, Ted S. Garaventa wrote: > Thank you very much for the rpm.... it works great on SuSE 9. I still > don't understand how you compiled it to work!!! rpm -Uhv http://monsters.rsn.uni-rostock.de/~darix/suse/9.0/dovecot-0.99.10.4-1.src.rpm $EDITOR /usr/src/packages/SPECS/dovecot.spec and check /usr/src/packages/dovecot* for patches and additional sources. darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From daemon@kzone.ch Sat Nov 29 00:30:47 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 679F1239BB; Sat, 29 Nov 2003 00:30:47 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by danu.procontrol.fi (Postfix) with ESMTP id 8191C239D3 for ; Sat, 29 Nov 2003 00:30:10 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id XAA03606 for dovecot@procontrol.fi; Fri, 28 Nov 2003 23:30:05 +0100 From: Sven Kirmess To: dovecot@procontrol.fi Subject: Re: [Dovecot] Maildir Sub folder was not fetch as start Date: Fri, 28 Nov 2003 23:30:08 +0100 Organization: Kirmess Lines: 10 Message-ID: <3FC7CC70.4040107@gmx.net> References: <3FC6D210.90902@amtb-m.org.my> NNTP-Posting-Host: dax.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=Big5 Content-Transfer-Encoding: 8bit X-Trace: Odo.kzone.ch 1070058605 3569 192.168.100.156 (28 Nov 2003 22:30:05 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 28 Nov 2003 22:30:05 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <3FC6D210.90902@amtb-m.org.my> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Nov 2003 22:30:47 -0000 X-UID: 4045 Status: O ³¯»Ê°¶ Chan Min Wai wrote: > Server : dovecot Imap Maildir (was from courier-imap) (v 0.99.10 from > fedora) I would update to 0.99.10.4. Quite some problems with many mail clients got fixed. Sven From daemon@kzone.ch Sat Nov 29 01:04:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 88F2F239D5; Sat, 29 Nov 2003 01:04:58 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by danu.procontrol.fi (Postfix) with ESMTP id A2CED239A6 for ; Sat, 29 Nov 2003 01:04:25 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id AAA04307 for dovecot@procontrol.fi; Sat, 29 Nov 2003 00:04:23 +0100 From: Sven Kirmess To: dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot for solaris 8 x86 Date: Sat, 29 Nov 2003 00:04:24 +0100 Organization: Kirmess Lines: 10 Message-ID: <3FC7D478.4050503@gmx.net> References: <32877.66.80.224.70.1070003411.squirrel@tercesi.cctg.com> NNTP-Posting-Host: dax.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1070060663 4294 192.168.100.156 (28 Nov 2003 23:04:23 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 28 Nov 2003 23:04:23 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <32877.66.80.224.70.1070003411.squirrel@tercesi.cctg.com> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Nov 2003 23:04:58 -0000 X-UID: 4046 Status: O Ted S. Garaventa wrote: > Does someone out there have the ability to compile dovecot for solaris 8 > x86. I have tried and failed to get it to work. Any format would be > acceptable tar or pkgadd. I just compiled it on Solaris 9 x86. What exactly does not work for you? Sven From robin@isometry.net Mon Dec 1 15:58:19 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4034E23866; Mon, 1 Dec 2003 15:58:19 +0200 (EET) Received: from brookes.ac.uk (csmail.brookes.ac.uk [161.73.1.10]) by danu.procontrol.fi (Postfix) with ESMTP id DAA9823841 for ; Mon, 1 Dec 2003 15:57:46 +0200 (EET) Received: from isometry.net (vl772a0d.brookes.ac.uk [161.73.140.214]) by brookes.ac.uk (8.12.10/8.12.10) with ESMTP id hB1Dvh56020995 for ; Mon, 1 Dec 2003 13:57:44 GMT Message-ID: <3FCB48B9.2060206@isometry.net> Date: Mon, 01 Dec 2003 13:57:13 +0000 From: Robin Breathe User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031126 Thunderbird/0.4a X-Accept-Language: en-gb, en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: [Dovecot] Pid file? Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Mon, 01 Dec 2003 17:24:53 +0200 X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Dec 2003 13:58:19 -0000 X-UID: 4047 Status: O I'd certainly appreciate the addition of a configurable pid file (either ./configure --with-pid=... or config file). It makes rc.d scripts that much neater. - Robin From jaldhar@debian.org Tue Dec 2 08:03:08 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 0ECF42385D; Tue, 2 Dec 2003 08:03:08 +0200 (EET) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 6144923838 for ; Tue, 2 Dec 2003 08:02:33 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 8D7077F5B; Tue, 2 Dec 2003 01:02:35 -0500 (EST) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11418-05; Tue, 2 Dec 2003 01:02:35 -0500 (EST) Received: from samadhi.braincells.com (samadhi.braincells.com [216.162.42.100]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id F1D2C7F52; Tue, 2 Dec 2003 01:02:34 -0500 (EST) Date: Tue, 2 Dec 2003 01:02:34 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at braincells.com cc: Amelia A Lewis Subject: [Dovecot] Dovecot 0.99.10.4 for Debian X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Dec 2003 06:03:08 -0000 X-UID: 4048 Status: O I've packaged 0.99.10.4. Owing to the continued downtime on the Debian servers, I've temporarily put the .debs up on my own site. The URL is http://www.braincells.com/debian/ A backport to woody is also available. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From jaldhar@debian.org Tue Dec 2 14:42:45 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 92FCC23866; Tue, 2 Dec 2003 14:42:45 +0200 (EET) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by danu.procontrol.fi (Postfix) with ESMTP id 6B2A723838 for ; Tue, 2 Dec 2003 14:42:10 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 24CAD7F55 for ; Tue, 2 Dec 2003 07:42:09 -0500 (EST) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16789-07 for ; Tue, 2 Dec 2003 07:42:08 -0500 (EST) Received: from samadhi.braincells.com (samadhi.braincells.com [216.162.42.100]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 8D6947F52 for ; Tue, 2 Dec 2003 07:42:08 -0500 (EST) Date: Tue, 2 Dec 2003 07:42:07 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@samadhi.braincells.com To: dovecot@procontrol.fi Subject: Re: [Dovecot] Dovecot 0.99.10.4 for Debian In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at braincells.com X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Dec 2003 12:42:45 -0000 X-UID: 4049 Status: O On Tue, 2 Dec 2003, Jaldhar H. Vyas wrote: > I've packaged 0.99.10.4. Owing to the continued downtime on the Debian > servers, I've temporarily put the .debs up on my own site. The URL is > > http://www.braincells.com/debian/ > That should be http://www.braincells.com/open/ Though you can probably find it from the other URL. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From ke@kalle.dyndns.org Thu Dec 4 03:17:58 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7C90B238B7; Thu, 4 Dec 2003 03:17:58 +0200 (EET) Received: from kalle.dyndns.org (c-0bd172d5.024-3-73746f28.cust.bredbandsbolaget.se [213.114.209.11]) by danu.procontrol.fi (Postfix) with ESMTP id 847DE23866 for ; Thu, 4 Dec 2003 03:17:26 +0200 (EET) Received: from ke by kalle.dyndns.org with local (Exim 4.21) id 1ARi9H-00036B-2g for dovecot@procontrol.fi; Thu, 04 Dec 2003 02:19:19 +0100 To: dovecot@procontrol.fi From: kalle-e@medelklassen.com Date: 04 Dec 2003 02:19:19 +0100 Message-ID: <87d6b5l6qw.fsf@kalle.dyndns.org> Lines: 23 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: Subject: [Dovecot] subscriptions list destroyed X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 01:17:58 -0000 X-UID: 4050 Status: O What could be the reason that the subscribed folders list becomes messed up? If i do this: $ rm ~/.maildir/.subscriptions $ evolution [subscribe to everything, exit program] $ cat ~/.maildir/.subscriptions debian sers va $ (or some other random text which seems to come from parts of the folder list) This makes Mozilla Mail go crazy. Evolution and Gnus work OK since they seem to have their own list, but switching back and forth between Evolution and Gnus makes Evolution forget the list. I don't think I had this problem before. I used mbox then. From kadlec@sunserv.kfki.hu Thu Dec 4 11:38:04 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D28C0238C8; Thu, 4 Dec 2003 11:38:04 +0200 (EET) Received: from sunserv.kfki.hu (sunserv.kfki.hu [148.6.0.5]) by danu.procontrol.fi (Postfix) with ESMTP id 33DD123841 for ; Thu, 4 Dec 2003 11:37:31 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by sunserv.kfki.hu (Postfix) with ESMTP id F212835549 for ; Thu, 4 Dec 2003 10:37:24 +0100 (MET) Received: from sunserv.kfki.hu ([127.0.0.1]) by localhost (sunserv [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 17378-01-4 for ; Thu, 4 Dec 2003 10:37:24 +0100 (MET) Received: by sunserv.kfki.hu (Postfix, from userid 311) id 5BA4635531; Thu, 4 Dec 2003 10:37:24 +0100 (MET) Received: from localhost (localhost [127.0.0.1]) by sunserv.kfki.hu (Postfix) with ESMTP id 5324F83 for ; Thu, 4 Dec 2003 10:37:24 +0100 (MET) Date: Thu, 4 Dec 2003 10:37:24 +0100 (MET) From: Kadlecsik Jozsi To: dovecot@procontrol.fi Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new at kfki.hu Subject: [Dovecot] Severe pop3 incompatibility report X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 09:38:05 -0000 X-UID: 4051 Status: O Hello, According to our experiences, most recent dovecot incompatible with eudora pop3 client - eudora (5.1, 6), pop3, 'leave on server' enabled: the clients receive the full inbox *every time* they check the inbox on the server. [Users using other MUAs experienced the same once, at switching from uw-pop3d/imapd to dovecot.] That is absolutely devastating, especially for home users behind a modem line. We spent a full week with trying to find a workaround with eudora: no avail. The only solution remained was to revert back to uw-pop3d. :-( Best wishes, Jozsef Kadlecsik -- E-mail : kadlec@sunserv.kfki.hu, kadlec@blackhole.kfki.hu PGP key: http://www.kfki.hu/~kadlec/pgp_public_key.txt Address: KFKI Research Institute for Particle and Nuclear Physics H-1525 Budapest 114, POB. 49, Hungary From dinh.viet.hoa@free.fr Thu Dec 4 13:43:32 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 13227238C8; Thu, 4 Dec 2003 13:43:32 +0200 (EET) Received: from postfix3-2.free.fr (postfix3-2.free.fr [213.228.0.169]) by danu.procontrol.fi (Postfix) with ESMTP id A963323841 for ; Thu, 4 Dec 2003 13:42:59 +0200 (EET) Received: from homer.priv (lns-vlq-14-62-147-210-207.adsl.proxad.net [62.147.210.207]) by postfix3-2.free.fr (Postfix) with ESMTP id 446CFF1DE for ; Thu, 4 Dec 2003 12:42:57 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id hB4BguP5016593 for ; Thu, 4 Dec 2003 12:42:56 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id hB4BguJo016591; Thu, 4 Dec 2003 12:42:56 +0100 Date: Thu, 4 Dec 2003 12:41:54 +0100 From: DINH Viet Hoa To: dovecot@procontrol.fi Message-ID: In-Reply-To: References: Subject: Re: [Dovecot] Severe pop3 incompatibility report X-Mailer: etPan - new generation - version 0.2-dev-20031126 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 11:43:32 -0000 X-UID: 4052 Status: O Kadlecsik Jozsi wrote : > - eudora (5.1, 6), pop3, 'leave on server' enabled: the clients receive > the full inbox *every time* they check the inbox on the server. does the UID of the messages always change using the Dovecot POP3 server ? (using UIDL) -- DINH V. Hoa, etPan! - newsreader, mail user agent -- http://libetpan.sf.net/etpan From joona@fiveam.org Thu Dec 4 15:03:23 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id ECAD5238C8; Thu, 4 Dec 2003 15:03:23 +0200 (EET) Received: from pina.fiveam.org (clantroll.org [62.142.244.250]) by danu.procontrol.fi (Postfix) with ESMTP id 0DB09238B7 for ; Thu, 4 Dec 2003 15:02:51 +0200 (EET) Received: from fiveam.org (localhost [127.0.0.1]) by pina.fiveam.org (Postfix) with ESMTP id 117603BD76 for ; Thu, 4 Dec 2003 15:02:56 +0200 (EET) Message-ID: <3FCF306F.8070205@fiveam.org> Date: Thu, 04 Dec 2003 15:02:39 +0200 From: Joona Kulmala Organization: Multiwise Networks User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Problems on startup X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 13:03:24 -0000 X-UID: 4053 Status: O Hi. When I'm trying to start dovecot, I get following error: Fatal: net_set_nonblock() failed: Operation not supported by device What's that error about? System is FreeBSD 5.1. I think this problem is related to FreeBSD. Dovecot works fine on my Linux-servers. Thanks in advance, Joona -- Joona Kulmala From kadlec@sunserv.kfki.hu Thu Dec 4 15:20:01 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 23F90238CB; Thu, 4 Dec 2003 15:20:01 +0200 (EET) Received: from sunserv.kfki.hu (sunserv.kfki.hu [148.6.0.5]) by danu.procontrol.fi (Postfix) with ESMTP id B81A8238C8 for ; Thu, 4 Dec 2003 15:19:29 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by sunserv.kfki.hu (Postfix) with ESMTP id ADDC535548; Thu, 4 Dec 2003 14:19:26 +0100 (MET) Received: from sunserv.kfki.hu ([127.0.0.1]) by localhost (sunserv [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 13825-01-2; Thu, 4 Dec 2003 14:19:26 +0100 (MET) Received: by sunserv.kfki.hu (Postfix, from userid 311) id 1469A3553B; Thu, 4 Dec 2003 14:19:26 +0100 (MET) Received: from localhost (localhost [127.0.0.1]) by sunserv.kfki.hu (Postfix) with ESMTP id 0BBA684; Thu, 4 Dec 2003 14:19:26 +0100 (MET) Date: Thu, 4 Dec 2003 14:19:25 +0100 (MET) From: Kadlecsik Jozsi To: DINH Viet Hoa Subject: Re: [Dovecot] Severe pop3 incompatibility report In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new at kfki.hu cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 13:20:01 -0000 X-UID: 4054 Status: O On Thu, 4 Dec 2003, DINH Viet Hoa wrote: > > - eudora (5.1, 6), pop3, 'leave on server' enabled: the clients receive > > the full inbox *every time* they check the inbox on the server. > > does the UID of the messages always change using the > Dovecot POP3 server ? (using UIDL) How could we have checked it? There is no raw log possibility for pop3 in dovecot, only for imap. And the traffic is over SSL. Best regards, Jozsef -- E-mail : kadlec@sunserv.kfki.hu, kadlec@blackhole.kfki.hu PGP key: http://www.kfki.hu/~kadlec/pgp_public_key.txt Address: KFKI Research Institute for Particle and Nuclear Physics H-1525 Budapest 114, POB. 49, Hungary From dinh.viet.hoa@free.fr Thu Dec 4 15:36:48 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5D505238CB; Thu, 4 Dec 2003 15:36:48 +0200 (EET) Received: from postfix3-1.free.fr (postfix3-1.free.fr [213.228.0.44]) by danu.procontrol.fi (Postfix) with ESMTP id 962E623841 for ; Thu, 4 Dec 2003 15:36:16 +0200 (EET) Received: from homer.priv (lns-vlq-14-62-147-210-207.adsl.proxad.net [62.147.210.207]) by postfix3-1.free.fr (Postfix) with ESMTP id CD5D8C58F9 for ; Thu, 4 Dec 2003 14:36:15 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id hB4DaFP5016904 for ; Thu, 4 Dec 2003 14:36:15 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id hB4DaFF0016902; Thu, 4 Dec 2003 14:36:15 +0100 Date: Thu, 4 Dec 2003 14:35:46 +0100 From: DINH Viet Hoa To: dovecot@procontrol.fi Message-ID: In-Reply-To: References: Subject: Re: [Dovecot] Severe pop3 incompatibility report X-Mailer: etPan - new generation - version 0.2-dev-20031126 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 13:36:48 -0000 X-UID: 4055 Status: O Kadlecsik Jozsi wrote : > On Thu, 4 Dec 2003, DINH Viet Hoa wrote: > > > > - eudora (5.1, 6), pop3, 'leave on server' enabled: the clients receive > > > the full inbox *every time* they check the inbox on the server. > > > > does the UID of the messages always change using the > > Dovecot POP3 server ? (using UIDL) > > How could we have checked it? There is no raw log possibility for pop3 in > dovecot, only for imap. And the traffic is over SSL. you can use openssl : openssl s_client -connect host:port -- DINH V. Hoa, etPan! - newsreader, mail user agent -- http://libetpan.sf.net/etpan From joona@fiveam.org Thu Dec 4 22:03:44 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id F09E8238CB; Thu, 4 Dec 2003 22:03:43 +0200 (EET) Received: from pina.fiveam.org (clantroll.org [62.142.244.250]) by danu.procontrol.fi (Postfix) with ESMTP id 1214E23841 for ; Thu, 4 Dec 2003 22:03:11 +0200 (EET) Received: from fiveam.org (localhost [127.0.0.1]) by pina.fiveam.org (Postfix) with ESMTP id 872243BD76; Thu, 4 Dec 2003 22:03:16 +0200 (EET) Message-ID: <3FCF92F2.6020905@fiveam.org> Date: Thu, 04 Dec 2003 22:02:58 +0200 From: Joona Kulmala Organization: Multiwise Networks User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Niilo Kajander Subject: Re: [Dovecot] Problems on startup References: <3FCF306F.8070205@fiveam.org> <1070567201.680.1.camel@armada.atki.net> In-Reply-To: <1070567201.680.1.camel@armada.atki.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 20:03:44 -0000 X-UID: 4056 Status: O > Which dovecot version is it exactly? I'm running 0.99.10.2 built from > ports on FreeBSD 5.1-RELEASE-p10 and 4.8-RELEASE-p13 and I've got > absolutely no problems. I installed v0.99.10.4 and it seams to be working fine. Thanks. -- Joona Kulmala From daemon@kzone.ch Thu Dec 4 23:12:50 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A6604238CB; Thu, 4 Dec 2003 23:12:50 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by danu.procontrol.fi (Postfix) with ESMTP id D7A52238B7 for ; Thu, 4 Dec 2003 23:12:17 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id WAA19348 for dovecot@procontrol.fi; Thu, 4 Dec 2003 22:12:16 +0100 From: Sven Kirmess To: dovecot@procontrol.fi Subject: Re: [Dovecot] subscriptions list destroyed Date: Thu, 04 Dec 2003 22:14:11 +0100 Organization: Kirmess Lines: 9 Message-ID: References: <87d6b5l6qw.fsf@kalle.dyndns.org> NNTP-Posting-Host: dax.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1070572336 19211 192.168.100.156 (4 Dec 2003 21:12:16 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 4 Dec 2003 21:12:16 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <87d6b5l6qw.fsf@kalle.dyndns.org> X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 21:12:50 -0000 X-UID: 4057 Status: O kalle-e@medelklassen.com wrote: > What could be the reason that the subscribed folders list becomes > messed up? Are you using 0.99.10.4? If not, try this version. That should fix your problem. Sven From ke@kalle.dyndns.org Thu Dec 4 23:34:29 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 3B7F5238D7; Thu, 4 Dec 2003 23:34:29 +0200 (EET) Received: from kalle.dyndns.org (c-0bd172d5.024-3-73746f28.cust.bredbandsbolaget.se [213.114.209.11]) by danu.procontrol.fi (Postfix) with ESMTP id E245D23841 for ; Thu, 4 Dec 2003 23:33:56 +0200 (EET) Received: from ke by kalle.dyndns.org with local (Exim 4.21) id 1AS18i-0006aV-5n for dovecot@procontrol.fi; Thu, 04 Dec 2003 22:36:00 +0100 To: dovecot@procontrol.fi Subject: Re: [Dovecot] subscriptions list destroyed References: <87d6b5l6qw.fsf@kalle.dyndns.org> From: kalle-e@medelklassen.com Date: 04 Dec 2003 22:36:00 +0100 In-Reply-To: Message-ID: <87u14gl0zj.fsf@kalle.dyndns.org> Lines: 11 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 21:34:29 -0000 X-UID: 4058 Status: O Sven Kirmess writes: > kalle-e@medelklassen.com wrote: > > What could be the reason that the subscribed folders list becomes > > messed up? > > Are you using 0.99.10.4? If not, try this version. > That should fix your problem. I was using 0.99.10.2. Now it works. Thanks. From nk@kajander.fi Thu Dec 4 21:47:17 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EFFB9238CB; Thu, 4 Dec 2003 21:47:16 +0200 (EET) Received: from armada.atki.net (unknown [193.209.91.150]) by danu.procontrol.fi (Postfix) with ESMTP id A562823841 for ; Thu, 4 Dec 2003 21:46:44 +0200 (EET) Received: from LOCALHOST (localhost [127.0.0.1]) by armada.atki.net (Postfix) with ESMTP id 180211BD9B; Thu, 4 Dec 2003 21:46:41 +0200 (EET) Subject: Re: [Dovecot] Problems on startup From: Niilo Kajander To: Joona Kulmala In-Reply-To: <3FCF306F.8070205@fiveam.org> References: <3FCF306F.8070205@fiveam.org> Content-Type: text/plain Message-Id: <1070567201.680.1.camel@armada.atki.net> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 04 Dec 2003 21:46:41 +0200 Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Fri, 05 Dec 2003 01:00:41 +0200 cc: dovecot@procontrol.fi X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 19:47:17 -0000 X-UID: 4059 Status: O On Thu, 2003-12-04 at 15:02, Joona Kulmala wrote: > Hi. > > When I'm trying to start dovecot, I get following error: > > Fatal: net_set_nonblock() failed: Operation not supported by device > > What's that error about? System is FreeBSD 5.1. I think this problem > is related to FreeBSD. Dovecot works fine on my Linux-servers. Which dovecot version is it exactly? I'm running 0.99.10.2 built from ports on FreeBSD 5.1-RELEASE-p10 and 4.8-RELEASE-p13 and I've got absolutely no problems. -- Niilo Kajander From marc@perkel.com Fri Dec 5 09:26:16 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9DA92238D7; Fri, 5 Dec 2003 09:26:16 +0200 (EET) Received: from smtp.ctyme.com (smtp.ctyme.com [209.237.228.12]) by danu.procontrol.fi (Postfix) with ESMTP id A4436238CB for ; Fri, 5 Dec 2003 09:25:44 +0200 (EET) Received: from localhost.unitedlayer.com ([127.0.0.1] helo=perkel.com) by darwin.ctyme.com with esmtp (Exim 4.30) id 1ASALO-0004DT-VX for dovecot@procontrol.fi; Thu, 04 Dec 2003 23:25:43 -0800 Message-ID: <3FD032FA.1060506@perkel.com> Date: Thu, 04 Dec 2003 23:25:46 -0800 From: Marc Perkel User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Authenting in Linuxconf format X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Dec 2003 07:26:16 -0000 X-UID: 4060 Status: O I have an existing email system and I'm trying to addapt dovecot into it. It uses the linuxconf virtual email format. The way it is set up is there there are multiple passwd/shadow files - one for eact domain. They are in standard format. The names of these files are: /etc/vmail/passwd.domain.com /etc/vmail/shadow.domain.com I tried this: auth_userdb = passwd-file /etc/vmail/passwd.%d auth_passdb = passwd-file /etc/vmail/shadow.%d but - it didn't expand the %d So - is this going to work? If not - how do you do virtual domains? The documentation is less than complete on this. From keith@midnighthax.com Fri Dec 5 23:48:46 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C2318238D6; Fri, 5 Dec 2003 23:48:46 +0200 (EET) Received: from gs001.rg2.tiger-computing.com (unknown [81.168.16.33]) by danu.procontrol.fi (Postfix) with ESMTP id 271D0238CB for ; Fri, 5 Dec 2003 23:48:13 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by gs001.rg2.tiger-computing.com (Postfix) with ESMTP id 43AF6312F9 for ; Fri, 5 Dec 2003 21:48:12 +0000 (GMT) Received: from gs001.rg2.tiger-computing.com ([127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01444-07 for ; Fri, 5 Dec 2003 21:48:11 +0000 (GMT) Received: from zaphod.rg2.tiger-computing.com (zaphod.rg2.tiger-computing.com [10.0.0.100]) by gs001.rg2.tiger-computing.com (Postfix) with SMTP id 89D6A312F8 for ; Fri, 5 Dec 2003 21:48:11 +0000 (GMT) Date: Fri, 5 Dec 2003 21:48:11 +0000 From: Keith Edmunds To: dovecot@procontrol.fi Message-Id: <20031205214811.60dc6209.keith@midnighthax.com> X-Mailer: Sylpheed version 0.9.7claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gs001.rg2.tiger-computing.com Subject: [Dovecot] Folder names X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Dec 2003 21:48:47 -0000 X-UID: 4061 Status: O I'm not sure offhand exactly which version of Dovecot I'm running - it doesn't seem to have a -V switch. Anyway, I created a folder which had periods in the name. There was no problem with that, but MUAs now report that folder as a hierarchy. For example: customers | +-customername.com | +-another.customer.com has become: customers | +-customername | | | +-com | +-another | +-customer | +-com Now the obvious answer is "don't do that". However, should Dovecot either a) refuse to create a folder with an embedded period in the name or 2) manage (somehow) the fact that not all periods represent hierarchical delimiters? Keith PS Damn fine software, Dovecot From darren@3x3x3.org Mon Dec 8 19:29:26 2003 Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 76C8B2385D; Mon, 8 Dec 2003 19:29:26 +0200 (EET) Received: from 3x3x3.org (dsl092-017-251.sfo4.dsl.speakeasy.net [66.92.17.251]) by danu.procontrol.fi (Postfix) with ESMTP id B70D923838 for ; Mon, 8 Dec 2003 19:28:53 +0200 (EET) Received: (qmail 5377 invoked by uid 89); 8 Dec 2003 17:25:01 -0000 Received: from unknown (HELO 3x3x3.org) (darren@3x3x3.org@10.0.1.203) by 0 with AES256-SHA encrypted SMTP; 8 Dec 2003 17:25:01 -0000 Message-ID: <3FD4B4D2.304@3x3x3.org> Date: Mon, 08 Dec 2003 09:28:50 -0800 From: darren david User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20030925 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Rogue child imap processes when using Mac imap clients X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.1 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Dec 2003 17:29:26 -0000 X-UID: 4062 Status: O hi all- I am currently running dovecot 0.99.10p2 on OpenBSD-3.4-snapshot. It has been very stable, but I have recently noticed that I am having problems when checking IMAP-SSL mail with Mac OS X clients. There are not problems using Mozilla or Outlook on Windows, but Mac clients (Thunderbird, Mozilla, Mail.app) all exhibit the same behavior - they can check and send mail, but I end up with a single, rogue child imap process on the server that pins the cpu that i have to 'kill -9' to clear out. Is this a Mac problem or a Dovecot problem? I'm not even sure what to look for in the logs... Thanks, Darren David From cras@irccrew.org Mon Dec 8 22:34:26 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id C85FFC003007; Mon, 8 Dec 2003 22:34:26 +0200 (EET) Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by talvi (Postfix) with ESMTP id 593E7C003006 for ; Mon, 8 Dec 2003 22:34:14 +0200 (EET) Received: by shodan.irccrew.org (Postfix, from userid 6976) id E43FD2E04C; Mon, 8 Dec 2003 22:34:02 +0200 (EET) Date: Mon, 8 Dec 2003 22:34:02 +0200 From: Timo Sirainen To: dovecot@dovecot.org Message-ID: <20031208203402.GA21043@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii Cc: Subject: [Dovecot] server changes X-BeenThere: dovecot@procontrol.fi X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Dec 2003 20:34:27 -0000 X-UID: 4063 Status: O Moved Dovecot's web, dns, mails, cvs and all to different server. Plan is to get it moved elsewhere for hosting once everything looks to be working. dovecot@dovecot.org is the preferred posting address to this list now, although dovecot@procontrol.fi should still keep forwarding the mails. From tss@iki.fi Tue Dec 9 00:30:30 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id AF349C000D99; Tue, 9 Dec 2003 00:30:30 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi (Postfix) with ESMTP id 039E5C000D94 for ; Tue, 9 Dec 2003 00:30:28 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id E1BEF23838; Tue, 9 Dec 2003 00:30:15 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BD2E623841; Tue, 9 Dec 2003 00:30:15 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 23EA923838; Tue, 9 Dec 2003 00:29:38 +0200 (EET) In-Reply-To: <3FD4B4D2.304@3x3x3.org> References: <3FD4B4D2.304@3x3x3.org> Mime-Version: 1.0 (Apple Message framework v606) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Rogue child imap processes when using Mac imap clients Date: Tue, 9 Dec 2003 00:29:20 +0200 To: darren david X-Mailer: Apple Mail (2.606) X-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Dec 2003 22:30:30 -0000 X-UID: 4064 Status: O On Dec 8, 2003, at 7:28 PM, darren david wrote: > I am currently running dovecot 0.99.10p2 on OpenBSD-3.4-snapshot. It > has been very stable, but I have recently noticed that I am having > problems when checking IMAP-SSL mail with Mac OS X clients. There are > not problems using Mozilla or Outlook on Windows, but Mac clients > (Thunderbird, Mozilla, Mail.app) all exhibit the same behavior - they > can check and send mail, but I end up with a single, rogue child imap > process on the server that pins the cpu that i have to 'kill -9' to > clear out. > > Is this a Mac problem or a Dovecot problem? I'm not even sure what to > look for in the logs... Hmm. Check with ktrace what the imap process is doing and send the log to me? (I'm not exactly sure how ktrace worked, it was a bit weird.) And maybe check with gdb too where it's stuck at (gdb /usr/local/lib/dovecot/imap and "bt" command). Or is it imap process or imap-login process? Anyway, I haven't noticed problems with Mail.app. From tss@iki.fi Tue Dec 9 00:37:28 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id BB104C000D99; Tue, 9 Dec 2003 00:37:28 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi (Postfix) with ESMTP id A07DEC000D94 for ; Tue, 9 Dec 2003 00:37:26 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id 9F0F323838; Tue, 9 Dec 2003 00:37:14 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 8C5BF23841; Tue, 9 Dec 2003 00:37:14 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7F9CA23838; Tue, 9 Dec 2003 00:36:38 +0200 (EET) In-Reply-To: <20031205214811.60dc6209.keith@midnighthax.com> References: <20031205214811.60dc6209.keith@midnighthax.com> Mime-Version: 1.0 (Apple Message framework v606) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Folder names Date: Tue, 9 Dec 2003 00:36:22 +0200 To: Keith Edmunds X-Mailer: Apple Mail (2.606) X-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Dec 2003 22:37:28 -0000 X-UID: 4065 Status: O Content-Length: 1058 On Dec 5, 2003, at 11:48 PM, Keith Edmunds wrote: > I'm not sure offhand exactly which version of Dovecot I'm running - it > doesn't seem to have a -V switch. There's --version. Looks like it's missing in the help line. > Anyway, I created a folder which had > periods in the name. There was no problem with that, but MUAs now > report > that folder as a hierarchy. For example: Yep, default maildir hierarchy separator is a period. > Now the obvious answer is "don't do that". However, should Dovecot > either a) refuse to create a folder with an embedded period in the name > or 2) manage (somehow) the fact that not all periods represent > hierarchical delimiters? It's not really possible for Dovecot to know which one you meant if hierarchy separator is '.' too. Next version has it configurable, so if you then changed it to '/' I guess I could make it then refuse to create any folders with '.' in it's name. Or if you wanted to, you could change the maildir++ separator in the filesystem itself (easy to change in next version as well). From tss@iki.fi Tue Dec 9 00:42:42 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 2B53CC000D99; Tue, 9 Dec 2003 00:42:42 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi (Postfix) with ESMTP id 025FAC000D94 for ; Tue, 9 Dec 2003 00:42:40 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id F235523838; Tue, 9 Dec 2003 00:42:28 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id E9F1923841; Tue, 9 Dec 2003 00:42:27 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D391423838; Tue, 9 Dec 2003 00:41:52 +0200 (EET) In-Reply-To: <3FD032FA.1060506@perkel.com> References: <3FD032FA.1060506@perkel.com> Mime-Version: 1.0 (Apple Message framework v606) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Authenting in Linuxconf format Date: Tue, 9 Dec 2003 00:41:40 +0200 To: Marc Perkel X-Mailer: Apple Mail (2.606) X-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Dec 2003 22:42:42 -0000 X-UID: 4066 Status: O On Dec 5, 2003, at 9:25 AM, Marc Perkel wrote: > I have an existing email system and I'm trying to addapt dovecot into > it. It uses the linuxconf virtual email format. The way it is set up > is there there are multiple passwd/shadow files - one for eact domain. > They are in standard format. The names of these files are: > > auth_userdb = passwd-file /etc/vmail/passwd.%d > auth_passdb = passwd-file /etc/vmail/shadow.%d > > but - it didn't expand the %d Well, that looks pretty logical but it'd require several changes. Maybe some day, or you could try patching yourself :) > So - is this going to work? If not - how do you do virtual domains? > The documentation is less than complete on this. If you want it with passwd-file, you could build it so that username field contains "user@domain.com". Alternatives would be at least SQL or LDAP database and there's some examples in Wiki for them. From tss@iki.fi Tue Dec 9 01:27:20 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id D9435C000D9F; Tue, 9 Dec 2003 01:27:20 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi (Postfix) with ESMTP id 89AD6C000D9D for ; Tue, 9 Dec 2003 01:27:18 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id 7857423838; Tue, 9 Dec 2003 01:27:06 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5BBD423841; Tue, 9 Dec 2003 01:27:06 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CDF2723838; Tue, 9 Dec 2003 01:26:29 +0200 (EET) In-Reply-To: References: <1069870278.14196.41.camel@hurina> Mime-Version: 1.0 (Apple Message framework v606) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] corrupted empty message with CVS Date: Tue, 9 Dec 2003 01:26:26 +0200 To: dean gaudet X-Mailer: Apple Mail (2.606) X-Spam-Status: No, hits=-6.3 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Dec 2003 23:27:21 -0000 X-UID: 4067 Status: O On Nov 26, 2003, at 8:21 PM, dean gaudet wrote: > i have a related question -- i wonder if it would be hard to move more > config options into the auth subsections. i'd like to conditionalize > default_mail_env, and {last,first}_valid_{u,g}id based on whether the > login is "auth default" or "auth vpopmail". i was planning on digging > through the code at some point, but figured it was worth asking. I did think about that before, but then thought it's not worth the trouble. It's possible by using server { .. } blocks, but that requires each server listening in different IP or port. From olive@pasteur.fr Tue Dec 9 10:40:33 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 7C804C000DC3; Tue, 9 Dec 2003 10:40:33 +0200 (EET) Received: from electre.pasteur.fr (electre.pasteur.fr [157.99.64.120]) by talvi (Postfix) with ESMTP id 4EB96C000D9D for ; Tue, 9 Dec 2003 10:40:31 +0200 (EET) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by electre.pasteur.fr (8.12.10/8.12.10) with ESMTP id hB98eFTx060586 for ; Tue, 9 Dec 2003 09:40:17 +0100 (CET) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 669D63F671; Tue, 9 Dec 2003 09:40:15 +0100 (CET) Date: Tue, 9 Dec 2003 09:40:15 +0100 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] Rogue child imap processes when using Mac imap clients Message-ID: <20031209084015.GB55229@mafate.sis.pasteur.fr> References: <3FD4B4D2.304@3x3x3.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Attribution: Olive X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Dec 2003 08:40:33 -0000 X-UID: 4068 Status: O * Timo Sirainen (20031209 00:29): > Anyway, I haven't noticed problems with Mail.app. Nor did I, although I check a big Mail directory. I just hear the IMAP server's disk grind for some seconds (I suspect it goes through every mailbox to update the index). My only concern with Mail.app is that, by default, it displays every mailbox existing, instead of playing with subscriptions, but it is perhaps only a matter of reading the docs! -- olive From gmid-dovecot@m.gmane.org Tue Dec 9 03:30:32 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 42723C000DC3; Tue, 9 Dec 2003 03:30:32 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi (Postfix) with ESMTP id 0A5AEC000D9D for ; Tue, 9 Dec 2003 03:30:30 +0200 (EET) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1ATWhX-0001EN-00 for ; Tue, 09 Dec 2003 02:30:11 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1ATVhz-0000lv-00 for ; Tue, 09 Dec 2003 01:26:35 +0100 Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 1ATVhz-0003eW-00 for ; Tue, 09 Dec 2003 01:26:35 +0100 From: Andreas Fuchs Date: Tue, 09 Dec 2003 01:26:34 +0100 Lines: 24 Message-ID: <86r7zesuo5.wl%asf@boinkor.net> References: <3FD4B4D2.304@3x3x3.org> Mime-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII X-Complaints-To: usenet@sea.gmane.org In-Reply-To: <3FD4B4D2.304@3x3x3.org> User-Agent: Wanderlust/2.11.20 (Wonderwall) Emacs/21.3 Mule/5.0 (SAKAKI) Sender: news X-Mailman-Approved-At: Thu, 11 Dec 2003 01:19:04 +0200 Subject: [Dovecot] Re: Rogue child imap processes when using Mac imap clients X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Dec 2003 01:30:32 -0000 X-UID: 4069 Status: O On 2003-12-08, darren david wrote: > but Mac > clients (Thunderbird, Mozilla, Mail.app) all exhibit the same > behavior - they can check and send mail, but I end up with a single, > rogue child imap process on the server that pins the cpu that i have > to 'kill -9' to clear out. A friend of mine who runs dovecot 0.99.10.2 on freebsd/alpha (from ports, thus the low version number) just reported this same symptom to me. Apparently, dovecot runs fine for a few days, and then an imap process hogs 100% cpu and has to be killed I'll see if I can get a ktrace from it. > Is this a Mac problem or a Dovecot problem? I'm not even sure what > to look for in the logs... Remarkably, he too is using a Mac OSX client - mulberry, though. We'll see soon enough, I think. Good luck hunting the bug, -- Andreas Fuchs, , asf@jabber.at, antifuchs From gmid-dovecot@m.gmane.org Wed Dec 10 23:44:44 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 7DF37C000D72; Wed, 10 Dec 2003 23:44:44 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi (Postfix) with ESMTP id E7B54C0007A4 for ; Wed, 10 Dec 2003 23:44:41 +0200 (EET) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AUC83-0001w6-00 for ; Wed, 10 Dec 2003 22:44:19 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AUC82-0001vx-00 for ; Wed, 10 Dec 2003 22:44:18 +0100 Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AUC82-0004U8-00 for ; Wed, 10 Dec 2003 22:44:18 +0100 From: Andreas Fuchs Date: Wed, 10 Dec 2003 22:44:17 +0100 Lines: 46 Message-ID: <864qw8gxfy.wl%asf@boinkor.net> References: <3FD4B4D2.304@3x3x3.org> Mime-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII X-Complaints-To: usenet@sea.gmane.org In-Reply-To: User-Agent: Wanderlust/2.11.20 (Wonderwall) Emacs/21.3 Mule/5.0 (SAKAKI) Sender: news X-Mailman-Approved-At: Thu, 11 Dec 2003 01:19:04 +0200 Subject: [Dovecot] Re: Rogue child imap processes when using Mac imap clients X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2003 21:44:44 -0000 X-UID: 4070 Status: O Content-Length: 1989 On 2003-12-08, Timo Sirainen wrote: > On Dec 8, 2003, at 7:28 PM, darren david wrote: >> I am currently running dovecot 0.99.10p2 on >> OpenBSD-3.4-snapshot. It has been very stable, but I have recently >> noticed that I am having problems when checking IMAP-SSL mail with >> Mac OS X clients. There are not problems using Mozilla or Outlook >> on Windows, but Mac clients (Thunderbird, Mozilla, Mail.app) all >> exhibit the same behavior - they can check and send mail, but I end >> up with a single, rogue child imap process on the server that pins >> the cpu that i have to 'kill -9' to clear out. >> >> Is this a Mac problem or a Dovecot problem? I'm not even sure what >> to look for in the logs... > > Hmm. Check with ktrace what the imap process is doing and send the > log to me? (I'm not exactly sure how ktrace worked, it was a bit > weird.) And maybe check with gdb too where it's stuck at (gdb > /usr/local/lib/dovecot/imap and "bt" command). Or is it imap > process or imap-login process? Got one (although I'm not sure if this comes from handling a Mac mail reader): 45793 dovecot CALL sendto(0x9,0x11ffac40,0x45,0,0,0) 45793 dovecot GIO fd 9 wrote 69 bytes "<19>Dec 10 22:37:15 dovecot: socketpair() failed: Too many open files" 45793 dovecot RET sendto 69/0x45 45793 dovecot CALL socketpair(0x1,0x1,0,0x11ffb9d0) 45793 dovecot RET socketpair -1 errno 24 Too many open files 45793 dovecot CALL gettimeofday(0x11ffabf0,0) 45793 dovecot RET gettimeofday 0 This is what's happening on an alpha/freebsd, in a tight loop. (FreeBSD s2.enemy.org 4.9-STABLE FreeBSD 4.9-STABLE #1: Mon Nov 24 10:37:25 CET 2003 root@s2.enemy.org:/u/src/sys/compile/S2 alpha) Unfortunately, I couldn't extract a gdb backtrace. Perhaps you can work with that until I can get one (should be another 2-4 days) (-: > Anyway, I haven't noticed problems with Mail.app. Thanks a lot, -- Andreas Fuchs, , asf@jabber.at, antifuchs From camis@mweb.co.za Thu Dec 11 12:15:01 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 79F92C000DC6; Thu, 11 Dec 2003 12:15:01 +0200 (EET) Received: from starcraft.mweb.co.za (starcraft.mweb.co.za [196.2.45.78]) by talvi (Postfix) with ESMTP id 0B137C000DC4 for ; Thu, 11 Dec 2003 12:14:59 +0200 (EET) Received: from net-49-138.mweb.co.za ([196.2.49.138]:3935 helo=mweb.co.za) by starcraft.mweb.co.za with esmtp (Exim 4.24) id 1AUNq3-0003d5-AI for dovecot@dovecot.org; Thu, 11 Dec 2003 12:14:31 +0200 Message-ID: <3FD843E2.6010105@mweb.co.za> Date: Thu, 11 Dec 2003 12:16:02 +0200 From: Cami User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6a) Gecko/20031030 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] dovecot.. X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Dec 2003 10:15:01 -0000 X-UID: 4071 Status: O Hi All.. Has anyone got any experimental patches for mysql auth? Regards, Cami From david@madole.net Thu Dec 11 15:45:08 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 33A51C000DC6; Thu, 11 Dec 2003 15:45:08 +0200 (EET) Received: from box1.omd3.com (box1.omd3.com [69.46.19.120]) by talvi (Postfix) with ESMTP id 2293AC000D72 for ; Thu, 11 Dec 2003 15:45:05 +0200 (EET) Received: from dhcp-209-54-72-175.ct.dsl.ntplx.com ([209.54.72.175] helo=david) by box1.omd3.com with asmtp (Exim 4.30) id 1AUR7N-000GVJ-LP; Thu, 11 Dec 2003 08:44:37 -0500 Message-ID: <001b01c3bfec$eaf35af0$e3e7a8c0@david> From: "David S. Madole" To: "Cami" , References: <3FD843E2.6010105@mweb.co.za> Subject: Re: [Dovecot] dovecot.. (mySQL authentication) Date: Thu, 11 Dec 2003 08:44:36 -0500 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0018_01C3BFC3.01953730" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Dec 2003 13:45:08 -0000 X-UID: 4072 Status: O Content-Length: 28844 This is a multi-part message in MIME format. ------=_NextPart_000_0018_01C3BFC3.01953730 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit > "Cami" wrote: > > Has anyone got any experimental patches for mysql auth? The attached patch was published to this list by Matthew Reimer a few months ago. I have merely updated it to apply to the current 0.99.10.4 version of Dovecot. I would say this is somewhat better than experimental, as I have been using it for two months now with zero problems at all. Note that there is no 'configure' logic in this patch, accordingly you need to set a couple of flags manually to compile MySQL support. Here's how I compile, for reference: AUTH_CFLAGS="-I/usr/local/include/mysql -DPASSDB_MYSQL -DUSERDB_MYSQL" \ AUTH_LIBS="-L/usr/local/lib/mysql -lmysqlclient" \ \ ./configure \ --prefix= \ --disable-ipv6 \ --with-ssldir=/etc \ --with-storages=maildir \ --without-passwd \ --without-passwd-file \ --without-static \ --without-pam \ \ && make Hope this helps you as much as it's helped me. Thanks again to Matthew for this work. David Madole ------=_NextPart_000_0018_01C3BFC3.01953730 Content-Type: application/octet-stream; name="dovecot-0.99.10.4-mysql.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="dovecot-0.99.10.4-mysql.diff" diff -r -P -u dovecot-0.99.10.4.orig/dovecot-mysql.conf = dovecot-0.99.10.4/dovecot-mysql.conf=0A= --- dovecot-0.99.10.4.orig/dovecot-mysql.conf Thu Jan 1 00:00:00 1970=0A= +++ dovecot-0.99.10.4/dovecot-mysql.conf Mon Dec 1 14:42:12 2003=0A= @@ -0,0 +1,70 @@=0A= +# For the mysql passdb module, you'll need a database with a table that=0A= +# contains fields for at least the userid and password. If you want to=0A= +# use the user@domain syntax, you might want to have a separate domain=0A= +# field as well.=0A= +#=0A= +# If your users all have the same uig/gid, and have predictable home=0A= +# directories, you can use the static userdb module to generate the home=0A= +# dir based on the userid and domain. In this case, you won't need = fields=0A= +# for home, uid, or gid in the database.=0A= +#=0A= +# If you prefer to use the mysql userdb module, you'll want to add = fields=0A= +# for home, uid, and gid. Here is an example table:=0A= +#=0A= +# CREATE TABLE users (=0A= +# userid VARCHAR(128) NOT NULL,=0A= +# password VARCHAR(64) NOT NULL,=0A= +# home VARCHAR(256) NOT NULL,=0A= +# uid INTEGER NOT NULL,=0A= +# gid INTEGER NOT NULL,=0A= +# active CHAR(1) DEFAULT 'Y' NOT NULL=0A= +# );=0A= +=0A= +db_host =3D localhost=0A= +db_port =3D 3306=0A= +#db_unix_socket =3D /var/tmp/mysql.sock=0A= +db =3D users=0A= +db_user =3D dovecot-db=0A= +db_passwd =3D opensesame=0A= +db_client_flags =3D 0=0A= +=0A= +# Default password scheme.=0A= +#=0A= +# Currently supported schemes include PLAIN, PLAIN-MD5, DIGEST-MD5, and = CRYPT.=0A= +#=0A= +#default_pass_scheme =3D PLAIN-MD5=0A= +=0A= +# Query to retrieve the password.=0A= +#=0A= +# The query should return one row, one column. If more than one row or = column=0A= +# is returned, authentication will automatically fail.=0A= +#=0A= +# Available substitutions:=0A= +# %u =3D entire userid=0A= +# %n =3D user part of user@domain=0A= +# %d =3D domain part of user@domain=0A= +#=0A= +# Example:=0A= +# password_query =3D SELECT password FROM users WHERE userid =3D '%n' = AND domain =3D '%d'=0A= +# password_query =3D SELECT password FROM users WHERE userid =3D '%u' = AND active =3D 'Y'=0A= +#=0A= +#password_query =3D SELECT password FROM users WHERE userid =3D '%u'=0A= +=0A= +# Query to retrieve the user information.=0A= +#=0A= +# The query must return only one row. The columns to return are:=0A= +# home - Home directory=0A= +# mail - MAIL environment=0A= +# system_user - System user name (for initgroups())=0A= +# uid - System UID=0A= +# gid - System GID=0A= +#=0A= +# Either home or mail is required. uid and gid are required. If more = than one=0A= +# row is returned or there's missing fields, login will automatically = fail.=0A= +#=0A= +# Examples=0A= +# user_query =3D SELECT home, uid, gid FROM users WHERE userid =3D = '%n' AND domain =3D '%d'=0A= +# user_query =3D SELECT dir AS home, user AS uid, group AS gid FROM = users where userid =3D '%u'=0A= +# user_query =3D SELECT home, 501 AS uid, 501 AS gid FROM users WHERE = userid =3D '%u'=0A= +#=0A= +#user_query =3D SELECT home, uid, gid FROM users WHERE userid =3D '%u'=0A= Only in dovecot-0.99.10.4.orig: dovecot.spec=0A= diff -r -P -u dovecot-0.99.10.4.orig/src/auth/Makefile.in = dovecot-0.99.10.4/src/auth/Makefile.in=0A= --- dovecot-0.99.10.4.orig/src/auth/Makefile.in Mon Nov 24 21:29:28 2003=0A= +++ dovecot-0.99.10.4/src/auth/Makefile.in Mon Dec 1 14:44:05 2003=0A= @@ -107,10 +107,10 @@=0A= dovecot_auth_LDADD =3D ../lib-settings/libsettings.a ../lib/liblib.a = $(AUTH_LIBS) $(RAND_LIBS) $(MODULE_LIBS)=0A= =0A= =0A= -dovecot_auth_SOURCES =3D auth-module.c db-ldap.c db-pgsql.c = db-passwd-file.c login-connection.c main.c master-connection.c = md5crypt.c mech.c mech-anonymous.c mech-cyrus-sasl2.c mech-plain.c = mech-digest-md5.c mycrypt.c passdb.c passdb-ldap.c passdb-passwd.c = passdb-passwd-file.c passdb-pam.c passdb-shadow.c passdb-vpopmail.c = passdb-pgsql.c password-scheme.c userdb.c userdb-ldap.c = userdb-passwd.c userdb-passwd-file.c userdb-static.c = userdb-vpopmail.c userdb-pgsql.c=0A= +dovecot_auth_SOURCES =3D auth-module.c db-ldap.c db-mysql.c = db-pgsql.c db-passwd-file.c login-connection.c main.c = master-connection.c md5crypt.c mech.c mech-anonymous.c = mech-cyrus-sasl2.c mech-plain.c mech-digest-md5.c mycrypt.c passdb.c = passdb-ldap.c passdb-passwd.c passdb-passwd-file.c passdb-pam.c = passdb-shadow.c passdb-vpopmail.c passdb-mysql.c passdb-pgsql.c = password-scheme.c userdb.c userdb-ldap.c userdb-passwd.c = userdb-passwd-file.c userdb-static.c userdb-vpopmail.c userdb-mysql.c = userdb-pgsql.c=0A= =0A= =0A= -noinst_HEADERS =3D auth-login-interface.h auth-master-interface.h = auth-mech-desc.h auth-module.h db-ldap.h db-pgsql.h db-passwd-file.h = common.h login-connection.h master-connection.h md5crypt.h mech.h = mycrypt.h passdb.h password-scheme.h userdb.h userdb-vpopmail.h=0A= +noinst_HEADERS =3D auth-login-interface.h auth-master-interface.h = auth-mech-desc.h auth-module.h db-ldap.h db-mysql.h db-pgsql.h = db-passwd-file.h common.h login-connection.h master-connection.h = md5crypt.h mech.h mycrypt.h passdb.h password-scheme.h userdb.h = userdb-vpopmail.h=0A= =0A= mkinstalldirs =3D $(SHELL) $(top_srcdir)/mkinstalldirs=0A= CONFIG_HEADER =3D ../../config.h=0A= @@ -124,17 +124,18 @@=0A= LDFLAGS =3D @LDFLAGS@=0A= LIBS =3D @LIBS@=0A= dovecot_auth_OBJECTS =3D auth-module.$(OBJEXT) db-ldap.$(OBJEXT) \=0A= +db-mysql.$(OBJEXT) \=0A= db-pgsql.$(OBJEXT) db-passwd-file.$(OBJEXT) login-connection.$(OBJEXT) \=0A= main.$(OBJEXT) master-connection.$(OBJEXT) md5crypt.$(OBJEXT) \=0A= mech.$(OBJEXT) mech-anonymous.$(OBJEXT) mech-cyrus-sasl2.$(OBJEXT) \=0A= mech-plain.$(OBJEXT) mech-digest-md5.$(OBJEXT) mycrypt.$(OBJEXT) \=0A= passdb.$(OBJEXT) passdb-ldap.$(OBJEXT) passdb-passwd.$(OBJEXT) \=0A= passdb-passwd-file.$(OBJEXT) passdb-pam.$(OBJEXT) \=0A= -passdb-shadow.$(OBJEXT) passdb-vpopmail.$(OBJEXT) \=0A= +passdb-shadow.$(OBJEXT) passdb-vpopmail.$(OBJEXT) = passdb-mysql.$(OBJEXT) \=0A= passdb-pgsql.$(OBJEXT) password-scheme.$(OBJEXT) userdb.$(OBJEXT) \=0A= userdb-ldap.$(OBJEXT) userdb-passwd.$(OBJEXT) \=0A= userdb-passwd-file.$(OBJEXT) userdb-static.$(OBJEXT) \=0A= -userdb-vpopmail.$(OBJEXT) userdb-pgsql.$(OBJEXT)=0A= +userdb-vpopmail.$(OBJEXT) userdb-mysql.$(OBJEXT) userdb-pgsql.$(OBJEXT)=0A= dovecot_auth_DEPENDENCIES =3D ../lib-settings/libsettings.a \=0A= ../lib/liblib.a=0A= dovecot_auth_LDFLAGS =3D =0A= @@ -296,6 +297,7 @@=0A= ../../src/lib/imem.h ../../src/lib/strfuncs.h userdb.h \=0A= db-passwd-file.h ../../src/lib/buffer.h ../../src/lib/istream.h \=0A= ../../src/lib/hash.h ../../src/lib/str.h=0A= +db-mysql.o: db-mysql.c ../../config.h=0A= db-pgsql.o: db-pgsql.c ../../config.h=0A= login-connection.o: login-connection.c common.h ../../src/lib/lib.h \=0A= ../../config.h ../../src/lib/compat.h ../../src/lib/macros.h \=0A= @@ -383,6 +385,7 @@=0A= ../../src/lib/imem.h ../../src/lib/strfuncs.h \=0A= ../../src/lib/safe-memset.h passdb.h mech.h \=0A= auth-login-interface.h mycrypt.h=0A= +passdb-mysql.o: passdb-mysql.c ../../config.h=0A= passdb-pgsql.o: passdb-pgsql.c ../../config.h=0A= passdb-shadow.o: passdb-shadow.c ../../config.h common.h \=0A= ../../src/lib/lib.h ../../src/lib/compat.h \=0A= @@ -417,6 +420,7 @@=0A= ../../src/lib/macros.h ../../src/lib/failures.h \=0A= ../../src/lib/data-stack.h ../../src/lib/mempool.h \=0A= ../../src/lib/imem.h ../../src/lib/strfuncs.h userdb.h=0A= +userdb-mysql.o: userdb-mysql.c ../../config.h=0A= userdb-pgsql.o: userdb-pgsql.c ../../config.h=0A= userdb-static.o: userdb-static.c ../../config.h common.h \=0A= ../../src/lib/lib.h ../../src/lib/compat.h \=0A= diff -r -P -u dovecot-0.99.10.4.orig/src/auth/db-mysql.c = dovecot-0.99.10.4/src/auth/db-mysql.c=0A= --- dovecot-0.99.10.4.orig/src/auth/db-mysql.c Thu Jan 1 00:00:00 1970=0A= +++ dovecot-0.99.10.4/src/auth/db-mysql.c Mon Dec 1 14:47:08 2003=0A= @@ -0,0 +1,181 @@=0A= +/* Copyright (C) 2003 Alex Howansky, Timo Sirainen */=0A= +=0A= +#include "config.h"=0A= +#undef HAVE_CONFIG_H=0A= +=0A= +#if defined(PASSDB_MYSQL) || defined(USERDB_MYSQL)=0A= +=0A= +#include "common.h"=0A= +#include "network.h"=0A= +#include "str.h"=0A= +#include "settings.h"=0A= +#include "db-mysql.h"=0A= +=0A= +#include =0A= +#include =0A= +#include =0A= +=0A= +#define DEF(type, name) { type, #name, offsetof(struct mysql_settings, = name) }=0A= +=0A= +static struct setting_def setting_defs[] =3D {=0A= + DEF(SET_STR, db_host),=0A= + DEF(SET_STR, db_port),=0A= + DEF(SET_STR, db_unix_socket),=0A= + DEF(SET_STR, db),=0A= + DEF(SET_STR, db_user),=0A= + DEF(SET_STR, db_passwd),=0A= + DEF(SET_STR, db_client_flags),=0A= + DEF(SET_STR, password_query),=0A= + DEF(SET_STR, user_query),=0A= + DEF(SET_STR, default_pass_scheme)=0A= +};=0A= +=0A= +struct mysql_settings default_mysql_settings =3D {=0A= + MEMBER(db_host) "localhost",=0A= + MEMBER(db_port) "0",=0A= + MEMBER(db_unix_socket) "/var/tmp/mysql.sock",=0A= + MEMBER(db) "email_accounts",=0A= + MEMBER(db_user) "dovecot",=0A= + MEMBER(db_passwd) "changeme",=0A= + MEMBER(db_client_flags) "0",=0A= + MEMBER(password_query) "SELECT password FROM users WHERE userid =3D = '%u'",=0A= + MEMBER(user_query) "SELECT home, uid, gid FROM users WHERE userid =3D = '%u'",=0A= + MEMBER(default_pass_scheme) "PLAIN-MD5"=0A= +};=0A= +=0A= +static struct mysql_connection *mysql_connections =3D NULL;=0A= +=0A= +static int mysql_conn_open(struct mysql_connection *conn);=0A= +static void mysql_conn_close(struct mysql_connection *conn);=0A= +=0A= +void db_mysql_query(struct mysql_connection *conn, const char *query,=0A= + struct mysql_request *request)=0A= +{=0A= + MYSQL_RES *res;=0A= + int failed;=0A= +=0A= + if (!conn->connected) {=0A= + if (!mysql_conn_open(conn)) {=0A= + request->callback(conn, request, NULL);=0A= + return;=0A= + }=0A= + }=0A= +=0A= + if (verbose_debug)=0A= + i_info("MYSQL: Performing query: %s", query);=0A= +=0A= + if (mysql_query(conn->mysql, query))=0A= + i_info("MYSQL: Error executing query \"%s\": %s", query,=0A= + mysql_error(conn->mysql));=0A= +=0A= + if ((res =3D mysql_store_result(conn->mysql)))=0A= + failed =3D FALSE;=0A= + else {=0A= + i_info("MYSQL: Error retrieving results: %s",=0A= + mysql_error(conn->mysql));=0A= + failed =3D TRUE;=0A= + }=0A= +=0A= + request->callback(conn, request, failed ? NULL : res);=0A= + mysql_free_result(res);=0A= + i_free(request);=0A= +}=0A= +=0A= +static int mysql_conn_open(struct mysql_connection *conn)=0A= +{=0A= + if (conn->connected)=0A= + return TRUE;=0A= +=0A= + if (conn->mysql =3D=3D NULL) {=0A= + conn->mysql =3D mysql_init(NULL);=0A= + if (conn->mysql =3D=3D NULL) {=0A= + i_error("MYSQL: mysql_init failed");=0A= + return FALSE;=0A= + }=0A= +=0A= + if (!mysql_real_connect(conn->mysql, conn->set.db_host,=0A= + conn->set.db_user, conn->set.db_passwd,=0A= + conn->set.db,=0A= + atoi(conn->set.db_port),=0A= + conn->set.db_unix_socket,=0A= + strtoul(conn->set.db_client_flags,=0A= + NULL, 10))) {=0A= + i_error("MYSQL: Can't connect to database %s: %s",=0A= + conn->set.db, mysql_error(conn->mysql));=0A= + return FALSE;=0A= + }=0A= + }=0A= +=0A= + conn->connected =3D TRUE;=0A= + return TRUE;=0A= +}=0A= +=0A= +static void mysql_conn_close(struct mysql_connection *conn)=0A= +{=0A= + conn->connected =3D FALSE;=0A= +=0A= + if (conn->mysql !=3D NULL) {=0A= + mysql_close(conn->mysql);=0A= + conn->mysql =3D NULL;=0A= + }=0A= +}=0A= +=0A= +static struct mysql_connection *mysql_conn_find(const char *config_path)=0A= +{=0A= + struct mysql_connection *conn;=0A= +=0A= + for (conn =3D mysql_connections; conn !=3D NULL; conn =3D conn->next) {=0A= + if (strcmp(conn->config_path, config_path) =3D=3D 0)=0A= + return conn;=0A= + }=0A= +=0A= + return NULL;=0A= +}=0A= +=0A= +static const char *parse_setting(const char *key, const char *value,=0A= + void *context)=0A= +{=0A= + struct mysql_connection *conn =3D context;=0A= +=0A= + return parse_setting_from_defs(conn->pool, setting_defs,=0A= + &conn->set, key, value);=0A= +}=0A= +=0A= +struct mysql_connection *db_mysql_init(const char *config_path)=0A= +{=0A= + struct mysql_connection *conn;=0A= + pool_t pool;=0A= +=0A= + conn =3D mysql_conn_find(config_path);=0A= + if (conn !=3D NULL) {=0A= + conn->refcount++;=0A= + return conn;=0A= + }=0A= +=0A= + pool =3D pool_alloconly_create("mysql_connection", 1024);=0A= + conn =3D p_new(pool, struct mysql_connection, 1);=0A= + conn->pool =3D pool;=0A= +=0A= + conn->refcount =3D 1;=0A= +=0A= + conn->config_path =3D p_strdup(pool, config_path);=0A= + conn->set =3D default_mysql_settings;=0A= + settings_read(config_path, parse_setting, conn);=0A= +=0A= + (void)mysql_conn_open(conn);=0A= +=0A= + conn->next =3D mysql_connections;=0A= + mysql_connections =3D conn;=0A= + return conn;=0A= +}=0A= +=0A= +void db_mysql_unref(struct mysql_connection *conn)=0A= +{=0A= + if (--conn->refcount > 0)=0A= + return;=0A= +=0A= + mysql_conn_close(conn);=0A= + pool_unref(conn->pool);=0A= +}=0A= +=0A= +#endif=0A= diff -r -P -u dovecot-0.99.10.4.orig/src/auth/db-mysql.h = dovecot-0.99.10.4/src/auth/db-mysql.h=0A= --- dovecot-0.99.10.4.orig/src/auth/db-mysql.h Thu Jan 1 00:00:00 1970=0A= +++ dovecot-0.99.10.4/src/auth/db-mysql.h Mon Dec 1 14:42:12 2003=0A= @@ -0,0 +1,51 @@=0A= +#ifndef __DB_MYSQL_H=0A= +#define __DB_MYSQL_H=0A= +=0A= +#include =0A= +=0A= +struct mysql_connection;=0A= +struct mysql_request;=0A= +=0A= +typedef void mysql_query_callback_t(struct mysql_connection *conn,=0A= + struct mysql_request *request,=0A= + MYSQL_RES *res);=0A= +=0A= +struct mysql_settings {=0A= + const char *db_host;=0A= + const char *db_port;=0A= + const char *db_unix_socket;=0A= + const char *db;=0A= + const char *db_user;=0A= + const char *db_passwd;=0A= + const char *db_client_flags;=0A= + const char *password_query;=0A= + const char *user_query;=0A= + const char *default_pass_scheme;=0A= +};=0A= +=0A= +struct mysql_connection {=0A= + struct mysql_connection *next;=0A= +=0A= + pool_t pool;=0A= + int refcount;=0A= +=0A= + char *config_path;=0A= + struct mysql_settings set;=0A= +=0A= + MYSQL *mysql;=0A= +=0A= + unsigned int connected:1;=0A= +};=0A= +=0A= +struct mysql_request {=0A= + mysql_query_callback_t *callback;=0A= + void *context;=0A= +};=0A= +=0A= +void db_mysql_query(struct mysql_connection *conn, const char *query,=0A= + struct mysql_request *request);=0A= +=0A= +struct mysql_connection *db_mysql_init(const char *config_path);=0A= +void db_mysql_unref(struct mysql_connection *conn);=0A= +=0A= +#endif=0A= diff -r -P -u dovecot-0.99.10.4.orig/src/auth/passdb-mysql.c = dovecot-0.99.10.4/src/auth/passdb-mysql.c=0A= --- dovecot-0.99.10.4.orig/src/auth/passdb-mysql.c Thu Jan 1 00:00:00 = 1970=0A= +++ dovecot-0.99.10.4/src/auth/passdb-mysql.c Mon Dec 1 14:42:12 2003=0A= @@ -0,0 +1,171 @@=0A= +/* Copyright (C) 2003 Alex Howansky, Timo Sirainen */=0A= +=0A= +#include "config.h"=0A= +#undef HAVE_CONFIG_H=0A= +=0A= +#ifdef PASSDB_MYSQL=0A= +=0A= +#include "common.h"=0A= +#include "str.h"=0A= +#include "strescape.h"=0A= +#include "var-expand.h"=0A= +#include "password-scheme.h"=0A= +#include "db-mysql.h"=0A= +#include "passdb.h"=0A= +=0A= +#include =0A= +#include =0A= +#include =0A= +=0A= +struct passdb_mysql_connection {=0A= + struct mysql_connection *conn;=0A= +};=0A= +=0A= +struct passdb_mysql_request {=0A= + struct mysql_request request;=0A= +=0A= + enum passdb_credentials credentials;=0A= + union {=0A= + verify_plain_callback_t *verify_plain;=0A= + lookup_credentials_callback_t *lookup_credentials;=0A= + } callback;=0A= +=0A= + char password[1];=0A= +};=0A= +=0A= +static struct passdb_mysql_connection *passdb_mysql_conn;=0A= +=0A= +static void mysql_handle_request(struct mysql_connection *conn,=0A= + struct mysql_request *request, MYSQL_RES *res)=0A= +{=0A= + struct passdb_mysql_request *mysql_request =3D=0A= + (struct passdb_mysql_request *) request;=0A= + struct auth_request *auth_request =3D request->context;=0A= + const char *user, *password, *scheme;=0A= + int ret =3D 0;=0A= +=0A= + user =3D auth_request->user;=0A= + password =3D NULL;=0A= +=0A= + if (res !=3D NULL) {=0A= + if (mysql_num_rows(res) =3D=3D 0) {=0A= + if (verbose)=0A= + i_info("mysql(%s): Unknown user", user);=0A= + } else if (mysql_num_rows(res) > 1) {=0A= + i_error("mysql(%s): Multiple matches for user", user);=0A= + } else if (mysql_num_fields(res) !=3D 1) {=0A= + i_error("mysql(%s): Password query returned "=0A= + "more than one field", user);=0A= + } else {=0A= + MYSQL_ROW row;=0A= +=0A= + row =3D mysql_fetch_row(res);=0A= + if (row)=0A= + password =3D t_strdup(row[0]);=0A= + }=0A= + }=0A= +=0A= + scheme =3D password_get_scheme(&password);=0A= + if (scheme =3D=3D NULL) {=0A= + scheme =3D conn->set.default_pass_scheme;=0A= + i_assert(scheme !=3D NULL);=0A= + }=0A= +=0A= + if (mysql_request->credentials !=3D -1) {=0A= + passdb_handle_credentials(mysql_request->credentials,=0A= + user, password, scheme,=0A= + mysql_request->callback.lookup_credentials,=0A= + auth_request);=0A= + return;=0A= + }=0A= +=0A= + /* verify plain */=0A= + if (password =3D=3D NULL) {=0A= + mysql_request->callback.verify_plain(PASSDB_RESULT_USER_UNKNOWN,=0A= + auth_request);=0A= + return;=0A= + }=0A= +=0A= + ret =3D password_verify(mysql_request->password, password,=0A= + scheme, user);=0A= + if (ret < 0)=0A= + i_error("mysql(%s): Unknown password scheme %s", user, scheme);=0A= + else if (ret =3D=3D 0) {=0A= + if (verbose)=0A= + i_info("mysql(%s): Password mismatch", user);=0A= + }=0A= +=0A= + mysql_request->callback.verify_plain(ret > 0 ? PASSDB_RESULT_OK :=0A= + PASSDB_RESULT_PASSWORD_MISMATCH,=0A= + auth_request);=0A= +}=0A= +=0A= +static void mysql_lookup_pass(struct auth_request *auth_request,=0A= + struct mysql_request *mysql_request)=0A= +{=0A= + struct mysql_connection *conn =3D passdb_mysql_conn->conn;=0A= + const char *query;=0A= + string_t *str;=0A= +=0A= + str =3D t_str_new(512);=0A= + var_expand(str, conn->set.password_query,=0A= + str_escape(auth_request->user), NULL);=0A= + query =3D str_c(str);=0A= +=0A= + mysql_request->callback =3D mysql_handle_request;=0A= + mysql_request->context =3D auth_request;=0A= +=0A= + db_mysql_query(conn, query, mysql_request);=0A= +}=0A= +=0A= +static void=0A= +mysql_verify_plain(struct auth_request *request, const char *password,=0A= + verify_plain_callback_t *callback)=0A= +{=0A= + struct passdb_mysql_request *mysql_request;=0A= +=0A= + mysql_request =3D i_malloc(sizeof(struct passdb_mysql_request) +=0A= + strlen(password));=0A= + mysql_request->credentials =3D -1;=0A= + mysql_request->callback.verify_plain =3D callback;=0A= + strcpy(mysql_request->password, password);=0A= +=0A= + mysql_lookup_pass(request, &mysql_request->request);=0A= +}=0A= +=0A= +static void mysql_lookup_credentials(struct auth_request *request,=0A= + enum passdb_credentials credentials,=0A= + lookup_credentials_callback_t *callback)=0A= +{=0A= + struct passdb_mysql_request *mysql_request;=0A= +=0A= + mysql_request =3D i_new(struct passdb_mysql_request, 1);=0A= + mysql_request->credentials =3D credentials;=0A= + mysql_request->callback.lookup_credentials =3D callback;=0A= +=0A= + mysql_lookup_pass(request, &mysql_request->request);=0A= +}=0A= +=0A= +static void passdb_mysql_init(const char *args)=0A= +{=0A= + struct mysql_connection *conn;=0A= +=0A= + passdb_mysql_conn =3D i_new(struct passdb_mysql_connection, 1);=0A= + passdb_mysql_conn->conn =3D conn =3D db_mysql_init(args);=0A= +}=0A= +=0A= +static void passdb_mysql_deinit(void)=0A= +{=0A= + db_mysql_unref(passdb_mysql_conn->conn);=0A= + i_free(passdb_mysql_conn);=0A= +}=0A= +=0A= +struct passdb_module passdb_mysql =3D {=0A= + passdb_mysql_init,=0A= + passdb_mysql_deinit,=0A= +=0A= + mysql_verify_plain,=0A= + mysql_lookup_credentials=0A= +};=0A= +=0A= +#endif=0A= diff -r -P -u dovecot-0.99.10.4.orig/src/auth/passdb.c = dovecot-0.99.10.4/src/auth/passdb.c=0A= --- dovecot-0.99.10.4.orig/src/auth/passdb.c Mon Nov 24 21:29:28 2003=0A= +++ dovecot-0.99.10.4/src/auth/passdb.c Mon Dec 1 14:42:12 2003=0A= @@ -110,6 +110,10 @@=0A= if (strcasecmp(name, "pgsql") =3D=3D 0)=0A= passdb =3D &passdb_pgsql;=0A= #endif=0A= +#ifdef PASSDB_MYSQL=0A= + if (strcasecmp(name, "mysql") =3D=3D 0)=0A= + passdb =3D &passdb_mysql;=0A= +#endif=0A= #ifdef HAVE_MODULES=0A= passdb_module =3D passdb !=3D NULL ? NULL : auth_module_open(name);=0A= if (passdb_module !=3D NULL) {=0A= diff -r -P -u dovecot-0.99.10.4.orig/src/auth/passdb.h = dovecot-0.99.10.4/src/auth/passdb.h=0A= --- dovecot-0.99.10.4.orig/src/auth/passdb.h Mon Nov 24 21:29:28 2003=0A= +++ dovecot-0.99.10.4/src/auth/passdb.h Mon Dec 1 14:42:12 2003=0A= @@ -58,6 +58,7 @@=0A= extern struct passdb_module passdb_vpopmail;=0A= extern struct passdb_module passdb_ldap;=0A= extern struct passdb_module passdb_pgsql;=0A= +extern struct passdb_module passdb_mysql;=0A= =0A= void passdb_init(void);=0A= void passdb_deinit(void);=0A= diff -r -P -u dovecot-0.99.10.4.orig/src/auth/userdb-mysql.c = dovecot-0.99.10.4/src/auth/userdb-mysql.c=0A= --- dovecot-0.99.10.4.orig/src/auth/userdb-mysql.c Thu Jan 1 00:00:00 = 1970=0A= +++ dovecot-0.99.10.4/src/auth/userdb-mysql.c Mon Dec 1 14:42:12 2003=0A= @@ -0,0 +1,160 @@=0A= +/* Copyright (C) 2003 Alex Howansky, Timo Sirainen */=0A= +=0A= +#include "config.h"=0A= +#undef HAVE_CONFIG_H=0A= +=0A= +#ifdef USERDB_MYSQL=0A= +=0A= +#include "common.h"=0A= +#include "str.h"=0A= +#include "strescape.h"=0A= +#include "var-expand.h"=0A= +#include "db-mysql.h"=0A= +#include "userdb.h"=0A= +=0A= +#include =0A= +#include =0A= +#include =0A= +=0A= +struct userdb_mysql_connection {=0A= + struct mysql_connection *conn;=0A= +};=0A= +=0A= +struct userdb_mysql_request {=0A= + struct mysql_request request;=0A= + userdb_callback_t *userdb_callback;=0A= +=0A= + char username[1]; /* variable width */=0A= +};=0A= +=0A= +static struct userdb_mysql_connection *userdb_mysql_conn;=0A= +=0A= +static int is_result_valid(MYSQL_RES *res)=0A= +{=0A= + int i, n_fields, found;=0A= + MYSQL_FIELD *fields;=0A= +=0A= + if (res =3D=3D NULL) {=0A= + i_error("MYSQL: Query failed");=0A= + return FALSE;=0A= + }=0A= +=0A= + if (mysql_num_rows(res) =3D=3D 0) {=0A= + if (verbose)=0A= + i_error("MYSQL: Authenticated user not found");=0A= + return FALSE;=0A= + }=0A= +=0A= + n_fields =3D mysql_num_fields(res);=0A= + fields =3D mysql_fetch_fields(res);=0A= +=0A= + /* Make sure the 'uid' field exists. */=0A= + for (found =3D 0, i =3D 0; i < n_fields; i++)=0A= + if (strcmp("uid", fields[i].name) =3D=3D 0) {=0A= + found =3D 1;=0A= + break;=0A= + }=0A= +=0A= + if (!found) {=0A= + i_error("MYSQL: User query did not return 'uid' field");=0A= + return FALSE;=0A= + }=0A= +=0A= + /* Make sure the 'gid' field exists. */=0A= + for (found =3D 0, i =3D 0; i < n_fields; i++)=0A= + if (strcmp("gid", fields[i].name) =3D=3D 0) {=0A= + found =3D 1;=0A= + break;=0A= + }=0A= +=0A= + if (!found) {=0A= + i_error("MYSQL: User query did not return 'gid' field");=0A= + return FALSE;=0A= + }=0A= +=0A= + return TRUE;=0A= +}=0A= +=0A= +static const char *my_get_str(MYSQL_RES *res, MYSQL_ROW row, const char = *field)=0A= +{=0A= + int i, n_fields;=0A= + unsigned long *lengths;=0A= + MYSQL_FIELD *fields;=0A= +=0A= + n_fields =3D mysql_num_fields(res);=0A= + lengths =3D mysql_fetch_lengths(res);=0A= + fields =3D mysql_fetch_fields(res);=0A= + for (i =3D 0; i < n_fields; i++)=0A= + if (strcmp(field, fields[i].name) =3D=3D 0)=0A= + return (const char *) lengths[i] =3D=3D 0 ?=0A= + NULL : t_strdup(row[i]);=0A= +=0A= + return NULL;=0A= +}=0A= +=0A= +static void mysql_handle_request(struct mysql_connection *conn = __attr_unused__,=0A= + struct mysql_request *request, MYSQL_RES *res)=0A= +{=0A= + struct userdb_mysql_request *urequest =3D=0A= + (struct userdb_mysql_request *) request;=0A= + struct user_data user;=0A= + MYSQL_ROW row;=0A= +=0A= + if (res !=3D NULL && is_result_valid(res) &&=0A= + (row =3D mysql_fetch_row(res))) {=0A= + memset(&user, 0, sizeof(user));=0A= + user.virtual_user =3D urequest->username;=0A= + user.system_user =3D my_get_str(res, row, "system_user");=0A= + user.home =3D my_get_str(res, row, "home");=0A= + user.mail =3D my_get_str(res, row, "mail");=0A= + user.uid =3D atoi(my_get_str(res, row, "uid")); /* XXX leak */=0A= + user.gid =3D atoi(my_get_str(res, row, "gid")); /* XXX leak */=0A= + urequest->userdb_callback(&user, request->context);=0A= + } else {=0A= + urequest->userdb_callback(NULL, request->context);=0A= + }=0A= +}=0A= +=0A= +static void userdb_mysql_lookup(const char *user, userdb_callback_t = *callback,=0A= + void *context)=0A= +{=0A= + struct mysql_connection *conn =3D userdb_mysql_conn->conn;=0A= + struct userdb_mysql_request *request;=0A= + const char *query;=0A= + string_t *str;=0A= +=0A= + str =3D t_str_new(512);=0A= + var_expand(str, conn->set.user_query, str_escape(user), NULL);=0A= + query =3D str_c(str);=0A= +=0A= + request =3D i_malloc(sizeof(struct userdb_mysql_request) + = strlen(user));=0A= + request->request.callback =3D mysql_handle_request;=0A= + request->request.context =3D context;=0A= + request->userdb_callback =3D callback;=0A= + strcpy(request->username, user);=0A= +=0A= + db_mysql_query(conn, query, &request->request);=0A= +}=0A= +=0A= +static void userdb_mysql_init(const char *args)=0A= +{=0A= + struct mysql_connection *conn;=0A= +=0A= + userdb_mysql_conn =3D i_new(struct userdb_mysql_connection, 1);=0A= + userdb_mysql_conn->conn =3D conn =3D db_mysql_init(args);=0A= +}=0A= +=0A= +static void userdb_mysql_deinit(void)=0A= +{=0A= + db_mysql_unref(userdb_mysql_conn->conn);=0A= + i_free(userdb_mysql_conn);=0A= +}=0A= +=0A= +struct userdb_module userdb_mysql =3D {=0A= + userdb_mysql_init,=0A= + userdb_mysql_deinit,=0A= +=0A= + userdb_mysql_lookup=0A= +};=0A= +=0A= +#endif=0A= diff -r -P -u dovecot-0.99.10.4.orig/src/auth/userdb.c = dovecot-0.99.10.4/src/auth/userdb.c=0A= --- dovecot-0.99.10.4.orig/src/auth/userdb.c Mon Nov 24 21:29:28 2003=0A= +++ dovecot-0.99.10.4/src/auth/userdb.c Mon Dec 1 14:42:12 2003=0A= @@ -49,6 +49,10 @@=0A= if (strcasecmp(name, "pgsql") =3D=3D 0)=0A= userdb =3D &userdb_pgsql;=0A= #endif=0A= +#ifdef USERDB_MYSQL=0A= + if (strcasecmp(name, "mysql") =3D=3D 0)=0A= + userdb =3D &userdb_mysql;=0A= +#endif=0A= #ifdef HAVE_MODULES=0A= userdb_module =3D userdb !=3D NULL ? NULL : auth_module_open(name);=0A= if (userdb_module !=3D NULL) {=0A= diff -r -P -u dovecot-0.99.10.4.orig/src/auth/userdb.h = dovecot-0.99.10.4/src/auth/userdb.h=0A= --- dovecot-0.99.10.4.orig/src/auth/userdb.h Mon Nov 24 21:29:28 2003=0A= +++ dovecot-0.99.10.4/src/auth/userdb.h Mon Dec 1 14:42:12 2003=0A= @@ -29,6 +29,7 @@=0A= extern struct userdb_module userdb_vpopmail;=0A= extern struct userdb_module userdb_ldap;=0A= extern struct userdb_module userdb_pgsql;=0A= +extern struct userdb_module userdb_mysql;=0A= =0A= void userdb_init(void);=0A= void userdb_deinit(void);=0A= ------=_NextPart_000_0018_01C3BFC3.01953730-- From robin@isometry.net Thu Dec 11 21:31:05 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id B7EA6C000DC6; Thu, 11 Dec 2003 21:31:05 +0200 (EET) Received: from mx.dsl.isometry.net (cpc3-oxfd2-6-0-cust207.oxfd.cable.ntl.com [81.103.193.207]) by talvi (Postfix) with ESMTP id E916CC000D72 for ; Thu, 11 Dec 2003 21:31:02 +0200 (EET) Received: from isometry.net (ishadow.dsl.isometry.net [195.137.51.150]) by mx.dsl.isometry.net (Postfix) with ESMTP id 632B0C8; Thu, 11 Dec 2003 19:30:39 +0000 (UTC) Message-ID: <3FD8C5E7.9050507@isometry.net> Date: Thu, 11 Dec 2003 19:30:47 +0000 From: Robin Breathe User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Andreas Fuchs References: <3FD4B4D2.304@3x3x3.org> <86r7zesuo5.wl%asf@boinkor.net> In-Reply-To: <86r7zesuo5.wl%asf@boinkor.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org Subject: [Dovecot] Re: Rogue child imap processes when using Mac imap clients X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Dec 2003 19:31:05 -0000 X-UID: 4073 Status: O Andreas Fuchs wrote: > A friend of mine who runs dovecot 0.99.10.2 on freebsd/alpha (from > ports, thus the low version number) [...] I've taken maintainership of the FreeBSD dovecot port, you can now find 0.99.10.4 in the tree. Along with enhanced package install/uninstall and start/stop scripts. - Robin -- Robin Breathe robin@isometry.net +441865741800 From camis@mweb.co.za Fri Dec 12 07:52:40 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 5C6C1C00300C; Fri, 12 Dec 2003 07:52:40 +0200 (EET) Received: from quake.mweb.co.za (quake.mweb.co.za [196.2.45.76]) by talvi (Postfix) with ESMTP id EEB66C000D72 for ; Fri, 12 Dec 2003 07:52:37 +0200 (EET) Received: from net-49-138.mweb.co.za ([196.2.49.138]:4344 helo=mweb.co.za) by quake.mweb.co.za with esmtp (Exim 4.24) id 1AUgDn-0004aT-5Q for dovecot@dovecot.org; Fri, 12 Dec 2003 07:52:15 +0200 Message-ID: <3FD957EC.1000206@mweb.co.za> Date: Fri, 12 Dec 2003 07:53:48 +0200 From: Cami User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6a) Gecko/20031030 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot.. (mySQL authentication) References: <3FD843E2.6010105@mweb.co.za> <001b01c3bfec$eaf35af0$e3e7a8c0@david> In-Reply-To: <001b01c3bfec$eaf35af0$e3e7a8c0@david> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Dec 2003 05:52:40 -0000 X-UID: 4074 Status: O >>Has anyone got any experimental patches for mysql auth? > > The attached patch was published to this list by Matthew Reimer a few months > ago. I have merely updated it to apply to the current 0.99.10.4 version of > Dovecot. Great.. Has development on dovecot stopped? (I'm quite curious why this hasnt been merged with the current dovedot development release.. That is, if there is a development reason ;)) > I would say this is somewhat better than experimental, as I have been using > it for two months now with zero problems at all. Excellent.. Thanks.. Has anyone done any benchmarking to see how dovecot compares to courier? Regards, Cami From stephanb@whacky.net Fri Dec 12 09:55:35 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id EAAB0C00300C; Fri, 12 Dec 2003 09:55:35 +0200 (EET) Received: from enigma.whacky.net (enigma.whacky.net [217.148.161.174]) by talvi (Postfix) with ESMTP id BD67CC000D72 for ; Fri, 12 Dec 2003 09:55:33 +0200 (EET) Received: from localhost (localhost.whacky.net [127.0.0.1]) by enigma.whacky.net (Postfix) with ESMTP id D67B020F10 for ; Fri, 12 Dec 2003 08:55:11 +0100 (CET) Received: from enigma.whacky.net ([127.0.0.1]) by localhost (enigma.whacky.net [127.0.0.1]) (amavisd-new, port 10024) with SMTP id 42992-09 for ; Fri, 12 Dec 2003 08:55:08 +0100 (CET) Received: by enigma.whacky.net (Postfix, from userid 1000) id 5180A20F33; Fri, 12 Dec 2003 08:55:08 +0100 (CET) Date: Fri, 12 Dec 2003 08:55:08 +0100 From: Stephan van Beerschoten To: dovecot@dovecot.org Message-ID: <20031212075456.GC33332@enigma.whacky.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="17pEHd4RhPHOinZp" Content-Disposition: inline User-Agent: Mutt/1.5.5.1i X-Virus-Scanned: by amavisd-new at whacky.net Subject: [Dovecot] Always 'new mail' false notifications? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Dec 2003 07:55:36 -0000 X-UID: 4075 Status: O Content-Length: 1508 --17pEHd4RhPHOinZp Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, I just yesterday played around and installed dovecot. I like it a lot (except for the lack of mysql support), but I have one issue I can't seem to fix. I am using mutt as my mailclient and mutt will alert me whenever new mail has arrived in any mailfolder I have configured. The thing is, that mutt continously signals me of new mail in all my folders, when in reality nothing has entered there. Does this sound familiar to anyone ? All I can think of, is that something is happening with modification timestamps of my mailboxes which signals the new mail flag, but I don't know what causes it. A small description of my setup: One server running dovecot. I access mail locally via IMAP, but can also access the spoolfiles and mailfolders directly. I'm the only one with shell access.=20 Procmail filters mail and delivers it to my mailfolders in ~/Mail. Any ideas ? --=20 Stephan van Beerschoten [KeyID: 0x08F12864] "To err is human, to forgive is Not Company Policy" = =20 --17pEHd4RhPHOinZp Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (FreeBSD) iD8DBQE/2XRQJliZ6wjxKGQRAiwDAKCBt1pXIPPTjl8WXbUG4TRslDvWtgCgkz9l AD3vQfnQGrzS1c/fKNlZNTk= =aOb8 -----END PGP SIGNATURE----- --17pEHd4RhPHOinZp-- From david@madole.net Fri Dec 12 15:20:11 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 421FCC003019; Fri, 12 Dec 2003 15:20:11 +0200 (EET) Received: from box1.omd3.com (box1.omd3.com [69.46.19.120]) by talvi (Postfix) with ESMTP id 042F9C000D72 for ; Fri, 12 Dec 2003 15:20:09 +0200 (EET) Received: from ip-209-54-72-175.ct.dsl.ntplx.com ([209.54.72.175] helo=david) by box1.omd3.com with asmtp (Exim 4.30) id 1AUnCs-000IKo-4q; Fri, 12 Dec 2003 08:19:46 -0500 Message-ID: <001701c3c0b2$9b8e1ec0$e3e7a8c0@david> From: "David S. Madole" To: "Cami" References: <3FD843E2.6010105@mweb.co.za><001b01c3bfec$eaf35af0$e3e7a8c0@david> <3FD957EC.1000206@mweb.co.za> Subject: Re: [Dovecot] dovecot.. (mySQL authentication) Date: Fri, 12 Dec 2003 08:19:43 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Dec 2003 13:20:11 -0000 X-UID: 4076 Status: O "Cami" wrote: > >>Has anyone got any experimental patches for mysql auth? > > > > The attached patch was published to this list by Matthew Reimer a few months > > ago. I have merely updated it to apply to the current 0.99.10.4 version of > > Dovecot. > > Great.. Has development on dovecot stopped? (I'm quite curious why this > hasnt been merged with the current dovedot development release.. That > is, if there is a development reason ;)) Not at all, Timo is quite active. I don't intend to speak for him, but he has indicated on this list before that his first goal is to get the existing functionality working to his satisfaction so that 1.0 can be released, then to add new features after that. Although 0.99.10.4 works very well, there are some internal issues, especially with mbox (which I don't use), that he knows need work. > Excellent.. Thanks.. Has anyone done any benchmarking to see how dovecot > compares to courier? I've not, but subjectively speaking, Dovecot is *FAST*. Dave From tss@iki.fi Fri Dec 12 16:11:28 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 37694C003019; Fri, 12 Dec 2003 16:11:28 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi (Postfix) with ESMTP id 3AD02C000D72 for ; Fri, 12 Dec 2003 16:11:26 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5925A300DFC17 for ; Fri, 12 Dec 2003 16:11:05 +0200 (EET) Subject: Re: [Dovecot] Always 'new mail' false notifications? From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20031212075456.GC33332@enigma.whacky.net> References: <20031212075456.GC33332@enigma.whacky.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-sUiaA2kVZjmHYjU8ZtsN" Message-Id: <1071238265.1433.126.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 12 Dec 2003 16:11:05 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Dec 2003 14:11:28 -0000 X-UID: 4077 Status: O --=-sUiaA2kVZjmHYjU8ZtsN Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2003-12-12 at 09:55, Stephan van Beerschoten wrote: > I am using mutt as my mailclient and mutt will alert me whenever new > mail has arrived in any mailfolder I have configured. > The thing is, that mutt continously signals me of new mail in all my > folders, when in reality nothing has entered there. I'm guessing it's using recent messages-counters to do it, which are currently broken in Dovecot. --=-sUiaA2kVZjmHYjU8ZtsN Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/2cx5yUhSUUBViskRAuuDAKCh+GEouzWcEbhZ7P48yxThMsaWoQCfYVFN pRunFlKF5NDl1cSiIHSTxTY= =+B++ -----END PGP SIGNATURE----- --=-sUiaA2kVZjmHYjU8ZtsN-- From tss@iki.fi Fri Dec 12 16:13:38 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 3A6D7C003026; Fri, 12 Dec 2003 16:13:38 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi (Postfix) with ESMTP id A092AC003019 for ; Fri, 12 Dec 2003 16:13:35 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id C18C4300DFC17 for ; Fri, 12 Dec 2003 16:13:14 +0200 (EET) Subject: Re: [Dovecot] dovecot.. (mySQL authentication) From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <001701c3c0b2$9b8e1ec0$e3e7a8c0@david> References: <3FD843E2.6010105@mweb.co.za> <001b01c3bfec$eaf35af0$e3e7a8c0@david> <3FD957EC.1000206@mweb.co.za> <001701c3c0b2$9b8e1ec0$e3e7a8c0@david> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-EeZii9BKy+adaJM4dStm" Message-Id: <1071238394.1443.129.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 12 Dec 2003 16:13:14 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Dec 2003 14:13:38 -0000 X-UID: 4078 Status: O Content-Length: 1480 --=-EeZii9BKy+adaJM4dStm Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2003-12-12 at 15:19, David S. Madole wrote: > > Great.. Has development on dovecot stopped? (I'm quite curious why this > > hasnt been merged with the current dovedot development release.. That > > is, if there is a development reason ;)) >=20 > Not at all, Timo is quite active. I don't intend to speak for him, but he > has indicated on this list before that his first goal is to get the exist= ing > functionality working to his satisfaction so that 1.0 can be released, th= en > to add new features after that.=20 Well, mysql authentication doesn't really belong to those "after 1.0 features" .. It's mostly been that I've had so much else to do and have forgotten it always. Maybe I'll include it with 0.99.10.5 which I should actually release to fix some mbox problems :) > > Excellent.. Thanks.. Has anyone done any benchmarking to see how doveco= t > > compares to courier? >=20 > I've not, but subjectively speaking, Dovecot is *FAST*. What I'm mostly working on now should make it even faster :) --=-EeZii9BKy+adaJM4dStm Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/2cz6yUhSUUBViskRArpPAJ41hBxoSUsef2CPgOjLFxU42CsFJgCdE2WB 0F3/DVS1FyfejeAbckLtaFo= =+WgN -----END PGP SIGNATURE----- --=-EeZii9BKy+adaJM4dStm-- From camis@mweb.co.za Fri Dec 12 16:44:13 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 0C7B0C003029; Fri, 12 Dec 2003 16:44:13 +0200 (EET) Received: from kknd.mweb.co.za (kknd.mweb.co.za [196.2.45.79]) by talvi (Postfix) with ESMTP id 8EC99C003026 for ; Fri, 12 Dec 2003 16:44:10 +0200 (EET) Received: from net-49-138.mweb.co.za ([196.2.49.138]:4911 helo=mweb.co.za) by kknd.mweb.co.za with esmtp (Exim 4.24) id 1AUoVz-00068z-Oo for dovecot@dovecot.org; Fri, 12 Dec 2003 16:43:35 +0200 Message-ID: <3FD9D477.8090802@mweb.co.za> Date: Fri, 12 Dec 2003 16:45:11 +0200 From: Cami User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6a) Gecko/20031030 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot.. (mySQL authentication) References: <3FD843E2.6010105@mweb.co.za> <001b01c3bfec$eaf35af0$e3e7a8c0@david> <3FD957EC.1000206@mweb.co.za> <001701c3c0b2$9b8e1ec0$e3e7a8c0@david> <1071238394.1443.129.camel@hurina> In-Reply-To: <1071238394.1443.129.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Dec 2003 14:44:13 -0000 X-UID: 4079 Status: O > Well, mysql authentication doesn't really belong to those "after 1.0 > features" .. It's mostly been that I've had so much else to do and have > forgotten it always. Maybe I'll include it with 0.99.10.5 which I should > actually release to fix some mbox problems :) Excellent.. I'm sure myself and a number of other people will be looking forward to that.. >>>Excellent.. Thanks.. Has anyone done any benchmarking to see how dovecot >>>compares to courier? >> >>I've not, but subjectively speaking, Dovecot is *FAST*. > > What I'm mostly working on now should make it even faster :) Well.. Sounds good.. However, i'd still like to see some benchmarks done.. If i'm planning to let dovecot handle 350 000 mailboxes, i need to make sure everyones benchmark results are pretty similiar.. Any chance you'd get some time to post some benchmarks? (against courier to be specific ;) Regards, Cami From stephanb@whacky.net Mon Dec 15 22:21:35 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id C069FC00308E; Mon, 15 Dec 2003 22:21:35 +0200 (EET) Received: from enigma.whacky.net (enigma.whacky.net [217.148.161.174]) by talvi (Postfix) with ESMTP id 7E708C00308D for ; Mon, 15 Dec 2003 22:21:33 +0200 (EET) Received: from localhost (localhost.whacky.net [127.0.0.1]) by enigma.whacky.net (Postfix) with ESMTP id EA27820F32 for ; Mon, 15 Dec 2003 21:20:58 +0100 (CET) Received: from enigma.whacky.net ([127.0.0.1]) by localhost (enigma.whacky.net [127.0.0.1]) (amavisd-new, port 10024) with SMTP id 19420-02 for ; Mon, 15 Dec 2003 21:20:55 +0100 (CET) Received: by enigma.whacky.net (Postfix, from userid 1000) id E962620F2D; Mon, 15 Dec 2003 21:20:54 +0100 (CET) Date: Mon, 15 Dec 2003 21:20:54 +0100 From: Stephan van Beerschoten To: dovecot@dovecot.org Message-ID: <20031215202054.GA14098@enigma.whacky.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="/9DWx/yDrRhgMJTb" Content-Disposition: inline User-Agent: Mutt/1.5.5.1i X-Virus-Scanned: by amavisd-new at whacky.net Subject: [Dovecot] multiple auth= statements X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Dec 2003 20:21:35 -0000 X-UID: 4080 Status: O Content-Length: 1424 --/9DWx/yDrRhgMJTb Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline Content-Transfer-Encoding: quoted-printable I'm new to dovecot and it's configurations. Reading the config file, I have a question regarding having multiple auth=3D lines in there. Is this some sort of a pass-through or fail-through system of authentications like where if a user is not authenticated using 'pam', then the second method is tried (which might be sql or plain passwd-txt) ? Am I assuming the right thing here ? I have system-users, but am planning to migrate the majority of those users to a virtual_mailbox system (using postfix) where they have no more system-users . I just want to be sure this will work. If anybody has setup a system with postfix and virtual mailboxes in combination with dovecot, and wants to swap stories and setups, I'd be grateful :) /Stephan --=20 Stephan van Beerschoten [KeyID: 0x08F12864] "If you are adminstering UNIX systems and don't master tools such as make, shell, and perl, then you are working too hard." -- Wietse Venema. Fri, 12 Dec 2003 --/9DWx/yDrRhgMJTb Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (FreeBSD) iD8DBQE/3hemJliZ6wjxKGQRAqO0AJ9ZtEAT09eAswqsPNpJYoxMcm5DRACfcel9 PGt+K7NhFrqjduDtEeLhSY8= =5Y89 -----END PGP SIGNATURE----- --/9DWx/yDrRhgMJTb-- From stephanb@whacky.net Mon Dec 15 22:29:35 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id D364EC003090; Mon, 15 Dec 2003 22:29:35 +0200 (EET) Received: from enigma.whacky.net (enigma.whacky.net [217.148.161.174]) by talvi (Postfix) with ESMTP id B474EC00308F for ; Mon, 15 Dec 2003 22:29:33 +0200 (EET) Received: from localhost (localhost.whacky.net [127.0.0.1]) by enigma.whacky.net (Postfix) with ESMTP id E92D820F32 for ; Mon, 15 Dec 2003 21:29:00 +0100 (CET) Received: from enigma.whacky.net ([127.0.0.1]) by localhost (enigma.whacky.net [127.0.0.1]) (amavisd-new, port 10024) with SMTP id 18304-08 for ; Mon, 15 Dec 2003 21:28:57 +0100 (CET) Received: by enigma.whacky.net (Postfix, from userid 1000) id D0A2D20F2D; Mon, 15 Dec 2003 21:28:56 +0100 (CET) Date: Mon, 15 Dec 2003 21:28:56 +0100 From: Stephan van Beerschoten To: dovecot@dovecot.org Subject: Re: [Dovecot] Always 'new mail' false notifications? Message-ID: <20031215202856.GB14098@enigma.whacky.net> References: <20031212075456.GC33332@enigma.whacky.net> <1071238265.1433.126.camel@hurina> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="U+BazGySraz5kW0T" Content-Disposition: inline In-Reply-To: <1071238265.1433.126.camel@hurina> User-Agent: Mutt/1.5.5.1i X-Virus-Scanned: by amavisd-new at whacky.net X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Dec 2003 20:29:36 -0000 X-UID: 4081 Status: O Content-Length: 1514 --U+BazGySraz5kW0T Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Dec 12, 2003 at 04:11:05PM +0200, Timo Sirainen wrote: >On Fri, 2003-12-12 at 09:55, Stephan van Beerschoten wrote: >> I am using mutt as my mailclient and mutt will alert me whenever new >> mail has arrived in any mailfolder I have configured. >> The thing is, that mutt continously signals me of new mail in all my >> folders, when in reality nothing has entered there. > >I'm guessing it's using recent messages-counters to do it, which are >currently broken in Dovecot. > That sounds like the problem indeed. However, that almost seems like a vital part of a imap/pop3 server here. Doesn't this almost render dovecut unusable for a large majority of users ? Surely 'mutt' isn't the only MUA that uses this system. Have they been broken long already and is there any idea on when they might be ok again? Thanks. /Stephan --=20 Stephan van Beerschoten [KeyID: 0x08F12864] "If you are adminstering UNIX systems and don't master tools such as make, shell, and perl, then you are working too hard." -- Wietse Venema. Fri, 12 Dec 2003 --U+BazGySraz5kW0T Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (FreeBSD) iD8DBQE/3hmIJliZ6wjxKGQRAkWwAKCu71HicZgCX3g4qJlOwplAKgwzigCcCz3f bH4N3I7Zx3EuOtUZOCYnJKI= =C0cU -----END PGP SIGNATURE----- --U+BazGySraz5kW0T-- From jaldhar@debian.org Tue Dec 16 07:30:21 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 4E62BC000DC5; Tue, 16 Dec 2003 07:30:21 +0200 (EET) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi (Postfix) with ESMTP id 1086AC0007A4 for ; Tue, 16 Dec 2003 07:30:19 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 914C77F6F; Tue, 16 Dec 2003 00:29:51 -0500 (EST) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17032-06; Tue, 16 Dec 2003 00:29:51 -0500 (EST) Received: from [192.168.2.25] (pcp05652358pcs.jersyc01.nj.comcast.net [68.37.205.194]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id ACDB37F58; Tue, 16 Dec 2003 00:29:50 -0500 (EST) Date: Tue, 16 Dec 2003 00:26:26 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Jeroen van Disseldorp , 224092@bugs.debian.org In-Reply-To: <200312160004.30066.jdizzl@xs4all.nl> Message-ID: References: <200312160004.30066.jdizzl@xs4all.nl> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at braincells.com Cc: dovecot@dovecot.org Subject: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2003 05:30:21 -0000 X-UID: 4082 Status: O Content-Length: 1151 On Tue, 16 Dec 2003, Jeroen van Disseldorp wrote: > Package: dovecot-imapd > Version: 0.99.10.4-2 > Severity: normal > > When accessing a maildir with "all folders" instead of "only subscribed > folders", dovecot wrongfully reports its index-files (.imap.*) as mail > folders. When the client (KMail 1.5.2 in my case) checks for email, it > aborts halfway with the message: > > Unable to get information about folder imap.index. The server replied: > Internal error [2003-12-15 23:53:05] > > I noticed the same thing with the .subscription-file, but that seems to > have disappeared after a reinstall of dovecot*. Squirrelmail, which > only checks subscribed folders, has no problems. > > The problem started with the last upgrade from 0.99.10.4-1 to -2. -1 was > working fine. I am using Debian GNU/Linux unstable (fully updated) with > kernel 2.4.18-686. I don't think the problem was caused by the upgrade as I only changed one Debian dependency. I am Cc'ing the Dovecot mailing list to see if the developer or anyone else has some insight into this. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From G.Ohrner@post.rwth-aachen.de Tue Dec 16 14:01:31 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi (Postfix, from userid 107) id 86206C000D9E; Tue, 16 Dec 2003 14:01:31 +0200 (EET) Received: from relay.UserCenter.de (unknown [62.112.158.193]) by talvi (Postfix) with ESMTP id D6944C0007A4 for ; Tue, 16 Dec 2003 14:01:28 +0200 (EET) Received: by relay.UserCenter.de (Postfix, from userid 106) id 805E43440D1; Tue, 16 Dec 2003 13:00:57 +0100 (CET) Received: from 0-102.vpn.RWTH-Aachen.DE (0-102.vpn.RWTH-Aachen.DE [134.130.240.102]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by relay.UserCenter.de (Postfix) with ESMTP id 03AC33440D0; Tue, 16 Dec 2003 13:00:56 +0100 (CET) From: Gunter Ohrner Organization: Gunter Ohrner Datensysteme To: 224092@bugs.debian.org Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders Date: Tue, 16 Dec 2003 13:59:50 +0100 User-Agent: KMail/1.5.4 References: <200312160004.30066.jdizzl@xs4all.nl> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200312161359.50500.G.Ohrner@post.rwth-aachen.de> X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on Blubb.wwwlan.net X-Spam-Level: X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2003 12:01:31 -0000 X-UID: 4083 Status: O On Dienstag, 16. Dezember 2003 06:26, Jaldhar H. Vyas wrote: > > When accessing a maildir with "all folders" instead of "only subscribed > > folders", dovecot wrongfully reports its index-files (.imap.*) as mail > > folders. When the client (KMail 1.5.2 in my case) checks for email, it > > aborts halfway with the message: > I don't think the problem was caused by the upgrade as I only changed one > Debian dependency. I'm using the mentioned dovecot package and kMail 1.5.4 from Debian SID and saw no problems so far. I currently only have a pretty small mailbox running with dovecot 0.99.10.4-2 however, as my main personal mailserver is still at 0.99.10.2. Greetings, Gunter From tss@iki.fi Tue Dec 16 21:40:51 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C5586C000DC6; Tue, 16 Dec 2003 21:40:51 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 92597C000DC4 for ; Tue, 16 Dec 2003 21:40:49 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B0E6E300DFC0C for ; Tue, 16 Dec 2003 21:40:18 +0200 (EET) From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-S2Q9bCNSO5b9x6YJkJee" Message-Id: <1071603618.6860.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 16 Dec 2003 21:40:18 +0200 Subject: [Dovecot] Mailing list problems fixed X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2003 19:40:51 -0000 X-UID: 4084 Status: O --=-S2Q9bCNSO5b9x6YJkJee Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2003-12-16 at 12:00, mailman@dovecot.org wrote: > ...: host ...[...] said: 504 > : Helo command rejected: need fully-qualified hostname (in rep= ly to > RCPT TO command) Whops. 12 people's subscriptions got disabled because of that. It's fixed now and I've restored the subscriptions. --=-S2Q9bCNSO5b9x6YJkJee Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/31+iyUhSUUBViskRAlNCAKCCY6G+/eFhcLP7MPSJvGJLAwAxHQCbB5wj 8pXkBa9Et7ySR9NWBbPLLZE= =6iZ3 -----END PGP SIGNATURE----- --=-S2Q9bCNSO5b9x6YJkJee-- From tss@iki.fi Tue Dec 16 21:44:44 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 23BCEC003015; Tue, 16 Dec 2003 21:44:44 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 88BD6C003014 for ; Tue, 16 Dec 2003 21:44:41 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3C4BF300DFC0C; Tue, 16 Dec 2003 21:44:10 +0200 (EET) Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders From: Timo Sirainen To: "Jaldhar H. Vyas" In-Reply-To: References: <200312160004.30066.jdizzl@xs4all.nl> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-cCfzDii55NMFDeWcpK+D" Message-Id: <1071603850.6844.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 16 Dec 2003 21:44:10 +0200 Cc: Jeroen van Disseldorp , 224092@bugs.debian.org, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2003 19:44:44 -0000 X-UID: 4085 Status: O Content-Length: 1044 --=-cCfzDii55NMFDeWcpK+D Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2003-12-16 at 07:26, Jaldhar H. Vyas wrote: > > When accessing a maildir with "all folders" instead of "only subscribed > > folders", dovecot wrongfully reports its index-files (.imap.*) as mail > > folders. When the client (KMail 1.5.2 in my case) checks for email, it > > aborts halfway with the message: This shouldn't happen normally. By default INBOX's indexes are stored inside .INBOX/ directory. If you have .imap/ directory in root Maildir, you had changed some settings in a way that's not really supported. Such as setting INBOX=3D~/Maildir in default_mail_env? --=-cCfzDii55NMFDeWcpK+D Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/32CKyUhSUUBViskRAl7iAJ0cqjS1J4u3MsFrS5GkABZfUxqfzwCfUsAj 1fbjmTS8QjKYDDdzUWrpvOI= =YPqv -----END PGP SIGNATURE----- --=-cCfzDii55NMFDeWcpK+D-- From tss@iki.fi Tue Dec 16 21:47:50 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AA9BCC00301C; Tue, 16 Dec 2003 21:47:50 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 86612C003017 for ; Tue, 16 Dec 2003 21:47:48 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A99CF300DFC0C for ; Tue, 16 Dec 2003 21:47:17 +0200 (EET) Subject: Re: [Dovecot] Always 'new mail' false notifications? From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20031215202856.GB14098@enigma.whacky.net> References: <20031212075456.GC33332@enigma.whacky.net> <1071238265.1433.126.camel@hurina> <20031215202856.GB14098@enigma.whacky.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-0lVLg61roYPY2vYnm/eL" Message-Id: <1071604037.6859.12.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 16 Dec 2003 21:47:17 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2003 19:47:50 -0000 X-UID: 4086 Status: O Content-Length: 1333 --=-0lVLg61roYPY2vYnm/eL Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2003-12-15 at 22:28, Stephan van Beerschoten wrote: > >I'm guessing it's using recent messages-counters to do it, which are > >currently broken in Dovecot. > > > That sounds like the problem indeed. However, that almost seems like a > vital part of a imap/pop3 server here. Doesn't this almost render > dovecut unusable for a large majority of users ? > Surely 'mutt' isn't the only MUA that uses this system. >=20 > Have they been broken long already and is there any idea on when they > might be ok again? Thanks. Actually they should be working fine as long as you're not using INDEX=3DMEMORY or for some other reason deleting index files. Also most clients don't really use recent counters for anything so it hasn't been too much of a problem anyway.. I have a nice plan to fix them well, but I'd rather do it after the larger changes I'm currently doing. --=-0lVLg61roYPY2vYnm/eL Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/32FFyUhSUUBViskRAv5YAKCbaDSTV4qYScFKhPWWLNYf2xL4fwCdHqf7 WoQI4DMG+86CpirDQZlb6xc= =57NH -----END PGP SIGNATURE----- --=-0lVLg61roYPY2vYnm/eL-- From tss@iki.fi Tue Dec 16 21:50:46 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 433B9C003090; Tue, 16 Dec 2003 21:50:46 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 082A5C00308E for ; Tue, 16 Dec 2003 21:50:44 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E44DA300DFC0C for ; Tue, 16 Dec 2003 21:50:12 +0200 (EET) Subject: Re: [Dovecot] multiple auth= statements From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20031215202054.GA14098@enigma.whacky.net> References: <20031215202054.GA14098@enigma.whacky.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-SoeZRZtUWd79oYRKmaoR" Message-Id: <1071604212.6857.16.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 16 Dec 2003 21:50:12 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2003 19:50:46 -0000 X-UID: 4087 Status: O Content-Length: 1464 --=-SoeZRZtUWd79oYRKmaoR Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2003-12-15 at 22:20, Stephan van Beerschoten wrote: > I'm new to dovecot and it's configurations. Reading the config file, I > have a question regarding having multiple auth=3D lines in there. >=20 > Is this some sort of a pass-through or fail-through system of > authentications like where if a user is not authenticated using 'pam', > then the second method is tried (which might be sql or plain passwd-txt) = ? > Am I assuming the right thing here ? Well .. In CVS yes, in 0.99.10.x no. They're a bit useless in .10. > I have system-users, but am planning to migrate the majority of those > users to a virtual_mailbox system (using postfix) where they have no > more system-users . I just want to be sure this will work. Alternative would be to list system users as well in virtual users list. > If anybody has setup a system with postfix and virtual mailboxes in > combination with dovecot, and wants to swap stories and setups, I'd be > grateful :) There's HOWTO in wiki.dovecot.org --=-SoeZRZtUWd79oYRKmaoR Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/32H0yUhSUUBViskRAk66AKCgCEMgS4WvSTtH8xwYXomvP8VfIACePQg1 69VzNAhqOEt11EXf8pxUksc= =9+ew -----END PGP SIGNATURE----- --=-SoeZRZtUWd79oYRKmaoR-- From tss@iki.fi Tue Dec 16 21:58:07 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A128CC003090; Tue, 16 Dec 2003 21:58:07 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 5FC47C00308E for ; Tue, 16 Dec 2003 21:58:05 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2AB67300DFC0C for ; Tue, 16 Dec 2003 21:57:34 +0200 (EET) Subject: Re: [Dovecot] dovecot.. (mySQL authentication) From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <3FD9D477.8090802@mweb.co.za> References: <3FD843E2.6010105@mweb.co.za> <001b01c3bfec$eaf35af0$e3e7a8c0@david> <3FD957EC.1000206@mweb.co.za> <001701c3c0b2$9b8e1ec0$e3e7a8c0@david> <1071238394.1443.129.camel@hurina> <3FD9D477.8090802@mweb.co.za> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-dpB6gjmElQ/gPDj1lWqP" Message-Id: <1071604654.6852.25.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 16 Dec 2003 21:57:34 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2003 19:58:07 -0000 X-UID: 4088 Status: O Content-Length: 1448 --=-dpB6gjmElQ/gPDj1lWqP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2003-12-12 at 16:45, Cami wrote: > >>>Excellent.. Thanks.. Has anyone done any benchmarking to see how dovec= ot > >>>compares to courier? > >> > >>I've not, but subjectively speaking, Dovecot is *FAST*. > >=20 > > What I'm mostly working on now should make it even faster :) >=20 > Well.. Sounds good.. However, i'd still like to see some > benchmarks done.. If i'm planning to let dovecot handle > 350 000 mailboxes, i need to make sure everyones benchmark > results are pretty similiar.. Any chance you'd get some time > to post some benchmarks? (against courier to be specific ;) That depends on what IMAP clients are used and all kinds of other things. I don't want to waste time doing any benchmarks until after the changes I'm doing now. Anyway for IMAP webmails Dovecot is most likely many times faster than Courier. For "normal" IMAP clients it might not be that much faster, although several people have told that using Dovecot feels much faster than Courier/Cyrus. --=-dpB6gjmElQ/gPDj1lWqP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/32OtyUhSUUBViskRAo1DAJ4jvPKxQ3ZNXJwRfE9Ahp2zib3fMwCfRgBp 3VSKdz7a9kKqvF/ZYnPwvX4= =prU/ -----END PGP SIGNATURE----- --=-dpB6gjmElQ/gPDj1lWqP-- From blair@orcaware.com Wed Dec 17 02:08:54 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7CB00C00301C; Wed, 17 Dec 2003 02:08:54 +0200 (EET) Received: from orcaware.com (bdsl.66.12.233.174.gte.net [66.12.233.174]) by talvi.dovecot.org (Postfix) with ESMTP id CCEBBC000DC4 for ; Wed, 17 Dec 2003 02:08:51 +0200 (EET) Received: from orcaware.com (localhost.localdomain [127.0.0.1]) by orcaware.com (8.12.8/8.12.8) with ESMTP id hBH08IQc012930; Tue, 16 Dec 2003 16:08:19 -0800 Message-ID: <3FDF9E72.F40E0758@orcaware.com> Date: Tue, 16 Dec 2003 16:08:18 -0800 From: Blair Zajac X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en,x-ns1rfacHe4WNh5,x-ns2U100btwUq5f MIME-Version: 1.0 To: Dovecot mailing list Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: [Dovecot] Assert in Fedora dovecot-0.99.10.4-1 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Dec 2003 00:08:54 -0000 X-UID: 4089 Status: O Hello, I'm seeing this in my dovecot log file: imap(blair): Dec 16 13:53:06 Panic: file istream.c: line 93 (i_stream_set_read_limit): assertion failed: (stream->v_size == 0 || v_offset <= stream->v_size) I get this consistently when I search for the string "unknown C primitive" across 10 mailboxes using the Windows Netscape 4.80 client. If there's any more information I can provide, please let me know. Best, Blair -- Blair Zajac Plots of your system's performance - http://www.orcaware.com/orca/ From jdizzl@xs4all.nl Wed Dec 17 13:28:41 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B8F7DC003013; Wed, 17 Dec 2003 13:28:41 +0200 (EET) Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by talvi.dovecot.org (Postfix) with ESMTP id B9EDFC000DC4 for ; Wed, 17 Dec 2003 13:28:39 +0200 (EET) Received: from smtp.dizzl.com (gateway.dizzl.com [213.84.228.80]) by smtpzilla3.xs4all.nl (8.12.9/8.12.9) with ESMTP id hBHBRorw007645; Wed, 17 Dec 2003 12:27:50 +0100 (CET) Received: by smtp.dizzl.com (Postfix, from userid 33) id A8627B5DEF; Wed, 17 Dec 2003 12:27:46 +0100 (CET) Received: from wostok.gopa-brussels.com ([193.74.148.226]) (SquirrelMail authenticated user dizzl) by webmail.dizzl.com with HTTP; Wed, 17 Dec 2003 12:27:46 +0100 (CET) Message-ID: <43833.193.74.148.226.1071660466.squirrel@webmail.dizzl.com> In-Reply-To: <1071603850.6844.8.camel@hurina> References: <200312160004.30066.jdizzl@xs4all.nl> <1071603850.6844.8.camel@hurina> Date: Wed, 17 Dec 2003 12:27:46 +0100 (CET) Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders From: "Jeroen van Disseldorp" To: "Timo Sirainen" User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-Mailman-Approved-At: Wed, 17 Dec 2003 18:43:24 +0200 Cc: 224092@bugs.debian.org, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Dec 2003 11:28:41 -0000 X-UID: 4090 Status: O > On Tue, 2003-12-16 at 07:26, Jaldhar H. Vyas wrote: > This shouldn't happen normally. By default INBOX's indexes are stored > inside .INBOX/ directory. If you have .imap/ directory in root Maildir, > you had changed some settings in a way that's not really supported. Such > as setting INBOX=~/Maildir in default_mail_env? Ah, maybe that's it then: I use a logical link "INBOX -> ." as KMail and SquirrelMail differ on what the actual INBOX is. One thinks that it's the Maildir itself, the other expects an INBOX-folder. I can't seem to make them agree... Would it be hard to ignore .imap.index-files in the root of the Maildir? After all, they are files, not folders. Or does this go against the definition of the Maildir-format? Regards, Jeroen From tjk@annapolislinux.org Thu Dec 18 17:35:30 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8D744C00300C; Thu, 18 Dec 2003 17:35:30 +0200 (EET) Received: from annapolislinux.org (alinux.washcoll.edu [192.146.226.81]) by talvi.dovecot.org (Postfix) with ESMTP id 91E32C000D72 for ; Thu, 18 Dec 2003 17:35:25 +0200 (EET) Received: by annapolislinux.org (Postfix, from userid 1000) id 72EF1C000AA; Thu, 18 Dec 2003 10:34:49 -0500 (EST) Date: Thu, 18 Dec 2003 10:34:49 -0500 From: Theodore Knab To: dovecot@dovecot.org Message-ID: <20031218153449.GB15439@annapolislinux.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i Subject: [Dovecot] Maildir quotas support in Dovecot and 2 other newbie questions X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Dec 2003 15:35:30 -0000 X-UID: 4091 Status: O I am not familiar with all the features that Dovecot has, but I am familiar with Courier IMAP using Maildir. Does Dovedot have a software based Maildir supporting quota program like Courier IMAP ? Can maildrop be used with Dovecot for quotas ? Courier IMAP has maildrop integrated. - If maildrop support is turned on in Courier IMAP, then a user will get a quota warning mail message each time they login to their account and are over the specified amount. Is there a recommended MTA to be used with the DoveCot IMAP server ? -- ------------------------------------------ Ted Knab Chester, MD 21619 ------------------------------------------ 35570707f6274702478656021626f6c6964796f6e602f66602478656 02e6164796f6e60237471647560216e6460276c6f62616c60257e696 4797e2a0 From charlieb-dovecot@e-smith.com Thu Dec 18 21:56:15 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A9CEDC000D72; Thu, 18 Dec 2003 21:56:15 +0200 (EET) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by talvi.dovecot.org (Postfix) with SMTP id 15D0AC0007A4 for ; Thu, 18 Dec 2003 21:56:12 +0200 (EET) Received: (qmail 2385 invoked by uid 404); 18 Dec 2003 19:55:30 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 18 Dec 2003 14:55:30 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 18 Dec 2003 19:55:30 -0000 Received: (qmail 21907 invoked by uid 5008); 18 Dec 2003 19:55:30 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 18 Dec 2003 19:55:30 -0000 Date: Thu, 18 Dec 2003 14:55:30 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Jeroen van Disseldorp Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders In-Reply-To: <43833.193.74.148.226.1071660466.squirrel@webmail.dizzl.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Dec 2003 19:56:15 -0000 X-UID: 4092 Status: O Content-Length: 1617 On Wed, 17 Dec 2003, Jeroen van Disseldorp wrote: > > On Tue, 2003-12-16 at 07:26, Jaldhar H. Vyas wrote: > > This shouldn't happen normally. By default INBOX's indexes are stored > > inside .INBOX/ directory. If you have .imap/ directory in root Maildir, > > you had changed some settings in a way that's not really supported. Such > > as setting INBOX=~/Maildir in default_mail_env? > > Ah, maybe that's it then: I use a logical link "INBOX -> ." as KMail > and SquirrelMail differ on what the actual INBOX is. One thinks that > it's the Maildir itself, the other expects an INBOX-folder. I can't > seem to make them agree... > > Would it be hard to ignore .imap.index-files in the root of the > Maildir? After all, they are files, not folders. Or does this go > against the definition of the Maildir-format? IMO, the .INBOX directory and symlink "INBOX -> ." are artefacts of a misunderstanding of the mapping of IMAP folder objects to maildirs. Perhaps that's a carry over from Courier. I'd certainly be interested to hear the history and/or justification from Timo. Where you have "INBOX=~/Maildir", then the inbox *should* be ~/Maildir, not ~/Maildir/.INBOX as it is at present. RFC2060 says "the case-insensitive mailbox name INBOX is a special name reserved to mean "the primary mailbox for this user on this server". But I see no reason why there should be a maildir actually called "INBOX" (or ".INBOX", following the hidden "." prefix convention). That just seems extra code, and more chance of confusion. Ah, I've just noticed this in TODO: ... - remove Maildir/.INBOX/ ... -- Charlie From daemon@kzone.ch Thu Dec 18 22:47:50 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EE30AC000D72; Thu, 18 Dec 2003 22:47:50 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id C3FB7C0007A4 for ; Thu, 18 Dec 2003 22:47:47 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id VAA05058 for dovecot@dovecot.org; Thu, 18 Dec 2003 21:47:10 +0100 From: Sven Kirmess To: dovecot@dovecot.org Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders Date: Thu, 18 Dec 2003 21:50:23 +0100 Organization: Kirmess Lines: 12 Message-ID: References: <200312160004.30066.jdizzl@xs4all.nl> <1071603850.6844.8.camel@hurina> <43833.193.74.148.226.1071660466.squirrel@webmail.dizzl.com> NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1071780430 5053 192.168.100.100 (18 Dec 2003 20:47:10 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 18 Dec 2003 20:47:10 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <43833.193.74.148.226.1071660466.squirrel@webmail.dizzl.com> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Dec 2003 20:47:51 -0000 X-UID: 4093 Status: O Jeroen van Disseldorp wrote: > Would it be hard to ignore .imap.index-files in the root of the > Maildir? After all, they are files, not folders. Or does this go > against the definition of the Maildir-format? You could use something like: default_mail_env = maildir:/var/spool/imap/%u:INDEX=/var/spool/imapidx/%u which would put the index files in their own directory. Sven From tss@iki.fi Sat Dec 20 05:36:23 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A85E7C000D72; Sat, 20 Dec 2003 05:36:23 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 49C9CC0007A4 for ; Sat, 20 Dec 2003 05:36:21 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5C699300DFC12 for ; Sat, 20 Dec 2003 05:35:41 +0200 (EET) Subject: Re: [Dovecot] Assert in Fedora dovecot-0.99.10.4-1 From: Timo Sirainen To: Dovecot mailing list In-Reply-To: <3FDF9E72.F40E0758@orcaware.com> References: <3FDF9E72.F40E0758@orcaware.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-y3M1dfAVOL6tnkLnrcCg" Message-Id: <1071891341.10028.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 20 Dec 2003 05:35:41 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 03:36:23 -0000 X-UID: 4094 Status: O --=-y3M1dfAVOL6tnkLnrcCg Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2003-12-17 at 02:08, Blair Zajac wrote: > imap(blair): Dec 16 13:53:06 Panic: file istream.c: line 93 > (i_stream_set_read_limit): assertion failed: > (stream->v_size =3D=3D 0 || v_offset <=3D stream->v_size) >=20 > If there's any more information I can provide, please let me > know. Probably because of something in your mailbox. Is it mbox or maildir? Also backtrace would be useful. See http://www.dovecot.org/bugreport.html --=-y3M1dfAVOL6tnkLnrcCg Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD4DBQA/48ONyUhSUUBViskRAm5+AJiZswsMpXR/lDXTIi/0cJqMmjXKAJ0R/vFt IIvk8lSVPcvEEg3PB8YaYw== =r9vj -----END PGP SIGNATURE----- --=-y3M1dfAVOL6tnkLnrcCg-- From tss@iki.fi Sat Dec 20 05:40:51 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A52CFC000D72; Sat, 20 Dec 2003 05:40:51 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 463BFC0007A4 for ; Sat, 20 Dec 2003 05:40:49 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 75904300DFC12; Sat, 20 Dec 2003 05:40:09 +0200 (EET) Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders From: Timo Sirainen To: Jeroen van Disseldorp In-Reply-To: <43833.193.74.148.226.1071660466.squirrel@webmail.dizzl.com> References: <200312160004.30066.jdizzl@xs4all.nl> <1071603850.6844.8.camel@hurina> <43833.193.74.148.226.1071660466.squirrel@webmail.dizzl.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-gFelNEgL+wJ5YcSvvP9T" Message-Id: <1071891609.10033.23.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 20 Dec 2003 05:40:09 +0200 Cc: 224092@bugs.debian.org, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 03:40:51 -0000 X-UID: 4095 Status: O Content-Length: 2026 --=-gFelNEgL+wJ5YcSvvP9T Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2003-12-17 at 13:27, Jeroen van Disseldorp wrote: > > On Tue, 2003-12-16 at 07:26, Jaldhar H. Vyas wrote: > > This shouldn't happen normally. By default INBOX's indexes are stored > > inside .INBOX/ directory. If you have .imap/ directory in root Maildir, > > you had changed some settings in a way that's not really supported. Suc= h > > as setting INBOX=3D~/Maildir in default_mail_env? >=20 > Ah, maybe that's it then: I use a logical link "INBOX -> ." as KMail > and SquirrelMail differ on what the actual INBOX is. One thinks that > it's the Maildir itself, the other expects an INBOX-folder. I can't > seem to make them agree... Well, you shouldn't need to do that. It's most likely because either one of them thinks everything is under "INBOX.". Squirrelmail at least can be configured not to do that (/etc/squirrelmail/conf.pl). > Would it be hard to ignore .imap.index-files in the root of the > Maildir? After all, they are files, not folders. Or does this go > against the definition of the Maildir-format? Well.. I could check it but.. It's kind of annoying to add special cases for them. Currently I just list everything that begins with '.' with two hardcoded exceptions: .subscriptions and .customflags. I do plan to change the file and directory names to "dovecot-subscriptions", "dovecot-customflags" and "dovecot-indexes" (or similiar). Then there would be no namespace conflicts. If I did add special check for ".imap", it would mean that you couldn't create a root folder called "imap" which I think some people might actually do. --=-gFelNEgL+wJ5YcSvvP9T Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/48SZyUhSUUBViskRAtyrAKCR+Q6MNaYaKDBd8JWv+M5eYAGCZgCeIejp /B3be77ABrAU7w9BumLMdHM= =cn0H -----END PGP SIGNATURE----- --=-gFelNEgL+wJ5YcSvvP9T-- From tss@iki.fi Sat Dec 20 05:43:34 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 984F2C000D72; Sat, 20 Dec 2003 05:43:34 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 5CD1AC0007A4 for ; Sat, 20 Dec 2003 05:43:32 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 9496E300DFC12 for ; Sat, 20 Dec 2003 05:42:52 +0200 (EET) Subject: Re: [Dovecot] Maildir quotas support in Dovecot and 2 other newbie questions From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20031218153449.GB15439@annapolislinux.org> References: <20031218153449.GB15439@annapolislinux.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-JCrLk3ekWum1Tdhx2UuU" Message-Id: <1071891772.10039.27.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 20 Dec 2003 05:42:52 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 03:43:34 -0000 X-UID: 4096 Status: O Content-Length: 1121 --=-JCrLk3ekWum1Tdhx2UuU Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2003-12-18 at 17:34, Theodore Knab wrote: > I am not familiar with all the features that Dovecot has, but I am > familiar with Courier IMAP using Maildir.=20 >=20 > Does Dovedot have a software based Maildir supporting quota program like > Courier IMAP ? >=20 > Can maildrop be used with Dovecot for quotas ? Currently there's no quota support. There most likely will be in a couple of months. > Is there a recommended MTA to be used with the DoveCot IMAP server ? I recommend Postfix. I use it and if there ever will be any special MTA-specific features (made by me) they will support at least Postfix. Currently it doesn't really matter though. --=-JCrLk3ekWum1Tdhx2UuU Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/48U8yUhSUUBViskRAjPFAKCbacUnpdjhN5hFVb97eNEFM37NAgCfa4JK smS0CDr9BvJiufdimqDOsdI= =T7UR -----END PGP SIGNATURE----- --=-JCrLk3ekWum1Tdhx2UuU-- From tss@iki.fi Sat Dec 20 05:46:56 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8AF89C000D72; Sat, 20 Dec 2003 05:46:56 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 70D21C0007A4 for ; Sat, 20 Dec 2003 05:46:54 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 8DE97300DFC12 for ; Sat, 20 Dec 2003 05:46:14 +0200 (EET) Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-TwPAUmdqUk6ohIjHvLjc" Message-Id: <1071891974.10033.31.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 20 Dec 2003 05:46:14 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 03:46:56 -0000 X-UID: 4097 Status: O --=-TwPAUmdqUk6ohIjHvLjc Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2003-12-18 at 21:55, Charlie Brady wrote: > Ah, I've just noticed this in TODO: >=20 > ... > - remove Maildir/.INBOX/ > ... .INBOX/ contains only Dovecot's indexes. The original reason why I created it didn't actually work (atomic "RENAME INBOX xyz" command) but I left it.. Current reason is mostly so that I can hide the index files in there from polluting the ".imap" namespace. --=-TwPAUmdqUk6ohIjHvLjc Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQA/48YGyUhSUUBViskRAtXgAJ9WqBRq2vKOM6ipEugUkMiO30plAQCfQyrN F5M3Cmx96iP9LRxMj/Auz/k= =jeo9 -----END PGP SIGNATURE----- --=-TwPAUmdqUk6ohIjHvLjc-- From jdizzl@xs4all.nl Sat Dec 20 14:21:31 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 55ED6C000D72; Sat, 20 Dec 2003 14:21:31 +0200 (EET) Received: from smtpzilla1.xs4all.nl (smtpzilla1.xs4all.nl [194.109.127.137]) by talvi.dovecot.org (Postfix) with ESMTP id 34B35C0007A4 for ; Sat, 20 Dec 2003 14:21:29 +0200 (EET) Received: from smtp.dizzl.com (gateway.dizzl.com [213.84.228.80]) by smtpzilla1.xs4all.nl (8.12.9/8.12.9) with ESMTP id hBKCKgMw052569; Sat, 20 Dec 2003 13:20:42 +0100 (CET) Received: from newton.dizzl.com (newton.dizzl.com [10.1.1.72]) by smtp.dizzl.com (Postfix) with ESMTP id 39F5CB5DEF; Sat, 20 Dec 2003 13:20:41 +0100 (CET) From: Jeroen van Disseldorp To: Timo Sirainen Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders Date: Sat, 20 Dec 2003 13:20:48 +0100 User-Agent: KMail/1.5.4 References: <200312160004.30066.jdizzl@xs4all.nl> <43833.193.74.148.226.1071660466.squirrel@webmail.dizzl.com> <1071891609.10033.23.camel@hurina> In-Reply-To: <1071891609.10033.23.camel@hurina> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200312201320.48590.jdizzl@xs4all.nl> Cc: 224092@bugs.debian.org, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 12:21:31 -0000 X-UID: 4098 Status: O On Saturday 20 December 2003 04:40, Timo Sirainen wrote: > If I did add special check for ".imap", it would mean that you > couldn't create a root folder called "imap" which I think some people > might actually do. I understand. However, making a simple check for being a file or directory wouldn't harm anyone. As .subscriptions, .customflags and .imap* are all files, interpreting them as folders would generate errors anyhow. If .imap* is somehow renamed to .whatever or dovecot-whatever, the check would still hold as files would never be interpreted as mail folders. Regards, Jeroen mailto:jdizzl@xs4all.nl -- There is nothing wrong with Windows 2000... ...that Linux can't fix. From charlieb-dovecot@e-smith.com Sat Dec 20 18:09:07 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3B2E3C000D72; Sat, 20 Dec 2003 18:09:07 +0200 (EET) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by talvi.dovecot.org (Postfix) with SMTP id 90090C0007A4 for ; Sat, 20 Dec 2003 18:09:04 +0200 (EET) Received: (qmail 18965 invoked by uid 404); 20 Dec 2003 16:08:22 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 20 Dec 2003 11:08:21 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Dec 2003 16:08:21 -0000 Received: (qmail 14760 invoked by uid 5008); 20 Dec 2003 16:08:21 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Dec 2003 16:08:21 -0000 Date: Sat, 20 Dec 2003 11:08:21 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Timo Sirainen Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders In-Reply-To: <1071891974.10033.31.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 16:09:07 -0000 X-UID: 4099 Status: O On Sat, 20 Dec 2003, Timo Sirainen wrote: > On Thu, 2003-12-18 at 21:55, Charlie Brady wrote: > > Ah, I've just noticed this in TODO: > > > > ... > > - remove Maildir/.INBOX/ > > ... > > .INBOX/ contains only Dovecot's indexes. The original reason why I > created it didn't actually work (atomic "RENAME INBOX xyz" command) but I see why you might want that. I'd guess this wouldn't work if .INBOX were a symlink to '.'. > I left it.. Current reason is mostly so that I can hide the index files > in there from polluting the ".imap" namespace. And that wouldn't work with the symlink either :-) -- Charlie From charlieb-dovecot@e-smith.com Sat Dec 20 18:12:30 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D650EC000D9E; Sat, 20 Dec 2003 18:12:30 +0200 (EET) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by talvi.dovecot.org (Postfix) with SMTP id 40A69C000D72 for ; Sat, 20 Dec 2003 18:12:28 +0200 (EET) Received: (qmail 19648 invoked by uid 404); 20 Dec 2003 16:11:46 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 20 Dec 2003 11:11:46 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 20 Dec 2003 16:11:46 -0000 Received: (qmail 15492 invoked by uid 5008); 20 Dec 2003 16:11:45 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Dec 2003 16:11:45 -0000 Date: Sat, 20 Dec 2003 11:11:45 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Jeroen van Disseldorp Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders In-Reply-To: <200312201320.48590.jdizzl@xs4all.nl> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: 224092@bugs.debian.org, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 16:12:31 -0000 X-UID: 4100 Status: O On Sat, 20 Dec 2003, Jeroen van Disseldorp wrote: > On Saturday 20 December 2003 04:40, Timo Sirainen wrote: > > If I did add special check for ".imap", it would mean that you > > couldn't create a root folder called "imap" which I think some people > > might actually do. > > I understand. However, making a simple check for being a file or > directory wouldn't harm anyone. It would cost a stat per file/directory, which Timo has tried to avoid (for performance reasons, AIUI). Are folders enumerated often enough and the cost high enough that it is an important optimisation? -- Charlie From gerhardm@muntingh.tmfweb.nl Sat Dec 20 14:09:34 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B837EC000D72; Sat, 20 Dec 2003 14:09:34 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 2C7E9C0007A4 for ; Sat, 20 Dec 2003 14:09:32 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id A83CB23866; Sat, 20 Dec 2003 14:08:51 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 982DE238AD; Sat, 20 Dec 2003 14:08:51 +0200 (EET) Received: from green.qinip.net (green.qinip.net [62.100.30.36]) by danu.procontrol.fi (Postfix) with ESMTP id 514CC23866 for ; Sat, 20 Dec 2003 14:08:19 +0200 (EET) Received: from prof.vaag (hmm-dca-ap02-d09-062.dial.freesurf.nl [195.18.86.62]) by green.qinip.net (Postfix) with ESMTP id 6BB94D7F79 for ; Sat, 20 Dec 2003 13:08:17 +0100 (MET) Received: from gerhardm by prof.vaag with local (Exim 3.35 #1 (Debian)) id 1AXg2o-0003zU-00 for ; Sat, 20 Dec 2003 13:17:18 +0100 Date: Sat, 20 Dec 2003 13:17:18 +0100 To: dovecot@procontrol.fi Message-ID: <20031220121718.GA15297@muntingh.tmfweb.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i From: Gerhard Muntingh X-Mailman-Approved-At: Sat, 20 Dec 2003 18:45:53 +0200 Cc: Subject: [Dovecot] Bugfix for use with "Opera mail" and "AnalogX" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 12:09:34 -0000 X-UID: 4101 Status: O Dear developers, [ Please CC me as I'm not subscribed to this list. ] In src/pop3-login/client.c: void client_send_line(struct pop3_client *client, const char *line) { o_stream_send_str(client->output, line); o_stream_send(client->output, "\r\n", 2); } Called as 'client_send_line(client "+OK dovecot");'. This function sends two packets to the client. It appears Opera mail and AnalogX proxy recognise the 1st packet as a complete welcome and send their "USER " command after receiving it. They then receive the newline in the next packet and get confused. This is very probably a bug in those two programs, but it would still be great if it could be fixed in the dovecot source. My personal fix involved a buffer on the stack (char tmp[LENGTH]) and some sanity checks wherein the newline is strcat'ed to the string. That's not very nice, but it works for me. Can someone please fix this? There may even be more pop clients having problems with this. kind regards, Gerhard Muntingh. From tss@iki.fi Sat Dec 20 18:48:40 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CF93DC000D72; Sat, 20 Dec 2003 18:48:40 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id AAA54C0007A4 for ; Sat, 20 Dec 2003 18:48:38 +0200 (EET) Received: by danu.procontrol.fi (Postfix, from userid 106) id BD389238AD; Sat, 20 Dec 2003 18:47:57 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1E05D23850; Sat, 20 Dec 2003 18:47:24 +0200 (EET) In-Reply-To: <200312201320.48590.jdizzl@xs4all.nl> References: <200312160004.30066.jdizzl@xs4all.nl> <43833.193.74.148.226.1071660466.squirrel@webmail.dizzl.com> <1071891609.10033.23.camel@hurina> <200312201320.48590.jdizzl@xs4all.nl> Mime-Version: 1.0 (Apple Message framework v609) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-1--857640207" Message-Id: <2D67A988-330C-11D8-B40E-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders Date: Sat, 20 Dec 2003 18:47:20 +0200 To: Jeroen van Disseldorp X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.609) X-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: 224092@bugs.debian.org, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 16:48:41 -0000 X-UID: 4102 Status: O Content-Length: 1557 --Apple-Mail-1--857640207 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On Dec 20, 2003, at 2:20 PM, Jeroen van Disseldorp wrote: > On Saturday 20 December 2003 04:40, Timo Sirainen wrote: >> If I did add special check for ".imap", it would mean that you >> couldn't create a root folder called "imap" which I think some people >> might actually do. > > I understand. However, making a simple check for being a file or > directory wouldn't harm anyone. As .subscriptions, .customflags > and .imap* are all files, interpreting them as folders would generate > errors anyhow. If .imap* is somehow renamed to .whatever or > dovecot-whatever, the check would still hold as files would never be > interpreted as mail folders. It would hurt performance with very little gain. Now I can just do it all with opendir() and readdir() which is usually 2-3 syscalls. If I wanted to know if each entry is file or directory, I'd have to call stat() for each entry. This could be done for those few special cases I guess, but I wouldn't add it for everything.. --Apple-Mail-1--857640207 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/5H0YyUhSUUBViskRAhxpAJ497B/dKqQyVv2pmCIn4vB4V0rC1ACePWZX /zi3FB08mhA2etxxzYNIOXw= =ZaTM -----END PGP SIGNATURE----- --Apple-Mail-1--857640207-- From tss@iki.fi Sat Dec 20 18:53:56 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C2DC7C000D72; Sat, 20 Dec 2003 18:53:56 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B2588C0007A4 for ; Sat, 20 Dec 2003 18:53:54 +0200 (EET) Received: by danu.procontrol.fi (Postfix, from userid 106) id D025B238AD; Sat, 20 Dec 2003 18:53:13 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 73C4623850; Sat, 20 Dec 2003 18:52:41 +0200 (EET) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v609) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-2--857320226" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders Date: Sat, 20 Dec 2003 18:52:40 +0200 To: Charlie Brady X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.609) X-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Jeroen van Disseldorp , 224092@bugs.debian.org, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 16:53:56 -0000 X-UID: 4103 Status: O Content-Length: 1196 --Apple-Mail-2--857320226 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On Dec 20, 2003, at 6:11 PM, Charlie Brady wrote: >> I understand. However, making a simple check for being a file or >> directory wouldn't harm anyone. > > It would cost a stat per file/directory, which Timo has tried to avoid > (for performance reasons, AIUI). Are folders enumerated often enough > and > the cost high enough that it is an important optimisation? Maybe not that important, but it's rather useless to stat() them. I have plans actually for creating a single mailbox index file per user which could be used to get all information for LIST and STATUS commands. That will be a nice optimization :) --Apple-Mail-2--857320226 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/5H5YyUhSUUBViskRAn+2AJ9/voCML/cZ0u2Y5b9gj28BeD1O5gCfaUX8 lm2f1kW0EqO68Msjug+uEeI= =sPAA -----END PGP SIGNATURE----- --Apple-Mail-2--857320226-- From blair@orcaware.com Sat Dec 20 21:20:08 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E89BCC000D72; Sat, 20 Dec 2003 21:20:08 +0200 (EET) Received: from orcaware.com (bdsl.66.12.233.174.gte.net [66.12.233.174]) by talvi.dovecot.org (Postfix) with ESMTP id 76D19C0007A4 for ; Sat, 20 Dec 2003 21:20:05 +0200 (EET) Received: from orcaware.com (localhost.localdomain [127.0.0.1]) by orcaware.com (8.12.8/8.12.8) with ESMTP id hBKJJLQc009224; Sat, 20 Dec 2003 11:19:22 -0800 Message-ID: <3FE4A0B9.371C08AE@orcaware.com> Date: Sat, 20 Dec 2003 11:19:21 -0800 From: Blair Zajac X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en,x-ns1rfacHe4WNh5,x-ns2U100btwUq5f MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] Assert in Fedora dovecot-0.99.10.4-1 References: <3FDF9E72.F40E0758@orcaware.com> <1071891341.10028.17.camel@hurina> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Cc: Dovecot mailing list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 19:20:09 -0000 X-UID: 4104 Status: O Content-Length: 3675 Timo Sirainen wrote: > > On Wed, 2003-12-17 at 02:08, Blair Zajac wrote: > > imap(blair): Dec 16 13:53:06 Panic: file istream.c: line 93 > > (i_stream_set_read_limit): assertion failed: > > (stream->v_size == 0 || v_offset <= stream->v_size) > > > > If there's any more information I can provide, please let me > > know. > > Probably because of something in your mailbox. Is it mbox or maildir? > Also backtrace would be useful. See > http://www.dovecot.org/bugreport.html Hi Timo, My mailbox is maildir. Here's a stack trace: orcaware% gdb -p 9216 GNU gdb Red Hat Linux (5.3post-0.20021129.18rh) Copyright 2003 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu". Attaching to process 9216 Reading symbols from /usr/libexec/dovecot/imap...done. Reading symbols from /lib/libdl.so.2...done. Loaded symbols for /lib/libdl.so.2 Reading symbols from /lib/tls/libc.so.6...done. Loaded symbols for /lib/tls/libc.so.6 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 0xffffe002 in ?? () (gdb) t [Current thread is 0 (process 9216)] (gdb) c Continuing. Program received signal SIGABRT, Aborted. 0xffffe002 in ?? () (gdb) bt #0 0xffffe002 in ?? () #1 0x42028c55 in abort () from /lib/tls/libc.so.6 #2 0x0809326c in default_panic_handler ( format=0x80ab020 "file %s: line %d (%s): assertion failed: (%s)", args=0xbffff614 "\001°\n\b]") at failures.c:141 #3 0x08093419 in i_panic ( format=0x80ab020 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:198 #4 0x08095cb3 in i_stream_set_read_limit (stream=0x80be05c, v_offset=931) at istream.c:93 #5 0x0808c81a in message_search_body (ctx=0xbffff710, input=0x80be05c, part=0x80bfad0) at message-body-search.c:304 #6 0x0808cc46 in message_body_search_ctx (ctx=0xbffff770, input=0x80be05c, part=0x80bfad0) at message-body-search.c:409 #7 0x0808ccd6 in message_body_search (key=0x80b6fb8 "9216", charset=0x0, unknown_charset=0xbffff7cc, input=0x80be05c, part=0x80bfad0, search_header=0) at message-body-search.c:434 #8 0x08073837 in search_body (arg=0x80beae8, context=0xbffff850) at index-search.c:634 #9 0x08084ee9 in search_arg_foreach (arg=0x80beae8, callback=0x807379d , context=0xbffff850) at mail-search.c:70 #10 0x08084f19 in mail_search_args_foreach (args=0x80beae8, callback=0x807379d , context=0xbffff850) at mail-search.c:82 #11 0x08073a66 in search_arg_match_text (args=0x80beac8, ctx=0x80bdee0) at index-search.c:692 #12 0x0807452e in index_storage_search_next (ctx=0x80bdee0) at index-search.c:1024 #13 0x080538ba in imap_search (client=0x80b6cd8, charset=0x0, sargs=0x80beac8) at cmd-search.c:28 #14 0x08053bd9 in cmd_search (client=0x80b6cd8) at cmd-search.c:93 #15 0x08054fea in cmd_uid (client=0x80b6cd8) at cmd-uid.c:19 #16 0x0805599e in client_handle_input (client=0x80b6cd8) at client.c:314 #17 0x08055a63 in _client_input (context=0x80b6cd8) at client.c:350 #18 0x08098863 in io_loop_handler_run (ioloop=0x80b6348) at ioloop-poll.c:214 #19 0x08097e80 in io_loop_run (ioloop=0x80b6348) at ioloop.c:258 #20 0x0805d309 in main (argc=1, argv=0xbffffa84, envp=0xbffffa8c) at main.c:179 #21 0x42015704 in __libc_start_main () from /lib/tls/libc.so.6 Best, Blair -- Blair Zajac Plots of your system's performance - http://www.orcaware.com/orca/ From miquels@cistron.net Sat Dec 20 23:58:48 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4B4FAC000D72; Sat, 20 Dec 2003 23:58:48 +0200 (EET) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by talvi.dovecot.org (Postfix) with ESMTP id 1F175C0007A4 for ; Sat, 20 Dec 2003 23:58:46 +0200 (EET) Received: from a80-126-193-215.adsl.xs4all.nl ([80.126.193.215] helo=drinkel.cistron.nl) by smtp.cistron-office.nl with asmtp (Exim 3.35 #1 (Debian)) id 1AXp6j-00032E-00; Sat, 20 Dec 2003 22:57:57 +0100 Date: Sat, 20 Dec 2003 22:57:56 +0100 From: Miquel van Smoorenburg To: Timo Sirainen Subject: Re: [Dovecot] Re: Bug#224092: Dovecot IMAP: detection of folders Message-ID: <20031220215756.GA22656@drinkel.cistron.nl> References: <200312160004.30066.jdizzl@xs4all.nl> <43833.193.74.148.226.1071660466.squirrel@webmail.dizzl.com> <1071891609.10033.23.camel@hurina> <200312201320.48590.jdizzl@xs4all.nl> <2D67A988-330C-11D8-B40E-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <2D67A988-330C-11D8-B40E-000393CC2E90@iki.fi> (from tss@iki.fi on Sat, Dec 20, 2003 at 17:47:20 +0100) X-Mailer: Balsa 2.0.15 Lines: 27 Cc: Jeroen van Disseldorp , 224092@bugs.debian.org, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 21:58:48 -0000 X-UID: 4105 Status: O Content-Length: 1345 On Sat, 20 Dec 2003 17:47:20, Timo Sirainen wrote: > On Dec 20, 2003, at 2:20 PM, Jeroen van Disseldorp wrote: > > > On Saturday 20 December 2003 04:40, Timo Sirainen wrote: > >> If I did add special check for ".imap", it would mean that you > >> couldn't create a root folder called "imap" which I think some people > >> might actually do. > > > > I understand. However, making a simple check for being a file or > > directory wouldn't harm anyone. As .subscriptions, .customflags > > and .imap* are all files, interpreting them as folders would generate > > errors anyhow. If .imap* is somehow renamed to .whatever or > > dovecot-whatever, the check would still hold as files would never be > > interpreted as mail folders. > > It would hurt performance with very little gain. Now I can just do it > all with opendir() and readdir() which is usually 2-3 syscalls. If I > wanted to know if each entry is file or directory, I'd have to call > stat() for each entry. This could be done for those few special cases I > guess, but I wouldn't add it for everything.. Modern filesystems return more info from readdir() than just the filename. Check out the d_type field of the direct struct. If it's DT_REG it's a file; it it's DT_DIR it's a directory; if it's DT_UNKNOWN the file system doesn't support it and you have to do a stat(). Mike. From bah@webmedic.net Sun Dec 21 02:38:43 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4B71AC000D72; Sun, 21 Dec 2003 02:38:43 +0200 (EET) Received: from courage.vosn.net (courage.vosn.net [209.151.74.1]) by talvi.dovecot.org (Postfix) with ESMTP id 03E1AC0007A4 for ; Sun, 21 Dec 2003 02:38:41 +0200 (EET) Received: from pppoe64-91-122-60.vcr.centurytel.net ([64.91.122.60] helo=mandrake.webmedic.net) by courage.vosn.net with esmtp (Exim 4.24) id 1AXrbU-0004NW-4Y for dovecot@dovecot.org; Sat, 20 Dec 2003 17:37:52 -0700 From: Brook Humphrey Organization: Mobile PC Medic To: dovecot@dovecot.org Subject: Re: [Dovecot] Maildir quotas support in Dovecot and 2 other newbie questions Date: Sat, 20 Dec 2003 16:37:44 -0800 User-Agent: KMail/1.5.94 References: <20031218153449.GB15439@annapolislinux.org> In-Reply-To: <20031218153449.GB15439@annapolislinux.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Message-Id: <200312201637.52456.bah@webmedic.net> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - courage.vosn.net X-AntiAbuse: Original Domain - dovecot.org X-AntiAbuse: Originator/Caller UID/GID - [0 0] / [47 12] X-AntiAbuse: Sender Address Domain - webmedic.net X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Dec 2003 00:38:43 -0000 X-UID: 4106 Status: O Content-Length: 1582 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thursday 18 December 2003 07:34 am, Theodore Knab wrote: > I am not familiar with all the features that Dovecot has, but I am > familiar with Courier IMAP using Maildir. > > Does Dovedot have a software based Maildir supporting quota program like > Courier IMAP ? on this note I use postfix also, and as such yes it supports maildrop. I ha= ve=20 it working very nicely with a pretty extensive .mailfilter that does the=20 virii and spam filtering for me on that level. This way it can be fine tune= d=20 for each user on the system. > > Can maildrop be used with Dovecot for quotas ? > > Courier IMAP has maildrop integrated. > > - If maildrop support is turned on in Courier IMAP, then > a user will get a quota warning mail message each time they login to > their account and are over the specified amount. > > Is there a recommended MTA to be used with the DoveCot IMAP server ? =2D --=20 -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'= ~- Brook Humphrey =20 Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 =20 http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com =20 Holiness unto the Lord -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'= ~- =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQE/5OtenT1TkA6FgPgRAsn7AJ993cUmfOpqJi1jbfQgm1czGsUIAwCeIA5R p+Gq4/avnmQRi8DWCIeDcOc=3D =3DM+hJ =2D----END PGP SIGNATURE----- From gmid-dovecot@m.gmane.org Sun Dec 21 17:56:09 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3AB1DC000D9E; Sun, 21 Dec 2003 17:56:09 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 5B717C0007A4 for ; Sun, 21 Dec 2003 17:56:07 +0200 (EET) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AY5vK-0001td-00 for ; Sun, 21 Dec 2003 16:55:18 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AY5vJ-0001tV-00 for ; Sun, 21 Dec 2003 16:55:17 +0100 Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AY5vJ-0005MR-00 for ; Sun, 21 Dec 2003 16:55:17 +0100 From: Matthias Andree Date: Sun, 21 Dec 2003 12:52:11 +0000 Lines: 35 Message-ID: References: <20031220121718.GA15297@muntingh.tmfweb.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.2 (gnu/linux) Cancel-Lock: sha1:mBc0Fzmj635p8CDzGplvNYwpXPM= Sender: news Cc: gerhardm@muntingh.tmfweb.nl Subject: [Dovecot] Re: Bugfix for use with "Opera mail" and "AnalogX" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Dec 2003 15:56:09 -0000 X-UID: 4107 Status: O Content-Length: 1149 Gerhard Muntingh writes: > Dear developers, > > [ Please CC me as I'm not subscribed to this list. ] > > In src/pop3-login/client.c: > > void client_send_line(struct pop3_client *client, const char *line) > { > o_stream_send_str(client->output, line); > o_stream_send(client->output, "\r\n", 2); > } > > Called as 'client_send_line(client "+OK dovecot");'. > > This function sends two packets to the client. It appears Opera mail > and AnalogX proxy recognise the 1st packet as a complete welcome and > send their "USER " command after receiving it. They then receive the > newline in the next packet and get confused. > This is very probably a bug in those two programs, but it would still > be great if it could be fixed in the dovecot source. The client bug will have to be fixed nonetheless because sooner or later, some response will arrive with the last CRLF on a packet boundary, killing off the client. I'd suggest not fixing Dovecot until after the clients are fixed, so that the vendors have something to test against. -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95 From gerhardm@muntingh.tmfweb.nl Wed Dec 24 00:48:59 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F1592C000D72; Wed, 24 Dec 2003 00:48:58 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id D3A1DC0007A4 for ; Wed, 24 Dec 2003 00:48:56 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id CFAE923850; Wed, 24 Dec 2003 00:48:07 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C4A6D238AD; Wed, 24 Dec 2003 00:48:07 +0200 (EET) Received: from green.qinip.net (green.qinip.net [62.100.30.36]) by danu.procontrol.fi (Postfix) with ESMTP id 1AF8923850 for ; Wed, 24 Dec 2003 00:47:35 +0200 (EET) Received: from prof.vaag (hmm-dca-ap02-d13-120.dial.freesurf.nl [195.18.126.120]) by green.qinip.net (Postfix) with ESMTP id CEDC44EFF for ; Tue, 23 Dec 2003 23:47:28 +0100 (MET) Received: from gerhardm by prof.vaag with local (Exim 3.35 #1 (Debian)) id 1AYvS3-0008C2-00 for ; Tue, 23 Dec 2003 23:56:31 +0100 Date: Tue, 23 Dec 2003 23:56:31 +0100 To: dovecot@procontrol.fi Message-ID: <20031223225631.GA31382@muntingh.tmfweb.nl> References: <20031220121718.GA15297@muntingh.tmfweb.nl> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="a8Wt8u1KmwUX3Y2C" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.28i From: Gerhard Muntingh Cc: Subject: [Dovecot] Re: Bugfix for use with "Opera mail" and "AnalogX" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Dec 2003 22:48:59 -0000 X-UID: 4108 Status: O Content-Length: 1442 --a8Wt8u1KmwUX3Y2C Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello, [ Please CC me as I'm not subscribed to this list. ] On Sun, Dec 21, 2003 at 12:52:11PM +0000, Matthias Andree wrote: > The client bug will have to be fixed nonetheless because sooner or > later, some response will arrive with the last CRLF on a packet > boundary, killing off the client. >=20 > I'd suggest not fixing Dovecot until after the clients are fixed, so > that the vendors have something to test against. I heartily agree. If the login procedure fails, there is also a bigger chance of more problems of the same kind. The failing login procedure warns the user of a dataloss probability in his mailclient. Dataloss is much worse than a not working mailclient. It's probably not going to get fixed if they don't have access to a dovecot server (installed in a minute with debian). Or with the right business priority (unlikely without public pressure). I can always ask. And I'm going to do that in the morning. Good night, Gerhard. --a8Wt8u1KmwUX3Y2C Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE/6MgfAFjezRkBkZ8RAn/uAKCQE3Cxhuwuuwjn9gWiOP8xBShvGQCdE76x hobxv8d5e6yuy6pfNdKtazY= =zhyX -----END PGP SIGNATURE----- --a8Wt8u1KmwUX3Y2C-- From asmoore@edge.net Wed Dec 24 17:10:26 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9BE5FC000D72; Wed, 24 Dec 2003 17:10:26 +0200 (EET) Received: from rwcrmhc13.comcast.net (rwcrmhc13.comcast.net [204.127.198.39]) by talvi.dovecot.org (Postfix) with ESMTP id DC133C0007A4 for ; Wed, 24 Dec 2003 17:10:23 +0200 (EET) Received: from mcsun1.mcsun.local (pcp03743754pcs.nash01.tn.comcast.net[68.53.72.63]) by comcast.net (rwcrmhc13) with ESMTP id <20031224150926015006bikke>; Wed, 24 Dec 2003 15:09:26 +0000 Received: from sws602 (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.10+Sun/8.12.10) with SMTP id hBOF9Pk7002416 for ; Wed, 24 Dec 2003 09:09:25 -0600 (CST) Date: Wed, 24 Dec 2003 09:09:25 -0600 From: Alex S Moore To: dovecot@dovecot.org Message-Id: <20031224090925.6daa4e15@sws602> X-Mailer: Sylpheed version 0.9.8claws7 (GTK+ 1.2.10; sparc-sun-solaris2.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 'clamd / ClamAV version 0.65', clamav-milter version '0.60p' Subject: [Dovecot] RE: Compile problem X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Dec 2003 15:10:26 -0000 X-UID: 4109 Status: O Content-Length: 1485 I am a package maintainer for the Solaris community site known as CSW or blastwave.org. A CSW user requested a dovecot package, so I am attempting to build the package. I downloaded 0.99.10.4 earlier this month and it compiles just fine on my test machine. I went to our CSW build machines to build a version that I can distribute. I got the latest CVS version and used the same environment variables and configure options as the build on my test machine. In src/lib-storage I get the following compile error. I do not have proxy-mail-storage.c on my test machine from the earlier download, so I hope this is a problem that you can easily fix. The environment is Sun SPARC on Solaris 8. I am using the Sun compiler which seems to work fine for this software. My configure options are ./configure --prefix=/opt/csw --with-libiconv-prefix=/opt/csw --with-shadow --with-pam --with-ldap --with-ssl=openssl --with-ssldir=/opt/csw/ssl .. cc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I../../src/lib-mail -I../\../src/lib-imap -I/opt/csw/include -fast -xarch=v8 -I/opt/csw/include -c `te\st -f 'proxy-mail-storage.c' || echo './'`proxy-mail-storage.c "proxy-mail-storage.c", line 10: void function cannot return value cc: acomp failed for proxy-mail-storage.c *** Error code 2 make: Fatal error: Command failed for target `proxy-mail-storage.o' Current working directory /export/home/asmoore/build/dovecot-0.99.10/src/lib-st\orage *** Error code 1 .. Thanks, Alex Moore From super.bonz@tin.it Sun Dec 28 23:03:00 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 38410C000D72; Sun, 28 Dec 2003 23:03:00 +0200 (EET) Received: from vsmtp1.tin.it (vsmtp1.tin.it [212.216.176.221]) by talvi.dovecot.org (Postfix) with ESMTP id 05EF8C0007A4 for ; Sun, 28 Dec 2003 23:02:58 +0200 (EET) Received: from ims4c.cp.tin.it (192.168.70.104) by vsmtp1.tin.it (7.0.019) id 3FE95E0C00065E3C for dovecot@dovecot.org; Sun, 28 Dec 2003 22:01:51 +0100 Received: from [192.168.70.228] by ims4c.cp.tin.it with HTTP; Sun, 28 Dec 2003 22:01:50 +0100 Date: Sun, 28 Dec 2003 22:01:50 +0100 Message-ID: <3FE252070000799D@ims4c.cp.tin.it> From: super.bonz@tin.it To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-15" Content-Transfer-Encoding: quoted-printable X-Mailman-Approved-At: Mon, 29 Dec 2003 01:27:38 +0200 Subject: [Dovecot] dovecot + ssl + outlook X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2003 21:03:00 -0000 X-UID: 4110 Status: O i have installed dovecot on my debian server..... i have configured with imap + ssl all ok but i have one problem when I lunch for example outlook or outlook express appears this error Title of error page: Internet Secuiruty Warning The server you are connected to is using a security certificate that coul= d not be verified The certificate's CN name does not match the passed value. Do you want to continue using this server? If I click to yes ....it works. please help me thanks Chris From amyzing@talsever.com Mon Dec 29 01:46:32 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 52731C000DC4; Mon, 29 Dec 2003 01:46:32 +0200 (EET) Received: from smtp6.mindspring.com (smtp6.mindspring.com [207.69.200.110]) by talvi.dovecot.org (Postfix) with ESMTP id 139F7C0007A4 for ; Mon, 29 Dec 2003 01:46:30 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by smtp6.mindspring.com with esmtp (Exim 3.33 #1) id 1Aakav-0004q2-00 for dovecot@dovecot.org; Sun, 28 Dec 2003 18:45:13 -0500 Received: from merthred.talsever.com (merthred.talsever.com [192.168.0.18]) by marajen.talsever.com (Postfix) with SMTP id CEF89B7F7 for ; Sun, 28 Dec 2003 18:45:11 -0500 (EST) Date: Sun, 28 Dec 2003 18:45:11 -0500 From: "Amelia A. Lewis" To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot + ssl + outlook Message-Id: <20031228184511.68293117.amyzing@talsever.com> In-Reply-To: <3FE252070000799D@ims4c.cp.tin.it> References: <3FE252070000799D@ims4c.cp.tin.it> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.7 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2003 23:46:32 -0000 X-UID: 4111 Status: O Content-Length: 1322 You're using the standard self-signed certificate. If you want a certificate validated by someone else, you have to pay for it. Your certs (on Debian) are in /etc/ssl. That's where you'd install one that was signed by an authority that Outlook trusts. The other thing that you can do is install the self-signed certificate into outlook as "trusted". Works only for the particular installation of outlook that you do it on; each attaching client has to do it. Amy! On Sun, 28 Dec 2003 22:01:50 +0100 super.bonz@tin.it wrote: > i have installed dovecot on my debian server..... > > i have configured with imap + ssl > > all ok but i have one problem > > when I lunch for example outlook or outlook express appears this error > > > Title of error page: Internet Secuiruty Warning > The server you are connected to is using a security certificate that > could not be verified > The certificate's CN name does not match the passed value. > > Do you want to continue using this server? > > If I click to yes ....it works. > > please help me > > thanks > > Chris > -- Amelia A. Lewis amyzing {at} talsever.com "Ruby fruit jungle?" "Yeah, women are thick and rich and full of hidden treasures and besides that, they taste good." -- Rita Mae Brown, "Rubyfruit Jungle" From dcrisp@wsl.com.au Mon Dec 29 07:44:31 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 02782C000D72; Mon, 29 Dec 2003 07:44:31 +0200 (EET) Received: from MailMarshalC81.wsl.net.au (unknown [210.8.90.1]) by talvi.dovecot.org (Postfix) with ESMTP id 79FCAC0007A4 for ; Mon, 29 Dec 2003 07:44:26 +0200 (EET) Received: from IT3C91 (Not Verified[90.0.0.91]) by MailMarshalC81.wsl.net.au with NetIQ MailMarshal (v5.5.5.8) id ; Mon, 29 Dec 2003 16:43:19 +1100 From: "David Crisp" To: Date: Mon, 29 Dec 2003 16:43:18 +1100 Organization: WSL Consultants Pty Ltd Message-ID: <000201c3cdce$a99f91f0$5b00005a@wslmelb.com.au> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4024 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Subject: [Dovecot] Outlook 2002 sp-2 and initial connection after OS reboot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: dcrisp@wsl.com.au List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2003 05:44:31 -0000 X-UID: 4112 Status: O Content-Length: 2508 I have a strange problem that I have been experienceing with dovecot: Dovecot version : 0.99.10.4-1 Using IMAP: When I restart the OS (windows XP) and open up Outlook 2002 SP2 I don't automatically get my IMAP folders on the DOVECOT imap server. (the one on the uw_imap server open up straight away) When I click on inbox I cam given a message saying : unable to connect to imap folders When highlight the inbox and go to "file" "connect to " I get the error again.. "unable to connect to imap folders" If I just leave Outlook open for a while the folders mysteriously connect themselves. Has anybody seen this before and does anybody have any ideas on what to do to fix things. Is this an Outlook problem or a dovecot problem? I searched the archives and theres been nothing recently about this kind of problem. I need to get this system running in production very soon. --- David Crisp IT Systems Administrator WSL Consultants Pty Ltd dcrisp@wsl.com.au 2-8 Harvey Street Richmond Vic 3121 Australia Phone: +61 3 9429 4666 Fax: +61 3 9429 2294 Web: www.wsl.com.au ------------------------------------------------------------------------------ WSL Consultants Pty Ltd www.wsl.com.au Head Office: 2-8 Harvey Street, Richmond VIC 3121 Ph: (03) 9429 4666 Fax: (03) 9429 2294 Bendigo Office: Gate 6, Sharon Street La Trobe University, Bendigo PO Box 106, Strathdale VIC 3550 Ph: (03) 5444 7890 Fax: (03) 5444 7895 This message is intended solely for the individual(s) and entity(s) addressed. It is confidential and may contain legally privileged information. The use, copying or distribution of this message or any information it contains, by anyone other than the addressee, is prohibited. If you have received this message in error, please notify wsl@wsl.com.au. The mailbox address from which this message has been sent is for business mail only. Mail sent to it may be subject to security scanning and delivery of non-business messages sent to this address may not occur. Please note that the opinions expressed in this e-mail are those of the author, and are not necessarily those of WSL Consultants Pty Ltd. ------------------------------------------------------------------------------ ###################################################################### This e-mail message has been scanned and cleared by MailMarshal http://www.marshalsoftware.com ###################################################################### From jparsons-lists@saffron.net Mon Dec 29 09:03:52 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DEE1AC000D72; Mon, 29 Dec 2003 09:03:52 +0200 (EET) Received: from smtp.saffron.net (basil.saffron.net [209.123.182.66]) by talvi.dovecot.org (Postfix) with ESMTP id E3EBCC0007A4 for ; Mon, 29 Dec 2003 09:03:49 +0200 (EET) Received: (qmail-ldap/ctrl 22422 invoked from network); 29 Dec 2003 07:02:46 -0000 Received: from unknown (HELO [172.16.0.200]) (jparsons@saffron.net@[66.92.76.20]) (envelope-sender ) by smtp.saffron.net (qmail-ldap-1.03) with RC4-SHA encrypted SMTP for ; 29 Dec 2003 07:02:46 -0000 Mime-Version: 1.0 (Apple Message framework v609) Content-Transfer-Encoding: 7bit Message-Id: <011FB96A-39CD-11D8-AF78-00039385FC52@saffron.net> Content-Type: text/plain; charset=US-ASCII; format=flowed To: dovecot@dovecot.org From: Jason Parsons Date: Mon, 29 Dec 2003 02:02:45 -0500 X-Mailer: Apple Mail (2.609) X-Spam-Status: No, hits=-5.4 required=7.0 tests=BAYES_01,USER_AGENT_APPLEMAIL version=2.55 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) Subject: [Dovecot] New installation questions X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2003 07:03:53 -0000 X-UID: 4113 Status: O Howdy. I'm trying to get dovecot working on Solaris 9/sparc. I'm using LDAP as an authentication backend. After running dovecot and attemping an imap login, I'm getting this message: imap-login: Dec 29 01:52:29 Fatal: fd_send(4) failed: Bad file number imap-login: Dec 29 01:52:29 Fatal: fd_send(4) failed: Bad file number dovecot: Dec 29 01:52:29 Error: child 22972 (login) returned error 89 dovecot: Dec 29 01:52:29 Error: child 22973 (login) returned error 89 Any ideas what could cause this? Also, I would like to run dovecot using daemontools and qmail-ldap's auth_imap. Is this possible with dovecot? An example supervise/run file would be much appreciated. Thank you. - Jason Parsons From post@evert.net Mon Dec 29 21:00:24 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 45F9EC000D72; Mon, 29 Dec 2003 21:00:24 +0200 (EET) Received: from m1.imap-partners.net (m1.imap-partners.net [205.217.153.22]) by talvi.dovecot.org (Postfix) with ESMTP id C2103C0007A4 for ; Mon, 29 Dec 2003 21:00:21 +0200 (EET) Received: from drasil ([212.182.141.180]) by m1.imap-partners.net (Mirapoint Messaging Server MOS 3.3.8-GR) with ESMTP id AGL85007 (AUTH evert@imap-partners.net); Mon, 29 Dec 2003 10:59:09 -0800 (PST) Message-Id: <200312291859.AGL85007@m1.imap-partners.net> From: "Evert Mouw" To: Date: Mon, 29 Dec 2003 19:59:04 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook, Build 11.0.5510 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Thread-Index: AcPOPcisan85h0W+SlyeXDNAY+OT6Q== X-Mailman-Approved-At: Mon, 29 Dec 2003 22:09:50 +0200 Subject: [Dovecot] Fatal: USER environment missing X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2003 19:00:24 -0000 X-UID: 4114 Status: O Content-Length: 1068 I have some trouble installing dovecot, and maybe someone can help me. I have compiled dovecot on a Slackware Linux 9.0 running on a i586, and the imap program works OK (I tested it using the method described in the error reporting document). The make install procedure didn't create a correct /etc/rc.d/rc.dovecot file. I have created a dovecot user and group manually. Running just "dovecot" from the command line does not give any errors, but dovecot terminates and doesn't whow up with ps x. So I tried to start it from inetd, but starting dovecot from inetd results in something like "port 143 already in use", so I decided to start /usr/local/libexec/dovecot/imap directly from inetd, which results in Fatal: USER environment missing, even when using root for everyting (and the environment variable USER really exists). I fiddled with various options in the dovecot.conf file without any results. Now I'm stuck; the INSTALL document actually is a BUILD document and I can't find anything about post installation :-( Someone any ideas? Regards Evert Mouw From post@evert.net Mon Dec 29 21:18:42 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5A7E3C000D72; Mon, 29 Dec 2003 21:18:42 +0200 (EET) Received: from m1.imap-partners.net (m1.imap-partners.net [205.217.153.22]) by talvi.dovecot.org (Postfix) with ESMTP id EDBF0C0007A4 for ; Mon, 29 Dec 2003 21:18:39 +0200 (EET) Received: from drasil ([212.182.141.180]) by m1.imap-partners.net (Mirapoint Messaging Server MOS 3.3.8-GR) with ESMTP id AGL86099 (AUTH evert@imap-partners.net); Mon, 29 Dec 2003 11:17:34 -0800 (PST) Message-Id: <200312291917.AGL86099@m1.imap-partners.net> From: "Evert Mouw" To: Date: Mon, 29 Dec 2003 20:17:29 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook, Build 11.0.5510 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Thread-Index: AcPOQGZmMuTzeBT2R6CiPhXmGUNRdQ== X-Mailman-Approved-At: Mon, 29 Dec 2003 22:09:50 +0200 Subject: [Dovecot] USER environment X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2003 19:18:42 -0000 X-UID: 4115 Status: O Browsing in the 2003-September archives, I found out how to start dovecot from inetd (using imap-login instead of imap). Still I've got a few problems. I prefer not using inetd, but that seams impossible (see my 1st email). And telnetting to port 143 results in an immediate connection close. Hmmm, I'll continue exploring the archives. Regards Evert From admin@thelight.org.uk Mon Dec 29 22:28:01 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F35CAC000D9E; Mon, 29 Dec 2003 22:28:00 +0200 (EET) Received: from usercf098.dsl.pipex.com (usercf098.dsl.pipex.com [62.190.237.98]) by talvi.dovecot.org (Postfix) with ESMTP id C6E3BC0007A4 for ; Mon, 29 Dec 2003 22:27:58 +0200 (EET) Received: from [192.168.7.2] (helo=THUNDER) by usercf098.dsl.pipex.com with asmtp (TLSv1:RC4-MD5:128) (Exim 4.30) id 1Ab3yu-0001xu-E6 for dovecot@dovecot.org; Mon, 29 Dec 2003 20:27:16 +0000 From: "Simon Bell" To: Date: Mon, 29 Dec 2003 20:26:18 -0000 Organization: TheLight MIME-Version: 1.0 X-Mailer: Microsoft Office Outlook, Build 11.0.5510 Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=SHA1; boundary="----=_NextPart_000_000E_01C3CE4A.034919D0" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Thread-Index: AcPOSgEDTq6aG+sDQ5qRpI0nSdouRw== X-added: This email was sent via TheLight mail server X-added: Rules are available at http://mail.thelight.org.uk/rules.html X-added: If you believe this email was sent in violation of the rules X-added: Please email abuse@thelight.org.uk with appropriate information Message-Id: <20031229202758.C6E3BC0007A4@talvi.dovecot.org> Subject: [Dovecot] logfile errors X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: admin@thelight.org.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2003 20:28:01 -0000 X-UID: 4116 Status: O Content-Length: 6150 This is a multi-part message in MIME format. ------=_NextPart_000_000E_01C3CE4A.034919D0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Ive recently installed dovecot as a replacement for my uw-imap server. Ive noticed a few error messages in the log file, although in operation ive seen no problems from my mail client. The errors are: pop3(admin): Dec 26 21:19:37 Error: Error indexing mbox file /var/mail/admin: LF not found where expected and pop3-login: Dec 29 14:54:03 Warning: SSL_read() syscall failed: EOF [192.168.7.2] There appears to be a large number of the SSL_read errors, though SSL appears to work fine from outlook. Is there any explanation to what they mean or are they insignificant enough to ignore? thanks Simon ------=_NextPart_000_000E_01C3CE4A.034919D0 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIILgzCCBD4w ggImoAMCAQICAg1LMA0GCSqGSIb3DQEBBAUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsT FWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0 eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnMB4XDTAzMTAxNzExMjMwMVoXDTA0 MTAxNjExMjMwMVowQTEZMBcGA1UEAxMQQ0FjZXJ0IFVzZXIgQ2VydDEkMCIGCSqGSIb3DQEJARYV YWRtaW5AdGhlbGlnaHQub3JnLnVrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFWdW9wGTI WIZfNx8enH/jnmheKvCXfh6tBujxCwrgaC5+KbRcpTIKBrW/gLToK14yP0FuPkPAwWYR1/ZnrPPy 6+72LX4fSUiKDr0QCLDcbs+f2X/0PWotZBogi/7VZGOqL9f+UTKlAxh0h3F8jSYFWewPYf4OODU9 lNoYFdeEFwIDAQABo4GLMIGIMAwGA1UdEwEB/wQCMAAwVgYJYIZIAYb4QgENBEkWR1RvIGdldCB5 b3VyIG93biBjZXJ0aWZpY2F0ZSBmb3IgRlJFRSBoZWFkIG92ZXIgdG8gaHR0cDovL3d3dy5jYWNl cnQub3JnMCAGA1UdEQQZMBeBFWFkbWluQHRoZWxpZ2h0Lm9yZy51azANBgkqhkiG9w0BAQQFAAOC AgEAbEmsovaWwEcBMZUeylnpZN5ieYj7hiUcfCjmqTyXg/sULLweoqXJUnV/jxr2cdb7SPwMGd08 1ot4dk8xwEhD/QFm083h540ol6KKJfCmqQvAXBdfthQx1pkU4wE78Ad67LQ0opFBFz4n5rZy3bwt QX/mph40mJIj8g4TzJL1d+YRZ22RbrOQdJ9p7RlIU6zQGwYSIToEzUMMiD8eefgIOMvbih46q/2a EDLB5w+Xagd6x9E8y7gpGPkCMmUor5gl8fVRZofsL+7Og00ad7fY4c57Pwl3hcDhHMfFhJBWhF8M X79HDjh1xWS5ezLv7/lN8FU/uAsP0Ax89CqHIVIH0S6DnAF3UdoFsvWHC05SsbY623nTOL7ALc0n o4PNBQpgwSvpI8S+piFHnsPcrMxcDvb4ANmmJaI41Oo/2LpyYa8WZvsZdq2GEEtt9S0pOCCiBOrW +Yl3zdCbxgoajOJ8PirYNTXLRp9ygKPc47lCBrxJB6GQa1Xk0BwGKwkoiFd6XCRVIyboNQKTjO25 za0j8O0zrCKSsRbUZ0daSf2yWZdMBjAmwuBVPFL29FNZVnYmFWB85yNBMzXB2nW13MAn8SgPczkp vYUWM39G1PMOy8WKTpFYRJteJTxS6enW6PHOeTlWsqXVV+fNoCrMi/Kt1iz/EgXl5oEm1Jt/8fZc ZHcwggc9MIIFJaADAgECAgEAMA0GCSqGSIb3DQEBBAUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAc BgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1 dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnMB4XDTAzMDMzMDEyMjk0 OVoXDTMzMDMyOTEyMjk0OVoweTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3 dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZI hvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC AQDOIsDiRn3sNigHUJbyoDNAjEvxO2Y/MeVrAjbb1nz28YiPTnc2BUGV+QnwEs9GhnNgt25+6MBY ZK7NsK1FFwxj+mcK6NbSvz7nmMTwTPrgA7s1XWwh3p4g2brNZjI3cvr3CPXHzVjJjucOXuo+/hyh FAoVbIaEW2RmKnqpS1N59Yiie+4vCmErjbJ+TValE+zq2pKerERBHlhgZQVm+MBEvcuU90J+C/dl aJhRBfDzBZEEHRsXguzIV7vDa3qI8bByzCVbIJHsFgISjzLpFxhI0McFLgIwQrglnAVrP6o6p+tT SPfo0rYHmNwbxjR/f8kcgnoFWCsIW/M4oqsXXWbJmNeeEIui0t10mvdxDHJg381vmDOdljR2PiR6 krAOlR5v5qBFOEeq10HtSrcS9tcbg4oPLtgJtlnXqgT/0pN9aC7di0urWLovjeqVp6DDVIml+9uL USKdssO+Eb4skYaLlnitINOKLxo/xtBRZYchsRkBZX9FHIf1fNBBTE8pmCH9Mx91DARR+hl329QU HO6Bwx31mLdpBpEi3QBQzIExrBIHezjaaFvmK9R+yV+t6OtyTPMB5Usgv5qmV8qRAAGLoXUhN7Vj DWc+Rk9wIGfOxdZZ2wLg8NLLzbpit5BB6N0g5Cm8ZClCyCLceJr/Q+yYGwlRS1pawnHxxMtzqeWh CwIDAQABo4IBzjCCAcowHQYDVR0OBBYEFBa1MhvUx/Pg5o7zvdKwOu6yORjRMIGjBgNVHSMEgZsw gZiAFBa1MhvUx/Pg5o7zvdKwOu6yORjRoX2kezB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQL ExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmluZyBBdXRob3Jp dHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZ4IBADAPBgNVHRMBAf8EBTADAQH/ MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDAwBglg hkgBhvhCAQQEIxYhaHR0cHM6Ly93d3cuY2FjZXJ0Lm9yZy9yZXZva2UuY3JsMDQGCWCGSAGG+EIB CAQnFiVodHRwOi8vd3d3LmNhY2VydC5vcmcvaW5kZXgucGhwP2lkPTEwMFYGCWCGSAGG+EIBDQRJ FkdUbyBnZXQgeW91ciBvd24gY2VydGlmaWNhdGUgZm9yIEZSRUUgaGVhZCBvdmVyIHRvIGh0dHA6 Ly93d3cuY2FjZXJ0Lm9yZzANBgkqhkiG9w0BAQQFAAOCAgEAKMfunIICulyAEso1Ch2Bb4lqmczy aA9/p+GNWJU+vfIGw5BarLVg9plDAaOIcJydYp2kh69nWA0wNjvmrUjTy3QChnE+4isDaPE0YkBG O1PqKPSs+2aVU4pNXf072WDXynlpO7FlkqbGgYJcnM3rTQGKpd8RVaoVyh83wIKYcGHbanyWo44u VD5PIamQ79yCv9zoRa1NkHMIPJRlsASZdn/ivMJqFaqXBDck2B6UTm0OUb7WxI/Klm33Q9/oMGUn O3u7Q0NjxEP3suxozOEZjiL7mOF7Wj4BNzuLCLCi85VOGsubzZqx27Jw8C1K29iw429FSDMS//48 MipU98T3ivCII8JH/mR6ccDRHqZjsAd+pC/TAY/cnyu2xgipD5NIJfwS/Z9C3PPEPvZXsNfdadEG dzQKS9LKoP8cxozJFr7EzDI3aHNfCPtR90lTNgUKlQJM8nkaEPbYOnWc8x3xog1wZ4Ybsxb1L+Wk 63mG+T0LwnMLpZmsb/xnuOUvC6YYJI170Ug1KRhArJNg4ZaGULR6WdiPIQufz4KRxju/a9wHkbmX ViOqtmyUxkgGPOTOTqrk9i8J3FNvLvx06zpjmcKmrIm8p7JEoA2KEONs8iTL+pufcEcu3hSL1LIg CZaiZPEkHNyhNZwVstS8VS59BvWcDlX0WtaT2natJXNMxUMxggMVMIIDEQIBATB/MHkxEDAOBgNV BAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0Eg Q2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3Jn AgINSzAJBgUrDgMCGgUAoIIB7DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJ BTEPFw0wMzEyMjkyMDI2MTdaMCMGCSqGSIb3DQEJBDEWBBR9Eds8pp0te7fZecOFfuvXkOMrgDBn BgkqhkiG9w0BCQ8xWjBYMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIB QDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDAHBgUrDgMCGjAKBggqhkiG9w0CBTCBjwYJKwYBBAGC NxAEMYGBMH8weTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQu b3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJz dXBwb3J0QGNhY2VydC5vcmcCAg1LMIGRBgsqhkiG9w0BCRACCzGBgaB/MHkxEDAOBgNVBAoTB1Jv b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBT aWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnAgINSzAN BgkqhkiG9w0BAQEFAASBgHHsGVg0tsEHMHb9U2Qp/M0w5I+PcdeL9yp1OyihmzNi5N87LsThy0Zz 6Yi5fBPnX6jvF0krgIvg27OPxAsS6Cy0x7bp1LqUY32JH0wu9tb/0R0STa73iKzgzBz/GuhPzFcE NoTFiLzFlOZcW0wHOJs8P2Vrpv+zr0oUQNAvnAfvAAAAAAAA ------=_NextPart_000_000E_01C3CE4A.034919D0-- From tim@gem.win.co.nz Mon Dec 29 22:44:00 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DEB60C000DC5; Mon, 29 Dec 2003 22:44:00 +0200 (EET) Received: from gem.win.co.nz (gem.win.co.nz [210.55.105.242]) by talvi.dovecot.org (Postfix) with ESMTP id 8290EC0007A4 for ; Mon, 29 Dec 2003 22:43:57 +0200 (EET) Received: from localhost (tim@localhost) by gem.win.co.nz (8.9.3p2/8.9.3) with ESMTP id JAA17289 for ; Tue, 30 Dec 2003 09:53:43 +1300 Date: Tue, 30 Dec 2003 09:53:42 +1300 (NZDT) From: Tim Miller To: dovecot@dovecot.org Subject: Re: [Dovecot] USER environment Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2003 20:44:01 -0000 X-UID: 4117 Status: O On Mon, 29 Dec 2003, Evert Mouw wrote: > Browsing in the 2003-September archives, I found out how to start dovecot > from inetd (using imap-login instead of imap). Still I've got a few > problems. I prefer not using inetd, but that seams impossible (see my 1st > email). And telnetting to port 143 results in an immediate connection close. > Hmmm, I'll continue exploring the archives. What does the logfile say? If you're using syslog, dovecot uses the LOG_MAIL facility I think, so you might want to check whatever log that prints to. I had a couple problems like this, and it was because I had set up authentication incorrectly, so you may want to double check that. Best, Tim M. From Steffen.Higel@cs.tcd.ie Tue Dec 30 01:07:05 2003 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B4258C000DC5; Tue, 30 Dec 2003 01:07:05 +0200 (EET) Received: from mail06.svc.cra.dublin.eircom.net (mail06.svc.cra.dublin.eircom.net [159.134.118.22]) by talvi.dovecot.org (Postfix) with SMTP id B6BFCC0007A4 for ; Tue, 30 Dec 2003 01:07:03 +0200 (EET) Received: (qmail 98229 messnum 186327 invoked from network[62.77.173.72/62-77-173-72.customer.eircom.net]); 29 Dec 2003 23:05:48 -0000 Received: from 62-77-173-72.customer.eircom.net (HELO dawn) (62.77.173.72) by mail06.svc.cra.dublin.eircom.net (qp 98229) with SMTP; 29 Dec 2003 23:05:48 -0000 Received: from ken.newisland.local ([10.0.0.13] helo=cs.tcd.ie) by dawn with esmtp (Exim 3.35 #1 (Debian)) id 1Ab6SJ-0007ow-00 for ; Mon, 29 Dec 2003 23:05:47 +0000 Message-ID: <3FF0B41C.2020900@cs.tcd.ie> Date: Mon, 29 Dec 2003 23:09:16 +0000 From: Steffen Higel User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20030925 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot + ssl + outlook References: <3FE252070000799D@ims4c.cp.tin.it> In-Reply-To: <3FE252070000799D@ims4c.cp.tin.it> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2003 23:07:05 -0000 X-UID: 4118 Status: O super.bonz@tin.it wrote: >Title of error page: Internet Secuiruty Warning >The server you are connected to is using a security certificate that could >not be verified >The certificate's CN name does not match the passed value. > >Do you want to continue using this server? > >If I click to yes ....it works. > > You are using a self signed certificate I assume? You have to do: Start Menu->Run->iexplore http://whatever.your.dovecotserver.is:993 and install the certificate in your wallet. Now why Outlook couldn't give you an option to do that itself, I don't know... regards, Steffen From spent1@yahoo.com Fri Jan 2 04:41:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 59391C000DC5; Fri, 2 Jan 2004 04:41:36 +0200 (EET) Received: from web80705.mail.yahoo.com (web80705.mail.yahoo.com [66.163.170.62]) by talvi.dovecot.org (Postfix) with SMTP id F1485C0007A4 for ; Fri, 2 Jan 2004 04:41:32 +0200 (EET) Message-ID: <20040102023915.78535.qmail@web80705.mail.yahoo.com> Received: from [209.201.67.238] by web80705.mail.yahoo.com via HTTP; Thu, 01 Jan 2004 18:39:15 PST Date: Thu, 1 Jan 2004 18:39:15 -0800 (PST) From: Dan Slowik To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] Maildir and Mail at the same time. X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 02:41:36 -0000 X-UID: 4119 Status: O I am trying to use Maildir format for My inbox and be able to save the messages in ~/Mail. Problem is dovecot only show the Maildir mailboxes not the ~/Mail formatted boxes. How can I get this to work? If I use namespace or something how would this be configured I cannot find much documentation that explains it well enough. example: what would I have to configure in dovecot.conf or otherwise? I would like to see this. INBOX -- sent | drafts |- (Maildir format from ~/Maildir) trash -- sent -- recieved | deamons |- (mbox format from ~/Mail) unixfolk -- Currently I can only see the ~/Maildir like so. INBOX -- sent | drafts |- (Maildir format from ~/Maildir) trash -- Thanks __________________________________ Do you Yahoo!? Find out what made the Top Yahoo! Searches of 2003 http://search.yahoo.com/top2003 From dom@wirespeed.org.uk Mon Jan 5 00:59:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0870AC000D9E; Mon, 5 Jan 2004 00:59:38 +0200 (EET) Received: from protactinium.btinternet.com (protactinium.btinternet.com [194.73.73.176]) by talvi.dovecot.org (Postfix) with ESMTP id 99BEBC000D72 for ; Mon, 5 Jan 2004 00:59:35 +0200 (EET) Received: from [81.128.49.26] (helo=egg) by protactinium.btinternet.com with esmtp (Exim 3.22 #25) id 1AdHCB-0000gx-00 for dovecot@dovecot.org; Sun, 04 Jan 2004 22:58:07 +0000 From: Dominic Marks To: dovecot@dovecot.org Date: Sun, 4 Jan 2004 23:02:53 +0000 User-Agent: KMail/1.5.4 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200401042302.53499.dom@wirespeed.org.uk> Subject: [Dovecot] DIGEST-MD5 Authentication X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: dom@wirespeed.org.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jan 2004 22:59:38 -0000 X-UID: 4120 Status: O Hello, I am confused by a problem I am having getting Dovecot to authenticate=20 users with DIGEST-MD5. I am receiving the error message, "Unexpected=20 service type in digest-uri". (cvs: mech-digest-md5.c, line 407) =46rom an examination of the code it is clear that a check is performed=20 to see if the first component of a the digest-uri triplet is the=20 string "imap". The service type surely is IMAP, and from what I can=20 gather of the expected format of the digest-uri triplet from the=20 comments in the code it should be the first component. Is this just a case of inverted logic or am I mistaken ? Thanks, =2D-=20 Dominic From charlieb-dovecot@e-smith.com Mon Jan 5 18:22:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6A9E9C000D72; Mon, 5 Jan 2004 18:22:12 +0200 (EET) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by talvi.dovecot.org (Postfix) with SMTP id AA605C0007A4 for ; Mon, 5 Jan 2004 18:22:09 +0200 (EET) Received: (qmail 22450 invoked by uid 404); 5 Jan 2004 16:20:48 -0000 Received: from charlieb-dovecot@e-smith.com by tripe.nssg.mitel.com with qmail-scanner; 05 Jan 2004 11:20:48 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 05 Jan 2004 16:20:48 -0000 Received: (qmail 1888 invoked by uid 5008); 5 Jan 2004 16:20:48 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 5 Jan 2004 16:20:48 -0000 Date: Mon, 5 Jan 2004 11:20:48 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Evert Mouw In-Reply-To: <200312291917.AGL86099@m1.imap-partners.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@dovecot.org Subject: [Dovecot] starting from inetd (was Re: USER environment) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jan 2004 16:22:12 -0000 X-UID: 4121 Status: O On Mon, 29 Dec 2003, Evert Mouw wrote: > Browsing in the 2003-September archives, I found out how to start dovecot > from inetd (using imap-login instead of imap). Still I've got a few > problems. I prefer not using inetd, but that seams impossible (see my 1st > email). And telnetting to port 143 results in an immediate connection close. > Hmmm, I'll continue exploring the archives. Search for me and you'll find a recipe for using daemontools and tcpserver with dovecot. You could adapt that to start from inetd instead if you really didn't want to learn how to use new (and arguably better) tools. -- Charlie From esj@harvee.org Mon Jan 5 20:41:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EDECCC000D72; Mon, 5 Jan 2004 20:41:30 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by talvi.dovecot.org (Postfix) with ESMTP id 44617C0007A4 for ; Mon, 5 Jan 2004 20:41:28 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id i05IddYD010193; Mon, 5 Jan 2004 13:40:06 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Mon, 5 Jan 2004 13:39:28 -0500 Message-ID: <3FF9AF5C.6030308@harvee.org> Date: Mon, 05 Jan 2004 13:39:24 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dan Slowik Subject: Re: [Dovecot] Maildir and Mail at the same time. References: <20040102023915.78535.qmail@web80705.mail.yahoo.com> In-Reply-To: <20040102023915.78535.qmail@web80705.mail.yahoo.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:040105:spent1@yahoo.com:68a6d09d73b40859 X-Hashcash: 0:040105:dovecot@dovecot.org:fa2a3a1da6bdd5c8 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jan 2004 18:41:31 -0000 X-UID: 4122 Status: O Content-Length: 1035 Dan Slowik wrote: > I am trying to use Maildir format for My inbox and be > able to save the messages in ~/Mail. Problem is > > dovecot only show the Maildir mailboxes not the ~/Mail > formatted boxes. > > How can I get this to work? If I use namespace or > something how would this be configured I cannot find > much documentation that explains it well enough. > example: > > what would I have to configure in dovecot.conf or > otherwise? > > I would like to see this. > > INBOX -- > sent | > drafts |- (Maildir format from ~/Maildir) > trash -- > sent -- > recieved | > deamons |- (mbox format from ~/Mail) > unixfolk -- > > Currently I can only see the ~/Maildir like so. > > INBOX -- > sent | > drafts |- (Maildir format from ~/Maildir) > trash -- as far as I know, this is not yet available. It would be lovely to have but quite frankly a royal pain to build. ---eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From scott@thenation.com Mon Jan 5 23:16:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4AC9AC000D72; Mon, 5 Jan 2004 23:16:11 +0200 (EET) Received: from bone.thenation.com (mail.thenation.com [209.212.93.65]) by talvi.dovecot.org (Postfix) with ESMTP id 98E00C0007A4 for ; Mon, 5 Jan 2004 23:16:08 +0200 (EET) Received: from bone.thenation.com (bone.thenation.com [127.0.0.1]) by bone.thenation.com (8.12.8/8.12.5) with ESMTP id i05L8rAM026257 for ; Mon, 5 Jan 2004 16:08:53 -0500 Received: (from scott@localhost) by bone.thenation.com (8.12.8/8.12.8/Submit) id i05L8qR7026255 for dovecot@dovecot.org; Mon, 5 Jan 2004 16:08:52 -0500 X-Authentication-Warning: bone.thenation.com: scott set sender to scott@thenation.com using -f Date: Mon, 5 Jan 2004 16:08:52 -0500 From: Scott Klein To: dovecot@dovecot.org Message-ID: <20040105210852.GI2040@thenation.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] Problem with Eudora X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jan 2004 21:16:11 -0000 X-UID: 4123 Status: O I'm trying to get Dovecot (dovecot-0.99.10-6) to work with Eudora (6.0 mac/win) and am having a real problem when I try to enable SSL, either TLS or alternate-port SSL. Although my other mail clients, mail.app, imp, etc. work just fine, either version of Eudora craps out when trying to connect via TLS or SSL -- on the mac I get the error Could not get mailbox list. 20 [CLOSED] IMAP connection broken (command) On the PC I get something similar. Sometimes, on the mac, I don't get the [CLOSED] part I get Unable to get the required mailbox list from the server I've tried the "esoteric settings" trick (setting "user plain text password" in the IMAP panel) but that doesn't work. Everything works fine when I turn SSL off. I'm kind of at my wit's end. Has anybody experienced this? Have I not read TFM? Hope y'all can help. Best, Scott Klein From tss@iki.fi Tue Jan 6 05:23:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7CBA5C000D72; Tue, 6 Jan 2004 05:23:02 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 1EE4BC0007A4 for ; Tue, 6 Jan 2004 05:22:59 +0200 (EET) Received: by danu.procontrol.fi (Postfix, from userid 106) id BCD7023866; Tue, 6 Jan 2004 05:21:38 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5A50B23850; Tue, 6 Jan 2004 05:21:06 +0200 (EET) In-Reply-To: <20031229202758.C6E3BC0007A4@talvi.dovecot.org> References: <20031229202758.C6E3BC0007A4@talvi.dovecot.org> Mime-Version: 1.0 (Apple Message framework v609) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-9-562785051" Message-Id: <5CE16A64-3FF7-11D8-AC16-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] logfile errors Date: Tue, 6 Jan 2004 05:21:05 +0200 To: admin@thelight.org.uk X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.609) X-Spam-Status: No, hits=-7.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 03:23:02 -0000 X-UID: 4124 Status: O Content-Length: 1514 --Apple-Mail-9-562785051 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 29.12.2003, at 22:26, Simon Bell wrote: > Ive recently installed dovecot as a replacement for my uw-imap server. > Ive > noticed a few error messages in the log file, although in operation > ive seen > no problems from my mail client. The errors are: > > pop3(admin): Dec 26 21:19:37 Error: Error indexing mbox file > /var/mail/admin: LF not found where expected This usually means that the mbox contains two From-lines with nothing between them. Dovecot can't currently handle that error. > pop3-login: Dec 29 14:54:03 Warning: SSL_read() syscall failed: EOF > [192.168.7.2] > > There appears to be a large number of the SSL_read errors, though SSL > appears to work fine from outlook. > > Is there any explanation to what they mean or are they insignificant > enough > to ignore? Just turn ssl_verbose off and forget about them :) It only means that Outlook didn't issue a proper "SSL bye" command and closed the connection. --Apple-Mail-9-562785051 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/+imhyUhSUUBViskRAv1mAJ9hVQbEV6kTL6FoVdq31IxQ6xyzNgCdEysC 2aaagcF65Ope6AjG3cW9I/o= =R/Kk -----END PGP SIGNATURE----- --Apple-Mail-9-562785051-- From tss@iki.fi Tue Jan 6 05:27:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 69C1CC000D72; Tue, 6 Jan 2004 05:27:01 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 56AD4C0007A4 for ; Tue, 6 Jan 2004 05:26:59 +0200 (EET) Received: by danu.procontrol.fi (Postfix, from userid 106) id 52C9A23866; Tue, 6 Jan 2004 05:25:36 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3A1C623850; Tue, 6 Jan 2004 05:25:04 +0200 (EET) In-Reply-To: <20031224090925.6daa4e15@sws602> References: <20031224090925.6daa4e15@sws602> Mime-Version: 1.0 (Apple Message framework v609) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-10-563023240" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] RE: Compile problem Date: Tue, 6 Jan 2004 05:25:03 +0200 To: Alex S Moore X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.609) X-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 03:27:01 -0000 X-UID: 4125 Status: O Content-Length: 1242 --Apple-Mail-10-563023240 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 24.12.2003, at 17:09, Alex S Moore wrote: > I downloaded 0.99.10.4 earlier this month and it compiles just fine on > my test > machine. I went to our CSW build machines to build a version that I > can > distribute. I got the latest CVS version and used the same environment > variables and configure options as the build on my test machine. Currently CVS seems to be quite buggy, at least with using index files. I've been rewriting the indexing code quite a lot in last few days, hopefully I get it actually working this month :) > "proxy-mail-storage.c", line 10: void function cannot return value GCC should have complained about that too.. Fixed. --Apple-Mail-10-563023240 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/+iqPyUhSUUBViskRAoovAJ0eNDFgpaLt/yDE3W23dmEERJwcpwCeKTq0 hZ+C1Ex2SGBpp4Om8lvUsRQ= =J4zt -----END PGP SIGNATURE----- --Apple-Mail-10-563023240-- From tss@iki.fi Tue Jan 6 05:30:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 86D39C000D72; Tue, 6 Jan 2004 05:30:55 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 7179EC0007A4 for ; Tue, 6 Jan 2004 05:30:53 +0200 (EET) Received: by danu.procontrol.fi (Postfix, from userid 106) id 6766523866; Tue, 6 Jan 2004 05:29:33 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4FA8123850; Tue, 6 Jan 2004 05:29:01 +0200 (EET) In-Reply-To: <000201c3cdce$a99f91f0$5b00005a@wslmelb.com.au> References: <000201c3cdce$a99f91f0$5b00005a@wslmelb.com.au> Mime-Version: 1.0 (Apple Message framework v609) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-11-563260341" Message-Id: <782CB786-3FF8-11D8-AC16-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Outlook 2002 sp-2 and initial connection after OS reboot Date: Tue, 6 Jan 2004 05:29:00 +0200 To: dcrisp@wsl.com.au X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.609) X-Spam-Status: No, hits=-7.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 03:30:55 -0000 X-UID: 4126 Status: O Content-Length: 1133 --Apple-Mail-11-563260341 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 29.12.2003, at 07:43, David Crisp wrote: > When I restart the OS (windows XP) and open up Outlook 2002 SP2 I > don't automatically get my IMAP folders on the DOVECOT imap server. > (the one on the uw_imap server open up straight away) > > When I click on inbox I cam given a message saying : unable to connect > to imap folders Does it even try to connect to server? You could check with tcpdump or something similiar. Is there anything in Dovecot's log files? What about after enabling auth_verbose = yes? Do you use SSL? Does it work without? --Apple-Mail-11-563260341 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/+it8yUhSUUBViskRAtJ/AKCADqWIYeWvsDdHpqygZ1XGfbWKlwCfaD7g BFqZ8hE9VFsnOtj/gHq4kwM= =Qc6X -----END PGP SIGNATURE----- --Apple-Mail-11-563260341-- From tss@iki.fi Tue Jan 6 05:36:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A198BC000D72; Tue, 6 Jan 2004 05:36:15 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 597C6C0007A4 for ; Tue, 6 Jan 2004 05:36:13 +0200 (EET) Received: by danu.procontrol.fi (Postfix, from userid 106) id 4CB9A23866; Tue, 6 Jan 2004 05:34:53 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F2FAB23850; Tue, 6 Jan 2004 05:34:17 +0200 (EET) In-Reply-To: <200401042302.53499.dom@wirespeed.org.uk> References: <200401042302.53499.dom@wirespeed.org.uk> Mime-Version: 1.0 (Apple Message framework v609) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-12-563576188" Message-Id: <346F1826-3FF9-11D8-AC16-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] DIGEST-MD5 Authentication Date: Tue, 6 Jan 2004 05:34:16 +0200 To: dom@wirespeed.org.uk X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.609) X-Spam-Status: No, hits=-7.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 03:36:15 -0000 X-UID: 4127 Status: O Content-Length: 1154 --Apple-Mail-12-563576188 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 5.1.2004, at 01:02, Dominic Marks wrote: > I am confused by a problem I am having getting Dovecot to authenticate > users with DIGEST-MD5. I am receiving the error message, "Unexpected > service type in digest-uri". (cvs: mech-digest-md5.c, line 407) It works with Evolution and Cyrus-SASL client, so it can't be completely broken.. :) Maybe I should actually drop the check, since it's now hardcoded to IMAP it can't work with POP3.. You could check what string it actually compares it against by adding there some debug line: i_warning("uri = '%s'", trim(uri[0])); --Apple-Mail-12-563576188 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/+iy4yUhSUUBViskRAkzrAJ4rP/4FcbMVz+1bPYJYb0fLbYek4wCeNSGU WwI95bT1r96xpUnzX56yhUE= =jRIP -----END PGP SIGNATURE----- --Apple-Mail-12-563576188-- From asmoore@edge.net Tue Jan 6 06:43:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5F49CC000D7C; Tue, 6 Jan 2004 06:43:41 +0200 (EET) Received: from sccrmhc11.comcast.net (sccrmhc11.comcast.net [204.127.202.55]) by talvi.dovecot.org (Postfix) with ESMTP id 71223C000D72 for ; Tue, 6 Jan 2004 06:43:38 +0200 (EET) Received: from mcsun1.mcsun.local (pcp03743754pcs.nash01.tn.comcast.net[68.53.72.63]) by comcast.net (sccrmhc11) with ESMTP id <20040106044205011006eij4e>; Tue, 6 Jan 2004 04:42:05 +0000 Received: from sws602 (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.10+Sun/8.12.10) with SMTP id i064g4Yu015978 for ; Mon, 5 Jan 2004 22:42:05 -0600 (CST) Date: Mon, 5 Jan 2004 22:42:04 -0600 From: Alex S Moore To: dovecot@dovecot.org Subject: Re: [Dovecot] RE: Compile problem Message-Id: <20040105224204.45752ac3@sws602> In-Reply-To: References: <20031224090925.6daa4e15@sws602> X-Mailer: Sylpheed version 0.9.8claws15 (GTK+ 1.2.10; sparc-sun-solaris2.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 'clamd / ClamAV version 0.65', clamav-milter version '0.60p' X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 04:43:41 -0000 X-UID: 4128 Status: O Content-Length: 1276 On Tue, 6 Jan 2004 05:25:03 +0200 Timo Sirainen wrote: > On 24.12.2003, at 17:09, Alex S Moore wrote: > > > I downloaded 0.99.10.4 earlier this month and it compiles just fine on > > my test > > machine. I went to our CSW build machines to build a version that I > > can > > distribute. I got the latest CVS version and used the same environment > > variables and configure options as the build on my test machine. > > Currently CVS seems to be quite buggy, at least with using index files. > I've been rewriting the indexing code quite a lot in last few days, > hopefully I get it actually working this month :) > Thanks for the honest reply Timo. Hope that you enjoyed the recent holiday season. > > "proxy-mail-storage.c", line 10: void function cannot return value > > GCC should have complained about that too.. Fixed. > Yes, both gcc and Sun's compiler complained. P.S. If there are any Solaris blastwave.org customers, or would be blastwave.org customers listening, I can make a package available fairly quickly for version 0.99.10.4. There was a request for this package from someone. I need help with testing. Initially, please reply to this mailing list. It is helpful to see some interest in a Solaris package. Thanks, Alex Moore From amyzing@talsever.com Tue Jan 6 08:01:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5C1DAC000D72; Tue, 6 Jan 2004 08:01:22 +0200 (EET) Received: from granger.mail.mindspring.net (granger.mail.mindspring.net [207.69.200.148]) by talvi.dovecot.org (Postfix) with ESMTP id DE63FC0007A4 for ; Tue, 6 Jan 2004 08:01:19 +0200 (EET) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by granger.mail.mindspring.net with esmtp (Exim 3.33 #1) id 1AdkFj-0002hp-00; Tue, 06 Jan 2004 00:59:43 -0500 Received: from merthred.talsever.com (merthred.talsever.com [192.168.0.18]) by marajen.talsever.com (Postfix) with SMTP id E1BA7B7F7; Tue, 6 Jan 2004 00:59:41 -0500 (EST) Date: Tue, 6 Jan 2004 00:59:41 -0500 From: "Amelia A. Lewis" To: Scott Klein Subject: Re: [Dovecot] Problem with Eudora Message-Id: <20040106005941.385612b5.amyzing@talsever.com> In-Reply-To: <20040105210852.GI2040@thenation.com> References: <20040105210852.GI2040@thenation.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.7 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 06:01:22 -0000 X-UID: 4129 Status: O Content-Length: 2327 I had exactly this experience, and looked through the Eudora site. The result of my research was basically that Eudora doesn't do SSL/TLS properly. In my case, I was using a self-signed certificate. The instructions for how to make this work (pretend the IMAP server is a POP server? so that you can see the failed SSL negotiation and add the certificate? is this weird or am I?) were obscure, and didn't seem to work. I could never make it work. This was for a client for whom I was setting up a mail system; they wanted to move away from Outlook onto something more secure, and opted for the name recognition of Eudora. After fighting with it for a couple of days, I tested with several alternate clients (thunderbird, mozilla, pegasus, pocomail) and they all worked, so I recommended that the client switch to something other than Eudora. Or, in short, I think the problem is client lossage, not a server problem. Amy! On Mon, 5 Jan 2004 16:08:52 -0500 Scott Klein wrote: > I'm trying to get Dovecot (dovecot-0.99.10-6) to work with Eudora (6.0 > mac/win) and am having a real problem when I try to enable SSL, either > TLS or alternate-port SSL. > > Although my other mail clients, mail.app, imp, etc. work just fine, > either version of Eudora craps out when trying to connect via TLS or > SSL-- on the mac I get the error > > Could not get mailbox list. > 20 > > [CLOSED] IMAP connection broken (command) > > On the PC I get something similar. Sometimes, on the mac, I don't get > the [CLOSED] part I get > > Unable to get the required mailbox list from the server > > I've tried the "esoteric settings" trick (setting "user plain text > password" in the IMAP panel) but that doesn't work. Everything works > fine when I turn SSL off. > > I'm kind of at my wit's end. Has anybody experienced this? Have I not > read TFM? Hope y'all can help. > > Best, > Scott Klein > -- Amelia A. Lewis amyzing {at} talsever.com According to Business Week, in the 1990s the ratio between a chief executive's salary and the takehome pay of the typical, feckless, whining grunt on the shopfloor rose from 85:1 to 475:1. (In the UK, which is seeing a vigorous popular backlash against "fat cat" pay packets, the ratio is 24:1). -- The Register From charlie@rubberduck.com Tue Jan 6 08:04:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 39DDAC000D72; Tue, 6 Jan 2004 08:04:04 +0200 (EET) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by talvi.dovecot.org (Postfix) with ESMTP id 6C841C0007A4 for ; Tue, 6 Jan 2004 08:04:01 +0200 (EET) Received: from [192.168.1.42] (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id B936C8FBB; Tue, 6 Jan 2004 17:01:38 +1100 (EST) In-Reply-To: <20040105224204.45752ac3@sws602> References: <20031224090925.6daa4e15@sws602> <20040105224204.45752ac3@sws602> Mime-Version: 1.0 (Apple Message framework v609) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-1-572362370" Message-Id: Content-Transfer-Encoding: 7bit From: Charlie Allom Subject: Re: [Dovecot] RE: Compile problem Date: Tue, 6 Jan 2004 17:00:42 +1100 To: Alex S Moore X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.609) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 06:04:04 -0000 X-UID: 4130 Status: O Content-Length: 1208 --Apple-Mail-1-572362370 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 06/01/2004, at 3:42 PM, Alex S Moore wrote: > > P.S. If there are any Solaris blastwave.org customers, or would be > blastwave.org > customers listening, I can make a package available fairly quickly for > version > 0.99.10.4. There was a request for this package from someone. I need > help with > testing. Initially, please reply to this mailing list. It is helpful > to see > some interest in a Solaris package. > I have a NetBSD PR for making dovecot work on pkgsrc/Zolaris C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --Apple-Mail-1-572362370 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/+k8LqiZDwhSqeUERAqyLAJ48dfEMfMYdL22SDT0DyPqQDeyNggCgk89S 4QusxLDT1cF9uVQHPpXKV8M= =8dM2 -----END PGP SIGNATURE----- --Apple-Mail-1-572362370-- From reuben-dovecot@reub.net Tue Jan 6 12:01:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B4CC4C003020; Tue, 6 Jan 2004 12:01:11 +0200 (EET) Received: from mail006.syd.optusnet.com.au (mail006.syd.optusnet.com.au [211.29.132.63]) by talvi.dovecot.org (Postfix) with ESMTP id 74634C00301F for ; Tue, 6 Jan 2004 12:01:04 +0200 (EET) Received: from co3017280a (c211-30-25-169.mirnd1.nsw.optusnet.com.au [211.30.25.169]) by mail006.syd.optusnet.com.au (8.11.6p2/8.11.6) with SMTP id i069xVv22170; Tue, 6 Jan 2004 20:59:32 +1100 Message-ID: <000901c3d43b$c9d8e660$0200a8c0@nsw.optushome.com.au> From: "Reuben Farrelly" To: "Amelia A. Lewis" , "Scott Klein" References: <20040105210852.GI2040@thenation.com> <20040106005941.385612b5.amyzing@talsever.com> Subject: Re: [Dovecot] Problem with Eudora Date: Tue, 6 Jan 2004 20:59:23 +1100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 10:01:11 -0000 X-UID: 4131 Status: O Content-Length: 3552 Hi, I'm using Eudora 6 and have no problems with Dovecot IMAP over SSL, and Eudora so from my perspective Eudora is just fine and "works for me".. The only problems I've had have been with CVS, but version 0.99.10.4 works ok and I've been using it for a while now with no issues whatsoever. I'm not sure if people have looked through the Eudora help knowledgebase but it gives pretty clear and accurate instructions on setting up SSL - http://www.eudora.com/techsupport/kb/2323hq.html This document applies equally to IMAP as well as POP. Or better still, search through the KB: http://www.eudora.com/search/query.html?oq=EPWIN&qt=ssl&qc=now&col=&qp=&qs=&pw=510&ws=0&qm=1&st=1&nh=10&lk=1&rf=0&rq=1 Also suggest you make sure that the task status/progress meter window is open when you are testeing it as this will give you a more verbose idea of what is going wrong...... Reuben ----- Original Message ----- From: "Amelia A. Lewis" To: "Scott Klein" Cc: Sent: Tuesday, January 06, 2004 4:59 PM Subject: Re: [Dovecot] Problem with Eudora > I had exactly this experience, and looked through the Eudora site. The > result of my research was basically that Eudora doesn't do SSL/TLS > properly. > > In my case, I was using a self-signed certificate. The instructions for > how to make this work (pretend the IMAP server is a POP server? so that > you can see the failed SSL negotiation and add the certificate? is this > weird or am I?) were obscure, and didn't seem to work. I could never > make it work. > > This was for a client for whom I was setting up a mail system; they > wanted to move away from Outlook onto something more secure, and opted > for the name recognition of Eudora. After fighting with it for a couple > of days, I tested with several alternate clients (thunderbird, mozilla, > pegasus, pocomail) and they all worked, so I recommended that the client > switch to something other than Eudora. > > Or, in short, I think the problem is client lossage, not a server > problem. > > Amy! > On Mon, 5 Jan 2004 16:08:52 -0500 > Scott Klein wrote: > > > I'm trying to get Dovecot (dovecot-0.99.10-6) to work with Eudora (6.0 > > mac/win) and am having a real problem when I try to enable SSL, either > > TLS or alternate-port SSL. > > > > Although my other mail clients, mail.app, imp, etc. work just fine, > > either version of Eudora craps out when trying to connect via TLS or > > SSL-- on the mac I get the error > > > > Could not get mailbox list. > > 20 > > > > [CLOSED] IMAP connection broken (command) > > > > On the PC I get something similar. Sometimes, on the mac, I don't get > > the [CLOSED] part I get > > > > Unable to get the required mailbox list from the server > > > > I've tried the "esoteric settings" trick (setting "user plain text > > password" in the IMAP panel) but that doesn't work. Everything works > > fine when I turn SSL off. > > > > I'm kind of at my wit's end. Has anybody experienced this? Have I not > > read TFM? Hope y'all can help. > > > > Best, > > Scott Klein > > > > > -- > Amelia A. Lewis amyzing {at} talsever.com > According to Business Week, in the 1990s the ratio between a chief > executive's salary and the takehome pay of the typical, feckless, > whining grunt on the shopfloor rose from 85:1 to 475:1. (In the UK, > which is seeing a vigorous popular backlash against "fat cat" pay > packets, the ratio is 24:1). > -- The Register > From mem@mv.mv.com Tue Jan 6 18:01:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 11373C003020; Tue, 6 Jan 2004 18:01:37 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 71C7BC00301F for ; Tue, 6 Jan 2004 18:01:34 +0200 (EET) Received: (qmail 18927 invoked from network); 6 Jan 2004 11:00:08 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 6 Jan 2004 11:00:08 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 750 invoked by uid 101); 6 Jan 2004 11:00:08 -0500 From: "Mark E. Mallett" Date: Tue, 6 Jan 2004 11:00:08 -0500 To: dovecot@dovecot.org Message-ID: <20040106160008.GG24068@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] SSL and STARTTLS X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 16:01:37 -0000 X-UID: 4132 Status: O I wanted to enable SSL on some alternate ports so that a limited number of people could try SSL access. But doing so enabled STARTTLS in IMAP, so that all IMAP users got surprised (at least those whose clients attempted to use it automatically). e.g.: # IP or host address where to listen in for SSL connections. Defaults # to above non-SSL equilevants if not specified. imaps_listen = *:xxxx pop3s_listen = *:yyyy # Disable SSL/TLS support. ssl_disable = no Is there a way to enable imaps/pop3s without enabling STARTTLS? (If so it's probably blindingly obvious and I am missing it..) Yours, mm From list@networkshop.com.hk Tue Jan 6 15:50:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B490CC003020; Tue, 6 Jan 2004 15:50:45 +0200 (EET) Received: from stars.networkshop.com.hk (167-028.onebb.com [202.180.167.28]) by talvi.dovecot.org (Postfix) with ESMTP id 021ABC00301F for ; Tue, 6 Jan 2004 15:50:41 +0200 (EET) Received: from networkshop.com.hk ([192.168.101.114]) by stars.networkshop.com.hk (8.11.6/8.11.6) with ESMTP id i06DuXV21256 for ; Tue, 6 Jan 2004 21:56:33 +0800 Message-ID: <3FFABCDB.3070201@networkshop.com.hk> Date: Tue, 06 Jan 2004 21:49:15 +0800 From: Jerry Chiu User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; zh-TW; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: zh-tw, en-us, zh MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Tue, 06 Jan 2004 18:04:37 +0200 Subject: [Dovecot] folders not subscribed X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 13:50:45 -0000 X-UID: 4133 Status: O when migrated from courier-imap, I found that all the sub-folders are not subscribed, I have to manually subscribe all of them. It is not very practical since many of my users have complicated folder structure... Is it possible that the dovecot server auto-subscribe all sub-folders if the ".subscriptions" is not present in the Maildir? Thanks, Jerry From dinh.viet.hoa@free.fr Tue Jan 6 21:00:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 792AFC003020; Tue, 6 Jan 2004 21:00:57 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 2D5AEC00301F for ; Tue, 6 Jan 2004 21:00:53 +0200 (EET) Received: by danu.procontrol.fi (Postfix, from userid 106) id 5DE7823866; Tue, 6 Jan 2004 20:07:40 +0200 (EET) Received: from postfix4-2.free.fr (postfix4-2.free.fr [213.228.0.176]) by danu.procontrol.fi (Postfix) with ESMTP id 4CA0E23850 for ; Tue, 6 Jan 2004 20:07:08 +0200 (EET) Received: from homer.priv (meriadeck-3-82-224-130-15.fbx.proxad.net [82.224.130.15]) by postfix4-2.free.fr (Postfix) with ESMTP id B24044CE0B for ; Tue, 6 Jan 2004 19:06:32 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id i06I6WgU003515 for ; Tue, 6 Jan 2004 19:06:32 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id i06I6Opg003513; Tue, 6 Jan 2004 19:06:24 +0100 Date: Tue, 6 Jan 2004 19:05:55 +0100 From: DINH Viet Hoa To: dovecot@dovecot.org Message-ID: In-Reply-To: <20040106160008.GG24068@iridium.mv.net> References: <20040106160008.GG24068@iridium.mv.net> Subject: Re: [Dovecot] SSL and STARTTLS X-Mailer: etPan - new generation - version 0.2-dev-20031216 MIME-Version: 1.0 Content-Type: multipart/signed; boundary="3ffaf91f_4131a104_cdf"; micalg="pgp-sha1"; protocol="application/pgp-signature" X-Spam-Status: No, hits=-2.8 required=5.0 tests=AWL,BAYES_20,IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES, REPLY_WITH_QUOTES version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 19:00:57 -0000 X-UID: 4134 Status: O --3ffaf91f_4131a104_cdf Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Mark E. Mallett wrote : > I wanted to enable SSL on some alternate ports so that a limited number= > of people could try SSL access. But doing so enabled STARTTLS in > IMAP, so that all IMAP users got surprised (at least those whose > clients attempted to use it automatically). Maybe, it is the role of the client to disable this automatic=20 use of STARTTLS. --=20 DINH V. Hoa, etPan=21 - newsreader, mail user agent -- http://libetpan.sf.net/etpan --3ffaf91f_4131a104_cdf Content-Type: application/pgp-signature Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA/+vkf7w+pfAWHa3MRApyQAJwKEKTUTSeoKMnxAk4CdRpa7F4rKwCeJPmU uYZjeBOu8Uq9JjpItnpL3Vk= =BbTL -----END PGP SIGNATURE----- --3ffaf91f_4131a104_cdf-- From spent1@yahoo.com Wed Jan 7 02:27:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1C4B5C003020; Wed, 7 Jan 2004 02:27:43 +0200 (EET) Received: from web80802.mail.yahoo.com (web80802.mail.yahoo.com [66.163.170.97]) by talvi.dovecot.org (Postfix) with SMTP id 2CEAEC00301F for ; Wed, 7 Jan 2004 02:27:40 +0200 (EET) Message-ID: <20040107002531.35743.qmail@web80802.mail.yahoo.com> Received: from [65.207.251.4] by web80802.mail.yahoo.com via HTTP; Tue, 06 Jan 2004 16:25:31 PST Date: Tue, 6 Jan 2004 16:25:31 -0800 (PST) From: Dan Slowik Subject: Re: [Dovecot] Maildir and Mail at the same time. To: "Eric S. Johansson" , dovecot@dovecot.org In-Reply-To: <3FF9AF5C.6030308@harvee.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jan 2004 00:27:43 -0000 X-UID: 4135 Status: O Content-Length: 1536 I've gotten it to word. I can use the namespaces to show both the maildir inbox as well as the mbox folders However, I can not save any messages from the inbox (Maildir) to the mbox folders. Anyone have a clue on this? --- "Eric S. Johansson" wrote: > Dan Slowik wrote: > > > I am trying to use Maildir format for My inbox and > be > > able to save the messages in ~/Mail. Problem is > > > > dovecot only show the Maildir mailboxes not the > ~/Mail > > formatted boxes. > > > > How can I get this to work? If I use namespace or > > something how would this be configured I cannot > find > > much documentation that explains it well enough. > > example: > > > > what would I have to configure in dovecot.conf or > > otherwise? > > > > I would like to see this. > > > > INBOX -- > > sent | > > drafts |- (Maildir format from ~/Maildir) > > trash -- > > sent -- > > recieved | > > deamons |- (mbox format from ~/Mail) > > unixfolk -- > > > > Currently I can only see the ~/Maildir like so. > > > > INBOX -- > > sent | > > drafts |- (Maildir format from ~/Maildir) > > trash -- > > as far as I know, this is not yet available. It > would be lovely to have > but quite frankly a royal pain to build. > > ---eric > > > -- > Speech recognition in use. Incorrect endings, > words, and case is > closer than it appears > __________________________________ Do you Yahoo!? New Yahoo! Photos - easier uploading and sharing. http://photos.yahoo.com/ From overflow@eurielec.etsit.upm.es Wed Jan 7 11:47:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0E75CC003020; Wed, 7 Jan 2004 11:47:26 +0200 (EET) Received: from eurielec.etsit.upm.es (uno.eurielec.etsit.upm.es [138.100.31.227]) by talvi.dovecot.org (Postfix) with ESMTP id A0C7FC00301F for ; Wed, 7 Jan 2004 11:47:23 +0200 (EET) Received: from eurielec.etsit.upm.es (www.eurielec.etsit.upm.es [138.100.31.226]) by eurielec.etsit.upm.es (Postfix) with SMTP id E3B8021CA for ; Wed, 7 Jan 2004 10:45:58 +0100 (CET) Received: from 195.235.92.108 (SquirrelMail authenticated user overflow) by www.eurielec.etsit.upm.es with HTTP; Wed, 7 Jan 2004 10:45:58 +0100 (CET) Message-ID: <61963.195.235.92.108.1073468758.squirrel@www.eurielec.etsit.upm.es> Date: Wed, 7 Jan 2004 10:45:58 +0100 (CET) Subject: Re: [Dovecot] Maildir and Mail at the same time. From: "Jaime Medrano" To: In-Reply-To: <20040107002531.35743.qmail@web80802.mail.yahoo.com> References: <3FF9AF5C.6030308@harvee.org> <20040107002531.35743.qmail@web80802.mail.yahoo.com> X-Priority: 3 Importance: Normal X-MSMail-Priority: Normal X-Mailer: SquirrelMail (version 1.2.6) MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jan 2004 09:47:26 -0000 X-UID: 4136 Status: O Content-Length: 1768 Last time I took a look to the code, it was fairly impossible due to a problem with the design of the mailstorage object hierarchy. Any progress on that? Regards, Jaime. > I've gotten it to word. I can use the namespaces to > show both the maildir inbox as well as the mbox > folders > > However, > > I can not save any messages from the inbox (Maildir) > to > the mbox folders. > > Anyone have a clue on this? > > > > --- "Eric S. Johansson" wrote: >> Dan Slowik wrote: >> >> > I am trying to use Maildir format for My inbox and >> be >> > able to save the messages in ~/Mail. Problem is >> > >> > dovecot only show the Maildir mailboxes not the >> ~/Mail >> > formatted boxes. >> > >> > How can I get this to work? If I use namespace or >> > something how would this be configured I cannot >> find >> > much documentation that explains it well enough. >> > example: >> > >> > what would I have to configure in dovecot.conf or >> > otherwise? >> > >> > I would like to see this. >> > >> > INBOX -- >> > sent | >> > drafts |- (Maildir format from ~/Maildir) >> > trash -- >> > sent -- >> > recieved | >> > deamons |- (mbox format from ~/Mail) >> > unixfolk -- >> > >> > Currently I can only see the ~/Maildir like so. >> > >> > INBOX -- >> > sent | >> > drafts |- (Maildir format from ~/Maildir) >> > trash -- >> >> as far as I know, this is not yet available. It >> would be lovely to have >> but quite frankly a royal pain to build. >> >> ---eric >> >> >> -- >> Speech recognition in use. Incorrect endings, >> words, and case is >> closer than it appears >> > > > > __________________________________ > Do you Yahoo!? > New Yahoo! Photos - easier uploading and sharing. > http://photos.yahoo.com/ From mem@mv.mv.com Wed Jan 7 16:41:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BB49AC003021; Wed, 7 Jan 2004 16:41:04 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 265D1C003020 for ; Wed, 7 Jan 2004 16:41:02 +0200 (EET) Received: (qmail 19177 invoked from network); 7 Jan 2004 09:39:36 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 7 Jan 2004 09:39:36 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 24693 invoked by uid 101); 7 Jan 2004 09:39:36 -0500 From: "Mark E. Mallett" Date: Wed, 7 Jan 2004 09:39:36 -0500 To: dovecot@dovecot.org Subject: Re: [Dovecot] SSL and STARTTLS Message-ID: <20040107143936.GA22231@iridium.mv.net> References: <20040106160008.GG24068@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jan 2004 14:41:04 -0000 X-UID: 4137 Status: O On Tue, Jan 06, 2004 at 07:05:55PM +0100, DINH Viet Hoa wrote: > Mark E. Mallett wrote : > > > I wanted to enable SSL on some alternate ports so that a limited number > > of people could try SSL access. But doing so enabled STARTTLS in > > IMAP, so that all IMAP users got surprised (at least those whose > > clients attempted to use it automatically). > > Maybe, it is the role of the client to disable this automatic > use of STARTTLS. Yes, that is a restatement of the problem. I think I wasn't very clear though. I want to enable imaps and pop3s on alternate ports for a few people to test SSL access (and certificate recognition et al), but disallow STARTTLS on the standard imap port (not on the alternate port) so that all the users who are *not* explicitly accessing the test imaps port do not get exposed to the SSL stuff by accident. mm From scott@thenation.com Wed Jan 7 22:24:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 23975C003021; Wed, 7 Jan 2004 22:24:17 +0200 (EET) Received: from bone.thenation.com (mail.thenation.com [209.212.93.65]) by talvi.dovecot.org (Postfix) with ESMTP id A44D5C003020 for ; Wed, 7 Jan 2004 22:24:14 +0200 (EET) Received: from bone.thenation.com (bone.thenation.com [127.0.0.1]) by bone.thenation.com (8.12.8/8.12.5) with ESMTP id i07KGfAM004731 for ; Wed, 7 Jan 2004 15:16:41 -0500 Received: (from scott@localhost) by bone.thenation.com (8.12.8/8.12.8/Submit) id i07KGfCL004729 for dovecot@dovecot.org; Wed, 7 Jan 2004 15:16:41 -0500 X-Authentication-Warning: bone.thenation.com: scott set sender to scott@thenation.com using -f Date: Wed, 7 Jan 2004 15:16:41 -0500 From: Scott Klein To: dovecot@dovecot.org Message-ID: <20040107201641.GJ11307@thenation.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] problems getting password X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jan 2004 20:24:17 -0000 X-UID: 4138 Status: O I've got a signed certificate now, and since I installed it Dovecot dies when trying to launch with this error in the log file: imap-login: Jan 07 15:15:27 Fatal: Can't load private key file : error:0906406D:PEM routines:DEF_CALLBACK:problems getting password I know the passphrase my cert needs. Where can I tell dovecot that? Cheers, Scott From mem@mv.mv.com Wed Jan 7 22:40:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 111B6C003021; Wed, 7 Jan 2004 22:40:07 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 62292C003020 for ; Wed, 7 Jan 2004 22:40:04 +0200 (EET) Received: (qmail 15058 invoked from network); 7 Jan 2004 15:38:32 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 7 Jan 2004 15:38:32 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 3822 invoked by uid 101); 7 Jan 2004 15:38:31 -0500 From: "Mark E. Mallett" Date: Wed, 7 Jan 2004 15:38:31 -0500 To: Scott Klein Subject: Re: [Dovecot] problems getting password Message-ID: <20040107203831.GB28452@iridium.mv.net> References: <20040107201641.GJ11307@thenation.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040107201641.GJ11307@thenation.com> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jan 2004 20:40:07 -0000 X-UID: 4139 Status: O On Wed, Jan 07, 2004 at 03:16:41PM -0500, Scott Klein wrote: > I've got a signed certificate now, and since I installed it Dovecot dies > when trying to launch with this error in the log file: > > imap-login: Jan 07 15:15:27 Fatal: Can't load private key file > : error:0906406D:PEM routines:DEF_CALLBACK:problems > getting password > > I know the passphrase my cert needs. Where can I tell dovecot that? I don't that answer, but you can create a version of your private key with the passphrase removed, e.g. via: openssl rsa -in whatever.key -out whatever.stripped-key and use the stripped version (it will ask you for the passphrase). This is not necessarily politically correct though. -mm- From mem@mv.mv.com Wed Jan 7 22:43:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DD790C003021; Wed, 7 Jan 2004 22:43:16 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 4BCCCC003020 for ; Wed, 7 Jan 2004 22:43:14 +0200 (EET) Received: (qmail 20333 invoked from network); 7 Jan 2004 15:41:48 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 7 Jan 2004 15:41:48 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 5489 invoked by uid 101); 7 Jan 2004 15:41:47 -0500 From: "Mark E. Mallett" Date: Wed, 7 Jan 2004 15:41:47 -0500 To: Scott Klein Subject: Re: [Dovecot] problems getting password Message-ID: <20040107204147.GC28452@iridium.mv.net> References: <20040107201641.GJ11307@thenation.com> <20040107203831.GB28452@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040107203831.GB28452@iridium.mv.net> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jan 2004 20:43:17 -0000 X-UID: 4140 Status: O On Wed, Jan 07, 2004 at 03:38:31PM -0500, Mark E. Mallett wrote: > > I don't that answer I don't know that answer ... > and use the stripped version (it will ask you for the passphrase). It will ask for the password when you create the stripped key, not when you use it. note to self: proofreed. :) mm From arnoldc@mcmservice.com Thu Jan 8 02:14:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E1741C003021; Thu, 8 Jan 2004 02:14:11 +0200 (EET) Received: from www1.mcmservice.com (216-110-65-241.gen.twtelecom.net [216.110.65.241]) by talvi.dovecot.org (Postfix) with ESMTP id 60E3EC003020 for ; Thu, 8 Jan 2004 02:14:08 +0200 (EET) Received: from mcmservice.com (216-110-65-241.gen.twtelecom.net [216.110.65.241]) (authenticated) by www1.mcmservice.com (8.11.6/8.11.6) with ESMTP id i080a8w09793 for ; Wed, 7 Jan 2004 18:36:08 -0600 Message-ID: <3FFCA079.6040804@mcmservice.com> Date: Wed, 07 Jan 2004 18:12:41 -0600 From: Arnold Cano User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031016 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] no such file or directory X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 00:14:12 -0000 X-UID: 4141 Status: O Content-Length: 1294 I successfully installed dovecot 0.99.10 on a fedora box using postfix 2.0.11 and when I try to connect using my mozilla mail client I get the following error in the maillog... Jan 7 18:52:16 www1 imap(arnoldc): utime() failed with index file /home/arnoldc/Maildir/.INBOX/.imap.index: No such file or directory As you can see I'm using maildirs located in the home directories. Here is a copy of my dovecot.conf and I've removed all the commented out lines to save space... protocols = imap imap_listen = * ssl_disable = yes login_dir = /var/run/dovecot-login login = imap default_mail_env = maildir:~/Maildir client_workarounds = oe6-fetch-no-newmail outlook-idle mbox_locks = fcntl auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = shadow auth_user = root auth_verbose = yes Also, I created the maildir manually and placed a copy in my /etc/skel so that all new users receive a copy. Here is the structure and permissions from the home directory... >ll drwx------ 5 arnoldc arnoldc 4096 Jan 7 18:33 Maildir >ll Maildir/ drwx------ 2 arnoldc arnoldc 4096 Jan 7 18:33 cur drwx------ 2 arnoldc arnoldc 4096 Jan 7 18:33 new drwx------ 2 arnoldc arnoldc 4096 Jan 7 18:33 tmp Any help would be appreciated! Arnold From arnoldc@mcmservice.com Thu Jan 8 02:07:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B2B13C003021; Thu, 8 Jan 2004 02:07:45 +0200 (EET) Received: from www1.mcmservice.com (216-110-65-241.gen.twtelecom.net [216.110.65.241]) by talvi.dovecot.org (Postfix) with ESMTP id 58D93C003020 for ; Thu, 8 Jan 2004 02:07:42 +0200 (EET) Received: from mcmservice.com (216-110-65-241.gen.twtelecom.net [216.110.65.241]) (authenticated) by www1.mcmservice.com (8.11.6/8.11.6) with ESMTP id i080Tgw09727 for ; Wed, 7 Jan 2004 18:29:42 -0600 Message-ID: <3FFC9EF6.70807@mcmservice.com> Date: Wed, 07 Jan 2004 18:06:14 -0600 From: Arnold Cano User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031016 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Thu, 08 Jan 2004 08:25:39 +0200 Subject: [Dovecot] no such file or directory X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 00:07:45 -0000 X-UID: 4142 Status: O Content-Length: 1294 I successfully installed dovecot 0.99.10 on a fedora box using postfix 2.0.11 and when I try to connect using my mozilla mail client I get the following error in the maillog... Jan 7 18:52:16 www1 imap(arnoldc): utime() failed with index file /home/arnoldc/Maildir/.INBOX/.imap.index: No such file or directory As you can see I'm using maildirs located in the home directories. Here is a copy of my dovecot.conf and I've removed all the commented out lines to save space... protocols = imap imap_listen = * ssl_disable = yes login_dir = /var/run/dovecot-login login = imap default_mail_env = maildir:~/Maildir client_workarounds = oe6-fetch-no-newmail outlook-idle mbox_locks = fcntl auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = shadow auth_user = root auth_verbose = yes Also, I created the maildir manually and placed a copy in my /etc/skel so that all new users receive a copy. Here is the structure and permissions from the home directory... >ll drwx------ 5 arnoldc arnoldc 4096 Jan 7 18:33 Maildir >ll Maildir/ drwx------ 2 arnoldc arnoldc 4096 Jan 7 18:33 cur drwx------ 2 arnoldc arnoldc 4096 Jan 7 18:33 new drwx------ 2 arnoldc arnoldc 4096 Jan 7 18:33 tmp Any help would be appreciated! Arnold From tss@iki.fi Thu Jan 8 08:37:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 28326C003022; Thu, 8 Jan 2004 08:37:40 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 1F579C003021 for ; Thu, 8 Jan 2004 08:37:38 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 1880A300DFC10 for ; Thu, 8 Jan 2004 08:36:12 +0200 (EET) Subject: Re: [Dovecot] folders not subscribed From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <3FFABCDB.3070201@networkshop.com.hk> References: <3FFABCDB.3070201@networkshop.com.hk> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-i6OZ/tlRJSTO6dlArm1V" Message-Id: <1073543771.6423.33.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 08 Jan 2004 08:36:11 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 06:37:40 -0000 X-UID: 4143 Status: O Content-Length: 1163 --=-i6OZ/tlRJSTO6dlArm1V Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-01-06 at 15:49, Jerry Chiu wrote: > when migrated from courier-imap, > I found that all the sub-folders are not subscribed, I have to manually=20 > subscribe all of them. >=20 > It is not very practical since many of my users have complicated folder=20 > structure... >=20 > Is it possible that the dovecot server auto-subscribe all sub-folders if=20 > the ".subscriptions" is not present in the Maildir? Courier stores the subscriptions in courierimapsubscribed file. You should be able to rename those files into Dovecot's .subscriptions files. Something like: find . -name courierimapsubscribed -exec sh -c 'mv "{}" "`echo "{}"|sed s/c= ourierimapsubscribed/\.subscriptions/`"' \; --=-i6OZ/tlRJSTO6dlArm1V Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQA//PpbyUhSUUBViskRAllKAJ91XlIjZ9r1r42dZLpUzZi9FT9jiACfc9YD fatovBG0x4HLNfpepujPoDU= =CRhg -----END PGP SIGNATURE----- --=-i6OZ/tlRJSTO6dlArm1V-- From tss@iki.fi Thu Jan 8 08:40:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6F935C003022; Thu, 8 Jan 2004 08:40:51 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 73CC1C003021 for ; Thu, 8 Jan 2004 08:40:49 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7E4F8300DFC10 for ; Thu, 8 Jan 2004 08:39:23 +0200 (EET) Subject: Re: [Dovecot] SSL and STARTTLS From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20040106160008.GG24068@iridium.mv.net> References: <20040106160008.GG24068@iridium.mv.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-leWX6byzUaWTZ9lXKgl+" Message-Id: <1073543963.6405.37.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 08 Jan 2004 08:39:23 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 06:40:51 -0000 X-UID: 4144 Status: O --=-leWX6byzUaWTZ9lXKgl+ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-01-06 at 18:00, Mark E. Mallett wrote: > Is there a way to enable imaps/pop3s without enabling STARTTLS? With CVS code you would be able to do it by creating another "server configuration" with SSL enabled in different port. With current code you'd have to run another dovecot process completely with different config file. --=-leWX6byzUaWTZ9lXKgl+ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQA//PsbyUhSUUBViskRAsscAJ4i8QaBTNpSKJ98Uwth0il/ObrhhACeM2cz e1XE3r191XsXhp0GqaluwF8= =7VuM -----END PGP SIGNATURE----- --=-leWX6byzUaWTZ9lXKgl+-- From tss@iki.fi Thu Jan 8 08:42:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 74242C003023; Thu, 8 Jan 2004 08:42:16 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 6EC7DC003022 for ; Thu, 8 Jan 2004 08:42:14 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7C7A4300DFC10 for ; Thu, 8 Jan 2004 08:40:48 +0200 (EET) Subject: Re: [Dovecot] Maildir and Mail at the same time. From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <61963.195.235.92.108.1073468758.squirrel@www.eurielec.etsit.upm.es> References: <3FF9AF5C.6030308@harvee.org> <20040107002531.35743.qmail@web80802.mail.yahoo.com> <61963.195.235.92.108.1073468758.squirrel@www.eurielec.etsit.upm.es> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Uhh2xJqOtPUuCek45iTx" Message-Id: <1073544048.6407.39.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 08 Jan 2004 08:40:48 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 06:42:16 -0000 X-UID: 4145 Status: O --=-Uhh2xJqOtPUuCek45iTx Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-01-07 at 11:45, Jaime Medrano wrote: > Last time I took a look to the code, it was fairly impossible due to a > problem with the design of the mailstorage object hierarchy. > Any progress on that? Yea, copying API should be fixed now to work across multiple storages. I don't think I've tested it yet though, so maybe it's buggy :) --=-Uhh2xJqOtPUuCek45iTx Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQA//PtwyUhSUUBViskRAvPDAJ4t5QOwiYC5quyB98AWOHH/G0nytACfWWN8 ++w71zpk4C7lIEJW2OoTMKs= =C6M9 -----END PGP SIGNATURE----- --=-Uhh2xJqOtPUuCek45iTx-- From tss@iki.fi Thu Jan 8 08:44:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 92EF7C003023; Thu, 8 Jan 2004 08:44:27 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 88132C003022 for ; Thu, 8 Jan 2004 08:44:25 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 8E503300DFC10 for ; Thu, 8 Jan 2004 08:42:59 +0200 (EET) Subject: Re: [Dovecot] no such file or directory From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <3FFCA079.6040804@mcmservice.com> References: <3FFCA079.6040804@mcmservice.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-IovXKUjkMLna7FVXCDjO" Message-Id: <1073544179.6404.42.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 08 Jan 2004 08:42:59 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 06:44:27 -0000 X-UID: 4146 Status: O Content-Length: 1086 --=-IovXKUjkMLna7FVXCDjO Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-01-08 at 02:12, Arnold Cano wrote: > I successfully installed dovecot 0.99.10 on a fedora box using postfix=20 > 2.0.11 and when I try to connect using my mozilla mail client I get the=20 > following error in the maillog... >=20 > Jan 7 18:52:16 www1 imap(arnoldc): utime() failed with index file=20 > /home/arnoldc/Maildir/.INBOX/.imap.index: No such file or directory You must have somehow deleted it. When opening INBOX, Dovecot creates the .INBOX/ directory and .imap.index under it. That error message comes when it's unexpectedly lost. I can't really think of reasons why, unless you manually did it.. --=-IovXKUjkMLna7FVXCDjO Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQA//PvzyUhSUUBViskRApDAAKCAMWekNBX/hOQ/X701gsmntINs8gCcC26R wtVfb36jYubjUa3nzzI2K+4= =hozA -----END PGP SIGNATURE----- --=-IovXKUjkMLna7FVXCDjO-- From arnoldc@mcmservice.com Thu Jan 8 18:14:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 25550C003021; Thu, 8 Jan 2004 18:14:43 +0200 (EET) Received: from www1.mcmservice.com (216-110-65-241.gen.twtelecom.net [216.110.65.241]) by talvi.dovecot.org (Postfix) with ESMTP id 5BC6FC003020 for ; Thu, 8 Jan 2004 18:14:40 +0200 (EET) Received: from mcmservice.com (216-110-65-241.gen.twtelecom.net [216.110.65.241]) (authenticated) by www1.mcmservice.com (8.11.6/8.11.6) with ESMTP id i08GaZw18509 for ; Thu, 8 Jan 2004 10:36:35 -0600 Message-ID: <3FFD8197.9020307@mcmservice.com> Date: Thu, 08 Jan 2004 10:13:11 -0600 From: Arnold Cano User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031016 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] no such file or directory References: <3FFCA079.6040804@mcmservice.com> <1073544179.6404.42.camel@hurina> In-Reply-To: <1073544179.6404.42.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 16:14:43 -0000 X-UID: 4147 Status: O Content-Length: 1260 Timo Sirainen wrote: >On Thu, 2004-01-08 at 02:12, Arnold Cano wrote: > > >>I successfully installed dovecot 0.99.10 on a fedora box using postfix >>2.0.11 and when I try to connect using my mozilla mail client I get the >>following error in the maillog... >> >>Jan 7 18:52:16 www1 imap(arnoldc): utime() failed with index file >>/home/arnoldc/Maildir/.INBOX/.imap.index: No such file or directory >> >> > >You must have somehow deleted it. When opening INBOX, Dovecot creates >the .INBOX/ directory and .imap.index under it. That error message comes >when it's unexpectedly lost. I can't really think of reasons why, unless >you manually did it.. > > > I'm not intentionally deleting anything. Could it be that the file or directory is never getting created? Is there something else I can try? Do the permissions of the maildir or parent folders matter? I thought that since dovecot runs in root (unless chrooted) that couldn't be it but I'm out of ideas. I tried telneting into the server with no success either... >telnet mail.mcmservice.com imap Trying 216.110.65.253... Connected to mail.mcmservice.com. Escape character is '^]'. * OK dovecot ready. LOGIN arnoldc ******** LOGIN BAD Error in IMAP command received by server. Arnold From support@simflex.com Thu Jan 8 18:22:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C8AD0C003021; Thu, 8 Jan 2004 18:22:13 +0200 (EET) Received: from mail.simflex.com (mail.simflex.com [206.153.21.2]) by talvi.dovecot.org (Postfix) with ESMTP id 830BEC003020 for ; Thu, 8 Jan 2004 18:22:11 +0200 (EET) Received: from mail.simflex.com (mail.simflex.com [206.153.21.2]) by mail.simflex.com (8.12.8/8.12.8) with SMTP id i08GKgbL001970 for ; Thu, 8 Jan 2004 11:20:42 -0500 Received: from 198.67.41.140 (SquirrelMail authenticated user support) by mail.simflex.com with HTTP; Thu, 8 Jan 2004 11:20:42 -0500 (EST) Message-ID: <2802.198.67.41.140.1073578842.squirrel@mail.simflex.com> Date: Thu, 8 Jan 2004 11:20:42 -0500 (EST) From: "SIMflex Support" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-RAVMilter-Version: 8.4.4(snapshot 20030410) (Joe) Subject: [Dovecot] POP Before SMTP for Sendmail X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 16:22:13 -0000 X-UID: 4148 Status: O Does anyone have a patch or information resource on implementing POP before SMTP with sendmail and DoveCot? I implemented it using a qpopper patch before we swiched to DoveCot for Maildirs. We have been using DoveCot for almost a year now and love it better than any other IMAP or POP3 server. Thanks for the info, Doug Eubanks SIMflex Internet Support support@simflex.com SIMflex Telephone Support is available from 8am-8pm Mon thru Fri and 9am-12pm Sat 206-7934 Wilson Area 800-847-2979 All Other Areas From kiwi@oav.net Thu Jan 8 23:01:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A8F22C003021; Thu, 8 Jan 2004 23:01:23 +0200 (EET) Received: from akira.oav.net (akira.oav.net [195.20.105.157]) by talvi.dovecot.org (Postfix) with ESMTP id A2EFDC003020 for ; Thu, 8 Jan 2004 23:01:21 +0200 (EET) Received: from [192.168.0.7] (kiwi.adsl.isdnet.net [195.154.177.33]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by akira.oav.net (Postfix) with ESMTP id 33F652A42E; Thu, 8 Jan 2004 21:59:51 +0100 (CET) In-Reply-To: <2802.198.67.41.140.1073578842.squirrel@mail.simflex.com> References: <2802.198.67.41.140.1073578842.squirrel@mail.simflex.com> Mime-Version: 1.0 (Apple Message framework v609) Content-Type: text/plain; charset=ISO-8859-1; format=flowed Message-Id: <98FF8F3E-421D-11D8-B87F-000393B64262@oav.net> Content-Transfer-Encoding: quoted-printable X-Image-Url: http://www.oav.net/~kiwi/kiwi.jpg From: Xavier Beaudouin X-Face: 8u$<#gAcwx"EZ1; LY4S{`{^D0'*'75&}5\XN1m6&R"N3P0aLN|^*v-p9@iw74t0RXvGGnR ]5)NaG6vj^LqWB:7f3*yf?q}6Cu6#?XV>Q[Kn&33``:R@E\!R~gk)nc&5X)\fHZbm4GaIf gK$GT'B=\KS&?t}%C%Y:R,W9%7JbYDx![gw'^SN'9L[?Xpcwh5{$q9LlUMw; &JS&BL)~c4o>] Subject: Re: [Dovecot] POP Before SMTP for Sendmail Date: Thu, 8 Jan 2004 21:59:49 +0100 To: "SIMflex Support" X-Mailer: Apple Mail (2.609) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 21:01:23 -0000 X-UID: 4149 Status: O Le 8 janv. 04, =E0 17:20, SIMflex Support a =E9crit : > Does anyone have a patch or information resource on implementing POP > before SMTP with sendmail and DoveCot? > > I implemented it using a qpopper patch before we swiched to DoveCot = for > Maildirs. We have been using DoveCot for almost a year now and love = it > better than any other IMAP or POP3 server. Humm... Why you don't use a more usefull method : SMTP AUTH ??? /Xavier From ianj@ian-justman.com Fri Jan 9 03:48:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B17E7C003021; Fri, 9 Jan 2004 03:48:26 +0200 (EET) Received: from narshe.chocobo.org (narshe.chocobo.org [207.126.72.242]) by talvi.dovecot.org (Postfix) with ESMTP id 63C28C003020 for ; Fri, 9 Jan 2004 03:48:24 +0200 (EET) Received: from ian-justman.com (jidoor.chocobo.org [207.126.72.253]) by narshe.chocobo.org (Postfix) with ESMTP id B32AC240C439 for ; Thu, 8 Jan 2004 17:46:54 -0800 (PST) Message-ID: <3FFE080E.3080904@ian-justman.com> Date: Thu, 08 Jan 2004 17:46:54 -0800 From: "Ian R. Justman" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] POP Before SMTP for Sendmail References: <2802.198.67.41.140.1073578842.squirrel@mail.simflex.com> <98FF8F3E-421D-11D8-B87F-000393B64262@oav.net> In-Reply-To: <98FF8F3E-421D-11D8-B87F-000393B64262@oav.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jan 2004 01:48:26 -0000 X-UID: 4150 Status: O Xavier Beaudouin wrote: > > Le 8 janv. 04, à 17:20, SIMflex Support a écrit : > >> Does anyone have a patch or information resource on implementing POP >> before SMTP with sendmail and DoveCot? >> >> I implemented it using a qpopper patch before we swiched to DoveCot for >> Maildirs. We have been using DoveCot for almost a year now and love it >> better than any other IMAP or POP3 server. > > > Humm... Why you don't use a more usefull method : SMTP AUTH ??? > > /Xavier > I tend to agree with this one, even though I implement this on my own servers. However, I use Perdition to implement this so that's only one program I have to hack instead of two programs or two components of one program. However, I also have SMTP-AUTH set up as well as the preferred way of doing things. I ultimately hope to be rid of POP-before-SMTP at some point in the future. --Ian. From tss@iki.fi Fri Jan 9 07:40:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0616AC003021; Fri, 9 Jan 2004 07:40:54 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 80415C003020 for ; Fri, 9 Jan 2004 07:40:51 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 42970300DFC12 for ; Fri, 9 Jan 2004 07:39:23 +0200 (EET) Subject: Re: [Dovecot] POP Before SMTP for Sendmail From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <2802.198.67.41.140.1073578842.squirrel@mail.simflex.com> References: <2802.198.67.41.140.1073578842.squirrel@mail.simflex.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-i+xA/Z/J2Y/X56Zo1Qnc" Message-Id: <1073626763.6407.73.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 09 Jan 2004 07:39:23 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jan 2004 05:40:54 -0000 X-UID: 4151 Status: O --=-i+xA/Z/J2Y/X56Zo1Qnc Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-01-08 at 18:20, SIMflex Support wrote: > Does anyone have a patch or information resource on implementing POP > before SMTP with sendmail and DoveCot? http://wiki.dovecot.org/moin.cgi/PopBSMTPAndDovecot I just updated it for DRAC. --=-i+xA/Z/J2Y/X56Zo1Qnc Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQA//j6LyUhSUUBViskRAnzpAKCR2xszao9cA/psay4NQCA+GX1+aQCfXIsu 6snxTUAiSU6OPaOo7/SBxWM= =1Xpr -----END PGP SIGNATURE----- --=-i+xA/Z/J2Y/X56Zo1Qnc-- From tss@iki.fi Fri Jan 9 07:46:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A717AC003022; Fri, 9 Jan 2004 07:46:14 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id B2342C003020 for ; Fri, 9 Jan 2004 07:46:11 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 71152300DFC12 for ; Fri, 9 Jan 2004 07:44:43 +0200 (EET) Subject: Re: [Dovecot] no such file or directory From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <3FFD8197.9020307@mcmservice.com> References: <3FFCA079.6040804@mcmservice.com> <1073544179.6404.42.camel@hurina> <3FFD8197.9020307@mcmservice.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-mieSnuY6k4sHdEJDHv73" Message-Id: <1073627083.6402.79.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 09 Jan 2004 07:44:43 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jan 2004 05:46:14 -0000 X-UID: 4152 Status: O Content-Length: 1776 --=-mieSnuY6k4sHdEJDHv73 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-01-08 at 18:13, Arnold Cano wrote: > >>Jan 7 18:52:16 www1 imap(arnoldc): utime() failed with index file=20 > >>/home/arnoldc/Maildir/.INBOX/.imap.index: No such file or directory .. > I'm not intentionally deleting anything. Could it be that the file or=20 > directory is never getting created?=20 I don't think so.. It should have failed earlier then. > Is there something else I can try?=20 Does the .INBOX/ directory exist there? Is there anything under it? What if you create them manually? Or if there is something, try deleting it? Is there anything else in logs? > Do the permissions of the maildir or parent folders matter? I thought=20 > that since dovecot runs in root (unless chrooted) that couldn't be it=20 > but I'm out of ideas. No, Dovecot uses several processes and only one or two of them run as root. The imap process which actually handles the mailboxes runs as the user who logged in. > I tried telneting into the server with no success either... >=20 > * OK dovecot ready. > LOGIN arnoldc ******** > LOGIN BAD Error in IMAP command received by server. IMAP wants a tag before each command. So use "1 login" or something. You could also try running the imap binary directly: /usr/local/libexec/dovecot/imap 1 select inbox and see if it gives the same error messages. --=-mieSnuY6k4sHdEJDHv73 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQA//j/LyUhSUUBViskRApTRAJ91PE+SRwUnShjvXhZ+sA2ifPGF6QCeIcFr c4HcocwLlChbJDWMDiqrr1g= =fg7+ -----END PGP SIGNATURE----- --=-mieSnuY6k4sHdEJDHv73-- From charlie@rubberduck.com Sat Jan 10 15:15:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 050DFC003021; Sat, 10 Jan 2004 15:15:19 +0200 (EET) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by talvi.dovecot.org (Postfix) with ESMTP id D019FC003020 for ; Sat, 10 Jan 2004 15:15:15 +0200 (EET) Received: from [10.0.1.6] (dsl-203-113-221-241.VIC.netspace.net.au [203.113.221.241]) by lazy.spodder.com (Postfix) with ESMTP id 021C78F56 for ; Sun, 11 Jan 2004 00:12:53 +1100 (EST) Mime-Version: 1.0 (Apple Message framework v609) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-5-943908052" To: dovecot@dovecot.org From: Charlie Allom Date: Sun, 11 Jan 2004 00:13:08 +1100 X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.609) Subject: [Dovecot] some questions about log errors X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Jan 2004 13:15:19 -0000 X-UID: 4153 Status: O Content-Length: 2995 --Apple-Mail-5-943908052 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hello, I migrated from the release target to the CVS target a few nights back, as I only use Maildir, and wanted look for improvements.. I am getting these errors in the maillog, and they keep coming up. I can delete the indexes, but wonder if it should be updateable by the mail-index process first? Jan 10 16:37:48 lazy pop3(ki): Updating broken sync_id in cache file /home/ki/Maildir/.INBOX/.imap.index.cache Jan 10 16:42:56 lazy pop3(ki): Updating broken sync_id in cache file /home/ki/Maildir/.INBOX/.imap.index.cache Jan 10 17:08:18 lazy pop3(ki): Updating broken sync_id in cache file /home/ki/Maildir/.INBOX/.imap.index.cache Jan 10 19:54:09 lazy pop3(ki): Updating broken sync_id in cache file /home/ki/Maildir/.INBOX/.imap.index.cache Jan 10 20:02:12 lazy pop3(ki): Updating broken sync_id in cache file /home/ki/Maildir/.INBOX/.imap.index.cache Jan 10 21:15:35 lazy pop3(ki): Updating broken sync_id in cache file /home/ki/Maildir/.INBOX/.imap.index.cache Jan 10 22:17:48 lazy imap(yeled): Corrupted index file /home/yeled/Maildir/.spam-caught/.imap.index: Duplicated message 1073729953.P4300Q320.lazy:2,S Jan 10 22:17:48 lazy imap(yeled): /home/yeled/Maildir/.spam-caught/dovecot-uidlist: Found duplicate filename 1073729953.P4300Q320.lazy, rebuilding Jan 10 23:50:19 lazy imap(yeled): Corrupted index cache file /home/yeled/Maildir/.mi.backups/.imap.index.cache: record points outside file Jan 10 23:50:19 lazy imap(yeled): Corrupted index cache file /home/yeled/Maildir/.mi.backups/.imap.index.cache: invalid record size Jan 10 23:50:19 lazy imap(yeled): Corrupted index file /home/yeled/Maildir/.mi.backups/.imap.index: Filename mismatch for UID 492: 1073739016.P11415Q5M850434.lazy vs 1073739017.P4404Q26M178284.lazy Jan 10 23:50:19 lazy imap(yeled): Couldn't lock created modify log file /home/yeled/Maildir/.mi.backups/.imap.index.log Jan 10 23:50:19 lazy imap(yeled): Warning: Inconsistency - Index /home/yeled/Maildir/.mi.backups/.imap.index was rebuilt while we had it open Jan 10 23:50:20 lazy imap(yeled): IndexID mismatch for modify log file /home/yeled/Maildir/.mi.backups/.imap.index.log As you can see the error says that it is `Updating broken sync_id' multiple times. The other errors - I'm not sure if they can be fixed.. C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --Apple-Mail-5-943908052 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE///pnqiZDwhSqeUERAiLmAKCT9DuRsuhB+iHEExs6gZIZ7m1czwCfeIWp LFOJ/ptRsEDiIyp3lrhI3v0= =Mjr2 -----END PGP SIGNATURE----- --Apple-Mail-5-943908052-- From tss@iki.fi Sun Jan 11 09:11:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 59C78C003023; Sun, 11 Jan 2004 09:11:27 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 4E54CC003022 for ; Sun, 11 Jan 2004 09:11:25 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2D1B7300D73B0 for ; Sun, 11 Jan 2004 09:09:52 +0200 (EET) Subject: Re: [Dovecot] some questions about log errors From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-8DQB8dCA5yrsozoxc4Yo" Message-Id: <1073804992.6249.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 11 Jan 2004 09:09:52 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jan 2004 07:11:27 -0000 X-UID: 4154 Status: O --=-8DQB8dCA5yrsozoxc4Yo Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-01-10 at 15:13, Charlie Allom wrote: > I migrated from the release target to the CVS target a few nights back,=20 > as I only use Maildir, and wanted look for improvements.. I am getting=20 > these errors in the maillog, and they keep coming up. I can delete the=20 > indexes, but wonder if it should be updateable by the mail-index=20 > process first? Don't use CVS now, indexes are broken. I'm rewriting indexing code now, hopefully working again in a few weeks. --=-8DQB8dCA5yrsozoxc4Yo Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAAPa/yUhSUUBViskRAksqAJ48xhFveGibz57hUMZIaP/Fgxo0WQCdFOLx xM/Yt9MOWZVN+FK4HMsvkfE= =3LgH -----END PGP SIGNATURE----- --=-8DQB8dCA5yrsozoxc4Yo-- From charlie@rubberduck.com Sun Jan 11 11:13:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5A32AC003024; Sun, 11 Jan 2004 11:13:04 +0200 (EET) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by talvi.dovecot.org (Postfix) with ESMTP id E55CBC003022 for ; Sun, 11 Jan 2004 11:13:01 +0200 (EET) Received: from [10.0.1.6] (dsl-203-113-221-241.VIC.netspace.net.au [203.113.221.241]) by lazy.spodder.com (Postfix) with ESMTP id 974E18F36; Sun, 11 Jan 2004 20:10:47 +1100 (EST) In-Reply-To: <1073804992.6249.8.camel@hurina> References: <1073804992.6249.8.camel@hurina> Mime-Version: 1.0 (Apple Message framework v609) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-2-1015804763" Message-Id: <21AB644C-4416-11D8-97D9-000A959B4D4E@rubberduck.com> Content-Transfer-Encoding: 7bit From: Charlie Allom Subject: Re: [Dovecot] some questions about log errors Date: Sun, 11 Jan 2004 20:11:25 +1100 To: Timo Sirainen X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.609) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jan 2004 09:13:04 -0000 X-UID: 4155 Status: O --Apple-Mail-2-1015804763 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 11/01/2004, at 6:09 PM, Timo Sirainen wrote: > > Don't use CVS now, indexes are broken. I'm rewriting indexing code now, > hopefully working again in a few weeks. oops! Oh well - it "works" :) C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --Apple-Mail-2-1015804763 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAARM9qiZDwhSqeUERAgvlAKCR+u0HDC0IbvzeTd1KXpYH5l/2EgCggkYj a8KBsI7EYMc1W28vZJp7HyM= =yjTl -----END PGP SIGNATURE----- --Apple-Mail-2-1015804763-- From camis@mweb.co.za Sun Jan 11 14:00:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0D038C003024; Sun, 11 Jan 2004 14:00:56 +0200 (EET) Received: from quake.mweb.co.za (quake.mweb.co.za [196.2.45.85]) by talvi.dovecot.org (Postfix) with ESMTP id 8C2A6C003022 for ; Sun, 11 Jan 2004 14:00:53 +0200 (EET) Received: from cpt-dial-196-30-184-194.mweb.co.za ([196.30.184.194]:1099 helo=mweb.co.za) by quake.mweb.co.za with esmtp (Exim 4.24) id 1AfeF3-0007bY-RF for dovecot@dovecot.org; Sun, 11 Jan 2004 13:58:54 +0200 Message-ID: <40013A8F.5000900@mweb.co.za> Date: Sun, 11 Jan 2004 13:59:11 +0200 From: cami User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Feature Request? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jan 2004 12:00:56 -0000 X-UID: 4156 Status: O Hi All.. When a successfully authentication has taken place, is it possible to get dovecot to create the users maildir if it doesnt already exist? Regards, Cami From arnoldc@mcmservice.com Mon Jan 12 19:08:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6C9DEC003023; Mon, 12 Jan 2004 19:08:12 +0200 (EET) Received: from www1.mcmservice.com (216-110-65-241.gen.twtelecom.net [216.110.65.241]) by talvi.dovecot.org (Postfix) with ESMTP id 5EBB5C003020 for ; Mon, 12 Jan 2004 19:08:09 +0200 (EET) Received: from mcmservice.com (216-110-65-241.gen.twtelecom.net [216.110.65.241]) (authenticated) by www1.mcmservice.com (8.11.6/8.11.6) with ESMTP id i0CHTYw10114 for ; Mon, 12 Jan 2004 11:29:35 -0600 Message-ID: <4002D416.4060200@mcmservice.com> Date: Mon, 12 Jan 2004 11:06:30 -0600 From: Arnold Cano User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031016 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] imap sync X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jan 2004 17:08:12 -0000 X-UID: 4157 Status: O Has anyone used any of those utilities that synchronize imap email from one server to another? I tried using imapsync-1.65 and it reports that dovecot has no namespace support and requires me to manually enter the separator? Would this be "."? or ".INBOX"? or "/"? Thanks, Arnold From tss@iki.fi Mon Jan 12 20:53:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8D88BC003021; Mon, 12 Jan 2004 20:53:58 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 72A47C003020 for ; Mon, 12 Jan 2004 20:53:56 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E1312300E49C4 for ; Mon, 12 Jan 2004 20:52:19 +0200 (EET) Subject: Re: [Dovecot] Feature Request? From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <40013A8F.5000900@mweb.co.za> References: <40013A8F.5000900@mweb.co.za> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-06qyMKY9IL/6JmBoKoSD" Message-Id: <1073933539.3798.4.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 12 Jan 2004 20:52:19 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jan 2004 18:53:58 -0000 X-UID: 4158 Status: O Content-Length: 1361 --=-06qyMKY9IL/6JmBoKoSD Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2004-01-11 at 13:59, cami wrote: > Hi All.. >=20 > When a successfully authentication has taken place, > is it possible to get dovecot to create the users > maildir if it doesnt already exist? Currently there's no configuration option for that. Some people want to create directories also for the user's home directory and possibly it's parent directory etc. so it'd be better to do it right the first time for everyone.. You could patch the sources, something like this:=20 --- src/lib-storage/index/maildir/maildir-storage.c.old 2004-01-12 20:50:45= .000000000 +0200 +++ src/lib-storage/index/maildir/maildir-storage.c 2004-01-12 20:51:13= .000000000 +0200 @@ -64,6 +64,7 @@ p =3D strchr(p, ':'); } while (p !=3D NULL); } + mkdir(root_dir, 0700); } =20 if (root_dir =3D=3D NULL) --=-06qyMKY9IL/6JmBoKoSD Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAAuzjyUhSUUBViskRAkg8AKCGpyCr3Hdp/Y0jdb2D0By6T5whKQCggZrn z/+qyK49tj0qepRM12/Z7SY= =8Y0Z -----END PGP SIGNATURE----- --=-06qyMKY9IL/6JmBoKoSD-- From tss@iki.fi Mon Jan 12 21:06:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 58AE5C003023; Mon, 12 Jan 2004 21:06:35 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 5774EC003021 for ; Mon, 12 Jan 2004 21:06:33 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id C62EE300E49C4 for ; Mon, 12 Jan 2004 21:04:56 +0200 (EET) Subject: Re: [Dovecot] imap sync From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <4002D416.4060200@mcmservice.com> References: <4002D416.4060200@mcmservice.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-bD4r3R4Wv1bAkkQYcn05" Message-Id: <1073934296.3796.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 12 Jan 2004 21:04:56 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jan 2004 19:06:35 -0000 X-UID: 4159 Status: O --=-bD4r3R4Wv1bAkkQYcn05 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-01-12 at 19:06, Arnold Cano wrote: > Has anyone used any of those utilities that synchronize imap email from=20 > one server to another? I tried using imapsync-1.65 and it reports that=20 > dovecot has no namespace support and requires me to manually enter the=20 > separator? Would this be "."? or ".INBOX"? or "/"? Most likely "." with maildir, "/" with mbox. --=-bD4r3R4Wv1bAkkQYcn05 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAAu/YyUhSUUBViskRAixbAJ9Xi3ZyeUa/5uIEeJCHO/2g6Dq3kwCfQxx3 G4ar1Vj25Xg9c/WqpTDkTUY= =HmdZ -----END PGP SIGNATURE----- --=-bD4r3R4Wv1bAkkQYcn05-- From lfarkas@bppiac.hu Tue Jan 13 11:13:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 847C1C003025; Tue, 13 Jan 2004 11:13:43 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 91F7AC003023 for ; Tue, 13 Jan 2004 11:13:41 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id C8900239EC; Tue, 13 Jan 2004 11:12:03 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C3F8A239F2; Tue, 13 Jan 2004 11:12:03 +0200 (EET) Received: from mail1.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by danu.procontrol.fi (Postfix) with ESMTP id C88B7239EC for ; Tue, 13 Jan 2004 11:11:30 +0200 (EET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 7D51D16F4BE; Tue, 13 Jan 2004 10:11:29 +0100 (CET) Received: from bppiac.hu (garfield.int.bppiac.hu [192.168.0.50]) by mail1.bppiac.hu (Postfix) with ESMTP id 6054E16F4AE for ; Tue, 13 Jan 2004 10:11:29 +0100 (CET) Message-ID: <4003B641.7000008@bppiac.hu> Date: Tue, 13 Jan 2004 10:11:29 +0100 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031016 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot List Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: [Dovecot] dovecot and evolution X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jan 2004 09:13:43 -0000 X-UID: 4160 Status: O hi, in evo when I open my mailbox INBOX is in the middle of my foder list. it seems evo sort folders alphanumericaly and eg Drafts is before INBOX. is there any way to put the inbox as the first folder? it very annoying:-( ps. anyway what is the status of the new indexing code and the thread view bug? thanks. -- Levente "Si vis pacem para bellum!" From tss@iki.fi Tue Jan 13 13:45:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DB4FCC003025; Tue, 13 Jan 2004 13:45:12 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id E5E4DC003023 for ; Tue, 13 Jan 2004 13:45:10 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A7457300E49B7 for ; Tue, 13 Jan 2004 13:43:32 +0200 (EET) Subject: Re: [Dovecot] dovecot and evolution From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <4003B641.7000008@bppiac.hu> References: <4003B641.7000008@bppiac.hu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-9yD2qLNRyxUtNjq3kMfZ" Message-Id: <1073994212.3812.48.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 13 Jan 2004 13:43:32 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jan 2004 11:45:13 -0000 X-UID: 4161 Status: O Content-Length: 1642 --=-9yD2qLNRyxUtNjq3kMfZ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-01-13 at 11:11, Farkas Levente wrote: > hi, > in evo when I open my mailbox INBOX is in the middle of my foder list.=20 > it seems evo sort folders alphanumericaly and eg Drafts is before=20 > INBOX. is there any way to put the inbox as the first folder? it very=20 > annoying:-( Yes, it's pretty stupid. My mailbox names all begin with lowercase letter, so INBOX is the first in the list :) Anyway, this is Evolution's internal behaviour so Dovecot can't change it. > ps. anyway what is the status of the new indexing code and the thread=20 > view bug? > thanks. I've been promising to get new indexing code to work at the beginning of February, hopefully I'm able to do that :) Next actual release then probably at the end of February. The indexing code itself is about 80% implemented, next big thing is that most of maildir/mbox handling code needs rewriting.. Thread view bug? .. You probably mean that new mails show up under some very old mails and gets kind of lost. If I change that behaviour I'll break RFC compatibility. There was some talk about adding some new extension to THREAD to change it's behaviour, but no-one's tried to push it recently. --=-9yD2qLNRyxUtNjq3kMfZ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAA9nkyUhSUUBViskRAnDrAJsFZUCHHYqq1BXCHL+jwriJQZTnsgCfYY1X xcBCIW+gVSUdZMWCcIqBI1E= =cZKh -----END PGP SIGNATURE----- --=-9yD2qLNRyxUtNjq3kMfZ-- From dinh.viet.hoa@free.fr Tue Jan 13 13:47:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 69BBAC003026; Tue, 13 Jan 2004 13:47:08 +0200 (EET) Received: from postfix3-1.free.fr (postfix3-1.free.fr [213.228.0.44]) by talvi.dovecot.org (Postfix) with ESMTP id A723DC003025 for ; Tue, 13 Jan 2004 13:47:05 +0200 (EET) Received: from homer.priv (meriadeck-3-82-224-130-15.fbx.proxad.net [82.224.130.15]) by postfix3-1.free.fr (Postfix) with ESMTP id 23461C42CE for ; Tue, 13 Jan 2004 12:45:27 +0100 (CET) Received: from homer.priv (dinh@homer.priv [192.168.0.254] (may be forged)) by homer.priv (8.12.10/8.12.8) with ESMTP id i0DBjQgU016073 for ; Tue, 13 Jan 2004 12:45:26 +0100 Received: (from dinh@localhost) by homer.priv (8.12.10/8.12.8/Submit) id i0DBjQ1E016071; Tue, 13 Jan 2004 12:45:26 +0100 Date: Tue, 13 Jan 2004 12:44:42 +0100 From: DINH Viet Hoa To: dovecot@dovecot.org Message-ID: In-Reply-To: <4003B641.7000008@bppiac.hu> References: <4003B641.7000008@bppiac.hu> Subject: Re: [Dovecot] dovecot and evolution X-Mailer: etPan - new generation - version 0.2-dev-20031216 MIME-Version: 1.0 Content-Type: multipart/signed; boundary="4003da56_1e140293_370b"; micalg="pgp-sha1"; protocol="application/pgp-signature" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jan 2004 11:47:08 -0000 X-UID: 4162 Status: O --4003da56_1e140293_370b Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable =46arkas Levente wrote : > hi, > in evo when I open my mailbox INBOX is in the middle of my foder list.=20 > it seems evo sort folders alphanumericaly and eg Drafts is before=20 > INBOX. is there any way to put the inbox as the first folder=3F it very= =20 > annoying:-( >=20 > ps. anyway what is the status of the new indexing code and the thread=20 > view bug=3F Why do you post to Dovecot mailing list =3F This is not a problem of the server. --=20 DINH V. Hoa, etPan=21 - newsreader, mail user agent -- http://libetpan.sf.net/etpan --4003da56_1e140293_370b Content-Type: application/pgp-signature Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQBAA9pV7w+pfAWHa3MRArTgAJ9n/NwhwOLZZ1VbVw6kY/YBY0yKewCfZ6dG ky0mKurG1SiVkvNpN2hK8HM= =2RwQ -----END PGP SIGNATURE----- --4003da56_1e140293_370b-- From lfarkas@bppiac.hu Tue Jan 13 14:28:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 927D2C003026; Tue, 13 Jan 2004 14:28:07 +0200 (EET) Received: from mail1.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by talvi.dovecot.org (Postfix) with ESMTP id A4429C003025 for ; Tue, 13 Jan 2004 14:28:05 +0200 (EET) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id D59D316F4B9; Tue, 13 Jan 2004 13:26:26 +0100 (CET) Received: from [192.168.0.50] (garfield.int.bppiac.hu [192.168.0.50]) by mail1.bppiac.hu (Postfix) with ESMTP id C664116F4B7; Tue, 13 Jan 2004 13:26:26 +0100 (CET) Subject: Re: [Dovecot] dovecot and evolution From: Farkas Levente To: Timo Sirainen In-Reply-To: <1073994212.3812.48.camel@hurina> References: <4003B641.7000008@bppiac.hu> <1073994212.3812.48.camel@hurina> Content-Type: text/plain Organization: Budapesti Piac Rt. Message-Id: <1073996786.7097.36.camel@garfield.int.bppiac.hu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Tue, 13 Jan 2004 13:26:26 +0100 Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jan 2004 12:28:07 -0000 X-UID: 4163 Status: O Content-Length: 1872 On Tue, 2004-01-13 at 12:43, Timo Sirainen wrote: > On Tue, 2004-01-13 at 11:11, Farkas Levente wrote: > > hi, > > in evo when I open my mailbox INBOX is in the middle of my foder list. > > it seems evo sort folders alphanumericaly and eg Drafts is before > > INBOX. is there any way to put the inbox as the first folder? it very > > annoying:-( > > Yes, it's pretty stupid. My mailbox names all begin with lowercase > letter, so INBOX is the first in the list :) Anyway, this is Evolution's > internal behaviour so Dovecot can't change it. Drafts is uppercase however backup is lowercase and still BEFORE INBOX! anyway I post it to evo list too, but doesn't seems to response:-( > > ps. anyway what is the status of the new indexing code and the thread > > view bug? > > thanks. > > I've been promising to get new indexing code to work at the beginning of > February, hopefully I'm able to do that :) Next actual release then > probably at the end of February. we're waiting it, since I'd like to merge all of our mail server. but it's about 400 mailbox. and two week ago we have to restore all mailbox from the backup which cause that dovecot has to reindex all mailbox. which result a load 10-15 on a dual xeon. so I assume it's again the IO load. we have to manualy stop and start dovecot for about 3 hours to be able to manage the load... > The indexing code itself is about 80% implemented, next big thing is > that most of maildir/mbox handling code needs rewriting.. > > Thread view bug? .. You probably mean that new mails show up under some > very old mails and gets kind of lost. If I change that behaviour I'll > break RFC compatibility. There was some talk about adding some new > extension to THREAD to change it's behaviour, but no-one's tried to push > it recently. :-( -- Levente "Si vis pacem para bellum!" From dcrisp@wsl.com.au Wed Jan 14 01:13:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2BAC4C003026; Wed, 14 Jan 2004 01:13:36 +0200 (EET) Received: from MailMarshalC81.wsl.net.au (unknown [210.8.90.1]) by talvi.dovecot.org (Postfix) with ESMTP id 57615C003025 for ; Wed, 14 Jan 2004 01:13:32 +0200 (EET) Received: from itc89 (Not Verified[90.0.0.89]) by MailMarshalC81.wsl.net.au with NetIQ MailMarshal (v5.5.5.8) id ; Wed, 14 Jan 2004 10:11:44 +1100 From: "David Crisp" To: "'Timo Sirainen'" Subject: RE: [Dovecot] Outlook 2002 sp-2 and initial connection after OS reboot Date: Wed, 14 Jan 2004 10:11:44 +1100 Organization: WSL Consultants Pty Ltd Message-ID: <000401c3da2a$9ca904f0$5900005a@wslmelb.com.au> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4024 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 In-Reply-To: <782CB786-3FF8-11D8-AC16-000393CC2E90@iki.fi> Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: dcrisp@wsl.com.au List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jan 2004 23:13:36 -0000 X-UID: 4164 Status: O Content-Length: 3451 Hi Timo, Thanks for your response. After a little bit more research here is what I found: 1) Im not using SSL at the moment. I intend to, but for the moment I want things to WORK before adding an extra layer of complexty into the situation. 2) I have a laptop that seems to consistantly fail to connect. I have run TCPDUMP on the Debian Linux server running dovecot and I get NO traffic between the outlook client and the linux box from that machine at all when opening outlook. If I go to file connect to in outlook I can connect to the IMAP server, and if I leave it for a while it will automatically connect, but It wont connect automatically as soon as outlook is open. 3) Dovecots files don't say much other than : imap-login: Jan 14 10:02:44 Info: Login: dcrisp [90.0.0.68] I'm stumped as to what is happening here. It LOOKS like its an OUTLOOK problem. However it works fine with the OTHER imap server we have which is on a different linux box. --- David Crisp IT Systems Administrator WSL Consultants Pty Ltd dcrisp@wsl.com.au 2-8 Harvey Street Richmond Vic 3121 Australia Phone: +61 3 9429 4666 Fax: +61 3 9429 2294 Web: www.wsl.com.au > -----Original Message----- > From: Timo Sirainen [mailto:tss@iki.fi] > Sent: Tuesday, 6 January 2004 2:29 PM > To: dcrisp@wsl.com.au > Cc: dovecot@dovecot.org > Subject: Re: [Dovecot] Outlook 2002 sp-2 and initial > connection after OS reboot > > > On 29.12.2003, at 07:43, David Crisp wrote: > > > When I restart the OS (windows XP) and open up Outlook 2002 SP2 I > > don't automatically get my IMAP folders on the DOVECOT imap server. > > (the one on the uw_imap server open up straight away) > > > > When I click on inbox I cam given a message saying : unable > to connect > > to imap folders > > Does it even try to connect to server? You could check with > tcpdump or > something similiar. > > Is there anything in Dovecot's log files? What about after enabling > auth_verbose = yes? > > Do you use SSL? Does it work without? > ------------------------------------------------------------------------------ WSL Consultants Pty Ltd www.wsl.com.au Head Office: 2-8 Harvey Street, Richmond VIC 3121 Ph: (03) 9429 4666 Fax: (03) 9429 2294 Bendigo Office: Gate 6, Sharon Street La Trobe University, Bendigo PO Box 106, Strathdale VIC 3550 Ph: (03) 5444 7890 Fax: (03) 5444 7895 This message is intended solely for the individual(s) and entity(s) addressed. It is confidential and may contain legally privileged information. The use, copying or distribution of this message or any information it contains, by anyone other than the addressee, is prohibited. If you have received this message in error, please notify wsl@wsl.com.au. The mailbox address from which this message has been sent is for business mail only. Mail sent to it may be subject to security scanning and delivery of non-business messages sent to this address may not occur. Please note that the opinions expressed in this e-mail are those of the author, and are not necessarily those of WSL Consultants Pty Ltd. ------------------------------------------------------------------------------ ###################################################################### This e-mail message has been scanned and cleared by MailMarshal http://www.marshalsoftware.com ###################################################################### From keith@midnighthax.com Wed Jan 14 10:25:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 03D0BC003031; Wed, 14 Jan 2004 10:25:02 +0200 (EET) Received: from gs001.rg2.tiger-computing.com (unknown [81.168.16.33]) by talvi.dovecot.org (Postfix) with ESMTP id 0D763C003026 for ; Wed, 14 Jan 2004 10:24:59 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by gs001.rg2.tiger-computing.com (Postfix) with ESMTP id 567A7312F7; Wed, 14 Jan 2004 08:23:00 +0000 (GMT) Received: from gs001.rg2.tiger-computing.com ([127.0.0.1]) by localhost (gs001.rg2.tiger-computing.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25288-10; Wed, 14 Jan 2004 08:22:58 +0000 (GMT) Received: from zaphod.rg2.tiger-computing.com (zaphod.rg2.tiger-computing.com [10.0.0.100]) by gs001.rg2.tiger-computing.com (Postfix) with SMTP id 4D508312F6; Wed, 14 Jan 2004 08:22:58 +0000 (GMT) Date: Wed, 14 Jan 2004 08:22:58 +0000 From: Keith Edmunds To: dcrisp@wsl.com.au Subject: Re: [Dovecot] Outlook 2002 sp-2 and initial connection after OS reboot Message-Id: <20040114082258.73520dc9@zaphod.rg2.tiger-computing.com> In-Reply-To: <000401c3da2a$9ca904f0$5900005a@wslmelb.com.au> References: <782CB786-3FF8-11D8-AC16-000393CC2E90@iki.fi> <000401c3da2a$9ca904f0$5900005a@wslmelb.com.au> X-Mailer: Sylpheed version 0.9.8claws23 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gs001.rg2.tiger-computing.com Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jan 2004 08:25:02 -0000 X-UID: 4165 Status: O On Wed, 14 Jan 2004 10:11:44 +1100 "David Crisp" wrote: > It LOOKS like its an OUTLOOK problem. However it works fine with the > OTHER imap server we have which is on a different linux box. May I make a suggestion? Install a copy of 'the other' IMAP server on the same box as you have Dovecot. Stop Dovecot, run that server, see if Outlook connects. Disconnect Outlook, stop that server, start Dovecot, and try again. That way the ONLY difference is the IMAP server, and anything silly (firewall rules, routers, hardware, random acts of omnipotent beings) should be eliminated. Yes, I know you'll say none of those things apply in this case, but SOMETHING is different. Keith From tja@jakobsen.vg Wed Jan 14 15:36:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7A3D2C003022; Wed, 14 Jan 2004 15:36:30 +0200 (EET) Received: from mail.jakobsen.vg (unknown [212.242.163.63]) by talvi.dovecot.org (Postfix) with ESMTP id 74998C003020 for ; Wed, 14 Jan 2004 15:36:28 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.jakobsen.vg (Postfix) with ESMTP id 843E788F9 for ; Wed, 14 Jan 2004 14:34:47 +0100 (CET) Received: from mail.jakobsen.vg ([127.0.0.1]) by localhost (cardinal [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12500-09 for ; Wed, 14 Jan 2004 14:34:45 +0100 (CET) Received: from emperor.jakobsen.vg (emperor.jakobsen.vg [192.168.2.2]) by mail.jakobsen.vg (Postfix) with ESMTP id 7B98B88F2 for ; Wed, 14 Jan 2004 14:34:45 +0100 (CET) Received: by emperor.jakobsen.vg (Postfix, from userid 1000) id 6487115500; Wed, 14 Jan 2004 14:34:45 +0100 (CET) Date: Wed, 14 Jan 2004 14:34:45 +0100 From: Tim Jakobsen To: dovecot@dovecot.org Message-ID: <20040114133445.GB357@emperor.jakobsen.vg> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline User-Agent: Mutt/1.4.1i X-Virus-Scanned: by amavisd-new at jakobsen.vg Subject: [Dovecot] Internal error during expunge X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jan 2004 13:36:30 -0000 X-UID: 4166 Status: O Hi, I'm using dovecot-0.99.10.4_1 on Freebsd. CPU architecture is i386. When ever I try to move messages og delete dem i get an internal error. Below I've tried to show what dovecot says. Mail gets stored using mbox format. After giving the internal error you kan try to expunge the mail again and it works without error. Any suggestions or ideas as to what could be wrong? is it a bug? A003 STORE 1 +FLAGS (\Deleted) * 1 FETCH (FLAGS (\Deleted \Seen)) A003 OK Store completed. A004 expunge imap(foo): Error: Error indexing mbox file /home/foo/Mail/INBOX.Drafts: LF not found where expected A004 NO Internal error [2004-01-14 14:08:13] Tia. -- Regards, Tim From benjamin@weiss.name Fri Jan 16 18:40:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 30E58C003021; Fri, 16 Jan 2004 18:40:14 +0200 (EET) Received: from lakemtao05.cox.net (lakemtao05.cox.net [68.1.17.116]) by talvi.dovecot.org (Postfix) with ESMTP id 9551FC003020 for ; Fri, 16 Jan 2004 18:40:10 +0200 (EET) Received: from mail.birdvet.org ([68.97.130.220]) by lakemtao05.cox.net (InterMail vM.5.01.06.05 201-253-122-130-105-20030824) with ESMTP id <20040116163823.ZXBL29834.lakemtao05.cox.net@mail.birdvet.org> for ; Fri, 16 Jan 2004 11:38:23 -0500 Received: from osbi03981 (unknown [204.87.126.161]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.birdvet.org (Postfix) with ESMTP id 0522A1B607 for ; Fri, 16 Jan 2004 10:38:16 -0600 (CST) Message-ID: <000f01c3dc4f$f81c7ed0$7f790180@osbi03981> From: "Benjamin J. Weiss" To: Date: Fri, 16 Jan 2004 10:44:11 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4927.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4927.1200 X-birdvet.org-MailScanner-Information: Please contact the ISP for more information X-birdvet.org-MailScanner: Found to be clean X-birdvet.org-MailScanner-SpamCheck: Subject: [Dovecot] Certificate Authority-signed certs in dovecot? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Jan 2004 16:40:14 -0000 X-UID: 4167 Status: O Content-Length: 1471 Hi! Sorry if this has been covered. I've just started using dovecot and I've searched via google and I've downloaded the maillist archives, but I haven't found a solution. I'm using Fedora Core 1, with dovecot-0.99.10-6. When I'm at work, I access my home mail server using Outlook Express (I know, I know, but it's the only client I'm allowed to use at work). Now, I'm able to get to my email, but I get a warning popup box each time I connect to the server, that the authenticity of the certificate can't be verified. I'm assuming that that's because I am using a self-signed certificate. Now, I'm also using postfix, and it allows for me creating my own CA certificate, and using it to sign my own certificates. The /etc/postfix/main.cf entries are: smtpd_tls_key_file = /etc/postfix/newreq.pem smtpd_tls_cert_file = /etc/postfix/newcert.pem smtpd_tls_CAfile = /etc/postfix/cacert.pem but while I see the following two lines in /etc/dovecot.conf: ssl_cert_file = /usr/share/ssl/certs/dovecot.pem ssl_key_file = /usr/share/ssl/private/dovecot.pem I don't see how to specify my CA cert. I'm pretty much a noob when it comes to openssl, but I've been able to follow directions to get the TLS working in both postfix and dovecot. I just want to get rid of that annoying message. I figure that there's a way to sign my dovecot certs with the ca cert I've already created for postfix, and tell dovecot about it somehow. Has anybody done this? Thanks! Ben From jwt@qth.ath.cx Sat Jan 17 03:15:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D27ADC003021; Sat, 17 Jan 2004 03:15:14 +0200 (EET) Received: from qth.ath.cx (usen-221x115x224x2.ap-US01.usen.ad.jp [221.115.224.2]) by talvi.dovecot.org (Postfix) with ESMTP id 86009C003020 for ; Sat, 17 Jan 2004 03:15:12 +0200 (EET) Received: from jwt by qth.ath.cx with local (Exim 4.30) id 1Ahf1g-00081Y-FF for dovecot@dovecot.org; Sat, 17 Jan 2004 10:13:24 +0900 Date: Sat, 17 Jan 2004 10:13:24 +0900 From: Jim Tittsler To: dovecot@dovecot.org Subject: Re: [Dovecot] Certificate Authority-signed certs in dovecot? Message-ID: <20040117011324.GB30457@server.onjapan.net> References: <000f01c3dc4f$f81c7ed0$7f790180@osbi03981> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <000f01c3dc4f$f81c7ed0$7f790180@osbi03981> User-Agent: Mutt/1.4.1i Organization: 7J1AJH/AI8A Tokyo X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jan 2004 01:15:15 -0000 X-UID: 4168 Status: O On Fri, Jan 16, 2004 at 10:44:11AM -0600, Benjamin J. Weiss wrote: > I'm using Fedora Core 1, with dovecot-0.99.10-6. When I'm at work, I access > my home mail server using Outlook Express (I know, I know, but it's the only > client I'm allowed to use at work). Now, I'm able to get to my email, but I > get a warning popup box each time I connect to the server, that the > authenticity of the certificate can't be verified. I'm assuming that that's > because I am using a self-signed certificate. You can use Internet Explorer to add your CA certificate to your client machine (and it will also be honored by Outlook Express). Or you can add just the cert for the IMAP machine. http://www.microsoft.com/Windows/ie/using/howto/digitalcert/using.asp From tss@iki.fi Mon Jan 19 19:05:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 985D4C003021; Mon, 19 Jan 2004 19:05:09 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 00BC6C003020 for ; Mon, 19 Jan 2004 19:05:06 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 06685300DFC12 for ; Mon, 19 Jan 2004 19:03:13 +0200 (EET) Subject: Re: [Dovecot] Certificate Authority-signed certs in dovecot? From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <000f01c3dc4f$f81c7ed0$7f790180@osbi03981> References: <000f01c3dc4f$f81c7ed0$7f790180@osbi03981> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-QjjBU6cV8YXoBFhUAxEd" Message-Id: <1074531793.29845.18.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 19 Jan 2004 19:03:13 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jan 2004 17:05:09 -0000 X-UID: 4169 Status: O Content-Length: 5605 --=-QjjBU6cV8YXoBFhUAxEd Content-Type: multipart/mixed; boundary="=-PnA6zWnwwo7b2wmSBwXZ" --=-PnA6zWnwwo7b2wmSBwXZ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-01-16 at 18:44, Benjamin J. Weiss wrote: > but while I see the following two lines in /etc/dovecot.conf: >=20 > ssl_cert_file =3D /usr/share/ssl/certs/dovecot.pem > ssl_key_file =3D /usr/share/ssl/private/dovecot.pem >=20 > I don't see how to specify my CA cert. Currently there's no way to do it, but Zach Bagnall wrote a patch some time ago. Now that I remember it, I'll commit it to CVS :) --=-PnA6zWnwwo7b2wmSBwXZ Content-Disposition: attachment; filename=dovecot-0.99.10.2-ca.diff Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=dovecot-0.99.10.2-ca.diff; charset=iso-8859-15 ZGlmZiAtdXIgZG92ZWNvdC0wLjk5LjEwLjIvc3JjL2xvZ2luLWNvbW1vbi9zc2wtcHJveHktb3Bl bnNzbC5jIGRvdmVjb3QtMC45OS4xMC4yLWNhL3NyYy9sb2dpbi1jb21tb24vc3NsLXByb3h5LW9w ZW5zc2wuYw0KLS0tIGRvdmVjb3QtMC45OS4xMC4yL3NyYy9sb2dpbi1jb21tb24vc3NsLXByb3h5 LW9wZW5zc2wuYwkyMDAzLTA2LTE4IDEzOjM1OjU1LjAwMDAwMDAwMCArMTIwMA0KKysrIGRvdmVj b3QtMC45OS4xMC4yLWNhL3NyYy9sb2dpbi1jb21tb24vc3NsLXByb3h5LW9wZW5zc2wuYwkyMDAz LTExLTE4IDE1OjE0OjAzLjAwMDAwMDAwMCArMTMwMA0KQEAgLTQwMyw5ICs0MDMsMTAgQEANCiAN CiB2b2lkIHNzbF9wcm94eV9pbml0KHZvaWQpDQogew0KLQljb25zdCBjaGFyICpjZXJ0ZmlsZSwg KmtleWZpbGUsICpwYXJhbWZpbGU7DQorCWNvbnN0IGNoYXIgKmNhZmlsZSwgKmNlcnRmaWxlLCAq a2V5ZmlsZSwgKnBhcmFtZmlsZTsNCiAJY2hhciBidWY7DQogDQorCWNhZmlsZSA9IGdldGVudigi U1NMX0NBX0ZJTEUiKTsNCiAJY2VydGZpbGUgPSBnZXRlbnYoIlNTTF9DRVJUX0ZJTEUiKTsNCiAJ a2V5ZmlsZSA9IGdldGVudigiU1NMX0tFWV9GSUxFIik7DQogCXBhcmFtZmlsZSA9IGdldGVudigi U1NMX1BBUkFNX0ZJTEUiKTsNCkBAIC00MjgsNiArNDI5LDEzIEBADQogCQkJU1NMX0NJUEhFUl9M SVNULCBzc2xfbGFzdF9lcnJvcigpKTsNCiAJfQ0KIA0KKwlpZihjYWZpbGUpIHsNCisJCWlmIChT U0xfQ1RYX2xvYWRfdmVyaWZ5X2xvY2F0aW9ucyhzc2xfY3R4LCBjYWZpbGUsIE5VTEwpICE9IDEp IHsNCisJCQlpX2ZhdGFsKCJDYW4ndCBsb2FkIENBIGZpbGUgJXM6ICVzIiwNCisJCQkJY2FmaWxl LCBzc2xfbGFzdF9lcnJvcigpKTsNCisJCX0NCisJfQ0KKw0KIAlpZiAoU1NMX0NUWF91c2VfY2Vy dGlmaWNhdGVfY2hhaW5fZmlsZShzc2xfY3R4LCBjZXJ0ZmlsZSkgIT0gMSkgew0KIAkJaV9mYXRh bCgiQ2FuJ3QgbG9hZCBjZXJ0aWZpY2F0ZSBmaWxlICVzOiAlcyIsDQogCQkJY2VydGZpbGUsIHNz bF9sYXN0X2Vycm9yKCkpOw0KZGlmZiAtdXIgZG92ZWNvdC0wLjk5LjEwLjIvc3JjL21hc3Rlci9s b2dpbi1wcm9jZXNzLmMgZG92ZWNvdC0wLjk5LjEwLjItY2Evc3JjL21hc3Rlci9sb2dpbi1wcm9j ZXNzLmMNCi0tLSBkb3ZlY290LTAuOTkuMTAuMi9zcmMvbWFzdGVyL2xvZ2luLXByb2Nlc3MuYwky MDAzLTA1LTI3IDAzOjI3OjEzLjAwMDAwMDAwMCArMTIwMA0KKysrIGRvdmVjb3QtMC45OS4xMC4y LWNhL3NyYy9tYXN0ZXIvbG9naW4tcHJvY2Vzcy5jCTIwMDMtMTEtMTggMTU6MDc6MzMuMDAwMDAw MDAwICsxMzAwDQpAQCAtMzk2LDYgKzM5NiwxMCBAQA0KIAllbnZfcHV0KCJET1ZFQ09UX01BU1RF Uj0xIik7DQogDQogCWlmICghc2V0LT5zc2xfZGlzYWJsZSkgew0KKwkJaWYoc2V0LT5zc2xfY2Ff ZmlsZSkgew0KKwkJCWVudl9wdXQodF9zdHJjb25jYXQoIlNTTF9DQV9GSUxFPSIsDQorCQkJCQkg ICAgc2V0LT5zc2xfY2FfZmlsZSwgTlVMTCkpOw0KKwkJfQ0KIAkJZW52X3B1dCh0X3N0cmNvbmNh dCgiU1NMX0NFUlRfRklMRT0iLA0KIAkJCQkgICAgc2V0LT5zc2xfY2VydF9maWxlLCBOVUxMKSk7 DQogCQllbnZfcHV0KHRfc3RyY29uY2F0KCJTU0xfS0VZX0ZJTEU9Iiwgc2V0LT5zc2xfa2V5X2Zp bGUsIE5VTEwpKTsNCmRpZmYgLXVyIGRvdmVjb3QtMC45OS4xMC4yL3NyYy9tYXN0ZXIvbWFzdGVy LXNldHRpbmdzLmMgZG92ZWNvdC0wLjk5LjEwLjItY2Evc3JjL21hc3Rlci9tYXN0ZXItc2V0dGlu Z3MuYw0KLS0tIGRvdmVjb3QtMC45OS4xMC4yL3NyYy9tYXN0ZXIvbWFzdGVyLXNldHRpbmdzLmMJ MjAwMy0xMS0xMSAxMToxOTo0OS4wMDAwMDAwMDAgKzEzMDANCisrKyBkb3ZlY290LTAuOTkuMTAu Mi1jYS9zcmMvbWFzdGVyL21hc3Rlci1zZXR0aW5ncy5jCTIwMDMtMTEtMTggMTU6MTM6MzIuMDAw MDAwMDAwICsxMzAwDQpAQCAtMzAsNiArMzAsNyBAQA0KIAlERUYoU0VUX1NUUiwgcG9wM3NfbGlz dGVuKSwNCiANCiAJREVGKFNFVF9CT09MLCBzc2xfZGlzYWJsZSksDQorCURFRihTRVRfU1RSLCBz c2xfY2FfZmlsZSksDQogCURFRihTRVRfU1RSLCBzc2xfY2VydF9maWxlKSwNCiAJREVGKFNFVF9T VFIsIHNzbF9rZXlfZmlsZSksDQogCURFRihTRVRfU1RSLCBzc2xfcGFyYW1ldGVyc19maWxlKSwN CkBAIC0xNDQsNiArMTQ1LDcgQEANCiAJTUVNQkVSKHBvcDNzX2xpc3RlbikgTlVMTCwNCiANCiAJ TUVNQkVSKHNzbF9kaXNhYmxlKSBGQUxTRSwNCisJTUVNQkVSKHNzbF9jYV9maWxlKSBOVUxMLA0K IAlNRU1CRVIoc3NsX2NlcnRfZmlsZSkgU1NMRElSIi9jZXJ0cy9kb3ZlY290LnBlbSIsDQogCU1F TUJFUihzc2xfa2V5X2ZpbGUpIFNTTERJUiIvcHJpdmF0ZS9kb3ZlY290LnBlbSIsDQogCU1FTUJF Uihzc2xfcGFyYW1ldGVyc19maWxlKSAic3NsLXBhcmFtZXRlcnMuZGF0IiwNCkBAIC0zODIsNiAr Mzg0LDExIEBADQogDQogI2lmZGVmIEhBVkVfU1NMDQogCWlmICghc2V0LT5zc2xfZGlzYWJsZSkg ew0KKwkJaWYgKHNldC0+c3NsX2NhX2ZpbGUgJiYgYWNjZXNzKHNldC0+c3NsX2NhX2ZpbGUsIFJf T0spIDwgMCkgew0KKwkJCWlfZmF0YWwoIkNhbid0IHVzZSBTU0wgQ0EgZmlsZSAlczogJW0iLA0K KwkJCQlzZXQtPnNzbF9jYV9maWxlKTsNCisJCX0NCisNCiAJCWlmIChhY2Nlc3Moc2V0LT5zc2xf Y2VydF9maWxlLCBSX09LKSA8IDApIHsNCiAJCQlpX2ZhdGFsKCJDYW4ndCB1c2UgU1NMIGNlcnRp ZmljYXRlICVzOiAlbSIsDQogCQkJCXNldC0+c3NsX2NlcnRfZmlsZSk7DQpkaWZmIC11ciBkb3Zl Y290LTAuOTkuMTAuMi9zcmMvbWFzdGVyL21hc3Rlci1zZXR0aW5ncy5oIGRvdmVjb3QtMC45OS4x MC4yLWNhL3NyYy9tYXN0ZXIvbWFzdGVyLXNldHRpbmdzLmgNCi0tLSBkb3ZlY290LTAuOTkuMTAu Mi9zcmMvbWFzdGVyL21hc3Rlci1zZXR0aW5ncy5oCTIwMDMtMDgtMjUgMDE6MTE6NTYuMDAwMDAw MDAwICsxMjAwDQorKysgZG92ZWNvdC0wLjk5LjEwLjItY2Evc3JjL21hc3Rlci9tYXN0ZXItc2V0 dGluZ3MuaAkyMDAzLTExLTE4IDE0OjU2OjA5LjAwMDAwMDAwMCArMTMwMA0KQEAgLTE2LDYgKzE2 LDcgQEANCiAJY29uc3QgY2hhciAqcG9wM3NfbGlzdGVuOw0KIA0KIAlpbnQgc3NsX2Rpc2FibGU7 DQorCWNvbnN0IGNoYXIgKnNzbF9jYV9maWxlOw0KIAljb25zdCBjaGFyICpzc2xfY2VydF9maWxl Ow0KIAljb25zdCBjaGFyICpzc2xfa2V5X2ZpbGU7DQogCWNvbnN0IGNoYXIgKnNzbF9wYXJhbWV0 ZXJzX2ZpbGU7DQo= --=-PnA6zWnwwo7b2wmSBwXZ-- --=-QjjBU6cV8YXoBFhUAxEd Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBADA3RyUhSUUBViskRApJnAJ48PmCjdObvHHV4K5YqwqSuJHERrgCgoyNC P20HMSb+WFZyuNmlBXSRAwE= =q2nQ -----END PGP SIGNATURE----- --=-QjjBU6cV8YXoBFhUAxEd-- From tss@iki.fi Mon Jan 19 19:09:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C4137C003024; Mon, 19 Jan 2004 19:09:07 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id DF51AC003020 for ; Mon, 19 Jan 2004 19:09:04 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id F20A4300DFC05 for ; Mon, 19 Jan 2004 19:07:11 +0200 (EET) Subject: Re: [Dovecot] Internal error during expunge From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20040114133445.GB357@emperor.jakobsen.vg> References: <20040114133445.GB357@emperor.jakobsen.vg> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-YeS/ScJ1FwHjiRXBaQzp" Message-Id: <1074532031.29849.21.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 19 Jan 2004 19:07:11 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jan 2004 17:09:07 -0000 X-UID: 4170 Status: O Content-Length: 1187 --=-YeS/ScJ1FwHjiRXBaQzp Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-01-14 at 15:34, Tim Jakobsen wrote: > When ever I try to move messages og delete dem i get an internal error. > Below I've tried to show what dovecot says. Mail gets stored using mbox > format. > After giving the internal error you kan try to expunge the mail again > and it works without error. >=20 > Any suggestions or ideas as to what could be wrong? is it a bug? =20 .. > imap(foo): Error: Error indexing mbox file /home/foo/Mail/INBOX.Drafts: > LF not found where expected > A004 NO Internal error [2004-01-14 14:08:13] It's a bug in Dovecot. It seems to happen only with drafts mbox, most likely because it's the only mailbox that gets often empty. I've thought about leaving the fix for mbox rewrite.. --=-YeS/ScJ1FwHjiRXBaQzp Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBADA6/yUhSUUBViskRAkIRAJ9OPGIwXos0oude1dT5z5A+DjLxXQCdFbUS SP9Q4itvU+aWLyxRF+lbYe4= =+wWp -----END PGP SIGNATURE----- --=-YeS/ScJ1FwHjiRXBaQzp-- From ika@expressmail.dk Fri Jan 23 14:47:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4019DC003024; Fri, 23 Jan 2004 14:47:19 +0200 (EET) Received: from mail.expressmail.dk (62.79.48.16.adsl.roen.tiscali.dk [62.79.48.16]) by talvi.dovecot.org (Postfix) with ESMTP id 3BBE4C003021 for ; Fri, 23 Jan 2004 14:47:17 +0200 (EET) Received: from localhost (localhost.expressmail.dk [127.0.0.1]) by mail.expressmail.dk (Postfix) with ESMTP id CA5D746FBC for ; Fri, 23 Jan 2004 13:48:48 +0100 (CET) MIME-Version: 1.0 To: dovecot@dovecot.org From: Ian =?ISO-8859-1?Q?Armstrong=A0?= X-Mailer: Express Webmail using Crux Linux (http://www.expressmail.dk/) X-Location: The Island of Bornholm, Denmark. Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <20040123124848.CA5D746FBC@mail.expressmail.dk> Date: Fri, 23 Jan 2004 13:48:48 +0100 (CET) Subject: [Dovecot] State of MySQL authentication X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Jan 2004 12:47:19 -0000 X-UID: 4171 Status: O I am looking for a pop3 server that can authenticate via MySQL. It also needs to be able to do a POST_LOGIN_QUERY. I want to be able to update a "date" field in the database, so that I can see which accounts are active, and which are not. Please let me know more about Dovecot and MySQL. Thanks Ian. Ian Armstrong ---------------------------------- ika@expressmail.dk From admin@thelight.org.uk Sat Jan 24 15:01:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3A891C003025; Sat, 24 Jan 2004 15:01:05 +0200 (EET) Received: from usercf098.dsl.pipex.com (usercf098.dsl.pipex.com [62.190.237.98]) by talvi.dovecot.org (Postfix) with ESMTP id F2717C003024 for ; Sat, 24 Jan 2004 15:01:02 +0200 (EET) Received: from [192.168.7.2] (helo=THUNDER) by usercf098.dsl.pipex.com with asmtp (TLSv1:RC4-MD5:128) (Exim 4.30) id 1AkNNX-0003nT-SJ for dovecot@dovecot.org; Sat, 24 Jan 2004 12:59:11 +0000 From: "Simon Bell" To: Date: Sat, 24 Jan 2004 12:58:31 -0000 Organization: TheLight X-Mailer: Microsoft Office Outlook, Build 11.0.5510 MIME-Version: 1.0 Thread-Index: AcPiecOsiocUiTqARmGW9ev5loJ8oA== Content-Type: multipart/signed; micalg=SHA1; protocol="application/x-pkcs7-signature"; boundary="----=_NextPart_000_01AF_01C3E279.C3E7E2A0" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-added: This email was sent via TheLight mail server X-added: Rules are available at http://mail.thelight.org.uk/rules.html X-added: If you believe this email was sent in violation of the rules X-added: Please email abuse@thelight.org.uk with appropriate information Message-Id: <20040124130102.F2717C003024@talvi.dovecot.org> Subject: [Dovecot] dovecot crash X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: admin@thelight.org.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Jan 2004 13:01:05 -0000 X-UID: 4172 Status: O Content-Length: 5961 This is a multi-part message in MIME format. ------=_NextPart_000_01AF_01C3E279.C3E7E2A0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit I woke up this morning and my dovecot server had died with the following in the dovecot.log file: pop3-login: Jan 23 10:23:08 Fatal: RAND_bytes() failed: error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded dovecot: Jan 23 10:23:08 Error: Login process died too early - shutting down dovecot: Jan 23 10:23:08 Error: child 16321 (login) returned error 89 How can I find out whats going wrong? ------=_NextPart_000_01AF_01C3E279.C3E7E2A0 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIILgzCCBD4w ggImoAMCAQICAg1LMA0GCSqGSIb3DQEBBAUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsT FWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0 eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnMB4XDTAzMTAxNzExMjMwMVoXDTA0 MTAxNjExMjMwMVowQTEZMBcGA1UEAxMQQ0FjZXJ0IFVzZXIgQ2VydDEkMCIGCSqGSIb3DQEJARYV YWRtaW5AdGhlbGlnaHQub3JnLnVrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFWdW9wGTI WIZfNx8enH/jnmheKvCXfh6tBujxCwrgaC5+KbRcpTIKBrW/gLToK14yP0FuPkPAwWYR1/ZnrPPy 6+72LX4fSUiKDr0QCLDcbs+f2X/0PWotZBogi/7VZGOqL9f+UTKlAxh0h3F8jSYFWewPYf4OODU9 lNoYFdeEFwIDAQABo4GLMIGIMAwGA1UdEwEB/wQCMAAwVgYJYIZIAYb4QgENBEkWR1RvIGdldCB5 b3VyIG93biBjZXJ0aWZpY2F0ZSBmb3IgRlJFRSBoZWFkIG92ZXIgdG8gaHR0cDovL3d3dy5jYWNl cnQub3JnMCAGA1UdEQQZMBeBFWFkbWluQHRoZWxpZ2h0Lm9yZy51azANBgkqhkiG9w0BAQQFAAOC AgEAbEmsovaWwEcBMZUeylnpZN5ieYj7hiUcfCjmqTyXg/sULLweoqXJUnV/jxr2cdb7SPwMGd08 1ot4dk8xwEhD/QFm083h540ol6KKJfCmqQvAXBdfthQx1pkU4wE78Ad67LQ0opFBFz4n5rZy3bwt QX/mph40mJIj8g4TzJL1d+YRZ22RbrOQdJ9p7RlIU6zQGwYSIToEzUMMiD8eefgIOMvbih46q/2a EDLB5w+Xagd6x9E8y7gpGPkCMmUor5gl8fVRZofsL+7Og00ad7fY4c57Pwl3hcDhHMfFhJBWhF8M X79HDjh1xWS5ezLv7/lN8FU/uAsP0Ax89CqHIVIH0S6DnAF3UdoFsvWHC05SsbY623nTOL7ALc0n o4PNBQpgwSvpI8S+piFHnsPcrMxcDvb4ANmmJaI41Oo/2LpyYa8WZvsZdq2GEEtt9S0pOCCiBOrW +Yl3zdCbxgoajOJ8PirYNTXLRp9ygKPc47lCBrxJB6GQa1Xk0BwGKwkoiFd6XCRVIyboNQKTjO25 za0j8O0zrCKSsRbUZ0daSf2yWZdMBjAmwuBVPFL29FNZVnYmFWB85yNBMzXB2nW13MAn8SgPczkp vYUWM39G1PMOy8WKTpFYRJteJTxS6enW6PHOeTlWsqXVV+fNoCrMi/Kt1iz/EgXl5oEm1Jt/8fZc ZHcwggc9MIIFJaADAgECAgEAMA0GCSqGSIb3DQEBBAUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAc BgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1 dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnMB4XDTAzMDMzMDEyMjk0 OVoXDTMzMDMyOTEyMjk0OVoweTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3 dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZI hvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC AQDOIsDiRn3sNigHUJbyoDNAjEvxO2Y/MeVrAjbb1nz28YiPTnc2BUGV+QnwEs9GhnNgt25+6MBY ZK7NsK1FFwxj+mcK6NbSvz7nmMTwTPrgA7s1XWwh3p4g2brNZjI3cvr3CPXHzVjJjucOXuo+/hyh FAoVbIaEW2RmKnqpS1N59Yiie+4vCmErjbJ+TValE+zq2pKerERBHlhgZQVm+MBEvcuU90J+C/dl aJhRBfDzBZEEHRsXguzIV7vDa3qI8bByzCVbIJHsFgISjzLpFxhI0McFLgIwQrglnAVrP6o6p+tT SPfo0rYHmNwbxjR/f8kcgnoFWCsIW/M4oqsXXWbJmNeeEIui0t10mvdxDHJg381vmDOdljR2PiR6 krAOlR5v5qBFOEeq10HtSrcS9tcbg4oPLtgJtlnXqgT/0pN9aC7di0urWLovjeqVp6DDVIml+9uL USKdssO+Eb4skYaLlnitINOKLxo/xtBRZYchsRkBZX9FHIf1fNBBTE8pmCH9Mx91DARR+hl329QU HO6Bwx31mLdpBpEi3QBQzIExrBIHezjaaFvmK9R+yV+t6OtyTPMB5Usgv5qmV8qRAAGLoXUhN7Vj DWc+Rk9wIGfOxdZZ2wLg8NLLzbpit5BB6N0g5Cm8ZClCyCLceJr/Q+yYGwlRS1pawnHxxMtzqeWh CwIDAQABo4IBzjCCAcowHQYDVR0OBBYEFBa1MhvUx/Pg5o7zvdKwOu6yORjRMIGjBgNVHSMEgZsw gZiAFBa1MhvUx/Pg5o7zvdKwOu6yORjRoX2kezB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQL ExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmluZyBBdXRob3Jp dHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZ4IBADAPBgNVHRMBAf8EBTADAQH/ MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDAwBglg hkgBhvhCAQQEIxYhaHR0cHM6Ly93d3cuY2FjZXJ0Lm9yZy9yZXZva2UuY3JsMDQGCWCGSAGG+EIB CAQnFiVodHRwOi8vd3d3LmNhY2VydC5vcmcvaW5kZXgucGhwP2lkPTEwMFYGCWCGSAGG+EIBDQRJ FkdUbyBnZXQgeW91ciBvd24gY2VydGlmaWNhdGUgZm9yIEZSRUUgaGVhZCBvdmVyIHRvIGh0dHA6 Ly93d3cuY2FjZXJ0Lm9yZzANBgkqhkiG9w0BAQQFAAOCAgEAKMfunIICulyAEso1Ch2Bb4lqmczy aA9/p+GNWJU+vfIGw5BarLVg9plDAaOIcJydYp2kh69nWA0wNjvmrUjTy3QChnE+4isDaPE0YkBG O1PqKPSs+2aVU4pNXf072WDXynlpO7FlkqbGgYJcnM3rTQGKpd8RVaoVyh83wIKYcGHbanyWo44u VD5PIamQ79yCv9zoRa1NkHMIPJRlsASZdn/ivMJqFaqXBDck2B6UTm0OUb7WxI/Klm33Q9/oMGUn O3u7Q0NjxEP3suxozOEZjiL7mOF7Wj4BNzuLCLCi85VOGsubzZqx27Jw8C1K29iw429FSDMS//48 MipU98T3ivCII8JH/mR6ccDRHqZjsAd+pC/TAY/cnyu2xgipD5NIJfwS/Z9C3PPEPvZXsNfdadEG dzQKS9LKoP8cxozJFr7EzDI3aHNfCPtR90lTNgUKlQJM8nkaEPbYOnWc8x3xog1wZ4Ybsxb1L+Wk 63mG+T0LwnMLpZmsb/xnuOUvC6YYJI170Ug1KRhArJNg4ZaGULR6WdiPIQufz4KRxju/a9wHkbmX ViOqtmyUxkgGPOTOTqrk9i8J3FNvLvx06zpjmcKmrIm8p7JEoA2KEONs8iTL+pufcEcu3hSL1LIg CZaiZPEkHNyhNZwVstS8VS59BvWcDlX0WtaT2natJXNMxUMxggMVMIIDEQIBATB/MHkxEDAOBgNV BAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0Eg Q2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3Jn AgINSzAJBgUrDgMCGgUAoIIB7DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJ BTEPFw0wNDAxMjQxMjU4MzBaMCMGCSqGSIb3DQEJBDEWBBSmz28i/E5+RtdcMvgwWvPwN5ZZNzBn BgkqhkiG9w0BCQ8xWjBYMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIB QDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDAHBgUrDgMCGjAKBggqhkiG9w0CBTCBjwYJKwYBBAGC NxAEMYGBMH8weTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQu b3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJz dXBwb3J0QGNhY2VydC5vcmcCAg1LMIGRBgsqhkiG9w0BCRACCzGBgaB/MHkxEDAOBgNVBAoTB1Jv b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBT aWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnAgINSzAN BgkqhkiG9w0BAQEFAASBgJQkRn3ooi7XHpHS3OZR783Zb9exIor+waomJekAm7wsZzY2sotuSgTl dPArJae3LuzS57ott2PI0jeGecobtvWYUr/9pyH3xKEX8//am70phnK4zas2vTawwrv0WcDpwoNy BYY5EbOeEoXAfoaCO3rB0NkU8lMeFaOsku2Xyjx/AAAAAAAA ------=_NextPart_000_01AF_01C3E279.C3E7E2A0-- From rjohnson@medata.com Sun Jan 25 00:10:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 01098C003023; Sun, 25 Jan 2004 00:10:16 +0200 (EET) Received: from fed1mtao05.cox.net (fed1mtao05.cox.net [68.6.19.126]) by talvi.dovecot.org (Postfix) with ESMTP id 0A3FDC003020 for ; Sun, 25 Jan 2004 00:10:13 +0200 (EET) Received: from linux.htmlspinnr.org ([68.99.186.15]) by fed1mtao05.cox.net (InterMail vM.5.01.06.05 201-253-122-130-105-20030824) with ESMTP id <20040124220801.PIJV15401.fed1mtao05.cox.net@linux.htmlspinnr.org> for ; Sat, 24 Jan 2004 17:08:01 -0500 Received: from medata.com (rickyj [192.168.1.3]) by linux.htmlspinnr.org (8.12.10/8.12.10) with ESMTP id i0OM7t9t008158 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Sat, 24 Jan 2004 14:07:56 -0800 Message-ID: <4012ECC0.5030207@medata.com> Date: Sat, 24 Jan 2004 14:08:00 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5a (Windows/20040120) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.83.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: [Dovecot] Customflags problem? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Jan 2004 22:10:16 -0000 X-UID: 4173 Status: O Content-Length: 1774 I'm new here, but I'll just jump right in. I've been using Dovecot with Fedora for a bit with the default mbox format. I recently transitioned to the Maildir format since some users were getting mailboxes in excess of 1GB in size, which made expunging and flagging no easy task. Anyway, it appears now with Maildir, that customflags are "added" instead of "replaced". I.E. in Thunderbird or Mozilla, if I set a message label of 5 (Later), and then change it to 3 (Personal), all's fine. However, if I switch it back to Later, or attempt to remove it, the flags are not removed. When I examine the flags on the filename, I see something like :2,FSag. If I attempt to change to additional labels and/or flag the message, I'll end up with aefg on the same message. Unfortunately only the first flag is accepted, and Moz/Tbird keeps label 5 as "a" was "read" delivered first. If I mark label as none, the flags remain, meaning I have to manually rename the file to remove the flags. This wasn't a problem using the mbox format, since the flags were stored in the file itself. Is this something broken in how the reader is requesting or is it a fault in the dæmon itself not removing old customflags before adding new? I suspect something inside src/lib-index/maildir/maildir-index.c Also of note, Evolution can seem to remove them, but only does so upon exit. I've reproduced it in 0.99.10-6 (fedora core 1) and 0.99.10.4-1 (fedora devel) versions. I filed a Bugzilla report at bugzilla.redhat.com under 114230 (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=114230). -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. (from home) PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From marko@sarunac.com Tue Jan 27 00:21:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 29183C002801; Tue, 27 Jan 2004 00:21:06 +0200 (EET) Received: from vancouveronthenet.com (orc.vancouveronthenet.com [142.179.115.91]) by talvi.dovecot.org (Postfix) with ESMTP id 107BBC002800 for ; Tue, 27 Jan 2004 00:21:04 +0200 (EET) Received: from mail.sarunac.com (localhost [127.0.0.1]) by vancouveronthenet.com (Postfix) with SMTP id 6B7C03266DD for ; Mon, 26 Jan 2004 14:09:18 -0800 (PST) Received: from 142.179.114.142 (SquirrelMail authenticated user marko) by mail.vancouveronthenet.com with HTTP; Mon, 26 Jan 2004 14:09:18 -0800 (PST) Message-ID: <34267.142.179.114.142.1075154958.squirrel@mail.vancouveronthenet.com> Date: Mon, 26 Jan 2004 14:09:18 -0800 (PST) From: "marko sarunac" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 X-Priority: 3 Importance: Normal Subject: [Dovecot] Dovecot not creating dirs X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Jan 2004 22:21:06 -0000 X-UID: 4174 Status: O Content-Length: 1541 I have looked trough the archives and found similar scenarios but mine is a bit diff I got dovecot running (0.99.10.4-2) on debian testing and what is happening is that i created /home/marko/mail directory and configured my postfix to deliver mail to ~/mail/Inbox my default mail env is default_mail_env = mbox:%h/mail/:INBOX=%h/mail/Inbox:INDEX=%h/mail/.indexes Now when i first started my mozilla imap client what happened was! Jan 26 21:46:34 imap(marko): Can't create temp index /home/marko/mail/.indexes/.imap/INBOX/.temp.limbic.7523: No such file or directory Jan 26 21:46:34 imap(marko): utime() failed with index file /home/marko/mail/.indexes/.imap/INBOX/.imap.index: No such file or directory after i manually :~/mail$ mkdir .indexes :~/mail$ cd .indexes/ :~/mail/.indexes$ mkdir .imap :~/mail/.indexes$ cd .imap/ :~/mail/.indexes/.imap$ mkdir INBOX :~/mail/.indexes/.imap$ cd INBOX/ :~/mail/.indexes/.imap/INBOX$ i only get Jan 26 22:06:34 limbic imap(marko): utime() failed with index file /home/marko/mail/.indexes/.imap/INBOX/.imap.index: No such file or directory On the other note...when i try to delete any mail from Inbox using IMAP client i get "The current command did not succeed. The mail server responded: [TRYCREATE] Mailbox doesn't exist: trash" This obviously shows that dovecot can't create neither files nor directories I am using non system wide readable directories and just to try things i did chmod -R 777 mail from /home/marko didn't help any ideas and comments are greatelly appreciated!!! From dovecot@geschwinde.net Wed Jan 28 15:01:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4ED86C002801; Wed, 28 Jan 2004 15:01:10 +0200 (EET) Received: from sx4gdsl001.gdsl.at (sx4gdsl001.globalcore.net [80.78.225.200]) by talvi.dovecot.org (Postfix) with ESMTP id 476EBC002800 for ; Wed, 28 Jan 2004 15:01:08 +0200 (EET) Received: from geschwinde.net (unknown [80.78.255.28]) by sx4gdsl001.gdsl.at (Postfix) with ESMTP id 79876580112 for ; Wed, 28 Jan 2004 13:48:31 +0100 (CET) Message-ID: <4017B1F7.8000604@geschwinde.net> Date: Wed, 28 Jan 2004 13:58:31 +0100 From: Ewald Geschwinde User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] pgsql-dovecot auth problem X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2004 13:01:10 -0000 X-UID: 4175 Status: O Jan 28 13:55:48 bachata dovecot-auth: PGSQL: Query "SELECT password FROM users WHERE userid = 'foo@foo.bar'" failed: I have this error in /var/log/mail.log I have installed a debian machine with dovecot debian packages in my test environment it runs perfect I have used the tutorials on wiki.dovecot.org And there is nothing in the postgresql log about this query And I'm logging queries HAs anyone encountered this error? Postfix send the mail in the right maildir Only the IMAP login does not work. Regards Ewald Geschwinde From dovecot@geschwinde.net Wed Jan 28 19:30:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E091EC002801; Wed, 28 Jan 2004 19:30:51 +0200 (EET) Received: from sx4gdsl001.gdsl.at (sx4gdsl001.globalcore.net [80.78.225.200]) by talvi.dovecot.org (Postfix) with ESMTP id 9321DC002800 for ; Wed, 28 Jan 2004 19:30:48 +0200 (EET) Received: from geschwinde.net (unknown [80.78.255.28]) by sx4gdsl001.gdsl.at (Postfix) with ESMTP id 6EE24580112 for ; Wed, 28 Jan 2004 18:18:07 +0100 (CET) Message-ID: <4017F133.1020608@geschwinde.net> Date: Wed, 28 Jan 2004 18:28:19 +0100 From: Ewald Geschwinde User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] pgsql-dovecot auth problem References: <4017B1F7.8000604@geschwinde.net> In-Reply-To: <4017B1F7.8000604@geschwinde.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2004 17:30:52 -0000 X-UID: 4176 Status: O solved the problem started postgres then dovecot and now it runs wihtout problems Regards Ewald Ewald Geschwinde wrote: > Jan 28 13:55:48 bachata dovecot-auth: PGSQL: Query "SELECT password > FROM users WHERE userid = 'foo@foo.bar'" failed: > > I have this error in /var/log/mail.log > > I have installed a debian machine with dovecot debian packages > in my test environment it runs perfect > > I have used the tutorials on wiki.dovecot.org > And there is nothing in the postgresql log about this query > And I'm logging queries > > HAs anyone encountered this error? > > Postfix send the mail in the right maildir > Only the IMAP login does not work. > > Regards Ewald Geschwinde > > From shiva@sewingwitch.com Thu Jan 29 21:24:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 01019C002803; Thu, 29 Jan 2004 21:24:33 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 83020C002801 for ; Thu, 29 Jan 2004 21:24:30 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i0TJMBoP004763 for ; Thu, 29 Jan 2004 14:22:12 -0500 Received: from [10.69.3.69] (uugw.kensingtonlabs.com [65.200.126.98]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i0TIL20g022181 for ; Thu, 29 Jan 2004 10:21:42 -0800 Date: Thu, 29 Jan 2004 10:21:02 -0800 From: Kenneth Porter To: Dovecot IMAP Message-ID: <2054266479.1075371662@[10.69.3.69]> X-Mailer: Mulberry/3.1.1 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 Subject: [Dovecot] Migrating from UW: mbx detection and conversion X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 19:24:33 -0000 X-UID: 4177 Status: O I want to migrate my big mail folder hierarchy in preparation for converting from UW-IMAP to Dovecot. I've got a bunch of mbx format folders but some remain mbox. Has anyone done this? Any scripts out there for automating the conversion to all-mbox? I believe the only format conversion available is mailutil (part of UW-IMAP) and it works by opening an IMAP connection to the server and moving messages from one folder to the other. Is there any simpler method? From joshua@uic.edu Thu Jan 29 21:47:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E5861C002806; Thu, 29 Jan 2004 21:47:04 +0200 (EET) Received: from harrier.mail.pas.earthlink.net (harrier.mail.pas.earthlink.net [207.217.120.12]) by talvi.dovecot.org (Postfix) with ESMTP id B75FBC002803 for ; Thu, 29 Jan 2004 21:47:02 +0200 (EET) Received: from 0-2pool57-133.nas11.lansing2.mi.us.da.qwest.net ([65.145.57.133]) by harrier.mail.pas.earthlink.net with esmtp (Exim 3.33 #1) id 1AmI5h-0000R8-00; Thu, 29 Jan 2004 11:44:42 -0800 Date: Thu, 29 Jan 2004 14:44:39 -0500 (EST) From: Joshua Frigerio X-X-Sender: joshua@localhost.localdomain To: Kenneth Porter Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion In-Reply-To: <2054266479.1075371662@[10.69.3.69]> Message-ID: References: <2054266479.1075371662@[10.69.3.69]> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: Dovecot IMAP X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 19:47:05 -0000 X-UID: 4178 Status: O I'm using the script from http://batleth.sapienti-sat.org/projects/mb2md/ > I want to migrate my big mail folder hierarchy in preparation for converting > from UW-IMAP to Dovecot. I've got a bunch of mbx format folders but some > remain mbox. Has anyone done this? Any scripts out there for automating the > conversion to all-mbox? > > I believe the only format conversion available is mailutil (part of UW-IMAP) > and it works by opening an IMAP connection to the server and moving messages > from one folder to the other. Is there any simpler method? > > From shiva@sewingwitch.com Thu Jan 29 21:53:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 61BF0C00280A; Thu, 29 Jan 2004 21:53:30 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id A71D2C002803 for ; Thu, 29 Jan 2004 21:53:27 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i0TJp9oP012005 for ; Thu, 29 Jan 2004 14:51:09 -0500 Received: from [10.69.3.69] (uugw.kensingtonlabs.com [65.200.126.98]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i0TJp80g022853 for ; Thu, 29 Jan 2004 11:51:08 -0800 Date: Thu, 29 Jan 2004 11:51:08 -0800 From: Kenneth Porter To: Dovecot IMAP Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion Message-ID: <2059672402.1075377068@[10.69.3.69]> In-Reply-To: References: <2054266479.1075371662@[10.69.3.69]> X-Mailer: Mulberry/3.1.1 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 19:53:30 -0000 X-UID: 4179 Status: O --On Thursday, January 29, 2004 2:44 PM -0500 Joshua Frigerio wrote: > I'm using the script from > > http://batleth.sapienti-sat.org/projects/mb2md/ This converts mbox to maildir. I'm looking for mbx to mbox. From mdbaker@rose-hulman.edu Thu Jan 29 21:57:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3ECDAC002803; Thu, 29 Jan 2004 21:57:27 +0200 (EET) Received: from envelope.rose-hulman.edu (envelope.rose-hulman.edu [137.112.8.21]) by talvi.dovecot.org (Postfix) with ESMTP id 9E005C002801 for ; Thu, 29 Jan 2004 21:57:24 +0200 (EET) Received: from babylon5.rose-hulman.edu (babylon5.rose-hulman.edu [137.112.0.66]) (authenticated (0 bits)) by envelope.rose-hulman.edu (8.11.6/8.11.6) with ESMTP id i0TJt4J17156 (using TLSv1/SSLv3 with cipher RC4-MD5 (128 bits) verified NO) for ; Thu, 29 Jan 2004 14:55:06 -0500 (EST) From: Mitchell Baker To: dovecot@dovecot.org Content-Type: text/plain Organization: Rose-Hulman Institute of Technology Message-Id: <1075406102.28821.13.camel@babylon5.rose-hulman.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 29 Jan 2004 14:55:03 -0500 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Problem starting dovecot.. X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: mdbaker@rose-hulman.edu List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 19:57:27 -0000 X-UID: 4180 Status: O Content-Length: 1118 Sorry if this is newbie question.. but I'm a newbie to dovecot.. Trying to crank it up on our RedHat 8.0 system... I get the following.. I am sure it is something simple in the config.. just don't know what... Any help would be greatly appreciated.. Here is from the log.. If there is a way to get more log info that might help he as well.. Jan 29 14:30:34 smtp dovecot: Dovecot starting up Jan 29 14:30:34 smtp dovecot: dovecot startup succeeded Jan 29 14:30:36 smtp dovecot: Auth process died too early - shutting down Jan 29 14:30:36 smtp dovecot: child 3517 (auth) returned error 127 Jan 29 14:30:36 smtp imap-login: fd_send(-1) failed: Broken pipe Thanks... See-ya Mitch -- /####################################################################/ /# Mitchell "Buzz" Baker "To Infinity And Beyond..." #/ /# Sr. Systems/Security Admin Rose-Hulman Institute of Technology #/ /# Mitchell.D.Baker@rose-hulman.edu www.rose-hulman.edu #/ /# For PGP Public key, check out www.keyserver.net #/ /####################################################################/ From shiva@sewingwitch.com Thu Jan 29 22:00:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 77A93C002803; Thu, 29 Jan 2004 22:00:04 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 1D451C002801 for ; Thu, 29 Jan 2004 22:00:02 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i0TJvXoP013389 for ; Thu, 29 Jan 2004 14:57:36 -0500 Received: from [10.69.3.69] (uugw.kensingtonlabs.com [65.200.126.98]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i0TJvT0g022939 for ; Thu, 29 Jan 2004 11:57:30 -0800 Date: Thu, 29 Jan 2004 11:57:29 -0800 From: Kenneth Porter To: Dovecot IMAP Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion Message-ID: <2060053610.1075377449@[10.69.3.69]> In-Reply-To: <2054266479.1075371662@[10.69.3.69]> References: <2054266479.1075371662@[10.69.3.69]> X-Mailer: Mulberry/3.1.1 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 20:00:04 -0000 X-UID: 4181 Status: O BTW, I discovered that "file" on Fedora understands mbx format, so the following one-liner will find all the mbx files in a hierarchy: file `find . -type f` | grep MBX From esj@harvee.org Thu Jan 29 22:15:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 34CCDC002809; Thu, 29 Jan 2004 22:15:08 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by talvi.dovecot.org (Postfix) with ESMTP id 99AEEC002803 for ; Thu, 29 Jan 2004 22:15:05 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id i0TKCYKd008212; Thu, 29 Jan 2004 15:12:47 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Thu, 29 Jan 2004 15:12:27 -0500 Message-ID: <40196925.3030400@harvee.org> Date: Thu, 29 Jan 2004 15:12:21 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Kenneth Porter Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion References: <2054266479.1075371662@[10.69.3.69]> <2059672402.1075377068@[10.69.3.69]> In-Reply-To: <2059672402.1075377068@[10.69.3.69]> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:040129:shiva@sewingwitch.com:1445a3cecc7dfbe7 X-Hashcash: 0:040129:dovecot@dovecot.org:a7b6317e37fd2d03 Cc: Dovecot IMAP X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 20:15:08 -0000 X-UID: 4182 Status: O Kenneth Porter wrote: > --On Thursday, January 29, 2004 2:44 PM -0500 Joshua Frigerio > wrote: > > >>I'm using the script from >> >> http://batleth.sapienti-sat.org/projects/mb2md/ > > > This converts mbox to maildir. I'm looking for mbx to mbox. > I'm faced with the exact same problem at a client site. Unfortunately, all you can do is use mbxcvt from the UW utilities kit to convert mbx->mbox then use mb2md to finish the conversion to maildir. it sucks, it's horrible, it's really ugly but it's a side effect of the politics of mailbox formats. BUT dovecot is so wonderful it makes it all worthwhile. I'm just hoping that Timo gets the mbox support fixed RSN. ---eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From shiva@sewingwitch.com Thu Jan 29 22:46:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C96FFC002808; Thu, 29 Jan 2004 22:46:00 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 11728C002806 for ; Thu, 29 Jan 2004 22:45:58 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i0TKhdoP024534 for ; Thu, 29 Jan 2004 15:43:39 -0500 Received: from [10.69.3.69] (uugw.kensingtonlabs.com [65.200.126.98]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i0TKhb0g023285 for ; Thu, 29 Jan 2004 12:43:38 -0800 Date: Thu, 29 Jan 2004 12:43:37 -0800 From: Kenneth Porter To: Dovecot IMAP Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion Message-ID: <2062821770.1075380217@[10.69.3.69]> In-Reply-To: <40196925.3030400@harvee.org> References: <2054266479.1075371662@[10.69.3.69]> <2059672402.1075377068@[10.69.3.69]> <40196925.3030400@harvee.org> X-Mailer: Mulberry/3.1.1 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 20:46:00 -0000 X-UID: 4183 Status: O --On Thursday, January 29, 2004 3:12 PM -0500 "Eric S. Johansson" wrote: > I'm faced with the exact same problem at a client site. Unfortunately, all > you can do is use mbxcvt from the UW utilities kit to convert mbx->mbox then > use mb2md to finish the conversion to maildir. IIRC, the utils package was deprecated and most of it was rolled into the main UW-IMAP package. mailutil replaces mbxcvt and several other programs. > it sucks, it's horrible, it's really ugly but it's a side effect of the > politics of mailbox formats. BUT dovecot is so wonderful it makes it all > worthwhile. That's what I'm hoping. > I'm just hoping that Timo gets the mbox support fixed RSN. What's broken? From esj@harvee.org Thu Jan 29 22:55:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 267F4C002808; Thu, 29 Jan 2004 22:55:00 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by talvi.dovecot.org (Postfix) with ESMTP id 8032BC002805 for ; Thu, 29 Jan 2004 22:54:57 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id i0TKq4Kd008889 for ; Thu, 29 Jan 2004 15:52:40 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Thu, 29 Jan 2004 15:52:02 -0500 Message-ID: <4019726C.1090306@harvee.org> Date: Thu, 29 Jan 2004 15:51:56 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot IMAP Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion References: <2054266479.1075371662@[10.69.3.69]> <2059672402.1075377068@[10.69.3.69]> <40196925.3030400@harvee.org> <2062821770.1075380217@[10.69.3.69]> In-Reply-To: <2062821770.1075380217@[10.69.3.69]> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:040129:dovecot@dovecot.org:df1d1933c2075f41 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 20:55:00 -0000 X-UID: 4184 Status: O Content-Length: 1430 Kenneth Porter wrote: > --On Thursday, January 29, 2004 3:12 PM -0500 "Eric S. Johansson" > wrote: > > >>I'm faced with the exact same problem at a client site. Unfortunately, all >>you can do is use mbxcvt from the UW utilities kit to convert mbx->mbox then >>use mb2md to finish the conversion to maildir. > > > IIRC, the utils package was deprecated and most of it was rolled into the main > UW-IMAP package. mailutil replaces mbxcvt and several other programs. when did this happen? I don't see it with 7.2 Red Hat of 8.0. >>it sucks, it's horrible, it's really ugly but it's a side effect of the >>politics of mailbox formats. BUT dovecot is so wonderful it makes it all >>worthwhile. > > > That's what I'm hoping. the additional benefit is a pleasant and helpful user community. It's probably because it isn't well known yet so let's hope that it remains a relatively unpublicized treasure lest Timo turn into the second coming of Mark Crispen. >>I'm just hoping that Timo gets the mbox support fixed RSN. > > What's broken? something to do with indexing. I know I was triggering a bug which caused huge amounts of CPU load every time you did anything with the mailbox. If you've got the energy, I'm sure he could use the help. I'm up to my eyeballs in antispam (camram) work. ---eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From tss@iki.fi Thu Jan 29 23:18:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3D260C00280A; Thu, 29 Jan 2004 23:18:20 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 0718AC002805 for ; Thu, 29 Jan 2004 23:18:18 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 273F7300DDCC9 for ; Thu, 29 Jan 2004 23:16:01 +0200 (EET) Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion From: Timo Sirainen To: Dovecot IMAP In-Reply-To: <4019726C.1090306@harvee.org> References: <2054266479.1075371662@[10.69.3.69]> <2059672402.1075377068@[10.69.3.69]> <40196925.3030400@harvee.org> <2062821770.1075380217@[10.69.3.69]> <4019726C.1090306@harvee.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-NK3GELLCwycdKYhczscP" Message-Id: <1075410961.24660.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 29 Jan 2004 23:16:01 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 21:18:20 -0000 X-UID: 4185 Status: O Content-Length: 1907 --=-NK3GELLCwycdKYhczscP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-01-29 at 22:51, Eric S. Johansson wrote: > the additional benefit is a pleasant and helpful user community. It's=20 > probably because it isn't well known yet so let's hope that it remains a=20 > relatively unpublicized treasure lest Timo turn into the second coming=20 > of Mark Crispen. Heh :) I'm not changing my ways, I've already years of experience with authoring more or less popular software, irssi most notably. Only lack of time makes me unresponsive and ignore/delay replies. I don't yet really even want Dovecot to be too well known, it's not ready yet. When 1.0 comes (this spring I hope) I'll start publicizing it more. After that I should only need to add new features - existing ones should be perfect and better than anyone else's ;) > >>I'm just hoping that Timo gets the mbox support fixed RSN. > >=20 > > What's broken? >=20 > something to do with indexing. I know I was triggering a bug which=20 > caused huge amounts of CPU load every time you did anything with the=20 > mailbox. If you've got the energy, I'm sure he could use the help. I'm=20 > up to my eyeballs in antispam (camram) work. I'm rewriting indexing code. Actually all that code finally seems to be written, now it's just making sure it all works. And then I'll have to rewrite maildir and mbox syncing to work with the new code, that'll take some time too.. mbox also has problems with mailboxes that often get empty, such as drafts. --=-NK3GELLCwycdKYhczscP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAGXgRyUhSUUBViskRAqu+AJ44DX59678TzBXxs4Dky7fWrgUAPACfTjei zxakCMJNoVIjjguRmci0V1Y= =0MlN -----END PGP SIGNATURE----- --=-NK3GELLCwycdKYhczscP-- From shiva@sewingwitch.com Thu Jan 29 23:21:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B677DC002805; Thu, 29 Jan 2004 23:21:24 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 51649C002803 for ; Thu, 29 Jan 2004 23:21:22 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i0TLJ4oP000581 for ; Thu, 29 Jan 2004 16:19:04 -0500 Received: from [10.69.3.69] (uugw.kensingtonlabs.com [65.200.126.98]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i0TLJ20g023550 for ; Thu, 29 Jan 2004 13:19:04 -0800 Date: Thu, 29 Jan 2004 13:19:02 -0800 From: Kenneth Porter To: Dovecot IMAP Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion Message-ID: <2064946195.1075382342@[10.69.3.69]> In-Reply-To: <4019726C.1090306@harvee.org> References: <2054266479.1075371662@[10.69.3.69]> <2059672402.1075377068@[10.69.3.69]> <40196925.3030400@harvee.org> <2062821770.1075380217@[10.69.3.69]> <4019726C.1090306@harvee.org> X-Mailer: Mulberry/3.1.1 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 21:21:24 -0000 X-UID: 4186 Status: O --On Thursday, January 29, 2004 3:51 PM -0500 "Eric S. Johansson" wrote: >> IIRC, the utils package was deprecated and most of it was rolled into the >> main UW-IMAP package. mailutil replaces mbxcvt and several other programs. > > when did this happen? I don't see it with 7.2 Red Hat of 8.0. I just pulled utils from the UW distro site and it's dated 2002. RH has never included the utilities in its RPM's. I only know about them from building from the SRPM, and added a patch recently to the spec file to create a utils sub-package: From shiva@sewingwitch.com Thu Jan 29 23:31:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 53A01C00280A; Thu, 29 Jan 2004 23:31:11 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id E007FC002803 for ; Thu, 29 Jan 2004 23:31:08 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i0TLSpoP002929 for ; Thu, 29 Jan 2004 16:28:51 -0500 Received: from [10.69.3.69] (uugw.kensingtonlabs.com [65.200.126.98]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i0TLSo0g023587 for ; Thu, 29 Jan 2004 13:28:50 -0800 Date: Thu, 29 Jan 2004 13:28:50 -0800 From: Kenneth Porter To: Dovecot IMAP Message-ID: <2065534401.1075382930@[10.69.3.69]> X-Mailer: Mulberry/3.1.1 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 Subject: [Dovecot] SpamAssassin X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 21:31:11 -0000 X-UID: 4187 Status: O --On Thursday, January 29, 2004 11:16 PM +0200 Timo Sirainen wrote: > I don't yet really even want Dovecot to be too well known, it's not > ready yet. When 1.0 comes (this spring I hope) I'll start publicizing it > more. After that I should only need to add new features - existing ones > should be perfect and better than anyone else's ;) Just a heads-up, then. A regular FAQ on the SA-Talk list is how to integrate SA into someone's IMAP/POP3 server, and once Dovecot gets popular, you'll start seeing that question here. I run SA from sendmail via MIMEDefang (to reject the egregious stuff), and from procmail on delivery (to tag and quarantine the borderline stuff). I'm not sure why people would use it in the IMAP server, but the question does come up. From bah@webmedic.net Thu Jan 29 23:53:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5152AC00280E; Thu, 29 Jan 2004 23:53:10 +0200 (EET) Received: from courage.vosn.net (courage.vosn.net [209.151.74.1]) by talvi.dovecot.org (Postfix) with ESMTP id 140DCC002803 for ; Thu, 29 Jan 2004 23:53:08 +0200 (EET) Received: from adsl-209-206-168-142-rb.vcr.centurytel.net ([209.206.168.142] helo=192.168.1.10) by courage.vosn.net with esmtp (Exim 4.24) id 1AmK3n-0003DR-Lk for dovecot@dovecot.org; Thu, 29 Jan 2004 14:50:51 -0700 From: Brook Humphrey Organization: Mobile PC Medic To: dovecot@dovecot.org Subject: Re: [Dovecot] SpamAssassin Date: Thu, 29 Jan 2004 13:50:46 -0800 User-Agent: KMail/1.6 References: <2065534401.1075382930@[10.69.3.69]> In-Reply-To: <2065534401.1075382930@[10.69.3.69]> MIME-Version: 1.0 Content-Disposition: inline Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Message-Id: <200401291350.48506.bah@webmedic.net> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - courage.vosn.net X-AntiAbuse: Original Domain - dovecot.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - webmedic.net X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 21:53:10 -0000 X-UID: 4188 Status: O Content-Length: 2103 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thursday 29 January 2004 01:28 pm, Kenneth Porter wrote: > --On Thursday, January 29, 2004 11:16 PM +0200 Timo Sirainen > > wrote: > > I don't yet really even want Dovecot to be too well known, it's not > > ready yet. When 1.0 comes (this spring I hope) I'll start publicizing it > > more. After that I should only need to add new features - existing ones > > should be perfect and better than anyone else's ;) > > Just a heads-up, then. > > A regular FAQ on the SA-Talk list is how to integrate SA into someone's > IMAP/POP3 server, and once Dovecot gets popular, you'll start seeing that > question here. > > I run SA from sendmail via MIMEDefang (to reject the egregious stuff), and > from procmail on delivery (to tag and quarantine the borderline stuff). I= 'm > not sure why people would use it in the IMAP server, but the question does > come up. well I don't use it directly from the imap persay but here is most likely w= hy.=20 I use postfix, dovecot and maildrop. With this setup you can have you email= =20 filtered for you so when you log into your imap account it is already=20 filtered and were everything should go. I also in my case have maildrop set= up=20 to do the spam and virii filtering. This comes in handy for being able to l= et=20 the users adjust their own email settings. All this also ties in perfectly= =20 with squirrelmail which I have running on top of dovecot also. =2D --=20 -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'= ~- Brook Humphrey =20 Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 =20 http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com =20 Holiness unto the Lord -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'= ~- =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAGYA3nT1TkA6FgPgRAgdMAJ4weSCQHLURcfASR/O+nU+R4J1ETgCeMG1N 0ASbIGNXvDtm/s6QoM/qww0=3D =3DSJH6 =2D----END PGP SIGNATURE----- From rjohnson@medata.com Thu Jan 29 23:54:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 978A1C002806; Thu, 29 Jan 2004 23:54:38 +0200 (EET) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id F232CC002803 for ; Thu, 29 Jan 2004 23:54:35 +0200 (EET) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i0TLqGk6002632 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 29 Jan 2004 13:52:16 -0800 Message-ID: <40198091.6060104@medata.com> Date: Thu, 29 Jan 2004 13:52:17 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040116 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot IMAP Subject: Re: [Dovecot] SpamAssassin References: <2065534401.1075382930@[10.69.3.69]> In-Reply-To: <2065534401.1075382930@[10.69.3.69]> X-Enigmail-Version: 0.83.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 21:54:38 -0000 X-UID: 4189 Status: O Kenneth Porter wrote: > I run SA from sendmail via MIMEDefang (to reject the egregious stuff), and > from procmail on delivery (to tag and quarantine the borderline stuff). I'm > not sure why people would use it in the IMAP server, but the question does > come up. > SA is more appropriate at the MTA level, not the MDA/MUA level. I'm not sure why it would come up either. It's generally called from Procmail or someplace like that. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From esj@harvee.org Fri Jan 30 00:05:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 79FB4C00280D; Fri, 30 Jan 2004 00:05:44 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by talvi.dovecot.org (Postfix) with ESMTP id F138FC002806 for ; Fri, 30 Jan 2004 00:05:41 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id i0TM3HKd010319 for ; Thu, 29 Jan 2004 17:03:24 -0500 Received: FROM harvee.org ([192.168.0.10]) BY harvee.org WITH ESMTP ; Thu, 29 Jan 2004 17:03:15 -0500 Message-ID: <4019831D.8030904@harvee.org> Date: Thu, 29 Jan 2004 17:03:09 -0500 From: "Eric S. Johansson" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot IMAP Subject: Re: [Dovecot] SpamAssassin References: <2065534401.1075382930@[10.69.3.69]> <40198091.6060104@medata.com> In-Reply-To: <40198091.6060104@medata.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:040129:dovecot@dovecot.org:e7d94c1da09b14b2 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 22:05:44 -0000 X-UID: 4190 Status: O Rick Johnson wrote: > Kenneth Porter wrote: > >> I run SA from sendmail via MIMEDefang (to reject the egregious stuff), >> and >> from procmail on delivery (to tag and quarantine the borderline >> stuff). I'm >> not sure why people would use it in the IMAP server, but the question >> does >> come up. >> > > SA is more appropriate at the MTA level, not the MDA/MUA level. I'm not > sure why it would come up either. It's generally called from Procmail or > someplace like that. I concur. Filtering for spam belongs before the local delivery agent. Of course, I complicate things with the hybrid sender-pays system and need to grab "outbound" e-mail messages for stamping. Let's just say it makes for an interesting mail server configuration. ---eric -- Speech recognition in use. Incorrect endings, words, and case is closer than it appears From tss@iki.fi Fri Jan 30 00:23:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BB265C002807; Fri, 30 Jan 2004 00:23:31 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 9E32EC002806 for ; Fri, 30 Jan 2004 00:23:29 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B0B67300DDCCA for ; Fri, 30 Jan 2004 00:21:12 +0200 (EET) Subject: Re: [Dovecot] State of MySQL authentication From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20040123124848.CA5D746FBC@mail.expressmail.dk> References: <20040123124848.CA5D746FBC@mail.expressmail.dk> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-baZPuFlObSO8uURkokeP" Message-Id: <1075414872.24671.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 30 Jan 2004 00:21:12 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 22:23:31 -0000 X-UID: 4191 Status: O Content-Length: 1386 --=-baZPuFlObSO8uURkokeP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-01-23 at 14:48, Ian Armstrong wrote: > I am looking for a pop3 server that can authenticate via MySQL. It also > needs to be able to do a POST_LOGIN_QUERY. I want to be able to update a > "date" field in the database, so that I can see which accounts are active= , > and which are not. >=20 > Please let me know more about Dovecot and MySQL. There's MySQL patch for Dovecot somewhere in this list's archives. It will be included in next release. Dovecot will ask two queries from SQL server. First is "select password", second is for asking all kind of user information. I think you should be able to use ';' separator there to separate the actual query and your post-login-query. Something like: user_query =3D SELECT home, uid, gid FROM users WHERE userid =3D '%u';updat= e table set foo =3D 'bar' where userid =3D '%u' If it doesn't work, I guess adding support for post-login-query would be us= eful. --=-baZPuFlObSO8uURkokeP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAGYdYyUhSUUBViskRApm/AJ45dpAOWc7EXU5kWcTRFXtk5mAB1QCggv5C 25N9hFKlmvygzZyhNh3I9Yo= =U0G+ -----END PGP SIGNATURE----- --=-baZPuFlObSO8uURkokeP-- From tss@iki.fi Fri Jan 30 00:29:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D82FCC002806; Fri, 30 Jan 2004 00:29:47 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id BBF97C002803 for ; Fri, 30 Jan 2004 00:29:45 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D9D03300DDCCA; Fri, 30 Jan 2004 00:27:28 +0200 (EET) Subject: Re: [Dovecot] dovecot crash From: Timo Sirainen To: admin@thelight.org.uk In-Reply-To: <20040124130102.F2717C003024@talvi.dovecot.org> References: <20040124130102.F2717C003024@talvi.dovecot.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-xEot8RvFpT0p1dQjEjjr" Message-Id: <1075415248.24665.31.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 30 Jan 2004 00:27:28 +0200 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 22:29:48 -0000 X-UID: 4192 Status: O Content-Length: 1395 --=-xEot8RvFpT0p1dQjEjjr Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-01-24 at 14:58, Simon Bell wrote: > I woke up this morning and my dovecot server had died with the following = in > the dovecot.log file: >=20 > pop3-login: Jan 23 10:23:08 Fatal: RAND_bytes() failed: > error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded >=20 > dovecot: Jan 23 10:23:08 Error: Login process died too early - shutting d= own > dovecot: Jan 23 10:23:08 Error: child 16321 (login) returned error 89 >=20 > How can I find out whats going wrong? OpenSSL weirdness. By default OpenSSL is using /dev/urandom to fetch the random data, as long as urandom exists. Otherwise it'll try something else.. But looks like some Linux distros are nowadays doing something weird and don't have RAND_bytes() working that way, probably trying to use /dev/random and failing if there's not enough randomness. Does anyone else have some more information about this? I'm not sure what to do about this. --=-xEot8RvFpT0p1dQjEjjr Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAGYjQyUhSUUBViskRAgIYAJ9vXijaUkizeSqJ9crlaUw6EQRnvQCfSIBu pWqE+LuQD/rg0VbFHW/T1xk= =YLnO -----END PGP SIGNATURE----- --=-xEot8RvFpT0p1dQjEjjr-- From keith@midnighthax.com Fri Jan 30 00:37:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A8CA4C002810; Fri, 30 Jan 2004 00:37:38 +0200 (EET) Received: from gs001.rg2.tiger-computing.com (unknown [81.168.16.33]) by talvi.dovecot.org (Postfix) with ESMTP id 77CDCC00280E for ; Fri, 30 Jan 2004 00:37:36 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by gs001.rg2.tiger-computing.com (Postfix) with ESMTP id 340B842CC8 for ; Thu, 29 Jan 2004 22:35:19 +0000 (GMT) Received: from gs001.rg2.tiger-computing.com ([127.0.0.1]) by localhost (gs001.rg2.tiger-computing.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28134-06 for ; Thu, 29 Jan 2004 22:35:18 +0000 (GMT) Received: from zaphod.rg2.tiger-computing.com (zaphod.rg2.tiger-computing.com [10.0.0.100]) by gs001.rg2.tiger-computing.com (Postfix) with SMTP id 1D78642CA5 for ; Thu, 29 Jan 2004 22:35:18 +0000 (GMT) Date: Thu, 29 Jan 2004 22:35:18 +0000 From: Keith Edmunds To: dovecot@dovecot.org Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion Message-Id: <20040129223518.5c2bddb5@zaphod.rg2.tiger-computing.com> In-Reply-To: <1075410961.24660.14.camel@hurina> References: <2054266479.1075371662@[10.69.3.69]> <2059672402.1075377068@[10.69.3.69]> <40196925.3030400@harvee.org> <2062821770.1075380217@[10.69.3.69]> <4019726C.1090306@harvee.org> <1075410961.24660.14.camel@hurina> X-Mailer: Sylpheed version 0.9.8claws33 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gs001.rg2.tiger-computing.com X-Spam-Report: Spam detection software, running on the system "gs001.rg2.tiger-computing.com", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or block similar future email. If you have any questions, see root@localhost for details. Content preview: On Thu, 29 Jan 2004 23:16:01 +0200 Timo Sirainen wrote: > Heh :) I'm not changing my ways, I've already years of experience with > authoring more or less popular software, irssi most notably. Only lack > of time makes me unresponsive and ignore/delay replies. [...] Content analysis details: (0.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 22:37:38 -0000 X-UID: 4193 Status: O On Thu, 29 Jan 2004 23:16:01 +0200 Timo Sirainen wrote: > Heh :) I'm not changing my ways, I've already years of experience with > authoring more or less popular software, irssi most notably. Only lack > of time makes me unresponsive and ignore/delay replies. Lest it be missed: you're doing a great job. Rarely (if ever) has pre-V1 code been so rock solid in normal use. I'm using it (shhh) on production servers. Keep up the great work, and btw you are _not_ unresponsive. K. From tss@iki.fi Fri Jan 30 00:44:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AA191C00280E; Fri, 30 Jan 2004 00:44:04 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 62CBEC002806 for ; Fri, 30 Jan 2004 00:44:02 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 68DC4300DDCCA for ; Fri, 30 Jan 2004 00:41:45 +0200 (EET) Subject: Re: [Dovecot] Dovecot not creating dirs From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <34267.142.179.114.142.1075154958.squirrel@mail.vancouveronthenet.com> References: <34267.142.179.114.142.1075154958.squirrel@mail.vancouveronthenet.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-J200lFRl85+M/uQZmYpr" Message-Id: <1075416105.24671.43.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 30 Jan 2004 00:41:45 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 22:44:04 -0000 X-UID: 4194 Status: O Content-Length: 1643 --=-J200lFRl85+M/uQZmYpr Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-01-27 at 00:09, marko sarunac wrote: > my default mail env is > default_mail_env =3D mbox:%h/mail/:INBOX=3D%h/mail/Inbox:INDEX=3D%h/mail/= .indexes >=20 > Now when i first started my mozilla imap client what happened was! > Jan 26 21:46:34 imap(marko): Can't create temp index > /home/marko/mail/.indexes/.imap/INBOX/.temp.limbic.7523: No such file or > directory Hmm. It shouldn't do this, as long as ~/mail exists. Try running this: MAIL=3Dmbox:$HOME/mail/:INBOX=3D$HOME/mail/Inbox:INDEX=3D$HOME/mail/.indexe= s strace /usr/local/libexec/dovecot/imap 2>log and send the log file, if it doesn't work. > after i manually > :~/mail$ mkdir .indexes > :~/mail$ cd .indexes/ > :~/mail/.indexes$ mkdir .imap Dovecot should create all of these automatically. And it does with me. > On the other note...when i try to delete any mail from Inbox using IMAP > client i get > "The current command did not succeed. The mail server responded: > [TRYCREATE] Mailbox doesn't exist: trash" This is because your IMAP client tries to move it to trash mailbox which doesn't exist. Either configure your client not to use move-to-trash-when-deleting, or create the trash mailbox. --=-J200lFRl85+M/uQZmYpr Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAGYwpyUhSUUBViskRAjN9AKCiYYxB42NnJadtgmy2kYsMbCPRwgCgjE8u 9kI6ORHHm7jZN0ZX+mePhxs= =H34d -----END PGP SIGNATURE----- --=-J200lFRl85+M/uQZmYpr-- From rjohnson@medata.com Fri Jan 30 00:46:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4BD0DC00280E; Fri, 30 Jan 2004 00:46:04 +0200 (EET) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id A67B0C002806 for ; Fri, 30 Jan 2004 00:46:00 +0200 (EET) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i0TMhfk6007617 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 29 Jan 2004 14:43:41 -0800 Message-ID: <40198C9E.5090305@medata.com> Date: Thu, 29 Jan 2004 14:43:42 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040116 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Keith Edmunds Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion References: <2054266479.1075371662@[10.69.3.69]> <2059672402.1075377068@[10.69.3.69]> <40196925.3030400@harvee.org> <2062821770.1075380217@[10.69.3.69]> <4019726C.1090306@harvee.org> <1075410961.24660.14.camel@hurina> <20040129223518.5c2bddb5@zaphod.rg2.tiger-computing.com> In-Reply-To: <20040129223518.5c2bddb5@zaphod.rg2.tiger-computing.com> X-Enigmail-Version: 0.83.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 22:46:04 -0000 X-UID: 4195 Status: O Keith Edmunds wrote: >>Heh :) I'm not changing my ways, I've already years of experience with >>authoring more or less popular software, irssi most notably. Only lack >>of time makes me unresponsive and ignore/delay replies. > > Lest it be missed: you're doing a great job. Rarely (if ever) has pre-V1 > code been so rock solid in normal use. I'm using it (shhh) on production > servers. Keep up the great work, and btw you are _not_ unresponsive. Who says it's not production ready? :-) I just migrated to it from UW-IMAP. Except for a maildir/mozilla interoperability with custom flags issue, it's working just fine, and loads faster than anything else :-) My users are happy. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From mem@mv.mv.com Fri Jan 30 00:52:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 311A7C00280E; Fri, 30 Jan 2004 00:52:18 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 90DD2C002806 for ; Fri, 30 Jan 2004 00:52:15 +0200 (EET) Received: (qmail 28611 invoked from network); 29 Jan 2004 17:49:57 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 29 Jan 2004 17:49:57 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 21061 invoked by uid 101); 29 Jan 2004 17:49:57 -0500 From: "Mark E. Mallett" Date: Thu, 29 Jan 2004 17:49:57 -0500 To: dovecot@dovecot.org Subject: Re: [Dovecot] SpamAssassin Message-ID: <20040129224957.GB2707@iridium.mv.net> References: <2065534401.1075382930@[10.69.3.69]> <40198091.6060104@medata.com> <4019831D.8030904@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4019831D.8030904@harvee.org> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 22:52:18 -0000 X-UID: 4196 Status: O Content-Length: 1454 On Thu, Jan 29, 2004 at 05:03:09PM -0500, Eric S. Johansson wrote: > Rick Johnson wrote: > >SA is more appropriate at the MTA level, not the MDA/MUA level. I'm not > >sure why it would come up either. It's generally called from Procmail or > >someplace like that. Isn't that a contradiction? procmail is most often used at the delivery level, although sometimes it's used for system-wide pre-filtering. But I tend to think of procmail as LDA (local delivery agent), so if you call spamassassin out of procmail, it's acting on behalf of the LDA. > I concur. Filtering for spam belongs before the local delivery agent. I disagree/agree. While I believe there's room for spam filtering at more than one point in the chain, it seems to me it's appropriate at the LDA level on a per-user basis. Now, if you're saying that it's better to solve the spam problem so that it never gets to the LDA point, yes, that would be wonderful. But in a world where spam does reach the end user, filtering at final delivery is appropriate. > Of course, I complicate things with the hybrid sender-pays system and > need to grab "outbound" e-mail messages for stamping. Let's just say it > makes for an interesting mail server configuration. Ah well, I have my own bias too :-). I have a utility that incorporates a combination SIEVE/C delivery language. Since I use as an LDA (among other places) I obviously believe filtering is appropriate there. mm From admin@thelight.org.uk Fri Jan 30 01:06:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2A5A8C00280E; Fri, 30 Jan 2004 01:06:02 +0200 (EET) Received: from usercf098.dsl.pipex.com (usercf098.dsl.pipex.com [62.190.237.98]) by talvi.dovecot.org (Postfix) with ESMTP id E23EDC002806 for ; Fri, 30 Jan 2004 01:05:59 +0200 (EET) Received: from [192.168.7.2] (helo=THUNDER) by usercf098.dsl.pipex.com with asmtp (TLSv1:RC4-MD5:128) (Exim 4.30) id 1AmLCh-0008SF-DY; Thu, 29 Jan 2004 23:04:07 +0000 From: "Simon Bell" To: "'Timo Sirainen'" Subject: RE: [Dovecot] dovecot crash Date: Thu, 29 Jan 2004 23:03:40 -0000 Organization: TheLight MIME-Version: 1.0 X-Mailer: Microsoft Office Outlook, Build 11.0.5510 In-Reply-To: <1075415248.24665.31.camel@hurina> Content-Type: multipart/signed; micalg=SHA1; protocol="application/x-pkcs7-signature"; boundary="----=_NextPart_000_0057_01C3E6BC.21008C30" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Thread-Index: AcPmty5/Oguj3XUnR5WUmh5A7eGAJAABNCVw X-added: This email was sent via TheLight mail server X-added: Rules are available at http://mail.thelight.org.uk/rules.html X-added: If you believe this email was sent in violation of the rules X-added: Please email abuse@thelight.org.uk with appropriate information Message-Id: <20040129230559.E23EDC002806@talvi.dovecot.org> Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: admin@thelight.org.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 23:06:02 -0000 X-UID: 4197 Status: O Content-Length: 6783 This is a multi-part message in MIME format. ------=_NextPart_000_0057_01C3E6BC.21008C30 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit ok. for your information the distro im running is Fedora Core 1 Simon -----Original Message----- From: dovecot-bounces@dovecot.org [mailto:dovecot-bounces@dovecot.org] On Behalf Of Timo Sirainen Sent: 29 January 2004 22:27 To: admin@thelight.org.uk Cc: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot crash On Sat, 2004-01-24 at 14:58, Simon Bell wrote: > I woke up this morning and my dovecot server had died with the following in > the dovecot.log file: > > pop3-login: Jan 23 10:23:08 Fatal: RAND_bytes() failed: > error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded > > dovecot: Jan 23 10:23:08 Error: Login process died too early - shutting down > dovecot: Jan 23 10:23:08 Error: child 16321 (login) returned error 89 > > How can I find out whats going wrong? OpenSSL weirdness. By default OpenSSL is using /dev/urandom to fetch the random data, as long as urandom exists. Otherwise it'll try something else.. But looks like some Linux distros are nowadays doing something weird and don't have RAND_bytes() working that way, probably trying to use /dev/random and failing if there's not enough randomness. Does anyone else have some more information about this? I'm not sure what to do about this. ------=_NextPart_000_0057_01C3E6BC.21008C30 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIILgzCCBD4w ggImoAMCAQICAg1LMA0GCSqGSIb3DQEBBAUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsT FWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0 eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnMB4XDTAzMTAxNzExMjMwMVoXDTA0 MTAxNjExMjMwMVowQTEZMBcGA1UEAxMQQ0FjZXJ0IFVzZXIgQ2VydDEkMCIGCSqGSIb3DQEJARYV YWRtaW5AdGhlbGlnaHQub3JnLnVrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFWdW9wGTI WIZfNx8enH/jnmheKvCXfh6tBujxCwrgaC5+KbRcpTIKBrW/gLToK14yP0FuPkPAwWYR1/ZnrPPy 6+72LX4fSUiKDr0QCLDcbs+f2X/0PWotZBogi/7VZGOqL9f+UTKlAxh0h3F8jSYFWewPYf4OODU9 lNoYFdeEFwIDAQABo4GLMIGIMAwGA1UdEwEB/wQCMAAwVgYJYIZIAYb4QgENBEkWR1RvIGdldCB5 b3VyIG93biBjZXJ0aWZpY2F0ZSBmb3IgRlJFRSBoZWFkIG92ZXIgdG8gaHR0cDovL3d3dy5jYWNl cnQub3JnMCAGA1UdEQQZMBeBFWFkbWluQHRoZWxpZ2h0Lm9yZy51azANBgkqhkiG9w0BAQQFAAOC AgEAbEmsovaWwEcBMZUeylnpZN5ieYj7hiUcfCjmqTyXg/sULLweoqXJUnV/jxr2cdb7SPwMGd08 1ot4dk8xwEhD/QFm083h540ol6KKJfCmqQvAXBdfthQx1pkU4wE78Ad67LQ0opFBFz4n5rZy3bwt QX/mph40mJIj8g4TzJL1d+YRZ22RbrOQdJ9p7RlIU6zQGwYSIToEzUMMiD8eefgIOMvbih46q/2a EDLB5w+Xagd6x9E8y7gpGPkCMmUor5gl8fVRZofsL+7Og00ad7fY4c57Pwl3hcDhHMfFhJBWhF8M X79HDjh1xWS5ezLv7/lN8FU/uAsP0Ax89CqHIVIH0S6DnAF3UdoFsvWHC05SsbY623nTOL7ALc0n o4PNBQpgwSvpI8S+piFHnsPcrMxcDvb4ANmmJaI41Oo/2LpyYa8WZvsZdq2GEEtt9S0pOCCiBOrW +Yl3zdCbxgoajOJ8PirYNTXLRp9ygKPc47lCBrxJB6GQa1Xk0BwGKwkoiFd6XCRVIyboNQKTjO25 za0j8O0zrCKSsRbUZ0daSf2yWZdMBjAmwuBVPFL29FNZVnYmFWB85yNBMzXB2nW13MAn8SgPczkp vYUWM39G1PMOy8WKTpFYRJteJTxS6enW6PHOeTlWsqXVV+fNoCrMi/Kt1iz/EgXl5oEm1Jt/8fZc ZHcwggc9MIIFJaADAgECAgEAMA0GCSqGSIb3DQEBBAUAMHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAc BgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1 dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnMB4XDTAzMDMzMDEyMjk0 OVoXDTMzMDMyOTEyMjk0OVoweTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3 dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZI hvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC AQDOIsDiRn3sNigHUJbyoDNAjEvxO2Y/MeVrAjbb1nz28YiPTnc2BUGV+QnwEs9GhnNgt25+6MBY ZK7NsK1FFwxj+mcK6NbSvz7nmMTwTPrgA7s1XWwh3p4g2brNZjI3cvr3CPXHzVjJjucOXuo+/hyh FAoVbIaEW2RmKnqpS1N59Yiie+4vCmErjbJ+TValE+zq2pKerERBHlhgZQVm+MBEvcuU90J+C/dl aJhRBfDzBZEEHRsXguzIV7vDa3qI8bByzCVbIJHsFgISjzLpFxhI0McFLgIwQrglnAVrP6o6p+tT SPfo0rYHmNwbxjR/f8kcgnoFWCsIW/M4oqsXXWbJmNeeEIui0t10mvdxDHJg381vmDOdljR2PiR6 krAOlR5v5qBFOEeq10HtSrcS9tcbg4oPLtgJtlnXqgT/0pN9aC7di0urWLovjeqVp6DDVIml+9uL USKdssO+Eb4skYaLlnitINOKLxo/xtBRZYchsRkBZX9FHIf1fNBBTE8pmCH9Mx91DARR+hl329QU HO6Bwx31mLdpBpEi3QBQzIExrBIHezjaaFvmK9R+yV+t6OtyTPMB5Usgv5qmV8qRAAGLoXUhN7Vj DWc+Rk9wIGfOxdZZ2wLg8NLLzbpit5BB6N0g5Cm8ZClCyCLceJr/Q+yYGwlRS1pawnHxxMtzqeWh CwIDAQABo4IBzjCCAcowHQYDVR0OBBYEFBa1MhvUx/Pg5o7zvdKwOu6yORjRMIGjBgNVHSMEgZsw gZiAFBa1MhvUx/Pg5o7zvdKwOu6yORjRoX2kezB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQL ExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmluZyBBdXRob3Jp dHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZ4IBADAPBgNVHRMBAf8EBTADAQH/ MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDAwBglg hkgBhvhCAQQEIxYhaHR0cHM6Ly93d3cuY2FjZXJ0Lm9yZy9yZXZva2UuY3JsMDQGCWCGSAGG+EIB CAQnFiVodHRwOi8vd3d3LmNhY2VydC5vcmcvaW5kZXgucGhwP2lkPTEwMFYGCWCGSAGG+EIBDQRJ FkdUbyBnZXQgeW91ciBvd24gY2VydGlmaWNhdGUgZm9yIEZSRUUgaGVhZCBvdmVyIHRvIGh0dHA6 Ly93d3cuY2FjZXJ0Lm9yZzANBgkqhkiG9w0BAQQFAAOCAgEAKMfunIICulyAEso1Ch2Bb4lqmczy aA9/p+GNWJU+vfIGw5BarLVg9plDAaOIcJydYp2kh69nWA0wNjvmrUjTy3QChnE+4isDaPE0YkBG O1PqKPSs+2aVU4pNXf072WDXynlpO7FlkqbGgYJcnM3rTQGKpd8RVaoVyh83wIKYcGHbanyWo44u VD5PIamQ79yCv9zoRa1NkHMIPJRlsASZdn/ivMJqFaqXBDck2B6UTm0OUb7WxI/Klm33Q9/oMGUn O3u7Q0NjxEP3suxozOEZjiL7mOF7Wj4BNzuLCLCi85VOGsubzZqx27Jw8C1K29iw429FSDMS//48 MipU98T3ivCII8JH/mR6ccDRHqZjsAd+pC/TAY/cnyu2xgipD5NIJfwS/Z9C3PPEPvZXsNfdadEG dzQKS9LKoP8cxozJFr7EzDI3aHNfCPtR90lTNgUKlQJM8nkaEPbYOnWc8x3xog1wZ4Ybsxb1L+Wk 63mG+T0LwnMLpZmsb/xnuOUvC6YYJI170Ug1KRhArJNg4ZaGULR6WdiPIQufz4KRxju/a9wHkbmX ViOqtmyUxkgGPOTOTqrk9i8J3FNvLvx06zpjmcKmrIm8p7JEoA2KEONs8iTL+pufcEcu3hSL1LIg CZaiZPEkHNyhNZwVstS8VS59BvWcDlX0WtaT2natJXNMxUMxggMVMIIDEQIBATB/MHkxEDAOBgNV BAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0Eg Q2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3Jn AgINSzAJBgUrDgMCGgUAoIIB7DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJ BTEPFw0wNDAxMjkyMzAzMzdaMCMGCSqGSIb3DQEJBDEWBBSWYigvljgIaOs1z7io1/95dFwSFDBn BgkqhkiG9w0BCQ8xWjBYMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIB QDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDAHBgUrDgMCGjAKBggqhkiG9w0CBTCBjwYJKwYBBAGC NxAEMYGBMH8weTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQu b3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJz dXBwb3J0QGNhY2VydC5vcmcCAg1LMIGRBgsqhkiG9w0BCRACCzGBgaB/MHkxEDAOBgNVBAoTB1Jv b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBT aWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnAgINSzAN BgkqhkiG9w0BAQEFAASBgMCjaf/h6bkcfiLQZYPUtPC10wUNhp5PGAjTg/27cajCPSYNgl09MYqW VZByBLkv81b0I5kv03S6Y92csCzK3uRnRq82CkeEUuNYvxJ4XM/IBKwDLkM0aiS6sbuos3Q13dlQ kHrH/PNELRkifnMEMXxA+uU0Vl4FOWrGwTaPrTWAAAAAAAAA ------=_NextPart_000_0057_01C3E6BC.21008C30-- From tss@iki.fi Fri Jan 30 01:08:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 56F45C00280E; Fri, 30 Jan 2004 01:08:56 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 4F971C002806 for ; Fri, 30 Jan 2004 01:08:54 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 4F636300DDCCA for ; Fri, 30 Jan 2004 01:06:37 +0200 (EET) Subject: Re: [Dovecot] SpamAssassin From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20040129224957.GB2707@iridium.mv.net> References: <2065534401.1075382930@[10.69.3.69]> <40198091.6060104@medata.com> <4019831D.8030904@harvee.org> <20040129224957.GB2707@iridium.mv.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-1aiWKOvpe2BYNun526+h" Message-Id: <1075417597.24664.48.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 30 Jan 2004 01:06:37 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 23:08:56 -0000 X-UID: 4198 Status: O --=-1aiWKOvpe2BYNun526+h Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-01-30 at 00:49, Mark E. Mallett wrote: > Ah well, I have my own bias too :-). I have a utility that incorporates > a combination SIEVE/C delivery language. Since I use as an LDA (among > other places) I obviously believe filtering is appropriate there. I've still not gotten around trying your sieve thingy. Any chance of getting some simple Postfix/maildir mini-howto? :) --=-1aiWKOvpe2BYNun526+h Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAGZH9yUhSUUBViskRAoEeAJwNIjhfQZFQBsketrSDjqvgWH786ACfduCl 3MSLf0vHNoXCVDeD0MBtGL0= =pWet -----END PGP SIGNATURE----- --=-1aiWKOvpe2BYNun526+h-- From jaldhar@debian.org Fri Jan 30 01:19:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 97989C002811; Fri, 30 Jan 2004 01:19:03 +0200 (EET) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 79BE8C002806 for ; Fri, 30 Jan 2004 01:19:01 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id C49057F82; Thu, 29 Jan 2004 18:16:41 -0500 (EST) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25211-07; Thu, 29 Jan 2004 18:16:41 -0500 (EST) Received: from [149.123.132.117] (unknown [149.123.132.117]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id BA8C97F7C; Thu, 29 Jan 2004 18:16:40 -0500 (EST) Date: Thu, 29 Jan 2004 18:15:39 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Timo Sirainen Subject: Re: [Dovecot] Migrating from UW: mbx detection and conversion In-Reply-To: <1075410961.24660.14.camel@hurina> Message-ID: References: <2054266479.1075371662@[10.69.3.69]> <2059672402.1075377068@[10.69.3.69]> <40196925.3030400@harvee.org> <2062821770.1075380217@[10.69.3.69]> <4019726C.1090306@harvee.org> <1075410961.24660.14.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at braincells.com Cc: Dovecot IMAP X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 23:19:03 -0000 X-UID: 4199 Status: O On Thu, 29 Jan 2004, Timo Sirainen wrote: > I don't yet really even want Dovecot to be too well known, it's not > ready yet. When 1.0 comes (this spring I hope) I'll start publicizing it > more. I was going to propose making dovecot the default IMAP and POP3 server in the upcoming sarge distribution of Debian. But I won't if you don't want it just yet. (Though realistically sarge won't be released until summer at the earliest so you may well have 1.0 out by then.) -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From mem@mv.mv.com Fri Jan 30 01:52:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0A90FC002810; Fri, 30 Jan 2004 01:52:04 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id DC71CC002806 for ; Fri, 30 Jan 2004 01:52:00 +0200 (EET) Received: (qmail 27802 invoked from network); 29 Jan 2004 18:49:43 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 29 Jan 2004 18:49:43 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 21059 invoked by uid 101); 29 Jan 2004 18:49:43 -0500 From: "Mark E. Mallett" Date: Thu, 29 Jan 2004 18:49:43 -0500 To: Timo Sirainen Subject: Re: [Dovecot] SpamAssassin Message-ID: <20040129234943.GF2707@iridium.mv.net> References: <2065534401.1075382930@[10.69.3.69]> <40198091.6060104@medata.com> <4019831D.8030904@harvee.org> <20040129224957.GB2707@iridium.mv.net> <1075417597.24664.48.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1075417597.24664.48.camel@hurina> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2004 23:52:04 -0000 X-UID: 4200 Status: O Content-Length: 1180 On Fri, Jan 30, 2004 at 01:06:37AM +0200, Timo Sirainen wrote: > On Fri, 2004-01-30 at 00:49, Mark E. Mallett wrote: > > Ah well, I have my own bias too :-). I have a utility that incorporates > > a combination SIEVE/C delivery language. Since I use as an LDA (among > > other places) I obviously believe filtering is appropriate there. > > I've still not gotten around trying your sieve thingy. I mentioned it before, I think, but I hadn't really provided a way to get at it until just this month. > Any chance of > getting some simple Postfix/maildir mini-howto? :) It's in a fairly raw state: quite usable, but still specific to my own use, and many things still just a twinkle in the eye (you have to use your imagination for some of them). I have a download area for any software types who are willing to put up with that. However I'd be happy to have people try it and help kick me along. Anyway, without co-oping your list further.. http://www.mv.com/tools/mvmf/test/ I run it under qmail but have compiled in sendmail and postfix environments (invoked out of a .forward or .procmailrc), and there is a USING file with some specifics about those things. mm From ke@kalle.dyndns.org Fri Jan 30 18:25:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 40F75C002805; Fri, 30 Jan 2004 18:25:06 +0200 (EET) Received: from mxfep01.bredband.com (mxfep01.bredband.com [195.54.107.70]) by talvi.dovecot.org (Postfix) with ESMTP id 2D880C002803 for ; Fri, 30 Jan 2004 18:25:04 +0200 (EET) Received: from kalle.dyndns.org ([213.114.209.36] [213.114.209.36]) by mxfep01.bredband.com with ESMTP id <20040130162235.DGNH4345.mxfep01.bredband.com@kalle.dyndns.org> for ; Fri, 30 Jan 2004 17:22:35 +0100 Received: from ke by kalle.dyndns.org with local (Exim 4.21) id 1AmbPw-0007Is-2O for: 22:52 +0100 Date: Fri, 30 Jan 2004 17:22:52 +0100 From: Karl Eklund To: dovecot@dovecot.org Message-ID: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i Sender: Subject: [Dovecot] Dovecot crashes on certain spam messages X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2004 16:25:06 -0000 X-UID: 4201 Status: O Dovecot crashes. I think it's because of some message in my spam folder. It has happened once before, and that time I solved it by deleting that folder. It happens when I start gnus ("Checking messages in folder spam" or something like that), which makes gnus just stop, or when I try to enter that folder in mutt. Jan 30 17:07:09 kalle imap(ke): file imap-bodystructure.c: line 278 (part_parse_headers): assertion failed: (part->physical_pos >= input->v_offset - start_offset) Is there something I can do to determine which message it crashed on? Maildir format, version 0.99.10.4. From shiva@sewingwitch.com Fri Jan 30 20:04:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CD707C002805; Fri, 30 Jan 2004 20:04:59 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 6A7E8C002803 for ; Fri, 30 Jan 2004 20:04:57 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i0UI2boP015865 for ; Fri, 30 Jan 2004 13:02:37 -0500 Received: from [10.69.3.69] (uugw.kensingtonlabs.com [65.200.126.98]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i0UI2a0g030498 for ; Fri, 30 Jan 2004 10:02:36 -0800 Date: Fri, 30 Jan 2004 10:02:36 -0800 From: Kenneth Porter To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot crashes on certain spam messages Message-ID: <2139560555.1075456956@[10.69.3.69]> In-Reply-To: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> References: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> X-Mailer: Mulberry/3.1.1 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2004 18:05:00 -0000 X-UID: 4202 Status: O --On Friday, January 30, 2004 5:22 PM +0100 Karl Eklund wrote: > Is there something I can do to determine which message it crashed on? My approach would be to add a line of code to log the message file name and rebuild. (I love having access to source code!) From tss@iki.fi Fri Jan 30 20:13:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7CE56C002807; Fri, 30 Jan 2004 20:13:26 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 6AFAEC002806 for ; Fri, 30 Jan 2004 20:13:24 +0200 (EET) Received: by danu.procontrol.fi (Postfix, from userid 106) id B5A98239FD; Fri, 30 Jan 2004 20:11:05 +0200 (EET) Received: from [192.168.10.209] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C12BC239F7 for ; Fri, 30 Jan 2004 20:10:32 +0200 (EET) Mime-Version: 1.0 (Apple Message framework v612) In-Reply-To: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> References: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-2-542265535" Message-Id: <964907FE-534F-11D8-97C9-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Dovecot crashes on certain spam messages Date: Fri, 30 Jan 2004 20:10:29 +0200 To: dovecot@dovecot.org X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.612) X-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2004 18:13:26 -0000 X-UID: 4203 Status: O Content-Length: 1047 --Apple-Mail-2-542265535 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 30.1.2004, at 18:22, Karl Eklund wrote: > Jan 30 17:07:09 kalle imap(ke): file imap-bodystructure.c: line > 278 (part_parse_headers): assertion failed: (part->physical_pos >= > input->v_offset - start_offset) > > Is there something I can do to determine which message it crashed on? > > Maildir format, version 0.99.10.4. gdb backtrace would be useful from that, it'd also tell which message triggered it. See core dumps section in http://dovecot.org/bugreport.html --Apple-Mail-2-542265535 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAGp4WyUhSUUBViskRAnh9AJ9A898y95/FA0Vd80gJFFCyV/ItwQCgjC8T uG3X0PII9LAxEIyUtXcSrao= =pXc1 -----END PGP SIGNATURE----- --Apple-Mail-2-542265535-- From mdbaker@rose-hulman.edu Fri Jan 30 21:11:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 18AF3C002807; Fri, 30 Jan 2004 21:11:38 +0200 (EET) Received: from envelope.rose-hulman.edu (envelope.rose-hulman.edu [137.112.8.21]) by talvi.dovecot.org (Postfix) with ESMTP id 77FA8C002803 for ; Fri, 30 Jan 2004 21:11:35 +0200 (EET) Received: from babylon5.rose-hulman.edu (babylon5.rose-hulman.edu [137.112.0.66]) (authenticated (0 bits)) by envelope.rose-hulman.edu (8.11.6/8.11.6) with ESMTP id i0UJ9BJ17865 (using TLSv1/SSLv3 with cipher RC4-MD5 (128 bits) verified NO) for ; Fri, 30 Jan 2004 14:09:14 -0500 (EST) From: Mitchell Baker To: Dovecot Mail list Content-Type: text/plain Organization: Rose-Hulman Institute of Technology Message-Id: <1075489748.2418.18.camel@babylon5.rose-hulman.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 30 Jan 2004 14:09:08 -0500 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Dovecot dies on startup???? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: mdbaker@rose-hulman.edu List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2004 19:11:38 -0000 X-UID: 4204 Status: O Content-Length: 1055 Trying to crank it up on our RedHat 8.0 system... I get the following.. I am sure it is something simple in the config.. just don't know what... Any help would be greatly appreciated.. Here is from the log.. If there is a way to get more log info that might help he as well.. Jan 29 14:30:34 smtp dovecot: Dovecot starting up Jan 29 14:30:34 smtp dovecot: dovecot startup succeeded Jan 29 14:30:36 smtp dovecot: Auth process died too early - shutting down Jan 29 14:30:36 smtp dovecot: child 3517 (auth) returned error 127 Jan 29 14:30:36 smtp imap-login: fd_send(-1) failed: Broken pipe Thanks... See-ya Mitch -- /####################################################################/ /# Mitchell "Buzz" Baker "To Infinity And Beyond..." #/ /# Sr. Systems/Security Admin Rose-Hulman Institute of Technology #/ /# Mitchell.D.Baker@rose-hulman.edu www.rose-hulman.edu #/ /# For PGP Public key, check out www.keyserver.net #/ /####################################################################/ From blair@orcaware.com Fri Jan 30 21:24:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1914EC002807; Fri, 30 Jan 2004 21:24:59 +0200 (EET) Received: from orcaware.com (bdsl.66.12.233.174.gte.net [66.12.233.174]) by talvi.dovecot.org (Postfix) with ESMTP id 56A19C002803 for ; Fri, 30 Jan 2004 21:24:55 +0200 (EET) Received: from orcaware.com (localhost.localdomain [127.0.0.1]) by orcaware.com (8.12.8/8.12.8) with ESMTP id i0UJMYgf008699; Fri, 30 Jan 2004 11:22:34 -0800 Message-ID: <401AAEFA.DFD27ADC@orcaware.com> Date: Fri, 30 Jan 2004 11:22:34 -0800 From: Blair Zajac X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en,x-ns1rfacHe4WNh5,x-ns2U100btwUq5f MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] Assert in Fedora dovecot-0.99.10.4-1 References: <3FDF9E72.F40E0758@orcaware.com> <1071891341.10028.17.camel@hurina> <3FE4A0B9.371C08AE@orcaware.com> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Cc: Dovecot mailing list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2004 19:24:59 -0000 X-UID: 4205 Status: O Content-Length: 3835 Hi Timo, Any chance to look at the following gdb traceback? Best, Blair Blair Zajac wrote: > > Timo Sirainen wrote: > > > > On Wed, 2003-12-17 at 02:08, Blair Zajac wrote: > > > imap(blair): Dec 16 13:53:06 Panic: file istream.c: line 93 > > > (i_stream_set_read_limit): assertion failed: > > > (stream->v_size == 0 || v_offset <= stream->v_size) > > > > > > If there's any more information I can provide, please let me > > > know. > > > > Probably because of something in your mailbox. Is it mbox or maildir? > > Also backtrace would be useful. See > > http://www.dovecot.org/bugreport.html > > Hi Timo, > > My mailbox is maildir. > > Here's a stack trace: > > orcaware% gdb -p 9216 > GNU gdb Red Hat Linux (5.3post-0.20021129.18rh) > Copyright 2003 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "i386-redhat-linux-gnu". > Attaching to process 9216 > Reading symbols from /usr/libexec/dovecot/imap...done. > Reading symbols from /lib/libdl.so.2...done. > Loaded symbols for /lib/libdl.so.2 > Reading symbols from /lib/tls/libc.so.6...done. > Loaded symbols for /lib/tls/libc.so.6 > Reading symbols from /lib/ld-linux.so.2...done. > Loaded symbols for /lib/ld-linux.so.2 > 0xffffe002 in ?? () > (gdb) t > [Current thread is 0 (process 9216)] > (gdb) c > Continuing. > > Program received signal SIGABRT, Aborted. > 0xffffe002 in ?? () > (gdb) bt > #0 0xffffe002 in ?? () > #1 0x42028c55 in abort () from /lib/tls/libc.so.6 > #2 0x0809326c in default_panic_handler ( > format=0x80ab020 "file %s: line %d (%s): assertion failed: (%s)", > args=0xbffff614 "\001°\n\b]") at failures.c:141 > #3 0x08093419 in i_panic ( > format=0x80ab020 "file %s: line %d (%s): assertion failed: (%s)") > at failures.c:198 > #4 0x08095cb3 in i_stream_set_read_limit (stream=0x80be05c, v_offset=931) > at istream.c:93 > #5 0x0808c81a in message_search_body (ctx=0xbffff710, input=0x80be05c, > part=0x80bfad0) at message-body-search.c:304 > #6 0x0808cc46 in message_body_search_ctx (ctx=0xbffff770, input=0x80be05c, > part=0x80bfad0) at message-body-search.c:409 > #7 0x0808ccd6 in message_body_search (key=0x80b6fb8 "9216", charset=0x0, > unknown_charset=0xbffff7cc, input=0x80be05c, part=0x80bfad0, > search_header=0) at message-body-search.c:434 > #8 0x08073837 in search_body (arg=0x80beae8, context=0xbffff850) > at index-search.c:634 > #9 0x08084ee9 in search_arg_foreach (arg=0x80beae8, > callback=0x807379d , context=0xbffff850) at mail-search.c:70 > #10 0x08084f19 in mail_search_args_foreach (args=0x80beae8, > callback=0x807379d , context=0xbffff850) at mail-search.c:82 > #11 0x08073a66 in search_arg_match_text (args=0x80beac8, ctx=0x80bdee0) > at index-search.c:692 > #12 0x0807452e in index_storage_search_next (ctx=0x80bdee0) > at index-search.c:1024 > #13 0x080538ba in imap_search (client=0x80b6cd8, charset=0x0, sargs=0x80beac8) > at cmd-search.c:28 > #14 0x08053bd9 in cmd_search (client=0x80b6cd8) at cmd-search.c:93 > #15 0x08054fea in cmd_uid (client=0x80b6cd8) at cmd-uid.c:19 > #16 0x0805599e in client_handle_input (client=0x80b6cd8) at client.c:314 > #17 0x08055a63 in _client_input (context=0x80b6cd8) at client.c:350 > #18 0x08098863 in io_loop_handler_run (ioloop=0x80b6348) at ioloop-poll.c:214 > #19 0x08097e80 in io_loop_run (ioloop=0x80b6348) at ioloop.c:258 > #20 0x0805d309 in main (argc=1, argv=0xbffffa84, envp=0xbffffa8c) at main.c:179 > #21 0x42015704 in __libc_start_main () from /lib/tls/libc.so.6 > > Best, > Blair From rjohnson@medata.com Fri Jan 30 22:20:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 79B48C002807; Fri, 30 Jan 2004 22:20:08 +0200 (EET) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id CCA75C002803 for ; Fri, 30 Jan 2004 22:20:05 +0200 (EET) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i0UKHgk6032319 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 30 Jan 2004 12:17:43 -0800 Message-ID: <401ABBE8.8030007@medata.com> Date: Fri, 30 Jan 2004 12:17:44 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040116 X-Accept-Language: en-us, en MIME-Version: 1.0 To: mdbaker@rose-hulman.edu Subject: Re: [Dovecot] Dovecot dies on startup???? References: <1075489748.2418.18.camel@babylon5.rose-hulman.edu> In-Reply-To: <1075489748.2418.18.camel@babylon5.rose-hulman.edu> X-Enigmail-Version: 0.83.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Dovecot Mail list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2004 20:20:08 -0000 X-UID: 4206 Status: O Content-Length: 1058 Mitchell Baker wrote: > Trying to crank it up on our RedHat 8.0 system... I get the following.. > I am sure it is something simple in the config.. just don't know what... > Any help would be greatly appreciated.. > > Here is from the log.. If there is a way to get more log info that might > help he as well.. > > Jan 29 14:30:34 smtp dovecot: Dovecot starting up > Jan 29 14:30:34 smtp dovecot: dovecot startup succeeded > Jan 29 14:30:36 smtp dovecot: Auth process died too early - shutting > down > Jan 29 14:30:36 smtp dovecot: child 3517 (auth) returned error 127 > Jan 29 14:30:36 smtp imap-login: fd_send(-1) failed: Broken pipe > I received this one when using an encrypted private key for SSL. If this is the case, make sure your key is unencrypted (and readable only by root), or, if possible, the password for the private key is placed in an appropriate location. HTH, -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From mdbaker@rose-hulman.edu Fri Jan 30 22:51:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 37485C002807; Fri, 30 Jan 2004 22:51:39 +0200 (EET) Received: from envelope.rose-hulman.edu (envelope.rose-hulman.edu [137.112.8.21]) by talvi.dovecot.org (Postfix) with ESMTP id 676D7C002803 for ; Fri, 30 Jan 2004 22:51:36 +0200 (EET) Received: from babylon5.rose-hulman.edu (babylon5.rose-hulman.edu [137.112.0.66]) (authenticated (0 bits)) by envelope.rose-hulman.edu (8.11.6/8.11.6) with ESMTP id i0UKn4J28029 (using TLSv1/SSLv3 with cipher RC4-MD5 (128 bits) verified NO); Fri, 30 Jan 2004 15:49:08 -0500 (EST) Subject: Re: [Dovecot] Dovecot dies on startup???? From: Mitchell Baker To: Rick Johnson In-Reply-To: <401ABBE8.8030007@medata.com> References: <1075489748.2418.18.camel@babylon5.rose-hulman.edu> <401ABBE8.8030007@medata.com> Content-Type: text/plain Organization: Rose-Hulman Institute of Technology Message-Id: <1075495742.2413.21.camel@babylon5.rose-hulman.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 30 Jan 2004 15:49:02 -0500 Content-Transfer-Encoding: 7bit Cc: Dovecot Mail list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: mdbaker@rose-hulman.edu List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2004 20:51:39 -0000 X-UID: 4207 Status: O Content-Length: 1129 Thanks Rick... but currently for testing I'm not using SSL... Any other ideas??? protocols I only have imap defined.. See-ya Mitch On Fri, 2004-01-30 at 15:17, Rick Johnson wrote: > Mitchell Baker wrote: > > Trying to crank it up on our RedHat 8.0 system... I get the following.. > > I am sure it is something simple in the config.. just don't know what... > > Any help would be greatly appreciated.. > > > > Here is from the log.. If there is a way to get more log info that might > > help he as well.. > > > > Jan 29 14:30:34 smtp dovecot: Dovecot starting up > > Jan 29 14:30:34 smtp dovecot: dovecot startup succeeded > > Jan 29 14:30:36 smtp dovecot: Auth process died too early - shutting > > down > > Jan 29 14:30:36 smtp dovecot: child 3517 (auth) returned error 127 > > Jan 29 14:30:36 smtp imap-login: fd_send(-1) failed: Broken pipe > > > > I received this one when using an encrypted private key for SSL. If this > is the case, make sure your key is unencrypted (and readable only by > root), or, if possible, the password for the private key is placed in an > appropriate location. > > HTH, > -Rick From SAiello@Jentoo.com Sat Jan 31 01:30:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 43264C002807; Sat, 31 Jan 2004 01:30:41 +0200 (EET) Received: from mecury.jentoo.com (mercury.jentoo.com [216.235.252.207]) by talvi.dovecot.org (Postfix) with ESMTP id 27965C002803 for ; Sat, 31 Jan 2004 01:30:39 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mecury.jentoo.com (Postfix) with ESMTP id D94E97D for ; Fri, 30 Jan 2004 19:09:30 -0500 (EST) Received: from mecury.jentoo.com ([127.0.0.1]) by localhost (Mercury [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 27951-04 for ; Fri, 30 Jan 2004 19:09:11 -0500 (EST) Received: from 45.4.office.kent.outpost.com (near.outpost.com [69.44.121.165]) (using SSLv3 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mecury.jentoo.com (Postfix) with ESMTP id 737B05B for ; Fri, 30 Jan 2004 19:09:11 -0500 (EST) From: "SAiello@Jentoo.com" To: dovecot@dovecot.org Date: Fri, 30 Jan 2004 18:21:43 -0500 User-Agent: KMail/1.6 References: <2065534401.1075382930@[10.69.3.69]> <1075417597.24664.48.camel@hurina> <20040129234943.GF2707@iridium.mv.net> In-Reply-To: <20040129234943.GF2707@iridium.mv.net> MIME-Version: 1.0 Content-Disposition: inline X-UID: 8622 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200401301821.43092.SAiello@Jentoo.com> X-Virus-Scanned: by amavisd-new at Mecury Subject: [Dovecot] MD5 ldap password schemes X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: SAiello@Jentoo.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2004 23:30:41 -0000 Status: O Looking at the possible LDAP passwords Schemes, if I wanted to use PLAIN-MD5 or DIGEST-MD5, what would format would I use in LDAP for the userPassword field ? I have done SHA, SSHA, and MD5 before, but not sure what is acceptable for the above mentioned, that dovecot can use. Thanks From kalle-e@medelklassen.com Sat Jan 31 18:59:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BCF59C002806; Sat, 31 Jan 2004 18:59:17 +0200 (EET) Received: from mxfep01.bredband.com (mxfep01.bredband.com [195.54.107.70]) by talvi.dovecot.org (Postfix) with ESMTP id 30981C002803 for ; Sat, 31 Jan 2004 18:59:15 +0200 (EET) Received: from medelklassen.com ([213.114.209.80] [213.114.209.80]) by mxfep01.bredband.com with ESMTP id <20040131165654.LNKX4345.mxfep01.bredband.com@medelklassen.com> for ; Sat, 31 Jan 2004 17:56:54 +0100 Message-ID: <401BDE52.2070307@medelklassen.com> Date: Sat, 31 Jan 2004 16:56:50 +0000 From: Karl Eklund User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot crashes on certain spam messages References: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> <964907FE-534F-11D8-97C9-000393CC2E90@iki.fi> In-Reply-To: <964907FE-534F-11D8-97C9-000393CC2E90@iki.fi> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 Jan 2004 16:59:18 -0000 X-UID: 8623 Status: O Content-Length: 1422 Timo Sirainen wrote: > On 30.1.2004, at 18:22, Karl Eklund wrote: > >> Jan 30 17:07:09 kalle imap(ke): file imap-bodystructure.c: line >> 278 (part_parse_headers): assertion failed: (part->physical_pos >= >> input->v_offset - start_offset) >> >> Is there something I can do to determine which message it crashed on? >> >> Maildir format, version 0.99.10.4. > > > gdb backtrace would be useful from that, it'd also tell which message > triggered it. See core dumps section in http://dovecot.org/bugreport.html I don't get a core file if I set the drop privileges option that you describe there. Also I maybe should have mentioned the next line in the log file: Jan 31 17:47:56 kalle imap(ke): file imap-bodystructure.c: line 279 (part_parse_headers): assertion failed: (part->physical_pos >= input->v_offset - start_offset) Jan 31 17:47:56 kalle dovecot: child 4912 (imap) killed with signal 6 So it seems that it's not a proper crash (not signal 11) but that it exits voluntarily from the i_assert macro. Maybe that's why no core file appears? I also tried to figure out how to log some more info as Kenneth Porter suggested, but I can't manage to find out how to get the file name, or anything otherwise useful. I'm not a programmer and I never looked at the dovecot code before. If I knew how to jump around between function definitions etc without having to search with grep, perhaps I could find it. From shiva@sewingwitch.com Sat Jan 31 23:05:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 963E7C002806; Sat, 31 Jan 2004 23:05:25 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 35A40C002803 for ; Sat, 31 Jan 2004 23:05:23 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i0VL2xoP027342 for ; Sat, 31 Jan 2004 16:03:00 -0500 Received: from [10.0.0.221] (CPQ32245280371.dhcp.lsi.lan [10.0.0.221]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i0VL2w0g005416 for ; Sat, 31 Jan 2004 13:02:58 -0800 Date: Sat, 31 Jan 2004 13:02:58 -0800 From: Kenneth Porter To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot crashes on certain spam messages Message-ID: <10595876.1075554178@[10.0.0.221]> In-Reply-To: <401BDE52.2070307@medelklassen.com> References: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> <964907FE-534F-11D8-97C9-000393CC2E90@iki.fi> <401BDE52.2070307@medelklassen.com> X-Mailer: Mulberry/3.1.0 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 Jan 2004 21:05:25 -0000 X-UID: 8624 Status: O --On Saturday, January 31, 2004 4:56 PM +0000 Karl Eklund wrote: > So it seems that it's not a proper crash (not signal 11) but that it > exits voluntarily from the i_assert macro. Maybe that's why no core file > appears? Likely, but also check that "ulimit -c" allows the process to dump core. Use ulimit to set the max core dump size before launching dovecot. From kalle-e@medelklassen.com Sat Jan 31 23:30:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 26437C002805; Sat, 31 Jan 2004 23:30:54 +0200 (EET) Received: from mxfep01.bredband.com (mxfep01.bredband.com [195.54.107.70]) by talvi.dovecot.org (Postfix) with ESMTP id D30E6C002803 for ; Sat, 31 Jan 2004 23:30:51 +0200 (EET) Received: from medelklassen.com ([213.114.209.80] [213.114.209.80]) by mxfep01.bredband.com with ESMTP id <20040131212830.NGLU4345.mxfep01.bredband.com@medelklassen.com> for ; Sat, 31 Jan 2004 22:28:30 +0100 Message-ID: <401C1DF9.9010209@medelklassen.com> Date: Sat, 31 Jan 2004 21:28:25 +0000 From: Karl Eklund User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot crashes on certain spam messages References: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> <964907FE-534F-11D8-97C9-000393CC2E90@iki.fi> <401BDE52.2070307@medelklassen.com> <10595876.1075554178@[10.0.0.221]> In-Reply-To: <10595876.1075554178@[10.0.0.221]> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 Jan 2004 21:30:54 -0000 X-UID: 8625 Status: O Kenneth Porter wrote: > Likely, but also check that "ulimit -c" allows the process to dump > core. Use ulimit to set the max core dump size before launching dovecot. OK, I inserted "ulimit -c 50000" before /usr/local/sbin/dovecot in my startup script, but no core file appears. I think I would need some help with what you suggested, adding some more logging. From jonas@jones.dk Sun Feb 1 11:52:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 25FC3C002803; Sun, 1 Feb 2004 11:52:08 +0200 (EET) Received: from auryn.jones.dk (cpe.atm0-0-0-1201001.0x503f72d6.albnxx2.customer.tele.dk [80.63.114.214]) by talvi.dovecot.org (Postfix) with ESMTP id 145D7C002802 for ; Sun, 1 Feb 2004 11:52:06 +0200 (EET) Received: from jones.dk (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id 885953F2084 for ; Sun, 1 Feb 2004 10:49:40 +0100 (CET) Message-ID: <401CCBAC.1060906@jones.dk> Date: Sun, 01 Feb 2004 10:49:32 +0100 From: Jonas Smedegaard User-Agent: Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.6b) Gecko/20031222 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot crashes on certain spam messages References: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> <964907FE-534F-11D8-97C9-000393CC2E90@iki.fi> <401BDE52.2070307@medelklassen.com> <10595876.1075554178@[10.0.0.221]> <401C1DF9.9010209@medelklassen.com> In-Reply-To: <401C1DF9.9010209@medelklassen.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: dr@jones.dk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2004 09:52:08 -0000 X-UID: 8626 Status: O Karl Eklund wrote: > Kenneth Porter wrote: > >> Likely, but also check that "ulimit -c" allows the process to dump >> core. Use ulimit to set the max core dump size before launching dovecot. > > > > OK, I inserted "ulimit -c 50000" before /usr/local/sbin/dovecot in my > startup script, but no core file appears. I think I would need some help > with what you suggested, adding some more logging. Perhaps mounting the filesystem with something else than 0 as last but one item in fstab solves it? - Jonas -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ - Enden er nær: http://www.shibumi.org/eoti.htm From tss@iki.fi Mon Feb 2 20:00:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1AB9BC002803; Mon, 2 Feb 2004 20:00:27 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 0D26FC002802 for ; Mon, 2 Feb 2004 20:00:25 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id F07F03003DD55 for ; Mon, 2 Feb 2004 19:57:58 +0200 (EET) Subject: Re: [Dovecot] Dovecot dies on startup???? From: Timo Sirainen To: Dovecot Mail list In-Reply-To: <1075489748.2418.18.camel@babylon5.rose-hulman.edu> References: <1075489748.2418.18.camel@babylon5.rose-hulman.edu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Y+efjiOxAwrJWYOeLbTH" Message-Id: <1075744678.9262.21.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 02 Feb 2004 19:57:58 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2004 18:00:27 -0000 X-UID: 8627 Status: O Content-Length: 1059 --=-Y+efjiOxAwrJWYOeLbTH Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-01-30 at 21:09, Mitchell Baker wrote: > Jan 29 14:30:34 smtp dovecot: Dovecot starting up > Jan 29 14:30:34 smtp dovecot: dovecot startup succeeded > Jan 29 14:30:36 smtp dovecot: Auth process died too early - shutting > down > Jan 29 14:30:36 smtp dovecot: child 3517 (auth) returned error 127 > Jan 29 14:30:36 smtp imap-login: fd_send(-1) failed: Broken pipe Usually this happens when you've compiled it with some library that isn't in library path at the time of running it. Try: ldd /usr/local/libexec/dovecot/dovecot-auth it probably says something about missing libraries. --=-Y+efjiOxAwrJWYOeLbTH Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAHo+myUhSUUBViskRAvwWAKCbaaNiDJfsGosa3Oz3d8x2MXBRJQCePWg0 r/zst3bTVeXwfsrink4JV6Y= =hmS3 -----END PGP SIGNATURE----- --=-Y+efjiOxAwrJWYOeLbTH-- From tss@iki.fi Mon Feb 2 20:05:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3FCD6C002808; Mon, 2 Feb 2004 20:05:21 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id F3490C002806 for ; Mon, 2 Feb 2004 20:05:18 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 0E6CF3003DD55 for ; Mon, 2 Feb 2004 20:02:53 +0200 (EET) Subject: Re: [Dovecot] MD5 ldap password schemes From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <200401301821.43092.SAiello@Jentoo.com> References: <2065534401.1075382930@[10.69.3.69]> <1075417597.24664.48.camel@hurina> <20040129234943.GF2707@iridium.mv.net> <200401301821.43092.SAiello@Jentoo.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-X8KDYpF+U4QwztLmTMe9" Message-Id: <1075744972.9257.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 02 Feb 2004 20:02:53 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2004 18:05:21 -0000 X-UID: 8628 Status: O --=-X8KDYpF+U4QwztLmTMe9 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-01-31 at 01:21, SAiello@Jentoo.com wrote: > Looking at the possible LDAP passwords Schemes, if I wanted to use PLAIN-= MD5=20 > or DIGEST-MD5, what would format would I use in LDAP for the userPassword= =20 > field ? I have done SHA, SSHA, and MD5 before, but not sure what is=20 > acceptable for the above mentioned, that dovecot can use. PLAIN-MD5 means the field contains just the MD5 sum of the password in hex. DIGEST-MD5 is MD5 sum of user:realm:password string. They don't have any special format in there.. --=-X8KDYpF+U4QwztLmTMe9 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAHpDMyUhSUUBViskRApQmAJ93vb6S8qX64hD3JOz92nIKcr8EsgCcC1Td oToHrGkjZXaA/aoTg04Vm7M= =0gOp -----END PGP SIGNATURE----- --=-X8KDYpF+U4QwztLmTMe9-- From kalle-e@medelklassen.com Mon Feb 2 23:24:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4EB55C002803; Mon, 2 Feb 2004 23:24:37 +0200 (EET) Received: from mxfep02.bredband.com (mxfep02.bredband.com [195.54.107.73]) by talvi.dovecot.org (Postfix) with ESMTP id 405EAC002802 for ; Mon, 2 Feb 2004 23:24:35 +0200 (EET) Received: from medelklassen.com ([213.114.209.34] [213.114.209.34]) by mxfep02.bredband.com with ESMTP id <20040202212159.ENKX16990.mxfep02.bredband.com@medelklassen.com> for ; Mon, 2 Feb 2004 22:21:59 +0100 Message-ID: <401EBF76.5070104@medelklassen.com> Date: Mon, 02 Feb 2004 21:21:58 +0000 From: Karl Eklund User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot crashes on certain spam messages References: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> <964907FE-534F-11D8-97C9-000393CC2E90@iki.fi> <401BDE52.2070307@medelklassen.com> <10595876.1075554178@[10.0.0.221]> <401C1DF9.9010209@medelklassen.com> <401CCBAC.1060906@jones.dk> In-Reply-To: <401CCBAC.1060906@jones.dk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2004 21:24:37 -0000 X-UID: 8629 Status: O Jonas Smedegaard wrote: > Perhaps mounting the filesystem with something else than 0 as last but > one item in fstab solves it? Why? The dump option seems to have something to do with a kind of backup system, according to man fstab. Also, it seems to be possible to get a core dump: ~ $ cat crash.c main() { char *s; while(1) { *s = "a"; ++s; } } ~ $ gcc -o crash crash.c crash.c: In function `main': crash.c:1: warning: assignment makes integer from pointer without a cast ~ $ ulimit -c 50000 ~ $ ./crash Segmentation fault (core dumped) ~ $ -rw------- 1 ke users 49152 Feb 2 22:19 core ~ $ From kalle-e@medelklassen.com Mon Feb 2 23:42:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7BB91C002804; Mon, 2 Feb 2004 23:42:51 +0200 (EET) Received: from mxfep02.bredband.com (mxfep02.bredband.com [195.54.107.73]) by talvi.dovecot.org (Postfix) with ESMTP id 1238DC002803 for ; Mon, 2 Feb 2004 23:42:49 +0200 (EET) Received: from medelklassen.com ([213.114.209.34] [213.114.209.34]) by mxfep02.bredband.com with ESMTP id <20040202214022.EQET16990.mxfep02.bredband.com@medelklassen.com> for ; Mon, 2 Feb 2004 22:40:22 +0100 Message-ID: <401EC3C6.1000007@medelklassen.com> Date: Mon, 02 Feb 2004 21:40:22 +0000 From: Karl Eklund User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot crashes on certain spam messages References: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> <964907FE-534F-11D8-97C9-000393CC2E90@iki.fi> <401BDE52.2070307@medelklassen.com> <10595876.1075554178@[10.0.0.221]> <401C1DF9.9010209@medelklassen.com> <401CCBAC.1060906@jones.dk> In-Reply-To: <401CCBAC.1060906@jones.dk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2004 21:42:51 -0000 X-UID: 8630 Status: O Content-Length: 3862 Sorry about this confusion, I don't know what has happened but now I get the core file. Operating system: Gentoo, dovecot version 0.99.10.4, not from Gentoo. Syslog: Feb 2 22:23:01 kalle imap-login: Login: ke [213.114.209.34] Feb 2 22:23:02 kalle imap(ke): file imap-bodystructure.c: line 279 (part_parse_headers): assertion failed: (part->physical_pos >= input->v_offset - start_offset) Feb 2 22:23:02 kalle dovecot: child 10144 (imap) killed with signal 6 /home/ke # gdb /usr/local/libexec/dovecot/imap core GNU gdb 5.3 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"... Core was generated by `imap'. Program terminated with signal 6, Aborted. Reading symbols from /lib/libdl.so.2...done. Loaded symbols for /lib/libdl.so.2 Reading symbols from /lib/libc.so.6...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 #0 0x400562e1 in kill () from /lib/libc.so.6 (gdb) bt #0 0x400562e1 in kill () from /lib/libc.so.6 #1 0x40056085 in raise () from /lib/libc.so.6 #2 0x400575fb in abort () from /lib/libc.so.6 #3 0x08086935 in i_syslog_panic_handler (fmt=0x0, args=0x0) at failures.c:306 #4 0x08086749 in i_panic (format=0x0) at failures.c:198 #5 0x0807c5f8 in part_parse_headers (part=0x80ad7a0, input=0x80ab68c, start_offset=0, pool=0x80ad700) at imap-bodystructure.c:285 #6 0x0807c5ca in part_parse_headers (part=0x80ad758, input=0x80ab68c, start_offset=0, pool=0x80ad700) at imap-bodystructure.c:285 #7 0x0807cd43 in imap_part_get_bodystructure (pool=0x80ad700, part=0xbffff944, input=0x6, extended=0) at imap-bodystructure.c:500 #8 0x08075a67 in mail_index_update_headers (update=0xbffff944, input=0x80ad758, cache_fields=DATA_FIELD_BODY, header_cb=0, context=0x0) at mail-index-update.c:489 #9 0x08075c3a in cache_record (index=0x80ab048, rec=0x80ab708, cache_fields=DATA_FIELD_BODY) at mail-index-update-cache.c:26 #10 0x08075cde in mail_index_update_cache (index=0x80ab048) at mail-index-update-cache.c:48 #11 0x080742fd in index_open_and_fix (index=0x80ab048, flags=3) at mail-index-open.c:164 #12 0x0807491b in mail_index_open_index (index=0x80ab048, flags=3) at mail-index-open.c:384 #13 0x08074a7d in mail_index_open (index=0x3, flags=0) at mail-index-open.c:429 ---Type to continue, or q to quit--- #14 0x0806e922 in index_storage_mailbox_init (storage=0x80a5928, box=0x80ab048, index=0x80ab048, name=0x80a5cb0 "spam", readonly=0, fast=0) at index-storage.c:338 #15 0x0805b50f in maildir_open (storage=0x80a5928, name=0x80a5cb0 "spam", readonly=0, fast=0) at maildir-storage.c:313 #16 0x0805b625 in maildir_open_mailbox (storage=0x80a5928, name=0x80a5cb0 "spam", readonly=0, fast=0) at maildir-storage.c:346 #17 0x08053352 in _cmd_select_full (client=0x809cef8, readonly=1075145120) at cmd-select.c:23 #18 0x08053529 in cmd_select (client=0x0) at cmd-select.c:87 #19 0x08054a2c in client_handle_input (client=0x80a5cb0) at client.c:314 #20 0x08054ac8 in _client_input (context=0x80a59f0) at client.c:350 #21 0x0808ab23 in io_loop_handler_run (ioloop=0x80a5070) at ioloop-poll.c:214 #22 0x0808a4b8 in io_loop_run (ioloop=0x80a5070) at ioloop.c:258 #23 0x0805aab9 in main (argc=1, argv=0x0, envp=0x0) at main.c:179 #24 0x4004290c in __libc_start_main () from /lib/libc.so.6 (gdb) I've tried to find the message 1075145120 (if that now is the message number), but there is no file in .maildir with that in the name. Some of them start with 107514, however. From joshua@shallow.net Tue Feb 3 03:53:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C0EA1C002803; Tue, 3 Feb 2004 03:53:51 +0200 (EET) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id D4C72C002802 for ; Tue, 3 Feb 2004 03:53:48 +0200 (EET) Received: by yello.shallow.net (Postfix, from userid 1001) id 595812FDB; Tue, 3 Feb 2004 12:51:19 +1100 (EST) Date: Tue, 3 Feb 2004 12:51:19 +1100 From: Joshua Goodall To: dovecot@dovecot.org Subject: Re: [Dovecot] MD5 ldap password schemes Message-ID: <20040203015119.GQ23724@roughtrade.net> References: <2065534401.1075382930@[10.69.3.69]> <1075417597.24664.48.camel@hurina> <20040129234943.GF2707@iridium.mv.net> <200401301821.43092.SAiello@Jentoo.com> <1075744972.9257.26.camel@hurina> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="G3juXO9GfR42w+sw" Content-Disposition: inline In-Reply-To: <1075744972.9257.26.camel@hurina> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2004 01:53:51 -0000 X-UID: 8631 Status: O Content-Length: 4885 --G3juXO9GfR42w+sw Content-Type: multipart/mixed; boundary="8/pVXlBMPtxfSuJG" Content-Disposition: inline --8/pVXlBMPtxfSuJG Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Feb 02, 2004 at 08:02:53PM +0200, Timo Sirainen wrote: > On Sat, 2004-01-31 at 01:21, SAiello@Jentoo.com wrote: > > Looking at the possible LDAP passwords Schemes, if I wanted to use PLAI= N-MD5=20 > > or DIGEST-MD5, what would format would I use in LDAP for the userPasswo= rd=20 > > field ? I have done SHA, SSHA, and MD5 before, but not sure what is=20 > > acceptable for the above mentioned, that dovecot can use. >=20 > PLAIN-MD5 means the field contains just the MD5 sum of the password in > hex. DIGEST-MD5 is MD5 sum of user:realm:password string. They don't > have any special format in there.. There is a certain impedence mismatch between RFC2307's idea of {MD5} and Dovecot's. I tinkered a while ago with this quirk and the resulting patch is attached. (also available from http://www.roughtrade.net/dovecot/) Caveat emptor: it is totally untested beyond my workstation, it is unchanged from months ago, has not been reviewed by Timo and is not in the CVS tree. I've only just confirmed that it compiles with 0.99.10.4. Let me know if it's of any use. Regards Joshua. --=20 Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 --8/pVXlBMPtxfSuJG Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="dovecot-ldap-md5-quirk-0.99.10.4.diff" Content-Transfer-Encoding: quoted-printable --- dovecot-0.99.10.4/src/auth/passdb-ldap.c.orig Fri Mar 21 02:55:57 2003 +++ dovecot-0.99.10.4/src/auth/passdb-ldap.c Tue Feb 3 12:19:17 2004 @@ -11,6 +11,9 @@ #include "password-scheme.h" #include "db-ldap.h" #include "passdb.h" +#include "base64.h" +#include "buffer.h" +#include "hex-binary.h" =20 #include #include @@ -54,6 +57,7 @@ struct auth_request *auth_request =3D request->context; LDAPMessage *entry; BerElement *ber; + buffer_t *buf; char *attr, **vals; const char *user, *password, *scheme; int ret; @@ -102,6 +106,16 @@ if (scheme =3D=3D NULL) { scheme =3D conn->set.default_pass_scheme; i_assert(scheme !=3D NULL); + } + + /* Special case for OpenLDAP's MD5 type */ + if (strcasecmp(scheme, "MD5") =3D=3D 0) { + buf =3D buffer_create_static(data_stack_pool, 16); + if (base64_decode(password, strlen(password), NULL, buf) =3D=3D 1 + && buffer_get_used_size(buf) =3D=3D 16) { + password =3D binary_to_hex(buffer_get_data(buf, NULL), 16); + scheme =3D "PLAIN-MD5"; + } } =20 if (ldap_request->credentials !=3D -1) { --- dovecot-0.99.10.4/src/auth/password-scheme.c.orig Sun May 4 04:32:59 2= 003 +++ dovecot-0.99.10.4/src/auth/password-scheme.c Tue Feb 3 12:20:57 2004 @@ -2,6 +2,8 @@ =20 #include "lib.h" #include "hex-binary.h" +#include "base64.h" +#include "buffer.h" #include "md5.h" #include "md5crypt.h" #include "mycrypt.h" @@ -16,6 +18,10 @@ { unsigned char digest[16]; const char *realm, *str; + buffer_t *buf; + size_t size; + const void *data; + struct md5_context ctx; =20 if (password =3D=3D NULL) return 0; @@ -48,6 +54,29 @@ return strcasecmp(str, password) =3D=3D 0; } =20 + /* format: base64-encoded MD5 hash and salt */ + if (strcasecmp(scheme, "SMD5") =3D=3D 0) { + buf =3D buffer_create_static(data_stack_pool, + MAX_BASE64_DECODED_SIZE(strlen(password)+1)); + + if (base64_decode(password, strlen(password), NULL, buf) =3D=3D 1) { + data =3D buffer_get_data(buf, &size); + if (size <=3D 16) { + i_error("password-verify(%s): invalid SMD5", user); + return -1; + } + + md5_init(&ctx); + md5_update(&ctx, plaintext, strlen(plaintext)); + md5_update(&ctx, &data[16], size-16); + md5_final(&ctx, digest); + return memcmp(digest, data, 16) =3D=3D 0; + } else { + i_error("password-verify(%s): couldn't decode SMD5", user); + return -1; + } + } + return -1; } =20 @@ -79,6 +108,14 @@ =20 scheme =3D t_strdup_until(*password + 1, p); *password =3D p + 1; + + /* LDAP's RFC2307 specifies the MD5 scheme for what we call PLAIN-MD5. + * Implementations use base64 encoding for the hash, so we can + * detect the genuine {MD5}'s MCF format - base64 doesn't use '$'. */ + if (strncasecmp(scheme, "MD5", 3) =3D=3D 0 && + strncmp(*password, "$1$", 3) !=3D 0) { + scheme =3D "PLAIN-MD5"; + } return scheme; } =20 --8/pVXlBMPtxfSuJG-- --G3juXO9GfR42w+sw Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAHv6XPsqE37hMaDwRAvYLAKDEX4SSEBm1XBTYRnLMs79iMOiJ6gCbBNHm gnoFAH21fH3e/gWuXTqIK9c= =d3mn -----END PGP SIGNATURE----- --G3juXO9GfR42w+sw-- From daniel@electricrain.com Tue Feb 3 18:06:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2F9E9C002802; Tue, 3 Feb 2004 18:06:39 +0200 (EET) Received: from electricrain.com (electricrain.com [64.71.143.226]) by talvi.dovecot.org (Postfix) with ESMTP id A6C0AC002800 for ; Tue, 3 Feb 2004 18:06:35 +0200 (EET) Received: (qmail 5653 invoked by uid 501); 3 Feb 2004 16:04:05 -0000 Date: Tue, 3 Feb 2004 08:04:05 -0800 From: Dan Sully To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot crashes on certain spam messages Message-ID: <20040203160405.GA5548@electricrain.com> Mail-Followup-To: dovecot@dovecot.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="EVF5PPMfhYS0aIcm" Content-Disposition: inline X-Invader-Zim: This "cuteness" has a curious effect on human beings. Makes them...weak. User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2004 16:06:39 -0000 X-UID: 8632 Status: O Content-Length: 20573 --EVF5PPMfhYS0aIcm Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I'm also seeing this - I wasn't able to get a core dump, but was able to get info from strace/lsof to track down the message: strace shows in a continuous read loop, as it's trying to go past EOF. pread(9, "", 3502, 30524) = 0 pread(9, "", 3502, 30524) = 0 pread(9, "", 3502, 30524) = 0 I've attached the problem message (gzipped). -D -- does whistling in the dark make me go blind faster? --EVF5PPMfhYS0aIcm Content-Type: application/octet-stream Content-Disposition: attachment; filename="busted.msg.gz" Content-Transfer-Encoding: base64 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 dwAA --EVF5PPMfhYS0aIcm-- From miquels@cistron.net Tue Feb 3 18:12:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AA798C002808; Tue, 3 Feb 2004 18:12:59 +0200 (EET) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by talvi.dovecot.org (Postfix) with ESMTP id 080B6C002802 for ; Tue, 3 Feb 2004 18:12:57 +0200 (EET) Received: from traveler.cistron-office.nl ([62.216.29.67] helo=traveler) by smtp.cistron-office.nl with esmtp (Exim 3.35 #1 (Debian)) id 1Ao385-0008B9-00; Tue, 03 Feb 2004 17:10:25 +0100 Date: Tue, 3 Feb 2004 17:10:25 +0100 From: Miquel van Smoorenburg To: Karl Eklund Subject: Re: [Dovecot] Dovecot crashes on certain spam messages Message-ID: <20040203161025.GE26514@traveler.cistron.net> References: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> <964907FE-534F-11D8-97C9-000393CC2E90@iki.fi> <401BDE52.2070307@medelklassen.com> <10595876.1075554178@[10.0.0.221]> <401C1DF9.9010209@medelklassen.com> <401CCBAC.1060906@jones.dk> <401EBF76.5070104@medelklassen.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <401EBF76.5070104@medelklassen.com> (from kalle-e@medelklassen.com on Mon, Feb 02, 2004 at 22:21:58 +0100) X-Mailer: Balsa 2.0.16 Lines: 28 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: dovecot@dovecot.org List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2004 16:12:59 -0000 X-UID: 8633 Status: O On 2004.02.02 22:21, Karl Eklund wrote: > Jonas Smedegaard wrote: > > > Perhaps mounting the filesystem with something else than 0 as last but > > one item in fstab solves it? > > > Why? The dump option seems to have something to do with a kind of backup > system, according to man fstab. Also, it seems to be possible to get a > core dump: > > ~ $ cat crash.c > main() { char *s; while(1) { *s = "a"; ++s; } } > ~ $ gcc -o crash crash.c > crash.c: In function `main': > crash.c:1: warning: assignment makes integer from pointer without a cast > ~ $ ulimit -c 50000 > ~ $ ./crash > Segmentation fault (core dumped) > ~ $ > -rw------- 1 ke users 49152 Feb 2 22:19 core 50000 is a bit small for a core file. They usually are tens of megabytes, as the internal memory and mapped files are dumped as well. Use "ulimit -c unlimited" to enable coredumps instead. Mike. From dovecot.org@giggo.de Wed Feb 4 13:24:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F2015C002801; Wed, 4 Feb 2004 13:24:24 +0200 (EET) Received: from lauda.treesign.com (lauda.treesign.com [217.17.192.91]) by talvi.dovecot.org (Postfix) with ESMTP id ADC4BC002800 for ; Wed, 4 Feb 2004 13:24:22 +0200 (EET) Received: from www.treesign.com (www.treesign.com [217.17.192.85]) by lauda.treesign.com (8.11.6/8.11.6) with ESMTP id i14BLpc02258 for ; Wed, 4 Feb 2004 12:21:51 +0100 Received: from FREAKYDEAKY (pD9E8F121.dip.t-dialin.net [217.232.241.33]) (authenticated) by www.treesign.com (8.11.6/8.11.6) with ESMTP id i14BLpo26556 for ; Wed, 4 Feb 2004 12:21:51 +0100 Message-ID: <034601c3eb10$b87c8c00$6d01a8c0@FREAKYDEAKY> From: =?iso-8859-1?Q?Christof_Baumg=E4rtner?= To: Date: Wed, 4 Feb 2004 12:19:00 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-AntiVirus: checked by AntiVir Milter 1.0.4; AVE 6.23.0.3; VDF 6.23.0.56 Subject: [Dovecot] Dovecot died due to some SSL related error X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2004 11:24:25 -0000 X-UID: 8634 Status: O Content-Length: 1050 Hi, Dovecot (pre-compiled version of Fedora Core 1, configured for Maildir) is running fine for me since a few days. It happened now twice to me that dovecot died with the following error message in /var/log/maillog: Feb 4 11:18:27 hundehuette imap-login: RAND_bytes() failed: error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded Feb 4 11:18:27 hundehuette dovecot: Login process died too early - shutting down As these previous log messages indicate the login was working before without any problem: Feb 4 11:02:37 hundehuette imap-login: Login: andrea [192.168.2.138] Feb 4 11:05:56 hundehuette last message repeated 30 times Feb 4 11:09:02 hundehuette last message repeated 15 times Feb 4 11:12:08 hundehuette last message repeated 15 times Feb 4 11:15:15 hundehuette last message repeated 15 times Feb 4 11:18:21 hundehuette last message repeated 15 times Feb 4 11:18:26 hundehuette last message repeated 12 times Dovecot is running as user "dovecot" who does not have a ~/.rnd file Any idea? Thanks, Christof From lars@misterp.dk Wed Feb 4 20:17:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 02AD8C002801; Wed, 4 Feb 2004 20:17:04 +0200 (EET) Received: from misterp.dk (129.142.126.35.ip.tele2adsl.dk [129.142.126.35]) by talvi.dovecot.org (Postfix) with ESMTP id 54E3FC002800 for ; Wed, 4 Feb 2004 20:17:01 +0200 (EET) Received: from [192.168.2.2] (g4 [192.168.2.2]) by misterp.dk (8.12.9/8.12.9) with ESMTP id i14IEUUS004364 for ; Wed, 4 Feb 2004 19:14:30 +0100 (CET) X-Spam-Filter: check_local@misterp.dk by digitalanswers.org Mime-Version: 1.0 (Apple Message framework v612) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: text/plain; charset=US-ASCII; format=flowed To: dovecot@dovecot.org From: Lars Skovgaard Date: Wed, 4 Feb 2004 19:12:57 +0100 X-Mailer: Apple Mail (2.612) Subject: [Dovecot] Newbie question: How to make dovecot read /var/mail/user while using Maildir X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2004 18:17:04 -0000 X-UID: 8635 Status: O Hi I've been trying to figure out how to make dovecot read the system standard /var/mail/user, which is in mbox-format, while at the same time using Maildir as the preferred method of storage. When in Maildir-mode, I can store mail on the server without a hitch, but I don't receive mails. When in mbox-format, I can read and write, but the risk of corrupting mails is to high for me to consider mbox as an option. I would appreciate to hear from anyone who has a possible solution to this. Info about my system: MacOSX 10.2 Jaguar Apache 2.0.47 running Squirrelmail 1.4.2 PHP 4.3.2 Sendmail 8.12.9 Procmail v3.21 /Lars From daemon@kzone.ch Wed Feb 4 22:28:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4F180C002801; Wed, 4 Feb 2004 22:28:09 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id 04456C002800 for ; Wed, 4 Feb 2004 22:28:07 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id VAA03983 for dovecot@dovecot.org; Wed, 4 Feb 2004 21:25:35 +0100 From: Sven Kirmess To: dovecot@dovecot.org Subject: Re: [Dovecot] Newbie question: How to make dovecot read /var/mail/user while using Maildir Date: Wed, 04 Feb 2004 21:25:25 +0100 Organization: Kirmess Lines: 13 Message-ID: References: NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1075926335 3978 192.168.100.100 (4 Feb 2004 20:25:35 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 4 Feb 2004 20:25:35 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2004 20:28:09 -0000 X-UID: 8636 Status: O Lars Skovgaard wrote: > I've been trying to figure out how to make dovecot read the system > standard /var/mail/user, which is in mbox-format, while at the same time > using Maildir as the preferred method of storage. Use something like safecat[1] to feed your Maildir inbox. You can run safecat from sendmail directly or via the .forward file. That's how I do it. Sven [1] http://budney.homeunix.net:8080/users/budney/linux/software/safecat.html From blair@orcaware.com Thu Feb 5 02:36:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2E7E6C002801; Thu, 5 Feb 2004 02:36:23 +0200 (EET) Received: from orcaware.com (bdsl.66.12.233.174.gte.net [66.12.233.174]) by talvi.dovecot.org (Postfix) with ESMTP id 74E9CC002800 for ; Thu, 5 Feb 2004 02:36:20 +0200 (EET) Received: from orcaware.com (localhost.localdomain [127.0.0.1]) by orcaware.com (8.12.8/8.12.8) with ESMTP id i150Xkgf026152; Wed, 4 Feb 2004 16:33:47 -0800 Message-ID: <40218F69.DA32C844@orcaware.com> Date: Wed, 04 Feb 2004 16:33:45 -0800 From: Blair Zajac X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en,x-ns1rfacHe4WNh5,x-ns2U100btwUq5f MIME-Version: 1.0 To: Lars Skovgaard Subject: Re: [Dovecot] Newbie question: How to make dovecot read /var/mail/userwhile using Maildir References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2004 00:36:23 -0000 X-UID: 8637 Status: O Lars Skovgaard wrote: > > Hi > > I've been trying to figure out how to make dovecot read the system > standard /var/mail/user, which is in mbox-format, while at the same > time using Maildir as the preferred method of storage. When in > Maildir-mode, I can store mail on the server without a hitch, but I > don't receive mails. When in mbox-format, I can read and write, but the > risk of corrupting mails is to high for me to consider mbox as an > option. > > I would appreciate to hear from anyone who has a possible solution to > this. I use procmail to do this with this at the top of my .procmailrc file: MAILDIR=$HOME/Maildir/ ORGMAIL=$HOME/Maildir/ DEFAULT=$HOME/Maildir/ so it dumps all mail into my Maildir. So I have an empty /var/mail/user file. Best, Blair -- Blair Zajac Plots of your system's performance - http://www.orcaware.com/orca/ From sigil@ironkeep.net Thu Feb 5 18:39:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C3444C002801; Thu, 5 Feb 2004 18:39:43 +0200 (EET) Received: from geonosis.ironkeep.net (geonosis.ironkeep.net [65.118.8.20]) by talvi.dovecot.org (Postfix) with ESMTP id 9D382C002800 for ; Thu, 5 Feb 2004 18:39:41 +0200 (EET) Received: from endor.ironkeep.net ([65.118.8.4] helo=[192.168.0.199]) by geonosis.ironkeep.net with asmtp (Exim 4.30) id 1AomaL-00072f-Ne for dovecot@dovecot.org; Thu, 05 Feb 2004 11:42:37 -0500 Mime-Version: 1.0 (Apple Message framework v609) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: text/plain; charset=US-ASCII; format=flowed To: dovecot@dovecot.org From: Zachary Schneider Date: Thu, 5 Feb 2004 11:38:28 -0500 X-Mailer: Apple Mail (2.609) Subject: [Dovecot] Password prompt X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2004 16:39:43 -0000 X-UID: 8638 Status: O When checking multiple POP3 accounts against Dovecot + ldap AUTH with outlook XP and Mail.app password dialogs randomly request that you reenter the password. I see stuff like this in the logs: Feb 4 19:02:25 geonosis dovecot: login: received another "not listening" notification (if you can't login at all, see src/lib/fdpass.c) Feb 5 08:53:19 geonosis dovecot: login: received another "not listening" notification (if you can't login at all, see src/lib/fdpass.c) and: Feb 4 12:00:41 geonosis pop3: I/O leak: 0x8050cc0 (0) Feb 4 12:00:41 geonosis pop3: I/O leak: 0x80848d0 (1) Feb 4 12:02:05 geonosis pop3: I/O leak: 0x8050cc0 (0) Feb 4 12:02:05 geonosis pop3: I/O leak: 0x80848d0 (1) and: Feb 4 11:35:02 geonosis dovecot-auth: Login process has too old (125s) requests, killing it. Feb 4 11:35:50 geonosis dovecot-auth: Login process has too old (123s) requests, killing it. This is the most recent version of Dovecot. IMAP appears to work pretty flawlessly. Please advise Thanks z From naif@inet.it Wed Feb 4 15:59:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2D6BFC002801; Wed, 4 Feb 2004 15:59:41 +0200 (EET) Received: from naif.inet.it (unknown [213.92.1.185]) by talvi.dovecot.org (Postfix) with ESMTP id 3A1EFC002800 for ; Wed, 4 Feb 2004 15:59:38 +0200 (EET) Received: by naif.inet.it (Postfix, from userid 666) id 6BCB076A; Wed, 4 Feb 2004 14:56:55 +0100 (CET) Date: Wed, 4 Feb 2004 14:56:55 +0100 From: "Fabio Pietrosanti (naif)" To: dovecot@dovecot.org Message-ID: <20040204135655.GA14339@inet.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Operating-System: SCO-OpenVMS 7.3 on vimis-dev.sco.com X-Mailman-Approved-At: Thu, 05 Feb 2004 21:40:21 +0200 Subject: [Dovecot] dovecot crash on sendfilev64 on solaris 8 (32bit) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2004 13:59:41 -0000 X-UID: 8639 Status: O Content-Length: 5584 Hi, i'm running dovecot on a SMP sparc 32bit server with solaris 8(latest patch installed). Dovecot with ssl. Postfix+imap+maildrop . Dovecot work fine with every email and folders delivered by maildrop, but now i'm trying to move all my local folders (i'm using mutt and i'm storing my emails locally on my pc) to the imap server . The upload of an entire 12000 mails folders worked fine, when i try to access that folder i can see "fetching headers" and all it's ok but when i attempt to read a message dovecot imap process crash. Dovecot crash even if i attempt to read one single email moved from my local inbox to remote imap INBOX maildir. Dovecot work fine on every folder created by maildrop. I made some debugging with truss and found that he die on sendfilev64 call: 5113: 0 7 O K S t a t u s c o m p l e t e d .\r\n 5113: poll(0x0008B450, 1, 204) = 0 5113: poll(0x0008B450, 1, 0) = 0 5113: poll(0x0008B450, 1, 999) = 1 5113: time() = 1075892017 5113: read(0, 0x000925AC, 3796) = 35 5113: a 0 0 0 8 U I D F E T C H 1 2 5 1 3 B O D Y . P E E K [ 5113: ]\r\n 5113: time() = 1075892017 5113: time() = 1075892017 5113: time() = 1075892017 5113: fcntl(4, F_SETLKW64, 0xDFFFF510) = 0 5113: open64("/mailboxes/pietrosanti.it/lists@pietrosanti.it/.Cyber-Rights/cur/1075891040.P3168Q12514M511660.supertolla.itapac.net:2,S", O_RDONLY) = 14 5113: fstat64(14, 0xDFFFF550) = 0 5113: time() = 1075892017 5113: write(1, 0x00093488, 40) = 40 5113: * 1 2 5 1 3 F E T C H ( U I D 1 2 5 1 3 B O D Y [ ] 5113: { 1 9 5 7 }\r\n 5113: sendfilev64(1, 1, 0xDFFFF3C0, 1, 0xDFFFF3BC) Err#124 EAFNOSUPPORT 5113: time() = 1075892017 5113: time() = 1075892017 5113: fcntl(4, F_SETLKW64, 0xDFFFF5F8) = 0 5113: close(14) = 0 5113: time() = 1075892017 5113: close(9) = 0 5113: munmap(0xDF230000, 1608) = 0 5113: munmap(0xDF220000, 10264) = 0 5113: close(10) = 0 5113: munmap(0xDF1A0000, 1560) = 0 5113: close(12) = 0 5113: munmap(0xDF190000, 2576) = 0 5113: close(13) = 0 5113: munmap(0xDF1B0000, 5) = 0 5113: close(11) = 0 5113: close(4) = 0 5113: munmap(0xDF4C0000, 330120) = 0 5113: munmap(0xDF240000, 2563740) = 0 5113: close(5) = 0 5113: munmap(0xDF1C0000, 330072) = 0 5113: close(7) = 0 5113: munmap(0xDF520000, 2576) = 0 5113: close(8) = 0 5113: munmap(0xDF790000, 5) = 0 5113: close(6) = 0 5113: fstat(3, 0xDFFFFAE0) = 0 5113: close(3) = 0 5113: alarm(0) = 16 5113: sigaction(SIGALRM, 0xDFFFFA48, 0x00000000) = 0 5113: llseek(0, 0, SEEK_CUR) Err#29 ESPIPE 5113: _exit(0) I noticed that maildir files created by dovecot have the following file names format: 1075891040.P3168Q12514M511660.supertolla.itapac.net:2,S and maildrop one are in this other format: 1075893689.M267966P5215V01540032I001B6706_0.supertolla.itapac.net,S=1381:2,S I'm working on SPARC 32 bit architecture with the following compile options: CC=gcc CXX=gcc CFLAGS="-O9 -msupersparc -mcpu=supersparc -mtune=supersparc -fno-omit-frame-pointer -m32" CXXFLAGS="-O9 -msupersparc -mcpu=supersparc -mtune=supersparc -felide-constructors -fno-exceptions -fno-rtti -m32" CPPFLAGS="-I/usr/local/ssl/include/ -I/data/chroot/mysql/mysql/include/mysql" LDFLAGS="-L/data/chroot/mysql/mysql/lib/mysql -L/usr/local/ssl/lib" LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ssl/lib:/data/chroot/mysql/mysql/lib/mysql export CC CXX CFLAGS CXXFLAGS CPPFLAGS LDFLAGS LD_LIBRARY_PATH ./configure --prefix=/dovecot --without-passwd --without-passwd-file --without-shadow --without-pam \ --without-ldap --without-vpopmail --without-pgsql --without-cyrus-sasl2 --with-ssl=openssl \ --with-ssldir=/etc/ssl --without-pop3d --with-mysql --with-static-userdb vi config.h #define PASSDB_MYSQL 1 #define USERDB_MYSQL 1 vi src/auth/Makefile add -lmysqlclient to LIBS LIBS = -lsocket -lnsl -lrt -lsendfile -lmysqlclient Regards -- Fabio Pietrosanti ( naif ) - f.pietrosanti@inet.it I.NET SpA - ( Operation Group, Network Security ) Sede: Via Darwin, 85 20019 Settimo Milanese (MI), Italy Tel: +39 02 32863.1 - Fax: +39 02 32863.7709 PGP Key avaiable on request -- Free advertising: www.openbsd.org - Multiplatform Ultra-secure OS From naif@inet.it Wed Feb 4 17:39:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A502CC002801; Wed, 4 Feb 2004 17:39:17 +0200 (EET) Received: from naif.inet.it (unknown [213.92.1.185]) by talvi.dovecot.org (Postfix) with ESMTP id 0FE62C002800 for ; Wed, 4 Feb 2004 17:39:15 +0200 (EET) Received: by naif.inet.it (Postfix, from userid 666) id 17284769; Wed, 4 Feb 2004 16:36:31 +0100 (CET) Date: Wed, 4 Feb 2004 16:36:31 +0100 From: "Fabio Pietrosanti (naif)" To: dovecot@dovecot.org Message-ID: <20040204153631.GC14437@inet.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Operating-System: SCO-OpenVMS 7.3 on vimis-dev.sco.com X-Mailman-Approved-At: Thu, 05 Feb 2004 21:40:21 +0200 Subject: [Dovecot] dovecot crash on sendfilev64 on solaris 8 (32bit) (WORKAROUND) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2004 15:39:17 -0000 X-UID: 8640 Status: O Hi, related to my previous email i found that setting "mail_save_crlf = no" instead of yes make dovecot working. However if enabled on solaris 8 it doesn't work hanging on sendfilev64() call. I noticed that maildir file names are still different from maildrop and dovecot but now works. However moving bigger mailbox from local storage to remote imap server i receive "Disconnect for inactivity while waiting for command data" error triggered by client_input_timeout function in imap/client.c . The timeout is defined as CLIENT_CMDINPUT_TIMEOUT which is defined as CLIENT_OUTPUT_TIMEOUT which is 1 minute (60*1000) . I think that could be usefull to have this timeout tunable because when you tranfer into the imap server large quantity of data if it takes more than 1 minutes, process goes timeout ( altought with mutt 1.4i client ) . Regards -naif From kalle-e@medelklassen.com Thu Feb 5 01:12:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8B803C002801; Thu, 5 Feb 2004 01:12:56 +0200 (EET) Received: from mxfep02.bredband.com (mxfep02.bredband.com [195.54.107.73]) by talvi.dovecot.org (Postfix) with ESMTP id 5A8F8C002800 for ; Thu, 5 Feb 2004 01:12:54 +0200 (EET) Received: from medelklassen.com ([213.114.209.60] [213.114.209.60]) by mxfep02.bredband.com with ESMTP id <20040204231023.FEPK21728.mxfep02.bredband.com@medelklassen.com> for ; Thu, 5 Feb 2004 00:10:23 +0100 Message-ID: <40217BDA.6080602@medelklassen.com> Date: Wed, 04 Feb 2004 23:10:18 +0000 From: Karl Eklund User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot crashes on certain spam messages References: <20040130162252.GA28006@tralfamadore.bredbandsbolaget.se> <964907FE-534F-11D8-97C9-000393CC2E90@iki.fi> <401BDE52.2070307@medelklassen.com> <10595876.1075554178@[10.0.0.221]> <401C1DF9.9010209@medelklassen.com> <401CCBAC.1060906@jones.dk> <401EBF76.5070104@medelklassen.com> <20040203161025.GE26514@traveler.cistron.net> In-Reply-To: <20040203161025.GE26514@traveler.cistron.net> Content-Type: multipart/mixed; boundary="------------050307060804080207050507" X-Mailman-Approved-At: Thu, 05 Feb 2004 21:40:21 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2004 23:12:56 -0000 X-UID: 8641 Status: O Content-Length: 41820 This is a multi-part message in MIME format. --------------050307060804080207050507 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Miquel van Smoorenburg wrote: >50000 is a bit small for a core file. They usually are tens of megabytes, >as the internal memory and mapped files are dumped as well. > >Use "ulimit -c unlimited" to enable coredumps instead. > > > > But my ulimit (which is built into bash) wants you to specify the size in kilobytes. Anyway, I have also done strace on the "imap" process and found some of the problematic messages. I attach the output from strace (don't know if it's useful?) and the messages (there seems to be more of them, but I don't know how many or how long it would take to find them all with strace). --------------050307060804080207050507 Content-Type: application/gzip; name="strace.txt.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="strace.txt.gz" YXR0YWNoOiBwdHJhY2UoUFRSQUNFX0FUVEFDSCwgLi4uKTogT3BlcmF0aW9uIG5vdCBwZXJt aXR0ZWQKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABb e2ZkPTAsIGV2ZW50cz1QT0xMSU58UE9MTFBSSXxQT0xMRVJSfFBPTExIVVB8UE9MTE5WQUx9 XSwgMSwgOTk5OSkgPSAwCmdldHRpbWVvZmRheSh7MTA3NTkzNDY1NywgNzYzMjgwfSwgezQy OTQ5NjcyMzYsIDB9KSA9IDAKZ2V0dGltZW9mZGF5KHsxMDc1OTM0NjU3LCA3NjMzMzh9LCBO VUxMKSA9IDAKcG9sbChbe2ZkPTAsIGV2ZW50cz1QT0xMSU58UE9MTFBSSXxQT0xMRVJSfFBP TExIVVB8UE9MTE5WQUx9XSwgMSwgMCkgPSAwCmdldHRpbWVvZmRheSh7MTA3NTkzNDY1Nywg NzYzNDU5fSwgezQyOTQ5NjcyMzYsIDB9KSA9IDAKZ2V0dGltZW9mZGF5KHsxMDc1OTM0NjU3 LCA3NjM1MTh9LCBOVUxMKSA9IDAKcG9sbChbe2ZkPTAsIGV2ZW50cz1QT0xMSU58UE9MTFBS SXxQT0xMRVJSfFBPTExIVVB8UE9MTE5WQUx9XSwgMSwgOTk5OSkgPSAwCmdldHRpbWVvZmRh eSh7MTA3NTkzNDY2NywgNzY4MjIxfSwgezQyOTQ5NjcyMzYsIDB9KSA9IDAKZ2V0dGltZW9m ZGF5KHsxMDc1OTM0NjY3LCA3NjgyNzl9LCBOVUxMKSA9IDAKcG9sbChbe2ZkPTAsIGV2ZW50 cz1QT0xMSU58UE9MTFBSSXxQT0xMRVJSfFBPTExIVVB8UE9MTE5WQUx9XSwgMSwgMCkgPSAw CmdldHRpbWVvZmRheSh7MTA3NTkzNDY2NywgNzY4NDAwfSwgezQyOTQ5NjcyMzYsIDB9KSA9 IDAKZ2V0dGltZW9mZGF5KHsxMDc1OTM0NjY3LCA3Njg0NTh9LCBOVUxMKSA9IDAKcG9sbChb e2ZkPTAsIGV2ZW50cz1QT0xMSU58UE9MTFBSSXxQT0xMRVJSfFBPTExIVVB8UE9MTE5WQUx9 XSwgMSwgOTk5OSkgPSAtMSBFSU5UUiAoSW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwpCi0tLSBT SUdBTFJNIChBbGFybSBjbG9jaykgQCAwICgwKSAtLS0KYWxhcm0oMzApICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gMApzaWdyZXR1cm4oKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSA/IChtYXNrIG5vdyBbXSkKZ2V0dGltZW9mZGF5KHsxMDc1OTM0Njc3LCA2 NzM1NTR9LCB7NDI5NDk2NzIzNiwgMH0pID0gMApnZXR0aW1lb2ZkYXkoezEwNzU5MzQ2Nzcs IDY3MzYxM30sIE5VTEwpID0gMApwb2xsKFt7ZmQ9MCwgZXZlbnRzPVBPTExJTnxQT0xMUFJJ fFBPTExFUlJ8UE9MTEhVUHxQT0xMTlZBTH1dLCAxLCA5NCkgPSAwCmdldHRpbWVvZmRheSh7 MTA3NTkzNDY3NywgNzczMTg3fSwgezQyOTQ5NjcyMzYsIDB9KSA9IDAKZ2V0dGltZW9mZGF5 KHsxMDc1OTM0Njc3LCA3NzMyNDR9LCBOVUxMKSA9IDAKcG9sbChbe2ZkPTAsIGV2ZW50cz1Q T0xMSU58UE9MTFBSSXxQT0xMRVJSfFBPTExIVVB8UE9MTE5WQUx9XSwgMSwgMCkgPSAwCmdl dHRpbWVvZmRheSh7MTA3NTkzNDY3NywgNzczMzYyfSwgezQyOTQ5NjcyMzYsIDB9KSA9IDAK Z2V0dGltZW9mZGF5KHsxMDc1OTM0Njc3LCA3NzM0MjF9LCBOVUxMKSA9IDAKcG9sbChbe2Zk PTAsIGV2ZW50cz1QT0xMSU58UE9MTFBSSXxQT0xMRVJSfFBPTExIVVB8UE9MTE5WQUwsIHJl dmVudHM9UE9MTElOfV0sIDEsIDk5OTkpID0gMQpnZXR0aW1lb2ZkYXkoezEwNzU5MzQ2ODUs IDM0NjA4MH0sIHs0Mjk0OTY3MjM2LCAwfSkgPSAwCnRpbWUoTlVMTCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9IDEwNzU5MzQ2ODUKcmVhZCgwLCAiOCBzZWxlY3QgXCJzcGFt XCJcclxuIiwgMzk4MikgID0gMTcKc2V0c29ja29wdCgxLCBTT0xfVENQLCBUQ1BfQ09SSywg WzFdLCA0KSA9IDAKdGltZShOVUxMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g MTA3NTkzNDY4NQpnZXR0aW1lb2ZkYXkoezEwNzU5MzQ2ODUsIDM0NjQyM30sIE5VTEwpID0g MApzdGF0NjQoIi9ob21lL2tlLy5tYWlsZGlyLy5zcGFtIiwge3N0X21vZGU9U19JRkRJUnww NzAwLCBzdF9zaXplPTQwOTYsIC4uLn0pID0gMApsc3RhdDY0KCIvaG9tZS9rZS8ubWFpbGRp ci8uc3BhbS9jdXIiLCB7c3RfbW9kZT1TX0lGRElSfDA3MDAsIHN0X3NpemU9Mjc4NTI4LCAu Li59KSA9IDAKbHN0YXQ2NCgiL2hvbWUva2UvLm1haWxkaXIvLnNwYW0vbmV3Iiwge3N0X21v ZGU9U19JRkRJUnwwNzAwLCBzdF9zaXplPTIwNDgwLCAuLi59KSA9IDAKbHN0YXQ2NCgiL2hv bWUva2UvLm1haWxkaXIvLnNwYW0vdG1wIiwge3N0X21vZGU9U19JRkRJUnwwNzAwLCBzdF9z aXplPTQwOTYsIC4uLn0pID0gMApzdGF0NjQoIi9ob21lL2tlLy5tYWlsZGlyLy5zcGFtIiwg e3N0X21vZGU9U19JRkRJUnwwNzAwLCBzdF9zaXplPTQwOTYsIC4uLn0pID0gMApzdGF0NjQo Ii9ob21lL2tlLy5tYWlsZGlyLy5zbGFzaGRvdCIsIHtzdF9tb2RlPVNfSUZESVJ8MDcwMCwg c3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKYWNjZXNzKCIvaG9tZS9rZS8ubWFpbGRpci8uc3Bh bSIsIFdfT0spID0gMAp0aW1lKE5VTEwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PSAxMDc1OTM0Njg1Cm9wZW4oIi9ob21lL2tlLy5tYWlsZGlyLy5zcGFtL3RtcCIsIE9fUkRP TkxZfE9fTk9OQkxPQ0t8T19MQVJHRUZJTEV8T19ESVJFQ1RPUlkpID0gOQpmc3RhdDY0KDks IHtzdF9tb2RlPVNfSUZESVJ8MDcwMCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKZmNudGw2 NCg5LCBGX1NFVEZELCBGRF9DTE9FWEVDKSAgICAgICAgID0gMApnZXRkZW50czY0KDksIC8q IDIgZW50cmllcyAqLywgNDA5NikgICAgPSA0OApnZXRkZW50czY0KDksIC8qIDAgZW50cmll cyAqLywgNDA5NikgICAgPSAwCmNsb3NlKDkpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9IDAKdGltZShOVUxMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA3 NTkzNDY4NQpvcGVuKCIvaG9tZS9rZS8ubWFpbGRpci8uc3BhbSIsIE9fUkRPTkxZfE9fTk9O QkxPQ0t8T19MQVJHRUZJTEV8T19ESVJFQ1RPUlkpID0gOQpmc3RhdDY0KDksIHtzdF9tb2Rl PVNfSUZESVJ8MDcwMCwgc3Rfc2l6ZT00MDk2LCAuLi59KSA9IDAKZmNudGw2NCg5LCBGX1NF VEZELCBGRF9DTE9FWEVDKSAgICAgICAgID0gMApnZXRkZW50czY0KDksIC8qIDExIGVudHJp ZXMgKi8sIDQwOTYpICAgPSAzNDQKZ2V0ZGVudHM2NCg5LCAvKiAwIGVudHJpZXMgKi8sIDQw OTYpICAgID0gMApjbG9zZSg5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAw Cm9wZW4oIi9ob21lL2tlLy5tYWlsZGlyLy5zcGFtLy5pbWFwLmluZGV4IiwgT19SRFdSfE9f Q1JFQVR8T19MQVJHRUZJTEUsIDA2NjApID0gOQp0aW1lKE5VTEwpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAxMDc1OTM0Njg1CmZjbnRsNjQoOSwgRl9TRVRMS1c2NCwge3R5 cGU9Rl9SRExDSywgd2hlbmNlPVNFRUtfU0VULCBzdGFydD0wLCBsZW49MH0sIDB4YmZmZmY5 ZTApID0gMApfbGxzZWVrKDksIDAsIFswXSwgU0VFS19TRVQpICAgICAgICAgICAgPSAwCnJl YWQoOSwgIlwyXDFcNFw0XDEwXDEwXDBcMFwyNjNIXDMzNz8tXDBcMFwwXDIwNlwwXDBcMCRc MFwwIFwzMzAiLi4uLCA3MikgPSA3Mgpmc3RhdDY0KDksIHtzdF9tb2RlPVNfSUZSRUd8MDYw MCwgc3Rfc2l6ZT0xNTI5NTIsIC4uLn0pID0gMAptbWFwMihOVUxMLCAxNTI5NTIsIFBST1Rf UkVBRHxQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCA5LCAwKSA9IDB4NDAxNWEwMDAKdGltZShO VUxMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA3NTkzNDY4NQpmY250bDY0 KDksIEZfU0VUTEtXNjQsIHt0eXBlPUZfVU5MQ0ssIHdoZW5jZT1TRUVLX1NFVCwgc3RhcnQ9 MCwgbGVuPTB9LCAweGJmZmZmOWUwKSA9IDAKb3BlbigiL2hvbWUva2UvLm1haWxkaXIvLnNw YW0vLmltYXAuaW5kZXguZGF0YSIsIE9fUkRXUnxPX0xBUkdFRklMRSkgPSAxMApmc3RhdDY0 KDEwLCB7c3RfbW9kZT1TX0lGUkVHfDA2MDAsIHN0X3NpemU9MjgxMjAyMiwgLi4ufSkgPSAw Cm1tYXAyKE5VTEwsIDI4MTIwMjIsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfU0hBUkVE LCAxMCwgMCkgPSAweDQwMTgwMDAwCm9wZW4oIi9ob21lL2tlLy5tYWlsZGlyLy5zcGFtLy5j dXN0b21mbGFncyIsIE9fUkRXUnxPX0NSRUFUfE9fTEFSR0VGSUxFLCAwNjYwKSA9IDExCmZz dGF0NjQoMTEsIHtzdF9tb2RlPVNfSUZSRUd8MDYwMCwgc3Rfc2l6ZT0xMiwgLi4ufSkgPSAw Cm1tYXAyKE5VTEwsIDEyLCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1NIQVJFRCwgMTEs IDApID0gMHg0MDAxZDAwMAptYWR2aXNlKDB4NDAwMWQwMDAsIDEyLCBNQURWX1NFUVVFTlRJ QUwpID0gMApvcGVuKCIvaG9tZS9rZS8ubWFpbGRpci8uc3BhbS8uaW1hcC5pbmRleC50cmVl IiwgT19SRFdSfE9fQ1JFQVR8T19MQVJHRUZJTEUsIDA2NjApID0gMTIKZnN0YXQ2NCgxMiwg e3N0X21vZGU9U19JRlJFR3wwNjAwLCBzdF9zaXplPTE1NDA1MiwgLi4ufSkgPSAwCm1tYXAy KE5VTEwsIDE1NDA1MiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIDEyLCAw KSA9IDB4NDA0MmYwMDAKb3BlbigiL2hvbWUva2UvLm1haWxkaXIvLnNwYW0vLmltYXAuaW5k ZXgubG9nIiwgT19SRFdSfE9fTEFSR0VGSUxFKSA9IDEzCnRpbWUoTlVMTCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IDEwNzU5MzQ2ODUKZmNudGw2NCgxMywgRl9TRVRMS1c2 NCwge3R5cGU9Rl9SRExDSywgd2hlbmNlPVNFRUtfU0VULCBzdGFydD0wLCBsZW49MH0sIDB4 YmZmZmY5MzApID0gMApyZWFkKDEzLCAiXDI2M0hcMzM3P1xuXDBcMFwwXDMzMFwwXDBcMFww XDBcMFwwIiwgMTYpID0gMTYKb3BlbigiL2hvbWUva2UvLm1haWxkaXIvLnNwYW0vLmltYXAu aW5kZXgubG9nLjIiLCBPX1JEV1J8T19MQVJHRUZJTEUpID0gLTEgRU5PRU5UIChObyBzdWNo IGZpbGUgb3IgZGlyZWN0b3J5KQpmc3RhdDY0KDEzLCB7c3RfbW9kZT1TX0lGUkVHfDA2MDAs IHN0X3NpemU9MjU3NiwgLi4ufSkgPSAwCm1tYXAyKE5VTEwsIDI1NzYsIFBST1RfUkVBRHxQ Uk9UX1dSSVRFLCBNQVBfU0hBUkVELCAxMywgMCkgPSAweDQwMDFlMDAwCnRpbWUoTlVMTCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNzU5MzQ2ODUKZmNudGw2NCg5LCBG X1NFVExLVzY0LCB7dHlwZT1GX1dSTENLLCB3aGVuY2U9U0VFS19TRVQsIHN0YXJ0PTAsIGxl bj0wfSwgMHhiZmZmZjhjMCkgPSAwCm1zeW5jKDB4NDAxNWEwMDAsIDcyLCBNU19TWU5DKSAg ICAgICAgICA9IDAKZmRhdGFzeW5jKDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g MApmc3RhdDY0KDksIHtzdF9tb2RlPVNfSUZSRUd8MDYwMCwgc3Rfc2l6ZT0xNTI5NTIsIC4u Ln0pID0gMApzdGF0NjQoIi9ob21lL2tlLy5tYWlsZGlyLy5zcGFtL25ldyIsIHtzdF9tb2Rl PVNfSUZESVJ8MDcwMCwgc3Rfc2l6ZT0yMDQ4MCwgLi4ufSkgPSAwCnN0YXQ2NCgiL2hvbWUv a2UvLm1haWxkaXIvLnNwYW0vY3VyIiwge3N0X21vZGU9U19JRkRJUnwwNzAwLCBzdF9zaXpl PTI3ODUyOCwgLi4ufSkgPSAwCm9wZW4oIi9ob21lL2tlLy5tYWlsZGlyLy5zcGFtL25ldyIs IE9fUkRPTkxZfE9fTk9OQkxPQ0t8T19MQVJHRUZJTEV8T19ESVJFQ1RPUlkpID0gMTQKZnN0 YXQ2NCgxNCwge3N0X21vZGU9U19JRkRJUnwwNzAwLCBzdF9zaXplPTIwNDgwLCAuLi59KSA9 IDAKZmNudGw2NCgxNCwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgICAgICAgID0gMApnZXRkZW50 czY0KDE0LCAvKiAyIGVudHJpZXMgKi8sIDQwOTYpICAgPSA0OApnZXRkZW50czY0KDE0LCAv KiAwIGVudHJpZXMgKi8sIDQwOTYpICAgPSAwCmNsb3NlKDE0KSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IDAKbXVubWFwKDB4NDAxODAwMDAsIDI4MTIwMjIpICAgICAgICAg ICAgID0gMApmc3RhdDY0KDEwLCB7c3RfbW9kZT1TX0lGUkVHfDA2MDAsIHN0X3NpemU9Mjgx MjAyMiwgLi4ufSkgPSAwCm1tYXAyKE5VTEwsIDI4MTIwMjIsIFBST1RfUkVBRHxQUk9UX1dS SVRFLCBNQVBfU0hBUkVELCAxMCwgMCkgPSAweDQwMTgwMDAwCm1tYXAyKE5VTEwsIDEzNTE2 OCwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9BTk9OWU1PVVMsIC0x LCAwKSA9IDB4NDA0NTUwMDAKYnJrKDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gMHg4MGIxMDAwCmJyaygweDgwYjQwMDApICAgICAgICAgICAgICAgICAgICAgICAg ICA9IDB4ODBiNDAwMApicmsoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PSAweDgwYjQwMDAKYnJrKDB4ODBiYzAwMCkgICAgICAgICAgICAgICAgICAgICAgICAgID0g MHg4MGJjMDAwCmJyaygwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4 ODBiYzAwMApicmsoMHg4MGNlMDAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDgw Y2UwMDAKb3BlbigiL2hvbWUva2UvLm1haWxkaXIvLnNwYW0vY3VyIiwgT19SRE9OTFl8T19O T05CTE9DS3xPX0xBUkdFRklMRXxPX0RJUkVDVE9SWSkgPSAxNApmc3RhdDY0KDE0LCB7c3Rf bW9kZT1TX0lGRElSfDA3MDAsIHN0X3NpemU9Mjc4NTI4LCAuLi59KSA9IDAKZmNudGw2NCgx NCwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgICAgICAgID0gMApnZXRkZW50czY0KDE0LCAvKiA3 NCBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDgwCmdldGRlbnRzNjQoMTQsIC8qIDIwIGVudHJp ZXMgKi8sIDQwOTYpICA9IDExMjAKZ2V0ZGVudHM2NCgxNCwgLyogNzMgZW50cmllcyAqLywg NDA5NikgID0gNDA5NgpnZXRkZW50czY0KDE0LCAvKiAxOSBlbnRyaWVzICovLCA0MDk2KSAg PSAxMDY0CmdldGRlbnRzNjQoMTQsIC8qIDczIGVudHJpZXMgKi8sIDQwOTYpICA9IDQwODgK Z2V0ZGVudHM2NCgxNCwgLyogMTggZW50cmllcyAqLywgNDA5NikgID0gMTAwOApnZXRkZW50 czY0KDE0LCAvKiA3MyBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDg4CmdldGRlbnRzNjQoMTQs IC8qIDE4IGVudHJpZXMgKi8sIDQwOTYpICA9IDEwMDgKZ2V0ZGVudHM2NCgxNCwgLyogNzMg ZW50cmllcyAqLywgNDA5NikgID0gNDA4OApnZXRkZW50czY0KDE0LCAvKiAxOSBlbnRyaWVz ICovLCA0MDk2KSAgPSAxMDY0CmdldGRlbnRzNjQoMTQsIC8qIDczIGVudHJpZXMgKi8sIDQw OTYpICA9IDQwODgKZ2V0ZGVudHM2NCgxNCwgLyogMjAgZW50cmllcyAqLywgNDA5NikgID0g MTEyMApnZXRkZW50czY0KDE0LCAvKiA3MyBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDg4Cmdl dGRlbnRzNjQoMTQsIC8qIDIwIGVudHJpZXMgKi8sIDQwOTYpICA9IDExMjAKZ2V0ZGVudHM2 NCgxNCwgLyogNzMgZW50cmllcyAqLywgNDA5NikgID0gNDA4OApnZXRkZW50czY0KDE0LCAv KiAyMCBlbnRyaWVzICovLCA0MDk2KSAgPSAxMTIwCmdldGRlbnRzNjQoMTQsIC8qIDczIGVu dHJpZXMgKi8sIDQwOTYpICA9IDQwODgKZ2V0ZGVudHM2NCgxNCwgLyogMjAgZW50cmllcyAq LywgNDA5NikgID0gMTEyMApnZXRkZW50czY0KDE0LCAvKiA3MyBlbnRyaWVzICovLCA0MDk2 KSAgPSA0MDg4CmdldGRlbnRzNjQoMTQsIC8qIDE4IGVudHJpZXMgKi8sIDQwOTYpICA9IDEw MDgKZ2V0ZGVudHM2NCgxNCwgLyogNzMgZW50cmllcyAqLywgNDA5NikgID0gNDA4OApnZXRk ZW50czY0KDE0LCAvKiAyMCBlbnRyaWVzICovLCA0MDk2KSAgPSAxMTIwCmdldGRlbnRzNjQo MTQsIC8qIDczIGVudHJpZXMgKi8sIDQwOTYpICA9IDQwODgKZ2V0ZGVudHM2NCgxNCwgLyog MTggZW50cmllcyAqLywgNDA5NikgID0gMTAwOApnZXRkZW50czY0KDE0LCAvKiA3MyBlbnRy aWVzICovLCA0MDk2KSAgPSA0MDg4CmdldGRlbnRzNjQoMTQsIC8qIDIwIGVudHJpZXMgKi8s IDQwOTYpICA9IDExMjAKZ2V0ZGVudHM2NCgxNCwgLyogNzMgZW50cmllcyAqLywgNDA5Nikg ID0gNDA4OApnZXRkZW50czY0KDE0LCAvKiAyMCBlbnRyaWVzICovLCA0MDk2KSAgPSAxMTIw CmdldGRlbnRzNjQoMTQsIC8qIDczIGVudHJpZXMgKi8sIDQwOTYpICA9IDQwODgKZ2V0ZGVu dHM2NCgxNCwgLyogMjAgZW50cmllcyAqLywgNDA5NikgID0gMTEyMApnZXRkZW50czY0KDE0 LCAvKiA3MyBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDg4CmdldGRlbnRzNjQoMTQsIC8qIDE5 IGVudHJpZXMgKi8sIDQwOTYpICA9IDEwNjQKZ2V0ZGVudHM2NCgxNCwgLyogNzMgZW50cmll cyAqLywgNDA5NikgID0gNDA4OApnZXRkZW50czY0KDE0LCAvKiAyMCBlbnRyaWVzICovLCA0 MDk2KSAgPSAxMTIwCmdldGRlbnRzNjQoMTQsIC8qIDczIGVudHJpZXMgKi8sIDQwOTYpICA9 IDQwODgKZ2V0ZGVudHM2NCgxNCwgLyogMjAgZW50cmllcyAqLywgNDA5NikgID0gMTEyMApn ZXRkZW50czY0KDE0LCAvKiA3MyBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDg4CmdldGRlbnRz NjQoMTQsIC8qIDIwIGVudHJpZXMgKi8sIDQwOTYpICA9IDExMjAKZ2V0ZGVudHM2NCgxNCwg LyogNzMgZW50cmllcyAqLywgNDA5NikgID0gNDA4OApnZXRkZW50czY0KDE0LCAvKiAyMCBl bnRyaWVzICovLCA0MDk2KSAgPSAxMTIwCmdldGRlbnRzNjQoMTQsIC8qIDczIGVudHJpZXMg Ki8sIDQwOTYpICA9IDQwODgKZ2V0ZGVudHM2NCgxNCwgLyogMTkgZW50cmllcyAqLywgNDA5 NikgID0gMTA2NApnZXRkZW50czY0KDE0LCAvKiA3MyBlbnRyaWVzICovLCA0MDk2KSAgPSA0 MDk2CmdldGRlbnRzNjQoMTQsIC8qIDE4IGVudHJpZXMgKi8sIDQwOTYpICA9IDEwMDgKZ2V0 ZGVudHM2NCgxNCwgLyogNzMgZW50cmllcyAqLywgNDA5NikgID0gNDA5NgpnZXRkZW50czY0 KDE0LCAvKiAxOSBlbnRyaWVzICovLCA0MDk2KSAgPSAxMDcyCmdldGRlbnRzNjQoMTQsIC8q IDczIGVudHJpZXMgKi8sIDQwOTYpICA9IDQwODgKZ2V0ZGVudHM2NCgxNCwgLyogMjAgZW50 cmllcyAqLywgNDA5NikgID0gMTEyMApnZXRkZW50czY0KDE0LCAvKiA3MyBlbnRyaWVzICov LCA0MDk2KSAgPSA0MDg4CmdldGRlbnRzNjQoMTQsIC8qIDIwIGVudHJpZXMgKi8sIDQwOTYp ICA9IDExMjAKZ2V0ZGVudHM2NCgxNCwgLyogNzMgZW50cmllcyAqLywgNDA5NikgID0gNDA4 OApnZXRkZW50czY0KDE0LCAvKiAyMCBlbnRyaWVzICovLCA0MDk2KSAgPSAxMTIwCmdldGRl bnRzNjQoMTQsIC8qIDcyIGVudHJpZXMgKi8sIDQwOTYpICA9IDQwNDgKZ2V0ZGVudHM2NCgx NCwgLyogMjIgZW50cmllcyAqLywgNDA5NikgID0gMTIzMgpnZXRkZW50czY0KDE0LCAvKiA3 MyBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDg4CmdldGRlbnRzNjQoMTQsIC8qIDI5IGVudHJp ZXMgKi8sIDQwOTYpICA9IDE2MjQKZ2V0ZGVudHM2NCgxNCwgLyogNzMgZW50cmllcyAqLywg NDA5NikgID0gNDA4OApnZXRkZW50czY0KDE0LCAvKiAyOCBlbnRyaWVzICovLCA0MDk2KSAg PSAxNTY4CmdldGRlbnRzNjQoMTQsIC8qIDczIGVudHJpZXMgKi8sIDQwOTYpICA9IDQwOTYK Z2V0ZGVudHM2NCgxNCwgLyogMjggZW50cmllcyAqLywgNDA5NikgID0gMTU2OApnZXRkZW50 czY0KDE0LCAvKiA3MyBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDg4CmdldGRlbnRzNjQoMTQs IC8qIDI3IGVudHJpZXMgKi8sIDQwOTYpICA9IDE1MjgKZ2V0ZGVudHM2NCgxNCwgLyogNzMg ZW50cmllcyAqLywgNDA5NikgID0gNDA5NgpnZXRkZW50czY0KDE0LCAvKiAyOCBlbnRyaWVz ICovLCA0MDk2KSAgPSAxNTY4CmdldGRlbnRzNjQoMTQsIC8qIDczIGVudHJpZXMgKi8sIDQw OTYpICA9IDQwODgKZ2V0ZGVudHM2NCgxNCwgLyogMjkgZW50cmllcyAqLywgNDA5NikgID0g MTYyNApnZXRkZW50czY0KDE0LCAvKiA3MyBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDg4Cmdl dGRlbnRzNjQoMTQsIC8qIDI5IGVudHJpZXMgKi8sIDQwOTYpICA9IDE2MjQKZ2V0ZGVudHM2 NCgxNCwgLyogNzAgZW50cmllcyAqLywgNDA5NikgID0gNDA4MApnZXRkZW50czY0KDE0LCAv KiAyMyBlbnRyaWVzICovLCA0MDk2KSAgPSAxNDcyCmdldGRlbnRzNjQoMTQsIC8qIDY0IGVu dHJpZXMgKi8sIDQwOTYpICA9IDQwOTYKZ2V0ZGVudHM2NCgxNCwgLyogMjEgZW50cmllcyAq LywgNDA5NikgID0gMTM0NApnZXRkZW50czY0KDE0LCAvKiA2NCBlbnRyaWVzICovLCA0MDk2 KSAgPSA0MDk2CmdldGRlbnRzNjQoMTQsIC8qIDIxIGVudHJpZXMgKi8sIDQwOTYpICA9IDEz NDQKZ2V0ZGVudHM2NCgxNCwgLyogNjQgZW50cmllcyAqLywgNDA5NikgID0gNDA5NgpnZXRk ZW50czY0KDE0LCAvKiAyMSBlbnRyaWVzICovLCA0MDk2KSAgPSAxMzQ0CmdldGRlbnRzNjQo MTQsIC8qIDY0IGVudHJpZXMgKi8sIDQwOTYpICA9IDQwOTYKZ2V0ZGVudHM2NCgxNCwgLyog MjEgZW50cmllcyAqLywgNDA5NikgID0gMTM0NApnZXRkZW50czY0KDE0LCAvKiA2NCBlbnRy aWVzICovLCA0MDk2KSAgPSA0MDk2CmdldGRlbnRzNjQoMTQsIC8qIDIxIGVudHJpZXMgKi8s IDQwOTYpICA9IDEzNDQKZ2V0ZGVudHM2NCgxNCwgLyogNjQgZW50cmllcyAqLywgNDA5Nikg ID0gNDA5NgpnZXRkZW50czY0KDE0LCAvKiAyMSBlbnRyaWVzICovLCA0MDk2KSAgPSAxMzQ0 CmdldGRlbnRzNjQoMTQsIC8qIDY0IGVudHJpZXMgKi8sIDQwOTYpICA9IDQwOTYKZ2V0ZGVu dHM2NCgxNCwgLyogMjEgZW50cmllcyAqLywgNDA5NikgID0gMTM0NApnZXRkZW50czY0KDE0 LCAvKiA2NCBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDk2CmdldGRlbnRzNjQoMTQsIC8qIDIx IGVudHJpZXMgKi8sIDQwOTYpICA9IDEzNDQKZ2V0ZGVudHM2NCgxNCwgLyogNjQgZW50cmll cyAqLywgNDA5NikgID0gNDA5NgpnZXRkZW50czY0KDE0LCAvKiAyMSBlbnRyaWVzICovLCA0 MDk2KSAgPSAxMzQ0CmdldGRlbnRzNjQoMTQsIC8qIDY0IGVudHJpZXMgKi8sIDQwOTYpICA9 IDQwOTYKZ2V0ZGVudHM2NCgxNCwgLyogMjEgZW50cmllcyAqLywgNDA5NikgID0gMTM0NApn ZXRkZW50czY0KDE0LCAvKiA2NCBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDk2CmdldGRlbnRz NjQoMTQsIC8qIDIxIGVudHJpZXMgKi8sIDQwOTYpICA9IDEzNDQKZ2V0ZGVudHM2NCgxNCwg LyogNjQgZW50cmllcyAqLywgNDA5NikgID0gNDA5NgpnZXRkZW50czY0KDE0LCAvKiAxNyBl bnRyaWVzICovLCA0MDk2KSAgPSAxMDgwCmdldGRlbnRzNjQoMTQsIC8qIDY0IGVudHJpZXMg Ki8sIDQwOTYpICA9IDQwOTYKZ2V0ZGVudHM2NCgxNCwgLyogMTUgZW50cmllcyAqLywgNDA5 NikgID0gOTYwCmdldGRlbnRzNjQoMTQsIC8qIDY0IGVudHJpZXMgKi8sIDQwOTYpICA9IDQw OTYKZ2V0ZGVudHM2NCgxNCwgLyogMTUgZW50cmllcyAqLywgNDA5NikgID0gOTYwCmdldGRl bnRzNjQoMTQsIC8qIDY0IGVudHJpZXMgKi8sIDQwOTYpICA9IDQwOTYKZ2V0ZGVudHM2NCgx NCwgLyogMTUgZW50cmllcyAqLywgNDA5NikgID0gOTYwCmdldGRlbnRzNjQoMTQsIC8qIDY0 IGVudHJpZXMgKi8sIDQwOTYpICA9IDQwOTYKZ2V0ZGVudHM2NCgxNCwgLyogMTUgZW50cmll cyAqLywgNDA5NikgID0gOTYwCmdldGRlbnRzNjQoMTQsIC8qIDY0IGVudHJpZXMgKi8sIDQw OTYpICA9IDQwOTYKZ2V0ZGVudHM2NCgxNCwgLyogMTUgZW50cmllcyAqLywgNDA5NikgID0g OTYwCmdldGRlbnRzNjQoMTQsIC8qIDY0IGVudHJpZXMgKi8sIDQwOTYpICA9IDQwOTYKZ2V0 ZGVudHM2NCgxNCwgLyogMTUgZW50cmllcyAqLywgNDA5NikgID0gOTYwCmdldGRlbnRzNjQo MTQsIC8qIDY0IGVudHJpZXMgKi8sIDQwOTYpICA9IDQwOTYKZ2V0ZGVudHM2NCgxNCwgLyog MTUgZW50cmllcyAqLywgNDA5NikgID0gOTYwCmdldGRlbnRzNjQoMTQsIC8qIDY0IGVudHJp ZXMgKi8sIDQwOTYpICA9IDQwNTYKZ2V0ZGVudHM2NCgxNCwgLyogMjQgZW50cmllcyAqLywg NDA5NikgID0gMTM0NApnZXRkZW50czY0KDE0LCAvKiA3MyBlbnRyaWVzICovLCA0MDk2KSAg PSA0MDg4CmdldGRlbnRzNjQoMTQsIC8qIDI2IGVudHJpZXMgKi8sIDQwOTYpICA9IDE1MzYK Z2V0ZGVudHM2NCgxNCwgLyogNzMgZW50cmllcyAqLywgNDA5NikgID0gNDA5NgpnZXRkZW50 czY0KDE0LCAvKiAyOCBlbnRyaWVzICovLCA0MDk2KSAgPSAxNTY4CmdldGRlbnRzNjQoMTQs IC8qIDczIGVudHJpZXMgKi8sIDQwOTYpICA9IDQwODgKZ2V0ZGVudHM2NCgxNCwgLyogMjkg ZW50cmllcyAqLywgNDA5NikgID0gMTYyNApnZXRkZW50czY0KDE0LCAvKiA3MiBlbnRyaWVz ICovLCA0MDk2KSAgPSA0MDcyCmdldGRlbnRzNjQoMTQsIC8qIDI4IGVudHJpZXMgKi8sIDQw OTYpICA9IDE1NjgKZ2V0ZGVudHM2NCgxNCwgLyogNzMgZW50cmllcyAqLywgNDA5NikgID0g NDA4OApnZXRkZW50czY0KDE0LCAvKiAyOSBlbnRyaWVzICovLCA0MDk2KSAgPSAxNjI0Cmdl dGRlbnRzNjQoMTQsIC8qIDczIGVudHJpZXMgKi8sIDQwOTYpICA9IDQwODgKZ2V0ZGVudHM2 NCgxNCwgLyogMjkgZW50cmllcyAqLywgNDA5NikgID0gMTYyNApnZXRkZW50czY0KDE0LCAv KiA3MyBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDg4CmdldGRlbnRzNjQoMTQsIC8qIDI5IGVu dHJpZXMgKi8sIDQwOTYpICA9IDE2MjQKZ2V0ZGVudHM2NCgxNCwgLyogNzMgZW50cmllcyAq LywgNDA5NikgID0gNDA4OApnZXRkZW50czY0KDE0LCAvKiAyNyBlbnRyaWVzICovLCA0MDk2 KSAgPSAxNTQ0CmdldGRlbnRzNjQoMTQsIC8qIDczIGVudHJpZXMgKi8sIDQwOTYpICA9IDQw ODgKZ2V0ZGVudHM2NCgxNCwgLyogMjggZW50cmllcyAqLywgNDA5NikgID0gMTU4NApnZXRk ZW50czY0KDE0LCAvKiA3MiBlbnRyaWVzICovLCA0MDk2KSAgPSA0MDQ4CmdldGRlbnRzNjQo MTQsIC8qIDI5IGVudHJpZXMgKi8sIDQwOTYpICA9IDE2MjQKZ2V0ZGVudHM2NCgxNCwgLyog NzMgZW50cmllcyAqLywgNDA5NikgID0gNDA4OApnZXRkZW50czY0KDE0LCAvKiAyOSBlbnRy aWVzICovLCA0MDk2KSAgPSAxNjMyCmdldGRlbnRzNjQoMTQsIC8qIDczIGVudHJpZXMgKi8s IDQwOTYpICA9IDQwOTYKZ2V0ZGVudHM2NCgxNCwgLyogMjkgZW50cmllcyAqLywgNDA5Nikg ID0gMTYyNApnZXRkZW50czY0KDE0LCAvKiA2MSBlbnRyaWVzICovLCA0MDk2KSAgPSAzNDMy CmdldGRlbnRzNjQoMTQsIC8qIDAgZW50cmllcyAqLywgNDA5NikgICA9IDAKY2xvc2UoMTQp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMApicmsoMCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSAweDgwY2UwMDAKYnJrKDApICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gMHg4MGNlMDAwCmJyaygweDgwYWQwMDApICAgICAgICAg ICAgICAgICAgICAgICAgICA9IDB4ODBhZDAwMApicmsoMCkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAweDgwYWQwMDAKbXVubWFwKDB4NDA0NTUwMDAsIDEzNTE2OCkg ICAgICAgICAgICAgID0gMApvcGVuKCIvaG9tZS9rZS8ubWFpbGRpci8uc3BhbS9jdXIvMTA3 MjMzNTczOC45MDg2XzIudHJhbGZhbWFkb3JlOjIsUyIsIE9fUkRPTkxZfE9fTEFSR0VGSUxF KSA9IDE0CmZzdGF0NjQoMTQsIHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT0yMDg5 LCAuLi59KSA9IDAKYnJrKDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g MHg4MGFkMDAwCmJyaygweDgwYWYwMDApICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4 ODBhZjAwMApicmsoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDgw YWYwMDAKYnJrKDB4ODBiMDAwMCkgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHg4MGIw MDAwCmJyaygwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODBiMDAw MApicmsoMHg4MGIxMDAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDgwYjEwMDAK cHJlYWQoMTQsICJSZWNlaXZlZDogZnJvbSByb290IGJ5IGthbGxlLmR5biIuLi4sIDIwODks IDApID0gMjA4OQpwcmVhZCgxNCwgIlJlY2VpdmVkOiBmcm9tIHJvb3QgYnkga2FsbGUuZHlu Ii4uLiwgMjA4OSwgMCkgPSAyMDg5CmJyaygwKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IDB4ODBiMTAwMApicmsoMHg4MGIyMDAwKSAgICAgICAgICAgICAgICAgICAg ICAgICAgPSAweDgwYjIwMDAKYnJrKDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gMHg4MGIyMDAwCmJyaygweDgwYjMwMDApICAgICAgICAgICAgICAgICAgICAgICAg ICA9IDB4ODBiMzAwMAp0aW1lKFsxMDc1OTM0Njg1XSkgICAgICAgICAgICAgICAgICAgICAg PSAxMDc1OTM0Njg1Cm9wZW4oIi9ldGMvbG9jYWx0aW1lIiwgT19SRE9OTFkpICAgICAgICA9 IDE1CmZzdGF0NjQoMTUsIHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT02NzUsIC4u Ln0pID0gMAptbWFwMihOVUxMLCA0MDk2LCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1BS SVZBVEV8TUFQX0FOT05ZTU9VUywgLTEsIDApID0gMHg0MDAxZjAwMApyZWFkKDE1LCAiVFpp ZlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDBcNFwwIi4u LiwgNDA5NikgPSA2NzUKYnJrKDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gMHg4MGIzMDAwCmJyaygweDgwYjQwMDApICAgICAgICAgICAgICAgICAgICAgICAgICA9 IDB4ODBiNDAwMApjbG9zZSgxNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAw Cm11bm1hcCgweDQwMDFmMDAwLCA0MDk2KSAgICAgICAgICAgICAgICA9IDAKcnRfc2lnYWN0 aW9uKFNJR1BJUEUsIHsweDQwMTAzYzMwLCBbXSwgU0FfUkVTVE9SRVIsIDB4NDAwNTYyMTh9 LCB7U0lHX0lHTn0sIDgpID0gMApzZW5kKDMsICI8MTg+RmViICA0IDIzOjQ0OjQ1IGltYXAo a2UpOiBmaSIuLi4sIDE2MCwgMCkgPSAxNjAKcnRfc2lnYWN0aW9uKFNJR1BJUEUsIHtTSUdf SUdOfSwgTlVMTCwgOCkgPSAwCnJ0X3NpZ3Byb2NtYXNrKFNJR19VTkJMT0NLLCBbQUJSVF0s IE5VTEwsIDgpID0gMApnZXRwaWQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PSAyMzMyMwpraWxsKDIzMzIzLCBTSUdBQlJUKSAgICAgICAgICAgICAgICAgICAgPSAwCi0t LSBTSUdBQlJUIChBYm9ydGVkKSBAIDAgKDApIC0tLQpQcm9jZXNzIDIzMzIzIGRldGFjaGVk Cg== --------------050307060804080207050507 Content-Type: application/gzip; name="bad.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="bad.tar.gz" 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 llpqqaWWWmr5LvK/sWiNPgBQAAA= --------------050307060804080207050507-- From lars@misterp.dk Fri Feb 6 23:33:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 025A3C002801; Fri, 6 Feb 2004 23:33:22 +0200 (EET) Received: from misterp.dk (129.142.126.35.ip.tele2adsl.dk [129.142.126.35]) by talvi.dovecot.org (Postfix) with ESMTP id AC5B3C002800 for ; Fri, 6 Feb 2004 23:33:19 +0200 (EET) Received: from [192.168.2.2] (g4 [192.168.2.2]) by misterp.dk (8.12.9/8.12.9) with ESMTP id i16LUhsW011100 for ; Fri, 6 Feb 2004 22:30:44 +0100 (CET) X-Spam-Filter: check_local@misterp.dk by digitalanswers.org Mime-Version: 1.0 (Apple Message framework v612) Content-Transfer-Encoding: 7bit Message-Id: <7EF7084C-58EB-11D8-B4EF-00039371FB8A@misterp.dk> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: dovecot@dovecot.org From: Lars Skovgaard Date: Fri, 6 Feb 2004 22:29:07 +0100 X-Mailer: Apple Mail (2.612) Subject: [Dovecot] Illegal characters in message names X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2004 21:33:22 -0000 X-UID: 8642 Status: O Content-Length: 1327 Hi all I've set up Dovecot to use maildir-storage according to the previous hint from Blair Zajac, and it's working perfectly. However, I still have a problem with the way procmail wants to name the received emails. The following is a slightly modified extract from my logs: procmail: [5373] Thu Feb 5 23:59:14 2004 procmail: Assigning "MAILDIR=/Users/name/Maildir/" procmail: Assigning "ORGMAIL=/Users/name/Maildir/" procmail: Assigning "DEFAULT=/Users/name/Maildir/" procmail: Assigning "INCLUDERC=/Users/name/Library/rc.myrules" procmail: Match on "^From:.*someone@somewhere.com" procmail: Error while writing to ".Folder/tmp/1076021954.5373_0.y/rc.myrulessomewhere.com" procmail: Couldn't create or rename temp file ".Folder/tmp/1076021954.5373_0.y/rc.myrulessomewhere.com" procmail: Assigning "LASTFOLDER=/Users/name/Maildir/new/ 1076021954.5373_1.rp.comsomewhere.com" procmail: Notified comsat: "name@0:/Users/name/Maildir/new/1076021954.5373_1.rp.comsomewhere.com" As you can see, procmail puts a slash in the middle of the name, which of course is not allowed. This causes the rule to break, and the mail to be delivered to the default mailbox instead of the intended. Does anyone know how to control which characters are allowed in procmail, or how to control the naming eg. by way of grep? /Lars From lists@pote.com Sat Feb 7 17:47:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 46B59C002804; Sat, 7 Feb 2004 17:47:57 +0200 (EET) Received: from snipe.mail.pas.earthlink.net (snipe.mail.pas.earthlink.net [207.217.120.62]) by talvi.dovecot.org (Postfix) with ESMTP id E8C08C002801 for ; Sat, 7 Feb 2004 17:47:54 +0200 (EET) Received: from user-0ccemou.cable.mindspring.com ([24.199.91.30] helo=tarsier.pote.com) by snipe.mail.pas.earthlink.net with smtp (Exim 3.33 #1) id 1ApUdv-00072Q-00 for dovecot@dovecot.org; Sat, 07 Feb 2004 07:45:16 -0800 Received: (qmail 11276 invoked from network); 7 Feb 2004 15:45:12 -0000 Received: from unknown (HELO tarsier.pote.com) (eater@192.168.50.105) by 192.168.50.105 with SMTP; 7 Feb 2004 10:45:12 -0500 Date: Sat, 7 Feb 2004 10:45:11 -0500 (EST) From: Paul Adams To: dovecot@dovecot.org In-Reply-To: <20040207100004.A070AC002806@talvi.dovecot.org> Message-ID: References: <20040207100004.A070AC002806@talvi.dovecot.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Re: Illegal characters in message names X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2004 15:47:57 -0000 X-UID: 8643 Status: O > As you can see, procmail puts a slash in the middle of the name, which > of course is not allowed. This causes the rule to break, and the mail > to be delivered to the default mailbox instead of the intended. That looks like this procmail bug: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=62859 Upgrading to procmail 3.22 should fix the problem. Paul From allears@procrastinators.net Sat Feb 7 18:02:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8C656C002806; Sat, 7 Feb 2004 18:02:14 +0200 (EET) Received: from infoblue.procrastinators.net (YahooBB219009224010.bbtec.net [219.9.224.10]) by talvi.dovecot.org (Postfix) with ESMTP id 633F2C002804 for ; Sat, 7 Feb 2004 18:02:12 +0200 (EET) Received: by infoblue.procrastinators.net (Postfix, from userid 48) id 9BEAB62800B; Sun, 8 Feb 2004 00:59:21 +0900 (JST) Received: from 192.168.0.4 (SquirrelMail authenticated user allears) by 192.168.0.120 with HTTP; Sun, 8 Feb 2004 00:59:21 +0900 (JST) Message-ID: <4859.192.168.0.4.1076169561.squirrel@192.168.0.120> Date: Sun, 8 Feb 2004 00:59:21 +0900 (JST) From: "S Tanaka" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2-2_rh9 MIME-Version: 1.0 Content-Type: text/plain;charset=us-ascii Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] CRAM-MD5 support? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2004 16:02:14 -0000 X-UID: 8644 Status: O Hi, I'm wondering what is dovecot's support for CRAM-MD5? The mailing list for November 2003 seems to indicate that Timo has included it into the CVS tree, however the ChangeLogs in the latest version does not say anything about it. The online docs has indicated that it's supported, but the doc files in 0.99.10.4 doesn't seem to mention about it.... Thanks in advance. From joshua@shallow.net Sun Feb 8 02:30:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 88B9AC002801; Sun, 8 Feb 2004 02:30:08 +0200 (EET) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id B6ECDC002800 for ; Sun, 8 Feb 2004 02:30:05 +0200 (EET) Received: by yello.shallow.net (Postfix, from userid 1001) id 06F9E2FD4; Sun, 8 Feb 2004 11:27:20 +1100 (EST) Date: Sun, 8 Feb 2004 11:27:19 +1100 From: Joshua Goodall To: S Tanaka Subject: Re: [Dovecot] CRAM-MD5 support? Message-ID: <20040208002719.GU23724@roughtrade.net> References: <4859.192.168.0.4.1076169561.squirrel@192.168.0.120> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4859.192.168.0.4.1076169561.squirrel@192.168.0.120> User-Agent: Mutt/1.5.4i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Feb 2004 00:30:08 -0000 X-UID: 8645 Status: O On Sun, Feb 08, 2004 at 12:59:21AM +0900, S Tanaka wrote: > Hi, I'm wondering what is dovecot's support for CRAM-MD5? The mailing list > for November 2003 seems to indicate that Timo has included it into the CVS > tree, however the ChangeLogs in the latest version does not say anything > about it. The online docs has indicated that it's supported, but the doc > files in 0.99.10.4 doesn't seem to mention about it.... It's in CVS but not in the release version. You can get the original patch against 0.99.10.2 from http://www.roughtrade.net/dovecot/ (known to apply fine to 0.99.10.4). Regards Joshua. -- Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 From lars@misterp.dk Sun Feb 8 12:37:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D33BDC002802; Sun, 8 Feb 2004 12:37:02 +0200 (EET) Received: from misterp.dk (129.142.126.35.ip.tele2adsl.dk [129.142.126.35]) by talvi.dovecot.org (Postfix) with ESMTP id BD088C002800 for ; Sun, 8 Feb 2004 12:36:59 +0200 (EET) Received: from [192.168.2.2] (g4 [192.168.2.2]) by misterp.dk (8.12.9/8.12.9) with ESMTP id i18AYKsW021252 for ; Sun, 8 Feb 2004 11:34:20 +0100 (CET) X-Spam-Filter: check_local@misterp.dk by digitalanswers.org Mime-Version: 1.0 (Apple Message framework v612) In-Reply-To: <20040208100003.59DD4C002809@talvi.dovecot.org> References: <20040208100003.59DD4C002809@talvi.dovecot.org> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <209AFD5A-5A22-11D8-B4EF-00039371FB8A@misterp.dk> Content-Transfer-Encoding: 7bit From: Lars Skovgaard Date: Sun, 8 Feb 2004 11:32:42 +0100 To: dovecot@dovecot.org X-Mailer: Apple Mail (2.612) Subject: [Dovecot] Re: dovecot Digest, Vol 10, Issue 7 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Feb 2004 10:37:03 -0000 X-UID: 8646 Status: O >> As you can see, procmail puts a slash in the middle of the name, which >> of course is not allowed. This causes the rule to break, and the mail >> to be delivered to the default mailbox instead of the intended. > > That looks like this procmail bug: > > https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=62859 > > Upgrading to procmail 3.22 should fix the problem. > > Paul Thanks a lot. Wow, I didn't even know about Bugzilla ...what a great site. I've upgraded to procmail 3.22, and the problem is solved! /Lars On 8/2-2004, at 11.00, dovecot-request@dovecot.org wrote: >> As you can see, procmail puts a slash in the middle of the name, which >> of course is not allowed. This causes the rule to break, and the mail >> to be delivered to the default mailbox instead of the intended. > > That looks like this procmail bug: > > https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=62859 > > Upgrading to procmail 3.22 should fix the problem. > > Paul > From m_pahlevanzadeh@yahoo.com Sun Feb 8 15:23:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 09883C002802; Sun, 8 Feb 2004 15:23:45 +0200 (EET) Received: from web21401.mail.yahoo.com (web21401.mail.yahoo.com [216.136.232.71]) by talvi.dovecot.org (Postfix) with SMTP id 29E81C002800 for ; Sun, 8 Feb 2004 15:23:42 +0200 (EET) Message-ID: <20040208132016.73490.qmail@web21401.mail.yahoo.com> Received: from [81.31.160.4] by web21401.mail.yahoo.com via HTTP; Sun, 08 Feb 2004 05:20:16 PST Date: Sun, 8 Feb 2004 05:20:16 -0800 (PST) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailman-Approved-At: Sun, 08 Feb 2004 20:03:17 +0200 Subject: [Dovecot] a newbie question. X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Feb 2004 13:23:45 -0000 X-UID: 8647 Status: O Hi, I'm a newbie.Sorry for my question. I have RH9 & downloaded rpm of dovecot for RH9. I installed it: rpm -ivh nameOfthatrpm & when i ran #service dovecot start ,I recieved following lines: Starting IMAP daemon (dovecot): Fatal: Can't use SSL certificate /usr/share/ssl/certs/dovecot.pem: No such file or directory [FAILED] Please guide me........ ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html From rjohnson@medata.com Sun Feb 8 20:12:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 30ED8C002808; Sun, 8 Feb 2004 20:12:43 +0200 (EET) Received: from fed1mtao08.cox.net (fed1mtao08.cox.net [68.6.19.123]) by talvi.dovecot.org (Postfix) with ESMTP id 9CB07C002800 for ; Sun, 8 Feb 2004 20:12:39 +0200 (EET) Received: from linux.htmlspinnr.org ([68.99.186.15]) by fed1mtao08.cox.net (InterMail vM.5.01.06.05 201-253-122-130-105-20030824) with ESMTP id <20040208180957.ZNET5698.fed1mtao08.cox.net@linux.htmlspinnr.org> for ; Sun, 8 Feb 2004 13:09:57 -0500 Received: from medata.com (rickyj [192.168.1.3]) by linux.htmlspinnr.org (8.12.10/8.12.10) with ESMTP id i18I9uPv029283 for ; Sun, 8 Feb 2004 10:09:56 -0800 Message-ID: <40267B7A.4050900@medata.com> Date: Sun, 08 Feb 2004 10:10:02 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] a newbie question. References: <20040208132016.73490.qmail@web21401.mail.yahoo.com> In-Reply-To: <20040208132016.73490.qmail@web21401.mail.yahoo.com> X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Feb 2004 18:12:43 -0000 X-UID: 8648 Status: O Pahlevanzadeh Mohsen wrote: > Hi, > I'm a newbie.Sorry for my question. > I have RH9 & downloaded rpm of dovecot for RH9. > I installed it: > rpm -ivh nameOfthatrpm > & when i ran > #service dovecot start ,I recieved following lines: > Starting IMAP daemon (dovecot): Fatal: Can't use SSL > certificate /usr/share/ssl/certs/dovecot.pem: No such > file or directory > [FAILED] > > > Please guide me........ You'll need to review and modify /etc/dovecot.conf - either comment out the imaps requirement for service, or generate a valid SSL certificate (do a google search for openssl generate certificate). If you don't plan on running SSL secured services, it's easier to turn them off in the configuration. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. (from home) PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From shiva@sewingwitch.com Sun Feb 8 20:14:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E95BCC002809; Sun, 8 Feb 2004 20:14:32 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 80DBFC002808 for ; Sun, 8 Feb 2004 20:14:30 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i18IBmoP012471 for ; Sun, 8 Feb 2004 13:11:49 -0500 Received: from [10.0.0.221] (CPQ32245280371.dhcp.lsi.lan [10.0.0.221]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i18IBl0g023370 for ; Sun, 8 Feb 2004 10:11:48 -0800 Date: Sun, 08 Feb 2004 10:11:47 -0800 From: Kenneth Porter To: dovecot@dovecot.org Message-ID: <193598650.1076235107@[10.0.0.221]> X-Mailer: Mulberry/3.1.0 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 Subject: [Dovecot] Bugzilla X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.3 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Feb 2004 18:14:33 -0000 X-UID: 8649 Status: O --On Sunday, February 08, 2004 11:32 AM +0100 Lars Skovgaard wrote: > Thanks a lot. Wow, I didn't even know about Bugzilla ...what a great site. Yep, a great thing. It grew out of Mozilla. I've installed it at my office for bug tracking. You just need Perl and MySQL. Timo, do you get Bugzilla's for Dovecot from Red Hat forwarded to you? It looks like Jeremy Katz of Red Hat is the component owner, but you could get listed as "QA contact" so that you get cc'd as new bugs are entered. The following query shows all bugs against the Dovecot component in all Red Hat "products": From jello@waste.org Mon Feb 9 05:26:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6C218C000D9D; Mon, 9 Feb 2004 05:26:54 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 63603C000D9B for ; Mon, 9 Feb 2004 05:26:52 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id 71E6C239F7; Mon, 9 Feb 2004 05:24:11 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 60226239FA; Mon, 9 Feb 2004 05:24:10 +0200 (EET) Received: from waste.org (waste.org [209.173.204.2]) by danu.procontrol.fi (Postfix) with ESMTP id 8AB64239F7 for ; Mon, 9 Feb 2004 05:23:36 +0200 (EET) Received: from localhost (63-225-147-9.mpls.qwest.net [63.225.147.9]) by waste.org (8.12.3/8.12.3/Debian-6.6) with ESMTP id i193NWib000717 for ; Sun, 8 Feb 2004 21:23:33 -0600 Received: from localhost (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id CDD32406153 for ; Sun, 8 Feb 2004 21:23:32 -0600 (CST) Received: from localhost ([127.0.0.1]) by localhost (refuse [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02748-03 for ; Sun, 8 Feb 2004 21:23:32 -0600 (CST) Received: by localhost (Postfix, from userid 1001) id 992BB406152; Sun, 8 Feb 2004 21:23:32 -0600 (CST) Date: Sun, 8 Feb 2004 21:23:32 -0600 From: John Thompson To: dovecot@procontrol.fi Message-ID: <20040209032332.GD667@waste.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.5.1+cvs20040105i X-Virus-Scanned: by amavisd-new Cc: Subject: [Dovecot] ANNOUNCE: Mailadmin - New web interface for virtual domains X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2004 03:26:54 -0000 X-UID: 8650 Status: O Content-Length: 1192 Hey there, I've written a(nother) web front end for postfix + dovecot + mysql, it's called Mailadmin. (I'm sure you could use it with another POP/IMAP server, I haven't though) You can download it at: http://waste.org/~jello/mailadmin/ Some features are: o Licensed under the GPL o Written in perl o Written with security in mind o Supports regular mailboxes, forward-only boxes, and catchalls. o Ability to undelete deleted users (You'll have to do this manually for now (see TODO)) o You can add as many admins as you want, and they can only see or modify their own domains/users. o Uses HTML::Template, so you can edit the pages to appear as you want without having to muck through a bunch of code There are still a few features left to add (deleting domains for instance), but it's been working great for me for a while. Also, Debian Sarge (or later) users can use the install script and brief instructions to go from a bare-bones install to fully working postfix + dovecot + mysql virtual domains with web front-end in 5 or 10 minutes. Guaranteed! (ok, maybe not _guaranteed_, but it's quite easy). Feedback is much appreciated. From m_pahlevanzadeh@yahoo.com Mon Feb 9 08:56:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7B389C00280F; Mon, 9 Feb 2004 08:56:57 +0200 (EET) Received: from web21402.mail.yahoo.com (web21402.mail.yahoo.com [216.136.232.72]) by talvi.dovecot.org (Postfix) with SMTP id 599B7C000D9D for ; Mon, 9 Feb 2004 08:56:54 +0200 (EET) Message-ID: <20040209065412.53588.qmail@web21402.mail.yahoo.com> Received: from [81.31.160.4] by web21402.mail.yahoo.com via HTTP; Sun, 08 Feb 2004 22:54:12 PST Date: Sun, 8 Feb 2004 22:54:12 -0800 (PST) From: Pahlevanzadeh Mohsen Subject: Re: [Dovecot] a newbie question. To: Rick Johnson , dovecot@dovecot.org In-Reply-To: <40267B7A.4050900@medata.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2004 06:56:57 -0000 X-UID: 8651 Status: O Content-Length: 1743 Agian hi. But i don't know that what i write in /etc/dovecot.conf Please guide me..... --- Rick Johnson wrote: > Pahlevanzadeh Mohsen wrote: > > Hi, > > I'm a newbie.Sorry for my question. > > I have RH9 & downloaded rpm of dovecot for RH9. > > I installed it: > > rpm -ivh nameOfthatrpm > > & when i ran > > #service dovecot start ,I recieved following > lines: > > Starting IMAP daemon (dovecot): Fatal: Can't use > SSL > > certificate /usr/share/ssl/certs/dovecot.pem: No > such > > file or directory > > > [FAILED] > > > > > > Please guide me........ > > You'll need to review and modify /etc/dovecot.conf - > either comment out > the imaps requirement for service, or generate a > valid SSL certificate > (do a google search for openssl generate > certificate). If you don't plan > on running SSL secured services, it's easier to turn > them off in the > configuration. > > -Rick > > -- > Rick Johnson, RHCE #807302311706007 - > rjohnson@medata.com > Linux/Network Administrator - Medata, Inc. (from > home) > PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html From m_pahlevanzadeh@yahoo.com Mon Feb 9 09:59:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F35E0C002800; Mon, 9 Feb 2004 09:59:28 +0200 (EET) Received: from web21405.mail.yahoo.com (web21405.mail.yahoo.com [216.136.232.75]) by talvi.dovecot.org (Postfix) with SMTP id 2355CC000D9B for ; Mon, 9 Feb 2004 09:59:26 +0200 (EET) Message-ID: <20040209075644.83400.qmail@web21405.mail.yahoo.com> Received: from [81.31.160.4] by web21405.mail.yahoo.com via HTTP; Sun, 08 Feb 2004 23:56:44 PST Date: Sun, 8 Feb 2004 23:56:44 -0800 (PST) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] SSL certificate. X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2004 07:59:29 -0000 X-UID: 8652 Status: O Content-Length: 1507 Hi. I had generate a SSL cetificate. I performed following actions: mkdir /opt/LocalCA cd /opt/LocalCA mkdir certs mkdir private chmod 700 private echo '01' > serial touch index.txt cd /opt/LocalCA PATH=/opt/openssl/bin:$PATH export PATH OPENSSL_CONF=/opt/LocalCA/LocalCA.cnf export OPENSSL_CONF openssl req -x509 -newkey rsa -out cacert.pem -outform PEM -days 1825 Then made following files: /opt/LocalCA/cacert.pem # CA public certificate /opt/LocalCA/private/cakey.pem # CA private key Then i performed 2 actions: mv /opt/LocalCA/cacert.pem /usr/share/ssl/certs/dovecot.pem mv /opt/LocalCA/cakey.pem /usr/shar/ssl/private/dovecot.pem Now,I run service dovecot start & i received following line: Starting IMAP daemon (dovecot): [ OK ] But now i run service dovecot status & i recieving following line: dovecot dead but subsys locked PLEASE GUIDE ME......... ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html From m_pahlevanzadeh@yahoo.com Mon Feb 9 11:41:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2E034C000D9D; Mon, 9 Feb 2004 11:41:01 +0200 (EET) Received: from web21404.mail.yahoo.com (web21404.mail.yahoo.com [216.136.232.74]) by talvi.dovecot.org (Postfix) with SMTP id 75D28C000D9B for ; Mon, 9 Feb 2004 11:40:58 +0200 (EET) Message-ID: <20040209093750.14030.qmail@web21404.mail.yahoo.com> Received: from [81.31.160.4] by web21404.mail.yahoo.com via HTTP; Mon, 09 Feb 2004 01:37:50 PST Date: Mon, 9 Feb 2004 01:37:50 -0800 (PST) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] Again SSL. X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2004 09:41:01 -0000 X-UID: 8653 Status: O Hi. I uninstalled dovecot.After it,I build a rpm from dovecot.org ,& installed it. Now,when i run service dovecot start ,I received following line: Starting dovecot: Fatal: Can't use SSL certificate /etc/ssl/certs/dovecot.pem: No such file or directory [FAILED] Please guide me... ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html From security@jlug.org Mon Feb 9 13:32:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AFAA3C002800; Mon, 9 Feb 2004 13:32:50 +0200 (EET) Received: from jlug.fi (jlug.fi [192.194.49.184]) by talvi.dovecot.org (Postfix) with ESMTP id 98681C000D9B for ; Mon, 9 Feb 2004 13:32:48 +0200 (EET) Received: (qmail 2762 invoked by uid 537); 9 Feb 2004 11:29:15 -0000 Received: from security@jlug.org by jlug by uid 510 with qmail-scanner-1.20rc3 (f-prot: 3.12/. spamassassin: 2.63. Clear:RC:0:SA:0(-4.9/10.0):. Processed in 11.763695 secs); 09 Feb 2004 11:29:15 -0000 Received: from unknown (HELO desktop) (security@jlug.org@195.197.199.46) by 0 with RC4-MD5 encrypted SMTP; 9 Feb 2004 11:29:03 -0000 Message-ID: <001d01c3ef00$08e61240$0200a8c0@desktop> From: "Eero Volotinen" To: "Pahlevanzadeh Mohsen" , References: <20040209093750.14030.qmail@web21404.mail.yahoo.com> Subject: Re: [Dovecot] Again SSL. Date: Mon, 9 Feb 2004 13:29:49 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on jlug X-Spam-Status: No, hits=-4.9 required=10.0 tests=BAYES_00 autolearn=ham version=2.63 X-Spam-Level: Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2004 11:32:50 -0000 X-UID: 8654 Status: O > I uninstalled dovecot.After it,I build a rpm from > dovecot.org ,& installed it. > Now,when i run service dovecot start ,I received > following line: > Starting dovecot: Fatal: Can't use SSL certificate > /etc/ssl/certs/dovecot.pem: No such file or directory Just generate certificate and put it on correct path. Reading configfile can be ... nice thing to do. -- Eero -- this message passed virusscanner at host jlug.fi -- From m_pahlevanzadeh@yahoo.com Mon Feb 9 14:29:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EF4C2C002800; Mon, 9 Feb 2004 14:29:24 +0200 (EET) Received: from web21407.mail.yahoo.com (web21407.mail.yahoo.com [216.136.232.77]) by talvi.dovecot.org (Postfix) with SMTP id 7A1B8C000D9B for ; Mon, 9 Feb 2004 14:29:21 +0200 (EET) Message-ID: <20040209122623.63192.qmail@web21407.mail.yahoo.com> Received: from [81.31.160.4] by web21407.mail.yahoo.com via HTTP; Mon, 09 Feb 2004 04:26:23 PST Date: Mon, 9 Feb 2004 04:26:23 -0800 (PST) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] Start-up X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2004 12:29:25 -0000 X-UID: 8655 Status: O Hi. I dovecot RPM on RH9,Of course,I used RPM fro RH9,But when i run "service dovecot start" I receiving a OK But when i run "service dovecot status" I receiving folloing line: dovecot dead but subsys locked & even when i run "ps -A |grep dovecot" ,i'm not receiving anythings. Please guide me..... Yours,Mohsen. ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html From jwt@qth.ath.cx Mon Feb 9 16:17:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D4B76C002801; Mon, 9 Feb 2004 16:17:20 +0200 (EET) Received: from qth.ath.cx (usen-221x115x224x2.ap-US01.usen.ad.jp [221.115.224.2]) by talvi.dovecot.org (Postfix) with ESMTP id 86A73C002800 for ; Mon, 9 Feb 2004 16:17:18 +0200 (EET) Received: from jwt by qth.ath.cx with local (Exim 4.30) id 1AqCBE-0007aR-Mu for dovecot@dovecot.org; Mon, 09 Feb 2004 23:14:32 +0900 Date: Mon, 9 Feb 2004 23:14:32 +0900 From: Jim Tittsler To: dovecot@dovecot.org Subject: Re: [Dovecot] Start-up Message-ID: <20040209141432.GA29011@server.onjapan.net> References: <20040209122623.63192.qmail@web21407.mail.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040209122623.63192.qmail@web21407.mail.yahoo.com> User-Agent: Mutt/1.4.1i Organization: 7J1AJH/AI8A Tokyo X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2004 14:17:21 -0000 X-UID: 8656 Status: O On Mon, Feb 09, 2004 at 04:26:23AM -0800, Pahlevanzadeh Mohsen wrote: > But when i run "service dovecot status" > I receiving folloing line: > dovecot dead but subsys locked You may have a stale dovecot lock file in /var/lock/subsys. As to why dovecot may not be starting up, there should be information in the log files providing clues (check /var/log/maillog). From rjohnson@medata.com Mon Feb 9 17:48:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 459A4C002801; Mon, 9 Feb 2004 17:48:14 +0200 (EET) Received: from fed1mtao02.cox.net (fed1mtao02.cox.net [68.6.19.243]) by talvi.dovecot.org (Postfix) with ESMTP id 775AEC002800 for ; Mon, 9 Feb 2004 17:48:11 +0200 (EET) Received: from linux.htmlspinnr.org ([68.99.186.15]) by fed1mtao02.cox.net (InterMail vM.5.01.06.05 201-253-122-130-105-20030824) with ESMTP id <20040209154529.KBWL23539.fed1mtao02.cox.net@linux.htmlspinnr.org>; Mon, 9 Feb 2004 10:45:29 -0500 Received: from medata.com (rickyj [192.168.1.3]) by linux.htmlspinnr.org (8.12.10/8.12.10) with ESMTP id i19FjQPv001558; Mon, 9 Feb 2004 07:45:26 -0800 Message-ID: <4027AB19.30604@medata.com> Date: Mon, 09 Feb 2004 07:45:29 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Pahlevanzadeh Mohsen Subject: Re: [Dovecot] a newbie question. References: <20040209065412.53588.qmail@web21402.mail.yahoo.com> In-Reply-To: <20040209065412.53588.qmail@web21402.mail.yahoo.com> X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2004 15:48:14 -0000 X-UID: 8657 Status: O Pahlevanzadeh Mohsen wrote: > Agian hi. > But i don't know that what i write in > /etc/dovecot.conf > Please guide me..... I cannot guide you beyond what the comments list, except to suggest looking in the SSL section of the file. The conf file is well documented. Make a backup copy of it, and try away. The worst you could do is restore the backup if something fails. I can suggest that you also read the docs - if installed from an RPM, they may be inside /usr/share/doc/dovecot-*/. It may suggest how to get the SSL certificate installed. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. (from home) PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From kiwi@oav.net Tue Feb 10 18:00:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 25879C002800; Tue, 10 Feb 2004 18:00:42 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id D9D5AC000D9D for ; Tue, 10 Feb 2004 18:00:39 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id 899622385D; Tue, 10 Feb 2004 17:57:55 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 85064239FA; Tue, 10 Feb 2004 17:57:55 +0200 (EET) Received: from akira.oav.net (akira.oav.net [195.20.105.157]) by danu.procontrol.fi (Postfix) with ESMTP id 967222385D for ; Tue, 10 Feb 2004 17:57:23 +0200 (EET) Received: from [10.0.1.27] (babel.zehc.net [213.36.100.145]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by akira.oav.net (Postfix) with ESMTP id 4AC612A43D for ; Tue, 10 Feb 2004 16:57:19 +0100 (CET) Mime-Version: 1.0 (Apple Message framework v612) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit X-Image-Url: http://www.oav.net/~kiwi/kiwi.jpg From: Xavier Beaudouin X-Face: 8u$<#gAcwx"EZ1; LY4S{`{^D0'*'75&}5\XN1m6&R"N3P0aLN|^*v-p9@iw74t0RXvGGnR ]5)NaG6vj^LqWB:7f3*yf?q}6Cu6#?XV>Q[Kn&33``:R@E\!R~gk)nc&5X)\fHZbm4GaIf gK$GT'B=\KS&?t}%C%Y:R,W9%7JbYDx![gw'^SN'9L[?Xpcwh5{$q9LlUMw; &JS&BL)~c4o>] Date: Tue, 10 Feb 2004 16:57:17 +0100 To: dovecot@procontrol.fi X-Mailer: Apple Mail (2.612) Cc: Subject: [Dovecot] UW-IMAP -> Dovecot : patch to remove nasty "internal messages" from UW-IMAP ? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2004 16:00:42 -0000 X-UID: 8658 Status: O Hello there, We want to move from UW-IMAP to Dovecot (mbox format), works like a charm, but UW-IMAP has that bloody habbit to make a stupid message in all his mailbox files : From MAILER-DAEMON Thu Apr 19 10:30:01 2001 Date: 19 Apr 2001 10:30:01 +0200 From: Mail System Internal Data Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA Message-ID: <987669001@mailhub2-vil.isdnet.net> X-IMAP: 0987630138 0000000001 Status: RO This text is part of the internal format of your mail folder, and is not a real message. It is created automatically by the mail system software. If deleted, important folder data will be lost, and it will be re-created with the data reset to initial values. Is there any patch / trick / whatever to avoid that such "stupid" message to be not served by dovecot ? Thanks, /Xavier From rjohnson@medata.com Tue Feb 10 19:30:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 007E9C002802; Tue, 10 Feb 2004 19:30:25 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 1CA17C002801 for ; Tue, 10 Feb 2004 19:30:23 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id 873702385D; Tue, 10 Feb 2004 19:27:38 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7BE28239F6; Tue, 10 Feb 2004 19:27:38 +0200 (EET) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by danu.procontrol.fi (Postfix) with ESMTP id E26682385D for ; Tue, 10 Feb 2004 19:27:04 +0200 (EET) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i1AHQvk6026324 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 10 Feb 2004 09:26:57 -0800 Message-ID: <40291462.9090408@medata.com> Date: Tue, 10 Feb 2004 09:26:58 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Subject: Re: [Dovecot] UW-IMAP -> Dovecot : patch to remove nasty "internal messages" from UW-IMAP ? References: In-Reply-To: X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: multipart/mixed; boundary="------------040805030608020702070903" Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2004 17:30:25 -0000 X-UID: 8659 Status: O Content-Length: 2538 This is a multi-part message in MIME format. --------------040805030608020702070903 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Many of the scripts that do the conversion remove this message. I used perfect_maildir.pl to do my conversion. It was more or less dead-on, but had the habbit of marking some unread messages incorrectly as "read" after the conversion. I've attached a patch which "fixed" this in my case. This patches against perfect_maildir.pl v0.2. -Rick Xavier Beaudouin wrote: > Hello there, > > We want to move from UW-IMAP to Dovecot (mbox format), works like a > charm, but UW-IMAP has that bloody habbit to make a stupid message in > all his mailbox files : > > From MAILER-DAEMON Thu Apr 19 10:30:01 2001 > Date: 19 Apr 2001 10:30:01 +0200 > From: Mail System Internal Data > Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA > Message-ID: <987669001@mailhub2-vil.isdnet.net> > X-IMAP: 0987630138 0000000001 > Status: RO > > This text is part of the internal format of your mail folder, and is not > a real message. It is created automatically by the mail system software. > If deleted, important folder data will be lost, and it will be re-created > with the data reset to initial values. > > Is there any patch / trick / whatever to avoid that such "stupid" > message to be not served by dovecot ? > > Thanks, > /Xavier > -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc --------------040805030608020702070903 Content-Type: text/x-patch; name="perfect_maildir.pl.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="perfect_maildir.pl.patch" 74c74,77 < $extra .= 'S' if (($flags =~ /R/) || ($flags =~ /O/)); # seen --- > # $extra .= 'S' if (($flags =~ /R/) || ($flags =~ /O/)); # seen > # Above is an "or", UW-IMAP uses RO for seen combined. O is "old, but not seen, so we want no flags in that case > # Below fixes, and also accounts for some servers using "U" for old/read or undeleted. > $extra .= 'S' if ((($flags =~ /R/) && ($flags =~ /O/)) || ($flags =~ /U/)); # seen 76c79,81 < $file .= ":2,$extra" if $extra; --- > # $file .= ":2,$extra" if $extra; > # We want the ":2," anyway to show that the message isn't "new" with Dovecot, but has no other status, make unconditional. > $file .= ":2,$extra"; --------------040805030608020702070903-- From kiwi@oav.net Tue Feb 10 19:48:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 30FA5C002803; Tue, 10 Feb 2004 19:48:41 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 47208C002802 for ; Tue, 10 Feb 2004 19:48:39 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id C04E62385D; Tue, 10 Feb 2004 19:45:54 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id B9638239F6; Tue, 10 Feb 2004 19:45:54 +0200 (EET) Received: from akira.oav.net (akira.oav.net [195.20.105.157]) by danu.procontrol.fi (Postfix) with ESMTP id 11A532385D for ; Tue, 10 Feb 2004 19:45:18 +0200 (EET) Received: from [10.0.1.27] (babel.zehc.net [213.36.100.145]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by akira.oav.net (Postfix) with ESMTP id E77692A43D; Tue, 10 Feb 2004 18:45:16 +0100 (CET) In-Reply-To: <40291462.9090408@medata.com> References: <40291462.9090408@medata.com> Mime-Version: 1.0 (Apple Message framework v612) Content-Type: text/plain; charset=ISO-8859-1; format=flowed Message-Id: Content-Transfer-Encoding: quoted-printable X-Image-Url: http://www.oav.net/~kiwi/kiwi.jpg From: Xavier Beaudouin X-Face: 8u$<#gAcwx"EZ1; LY4S{`{^D0'*'75&}5\XN1m6&R"N3P0aLN|^*v-p9@iw74t0RXvGGnR ]5)NaG6vj^LqWB:7f3*yf?q}6Cu6#?XV>Q[Kn&33``:R@E\!R~gk)nc&5X)\fHZbm4GaIf gK$GT'B=\KS&?t}%C%Y:R,W9%7JbYDx![gw'^SN'9L[?Xpcwh5{$q9LlUMw; &JS&BL)~c4o>] Subject: Re: [Dovecot] UW-IMAP -> Dovecot : patch to remove nasty "internal messages" from UW-IMAP ? Date: Tue, 10 Feb 2004 18:45:15 +0100 To: Rick Johnson X-Mailer: Apple Mail (2.612) Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2004 17:48:41 -0000 X-UID: 8660 Status: O Content-Length: 2507 The main problem I have is that I have more than 700k boxes... And I=20 cannot (yet?) affording to convert them into maildir (even if it is more efficient.....)... /Xavier Le 10 f=E9vr. 04, =E0 18:26, Rick Johnson a =E9crit : > Many of the scripts that do the conversion remove this message. > > I used perfect_maildir.pl to do my conversion. It was more or less=20 > dead-on, but had the habbit of marking some unread messages=20 > incorrectly as "read" after the conversion. > > I've attached a patch which "fixed" this in my case. This patches=20 > against perfect_maildir.pl v0.2. > > -Rick > > Xavier Beaudouin wrote: >> Hello there, >> We want to move from UW-IMAP to Dovecot (mbox format), works like a=20= >> charm, but UW-IMAP has that bloody habbit to make a stupid message in=20= >> all his mailbox files : >> =46rom MAILER-DAEMON Thu Apr 19 10:30:01 2001 >> Date: 19 Apr 2001 10:30:01 +0200 >> From: Mail System Internal Data=20 >> >> Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA >> Message-ID: <987669001@mailhub2-vil.isdnet.net> >> X-IMAP: 0987630138 0000000001 >> Status: RO >> This text is part of the internal format of your mail folder, and is=20= >> not >> a real message. It is created automatically by the mail system=20 >> software. >> If deleted, important folder data will be lost, and it will be=20 >> re-created >> with the data reset to initial values. >> Is there any patch / trick / whatever to avoid that such "stupid"=20 >> message to be not served by dovecot ? >> Thanks, >> /Xavier > > > --=20 > Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com > Linux/Network Administrator - Medata, Inc. > PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc > 74c74,77 > < $extra .=3D 'S' if (($flags =3D~ /R/) || ($flags =3D~ /O/)); # = seen > --- > > # $extra .=3D 'S' if (($flags =3D~ /R/) || ($flags =3D~ /O/)); # = seen > > # Above is an "or", UW-IMAP uses RO for seen combined. O is "old,=20 > but not seen, so we want no flags in that case > > # Below fixes, and also accounts for some servers using "U" for=20 > old/read or undeleted. > > $extra .=3D 'S' if ((($flags =3D~ /R/) && ($flags =3D~ /O/)) || = ($flags=20 > =3D~ /U/)); # seen > 76c79,81 > < $file .=3D ":2,$extra" if $extra; > --- > > # $file .=3D ":2,$extra" if $extra; > > # We want the ":2," anyway to show that the message isn't "new" with=20= > Dovecot, but has no other status, make unconditional. > > $file .=3D ":2,$extra"; From rjohnson@medata.com Tue Feb 10 19:59:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9FE65C002804; Tue, 10 Feb 2004 19:59:17 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 304EFC002803 for ; Tue, 10 Feb 2004 19:59:15 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id A508A239F7; Tue, 10 Feb 2004 19:56:30 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A0C9D239F6; Tue, 10 Feb 2004 19:56:30 +0200 (EET) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by danu.procontrol.fi (Postfix) with ESMTP id 5F0272385D for ; Tue, 10 Feb 2004 19:55:57 +0200 (EET) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i1AHtmBv000347 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 10 Feb 2004 09:55:48 -0800 Message-ID: <40291B25.6030500@medata.com> Date: Tue, 10 Feb 2004 09:55:49 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Xavier Beaudouin Subject: Re: [Dovecot] UW-IMAP -> Dovecot : patch to remove nasty "internal messages" from UW-IMAP ? References: <40291462.9090408@medata.com> In-Reply-To: X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: multipart/mixed; boundary="------------040401040906020900000109" Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2004 17:59:17 -0000 X-UID: 8661 Status: O Content-Length: 7464 This is a multi-part message in MIME format. --------------040401040906020900000109 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Xavier Beaudouin wrote: > The main problem I have is that I have more than 700k boxes... And I > cannot (yet?) affording to convert them into > maildir (even if it is more efficient.....)... I converted about 160 at once using the attached script, along with perfect_maildir.pl. It worked fairly well, and will traverse about 3 levels deep, and subscribes (using dovecot's .subscriptions) each folder it converts. YMMV. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc --------------040401040906020900000109 Content-Type: text/x-sh; name="convertmbox.sh" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="convertmbox.sh" #!/bin/bash # This script works well for converting entire home directories from mbox to Maildir. It will walk down 3 levels deep. # Also subscribe all folders converted using Dovecot standard, and creates Mozilla/Thunderbird "basic" folders # For users who don't already have them. # Freely Distributable - No Warranties for results # Rick Johnson - rjohnson@medata.com - 1/20/2004 # Requires the perfect_maildir.pl script. Assumes mbox and Maildir directories will exist within home. Minor edits can relocate. # Execute from the path that contains user home/mail directories. Modify variables below to suit. # v0.1 - Initial release # Path to perfect_maildir.pl script script="/home/perfect_maildir.pl" # Who to convert - either single directories or * for all users - or use $@ for command line convert="*" # INBOX Location - exclude trailing slash spool="/var/spool/mail" # Maildir name - relative to parent path maildir="Maildir" # mbox Mailbox name mbox="mail" # home location home="/home" # Shall we subscribe? subscribe=1 # Subscribe to dirs as well? subscribedir=1 # Create default folders for existing boxes? createexist=1 # Create default folders for new boxes" createnew=1 for listing in $convert do homedir="${home}/${listing}" subscriptions="$homedir/$maildir/.subscriptions" echo "Converting mailbox for $homedir" if [ -d "$homedir" ] then cd "$homedir" pwd if [ ! -d "$maildir" ] then mkdir -p $maildir/new $maildir/tmp $maildir/cur fi if [ -d "$maildir" ] then $script $maildir/ < ${spool}/${listing} if [ $subscribe -ne 0 ] then echo "INBOX" > $subscriptions echo "Subscribing to INBOX" fi # Test for existing mbox - convert if existing, otherwise create new below. if [ -d "$homedir/$mbox" ] then echo "Previous Mail structure, let's convert it." cd "$homedir/$mbox" level1=( * ) a=0 until [ $a = ${#level1[@]} ] do workinga="${level1[${a}]}" # echo "Working on $workinga" if [ -d "$workinga" ] then echo "$workinga is a directory, let's create structure, then traverse." mkdir -p "$homedir/$maildir/.$workinga/cur" "$homedir/$maildir/.$workinga/new" "$homedir/$maildir/.$workinga/tmp" if [ $subscribedir -ne 0 ] then echo "Subscribing to directory $workinga" echo "$workinga" >> $subscriptions fi cd "$workinga" level2=( * ) b=0 until [ $b = ${#level2[@]} ] do workingb="${level2[${b}]}" # echo "Working on $workingb" if [ -d "$workingb" ] then echo "$workingb is a directory, let's create structure, then traverse." mkdir -p "$homedir/$maildir/.$workinga.$workingb/cur" "$homedir/$maildir/.$workinga.$workingb/new" "$homedir/$maildir/.$workinga.$workingb/tmp" if [ $subscribedir -ne 0 ] then echo "Subscribing to directory $workinga.$workingb" echo "$workinga.$workingb" >> $subscriptions fi cd "$workingb" level3=( * ) c=0 until [ $c = ${#level3[@]} ] do workingc="${level3[${c}]}" # echo "Working on $workingc" mkdir -p "$homedir/$maildir/.$workinga.$workingb.$workingc/cur" "$homedir/$maildir/.$workinga.$workingb.$workingc/new" "$homedir/$maildir/.$workinga.$workingb.$workingc/tmp" $script "${homedir}/$maildir/.$workinga.$workingb.$workingc/" < "${homedir}/$mbox/$workinga/$workingb/$workingc" if [ $subscribe -ne 0 ] then echo "$workinga.$workingb.$workingc" >> $subscriptions echo "Subscribing to $workinga.$workingb.$workingc" fi c=$(($c+1)) done echo "Done inside ${workingb}." cd "${homedir}/$mbox/${workinga}" else mkdir -p "$homedir/$maildir/.$workinga.$workingb/cur" "$homedir/$maildir/.$workinga.$workingb/new" "$homedir/$maildir/.$workinga.$workingb/tmp" $script "${homedir}/$maildir/.$workinga.$workingb/" < "${homedir}/$mbox/$workinga/$workingb" if [ $subscribe -ne 0 ] then echo "Subscribing to $workinga.$workingb" echo "$workinga.$workingb" >> $subscriptions fi fi b=$(($b+1)) done echo "Done inside $workinga." cd "$homedir/$mbox" else if [ -f "$homedir/$mbox/$workinga" ] then mkdir -p "$homedir/$maildir/.$workinga/cur" "$homedir/$maildir/.$workinga/new" "$homedir/$maildir/.$workinga/tmp" $script "${homedir}/$maildir/.$workinga/" < "${homedir}/$mbox/$workinga" if [ $subscribe -ne 0 ] then echo "Subscribing to $workinga" echo "$workinga" >> $subscriptions fi fi fi a=$(($a+1)) done cd $homedir # Create basic folders if they don't already exist if [ $createexist -ne 0 ] then for basic in Drafts Sent Templates Trash do if [ ! -f $homedir/$mbox/${basic} ] then mkdir -p $homedir/$maildir/.${basic}/cur $homedir/$maildir/.${basic}/new $homedir/$maildir/.${basic}/tmp if [ $subscribe -ne 0 ] then echo "Subscribing to ${basic}" echo "${basic}" >> $subscriptions fi fi done # If the user already has a Junk or Spam folder, don't create a new one, otherwise create Junk. if [ ! -f $homedir/$mbox/Spam -o ! -f $homedir/$mbox/Junk ] then mkdir -p $homedir/$maildir/.Junk/cur $homedir/$maildir/.Junk/new $homedir/$maildir/.Junk/tmp echo "Junk" >> $subscriptions fi fi elif [ $createnew -ne 0 ] then for basic in Drafts Sent Templates Trash do if [ ! -f $homedir/$mbox/${basic} ] then mkdir -p $homedir/$maildir/.${basic}/cur $homedir/$maildir/.${basic}/new $homedir/$maildir/.${basic}/tmp if [ $subscribe -ne 0 ] then echo "Subscribing to ${basic}" echo "${basic}" >> $subscriptions fi fi done # If the user already has a Junk or Spam folder, don't create a new one, otherwise create Junk. if [ ! -f $homedir/$mbox/Spam -o ! -f $homedir/$mbox/Junk ] then mkdir -p $homedir/$maildir/.Junk/cur $homedir/$maildir/.Junk/new $homedir/$maildir/.Junk/tmp echo "Junk" >> $subscriptions fi fi chown -R $listing $maildir chmod -R go-rwx $maildir cd /home else echo "$maildir directory creation failed" exit 1 fi else echo "Home directory $homedir doesn't exist?" fi done exit 0 --------------040401040906020900000109-- From jamie@tridentmicrosystems.co.uk Tue Feb 10 20:13:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6D4E9C00280B; Tue, 10 Feb 2004 20:13:15 +0200 (EET) Received: from mail.trident-uk.co.uk (mail.trident-uk.co.uk [81.3.89.57]) by talvi.dovecot.org (Postfix) with ESMTP id 4AF67C002803 for ; Tue, 10 Feb 2004 20:13:13 +0200 (EET) Received: from m0ng (wrkstn-62.pe.trident-uk.co.uk [192.168.100.62]) by mail.trident-uk.co.uk (Postfix) with ESMTP id EA072B91EA for ; Tue, 10 Feb 2004 18:10:26 +0000 (GMT) From: "Jamie Heckford" To: Date: Tue, 10 Feb 2004 18:10:25 -0000 Organization: Trident Microsystems Ltd Message-ID: <003c01c3f001$281da1d0$3e64a8c0@m0ng> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.2627 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Subject: [Dovecot] Dovecot on FreeBSD 4.9 - "Invalid Password Field" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: jamie@tridentmicrosystems.co.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2004 18:13:15 -0000 X-UID: 8662 Status: O Content-Length: 1543 Hi, I am attempting to get dovecot up and running on FreeBSD 4.9..... Tried with the default config file and my own one (below) but when trying to login I get the following: Feb 10 17:59:53 cobain dovecot-auth: passwd(jamie): invalid password field '*' It seems like it is trying to read straight from /etc/passwd? I thought it called getpw(). Is this a common error and could anyone shed some light on how to fix it? Thanks :) Jamie -- dovecot.conf ## Dovecot 1.0 configuration file base_dir = /var/dovecot/ protocols = imap imap_listen = 192.168.120.7 login_dir = /var/dovecot/login login_chroot = yes ssl_disable = yes ## IMAP login process login = imap login_executable = /usr/local/libexec/dovecot/imap-login login_user = dovecot login_process_size = 16 ## ## Mail processes ## # Maximum number of running mail processes. When this limit is reached, # new users aren't allowed to log in. max_mail_processes = 300 verbose_proctitle = yes first_valid_uid = 5000 last_valid_uid = 8000 first_valid_gid = 5000 last_valid_gid = 5100 default_mail_env = maildir:/u/home/%u client_workarounds = oe6-fetch-no-newmail outlook-idle mail_save_crlf = yes maildir_copy_with_hardlinks = yes mbox_locks = fcntl ## IMAP process imap_executable = /usr/local/libexec/dovecot/imap imap_process_size = 256 ## Authentication processes auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = passwd auth_user = root auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ auth_verbose = yes From tsg@cctg.com Tue Feb 10 20:28:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 41C18C00280F; Tue, 10 Feb 2004 20:28:46 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 813DAC002803 for ; Tue, 10 Feb 2004 20:28:44 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id DD9FC239F5; Tue, 10 Feb 2004 20:25:59 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CC2AE239F6; Tue, 10 Feb 2004 20:25:59 +0200 (EET) Received: from tercesi.cctg.com (smtp.cctg.com [66.80.224.100]) by danu.procontrol.fi (Postfix) with ESMTP id A99B7239F5 for ; Tue, 10 Feb 2004 20:25:25 +0200 (EET) Received: from tercesi.cctg.com (localhost [127.0.0.1]) by tercesi.cctg.com (8.12.10/8.12.10/jjb-tercesi) with ESMTP id i1AIPO0T010578 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 10 Feb 2004 10:25:24 -0800 (PST) X-Envelope-From: tsg@cctg.com X-Envelope-To: Received: (from nobody@localhost) by tercesi.cctg.com (8.12.10/8.12.10/Submit) id i1AIPOk4010577; Tue, 10 Feb 2004 10:25:24 -0800 (PST) X-Authentication-Warning: tercesi.cctg.com: nobody set sender to tsg@cctg.com using -f Received: from 66.80.224.60 (SquirrelMail authenticated user tsg9) by tercesi.cctg.com with HTTP; Tue, 10 Feb 2004 10:25:23 -0800 (PST) Message-ID: <1324.66.80.224.60.1076437523.squirrel@tercesi.cctg.com> Date: Tue, 10 Feb 2004 10:25:23 -0800 (PST) From: "Ted S. Garaventa" To: dovecot@procontrol.fi User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Cc: Subject: [Dovecot] Quitting list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: tsg@cctg.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2004 18:28:46 -0000 X-UID: 8663 Status: O I have tried all the methods outlined in the original email received from the list on unsubscribing and none work. Can someone tell me how to unsubscribe. All the links in the email sent to me when I subscribed are broken. From shiva@sewingwitch.com Tue Feb 10 22:41:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EE2EDC00280F; Tue, 10 Feb 2004 22:41:28 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 9BCE5C002803 for ; Tue, 10 Feb 2004 22:41:26 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i1AKcIoP020687 for ; Tue, 10 Feb 2004 15:38:26 -0500 Received: from [10.0.0.221] (CPQ32245280371.dhcp.lsi.lan [10.0.0.221]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i1AKcI0g017555 for ; Tue, 10 Feb 2004 12:38:18 -0800 Date: Tue, 10 Feb 2004 12:38:17 -0800 From: Kenneth Porter To: dovecot@dovecot.org Message-ID: <11685482.1076416697@[10.0.0.221]> X-Mailer: Mulberry/3.1.0 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 Subject: [Dovecot] Mailbox formats X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2004 20:41:29 -0000 X-UID: 8664 Status: O I'm currently using mbox and mbx with UW-IMAP, mbox for space efficiency and mbx for folders with lots of messages for time efficiency without a large space cost. I've avoided maildir because it has a relatively high space cost; mbox has no inter-message cost while maildir wastes on average half a sector plus an inode for each message. What other formats are there, and has anyone come up with a good format that gives both good time and space characteristics without sacrificing reliability? (I'm aware of the file format list in the UW-IMAP distro: ) From shiva@sewingwitch.com Tue Feb 10 23:59:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EBBD9C002803; Tue, 10 Feb 2004 23:59:14 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 0F114C002814 for ; Tue, 10 Feb 2004 23:59:11 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i1ALuOoP007370 for ; Tue, 10 Feb 2004 16:56:24 -0500 Received: from [10.0.0.221] (CPQ32245280371.dhcp.lsi.lan [10.0.0.221]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i1ALuM0g018253 for ; Tue, 10 Feb 2004 13:56:23 -0800 Date: Tue, 10 Feb 2004 13:56:22 -0800 From: Kenneth Porter To: dovecot@dovecot.org Message-ID: <16370088.1076421382@[10.0.0.221]> X-Mailer: Mulberry/3.1.0 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 Subject: [Dovecot] Dovecot and Mulberry X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2004 21:59:15 -0000 X-UID: 8665 Status: O Content-Length: 3651 FYI. Does Dovecot implement BODYSTRUCTURE? An eval copy of Mulberry can be downloaded from . ------------ Forwarded Message ------------ Date: Tuesday, February 10, 2004 6:56 PM +0100 From: Lennart Petersson To: mulberry-discuss@cyrusoft.com Subject: Dovecot and Mulberry I've recently changed my imap-server from Courier to Dovecot for testing purposes and have seen some strange behaviour from Mulberry. Most annoying is that suddenly some incoming mail are parsed wrong, i.e. even if the mail has has proper Content-Type: text/plain; charset="iso-8859-1" and Content-Transfer-Encoding: quoted-printable, it is displayed as 7bit and us-ascii. All these =F6 and so on is irritating. The only way remedy the problem is to quit mulberry and start again and almost always the email is displayed properly. And if the mail that gets misinterpreted is a multi-part email mulberry only reports that it has one part. But if you view the mail in raw all the parts are there. I've yet to see a pattern in then mulberry starts this misinterpretations. Sometimes it is a email from pine or a mail from a mailinglist or from outlook or ... A collegue that also uses dovecot but mutt instead of mulberry doesn't have this problems. Should I blame Dovecot or Mulberry? Anyone one with experience with dovecot (or any other imap-server that supports Maildirs)? Lennart ---------- End Forwarded Message ---------- ------------ Forwarded Message ------------ Date: Tuesday, February 10, 2004 1:12 PM -0500 From: Cyrus Daboo To: Lennart Petersson , mulberry-discuss@cyrusoft.com Subject: Re: Dovecot and Mulberry Hi Lennart, --On Tuesday, February 10, 2004 6:56 PM +0100 Lennart Petersson wrote: | A collegue that also uses dovecot but mutt instead of mulberry doesn't | have this problems. Should I blame Dovecot or Mulberry? | | Anyone one with experience with dovecot (or any other imap-server that | supports Maildirs)? If you see problems with proper interpretation of MIME structure and MIME parameters etc, then it is almost certainly a server bug. Mulberry uses the IMAP server's BODYSTRUCTURE response to determine the MIME structure of a message on the server without having to download the entire message and parse it locally - that is one of the major benefits of IMAP. The details you see listed in the mailbox pane (addresses, subject, attachment types) and the parts listed in the message pane's Parts list are all derived from the server response. If the server gets it wrong, then you will see the incorrect data/structure in Mulberry too. To confirm that it really is a server bug, try copying the message to a local Mulberry mailbox and look at it from the local mailbox. It should appear correctly in that case, because Mulberry will do MIME parsing itself for local messages. To fully diagnose this, put the problem messages in their own IMAP mailbox, then turn protocol logging for IMAP on in Mulberry using and open the mailbox to show the list of message. Then turn logging off and send me (or inspect yourself) the log files. NB Clients that do not take advantage of IMAP's benefits by using BODYSTRUCTURE (and other similar features) will not 'expose' the server bug as they never use that data from the server. PS Getting the BODYSTRUCTURE response wrong is the most common server bug that we see - particularly in relatively new servers. -- Cyrus Daboo ---------- End Forwarded Message ---------- From andrew@mux.org.uk Wed Feb 11 01:39:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AEDD1C002802; Wed, 11 Feb 2004 01:39:28 +0200 (EET) Received: from 82-41-27-158.cable.ubr04.edin.blueyonder.co.uk (82-41-27-158.cable.ubr04.edin.blueyonder.co.uk [82.41.27.158]) by talvi.dovecot.org (Postfix) with ESMTP id 4C8BAC000D9D for ; Wed, 11 Feb 2004 01:39:26 +0200 (EET) Received: from mux.org.uk (spatula.flat [192.168.0.2]) by myriad.flat (Postfix) with ESMTP id 0BAB8BC; Tue, 10 Feb 2004 22:26:50 +0000 (GMT) Message-ID: <40296B35.1020904@mux.org.uk> Date: Tue, 10 Feb 2004 23:37:25 +0000 From: Andrew Boothman User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: jamie@tridentmicrosystems.co.uk Subject: Re: [Dovecot] Dovecot on FreeBSD 4.9 - "Invalid Password Field" References: <003c01c3f001$281da1d0$3e64a8c0@m0ng> In-Reply-To: <003c01c3f001$281da1d0$3e64a8c0@m0ng> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2004 23:39:28 -0000 X-UID: 8666 Status: O Jamie Heckford wrote: > Hi, Hi Jamie! > I am attempting to get dovecot up and running on FreeBSD 4.9..... Tried > with the default config file and my own one (below) but when trying to > login I get the following: > > Feb 10 17:59:53 cobain dovecot-auth: passwd(jamie): invalid password > field '*' > > It seems like it is trying to read straight from /etc/passwd? I thought > it called getpw(). I'm running Dovecot on FreeBSD 4.9 no problem. I've not done anything special to the authentication options in the config file so perhaps you have done something funky to them? Are you sure that your 'jamie' account actually has a password set? Andrew From XORA@telefonica.net Wed Feb 11 02:50:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 88FC7C00280A; Wed, 11 Feb 2004 02:50:32 +0200 (EET) Received: from tnetsmtp2.mail.isp (smtp.telefonica.net [213.4.129.135]) by talvi.dovecot.org (Postfix) with ESMTP id D442CC002803 for ; Wed, 11 Feb 2004 02:50:29 +0200 (EET) Received: from telefonica.net ([80.32.119.223]) by tnetsmtp2.mail.isp (terra.es) with ESMTP id HSWA7J00.V5Q for ; Wed, 11 Feb 2004 01:47:43 +0100 Message-ID: <40297C7D.10003@telefonica.net> Date: Wed, 11 Feb 2004 01:51:09 +0100 From: =?ISO-8859-1?Q?Xavier_Ordu=F1a?= User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.83.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] How to use Mysql Patch X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Feb 2004 00:50:32 -0000 X-UID: 8667 Status: O Hi Sorry to post something that could be trivial, But how I apply the patch to use Mysql? Or is better that I wait to the new version? How long it will take to see the version with the patch inside? I have thinked about to use (vpopmail with MySql)+Dovecot. What about this option? Thanks a lot Xavi From david@madole.net Wed Feb 11 03:06:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 76769C00280B; Wed, 11 Feb 2004 03:06:35 +0200 (EET) Received: from box1.omd3.com (box1.omd3.com [69.46.19.120]) by talvi.dovecot.org (Postfix) with ESMTP id 4367AC00280A for ; Wed, 11 Feb 2004 03:06:33 +0200 (EET) Received: from ip-209-54-72-175.ct.dsl.ntplx.com ([209.54.72.175] helo=david)by box1.omd3.com with asmtp (Exim 4.30)id 1AqimA-000H6Y-1X; Tue, 10 Feb 2004 20:02:50 -0500 Message-ID: <018301c3f03a$c5fce300$e3e7a8c0@david> From: "David S. Madole" To: Xavier Orduña , References: <40297C7D.10003@telefonica.net> Subject: Re: [Dovecot] How to use Mysql Patch Date: Tue, 10 Feb 2004 20:02:50 -0500 MIME-Version: 1.0 Content-Type: text/plain;charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Feb 2004 01:06:35 -0000 X-UID: 8668 Status: O > From: "Xavier Orduña" > Sent: Tuesday, February 10, 2004 7:51 PM > > Sorry to post something that could be trivial, But how I apply the patch > to use Mysql? I posted an updated version of Matthew Reimer's patch in December, you can find it along with the command I use to compile it under FreeBSD in the mailing list archives at: http://dovecot.org/list/dovecot/2003-December/002738.html David ______________________________________________________________________________ This email is spam and virus free. Mail filtering solutions by http://omd3.com Expert computer support and development services by http://baysidenetworks.com From kalle-e@medelklassen.com Wed Feb 11 05:06:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0D51DC00280B; Wed, 11 Feb 2004 05:06:30 +0200 (EET) Received: from mxfep01.bredband.com (mxfep01.bredband.com [195.54.107.70]) by talvi.dovecot.org (Postfix) with ESMTP id 1E431C002804 for ; Wed, 11 Feb 2004 05:06:28 +0200 (EET) Received: from c-1ed172d5.024-3-73746f28.cust.bredbandsbolaget.se ([213.114.209.30] [213.114.209.30]) by mxfep01.bredband.com with ESMTP id <20040211030332.FIWC14375.mxfep01.bredband.com@c-1ed172d5.024-3-73746f28.cust.bredbandsbolaget.se> for ; Wed, 11 Feb 2004 04:03:32 +0100 From: Karl Eklund To: dovecot@dovecot.org Date: Wed, 11 Feb 2004 04:03:31 +0100 User-Agent: KMail/1.6 MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200402110403.31210.kalle-e@medelklassen.com> Subject: [Dovecot] The problem is in the folder, not in the messages X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Feb 2004 03:06:30 -0000 X-UID: 8669 Status: O About my problem with "dovecot crashes on certain spam messages", I have found that deleting the mail it is working on when it crashes just makes it crash on some other message, but deleting .imap.index.* from the directory of the folder in question makes everything good again. From jwt@qth.ath.cx Wed Feb 11 06:52:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 18AA2C002801; Wed, 11 Feb 2004 06:52:42 +0200 (EET) Received: from qth.ath.cx (usen-221x115x224x2.ap-US01.usen.ad.jp [221.115.224.2]) by talvi.dovecot.org (Postfix) with ESMTP id D6042C002800 for ; Wed, 11 Feb 2004 06:52:39 +0200 (EET) Received: from jwt by qth.ath.cx with local (Exim 4.30) id 1AqmJs-00041w-Bt for dovecot@dovecot.org; Wed, 11 Feb 2004 13:49:52 +0900 Date: Wed, 11 Feb 2004 13:49:52 +0900 From: Jim Tittsler To: dovecot@dovecot.org Subject: Re: [Dovecot] Quitting list Message-ID: <20040211044952.GC15287@server.onjapan.net> References: <1324.66.80.224.60.1076437523.squirrel@tercesi.cctg.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1324.66.80.224.60.1076437523.squirrel@tercesi.cctg.com> User-Agent: Mutt/1.4.1i Organization: 7J1AJH/AI8A Tokyo X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Feb 2004 04:52:42 -0000 X-UID: 8670 Status: O On Tue, Feb 10, 2004 at 10:25:23AM -0800, Ted S. Garaventa wrote: > Can someone tell me how to unsubscribe. All the links in the email sent > to me when I subscribed are broken. The current information is in the headers of each message sent to the list: List-Unsubscribe: , List-Archive: List-Post: List-Help: From XORA@telefonica.net Wed Feb 11 17:22:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7D67CC002802; Wed, 11 Feb 2004 17:22:27 +0200 (EET) Received: from tnetsmtp2.mail.isp (smtp.telefonica.net [213.4.129.135]) by talvi.dovecot.org (Postfix) with ESMTP id 50F0CC002801 for ; Wed, 11 Feb 2004 17:22:25 +0200 (EET) Received: from telefonica.net ([80.32.119.223]) by tnetsmtp2.mail.isp (terra.es) with ESMTP id HSXEKO00.C11 for ; Wed, 11 Feb 2004 16:19:37 +0100 Message-ID: <402A48D7.4030509@telefonica.net> Date: Wed, 11 Feb 2004 16:23:03 +0100 From: =?ISO-8859-1?Q?Xavier_Ordu=F1a?= User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.83.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Configuring MySql Patch X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Feb 2004 15:22:27 -0000 X-UID: 8671 Status: O Hi! I have installed the patch, compiled and installed Dovecot. But how I modify the dovecot.conf to use it? I've been searching in the mailing list archive but I did'nt find anything. Thanks. Xavi From david@madole.net Wed Feb 11 17:28:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D1F45C002802; Wed, 11 Feb 2004 17:28:41 +0200 (EET) Received: from box1.omd3.com (box1.omd3.com [69.46.19.120]) by talvi.dovecot.org (Postfix) with ESMTP id 97E19C002801 for ; Wed, 11 Feb 2004 17:28:39 +0200 (EET) Received: from ip-209-54-72-175.ct.dsl.ntplx.com ([209.54.72.175] helo=david)by box1.omd3.com with asmtp (Exim 4.30)id 1AqwFL-0000Qc-Dt; Wed, 11 Feb 2004 10:25:51 -0500 Message-ID: <005501c3f0b3$55ad2a50$e3e7a8c0@david> From: "David S. Madole" To: Xavier Orduña , References: <402A48D7.4030509@telefonica.net> Subject: Re: [Dovecot] Configuring MySql Patch Date: Wed, 11 Feb 2004 10:25:50 -0500 MIME-Version: 1.0 Content-Type: text/plain;charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Feb 2004 15:28:42 -0000 X-UID: 8672 Status: O > From: "Xavier Orduña" > Sent: Wednesday, February 11, 2004 10:23 AM > > I have installed the patch, compiled and installed Dovecot. > > But how I modify the dovecot.conf to use it? Look in your Dovecot directory, you will now find a file name "dovecot-mysql.conf" that gives configuration examples, just like the original example file for PostgreSQL. Dovecot is still kind of in an experimental phase, and adding outside patches only makes it more so. If you're not very comfortable with your software installation and debugging skills it might be a good idea to wait for a release version, or at least stick with RPMs or the like where someone else has already worked through some of the details. Dave ______________________________________________________________________________ This email is spam and virus free. Mail filtering solutions by http://omd3.com Expert computer support and development services by http://baysidenetworks.com From lists@pote.com Wed Feb 11 17:40:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 68F36C002802; Wed, 11 Feb 2004 17:40:34 +0200 (EET) Received: from bittern.mail.pas.earthlink.net (bittern.mail.pas.earthlink.net [207.217.120.119]) by talvi.dovecot.org (Postfix) with ESMTP id 612DEC002801 for ; Wed, 11 Feb 2004 17:40:31 +0200 (EET) Received: from user-0ccemou.cable.mindspring.com ([24.199.91.30] helo=tarsier.pote.com) by bittern.mail.pas.earthlink.net with smtp (Exim 3.33 #1) id 1AqwRd-0005Si-00 for dovecot@dovecot.org; Wed, 11 Feb 2004 07:38:33 -0800 Received: (qmail 23553 invoked from network); 11 Feb 2004 15:37:28 -0000 Received: from unknown (HELO tarsier.pote.com) (eater@192.168.50.105) by 192.168.50.105 with SMTP; 11 Feb 2004 10:37:28 -0500 Date: Wed, 11 Feb 2004 10:37:28 -0500 (EST) From: Paul Adams X-X-Sender: Paul Adams To: dovecot@dovecot.org In-Reply-To: <20040210204133.A33E8C00281D@talvi.dovecot.org> Message-ID: References: <20040210204133.A33E8C00281D@talvi.dovecot.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] X-UID X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Feb 2004 15:40:34 -0000 X-UID: 8673 Status: O What is the function of the X-UID header in mbox format? Mozilla Thunderbird 0.5 seems to regard it as a simple numbering of the messages; i.e., that the first message in the mbox should have X-UID: 1. Dovecot seems to treat it simply as an ordered unique identifier. Thus, the first message in my actual mbox has X-UID: 3849658. (There are only a few dozen messages in the box.) Running Thunderbird 0.5 against a Dovecot IMAP server with mbox format, Thunderbird displays these UID numbers in the message list, which is fairly useless -- I want a numbered list of my messages starting at 1 (which Pine, for example, is happy to provide). I'm just wondering whether this is Dovecot's fault, Thunderbird's fault, or an ambiguity in the mbox standard. thanks, Paul From m_pahlevanzadeh@yahoo.com Thu Feb 12 15:59:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 28699C002801; Thu, 12 Feb 2004 15:59:26 +0200 (EET) Received: from web21407.mail.yahoo.com (web21407.mail.yahoo.com [216.136.232.77]) by talvi.dovecot.org (Postfix) with SMTP id 97323C000D9B for ; Thu, 12 Feb 2004 15:59:23 +0200 (EET) Message-ID: <20040212135618.55922.qmail@web21407.mail.yahoo.com> Received: from [81.31.160.4] by web21407.mail.yahoo.com via HTTP; Thu, 12 Feb 2004 05:56:18 PST Date: Thu, 12 Feb 2004 05:56:18 -0800 (PST) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] dovecot-IMAP-SSL-StartUp X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Feb 2004 13:59:26 -0000 X-UID: 8674 Status: O Content-Length: 1604 Hi everybody. I downloaded RPM of dovecot for RH9. & i installed it with "rpm -ivh ThatFILE.rpm" then i ran "service dovecot start" & i receiving following lines: Starting IMAP daemon (dovecot): Fatal: Can't use SSL certificate /usr/share/ssl/certs/dovecot.pem: No such file or directory [FAILED] Then i go to /usr/share/ssl/certs/ & i ran make dovecot.pem then i ran "service dovecot start" & i received following lines: Starting IMAP daemon (dovecot): Fatal: Can't use SSL key file /usr/share/ssl/private/dovecot.pem: No such file or directory [FAILED] Then i ran "cp /usr/share/ssl/certs/dovecot.pem /usr/share/ssl/private/" Then i ran "service dovecot start" & i received following lines: Starting IMAP daemon (dovecot): [ OK ] But i after it,I ran "service dovecot status" & i received following line: dovecot dead but subsys locked Please guide me...... Yours,Mohsen. ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html From rjohnson@medata.com Thu Feb 12 19:15:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 13684C002804; Thu, 12 Feb 2004 19:15:35 +0200 (EET) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id 589E7C002802 for ; Thu, 12 Feb 2004 19:15:32 +0200 (EET) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i1CHCeBv006746 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 12 Feb 2004 09:12:40 -0800 Message-ID: <402BB409.5000304@medata.com> Date: Thu, 12 Feb 2004 09:12:41 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Pahlevanzadeh Mohsen Subject: Re: [Dovecot] dovecot-IMAP-SSL-StartUp References: <20040212135618.55922.qmail@web21407.mail.yahoo.com> In-Reply-To: <20040212135618.55922.qmail@web21407.mail.yahoo.com> X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Feb 2004 17:15:35 -0000 X-UID: 8675 Status: O Content-Length: 1312 Pahlevanzadeh Mohsen wrote: > Starting IMAP daemon (dovecot): Fatal: Can't use SSL > certificate /usr/share/ssl/certs/dovecot.pem: No such > file or directory > > [FAILED] > > Then i go to /usr/share/ssl/certs/ & i ran make > dovecot.pem > then i ran "service dovecot start" & i received > following lines: > Starting IMAP daemon (dovecot): Fatal: Can't use SSL > key file /usr/share/ssl/private/dovecot.pem: No such > file or directory > > [FAILED] > Then i ran "cp /usr/share/ssl/certs/dovecot.pem > /usr/share/ssl/private/" > Then i ran "service dovecot start" & i received > following lines: > Starting IMAP daemon (dovecot): > [ OK ] > But i after it,I ran "service dovecot status" & i > received following line: > dovecot dead but subsys locked Your private key (pem) within private cannot contain a password. Google "openssl unlock private key" to find out how to unlock it. Then you should be okay. Also, please check /var/log/messages and /var/log/maillog for further details. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From XORA@telefonica.net Thu Feb 12 21:27:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 52C05C002804; Thu, 12 Feb 2004 21:27:01 +0200 (EET) Received: from tnetsmtp1.mail.isp (smtp.telefonica.net [213.4.129.135]) by talvi.dovecot.org (Postfix) with ESMTP id C970EC002802 for ; Thu, 12 Feb 2004 21:26:58 +0200 (EET) Received: from telefonica.net ([80.32.119.223]) by tnetsmtp1.mail.isp (terra.es) with ESMTP id HSZKJS00.M54 for ; Thu, 12 Feb 2004 20:23:52 +0100 Message-ID: <402BD394.2040209@telefonica.net> Date: Thu, 12 Feb 2004 20:27:16 +0100 From: =?ISO-8859-1?Q?Xavier_Ordu=F1a?= User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Error While compiling with the Mysql patch X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Feb 2004 19:27:01 -0000 X-UID: 8676 Status: O Hi! When I'm trying to compile the source-code I get this error message: mycrypt.o: In function `mycrypt': /root/soft/dovecot-0.99.10.4/src/auth/mycrypt.c:11: undefined reference to `crypt' /usr/local/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_compress_alloc': my_compress.o(.text+0xb4): undefined reference to `compress' /usr/local/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_uncompress': my_compress.o(.text+0x12a): undefined reference to `uncompress' I Included the FLAGS: AUTH_CFLAGS="-I/usr/local/include/mysql -DPASSDB_MYSQL -DUSERDB_MYSQL" \ AUTH_LIBS="-L/usr/local/lib/mysql -lmysqlclient" \ Before to compile, and I'm using a Debian woody. Do you know what happens? Thanks Xavi From maikel@ladot.com Fri Feb 13 10:20:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D1073C002802; Fri, 13 Feb 2004 10:20:31 +0200 (EET) Received: from amsfep13-int.chello.nl (amsfep13-int.chello.nl [213.46.243.24]) by talvi.dovecot.org (Postfix) with ESMTP id 98DD9C002801 for ; Fri, 13 Feb 2004 10:20:29 +0200 (EET) Received: from myst.dohd.org ([62.195.154.6]) by amsfep13-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040213081738.BWMN7823.amsfep13-int.chello.nl@myst.dohd.org>; Fri, 13 Feb 2004 09:17:38 +0100 Received: from [172.31.5.17] ([217.22.64.89]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i1D8HPOH055172; Fri, 13 Feb 2004 09:17:29 +0100 (CET) (envelope-from maikel@ladot.com) In-Reply-To: <402BD394.2040209@telefonica.net> References: <402BD394.2040209@telefonica.net> Mime-Version: 1.0 (Apple Message framework v612) Content-Type: text/plain; charset=ISO-8859-1; format=flowed Message-Id: <0AFF9784-5DFD-11D8-A827-000A95C5F82C@ladot.com> Content-Transfer-Encoding: quoted-printable From: Maikel Verheijen Subject: Re: [Dovecot] Error While compiling with the Mysql patch Date: Fri, 13 Feb 2004 09:17:20 +0100 To: =?ISO-8859-1?Q?Xavier_Ordu=F1a?= X-Mailer: Apple Mail (2.612) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Feb 2004 08:20:32 -0000 X-UID: 8677 Status: O Content-Length: 1126 Hi Xavier, On Feb 12, 2004, at 8:27 PM, Xavier Ordu=F1a wrote: > Hi! > > When I'm trying to compile the source-code I get this error message: > > mycrypt.o: In function `mycrypt': > /root/soft/dovecot-0.99.10.4/src/auth/mycrypt.c:11: undefined=20 > reference to `crypt' This can be solved by adding "-lcrypt" to your AUTH_LIBS variable. > /usr/local/lib/mysql/libmysqlclient.a(my_compress.o): In function=20 > `my_compress_alloc': > my_compress.o(.text+0xb4): undefined reference to `compress' > /usr/local/lib/mysql/libmysqlclient.a(my_compress.o): In function=20 > `my_uncompress': > my_compress.o(.text+0x12a): undefined reference to `uncompress' > I haven't tried to compile dovecot with the mysql patch, so I don't=20 know for sure, but it MIGHT be working after you added the -lcrypt, and=20= do a "make" again. > > I Included the FLAGS: > > AUTH_CFLAGS=3D"-I/usr/local/include/mysql -DPASSDB_MYSQL = -DUSERDB_MYSQL"=20 > \ > AUTH_LIBS=3D"-L/usr/local/lib/mysql -lmysqlclient" \ > > Before to compile, and I'm using a Debian woody. > > Do you know what happens? > > Thanks > > Xavi > Regards, Maikel Verheijen. From camis@mweb.co.za Fri Feb 13 15:27:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 91CBDC002802; Fri, 13 Feb 2004 15:27:17 +0200 (EET) Received: from quake.mweb.co.za (quake.mweb.co.za [196.2.45.85]) by talvi.dovecot.org (Postfix) with ESMTP id A6FAFC002801 for ; Fri, 13 Feb 2004 15:27:14 +0200 (EET) Received: from net-49-138.mweb.co.za ([196.2.49.138]:2057 helo=mweb.co.za) by quake.mweb.co.za with esmtp (Exim 4.24) id 1ArdIf-00018m-Af for dovecot@dovecot.org; Fri, 13 Feb 2004 15:24:09 +0200 Message-ID: <402CD055.3030308@mweb.co.za> Date: Fri, 13 Feb 2004 15:25:41 +0200 From: Cami User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org References: <3FD843E2.6010105@mweb.co.za> <001b01c3bfec$eaf35af0$e3e7a8c0@david> In-Reply-To: <001b01c3bfec$eaf35af0$e3e7a8c0@david> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] dovecot + large isp X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Feb 2004 13:27:17 -0000 X-UID: 8678 Status: O Hi Guys.. Is anyone here using dovecot with over 300 000 mailboxes? Regards, Cami From hz@hzlabs.de Fri Feb 13 18:34:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1747EC002802; Fri, 13 Feb 2004 18:34:15 +0200 (EET) Received: from mail.hzlabs.de (ns.km1308.keymachine.de [62.141.54.142]) by talvi.dovecot.org (Postfix) with ESMTP id 2CD37C002801 for ; Fri, 13 Feb 2004 18:34:13 +0200 (EET) Received: from c-134-68-128.a.dial.de.ignite.net ([62.134.68.128]) by mail.hzlabs.de with asmtp (Exim 4.30) id 1ArgDi-0004ds-Fw for dovecot@dovecot.org; Fri, 13 Feb 2004 17:31:14 +0100 Date: Fri, 13 Feb 2004 17:24:35 +0100 From: Helmut Zeilinger To: dovecot@dovecot.org Message-ID: <1950000.1076689475@localhost> X-Mailer: Mulberry/3.1.0 (Linux/x86) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: [Dovecot] auth_executable X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Feb 2004 16:34:15 -0000 X-UID: 8679 Status: O Hi, i am new to dovecot and i don't know what i can do with the "auth_executable" setting in the "dovecot.conf" file. Can i invoke an external program for authentification? If yes, is there a description what this program/script has to do? Thanks Helmut From asmoore@edge.net Fri Feb 13 20:39:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id ED467C000D9D; Fri, 13 Feb 2004 20:39:15 +0200 (EET) Received: from rwcrmhc13.comcast.net (rwcrmhc13.comcast.net [204.127.198.39]) by talvi.dovecot.org (Postfix) with ESMTP id 6712EC000D9B for ; Fri, 13 Feb 2004 20:39:13 +0200 (EET) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (rwcrmhc13) with ESMTP id <20040213183614015000l56pe>; Fri, 13 Feb 2004 18:36:14 +0000 Received: from sws602 (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.10+Sun/8.12.10) with SMTP id i1DIaEWw023601 for ; Fri, 13 Feb 2004 12:36:14 -0600 (CST) Date: Fri, 13 Feb 2004 12:36:13 -0600 From: Alex S Moore To: Dovecot Message-Id: <20040213123613.12a71aad@sws602> X-Mailer: Sylpheed version 0.9.9claws8 (GTK+ 1.2.10; sparc-sun-solaris2.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 'clamd / ClamAV version devel-20040210', clamav-milter version '0.66m' Subject: [Dovecot] RE: Question on folders X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Feb 2004 18:39:16 -0000 X-UID: 8680 Status: O I have read and read the dovecot docs on maildir folders and think that this is what I want. However, the MUA programs that I use, SylpheedClaws, Evolution, Mozilla seem to react differently to how I setup the folders. Is there a good FAQ on this subject somewhere? I think that I want to setup a virtual domain and am looking for documents. Alex From rjohnson@medata.com Fri Feb 13 20:47:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 92E47C002801; Fri, 13 Feb 2004 20:47:32 +0200 (EET) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id E0B6BC000D9B for ; Fri, 13 Feb 2004 20:47:29 +0200 (EET) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i1DIiYBv003771 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 13 Feb 2004 10:44:34 -0800 Message-ID: <402D1B14.1080407@medata.com> Date: Fri, 13 Feb 2004 10:44:36 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot Subject: Re: [Dovecot] RE: Question on folders References: <20040213123613.12a71aad@sws602> In-Reply-To: <20040213123613.12a71aad@sws602> X-Enigmail-Version: 0.83.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Feb 2004 18:47:32 -0000 X-UID: 8681 Status: O Alex S Moore wrote: > I have read and read the dovecot docs on maildir folders and think that > this is what I want. However, the MUA programs that I use, SylpheedClaws, > Evolution, Mozilla seem to react differently to how I setup the folders. I can comment that unless you're using a Trunk build of Mozilla or Thunderbird, you will have problems with customflags and Maildir with dovecot. The problem I experience is that label flags are not replaced, but added - and cannot be removed. Other than that, Mozilla seems to work just fine. I've got 50+ users using Mozilla or Thunderbird, with another 100+ on the way from being converted from POP3/Eudora. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From nic@bellamy.co.nz Sat Feb 14 12:41:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EB9D1C000D9D; Sat, 14 Feb 2004 12:41:52 +0200 (EET) Received: from mail.wibble.net (wibble.net [210.55.12.113]) by talvi.dovecot.org (Postfix) with ESMTP id 6EAA4C000D9B for ; Sat, 14 Feb 2004 12:41:46 +0200 (EET) Received: from 219-89-132-46.jetstart.xtra.co.nz ([219.89.132.46] helo=router.bellamy.co.nz) by mail.wibble.net with asmtp (Exim 4.30) id 1ArxCC-0005Kp-SO for dovecot@dovecot.org; Sat, 14 Feb 2004 23:38:48 +1300 Received: from skyelar.bellamy.co.nz ([192.168.1.1] helo=localhost.localdomain) by router.bellamy.co.nz with esmtp (Exim 3.35 #1 (Debian)) id 1ArxCC-0001er-00 for ; Sat, 14 Feb 2004 23:38:48 +1300 From: Nic Bellamy To: dovecot@dovecot.org Content-Type: multipart/mixed; boundary="=-XKeIseSTZYqL82wQt6Ms" X-Mailer: Ximian Evolution 1.0.5 Date: 14 Feb 2004 23:38:47 +1300 Message-Id: <1076755128.25963.1017.camel@skyelar> Mime-Version: 1.0 X-SA-Do-Not-Run: Yes X-SA-Exim-Mail-From: nic@bellamy.co.nz X-SA-Exim-Scanned: No; SAEximRunCond expanded to false Subject: [Dovecot] [PATCH] POP3: Fix RFC1939 non-compliance in STAT, LIST and UIDL commands X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 10:41:53 -0000 X-UID: 8682 Status: O Content-Length: 3340 --=-XKeIseSTZYqL82wQt6Ms Content-Type: text/plain Content-Transfer-Encoding: 7bit Hi all, attached is a patch against 0.99.10.4 that fixes the STAT, LIST and UIDL POP3 command output in the case that they're issued after one or more messages have been deleted. Examples of incorrect behavior (bad spots marked with '***') C: STAT S: +OK 2 806 C: LIST S: +OK 2 messages: S: 1 403 S: 2 403 S: . C: UIDL S: +OK S: 1 1076749908.12 S: 2 1076749908.13 S: . C: DELE 1 S: +OK Marked to be deleted. C: STAT *** S: +OK 2 806 C: LIST *** S: +OK 2 messages: *** S: 1 403 S: 2 403 S: . C: UIDL S: +OK *** S: 1 1076749908.12 S: 2 1076749908.13 S: . What it should have been is: [snip] C: DELE 1 S: +OK Marked to be deleted. C: STAT S: +OK 1 403 C: LIST S: +OK 1 messages: S: 2 403 S: . C: UIDL S: +OK S: 2 1076749908.13 S: . It's unlikely the above issue has been causing much in the way of problems, as it's very rare for mail clients to use any of the faulty commands after they've deleted messages (they tend to do it once at the beginning of the POP3 session and cache the results). Regards, Nic. -- Nic Bellamy Bellamy Consulting -- Software & Security -- http://www.bellamy.co.nz/ -- Phone: +64-6-377-4957 Fax: +64-6-377-0505 Mobile: +64-21-251-8954 -- --=-XKeIseSTZYqL82wQt6Ms Content-Disposition: attachment; filename=stat-list-uidl-rfc1939-compliance.patch.gz Content-Type: application/x-gzip; name=stat-list-uidl-rfc1939-compliance.patch.gz Content-Transfer-Encoding: base64 H4sICM7zLUAAA3N0YXQtbGlzdC11aWRsLXJmYzE5MzktY29tcGxpYW5jZS5wYXRjaADNV21vo0YQ /ox/xdRScsaAA8aJY+flLq0ubXTJXRU7qtQ2QgTW9upsSNklzbXNf+++gcEGx1ZUqZECYnd2Xp55 dmYc4skErCR9/Axh/ISCmFp2ZzDoOHan14kTPD0gSXDwGD+6B8Eco4h2gnXBdZmGZVlbK9TGKYIb /xt0+2C7w25/6LjQtW23YRjGNta0kU/hEj2A04OuO7QHQ7vPFfQaHz6AdeiaR2CwZx/YJ6E+xQHg iLJ/TL2Fj+cP8XOL0CQNKEiV0A4aoL00gD3linW+QIT4U0S8IE6ZxJnQlJJOtn7SMHLZEM0RRaFH 8F+ISdonBT0pDp/8OQ4x/bZUUlg8EVbxBFp1lplCXUTWt3lkfWfnyFRouU80pv684K2hbQxFmzDV KGSflxfXo49i6c8ZW4JWi1tlG7nv0gnrfIJoMPMi9ExbAX3WdfjuDD7fXV/r8Dc/rqXxZOJRUGb4 Met8iqiwK5TqJ41wZ7LOtqDPbBeyzrTxLIWLxwScjKz24S5knW0mq3NkDsBgT8eROS3mjiOVRgRP IwY+z/ODH0pSoETSprRb5g3Pamk7y6zaXTlcZmSWnrbSKdJCChtLBgk7crHInRX/gpmfQDsTeMB0 4ZOvXGaXHMeLhR+F5JWSlEttl+dcXPuF+SnK0jFPlMPK0paZXqrYnGu7x+8vfx2vXOBgEXocnLXL y99rpWkFxt8WZBqlCziAH366uPW+vxrfwz9n4MDpKbTU3l6+p1cVLsEJw6itaUbhhhcZoUzfLwue R1AUenMcIVXPTGgaXz4xYJOvDF8awwPKiNJp6vxggmiaRDC+veOl5UVi5fRMx2ZgsavRdSrQmmNC a9BS5bTtJ1PCq+e73+13quxs9nEvze/QsGk2LFamtNW41e1ijrPtSZxAC4syCRhOa2TZnmFwB7jC eg+Y9b3mz7dX6d2Xy0tvrOxr7LBj1qCP70U2690ECypTLY8Vm47a5m5yhTtGJnyoUJdTFJfYua+c Zn8tSVNcZKieq9SCOKI4SpEK80W+dgBRqtkORaH9BdCcoDfA8J85B+pRb0BdqDwEfpPcrpiHXPeo suokBNXdozp+wNq0UJoMFmjBddYwwQTbhJvRjyOe6ZuL0SdvdPXrRyWt65WzSDaBvT6pFOtkzS3n EAlc3C6bowy3198VlxVJ/lkpyQwy+hKqmp8oR57nU5p4aZQS5rqnNwSer5alEm1ypogKsdL2l7vL Fq0YBNvVBknLCjUVB5T29RoOEuPDvuBevzyMP8U4BF7APTZ1kArsmEK1KMbLNn+KFlOAMwsGiVmG J2PCvC9Q0RCLskFtNWTD/n4GkRq6GZtlYIoy/S6f0wz3eGB2dw0o1yRZar1pgrY2VIFiCPBedTFR e9LOXtqE4ZJVYiFrdHIGJ+iPJYUKQ6Gp9tlS1vsk2jLlxoZm8pZAORXVCHO29JAx0ZGc3tRzKsYi 1Xi0Vt1wtGw95c4jG8+2mEsjm0FXMq+gXhaT4MvGVEZfOFhsXW8F/X8dalboW/zi6TWxhYj/LObR mTKyk8a/erNf4v4QAAA= --=-XKeIseSTZYqL82wQt6Ms-- From tom@replic8.net Sat Feb 14 15:42:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C3E23C002800; Sat, 14 Feb 2004 15:42:59 +0200 (EET) Received: from rpd.dyn.hannover.ccc.de (p508600A9.dip0.t-ipconnect.de [80.134.0.169]) by talvi.dovecot.org (Postfix) with ESMTP id CE57AC000D9B for ; Sat, 14 Feb 2004 15:42:57 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by rpd.dyn.hannover.ccc.de (Postfix) with ESMTP id 53BCB41689; Sat, 14 Feb 2004 13:39:56 +0000 (GMT) Received: from rpd.dyn.hannover.ccc.de ([192.168.100.101]) by localhost (commbox.rpdnet.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 24543-01; Sat, 14 Feb 2004 13:39:07 +0000 (GMT) Received: from localhost (server.rpdnet.com [192.168.100.100]) by rpd.dyn.hannover.ccc.de (Postfix) with ESMTP id 134B341687; Sat, 14 Feb 2004 13:39:06 +0000 (GMT) Received: from port-212-202-25-41.reverse.qsc.de (port-212-202-25-41.reverse.qsc.de [212.202.25.41]) by routine.dyn.hannover.ccc.de (IMP) with HTTP for ; Sat, 14 Feb 2004 13:38:44 +0000 Message-ID: <1076765924.402e24e40be16@routine.dyn.hannover.ccc.de> Date: Sat, 14 Feb 2004 13:38:44 +0000 From: tom@replic8.net To: Alex S Moore Subject: Re: [Dovecot] RE: Question on folders References: <20040213123613.12a71aad@sws602> In-Reply-To: <20040213123613.12a71aad@sws602> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.2 / FreeBSD-4.9 X-Virus-Scanned: by amavisd-new Cc: Dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 13:42:59 -0000 X-UID: 8683 Status: O hi, > I have read and read the dovecot docs on maildir folders and think that > this is what I want. However, the MUA programs that I use, SylpheedClaws, > Evolution, Mozilla seem to react differently to how I setup the folders. i also experienced strange and/or diffrent behaviours from MUAs with Maildir based folders, but i've never seen any logic. just not enough time to trace the problem. i'm trying to get some results with some MUAs and dovecot from cvs, soon. From m_pahlevanzadeh@yahoo.com Sat Feb 14 16:57:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5E0AEC002801; Sat, 14 Feb 2004 16:57:05 +0200 (EET) Received: from web21408.mail.yahoo.com (web21408.mail.yahoo.com [216.136.232.78]) by talvi.dovecot.org (Postfix) with SMTP id D4288C002800 for ; Sat, 14 Feb 2004 16:57:00 +0200 (EET) Message-ID: <20040214145351.25438.qmail@web21408.mail.yahoo.com> Received: from [217.218.127.71] by web21408.mail.yahoo.com via HTTP; Sat, 14 Feb 2004 06:53:51 PST Date: Sat, 14 Feb 2004 06:53:51 -0800 (PST) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] SOS X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 14:57:05 -0000 X-UID: 8684 Status: O Hi,When i run "service dovecot start",I receive following line: Starting IMAP daemon (dovecot): Fatal: Can't use SSL key file /usr/share/ssl/private/dovecot.pem: No such file or directory [FAILED] Please guide me until i can make a key file.... Yours,Mohsen. ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html From keith@midnighthax.com Sat Feb 14 17:00:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 31179C002802; Sat, 14 Feb 2004 17:00:14 +0200 (EET) Received: from gs001.rg2.tiger-computing.com (unknown [81.168.16.33]) by talvi.dovecot.org (Postfix) with ESMTP id 363B6C002800 for ; Sat, 14 Feb 2004 17:00:12 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by gs001.rg2.tiger-computing.com (Postfix) with ESMTP id 1C78E42F3D for ; Sat, 14 Feb 2004 14:57:18 +0000 (GMT) Received: from gs001.rg2.tiger-computing.com ([127.0.0.1]) by localhost (gs001.rg2.tiger-computing.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 32703-02 for ; Sat, 14 Feb 2004 14:57:17 +0000 (GMT) Received: from zaphod.rg2.tiger-computing.com (zaphod.rg2.tiger-computing.com [10.0.0.100]) by gs001.rg2.tiger-computing.com (Postfix) with SMTP id 1472842F06 for ; Sat, 14 Feb 2004 14:57:17 +0000 (GMT) Date: Sat, 14 Feb 2004 14:57:16 +0000 From: Keith Edmunds To: dovecot@dovecot.org Subject: Re: [Dovecot] SOS Message-Id: <20040214145716.20866c7d@zaphod.rg2.tiger-computing.com> In-Reply-To: <20040214145351.25438.qmail@web21408.mail.yahoo.com> References: <20040214145351.25438.qmail@web21408.mail.yahoo.com> X-Mailer: Sylpheed version 0.9.9claws5 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gs001.rg2.tiger-computing.com X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 15:00:14 -0000 X-UID: 8685 Status: O On Sat, 14 Feb 2004 06:53:51 -0800 (PST) Pahlevanzadeh Mohsen wrote: > Please guide me until i can make a key file.... dovecot.conf: ssl_disable = yes Keith From m_pahlevanzadeh@yahoo.com Sat Feb 14 17:08:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D30ABC002803; Sat, 14 Feb 2004 17:08:23 +0200 (EET) Received: from web21402.mail.yahoo.com (web21402.mail.yahoo.com [216.136.232.72]) by talvi.dovecot.org (Postfix) with SMTP id 2D083C002802 for ; Sat, 14 Feb 2004 17:08:21 +0200 (EET) Message-ID: <20040214150441.92695.qmail@web21402.mail.yahoo.com> Received: from [217.218.127.71] by web21402.mail.yahoo.com via HTTP; Sat, 14 Feb 2004 07:04:41 PST Date: Sat, 14 Feb 2004 07:04:41 -0800 (PST) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] Configure dovecot. X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 15:08:24 -0000 X-UID: 8686 Status: O Hi. I installed dovecot,via RPM.But i don't know that i how to configure it. Please guide me...... ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html From keith@midnighthax.com Sat Feb 14 17:12:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8C61BC002804; Sat, 14 Feb 2004 17:12:08 +0200 (EET) Received: from gs001.rg2.tiger-computing.com (unknown [81.168.16.33]) by talvi.dovecot.org (Postfix) with ESMTP id 85DDAC002802 for ; Sat, 14 Feb 2004 17:12:06 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by gs001.rg2.tiger-computing.com (Postfix) with ESMTP id 7DAB242F3D for ; Sat, 14 Feb 2004 15:09:12 +0000 (GMT) Received: from gs001.rg2.tiger-computing.com ([127.0.0.1]) by localhost (gs001.rg2.tiger-computing.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 00358-04 for ; Sat, 14 Feb 2004 15:09:11 +0000 (GMT) Received: from zaphod.rg2.tiger-computing.com (zaphod.rg2.tiger-computing.com [10.0.0.100]) by gs001.rg2.tiger-computing.com (Postfix) with SMTP id 6713A42F06 for ; Sat, 14 Feb 2004 15:09:11 +0000 (GMT) Date: Sat, 14 Feb 2004 15:09:11 +0000 From: Keith Edmunds To: dovecot@dovecot.org Subject: Re: [Dovecot] Configure dovecot. Message-Id: <20040214150911.2e04da4a@zaphod.rg2.tiger-computing.com> In-Reply-To: <20040214150441.92695.qmail@web21402.mail.yahoo.com> References: <20040214150441.92695.qmail@web21402.mail.yahoo.com> X-Mailer: Sylpheed version 0.9.9claws5 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gs001.rg2.tiger-computing.com X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 15:12:08 -0000 X-UID: 8687 Status: O On Sat, 14 Feb 2004 07:04:41 -0800 (PST) Pahlevanzadeh Mohsen wrote: > I installed dovecot,via RPM.But i don't know that i > how to configure it. > Please guide me...... Read and edit /etc/dovecot.conf Keith From m_pahlevanzadeh@yahoo.com Sat Feb 14 17:23:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C79BDC002805; Sat, 14 Feb 2004 17:23:23 +0200 (EET) Received: from web21410.mail.yahoo.com (web21410.mail.yahoo.com [216.136.232.85]) by talvi.dovecot.org (Postfix) with SMTP id 1F979C002802 for ; Sat, 14 Feb 2004 17:23:21 +0200 (EET) Message-ID: <20040214152010.36522.qmail@web21410.mail.yahoo.com> Received: from [217.218.127.71] by web21410.mail.yahoo.com via HTTP; Sat, 14 Feb 2004 07:20:10 PST Date: Sat, 14 Feb 2004 07:20:10 -0800 (PST) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] your /etc/dovecot.conf X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 15:23:23 -0000 X-UID: 8688 Status: O Hi. Please send me your /etc/dovecot.conf what edited. Yours,Mohsen. ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html From keith@midnighthax.com Sat Feb 14 17:27:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 42C98C002808; Sat, 14 Feb 2004 17:27:55 +0200 (EET) Received: from gs001.rg2.tiger-computing.com (unknown [81.168.16.33]) by talvi.dovecot.org (Postfix) with ESMTP id 28D99C002802 for ; Sat, 14 Feb 2004 17:27:53 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by gs001.rg2.tiger-computing.com (Postfix) with ESMTP id 0742D42F3D for ; Sat, 14 Feb 2004 15:24:59 +0000 (GMT) Received: from gs001.rg2.tiger-computing.com ([127.0.0.1]) by localhost (gs001.rg2.tiger-computing.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 00358-10 for ; Sat, 14 Feb 2004 15:24:58 +0000 (GMT) Received: from zaphod.rg2.tiger-computing.com (zaphod.rg2.tiger-computing.com [10.0.0.100]) by gs001.rg2.tiger-computing.com (Postfix) with SMTP id 00CD142F06 for ; Sat, 14 Feb 2004 15:24:57 +0000 (GMT) Date: Sat, 14 Feb 2004 15:24:57 +0000 From: Keith Edmunds To: dovecot@dovecot.org Subject: Re: [Dovecot] your /etc/dovecot.conf Message-Id: <20040214152457.4a11c3c9@zaphod.rg2.tiger-computing.com> In-Reply-To: <20040214152010.36522.qmail@web21410.mail.yahoo.com> References: <20040214152010.36522.qmail@web21410.mail.yahoo.com> X-Mailer: Sylpheed version 0.9.9claws5 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gs001.rg2.tiger-computing.com X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 15:27:55 -0000 X-UID: 8689 Status: O On Sat, 14 Feb 2004 07:20:10 -0800 (PST) Pahlevanzadeh Mohsen wrote: > Please send me your /etc/dovecot.conf what edited. That isn't how it works. For a start, the fact that it is a configuration file means that it varies from one installation to another. Secondly, what is so hard about reading a very well documented conf file and editing it to your requirements? If you have specific questions about any parameter then I'm sure you'll find help here. However, if you want someone to edit it for you then either you need a consultant or maybe Dovecot (and even Linux) is not for you. Keith From Juergen.Daubert@t-online.de Sat Feb 14 17:37:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3FC6CC00280B; Sat, 14 Feb 2004 17:37:08 +0200 (EET) Received: from mailout05.sul.t-online.com (mailout05.sul.t-online.com [194.25.134.82]) by talvi.dovecot.org (Postfix) with ESMTP id 2FEC4C002802 for ; Sat, 14 Feb 2004 17:37:06 +0200 (EET) Received: from fwd05.aul.t-online.de by mailout05.sul.t-online.com with smtp id 1As1o1-0007t3-02; Sat, 14 Feb 2004 16:34:09 +0100 Received: from p50831F2C.dip.t-dialin.net (rPJ4+6ZpYeOLp+2iYA74HECQBV0WDZbGdYP02DcFUDi5oY8DoGUNZT@[80.131.31.44]) by fwd05.sul.t-online.com with esmtp id 1As1ni-1jeN4y0; Sat, 14 Feb 2004 16:33:50 +0100 Received: from 192.168.0.1 by ser.netz with esmtp (masqmail 0.2.20) id 1As1ng-48o-00; Sat, 14 Feb 2004 16:33:48 +0100 Received: from juergen by jue.netz with local (Exim 4.30) id 1As1no-0001cA-OF; Sat, 14 Feb 2004 16:33:56 +0100 Date: Sat, 14 Feb 2004 16:33:56 +0100 From: Juergen.Daubert@t-online.de (Juergen Daubert) To: Pahlevanzadeh Mohsen Subject: Re: [Dovecot] SOS Message-ID: <20040214153356.GA6126@jue.netz> References: <20040214145351.25438.qmail@web21408.mail.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20040214145351.25438.qmail@web21408.mail.yahoo.com> User-Agent: Mutt/1.4.2i X-Seen: false X-ID: rPJ4+6ZpYeOLp+2iYA74HECQBV0WDZbGdYP02DcFUDi5oY8DoGUNZT Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 15:37:08 -0000 X-UID: 8690 Status: O On Sat, Feb 14, 2004 at 06:53:51AM -0800, Pahlevanzadeh Mohsen wrote: > Hi,When i run "service dovecot start",I receive > following line: > Starting IMAP daemon (dovecot): Fatal: Can't use SSL > key file /usr/share/ssl/private/dovecot.pem: No such > file or directory > > [FAILED] > > Please guide me until i can make a key file.... > Yours,Mohsen. there's a script mkcert.sh in the sources subdir doc which creates a self-signed certificate. Greetings Jürgen -- juergen.daubert@t-online.de From shiva@sewingwitch.com Sat Feb 14 18:11:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A1D98C00280C; Sat, 14 Feb 2004 18:11:21 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 939F4C002802 for ; Sat, 14 Feb 2004 18:11:18 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i1EG8MoP023402 for ; Sat, 14 Feb 2004 11:08:23 -0500 Received: from [10.0.0.221] (CPQ32245280371.dhcp.lsi.lan [10.0.0.221]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i1EG8M0g001458 for ; Sat, 14 Feb 2004 08:08:22 -0800 Date: Sat, 14 Feb 2004 08:08:17 -0800 From: Kenneth Porter To: dovecot@dovecot.org Subject: Re: [Dovecot] your /etc/dovecot.conf Message-ID: <131360466.1076746097@[10.0.0.221]> In-Reply-To: <20040214152457.4a11c3c9@zaphod.rg2.tiger-computing.com> References: <20040214152010.36522.qmail@web21410.mail.yahoo.com> <20040214152457.4a11c3c9@zaphod.rg2.tiger-computing.com> X-Mailer: Mulberry/3.1.0 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.37 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 16:11:21 -0000 X-UID: 8691 Status: O --On Saturday, February 14, 2004 3:24 PM +0000 Keith Edmunds wrote: > That isn't how it works. I'll say. Another way to put it: From asmoore@edge.net Sat Feb 14 18:58:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1EE18C00280F; Sat, 14 Feb 2004 18:58:39 +0200 (EET) Received: from rwcrmhc12.comcast.net (rwcrmhc12.comcast.net [216.148.227.85]) by talvi.dovecot.org (Postfix) with ESMTP id 6EE33C002802 for ; Sat, 14 Feb 2004 18:58:36 +0200 (EET) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (rwcrmhc12) with ESMTP id <2004021416553001400t2tple>; Sat, 14 Feb 2004 16:55:30 +0000 Received: from sws602 (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.10+Sun/8.12.10) with SMTP id i1EGtUUH027832 for ; Sat, 14 Feb 2004 10:55:30 -0600 (CST) Date: Sat, 14 Feb 2004 10:55:29 -0600 From: Alex S Moore To: dovecot@dovecot.org Subject: Re: [Dovecot] RE: Question on folders Message-Id: <20040214105529.5bb713b9@sws602> In-Reply-To: <1076765924.402e24e40be16@routine.dyn.hannover.ccc.de> References: <20040213123613.12a71aad@sws602> <1076765924.402e24e40be16@routine.dyn.hannover.ccc.de> X-Mailer: Sylpheed version 0.9.9claws8 (GTK+ 1.2.10; sparc-sun-solaris2.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 'clamd / ClamAV version devel-20040214', clamav-milter version '0.66m' X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2004 16:58:39 -0000 X-UID: 8692 Status: O Content-Length: 1072 On Sat, 14 Feb 2004 13:38:44 +0000 tom@replic8.net wrote: > hi, > > i also experienced strange and/or diffrent behaviours from MUAs with > Maildir based folders, but i've never seen any logic. just not enough > time to trace the problem. i'm trying to get some results with some > MUAs and dovecot from cvs, soon. > While I am trying to figure this out, it is quite nice to have a pop3 server that does SSL and ldap and does not require me to have my users in /etc/passwd or a special database. I use Sun's directory server and it works just fine with a TLS:simple connection, which I could not get to work with qpopper. Please post what you decide. All I want is a common directory sturcture for all users with something like %1s/%s directories per user and a MUA that understands this. It could be that some delivery agent, like procmail, is required and it is not a function of the MUA. From the MUA, I had a lot of problems creating directories and moving mail to a specific folder using filters. I need more time to work on it, so pointers will help. Alex From tom@abwaerts.be Mon Feb 16 01:04:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C0CD1C000D9D; Mon, 16 Feb 2004 01:04:34 +0200 (EET) Received: from smtp1.xs4all.be (smtp1.xs4all.be [195.144.64.135]) by talvi.dovecot.org (Postfix) with ESMTP id 53403C000D9B for ; Mon, 16 Feb 2004 01:04:32 +0200 (EET) Received: from zukunft.mine.nu (195-144-090-021.dyn.adsl.xs4all.be [195.144.90.21]) by smtp1.xs4all.be (8.12.10/8.12.10) with ESMTP id i1FN1ZPQ016937 for ; Mon, 16 Feb 2004 00:01:35 +0100 Received: from tom by zukunft.mine.nu with local (Exim 4.30) id 1AsVGZ-0000i5-Me for dovecot@dovecot.org; Mon, 16 Feb 2004 00:01:35 +0100 Date: Mon, 16 Feb 2004 00:01:35 +0100 From: Tom To: dovecot@dovecot.org Message-ID: <20040215230135.GA2711@zukunft.mine.nu> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.5.1+cvs20040105i Sender: Tom Subject: [Dovecot] Basic questions concerning mail... X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Feb 2004 23:04:34 -0000 X-UID: 8693 Status: O Content-Length: 1473 Hey all, A few minutes ago, I installed Dovecot, hoping things would get clear by just looking at the relevant config files, but since they don't, I hope someone here could give me a clue... What I want to achieve is really only basic functionality. It's just for personal use, so it shouldn't get too complicated. Up til now, I have been using fetchmail to get my mail off of several POP3-accounts, exim to hand it over to procmail and procmail to drop it in the mail directories of my girlfriend and I. I'd like to be able to remotely use a webmail program of some kind to check mail without having to use ssh to login. So I thought an IMAP-server might be the way to go, but, embarassing though it may be, I can't quite grasp how Dovecot (any IMAPd of course, for that matter) fits in the whole. Should Dovecot receive mail from fetchmail and put in it it's proper place in the user's home directories? Or does Dovecot merely read any mail that might belong to users, told where to look by dovecot.conf? Since I now notice my questions are put in a way that is equally embarassing as the questions themselves, I'll keep it short: could anyone enlighten me about the role of Dovecot / an IMAPd it the whole of a mail system (mail directories for each user, fetchmail, procmail, an MTA, a MUA)? Sincerely apologizing for wasting your undoubtedly valuable time, Tom -- "Mongolian drivers do not care much about pedestrians." -- np: Vive La Fête - Assez (flac) From joshua@shallow.net Mon Feb 16 01:59:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 11CA8C000D9D; Mon, 16 Feb 2004 01:59:16 +0200 (EET) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id DFCCEC000D9B for ; Mon, 16 Feb 2004 01:59:12 +0200 (EET) Received: by yello.shallow.net (Postfix, from userid 1001) id 9C23B2FC4; Mon, 16 Feb 2004 10:56:13 +1100 (EST) Date: Mon, 16 Feb 2004 10:56:13 +1100 From: Joshua Goodall To: Tom Subject: Re: [Dovecot] Basic questions concerning mail... Message-ID: <20040215235613.GQ97015@roughtrade.net> References: <20040215230135.GA2711@zukunft.mine.nu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20040215230135.GA2711@zukunft.mine.nu> User-Agent: Mutt/1.5.4i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Feb 2004 23:59:16 -0000 X-UID: 8694 Status: O Content-Length: 2907 You need to mentally sort out the distinction between different roles in email systems. Email is originated (created) by a Mail User Agent - e.g. Mutt, Outlook, Evolution, Webmail. Email is transported by a Mail Transfer Agent (MTA) - e.g. Postfix, Sendmail, Exim, Qmail. Email is stored in a Message Store - e.g. Maildir, mbox, various custom databases. Email in a store is made available by POP3 or IMAP servers e.g. Dovecot. (or you may have direct access to the filesystem). Finally, Email is displayed by another Mail User Agent (mutt/outlook/webmail). In some integrated systems, the same component fulfills multiple roles. For example (and simplifying a little), Exchange is a MTA, message store and IMAP server; Cyrus is a message store and IMAP server. Most MTAs can write to a message store, either directly or via a tool called a Mail Delivery Agent (MDA) like Procmail. Dovecot is just an IMAP server. It happens to be fast, efficient and secure. Occasionally I feel motivated to stick a SMTP/LMTP front-end on it so that it can be a Cyrus-killing integrated MDA/Store/IMAP system. Hope this helps :) Joshua. On Mon, Feb 16, 2004 at 12:01:35AM +0100, Tom wrote: > Hey all, >=20 > A few minutes ago, I installed Dovecot, hoping things would get clear by > just looking at the relevant config files, but since they don't, I hope > someone here could give me a clue... >=20 > What I want to achieve is really only basic functionality. It's just for > personal use, so it shouldn't get too complicated. Up til now, I have > been using fetchmail to get my mail off of several POP3-accounts, exim > to hand it over to procmail and procmail to drop it in the mail > directories of my girlfriend and I. >=20 > I'd like to be able to remotely use a webmail program of some kind to > check mail without having to use ssh to login. So I thought an > IMAP-server might be the way to go, but, embarassing though it may be, I > can't quite grasp how Dovecot (any IMAPd of course, for that matter) > fits in the whole. >=20 > Should Dovecot receive mail from fetchmail and put in it it's proper > place in the user's home directories? Or does Dovecot merely read any > mail that might belong to users, told where to look by dovecot.conf? >=20 > Since I now notice my questions are put in a way that is equally > embarassing as the questions themselves, I'll keep it short: could > anyone enlighten me about the role of Dovecot / an IMAPd it the whole of > a mail system (mail directories for each user, fetchmail, procmail, an > MTA, a MUA)? >=20 > Sincerely apologizing for wasting your undoubtedly valuable time, > Tom >=20 > --=20 > "Mongolian drivers do not care much about pedestrians." > -- > np: Vive La F?te - Assez (flac) > =20 --=20 Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 From tom@abwaerts.be Mon Feb 16 03:04:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1E36DC000D9D; Mon, 16 Feb 2004 03:04:19 +0200 (EET) Received: from smtp1.xs4all.be (smtp1.xs4all.be [195.144.64.135]) by talvi.dovecot.org (Postfix) with ESMTP id DEAD7C000D9B for ; Mon, 16 Feb 2004 03:04:16 +0200 (EET) Received: from zukunft.mine.nu (195-144-090-021.dyn.adsl.xs4all.be [195.144.90.21]) by smtp1.xs4all.be (8.12.10/8.12.10) with ESMTP id i1G11JPQ018437; Mon, 16 Feb 2004 02:01:19 +0100 Received: from tom by zukunft.mine.nu with local (Exim 4.30) id 1AsX8R-0001Ix-LE; Mon, 16 Feb 2004 02:01:19 +0100 Date: Mon, 16 Feb 2004 02:01:19 +0100 From: Tom To: Joshua Goodall Subject: Re: [Dovecot] Basic questions concerning mail... Message-ID: <20040216010119.GA5004@zukunft.mine.nu> References: <20040215230135.GA2711@zukunft.mine.nu> <20040215235613.GQ97015@roughtrade.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040215235613.GQ97015@roughtrade.net> User-Agent: Mutt/1.5.5.1+cvs20040105i Sender: Tom Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Feb 2004 01:04:19 -0000 X-UID: 8695 Status: O Content-Length: 1431 * [16/02/2004 01:01] Joshua Goodall : > You need to mentally sort out the distinction between different roles > in email systems. Indeed. It's the reason I mailed in the first place... ;-) > Email is originated (created) by a Mail User Agent - e.g. Mutt, > Outlook, Evolution, Webmail. > > Email is transported by a Mail Transfer Agent (MTA) - e.g. Postfix, > Sendmail, Exim, Qmail. > > Email is stored in a Message Store - e.g. Maildir, mbox, various > custom databases. > > Email in a store is made available by POP3 or IMAP servers e.g. > Dovecot. (or you may have direct access to the filesystem). > > Finally, Email is displayed by another Mail User Agent > (mutt/outlook/webmail). Ah. So nothing would change, actually, by installing an IMAP server, right? The roles played by Exim, procmail and whatever I might use remain the same, and the IMAP server only serves (obviously, the termi was well chosen) mail to remote users who are able to authenticate themselves, and is thus just an extra step between stored mail and the user (instead of just viewing mail ("direct access to the filesystem"), I'd use IMAP to display mails somewhere else using a MUA)? Great. I get the concept, now. It really was the kind of answer that makes one wonder why one could not get it in the first place. :-/ Thanks a lot, Tom -- "Mongolian drivers do not care much about pedestrians." -- np: gar nix From joshua@shallow.net Mon Feb 16 03:09:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A237CC002801; Mon, 16 Feb 2004 03:09:29 +0200 (EET) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id 4955DC000D9D for ; Mon, 16 Feb 2004 03:09:27 +0200 (EET) Received: by yello.shallow.net (Postfix, from userid 1001) id F305E30D9; Mon, 16 Feb 2004 12:06:28 +1100 (EST) Date: Mon, 16 Feb 2004 12:06:28 +1100 From: Joshua Goodall To: Tom Subject: Re: [Dovecot] Basic questions concerning mail... Message-ID: <20040216010628.GS97015@roughtrade.net> References: <20040215230135.GA2711@zukunft.mine.nu> <20040215235613.GQ97015@roughtrade.net> <20040216010119.GA5004@zukunft.mine.nu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040216010119.GA5004@zukunft.mine.nu> User-Agent: Mutt/1.5.4i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Feb 2004 01:09:29 -0000 X-UID: 8696 Status: O Content-Length: 1079 On Mon, Feb 16, 2004 at 02:01:19AM +0100, Tom wrote: > Ah. So nothing would change, actually, by installing an IMAP server, > right? The roles played by Exim, procmail and whatever I might use > remain the same, and the IMAP server only serves (obviously, the termi > was well chosen) mail to remote users who are able to authenticate > themselves, and is thus just an extra step between stored mail and > the user (instead of just viewing mail ("direct access to the filesystem"), > I'd use IMAP to display mails somewhere else using a MUA)? Right. Personally I use IMAP so that I have a consistent view whether I'm using mutt (local shell), Kmail (in the office), Mozilla (on the road) or Squirrelmail (from internet cafes). > Great. I get the concept, now. It really was the kind of answer that > makes one wonder why one could not get it in the first place. :-/ There's no shame in asking intelligent questions. cheers, J -- Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 From aredridel@nbtsc.org Mon Feb 16 03:19:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2F6B2C000D9D; Mon, 16 Feb 2004 03:19:35 +0200 (EET) Received: from polis.nbtsc.org (polis.nbtsc.org [206.168.119.2]) by talvi.dovecot.org (Postfix) with ESMTP id 46FDFC000D9B for ; Mon, 16 Feb 2004 03:19:32 +0200 (EET) Received: from [3ffe:bc0:641:1:230:1bff:feac:c01c] (helo=mizar.nbtsc.org) by polis.nbtsc.org with asmtp (Exim 4.30) id 1AsXNC-0001GR-02 for dovecot@dovecot.org; Sun, 15 Feb 2004 18:16:34 -0700 Received: from aredridel by mizar.nbtsc.org with local (Exim 4.30) id 1AsXMX-0004mP-Ds for dovecot@dovecot.org; Sun, 15 Feb 2004 18:15:53 -0700 Date: Sun, 15 Feb 2004 18:15:53 -0700 From: Aredridel To: dovecot@dovecot.org Message-ID: <20040216011553.GA18052@mail.nbtsc.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-Arbitrary-Number-Of-The-Day: 42 X-Scan-Signature: 8c1e745ff32067d9dad487940387dd9b X-Spam-Score: 0.0 (/) Subject: [Dovecot] File synchronization friendly indexes X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Feb 2004 01:19:35 -0000 X-UID: 8697 Status: O I've been doing some tests of file synchronization with Unison (think "two way rsync"), and run into one problem: Synching between servers has conflicts on the index file. I can manually exclude, but what seems to me to be a really wonderful feature would be to, preferably, make the indexes somewhat atomic, so that files, once written, don't change (this is a feature of maildirs in general), and barring that, that they include the machine name as part of the filename, so there's no conflicts. Also, on a completely unrelated and somewhat offtopic note: I'd love to hear some brainstorms on how to prevent duplicate messages when maildirs are synched, files are moved from new on one or more ends, flags are changed inconsistently, and synched back. Ari From hendry@dabase.com Mon Feb 16 17:05:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 69E0AC000D9D; Mon, 16 Feb 2004 17:05:35 +0200 (EET) Received: from bilbo (daidalos.pannuhuone.org [194.100.133.7]) by talvi.dovecot.org (Postfix) with ESMTP id E3BD4C000D9B for ; Mon, 16 Feb 2004 17:05:32 +0200 (EET) Received: from hendry by bilbo with local (Exim 4.30) id 1AskJp-0000aq-II for dovecot@dovecot.org; Mon, 16 Feb 2004 17:05:57 +0200 Date: Mon, 16 Feb 2004 17:05:57 +0200 From: Kai Hendry To: dovecot@dovecot.org Message-ID: <20040216150557.GI636@cs.helsinki.fi> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="3V7upXqbjpZ4EhLz" Content-Disposition: inline User-Agent: Mutt/1.5.5.1+cvs20040105i Sender: Kai Hendry Subject: [Dovecot] debian unstable : mutt polling imap mailboxes X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Feb 2004 15:05:35 -0000 X-UID: 8698 Status: O Content-Length: 4701 --3V7upXqbjpZ4EhLz Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Package: dovecot Version: 0.99.10.4-2 I am accessing my IMAP folder on my ~/Maildir using mutt via Dovecot and I have this problem whereby mutt incorrectly reports I have new mail in a "mailboxes" polled mailbox. This happens all the time when I press the key bound to change mailbox. I use courier IMAP at school, and I have not experienced this problem. A bug with dovecot or mutt? --3V7upXqbjpZ4EhLz Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=".muttrc" # $Id: .muttrc 410 2004-02-14 15:30:13Z hendry $ set alias_file=~/Mail/mutt.addressbook # File to search for aliases in source ~/Mail/mutt.addressbook set ssl_starttls=yes set certificate_file=~/Mail/certificates set imap_force_ssl=yes set spoolfile={hendry@mail.cs.helsinki.fi/ssl}INBOX set folder={hendry@mail.cs.helsinki.fi/ssl} #set spoolfile={hendry@dabase.com/ssl} #set folder={hendry@dabase.com/ssl} account-hook imaps://hendry@mail.cs.helsinki.fi 'set folder={hendry@mail.cs.helsinki.fi/ssl}; set spoolfile={hendry@mail.cs.helsinki.fi/ssl}INBOX' account-hook imaps://hendry@daidalos.pannuhuone.org 'set folder={hendry@daidalos.pannuhuone.org/ssl}; set spoolfile={hendry@daidalos.pannuhuone.org/ssl}INBOX' mailboxes ! mailboxes {hendry@mail.cs.helsinki.fi/ssl}INBOX {hendry@daidalos.pannuhuone.org/ssl} #set move=yes set realname="Kai Hendry" set from="hendry@cs.helsinki.fi" set hostname="cs.helsinki.fi" set beep_new # beep if new mail comes in set editor="vim '+set tw=72'" set ispell="aspell -e -c" set charset="utf-8" set mbox=imaps://hendry@mail.cs.helsinki.fi/"INBOX.inbox.`date +%Y.%m-%b`" #Archive inbox mail set postponed=imaps://hendry@mail.cs.helsinki.fi/INBOX.postponed # location of postponed messages set record=imaps://hendry@mail.cs.helsinki.fi/"INBOX.Sent.`date +%Y.%m-%b`" #Archive send mail color status white blue color index brightwhite black ~N # Some of these contain special ppl :) source ~/Mail/mutt.colours set ascii_chars # So the threading arrows show up properly set sort=threads # Sort by threads set menu_scroll # scroll on last line of menu unset suspend set smart_wrap set wrap_search set abort_unmodified=no # this is cool, dual text/html mails have only the text part shown alternative_order text/plain # I like plaintext more than html. auto_view text/html # When viewing next page of info, retain last line of previous page set pager_context=5 # Works a bit like a "preview" screen; # you can see the pager and 5 lines of the index at the same time set pager_index_lines=5 set pgp_replysign # always sign reply to signed message set pgp_replyencrypt # always encrypt reply to encrypted message # check these commands work macro pager J "!gpg --keyserver wwwkeys.eu.pgp.net --recv-key " "Get PGP Key" macro pager K "!gpg --lsign-key " "Sign PGP Key" # BOGOFILTER macro index X "unset wait_key\nbogofilter -S\nset wait_key\n" macro pager X "unset wait_key\nbogofilter -S\nset wait_key\n" hdr_order From From: To: Cc: Subject: Date: X-Note: X-Mailer: User-Agent: \ X-MimeOLE: Content-Type: unignore * ignore "from " received mime-version status x-status ignore sender references return-path lines precedence content-length ignore priority x-priority x-auth ignore X-eGroups-Return X-Mailing-List List-Help List-Unsubscribe List-Archive ignore X-Sieve ignore Message-Id ignore Envelope-to ignore Content-Type ignore content-transfer-encoding content-disposition ignore In-reply-to ignore x-originalarrivaltime ignore x-bogosity ignore x-spam-status ignore x-spam-level ignore x-mailer user-agent #set autoedit # start editor without asking for to, subject,... set auto_tag # if something is tagged, run commands on tagged msgs. set fast_reply # do not ask for to, subject,... when replying set index_format="%4C %Z %[!%d/%m] %-17.17F (%3l) %s" set pager_format="%S [%C] %n (%l) %s" set folder_format="%F %d %8s %N %f" set print_command="enscript -2r -o /tmp/email.ps -Email" # this does not seem to work atm #set query_command="lbdbq %s" # Need this if using cygwin #set sendmail = "/usr/sbin/ssmtp.exe" send-hook . 'my_hdr From: Kai Hendry ' #send-hook '~C hkkk' 'my_hdr From: Kai Hendry ' message-hook "~h multipart" "set mime_forward=ask-yes" #bind attach S save-entry macro attach s S^A~/Mail/mail-attachments/ #more powerful editing :) #set edit_headers --3V7upXqbjpZ4EhLz-- From jwk@bug.it Tue Feb 17 22:06:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DCC77C002800; Tue, 17 Feb 2004 22:06:35 +0200 (EET) Received: from hydra.energy.local (adsl-237-151.38-151.net24.it [151.38.151.237]) by talvi.dovecot.org (Postfix) with SMTP id 5204DC000D9B for ; Tue, 17 Feb 2004 22:06:31 +0200 (EET) Received: (qmail 5980 invoked from network); 17 Feb 2004 20:16:20 -0000 Received: from unknown (HELO mirage.energy.local) (10.0.1.2) by hydra.energy.local with SMTP; 17 Feb 2004 20:16:20 -0000 Message-Id: <6.0.1.1.2.20040217203714.01ed3538@mail.energy.local> X-Sender: jwk@mail.energy.local X-Mailer: QUALCOMM Windows Eudora Version 6.0.1.1 Date: Tue, 17 Feb 2004 21:05:20 +0100 To: dovecot@dovecot.org From: Giacomo Cariello Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: [Dovecot] LDAP configuration X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Feb 2004 20:06:36 -0000 X-UID: 8699 Status: O Hello, I've just installed dovecot to replace courier-imap and I've found out it didn't support some of the typical LDAP userPassword schemes, so I've written some based on OpenSSL API. Furthermore I noticed that the MD5 one seems broken. If it isn't a requirement to ship its own implementation of a crypto algorithm, I would send in a patch to replace schema checks with those based on libcrypto. I also noticed that if I try connecting to an account that doesn't contain a real maildir (es. maildir:%h/.mail, but .mail doesn't exist), the imap segv's. I suppose it would be cool to ship a maildirmake program and have imap use it whenever necessary, if a flag allows it to do so. Giacomo Cariello, jwk@bug.it KeyID: 3072/1024/0x409C9044 Fingerprint: 7984 10FD 0460 4202 BF90 3881 CDE4 D78E 409C 9044 "Put that mic in my hand and let me kick out the jams!" - MC5 From joshua@shallow.net Wed Feb 18 00:06:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BDE4AC000D9D; Wed, 18 Feb 2004 00:06:43 +0200 (EET) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id 5FE2EC000D9B for ; Wed, 18 Feb 2004 00:06:41 +0200 (EET) Received: by yello.shallow.net (Postfix, from userid 1001) id E764E3016; Wed, 18 Feb 2004 09:03:37 +1100 (EST) Date: Wed, 18 Feb 2004 09:03:37 +1100 From: Joshua Goodall To: Giacomo Cariello Subject: Re: [Dovecot] LDAP configuration Message-ID: <20040217220337.GW97015@roughtrade.net> References: <6.0.1.1.2.20040217203714.01ed3538@mail.energy.local> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6.0.1.1.2.20040217203714.01ed3538@mail.energy.local> User-Agent: Mutt/1.5.4i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Feb 2004 22:06:43 -0000 X-UID: 8700 Status: O On Tue, Feb 17, 2004 at 09:05:20PM +0100, Giacomo Cariello wrote: > I've just installed dovecot to replace courier-imap and I've found out it > didn't support some of the typical LDAP userPassword schemes, so I've > written some based on OpenSSL API. Furthermore I noticed that the MD5 one > seems broken. If it isn't a requirement to ship its own implementation of a > crypto algorithm, I would send in a patch to replace schema checks with > those based on libcrypto. Any overlap with the LDAP MD5/SMD5 handler at http://www.roughtrade.net/dovecot/ ? Personally I prefer that Dovecot does its own crypto. I like Timo's buffer libraries, and using external libs would weaken that; you might as well go use Cyrus SASL. - Joshua. -- Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 From jwk@bug.it Wed Feb 18 08:24:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6234CC000D9D; Wed, 18 Feb 2004 08:24:14 +0200 (EET) Received: from hydra.energy.local (adsl-237-151.38-151.net24.it [151.38.151.237]) by talvi.dovecot.org (Postfix) with SMTP id 8DE7FC000D9B for ; Wed, 18 Feb 2004 08:24:11 +0200 (EET) Received: (qmail 24555 invoked from network); 18 Feb 2004 06:33:59 -0000 Received: from unknown (HELO mirage.energy.local) (10.0.1.2) by hydra.energy.local with SMTP; 18 Feb 2004 06:33:59 -0000 Message-Id: <6.0.1.1.2.20040218071721.01df5320@mail.energy.local> X-Sender: jwk@mail.energy.local X-Mailer: QUALCOMM Windows Eudora Version 6.0.1.1 Date: Wed, 18 Feb 2004 07:23:14 +0100 To: dovecot@dovecot.org From: Giacomo Cariello Subject: Re: [Dovecot] LDAP configuration In-Reply-To: <20040217220337.GW97015@roughtrade.net> References: <6.0.1.1.2.20040217203714.01ed3538@mail.energy.local> <20040217220337.GW97015@roughtrade.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2004 06:24:14 -0000 X-UID: 8701 Status: O Content-Length: 1252 At 23.03 17/02/2004, you wrote: >On Tue, Feb 17, 2004 at 09:05:20PM +0100, Giacomo Cariello wrote: > > I've just installed dovecot to replace courier-imap and I've found out it > > didn't support some of the typical LDAP userPassword schemes, so I've > > written some based on OpenSSL API. Furthermore I noticed that the MD5 one > > seems broken. If it isn't a requirement to ship its own implementation > of a > > crypto algorithm, I would send in a patch to replace schema checks with > > those based on libcrypto. > >Any overlap with the LDAP MD5/SMD5 handler at >http://www.roughtrade.net/dovecot/ ? Whoops. This url deserves to make it to the Wiki ;-) Well, I worked primarily on SHA / SSHA, so no, it's not an overlap, however I suppose it would be cool to import that MD5 handler. >Personally I prefer that Dovecot does its own crypto. I like Timo's >buffer libraries, and using external libs would weaken that; you >might as well go use Cyrus SASL. IMHO, cyrus SASL sucks for what regards "code quality", so it'd be even worse than using OpenSSL API. Giacomo Cariello, jwk@bug.it KeyID: 3072/1024/0x409C9044 Fingerprint: 7984 10FD 0460 4202 BF90 3881 CDE4 D78E 409C 9044 "Put that mic in my hand and let me kick out the jams!" - MC5 From tkay@darkwing.uoregon.edu Tue Feb 17 02:50:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D2650C002800; Tue, 17 Feb 2004 02:50:51 +0200 (EET) Received: from darkwing.uoregon.edu (darkwing.uoregon.edu [128.223.142.13]) by talvi.dovecot.org (Postfix) with ESMTP id 53833C000D9B for ; Tue, 17 Feb 2004 02:50:49 +0200 (EET) Received: from darkwing.uoregon.edu (tkay@localhost [127.0.0.1]) by darkwing.uoregon.edu (8.12.11/8.12.11) with ESMTP id i1H0lnpt017238 for ; Mon, 16 Feb 2004 16:47:49 -0800 (PST) Received: (from tkay@localhost) by darkwing.uoregon.edu (8.12.11/8.12.11/Submit) id i1H0lnUM017232 for dovecot@dovecot.org; Mon, 16 Feb 2004 16:47:49 -0800 (PST) Date: Mon, 16 Feb 2004 16:47:49 -0800 From: Anthony Wendell Kay To: dovecot@dovecot.org Message-ID: <20040217004749.GB19492@darkwing.uoregon.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2i X-Mailman-Approved-At: Wed, 18 Feb 2004 17:57:16 +0200 Subject: [Dovecot] More Benchmarks, and a question about indexing X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Feb 2004 00:50:52 -0000 X-UID: 8702 Status: O Content-Length: 1067 Hi, We are thinking of converting to Dovecot to lighten our I/O load. I have done some performace tests comparing UW-IMAP to Dovecot when using mbox format if anyone is interested. They primarily examine the I/O improvements that can be gained from using Dovecot over UW when staying with mbox format: http://whizzo.uoregon.edu/public/src/mailperf/results.html I had too much cached for this set of tests, and I am going to re-run some with the recommended cache settings...so stay tuned. Anyway, we are stuck with the mbox format for the forseeable future, and I noticed how hard hitting Dovecot is on initial access to a large mailbox, so we need a way to pre-create some of those indexes. I saw in the docs that such an indexer has been planned, but does anyone have a hack for doing it now? -- Anthony Kay Phone: (541) 346-1719 Student Consultant Key Signature: 7195 40B9 FC4F 6F43 C04A University of Oregon Computing Center B4D9 BAF1 C76E AB6E 33E5 "Don't wish your life away." - Mom's best advice From rjohnson@medata.com Wed Feb 18 18:12:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BCD79C000D9D; Wed, 18 Feb 2004 18:12:21 +0200 (EET) Received: from fed1mtao07.cox.net (fed1mtao07.cox.net [68.6.19.124]) by talvi.dovecot.org (Postfix) with ESMTP id C0974C000D9B for ; Wed, 18 Feb 2004 18:12:18 +0200 (EET) Received: from linux.htmlspinnr.org ([68.99.186.15]) by fed1mtao07.cox.net (InterMail vM.5.01.06.05 201-253-122-130-105-20030824) with ESMTP id <20040218160913.MEAI11482.fed1mtao07.cox.net@linux.htmlspinnr.org> for ; Wed, 18 Feb 2004 11:09:13 -0500 Received: from medata.com (rickyj [192.168.1.3]) by linux.htmlspinnr.org (8.12.10/8.12.10) with ESMTP id i1IG9C6E000901 for ; Wed, 18 Feb 2004 08:09:12 -0800 Message-ID: <40338E29.3060107@medata.com> Date: Wed, 18 Feb 2004 08:09:13 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] More Benchmarks, and a question about indexing References: <20040217004749.GB19492@darkwing.uoregon.edu> In-Reply-To: <20040217004749.GB19492@darkwing.uoregon.edu> X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2004 16:12:21 -0000 X-UID: 8703 Status: O Content-Length: 1993 Anthony Wendell Kay wrote: > Hi, > > We are thinking of converting to Dovecot to lighten our I/O load. I have done > some performace tests comparing UW-IMAP to Dovecot when using mbox format if > anyone is interested. They primarily examine the I/O improvements that can be > gained from using Dovecot over UW when staying with mbox format: Perhaps I just missed something - but what was used to benchmark? IMHO? I'm curious as I wouldn't mind trying to benchmark (in general) my Maildir setup. Granted, I don't have an mbox comoparison anymore for the same machine, but it would be an interesting one none the less. > Anyway, we are stuck with the mbox format for the forseeable future, and I > noticed how hard hitting Dovecot is on initial access to a large mailbox, so we > need a way to pre-create some of those indexes. I saw in the docs that such an > indexer has been planned, but does anyone have a hack for doing it now? IMHO, it's not a difficult transition as long as you have a good sized window to make the swap (depending on number of users and speed of the hardware), and your MDA is capable of switching easily (Procmail is). I found/wrote a couple of scripts to facilitate the transition, which were recently sent to this list. Perhaps there are other (political?) reasons for sticking w/ mbox, however. Myth dispelling time: For those who are concerned about inode usage with Maildir, my 110GB available RAID is 21% used on disk space with mail, but only 4% used for inodes. It seems to me I'll run out of space long before I run out of inodes with my user's present usage. This is for 150 users, approx 60% of which use IMAP and 1/2 of them again store significant amounts of mail on the server. Some of my largest users have upwards of 30,000 messages (packrat managers). -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. (from home) PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From tss@iki.fi Wed Feb 18 18:22:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B3DB4C000D9D; Wed, 18 Feb 2004 18:22:43 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 6E519C000D9B for ; Wed, 18 Feb 2004 18:22:41 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 154D1300DFC19; Wed, 18 Feb 2004 18:19:38 +0200 (EET) Subject: Re: [Dovecot] More Benchmarks, and a question about indexing From: Timo Sirainen To: Anthony Wendell Kay In-Reply-To: <20040217004749.GB19492@darkwing.uoregon.edu> References: <20040217004749.GB19492@darkwing.uoregon.edu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-pc9EFATxW9KaUPslh1ux" Message-Id: <1077121177.30013.32.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 18 Feb 2004 18:19:38 +0200 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2004 16:22:43 -0000 X-UID: 8704 Status: O Content-Length: 2227 --=-pc9EFATxW9KaUPslh1ux Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-02-17 at 02:47, Anthony Wendell Kay wrote: > We are thinking of converting to Dovecot to lighten our I/O load. I have = done > some performace tests comparing UW-IMAP to Dovecot when using mbox format= if > anyone is interested. They primarily examine the I/O improvements that ca= n be > gained from using Dovecot over UW when staying with mbox format: >=20 > http://whizzo.uoregon.edu/public/src/mailperf/results.html Good testing. I was going to do something similiar myself, but only for the next release which will have rewritten index and mbox code. I know the current mbox code is really slow and buggy in some situations. I've however heard of getting much larger performance benefits when switching from UW-IMAP. I think they had mostly Outlook/OE clients. Drops from average 20MB/s disk I/O to few kB/s. > Anyway, we are stuck with the mbox format for the forseeable future, and = I > noticed how hard hitting Dovecot is on initial access to a large mailbox,= so we > need a way to pre-create some of those indexes. I saw in the docs that su= ch an > indexer has been planned, but does anyone have a hack for doing it now? This, and POP access will work better in next version too. Currently Dovecot goes and stores all kinds of cached data to index files even if client never uses them. This will change so that data is stored only when client actually asks for it which I think makes opening large mailboxes almost as fast as UW-IMAP (small hit for writing 200-500kB indexes per 10000 mails). I'll also create Dovecot LDA which is able to update the indexes directly while storing the mail, that should help some too. Anyway, back to coding. I hope to get it usable soon and committed to CVS. Before that I'm pretty unresponsive.. --=-pc9EFATxW9KaUPslh1ux Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAM5CZyUhSUUBViskRAolDAKCE1nQYSGNK4lVkwQKLwloBD9BLhQCfQVy4 cSqG78j7YPQLLLuhvvY6EkU= =xhI4 -----END PGP SIGNATURE----- --=-pc9EFATxW9KaUPslh1ux-- From tkay@darkwing.uoregon.edu Wed Feb 18 18:21:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0A92EC000D9D; Wed, 18 Feb 2004 18:21:36 +0200 (EET) Received: from darkwing.uoregon.edu (darkwing.uoregon.edu [128.223.142.13]) by talvi.dovecot.org (Postfix) with ESMTP id C7048C000D9B for ; Wed, 18 Feb 2004 18:21:32 +0200 (EET) Received: from darkwing.uoregon.edu (tkay@localhost [127.0.0.1]) by darkwing.uoregon.edu (8.12.11/8.12.11) with ESMTP id i1IGISuj026812 for ; Wed, 18 Feb 2004 08:18:28 -0800 (PST) Received: (from tkay@localhost) by darkwing.uoregon.edu (8.12.11/8.12.11/Submit) id i1IGIS83026809 for dovecot@dovecot.org; Wed, 18 Feb 2004 08:18:28 -0800 (PST) Date: Wed, 18 Feb 2004 08:18:28 -0800 From: Anthony Wendell Kay To: dovecot@dovecot.org Subject: Re: [Dovecot] More Benchmarks, and a question about indexing Message-ID: <20040218161827.GA5555@darkwing.uoregon.edu> Mail-Followup-To: dovecot@dovecot.org References: <20040217004749.GB19492@darkwing.uoregon.edu> <40338E29.3060107@medata.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40338E29.3060107@medata.com> User-Agent: Mutt/1.4.2i X-Mailman-Approved-At: Wed, 18 Feb 2004 18:23:00 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2004 16:21:36 -0000 X-UID: 8705 Status: O Content-Length: 1609 On 02/18 08:09, Rick Johnson wrote: > Perhaps I just missed something - but what was used to benchmark? IMHO? > I'm curious as I wouldn't mind trying to benchmark (in general) my > Maildir setup. Granted, I don't have an mbox comoparison anymore for the > same machine, but it would be an interesting one none the less. If you go to my site (which is actually my public Subversion source repository), you can take a look. The page explains how I did the benchmarks in great detail, and every script name in the tables is a link to the actual Perl script that did the test. I wrote a couple of the benchmarks based on IMAP traffic that I sniffed from both IMHO and SquirrelMail, but the benchmarks themselves did the stressing using Perl scripts. > Perhaps there are other (political?) reasons > for sticking w/ mbox, however. Yep. That, and our servers are currently Solaris and are using a filesystem format that is horribly slow in dealing with directories (flat instead of B-Tree)...I am adding benchmarks for other formats (including maildir and cyrus) as soon as I can get to them. -- Anthony Kay Phone: (541) 346-1719 Student Consultant Key Signature: 7195 40B9 FC4F 6F43 C04A University of Oregon Computing Center B4D9 BAF1 C76E AB6E 33E5 Music stands halfway between thought and phenomenon, between spirit and matter, a sort of nebulous mediator, like and unlike the things it mediates. Spirit that requires manifestation in time and matter that can do without space...we do not know what music is. - Heinrich Heine From dr@jones.dk Wed Feb 18 18:36:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4D45EC000D9D; Wed, 18 Feb 2004 18:36:58 +0200 (EET) Received: from auryn.jones.dk (cpe.atm0-0-0-1201001.0x503f72d6.albnxx2.customer.tele.dk [80.63.114.214]) by talvi.dovecot.org (Postfix) with ESMTP id 823F3C000D9B for ; Wed, 18 Feb 2004 18:36:55 +0200 (EET) Received: from jones.dk (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id C4B793F263A for ; Wed, 18 Feb 2004 17:33:46 +0100 (CET) Message-ID: <403393EA.6070202@jones.dk> Date: Wed, 18 Feb 2004 17:33:46 +0100 From: Jonas Smedegaard User-Agent: Mozilla Thunderbird 0.5 (X11/20040209) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] More Benchmarks, and a question about indexing References: <20040217004749.GB19492@darkwing.uoregon.edu> <1077121177.30013.32.camel@hurina> In-Reply-To: <1077121177.30013.32.camel@hurina> X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2004 16:36:58 -0000 X-UID: 8706 Status: O Content-Length: 1454 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Timo Sirainen wrote: |>Anyway, we are stuck with the mbox format for the forseeable future, and I |>noticed how hard hitting Dovecot is on initial access to a large mailbox, so we |>need a way to pre-create some of those indexes. I saw in the docs that such an |>indexer has been planned, but does anyone have a hack for doing it now? | | | This, and POP access will work better in next version too. Currently | Dovecot goes and stores all kinds of cached data to index files even if | client never uses them. This will change so that data is stored only | when client actually asks for it which I think makes opening large | mailboxes almost as fast as UW-IMAP (small hit for writing 200-500kB | indexes per 10000 mails). | | I'll also create Dovecot LDA which is able to update the indexes | directly while storing the mail, that should help some too. | | Anyway, back to coding. I hope to get it usable soon and committed to | CVS. Before that I'm pretty unresponsive.. Cool! ~ - Jonas - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er nær: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFAM5Pqn7DbMsAkQLgRAnDUAJ9DgE+mJr3Az2qNbGsVqovb6ClTZwCfbNyg BWbW3gDv6lMe6zFhZZTtnls= =iEU2 -----END PGP SIGNATURE----- From tom@abwaerts.be Wed Feb 18 19:54:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C0CF1C000D9D; Wed, 18 Feb 2004 19:54:42 +0200 (EET) Received: from smtp1.xs4all.be (smtp1.xs4all.be [195.144.64.135]) by talvi.dovecot.org (Postfix) with ESMTP id 6BBDAC000D9B for ; Wed, 18 Feb 2004 19:54:40 +0200 (EET) Received: from zukunft.mine.nu (195-144-090-014.dyn.adsl.xs4all.be [195.144.90.14]) by smtp1.xs4all.be (8.12.10/8.12.10) with ESMTP id i1IHpaPQ001218 for ; Wed, 18 Feb 2004 18:51:36 +0100 Received: from tom by zukunft.mine.nu with local (Exim 4.30) id 1AtVrE-0005Ud-JL for dovecot@dovecot.org; Wed, 18 Feb 2004 18:51:36 +0100 Date: Wed, 18 Feb 2004 18:51:36 +0100 From: Tom To: dovecot@dovecot.org Message-ID: <20040218175136.GA20983@zukunft.mine.nu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.5.1+cvs20040105i Sender: Tom Subject: [Dovecot] Dovecot -- basic setup X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2004 17:54:42 -0000 X-UID: 8707 Status: O Content-Length: 2499 Hey all, After some kind soul made me understand what I can expect from Dovecot, I feel really embarassed for not being able to set it up correctly. What I already had was ~/Mail, containing about six maildirs. Exim got mail, delivered it to procmail, and procmail dropped it in my inbox; a needless extra step that I keep for future, ehm, needs that I might start to care about when I can just succesfully use the most basic mail configuration I can think of. As far as I understood, I just have to point Dovecot to my maildir for it to serve my mail when I connect appropriately with a client. When I test that with KMail connecting to localhost, I get a bizarre overview of my mailfolders, that looks like this: http://www.xs4all.be/~verbreyt/img/scrots/dovecot-kmail.jpg The error message on top is what I get when I try to catch up with any possible new mail: "Unable to get information about folder antwort.index. The server replied: Internal error." Syslog says "lstat(/home/tom/Mail/.antwort.index/cur) failed: Not a directory". Could be, of course: the directory should be ~/Mail/antwort/cur. After I ran KMail and got those errors, ~/Mail, previously only containing some folders, each in turn containing cur/, new/ and tmp/, is stuffed with index files, and three new folders (cur/, new/ and tmp/) directly in the toplevel. ##### $ ls -a Mail . .drafts.index.ids .sent.index.ids .. inbox sent-mail antwort .INBOX .sent-mail.index .antwort.index .inbox.index .sent-mail.index.ids .antwort.index.ids .inbox.index.ids spam check .inbox.index.sorted .spam.index .check.index new .spam.index.ids .check.index.ids outbox tmp cur .outbox.index trash .customflags .outbox.index.ids .trash.index drafts sent .trash.index.ids .drafts.index .sent.index ##### I'm not sure just where it all goes wrong. Yes, I feel stupid about that, but what did, then, did I misunderstand? The only relevant thing in /etc/dovecot.conf I guess would be "default_mail_env" which I have set to "maildir:~/Mail:INBOX=~/Mail/inbox". Documentation may be sparse, it'd still make me sad to be the cause of it being extended for use by the clueless. :-/ Grateful for any corrections, Tom -- "Mongolian drivers do not care much about pedestrians." -- np: Predominance - Luftschiffe (flac) From tss@iki.fi Thu Feb 19 00:13:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 55616C002802; Thu, 19 Feb 2004 00:13:46 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id EC9AEC000D9B for ; Thu, 19 Feb 2004 00:13:43 +0200 (EET) Received: by danu.procontrol.fi (Postfix, from userid 106) id 280A5239F7; Thu, 19 Feb 2004 00:10:40 +0200 (EET) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8B077239F5; Thu, 19 Feb 2004 00:10:06 +0200 (EET) In-Reply-To: <20040216011553.GA18052@mail.nbtsc.org> References: <20040216011553.GA18052@mail.nbtsc.org> Mime-Version: 1.0 (Apple Message framework v612) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-2-50755716" Message-Id: <3398DF80-625F-11D8-9AD9-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] File synchronization friendly indexes Date: Thu, 19 Feb 2004 00:10:03 +0200 To: Aredridel X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.612) X-Spam-Status: No, hits=-7.2 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2004 22:13:46 -0000 X-UID: 8708 Status: O Content-Length: 3003 --Apple-Mail-2-50755716 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 16.2.2004, at 03:15, Aredridel wrote: > I've been doing some tests of file synchronization with Unison (think > "two way rsync"), and run into one problem: Synching between servers > has > conflicts on the index file. You didn't say what you were trying to accomplish with this. A goal that would work is to use two separate servers which sync each others once in a while. Clients would treat both of them as completely separate servers. Might be useful for eg. laptop users where laptop-IMAP-server sync with some external one. Or using a better client would work too :) But I'd guess you were trying to add some automatic redundancy where user could be using either one of the servers and not notice a difference. There are some major problems, especially related to handling UIDs. IMAP requires that each new message gets an UID larger than the last one. If both of your servers generates mail with UID 10, what should happen when they're syncing? Only solution is to give both mails new UIDs, ie. 11 and 12. This might or might not be a problem. Some clients store some (user-given) data related to message locally, attached to the UID. If UID changes, you lose that. > I can manually exclude, but what seems to > me to be a really wonderful feature would be to, preferably, make the > indexes somewhat atomic, so that files, once written, don't change > (this > is a feature of maildirs in general), But indexes do change.. They contain for example quick access to message flags which are changed. Some data could be stored so they don't change, but that would pretty much require each message to have it's own index file, which would hurt performance badly. > and barring that, that they > include the machine name as part of the filename, so there's no > conflicts. Just excluding them from syncing would sound better to me. You could quite easily change the filename though. > Also, on a completely unrelated and somewhat offtopic note: I'd love to > hear some brainstorms on how to prevent duplicate messages when > maildirs > are synched, files are moved from new on one or more ends, flags are > changed inconsistently, and synched back. You'd probably need a quite specialized application to do the syncing right. I think there was some existing ones. One that accessed maildirs directly, and another that did it via IMAP. They can't be perfect, but more or less working is possible.. --Apple-Mail-2-50755716 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAM+K7yUhSUUBViskRAsl6AJ4hn21sSbyXv96NWDT2YsH3B1XVNgCghCZ+ UkyUfTchyoTggPrnA3aTih8= =XSa1 -----END PGP SIGNATURE----- --Apple-Mail-2-50755716-- From daemon@kzone.ch Fri Feb 20 00:00:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E92AAC000D9D; Fri, 20 Feb 2004 00:00:19 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id 4D320C000D9B for ; Fri, 20 Feb 2004 00:00:17 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id WAA31946 for dovecot@dovecot.org; Thu, 19 Feb 2004 22:57:09 +0100 From: Sven Kirmess To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot -- basic setup Date: Thu, 19 Feb 2004 22:57:52 +0100 Organization: Kirmess Lines: 16 Message-ID: References: <20040218175136.GA20983@zukunft.mine.nu> NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1077227827 31941 192.168.100.100 (19 Feb 2004 21:57:07 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 19 Feb 2004 21:57:07 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <20040218175136.GA20983@zukunft.mine.nu> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Feb 2004 22:00:20 -0000 X-UID: 8709 Status: O Tom wrote: > The error message on top is what I get when I try to catch up with any > possible new mail: "Unable to get information about folder > antwort.index. The server replied: Internal error." Syslog says > "lstat(/home/tom/Mail/.antwort.index/cur) failed: Not a directory". > Could be, of course: the directory should be ~/Mail/antwort/cur. No. Dovecot uses . as mail hierarchy separator. Therefor the box should be stored as /home/tom/Mail/.antwort.index/cur. Timo is working on a change that will allow you to use / as separator but the current release does not support that. You have to change your structure or wait for the changed release. Sven From tom@replic8.net Sun Feb 22 21:38:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CF30BC000D9D; Sun, 22 Feb 2004 21:38:16 +0200 (EET) Received: from rpd.dyn.hannover.ccc.de (p50861170.dip0.t-ipconnect.de [80.134.17.112]) by talvi.dovecot.org (Postfix) with ESMTP id 8D938C000D9B for ; Sun, 22 Feb 2004 21:38:11 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by rpd.dyn.hannover.ccc.de (Postfix) with ESMTP id 2F21F4172C for ; Sun, 22 Feb 2004 19:34:53 +0000 (GMT) Received: from rpd.dyn.hannover.ccc.de ([192.168.100.101]) by localhost (commbox.rpdnet.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 10569-01 for ; Sun, 22 Feb 2004 19:34:24 +0000 (GMT) Received: from localhost (server.rpdnet.com [192.168.100.100]) by rpd.dyn.hannover.ccc.de (Postfix) with ESMTP id 1AAF64172A for ; Sun, 22 Feb 2004 19:34:24 +0000 (GMT) Received: from aural (aural [10.0.0.8]) by webmail (IMP) with HTTP for ; Sun, 22 Feb 2004 19:34:48 +0000 Message-ID: <1077478488.40390458f372b@webmail> Date: Sun, 22 Feb 2004 19:34:48 +0000 From: tom@replic8.net To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.2 / FreeBSD-4.9 X-Virus-Scanned: by amavisd-new Subject: [Dovecot] dovecot-nightly/NetBSD - Fwd: CVS commit: wip/dovecot-nightly X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Feb 2004 19:38:17 -0000 X-UID: 8710 Status: O Content-Length: 2123 hello everybody, i just commited a pkgsrc for dovecot nightly cvs-snapshots to the pkgsrc-wip repository for NetBSD - this will hopefully go into base pkgsrc, soon. please see http://pkgsrc-wip.sourceforge.net/ on how to obtain pkgsrc-wip. ----- Forwarded message from Tom Hensel ----- Date: Sun, 22 Feb 2004 11:18:52 -0800 From: Tom Hensel Reply-To: pkgsrc-wip-discuss@lists.sourceforge.net Subject: CVS commit: wip/dovecot-nightly To: pkgsrc-wip-cvs@lists.sourceforge.net Module name: pkgsrc-wip Committed by: tomhensel Date: Sun Feb 22 19:18:52 UTC 2004 Import into wip/dovecot-nightly Log Message: Dovecot is an IMAP and POP3 server for Linux/UNIX-like systems, written with security primarily in mind. Although it's written in C, it uses several coding techniques to avoid most of the common pitfalls. A nightly CVS-snapshot is available at http://dovecot.procontrol.fi/nightly/ which includes major changes from Dovecot 0.99.10.4; please see the ChangeLog file inside the distribution archive. For more information on Dovecot see http://dovecot.procontrol.fi/ Status: Vendor Tag: tomhensel Release Tags: tomhensel_20040222 N wip/dovecot-nightly/PLIST N wip/dovecot-nightly/distinfo N wip/dovecot-nightly/Makefile N wip/dovecot-nightly/DESCR N wip/dovecot-nightly/files/dovecot.sh N wip/dovecot-nightly/patches/patch-aa N wip/dovecot-nightly/patches/patch-ab No conflicts created by this import To generate a diff of this commit: Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ pkgsrc-wip-cvs mailing list pkgsrc-wip-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pkgsrc-wip-cvs ----- End forwarded message ----- From daemon@kzone.ch Sun Feb 22 23:02:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E0174C000D9D; Sun, 22 Feb 2004 23:02:01 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id 8C19BC000D9B for ; Sun, 22 Feb 2004 23:01:59 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id VAA06883 for dovecot@dovecot.org; Sun, 22 Feb 2004 21:58:45 +0100 From: Sven Kirmess To: dovecot@dovecot.org Date: Sun, 22 Feb 2004 21:59:40 +0100 Organization: Kirmess Lines: 6 Message-ID: NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1077483525 6756 192.168.100.100 (22 Feb 2004 20:58:45 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 22 Feb 2004 20:58:45 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: de-CH,de,de-AT,en Subject: [Dovecot] [OT] How is the Changelog file created? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Feb 2004 21:02:02 -0000 X-UID: 8711 Status: O How is the Changelog file created? I assume there is a tool which grabs this information from the CVS repository. What's the name of this tool? Sven From wired@linfe.it Sun Feb 22 23:28:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AB410C002800; Sun, 22 Feb 2004 23:28:02 +0200 (EET) Received: from linfe.it (unknown [213.198.150.109]) by talvi.dovecot.org (Postfix) with ESMTP id 274BBC000D9D for ; Sun, 22 Feb 2004 23:28:00 +0200 (EET) Received: from linfe.it (wired@localhost [127.0.0.1]) by linfe.it (8.12.11/8.12.11/Debian-1) with ESMTP id i1MLClWR029854 for ; Sun, 22 Feb 2004 22:12:47 +0100 Received: (from wired@localhost) by linfe.it (8.12.11/8.12.11/Debian-1) id i1MLCkmd029852 for dovecot@dovecot.org; Sun, 22 Feb 2004 22:12:46 +0100 Date: Sun, 22 Feb 2004 22:12:46 +0100 From: Network Wizards To: dovecot@dovecot.org Message-ID: <20040222211246.GA29703@linfe.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Operating-System: Linux libre 2.2.19 User-Agent: Mutt/1.5.4i Subject: [Dovecot] too large imap.index.data files X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: wired@linfe.it List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Feb 2004 21:28:02 -0000 X-UID: 8712 Status: O Hi, I have noticed that imap.index.data are often too large files (several MiBs). Is there a way to limit their size or to shrink dimension or to assign another directory where those file are stored? thank you will From daemon@kzone.ch Mon Feb 23 01:16:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A4227C002800; Mon, 23 Feb 2004 01:16:10 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id 3C5EAC000D9D for ; Mon, 23 Feb 2004 01:16:08 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id AAA09178 for dovecot@dovecot.org; Mon, 23 Feb 2004 00:12:53 +0100 From: Sven Kirmess To: dovecot@dovecot.org Subject: Re: [Dovecot] too large imap.index.data files Date: Mon, 23 Feb 2004 00:13:48 +0100 Organization: Kirmess Lines: 24 Message-ID: References: <20040222211246.GA29703@linfe.it> NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1077491572 9157 192.168.100.100 (22 Feb 2004 23:12:52 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 22 Feb 2004 23:12:52 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <20040222211246.GA29703@linfe.it> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Feb 2004 23:16:10 -0000 X-UID: 8713 Status: O > I have noticed that imap.index.data are often too large files (several MiBs). > Is there a way to limit their size or to shrink dimension or to assign > another directory where those file are stored? # Default MAIL environment to use when it's not set. By leaving this empty # dovecot tries to do some automatic detection as described in # doc/mail-storages.txt. There's a few special variables you can use: # # %u - username # %n - user part in user@domain, same as %u if there's no domain # %d - domain part in user@domain, empty if user there's no domain # %h - home directory # # You can also limit a width of string by giving the number of max. characters # after the '%' character. For example %1u gives the first character of # username. Some examples: # # maildir:/var/mail/%1u/%u/Maildir # mbox:~/mail/:INBOX=/var/mail/%u # mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n # -- Sven From wired@linfe.it Mon Feb 23 08:38:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E2353C000D9D; Mon, 23 Feb 2004 08:38:44 +0200 (EET) Received: from linfe.it (unknown [213.198.150.109]) by talvi.dovecot.org (Postfix) with ESMTP id AC0B3C000D9B for ; Mon, 23 Feb 2004 08:38:42 +0200 (EET) Received: from linfe.it (wired@localhost [127.0.0.1]) by linfe.it (8.12.11/8.12.11/Debian-1) with ESMTP id i1N6NSiF008569; Mon, 23 Feb 2004 07:23:28 +0100 Received: (from wired@localhost) by linfe.it (8.12.11/8.12.11/Debian-1) id i1N6NSuv008567; Mon, 23 Feb 2004 07:23:28 +0100 Date: Mon, 23 Feb 2004 07:23:28 +0100 From: wired@linfe.it To: Sven Kirmess Subject: Re: [Dovecot] too large imap.index.data files Message-ID: <20040223062328.GA8306@linfe.it> References: <20040222211246.GA29703@linfe.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Operating-System: Linux libre 2.2.19 User-Agent: Mutt/1.5.4i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: wired@linfe.it List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Feb 2004 06:38:45 -0000 X-UID: 8714 Status: O >From Sven Kirmess, Feb 23: ># maildir:/var/mail/%1u/%u/Maildir ># mbox:~/mail/:INBOX=/var/mail/%u ># mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n You mean changing the mail environment? My current environment is: default_mail_env = mbox:~/Mail/:INBOX=/var/spool/mail/%u My ~/Mail directory contains symbolic links to mbox folders; sometimes the same mbox folder (e.g. Abox) has been linked to two ~/Mail subdirectories (e.g. Msub1 and Msub2): ~/Mail/Msub1/Abox ----> /home/pol/mail/folders/Abox ~/Mail/Msub2/Abox ----> /home/pol/mail/folders/Abox Is that an issue? thank you will From sven.kirmess@nexos.com Mon Feb 23 10:54:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B0B63C000D9D; Mon, 23 Feb 2004 10:54:10 +0200 (EET) Received: from isc1.nexos.net (nexos.net [157.161.150.1]) by talvi.dovecot.org (Postfix) with ESMTP id 6A44EC000D9B for ; Mon, 23 Feb 2004 10:54:07 +0200 (EET) Received: from ifs.nexos.com by isc1.nexos.net (8.12.10/8.12.10) with ESMTP id i1N8nt8t012152 for ; Mon, 23 Feb 2004 09:50:04 +0100 (MET) Received: from [192.168.148.15] by ifs.nexos.com (8.12.10/8.12.10) with ESMTP id i1N8AH4Q019230 for ; Mon, 23 Feb 2004 09:10:33 +0100 (MET) Date: Mon, 23 Feb 2004 09:10:16 +0100 From: Sven Kirmess To: dovecot@dovecot.org Subject: Re: [Dovecot] too large imap.index.data files Message-ID: <0.1077523816@[192.168.148.15]> In-Reply-To: <20040223062328.GA8306@linfe.it> References: <20040222211246.GA29703@linfe.it> <20040223062328.GA8306@linfe.it> X-Mailer: Mulberry/3.1.2 (SunOS/SPARC) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Mailman-Approved-At: Mon, 23 Feb 2004 13:02:20 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Feb 2004 08:54:10 -0000 X-UID: 8715 Status: O --On Monday, February 23, 2004 07:23:28 +0100 wired@linfe.it wrote: > ># maildir:/var/mail/%1u/%u/Maildir > ># mbox:~/mail/:INBOX=/var/mail/%u > ># mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n > > You mean changing the mail environment? > My current environment is: > > default_mail_env = mbox:~/Mail/:INBOX=/var/spool/mail/%u I probably misunderstood your question. I thought you would like to redirect the INDEX files to another directory. This could be done with the INDEX keyword in the default_mail_env. But that won't change the index files, it will only store them at a different location. e.g.: default_mail_env = mbox:~/Mail/:INBOX=/var/spool/mail/%u:INDEX=~/index/ -- Sven From moran@uvigo.es Mon Feb 23 13:46:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D7059C002800; Mon, 23 Feb 2004 13:46:38 +0200 (EET) Received: from mail.uvigo.es (mail.uvigo.es [193.146.32.91]) by talvi.dovecot.org (Postfix) with ESMTP id 8E80CC000D9D for ; Mon, 23 Feb 2004 13:46:36 +0200 (EET) Received: from mail.uvigo.es (localhost [127.0.0.1]) by mail.uvigo.es (8.12.11/8.12.1) with ESMTP id i1NBhLr2016636 for ; Mon, 23 Feb 2004 12:43:21 +0100 Received: from gauss.dma.uvigo.es (gauss.dma.uvigo.es [193.146.37.191]) by mail.uvigo.es (8.12.11/8.12.1) with ESMTP id i1NBhJSI016620 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT) for ; Mon, 23 Feb 2004 12:43:20 +0100 Received: from uvigo.es (cmax.dma.uvigo.es [193.146.37.204]) by gauss.dma.uvigo.es (8.12.10/8.12.10) with ESMTP id i1NBhJVU005960 for ; Mon, 23 Feb 2004 12:43:19 +0100 Message-ID: <4039E757.3080501@uvigo.es> Date: Mon, 23 Feb 2004 12:43:19 +0100 From: Manuel Moran Vaquero User-Agent: Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.6) Gecko/20040116 X-Accept-Language: es-es, es MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] IMAP subfolders X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Feb 2004 11:46:39 -0000 X-UID: 8716 Status: O Hi: I am using dovecot since the first day on my server (so I have no other mailbox formats). I can't create any subfolders under any IMAP folders. Is this still an issue of dovecot? In mozilla, the operation is simply ignored. With outlook, you can't even click "Accept" if you select to create a subfolder, rather than a top level folder. I have Fedora Core 1, and didn't touch anything special in the configuration file (just one line which enabled pop3 and imap). I have seen the list archives but the existing thread about the issue seems to say that the problem is solved. (?) Thanks in advance for replies Manuel Moran From hendry@dabase.com Mon Feb 23 17:04:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2D263C000D9D; Mon, 23 Feb 2004 17:04:08 +0200 (EET) Received: from bilbo (daidalos.pannuhuone.org [194.100.133.7]) by talvi.dovecot.org (Postfix) with ESMTP id 9B211C000D9B for ; Mon, 23 Feb 2004 17:04:03 +0200 (EET) Received: from hendry by bilbo with local (Exim 4.30) id 1AvHdZ-0007GQ-Jr; Mon, 23 Feb 2004 17:04:49 +0200 Date: Mon, 23 Feb 2004 17:04:49 +0200 From: Kai Hendry To: Manuel Moran Vaquero Subject: Re: [Dovecot] IMAP subfolders Message-ID: <20040223150449.GV25873@cs.helsinki.fi> References: <4039E757.3080501@uvigo.es> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4039E757.3080501@uvigo.es> User-Agent: Mutt/1.5.5.1+cvs20040105i Sender: Kai Hendry Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Feb 2004 15:04:08 -0000 X-UID: 8717 Status: O This seems to be a FAQ: http://dovecot.procontrol.fi/list/dovecot/2004-February/002959.html http://www.natalian.org/archives/2004/02/14/maildir/ When you use that maildirmake program or whatever, you need to prefix it with a '.' From moran@uvigo.es Mon Feb 23 19:08:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4E743C000D9D; Mon, 23 Feb 2004 19:08:54 +0200 (EET) Received: from mx2.mundo-r.com (mx2.mundo-r.com [212.51.32.186]) by talvi.dovecot.org (Postfix) with ESMTP id 24FF9C000D9B for ; Mon, 23 Feb 2004 19:08:52 +0200 (EET) Received: from drei ([213.60.174.120]) by obelix.mundo-r.ggc (iPlanet Messaging Server 5.1 HotFix 1.6 (built Oct 18 2002)) with SMTP id <0HTJ001EKRHB4K@obelix.mundo-r.ggc> for dovecot@dovecot.org; Mon, 23 Feb 2004 18:05:36 +0100 (MET) Date: Mon, 23 Feb 2004 18:05:35 +0100 From: Manuel Moran Vaquero Subject: Re: [Dovecot] IMAP subfolders To: Kai Hendry Message-id: <000c01c3fa2f$4143b8b0$78ae3cd5@drei> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-Mailer: Microsoft Outlook Express 6.00.2800.1158 Content-type: text/plain; charset=iso-8859-1 Content-transfer-encoding: 7BIT X-Priority: 3 X-MSMail-priority: Normal References: <4039E757.3080501@uvigo.es> <20040223150449.GV25873@cs.helsinki.fi> Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Feb 2004 17:08:54 -0000 X-UID: 8718 Status: O Content-Length: 1269 > This seems to be a FAQ: > http://dovecot.procontrol.fi/list/dovecot/2004-February/002959.html > > http://www.natalian.org/archives/2004/02/14/maildir/ > > When you use that maildirmake program or whatever, you need to prefix it > with a '.' Thanks Kai! Now that I understand better the Maildir need, I have another question: Is ist possible to specify in dovecot.conf that inbox is in mbox format and to use Maildir for the rest of the folders? I remember having seen that somewhere in this same list, but I can't find the message anymore. I think that message said that it was not a supported feature, but the developers were working on it. For now, I don't see any hints in the conf file for configure the env to Maildir+Mbox, so I suppose it's still under development. I don't want to fiddle much with sendmail, so I'd like to keep the mbox spool as default, but using with Maildir for the other IMAP folders (so as to support subfolders) in dovecot, and convert users' mbox imap folders manually. This would even be a nice feature which would integrate perfectly in new Fedora releases (sendmail mbox drop comes by default) as the configuration would be seamless. I hope I have explained me correctly. Thanks in advance again for the replies. Manuel Moran From keith@midnighthax.com Mon Feb 23 19:15:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 19C1EC002800; Mon, 23 Feb 2004 19:15:14 +0200 (EET) Received: from gs001.rg2.tiger-computing.com (unknown [81.168.16.33]) by talvi.dovecot.org (Postfix) with ESMTP id F2FFFC000D9D for ; Mon, 23 Feb 2004 19:15:11 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by gs001.rg2.tiger-computing.com (Postfix) with ESMTP id AC42842F9E for ; Mon, 23 Feb 2004 17:11:55 +0000 (GMT) Received: from gs001.rg2.tiger-computing.com ([127.0.0.1]) by localhost (gs001.rg2.tiger-computing.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18847-04 for ; Mon, 23 Feb 2004 17:11:54 +0000 (GMT) Received: from zaphod.rg2.tiger-computing.com (zaphod.rg2.tiger-computing.com [10.0.0.100]) by gs001.rg2.tiger-computing.com (Postfix) with SMTP id A69DE42F6F for ; Mon, 23 Feb 2004 17:11:54 +0000 (GMT) Date: Mon, 23 Feb 2004 17:11:54 +0000 From: Keith Edmunds To: dovecot@dovecot.org Subject: Re: [Dovecot] IMAP subfolders Message-Id: <20040223171154.2eec7c34@zaphod.rg2.tiger-computing.com> In-Reply-To: <000c01c3fa2f$4143b8b0$78ae3cd5@drei> References: <4039E757.3080501@uvigo.es> <20040223150449.GV25873@cs.helsinki.fi> <000c01c3fa2f$4143b8b0$78ae3cd5@drei> X-Mailer: Sylpheed version 0.9.9claws5 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gs001.rg2.tiger-computing.com X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Feb 2004 17:15:14 -0000 X-UID: 8719 Status: O On Mon, 23 Feb 2004 18:05:35 +0100 Manuel Moran Vaquero wrote: > Is ist possible to specify in dovecot.conf that inbox is in mbox > format and to use Maildir for the rest of the folders? I don't think so, but even if it were supported I wouldn't recommend it. Maildir is far superior to mbox. I understand your reticence to change sendmail, but having sendmail deliver to Maildir (by procmail, I believe) will avoid a lot of problems. (Replacing sendmail with another MTA will avoid a lot more problems, but that may be too much right now!). Keith From rjohnson@medata.com Mon Feb 23 19:24:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D7295C002801; Mon, 23 Feb 2004 19:24:34 +0200 (EET) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id 03E1AC002800 for ; Mon, 23 Feb 2004 19:24:32 +0200 (EET) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i1NHL88a012007 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 23 Feb 2004 09:21:08 -0800 Message-ID: <403A3686.5090900@medata.com> Date: Mon, 23 Feb 2004 09:21:10 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Manuel Moran Vaquero Subject: Re: [Dovecot] IMAP subfolders References: <4039E757.3080501@uvigo.es> <20040223150449.GV25873@cs.helsinki.fi> <000c01c3fa2f$4143b8b0$78ae3cd5@drei> In-Reply-To: <000c01c3fa2f$4143b8b0$78ae3cd5@drei> X-Enigmail-Version: 0.83.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Kai Hendry , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Feb 2004 17:24:35 -0000 X-UID: 8720 Status: O Content-Length: 2589 Manuel Moran Vaquero wrote: > > Thanks Kai! Now that I understand better the Maildir need, I have another > question: The need for maildir w/ dovecot is not absolute. You can continue to use mbox within the ~/mail directory for each user, using the following line: default_mail_env = mbox:~/:INBOX=/var/spool/mail/%u You'll find that maildir performs better for larger mailboxes, however - but at the cost of slightly increased disk usage and inode usage (though in reality, you'll probably run out of the former far before the latter). > Is ist possible to specify in dovecot.conf that inbox is in mbox format and > to use Maildir for the rest of the folders? I remember having seen that > somewhere in this same list, but I can't find the message anymore. I think > that message said that it was not a supported feature, but the developers > were working on it. For now, I don't see any hints in the conf file for > configure the env to Maildir+Mbox, so I suppose it's still under > development. To my knowledge, this was discussed in the past and is not possible, nor advisable. > I don't want to fiddle much with sendmail, so I'd like to keep the mbox > spool as default, but using with Maildir for the other IMAP folders (so as > to support subfolders) in dovecot, and convert users' mbox imap folders > manually. This would even be a nice feature which would integrate perfectly > in new Fedora releases (sendmail mbox drop comes by default) as the > configuration would be seamless. The transition to Maildir isn't a sendmail thing, but a procmail thing. I simply added: DEFAULT="$HOME/Maildir/" MAILDIR="$HOME/Maildir/" to my /etc/procmailrc. I made similar changes to /etc/profile, removing (or changing) the MAIL= environment, and setting the MAILDIR environment for programs like mutt/pine/etc. I then changed the foldernames in individual .procmailrc's from: Folder1/Mailbox1 to: .Folder1.Mailbox1/ (trailing slash tells Procmail it's Maildir, and the period is the delimiter for Dovecot) Then, I ran some scripts on my user's mbox directories to convert them to maildir (I posted them earlier this month - search archives), including the inbox, as well as subscribing each folder dovecot style. Worked flawlessly up to 3 levels deep. This was under Red Hat 9, using the Dovecot SRPM from Fedora Core 1, then subsequently Rawhide to bring me up to 0.99.4, rebuilt for RH9. HTH, -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From lars-dovecot@unet.net.ph Tue Feb 24 06:02:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 37FD6C000D9D; Tue, 24 Feb 2004 06:02:05 +0200 (EET) Received: from smtp.unet.net.ph (unknown [203.65.246.42]) by talvi.dovecot.org (Postfix) with SMTP id C0B55C000D9B for ; Tue, 24 Feb 2004 06:02:01 +0200 (EET) Received: (qmail 16689 invoked from network); 24 Feb 2004 03:58:43 -0000 Received: from smtp.unet.net.ph (unknown [172.16.0.235]) by aguinaldo.unet.net.ph ([203.65.246.10]) with SMTP via TCP; 24 Feb 2004 03:58:43 -0000 To: dovecot@dovecot.org From: "Lars Hansson" Date: Tue, 24 Feb 2004 11:57:45 +0800 PHT Message-Id: <66717883100-BeMail@lars> X-Mailer: BeMail - Mail Daemon Replacement 2.2.6 Final Message-Id: <66320902829-BeMail@lars> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Subject: [Dovecot] ":" in filenames X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Feb 2004 04:02:05 -0000 X-UID: 8721 Status: O dovecot seems to have an issue with :'s in pathnames: imap(test.user): Fatal: Failed to create storage with data: /home/ hosted/example.com/users/test:user This causes a bit of a problem with vmailmgr since it, by default, replaces .'s in maildir path with :'s. I'm curious as to why :'s in paths are an issue? Do they have special meaning to dovecot? --- Lars Hansson From www-data@nusseis.de Tue Feb 24 13:20:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 96782C000D9D; Tue, 24 Feb 2004 13:20:30 +0200 (EET) Received: from nusseis.de (nusseis.de [81.169.154.52]) by talvi.dovecot.org (Postfix) with ESMTP id 71388C000D9B for ; Tue, 24 Feb 2004 13:20:25 +0200 (EET) Received: from www-data by nusseis.de with local (Exim 3.35 #1 (Debian)) id 1AvaUp-0002e9-00 for ; Tue, 24 Feb 2004 12:13:03 +0100 Received: from coke.stud.fh-heilbronn.de (coke.stud.fh-heilbronn.de [141.7.11.106]) by webmail.nusseis.de (IMP) with HTTP for ; Tue, 24 Feb 2004 12:13:03 +0100 Message-ID: <1077621183.403b31bfda984@webmail.nusseis.de> Date: Tue, 24 Feb 2004 12:13:03 +0100 From: Benjamin Dabelow To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.2 Sender: www-data X-Sender: X-Mailman-Approved-At: Tue, 24 Feb 2004 15:37:48 +0200 Subject: [Dovecot] Pam trouble X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Feb 2004 11:20:30 -0000 X-UID: 8722 Status: O Content-Length: 47239 Hi folks, I can't get dovecot to authenticate properly against ldap/pam. I've been fiddling with it for several days now, to no avail. It keeps crashing with: Child died with signal 11 The system is Solaris9. Enclosed is a trace of dovecot-auth for a connection to pop with correct username and password and my config. Any help is appreciated. Cheers Benjamin Trace----------------------------------------------------- 29964: poll(0x00052E28, 9, 4999) (sleeping...) 29964: poll(0x00052E28, 9, 4999) = 0 29964: poll(0x00052E28, 9, 0) = 0 29964: poll(0x00052E28, 9, 4999) (sleeping...) 29964: poll(0x00052E28, 9, 4999) = 1 29964: accept(3, 0xFFBFFAD0, 0xFFBFFAC8, 1) = 13 29964: fstat64(13, 0xFFBFF920) = 0 29964: getsockopt(13, SOL_SOCKET, 0x2000, 0xFFBFFA20, 0xFFBFFA1C, 0) = 0 29964: setsockopt(13, SOL_SOCKET, 0x2000, 0xFFBFFA20, 4, 0) = 0 29964: fcntl(13, F_SETFL, 0x00000080) = 0 29964: fstat64(13, 0xFFBFF9D8) = 0 29964: llseek(13, 0, SEEK_CUR) Err#29 ESPIPE 29964: getsockname(13, 0xFFBFF928, 0xFFBFF924, 1) = 0 29964: write(13, "\0\0 u\f\0\0\001", 8) = 8 29964: poll(0x00052E28, 10, 2917) = 1 29964: read(13, "\0\0 u1C", 4096) = 4 29964: poll(0x00052E28, 10, 2917) (sleeping...) 29964: poll(0x00052E28, 10, 2917) = 0 29964: poll(0x00052E28, 10, 0) = 0 29964: poll(0x00052E28, 10, 4999) (sleeping...) 29964: poll(0x00052E28, 10, 4999) = 1 29964: read(14, "\0\0\001\0\0\001\0\0\001".., 4092) = 16 29964: write(14, "\0\0\001\0\0\001\0\0\0\0".., 20) = 20 29964: poll(0x00052E28, 10, 1664) = 1 29964: read(14, "\0\0\002\0\0\001\0\0\011".., 4076) = 29 29964: pipe() = 15 [16] 29964: fork1() = 29981 29964: lwp_schedctl(SC_STATE|SC_PREEMPT, 0, 0xFFBFF7AC) = 0 29964: close(16) = 0 29981: fork1() (returning as child ...) = 29964 29981: getpid() = 29981 [29964] 29981: close(15) = 0 29981: lwp_schedctl(SC_STATE|SC_PREEMPT, 0, 0xFFBFF4A4) = 0 29981: open("/etc/pam_debug", O_RDONLY) Err#2 ENOENT 29981: stat64("/etc/pam.conf", 0xFFBFF4C0) = 0 29981: open("/etc/pam.conf", O_RDONLY) = 15 29981: mmap(0x00000000, 1893, PROT_READ, MAP_PRIVATE, 15, 0) = 0xFEBA0000 29981: munmap(0xFEBA0000, 1893) = 0 29981: close(15) = 0 29981: stat64("/usr/lib/security/pam_unix.so.1", 0xFFBFF400) = 0 29981: stat("/usr/lib/security/pam_unix.so.1", 0xFFBFED44) = 0 29981: open("/usr/lib/security/pam_unix.so.1", O_RDONLY) = 15 29981: fstat(15, 0xFFBFED44) = 0 29981: mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 15, 0) = 0xFEBA0000 29981: mmap(0x00000000, 212992, PROT_READ|PROT_EXEC, MAP_PRIVATE, 15, 0) = 0xFEB40000 29981: mmap(0xFEB6A000, 36767, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 15, 106496) = 0xFEB6A000 29981: munmap(0xFEB5A000, 65536) = 0 29981: resolvepath("/usr/lib/security/pam_unix.so.1", "/usr/lib/security/pam_unix.so.1", 1023) = 31 29981: memcntl(0xFEB40000, 24652, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 29981: close(15) = 0 29981: stat("/usr/lib/libc.so.1", 0xFFBFEC84) = 0 29981: stat("/usr/lib/libpam.so.1", 0xFFBFEC84) = 0 29981: stat("/usr/lib/libnsl.so.1", 0xFFBFEC84) = 0 29981: stat("/usr/lib/libcmd.so.1", 0xFFBFEC84) = 0 29981: stat("/usr/lib/libmp.so.2", 0xFFBFEC84) = 0 29981: munmap(0xFEBA0000, 8192) = 0 29981: stat64("/usr/lib/security/pam_openldap.so.1", 0xFFBFF400) = 0 29981: stat("/usr/lib/security/pam_openldap.so.1", 0xFFBFED44) = 0 29981: open("/usr/lib/security/pam_openldap.so.1", O_RDONLY) = 15 29981: fstat(15, 0xFFBFED44) = 0 29981: mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 15, 0) = 0xFEBA0000 29981: mmap(0x00000000, 106496, PROT_READ|PROT_EXEC, MAP_PRIVATE, 15, 0) = 0xFEB20000 29981: mmap(0xFEB38000, 3928, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 15, 32768) = 0xFEB38000 29981: munmap(0xFEB2A000, 57344) = 0 29981: resolvepath("/usr/lib/security/pam_openldap.so.1", "/usr/lib/security/pam_openldap.so.1", 1023) = 35 29981: memcntl(0xFEB20000, 6704, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 29981: close(15) = 0 29981: stat("/opt/OpenLDAP2/lib/libc.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libc.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/lib/libc.so.1", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/libldap.so.2", 0xFFBFEC84) = 0 29981: mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEB10000 29981: stat("/opt/OpenLDAP2/lib/liblber.so.2", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/libnsl.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libnsl.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/lib/libnsl.so.1", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/libcrypt_i.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libcrypt_i.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/lib/libcrypt_i.so.1", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/libresolv.so.2", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libresolv.so.2", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/lib/libresolv.so.2", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/libpam.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libpam.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/lib/libpam.so.1", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/libdl.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libdl.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/lib/libdl.so.1", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/libpthread.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libpthread.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/lib/libpthread.so.1", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/librt.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/librt.so.1", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/lib/librt.so.1", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/libdb-4.0.so", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libdb-4.0.so", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/lib/libdb-4.0.so", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/libssl.so.0.9.7", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libssl.so.0.9.7", 0xFFBFEC84) = 0 29981: stat("/opt/OpenLDAP2/lib/libcrypto.so.0.9.7", 0xFFBFEC84) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libcrypto.so.0.9.7", 0xFFBFEC84) = 0 29981: munmap(0xFEBA0000, 8192) = 0 29981: open64("/var/run/name_service_door", O_RDONLY) = 15 29981: fcntl(15, F_SETFD, 0x00000001) = 0 29981: door_info(15, 0xFEEC2668) = 0 29981: close(15) = 0 29981: stat("/usr/lib/nss_files.so.1", 0xFFBFDE64) = 0 29981: open("/etc/passwd", O_RDONLY) = 15 29981: fstat64(15, 0xFFBFE2D8) = 0 29981: brk(0x00081460) = 0 29981: brk(0x00083460) = 0 29981: fstat64(15, 0xFFBFE180) = 0 29981: ioctl(15, TCGETA, 0xFFBFE264) Err#25 ENOTTY 29981: read(15, " r o o t : x : 0 : 1 : Z".., 8192) = 710 29981: read(15, 0x00080594, 8192) = 0 29981: llseek(15, 0, SEEK_CUR) = 710 29981: close(15) = 0 29981: stat("/usr/lib/nss_ldap.so.1", 0xFFBFDE64) = 0 29981: open("/usr/lib/nss_ldap.so.1", O_RDONLY) = 15 29981: fstat(15, 0xFFBFDE64) = 0 29981: mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 15, 0) = 0xFEBA0000 29981: mmap(0x00000000, 163840, PROT_READ|PROT_EXEC, MAP_PRIVATE, 15, 0) = 0xFEAE0000 29981: mmap(0xFEAFC000, 4828, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 15, 49152) = 0xFEAFC000 29981: mmap(0xFEAFE000, 35640, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEAFE000 29981: munmap(0xFEAEE000, 57344) = 0 29981: resolvepath("/usr/lib/nss_ldap.so.1", "/usr/lib/nss_ldap.so.1", 1023) = 22 29981: memcntl(0xFEAE0000, 9792, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0 29981: close(15) = 0 29981: stat("/opt/OpenLDAP2/lib/libldap.so.2", 0xFFBFDDA4) = 0 29981: stat("/opt/OpenLDAP2/lib/liblber.so.2", 0xFFBFDDA4) = 0 29981: stat("/opt/OpenLDAP2/lib/libdb-4.0.so", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libdb-4.0.so", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/lib/libdb-4.0.so", 0xFFBFDDA4) = 0 29981: stat("/opt/OpenLDAP2/lib/libdl.so.1", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libdl.so.1", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/lib/libdl.so.1", 0xFFBFDDA4) = 0 29981: stat("/opt/OpenLDAP2/lib/libnsl.so.1", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libnsl.so.1", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/lib/libnsl.so.1", 0xFFBFDDA4) = 0 29981: stat("/opt/OpenLDAP2/lib/libresolv.so.2", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libresolv.so.2", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/lib/libresolv.so.2", 0xFFBFDDA4) = 0 29981: stat("/opt/OpenLDAP2/lib/libpthread.so.1", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libpthread.so.1", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/lib/libpthread.so.1", 0xFFBFDDA4) = 0 29981: stat("/opt/OpenLDAP2/lib/librt.so.1", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/librt.so.1", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/lib/librt.so.1", 0xFFBFDDA4) = 0 29981: stat("/opt/OpenLDAP2/lib/libssl.so.0.9.7", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libssl.so.0.9.7", 0xFFBFDDA4) = 0 29981: stat("/opt/OpenLDAP2/lib/libcrypto.so.0.9.7", 0xFFBFDDA4) Err#2 ENOENT 29981: stat("/usr/local/ssl/lib/libcrypto.so.0.9.7", 0xFFBFDDA4) = 0 29981: munmap(0xFEBA0000, 8192) = 0 29981: sigaction(SIGPIPE, 0xFFBFE2B8, 0xFFBFE3F8) = 0 29981: sigprocmask(SIG_SETMASK, 0xFEBEA0B4, 0xFFBFE308) = 0 29981: sigprocmask(SIG_SETMASK, 0xFFBFE2F4, 0x00000000) = 0 29981: getpid() = 29981 [29964] 29981: getuid() = 0 [0] 29981: open("/etc/ldap.conf", O_RDONLY) = 15 29981: fstat64(15, 0xFFBFCA38) = 0 29981: fstat64(15, 0xFFBFC8E0) = 0 29981: ioctl(15, TCGETA, 0xFFBFC9C4) Err#25 ENOTTY 29981: read(15, " # @ ( # ) $ I d : l".., 8192) = 6190 29981: read(15, 0x0008018C, 8192) = 0 29981: llseek(15, 0, SEEK_CUR) = 6190 29981: close(15) = 0 29981: open64("/var/run/name_service_door", O_RDONLY) = 15 29981: fcntl(15, F_SETFD, 0x00000001) = 0 29981: door_info(15, 0xFEEC2668) = 0 29981: close(15) = 0 29981: open("/etc/inet/ipnodes", O_RDONLY) = 15 29981: fstat64(15, 0xFFBFADA8) = 0 29981: brk(0x00083460) = 0 29981: brk(0x00085460) = 0 29981: fstat64(15, 0xFFBFAC50) = 0 29981: ioctl(15, TCGETA, 0xFFBFAD34) Err#25 ENOTTY 29981: read(15, " #\n # I n t e r n e t".., 8192) = 61 29981: read(15, 0x0008257C, 8192) = 0 29981: llseek(15, 0, SEEK_CUR) = 61 29981: close(15) = 0 29981: open64("/var/run/name_service_door", O_RDONLY) = 15 29981: fcntl(15, F_SETFD, 0x00000001) = 0 29981: door_info(15, 0xFEEC2668) = 0 29981: close(15) = 0 29981: open("/etc/hosts", O_RDONLY) = 15 29981: fstat64(15, 0xFFBFAD28) = 0 29981: fstat64(15, 0xFFBFABD0) = 0 29981: ioctl(15, TCGETA, 0xFFBFACB4) Err#25 ENOTTY 29981: read(15, " #\n # I n t e r n e t".., 8192) = 107 29981: read(15, 0x0008257C, 8192) = 0 29981: llseek(15, 0, SEEK_CUR) = 107 29981: close(15) = 0 29981: so_socket(PF_INET, SOCK_STREAM, IPPROTO_IP, "", 1) = 15 29981: setsockopt(15, tcp, TCP_NODELAY, 0xFFBFD724, 4, 1) = 0 29981: fcntl(15, F_GETFL, 0xFF1FE9E0) = 2 29981: fstat64(15, 0xFFBFD468) = 0 29981: getsockopt(15, SOL_SOCKET, 0x2000, 0xFFBFD568, 0xFFBFD560, 0) = 0 29981: fstat64(15, 0xFFBFD4D8) = 0 29981: getsockopt(15, SOL_SOCKET, 0x2000, 0xFFBFD5D8, 0xFFBFD5D4, 0) = 0 29981: setsockopt(15, SOL_SOCKET, 0x2000, 0xFFBFD5D8, 4, 0) = 0 29981: fcntl(15, F_SETFL, 0x00000082) = 0 29981: connect(15, 0x0007F9E8, 16, 1) = 0 29981: fcntl(15, F_GETFL, 0xFF1FE9F8) = 130 29981: fstat64(15, 0xFFBFD468) = 0 29981: getsockopt(15, SOL_SOCKET, 0x2000, 0xFFBFD568, 0xFFBFD560, 0) = 0 29981: fstat64(15, 0xFFBFD4D8) = 0 29981: getsockopt(15, SOL_SOCKET, 0x2000, 0xFFBFD5D8, 0xFFBFD5D4, 0) = 0 29981: setsockopt(15, SOL_SOCKET, 0x2000, 0xFFBFD5D8, 4, 0) = 0 29981: fcntl(15, F_SETFL, 0x00000002) = 0 29981: getpeername(15, 0xFFBFD708, 0xFFBFD2E8, 1) = 0 29981: open64("/var/run/name_service_door", O_RDONLY) = 17 29981: fcntl(17, F_SETFD, 0x00000001) = 0 29981: door_info(17, 0xFEEC2668) = 0 29981: close(17) = 0 29981: open("/etc/inet/ipnodes", O_RDONLY) = 17 29981: fstat64(17, 0xFFBFAC98) = 0 29981: fstat64(17, 0xFFBFAB40) = 0 29981: ioctl(17, TCGETA, 0xFFBFAC24) Err#25 ENOTTY 29981: read(17, " #\n # I n t e r n e t".., 8192) = 61 29981: read(17, 0x0008257C, 8192) = 0 29981: llseek(17, 0, SEEK_CUR) = 61 29981: close(17) = 0 29981: open64("/var/run/name_service_door", O_RDONLY) = 17 29981: fcntl(17, F_SETFD, 0x00000001) = 0 29981: door_info(17, 0xFEEC2668) = 0 29981: close(17) = 0 29981: open("/etc/hosts", O_RDONLY) = 17 29981: fstat64(17, 0xFFBFAC18) = 0 29981: fstat64(17, 0xFFBFAAC0) = 0 29981: ioctl(17, TCGETA, 0xFFBFABA4) Err#25 ENOTTY 29981: read(17, " #\n # I n t e r n e t".., 8192) = 107 29981: llseek(17, 0, SEEK_CUR) = 107 29981: close(17) = 0 29981: uname(0xFFBFD110) = 1 29981: time() = 1077620847 29981: write(15, " 01D020101 w188016 1 . 3".., 31) = 31 29981: poll(0xFFBFD1C0, 1, -1) = 1 29981: read(15, " 0\f020101 x07\n", 8) = 8 29981: read(15, "01\004\004\0", 6) = 6 29981: time() = 1077620847 29981: brk(0x00085460) = 0 29981: brk(0x00087460) = 0 29981: brk(0x00087460) = 0 29981: brk(0x00089460) = 0 29981: brk(0x00089460) = 0 29981: brk(0x0008B460) = 0 29981: brk(0x0008B460) = 0 29981: brk(0x0008D460) = 0 29981: time() = 1077620847 29981: getpid() = 29981 [29964] 29981: brk(0x0008D460) = 0 29981: brk(0x00093460) = 0 29981: brk(0x00093460) = 0 29981: brk(0x00097460) = 0 29981: brk(0x00097460) = 0 29981: brk(0x0009B460) = 0 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: open("/dev/urandom", O_RDONLY|O_NONBLOCK|O_NOCTTY) = 17 29981: poll(0xFFBFD3B0, 1, 10) = 1 29981: read(17, "029F\0 XA5B2F0C7 U &1FE6".., 32) = 32 29981: close(17) = 0 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getuid() = 0 [0] 29981: getpid() = 29981 [29964] 29981: time() = 1077620847 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: write(15, "8095010301\0 l\0\0\0 \0".., 151) = 151 29981: read(15, "160301\0 J02\0", 7) = 7 29981: brk(0x0009B460) = 0 29981: brk(0x0009D460) = 0 29981: time() = 1077620847 29981: time() = 1077620847 29981: getpid() = 29981 [29964] 29981: read(15, "\0 F0301 @ ; 0 oBFEE1DE1".., 72) = 72 29981: read(15, "1603010412", 5) = 5 29981: read(15, "\v\0040E\004\v\004\b 082".., 1042) = 1042 29981: brk(0x0009D460) = 0 29981: brk(0x0009F460) = 0 29981: getpid() = 29981 [29964] 29981: read(15, "160301\004", 5) = 5 29981: read(15, "0E\0\0\0", 4) = 4 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: getpid() = 29981 [29964] 29981: brk(0x0009F460) = 0 29981: brk(0x000A1460) = 0 29981: write(15, "160301\08610\0\082\080 /".., 198) = 198 29981: read(15, "140301\001", 5) = 5 29981: read(15, "01", 1) = 1 29981: read(15, "160301\0 0", 5) = 5 29981: read(15, "9197ADECFE9AFB )DF83 $8A".., 48) = 48 29981: time() = 1077620847 29981: write(15, "170301\0 DF0F1E H pC386".., 90) = 90 29981: time() = 1077620847 29981: poll(0xFFBFD230, 1, 30000) = 1 29981: read(15, "170301\0 ", 5) = 5 29981: read(15, "DBFFF9B9EC g WEE iE0 , Z".., 32) = 32 29981: read(15, "170301\0 0", 5) = 5 29981: read(15, "7F >BDCE96B4 = zE587F1 ]".., 48) = 48 29981: time() = 1077620847 29981: setsockopt(15, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFDB88, 4, 1) = 0 29981: fcntl(15, F_SETFD, 0x00000001) = 0 29981: getsockname(15, 0xFEAFE2F8, 0xFFBFDB84, 1) = 0 29981: getpeername(15, 0xFEAFE308, 0xFFBFDB84, 1) = 0 29981: time() = 1077620847 29981: getpid() = 29981 [29964] 29981: getuid() = 0 [0] 29981: time() = 1077620847 29981: write(15, "170301\0 $1D1086B7 { #".., 266) = 266 29981: poll(0xFFBFD1E0, 1, -1) = 1 29981: read(15, "170301\0 ", 5) = 5 29981: read(15, " 3 0 @B7AA14 j9284E2D4\t".., 32) = 32 29981: read(15, "1703010180", 5) = 5 29981: read(15, "92 | e850589C27F C5BCA687 X .EEA2 > i".., 48) = 48 29981: time() = 1077620847 29981: time() = 1077620847 29981: Incurred fault #6, FLTBOUNDS %pc = 0xFF053364 29981: siginfo: SIGSEGV SEGV_MAPERR addr=0x00000004 29981: Received signal #11, SIGSEGV [default] 29981: siginfo: SIGSEGV SEGV_MAPERR addr=0x00000004 29964: poll(0x00052E28, 11, 999) = 1 29964: read(15, 0xFFBFF958, 512) = 0 29964: time() = 1077620847 29964: write(4, " d o v e c o t - a u t h".., 61) = 61 29964: write(14, "\0\0\001\0\0\003\0\0\0\0".., 20) = 20 29964: close(15) = 0 29964: poll(0x00052E28, 10, 446) = 0 29964: poll(0x00052E28, 10, 0) = 0 29964: waitid(P_ALL, 0, 0xFFBFF998, WEXITED|WTRAPPED|WNOHANG) = 0 29964: time() = 1077620848 29964: write(4, " d o v e c o t - a u t h".., 74) = 74 29964: waitid(P_ALL, 0, 0xFFBFF998, WEXITED|WTRAPPED|WNOHANG) Err#10 ECHILD 29964: poll(0x00052E28, 10, 998) = 0 29964: poll(0x00052E28, 10, 0) = 0 29964: poll(0x00052E28, 10, 4999) (sleeping...) 29964: poll(0x00052E28, 10, 4999) = 1 29964: read(14, 0x0007C051, 4047) = 0 29964: close(14) = 0 29964: poll(0x00052E28, 9, 2885) (sleeping...) dovecot.conf---------------------------------------------------- ## Dovecot 1.0 configuration file # Default values are shown after each value, it's not required to uncomment # any of the lines. Exception to this are paths, they're just examples # with real defaults being based on configure options. The paths listed here # are for configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var # --with-ssldir=/etc/ssl # Base directory where to store runtime data. base_dir = /usr/local/dovecot/run/ # Protocols we want to be serving: # imap imaps pop3 pop3s protocols = imap pop3 imaps pop3s # IP or host address where to listen in for connections. It's not currently # possible to specify multiple addresses. "*" listens in all IPv4 interfaces. # "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4 # interfaces depending on the operating system. You can specify ports with # "host:port". imap_listen = * pop3_listen = * # IP or host address where to listen in for SSL connections. Defaults # to above non-SSL equilevants if not specified. #imaps_listen = #pop3s_listen = # Disable SSL/TLS support. ssl_disable = yes # PEM encoded X.509 SSL/TLS certificate and private key. They're opened before # dropping root privileges, so keep the key file unreadable by anyone but # root. Included doc/mkcert.sh can be used to easily generate self-signed # certificate, just make sure to update the domains in dovecot-openssl.cnf #ssl_cert_file = /etc/ssl/certs/dovecot.pem #ssl_key_file = /etc/ssl/private/dovecot.pem # SSL parameter file. Master process generates this file for login processes. # It contains Diffie Hellman and RSA parameters. ssl_parameters_file = /usr/local/dovecot/run/ssl-parameters.dat # How often to regenerate the SSL parameters file. Generation is quite CPU # intensive operation. The value is in hours, 0 disables regeneration # entirely. ssl_parameters_regenerate = 24 # Disable LOGIN command and all other plaintext authentications unless # SSL/TLS is used (LOGINDISABLED capability) #disable_plaintext_auth = no # Use this logfile instead of syslog(). /dev/stderr can be used if you want to # use stderr for logging (ONLY /dev/stderr - otherwise it is closed). log_path = /var/log/dovecot.log # For informational messages, use this logfile instead of the default info_log_path = /var/log/dovecot.info # Prefix for each line written to log file. % codes are in strftime(3) # format. Note the extra space at the end of line. #log_timestamp = "%b %d %H:%M:%S " ## ## Login processes ## # Directory where authentication process places authentication UNIX sockets # which login needs to be able to connect to. The sockets are created when # running as root, so you don't have to worry about permissions. #login_dir = /usr/local/dovecot/run/login # chroot login process to the login_dir. Only reason not to do this is if you # wish to run the whole Dovecot without roots. #login_chroot = yes ## ## IMAP login process ## login = imap # Executable location. #login_executable = /usr/local/dovecot/libexec/dovecot/imap-login # User to use for the login process. Create a completely new user for this, # and don't use it anywhere else. The user must also belong to a group where # only it has access, it's used to control access for authentication process. login_user = dovecot # Set max. process size in megabytes. If you don't use # login_process_per_connection you might need to grow this. #login_process_size = 16 # Should each login be processed in it's own process (yes), or should one # login process be allowed to process multiple connections (no)? Yes is more # secure, espcially with SSL/TLS enabled. No is faster since there's no need # to create processes all the time. #login_process_per_connection = yes # Number of login processes to create. If login_process_per_user is # yes, this is the number of extra processes waiting for users to log in. #login_processes_count = 3 # Maximum number of extra login processes to create. The extra process count # usually stays at login_processes_count, but when multiple users start logging # IN AT THE SAME time more extra processes are created. To prevent fork-bombing # we check only once in a second if new processes should be created - if all # of them are used at the time, we double their amount until limit set by this # setting is reached. This setting is used only if login_process_per_use is yes. #login_max_processes_count = 128 # Maximum number of connections allowed in login state. When this limit is # reached, the oldest connections are dropped. If login_process_per_user # is no, this is a per-process value, so the absolute maximum number of users # logging in actually login_processes_count * max_logging_users. #login_max_logging_users = 256 ## ## POP3 login process ## # Settings default to same as above, so you don't have to set anything # unless you want to override them. login = pop3 # Exception to above rule being the executable location. #login_executable = /usr/libexec/dovecot/pop3-login ## ## Mail processes ## # Maximum number of running mail processes. When this limit is reached, # new users aren't allowed to log in. #max_mail_processes = 1024 # Show more verbose process titles (in ps). Currently shows user name and # IP address. Useful for seeing who are actually using the IMAP processes # (eg. shared mailboxes or if same uid is used for multiple accounts). #verbose_proctitle = no # Show protocol level SSL errors. #verbose_ssl = no # Valid UID range for users, defaults to 500 and above. This is mostly # to make sure that users can't log in as daemons or other system users. # Note that denying root logins is hardcoded to dovecot binary and can't # be done even if first_valid_uid is set to 0. #first_valid_uid = 500 #last_valid_uid = 0 # Valid GID range for users, defaults to non-root/wheel. Users having # non-valid GID as primary group ID aren't allowed to log in. If user # belongs to supplementary groups with non-valid GIDs, those groups are # not set. #first_valid_gid = 1 #last_valid_gid = 0 # ':' separated list of directories under which chrooting is allowed for mail # processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too). # This setting doesn't affect login_chroot or auth_chroot variables. # WARNING: Never add directories here which local users can modify, that # may lead to root exploit. Usually this should be done only if you don't # allow shell access for users. See doc/configuration.txt for more information. #valid_chroot_dirs = # Default chroot directory for mail processes. This can be overridden by # giving /./ in user's home directory (eg. /home/./user chroots into /home). #mail_chroot = # Default MAIL environment to use when it's not set. By leaving this empty # dovecot tries to do some automatic detection as described in # doc/mail-storages.txt. There's a few special variables you can use: # # %u - username # %n - user part in user@domain, same as %u if there's no domain # %d - domain part in user@domain, empty if user there's no domain # %h - home directory # # You can also limit a width of string by giving the number of max. characters # after the '%' character. For example %1u gives the first character of # username. Some examples: # # maildir:/var/mail/%1u/%u/Maildir # mbox:~/mail/:INBOX=/var/mail/%u # mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n # default_mail_env = maildir:/maildir/%u/Maildir # Space-separated list of fields to cache for all mails. Currently these # fields are allowed followed by a list of commands they speed up: # # Envelope - FETCH ENVELOPE and SEARCH FROM, TO, CC, BCC, SUBJECT, # SENTBEFORE, SENTON, SENTSINCE, HEADER MESSAGE-ID, # HEADER IN-REPLY-TO # Body - FETCH BODY # Bodystructure - FETCH BODY, BODYSTRUCTURE # MessagePart - FETCH BODY[1.2.3] (ie. body parts), RFC822.SIZE, # SEARCH SMALLER, LARGER, also speeds up BODY/BODYSTRUCTURE # generation. This is always set with mbox mailboxes, and # also default with Maildir. # # Different IMAP clients work in different ways, that's why Dovecot by default # only caches MessagePart which speeds up most operations. Whenever client # does something where caching could be used, the field is automatically marked # to be cached later. For example after FETCH BODY the BODY will be cached # for all new messages. Normally you should leave this alone, unless you know # what most of your IMAP clients are. Caching more fields than needed makes # the index files larger and generate useless I/O. # # With maildir there's one extra optimization - if nothing is cached, indexing # the maildir becomes much faster since it's not opening any of the mail files. # This could be useful if your IMAP clients access only new mails. #mail_cache_fields = MessagePart # Space-separated list of fields that Dovecot should never set to be cached. # Useful if you want to save disk space at the cost of more I/O when the fields # needed. #mail_never_cache_fields = # Workarounds for various client bugs: # oe6-fetch-no-newmail: # Never send EXISTS/RECENT when replying to FETCH command. Outlook Express # seems to think they are FETCH replies and gives user "Message no longer # in server" error. Note that OE6 still breaks even with this workaround # if synchronization is set to "Headers Only". # outlook-idle: # Outlook and Outlook Express never abort IDLE command, so if no mail # arrives in half a hour, Dovecot closes the connection. This is still # fine, except Outlook doesn't connect back so you don't see if new mail # arrives. #client_workarounds = # Dovecot can notify client of new mail in selected mailbox soon after it's # received. This setting specifies the minimum interval in seconds between # new mail notifications to client - internally they may be checked more or # less often. Setting this to 0 disables the checking. # NOTE: Evolution client breaks with this option when it's trying to APPEND. #mailbox_check_interval = 0 # Like mailbox_check_interval, but used for IDLE command. #mailbox_idle_check_interval = 30 # Allow full filesystem access to clients. There's no access checks other than # what the operating system does for the active UID/GID. It works with both # maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/ # or ~user/. mail_full_filesystem_access = no # Maximum allowed length for custom flag name. It's only forced when trying # to create new flags. #mail_max_flag_length = 50 # Save mails with CR+LF instead of plain LF. This makes sending those mails # take less CPU, especially with sendfile() syscall with Linux and FreeBSD. # But it also creates a bit more disk I/O which may just make it slower. #mail_save_crlf = no # Use mmap() instead of read() to read mail files. read() seems to be a bit # faster with my Linux/x86 and it's better with NFS, so that's the default. #mail_read_mmaped = no # Copy mail to another folders using hard links. This is much faster than # actually copying the file. This is problematic only if something modifies # the mail in one folder but doesn't want it modified in the others. I don't # know any MUA which would modify mail files directly. IMAP protocol also # requires that the mails don't change, so it would be problematic in any case. # If you care about performance, enable it. #maildir_copy_with_hardlinks = no # Check if mails' content has been changed by external programs. This slows # down things as extra stat() needs to be called for each file. If changes are # noticed, the message is treated as a new message, since IMAP protocol # specifies that existing message are immutable. #maildir_check_content_changes = no # Which locking methods to use for locking mbox. There's three available: # dotlock: Create .lock file. This is the oldest and most NFS-safe # solution. If you want to use /var/mail/ like directory, the users # will need write access to that directory. # fcntl : Use this if possible. Works with NFS too if lockd is used. # flock : May not exist in all systems. Doesn't work with NFS. # # You can use both fcntl and flock too; if you do the order they're declared # with is important to avoid deadlocks if other MTAs/MUAs are using both fcntl # and flock. Some operating systems don't allow using both of them # simultaneously, eg. BSDs. If dotlock is used, it's always created first. #mbox_locks = dotlock fcntl # Should we create dotlock file even when we want only a read-lock? Setting # this to yes hurts the performance when the mailbox is accessed simultaneously # by multiple processes, but it's needed for reliable reading if no other # locking methods are available. #mbox_read_dotlock = no # Maximum time in seconds to wait for lock (all of them) before aborting. #mbox_lock_timeout = 300 # If dotlock exists but the mailbox isn't modified in any way, override the # lock file after this many seconds. #mbox_dotlock_change_timeout = 30 # umask to use for mail files and directories #umask = 0077 # Drop all privileges before exec()ing the mail process. This is mostly # meant for debugging, otherwise you don't get core dumps. Note that setting # this to yes means that log file is opened as the logged in user, which # might not work. It could also be a small security risk if you use single UID # for multiple users, as the users could ptrace() each others processes then. #mail_drop_priv_before_exec = no ## ## IMAP process ## # Executable location #imap_executable = /usr/libexec/dovecot/imap # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. #imap_process_size = 256 # Support for dynamically loadable modules. #imap_use_modules = no #imap_modules = /usr/lib/dovecot/imap ## ## POP3 process ## # Executable location #pop3_executable = /usr/libexec/dovecot/pop3 # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. #pop3_process_size = 256 # Support for dynamically loadable modules. #pop3_use_modules = no #pop3_modules = /usr/lib/dovecot/pop3 ## ## Authentication processes ## # You can have multiple processes; each time "auth = xx" is seen, a new # process definition is started. The point of multiple processes is to be # able to set stricter permissions to others. For example, plain/PAM # authentication requires roots, but if you also use digest-md5 authentication # for some users, you can authenticate them without any privileges in a # separate auth process. Just remember that only one auth process is asked # for the password, so you can't have different passwords with different # processes (unless they have different auth methods, and you're ok with # having different password for each method). # Authentication process name. auth = default # Space separated list of wanted authentication mechanisms: # plain digest-md5 anonymous auth_mechanisms = plain # Space separated list of realms for SASL authentication mechanisms that need # them. You can leave it empty if you don't want to support multiple realms. # Many clients simply use the first one listed here, so keep the default realm # first. #auth_realms = # Default realm to use if none was specified. #auth_default_realm = # Where user database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # passwd-file : passwd-like file with specified location # static uid= gid= home=
: static settings # vpopmail: vpopmail library # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf #auth_userdb = passwd auth_userdb = ldap /usr/local/dovecot/etc/dovecot-ldap.conf # Where password database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # shadow: /etc/shadow or similiar, using getspnam() # pam [ | *]: PAM authentication # passwd-file : passwd-like file with specified location # vpopmail: vpopmail authentication # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf auth_passdb = pam imap #auth_passdb = ldap /usr/local/dovecot/etc/dovecot-ldap.conf #auth_executable = /usr/libexec/dovecot/dovecot-auth # Set max. process size in megabytes. #auth_process_size = 256 # User to use for the process. This user needs access to only user and # password databases, nothing else. Only shadow and pam authentication # requires roots, so use something else if possible. auth_user = root # Directory where to chroot the process. Most authentication backends don't # work if this is set, and there's no point chrooting if auth_user is root. #auth_chroot = # Number of authentication processes to create #auth_count = 1 # List of allowed characters in username. If the user-given username contains # a character not listed in here, the login automatically fails. This is just # an extra check to make sure user can't exploit any potential quote escaping # vulnerabilities with SQL/LDAP databases. If you want to allow all characters, # set this value to empty. #auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ # Username to use for users logging in with ANONYMOUS SASL mechanism #auth_anonymous_username = anonymous # More verbose logging. Useful for figuring out why authentication isn't # working. auth_verbose = yes # digest-md5 authentication process. It requires special MD5 passwords which # /etc/shadow and PAM doesn't support, so we never need roots to handle it. # Note that the passwd-file is opened before chrooting and dropping root # privileges, so it may be 0600-root owned file. #auth = digest_md5 #auth_methods = digest-md5 #auth_realms = #auth_userdb = passwd-file /etc/passwd.imap #auth_passdb = passwd-file /etc/passwd.imap #auth_user = imapauth #auth_chroot = # if you plan to use only passwd-file, you don't need the two auth processes, # simply set "auth_methods = plain digest-md5" -- Benjamin Dabelow benja.dabelow@gmx.net Staufenbergstr. 88 benja-dabelow.gmxhome.de/start.html 74081 Heilbronn Germany From tss@iki.fi Tue Feb 24 15:47:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B35D4C000D9D; Tue, 24 Feb 2004 15:47:20 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 75384C000D9B for ; Tue, 24 Feb 2004 15:47:18 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B9A0E300DF860 for ; Tue, 24 Feb 2004 15:43:55 +0200 (EET) Subject: Re: [Dovecot] ":" in filenames From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <66320902829-BeMail@lars> References: <66320902829-BeMail@lars> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-x2nkfnuQdAKgtaumfvwx" Message-Id: <1077630235.10809.13.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 24 Feb 2004 15:43:55 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Feb 2004 13:47:20 -0000 X-UID: 8723 Status: O Content-Length: 1453 --=-x2nkfnuQdAKgtaumfvwx Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-02-24 at 05:57, Lars Hansson wrote: > dovecot seems to have an issue with :'s in pathnames: > imap(test.user): Fatal: Failed to create storage with data: /home/ > hosted/example.com/users/test:user >=20 > This causes a bit of a problem with vmailmgr since it, by default, > replaces .'s in maildir path with :'s. > I'm curious as to why :'s in paths are an issue? Do they have special=20 > meaning to dovecot? Hmm.. They do. default_mail_env format is: "storage_format:data" and both mbox and maildir in "data" part treat it as "path:option:option2:..". So, Dovecot above thought "/home/hosted/example.com/users/test" was the storage format and "user" the data part for it. You could change default_mail_env =3D maildir:~/ but then Dovecot would think "user" as being unknown option.. I'm not sure what to do about this.. ':' was selected because it's PATH separator as well, so people rarely have directories containing ':' in it's name. Maybe it could be escaped as "\:".. --=-x2nkfnuQdAKgtaumfvwx Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAO1UbyUhSUUBViskRAskOAJsFKno7FZ2T5S0+P18wqoXx4LDtbQCePFNO /rljdIbJj6lRbeyM28aPOuA= =Nq55 -----END PGP SIGNATURE----- --=-x2nkfnuQdAKgtaumfvwx-- From daemon@kzone.ch Tue Feb 24 21:12:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1E4F7C000D9D; Tue, 24 Feb 2004 21:12:29 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id 3ED02C000D9B for ; Tue, 24 Feb 2004 21:12:26 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id UAA23084 for dovecot@dovecot.org; Tue, 24 Feb 2004 20:09:07 +0100 From: Sven Kirmess To: dovecot@dovecot.org Subject: Re: [Dovecot] IMAP subfolders Date: Tue, 24 Feb 2004 20:10:09 +0100 Organization: Kirmess Lines: 18 Message-ID: References: <4039E757.3080501@uvigo.es> <20040223150449.GV25873@cs.helsinki.fi> <000c01c3fa2f$4143b8b0$78ae3cd5@drei> NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1077649746 23079 192.168.100.100 (24 Feb 2004 19:09:06 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 24 Feb 2004 19:09:06 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <000c01c3fa2f$4143b8b0$78ae3cd5@drei> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Feb 2004 19:12:29 -0000 X-UID: 8724 Status: O Manuel Moran Vaquero wrote: > Is ist possible to specify in dovecot.conf that inbox is in mbox format and > to use Maildir for the rest of the folders? I remember having seen that > somewhere in this same list, but I can't find the message anymore. I think > that message said that it was not a supported feature, but the developers > were working on it. For now, I don't see any hints in the conf file for > configure the env to Maildir+Mbox, so I suppose it's still under > development. I guess the better aproach would be to have an option like wu-imap which transfers the mbox-INBOX into the maildir-INBOX each time time INBOX is stated, or however that is called in IMAP. This could remove the absolut need for an LDA if used with sendmail. -- Sven From moran@uvigo.es Wed Feb 25 11:09:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 299E9C000D9D; Wed, 25 Feb 2004 11:09:18 +0200 (EET) Received: from mail.uvigo.es (mail.uvigo.es [193.146.32.91]) by talvi.dovecot.org (Postfix) with ESMTP id 586AFC000D9B for ; Wed, 25 Feb 2004 11:09:15 +0200 (EET) Received: from mail.uvigo.es (localhost [127.0.0.1]) by mail.uvigo.es (8.12.11/8.12.1) with ESMTP id i1P95suM001981 for ; Wed, 25 Feb 2004 10:05:54 +0100 Received: from gauss.dma.uvigo.es (gauss.dma.uvigo.es [193.146.37.191]) by mail.uvigo.es (8.12.11/8.12.1) with ESMTP id i1P95rm1001972 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT); Wed, 25 Feb 2004 10:05:53 +0100 Received: from uvigo.es (cmax.dma.uvigo.es [193.146.37.204]) by gauss.dma.uvigo.es (8.12.10/8.12.10) with ESMTP id i1P95qVU017029; Wed, 25 Feb 2004 10:05:52 +0100 Message-ID: <403C6570.9020108@uvigo.es> Date: Wed, 25 Feb 2004 10:05:52 +0100 From: Manuel Moran Vaquero User-Agent: Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.6) Gecko/20040116 X-Accept-Language: es-es, es MIME-Version: 1.0 To: Sven Kirmess Subject: Re: [Dovecot] IMAP subfolders References: <4039E757.3080501@uvigo.es> <20040223150449.GV25873@cs.helsinki.fi> <000c01c3fa2f$4143b8b0$78ae3cd5@drei> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 09:09:18 -0000 X-UID: 8725 Status: O Sven Kirmess escribió: > > I guess the better aproach would be to have an option like wu-imap > which transfers the mbox-INBOX into the maildir-INBOX each time time > INBOX is stated, or however that is called in IMAP. This could remove the > absolut need for an LDA if used with sendmail. Thanks, Sven! But I think I'll stick to the Rick Johnson's solution about modifying procmail delivery, and converting all users' mailboxes to Maildir. This makes me think about the dovecot integration in Fedora Core 1. It works perfectly out of the box with sendmail, but as default on a mbox spool folder. It'd be nice if a Maildir skel was added to /etc/skel, and procmail delivering to that directory. But I'm sure that if they didn't already include this is because it has plenty of side-issues (like, probably, incompatibility with wu-imap). Thanks all for your replies! They really helped! Manuel Moran From asmoore@edge.net Wed Feb 25 15:06:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 78FA1C000D9D; Wed, 25 Feb 2004 15:06:16 +0200 (EET) Received: from sccrmhc12.comcast.net (sccrmhc12.comcast.net [204.127.202.56]) by talvi.dovecot.org (Postfix) with ESMTP id 1E79AC000D9B for ; Wed, 25 Feb 2004 15:06:14 +0200 (EET) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (sccrmhc12) with ESMTP id <2004022513024201200estq9e>; Wed, 25 Feb 2004 13:02:42 +0000 Received: from sws602 (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.10+Sun/8.12.10) with SMTP id i1PD2fUJ029312 for ; Wed, 25 Feb 2004 07:02:41 -0600 (CST) Date: Wed, 25 Feb 2004 07:02:41 -0600 From: Alex S Moore To: dovecot@dovecot.org Subject: Re: [Dovecot] Pam trouble Message-Id: <20040225070241.066bfe5f@sws602> In-Reply-To: <1077621183.403b31bfda984@webmail.nusseis.de> References: <1077621183.403b31bfda984@webmail.nusseis.de> X-Mailer: Sylpheed version 0.9.9claws25 (GTK+ 1.2.10; sparc-sun-solaris2.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version devel-20040216, clamav-milter version 0.67a X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 13:06:16 -0000 X-UID: 8726 Status: O On Tue, 24 Feb 2004 12:13:03 +0100 Benjamin Dabelow wrote: > Hi folks, > > I can't get dovecot to authenticate properly against ldap/pam. > > I've been fiddling with it for several days now, to no avail. It keeps > crashing with: > Child died with signal 11 > > The system is Solaris9. Enclosed is a trace of dovecot-auth for a > connection to pop with correct username and password and my config. > Are you using Solaris 9 native ldap? What configure options did you use when building dovecot? I am using Solaris 9 native ldap with TLS:simple authentication and dovecot works just fine. If you are using OpenLDAP, except for building dovecot, I probably cannot help. Alex From www-data@nusseis.de Wed Feb 25 15:17:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A3A3DC000D9D; Wed, 25 Feb 2004 15:17:33 +0200 (EET) Received: from nusseis.de (nusseis.de [81.169.154.52]) by talvi.dovecot.org (Postfix) with ESMTP id BDA7AC000D9B for ; Wed, 25 Feb 2004 15:17:31 +0200 (EET) Received: from www-data by nusseis.de with local (Exim 3.35 #1 (Debian)) id 1AvynW-0004kh-00 for ; Wed, 25 Feb 2004 14:09:58 +0100 Received: from isildur.rz.fh-heilbronn.de (isildur.rz.fh-heilbronn.de [141.7.1.11]) by webmail.nusseis.de (IMP) with HTTP for ; Wed, 25 Feb 2004 14:09:58 +0100 Message-ID: <1077714598.403c9ea6d5b64@webmail.nusseis.de> Date: Wed, 25 Feb 2004 14:09:58 +0100 From: Benjamin Dabelow To: dovecot@dovecot.org Subject: Re: [Dovecot] Pam trouble MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.2 Sender: www-data X-Sender: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 13:17:33 -0000 X-UID: 8727 Status: O Content-Length: 1908 Hi Alex, > Are you using Solaris 9 native ldap? What configure options did you use > when building dovecot? I'm using OpenLDAP, but I think it's a pam rather than ldap problem. Dovecot check for the existance of a user alright, but fails when checking the password. My build script is enclosed. Cheers Benjamin Buildscript----------------------------------------------------- #!/bin/bash ## Defaults CC="gcc" CXX="g++" LDPATH="/usr/local/lib:/usr/sfw/lib:/usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3" CPPFLAGS="-I/usr/local/include -I/usr/sfw/include" LDFLAGS="-L/usr/local/lib -L/usr/sfw/lib" CFLAGS= #SSL LDPATH="$LDPATH:/usr/local/ssl/lib" CPPFLAGS="$CPPFLAGS -I/usr/local/ssl/include" LDFLAGS="$LDFLAGS -L/usr/local/ssl/lib -lssl -lcrypto" #BerkeleyDB LDPATH="$LDPATH:/usr/local/BerkeleyDB/lib" CPPFLAGS="$CPPFLAGS -I/usr/local/BerkeleyDB/include" LDFLAGS="$LDFLAGS -L/usr/local/BerkeleyDB/lib -ldb" CFLAGS="$CFLAGS -ldb" AUTH_CFLAGS="-I/usr/local/BerkeleyDB/include -L/usr/local/BerkeleyDB/lib -ldb" AUTH_LIBS="-ldb" #GDBM LDPATH="$LDPATH:/usr/local/gdbm/lib" CPPFLAGS="$CPPFLAGS -I/usr/local/gdbm/include" LDFLAGS="$LDFLAGS -L/usr/local/gdbm/lib -lgdbm" #LDAP LDPATH="$LDPATH:/opt/OpenLDAP/lib" CPPFLAGS="$CPPFLAGS -I/opt/OpenLDAP/include" LDFLAGS="$LDFLAGS -L/opt/OpenLDAP/lib -lldap -llber -lresolv" #Finishing LDFLAGS="-R$LDPATH $LDFLAGS" export LDFLAGS CPPFLAGS CFLAGS echo -e "\nLDFLAGS=$LDFLAGS" echo -e "\nCPPFLAGS=$CPPFLAGS" echo -e "\nCFLAGS=$CFLAGS" cd dovecot-0.99.10.4 echo -e "\nPress RETURN to configure or CTRL+C to cancel." read ./configure --prefix=/usr/local/dovecot --with-ldap=/opt/OpenLDAP --with-ssl=openssl --with-storages=maildir echo -e "\nPress RETURN to make or CTRL+C to cancel." read make -- Benjamin Dabelow benja.dabelow@gmx.net Staufenbergstr. 88 benja-dabelow.gmxhome.de/start.html 74081 Heilbronn Germany From asmoore@edge.net Wed Feb 25 15:43:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2C69DC000D9D; Wed, 25 Feb 2004 15:43:29 +0200 (EET) Received: from sccrmhc13.comcast.net (sccrmhc13.comcast.net [204.127.202.64]) by talvi.dovecot.org (Postfix) with ESMTP id 96C1AC000D9B for ; Wed, 25 Feb 2004 15:43:26 +0200 (EET) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (sccrmhc13) with ESMTP id <2004022513395401600d908le>; Wed, 25 Feb 2004 13:39:54 +0000 Received: from sws602 (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.10+Sun/8.12.10) with SMTP id i1PDdsUJ029434 for ; Wed, 25 Feb 2004 07:39:54 -0600 (CST) Date: Wed, 25 Feb 2004 07:39:54 -0600 From: Alex S Moore To: dovecot@dovecot.org Subject: Re: [Dovecot] Pam trouble Message-Id: <20040225073954.74220fb6@sws602> In-Reply-To: <1077714598.403c9ea6d5b64@webmail.nusseis.de> References: <1077714598.403c9ea6d5b64@webmail.nusseis.de> X-Mailer: Sylpheed version 0.9.9claws25 (GTK+ 1.2.10; sparc-sun-solaris2.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version devel-20040216, clamav-milter version 0.67a X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 13:43:29 -0000 X-UID: 8728 Status: O Content-Length: 1617 On Wed, 25 Feb 2004 14:09:58 +0100 Benjamin Dabelow wrote: > Hi Alex, > > I'm using OpenLDAP, but I think it's a pam rather than ldap problem. > Dovecot check for the existance of a user alright, but fails when > checking the password. > Sorry, I know nothing of Solaris nss_ldap library integration with OpenLDAP. Here is a sample of my pam.conf, if that helps, but it is setup for Solaris 9 native ldap. My dovecot server is slightly different. It is Solaris 8 hitting a Solaris 9 native ldap server with TLS. # login service (explicit because of pam_dial_auth) # login auth requisite pam_authtok_get.so.1 login auth required pam_dhkeys.so.1 login auth required pam_dial_auth.so.1 login auth binding pam_unix_auth.so.1 server_policy login auth required pam_ldap.so.1 Do you have another non-Sun application working with your authentication setup? Is the pldd output on a pop3-login process similar to the following? This is on Solaris 8, so on Solaris 9 you can replace sldaputil.so.5 and libsldap.so.1 with sldaputil.so.1 and libldap.so.5 and nss_ldap.so.1 may not be in the list. [root@mcsun3 /tmp]# pldd 13257 13257: pop3-login /opt/csw/lib/libssl.so.0.9.7 /opt/csw/lib/libcrypto.so.0.9.7 /usr/lib/libdl.so.1 /usr/lib/libsocket.so.1 /usr/lib/libnsl.so.1 /usr/lib/librt.so.1 /usr/lib/libsendfile.so.1 /usr/lib/libc.so.1 /usr/lib/libmp.so.2 /usr/lib/libaio.so.1 /usr/lib/nss_files.so.1 /usr/lib/nss_ldap.so.1 /usr/lib/sldaputil.so.5 /usr/lib/libsldap.so.1 /usr/lib/libmd5.so.1 /usr/lib/libdoor.so.1 [root@mcsun3 /tmp]# Sorry, I have not spent any time on OpenLDAP. Alex From www-data@nusseis.de Wed Feb 25 16:01:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7454EC002800; Wed, 25 Feb 2004 16:01:52 +0200 (EET) Received: from nusseis.de (nusseis.de [81.169.154.52]) by talvi.dovecot.org (Postfix) with ESMTP id 50360C000D9B for ; Wed, 25 Feb 2004 16:01:50 +0200 (EET) Received: from www-data by nusseis.de with local (Exim 3.35 #1 (Debian)) id 1AvzUP-0004pW-00 for ; Wed, 25 Feb 2004 14:54:17 +0100 Received: from isildur.rz.fh-heilbronn.de (isildur.rz.fh-heilbronn.de [141.7.1.11]) by webmail.nusseis.de (IMP) with HTTP for ; Wed, 25 Feb 2004 14:54:17 +0100 Message-ID: <1077717257.403ca909719d4@webmail.nusseis.de> Date: Wed, 25 Feb 2004 14:54:17 +0100 From: Benjamin Dabelow To: dovecot@dovecot.org Subject: Re: [Dovecot] Pam trouble References: <1077714598.403c9ea6d5b64@webmail.nusseis.de> <20040225073954.74220fb6@sws602> In-Reply-To: <20040225073954.74220fb6@sws602> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.2 Sender: www-data X-Sender: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 14:01:52 -0000 X-UID: 8729 Status: O Content-Length: 1575 > Sorry, I know nothing of Solaris nss_ldap library integration with > OpenLDAP. Here is a sample of my pam.conf, if that helps, but it is setup > for Solaris 9 native ldap. Pam for login is working flawlessly. > Do you have another non-Sun application working with your authentication > setup? Exim (MTA) is working with pam and ldap like a charm. > Is the pldd output on a pop3-login process similar to the following? This > is on Solaris 8, so on Solaris 9 you can replace sldaputil.so.5 and > libsldap.so.1 with sldaputil.so.1 and libldap.so.5 and nss_ldap.so.1 may > not be in the list. Seems like slaputil.so is missing: 16792: pop3-login /usr/local/BerkeleyDB.4.0/lib/libdb-4.0.so /usr/local/gdbm/lib/libgdbm.so.3.0.0 /opt/OpenLDAP-2.1.25/lib/libldap.so.2.0.124 /opt/OpenLDAP-2.1.25/lib/liblber.so.2.0.124 /usr/lib/libresolv.so.2 /usr/local/ssl/lib/libssl.so.0.9.7 /usr/local/ssl/lib/libcrypto.so.0.9.7 /usr/lib/libsocket.so.1 /usr/lib/libnsl.so.1 /usr/lib/librt.so.1 /usr/lib/libsendfile.so.1 /usr/lib/libc.so.1 /usr/lib/libgen.so.1 /usr/lib/libdl.so.1 /usr/lib/libpthread.so.1 /usr/local/BerkeleyDB.4.1/lib/libdb-4.1.so /usr/local/lib/libsasl2.so.2.0.17 /usr/local/lib/libgcc_s.so.1 /usr/lib/libmp.so.2 /usr/lib/libaio.so.1 /usr/lib/libmd5.so.1 /usr/platform/sun4u-us3/lib/libc_psr.so.1 /usr/lib/libthread.so.1 /usr/lib/nss_files.so.1 /usr/lib/nss_ldap.so.1 Thanks for your help Benjamin -- Benjamin Dabelow benja.dabelow@gmx.net Staufenbergstr. 88 benja-dabelow.gmxhome.de/start.html 74081 Heilbronn Germany From asmoore@edge.net Wed Feb 25 16:21:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3EF3DC000D9D; Wed, 25 Feb 2004 16:21:13 +0200 (EET) Received: from sccrmhc11.comcast.net (sccrmhc11.comcast.net [204.127.202.55]) by talvi.dovecot.org (Postfix) with ESMTP id DF997C000D9B for ; Wed, 25 Feb 2004 16:21:10 +0200 (EET) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (sccrmhc11) with ESMTP id <2004022514174401100pfmgfe>; Wed, 25 Feb 2004 14:17:44 +0000 Received: from sws602 (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.10+Sun/8.12.10) with SMTP id i1PEHhUJ029486 for ; Wed, 25 Feb 2004 08:17:43 -0600 (CST) Date: Wed, 25 Feb 2004 08:17:43 -0600 From: Alex S Moore To: dovecot@dovecot.org Subject: Re: [Dovecot] Pam trouble Message-Id: <20040225081743.1f7b6cff@sws602> In-Reply-To: <1077717257.403ca909719d4@webmail.nusseis.de> References: <1077714598.403c9ea6d5b64@webmail.nusseis.de> <20040225073954.74220fb6@sws602> <1077717257.403ca909719d4@webmail.nusseis.de> X-Mailer: Sylpheed version 0.9.9claws25 (GTK+ 1.2.10; sparc-sun-solaris2.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version devel-20040216, clamav-milter version 0.67a X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 14:21:13 -0000 X-UID: 8730 Status: O On Wed, 25 Feb 2004 14:54:17 +0100 Benjamin Dabelow wrote: > Seems like slaputil.so is missing: > That may be a Solaris native ldap client library. What you have looks reasonable. Maybe Timo can review the trace output and see what is happening. Alex From bgelbe@gwdg.de Tue Feb 24 16:35:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A2844C000D9D; Tue, 24 Feb 2004 16:35:51 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 2A962C000D9B for ; Tue, 24 Feb 2004 16:35:49 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id 70E022385D; Tue, 24 Feb 2004 16:32:31 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 5E620239F6; Tue, 24 Feb 2004 16:32:31 +0200 (EET) Received: from mailer.gwdg.de (mailer.gwdg.de [134.76.10.26]) by danu.procontrol.fi (Postfix) with ESMTP id CF4992385D for ; Tue, 24 Feb 2004 16:31:57 +0200 (EET) Received: from pcgelbe.gwdg.de ([134.76.5.112] helo=gwdg.de) by mailer.gwdg.de with asmtp (TLSv1:RC4-MD5:128) (Exim 4.20) id 1AvdbI-0007pM-Ae for dovecot@procontrol.fi; Tue, 24 Feb 2004 15:31:56 +0100 Message-ID: <403B605B.4040701@gwdg.de> Date: Tue, 24 Feb 2004 15:31:55 +0100 From: Bodo Gelbe User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@procontrol.fi Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Level: / X-Spam-Report: Content analysis: 0.0 points, 6.0 required X-Virus-Scanned: (clean) by exiscan+sophie X-AUTH-Id: bgelbe X-Mailman-Approved-At: Wed, 25 Feb 2004 18:58:06 +0200 Cc: Subject: [Dovecot] help: The current command did not succeed. The mail server responded: Invalid mask. X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Feb 2004 14:35:51 -0000 X-UID: 8731 Status: O Am tryin to move from uw-imapd to dovecot, using dovecot ver 0.99.10.4. Reading with Mozilla Mail v 1.4. I made some test accounts and they seem to be working fine, but my older existing accounts give error messages whenever I connect or subscribe to mailboxes within them. The message that appears on the client is: "The current command did not succeed. The mail server responded: Invalid mask." it appears two or three times in an alert box (on windows) then everything seems to work. The masks (I've put a syslog call into the code) are: "~%", "~%~%" and "~*". The test accounts I created don't have this problem. Thanks in advance for any advice, -- Bodo Gelbe From gmid-dovecot@m.gmane.org Wed Feb 25 01:44:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F14A5C000D9D; Wed, 25 Feb 2004 01:44:22 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id CE24DC000D9B for ; Wed, 25 Feb 2004 01:44:18 +0200 (EET) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AvmAb-0004Jp-00 for ; Wed, 25 Feb 2004 00:40:59 +0100 Received: from reverse-213-146-126-208.dialin.kamp-dsl.de ([213.146.126.208]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue Feb 24 23:40:59 2004 Received: from rscholz by reverse-213-146-126-208.dialin.kamp-dsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue Feb 24 23:40:59 2004 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: dovecot@dovecot.org To: dovecot@dovecot.org From: Raymond Scholz Date: Wed, 25 Feb 2004 00:13:39 +0100 Organization: =?UTF-8?Q?/=CB=8C=C9=94=CB=90=C9=A1=C9=99na=C9=AA=CB=88ze=C9=AA=CA=83n/?= Lines: 58 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: reverse-213-146-126-208.dialin.kamp-dsl.de X-Now-Playing: Nothing Mail-Copies-To: nobody User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux) Cancel-Lock: sha1:4V8bMTghUjFiauoBLayg1XZ4pxk= Sender: news X-Mailman-Approved-At: Wed, 25 Feb 2004 18:58:06 +0200 Subject: [Dovecot] More than one auth method with dovevot 0.99.10.4 - how? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Raymond Scholz List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Feb 2004 23:44:23 -0000 X-UID: 8732 Status: O Content-Length: 1513 We're setting up a server with qmail/vpopmail and dovecot. In addition to vpopmail users we want non-virtual, local users to be able to authenticate and have them read the Maildir in their real $HOME. vpopmail userdb/passwd works fine. Now how do I tell dovecot to use passwd (or PAM) userdb/passdb authentication too? /etc/dovecot.conf: [...] auth = default auth_mechanisms = plain auth_userdb = vpopmail auth_passdb = vpopmail auth_user = root auth_verbose = yes auth = local auth_mechanisms = plain auth_userdb = passwd /etc/passwd auth_passdb = pam auth_user = root auth_verbose = yes #auth_methods = default local EOF I think, I'm supposed to put the auth_methods line somewhere. Without it, dovecot only tries authentication using the first auth process definition: | Feb 25 00:01:49 server1 dovecot-auth: vpopmail(rscholz): unknown user (rscholz@) after loggin in with ". login rscholz secret_password" at the IMAP server. Putting the auth_methods line behind the two auth processes (or somewhere in the middle) gives me: | Starting mail server: dovecotFatal: Error in configuration file /etc/dovecot.conf line 456: Unknown setting: methods Putting it above all auth processes gives me: | Starting mail server: dovecotFatal: Error in configuration file /etc/dovecot.conf line 362: Authentication process name not defined yet Hm, I'm lost here. System is Debian i386 stable (woody) with dovecot_0.99.10.4-2.deb backported from Debian unstable. Cheers, Ray -- Hfr fgebat rapelcgvba! From tss@iki.fi Wed Feb 25 19:07:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 89E7EC000D9D; Wed, 25 Feb 2004 19:07:23 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id BE499C000D9B for ; Wed, 25 Feb 2004 19:07:20 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E9D14300DF862 for ; Wed, 25 Feb 2004 19:03:59 +0200 (EET) Subject: Re: [Dovecot] Pam trouble From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <1077621183.403b31bfda984@webmail.nusseis.de> References: <1077621183.403b31bfda984@webmail.nusseis.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Uq3rDlViQzbyhT5t+Px9" Message-Id: <1077728639.10812.58.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:03:59 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 17:07:23 -0000 X-UID: 8733 Status: O Content-Length: 1160 --=-Uq3rDlViQzbyhT5t+Px9 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-02-24 at 13:13, Benjamin Dabelow wrote: > Hi folks, >=20 > I can't get dovecot to authenticate properly against ldap/pam. >=20 > I've been fiddling with it for several days now, to no avail. It keeps cr= ashing > with: > Child died with signal 11 Is this the exact error message? Dovecot doesn't send this, so do you mean it's PAM subprocess that dies or dovecot-auth process itself? Crashes are better debugged with gdb: gdb /usr/local/libexec/dovecot/dovecot-auth (pid of dovecot-auth) Enter "c" command to let it continue. Try logging in. gdb should show that it crashed now. Enter "bt" command and send me the result. If it crashes inside pam_ldap handler, it's a bug in it. --=-Uq3rDlViQzbyhT5t+Px9 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPNV/yUhSUUBViskRAoeQAJ9WoRx8XkouANqF7SjDAwFCg3j/LwCfaUt3 u2u63cogEY7MNKbrHxwVaVY= =bfuh -----END PGP SIGNATURE----- --=-Uq3rDlViQzbyhT5t+Px9-- From tss@iki.fi Wed Feb 25 19:10:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6CDBEC000D9D; Wed, 25 Feb 2004 19:10:43 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 7EA10C000D9B for ; Wed, 25 Feb 2004 19:10:41 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B4D0B300DF863 for ; Wed, 25 Feb 2004 19:07:20 +0200 (EET) Subject: Re: [Dovecot] [OT] How is the Changelog file created? From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-saV3E+1RzZ0HYB9o7asV" Message-Id: <1077728840.10812.62.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:07:20 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 17:10:43 -0000 X-UID: 8734 Status: O --=-saV3E+1RzZ0HYB9o7asV Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2004-02-22 at 22:59, Sven Kirmess wrote: > How is the Changelog file created? >=20 > I assume there is a tool which grabs this information > from the CVS repository. What's the name of this tool? cvs2cl. The whole script I use is: http://dovecot.org/tmp/changelog.sh --=-saV3E+1RzZ0HYB9o7asV Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPNZIyUhSUUBViskRAhYmAJ9jRbmjyk8/RYLGnSDWm1W0V9TiwwCfbK0y Jq9hW+2n3qqmlA5s7mXQ3Uo= =GC78 -----END PGP SIGNATURE----- --=-saV3E+1RzZ0HYB9o7asV-- From tss@iki.fi Wed Feb 25 19:13:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 650C7C000D9D; Wed, 25 Feb 2004 19:13:12 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 21CF5C000D9B for ; Wed, 25 Feb 2004 19:13:10 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 5381F300DF863 for ; Wed, 25 Feb 2004 19:09:49 +0200 (EET) Subject: Re: [Dovecot] too large imap.index.data files From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20040222211246.GA29703@linfe.it> References: <20040222211246.GA29703@linfe.it> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-5Msx1iIFEF1NA2lxHgC8" Message-Id: <1077728989.10804.66.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:09:49 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 17:13:12 -0000 X-UID: 8735 Status: O Content-Length: 1046 --=-5Msx1iIFEF1NA2lxHgC8 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2004-02-22 at 23:12, Network Wizards wrote: > I have noticed that imap.index.data are often too large files (several Mi= Bs). > Is there a way to limit their size or to shrink dimension=20 They should be large only if there's lots of mails and they should shrink automatically when you delete mails. However in next version they will be somewhat smaller. Currently it contains all kind of data that client may not be interested in, next version stores only what clients actually use. > or to assign=20 > another directory where those file are stored? Sven answered this. --=-5Msx1iIFEF1NA2lxHgC8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD4DBQBAPNbdyUhSUUBViskRAmEcAJiz9U7VdH+ivWgI8gwY6qr18+iaAKCAqohq wQQy+CcVcOhNjJlEIAVOuw== =R0t7 -----END PGP SIGNATURE----- --=-5Msx1iIFEF1NA2lxHgC8-- From tss@iki.fi Wed Feb 25 19:22:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 85E02C000D9D; Wed, 25 Feb 2004 19:22:33 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 82852C000D9B for ; Wed, 25 Feb 2004 19:22:31 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id AD52C300DF863 for ; Wed, 25 Feb 2004 19:19:10 +0200 (EET) Subject: Re: [Dovecot] debian unstable : mutt polling imap mailboxes From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20040216150557.GI636@cs.helsinki.fi> References: <20040216150557.GI636@cs.helsinki.fi> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-larMDsAktkCv/Oq1dVBP" Message-Id: <1077729550.10801.74.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:19:10 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 17:22:33 -0000 X-UID: 8736 Status: O Content-Length: 1056 --=-larMDsAktkCv/Oq1dVBP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-02-16 at 17:05, Kai Hendry wrote: > I am accessing my IMAP folder on my ~/Maildir using mutt via Dovecot and > I have this problem whereby mutt incorrectly reports I have new mail in a > "mailboxes" polled mailbox. >=20 > This happens all the time when I press the key bound to change mailbox. >=20 > I use courier IMAP at school, and I have not experienced this problem. A > bug with dovecot or mutt? It's most likely a Dovecot bug, possibly related to somewhat broken RECENT count handling. I can't reproduce it though, do you have to tell mutt somehow to check the new mails? --=-larMDsAktkCv/Oq1dVBP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPNkOyUhSUUBViskRAsmkAJ4n2KNkBa9Kx2dPbdMG7PX/dJySwwCfVMa4 a7XuSdEBpRcPnijvzS+M0ik= =8fhW -----END PGP SIGNATURE----- --=-larMDsAktkCv/Oq1dVBP-- From tss@iki.fi Wed Feb 25 19:30:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 113F2C000D9D; Wed, 25 Feb 2004 19:30:14 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 0C93BC000D9B for ; Wed, 25 Feb 2004 19:30:12 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 33B2E300DF863 for ; Wed, 25 Feb 2004 19:26:51 +0200 (EET) Subject: Re: [Dovecot] RE: Question on folders From: Timo Sirainen To: Dovecot In-Reply-To: <20040213123613.12a71aad@sws602> References: <20040213123613.12a71aad@sws602> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-wIsJiP+hBMBc+gghBt6G" Message-Id: <1077730011.10804.79.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:26:51 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 17:30:14 -0000 X-UID: 8737 Status: O Content-Length: 1036 --=-wIsJiP+hBMBc+gghBt6G Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-02-13 at 20:36, Alex S Moore wrote: > I have read and read the dovecot docs on maildir folders and think that > this is what I want. However, the MUA programs that I use, SylpheedClaws= , > Evolution, Mozilla seem to react differently to how I setup the folders. Do you mean your MUA accesses the mailboxes directly? Why not via IMAP? Then it shouldn't make any difference what clients you use and where exactly the mails are stored in server side, as long as you've set Dovecot's default_mail_env correctly and clients doesn't try to set any "imap prefix". --=-wIsJiP+hBMBc+gghBt6G Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPNrbyUhSUUBViskRAgXAAJ9s4Drf8WSryqC704Dok+5qHOBOpwCeOhpT 2VceLFTHEgizv942EGnw4No= =QOiG -----END PGP SIGNATURE----- --=-wIsJiP+hBMBc+gghBt6G-- From tss@iki.fi Wed Feb 25 19:31:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 519EDC002801; Wed, 25 Feb 2004 19:31:44 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 537F8C000D9B for ; Wed, 25 Feb 2004 19:31:42 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 859BB300DF863 for ; Wed, 25 Feb 2004 19:28:21 +0200 (EET) Subject: Re: [Dovecot] [PATCH] POP3: Fix RFC1939 non-compliance in STAT, LIST and UIDL commands From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <1076755128.25963.1017.camel@skyelar> References: <1076755128.25963.1017.camel@skyelar> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-9LFrU09/0hk4Lu78KQms" Message-Id: <1077730101.10804.82.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:28:21 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 17:31:44 -0000 X-UID: 8738 Status: O --=-9LFrU09/0hk4Lu78KQms Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-02-14 at 12:38, Nic Bellamy wrote: > Hi all, > attached is a patch against 0.99.10.4 that fixes the STAT, LIST and > UIDL POP3 command output in the case that they're issued after one or > more messages have been deleted. Thanks, I'll apply it after I'm done with index file changes. Until then it can be also found in http://dovecot.org/patches/ --=-9LFrU09/0hk4Lu78KQms Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPNs1yUhSUUBViskRAosbAJwNn9aBMIiq4kmJOlUJvNuu+6ZCqgCfR2Br lgKI5HbmNClnzZFL7Lbkxp0= =nq+I -----END PGP SIGNATURE----- --=-9LFrU09/0hk4Lu78KQms-- From tss@iki.fi Wed Feb 25 19:33:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 722CCC002801; Wed, 25 Feb 2004 19:33:10 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 72DB8C002800 for ; Wed, 25 Feb 2004 19:33:08 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A3EC1300DF863 for ; Wed, 25 Feb 2004 19:29:47 +0200 (EET) Subject: Re: [Dovecot] auth_executable From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <1950000.1076689475@localhost> References: <1950000.1076689475@localhost> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-3HBTEjTeWr+NDL9FfyBb" Message-Id: <1077730187.10808.85.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:29:47 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 17:33:10 -0000 X-UID: 8739 Status: O --=-3HBTEjTeWr+NDL9FfyBb Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-02-13 at 18:24, Helmut Zeilinger wrote: > Hi, >=20 > i am new to dovecot and i don't know what i can do with > the "auth_executable" setting in the "dovecot.conf" file. It's simply the path for Dovecot's dovecot-auth binary, if you had placed it in non-standard location. > Can i invoke an external program for authentification? > If yes, is there a description what this program/script has to do? No, there's no way to do that yet. You could write a plugin for dovecot-auh to allow it though. --=-3HBTEjTeWr+NDL9FfyBb Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPNuLyUhSUUBViskRAuS0AJ4vbfvrqm4zKaQzOAdw2oxPrA77PgCfQ6lM aK+wVSIqi6ELm4my0X/Kn6s= =a4We -----END PGP SIGNATURE----- --=-3HBTEjTeWr+NDL9FfyBb-- From tss@iki.fi Wed Feb 25 19:39:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 28D51C002800; Wed, 25 Feb 2004 19:39:21 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 5B098C000D9D for ; Wed, 25 Feb 2004 19:39:18 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7868C300DF863 for ; Wed, 25 Feb 2004 19:35:57 +0200 (EET) Subject: Re: [Dovecot] X-UID From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: References: <20040210204133.A33E8C00281D@talvi.dovecot.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-FvLKU8jsUmxOGYu7UFWO" Message-Id: <1077730557.10812.93.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:35:57 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 17:39:21 -0000 X-UID: 8740 Status: O Content-Length: 1486 --=-FvLKU8jsUmxOGYu7UFWO Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-02-11 at 17:37, Paul Adams wrote: > What is the function of the X-UID header in mbox format? Dovecot gets IMAP UID from it. The header isn't supposed to be sent to clients at all, but the current code still does.. > Running Thunderbird 0.5 against a Dovecot IMAP server with mbox format, > Thunderbird displays these UID numbers in the message list, which is > fairly useless -- I want a numbered list of my messages starting at 1 > (which Pine, for example, is happy to provide). Does Thunderbird actually use the X-UID header, not just the IMAP UID that gets sent separately? If the X-UID header is the problem, it's then Dovecot bug that it shows the header to Thunderbird. If Thunderbird just uses IMAP UID and shows it, I agree it's pretty useless but that's for Thunderbird to fix. > I'm just wondering whether this is Dovecot's fault, Thunderbird's fault, > or an ambiguity in the mbox standard. IMAP clients shouldn't know anything about what kind of mailbox format is being used in server side. --=-FvLKU8jsUmxOGYu7UFWO Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPNz9yUhSUUBViskRArYsAJ9MnK/Ay1if7a7/3DJ+ioSnqMDL9wCffK4M sjr2vmoHp0EF8aGJS/aTiOc= =+45D -----END PGP SIGNATURE----- --=-FvLKU8jsUmxOGYu7UFWO-- From tss@iki.fi Wed Feb 25 19:46:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D79FAC002800; Wed, 25 Feb 2004 19:46:54 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id B5121C000D9D for ; Wed, 25 Feb 2004 19:46:52 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id CE6E4300DF863 for ; Wed, 25 Feb 2004 19:43:31 +0200 (EET) Subject: Re: [Dovecot] Mailbox formats From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <11685482.1076416697@[10.0.0.221]> References: <11685482.1076416697@[10.0.0.221]> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-UcU/95bvkTrG6phVOm4q" Message-Id: <1077731011.10801.101.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:43:31 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 17:46:55 -0000 X-UID: 8741 Status: O Content-Length: 1657 --=-UcU/95bvkTrG6phVOm4q Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-02-10 at 22:38, Kenneth Porter wrote: > I'm currently using mbox and mbx with UW-IMAP, mbox for space efficiency=20 > and mbx for folders with lots of messages for time efficiency without a=20 > large space cost.=20 The reason why mbx takes more space is that it uses CR+LF linefeeds instead of just LF.. > I've avoided maildir because it has a relatively high=20 > space cost; mbox has no inter-message cost while maildir wastes on averag= e=20 > half a sector plus an inode for each message. AFAIK ReiserFS doesn't lose any space (or much). > What other formats are there, and has anyone come up with a good format=20 > that gives both good time and space characteristics without sacrificing=20 > reliability? >=20 > (I'm aware of the file format list in the UW-IMAP distro:=20 > ) UW-IMAP's author is thinking of some hybrid format where a single mailbox could be built from multiple files, but a single file could contain multiple messages. I think this could be made to work pretty well and reliably. I don't know more about his plans though, I didn't find any discussion about it in c-client list at least. --=-UcU/95bvkTrG6phVOm4q Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPN7DyUhSUUBViskRAmwdAJ49XxtjT/0AKPKBaHDNyinFFivHBgCfbQ7D vUBa+WUnuitYdgSIkDAQAek= =cUsN -----END PGP SIGNATURE----- --=-UcU/95bvkTrG6phVOm4q-- From tss@iki.fi Wed Feb 25 19:58:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EE1B6C002800; Wed, 25 Feb 2004 19:58:13 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id BD96AC000D9D for ; Wed, 25 Feb 2004 19:58:11 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D3C25300DF863; Wed, 25 Feb 2004 19:54:50 +0200 (EET) Subject: Re: [Dovecot] Dovecot and Mulberry From: Timo Sirainen To: Kenneth Porter In-Reply-To: <16370088.1076421382@[10.0.0.221]> References: <16370088.1076421382@[10.0.0.221]> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-bn8PPwpFMgobX1qrMpHf" Message-Id: <1077731690.10812.117.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:54:50 +0200 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 17:58:14 -0000 X-UID: 8742 Status: O Content-Length: 1760 --=-bn8PPwpFMgobX1qrMpHf Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-02-10 at 23:56, Kenneth Porter wrote: > FYI. Does Dovecot implement BODYSTRUCTURE? .. > Most annoying is that suddenly some incoming mail are parsed wrong, i.e. > even if the mail has has proper Content-Type: text/plain; > charset=3D"iso-8859-1" and > Content-Transfer-Encoding: quoted-printable, it is displayed as 7bit and > us-ascii. All these =3DF6 and so on is irritating. The only way remedy th= e > problem is to quit mulberry and start again and almost always the email i= s > displayed properly. And if the mail that gets misinterpreted is a > multi-part email mulberry only reports that it has one part. But if you > view the mail in raw all the parts are there. I've yet to see a pattern i= n > then mulberry starts this misinterpretations. Sometimes it is a email fro= m > pine or a mail from a mailinglist or from outlook or ... Sounds pretty strange to me. I think Evolution uses BODYSTRUCTURE as well and I have never seen this kind of problems. But it does sound like Dovecot sends wrong BODYSTRUCTURE in some cases. And if Mulberry works after restarting, it means Dovecot sends correct BODYSTRUCTURE next time or Mulberry does the parsing internally this time. It would help if you could turn on IMAP logging in Mulberry and send it to me when this happens again. --=-bn8PPwpFMgobX1qrMpHf Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPOFqyUhSUUBViskRAjcKAJ491tm76XFZt26OYkDJG9N+v+YUgwCfYjSG mEERz0/W3h/KAbzROfqUeEM= =gdt7 -----END PGP SIGNATURE----- --=-bn8PPwpFMgobX1qrMpHf-- From tss@iki.fi Wed Feb 25 20:01:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DF66CC002800; Wed, 25 Feb 2004 20:01:30 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B69EFC000D9D for ; Wed, 25 Feb 2004 20:01:28 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id E0A59239F5; Wed, 25 Feb 2004 19:58:07 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id DBC8C239F6; Wed, 25 Feb 2004 19:58:07 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1D377239F5 for ; Wed, 25 Feb 2004 19:57:33 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B3390300DF863; Wed, 25 Feb 2004 19:57:32 +0200 (EET) Subject: Re: [Dovecot] UW-IMAP -> Dovecot : patch to remove nasty "internal messages" from UW-IMAP ? From: Timo Sirainen To: Xavier Beaudouin In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-r7zKvGdhwL61o8BU06NF" Message-Id: <1077731852.10810.120.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 19:57:32 +0200 Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 18:01:31 -0000 X-UID: 8743 Status: O --=-r7zKvGdhwL61o8BU06NF Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-02-10 at 17:57, Xavier Beaudouin wrote: > We want to move from UW-IMAP to Dovecot (mbox format), works like a=20 > charm, but UW-IMAP has that bloody habbit to make a stupid message in=20 > all his mailbox files : I don't really recommend using Dovecot with mbox at the moment. I'll probably add support for "folder internal data" messages for rewritten mbox support. --=-r7zKvGdhwL61o8BU06NF Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPOIMyUhSUUBViskRAtV8AJ4xlQdzlLoMV1sK2RRkvKNKYQjrkwCfVdUR WhIy7EaD4+BPSiclCGjRrtQ= =NEbH -----END PGP SIGNATURE----- --=-r7zKvGdhwL61o8BU06NF-- From tss@iki.fi Wed Feb 25 20:09:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4367CC000D9D; Wed, 25 Feb 2004 20:09:22 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 365A8C000D9B for ; Wed, 25 Feb 2004 20:09:20 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id 76269239F5; Wed, 25 Feb 2004 20:05:59 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 71A6B239F6; Wed, 25 Feb 2004 20:05:59 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DEA89239F5 for ; Wed, 25 Feb 2004 20:05:23 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 82E12300DF863; Wed, 25 Feb 2004 20:05:23 +0200 (EET) Subject: Re: [Dovecot] help: The current command did not succeed. The mail server responded: Invalid mask. From: Timo Sirainen To: Bodo Gelbe In-Reply-To: <403B605B.4040701@gwdg.de> References: <403B605B.4040701@gwdg.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-xXF00MYCRomo/QwLkZJ3" Message-Id: <1077732323.10811.127.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 20:05:23 +0200 Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 18:09:22 -0000 X-UID: 8744 Status: O Content-Length: 1438 --=-xXF00MYCRomo/QwLkZJ3 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-02-24 at 16:31, Bodo Gelbe wrote: > Am tryin to move from uw-imapd to dovecot, using dovecot ver 0.99.10.4. > Reading with Mozilla Mail v 1.4. >=20 > I made some test accounts and they seem to be working fine, but my older > existing accounts give error messages whenever I connect or subscribe to > mailboxes within them. The message that appears on the client is: >=20 > "The current command did not succeed. The mail server responded: Invalid > mask." >=20 > it appears two or three times in an alert box (on windows) then everythin= g > seems to work. >=20 > The masks (I've put a syslog call into the code) are: "~%", "~%~%" and > "~*". The test accounts I created don't have this problem. This means Mozilla cached UW-IMAP's NAMESPACE reply and tries to ask those mailboxes from Dovecot, which doesn't support such namespaces. Easiest fix would be to recreate the Mozilla accounts. Next version will just ignore if client tries to ask invalid mailboxes. --=-xXF00MYCRomo/QwLkZJ3 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPOPjyUhSUUBViskRAieyAJ968dPbduZpOpW4mtrDut80g9fD8wCeIyX7 7Op2e8guZJplBkBff5a94Is= =dVtq -----END PGP SIGNATURE----- --=-xXF00MYCRomo/QwLkZJ3-- From tss@iki.fi Wed Feb 25 20:10:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4AEDFC000D9D; Wed, 25 Feb 2004 20:10:29 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 48EB6C000D9B for ; Wed, 25 Feb 2004 20:10:27 +0200 (EET) Received: from localhost.kpnqwest.fi (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 69523300DF863; Wed, 25 Feb 2004 20:07:06 +0200 (EET) Subject: Re: [Dovecot] More than one auth method with dovevot 0.99.10.4 - how? From: Timo Sirainen To: Raymond Scholz In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-S7Ya6yg/Y0VRDUC/KyOG" Message-Id: <1077732426.10811.130.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 25 Feb 2004 20:07:06 +0200 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 18:10:29 -0000 X-UID: 8745 Status: O --=-S7Ya6yg/Y0VRDUC/KyOG Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-02-25 at 01:13, Raymond Scholz wrote: > We're setting up a server with qmail/vpopmail and dovecot. In > addition to vpopmail users we want non-virtual, local users to be able > to authenticate and have them read the Maildir in their real $HOME. This isn't possible in the released version yet, but it's in next version. If you really wanted, you could use all but "imap" binary from Dovecot's CVS and it'd work. --=-S7Ya6yg/Y0VRDUC/KyOG Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAPORKyUhSUUBViskRApt8AKCP1I058HUVp6B/J91SRUUfPlQ/jgCghat+ d2k5dAs6HPspNx21nTk0A88= =+NMF -----END PGP SIGNATURE----- --=-S7Ya6yg/Y0VRDUC/KyOG-- From www-data@nusseis.de Wed Feb 25 20:17:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EBD70C000D9D; Wed, 25 Feb 2004 20:17:14 +0200 (EET) Received: from nusseis.de (nusseis.de [81.169.154.52]) by talvi.dovecot.org (Postfix) with ESMTP id D8CFAC000D9B for ; Wed, 25 Feb 2004 20:17:12 +0200 (EET) Received: from www-data by nusseis.de with local (Exim 3.35 #1 (Debian)) id 1Aw3TW-0005Cf-00 for ; Wed, 25 Feb 2004 19:09:38 +0100 Received: from dsl-213-023-040-016.arcor-ip.net (dsl-213-023-040-016.arcor-ip.net [213.23.40.16]) by webmail.nusseis.de (IMP) with HTTP for ; Wed, 25 Feb 2004 19:09:38 +0100 Message-ID: <1077732578.403ce4e2237d3@webmail.nusseis.de> Date: Wed, 25 Feb 2004 19:09:38 +0100 From: Benjamin Dabelow To: dovecot@dovecot.org Subject: Re: [Dovecot] Pam trouble References: <1077621183.403b31bfda984@webmail.nusseis.de> <1077728639.10812.58.camel@hurina> In-Reply-To: <1077728639.10812.58.camel@hurina> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.2 Sender: www-data X-Sender: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 18:17:15 -0000 X-UID: 8746 Status: O Content-Length: 1092 > > Child died with signal 11 > > Is this the exact error message? Dovecot doesn't send this, so do you > mean it's PAM subprocess that dies or dovecot-auth process itself? The complete error is: dovecot-auth: Feb 25 18:55:17 Error: PAM: Child process died dovecot-auth: Feb 25 18:55:18 Error: PAM: Child 2179 died with signal 11 So it's the pam process crashing. > Crashes are better debugged with gdb: > > gdb /usr/local/libexec/dovecot/dovecot-auth (pid of dovecot-auth) > > Enter "c" command to let it continue. Try logging in. gdb should show > that it crashed now. Enter "bt" command and send me the result. As I'm new to gdb, I'm stuck here. dovecot-auth does not crash so I'm not back to the gdb prompt. How do I get any output (CTRL-C does not work.)? > If it crashes inside pam_ldap handler, it's a bug in it. At least pam_ldap is fine with man other services (login,smtp auth, ssh). Thanks for your time. Benjamin -- Benjamin Dabelow benja.dabelow@gmx.net Staufenbergstr. 88 benja-dabelow.gmxhome.de/start.html 74081 Heilbronn Germany From shiva@sewingwitch.com Wed Feb 25 22:53:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9FE45C000D9D; Wed, 25 Feb 2004 22:53:35 +0200 (EET) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 1FC93C000D9B for ; Wed, 25 Feb 2004 22:53:33 +0200 (EET) Received: from home.sewingwitch.com (c-24-7-90-42.client.comcast.net [24.7.90.42]) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i1PKo9oP008668 for ; Wed, 25 Feb 2004 15:50:09 -0500 Received: from [10.0.0.221] (CPQ32245280371.dhcp.lsi.lan [10.0.0.221]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i1PKo8eO015456 for ; Wed, 25 Feb 2004 12:50:08 -0800 Date: Wed, 25 Feb 2004 12:50:07 -0800 From: Kenneth Porter To: dovecot@dovecot.org Subject: Re: [Dovecot] Mailbox formats Message-ID: <184032374.1077713407@[10.0.0.221]> In-Reply-To: <1077731011.10801.101.camel@hurina> References: <11685482.1076416697@[10.0.0.221]> <1077731011.10801.101.camel@hurina> X-Mailer: Mulberry/3.1.2 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.39 X-Scanned-By: MIMEDefang 2.40 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 20:53:35 -0000 X-UID: 8747 Status: O Content-Length: 1339 --On Wednesday, February 25, 2004 7:43 PM +0200 Timo Sirainen wrote: > On Tue, 2004-02-10 at 22:38, Kenneth Porter wrote: >> I'm currently using mbox and mbx with UW-IMAP, mbox for space efficiency >> and mbx for folders with lots of messages for time efficiency without a >> large space cost. > > The reason why mbx takes more space is that it uses CR+LF linefeeds > instead of just LF.. I was thinking mbox vs maildir. mbx isn't much bigger than mbox, mainly adding the metadata at the front, about 1k per folder. >> I've avoided maildir because it has a relatively high >> space cost; mbox has no inter-message cost while maildir wastes on >> average half a sector plus an inode for each message. > > AFAIK ReiserFS doesn't lose any space (or much). Interesting point. I hadn't considered using ReiserFS for my mail directories. Sounds like a good motivation to try it out. > UW-IMAP's author is thinking of some hybrid format where a single > mailbox could be built from multiple files, but a single file could > contain multiple messages. I think this could be made to work pretty > well and reliably. I don't know more about his plans though, I didn't > find any discussion about it in c-client list at least. He mentioned a new format in passing on the comp.mail.imap group, still in the experimental stage. From gmid-dovecot@m.gmane.org Wed Feb 25 23:26:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 893B3C000D9D; Wed, 25 Feb 2004 23:26:58 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id BA2D2C000D9B for ; Wed, 25 Feb 2004 23:26:56 +0200 (EET) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1Aw6VD-00007d-00 for ; Wed, 25 Feb 2004 22:23:35 +0100 Received: from reverse-213-146-125-195.dialin.kamp-dsl.de ([213.146.125.195]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed Feb 25 21:23:35 2004 Received: from rscholz by reverse-213-146-125-195.dialin.kamp-dsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed Feb 25 21:23:35 2004 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: dovecot@dovecot.org To: dovecot@dovecot.org From: Raymond Scholz Date: Wed, 25 Feb 2004 22:11:51 +0100 Organization: =?UTF-8?Q?/=CB=8C=C9=94=CB=90=C9=A1=C9=99na=C9=AA=CB=88ze=C9=AA=CA=83n/?= Lines: 11 Message-ID: References: <1077732426.10811.130.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: reverse-213-146-125-195.dialin.kamp-dsl.de X-Now-Playing: O.S.T.'s _Absolute Giganten_: "The Notwist - Formiga" Mail-Copies-To: nobody User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux) Cancel-Lock: sha1:ZLYnVe/uCIxC8BFhBG2VS5Tax/E= Sender: news Subject: [Dovecot] Re: More than one auth method with dovevot 0.99.10.4 - how? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Raymond Scholz List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2004 21:26:58 -0000 X-UID: 8748 Status: O · Timo Sirainen wrote: > This isn't possible in the released version yet, but it's in next > version. If you really wanted, you could use all but "imap" binary from > Dovecot's CVS and it'd work. I really wanted... Thanks, works like a charm. Cheers, Ray -- /* Halley */ (Halley's comment.) From mark@cye.com.au Thu Feb 26 14:27:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 872CFC000D9D; Thu, 26 Feb 2004 14:27:51 +0200 (EET) Received: from v.cye.com.au (v.cye.com.au [81.31.32.92]) by talvi.dovecot.org (Postfix) with ESMTP id 47CB0C000D9B for ; Thu, 26 Feb 2004 14:27:49 +0200 (EET) Received: from c210-49-175-165.brasd1.vic.optusnet.com.au ([210.49.175.165] helo=192.168.10.84) by v.cye.com.au with asmtp (Exim 4.04) id 1AwKYx-00037S-00 for dovecot@dovecot.org; Thu, 26 Feb 2004 23:24:24 +1100 From: Mark Williamson To: dovecot@dovecot.org Content-Type: text/plain Message-Id: <1077798258.3111.18.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4-8mdk Date: Thu, 26 Feb 2004 23:24:19 +1100 Content-Transfer-Encoding: 7bit Subject: [Dovecot] SSL 143/notls stuff X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Feb 2004 12:27:51 -0000 X-UID: 8749 Status: O Hi Everyone, Just trying to work out how totally disable SSL/TLS support on port 143 while enabling SSL support on port 993 In the config file when I comment out the setting "ssl_disable = yes", I have Webmail client that will no longer be able to auth against port 143, Now I can get the Webmail client to sort of work via using the setting the port to "143/notls" but the main problem with that is that the WEbmail client does not support that setting correctly, giving the Webmail issues in other areas. Anyway is there a way of enabling SSL support on 993, and a way to let port 143 to auth with out the need of using a setting port "143/notls" Cheers Mark Williamson From kilian.cavalotti@stix.polytechnique.fr Thu Feb 26 15:25:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2A4BBC000D9D; Thu, 26 Feb 2004 15:25:07 +0200 (EET) Received: from mx-a.polytechnique.fr (mx-a.polytechnique.fr [129.104.30.14]) by talvi.dovecot.org (Postfix) with ESMTP id 0D98CC000D9B for ; Thu, 26 Feb 2004 15:25:05 +0200 (EET) Received: from argos.medicis.polytechnique.fr (argos.stix.polytechnique.fr [129.104.36.12]) by mx-a.polytechnique.fr (x.y.z/x.y.z/tbp v1.0) with ESMTP id i1QDH3x3003821 for ; Thu, 26 Feb 2004 14:17:03 +0100 Received: from sirius.stix.polytechnique.fr (sirius.stix.polytechnique.fr [129.104.36.127]) by argos.medicis.polytechnique.fr (Postfix) with ESMTP id C883E37B17 for ; Thu, 26 Feb 2004 14:21:37 +0100 (CET) From: Kilian CAVALOTTI Organization: STIX To: dovecot@dovecot.org Date: Thu, 26 Feb 2004 14:21:40 +0100 User-Agent: KMail/1.6.1 MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <200402261421.40629.kilian.cavalotti@stix.polytechnique.fr> Subject: [Dovecot] Set only INDEX path X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: kilian.cavalotti@stix.polytechnique.fr List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Feb 2004 13:25:07 -0000 X-UID: 8750 Status: O Hi folks, I'd like to know if I can set the INDEX path in the default_mail_env, without setting the format and location of mailboxes (something like default_mail_env = :INDEX=/var/mail/indexes/%u) I want to let each user choose whether he prefers to store his mail in mbox or maildir format, so I don't want to /force/ the configuration in the default_mail_env variable, but let the autodetection feature of Dovecot do the job. The problem is that home folders are NFS mounted on the mail server. So I'd like to put the indexes somewhere locally on the mail server. I tried to set the default_mail_env with various combinations of ':' and INDEX, but with no success, I invariably get "Fatal: Failed to create storage with data..." error messages. Is there any solution to my problem ? ;) TIA, -- Kilian From daemon@kzone.ch Thu Feb 26 21:02:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 87B86C000D9D; Thu, 26 Feb 2004 21:02:20 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id 2F643C000D9B for ; Thu, 26 Feb 2004 21:02:18 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id TAA11376 for dovecot@dovecot.org; Thu, 26 Feb 2004 19:58:53 +0100 From: Sven Kirmess To: dovecot@dovecot.org Subject: Re: [Dovecot] [OT] How is the Changelog file created? Date: Thu, 26 Feb 2004 20:00:02 +0100 Organization: Kirmess Lines: 7 Message-ID: References: <1077728840.10812.62.camel@hurina> NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1077821933 11371 192.168.100.100 (26 Feb 2004 18:58:53 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 26 Feb 2004 18:58:53 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <1077728840.10812.62.camel@hurina> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Feb 2004 19:02:20 -0000 X-UID: 8751 Status: O Timo Sirainen wrote: > cvs2cl. Thank you. That was exactly what I was looking for. Sven From tom@replic8.net Thu Feb 26 22:53:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9055BC000D9D; Thu, 26 Feb 2004 22:53:58 +0200 (EET) Received: from rpd.dyn.hannover.ccc.de (p50860A6B.dip0.t-ipconnect.de [80.134.10.107]) by talvi.dovecot.org (Postfix) with ESMTP id 70A0DC000D9B for ; Thu, 26 Feb 2004 22:53:56 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by rpd.dyn.hannover.ccc.de (Postfix) with ESMTP id B3CEF416D4 for ; Thu, 26 Feb 2004 20:50:23 +0000 (GMT) Received: from rpd.dyn.hannover.ccc.de ([192.168.100.101]) by localhost (commbox.rpdnet.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 20375-07-2 for ; Thu, 26 Feb 2004 20:50:23 +0000 (GMT) Received: from localhost (server.rpdnet.com [192.168.100.100]) by rpd.dyn.hannover.ccc.de (Postfix) with ESMTP id 5F7A9416A6 for ; Thu, 26 Feb 2004 20:50:23 +0000 (GMT) Received: from aural (aural [10.0.0.8]) by webmail (IMP) with HTTP for ; Thu, 26 Feb 2004 20:50:39 +0000 Message-ID: <1077828639.403e5c1fb36bd@webmail> Date: Thu, 26 Feb 2004 20:50:39 +0000 From: tom@replic8.net To: dovecot@dovecot.org Subject: Re: [Dovecot] [OT] How is the Changelog file created? References: <1077728840.10812.62.camel@hurina> In-Reply-To: <1077728840.10812.62.camel@hurina> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.2 / FreeBSD-4.9 X-Virus-Scanned: by amavisd-new X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Feb 2004 20:53:58 -0000 X-UID: 8752 Status: O hi, running dovecot-nightly on netbsd, just rebuilt for testing. for quite some time now (about a month) i'm getting these: ==snip== Feb 26 20:38:20 hostname imap(tom): Corrupted index file /home/tom/Maildir/.INBOX/.imap.index: No unseen messages found with first_unseen_uid_lowwater 25260, seen_messages_count 12, messages_count 18 ==snap== when this happens, my client is unable to display 'subject' and 'from' anymore - as i'm using IMP (http://www.horde.org/org/) as webmailer mainly i can't say it happens with other clients. restarting dovecot doesn't change anything, i have to delete .imap.index.* from maildirs files to get it working properly again. i tried various cache settings and even disabled caching, without any noticeable effect. any hint? need more info? -- many thanks for the good work, TOM From mem@mv.mv.com Thu Feb 26 22:54:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5AC73C002801; Thu, 26 Feb 2004 22:54:46 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 4FB5BC002800 for ; Thu, 26 Feb 2004 22:54:42 +0200 (EET) Received: (qmail 16059 invoked from network); 26 Feb 2004 15:51:15 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 26 Feb 2004 15:51:15 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 5516 invoked by uid 101); 26 Feb 2004 15:51:14 -0500 From: "Mark E. Mallett" Date: Thu, 26 Feb 2004 15:51:14 -0500 To: Mark Williamson Subject: Re: [Dovecot] SSL 143/notls stuff Message-ID: <20040226205114.GD21113@iridium.mv.net> References: <1077798258.3111.18.camel@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1077798258.3111.18.camel@localhost> User-Agent: Mutt/1.4.2.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Feb 2004 20:54:46 -0000 X-UID: 8753 Status: O On Thu, Feb 26, 2004 at 11:24:19PM +1100, Mark Williamson wrote: > Hi Everyone, > > Just trying to work out how totally disable SSL/TLS support on port 143 > while enabling SSL support on port 993 > > In the config file when I comment out the setting "ssl_disable = yes", I > have Webmail client that will no longer be able to auth against port > 143, Now I can get the Webmail client to sort of work via using the > setting the port to "143/notls" but the main problem with that is that > the WEbmail client does not support that setting correctly, giving the > Webmail issues in other areas. > > Anyway is there a way of enabling SSL support on 993, and a way to let > port 143 to auth with out the need of using a setting port > "143/notls" Deja vu. Timo answered this nicely: http://www.dovecot.org/list/dovecot/2004-January/002810.html mm From gmid-dovecot@m.gmane.org Thu Feb 26 23:27:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B3A4CC000D9D; Thu, 26 Feb 2004 23:27:00 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id D765CC000D9B for ; Thu, 26 Feb 2004 23:26:58 +0200 (EET) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AwSyl-0006Dw-00 for ; Thu, 26 Feb 2004 22:23:35 +0100 Received: from reverse-213-146-125-37.dialin.kamp-dsl.de ([213.146.125.37]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu Feb 26 21:23:35 2004 Received: from rscholz by reverse-213-146-125-37.dialin.kamp-dsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu Feb 26 21:23:35 2004 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: dovecot@dovecot.org To: dovecot@dovecot.org From: Raymond Scholz Date: Thu, 26 Feb 2004 22:21:57 +0100 Organization: =?UTF-8?Q?/=CB=8C=C9=94=CB=90=C9=A1=C9=99na=C9=AA=CB=88ze=C9=AA=CA=83n/?= Lines: 27 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: reverse-213-146-125-37.dialin.kamp-dsl.de X-Now-Playing: Nothing Mail-Copies-To: nobody User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux) Cancel-Lock: sha1:icPAdIm4GffQzm9ungav20ixszU= Sender: news Subject: [Dovecot] IMAP error with squirrelmail - how to debug? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Raymond Scholz List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Feb 2004 21:27:00 -0000 X-UID: 8754 Status: O When moving messages with squirrelmail (or kmail), I get the following error: ERROR : Could not complete request. Query: COPY 3 "INBOX" Reason Given: Unexpected EOF According to the config I switched on rawlog: # This would write rawlogs into ~/dovecot.rawlog/ directory: mail_executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap rawlog.c was altered in order to have /tmp as HOME. But I see no logfiles being generated. Environment: lastest dovecot from CVS, vpopmail and local users (error with both types). Another issue: Ocassionally the auth process dies: Feb 26 21:08:49 servername dovecot: child 28641 (auth) killed with signal 11 Cheers, Ray -- Raymond Scholz - rscholz@zonix.de - GnuPG/PGP - http://www.zonix.de/ From gmid-dovecot@m.gmane.org Thu Feb 26 23:57:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 07A9DC002800; Thu, 26 Feb 2004 23:57:06 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 75185C000D9D for ; Thu, 26 Feb 2004 23:57:02 +0200 (EET) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AwTRq-0006c6-00 for ; Thu, 26 Feb 2004 22:53:38 +0100 Received: from reverse-213-146-125-37.dialin.kamp-dsl.de ([213.146.125.37]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu Feb 26 21:53:38 2004 Received: from rscholz by reverse-213-146-125-37.dialin.kamp-dsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu Feb 26 21:53:38 2004 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: dovecot@dovecot.org To: dovecot@dovecot.org From: Raymond Scholz Date: Thu, 26 Feb 2004 22:38:52 +0100 Organization: =?UTF-8?Q?/=CB=8C=C9=94=CB=90=C9=A1=C9=99na=C9=AA=CB=88ze=C9=AA=CA=83n/?= Lines: 26 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: reverse-213-146-125-37.dialin.kamp-dsl.de X-Now-Playing: Nothing Mail-Copies-To: nobody User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux) Cancel-Lock: sha1:TYUDePfiYfq414y9VjgFlQTjIV8= Sender: news Subject: [Dovecot] Addition X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Raymond Scholz List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Feb 2004 21:57:06 -0000 X-UID: 8755 Status: O rscholz@fly:~> telnet servername imap2 Trying 399.187.271.232... Connected to servername. Escape character is '^]'. * OK dovecot ready. . login rscholz foobar . OK Logged in. A002 SELECT "INBOX" * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 4 EXISTS * 0 RECENT * OK [UIDVALIDITY 1077741495] UIDs valid * OK [UIDNEXT 5] Predicted next UID A002 OK [READ-WRITE] Select completed. A003 EXPUNGE A003 OK Expunge completed. A004 UID COPY 4 "Test" A004 NO Unexpected EOF A005 UID COPY 3 "Test" A005 NO Unexpected EOF Cheers, Ray -- Raymond Scholz - rscholz@zonix.de - GnuPG/PGP - http://www.zonix.de/ From wired@linfe.it Fri Feb 27 12:12:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 86399C000D9D; Fri, 27 Feb 2004 12:12:46 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B6BB1C000D9B for ; Fri, 27 Feb 2004 12:12:44 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id 65D8E239EC; Fri, 27 Feb 2004 12:09:19 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4BA17239F5; Fri, 27 Feb 2004 12:09:19 +0200 (EET) Received: from linfe.it (unknown [213.198.150.109]) by danu.procontrol.fi (Postfix) with ESMTP id 5BF38239EC for ; Fri, 27 Feb 2004 12:08:45 +0200 (EET) Received: from linfe.it (wired@localhost [127.0.0.1]) by linfe.it (8.12.11/8.12.11/Debian-1) with ESMTP id i1R9tlpb031915; Fri, 27 Feb 2004 10:55:47 +0100 Received: (from wired@localhost) by linfe.it (8.12.11/8.12.11/Debian-1) id i1R9tj8O031912; Fri, 27 Feb 2004 10:55:46 +0100 Date: Fri, 27 Feb 2004 10:55:44 +0100 From: wired@linfe.it To: Timo Sirainen Subject: Re: [Dovecot] UW-IMAP -> Dovecot : patch to remove nasty "internal messages" from UW-IMAP ? Message-ID: <20040227095544.GA31847@linfe.it> References: <1077731852.10810.120.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1077731852.10810.120.camel@hurina> X-Operating-System: Linux libre 2.2.19 User-Agent: Mutt/1.5.4i Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: wired@linfe.it List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Feb 2004 10:12:46 -0000 X-UID: 8756 Status: O >From Timo Sirainen, Feb 25: >I don't really recommend using Dovecot with mbox at the moment. I'll >probably add support for "folder internal data" messages for rewritten >mbox support. Well, i am using mbox currently. My mails are at risk? Should i switch to maildir? thanks --will From mark@cye.com.au Fri Feb 27 13:06:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5E1E8C002800; Fri, 27 Feb 2004 13:06:09 +0200 (EET) Received: from v.cye.com.au (v.cye.com.au [81.31.32.92]) by talvi.dovecot.org (Postfix) with ESMTP id 6C701C000D9D for ; Fri, 27 Feb 2004 13:06:07 +0200 (EET) Received: from c210-49-175-165.brasd1.vic.optusnet.com.au ([210.49.175.165] helo=192.168.10.82) by v.cye.com.au with esmtp (Exim 4.04) id 1AwflM-0003Hl-00; Fri, 27 Feb 2004 22:02:37 +1100 Subject: Re: [Dovecot] SSL 143/notls stuff From: Mark Williamson To: "Mark E. Mallett" In-Reply-To: <20040226205114.GD21113@iridium.mv.net> References: <1077798258.3111.18.camel@localhost> <20040226205114.GD21113@iridium.mv.net> Content-Type: text/plain Message-Id: <1077879754.2167.15.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4-8mdk Date: Fri, 27 Feb 2004 22:02:34 +1100 Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Feb 2004 11:06:09 -0000 X-UID: 8757 Status: O Content-Length: 1407 On Fri, 2004-02-27 at 07:51, Mark E. Mallett wrote: > On Thu, Feb 26, 2004 at 11:24:19PM +1100, Mark Williamson wrote: > > Hi Everyone, > > > > Just trying to work out how totally disable SSL/TLS support on port 143 > > while enabling SSL support on port 993 > > > > In the config file when I comment out the setting "ssl_disable = yes", I > > have Webmail client that will no longer be able to auth against port > > 143, Now I can get the Webmail client to sort of work via using the > > setting the port to "143/notls" but the main problem with that is that > > the WEbmail client does not support that setting correctly, giving the > > Webmail issues in other areas. > > > > Anyway is there a way of enabling SSL support on 993, and a way to let > > port 143 to auth with out the need of using a setting port > > "143/notls" > > Deja vu. Timo answered this nicely: > > http://www.dovecot.org/list/dovecot/2004-January/002810.html O.K. just having a look at cvs version now... Just downloaded a nightly snap-shot.. Having a look at the dovecot-example.conf file now.. Yes it looks like is has a ssl_listen function.. #listen = * # IP or host address where to listen in for SSL connections. Defaults # to above if not specified. #ssl_listen = Great, time to setup the CVS version.. Thanks.. Cheers Mark From gmid-dovecot@m.gmane.org Fri Feb 27 13:57:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6C229C002800; Fri, 27 Feb 2004 13:57:06 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id D1D33C000D9D for ; Fri, 27 Feb 2004 13:57:02 +0200 (EET) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AwgYj-0005ZC-00 for ; Fri, 27 Feb 2004 12:53:37 +0100 Received: from reverse-213-146-125-22.dialin.kamp-dsl.de ([213.146.125.22]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri Feb 27 11:53:37 2004 Received: from rscholz by reverse-213-146-125-22.dialin.kamp-dsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri Feb 27 11:53:37 2004 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: dovecot@dovecot.org To: dovecot@dovecot.org From: Raymond Scholz Date: Fri, 27 Feb 2004 12:49:56 +0100 Organization: =?UTF-8?Q?/=CB=8C=C9=94=CB=90=C9=A1=C9=99na=C9=AA=CB=88ze=C9=AA=CA=83n/?= Lines: 13 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: reverse-213-146-125-22.dialin.kamp-dsl.de X-Now-Playing: Nothing Mail-Copies-To: nobody User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux) Cancel-Lock: sha1:LFit0bQ84o/lXpn2AAwy/2roSZw= Sender: news Subject: [Dovecot] Re: Addition X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Raymond Scholz List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Feb 2004 11:57:06 -0000 X-UID: 8758 Status: O · Raymond Scholz wrote: Ok, I've found the reason for this. Setting maildir_copy_with_hardlinks = yes cures the problem. Nevertheless I think the original problem is worth debugging. I'll provide the necessary debugging information, if someone is interested and tells me what to do. Cheers, Ray -- Raymond Scholz - rscholz@zonix.de - GnuPG/PGP - http://www.zonix.de/ From mark@cye.com.au Fri Feb 27 15:38:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4F5F1C002802; Fri, 27 Feb 2004 15:38:55 +0200 (EET) Received: from v.cye.com.au (v.cye.com.au [81.31.32.92]) by talvi.dovecot.org (Postfix) with ESMTP id 753E8C002800 for ; Fri, 27 Feb 2004 15:38:53 +0200 (EET) Received: from c210-49-175-165.brasd1.vic.optusnet.com.au ([210.49.175.165] helo=192.168.10.82) by v.cye.com.au with esmtp (Exim 4.04) id 1Awi9F-0003lm-00 for dovecot@dovecot.org; Sat, 28 Feb 2004 00:35:25 +1100 Subject: Re: [Dovecot] SSL 143/notls stuff From: Mark Williamson To: dovecot@dovecot.org In-Reply-To: <20040226205114.GD21113@iridium.mv.net> References: <1077798258.3111.18.camel@localhost> <20040226205114.GD21113@iridium.mv.net> Content-Type: text/plain Message-Id: <1077888921.2167.35.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4-8mdk Date: Sat, 28 Feb 2004 00:35:22 +1100 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Feb 2004 13:38:55 -0000 X-UID: 8759 Status: O Content-Length: 1300 After checking out http://www.dovecot.org/list/dovecot/2004-January/002810.html Quoted from that E-mail > With CVS code you would be able to do it by creating another "server > configuration" with SSL enabled in different port. I have tried this but no go.. what exactly meant by creating another "server configuration".. Cheers Mark On Fri, 2004-02-27 at 07:51, Mark E. Mallett wrote: > On Thu, Feb 26, 2004 at 11:24:19PM +1100, Mark Williamson wrote: > > Hi Everyone, > > > > Just trying to work out how totally disable SSL/TLS support on port 143 > > while enabling SSL support on port 993 > > > > In the config file when I comment out the setting "ssl_disable = yes", I > > have Webmail client that will no longer be able to auth against port > > 143, Now I can get the Webmail client to sort of work via using the > > setting the port to "143/notls" but the main problem with that is that > > the WEbmail client does not support that setting correctly, giving the > > Webmail issues in other areas. > > > > Anyway is there a way of enabling SSL support on 993, and a way to let > > port 143 to auth with out the need of using a setting port > > "143/notls" > > Deja vu. Timo answered this nicely: > > http://www.dovecot.org/list/dovecot/2004-January/002810.html > > mm From rjohnson@medata.com Fri Feb 27 22:07:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E6D08C000D9D; Fri, 27 Feb 2004 22:07:33 +0200 (EET) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id ED57EC000D9B for ; Fri, 27 Feb 2004 22:07:30 +0200 (EET) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i1RK41BR008500 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 27 Feb 2004 12:04:02 -0800 Message-ID: <403FA2B2.4060008@medata.com> Date: Fri, 27 Feb 2004 12:04:02 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Raymond Scholz Subject: Re: [Dovecot] Re: Addition References: In-Reply-To: X-Enigmail-Version: 0.83.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Feb 2004 20:07:34 -0000 X-UID: 8760 Status: O Content-Length: 1089 Raymond Scholz wrote: > · Raymond Scholz wrote: > > Ok, I've found the reason for this. Setting > > maildir_copy_with_hardlinks = yes > > cures the problem. Nevertheless I think the original problem is > worth debugging. I'll provide the necessary debugging information, > if someone is interested and tells me what to do. While it's worth debugging, there's usually little reason to not use hardlinks, and the performance gain with large messages is astounding. For those who aren't familiar with hardlinks, when messages are moved from one folder to another via an IMAP command, I believe they are copied/deleted instead of moved. If hardlinks aren't used, the message must be replicated, then the original deleted, which on a large server with large messages, could significantly increase I/O. With hardlinks, a link is created, and the original link removed. Very little I/O. HTH, -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From t1lt@bk.ru Sat Feb 28 15:42:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 943F4C000D9D; Sat, 28 Feb 2004 15:42:51 +0200 (EET) Received: from sun.com (port-212-202-169-161.reverse.qdsl-home.de [212.202.169.161]) by talvi.dovecot.org (Postfix) with SMTP id 29217C000D9B for ; Sat, 28 Feb 2004 15:42:49 +0200 (EET) Received: (qmail 3607 invoked by uid 1000); 28 Feb 2004 13:39:34 -0000 Date: Sat, 28 Feb 2004 14:39:33 +0100 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] debian unstable : mutt polling imap mailboxes Message-ID: <20040228133932.GA29087@woom.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <20040216150557.GI636@cs.helsinki.fi> <1077729550.10801.74.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1077729550.10801.74.camel@hurina> X-Mailman-Approved-At: Sat, 28 Feb 2004 17:31:57 +0200 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Feb 2004 13:42:51 -0000 X-UID: 8761 Status: O Content-Length: 1438 On Wed, Feb 25, 2004 at 07:19:10PM +0200, Timo Sirainen wrote: > On Mon, 2004-02-16 at 17:05, Kai Hendry wrote: > > I am accessing my IMAP folder on my ~/Maildir using mutt via Dovecot and > > I have this problem whereby mutt incorrectly reports I have new mail in a > > "mailboxes" polled mailbox. > > > > This happens all the time when I press the key bound to change mailbox. > > > > I use courier IMAP at school, and I have not experienced this problem. A > > bug with dovecot or mutt? > > It's most likely a Dovecot bug, possibly related to somewhat broken > RECENT count handling. I can't reproduce it though, do you have to tell > mutt somehow to check the new mails? I am expiriencing this bug, too. Using: Dovecot 0.99.8 Mutt 1.5.5.1+cvs20040105i It's a bit annoying. Generally when any folder other than INBOX (e.g. INBOX.ml.dovecot) receives new mail the mail-count for that folder will increase. Then, when I switch to that folder, read the new mail and switch back to INBOX the mail-counter will *still* show the (now invalid) count until I switch back and forth again. I'd be glad if some more testing with mutt would be done (to fix this bug and the one that makes all folders appear as if they had subfolders...). Other than these few glitches dovecot works like a charme with mutt and even my largest folders (>6000 msgs) can be opened in reasonable time (under 30s). Keep up the good work :-) just my 2c.. -mw From dovecot@geschwinde.net Sun Feb 29 19:18:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CC8AAC000D9D; Sun, 29 Feb 2004 19:18:05 +0200 (EET) Received: from sx4gdsl001.gdsl.at (sx4gdsl001.globalcore.net [80.78.225.200]) by talvi.dovecot.org (Postfix) with ESMTP id C2419C000D9B for ; Sun, 29 Feb 2004 19:18:03 +0200 (EET) Received: from geschwinde.net (unknown [80.78.255.19]) by sx4gdsl001.gdsl.at (Postfix) with ESMTP id 6A24158001B for ; Sun, 29 Feb 2004 17:58:11 +0100 (CET) Message-ID: <40421E04.6010204@geschwinde.net> Date: Sun, 29 Feb 2004 18:14:44 +0100 From: Ewald Geschwinde User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031107 Debian/1.5-3 X-Accept-Language: en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] severe problem X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Feb 2004 17:18:06 -0000 X-UID: 8762 Status: O I have debian knoppix and postfix + dovecot imap My problem is the following: Feb 29 18:51:14 cybserv imap-login: Login: xx@xxx.xx [xx.xx.xx.xx] Feb 29 18:51:14 cybserv dovecot: child 13959 (imap) killed with signal 11 Feb 29 18:52:41 cybserv imap-login: Disconnected [xx.xxx.xx.xx] Feb 29 18:52:41 cybserv dovecot: child 13952 (login) killed with signal 11 I'm using the debian package for the version 0.99.10.4-2 Always when someone tries to login the server throws this error I don't know whats going wrong I'm using a postgresql backend Regards Ewald Geschwinde From mat@reynerie.org Sun Feb 29 21:56:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CD38BC000D9D; Sun, 29 Feb 2004 21:56:30 +0200 (EET) Received: from po.reynerie.org (reynerie.org [80.65.225.229]) by talvi.dovecot.org (Postfix) with ESMTP id CFC96C000D9B for ; Sun, 29 Feb 2004 21:56:28 +0200 (EET) Received: by po.reynerie.org (Mail Server, from userid 5031) id C893F9449; Sun, 29 Feb 2004 20:59:20 +0100 (CET) Date: Sun, 29 Feb 2004 20:59:20 +0100 From: mat@reynerie.org To: dovecot@dovecot.org Message-ID: <20040229195920.GA20586@po.reynerie.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Organization: reynerie.org User-Agent: Mutt/1.5.4i Subject: [Dovecot] index file corruption X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: mat@reynerie.org List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Feb 2004 19:56:31 -0000 X-UID: 8763 Status: O Content-Length: 1154 Hi, I'm using Dovecot (dovecot-0.99.10p0) on OpenBSD-3.4 for few weeks now. When i connect to my IMAP account the connection is often closed by dovecot when i try to delete mails. I can see messages like this in log: Feb 29 18:47:00 po imap(mat@reynerie.org): Corrupted binary tree file /home/mat/Maildir//.INBOX/.imap.index.tree: used_file_size larger than real file size (1772 vs 1556) I tried to remove all index files, but the problem still occur. I also tried Maildir and Mbox, same problem (i can't remember if the log are similar with mbox, if needed i will test again). I have ktraced the imap process and try (succesfully) to reproduce this behaviour: I have re-send a lot of spam and delete few of them from mailbox until the problem occur. All logs/kdump/config are here: http://mat.reynerie.org/dovecot/ In the kdump file, the problem is visible at the end, Dovecot is compiled (via ports) with: env CFLAGS="-I/usr/local/include -L/usr/local/lib" CONFIGURE_ARGS="--with-ldap --with-ldap-includes=/usr/local/include --with-ldap-lib=/usr/local/lib" make Searching the mailing list archives, i have not found any solutions. -- mat From daemon@kzone.ch Mon Mar 1 00:01:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7C698C000D9D; Mon, 1 Mar 2004 00:01:57 +0200 (EET) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id 2F558C000D9B for ; Mon, 1 Mar 2004 00:01:55 +0200 (EET) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id WAA02490 for dovecot@dovecot.org; Sun, 29 Feb 2004 22:58:23 +0100 From: Sven Kirmess To: dovecot@dovecot.org Subject: Re: [Dovecot] index file corruption Date: Sun, 29 Feb 2004 22:59:43 +0100 Organization: Kirmess Lines: 7 Message-ID: References: <20040229195920.GA20586@po.reynerie.org> NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1078091903 2485 192.168.100.100 (29 Feb 2004 21:58:23 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 29 Feb 2004 21:58:23 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <20040229195920.GA20586@po.reynerie.org> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Feb 2004 22:01:57 -0000 X-UID: 8764 Status: O mat@reynerie.org wrote: > I'm using Dovecot (dovecot-0.99.10p0) on OpenBSD-3.4 for few weeks now. Please update to 0.99.10.4. This solves a lot of problems... Sven From jaldhar@debian.org Mon Mar 1 19:21:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2BA7AC000D9D; Mon, 1 Mar 2004 19:21:06 +0200 (EET) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id DC665C000D9B for ; Mon, 1 Mar 2004 19:21:03 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 87DB47FC9; Mon, 1 Mar 2004 12:17:35 -0500 (EST) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10665-07; Mon, 1 Mar 2004 12:17:11 -0500 (EST) Received: from jyoti.intranet.braincells.com (pcp04500707pcs.jersyc01.nj.comcast.net [68.38.210.164]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 13E597FC7; Mon, 1 Mar 2004 12:17:11 -0500 (EST) Date: Mon, 1 Mar 2004 12:20:10 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@jyoti.intranet.braincells.com To: Ewald Geschwinde Subject: Re: [Dovecot] severe problem In-Reply-To: <40421E04.6010204@geschwinde.net> Message-ID: References: <40421E04.6010204@geschwinde.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Mar 2004 17:21:06 -0000 X-UID: 8765 Status: O On Sun, 29 Feb 2004, Ewald Geschwinde wrote: > I have debian knoppix and postfix + dovecot imap > > My problem is the following: > > Feb 29 18:51:14 cybserv imap-login: Login: xx@xxx.xx [xx.xx.xx.xx] > Feb 29 18:51:14 cybserv dovecot: child 13959 (imap) killed with signal 11 > Feb 29 18:52:41 cybserv imap-login: Disconnected [xx.xxx.xx.xx] > Feb 29 18:52:41 cybserv dovecot: child 13952 (login) killed with signal 11 > > > I'm using the debian package for the version 0.99.10.4-2 > > Always when someone tries to login the server throws this error > > I don't know whats going wrong > > I'm using a postgresql backend > Signal 11 is SIGSEGV which indicates a memory fault. If you go back a few days, instructions were posted on this list about how to use GDB to provide a trace. This will give more information on where exactly the problem is occurring. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From jmelville@selectaustralasia.com.au Tue Mar 2 06:43:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3FA78C000D9D; Tue, 2 Mar 2004 06:43:35 +0200 (EET) Received: from pittst-smtp.select-appointments.com.au (unknown [61.88.1.162]) by talvi.dovecot.org (Postfix) with SMTP id 95D32C000D9B for ; Tue, 2 Mar 2004 06:43:30 +0200 (EET) Received: FROM Moomintroll BY pittst-smtp.select-appointments.com.au ; Tue Mar 02 15:42:03 2004 +1100 From: "Julian Melville" To: Date: Tue, 2 Mar 2004 15:39:50 +1100 Organization: Select Australasia Message-ID: <025001c40010$65e28fc0$c002020a@Moomintroll> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.3416 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Importance: Normal Subject: [Dovecot] Dovecot failing silently on startup X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Mar 2004 04:43:35 -0000 X-UID: 8766 Status: O I'm puzzled... I'm running the Debian package of Dovecot 0.99.10.4 on a Debian (testing) server, and it's basically doing nothing on startup for an extended period. After a while (maybe 10 minutes or more) it all suddenly starts working, all without logging anything untoward. All the dovecot processes appear to start OK, and 'Dovecot starting up' is logged to the syslog. If you telnet to an IMAP or POP3 port at this point, it will successfully connect but there's no response (i.e. no '* OK dovecot ready'). Nothing else on this server is failing in this way; e.g. Apache and PostgreSQL are running fine throughout this period. Has anyone else seen anything like this? Cheers, Julian. From jaldhar@debian.org Tue Mar 2 07:28:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6C110C002802; Tue, 2 Mar 2004 07:28:18 +0200 (EET) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 173E7C000D9D for ; Tue, 2 Mar 2004 07:28:16 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id D8DAD804A; Tue, 2 Mar 2004 00:24:49 -0500 (EST) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18982-02; Tue, 2 Mar 2004 00:24:24 -0500 (EST) Received: from [192.168.1.118] (pcp04500707pcs.jersyc01.nj.comcast.net [68.38.210.164]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 839BC7FC9; Tue, 2 Mar 2004 00:24:24 -0500 (EST) Date: Tue, 2 Mar 2004 00:23:46 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Julian Melville Subject: Re: [Dovecot] Dovecot failing silently on startup In-Reply-To: <025001c40010$65e28fc0$c002020a@Moomintroll> Message-ID: References: <025001c40010$65e28fc0$c002020a@Moomintroll> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Mar 2004 05:28:18 -0000 X-UID: 8767 Status: O On Tue, 2 Mar 2004, Julian Melville wrote: > I'm puzzled... I'm running the Debian package of Dovecot 0.99.10.4 on a > Debian (testing) server, and it's basically doing nothing on startup for > an extended period. After a while (maybe 10 minutes or more) it all > suddenly starts working, all without logging anything untoward. > > All the dovecot processes appear to start OK, and 'Dovecot starting up' > is logged to the syslog. If you telnet to an IMAP or POP3 port at this > point, it will successfully connect but there's no response (i.e. no '* > OK dovecot ready'). > How are your mailboxes arranged? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From hendry@cs.helsinki.fi Tue Mar 2 17:07:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F0533C000D9D; Tue, 2 Mar 2004 17:07:01 +0200 (EET) Received: from mail.cs.helsinki.fi (courier.cs.helsinki.fi [128.214.9.1]) by talvi.dovecot.org (Postfix) with ESMTP id D1AF7C000D9B for ; Tue, 2 Mar 2004 17:06:59 +0200 (EET) Received: from bogrund-17.cs.helsinki.fi (bogrund-17.cs.helsinki.fi [::ffff:128.214.48.17]) (IDENT: root, AUTH: PLAIN cs-relay, TLS: TLSv1/SSLv3, 168bits, DES-CBC3-SHA) by mail.cs.helsinki.fi with esmtp; Tue, 02 Mar 2004 17:03:25 +0200 Received: from bogrund-17.cs.helsinki.fi (localhost [127.0.0.1]) by bogrund-17.cs.helsinki.fi (8.12.8/8.12.8) with ESMTP id i22F3O9V022031; Tue, 2 Mar 2004 17:03:24 +0200 Received: (from hendry@localhost) by bogrund-17.cs.helsinki.fi (8.12.8/8.12.8/Submit) id i22F3OV9022029; Tue, 2 Mar 2004 17:03:24 +0200 Date: Tue, 2 Mar 2004 17:03:24 +0200 From: Kai Hendry To: Timo Sirainen Subject: Re: [Dovecot] debian unstable : mutt polling imap mailboxes Message-ID: <20040302150324.GN19852@cs.helsinki.fi> References: <20040216150557.GI636@cs.helsinki.fi> <1077729550.10801.74.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <1077729550.10801.74.camel@hurina> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Mar 2004 15:07:02 -0000 X-UID: 8768 Status: O Content-Length: 1127 On Wed, Feb 25, 2004 at 07:19:10PM +0200, Timo Sirainen wrote: > > I use courier IMAP at school, and I have not experienced this problem. A > > bug with dovecot or mutt? > > It's most likely a Dovecot bug, possibly related to somewhat broken > RECENT count handling. I can't reproduce it though, do you have to tell > mutt somehow to check the new mails? You tell mutt to poll mailboxes with the mailboxes directive in the configuration file .muttrc: For example mutt will check poll these mailboxes on my host for new mail: mailboxes {hendry@daidalos.pannuhuone.org/ssl} mailboxes imaps://hendry@daidalos.pannuhuone.org/prazefarm mailboxes imaps://hendry@daidalos.pannuhuone.org/rss Doc: http://www.mutt.org/doc/manual/manual-4.html#ss4.11 I use maildrop to filter the mail into respective mailboxes. From tss@iki.fi Wed Mar 3 02:24:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D386EC002800; Wed, 3 Mar 2004 02:24:54 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B1477C000D9B for ; Wed, 3 Mar 2004 02:24:52 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id 1F2ED2385D; Wed, 3 Mar 2004 02:21:17 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 088E2239F5; Wed, 3 Mar 2004 02:21:17 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D56BA2385D for ; Wed, 3 Mar 2004 02:20:42 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id CA75B300DFC12; Wed, 3 Mar 2004 02:20:41 +0200 (EET) Subject: Re: [Dovecot] UW-IMAP -> Dovecot : patch to remove nasty "internal messages" from UW-IMAP ? From: Timo Sirainen To: wired@linfe.it In-Reply-To: <20040227095544.GA31847@linfe.it> References: <1077731852.10810.120.camel@hurina> <20040227095544.GA31847@linfe.it> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-MX5Pz/ftd/09OguzVfKT" Message-Id: <1078273241.23329.101.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 03 Mar 2004 02:20:41 +0200 Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Mar 2004 00:24:55 -0000 X-UID: 8769 Status: O Content-Length: 1515 --=-MX5Pz/ftd/09OguzVfKT Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-02-27 at 11:55, wired@linfe.it wrote: > >From Timo Sirainen, Feb 25: > >I don't really recommend using Dovecot with mbox at the moment. I'll > >probably add support for "folder internal data" messages for rewritten > >mbox support. >=20 >=20 > Well, i am using mbox currently. My mails are at risk? > Should i switch to maildir?=20 I've been using mbox for a year and haven't yet seen a lost mail. Of course, I'm not sure if I would notice it.. :) There does anyway appear to be some problems with accessing Drafts mbox. Probably because it's so often emptied completely by client, or because of some usage pattern that clients use for it (append, delete, expunge, append, ..). The result is that sometimes when there's two drafts and the first one is expunged, the second one is expunged as well. I've also heard of some actual mbox corruption from one large installation, but I don't know if it really was Dovecot's problem as I've never heard of it from others. Might have been some problem related to their specific environment. --=-MX5Pz/ftd/09OguzVfKT Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBARSTZyUhSUUBViskRAsLgAJ4se8g6TsTmM6F8/8BiMy87Ds2dQwCgkt87 6bMg1hn1Xs7O0E1EP9jqBgY= =YNze -----END PGP SIGNATURE----- --=-MX5Pz/ftd/09OguzVfKT-- From tss@iki.fi Wed Mar 3 02:29:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D4E92C002803; Wed, 3 Mar 2004 02:29:05 +0200 (EET) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id ACFFBC002802 for ; Wed, 3 Mar 2004 02:29:03 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 161C4300DFC12; Wed, 3 Mar 2004 02:25:28 +0200 (EET) Subject: Re: [Dovecot] index file corruption From: Timo Sirainen To: mat@reynerie.org In-Reply-To: <20040229195920.GA20586@po.reynerie.org> References: <20040229195920.GA20586@po.reynerie.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-VS2s1u8pmm3SDjpZze4H" Message-Id: <1078273527.23334.108.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 03 Mar 2004 02:25:28 +0200 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Mar 2004 00:29:06 -0000 X-UID: 8770 Status: O Content-Length: 1173 --=-VS2s1u8pmm3SDjpZze4H Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2004-02-29 at 21:59, mat@reynerie.org wrote: > I'm using Dovecot (dovecot-0.99.10p0) on OpenBSD-3.4 for few weeks now. >=20 > When i connect to my IMAP account the connection is often closed by=20 > dovecot when i try to delete mails. >=20 > I can see messages like this in log: >=20 > Feb 29 18:47:00 po imap(mat@reynerie.org): Corrupted binary tree file > /home/mat/Maildir//.INBOX/.imap.index.tree: used_file_size larger than > real file size (1772 vs 1556) I guess Dovecot doesn't work too well with OpenBSD now. Although I haven't heard of constant failures with it. OpenBSD-port had a patch which tried to fix this issue, but I don't think the patch is perfect. Real fix will be next version.. --=-VS2s1u8pmm3SDjpZze4H Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBARSX3yUhSUUBViskRAoCYAJ4pfOJD+Pw2dSmxFTYm2m51RW5MWwCdHXs8 AxaOaobyB9V4Zf2r2Xb69Tk= =Dh/y -----END PGP SIGNATURE----- --=-VS2s1u8pmm3SDjpZze4H-- From joe@morristeichman.com Wed Mar 3 19:03:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 44B9BC002800; Wed, 3 Mar 2004 19:03:06 +0200 (EET) Received: from morristeichman.com (rrcs-nyc-24-105-128-34.biz.rr.com [24.105.128.34]) by talvi.dovecot.org (Postfix) with ESMTP id 40CAFC000D9B for ; Wed, 3 Mar 2004 19:03:03 +0200 (EET) Received: from morristeichman.com (localhost.localdomain [127.0.0.1]) by morristeichman.com (8.12.8/8.12.8) with ESMTP id i23GsKpd025184 for ; Wed, 3 Mar 2004 11:54:20 -0500 From: "Joseph Teichman" To: dovecot@dovecot.org Subject: Re: [Dovecot] UW-IMAP -> Dovecot : patch to remove nasty Date: Wed, 3 Mar 2004 11:54:20 -0500 Message-Id: <20040303164858.M20832@morristeichman.com> In-Reply-To: <20040303100004.48331C002803@talvi.dovecot.org> References: <20040303100004.48331C002803@talvi.dovecot.org> X-Mailer: Open WebMail 2.30 20040131 X-OriginatingIP: 134.74.42.50 (joe) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Mar 2004 17:03:06 -0000 X-UID: 8771 Status: O > I've also heard of some actual mbox corruption from one large > installation, but I don't know if it really was Dovecot's problem as > I've never heard of it from others. Might have been some problem related > to their specific environment. I have also had a similar problem where there was partial curroption of an mbox folder. After that point in time, I could not properly read some messags using Openwebmail. I did not have time to fully investigate the exact cause and the exact form of the curroption, but I did want to let you know that it is an issue. Thanks, Joe From m_pahlevanzadeh@yahoo.com Thu Mar 4 11:44:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6CDD4C000D9D; Thu, 4 Mar 2004 11:44:34 +0200 (EET) Received: from web21407.mail.yahoo.com (web21407.mail.yahoo.com [216.136.232.77]) by talvi.dovecot.org (Postfix) with SMTP id 94BC4C000D9B for ; Thu, 4 Mar 2004 11:44:31 +0200 (EET) Message-ID: <20040304094051.24190.qmail@web21407.mail.yahoo.com> Received: from [213.233.160.4] by web21407.mail.yahoo.com via HTTP; Thu, 04 Mar 2004 01:40:51 PST Date: Thu, 4 Mar 2004 01:40:51 -0800 (PST) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] user X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Mar 2004 09:44:34 -0000 X-UID: 8772 Status: O Hi. I want to test my users. This means when i login via telnet or other,i can login into imapo server. Please guide me..... Yours,Mohsen. ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Search - Find what you’re looking for faster http://search.yahoo.com From m_pahlevanzadeh@yahoo.com Thu Mar 4 11:50:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1CACFC002802; Thu, 4 Mar 2004 11:50:21 +0200 (EET) Received: from web21405.mail.yahoo.com (web21405.mail.yahoo.com [216.136.232.75]) by talvi.dovecot.org (Postfix) with SMTP id 68E97C002801 for ; Thu, 4 Mar 2004 11:50:18 +0200 (EET) Message-ID: <20040304094638.24662.qmail@web21405.mail.yahoo.com> Received: from [213.233.160.4] by web21405.mail.yahoo.com via HTTP; Thu, 04 Mar 2004 01:46:38 PST Date: Thu, 4 Mar 2004 01:46:38 -0800 (PST) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] libpam-pwdfile X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Mar 2004 09:50:21 -0000 X-UID: 8773 Status: O hi Where are libpam-pwdfile on my hard? Please guide me... Yours,Mohsen. ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Search - Find what you’re looking for faster http://search.yahoo.com From gmid-dovecot@m.gmane.org Thu Mar 4 14:17:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 12B8BC002802; Thu, 4 Mar 2004 14:17:51 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 89F4CC002800 for ; Thu, 4 Mar 2004 14:17:48 +0200 (EET) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1Ayrjt-0003Xw-00 for ; Thu, 04 Mar 2004 13:14:09 +0100 Received: from pd9e1e437.dip.t-dialin.net ([217.225.228.55]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu Mar 4 12:14:09 2004 Received: from matthias.andree by pd9e1e437.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu Mar 4 12:14:09 2004 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Thu, 04 Mar 2004 13:10:10 +0100 Lines: 16 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd9e1e437.dip.t-dialin.net User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.2 (gnu/linux) Cancel-Lock: sha1:qKH5Rw1I04ghWtGVwb9UEnCbqJg= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] RFE: more graceful handling of startup errors X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Mar 2004 12:17:51 -0000 X-UID: 8774 Status: O Hi, I've just had a funny (but not amusing) incident after boot-up on a Dovecot server. rpc.mountd (NFS server) grabbed port 995 (POP3-SSL), and the whole Dovecot lot (POP3-SSL, IMAP-SSL, IMAP) refused to start up, rather than just letting POP3-SSL fail with "address in use". May I request to kindly consider letting Dovecot services fail individually rather than all of them, at least optionally? TIA, -- Matthias Andree Encrypt your mail: my GnuPG key ID is 0x052E7D95 From payton@repligen.com Thu Mar 4 18:13:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 82EA6C002804; Thu, 4 Mar 2004 18:13:46 +0200 (EET) Received: from rohan.repligen.com (66.237.173.210.ptr.us.xo.net [66.237.173.210]) by talvi.dovecot.org (Postfix) with SMTP id 9FD1AC002800 for ; Thu, 4 Mar 2004 18:13:43 +0200 (EET) Received: (qmail 7917 invoked from network); 4 Mar 2004 11:08:01 -0500 Received: from mithrin (10.0.10.31) by rohan.repligen.com with SMTP; 4 Mar 2004 11:08:01 -0500 Date: Thu, 4 Mar 2004 11:10:03 -0500 (EST) From: Payton X-X-Sender: payton@localhost.localdomain To: dovecot@dovecot.org Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] imap MUA received X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Mar 2004 16:13:46 -0000 X-UID: 8775 Status: O Content-Length: 1060 Does anyone know where MUAs like Outlook, Entourage, and Mail.app get their 'Received' or 'Date Received' information from? It certainly doesn't appear to correspond with the mail headers, at least in my case, so I'm guessing it's possibly getting that data from the IMAP server? My mail clients (MUAs) show the 'Receieved' time as 5 hours off. I have qmail running as my MTA, and since it stamps emails' "Received" header with time in GMT (-0000) and I'm in EST (-0500) I thought that was the problem. However, I patched qmail to set the headers in -0500 instead, which worked as far as I can tell, but the MUAs *still* report the time incorrectly! (Time on both the client and the server are correct as well.) Here is my setup: dovecot running pop/imap mbox files (yes, i know this is bad) qmail as my MTA (used to list time as GMT in headers, but I patched it and now the headers list time in the local zone instead) -- ;; Payton Swick ;; ;; Repligen Corporation ;; ;; IT Systems Administrator ;; ;; payton@repligen.com ;; From bergeron@brandeis.edu Fri Mar 5 00:41:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3B222C002802; Fri, 5 Mar 2004 00:41:19 +0200 (EET) Received: from blanca.unet.brandeis.edu (blanca.unet.brandeis.edu [129.64.99.169]) by talvi.dovecot.org (Postfix) with ESMTP id AC7C9C002800 for ; Fri, 5 Mar 2004 00:41:16 +0200 (EET) Received: from [129.64.8.96] (laurion.unet.brandeis.edu [129.64.8.96]) by blanca.unet.brandeis.edu (8.12.10/8.12.10) with ESMTP id i24MbYcF009249 for ; Thu, 4 Mar 2004 17:37:34 -0500 Mime-Version: 1.0 (Apple Message framework v612) Content-Transfer-Encoding: 7bit Message-Id: <88547DB4-6E2C-11D8-80E9-000A9568F602@brandeis.edu> Content-Type: text/plain; charset=US-ASCII; format=flowed To: dovecot@dovecot.org From: Chad Bergeron Date: Thu, 4 Mar 2004 17:37:35 -0500 X-Mailer: Apple Mail (2.612) X-Mailman-Approved-At: Fri, 05 Mar 2004 01:43:58 +0200 Subject: [Dovecot] OS X 10.3, SSL, client connection hangs? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Mar 2004 22:41:19 -0000 X-UID: 8776 Status: O Ok, I've just installed Dovecot, and got it set up in xinetd for ssl and plain/pam. Everything looks good, I even got to the point where my client (mail.app) asked if I wanted to accept the new certificate I'd made. All good. But then the imap connection seems to hang right after negotiating. Nothing shows up in my logs except a disconnect, usually for inactivity. Has anyone else managed to set Dovecot up on 10.3, and has anyone seen this issue, or ones like it? Trying to figure out where to go from here... -Chad Bergeron From daniel@electricrain.com Fri Mar 5 02:09:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EE975C002802; Fri, 5 Mar 2004 02:09:45 +0200 (EET) Received: from electricrain.com (electricrain.com [64.71.143.226]) by talvi.dovecot.org (Postfix) with ESMTP id 2DE4CC002800 for ; Fri, 5 Mar 2004 02:09:43 +0200 (EET) Received: (qmail 28074 invoked by uid 501); 5 Mar 2004 00:06:00 -0000 Date: Thu, 4 Mar 2004 16:06:00 -0800 From: Dan Sully To: Chad Bergeron Subject: Re: [Dovecot] OS X 10.3, SSL, client connection hangs? Message-ID: <20040305000600.GF7880@electricrain.com> Mail-Followup-To: Chad Bergeron , dovecot@dovecot.org References: <88547DB4-6E2C-11D8-80E9-000A9568F602@brandeis.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <88547DB4-6E2C-11D8-80E9-000A9568F602@brandeis.edu> X-Invader-Zim: (on skool intercom) All these children get to go to a special place made entirely of food. I like food. User-Agent: Mutt/1.5.4i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Mar 2004 00:09:46 -0000 X-UID: 8777 Status: O * Chad Bergeron shaped the electrons to say... >Ok, I've just installed Dovecot, and got it set up in xinetd for ssl >and plain/pam. Everything looks good, I even got to the point where my >client (mail.app) asked if I wanted to accept the new certificate I'd >made. All good. But then the imap connection seems to hang right >after negotiating. Nothing shows up in my logs except a disconnect, >usually for inactivity. > >Has anyone else managed to set Dovecot up on 10.3, and has anyone seen >this issue, or ones like it? Trying to figure out where to go from >here... I'm seeing this as well, usually with malformed spam messages. Unfortunately I've seen 0 response from Timo (or anyone else) regarding my previous queries to the list. -D -- Your mouse has moved, Windows NT (tm) needs to be restarted in order for this change to take effect. Reboot now? [Y] From jwk@bug.it Sat Mar 6 17:02:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 27866C000D9D; Sat, 6 Mar 2004 17:02:28 +0200 (EET) Received: from hydra.energy.local (adsl-237-151.38-151.net24.it [151.38.151.237]) by talvi.dovecot.org (Postfix) with SMTP id 089FCC000D9B for ; Sat, 6 Mar 2004 17:02:25 +0200 (EET) Received: (qmail 8179 invoked from network); 6 Mar 2004 14:58:40 -0000 Received: from unknown (HELO mirage.energy.local) (10.0.1.2) by hydra.energy.local with SMTP; 6 Mar 2004 14:58:40 -0000 Message-Id: <6.0.1.1.2.20040306155301.01e382e8@mail.energy.local> X-Sender: jwk@mail.energy.local X-Mailer: QUALCOMM Windows Eudora Version 6.0.1.1 Date: Sat, 06 Mar 2004 16:00:23 +0100 To: dovecot@dovecot.org From: Giacomo Cariello Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: [Dovecot] Mails manipulation and indices X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Mar 2004 15:02:28 -0000 X-UID: 8778 Status: O I've recently manipulated the contents of my maildir, changing the content of some mail files (mime handling and such...). This broke dovecot since it expected different filesizes while reading contents of files that were previously indexed. Therefore dovecot returned some assert like this: imap(jwk@bug.it): file istream.c: line 163 (i_stream_seek): assertion failed: (v_offset <= stream->v_size) Obviously, the solution was to remove indices and have dovecot recreate them. I suppose it would be more "polite" to have this kind of routines (i_stream_seek etc) handle this case by requesting indices recreation for indices that are no longer "real", instead of just dropping connection with some "internal error" message. Giacomo Cariello, jwk@bug.it KeyID: 3072/1024/0x409C9044 Fingerprint: 7984 10FD 0460 4202 BF90 3881 CDE4 D78E 409C 9044 "Put that mic in my hand and let me kick out the jams!" - MC5 From payton@repligen.com Sun Mar 7 07:19:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9C2D8C000D9D; Sun, 7 Mar 2004 07:19:07 +0200 (EET) Received: from rohan.repligen.com (66.237.173.210.ptr.us.xo.net [66.237.173.210]) by talvi.dovecot.org (Postfix) with SMTP id D698BC000D9B for ; Sun, 7 Mar 2004 07:19:04 +0200 (EET) Received: (qmail 12865 invoked by uid 566); 7 Mar 2004 00:15:16 -0500 Received: from payton@repligen.com by rohan by uid 501 with qmail-scanner-1.20st (clamscan: 0.67. spamassassin: 2.63. Clear:RC:1(10.0.10.31):. Processed in 0.017917 secs); 07 Mar 2004 05:15:16 -0000 Received: from mithrin (10.0.10.31) by rohan.repligen.com with SMTP; 7 Mar 2004 00:15:15 -0500 Date: Sun, 7 Mar 2004 00:15:15 -0500 (EST) From: Payton X-X-Sender: payton@localhost.localdomain To: dovecot@dovecot.org Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] imap internaldate X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Mar 2004 05:19:07 -0000 X-UID: 8779 Status: O I think I found a bug in dovecot which I'm not sure where to fix. (I may even have found a reference to it in an archived list message from Jul 2003.) Here is the situation: dovecot (dovecot-0.99.10.4) running with an imap server on an mbox system is queried by a local client program, like Mail.app, and is told the "Received" date of the message (presumably sent through INTERNALDATE), however, that date is being passed on in GMT (-0000) instead of the server or client's local time zone (EST -0500, in this case). Maybe it's assumed that the local client will convert this time to the local zone, but no clients I know actually do that. Anyone know how/where to fix this? Thanks! - Payton - payton@repligen.com From gary@technicalabuse.com Mon Mar 8 03:21:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1560CC000D9D; Mon, 8 Mar 2004 03:21:04 +0200 (EET) Received: from mail.midesigns.com (linux.midesigns.com [64.40.109.167]) by talvi.dovecot.org (Postfix) with ESMTP id 114E1C000D9B for ; Mon, 8 Mar 2004 03:21:02 +0200 (EET) Received: from [127.0.0.1] (helo=localhost) by mail.midesigns.com with esmtp (Exim 4.22) id 1B09Ka-0001BS-8X for dovecot@dovecot.org; Sun, 07 Mar 2004 17:13:20 -0800 Received: from mail.midesigns.com ([127.0.0.1]) by localhost (linux [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02695-03 for ; Sun, 7 Mar 2004 17:13:19 -0800 (PST) Received: from [127.0.0.1] (helo=vip) by mail.midesigns.com with esmtp (Exim 4.22) id 1B09KZ-0001BK-HV for dovecot@dovecot.org; Sun, 07 Mar 2004 17:13:19 -0800 From: Sender: "Gary Brown" To: Date: Sun, 7 Mar 2004 17:15:10 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook, Build 11.0.5510 Thread-Index: AcQEqs0zapUR1ekSS1iCC0exLvfXRQ== X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Message-Id: X-Virus-Scanned: by Virus Scanner at mail Subject: [Dovecot] MySQL Auth and default_mail_env X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Mar 2004 01:21:04 -0000 X-UID: 8780 Status: O Hi Not sure how much support you guys can offer but when I use default_mail_env = mbox:/var/spool/mail/%d/imap/%n/:INBOX=/var/spool/mail/%d/%n I get the login error .. Fatal: Failed to create storage with data: mbox:/var/spool/mail/DOMAIN/imap/USER/:INBOX=/var/spool/mail/DOMAIN/USER It is grabbing the right values for %d and %n from the mysql query 65 Query SELECT password FROM users WHERE username = 'USER' AND domainname = 'DOMAIN' 65 Query SELECT home, uid, gid FROM users where username = 'USER' AND domainname = 'DOMAIN' Anyone have the same experience. Any help is appreciated. Gary TechnicalAbuse.com From payton@repligen.com Mon Mar 8 19:51:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8FC6CC000D9D; Mon, 8 Mar 2004 19:51:24 +0200 (EET) Received: from rohan.repligen.com (66.237.173.210.ptr.us.xo.net [66.237.173.210]) by talvi.dovecot.org (Postfix) with SMTP id 67DBAC000D9B for ; Mon, 8 Mar 2004 19:51:21 +0200 (EET) Received: (qmail 1847 invoked by uid 48); 8 Mar 2004 12:47:31 -0500 Received: from mithrin (mithrin [10.0.10.31]) by mail.repligen.com (Horde) with HTTP for ; Mon, 8 Mar 2004 12:47:30 -0500 Message-ID: <20040308124730.01jqc0k4w88oggw8@mail.repligen.com> Date: Mon, 8 Mar 2004 12:47:30 -0500 From: Payton Swick To: dovecot@dovecot.org Subject: Re: [Dovecot] imap internaldate References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: 7bit User-Agent: Internet Messaging Program (IMP) 4.0-cvs X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Mar 2004 17:51:24 -0000 X-UID: 8781 Status: O Content-Length: 1084 This is the beginning of the thread which seems to also note this bug. Was anything ever resolved here? http://dovecot.procontrol.fi/list/dovecot/2003-July/001906.html Quoting Payton : > I think I found a bug in dovecot which I'm not sure where to fix. (I may > even have found a reference to it in an archived list message from Jul > 2003.) Here is the situation: > > dovecot (dovecot-0.99.10.4) running with an imap server on an mbox > system is queried by a local client program, like Mail.app, and is > told the "Received" date of the message (presumably sent through > INTERNALDATE), however, that date is being passed on in GMT (-0000) > instead of the server or client's local time zone (EST -0500, in this > case). Maybe it's assumed that the local client will convert this time to > the local zone, but no clients I know actually do that. > > Anyone know how/where to fix this? Thanks! > - Payton > - payton@repligen.com -- ;; Payton Swick ;; ;; IT Systems Administrator ;; ;; payton@repligen.com ;; ;; 781-250-0111 x2273 ;; From asmoore@edge.net Mon Mar 8 22:03:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F1B33C000D9D; Mon, 8 Mar 2004 22:03:47 +0200 (EET) Received: from sccrmhc12.comcast.net (sccrmhc12.comcast.net [204.127.202.56]) by talvi.dovecot.org (Postfix) with ESMTP id 8657FC000D9B for ; Mon, 8 Mar 2004 22:03:45 +0200 (EET) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (sccrmhc12) with ESMTP id <2004030819593801200itkm3e>; Mon, 8 Mar 2004 19:59:38 +0000 Received: from sws602 (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.11+Sun/8.12.11) with SMTP id i28Jxbn3013068 for ; Mon, 8 Mar 2004 13:59:37 -0600 (CST) Date: Mon, 8 Mar 2004 13:59:37 -0600 From: Alex S Moore To: Dovecot Message-Id: <20040308135937.5aa4b56c@sws602> X-Mailer: Sylpheed version 0.9.10claws (GTK+ 1.2.10; sparc-sun-solaris2.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version devel-20040304, clamav-milter version 0.67j Subject: [Dovecot] RE: imap process abends X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Mar 2004 20:03:48 -0000 X-UID: 8782 Status: O I am trying to setup dovecot imap on a test Solaris 8 box. I have dovecot POP3S running fine on another box, but I want to switch to IMAP. I see a successful login with a message like: Mar 8 13:22:47 sws601.mcsun.local imap-login: [ID 457029 mail.info] Login: sunuser1 [192.168.1.17] Then the Mozilla Mail client gets a message that the server disconnected. It appears to be from a segfault on the imap process. Here is the next message in syslog: Mar 8 13:22:47 sws601.mcsun.local dovecot: [ID 684838 mail.error] child 14108 (imap) killed with signal 11 On my ldap server, I see all of the appropriate entries for logging in getting the userdb info. So I think that I am past the login process, but I could be wrong. I setup a maildir environment on this server as follows: maildir:/export/home/imap/%u:INDEX=/var/indexes/%d/%n I have a test message to pickup and the maildir folders seem OK to me. Help, Alex From tres@gmx.net Tue Mar 9 09:55:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 95ED0C000D9D; Tue, 9 Mar 2004 09:55:54 +0200 (EET) Received: from mail.gmx.net (pop.gmx.de [213.165.64.20]) by talvi.dovecot.org (Postfix) with SMTP id 16F23C000D9B for ; Tue, 9 Mar 2004 09:55:52 +0200 (EET) Received: (qmail 31710 invoked by uid 65534); 9 Mar 2004 07:52:00 -0000 Received: from p508F7C71.dip.t-dialin.net (EHLO gmx.net) (80.143.124.113) by mail.gmx.net (mp012) with SMTP; 09 Mar 2004 08:52:00 +0100 X-Authenticated: #625015 Message-ID: <404D77C4.8050402@gmx.net> Date: Tue, 09 Mar 2004 08:52:36 +0100 From: "Tres!" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Problems with Mozilla X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Mar 2004 07:55:54 -0000 X-UID: 8783 Status: O Hello, I've some problems with Dovecot and Mozilla. First of all i have to mention, that Dovecot is installed on SuSE Linux 8.2 and uses up to 20 Win32 Mozilla clients. If you need further information, please let me know. My problem is, that I got one or two times a week a login failure from Mozilla, and the clients can't connect anymore. The error message from Mozilla after a long time "checking server capabilities" is "server is not an imap4 server". I haven't found something usable in the logs except for a login timeout of the clients who want to connect. If i kill the imap and imap-login tasks and restart redove, everything works well for some days. Is there anyone who knows something about my problem? regards Tres! From irish@technicalabuse.com Tue Mar 9 11:55:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2D68FC000D9D; Tue, 9 Mar 2004 11:55:35 +0200 (EET) Received: from mail.midesigns.com (linux.midesigns.com [64.40.109.167]) by talvi.dovecot.org (Postfix) with ESMTP id 10493C000D9B for ; Tue, 9 Mar 2004 11:55:33 +0200 (EET) Received: from [127.0.0.1] (helo=localhost) by mail.midesigns.com with esmtp (Exim 4.22) id 1B0dpU-00050U-N4 for dovecot@dovecot.org; Tue, 09 Mar 2004 01:47:16 -0800 Received: from mail.midesigns.com ([127.0.0.1]) by localhost (linux [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18633-06 for ; Tue, 9 Mar 2004 01:47:16 -0800 (PST) Received: from [127.0.0.1] (helo=vip) by mail.midesigns.com with asmtp (Exim 4.22) id 1B0dpU-00050M-2A for dovecot@dovecot.org; Tue, 09 Mar 2004 01:47:16 -0800 From: Sender: "Irish" To: Subject: RE: [Dovecot] MySQL Auth and default_mail_env Date: Tue, 9 Mar 2004 01:49:28 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook, Build 11.0.5510 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Thread-Index: AcQEqs0zapUR1ekSS1iCC0exLvfXRQBEIMPA In-Reply-To: Message-Id: X-Virus-Scanned: by Virus Scanner at mail X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Mar 2004 09:55:35 -0000 X-UID: 8784 Status: O Content-Length: 1328 Well I got the env to work with leaving an empty default_mail_env = In the conf and using the full path in the db. IE: mbox:/var/spool/mail/domain/imap/user/ I can't use substitution with this method and I get Fatal: chdir errors now on login For the UID / GID listed in the DB This is a bit frustrating. Is anyone using mysql auth successfully ? OR should I be waiting for a working release. Gary TechnicalAbuse.com -----Original Message----- From: dovecot-bounces@dovecot.org [mailto:dovecot-bounces@dovecot.org] On Behalf Of dovecot@technicalabuse.com Sent: Sunday, March 07, 2004 5:15 PM To: dovecot@dovecot.org Subject: [Dovecot] MySQL Auth and default_mail_env Hi Not sure how much support you guys can offer but when I use default_mail_env = mbox:/var/spool/mail/%d/imap/%n/:INBOX=/var/spool/mail/%d/%n I get the login error .. Fatal: Failed to create storage with data: mbox:/var/spool/mail/DOMAIN/imap/USER/:INBOX=/var/spool/mail/DOMAIN/USER It is grabbing the right values for %d and %n from the mysql query 65 Query SELECT password FROM users WHERE username = 'USER' AND domainname = 'DOMAIN' 65 Query SELECT home, uid, gid FROM users where username = 'USER' AND domainname = 'DOMAIN' Anyone have the same experience. Any help is appreciated. Gary TechnicalAbuse.com From spowers@rogueriver.k12.or.us Tue Mar 9 03:35:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BC0E3C000D9D; Tue, 9 Mar 2004 03:35:47 +0200 (EET) Received: from mail.rogueriver.k12.or.us (mail.rogueriver.k12.or.us [198.237.120.177]) by talvi.dovecot.org (Postfix) with SMTP id 5E349C000D9B for ; Tue, 9 Mar 2004 03:35:43 +0200 (EET) Received: from [198.237.134.124] by mail.rogueriver.k12.or.us (AppleMailServer 10.2.3.0) id 185387 via TCP with SMTP; Mon, 08 Mar 2004 17:31:51 -0800 From: Sam Powers To: dovecot@dovecot.org Content-Type: text/plain Message-Id: <1078795887.3380.12.camel@koopa> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 08 Mar 2004 17:31:27 -0800 Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Tue, 09 Mar 2004 15:54:25 +0200 Subject: [Dovecot] RE: imap segv trying to list inbox X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Mar 2004 01:35:47 -0000 X-UID: 8785 Status: O Content-Length: 2443 (This is releveant information to the one that Alex Moore just posted, but I'm not subscribed yet so I can't properly reply to that thread. Sorry for creating a new one.) I've got a crash in dovecot-imap when trying to list the inbox on a nonexistant directory. I'm not sure how it should be handled, but basically it's only happening when the directory in imap's MAIL environment doesn't exist. This is a problem for me because I'm trying to have dovecot create all the necessary directories in the specified environment, as I don't know if the user will pop/imap or recieve an email first, and the dir needs to either be already ready, or created upon reciept. I've already got postfix to create a ~/Maildir when a new mail comes in, but for my migration plan to work, I need dovecot to create this directory instead of segfaulting. ;) dante:/usr/lib/dovecot# MAIL=maildir:/tmp/nonexistant gdb ./imap (gdb) run Starting program: /usr/lib/dovecot/imap (no debugging symbols found)...(no debugging symbols found)... * PREAUTH [CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED] Logged in as root 1 list "" inbox (no debugging symbols found)... Program received signal SIGSEGV, Segmentation fault. 0x400c32ef in readdir64 () from /lib/libc.so.6 (gdb) bt #0 0x400c32ef in readdir64 () from /lib/libc.so.6 #1 0x0805c70b in maildir_expunge_locked () #2 0x0805cda1 in maildir_list_mailbox_init () #3 0x08052a60 in cmd_idle () #4 0x08052d4a in _cmd_list_full () #5 0x08052ea7 in cmd_list () #6 0x08054a19 in _client_reset_command () #7 0x08054aa8 in _client_input () #8 0x0808adb8 in io_loop_handler_run () #9 0x0808a748 in io_loop_run () #10 0x0805aab9 in main () #11 0x40034dc6 in __libc_start_main () from /lib/libc.so.6 If I use MAIL=maildir:/tmp/nonexistant, it crashes, but what I'm really trying to do is MAIL=maildir:/home/staff/%u/Maildir/, which will necessarily be nonexistant, and I'd like to see dovecot create this in the manner that postfix does; with the logged in user's uid/gid. Now, if I leave default_mail_env blank, and let dovecot's autodetection do the work, it seems to create a maildir in ~/mail. This works just fine, except it's the wrong directory. Otherwise, dovecot rocks, and in another, less automatic setup, I've been using it for the better part of a year with nothing but happy results, and appreciate your work. (Irssi too :) -Sam From david@madole.net Tue Mar 9 17:15:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2366DC000D9D; Tue, 9 Mar 2004 17:15:20 +0200 (EET) Received: from box1.omd3.com (box1.omd3.com [69.46.19.120]) by talvi.dovecot.org (Postfix) with ESMTP id D515AC000D9B for ; Tue, 9 Mar 2004 17:15:17 +0200 (EET) Received: from ip-209-54-72-175.ct.dsl.ntplx.com ([209.54.72.175] helo=david)by box1.omd3.com with asmtp (Exim 4.30)id 1B0it5-000CVv-9k; Tue, 09 Mar 2004 10:11:20 -0500 Message-ID: <043a01c405e8$c629db80$e3e7a8c0@david> From: "David S. Madole" To: References: Subject: Re: [Dovecot] MySQL Auth and default_mail_env Date: Tue, 9 Mar 2004 10:11:10 -0500 MIME-Version: 1.0 Content-Type: text/plain;charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Mar 2004 15:15:20 -0000 X-UID: 8786 Status: O > From: > Sent: Tuesday, March 09, 2004 4:49 AM > > Well I got the env to work with leaving an empty > > default_mail_env = > > In the conf and using the full path in the db. > > IE: mbox:/var/spool/mail/domain/imap/user/ > If you don't want to actually define it in the database, then why not just use a query like like: user_query = SELECT 'mbox:/var/spool/mail/%d/imap/%n/' as mail, home, uid, gid FROM users WHERE username = '%n' AND domainname = '%d' And let mySQL do the substitution bit? David ____________________________________________________________________________ This message is spam and virus free. Filtering solutions by http://omd3.com Expert computer system support and development by http://baysidenetworks.com From gary@technicalabuse.com Tue Mar 9 22:10:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5ECA4C000D9D; Tue, 9 Mar 2004 22:10:51 +0200 (EET) Received: from mail.midesigns.com (linux.midesigns.com [64.40.109.167]) by talvi.dovecot.org (Postfix) with ESMTP id 53CB8C000D9B for ; Tue, 9 Mar 2004 22:10:49 +0200 (EET) Received: from [127.0.0.1] (helo=localhost) by mail.midesigns.com with esmtp (Exim 4.22) id 1B0nQx-0006cL-NP; Tue, 09 Mar 2004 12:02:35 -0800 Received: from mail.midesigns.com ([127.0.0.1]) by localhost (linux [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25106-02; Tue, 9 Mar 2004 12:02:35 -0800 (PST) Received: from [127.0.0.1] (helo=vip) by mail.midesigns.com with esmtp (Exim 4.22) id 1B0nQw-0006cE-W4; Tue, 09 Mar 2004 12:02:35 -0800 From: Sender: "Gary Brown" To: "'David S. Madole'" Subject: RE: [Dovecot] MySQL Auth and default_mail_env Date: Tue, 9 Mar 2004 12:04:54 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook, Build 11.0.5510 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 In-Reply-To: <043a01c405e8$c629db80$e3e7a8c0@david> Thread-Index: AcQF6DQ6xq9ale05RCa92dpWpK50mwAKMyUg Message-Id: X-Virus-Scanned: by Virus Scanner at mail Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Mar 2004 20:10:51 -0000 X-UID: 8787 Status: O Content-Length: 1211 No reason , only that I hadn't thought of that at 4:30 AM heh I am using that now as the select for testing. Thanks. Now I get chdir fatals but at least it's dynamic. failed with uid Permission denied Gary -----Original Message----- From: David S. Madole [mailto:david@madole.net] Sent: Tuesday, March 09, 2004 7:11 AM To: dovecot@technicalabuse.com Cc: dovecot@dovecot.org Subject: Re: [Dovecot] MySQL Auth and default_mail_env > From: > Sent: Tuesday, March 09, 2004 4:49 AM > > Well I got the env to work with leaving an empty > > default_mail_env = > > In the conf and using the full path in the db. > > IE: mbox:/var/spool/mail/domain/imap/user/ > If you don't want to actually define it in the database, then why not just use a query like like: user_query = SELECT 'mbox:/var/spool/mail/%d/imap/%n/' as mail, home, uid, gid FROM users WHERE username = '%n' AND domainname = '%d' And let mySQL do the substitution bit? David ____________________________________________________________________________ This message is spam and virus free. Filtering solutions by http://omd3.com Expert computer system support and development by http://baysidenetworks.com From david@madole.net Tue Mar 9 23:34:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A5DE2C000D9D; Tue, 9 Mar 2004 23:34:29 +0200 (EET) Received: from box1.omd3.com (box1.omd3.com [69.46.19.120]) by talvi.dovecot.org (Postfix) with ESMTP id 907C1C000D9B for ; Tue, 9 Mar 2004 23:34:27 +0200 (EET) Received: from ip-209-54-72-175.ct.dsl.ntplx.com ([209.54.72.175] helo=david)by box1.omd3.com with asmtp (Exim 4.30)id 1B0oo4-000DiS-PV; Tue, 09 Mar 2004 16:30:33 -0500 Message-ID: <000701c4061d$bf6a4ed0$e3e7a8c0@david> From: "David S. Madole" To: References: Subject: Re: [Dovecot] MySQL Auth and default_mail_env Date: Tue, 9 Mar 2004 16:30:29 -0500 MIME-Version: 1.0 Content-Type: text/plain;charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Mar 2004 21:34:29 -0000 X-UID: 8788 Status: O > From: > Sent: Tuesday, March 09, 2004 3:04 PM > > Now I get chdir fatals but at least it's dynamic. > > failed with uid Permission denied > So what are the permissions on the directories? David ____________________________________________________________________________ This message is spam and virus free. Filtering solutions by http://omd3.com Expert computer system support and development by http://baysidenetworks.com From gary@technicalabuse.com Wed Mar 10 03:12:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EB1A9C000D9D; Wed, 10 Mar 2004 03:12:33 +0200 (EET) Received: from mail.midesigns.com (linux.midesigns.com [64.40.109.167]) by talvi.dovecot.org (Postfix) with ESMTP id EA105C000D9B for ; Wed, 10 Mar 2004 03:12:31 +0200 (EET) Received: from [127.0.0.1] (helo=localhost) by mail.midesigns.com with esmtp (Exim 4.22) id 1B0s8s-0000i9-S1 for dovecot@dovecot.org; Tue, 09 Mar 2004 17:04:14 -0800 Received: from mail.midesigns.com ([127.0.0.1]) by localhost (linux [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02539-02 for ; Tue, 9 Mar 2004 17:04:14 -0800 (PST) Received: from [127.0.0.1] (helo=vip) by mail.midesigns.com with esmtp (Exim 4.22) id 1B0s8s-0000i0-4Z for dovecot@dovecot.org; Tue, 09 Mar 2004 17:04:14 -0800 From: Sender: "Gary Brown" To: Subject: RE: [Dovecot] MySQL Auth and default_mail_env Date: Tue, 9 Mar 2004 17:06:37 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook, Build 11.0.5510 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 In-Reply-To: Thread-Index: AcQGHTcD44osjPEIQeeU/YLvkZMuugAAaETQAAc+OlA= Message-Id: X-Virus-Scanned: by Virus Scanner at mail X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Mar 2004 01:12:34 -0000 X-UID: 8789 Status: O Content-Length: 1189 Well I've tried a number of different permissions , uid , gid What I have are mail server permissions on the spool folders where the users are virtual. The mail server runs under exim:mail and I have tried unique uid:gid and exim:mail uid:gid To access the directories as well as the folder permissions 770 750 etc. Dovecot is running as it's own user (imapd) What should they be working as ? Maybe I missed something in the docs. Gary -----Original Message----- From: dovecot-bounces@dovecot.org [mailto:dovecot-bounces@dovecot.org] On Behalf Of David S. Madole Sent: Tuesday, March 09, 2004 1:30 PM To: dovecot@technicalabuse.com Cc: dovecot@dovecot.org Subject: Re: [Dovecot] MySQL Auth and default_mail_env > From: > Sent: Tuesday, March 09, 2004 3:04 PM > > Now I get chdir fatals but at least it's dynamic. > > failed with uid Permission denied > So what are the permissions on the directories? David ____________________________________________________________________________ This message is spam and virus free. Filtering solutions by http://omd3.com Expert computer system support and development by http://baysidenetworks.com From david@madole.net Wed Mar 10 05:13:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A796AC002800; Wed, 10 Mar 2004 05:13:46 +0200 (EET) Received: from box1.omd3.com (box1.omd3.com [69.46.19.120]) by talvi.dovecot.org (Postfix) with ESMTP id DB291C000D9D for ; Wed, 10 Mar 2004 05:13:43 +0200 (EET) Received: from ip-209-54-72-175.ct.dsl.ntplx.com ([209.54.72.175] helo=david)by box1.omd3.com with asmtp (Exim 4.30)id 1B0u6Q-000ElS-2y; Tue, 09 Mar 2004 22:09:50 -0500 Message-ID: <001b01c4064d$251f4030$e3e7a8c0@david> From: "David S. Madole" To: , References: Subject: Re: [Dovecot] MySQL Auth and default_mail_env Date: Tue, 9 Mar 2004 22:09:46 -0500 MIME-Version: 1.0 Content-Type: text/plain;charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Mar 2004 03:13:46 -0000 X-UID: 8790 Status: O > From: > Sent: Tuesday, March 09, 2004 8:06 PM > > Well I've tried a number of different permissions , uid , gid > > What I have are mail server permissions on the spool folders where the users > are virtual. > > The mail server runs under exim:mail and I have tried unique uid:gid and > exim:mail uid:gid To access the directories as well as the folder > permissions 770 750 etc. > > Dovecot is running as it's own user (imapd) > > What should they be working as ? Well, you need the mail server and imap server both able to write to these directories, so I would suggest putting both users in the same group and setting the driectory permissions to 770 and group ownership to the common group. David ____________________________________________________________________________ This message is spam and virus free. Filtering solutions by http://omd3.com Expert computer system support and development by http://baysidenetworks.com From mem@mv.mv.com Wed Mar 10 06:39:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A8227C002800; Wed, 10 Mar 2004 06:39:10 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 7BB55C000D9D for ; Wed, 10 Mar 2004 06:39:07 +0200 (EET) Received: (qmail 3265 invoked from network); 9 Mar 2004 23:35:13 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 9 Mar 2004 23:35:13 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 22522 invoked by uid 101); 9 Mar 2004 23:35:12 -0500 From: "Mark E. Mallett" Date: Tue, 9 Mar 2004 23:35:12 -0500 To: Payton Swick Subject: Re: [Dovecot] imap internaldate Message-ID: <20040310043512.GQ2713@iridium.mv.net> References: <20040308124730.01jqc0k4w88oggw8@mail.repligen.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040308124730.01jqc0k4w88oggw8@mail.repligen.com> User-Agent: Mutt/1.4.2.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Mar 2004 04:39:10 -0000 X-UID: 8791 Status: O Content-Length: 2360 On Mon, Mar 08, 2004 at 12:47:30PM -0500, Payton Swick wrote: > This is the beginning of the thread which seems to also note this bug. Was > anything ever resolved here? > > http://dovecot.procontrol.fi/list/dovecot/2003-July/001906.html > > Quoting Payton : > > >I think I found a bug in dovecot which I'm not sure where to fix. (I may > >even have found a reference to it in an archived list message from Jul > >2003.) Here is the situation: > > > >dovecot (dovecot-0.99.10.4) running with an imap server on an mbox > >system is queried by a local client program, like Mail.app, and is > >told the "Received" date of the message (presumably sent through > >INTERNALDATE), however, that date is being passed on in GMT (-0000) > >instead of the server or client's local time zone (EST -0500, in this > >case). Maybe it's assumed that the local client will convert this time to > >the local zone, but no clients I know actually do that. FWIW it's working now for me (your link leads to some of my comments earlier). I don't think it's a bug as much as a deficiency in the "From " line format used in the mbox storage. I first ran into it long before dovecot, when we put qmail on some systems. The pseudo-standard "From " format doesn't include a timezone field -- historically it was written using localtime. qmail (and maybe some others) use UTC -- but still without adding any indication of what the timezone is. Bringing in qmail resulted in a lot of mboxes with mixed types: some "From " lines using localtime and some using UTC. I made a change to our local delivery agent(s) so that they would add a timezone indication, first using a "UTC" timezone and then later changed to using "+0000". I suspect you didn't make those changes, so you are likely to have "From " lines without any indication of what timezone they are assuming. So dovecot may be making one assumption that doesn't match what your local delivery agent is doing. You can always go into the code and try to force it, I suppose. As for me: at some point Timo made a change to dovecot to recognize the extended date format in the "From " line. However there was still a minor issue, see: http://dovecot.procontrol.fi/list/dovecot/2003-November/002583.html (given the Timo's statements about redoing the mbox code, this is probably moot) mm From irish@technicalabuse.com Wed Mar 10 07:10:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1AD5FC002800; Wed, 10 Mar 2004 07:10:39 +0200 (EET) Received: from mail.midesigns.com (linux.midesigns.com [64.40.109.167]) by talvi.dovecot.org (Postfix) with ESMTP id 0DD2BC000D9D for ; Wed, 10 Mar 2004 07:10:37 +0200 (EET) Received: from [127.0.0.1] (helo=localhost) by mail.midesigns.com with esmtp (Exim 4.22) id 1B0vrE-0003Ru-Qa; Tue, 09 Mar 2004 21:02:16 -0800 Received: from mail.midesigns.com ([127.0.0.1]) by localhost (linux [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10343-08; Tue, 9 Mar 2004 21:02:16 -0800 (PST) Received: from [127.0.0.1] (helo=vip) by mail.midesigns.com with asmtp (Exim 4.22) id 1B0vrE-0003Rm-45; Tue, 09 Mar 2004 21:02:16 -0800 From: Sender: "Irish" To: "'David S. Madole'" Subject: RE: [Dovecot] MySQL Auth and default_mail_env Date: Tue, 9 Mar 2004 21:04:42 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook, Build 11.0.5510 In-Reply-To: <001b01c4064d$251f4030$e3e7a8c0@david> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Thread-Index: AcQGTItxXCcVqXPURGKwqKeJ0Q+yvQAEEfaA Message-Id: X-Virus-Scanned: by Virus Scanner at mail Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Mar 2004 05:10:39 -0000 X-UID: 8792 Status: O Content-Length: 1427 David Thanks for the responses. I did a check in every directory and it seems to have been the permissions on the runtime directory. Unfortunately the logs don't indicate that but it is working now. Gary Technicalabuse.com -----Original Message----- From: David S. Madole [mailto:david@madole.net] Sent: Tuesday, March 09, 2004 7:10 PM To: dovecot@technicalabuse.com; dovecot@dovecot.org Subject: Re: [Dovecot] MySQL Auth and default_mail_env > From: > Sent: Tuesday, March 09, 2004 8:06 PM > > Well I've tried a number of different permissions , uid , gid > > What I have are mail server permissions on the spool folders where the users > are virtual. > > The mail server runs under exim:mail and I have tried unique uid:gid > and exim:mail uid:gid To access the directories as well as the folder > permissions 770 750 etc. > > Dovecot is running as it's own user (imapd) > > What should they be working as ? Well, you need the mail server and imap server both able to write to these directories, so I would suggest putting both users in the same group and setting the driectory permissions to 770 and group ownership to the common group. David ____________________________________________________________________________ This message is spam and virus free. Filtering solutions by http://omd3.com Expert computer system support and development by http://baysidenetworks.com From gareth@wiked.org Thu Mar 11 01:57:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 23532C000D9D; Thu, 11 Mar 2004 01:57:07 +0200 (EET) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id F3B90C000D9B for ; Thu, 11 Mar 2004 01:57:04 +0200 (EET) Received: by danu.procontrol.fi (Postfix) id AA3D523825; Thu, 11 Mar 2004 01:53:10 +0200 (EET) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 9D59023829; Thu, 11 Mar 2004 01:53:10 +0200 (EET) Received: from mulder.wiked.org (unknown [207.151.143.148]) by danu.procontrol.fi (Postfix) with ESMTP id B077C23825 for ; Thu, 11 Mar 2004 01:52:34 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mulder.wiked.org (Postfix) with ESMTP id 3211210EFF for ; Wed, 10 Mar 2004 15:52:29 -0800 (PST) Received: from mulder.wiked.org ([127.0.0.1]) by localhost (mulder [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01127-07 for ; Wed, 10 Mar 2004 15:52:03 -0800 (PST) Received: by mulder.wiked.org (Postfix, from userid 1000) id 38D3C10EF1; Wed, 10 Mar 2004 15:52:03 -0800 (PST) Date: Wed, 10 Mar 2004 15:52:03 -0800 From: "Gareth J. Greenaway" To: dovecot@procontrol.fi Message-ID: <20040310235202.GR20847@wiked.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.5.1+cvs20040105i X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at wiked.org Cc: Subject: [Dovecot] shared folders? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Mar 2004 23:57:07 -0000 X-UID: 8793 Status: O Greetings, I saw mention in results from a google search that there was some support in dovecot CVS for shared folders, is there some docs on how to use them? Provided there is in fact support for them in CVS. Thanks. -- Gareth J. Greenaway | gareth@wiked.org SCLUG - Simi Conejo Linux Users Group http://www.sclug.org From dovecot@different.name Fri Mar 12 02:01:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 84A01C000D9D; Fri, 12 Mar 2004 02:01:01 +0200 (EET) Received: from smtp.gate5.de (smtp.gate5.de [194.29.233.149]) by talvi.dovecot.org (Postfix) with ESMTP id 2B019C000D9B for ; Fri, 12 Mar 2004 02:00:58 +0200 (EET) Received: from [194.29.233.147] (helo=imap.gate5.de) by smtp.gate5.de with esmtp (TLSv1:AES256-SHA:256) (Exim 4.22) id 1B1a2n-000OGb-Ns for dovecot@dovecot.org; Fri, 12 Mar 2004 00:56:53 +0100 Received: from [212.202.174.212] (helo=[192.168.1.10]) by imap.gate5.de with asmtp (TLSv1:RC4-SHA:128) (Exim 4.22) id 1B1a2n-0005yV-FM for dovecot@dovecot.org; Fri, 12 Mar 2004 00:56:53 +0100 Mime-Version: 1.0 (Apple Message framework v612) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: text/plain; charset=US-ASCII; format=flowed To: dovecot@dovecot.org From: =?ISO-8859-1?Q?Dirk_J=E4ckel?= Date: Fri, 12 Mar 2004 00:56:47 +0100 X-Mailer: Apple Mail (2.612) Subject: [Dovecot] dovecot & vpopmail X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Mar 2004 00:01:02 -0000 X-UID: 8794 Status: O Hi! Authentication works, but default_mail_env = maildir:/usr/local/vpopmail/domains/%d/%n/Maildir/ is translated by the "imap"-process to /usr/local/vpopmail/domains//testerhorst/Maildir/ although I succesfully log in as testerhorst@elektropost.org. Is there a manual how to use dovecot with vpopmail? We have here: FreeBSD 4.9-STABLE, vpopmail-5.4.0 and dovecot-0.99.10.4_2. Thank you for your help! Regards, Dirk Jaeckel From JMelville@selectaustralasia.com.au Fri Mar 12 02:34:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E3E31C000D9D; Fri, 12 Mar 2004 02:34:35 +0200 (EET) Received: from pittst-smtp.select-appointments.com.au (unknown [61.88.1.162]) by talvi.dovecot.org (Postfix) with SMTP id 3FA43C000D9B for ; Fri, 12 Mar 2004 02:34:32 +0200 (EET) Received: FROM SYDEXCHVS01.Australasia.SelectNET.com BY pittst-smtp.select-appointments.com.au ; Fri Mar 12 11:32:50 2004 +1100 Content-class: urn:content-classes:message Subject: RE: [Dovecot] Dovecot failing silently on startup MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Date: Fri, 12 Mar 2004 11:30:32 +1100 X-MimeOLE: Produced By Microsoft Exchange V6.5.6944.0 Message-ID: <4290D8AB6C950C44B59AA76B2513A6CA05A3FD@SYDEXCHVS01.Australasia.SelectNET.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Dovecot failing silently on startup Thread-Index: AcQHyTp4jPBis5hSQXOllh8DZ1Sj+A== From: "Julian Melville" To: "Jaldhar H. Vyas" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Mar 2004 00:34:36 -0000 X-UID: 8795 Status: O > Can you do an strace of a running dovecot process so we can=20 > get a better idea? (You ought to cc the list as well.) Sorry for the slow reply, it's taken me a few days to get back to this and observe the problem again. I've placed a tarball of the output of "strace -ff -o dovecot dovecot" here: http://rimu.tiddly-pom.com/dovecot-strace.tar.gz To my (admittedly untrained) eye, it's looking for and not finding /etc/ld.so.nohwcap, and then repeatedly not finding /var/run/dovecot/ssl-parameters.dat. At that point there is a /var/run/dovecot/ssl-parameters.dat.tmp - is that where the SSL stuff is being generated? Is it just that Dovecot is stalled until the ssl-parameters.dat file appears? Thanks, Julian. From security@jlug.org Fri Mar 12 13:53:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C6710C000D9D; Fri, 12 Mar 2004 13:53:22 +0200 (EET) Received: from jlug.fi (jlug.fi [192.194.49.184]) by talvi.dovecot.org (Postfix) with ESMTP id 9962FC000D9B for ; Fri, 12 Mar 2004 13:53:20 +0200 (EET) Received: (qmail 16146 invoked by uid 537); 12 Mar 2004 11:49:22 -0000 Received: from security@jlug.org by jlug by uid 510 with qmail-scanner-1.20 (clamscan: 0.67. spamassassin: 2.63. Clear:RC:1(195.197.199.46):. Processed in 0.066728 secs); 12 Mar 2004 11:49:22 -0000 Received: from unknown (HELO jlug.org) (eero@jlug.fi@195.197.199.46) by 0 with SMTP; 12 Mar 2004 11:49:21 -0000 Message-ID: <4051A3BE.4030401@jlug.org> Date: Fri, 12 Mar 2004 13:49:18 +0200 From: security officer User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: =?ISO-8859-1?Q?Dirk_J=E4ckel?= Subject: Re: [Dovecot] dovecot & vpopmail References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Mar 2004 11:53:23 -0000 X-UID: 8796 Status: O Dirk Jäckel wrote: > Hi! > > Authentication works, but > > default_mail_env = maildir:/usr/local/vpopmail/domains/%d/%n/Maildir/ > > is translated by the "imap"-process to > > /usr/local/vpopmail/domains//testerhorst/Maildir/ > > although I succesfully log in as testerhorst@elektropost.org. > I use only: auth_userdb = vpopmail and auth_passdb = vpopmail, works fine. -- Eero From kbdigital@ktb.net Sat Mar 13 00:12:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 73E72C000D9D; Sat, 13 Mar 2004 00:12:43 +0200 (EET) Received: from castle.ktb.net (castle.ktb.net [198.175.228.44]) by talvi.dovecot.org (Postfix) with ESMTP id DEAAFC000D9B for ; Sat, 13 Mar 2004 00:12:40 +0200 (EET) Received: from castle.ktb.net (localhost [127.0.0.1]) by castle.ktb.net (8.12.11/8.12.10/KTB.net-5.3) with ESMTP id i2CM8Y8e030244 for ; Fri, 12 Mar 2004 14:08:34 -0800 Received: (from kbdigital@localhost) by castle.ktb.net (8.12.11/8.12.10/KTB.net-5.3) id i2CM8YHR030242 for dovecot@dovecot.org; Fri, 12 Mar 2004 14:08:34 -0800 From: KB Digital Date: Fri, 12 Mar 2004 14:08:34 -0800 To: dovecot@dovecot.org Message-ID: <20040312220834.GA28346@ktb.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.5.1+cvs20040105i X-KTB.net-MailScanner: Found to be clean X-KTB.net-MailScanner-SpamCheck: not spam, SpamAssassin (score=-4.9, required 6, autolearn=not spam, BAYES_00 -4.90) Subject: [Dovecot] blank line at the top of mbox X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Mar 2004 22:12:43 -0000 X-UID: 8797 Status: O Hello, It seems dovecop pop3 server sometimes inserts a blank line at the top of the mbox. It only happens for certain users not all. I'm not sure why it's doing that. Looking back into the mailing list, I saw the same post in Oct 6, 2003 but there was no reply to it. Is there a patch or fix that i can use to get around the blank line? Thank you. Ken From skye@f4.ca Mon Mar 15 20:57:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DB232C000D9D; Mon, 15 Mar 2004 20:57:36 +0200 (EET) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id 564D1C000D9B for ; Mon, 15 Mar 2004 20:57:34 +0200 (EET) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1B2xDL-000Gi2-00 for dovecot@dovecot.org; Mon, 15 Mar 2004 10:53:27 -0800 Date: Mon, 15 Mar 2004 10:53:27 -0800 From: Skye Poier To: dovecot@dovecot.org Message-ID: <20040315185327.GC39166@f4.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] Next version features? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Mar 2004 18:57:37 -0000 X-UID: 8798 Status: O Hello, sorry if this gets asked a lot :) When is the next version of dovecot planned for release? Will it include non-patched MySQL support? Can I make a donation to speed up the process? I have used about 5 different IMAP servers in the last month trying to find one that didn't suck.. and I'm happy to say dovecot is the best!! Thanks, Skye From skye@f4.ca Mon Mar 15 23:57:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 582E7C002800; Mon, 15 Mar 2004 23:57:16 +0200 (EET) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id 2D38CC000D9D for ; Mon, 15 Mar 2004 23:57:14 +0200 (EET) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1B301D-000KRc-00 for dovecot@dovecot.org; Mon, 15 Mar 2004 13:53:07 -0800 Date: Mon, 15 Mar 2004 13:53:07 -0800 From: Skye Poier To: dovecot@dovecot.org Message-ID: <20040315215307.GJ39166@f4.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] Help with dovecot+passwd+pam_mysql X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Mar 2004 21:57:16 -0000 X-UID: 8799 Status: O Hi again, I'm on Freebsd 4.x and instead of using the mysql patch, it seems like it would be easier to just use "auth_passdb = pam *" with the pam_mysql drop-in. I'm not really a pam.conf writing expert though. Here's what it currently contains (works for /etc/passwd users) imap auth required pam_unix.so imap account required pam_unix.so try_first_pass imap session required pam_deny.so How would I set it up so that it first checks to see if the user is in /etc/passwd (as above) and then checks pam_mysql.so? Example from the pam_mysql readme: auth optional pam_mysql.so user=root passwd=password account required pam_mysql.so user=root passwd=password Is anyone else using this setup? Any disadvantages? Thanks, Skye From skye@f4.ca Tue Mar 16 00:57:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0C222C002801; Tue, 16 Mar 2004 00:57:54 +0200 (EET) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id C0DC8C002800 for ; Tue, 16 Mar 2004 00:57:51 +0200 (EET) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1B30xt-000LgW-00 for dovecot@dovecot.org; Mon, 15 Mar 2004 14:53:45 -0800 Date: Mon, 15 Mar 2004 14:53:45 -0800 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] Help with dovecot+passwd+pam_mysql Message-ID: <20040315225345.GL39166@f4.ca> References: <20040315215307.GJ39166@f4.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040315215307.GJ39166@f4.ca> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Mar 2004 22:57:54 -0000 X-UID: 8800 Status: O Content-Length: 1198 Hmm, I guess PAM with mysql won't really do the same thing, because it can't supply the homedir/uid/gid etc. If you use pam, the daemon will expect to find those things in /etc/passwd which defeats using virtual users in the first place. Going to apply the contrib mysql patch now and see how that goes :) Thanks, Skye Word on the street is Skye Poier said: > Hi again, > > I'm on Freebsd 4.x and instead of using the mysql patch, it seems like > it would be easier to just use "auth_passdb = pam *" with the pam_mysql > drop-in. > > I'm not really a pam.conf writing expert though. Here's what it > currently contains (works for /etc/passwd users) > > imap auth required pam_unix.so > imap account required pam_unix.so try_first_pass > imap session required pam_deny.so > > How would I set it up so that it first checks to see if the user is in > /etc/passwd (as above) and then checks pam_mysql.so? > > Example from the pam_mysql readme: > > auth optional pam_mysql.so user=root passwd=password > account required pam_mysql.so user=root passwd=password > > Is anyone else using this setup? Any disadvantages? > > Thanks, > Skye > From skye@f4.ca Tue Mar 16 01:37:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 21A71C002802; Tue, 16 Mar 2004 01:37:40 +0200 (EET) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id CA44DC002800 for ; Tue, 16 Mar 2004 01:37:37 +0200 (EET) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1B31aN-000OaH-00 for dovecot@dovecot.org; Mon, 15 Mar 2004 15:33:31 -0800 Date: Mon, 15 Mar 2004 15:33:31 -0800 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] Mysql patch question Message-ID: <20040315233331.GM39166@f4.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Mar 2004 23:37:40 -0000 X-UID: 8801 Status: O Last question of the day I promise :) If dovecot is configured to use the MySQL patch, ie: auth_userdb = mysql /path/to/dovecot-mysql.conf auth_passdb = mysql /path/to/dovecot-mysql.conf Its not possible to "chain" authentication methods is it? I mean, if its using MySQL it _cannot_ be configured to check passwd (via "pam *") first, and then check mysql, right? So, if I want to support real shell users (who are in /etc/passwd) I will have to have them in mysql along with the "virtual" users. ...... OK I lied, one more question! I love the feature that you can login with a username user@domain and the domain is automatically parsed out. Do these options have anything to do with the @domain part (referred to as a realm in auth.txt) or are they for something else completely? I'm not sure what SASL is that it refers to in the example .conf #auth_realms = #auth_default_realm = Thanks, Skye From freebsd@helenmarks.co.uk Tue Mar 16 17:52:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3D5ECC002802; Tue, 16 Mar 2004 17:52:40 +0200 (EET) Received: from mail.helenmarks.co.uk (mail.helenmarks.co.uk [82.68.196.22]) by talvi.dovecot.org (Postfix) with ESMTP id A307EC002801 for ; Tue, 16 Mar 2004 17:52:37 +0200 (EET) Received: from 192.168.0.3 (82-69-49-2.dsl.in-addr.zen.co.uk [82.69.49.2]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.helenmarks.co.uk (Postfix) with ESMTP id 5384E170CB for ; Tue, 16 Mar 2004 15:48:28 +0000 (GMT) From: Dominic Marks To: dovecot@dovecot.org Date: Tue, 16 Mar 2004 15:55:09 +0000 User-Agent: KMail/1.6.1 MIME-Version: 1.0 Content-Disposition: inline Content-Type: Multipart/Mixed; boundary="Boundary-00=_dNyVA8tfI61eaBN" Message-Id: <200403161555.09261.freebsd@helenmarks.co.uk> Subject: [Dovecot] Corrupted Indexes and File Permissions X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Mar 2004 15:52:40 -0000 X-UID: 8802 Status: O Content-Length: 5054 --Boundary-00=_dNyVA8tfI61eaBN Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello, I'm using Dovecot to provide an IMAP service to a small number of users and I'm seeing two recurring errors which look like they might be related. Environment: o FreeBSD 5.2.1 / Postfix 2.0.18 / Dovecot 0.99.10.4 o Maildir mailboxes Problem: On logging in all the folders under the users mailbox are empty. This has happened with both MS Outlook 2000 clients as well as Squirrelmail which uses c-client. When you look at the mail log it shows errors from Dovecot about index file corruption and file permissions (see attached sample section). I've checked the permissions on the maildir and it seems at the moment that the user has rw permssion on every file under cur, could this error be caused by an interaction between Postfix and Dovecot? Any comments / suggestions greatly appreciated, -- Dominic Marks --Boundary-00=_dNyVA8tfI61eaBN Content-Type: text/plain; charset="us-ascii"; name="mail.log.sample.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="mail.log.sample.txt" Mar 16 01:24:22 mail imap-login: Login: someuser [192.168.0.1] Mar 16 01:24:24 mail imap(someuser): open() failed with file /raid/mail/someuser/cur/1076979223.V416I136863.silverback.example.com:2,ST: Permission denied Mar 16 01:24:28 mail imap(someuser): Corrupted index file (in-memory index for /raid/mail/someuser): UIDVALIDITY changed in uidlist Mar 16 01:24:37 mail imap-login: Login: someuser [192.168.0.1] Mar 16 01:24:42 mail imap(someuser): open() failed with file /raid/mail/someuser/cur/1076979223.V416I136863.silverback.example.com:2,ST: Permission denied Mar 16 01:24:42 mail imap(someuser): open(/raid/mail/someuser/cur/1076979223.V416I136863.silverback.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078674523.V416I1368e6.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078712574.V416I1368e9.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078736436.V416I137461.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078737332.V416I13747e.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078737978.V416I137483.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078746019.V416I1374b7.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078746025.V416I1374b9.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078801454.V416I1374c3.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078828634.V416I1374cc.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078843562.V416I1374d8.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078855478.V416I1374f9.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078855581.V416I1374fb.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078857816.V416I1374fc.mail.example.com:2,ST) failed: Permission denied Mar 16 01:24:44 mail imap(someuser): open(/raid/mail/someuser/cur/1078865114.V416I137502.mail.example.com:2,ST) failed: Permission denied --Boundary-00=_dNyVA8tfI61eaBN Content-Type: text/plain; charset="us-ascii"; name="dovecot.conf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="dovecot.conf" base_dir = /var/dovecot/ protocols = imap imaps ssl_disable = no ssl_cert_file = /var/dovecot/ssl/certs/imapd.pem ssl_key_file = /var/dovecot/ssl/private/imapd.pem ssl_parameters_file = /var/dovecot/ssl/parameters.dat disable_plaintext_auth = no login_dir = /var/dovecot/login login_chroot = yes login = imap login_executable = /usr/local/libexec/dovecot/imap-login login_user = dovecot login = pop3 login_executable = /usr/local/libexec/dovecot/pop3-login verbose_proctitle = yes verbose_ssl = yes first_valid_gid = 0 valid_chroot_dirs = /var/mail:/raid/mail default_mail_env = maildir:/raid/mail/%u client_workarounds = oe6-fetch-no-newmail outlook-idle mail_save_crlf = yes maildir_copy_with_hardlinks = yes mbox_locks = fcntl imap_executable = /usr/local/libexec/dovecot/imap pop3_executable = /usr/local/libexec/dovecot/pop3 auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = passwd auth_executable = /usr/local/libexec/dovecot/dovecot-auth auth_user = root auth_verbose = yes --Boundary-00=_dNyVA8tfI61eaBN-- From mat@reynerie.org Tue Mar 16 21:30:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E6BDFC002803; Tue, 16 Mar 2004 21:30:37 +0200 (EET) Received: from po.reynerie.org (reynerie.org [80.65.225.229]) by talvi.dovecot.org (Postfix) with ESMTP id D29B7C002802 for ; Tue, 16 Mar 2004 21:30:35 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by po.reynerie.org (Mail Server) with ESMTP id 35C499488 for ; Tue, 16 Mar 2004 20:27:05 +0100 (CET) Received: from po.reynerie.org ([127.0.0.1]) by localhost (po.reynerie.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16194-08 for ; Tue, 16 Mar 2004 20:27:03 +0100 (CET) Received: by po.reynerie.org (Mail Server, from userid 5031) id 17BA29471; Tue, 16 Mar 2004 20:27:02 +0100 (CET) Date: Tue, 16 Mar 2004 20:27:02 +0100 From: mat@reynerie.org To: dovecot@dovecot.org Subject: Re: [Dovecot] index file corruption Message-ID: <20040316192702.GC23636@po.reynerie.org> References: <20040229195920.GA20586@po.reynerie.org> <1078273527.23334.108.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1078273527.23334.108.camel@hurina> Organization: reynerie.org User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: mat@reynerie.org List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Mar 2004 19:30:38 -0000 X-UID: 8803 Status: O On Wed, Mar 03, 2004 at 02:25:28AM +0200, Timo Sirainen wrote: > On Sun, 2004-02-29 at 21:59, mat@reynerie.org wrote: > > I'm using Dovecot (dovecot-0.99.10p0) on OpenBSD-3.4 for few weeks now. > > I guess Dovecot doesn't work too well with OpenBSD now. Although I > haven't heard of constant failures with it. OpenBSD-port had a patch > which tried to fix this issue, but I don't think the patch is perfect. Sorry for this late answer. My first try was with the OpenBSD's port, patchs were applied. Without patchs and newer dovecot version, i can't see any differences about the index related problem. I've failed to apply all OpenBSD's patch to dovecot 0.99.10.4, so i didn't applied any. > Real fix will be next version.. i'm impatient :) Best regards. -- Matthieu Clavier From mem@mv.mv.com Tue Mar 16 21:33:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6F3DCC002803; Tue, 16 Mar 2004 21:33:46 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id D8747C002802 for ; Tue, 16 Mar 2004 21:33:43 +0200 (EET) Received: (qmail 24192 invoked from network); 16 Mar 2004 14:29:34 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 16 Mar 2004 14:29:34 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 13590 invoked by uid 101); 16 Mar 2004 14:29:34 -0500 From: "Mark E. Mallett" Date: Tue, 16 Mar 2004 14:29:33 -0500 To: Dominic Marks Subject: Re: [Dovecot] Corrupted Indexes and File Permissions Message-ID: <20040316192933.GF21999@iridium.mv.net> References: <200403161555.09261.freebsd@helenmarks.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200403161555.09261.freebsd@helenmarks.co.uk> User-Agent: Mutt/1.4.2.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Mar 2004 19:33:46 -0000 X-UID: 8804 Status: O > > I've checked the permissions on the maildir and it seems at the moment > that the user has rw permssion on every file under cur, could this > error be caused by an interaction between Postfix and Dovecot? > > Any comments / suggestions greatly appreciated, > -- > Dominic Marks > Mar 16 01:24:22 mail imap-login: Login: someuser [192.168.0.1] > Mar 16 01:24:24 mail imap(someuser): open() failed with file /raid/mail/someuser/cur/1076979223.V416I136863.silverback.example.com:2,ST: Permission denied I assume you've checked that "someuser" owns that file. Also check that every directory in the path is accessable to that user in the proper way. If it's NFS-mounted, the underlying mount point may have to have the correct permissions too (i.e., unmount the volume and have a look). An easy check is just to su to the "someuser" user and see if you can access the file in question. mm From freebsd@helenmarks.co.uk Tue Mar 16 22:45:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 60D86C002804; Tue, 16 Mar 2004 22:45:16 +0200 (EET) Received: from mail.helenmarks.co.uk (mail.helenmarks.co.uk [82.68.196.22]) by talvi.dovecot.org (Postfix) with ESMTP id 267DCC002802 for ; Tue, 16 Mar 2004 22:45:14 +0200 (EET) Received: from 192.168.0.3 (82-69-49-2.dsl.in-addr.zen.co.uk [82.69.49.2]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.helenmarks.co.uk (Postfix) with ESMTP id 8143A1707C; Tue, 16 Mar 2004 20:40:58 +0000 (GMT) From: Dominic Marks To: "Mark E. Mallett" Subject: Re: [Dovecot] Corrupted Indexes and File Permissions Date: Tue, 16 Mar 2004 20:47:38 +0000 User-Agent: KMail/1.6.1 References: <200403161555.09261.freebsd@helenmarks.co.uk> <20040316192933.GF21999@iridium.mv.net> In-Reply-To: <20040316192933.GF21999@iridium.mv.net> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200403162047.38694.freebsd@helenmarks.co.uk> Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Mar 2004 20:45:16 -0000 X-UID: 8805 Status: O Content-Length: 1375 Hi Mark, On Tuesday 16 March 2004 19:29, Mark E. Mallett wrote: > > I've checked the permissions on the maildir and it seems at the > > moment that the user has rw permssion on every file under cur, > > could this error be caused by an interaction between Postfix and > > Dovecot? > > > > > > > > Any comments / suggestions greatly appreciated, > > -- > > Dominic Marks > > > > Mar 16 01:24:22 mail imap-login: Login: someuser [192.168.0.1] > > Mar 16 01:24:24 mail imap(someuser): open() failed with file > > /raid/mail/someuser/cur/1076979223.V416I136863.silverback.example > >.com:2,ST: Permission denied > > I assume you've checked that "someuser" owns that file. Yes. > Also check that every directory in the path is accessable to that > user in the proper way. If it's NFS-mounted, the underlying mount > point may have to have the correct permissions too (i.e., unmount > the volume and have a look). An easy check is just to su to the > "someuser" user and see if you can access the file in question. It's a local raid and the permissions are (as far as I can tell) all correct as it works for long periods perfectly, then this error occurs. Sometimes restarting Dovecot fixes it, sometimes it doesn't. > mm I've changed my configuration to store the indexes on the raid volume and I waiting to see if this makes any difference. Thanks, -- Dominic Marks From mem@mv.mv.com Tue Mar 16 22:53:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AC80FC002804; Tue, 16 Mar 2004 22:53:34 +0200 (EET) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 22ACCC002802 for ; Tue, 16 Mar 2004 22:53:32 +0200 (EET) Received: (qmail 634 invoked from network); 16 Mar 2004 15:49:20 -0500 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 16 Mar 2004 15:49:22 -0500 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 23865 invoked by uid 101); 16 Mar 2004 15:49:20 -0500 From: "Mark E. Mallett" Date: Tue, 16 Mar 2004 15:49:19 -0500 To: Dominic Marks Subject: Re: [Dovecot] Corrupted Indexes and File Permissions Message-ID: <20040316204919.GB15266@iridium.mv.net> References: <200403161555.09261.freebsd@helenmarks.co.uk> <20040316192933.GF21999@iridium.mv.net> <200403162047.38694.freebsd@helenmarks.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200403162047.38694.freebsd@helenmarks.co.uk> User-Agent: Mutt/1.4.2.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Mar 2004 20:53:34 -0000 X-UID: 8806 Status: O > > > Mar 16 01:24:24 mail imap(someuser): open() failed with file > > > /raid/mail/someuser/cur/1076979223.V416I136863.silverback.example > > >.com:2,ST: Permission denied > > > > I assume you've checked that "someuser" owns that file. > > Yes. > > > Also check that every directory in the path is accessable to that > > user in the proper way. If it's NFS-mounted, the underlying mount > > point may have to have the correct permissions too (i.e., unmount > > the volume and have a look). An easy check is just to su to the > > "someuser" user and see if you can access the file in question. > > It's a local raid and the permissions are (as far as I can tell) all > correct as it works for long periods perfectly, then this error > occurs. Sometimes restarting Dovecot fixes it, sometimes it doesn't. Ah. Well, I was throwing in a couple of guesses to fill the silence - the error message does say that it's a problem with the mail file, not the index, though. mm From esj@harvee.org Wed Mar 17 21:55:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D165BC002806; Wed, 17 Mar 2004 21:55:02 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by talvi.dovecot.org (Postfix) with ESMTP id 3370BC002802 for ; Wed, 17 Mar 2004 21:55:00 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id i2HJo3Ce025408 for ; Wed, 17 Mar 2004 14:50:48 -0500 Received: FROM harvee.org ([192.168.0.54]) BY harvee.org WITH ESMTP ; Wed, 17 Mar 2004 14:49:49 -0500 Message-ID: <4058ABC2.2070102@harvee.org> Date: Wed, 17 Mar 2004 14:49:22 -0500 From: "Eric S. Johansson" User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:040317:dovecot@dovecot.org:d079b46d5053419f Subject: [Dovecot] triggering multiple actions on pop-3 request X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Mar 2004 19:55:03 -0000 X-UID: 8807 Status: O Content-Length: 1159 I want to trigger fetchmail when a user makes a pop-3 request. The reason for this is so that the messages retrieved by fetchmail can be filtered via an anti spam service before depositing them into the inbox. The way I figure it, since I need to know who the user is and that they authenticated in order to make the correct fetchmail call, I need to spawn the fetchmail process somewhere between the authentication and the pop 3 process. since I'm currently unfamiliar with code at that level, could I get a suggestion as to where to start looking?. apologies if I haven't explained is clearly enough. I'm still just kind of exploring the idea myself to see if it's the right way to approach this problem (pop 3 anti spam Gateway). If it works out right, it may even end up as part of a firewall (IPCop) as a way of making anti spam trivially easy for the technically challenged. (I.e. put it in a box, said it up right, don't let them touch it) I know it is also somewhat off topic for the group but since I want to modify dovecot (the IMAP server that rescued me from UW), I figured I would give it a shot. thanks in advance, ---eric From JMelville@selectaustralasia.com.au Thu Mar 18 02:40:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 04421C002806; Thu, 18 Mar 2004 02:40:28 +0200 (EET) Received: from pittst-smtp.select-appointments.com.au (unknown [61.88.1.162]) by talvi.dovecot.org (Postfix) with SMTP id 94B84C002805 for ; Thu, 18 Mar 2004 02:40:24 +0200 (EET) Received: FROM SYDEXCHVS01.Australasia.SelectNET.com BY pittst-smtp.select-appointments.com.au ; Thu Mar 18 11:38:23 2004 +1100 Content-class: urn:content-classes:message Subject: RE: [Dovecot] triggering multiple actions on pop-3 request MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Date: Thu, 18 Mar 2004 11:36:01 +1100 X-MimeOLE: Produced By Microsoft Exchange V6.5.6944.0 Message-ID: <4290D8AB6C950C44B59AA76B2513A6CA05A4A1@SYDEXCHVS01.Australasia.SelectNET.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] triggering multiple actions on pop-3 request Thread-Index: AcQMWY6NSiNsKROjTTOSgKj/QFTK7QAJtYog From: "Julian Melville" To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Mar 2004 00:40:28 -0000 X-UID: 8808 Status: O > The reason for this is so that the messages=20 > retrieved by fetchmail can be filtered via an anti spam=20 > service before depositing them into the inbox. How about just running fetchmail in daemon mode, so it's polling for messages instead of running on demand? Then you don't need to worry about any special integration issues. Julian. From esj@harvee.org Thu Mar 18 04:08:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5A729C002807; Thu, 18 Mar 2004 04:08:26 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by talvi.dovecot.org (Postfix) with ESMTP id D48A9C002805 for ; Thu, 18 Mar 2004 04:08:23 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id i2I230Ce031062 for ; Wed, 17 Mar 2004 21:04:12 -0500 Received: FROM harvee.org ([192.168.0.54]) BY harvee.org WITH ESMTP ; Wed, 17 Mar 2004 21:02:45 -0500 Message-ID: <40590322.1030705@harvee.org> Date: Wed, 17 Mar 2004 21:02:10 -0500 From: "Eric S. Johansson" User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] triggering multiple actions on pop-3 request References: <4290D8AB6C950C44B59AA76B2513A6CA05A4A1@SYDEXCHVS01.Australasia.SelectNET.com> In-Reply-To: <4290D8AB6C950C44B59AA76B2513A6CA05A4A1@SYDEXCHVS01.Australasia.SelectNET.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:040318:dovecot@dovecot.org:020a9092065529d8 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Mar 2004 02:08:26 -0000 X-UID: 8809 Status: O Julian Melville wrote: >>The reason for this is so that the messages >>retrieved by fetchmail can be filtered via an anti spam >>service before depositing them into the inbox. > > > How about just running fetchmail in daemon mode, so it's polling for > messages instead of running on demand? Then you don't need to worry > about any special integration issues. I thought of that but I'm also thinking about the user experience. In the daemon mode, users have no control over polling. In the trigger mode, they will have an indirect control. Also, it cuts down on bandwidth usage because there's no sampling around the clock. On the other hand, it does smooth out filter load which is also a good thing. hmmm. obviously, I will need to experiment and since the daemon mode is "free", it's an easy test. ---eric From skye@f4.ca Thu Mar 18 04:44:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A6389C002809; Thu, 18 Mar 2004 04:44:34 +0200 (EET) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id DAD7CC002807 for ; Thu, 18 Mar 2004 04:44:31 +0200 (EET) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1B3nSE-000DxH-00 for dovecot@dovecot.org; Wed, 17 Mar 2004 18:40:18 -0800 Date: Wed, 17 Mar 2004 18:40:18 -0800 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] triggering multiple actions on pop-3 request Message-ID: <20040318024018.GN22419@f4.ca> References: <4290D8AB6C950C44B59AA76B2513A6CA05A4A1@SYDEXCHVS01.Australasia.SelectNET.com> <40590322.1030705@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40590322.1030705@harvee.org> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Mar 2004 02:44:34 -0000 X-UID: 8810 Status: O Content-Length: 1060 If you want to launch fetchmail, you'd probably want to do a fork() after authentication. In the child, you would execl() fetchmail. In the parent you would wait() for the exit status of the child. You probably wouldn't want to do that in dovecot-auth or it might block all other auth while it is executing? I haven't really looked at the design so I don't know. The best place would probably be right before it tries to read the user's Maildir, in its own process. (assuming login_process_per_connection = yes ) Skye Word on the street is Eric S. Johansson said: > > I thought of that but I'm also thinking about the user experience. In > the daemon mode, users have no control over polling. In the trigger > mode, they will have an indirect control. Also, it cuts down on > bandwidth usage because there's no sampling around the clock. On the > other hand, it does smooth out filter load which is also a good thing. > > hmmm. obviously, I will need to experiment and since the daemon mode is > "free", it's an easy test. > > ---eric > From bavo@coderspotting.org Thu Mar 18 11:49:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CD78CC002809; Thu, 18 Mar 2004 11:49:36 +0200 (EET) Received: from prv-mail21.provo.novell.com (PRV-MAIL21.PROVO.NOVELL.COM [137.65.81.126]) by talvi.dovecot.org (Postfix) with ESMTP id A2892C002807 for ; Thu, 18 Mar 2004 11:49:30 +0200 (EET) Received: from [149.44.34.17] ([149.44.34.17]) by prv-mail21.provo.novell.com; Thu, 18 Mar 2004 02:45:04 -0700 Received: from 127.0.0.1 by bderidder.novell.com with esmtp (masqmail 0.2.20) id 1B3u57-3WF-00 for ; Thu, 18 Mar 2004 10:44:53 +0100 From: Bavo De Ridder Organization: CoderSpotting To: dovecot@dovecot.org Date: Thu, 18 Mar 2004 10:44:52 +0100 User-Agent: KMail/1.6.1 MIME-Version: 1.0 Content-Disposition: inline Content-Type: Multipart/Mixed; boundary="Boundary-00=_U+WWAr+aU4eECL4" Message-Id: <200403181044.52623.bavo@coderspotting.org> Subject: [Dovecot] Dovecot startup at boottime fails X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Mar 2004 09:49:37 -0000 X-UID: 8811 Status: O Content-Length: 28717 --Boundary-00=_U+WWAr+aU4eECL4 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, I am running dovecot 0.99.10.4 on SuSE 9. I installed it using apt-get from the gwdg repository. The dovecot service is configured to start at boottime in run level 3 and 5. However, it dies immediately with this error (/var/log/mail.err): dovecot: Login process died too early - shutting down Starting the service afterwords from a prompt as root with the command: /etc/init.d/dovecot start works without a glitch. Attached you can find my dovecot.conf and the startup script /etc/init.d/dovecot. I hope someone could shed some light on this issue. --Boundary-00=_U+WWAr+aU4eECL4 Content-Type: text/plain; charset="us-ascii"; name="dovecot.conf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="dovecot.conf" ## Dovecot 1.0 configuration file # Default values are shown after each value, it's not required to uncomment # any of the lines. Exception to this are paths, they're just examples # with real defaults being based on configure options. The paths listed here # are for configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var # --with-ssldir=/etc/ssl # Base directory where to store runtime data. #base_dir = /var/run/dovecot/ # Protocols we want to be serving: # imap imaps pop3 pop3s protocols = imap # IP or host address where to listen in for connections. It's not currently # possible to specify multiple addresses. "*" listens in all IPv4 interfaces. # "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4 # interfaces depending on the operating system. You can specify ports with # "host:port". #imap_listen = * #pop3_listen = * # IP or host address where to listen in for SSL connections. Defaults # to above non-SSL equilevants if not specified. #imaps_listen = #pop3s_listen = # Disable SSL/TLS support. ssl_disable = yes # PEM encoded X.509 SSL/TLS certificate and private key. They're opened before # dropping root privileges, so keep the key file unreadable by anyone but # root. Included doc/mkcert.sh can be used to easily generate self-signed # certificate, just make sure to update the domains in dovecot-openssl.cnf #ssl_cert_file = /etc/ssl/certs/dovecot.pem #ssl_key_file = /etc/ssl/private/dovecot.pem # SSL parameter file. Master process generates this file for login processes. # It contains Diffie Hellman and RSA parameters. #ssl_parameters_file = /var/run/dovecot/ssl-parameters.dat # How often to regenerate the SSL parameters file. Generation is quite CPU # intensive operation. The value is in hours, 0 disables regeneration # entirely. #ssl_parameters_regenerate = 24 # Disable LOGIN command and all other plaintext authentications unless # SSL/TLS is used (LOGINDISABLED capability) #disable_plaintext_auth = no # Use this logfile instead of syslog(). /dev/stderr can be used if you want to # use stderr for logging (ONLY /dev/stderr - otherwise it is closed). #log_path = # For informational messages, use this logfile instead of the default #info_log_path = # Prefix for each line written to log file. % codes are in strftime(3) # format. Note the extra space at the end of line. #log_timestamp = "%b %d %H:%M:%S " ## ## Login processes ## # Directory where authentication process places authentication UNIX sockets # which login needs to be able to connect to. The sockets are created when # running as root, so you don't have to worry about permissions. login_dir = /var/run/dovecot/login # chroot login process to the login_dir. Only reason not to do this is if you # wish to run the whole Dovecot without roots. #login_chroot = yes ## ## IMAP login process ## login = imap # Executable location. #login_executable = /usr/libexec/dovecot/imap-login # User to use for the login process. Create a completely new user for this, # and don't use it anywhere else. The user must also belong to a group where # only it has access, it's used to control access for authentication process. #login_user = dovecot # Set max. process size in megabytes. If you don't use # login_process_per_connection you might need to grow this. #login_process_size = 16 # Should each login be processed in it's own process (yes), or should one # login process be allowed to process multiple connections (no)? Yes is more # secure, espcially with SSL/TLS enabled. No is faster since there's no need # to create processes all the time. #login_process_per_connection = yes # Number of login processes to create. If login_process_per_user is # yes, this is the number of extra processes waiting for users to log in. #login_processes_count = 3 # Maximum number of extra login processes to create. The extra process count # usually stays at login_processes_count, but when multiple users start logging # in at the same time more extra processes are created. To prevent fork-bombing # we check only once in a second if new processes should be created - if all # of them are used at the time, we double their amount until limit set by this # setting is reached. This setting is used only if login_process_per_use is yes. #login_max_processes_count = 128 # Maximum number of connections allowed in login state. When this limit is # reached, the oldest connections are dropped. If login_process_per_user # is no, this is a per-process value, so the absolute maximum number of users # logging in actually login_processes_count * max_logging_users. #login_max_logging_users = 256 ## ## POP3 login process ## # Settings default to same as above, so you don't have to set anything # unless you want to override them. #login = pop3 # Exception to above rule being the executable location. #login_executable = /usr/libexec/dovecot/pop3-login ## ## Mail processes ## # Maximum number of running mail processes. When this limit is reached, # new users aren't allowed to log in. #max_mail_processes = 1024 # Show more verbose process titles (in ps). Currently shows user name and # IP address. Useful for seeing who are actually using the IMAP processes # (eg. shared mailboxes or if same uid is used for multiple accounts). #verbose_proctitle = no # Show protocol level SSL errors. #verbose_ssl = no # Valid UID range for users, defaults to 500 and above. This is mostly # to make sure that users can't log in as daemons or other system users. # Note that denying root logins is hardcoded to dovecot binary and can't # be done even if first_valid_uid is set to 0. #first_valid_uid = 500 #last_valid_uid = 0 # Valid GID range for users, defaults to non-root/wheel. Users having # non-valid GID as primary group ID aren't allowed to log in. If user # belongs to supplementary groups with non-valid GIDs, those groups are # not set. #first_valid_gid = 1 #last_valid_gid = 0 # ':' separated list of directories under which chrooting is allowed for mail # processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too). # This setting doesn't affect login_chroot or auth_chroot variables. # WARNING: Never add directories here which local users can modify, that # may lead to root exploit. Usually this should be done only if you don't # allow shell access for users. See doc/configuration.txt for more information. #valid_chroot_dirs = # Default chroot directory for mail processes. This can be overridden by # giving /./ in user's home directory (eg. /home/./user chroots into /home). #mail_chroot = # Default MAIL environment to use when it's not set. By leaving this empty # dovecot tries to do some automatic detection as described in # doc/mail-storages.txt. There's a few special variables you can use: # # %u - username # %n - user part in user@domain, same as %u if there's no domain # %d - domain part in user@domain, empty if user there's no domain # %h - home directory # # You can also limit a width of string by giving the number of max. characters # after the '%' character. For example %1u gives the first character of # username. Some examples: # # maildir:/var/mail/%1u/%u/Maildir # mbox:~/mail/:INBOX=/var/mail/%u # mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n # default_mail_env = maildir:/data/%u/Mail # Space-separated list of fields to cache for all mails. Currently these # fields are allowed followed by a list of commands they speed up: # # Envelope - FETCH ENVELOPE and SEARCH FROM, TO, CC, BCC, SUBJECT, # SENTBEFORE, SENTON, SENTSINCE, HEADER MESSAGE-ID, # HEADER IN-REPLY-TO # Body - FETCH BODY # Bodystructure - FETCH BODY, BODYSTRUCTURE # MessagePart - FETCH BODY[1.2.3] (ie. body parts), RFC822.SIZE, # SEARCH SMALLER, LARGER, also speeds up BODY/BODYSTRUCTURE # generation. This is always set with mbox mailboxes, and # also default with Maildir. # # Different IMAP clients work in different ways, that's why Dovecot by default # only caches MessagePart which speeds up most operations. Whenever client # does something where caching could be used, the field is automatically marked # to be cached later. For example after FETCH BODY the BODY will be cached # for all new messages. Normally you should leave this alone, unless you know # what most of your IMAP clients are. Caching more fields than needed makes # the index files larger and generate useless I/O. # # With maildir there's one extra optimization - if nothing is cached, indexing # the maildir becomes much faster since it's not opening any of the mail files. # This could be useful if your IMAP clients access only new mails. #mail_cache_fields = MessagePart # Space-separated list of fields that Dovecot should never set to be cached. # Useful if you want to save disk space at the cost of more I/O when the fields # needed. #mail_never_cache_fields = # Workarounds for various client bugs: # oe6-fetch-no-newmail: # Never send EXISTS/RECENT when replying to FETCH command. Outlook Express # seems to think they are FETCH replies and gives user "Message no longer # in server" error. Note that OE6 still breaks even with this workaround # if synchronization is set to "Headers Only". # outlook-idle: # Outlook and Outlook Express never abort IDLE command, so if no mail # arrives in half a hour, Dovecot closes the connection. This is still # fine, except Outlook doesn't connect back so you don't see if new mail # arrives. #client_workarounds = # Dovecot can notify client of new mail in selected mailbox soon after it's # received. This setting specifies the minimum interval in seconds between # new mail notifications to client - internally they may be checked more or # less often. Setting this to 0 disables the checking. # NOTE: Evolution client breaks with this option when it's trying to APPEND. #mailbox_check_interval = 0 # Like mailbox_check_interval, but used for IDLE command. #mailbox_idle_check_interval = 30 # Allow full filesystem access to clients. There's no access checks other than # what the operating system does for the active UID/GID. It works with both # maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/ # or ~user/. #mail_full_filesystem_access = no # Maximum allowed length for custom flag name. It's only forced when trying # to create new flags. #mail_max_flag_length = 50 # Save mails with CR+LF instead of plain LF. This makes sending those mails # take less CPU, especially with sendfile() syscall with Linux and FreeBSD. # But it also creates a bit more disk I/O which may just make it slower. #mail_save_crlf = no # Use mmap() instead of read() to read mail files. read() seems to be a bit # faster with my Linux/x86 and it's better with NFS, so that's the default. #mail_read_mmaped = no # Copy mail to another folders using hard links. This is much faster than # actually copying the file. This is problematic only if something modifies # the mail in one folder but doesn't want it modified in the others. I don't # know any MUA which would modify mail files directly. IMAP protocol also # requires that the mails don't change, so it would be problematic in any case. # If you care about performance, enable it. #maildir_copy_with_hardlinks = no # Check if mails' content has been changed by external programs. This slows # down things as extra stat() needs to be called for each file. If changes are # noticed, the message is treated as a new message, since IMAP protocol # specifies that existing message are immutable. #maildir_check_content_changes = no # Which locking methods to use for locking mbox. There's three available: # dotlock: Create .lock file. This is the oldest and most NFS-safe # solution. If you want to use /var/mail/ like directory, the users # will need write access to that directory. # fcntl : Use this if possible. Works with NFS too if lockd is used. # flock : May not exist in all systems. Doesn't work with NFS. # # You can use both fcntl and flock too; if you do the order they're declared # with is important to avoid deadlocks if other MTAs/MUAs are using both fcntl # and flock. Some operating systems don't allow using both of them # simultaneously, eg. BSDs. If dotlock is used, it's always created first. #mbox_locks = dotlock fcntl # Should we create dotlock file even when we want only a read-lock? Setting # this to yes hurts the performance when the mailbox is accessed simultaneously # by multiple processes, but it's needed for reliable reading if no other # locking methods are available. #mbox_read_dotlock = no # Maximum time in seconds to wait for lock (all of them) before aborting. #mbox_lock_timeout = 300 # If dotlock exists but the mailbox isn't modified in any way, override the # lock file after this many seconds. #mbox_dotlock_change_timeout = 30 # umask to use for mail files and directories #umask = 0077 # Drop all privileges before exec()ing the mail process. This is mostly # meant for debugging, otherwise you don't get core dumps. Note that setting # this to yes means that log file is opened as the logged in user, which # might not work. It could also be a small security risk if you use single UID # for multiple users, as the users could ptrace() each others processes then. #mail_drop_priv_before_exec = no ## ## IMAP process ## # Executable location #imap_executable = /usr/libexec/dovecot/imap # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. #imap_process_size = 256 # Support for dynamically loadable modules. #imap_use_modules = no #imap_modules = /usr/lib/dovecot/imap ## ## POP3 process ## # Executable location #pop3_executable = /usr/libexec/dovecot/pop3 # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. #pop3_process_size = 256 # Support for dynamically loadable modules. #pop3_use_modules = no #pop3_modules = /usr/lib/dovecot/pop3 ## ## Authentication processes ## # You can have multiple processes; each time "auth = xx" is seen, a new # process definition is started. The point of multiple processes is to be # able to set stricter permissions to others. For example, plain/PAM # authentication requires roots, but if you also use digest-md5 authentication # for some users, you can authenticate them without any privileges in a # separate auth process. Just remember that only one auth process is asked # for the password, so you can't have different passwords with different # processes (unless they have different auth methods, and you're ok with # having different password for each method). # Authentication process name. auth = default # Space separated list of wanted authentication mechanisms: # plain digest-md5 anonymous auth_mechanisms = plain # Space separated list of realms for SASL authentication mechanisms that need # them. You can leave it empty if you don't want to support multiple realms. # Many clients simply use the first one listed here, so keep the default realm # first. #auth_realms = # Default realm to use if none was specified. #auth_default_realm = # Where user database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # passwd-file : passwd-like file with specified location # static uid= gid= home=: static settings # vpopmail: vpopmail library # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf auth_userdb = passwd # auth_userdb = pgsql /usr/local/etc/dovecot-pgsql.conf # Where password database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # shadow: /etc/shadow or similiar, using getspnam() # pam [ | *]: PAM authentication # passwd-file : passwd-like file with specified location # vpopmail: vpopmail authentication # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf auth_passdb = pam dovecot #auth_executable = /usr/libexec/dovecot/dovecot-auth # Set max. process size in megabytes. #auth_process_size = 256 # User to use for the process. This user needs access to only user and # password databases, nothing else. Only shadow and pam authentication # requires roots, so use something else if possible. auth_user = root # Directory where to chroot the process. Most authentication backends don't # work if this is set, and there's no point chrooting if auth_user is root. #auth_chroot = # Number of authentication processes to create #auth_count = 1 # List of allowed characters in username. If the user-given username contains # a character not listed in here, the login automatically fails. This is just # an extra check to make sure user can't exploit any potential quote escaping # vulnerabilities with SQL/LDAP databases. If you want to allow all characters, # set this value to empty. #auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ # Username to use for users logging in with ANONYMOUS SASL mechanism #auth_anonymous_username = anonymous # More verbose logging. Useful for figuring out why authentication isn't # working. #auth_verbose = no # digest-md5 authentication process. It requires special MD5 passwords which # /etc/shadow and PAM doesn't support, so we never need roots to handle it. # Note that the passwd-file is opened before chrooting and dropping root # privileges, so it may be 0600-root owned file. #auth = digest_md5 #auth_methods = digest-md5 #auth_realms = #auth_userdb = passwd-file /etc/passwd.imap #auth_passdb = passwd-file /etc/passwd.imap #auth_user = imapauth #auth_chroot = # if you plan to use only passwd-file, you don't need the two auth processes, # simply set "auth_methods = plain digest-md5" --Boundary-00=_U+WWAr+aU4eECL4 Content-Type: application/x-shellscript; name="dovecot" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="dovecot" #! /bin/sh # Copyright (c) 2003 Marcus R=FCckert # All rights reversed. # # Author: Marcus R=FCckert # # /etc/init.d/dovecot # and its symbolic link # /(usr/)sbin/rcdovecot # # Template system startup script for some example service/daemon dovecot # # LSB compatible service control script; see http://www.linuxbase.org/spec/ # # Note: This template uses functions rc_XXX defined in /etc/rc.status on # UnitedLinux (UL) based Linux distributions. If you want to base your # script on this template and ensure that it works on non UL based LSB # compliant Linux distributions, you either have to provide the rc.status # functions from UL or change the script to work without them. # ### BEGIN INIT INFO # Provides: dovecot # Required-Start: $syslog $remote_fs $network # X-UnitedLinux-Should-Start: $time ypbind sendmail # Required-Stop: $syslog $remote_fs # X-UnitedLinux-Should-Stop: $time ypbind sendmail # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: dovecot imap4/pop3 daemon # Description: Start dovecot imap4/pop3 daemon ### END INIT INFO # # Any extensions to the keywords given above should be preceeded by # X-VendorTag- (X-UnitedLinux- for us) according to LSB. # # Notes on Required-Start/X-UnitedLinux-Should-Start: # * There are two different issues that are solved by Required-Start # and X-UnitedLinux-Should-Start # (a) Hard dependencies: This is used by the runlevel editor to determine # which services absolutely need to be started to make the start of # this service make sense. Example: nfsserver should have # Required-Start: $portmap # Also, required services are started before the dependent ones. # The runlevel editor will warn about such missing hard dependencies # and suggest enabling. During system startup, you may expect an error, # if the dependency is not fulfilled. # (b) Specifying the init script ordering, not real (hard) dependencies. # This is needed by insserv to determine which service should be # started first (and at a later stage what services can be started # in parallel). The tag X-UnitedLinux-Should-Start: is used for this. # It tells, that if a service is available, it should be started # before. If not, never mind. # * When specifying hard dependencies or ordering requirements, you can # use names of services (contents of their Provides: section) # or pseudo names starting with a $. The following ones are available # according to LSB (1.1): # $local_fs all local file systems are mounted # (most services should need this!) # $remote_fs all remote file systems are mounted # (note that /usr may be remote, so # many services should Require this!) # $syslog system logging facility up # $network low level networking (eth card, ...) # $named hostname resolution available # $netdaemons all network daemons are running # The $netdaemons pseudo service has been removed in LSB 1.2. # For now, we still offer it for backward compatibility. # These are new (LSB 1.2): # $time the system time has been set correctly # $portmap SunRPC portmapping service available # UnitedLinux extensions: # $ALL indicates that a script should be inserted # at the end # * The services specified in the stop tags # (Required-Stop/X-UnitedLinux-Should-Stop) # specify which services need to be still running when this service # is shut down. Often the entries there are just copies or a subset # from the respective start tag. # * X-UnitedLinux-Should-Start/Stop are not part of LSB (as of 1.3) # but official Should-Start/Stop tags are in discussion (1.9). # insserv does support these as well. # * X-UnitedLinux-Default-Enabled: yes/no is used at installation time # (%fillup_and_insserv macro in %post of many RPMs) to specify whether # a startup script should default to be enabled after installation. # It's not used by insserv. # # Note on runlevels: # 0 - halt/poweroff 6 - reboot # 1 - single user 2 - multiuser without network exported # 3 - multiuser w/ network (text mode) 5 - multiuser w/ network and X11 (x= dm) # # Note on script names: # http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/scrptnames.html # A registry has been set up to manage the init script namespace. # http://www.lanana.org/ # Please use the names already registered or register one or use a # vendor prefix. # Check for missing binaries (stale symlinks should not happen) DOVECOT_BIN=3D/usr/sbin/dovecot test -x $DOVECOT_BIN || exit 5 # Check for existence of needed config file and read it # DOVECOT_CONFIG=3D/etc/sysconfig/dovecot # test -r $DOVECOT_CONFIG || {echo "$DOVECOT_CONFIG not existing"; exit 6} # . $DOVECOT_CONFIG # Source LSB init functions # providing start_daemon, killproc, pidofproc, # log_success_msg, log_failure_msg and log_warning_msg. # This is currently not used by UnitedLinux based distributions and # not needed for init scripts for UnitedLinux only. If it is used, # the functions from rc.status should not be sourced or used. #. /lib/lsb/init-functions # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v be verbose in local rc status and clear it afterwar= ds # rc_status -v -r ditto and clear both the local and overall rc status # rc_status -s display "skipped" and exit with status 3 # rc_status -u display "unused" and exit with status 3 # rc_failed set local and overall rc status to failed # rc_failed set local and overall rc status to # rc_reset clear both the local and overall rc status # rc_exit exit appropriate to overall rc status # rc_active checks whether a service is activated by symlinks # rc_splash arg sets the boot splash screen to arg (if active) =2E /etc/rc.status # Reset status of this service rc_reset # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - user had insufficient privileges # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signaling is not supported) are # considered a success. case "$1" in start) echo -n "Starting dovecot master daemon" ## Start daemon with startproc(8). If this fails ## the return value is set appropriately by startproc. startproc $DOVECOT_BIN # Remember status and be verbose rc_status -v ;; stop) echo -n "Shutting down dovecot " ## Stop daemon with killproc(8) and if this fails ## killproc sets the return value according to LSB. killproc -TERM $DOVECOT_BIN # Remember status and be verbose rc_status -v ;; try-restart|condrestart) ## Do a restart only if the service was active before. ## Note: try-restart is now part of LSB (as of 1.9). ## RH has a similar command named condrestart. if test "$1" =3D "condrestart"; then echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart= ${warn}(RH)${norm}" fi $0 status if test $? =3D 0; then $0 restart else rc_reset # Not running is not a failure. fi # Remember status and be quiet rc_status ;; restart) ## Stop the service and regardless of whether it was ## running or not, start it again. $0 stop $0 start # Remember status and be quiet rc_status ;; # force-reload) # ## Signal the daemon to reload its config. Most daemons # ## do this on signal 1 (SIGHUP). # ## If it does not support it, restart. # # echo -n "Reload service dovecot " # ## if it supports it: # killproc -HUP $DOVECOT_BIN # #touch /var/run/dovecot.pid # rc_status -v # # ## Otherwise: # #$0 try-restart # #rc_status # ;; # reload) # ## Like force-reload, but if daemon does not support # ## signaling, do nothing (!) # # # If it supports signaling: # echo -n "Reload service dovecot " # killproc -HUP $DOVECOT_BIN # #touch /var/run/dovecot.pid # rc_status -v # # ## Otherwise if it does not support reload: # #rc_failed 3 # #rc_status -v # ;; status) echo -n "Checking for service dovecot " ## Check status with checkproc(8), if process is running ## checkproc will return with exit status 0. # Return value is slightly different for the status command: # 0 - service up and running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running (unused) # 4 - service status unknown :-( # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.) # NOTE: checkproc returns LSB compliant status values. checkproc $DOVECOT_BIN # NOTE: rc_status knows that we called this init script with # "status" option and adapts its messages accordingly. rc_status -v ;; # probe) # ## Optional: Probe for the necessity of a reload, print out the # ## argument to this init script which is required for a reload. # ## Note: probe is not (yet) part of LSB (as of 1.9) # # test /etc/dovecot/dovecot.conf -nt /var/run/dovecot.pid && echo reload # ;; *) echo "Usage: $0 {start|stop|status|try-restart|restart}" exit 1 ;; esac rc_exit --Boundary-00=_U+WWAr+aU4eECL4-- From esj@harvee.org Thu Mar 18 15:13:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 59B4FC002809; Thu, 18 Mar 2004 15:13:55 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by talvi.dovecot.org (Postfix) with ESMTP id 8D101C002807 for ; Thu, 18 Mar 2004 15:13:52 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id i2ID7jCe008121; Thu, 18 Mar 2004 08:09:39 -0500 Received: FROM harvee.org ([192.168.0.54]) BY harvee.org WITH ESMTP ; Thu, 18 Mar 2004 08:07:45 -0500 Message-ID: <40599EEE.9090806@harvee.org> Date: Thu, 18 Mar 2004 08:06:54 -0500 From: "Eric S. Johansson" User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Skye Poier Subject: Re: [Dovecot] triggering multiple actions on pop-3 request References: <4290D8AB6C950C44B59AA76B2513A6CA05A4A1@SYDEXCHVS01.Australasia.SelectNET.com> <40590322.1030705@harvee.org> <20040318024018.GN22419@f4.ca> In-Reply-To: <20040318024018.GN22419@f4.ca> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:040318:skye@f4.ca:37a94ec271f7c15d X-Hashcash: 0:040318:dovecot@dovecot.org:bf25714830cf24c7 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Mar 2004 13:13:55 -0000 X-UID: 8812 Status: O Content-Length: 1657 Skye Poier wrote: > If you want to launch fetchmail, you'd probably want to do a fork() > after authentication. > > In the child, you would execl() fetchmail. > > In the parent you would wait() for the exit status of the child. I figured a fork and exec would probably be what's called for. Although, I would probably want to cast off the child process and let it run to completion on its own. > > You probably wouldn't want to do that in dovecot-auth or it might block > all other auth while it is executing? I haven't really looked at the > design so I don't know. The best place would probably be right before > it tries to read the user's Maildir, in its own process. the best place would be a place for I have all of the necessary information about the user and is a mainline pass through the code so it will always be executed. If you do this right, it could be a plug-in point for pre access functionality. There is probably some equivalent location for post access. Might be an interesting place to put in plug-in infrastructure so we can do all sorts of things to people's e-mail. For example, I have often thought that it would be interesting to have some sort of filter after read type capability. Where all messages go into your inbox and after you read them, a filtering decision is made and the message is put in the appropriate destination automatically. Probably best client side but server side filtering has many advantages including the ability to change clients and not having to move your 200 filter rules. in any case. I can see the argument for putting things down in the actual server code. ---eric From gmid-dovecot@m.gmane.org Thu Mar 18 15:45:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 31261C002809; Thu, 18 Mar 2004 15:45:04 +0200 (EET) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 41E18C002807 for ; Thu, 18 Mar 2004 15:45:02 +0200 (EET) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1B3xlR-0001wk-00 for ; Thu, 18 Mar 2004 14:40:49 +0100 Received: from 139.85.94.36 ([139.85.94.36]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 18 Mar 2004 14:40:49 +0100 Received: from ndbecker2 by 139.85.94.36 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 18 Mar 2004 14:40:49 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: "Neal D. Becker" Date: Thu, 18 Mar 2004 07:47:16 -0500 Lines: 8 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: 139.85.94.36 User-Agent: KNode/0.7.7 Sender: news X-Mailman-Approved-At: Thu, 18 Mar 2004 20:33:28 +0200 Subject: [Dovecot] duplicate mails X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Mar 2004 13:45:04 -0000 X-UID: 8813 Status: O I run kmail and use it to automatically sort my mails to various imap folders (using kmail's disconnected imap). If I fire up a second instance of kmail (e.g., @work + @home) then both will do this, and I wind up with 2 copies of each mail. Can dovecot be taught to discard duplicate mail ids, or maybe some other mechanism to avoid this problem? From jaldhar@debian.org Fri Mar 19 02:29:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5A1A4C00280B; Fri, 19 Mar 2004 02:29:52 +0200 (EET) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 25A92C002807 for ; Fri, 19 Mar 2004 02:29:50 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id D23388052; Thu, 18 Mar 2004 19:25:36 -0500 (EST) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 19883-02; Thu, 18 Mar 2004 19:25:36 -0500 (EST) Received: from [149.123.206.39] (unknown [149.123.206.39]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 4FA447F4E; Thu, 18 Mar 2004 19:25:36 -0500 (EST) Date: Thu, 18 Mar 2004 19:24:15 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Julian Melville Subject: RE: [Dovecot] Dovecot failing silently on startup In-Reply-To: <4290D8AB6C950C44B59AA76B2513A6CA05A3FD@SYDEXCHVS01.Australasia.SelectNET.com> Message-ID: References: <4290D8AB6C950C44B59AA76B2513A6CA05A3FD@SYDEXCHVS01.Australasia.SelectNET.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 00:29:52 -0000 X-UID: 8814 Status: O Content-Length: 1036 On Fri, 12 Mar 2004, Julian Melville wrote: > > Can you do an strace of a running dovecot process so we can > > get a better idea? (You ought to cc the list as well.) > > Sorry for the slow reply, it's taken me a few days to get back to this > and observe the problem again. I've placed a tarball of the output of > "strace -ff -o dovecot dovecot" here: > I too must apologize for the delay in responding. > To my (admittedly untrained) eye, it's looking for and not finding > /etc/ld.so.nohwcap, and then repeatedly not finding > /var/run/dovecot/ssl-parameters.dat. At that point there is a > /var/run/dovecot/ssl-parameters.dat.tmp - is that where the SSL stuff is > being generated? > > Is it just that Dovecot is stalled until the ssl-parameters.dat file > appears? > I've seen this symptom before. There is a problem with gnutls7 on certain architectures hppa and sparc for instance. Are you running one of those by any chance? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From andrew@client.hewus.sdsl.lhc.redrivernet.com Fri Mar 19 06:53:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7B599C00280F; Fri, 19 Mar 2004 06:53:47 +0200 (EET) Received: from rrlhcmal1002.lhc.redrivernet.com (rrlhcmal1002.lhc.redrivernet.com [66.185.225.22]) by talvi.dovecot.org (Postfix) with ESMTP id 40F3CC00280B for ; Fri, 19 Mar 2004 06:53:42 +0200 (EET) Received: from [66.185.239.34] by rrlhcmal1002.redrivernet.com (NTMail 7.00.0022/NU7672.00.de8cf6f5) with ESMTP id unsbauaa for dovecot@dovecot.org; Thu, 18 Mar 2004 21:49:17 -0700 Received: from babelfish.home.hewus.com (andrew@localhost.home.hewus.com [IPv6:::1]) by client.hewus.sdsl.lhc.redrivernet.com (8.12.9/8.12.9) with ESMTP id i2J4fTP5010531 for ; Thu, 18 Mar 2004 21:41:29 -0700 (MST) Received: (from andrew@localhost) by babelfish.home.hewus.com (8.12.9/8.12.9/Submit) id i2J4fT6j025617 for dovecot@dovecot.org; Thu, 18 Mar 2004 21:41:29 -0700 (MST) Date: Thu, 18 Mar 2004 21:41:29 -0700 From: andrew fresh To: dovecot@dovecot.org Message-ID: <20040319044129.GA24104@babelfish.home.hewus.com> Mail-Followup-To: dovecot@dovecot.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i Subject: [Dovecot] Case insensitive user names X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 04:53:47 -0000 X-UID: 8815 Status: O Content-Length: 1378 I am trying to set up the Dovecot pop3 server for some virtual hosting I am doing and it is going well, I am generating a passwd file that points dovecot to the virtual users mailspool. The only thing that I don't have working is that my current pop3 server (NTMail) has case insensitve usernames. Dovecot doesn't. I was hoping there was just an option to turn on, but I didn't see one, and unfortunately I don't know enough C to change to lc($submitted_user) eq lc($database_user) like I would in perl :-) I do have control over generating the passwd file, and it is currently generating the users to lowecase in the file, so just lc($submitted_user) eq $database_user would work well enough. Unfortunately I don't know enough C to do that, so I thought I would ask if anyone has done this. So, does anyone have any ideas on how to do this? Thank you, -- andrew /---------------------------------------------------------------------\ | ICQ# | Proud Member of Mad-Techies.org | | 253198 | http://www.mad-techies.org | |---------------------------------------------------------------------| | There are two ways to write error-free programs; | | only the third one works. | \---------------------------------------------------------------------/ From chrian@stud.ntnu.no Fri Mar 19 15:32:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DE343C00280F; Fri, 19 Mar 2004 15:32:49 +0200 (EET) Received: from amex.kq.no (amex.kq.no [193.71.71.89]) by talvi.dovecot.org (Postfix) with ESMTP id C538EC00280B for ; Fri, 19 Mar 2004 15:32:47 +0200 (EET) Received: by amex.kq.no (Postfix, from userid 1004) id AF41052D15; Fri, 19 Mar 2004 14:28:26 +0100 (CET) Received: from smtp.eunet.no (smtp.eunet.no [193.71.71.243]) by amex.kq.no (Postfix) with ESMTP id 726E052D04 for ; Fri, 19 Mar 2004 14:28:26 +0100 (CET) Received: from gandalf.phuzz.org (cD9088A8E.sdsl.catch.no [217.8.138.142]) by smtp.eunet.no (Postfix) with ESMTP id 60EA7F1E4A for ; Fri, 19 Mar 2004 14:28:26 +0100 (CET) Received: from www.phuzzbox.no (localhost.localdomain [127.0.0.1]) by gandalf.phuzz.org (8.12.10/8.12.10) with ESMTP id i2JDSQ7W016868 for ; Fri, 19 Mar 2004 14:28:26 +0100 Received: from 129.241.163.43 (SquirrelMail authenticated user jumper); by phuzz.org with HTTP; Fri, 19 Mar 2004 14:28:26 +0100 (CET) Message-ID: <55579.129.241.163.43.1079702906.squirrel@129.241.163.43> Date: Fri, 19 Mar 2004 14:28:26 +0100 (CET) From: "Christian Andersen" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: clamd / ClamAV version 0.70rc, clamav-milter version 0.70 Subject: [Dovecot] chdir() on NFS X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 13:32:50 -0000 X-UID: 8816 Status: O Content-Length: 1108 Hi, I'm having problems accessing home directories though NFS. This setup uses LDAP and Kerberos. Users defined on the local host work fine. This is what dovecot writes in the logs while trying to log in as the user johndoe: ---- Mar 19 14:10:54 jack dovecot-auth: nss_ldap: reconnecting to LDAP server... Mar 19 14:10:54 jack dovecot-auth: nss_ldap: reconnected to LDAP server after 1 attempt(s) Mar 19 14:10:54 jack imap-login: Login: johndoe [10.0.0.30] Mar 19 14:10:54 jack dovecot: chdir(/home/johndoe) failed: Permission denied Mar 19 14:10:54 jack dovecot: child 3525 (imap) returned error 89 ---- The authentication is OK, but dovecot fails to get access to the home directory. What username does dovecot try to chdir() as? If I 'su' from to that user I have access to /home/johndoe, and a quick test with Courier IMAP worked fine. Postfix has no problem delivering mail in the users maildir using procmail. Some relevant config options: default_mail_env = maildir:~/mail:INDEX=/var/indexes/%n auth_userdb = passwd auth_passdb = pam auth_user = root -- Christian Andersen From chrian@stud.ntnu.no Fri Mar 19 19:37:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 50EF5C002810; Fri, 19 Mar 2004 19:37:57 +0200 (EET) Received: from amex.kq.no (amex.kq.no [193.71.71.89]) by talvi.dovecot.org (Postfix) with ESMTP id 27ED9C00280B for ; Fri, 19 Mar 2004 19:37:55 +0200 (EET) Received: by amex.kq.no (Postfix, from userid 1004) id 5528F54355; Fri, 19 Mar 2004 18:33:40 +0100 (CET) Received: from smtp.eunet.no (smtp.eunet.no [193.71.71.243]) by amex.kq.no (Postfix) with ESMTP id 233F854336 for ; Fri, 19 Mar 2004 18:33:40 +0100 (CET) Received: from gandalf.phuzz.org (cD9088A8E.sdsl.catch.no [217.8.138.142]) by smtp.eunet.no (Postfix) with ESMTP id 157E0F1EDC for ; Fri, 19 Mar 2004 18:33:40 +0100 (CET) Received: from www.phuzzbox.no (localhost.localdomain [127.0.0.1]) by gandalf.phuzz.org (8.12.10/8.12.10) with ESMTP id i2JHXd7W017856 for ; Fri, 19 Mar 2004 18:33:39 +0100 Received: from 217.144.234.78 (SquirrelMail authenticated user jumper); by phuzz.org with HTTP; Fri, 19 Mar 2004 18:33:39 +0100 (CET) Message-ID: <33901.217.144.234.78.1079717619.squirrel@217.144.234.78> In-Reply-To: <55579.129.241.163.43.1079702906.squirrel@129.241.163.43> References: <55579.129.241.163.43.1079702906.squirrel@129.241.163.43> Date: Fri, 19 Mar 2004 18:33:39 +0100 (CET) Subject: Re: [Dovecot] chdir() on NFS From: "Christian Andersen" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: clamd / ClamAV version 0.70rc, clamav-milter version 0.70 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 17:37:57 -0000 X-UID: 8817 Status: O Content-Length: 1566 Christian Andersen said: > > Hi, > I'm having problems accessing home directories though NFS. This setup uses > LDAP and Kerberos. Users defined on the local host work fine. This is what > dovecot writes in the logs while trying to log in as the user johndoe: > > ---- > Mar 19 14:10:54 jack dovecot-auth: nss_ldap: reconnecting to LDAP > server... > Mar 19 14:10:54 jack dovecot-auth: nss_ldap: reconnected to LDAP server > after 1 attempt(s) > Mar 19 14:10:54 jack imap-login: Login: johndoe [10.0.0.30] > Mar 19 14:10:54 jack dovecot: chdir(/home/johndoe) failed: Permission > denied > Mar 19 14:10:54 jack dovecot: child 3525 (imap) returned error 89 > ---- > > The authentication is OK, but dovecot fails to get access to the home > directory. What username does dovecot try to chdir() as? > > If I 'su' from to that user I have access to /home/johndoe, and a quick > test with Courier IMAP worked fine. Postfix has no problem delivering mail > in the users maildir using procmail. > > Some relevant config options: > > default_mail_env = maildir:~/mail:INDEX=/var/indexes/%n > auth_userdb = passwd > auth_passdb = pam > auth_user = root Problem solved, I guess... I recompiled from source and just replaced the dovecot binary in /usr/sbin. Trying to do 'rpmbuild -tb' and install the resulting rpm rendered everything unusable, but I guess that's just a matter of tweaking some options to 'configure'. What's the difference between the Fedora Core 1 version (0.99.10-6) and the latest stable version (0.99.10.4)? -- Christian Andersen From maikel@ladot.com Fri Mar 19 20:38:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3CDA4C002810; Fri, 19 Mar 2004 20:38:19 +0200 (EET) Received: from amsfep17-int.chello.nl (amsfep17-int.chello.nl [213.46.243.15]) by talvi.dovecot.org (Postfix) with ESMTP id 6F504C00280B for ; Fri, 19 Mar 2004 20:38:16 +0200 (EET) Received: from myst.dohd.org ([62.195.154.6]) by amsfep17-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040319183400.IHSY9102.amsfep17-int.chello.nl@myst.dohd.org> for ; Fri, 19 Mar 2004 19:34:00 +0100 Received: from [10.0.3.242] ([10.0.3.242]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i2JIXQrA006435 for ; Fri, 19 Mar 2004 19:33:28 +0100 (CET) (envelope-from maikel@ladot.com) Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: <33901.217.144.234.78.1079717619.squirrel@217.144.234.78> References: <55579.129.241.163.43.1079702906.squirrel@129.241.163.43> <33901.217.144.234.78.1079717619.squirrel@217.144.234.78> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] chdir() on NFS Date: Fri, 19 Mar 2004 19:33:25 +0100 To: dovecot@dovecot.org X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 18:38:19 -0000 X-UID: 8818 Status: O Content-Length: 1310 Hi Christian, On Mar 19, 2004, at 6:33 PM, Christian Andersen wrote: >> Mar 19 14:10:54 jack imap-login: Login: johndoe [10.0.0.30] >> Mar 19 14:10:54 jack dovecot: chdir(/home/johndoe) failed: Permission >> denied >> Mar 19 14:10:54 jack dovecot: child 3525 (imap) returned error 89 > > Problem solved, I guess... > I think you will find your mailbox empty... > I recompiled from source and just replaced the dovecot binary in > /usr/sbin. Trying to do 'rpmbuild -tb' and install the resulting rpm > rendered everything unusable, but I guess that's just a matter of > tweaking some options to 'configure'. > > What's the difference between the Fedora Core 1 version (0.99.10-6) and > the latest stable version (0.99.10.4)? > I guess the fedora core 1 version does not report with an error when dovecot can't open your mail file/folder. This is a separate patch for the release version. Please note that the current dovecot version does not support dotlocking for all file actions, so NFS is probably not safe and will result in lock errors. (and lock errors can result in the error you were experiencing). I do know Timo is working real hard on getting dovecot to support dotlocking as well for all file actions. > -- > Christian Andersen > > Kind Regards, Maikel Verheijen. From skye@f4.ca Fri Mar 19 21:09:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3824FC002810; Fri, 19 Mar 2004 21:09:21 +0200 (EET) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id 07200C00280B for ; Fri, 19 Mar 2004 21:09:19 +0200 (EET) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1B4PIk-000O1c-00 for dovecot@dovecot.org; Fri, 19 Mar 2004 11:05:02 -0800 Date: Fri, 19 Mar 2004 11:05:02 -0800 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot startup at boottime fails Message-ID: <20040319190502.GF84799@f4.ca> References: <200403181044.52623.bavo@coderspotting.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200403181044.52623.bavo@coderspotting.org> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 19:09:21 -0000 X-UID: 8819 Status: O Does dovecot-auth have permissions to /var/run/dovecot/login during boot time? Skye Word on the street is Bavo De Ridder said: > Hi, > > I am running dovecot 0.99.10.4 on SuSE 9. I installed it using apt-get from > the gwdg repository. > > The dovecot service is configured to start at boottime in run level 3 and 5. > However, it dies immediately with this error (/var/log/mail.err): > > dovecot: Login process died too early - shutting down > > Starting the service afterwords from a prompt as root with the command: > > /etc/init.d/dovecot start > > works without a glitch. Attached you can find my dovecot.conf and the startup > script /etc/init.d/dovecot. > > I hope someone could shed some light on this issue. From skye@f4.ca Fri Mar 19 21:13:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 146CCC002810; Fri, 19 Mar 2004 21:13:07 +0200 (EET) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id D840BC00280B for ; Fri, 19 Mar 2004 21:13:04 +0200 (EET) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1B4PMP-000O3Y-00 for dovecot@dovecot.org; Fri, 19 Mar 2004 11:08:49 -0800 Date: Fri, 19 Mar 2004 11:08:49 -0800 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] triggering multiple actions on pop-3 request Message-ID: <20040319190849.GG84799@f4.ca> References: <4290D8AB6C950C44B59AA76B2513A6CA05A4A1@SYDEXCHVS01.Australasia.SelectNET.com> <40590322.1030705@harvee.org> <20040318024018.GN22419@f4.ca> <40599EEE.9090806@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40599EEE.9090806@harvee.org> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 19:13:07 -0000 X-UID: 8820 Status: O Word on the street is Eric S. Johansson said: > I figured a fork and exec would probably be what's called for. > Although, I would probably want to cast off the child process and let it > run to completion on its own. But, if you don't wait() then the messages it fetches will not be avaiable in the first POP LIST. Which may not matter in your design :) > the best place would be a place for I have all of the necessary > information about the user and is a mainline pass through the code so it > will always be executed. And, after dovecot has changed its UID and chrooted (if the extra security is desired) Skye From chrian@stud.ntnu.no Fri Mar 19 21:17:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 30AEEC002812; Fri, 19 Mar 2004 21:17:24 +0200 (EET) Received: from amex.kq.no (amex.kq.no [193.71.71.89]) by talvi.dovecot.org (Postfix) with ESMTP id 2A070C00280B for ; Fri, 19 Mar 2004 21:17:22 +0200 (EET) Received: by amex.kq.no (Postfix, from userid 1004) id 1FDED52FF6; Fri, 19 Mar 2004 20:13:07 +0100 (CET) Received: from smtp.eunet.no (smtp.eunet.no [193.71.71.243]) by amex.kq.no (Postfix) with ESMTP id DEF3352FD9 for ; Fri, 19 Mar 2004 20:13:06 +0100 (CET) Received: from gandalf.phuzz.org (cD9088A8E.sdsl.catch.no [217.8.138.142]) by smtp.eunet.no (Postfix) with ESMTP id D275DF1EF1 for ; Fri, 19 Mar 2004 20:13:06 +0100 (CET) Received: from stud.ntnu.no (localhost.localdomain [127.0.0.1]) by gandalf.phuzz.org (8.12.10/8.12.10) with ESMTP id i2JJD67W018828 for ; Fri, 19 Mar 2004 20:13:06 +0100 Message-ID: <405B4641.6090100@stud.ntnu.no> Date: Fri, 19 Mar 2004 20:13:05 +0100 From: Christian Andersen Organization: Norwegian University of Science and Technology User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] chdir() on NFS References: <55579.129.241.163.43.1079702906.squirrel@129.241.163.43> <33901.217.144.234.78.1079717619.squirrel@217.144.234.78> In-Reply-To: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.70rc, clamav-milter version 0.70 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 19:17:24 -0000 X-UID: 8821 Status: O Maikel Verheijen wrote: > I guess the fedora core 1 version does not report with an error when > dovecot can't open your mail file/folder. This is a separate patch for > the release version. > > Please note that the current dovecot version does not support dotlocking > for all file actions, so NFS is probably not safe and will result in > lock errors. (and lock errors can result in the error you were > experiencing). I do know Timo is working real hard on getting dovecot > to support dotlocking as well for all file actions. Does this apply to Maildir-format or just mbox? I thought I was playing it safe by using Maildir and having the index files on the local drive... That's the impression I got from the current dovecot documnentation. I just thought it was strange that the problem went away by just replacing the binary. Anyway, this is just a temporary setup for a project in a class at my university, nothing mission critical. -- Christian Andersen From maikel@ladot.com Fri Mar 19 21:27:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 16CC9C002818; Fri, 19 Mar 2004 21:27:43 +0200 (EET) Received: from amsfep17-int.chello.nl (amsfep17-int.chello.nl [213.46.243.15]) by talvi.dovecot.org (Postfix) with ESMTP id BCFE0C002814 for ; Fri, 19 Mar 2004 21:27:40 +0200 (EET) Received: from myst.dohd.org ([62.195.154.6]) by amsfep17-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040319192325.JDVN9102.amsfep17-int.chello.nl@myst.dohd.org> for ; Fri, 19 Mar 2004 20:23:25 +0100 Received: from [10.0.3.242] ([10.0.3.242]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i2JJNIWx006781 for ; Fri, 19 Mar 2004 20:23:18 +0100 (CET) (envelope-from maikel@ladot.com) Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: <405B4641.6090100@stud.ntnu.no> References: <55579.129.241.163.43.1079702906.squirrel@129.241.163.43> <33901.217.144.234.78.1079717619.squirrel@217.144.234.78> <405B4641.6090100@stud.ntnu.no> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] chdir() on NFS Date: Fri, 19 Mar 2004 20:23:17 +0100 To: dovecot@dovecot.org X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 19:27:43 -0000 X-UID: 8822 Status: O Content-Length: 1435 On Mar 19, 2004, at 8:13 PM, Christian Andersen wrote: > Maikel Verheijen wrote: >> I guess the fedora core 1 version does not report with an error when >> dovecot can't open your mail file/folder. This is a separate patch for >> the release version. >> >> Please note that the current dovecot version does not support >> dotlocking >> for all file actions, so NFS is probably not safe and will result in >> lock errors. (and lock errors can result in the error you were >> experiencing). I do know Timo is working real hard on getting dovecot >> to support dotlocking as well for all file actions. > > Does this apply to Maildir-format or just mbox? I thought I was playing > it safe by using Maildir and having the index files on the local > drive... That's the impression I got from the current dovecot > documnentation. I just thought it was strange that the problem went > away > by just replacing the binary. The locking mechanism is more important for mbox mailspools, but dovecot has some extra files (.subscriptions and .customflags) that need locking as well. For the separate mails in the mailboxes dovecot needs no locking when you use maildir. Index files on the local drive are a good idea if you only use one machine for the mailbox, if you use multiple, your index files might get corrupted. You can use in-memory indexes as well. > Christian Andersen > > Kind regards, Maikel Verheijen From esj@harvee.org Fri Mar 19 21:45:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B3C30C002815; Fri, 19 Mar 2004 21:45:48 +0200 (EET) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by talvi.dovecot.org (Postfix) with ESMTP id 25B3EC00280B for ; Fri, 19 Mar 2004 21:45:46 +0200 (EET) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id i2JJeMCe001148; Fri, 19 Mar 2004 14:41:29 -0500 Received: FROM harvee.org ([192.168.0.54]) BY harvee.org WITH ESMTP ; Fri, 19 Mar 2004 14:40:19 -0500 Message-ID: <405B4C84.8090500@harvee.org> Date: Fri, 19 Mar 2004 14:39:48 -0500 From: "Eric S. Johansson" User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Skye Poier Subject: Re: [Dovecot] triggering multiple actions on pop-3 request References: <4290D8AB6C950C44B59AA76B2513A6CA05A4A1@SYDEXCHVS01.Australasia.SelectNET.com> <40590322.1030705@harvee.org> <20040318024018.GN22419@f4.ca> <40599EEE.9090806@harvee.org> <20040319190849.GG84799@f4.ca> In-Reply-To: <20040319190849.GG84799@f4.ca> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:040319:skye@f4.ca:09829239ee6048b7 X-Hashcash: 0:040319:dovecot@dovecot.org:5e283bae81f03842 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 19:45:48 -0000 X-UID: 8823 Status: O Content-Length: 2133 Skye Poier wrote: > Word on the street is Eric S. Johansson said: > >>I figured a fork and exec would probably be what's called for. >>Although, I would probably want to cast off the child process and let it >>run to completion on its own. > > > But, if you don't wait() then the messages it fetches will not be > avaiable in the first POP LIST. Which may not matter in your design :) probably doesn't matter. I would be concerned about waiting for God knows how long while you download 50 billion pieces of spam and filter them out of the stream before returning the first list to the user. On the other hand, if it's a relatively quick process, it might not be too hideous to wait. Would certainly make things easier. >>the best place would be a place for I have all of the necessary >>information about the user and is a mainline pass through the code so it >>will always be executed. > > > And, after dovecot has changed its UID and chrooted (if the extra > security is desired) indeed. Thank you for the reminder. And as a general note to the conversation. I looked into fetchmail as daemon and found it wouldn't work. I would need to have a fetchmail processor running for every single user on the machine. This could get really nasty if you have a few hundred+++ accounts all going to different pop 3 servers for their source information. another possibility (assuming I want to use the "make the user wait" model) is to create a simple proxy which only handles the authentication phase. it establishes a connection with the remote server based on given username and password, runs the pop3 fetch and filter, and drops messages into a local maildir. then, pass the connection to a local dovecot, replaying the authentication sequence (or even bypassing given that the system authenticated on a "authoritative" source) but now connecting the users mail client to the dovecot pop3 server. might work and doesn't require any modifications to dovecot. would need to figure out how to pass control from the new authentication environment/proxy to the dovecot pop3 workhorse. ---eric From skye@f4.ca Fri Mar 19 21:57:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7EE7CC002815; Fri, 19 Mar 2004 21:57:58 +0200 (EET) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id 4FFB9C00280B for ; Fri, 19 Mar 2004 21:57:56 +0200 (EET) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1B4Q3o-000P1A-00 for dovecot@dovecot.org; Fri, 19 Mar 2004 11:53:40 -0800 Date: Fri, 19 Mar 2004 11:53:40 -0800 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] triggering multiple actions on pop-3 request Message-ID: <20040319195340.GH84799@f4.ca> References: <4290D8AB6C950C44B59AA76B2513A6CA05A4A1@SYDEXCHVS01.Australasia.SelectNET.com> <40590322.1030705@harvee.org> <20040318024018.GN22419@f4.ca> <40599EEE.9090806@harvee.org> <20040319190849.GG84799@f4.ca> <405B4C84.8090500@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <405B4C84.8090500@harvee.org> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 19:57:58 -0000 X-UID: 8824 Status: O Word on the street is Eric S. Johansson said: > another possibility (assuming I want to use the "make the user wait" > model) is to create a simple proxy which only handles the authentication > phase. it establishes a connection with the remote server based on > given username and password, runs the pop3 fetch and filter, and drops > messages into a local maildir. then, pass the connection to a local > dovecot, replaying the authentication sequence (or even bypassing given > that the system authenticated on a "authoritative" source) but now > connecting the users mail client to the dovecot pop3 server. Yet another model, if you don't need the first LIST to block, would be to write a simple script to "tail -f" the dovecot log file, watch for successful auths, and then launch fetchmail for that user. Could be done in Perl in about 20 lines :) Skye From roselius@batky-howell.com Fri Mar 19 22:19:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1A0C6C00281C; Fri, 19 Mar 2004 22:19:26 +0200 (EET) Received: from www.batky-howell.com (www.batky-howell.com [65.105.210.210]) by talvi.dovecot.org (Postfix) with ESMTP id 14BF7C002818 for ; Fri, 19 Mar 2004 22:19:24 +0200 (EET) Received: from roselius by www.batky-howell.com with local (Exim 4.30) id 1B4QQG-0008D8-Ie for dovecot@dovecot.org; Fri, 19 Mar 2004 13:16:52 -0700 To: dovecot@dovecot.org Date: Fri, 19 Mar 2004 13:16:52 -0700 (MST) Sender: roselius@batky-howell.com From: rhr-dovecot@batky-howell.com X-Mailer: ELM [version 2.4ME+ PL111 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Message-Id: Subject: [Dovecot] Re: Dovecot died due to some SSL related error X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: rhr-dovecot@batky-howell.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 20:19:26 -0000 X-UID: 8825 Status: O Content-Length: 1724 (Sorry, just joined the list, can't reply in the original message from Feb 4.) > Hi, > Dovecot (pre-compiled version of Fedora Core 1, configured for Maildir) > is running fine for me since a few days. It happened now twice to me > that dovecot died with the following error message in /var/log/maillog: > > Feb 4 11:18:27 hundehuette imap-login: RAND_bytes() failed: > error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not > seeded > Feb 4 11:18:27 hundehuette dovecot: Login process died too early - > shutting down > > As these previous log messages indicate the login was working before > without any problem: > Feb 4 11:02:37 hundehuette imap-login: Login: andrea [192.168.2.138] > Feb 4 11:05:56 hundehuette last message repeated 30 times > Feb 4 11:09:02 hundehuette last message repeated 15 times > Feb 4 11:12:08 hundehuette last message repeated 15 times > Feb 4 11:15:15 hundehuette last message repeated 15 times > Feb 4 11:18:21 hundehuette last message repeated 15 times > Feb 4 11:18:26 hundehuette last message repeated 12 times > > Dovecot is running as user "dovecot" who does not have a ~/.rnd file > > Any idea? > > Thanks, > Christof Hi, No idea, but I'm getting the same thing, at least once a day, sometimes several times a day. I tried putting a .rnd file in /var/libexec/dovecot, no help. - Fedora Core 1.0 - dovecot-0.99.10-6 - openssl-0.9.7a-23 - About 20 users, using pop, pops, imap, imaps. I had to run a cron job that checks every minute to see if dovecot is running, and restart it if it isn't. I'd love to get this figured out, though. I see another message about this in the list archives, at the end of January. I'll post if I find anything... Rob From andrew@client.hewus.sdsl.lhc.redrivernet.com Sat Mar 20 00:02:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CC00DC002818; Sat, 20 Mar 2004 00:02:19 +0200 (EET) Received: from rrlhcmal1002.lhc.redrivernet.com (rrlhcmal1002.lhc.redrivernet.com [66.185.225.22]) by talvi.dovecot.org (Postfix) with ESMTP id 78C85C00280B for ; Sat, 20 Mar 2004 00:02:17 +0200 (EET) Received: from [66.185.239.34] by rrlhcmal1002.redrivernet.com (NTMail 7.00.0022/NU7672.00.de8cf6f5) with ESMTP id urdrauaa for dovecot@dovecot.org; Fri, 19 Mar 2004 14:58:01 -0700 Received: from babelfish.home.hewus.com (andrew@localhost.home.hewus.com [IPv6:::1]) by client.hewus.sdsl.lhc.redrivernet.com (8.12.9/8.12.9) with ESMTP id i2JLo3P5026353 for ; Fri, 19 Mar 2004 14:50:03 -0700 (MST) Received: (from andrew@localhost) by babelfish.home.hewus.com (8.12.9/8.12.9/Submit) id i2JLo3Dg001653 for dovecot@dovecot.org; Fri, 19 Mar 2004 14:50:03 -0700 (MST) Date: Fri, 19 Mar 2004 14:50:03 -0700 From: andrew fresh To: dovecot@dovecot.org Subject: Re: [Dovecot] Case insensitive user names Message-ID: <20040319215003.GA15199@babelfish.home.hewus.com> Mail-Followup-To: dovecot@dovecot.org References: <20040319044129.GA24104@babelfish.home.hewus.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040319044129.GA24104@babelfish.home.hewus.com> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 22:02:20 -0000 X-UID: 8826 Status: O Content-Length: 2165 Trying to make it work case insensitive, I came up with the following. It seems to be working so far. I guess I will have to see if there are any issues. l8rZ, --- src/auth/db-passwd-file.c.orig 2003-05-18 05:26:28.000000000 -0700 +++ src/auth/db-passwd-file.c 2004-03-19 14:49:22.000000000 -0700 @@ -18,6 +18,7 @@ #include #include #include +#include static void passwd_file_add(struct passwd_file *pw, const char *username, const char *pass, const char *const *args) @@ -153,6 +154,14 @@ static void passwd_file_open(struct pass if (args[1] != NULL) { /* at least two fields */ const char *no_args = NULL; + + int i = 0; + while ( args[0][i] ) + { + args[0][i] = tolower(args[0][i]); + i++; + } + passwd_file_add(pw, args[0], args[1], pw->userdb ? args+2 : &no_args); } @@ -219,6 +228,14 @@ db_passwd_file_lookup(struct passwd_file { struct passwd_user *pu; + int i = 0; + while ( user[i] ) + { + user[i] = tolower(user[i]); + i++; + } + i_info("passwd-file(%s): lowecase user", user); + passwd_file_sync(pw); pu = hash_lookup(pw->users, user); -- andrew /---------------------------------------------------------------------\ | ICQ# | Proud Member of Mad-Techies.org | | 253198 | http://www.mad-techies.org | |---------------------------------------------------------------------| | "Programming today is a race between software engineers striving to | | build bigger and better idiot-proof programs, and the Universe | | trying to produce bigger and better idiots. So far, the Universe is | | winning." -- Rich Cook | \---------------------------------------------------------------------/ From andrew@client.hewus.sdsl.lhc.redrivernet.com Sat Mar 20 00:42:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E92C7C00281C; Sat, 20 Mar 2004 00:42:42 +0200 (EET) Received: from rrlhcmal1002.lhc.redrivernet.com (rrlhcmal1002.lhc.redrivernet.com [66.185.225.22]) by talvi.dovecot.org (Postfix) with ESMTP id B6745C002818 for ; Sat, 20 Mar 2004 00:42:40 +0200 (EET) Received: from [66.185.239.34] by rrlhcmal1002.redrivernet.com (NTMail 7.00.0022/NU7672.00.de8cf6f5) with ESMTP id qzwrauaa for dovecot@dovecot.org; Fri, 19 Mar 2004 15:38:22 -0700 Received: from babelfish.home.hewus.com (andrew@localhost.home.hewus.com [IPv6:::1]) by client.hewus.sdsl.lhc.redrivernet.com (8.12.9/8.12.9) with ESMTP id i2JMUQP5020984 for ; Fri, 19 Mar 2004 15:30:26 -0700 (MST) Received: (from andrew@localhost) by babelfish.home.hewus.com (8.12.9/8.12.9/Submit) id i2JMUQv6026188 for dovecot@dovecot.org; Fri, 19 Mar 2004 15:30:26 -0700 (MST) Date: Fri, 19 Mar 2004 15:30:26 -0700 From: andrew fresh To: dovecot@dovecot.org Subject: Re: [Dovecot] Case insensitive user names Message-ID: <20040319223026.GB15199@babelfish.home.hewus.com> Mail-Followup-To: dovecot@dovecot.org References: <20040319044129.GA24104@babelfish.home.hewus.com> <20040319215003.GA15199@babelfish.home.hewus.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040319215003.GA15199@babelfish.home.hewus.com> User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Mar 2004 22:42:43 -0000 X-UID: 8827 Status: O Content-Length: 1301 aha, a little more digging through the dovecot source leads me to this much simpler patch. --- src/auth/db-passwd-file.c.orig 2003-05-18 05:26:28.000000000 -0700 +++ src/auth/db-passwd-file.c 2004-03-19 15:32:52.000000000 -0700 @@ -153,6 +153,9 @@ static void passwd_file_open(struct pass if (args[1] != NULL) { /* at least two fields */ const char *no_args = NULL; + + args[0] = str_lcase(args[0]); + passwd_file_add(pw, args[0], args[1], pw->userdb ? args+2 : &no_args); } @@ -219,6 +222,8 @@ db_passwd_file_lookup(struct passwd_file { struct passwd_user *pu; + user = str_lcase(user); + passwd_file_sync(pw); pu = hash_lookup(pw->users, user); -- andrew /---------------------------------------------------------------------\ | ICQ# | Proud Member of Mad-Techies.org | | 253198 | http://www.mad-techies.org | |---------------------------------------------------------------------| | A computer is like an air-conditioned house, so don't open Windows! | \---------------------------------------------------------------------/ From asmoore@edge.net Sat Mar 20 19:42:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8BD1AC00281D; Sat, 20 Mar 2004 19:42:24 +0200 (EET) Received: from rwcrmhc12.comcast.net (rwcrmhc12.comcast.net [216.148.227.85]) by talvi.dovecot.org (Postfix) with ESMTP id 1EE0FC002818 for ; Sat, 20 Mar 2004 19:42:21 +0200 (EET) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (rwcrmhc12) with ESMTP id <2004032017375101400evba0e>; Sat, 20 Mar 2004 17:37:51 +0000 Received: from [192.168.1.17] (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.11+Sun/8.12.11) with ESMTP id i2KHbkKF022301 for ; Sat, 20 Mar 2004 11:37:50 -0600 (CST) From: Alex S Moore To: dovecot@dovecot.org Content-Type: text/plain Message-Id: <1079804265.993.4.camel@sws602> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Sat, 20 Mar 2004 11:37:45 -0600 Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version devel-20040320, clamav-milter version 0.70 Subject: [Dovecot] RE: Locking problem X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Mar 2004 17:42:24 -0000 X-UID: 8828 Status: O Running dovecot on Solaris 8 sparc with SylpheedClaws as the MUA. I tried moving to many messages from a folder to my maildir folder, which is a local directory on the dovecot server. Now, I cannot open the folder due to this message: 'Mar 20 10:26:15 sws601.mcsun.local imap(amoore): [ID 702911 mail.error] Timeout while waiting for release of shared fcntl() lock for index file /var/indexes//amoore/.Spam.Spam Archive/.imap.index' How do I get the lock released? I changed some timeout settings in dovecot.conf, but that did not help. Every time that I click this particular folder in my MUA, the screen locks up. Thanks, Alex From asmoore@edge.net Sun Mar 21 15:44:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 48455C000D9D; Sun, 21 Mar 2004 15:44:41 +0200 (EET) Received: from sccrmhc13.comcast.net (sccrmhc13.comcast.net [204.127.202.64]) by talvi.dovecot.org (Postfix) with ESMTP id A7FB1C000D9B for ; Sun, 21 Mar 2004 15:44:38 +0200 (EET) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (sccrmhc13) with ESMTP id <2004032113400801600s65m8e>; Sun, 21 Mar 2004 13:40:08 +0000 Received: from [192.168.1.17] (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.11+Sun/8.12.11) with ESMTP id i2LDe6ob023835 for ; Sun, 21 Mar 2004 07:40:07 -0600 (CST) From: Alex S Moore To: dovecot@dovecot.org Content-Type: text/plain Message-Id: <1079876406.1276.1.camel@sws602> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Sun, 21 Mar 2004 07:40:06 -0600 Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version devel-20040320, clamav-milter version 0.70 Subject: [Dovecot] RE: Lock problem - take 2 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Mar 2004 13:44:41 -0000 X-UID: 8829 Status: O I deleted the index folder to fix a lock problem described on my previous post. I still cannot access the folder. Now, I have a file in the maildir folder named dovecot-uidlist.lock that must be corrupt. How do I fix this? I can remove this particular maildir folder and there is no great loss. But I want to know how to fix it, in case this problem occurs on an important folder. Thanks, Alex From bavo@coderspotting.org Tue Mar 23 18:00:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3249CC000D9D; Tue, 23 Mar 2004 18:00:45 +0200 (EET) Received: from latte.be (milk.latte.be [217.22.59.3]) by talvi.dovecot.org (Postfix) with ESMTP id 986B0C000D9B for ; Tue, 23 Mar 2004 18:00:42 +0200 (EET) Received: (qmail-ldap/ctrl 27965 invoked from network); 23 Mar 2004 15:54:59 -0000 Received: from unknown (HELO [10.3.0.4]) ([10.3.0.4]) (envelope-sender ) by latte.be (qmail-ldap-1.03) with SMTP for ; 23 Mar 2004 15:54:59 -0000 Received: from 127.0.0.1 by espresso.latte.be with esmtp (masqmail 0.2.20) id 1B5o9M-0te-00 for ; Tue, 23 Mar 2004 16:49:08 +0100 From: Bavo De Ridder Organization: CoderSpotting To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot startup at boottime fails Date: Tue, 23 Mar 2004 16:49:08 +0100 User-Agent: KMail/1.6.1 References: <200403181044.52623.bavo@coderspotting.org> <20040319190502.GF84799@f4.ca> In-Reply-To: <20040319190502.GF84799@f4.ca> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200403231649.08058.bavo@coderspotting.org> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Mar 2004 16:00:45 -0000 X-UID: 8830 Status: O Content-Length: 1136 Hi, What exactly do you mean with this? These are the permissions of the /var/run/dovecot/login directory: drwxr-x--- 2 root dovecot 72 Mar 23 00:20 login B. On Friday 19 March 2004 20:05, Skye Poier wrote: > Does dovecot-auth have permissions to /var/run/dovecot/login > during boot time? > > Skye > > Word on the street is Bavo De Ridder said: > > Hi, > > > > I am running dovecot 0.99.10.4 on SuSE 9. I installed it using apt-get > > from the gwdg repository. > > > > The dovecot service is configured to start at boottime in run level 3 and > > 5. However, it dies immediately with this error (/var/log/mail.err): > > > > dovecot: Login process died too early - shutting down > > > > Starting the service afterwords from a prompt as root with the command: > > > > /etc/init.d/dovecot start > > > > works without a glitch. Attached you can find my dovecot.conf and the > > startup script /etc/init.d/dovecot. > > > > I hope someone could shed some light on this issue. -- Bavo De Ridder Novell Belgium Customer Services & EMEA Linux Practice "In God We Trust, everyone else get yourself an X.500 certificate" From skye@f4.ca Tue Mar 23 19:48:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7529AC000D9D; Tue, 23 Mar 2004 19:48:17 +0200 (EET) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id 57017C000D9B for ; Tue, 23 Mar 2004 19:48:14 +0200 (EET) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1B5pwK-000E81-00 for dovecot@dovecot.org; Tue, 23 Mar 2004 09:43:48 -0800 Date: Tue, 23 Mar 2004 09:43:48 -0800 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot startup at boottime fails Message-ID: <20040323174348.GD51279@f4.ca> References: <200403181044.52623.bavo@coderspotting.org> <20040319190502.GF84799@f4.ca> <200403231649.08058.bavo@coderspotting.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200403231649.08058.bavo@coderspotting.org> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Mar 2004 17:48:17 -0000 X-UID: 8831 Status: O Content-Length: 1180 OK, I guess those perms are probably right. Is /var mounted rw during your "run level 3" ? I know nothing about SUSE. Skye > Hi, > > What exactly do you mean with this? > These are the permissions of the /var/run/dovecot/login directory: > drwxr-x--- 2 root dovecot 72 Mar 23 00:20 login > > B. > > On Friday 19 March 2004 20:05, Skye Poier wrote: > > Does dovecot-auth have permissions to /var/run/dovecot/login > > during boot time? > > > > Skye > > > > Word on the street is Bavo De Ridder said: > > > Hi, > > > > > > I am running dovecot 0.99.10.4 on SuSE 9. I installed it using apt-get > > > from the gwdg repository. > > > > > > The dovecot service is configured to start at boottime in run level 3 and > > > 5. However, it dies immediately with this error (/var/log/mail.err): > > > > > > dovecot: Login process died too early - shutting down > > > > > > Starting the service afterwords from a prompt as root with the command: > > > > > > /etc/init.d/dovecot start > > > > > > works without a glitch. Attached you can find my dovecot.conf and the > > > startup script /etc/init.d/dovecot. > > > > > > I hope someone could shed some light on this issue. From rueckert@informatik.uni-rostock.de Tue Mar 23 20:14:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 81B28C002801; Tue, 23 Mar 2004 20:14:02 +0200 (EET) Received: from hydrogen.pixalized.technet (pD9ED3144.dip.t-dialin.net [217.237.49.68]) by talvi.dovecot.org (Postfix) with ESMTP id E8C23C000D9B for ; Tue, 23 Mar 2004 20:13:59 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by hydrogen.pixalized.technet (Postfix) with ESMTP id D563A5CBCB2; Tue, 23 Mar 2004 19:02:29 +0100 (CET) Received: from hydrogen.pixalized.technet ([127.0.0.1]) by localhost (hydrogen [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01112-06; Tue, 23 Mar 2004 19:02:28 +0100 (CET) Received: by hydrogen.pixalized.technet (Postfix, from userid 500) id AC4625E32D8; Tue, 23 Mar 2004 19:02:28 +0100 (CET) Date: Tue, 23 Mar 2004 19:02:28 +0100 From: Marcus Rueckert To: Bavo De Ridder Subject: Re: [Dovecot] Dovecot startup at boottime fails Message-ID: <20040323180228.GA1742@monsters.rsn.uni-rostock.de> References: <200403181044.52623.bavo@coderspotting.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200403181044.52623.bavo@coderspotting.org> User-Agent: Mutt/1.5.6i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Mar 2004 18:14:02 -0000 X-UID: 8832 Status: O Content-Length: 1042 On 2004-03-18 10:44:52 +0100, Bavo De Ridder wrote: > I am running dovecot 0.99.10.4 on SuSE 9. I installed it using apt-get from > the gwdg repository. > > The dovecot service is configured to start at boottime in run level 3 and 5. > However, it dies immediately with this error (/var/log/mail.err): > > dovecot: Login process died too early - shutting down > > Starting the service afterwords from a prompt as root with the command: > > /etc/init.d/dovecot start > > works without a glitch. Attached you can find my dovecot.conf and the startup > script /etc/init.d/dovecot. > > I hope someone could shed some light on this issue. did you read the mail SuSEconfig sends to your root user? or read did you read /usr/share/doc/packages/dovecot/README.SuSE :) normally it is an SSL issue. but weird ssl is disabled on your box o.O hmm .. do you get an error if you run "/usr/sbin/dovecot" directly as root? darix (package maintainer) -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From bavo@coderspotting.org Tue Mar 23 21:49:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DE39BC000D9D; Tue, 23 Mar 2004 21:49:29 +0200 (EET) Received: from latte.be (milk.latte.be [217.22.59.3]) by talvi.dovecot.org (Postfix) with ESMTP id B318CC000D9B for ; Tue, 23 Mar 2004 21:49:27 +0200 (EET) Received: (qmail-ldap/ctrl 29123 invoked from network); 23 Mar 2004 19:43:44 -0000 Received: from unknown (HELO [10.3.0.4]) ([10.3.0.4]) (envelope-sender ) by latte.be (qmail-ldap-1.03) with SMTP for ; 23 Mar 2004 19:43:44 -0000 Received: from 127.0.0.1 by espresso.latte.be with esmtp (masqmail 0.2.20) id 1B5rpd-0nA-00 for ; Tue, 23 Mar 2004 20:45:01 +0100 From: Bavo De Ridder Organization: CoderSpotting To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot startup at boottime fails Date: Tue, 23 Mar 2004 20:45:00 +0100 User-Agent: KMail/1.6.1 References: <200403181044.52623.bavo@coderspotting.org> <20040323180228.GA1742@monsters.rsn.uni-rostock.de> In-Reply-To: <20040323180228.GA1742@monsters.rsn.uni-rostock.de> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200403232045.00848.bavo@coderspotting.org> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Mar 2004 19:49:30 -0000 X-UID: 8833 Status: O On Tuesday 23 March 2004 19:02, Marcus Rueckert wrote: > hmm .. do you get an error if you run "/usr/sbin/dovecot" directly as > root? BRU-P7J0J-BDERIDDER:~ # id uid=0(root) gid=0(root) groups=0(root) BRU-P7J0J-BDERIDDER:~ # /usr/sbin/dovecot BRU-P7J0J-BDERIDDER:~ # ps aux ... root 3020 0.0 0.0 2732 944 ? S 20:41 0:00 /usr/sbin/dovecot root 3021 0.0 0.0 3572 1032 ? S 20:41 0:00 dovecot-auth dovecot 3022 0.0 0.0 2920 968 ? S 20:41 0:00 imap-login dovecot 3023 0.0 0.0 2920 968 ? S 20:41 0:00 imap-login dovecot 3024 0.0 0.0 2920 968 ? S 20:41 0:00 imap-login So that seems to work. Like I mentioned, it only fails at boot time. If I, after boot, start the service by hand by executing /etc/init.d/dovecot start, it starts up without errors and works. I assume the var partition is mounted read/write at the time dovecot boots, since dovecot boots after sysload, httpd, ... B. From hf@spg.tu-darmstadt.de Thu Mar 25 16:23:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0F0B6C000D9D; Thu, 25 Mar 2004 16:23:43 +0200 (EET) Received: from bounce.nt.e-technik.tu-darmstadt.de (bounce.nt.e-technik.tu-darmstadt.de [130.83.197.1]) by talvi.dovecot.org (Postfix) with ESMTP id EC837C000D9B for ; Thu, 25 Mar 2004 16:23:39 +0200 (EET) Received: from [130.83.186.53] (blech.nt.e-technik.tu-darmstadt.de [130.83.186.53]) by bounce.nt.e-technik.tu-darmstadt.de (8.12.9p1/8.12.9) with ESMTP id i2PEJAqf027302 for ; Thu, 25 Mar 2004 15:19:10 +0100 (CET) Mime-Version: 1.0 X-Sender: hf@bounce.nt.e-technik.tu-darmstadt.de (Unverified) Message-Id: Date: Thu, 25 Mar 2004 15:19:08 +0100 To: Dovecot mailing list From: Hauke Fath Content-Type: text/plain; charset="iso-8859-1" ; format="flowed" Content-Transfer-Encoding: 8bit Subject: [Dovecot] imap indexing error when moving multiple mails X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Mar 2004 14:23:43 -0000 X-UID: 8834 Status: O Content-Length: 1467 Hi, I've got an 'interesting' problem with a dovecot 0.99.10.4 setup on NetBSD/i386 1.6ZK. dovecot is serving imap only at the moment, using mbox format mailboxes. '/etc/dovecot.conf' is pretty vanilla - among the modified settings, mail_read_mmaped = yes maildir_check_content_changes = yes mbox_lock = fcntl could be relevant. Anyway - from time to time when I move a bunch of mails ( < 1) from a mailbox to another (or to the trash), the client (I've seen it with Eudora 6 on a Mac, with Mozilla 1.6 and Sylpheed on NetBSD) reports an "internal error" and the maillog shows Mar 25 14:07:33 bounce imap-login: Login: hf [130.83.xxx.yyy] Mar 25 14:07:44 bounce imap(hf): Error indexing mbox file /home/hf/Mail/Leute/Marc Wirth: LF not found where expected Mar 25 14:09:30 bounce imap(hf): Error indexing mbox file /home/hf/Mail/Leute/Marc Wirth: LF not found where expected which, if I retry the operation to another time, does not persist and is not strictly repeatable. I've set the number of allowed concurrent connections to '1' on the client, but that doesn't help. Is there anything obvious that I overlooked, or have I tripped over a genuine bug? hauke -- Hauke Fath /~\ The ASCII Ribbon Campaign Institut für Nachrichtentechnik \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281, Fax -3778 / \ Respect for open standards From zach.bagnall@bulletinwireless.com Thu Mar 25 23:13:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CB54CC000D9D; Thu, 25 Mar 2004 23:13:39 +0200 (EET) Received: from hawk.bulletinwireless.net (ns1.jungledrum.co.nz [210.54.149.34]) by talvi.dovecot.org (Postfix) with ESMTP id C16B4C000D9B for ; Thu, 25 Mar 2004 23:13:36 +0200 (EET) Received: from localhost (localhost.localdomain [127.0.0.1]) by hawk.bulletinwireless.net (Postfix) with ESMTP id D5A551329D for ; Fri, 26 Mar 2004 09:08:59 +1200 (NZST) Received: from hawk.bulletinwireless.net ([127.0.0.1]) by localhost (hawk [127.0.0.1:10024]) (amavisd-new) with LMTP id 27443-01-7 for ; Fri, 26 Mar 2004 09:08:47 +1200 (NZST) Received: from piranha (piranha.intra.jungledrum.co.nz [192.168.1.13]) by hawk.bulletinwireless.net (Postfix) with ESMTP id D746F13294 for ; Fri, 26 Mar 2004 09:08:46 +1200 (NZST) Date: Fri, 26 Mar 2004 09:08:38 +1200 From: Zach Bagnall To: Dovecot mailing list Message-Id: <20040326090838.0fdcf4dc.zach.bagnall@bulletinwireless.com> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.9.7claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Fri__26_Mar_2004_09_08_38_+1200_V4vc3LZGaefshh_P" X-Virus-Scanned: by amavisd-new Subject: [Dovecot] Calling gentoo maintainers X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Mar 2004 21:13:40 -0000 X-UID: 8835 Status: O --Signature=_Fri__26_Mar_2004_09_08_38_+1200_V4vc3LZGaefshh_P Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit If anyone knows someone with CVS access can they please take another look at http://bugs.gentoo.org/show_bug.cgi?id=22080. It has been in bugzilla for nearly nine months. Would like to see this in portage - masked is fine - so at least everyone is working off the same file. Cheers Zach. --Signature=_Fri__26_Mar_2004_09_08_38_+1200_V4vc3LZGaefshh_P Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQFAY0pW4jDFYT+aqaIRAo3/AKDGewLWgah7fUnbw2PBszFymvTjWgCfTdXp 9AWcne4sC9xQr/QINy1tU1Q= =jfIF -----END PGP SIGNATURE----- --Signature=_Fri__26_Mar_2004_09_08_38_+1200_V4vc3LZGaefshh_P-- From olive@pasteur.fr Fri Mar 26 18:39:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3FBC4C000D9D; Fri, 26 Mar 2004 18:39:31 +0200 (EET) Received: from electre.pasteur.fr (electre.pasteur.fr [157.99.64.120]) by talvi.dovecot.org (Postfix) with ESMTP id E13EFC000D9B for ; Fri, 26 Mar 2004 18:39:28 +0200 (EET) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by electre.pasteur.fr (8.12.11/8.12.11) with ESMTP id i2QGYuGM429588 for ; Fri, 26 Mar 2004 17:34:56 +0100 (CET) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id BFB283F67F; Fri, 26 Mar 2004 17:34:56 +0100 (CET) Date: Fri, 26 Mar 2004 17:34:56 +0100 From: Olivier Tharan To: dovecot@dovecot.org Message-ID: <20040326163456.GE32306@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ Subject: [Dovecot] The Status: header is forced X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Mar 2004 16:39:31 -0000 X-UID: 8836 Status: O Hi, I started testing dovecot for our next POP/IMAP server (nearing production state), and noticed that the Status: header is always added, with a value of 'O' or 'RO'. This happens in `lib-index/mbox/mbox-rewrite.c'. This does not seem to happen in the Maildir case. Is the Status: header really needed in every case? This breaks mutt which displays mails with a 'O' flag instead of 'N'. My dovecot is 0.99.10.4 (FreeBSD port), but the behavior is still the same in the CVS version. -- olive From johannes@sipsolutions.de Fri Mar 26 21:22:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E9F01C000D9D; Fri, 26 Mar 2004 21:22:00 +0200 (EET) Received: from johannes.sipsolutions.com (pD9E11E77.dip.t-dialin.net [217.225.30.119]) by talvi.dovecot.org (Postfix) with ESMTP id B41F0C000D9B for ; Fri, 26 Mar 2004 21:21:58 +0200 (EET) Received: from 6-allhosts (localhost [127.0.0.1]) by johannes.sipsolutions.com (Postfix) with ESMTP id 7FF32151A94E for ; Fri, 26 Mar 2004 20:17:25 +0100 (CET) From: Johannes Berg To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-XXLulXYpUxLgoz5d+dgw" Message-Id: <1080328644.12694.21.camel@johannes> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 26 Mar 2004 20:17:24 +0100 Subject: [Dovecot] dovecot tls configuration X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Mar 2004 19:22:01 -0000 X-UID: 8837 Status: O Content-Length: 1535 --=-XXLulXYpUxLgoz5d+dgw Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, I looked through the web and the list archives, but couldn't find how to set up the following: - dovecot with ssl/tls enabled - login from localhost allowed with and without tls - login from remote hosts only allowed via tls Is that possible at all? I'm using debian/unstable so its version 0.99.10.4-3. Thanks, johannes --=20 http://www.sipsolutions.de/ Key-ID: 9AB78CA5 Johannes Martin Berg --=-XXLulXYpUxLgoz5d+dgw Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Comment: Johannes Berg (SIP Solutions) iQIVAwUAQGSBwKVg1VMiehFYAQIzxw/7B1QDmVheE1yope17AUIB0sgh4F7pyMSN 19ll1Sb4C0tx3kORXwGFWQXjzZaIOphufIYtdQ+J8TRpUcQ13p+iVWU6BrO+okDL LIpwiBEYQj3VZZrbaiN2eHpYkWx6i7mkbHKWNespru4fn6zObW7Ce2mMevxjKfBY uVKv5YVgKZlXMJSGJ3Tqbu1K5NXQltBZwQgjL6VAeVKK5undf008C2zLWJ/5Ym6V feden30/kLsY9sjEqnJ9m6/UaiR6WZwHTmDXopDa3cGSWBkkUoZXtqy2/g871Czu Asa67vO7F+sCv9zbCoK7OawnKPUb6zjGO1ubn88hEwB1DdPgvFn9q8WYGTKJbkNs ieplFLxxg9IYd5b3NhAqy6CIx7Li4fncvj9c+XjCKY3mHg/y7s/kJyiDm84fTZxk 5qZLEEJsX9ZRMgyvgquV5QVVCwUk2+NS/zsWOtNT5YvekJhp0GaVfJ0cztwgPL2g x5hPTJSrWt7v9C2/HbbEuLOca1b7l6qFsql3cdhx0W6wuHMw0ddwBdKBO6dnFXqm b1fy/gTlonCeux1owkLAsAa15+QTIg+MchwgQXpgAaNdSanG2oHNkdmYufvFnWj/ E20Fu3ywxKPAFa4qZD1qVeFFqMcSee9TOWW2m4DsMkROidQuozt8/HdRf+IRZd1/ qEUKLaFOAdc= =47Qx -----END PGP SIGNATURE----- --=-XXLulXYpUxLgoz5d+dgw-- From jwt@qth.ath.cx Sat Mar 27 01:23:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D45FFC000D9D; Sat, 27 Mar 2004 01:23:19 +0200 (EET) Received: from mail.onjapan.net (usen-221x115x224x2.ap-US01.usen.ad.jp [221.115.224.2]) by talvi.dovecot.org (Postfix) with ESMTP id 918E5C000D9B for ; Sat, 27 Mar 2004 01:23:17 +0200 (EET) Received: from jwt by mail.onjapan.net with local (Exim 4.30) id 1B70b3-0007kQ-Sl for dovecot@dovecot.org; Sat, 27 Mar 2004 08:18:41 +0900 Date: Sat, 27 Mar 2004 08:18:41 +0900 From: Jim Tittsler To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot tls configuration Message-ID: <20040326231841.GA29483@server.onjapan.net> References: <1080328644.12694.21.camel@johannes> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1080328644.12694.21.camel@johannes> User-Agent: Mutt/1.4.1i Organization: 7J1AJH/AI8A Tokyo X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Mar 2004 23:23:20 -0000 X-UID: 8838 Status: O On Fri, Mar 26, 2004 at 08:17:24PM +0100, Johannes Berg wrote: > I looked through the web and the list archives, but couldn't find how to > set up the following: > - dovecot with ssl/tls enabled > - login from localhost allowed with and without tls > - login from remote hosts only allowed via tls I want this configuration as well. I set: imap_listen = 127.0.0.1 imaps_listen = * so that IMAP only binds to the localhost address, and IMAPS binds to all the interfaces. From rjohnson@medata.com Sat Mar 27 03:00:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5542DC000D9D; Sat, 27 Mar 2004 03:00:14 +0200 (EET) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id 9E9D8C000D9B for ; Sat, 27 Mar 2004 03:00:11 +0200 (EET) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i2R0taf5029624 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 26 Mar 2004 16:55:36 -0800 Message-ID: <4064D108.9040903@medata.com> Date: Fri, 26 Mar 2004 16:55:36 -0800 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot tls configuration References: <1080328644.12694.21.camel@johannes> <20040326231841.GA29483@server.onjapan.net> In-Reply-To: <20040326231841.GA29483@server.onjapan.net> X-Enigmail-Version: 0.83.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.70rc, clamav-milter version 0.70 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Mar 2004 01:00:14 -0000 X-UID: 8839 Status: O Jim Tittsler wrote: > On Fri, Mar 26, 2004 at 08:17:24PM +0100, Johannes Berg wrote: > >>I looked through the web and the list archives, but couldn't find how to >>set up the following: >> - dovecot with ssl/tls enabled >> - login from localhost allowed with and without tls >> - login from remote hosts only allowed via tls > > > I want this configuration as well. I set: > imap_listen = 127.0.0.1 > imaps_listen = * > so that IMAP only binds to the localhost address, and IMAPS > binds to all the interfaces. > It's possible to use tcpwrappers (hosts.allow and hosts.deny) or an iptables type filter as well if you want to be able to connect to your outside interface locally (for simplicity), but restrict other users. Not as "to the point" as above, but still functional. HTH, -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From subscribed-lists@sterndata.com Sun Mar 28 00:30:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C9C9FC000D9D; Sun, 28 Mar 2004 00:30:11 +0200 (EET) Received: from starling.mail.pas.earthlink.net (starling.mail.pas.earthlink.net [207.217.120.227]) by talvi.dovecot.org (Postfix) with ESMTP id 98FBBC000D9B for ; Sun, 28 Mar 2004 00:30:09 +0200 (EET) Received: from h-69-3-218-112.chcgilgm.dynamic.covad.net ([69.3.218.112] helo=sds) by starling.mail.pas.earthlink.net with asmtp (Exim 3.36 #4) id 1B7MFA-0003q9-00 for dovecot@dovecot.org; Sat, 27 Mar 2004 14:25:32 -0800 From: Steven Stern To: dovecot@dovecot.org Date: Sat, 27 Mar 2004 16:25:25 -0600 Message-ID: X-Mailer: Forte Agent 2.0/32.646 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-ELNK-Trace: ceb7752f8f1f6d2f9649176a89d694c0f43c108795ac450712e97fbd96e4241a262ef5d40556c4ac350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c Subject: [Dovecot] Process died to early X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Mar 2004 22:30:12 -0000 X-UID: 8840 Status: O After several days of operation, POP connections fail to my server. The=20 log message is Mar 27 15:51:46 ciscy dovecot: Login process died too early - shutting=20 down Linux ciscy.sterndata.com 2.4.22-1.2174.nptl #1 Wed Feb 18 16:38:32 EST=20 2004 i686 i686 i386 GNU/Linux ]# /usr/sbin/dovecot --version 0.99.10 # /etc/init.d/dovecot status dovecot (pid 6900) is running... Killing the dovecot process, deleting /var/lock/subys/dovecot, and=20 restarting the process gets POP3 and IMAP working again. Suggestions? -- Steve =20 From schrock@dayzed.com Sun Mar 28 01:48:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4D10CC000D9D; Sun, 28 Mar 2004 01:48:55 +0200 (EET) Received: from mail.dayzed.com (24-176-245-120.cs-cres.charterpipeline.net [24.176.245.120]) by talvi.dovecot.org (Postfix) with ESMTP id 50370C000D9B for ; Sun, 28 Mar 2004 01:48:53 +0200 (EET) Received: from 192.168.50.2 (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with SMTP id 9A73336D48 for ; Sat, 27 Mar 2004 15:44:16 -0800 (PST) Received: from 192.168.50.6 (SquirrelMail authenticated user schrock) by dayzed.com with HTTP; Sat, 27 Mar 2004 15:44:16 -0800 (PST) Message-ID: <33464.192.168.50.6.1080431056.squirrel@dayzed.com> Date: Sat, 27 Mar 2004 15:44:16 -0800 (PST) From: "Avery Day" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-Mailman-Approved-At: Sun, 28 Mar 2004 15:35:31 +0300 Subject: [Dovecot] error starting dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Mar 2004 23:48:55 -0000 X-UID: 8841 Status: O I am running redhat 9.0. I have been using uw-imap for some time now and wanted to try our dovecot. After installing dovecot and trying to start it up I am getting an error ------------------- Starting IMAP daemon (dovecot): Fatal: Can't use SSL certificate /usr/share/ssl/certs/dovecot.pem: No such file or directory ------------------- Thanks for any help. From johannes@sipsolutions.de Sun Mar 28 21:15:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DC39BC000D9D; Sun, 28 Mar 2004 21:15:45 +0300 (EEST) Received: from johannes.sipsolutions.com (pD9E11BAE.dip.t-dialin.net [217.225.27.174]) by talvi.dovecot.org (Postfix) with ESMTP id A9BBCC000D9B for ; Sun, 28 Mar 2004 21:15:43 +0300 (EEST) Received: from 6-allhosts (localhost [127.0.0.1]) by johannes.sipsolutions.com (Postfix) with ESMTP id 9FCD8151A94E; Sun, 28 Mar 2004 20:11:05 +0200 (CEST) Subject: Re: [Dovecot] dovecot tls configuration From: Johannes Berg To: Jim Tittsler In-Reply-To: <20040326231841.GA29483@server.onjapan.net> References: <1080328644.12694.21.camel@johannes> <20040326231841.GA29483@server.onjapan.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-y3bXQ0gvmv42FnSQ0om7" Message-Id: <1080497464.2405.0.camel@johannes> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 28 Mar 2004 20:11:05 +0200 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Mar 2004 18:15:46 -0000 X-UID: 8842 Status: O Content-Length: 1622 --=-y3bXQ0gvmv42FnSQ0om7 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-03-27 at 00:18, Jim Tittsler wrote: > I want this configuration as well. I set: > imap_listen =3D 127.0.0.1 > imaps_listen =3D * > so that IMAP only binds to the localhost address, and IMAPS > binds to all the interfaces. Thanks for your answer! I had the same before, but I now wanted to use explicit TLS (ie. STARTTLS or whatever its called in IMAP). Sorry for not making that clearer. johannes --=20 http://www.sipsolutions.de/ Key-ID: 9AB78CA5 Johannes Martin Berg --=-y3bXQ0gvmv42FnSQ0om7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Comment: Johannes Berg (SIP Solutions) iQIVAwUAQGcVNaVg1VMiehFYAQLrDBAAte2yz+w0R4HYrkwzSqEOll04o9T1WyYa PiQ4Ra0tIz20VIKBh9O+P4SbOD7thscK40bIMgR8K22WGinTLkQDzPUS2wud208r BOJkzdbYFp4y8H/XBzwvBnzKDoLrUb0qeo5SUmA2YwpwVHzvlxX1wcAKYwwLwIvQ beLJ7MyyjQqJ9/AZFyNXmHihOJO/LIyHI8sjdbfimX6mA8QG7+LWlnaLj9JZb172 WQqUaItYOOwk+VGgG26IJh9w7LwC9m15/IViOV7NVWrZ2QNCRgExK+iRw1RfkFFO I5G5XzPidoiaUEhvV7+7HoxOFWVddSRTS9uZs5/Su39CdV6n5qtSg3KKdizBY3J4 0ElnF007IRvhSOMJtuFKqmDG9Q19gSmR/ql61433MaLdAsIsC3BklFUJgvkjSiBb l90pgpIuaMuyGiXqOjGf7KIjGyJUGsFaxCYMLSPG8K8DZDnrk45kbx4kDDvH3/it 0BA511P1iA9RVxEPUI7hclcniQd8xf38EVXyWzX1GVQ72eIstiOW/s/NIlc5BOuG RuCBYajGPxmnl9l8qZL0tn04HLbK4/kiN6w94YGkug1H2bpkV86tGjIq6+CquFb+ sSulPqDJi/dcgXB/kNj260xm7WESk0IwZAPu5M+shWynFG74itZpJtOqFKQYUSMZ glAmyCvoSDM= =6xnh -----END PGP SIGNATURE----- --=-y3bXQ0gvmv42FnSQ0om7-- From tss@iki.fi Mon Mar 29 02:04:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 65996C000D9D; Mon, 29 Mar 2004 02:04:24 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id D8F7EC000D9B for ; Mon, 29 Mar 2004 02:04:21 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 0AD142382E; Mon, 29 Mar 2004 01:59:45 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3AE4B2382D for ; Mon, 29 Mar 2004 01:59:07 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: 7bit Message-Id: <805E92E4-810B-11D8-9E2C-000393CC2E90@iki.fi> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-11--871674411" To: dovecot@dovecot.org From: Timo Sirainen Date: Mon, 29 Mar 2004 01:59:00 +0300 X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-6.6 required=5.0 tests=AWL,BAYES_10,PGP_SIGNATURE_2,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] New indexing code X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Mar 2004 23:04:24 -0000 X-UID: 8843 Status: O Content-Length: 1608 --Apple-Mail-11--871674411 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Sorry about the lack of replies to questions in this list. Work on the new indexing code has taken way too long, but it's finally beginning to be get near usable state. After it's fully working, I'll start being more active here again. If you're interested (as a developer, normal users shouldn't even try playing with it yet), you can checkout "newdove" module from Dovecot CVS. Many things are still broken, but basic maildir support is almost working with the exception of expunges (which probably break badly) and custom flags (not implemented). And the maildir syncing code isn't optimized yet. Don't try it with any of your real maildirs, it might lose your mails. Some of the new great things in it: - Mailbox API which is a lot more easier to use than before, allowing a lot of things that previously were difficult to implement - Less IMAP-specific than before - Should work extremely well with shared mailboxes with tons of users I'm hoping to get a usable alpha release out of it within few weeks. --Apple-Mail-11--871674411 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAZ1i1yUhSUUBViskRAuAbAJ9KIWrGa2WR0jSJyVnDLCrjs8HJUgCfcu9D pO2huyW8QzpgaF6YIRcuU3s= =v4Lm -----END PGP SIGNATURE----- --Apple-Mail-11--871674411-- From charlieb-dovecot@e-smith.com Mon Mar 29 19:39:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 22354C000D9D; Mon, 29 Mar 2004 19:39:59 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by talvi.dovecot.org (Postfix) with SMTP id 2C35EC000D9B for ; Mon, 29 Mar 2004 19:39:56 +0300 (EEST) Received: (qmail 6847 invoked from network); 29 Mar 2004 16:35:14 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 29 Mar 2004 16:35:14 -0000 Received: (qmail 30786 invoked by uid 5008); 29 Mar 2004 16:35:14 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 29 Mar 2004 16:35:14 -0000 Date: Mon, 29 Mar 2004 11:35:14 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Jim Tittsler Subject: Re: [Dovecot] dovecot tls configuration In-Reply-To: <20040326231841.GA29483@server.onjapan.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Mar 2004 16:39:59 -0000 X-UID: 8844 Status: O On Sat, 27 Mar 2004, Jim Tittsler wrote: > On Fri, Mar 26, 2004 at 08:17:24PM +0100, Johannes Berg wrote: > > I looked through the web and the list archives, but couldn't find how to > > set up the following: > > - dovecot with ssl/tls enabled > > - login from localhost allowed with and without tls > > - login from remote hosts only allowed via tls > > I want this configuration as well. I set: > imap_listen = 127.0.0.1 > imaps_listen = * > so that IMAP only binds to the localhost address, and IMAPS > binds to all the interfaces. But imaps is not the same as imap/tls. If you search the archives, you'll find a recipe from me for using a chrooted stunnel as an imap proxy which can do starttls negotiation. You can vary the flags which it is given at startup so that starttls can be optional or compulsory depending on the connecting address. -- Charlie A: Because we read from top to bottom, left to right. Q: Why should i start my reply below the quoted text? From charlieb-dovecot@e-smith.com Mon Mar 29 19:41:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 85A2FC002800; Mon, 29 Mar 2004 19:41:13 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by talvi.dovecot.org (Postfix) with SMTP id 63EABC000D9B for ; Mon, 29 Mar 2004 19:41:10 +0300 (EEST) Received: (qmail 7082 invoked from network); 29 Mar 2004 16:36:31 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 29 Mar 2004 16:36:31 -0000 Received: (qmail 30969 invoked by uid 5008); 29 Mar 2004 16:36:31 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 29 Mar 2004 16:36:31 -0000 Date: Mon, 29 Mar 2004 11:36:31 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Avery Day Subject: Re: [Dovecot] error starting dovecot In-Reply-To: <33464.192.168.50.6.1080431056.squirrel@dayzed.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Mar 2004 16:41:13 -0000 X-UID: 8845 Status: O On Sat, 27 Mar 2004, Avery Day wrote: > I am running redhat 9.0. I have been using uw-imap for some time now and > wanted to try our dovecot. After installing dovecot and trying to start it > up I am getting an error > ------------------- > Starting IMAP daemon (dovecot): Fatal: Can't use SSL certificate > /usr/share/ssl/certs/dovecot.pem: No such file or directory My guess is that you don't have an SSL certificate at /usr/share/ssl/certs/dovecot.pem. -- Charlie A: Because we read from top to bottom, left to right. Q: Why should i start my reply below the quoted text? From charlieb-dovecot@e-smith.com Mon Mar 29 19:49:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 54641C002802; Mon, 29 Mar 2004 19:49:47 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by talvi.dovecot.org (Postfix) with SMTP id 91B47C000D9B for ; Mon, 29 Mar 2004 19:49:44 +0300 (EEST) Received: (qmail 8788 invoked from network); 29 Mar 2004 16:45:05 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 29 Mar 2004 16:45:05 -0000 Received: (qmail 32598 invoked by uid 5008); 29 Mar 2004 16:45:05 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 29 Mar 2004 16:45:05 -0000 Date: Mon, 29 Mar 2004 11:45:05 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Raymond Scholz Subject: Message copy errors (Re: [Dovecot] Re: Addition) In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Mar 2004 16:49:47 -0000 X-UID: 8846 Status: O On Fri, 27 Feb 2004, Raymond Scholz wrote (apparently without=20 explanation): > A003 OK Expunge completed. > A004 UID COPY 4 "Test" > A004 NO Unexpected EOF > A005 UID COPY 3 "Test" > A005 NO Unexpected EOF [snip] > =B7 Raymond Scholz wrote: >=20 > Ok, I've found the reason for this. Setting >=20 > maildir_copy_with_hardlinks =3D yes >=20 > cures the problem. Have you checked whether your file system is full? > Nevertheless I think the original problem is > worth debugging. An strace of the imap process will likely reveal the cause. -- Charlie A: Because we read from top to bottom, left to right. Q: Why should i start my reply below the quoted text? From charlieb-dovecot@e-smith.com Mon Mar 29 19:52:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5078CC002802; Mon, 29 Mar 2004 19:52:06 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id C2E69C000D9B for ; Mon, 29 Mar 2004 19:52:03 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 63AEC2382C; Mon, 29 Mar 2004 19:47:25 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 568842382D; Mon, 29 Mar 2004 19:47:25 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by danu.procontrol.fi (Postfix) with SMTP id B0FAB2382C for ; Mon, 29 Mar 2004 19:46:50 +0300 (EEST) Received: (qmail 9079 invoked from network); 29 Mar 2004 16:46:46 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 29 Mar 2004 16:46:46 -0000 Received: (qmail 390 invoked by uid 5008); 29 Mar 2004 16:46:46 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 29 Mar 2004 16:46:46 -0000 Date: Mon, 29 Mar 2004 11:46:46 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: wired@linfe.it Subject: maildir v mbox (Re: [Dovecot] UW-IMAP -> Dovecot : patch to remove nasty "internal messages" from UW-IMAP ?) In-Reply-To: <20040227095544.GA31847@linfe.it> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Mar 2004 16:52:06 -0000 X-UID: 8847 Status: O On Fri, 27 Feb 2004 wired@linfe.it wrote: > >From Timo Sirainen, Feb 25: > >I don't really recommend using Dovecot with mbox at the moment. I'll > >probably add support for "folder internal data" messages for rewritten > >mbox support. > > Well, i am using mbox currently. My mails are at risk? > Should i switch to maildir? (IMO) yes. Maildir is an inherently more reliable format. In many cases it is also more efficient. -- Charlie A: Because we read from top to bottom, left to right. Q: Why should i start my reply below the quoted text? From schrock@dayzed.com Tue Mar 30 00:49:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8E9F7C000D9D; Tue, 30 Mar 2004 00:49:29 +0300 (EEST) Received: from mail.dayzed.com (24-176-245-120.cs-cres.charterpipeline.net [24.176.245.120]) by talvi.dovecot.org (Postfix) with ESMTP id 243F9C000D9B for ; Tue, 30 Mar 2004 00:49:27 +0300 (EEST) Received: from dayzed.com (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with SMTP id 8653D36D5D for ; Mon, 29 Mar 2004 13:44:38 -0800 (PST) Received: from 66-224-116-226.atgi.net ([66.224.116.226]) (SquirrelMail authenticated user schrock) by dayzed.com with HTTP; Mon, 29 Mar 2004 13:44:38 -0800 (PST) Message-ID: <62185.66.224.116.226.1080596678.squirrel@dayzed.com> In-Reply-To: References: <33464.192.168.50.6.1080431056.squirrel@dayzed.com> Date: Mon, 29 Mar 2004 13:44:38 -0800 (PST) Subject: Re: [Dovecot] error starting dovecot From: "Avery Day" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Mar 2004 21:49:29 -0000 X-UID: 8848 Status: O > > On Sat, 27 Mar 2004, Avery Day wrote: > >> I am running redhat 9.0. I have been using uw-imap for some time now and >> wanted to try our dovecot. After installing dovecot and trying to start >> it >> up I am getting an error >> ------------------- >> Starting IMAP daemon (dovecot): Fatal: Can't use SSL certificate >> /usr/share/ssl/certs/dovecot.pem: No such file or directory > > My guess is that you don't have an SSL certificate at > /usr/share/ssl/certs/dovecot.pem. > > -- > Charlie > > A: Because we read from top to bottom, left to right. > Q: Why should i start my reply below the quoted text? > Thanks for trying to help me. I did not see anywhere on dovecotts website or in the insall file where it said that I needed to create these certificates. I tried dovecot on one of my fedora machines with no problems. Could you please be kind enough to tell me how to create a ssl certificate for dovecot? Thanks, AD -- Avery Day From tom@replic8.net Tue Mar 30 13:30:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AAF63C002800; Tue, 30 Mar 2004 13:30:26 +0300 (EEST) Received: from rpd.dyn.hannover.ccc.de (p508617D7.dip0.t-ipconnect.de [80.134.23.215]) by talvi.dovecot.org (Postfix) with ESMTP id A50A2C000D9B for ; Tue, 30 Mar 2004 13:30:24 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by rpd.dyn.hannover.ccc.de (Postfix) with ESMTP id B1432416A5 for ; Tue, 30 Mar 2004 10:25:52 +0000 (GMT) Received: from rpd.dyn.hannover.ccc.de ([192.168.100.101]) by localhost (commbox.rpdnet.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 00237-01 for ; Tue, 30 Mar 2004 10:25:52 +0000 (GMT) Received: from localhost (server.rpdnet.com [192.168.100.100]) by rpd.dyn.hannover.ccc.de (Postfix) with ESMTP id 02BB541683 for ; Tue, 30 Mar 2004 10:25:51 +0000 (GMT) Received: from 10.0.0.24 ([10.0.0.24]) by 192.168.100.111 (IMP) with HTTP for ; Tue, 30 Mar 2004 11:26:36 +0200 Message-ID: <1080638796.40693d4c54c0d@192.168.100.111> Date: Tue, 30 Mar 2004 11:26:36 +0200 From: tom@replic8.net To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.2 / FreeBSD-4.9 X-Virus-Scanned: by amavisd-new Subject: [Dovecot] (no subject) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 10:30:26 -0000 X-UID: 8849 Status: O hello, suddenly, dovecot stopped working. login succeeds, then no mail is displayed to the user. i upgraded to latest nightly, no change. ==snip== Mar 30 10:17:31 commbox imap-login: Login: user [192.168.99.66] Mar 30 10:17:31 commbox imap(user): Buffer full (49) Mar 30 10:17:31 commbox dovecot: child 745 (imap) killed with signal 6 ==snap== some minutes later i tried another client - i was using php-based horde/imp webmail system first (php uses cclient2000 for imap which is based on uw-imap afaik) - using syslphed-0.99 things work fine. strange. any hints on how to debug this more? -- thanks, TOM From anielsen@diku.dk Tue Mar 30 15:50:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 26E39C002801; Tue, 30 Mar 2004 15:50:14 +0300 (EEST) Received: from fitch1.uni2.net (fitch1.uni2.net [130.227.52.104]) by talvi.dovecot.org (Postfix) with ESMTP id 71341C000D9B for ; Tue, 30 Mar 2004 15:50:11 +0300 (EEST) Received: from anders.intranet ([130.227.149.6]) by fitch1.uni2.net (8.12.6/8.11.6) with ESMTP id i2UCjUE1027825 for ; Tue, 30 Mar 2004 14:45:30 +0200 From: Anders Nielsen To: Dovecot list Content-Type: text/plain Message-Id: <1080650729.6246.15.camel@anders.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Tue, 30 Mar 2004 14:45:30 +0200 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Fatal: RAND_bytes() failed X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 12:50:14 -0000 X-UID: 8850 Status: O This morning dovecot died with the following messages in the errorlog. Any solution to this problem? I am using Fedora Core 1 on a SMP i686 box. imap-login: Mar 30 08:08:00 Fatal: RAND_bytes() failed: error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded dovecot: Mar 30 08:08:00 Error: Login process died too early - shutting down dovecot: Mar 30 08:08:00 Error: child 21354 (login) returned error 89 Best regards Anders Nielsen -- Anders Nielsen From anielsen@jobindex.dk Tue Mar 30 16:33:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0FD18C002802; Tue, 30 Mar 2004 16:33:28 +0300 (EEST) Received: from fitch1.uni2.net (fitch1.uni2.net [130.227.52.104]) by talvi.dovecot.org (Postfix) with ESMTP id 09078C002801 for ; Tue, 30 Mar 2004 16:33:26 +0300 (EEST) Received: from anders.intranet ([130.227.149.6]) by fitch1.uni2.net (8.12.6/8.11.6) with ESMTP id i2UDSjE1015314 for ; Tue, 30 Mar 2004 15:28:45 +0200 Subject: Re: [Dovecot] Fatal: RAND_bytes() failed From: Anders Nielsen To: Dovecot list In-Reply-To: <1080650729.6246.15.camel@anders.intranet> References: <1080650729.6246.15.camel@anders.intranet> Content-Type: text/plain Message-Id: <1080653325.6246.36.camel@anders.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Tue, 30 Mar 2004 15:28:45 +0200 Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Tue, 30 Mar 2004 16:57:24 +0300 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 13:33:28 -0000 X-UID: 8851 Status: O On Tue, 2004-03-30 at 14:45, Anders Nielsen wrote: > I am using Fedora Core 1 on a SMP i686 box. The bug is filed in bugzilla at https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115284 No solution yet though. -- Anders Nielsen From olive@pasteur.fr Tue Mar 30 19:35:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B1BB1C002800; Tue, 30 Mar 2004 19:35:50 +0300 (EEST) Received: from electre.pasteur.fr (electre.pasteur.fr [157.99.64.120]) by talvi.dovecot.org (Postfix) with ESMTP id 8E4F1C000D9B for ; Tue, 30 Mar 2004 19:35:48 +0300 (EEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by electre.pasteur.fr (8.12.11/8.12.11) with ESMTP id i2UGV7bQ094793 for ; Tue, 30 Mar 2004 18:31:07 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 843423F67E; Tue, 30 Mar 2004 18:31:07 +0200 (CEST) Date: Tue, 30 Mar 2004 18:31:07 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] The Status: header is forced Message-ID: <20040330163107.GS75591@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <20040326163456.GE32306@mafate.sis.pasteur.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040326163456.GE32306@mafate.sis.pasteur.fr> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 16:35:50 -0000 X-UID: 8852 Status: O * Olivier Tharan (20040326 17:34): > I started testing dovecot for our next POP/IMAP server (nearing > production state), and noticed that the Status: header is always > added, with a value of 'O' or 'RO'. This happens in > `lib-index/mbox/mbox-rewrite.c'. This does not seem to happen in > the Maildir case. > > Is the Status: header really needed in every case? This breaks > mutt which displays mails with a 'O' flag instead of 'N'. Well, I fixed it with a procmail rule, as these headers are undoubtedly needed with other MUAs. I did not find any reference on which (IMAP software or mutt) have used this header first. FYI the procmail rule: ,---- | :0 fw: formail.lock | * ^Status: R?O | | ${FORMAIL} -I "Status" `---- -- olive From charlieb-dovecot@e-smith.com Tue Mar 30 21:08:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 716E9C002801; Tue, 30 Mar 2004 21:08:12 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by talvi.dovecot.org (Postfix) with SMTP id A3F52C002800 for ; Tue, 30 Mar 2004 21:08:09 +0300 (EEST) Received: (qmail 28688 invoked from network); 30 Mar 2004 18:03:27 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 30 Mar 2004 18:03:27 -0000 Received: (qmail 29555 invoked by uid 5008); 30 Mar 2004 18:03:27 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 30 Mar 2004 18:03:27 -0000 Date: Tue, 30 Mar 2004 13:03:27 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Olivier Tharan Subject: Re: [Dovecot] The Status: header is forced In-Reply-To: <20040330163107.GS75591@mafate.sis.pasteur.fr> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 18:08:12 -0000 X-UID: 8853 Status: O On Tue, 30 Mar 2004, Olivier Tharan wrote: > * Olivier Tharan (20040326 17:34): > > I started testing dovecot for our next POP/IMAP server (nearing > > production state), and noticed that the Status: header is always > > added, with a value of 'O' or 'RO'. This happens in > > `lib-index/mbox/mbox-rewrite.c'. This does not seem to happen in > > the Maildir case. Nor should it. > > Is the Status: header really needed in every case? This breaks > > mutt which displays mails with a 'O' flag instead of 'N'. Is mutt accessing the mail store directly, or via IMAP? > Well, I fixed it with a procmail rule, as these headers are > undoubtedly needed with other MUAs. Are you sure? If so, they are broken. RFC 2076 identifies the "Status:" header as non-standard. It's used for per-message storage of flags (which is done another way by dovecot with Maildir storage). -- Charlie From redjar@redjar.org Tue Mar 30 21:33:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 305E4C002802; Tue, 30 Mar 2004 21:33:39 +0300 (EEST) Received: from mute.marlboro.edu (mute.marlboro.edu [12.6.230.75]) by talvi.dovecot.org (Postfix) with ESMTP id 32F9DC002801 for ; Tue, 30 Mar 2004 21:33:36 +0300 (EEST) Received: from mdhcp5-230.marlboro.edu ([10.1.5.230]) by mute.marlboro.edu with esmtp (Exim 3.35 #1 (Debian)) id 1B8Nyk-0003Hn-00 for ; Tue, 30 Mar 2004 13:28:50 -0500 Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: 7bit Message-Id: <500E3A5B-8278-11D8-91F7-000393DB639A@redjar.org> Content-Type: text/plain; charset=US-ASCII; format=flowed To: dovecot@dovecot.org From: Jared Date: Tue, 30 Mar 2004 13:30:25 -0500 X-Mailer: Apple Mail (2.613) X-Marlboro-MailScanner: clean X-Marlboro-SpamCheck: not spam, SpamAssassin (score=-4.854, required 7, AWL 0.05, BAYES_00 -4.90) Subject: [Dovecot] dovecot not reconnecting to ldap after ldap restart X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 18:33:39 -0000 X-UID: 8854 Status: O Content-Length: 1500 I upgraded dovecot two weeks ago from 0.99.10-0.rc2 to 0.99.10.4-1woody1 (both from the woody backport packages from braincells.com). Dovecot is using LDAP on a separate machine for authentication. (through stunnel if it matters) At 4:00 am, the LDAP server stops, dumps the ldap database, and then starts back up. Because the LDAP server is stopped, anyone who tries to authenticate during the few seconds will be denied. This isn't a big deal since it's 4:00 am. However, twice in the past two weeks, it appears that if dovecot can't connect to the LDAP server, it loses the ability until dovecot is restarted. It's only happened since I upgraded, and it's only happened twice, presumably when someone was trying to check their mail at the precise moment the LDAP server is down. I get the following entry in mail.err: Mar 30 04:00:18 akbar dovecot-auth: LDAP: ldap_result() failed: Can't contact LDAP server Mar 30 04:00:19 akbar dovecot-auth: LDAP: Can't connect to server: localhost Mar 30 04:00:50 akbar last message repeated 36 times . . . The two times it has happened, ldap is responding properly (all other services we provide which use LDAP still work), stunnel on the dovecot machine is still running, and dovecot is still running, accepting IMAP and POP connections, but failing at the authentication phase. Is there some change or bug in dovecot which would make this happen? Or is there a problem with my set up? Thanks in advance for any ideas. -jared From olive@pasteur.fr Tue Mar 30 23:02:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 05428C002802; Tue, 30 Mar 2004 23:02:25 +0300 (EEST) Received: from electre.pasteur.fr (electre.pasteur.fr [157.99.64.120]) by talvi.dovecot.org (Postfix) with ESMTP id D7C78C002801 for ; Tue, 30 Mar 2004 23:02:22 +0300 (EEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by electre.pasteur.fr (8.12.11/8.12.11) with ESMTP id i2UJvfl3154621 for ; Tue, 30 Mar 2004 21:57:41 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id B0B963F67C; Tue, 30 Mar 2004 21:57:41 +0200 (CEST) Date: Tue, 30 Mar 2004 21:57:41 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] The Status: header is forced Message-ID: <20040330195741.GA83591@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <20040330163107.GS75591@mafate.sis.pasteur.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 20:02:25 -0000 X-UID: 8855 Status: O * Charlie Brady (20040330 13:03): > > > Is the Status: header really needed in every case? This breaks > > > mutt which displays mails with a 'O' flag instead of 'N'. > > Is mutt accessing the mail store directly, or via IMAP? In this case, the mail is fetched with fetchmail and then mutt accesses local mailboxes. > > Well, I fixed it with a procmail rule, as these headers are > > undoubtedly needed with other MUAs. > > Are you sure? If so, they are broken. RFC 2076 identifies the "Status:" > header as non-standard. It's used for per-message storage of flags (which > is done another way by dovecot with Maildir storage). So mutt could be broken then? But, when I fetch mail from my Dovecot server on a local machine, and open the mailbox with mutt, I am most likely to not have seen the mail before, so I do not understand why the Status: should be 'O'. (well I suppose this has been debated before on various lists, so I will dig on my own :) -- olive From olive@pasteur.fr Tue Mar 30 23:22:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 12F40C002802; Tue, 30 Mar 2004 23:22:06 +0300 (EEST) Received: from electre.pasteur.fr (electre.pasteur.fr [157.99.64.120]) by talvi.dovecot.org (Postfix) with ESMTP id E0705C002801 for ; Tue, 30 Mar 2004 23:22:03 +0300 (EEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by electre.pasteur.fr (8.12.11/8.12.11) with ESMTP id i2UKHMZG120930 for ; Tue, 30 Mar 2004 22:17:22 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id A69893F67C; Tue, 30 Mar 2004 22:17:22 +0200 (CEST) Date: Tue, 30 Mar 2004 22:17:22 +0200 From: Olivier Tharan To: Dovecot mailing list Subject: Re: [Dovecot] imap indexing error when moving multiple mails Message-ID: <20040330201722.GB83591@mafate.sis.pasteur.fr> Mail-Followup-To: Dovecot mailing list References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 20:22:06 -0000 X-UID: 8856 Status: O Content-Length: 1196 * Hauke Fath (20040325 15:19): > could be relevant. Anyway - from time to time when I move a bunch of > mails ( < 1) from a mailbox to another (or to the trash), the client > (I've seen it with Eudora 6 on a Mac, with Mozilla 1.6 and Sylpheed > on NetBSD) reports an "internal error" and the maillog shows > > Mar 25 14:07:33 bounce imap-login: Login: hf [130.83.xxx.yyy] > Mar 25 14:07:44 bounce imap(hf): Error indexing mbox file > /home/hf/Mail/Leute/Marc Wirth: LF not found where expected > Mar 25 14:09:30 bounce imap(hf): Error indexing mbox file > /home/hf/Mail/Leute/Marc Wirth: LF not found where expected FWIW, I have the same exact problem. This happens when `expunging' a mbox or QUIT-ting a POP3 session. The consequence is the email is not deleted (good), the next fetchmail will get another, identical message. A non-informative message is displayed according to the mail_storage_set_critical() func in lib-storage/mail-storage.c and the actual error is not logged. Wouldn't there be a problem with the call to this function in lib-storage/index/mbox/mbox-storage.c, line 496? The second argument should be a vprintf() format string. -- olive From jaldhar@debian.org Wed Mar 31 02:24:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3A25FC002802; Wed, 31 Mar 2004 02:24:34 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 17A5BC002801 for ; Wed, 31 Mar 2004 02:24:32 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id BC1D07F7D; Tue, 30 Mar 2004 18:19:50 -0500 (EST) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15866-02; Tue, 30 Mar 2004 18:19:50 -0500 (EST) Received: from [149.123.206.19] (unknown [149.123.206.19]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 514CB7F5F; Tue, 30 Mar 2004 18:19:50 -0500 (EST) Date: Tue, 30 Mar 2004 18:19:44 -0500 (EST) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Jared Subject: Re: [Dovecot] dovecot not reconnecting to ldap after ldap restart In-Reply-To: <500E3A5B-8278-11D8-91F7-000393DB639A@redjar.org> Message-ID: References: <500E3A5B-8278-11D8-91F7-000393DB639A@redjar.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 23:24:34 -0000 X-UID: 8857 Status: O On Tue, 30 Mar 2004, Jared wrote: > Is there some change or bug in dovecot which would make this happen? > Or is there a problem with my set up? > More likely your setup I should think. Why are you using stunnel when Debians LDAP supports SSL/TLS natively? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From skye@f4.ca Wed Mar 31 02:25:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 27D33C002802; Wed, 31 Mar 2004 02:25:54 +0300 (EEST) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id 1737FC002801 for ; Wed, 31 Mar 2004 02:25:52 +0300 (EEST) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1B8SXd-000C6d-00 for dovecot@dovecot.org; Tue, 30 Mar 2004 15:21:09 -0800 Date: Tue, 30 Mar 2004 15:21:09 -0800 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] New indexing code Message-ID: <20040330232109.GA44921@f4.ca> References: <805E92E4-810B-11D8-9E2C-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <805E92E4-810B-11D8-9E2C-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Mar 2004 23:25:54 -0000 X-UID: 8858 Status: O Thanks for the update Timo! I look forward to the production release :) Skye Word on the street is Timo Sirainen said: > Sorry about the lack of replies to questions in this list. Work on the > new indexing code has taken way too long, but it's finally beginning to > be get near usable state. After it's fully working, I'll start being > more active here again. From redjar@redjar.org Wed Mar 31 17:38:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 90FDDC002800; Wed, 31 Mar 2004 17:38:56 +0300 (EEST) Received: from mute.marlboro.edu (mute.marlboro.edu [12.6.230.75]) by talvi.dovecot.org (Postfix) with ESMTP id 31AFDC000D9B for ; Wed, 31 Mar 2004 17:38:54 +0300 (EEST) Received: from mdhcp5-230.marlboro.edu ([10.1.5.230]) by mute.marlboro.edu with esmtp (Exim 3.35 #1 (Debian)) id 1B8gnA-0003tm-00 for ; Wed, 31 Mar 2004 09:34:08 -0500 Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: References: <500E3A5B-8278-11D8-91F7-000393DB639A@redjar.org> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Jared Subject: Re: [Dovecot] dovecot not reconnecting to ldap after ldap restart Date: Wed, 31 Mar 2004 09:35:44 -0500 To: dovecot@dovecot.org X-Mailer: Apple Mail (2.613) X-Marlboro-MailScanner: clean X-Marlboro-SpamCheck: not spam, SpamAssassin (score=-4.855, required 7, AWL 0.04, BAYES_00 -4.90) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 14:38:56 -0000 X-UID: 8859 Status: O Content-Length: 1145 I'm happy to accept suggestions about why my setup would cause this problem, but as I said, the only thing that has changed is the upgrade to dovecot. And both LDAP, and stunnel are working fine with all other services after the LDAP server is restarted. It's been a while since I set everything up, but if I recall correctly, we used stunnel for a couple reasons. The default ldap related woody packages (at least when I set it up) did not have SSL/TLS compiled in. I made my own ldap debs with SSL/TLS support, but we still had problems with SSH using PAM and LDAP with SSL/TLS. The server would freeze. I confirmed this bug with others. I've never had any problems with stunnel. Thanks, -jared On Mar 30, 2004, at 6:19 PM, Jaldhar H. Vyas wrote: > On Tue, 30 Mar 2004, Jared wrote: > >> Is there some change or bug in dovecot which would make this happen? >> Or is there a problem with my set up? >> > > More likely your setup I should think. Why are you using stunnel when > Debians LDAP supports SSL/TLS natively? > > -- > Jaldhar H. Vyas > La Salle Debain - http://www.braincells.com/debian/ > From darren@3x3x3.org Wed Mar 31 19:26:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id ECBFAC002800; Wed, 31 Mar 2004 19:26:54 +0300 (EEST) Received: from 3x3x3.org (dsl092-017-251.sfo4.dsl.speakeasy.net [66.92.17.251]) by talvi.dovecot.org (Postfix) with ESMTP id DA43BC000D9B for ; Wed, 31 Mar 2004 19:26:51 +0300 (EEST) Received: (qmail 1089 invoked by uid 89); 31 Mar 2004 16:17:13 -0000 Received: from unknown (HELO 3x3x3.org) (darrendavid@thebomb.com@10.0.1.3) by 0 with SMTP; 31 Mar 2004 16:17:13 -0000 Message-ID: <406AF032.8050103@3x3x3.org> Date: Wed, 31 Mar 2004 08:22:10 -0800 From: darren david User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Andreas Fuchs Subject: Re: [Dovecot] Re: Rogue child imap processes when using Mac imap clients References: <3FD4B4D2.304@3x3x3.org> <864qw8gxfy.wl%asf@boinkor.net> In-Reply-To: <864qw8gxfy.wl%asf@boinkor.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 16:26:55 -0000 X-UID: 8860 Status: O Content-Length: 2279 hey all- just a ping to see if this ssue has been resolved. it's still popping up for me. Also wondering whose the owner of the OpenBSD port and if we'll be seeing an updated version anytime soon? we're still on 0.99.10.2 as far as i can tell... cheers, darren Andreas Fuchs wrote: > On 2003-12-08, Timo Sirainen wrote: > >>On Dec 8, 2003, at 7:28 PM, darren david wrote: >> >>>I am currently running dovecot 0.99.10p2 on >>>OpenBSD-3.4-snapshot. It has been very stable, but I have recently >>>noticed that I am having problems when checking IMAP-SSL mail with >>>Mac OS X clients. There are not problems using Mozilla or Outlook >>>on Windows, but Mac clients (Thunderbird, Mozilla, Mail.app) all >>>exhibit the same behavior - they can check and send mail, but I end >>>up with a single, rogue child imap process on the server that pins >>>the cpu that i have to 'kill -9' to clear out. >>> >>>Is this a Mac problem or a Dovecot problem? I'm not even sure what >>>to look for in the logs... >> >>Hmm. Check with ktrace what the imap process is doing and send the >>log to me? (I'm not exactly sure how ktrace worked, it was a bit >>weird.) And maybe check with gdb too where it's stuck at (gdb >>/usr/local/lib/dovecot/imap and "bt" command). Or is it imap >>process or imap-login process? > > > Got one (although I'm not sure if this comes from handling a Mac mail > reader): > > 45793 dovecot CALL sendto(0x9,0x11ffac40,0x45,0,0,0) > 45793 dovecot GIO fd 9 wrote 69 bytes > "<19>Dec 10 22:37:15 dovecot: socketpair() failed: Too many open files" > 45793 dovecot RET sendto 69/0x45 > 45793 dovecot CALL socketpair(0x1,0x1,0,0x11ffb9d0) > 45793 dovecot RET socketpair -1 errno 24 Too many open files > 45793 dovecot CALL gettimeofday(0x11ffabf0,0) > 45793 dovecot RET gettimeofday 0 > > This is what's happening on an alpha/freebsd, in a tight loop. > > (FreeBSD s2.enemy.org 4.9-STABLE FreeBSD 4.9-STABLE #1: Mon Nov 24 > 10:37:25 CET 2003 root@s2.enemy.org:/u/src/sys/compile/S2 alpha) > > Unfortunately, I couldn't extract a gdb backtrace. Perhaps you can > work with that until I can get one (should be another 2-4 days) (-: > > >>Anyway, I haven't noticed problems with Mail.app. > > > Thanks a lot, From maikel@ladot.com Wed Mar 31 20:14:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E7809C002800; Wed, 31 Mar 2004 20:14:25 +0300 (EEST) Received: from amsfep18-int.chello.nl (amsfep18-int.chello.nl [213.46.243.13]) by talvi.dovecot.org (Postfix) with ESMTP id 7EDA1C000D9B for ; Wed, 31 Mar 2004 20:14:23 +0300 (EEST) Received: from myst.dohd.org ([62.195.154.6]) by amsfep18-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040331170939.LPCJ8742.amsfep18-int.chello.nl@myst.dohd.org>; Wed, 31 Mar 2004 19:09:39 +0200 Received: from [10.0.3.242] ([10.0.3.242]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i2VINbki000725; Wed, 31 Mar 2004 20:23:38 +0200 (CEST) (envelope-from maikel@ladot.com) Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: <406AF032.8050103@3x3x3.org> References: <3FD4B4D2.304@3x3x3.org> <864qw8gxfy.wl%asf@boinkor.net> <406AF032.8050103@3x3x3.org> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <2C34CF5D-8336-11D8-9047-000A95B3C1CA@ladot.com> Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] Re: Rogue child imap processes when using Mac imap clients Date: Wed, 31 Mar 2004 19:09:30 +0200 To: darren david , dovecot@dovecot.org X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 17:14:26 -0000 X-UID: 8861 Status: O Hi Darren, On Mar 31, 2004, at 6:22 PM, darren david wrote: > hey all- > > just a ping to see if this ssue has been resolved. it's still popping > up for me. Also wondering whose the owner of the OpenBSD port and if > we'll be seeing an updated version anytime soon? we're still on > 0.99.10.2 as far as i can tell... I am running dovecot 0.99.10.4 on FreeBSD 5.2.1-p4, and I use MacOS X 10.3.3 mail.app to connect to the imap + imaps ports. I have no problems I can tell at the moment, all mail that gets in, I see in my client, I can delete and move all I want :) > cheers, > darren > Regards, Maikel Verheijen From rick@activeservice.co.uk Thu Apr 1 01:16:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EC076C002800; Thu, 1 Apr 2004 01:16:04 +0300 (EEST) Received: from mcp.34sp.com (unknown [212.187.158.4]) by talvi.dovecot.org (Postfix) with SMTP id B672CC000D9B for ; Thu, 1 Apr 2004 01:16:02 +0300 (EEST) Received: (qmail 96810 invoked from network); 31 Mar 2004 22:11:18 -0000 Received: from unknown (HELO activeservice.co.uk) (qmailr@62.164.177.174) by softdnserror with SMTP; 31 Mar 2004 22:11:18 -0000 Received: (qmail 10111 invoked from network); 31 Mar 2004 22:11:10 -0000 X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on smithy.activeservice.co.uk Received: from pc-00009.activeservice.co.uk (HELO [192.168.0.9]) (192.168.0.9) by smithy.activeservice.co.uk (192.168.0.1) with ESMTP; 31 Mar 2004 22:11:07 -0000 Date: Wed, 31 Mar 2004 23:11:12 +0100 From: Rick Jones To: dovecot@dovecot.org Message-ID: <94275000.1080774672@[192.168.0.9]> X-Mailer: Mulberry/3.1.2 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: [Dovecot] Mulberry problem X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 22:16:05 -0000 X-UID: 8862 Status: O I've been chasing a problem with Mulberry which now actually seems to be a Dovecot server bug. The problem manifests itself when manipulating embedded rfc822 messages, and the analysis comes down to the fact that a FETCH BODY[2] command returns the same thing as FETCH BODY[2.1]. Both return just the text of the embedded message, whereas FETCH BODY[2] should return everything including the headers (this is what Cyrus Daboo came up with after looking at the Mulberry log). I'm not sure exactly what version of Dovecot I'm running, it's what comes with SME Server 6.0. Has this by any chance been fixed? I have another Mulberry problem which might be related, but I'll save that for another post :) -- Regards Rick Jones From darren@3x3x3.org Thu Apr 1 01:33:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7FC5EC002800; Thu, 1 Apr 2004 01:33:06 +0300 (EEST) Received: from yak.fluid.com (yak.fluid.com [63.76.105.204]) by talvi.dovecot.org (Postfix) with ESMTP id 73D34C000D9B for ; Thu, 1 Apr 2004 01:33:03 +0300 (EEST) Received: from boomstick.fluid.com ([63.76.105.102]) by yak.fluid.com with esmtp (Exim 4.31 #1) id 1B8oAC-0003UP-19; Wed, 31 Mar 2004 14:26:24 -0800 Message-ID: <406B4609.8050202@3x3x3.org> Date: Wed, 31 Mar 2004 14:28:25 -0800 From: darren david User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Maikel Verheijen Subject: Re: [Dovecot] Re: Rogue child imap processes when using Mac imap clients References: <3FD4B4D2.304@3x3x3.org> <864qw8gxfy.wl%asf@boinkor.net> <406AF032.8050103@3x3x3.org> <2C34CF5D-8336-11D8-9047-000A95B3C1CA@ladot.com> In-Reply-To: <2C34CF5D-8336-11D8-9047-000A95B3C1CA@ladot.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 22:33:06 -0000 X-UID: 8863 Status: O Content-Length: 1043 indeed, this is case for me as well -- no obvious problems on the client side. but more often than not checking mail from the Mac (Thunderbird and Mail.app) leaves an 'imap' process running in a loop and consuming all available CPU resources -- i end up 'sudo kill -9'-ing them throughout the day. darren Maikel Verheijen wrote: > Hi Darren, > > On Mar 31, 2004, at 6:22 PM, darren david wrote: > >> hey all- >> >> just a ping to see if this ssue has been resolved. it's still popping >> up for me. Also wondering whose the owner of the OpenBSD port and if >> we'll be seeing an updated version anytime soon? we're still on >> 0.99.10.2 as far as i can tell... > > I am running dovecot 0.99.10.4 on FreeBSD 5.2.1-p4, and I use MacOS X > 10.3.3 mail.app to connect to the imap + imaps ports. I have no problems > I can tell at the moment, all mail that gets in, I see in my client, I > can delete and move all I want :) > >> cheers, >> darren >> > Regards, > > Maikel Verheijen > > > > !DSPAM:406afa4770292045218532! > > From asf@boinkor.net Wed Mar 31 21:42:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E9157C002800; Wed, 31 Mar 2004 21:42:59 +0300 (EEST) Received: from beaver.boinkor.net (beaver.boinkor.net [213.235.219.107]) by talvi.dovecot.org (Postfix) with ESMTP id 1F12CC000D9B for ; Wed, 31 Mar 2004 21:42:57 +0300 (EEST) Received: from beaver.boinkor.net (localhost [IPv6:::1]) by beaver.boinkor.net (8.12.11/8.12.11) with ESMTP id i2VIcCdh003028 for ; Wed, 31 Mar 2004 20:38:13 +0200 (CEST) (envelope-from asf@boinkor.net) Date: Wed, 31 Mar 2004 20:38:12 +0200 Message-ID: <86lllgkgkr.wl%asf@boinkor.net> From: Andreas Fuchs To: dovecot@dovecot.org Subject: Re: [Dovecot] Re: Rogue child imap processes when using Mac imap clients In-Reply-To: <406AF032.8050103@3x3x3.org> References: <3FD4B4D2.304@3x3x3.org> <864qw8gxfy.wl%asf@boinkor.net> <406AF032.8050103@3x3x3.org> User-Agent: Wanderlust/2.11.24 (Wonderwall) Emacs/21.3 Mule/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII X-Mailman-Approved-At: Thu, 01 Apr 2004 02:28:45 +0300 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2004 18:43:00 -0000 X-UID: 8864 Status: O Today, darren david wrote: > hey all- > > just a ping to see if this ssue has been resolved. it's still > popping up for me. Resolved - no, not AFAICT. We resolved to re-start the dovecot process every night, so it's no longer really bad. I couldn't find out more about what is causing the endless recursion. It really looks like dovecot runs out of sockets, then logs that to syslog, fails, tries to log that to syslog, etc. Cheers, -- Andreas Fuchs, , asf@jabber.at, antifuchs From x@xxvii.net Thu Apr 1 14:11:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 868ACC002800; Thu, 1 Apr 2004 14:11:49 +0300 (EEST) Received: from smaug.vex.net (smaug.vex.net [66.246.136.211]) by talvi.dovecot.org (Postfix) with ESMTP id 29DFAC000D9B for ; Thu, 1 Apr 2004 14:11:47 +0300 (EEST) Received: from bee.vii.net (69-90-55-67.fastdsl.ca [69.90.55.67]) by smaug.vex.net (Postfix) with ESMTP id 853E42F65E for ; Thu, 1 Apr 2004 06:06:59 -0500 (EST) Received: by bee.vii.net (Postfix, from userid 1000) id DDE49BD75; Thu, 1 Apr 2004 06:06:29 -0500 (EST) From: Tim Middleton Organization: xxvii.net To: dovecot@dovecot.org Date: Thu, 1 Apr 2004 06:06:29 -0500 User-Agent: KMail/1.6.1 X-Whee: Yes, Please. MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200404010606.29127.x@Vex.Net> Subject: [Dovecot] Failed to create storage with data X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: dovecot@dovecot.org List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 11:11:49 -0000 X-UID: 8865 Status: O Content-Length: 1718 Switched from UW-IMAP to dovecot a little while ago. Worked through the namespace hell with current users. But now I've hit another problem I can't seem to figure out. Some webmail (squirrelmail) users noticed that when they tried to login they would jus get this error: ERROR: ERROR : Connection dropped by imap-server. Query: CAPABILITY I discovered in the mail logs the real error was like this: Apr 1 04:28:38 smaug imap(mcfletch): Invalid mbox file /var/mail/mcfletch: No such file or directory Apr 1 04:28:38 smaug imap(mcfletch): Failed to create storage with data: mbox:/var/mail/mcfletch And the error seems to be quite accurate. These are new logins seeing this error, which do not yet have an mbox file. So the question is, why is dovecot not able to deal with this situation? Searching google i saw the suggestoin to one preson that it was actually the ~/mail directory unable to be created, but this is not the case in my test above, as ~/mail already existed for that account. Directory permissions seem okay. /usr/mail is drwxrwxrwt (note: /var/mail is a symlink to /usr/mail on this system). The dovecot setup is fairly default. Platform is FreeBSD 4.9. Authentication is done via system password file. There's no problem accessing/modifying existing mailboxes. I put in a chron job to touch into existance any non-existing mailboxes for everyone in the passwd file periodically, which mostly eliminates the problem. But I'd still like to know why the server is having the problem, if anyone can make any suggestions. -- Tim Middleton | Cain Gang Ltd | "Are the gods not just?" "Oh no, child. x@veX.net | www.Vex.Net | What would become of us if they were?" (CSL) From charlieb-dovecot@e-smith.com Fri Apr 2 01:43:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 67C69C002800; Fri, 2 Apr 2004 01:43:06 +0300 (EEST) Received: from nssg.mitel.com (mail.e-smith.com [216.191.234.126]) by talvi.dovecot.org (Postfix) with SMTP id 87294C000D9B for ; Fri, 2 Apr 2004 01:43:03 +0300 (EEST) Received: (qmail 14712 invoked from network); 1 Apr 2004 22:31:34 -0000 Received: from allspice-core.nssg.mitel.com (HELO e-smith.com) (10.33.16.12) by tripe.nssg.mitel.com (10.33.17.11) with SMTP; 01 Apr 2004 22:31:34 -0000 Received: (qmail 15085 invoked by uid 5008); 1 Apr 2004 22:31:34 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 1 Apr 2004 22:31:34 -0000 Date: Thu, 1 Apr 2004 17:31:34 -0500 (EST) From: Charlie Brady X-X-Sender: charlieb@allspice.nssg.mitel.com To: Olivier Tharan Subject: Re: [Dovecot] The Status: header is forced In-Reply-To: <20040330195741.GA83591@mafate.sis.pasteur.fr> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 22:43:06 -0000 X-UID: 8866 Status: O Content-Length: 1240 On Tue, 30 Mar 2004, Olivier Tharan wrote: > * Charlie Brady (20040330 13:03): > > > > Is the Status: header really needed in every case? This breaks > > > > mutt which displays mails with a 'O' flag instead of 'N'. > > > > Is mutt accessing the mail store directly, or via IMAP? > > In this case, the mail is fetched with fetchmail and then mutt > accesses local mailboxes. If you want a consistent view, I'd suggest you use IMAP to access the mailboxes. > > > Well, I fixed it with a procmail rule, as these headers are > > > undoubtedly needed with other MUAs. > > > > Are you sure? If so, they are broken. RFC 2076 identifies the "Status:" > > header as non-standard. It's used for per-message storage of flags (which > > is done another way by dovecot with Maildir storage). > > So mutt could be broken then? > > But, when I fetch mail from my Dovecot server on a local machine, > and open the mailbox with mutt, I am most likely to not have seen > the mail before, so I do not understand why the Status: should be > 'O'. I don't think this has much to do with dovecot. -- Charlie A: Because we read from top to bottom, left to right. Q: Why should i start my reply below the quoted text? From eLgino@n3rd.at Thu Apr 1 18:14:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 11C4AC002800; Thu, 1 Apr 2004 18:14:41 +0300 (EEST) Received: from n3rd.at (n3rd.at [80.78.255.52]) by talvi.dovecot.org (Postfix) with ESMTP id 12EA3C000D9B for ; Thu, 1 Apr 2004 18:14:38 +0300 (EEST) Received: (qmail 83761 invoked by uid 80); 1 Apr 2004 15:03:53 -0000 Received: from 192.168.0.5 ([192.168.0.5]) by mail.n3rd.at (IMP) with HTTP for ; Thu, 1 Apr 2004 17:03:52 +0200 Message-ID: <1080831832.406c2f58f039a@mail.n3rd.at> Date: Thu, 1 Apr 2004 17:03:52 +0200 From: eLgino To: "" MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.2 / FreeBSD-4.8 X-Originating-IP: 192.168.0.5 X-Mailman-Approved-At: Fri, 02 Apr 2004 13:36:46 +0300 Subject: [Dovecot] SSL error and PostgreSQL X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: eLgino@n3rd.at List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2004 15:14:41 -0000 X-UID: 8867 Status: O Hello there, Anyone have a Howto for me how i can configure dovecot to work with a PostgreSQL Database? (the docs are small), i want to use it with Exim4 and i have a error with SSL "imap-login: Can't load private key file /var/dovecot/ssl/private/imapd.pem: error:0906D06C:PEM routine:PEM_read_bio:no start line" i make my cert with this command (i don't like the included script :)) openssl req -nodes -new -x509 -keyout imapd.pem -out imapd.pem -days 3650 or openssl req -nodes -new -x509 -out imapd.pem -days 3650 the pem is file is in the right directory and have "a chmod 700,777 or 600" no one of the this will work. sorry for my poor english and thanks in advance From maikel@ladot.com Fri Apr 2 13:49:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 46619C002800; Fri, 2 Apr 2004 13:49:53 +0300 (EEST) Received: from amsfep18-int.chello.nl (amsfep18-int.chello.nl [213.46.243.13]) by talvi.dovecot.org (Postfix) with ESMTP id E103AC000D9B for ; Fri, 2 Apr 2004 13:49:50 +0300 (EEST) Received: from myst.dohd.org ([62.195.154.6]) by amsfep18-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040402104503.IPTW8742.amsfep18-int.chello.nl@myst.dohd.org>; Fri, 2 Apr 2004 12:45:03 +0200 Received: from [172.31.5.88] (pool-5.ladot.com [217.22.64.98]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i32Bx5ki011597; Fri, 2 Apr 2004 13:59:10 +0200 (CEST) (envelope-from maikel@ladot.com) In-Reply-To: <1080831832.406c2f58f039a@mail.n3rd.at> References: <1080831832.406c2f58f039a@mail.n3rd.at> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] SSL error and PostgreSQL Date: Fri, 2 Apr 2004 12:44:54 +0200 To: eLgino@n3rd.at X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 10:49:53 -0000 X-UID: 8868 Status: O Content-Length: 1148 In the docs dir, there is a sample configuration for a postgres connection with dovecot: ls dovecot-0.99.10.4/doc/dovecot-pgsql.conf dovecot-0.99.10.4/doc/dovecot-pgsql.conf In your dovecot.conf file you point to this file as followed: auth_passdb = pgsql /usr/local/etc/dovecot-pgsql.conf auth_userdb = pgsql /usr/local/etc/dovecot-pgsql.conf Kind regards, Maikel Verheijen On Apr 1, 2004, at 5:03 PM, eLgino wrote: > Hello there, > > Anyone have a Howto for me how i can configure dovecot to work with a > PostgreSQL > Database? (the docs are small), i want to use it with Exim4 > > and i have a error with SSL > "imap-login: Can't load private key file > /var/dovecot/ssl/private/imapd.pem: > error:0906D06C:PEM routine:PEM_read_bio:no start line" > > i make my cert with this command (i don't like the included script :)) > openssl req -nodes -new -x509 -keyout imapd.pem -out imapd.pem -days > 3650 > or > openssl req -nodes -new -x509 -out imapd.pem -days 3650 > > the pem is file is in the right directory and have "a chmod 700,777 or > 600" no > one of the this will work. > > sorry for my poor english and thanks in advance From redjar@redjar.org Fri Apr 2 18:17:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 61EC6C002800; Fri, 2 Apr 2004 18:17:49 +0300 (EEST) Received: from mute.marlboro.edu (mute.marlboro.edu [12.6.230.75]) by talvi.dovecot.org (Postfix) with ESMTP id 244ADC000D9B for ; Fri, 2 Apr 2004 18:17:46 +0300 (EEST) Received: from mdhcp5-230.marlboro.edu ([10.1.5.230]) by mute.marlboro.edu with esmtp (Exim 3.35 #1 (Debian)) id 1B9QLn-0006uc-00 for ; Fri, 02 Apr 2004 10:12:55 -0500 Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: <500E3A5B-8278-11D8-91F7-000393DB639A@redjar.org> References: <500E3A5B-8278-11D8-91F7-000393DB639A@redjar.org> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <7191B064-84B8-11D8-A343-000393DB639A@redjar.org> Content-Transfer-Encoding: 7bit From: Jared Subject: Re: [Dovecot] dovecot not reconnecting to ldap after ldap restart Date: Fri, 2 Apr 2004 10:14:32 -0500 To: dovecot@dovecot.org X-Mailer: Apple Mail (2.613) X-Marlboro-MailScanner: clean X-Marlboro-SpamCheck: not spam, SpamAssassin (score=-4.861, required 7, AWL 0.04, BAYES_00 -4.90) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 15:17:49 -0000 X-UID: 8869 Status: O Content-Length: 2451 I've taken some time to try to reproduce my problem on my sandbox. I was able to consistently reproduce it... In the following scenario: dovecot -> stunnel -> ldap server when the ldap server is restarted, dovecot can no longer connect to the LDAP server through stunnel. When I have dovecot connect directly to the ldap server (without SSL/TLS) and restart the server, dovecot works properly. It can continue to authenticate when the LDAP server becomes available again. So I'd like to try to not use stunnel with dovecot. But how do I configure dovecot-ldap.conf to connect directly to the LDAP server with SSL/TLS? I've tried: hosts = ldaps://ldap.server.com and hosts = ldap.server.com:636 But neither work. I didn't see another directive to use to turn SSL/TLS on in the conf file or in the docs. Thanks, -jared On Mar 30, 2004, at 1:30 PM, Jared wrote: > I upgraded dovecot two weeks ago from 0.99.10-0.rc2 to > 0.99.10.4-1woody1 (both from the woody backport packages from > braincells.com). > > Dovecot is using LDAP on a separate machine for authentication. > (through stunnel if it matters) > > At 4:00 am, the LDAP server stops, dumps the ldap database, and then > starts back up. Because the LDAP server is stopped, anyone who tries > to authenticate during the few seconds will be denied. This isn't a > big deal since it's 4:00 am. However, twice in the past two weeks, it > appears that if dovecot can't connect to the LDAP server, it loses the > ability until dovecot is restarted. It's only happened since I > upgraded, and it's only happened twice, presumably when someone was > trying to check their mail at the precise moment the LDAP server is > down. > > I get the following entry in mail.err: > > Mar 30 04:00:18 akbar dovecot-auth: LDAP: ldap_result() failed: Can't > contact LDAP server > Mar 30 04:00:19 akbar dovecot-auth: LDAP: Can't connect to server: > localhost > Mar 30 04:00:50 akbar last message repeated 36 times > . > . > . > > The two times it has happened, ldap is responding properly (all other > services we provide which use LDAP still work), stunnel on the dovecot > machine is still running, and dovecot is still running, accepting IMAP > and POP connections, but failing at the authentication phase. > > Is there some change or bug in dovecot which would make this happen? > Or is there a problem with my set up? > > Thanks in advance for any ideas. > > -jared > From asmoore@edge.net Fri Apr 2 20:49:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E0350C002800; Fri, 2 Apr 2004 20:49:30 +0300 (EEST) Received: from sccrmhc13.comcast.net (sccrmhc13.comcast.net [204.127.202.64]) by talvi.dovecot.org (Postfix) with ESMTP id 94191C000D9B for ; Fri, 2 Apr 2004 20:49:28 +0300 (EEST) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (sccrmhc13) with ESMTP id <20040402174429016003etbte>; Fri, 2 Apr 2004 17:44:39 +0000 Received: from sws602 (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.11+Sun/8.12.11) with SMTP id i32HiSRv012312 for ; Fri, 2 Apr 2004 11:44:28 -0600 (CST) Date: Fri, 2 Apr 2004 11:44:28 -0600 From: Alex S Moore To: dovecot mailing list Message-Id: <20040402114428.3497f608@sws602> X-Mailer: Sylpheed version 0.9.10claws36-csw (GTK+ 1.2.10; sparc-sun-solaris2.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.68-1, clamav-milter version 0.67a Subject: [Dovecot] RE: Missed config option X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 17:49:31 -0000 X-UID: 8870 Status: O I am trying to sync a set of maildir folders from a dovecot server and a different imap server on a different host. Using a perl tool called imapsync. The tool says the following about the two servers capabilities: >From capability : IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED To capability : IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION No NAMESPACE capability in imap server sws601.mcsun.local Give the separator character with the --sep1 option The From server sws601.mcsun.local is dovecot. What did I miss that causes the NAMESPACE capability to not be seen from dovecot? What is the separator character? Thanks, Alex -- From asmoore@edge.net Fri Apr 2 21:21:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 967A4C002800; Fri, 2 Apr 2004 21:21:01 +0300 (EEST) Received: from sccrmhc11.comcast.net (sccrmhc11.comcast.net [204.127.202.55]) by talvi.dovecot.org (Postfix) with ESMTP id 62EAAC000D9B for ; Fri, 2 Apr 2004 21:20:59 +0300 (EEST) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (sccrmhc11) with ESMTP id <2004040218160301100c3oame>; Fri, 2 Apr 2004 18:16:08 +0000 Received: from sws602 (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.11+Sun/8.12.11) with SMTP id i32IG2uU012468 for ; Fri, 2 Apr 2004 12:16:02 -0600 (CST) Date: Fri, 2 Apr 2004 12:16:02 -0600 From: Alex S Moore To: dovecot@dovecot.org Subject: Re: [Dovecot] RE: Missed config option Message-Id: <20040402121602.799a6530@sws602> In-Reply-To: <20040402114428.3497f608@sws602> References: <20040402114428.3497f608@sws602> X-Mailer: Sylpheed version 0.9.10claws36-csw (GTK+ 1.2.10; sparc-sun-solaris2.8) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.68-1, clamav-milter version 0.67a X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 18:21:01 -0000 X-UID: 8871 Status: O On Fri, 2 Apr 2004 11:44:28 -0600 Alex S Moore wrote: > The tool says the following about the two servers capabilities: > From capability : IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED > To capability : IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION > No NAMESPACE capability in imap server sws601.mcsun.local > Give the separator character with the --sep1 option > > The From server sws601.mcsun.local is dovecot. What did I miss that causes the NAMESPACE capability to not be seen from dovecot? What is the separator character? Well, duh. The separator character must be '.' I still have the NAMESPACE question. Thanks, Alex From mike@skew.org Sat Apr 3 02:36:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 29D48C002800; Sat, 3 Apr 2004 02:36:02 +0300 (EEST) Received: from chilled.skew.org (skew.org [65.101.207.237]) by talvi.dovecot.org (Postfix) with ESMTP id 69024C000D9B for ; Sat, 3 Apr 2004 02:35:59 +0300 (EEST) Received: from chilled.skew.org (localhost.skew.org [127.0.0.1]) by chilled.skew.org (8.12.9p2/8.12.9) with ESMTP id i32NVGOx024985 for ; Fri, 2 Apr 2004 16:31:17 -0700 (MST) (envelope-from mike@chilled.skew.org) Received: (from mike@localhost) by chilled.skew.org (8.12.9p2/8.12.9/Submit) id i32NVG03024984 for dovecot@dovecot.org; Fri, 2 Apr 2004 16:31:16 -0700 (MST) (envelope-from mike) From: Mike Brown Message-Id: <200404022331.i32NVG03024984@chilled.skew.org> To: dovecot@dovecot.org Date: Fri, 2 Apr 2004 16:31:16 -0700 (MST) X-Whoa: whoa. X-Mailer: ELM [version 2.4ME+ PL90 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Subject: [Dovecot] passwd-file maintenance by users, other options X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 23:36:02 -0000 X-UID: 8872 Status: O Content-Length: 1396 I am using Dovecot to provide IMAP and IMAP+SSL service for my users, but am still using QPopper for POP3 service, wrapped with stunnel for POP3+SSL. I am hesitant to get rid of QPopper because it supports APOP, which encrypts authentication data (both where it is stored, and when it is transmitted), and because APOP passwords can be managed by the users themselves, via the popauth tool that they can run from their shell accounts. I'd like very much to use Dovecot for POP3, but would need to have it be comparable to APOP, where authentication does not involve having user passwords going across the wire in the clear, and especially I need for users to be able to maintain their passwords themselves, preferably with their status as a current user of the system being established without my intervention; I don't want to have to manually keep things in sync with /etc/passwd. Furthermore, it needs to have no conflicts with popular email clients including Mozilla, Outlook, Outlook Express, and Eudora, so unusual authentication mechanisms are not really an option. I've RTFM at http://www.dovecot.org/doc/auth.txt but I don't know how to establish a separate passwd file that would satisfy the requirement that users be able to maintain their passwords themselves. And PAM is a complete mystery to me. So what do you all do? Is there a tutorial somewhere that would help? Thanks, M. From bhills@openshores.com Sat Apr 3 08:43:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 608CBC002800; Sat, 3 Apr 2004 08:43:20 +0300 (EEST) Received: from mail.openshores.com (mail.openshores.com [142.179.111.153]) by talvi.dovecot.org (Postfix) with ESMTP id DB826C000D9B for ; Sat, 3 Apr 2004 08:43:17 +0300 (EEST) Received: from [192.168.1.34] (unixtop.openshores.local [192.168.1.34]) by mail.openshores.com (Postfix) with ESMTP id 676B577876 for ; Fri, 2 Apr 2004 21:59:15 -0800 (PST) From: Brent Hills To: dovecot@dovecot.org Content-Type: text/plain Message-Id: <1080970707.1962.56.camel@unixtop.openshores.local> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-1) Date: Fri, 02 Apr 2004 21:38:27 -0800 Content-Transfer-Encoding: 7bit Subject: [Dovecot] imap errors filtering folders with evolution X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Apr 2004 05:43:20 -0000 X-UID: 8873 Status: O Hello, I posted earlier to the Ximian Evolution Users list. It was suggested I follow up in relation to dovecot. They also indicated the timestamp in the error message was coming from dovecot. When filtering a folder on a dovecot (0.99.10) imap server with Evolution version 1.46 I receive: Error while 'Filtering Folder' Imap command failed internal error [YYYY-MM-DD HH:MM:SS] The timestamp seems to be the current time. The filters used are primarily move to folder where the destination folder is another imap folder on the same server. The error can be reproduced reliably if I select a large number of email to filter. There are about 10 filters all moving to different folders based on criteria. If I select smaller number of email the error occurs but less predictably. Eventually, it will filter all the email so its not a particular one that it hangs up on. Is anyone familiar with this issue? Brent Hills. From maikel@ladot.com Sat Apr 3 13:20:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 66615C002800; Sat, 3 Apr 2004 13:20:44 +0300 (EEST) Received: from amsfep16-int.chello.nl (amsfep16-int.chello.nl [213.46.243.26]) by talvi.dovecot.org (Postfix) with ESMTP id 9300FC000D9B for ; Sat, 3 Apr 2004 13:20:41 +0300 (EEST) Received: from myst.dohd.org ([62.195.154.6]) by amsfep16-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040403101551.SFVN26437.amsfep16-int.chello.nl@myst.dohd.org>; Sat, 3 Apr 2004 12:15:51 +0200 Received: from [10.0.3.242] ([10.0.3.242]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i33BTxki017725; Sat, 3 Apr 2004 13:29:59 +0200 (CEST) (envelope-from maikel@ladot.com) In-Reply-To: <200404022331.i32NVG03024984@chilled.skew.org> References: <200404022331.i32NVG03024984@chilled.skew.org> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] passwd-file maintenance by users, other options Date: Sat, 3 Apr 2004 12:15:46 +0200 To: Mike Brown X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Apr 2004 10:20:44 -0000 X-UID: 8874 Status: O Content-Length: 1275 Hi Mike, On Apr 3, 2004, at 1:31 AM, Mike Brown wrote: > I've RTFM at http://www.dovecot.org/doc/auth.txt but I don't know how > to > establish a separate passwd file that would satisfy the requirement > that users > be able to maintain their passwords themselves. And PAM is a complete > mystery > to me. Why don't you move to a database instead of having a password file? If you use a database, you could easily write a php-web-interface for your users where they can update or change their passwords. The only thing you won't solve is the APOP issue, but since you already support IMAP as well, why no allow pop3 too? Almost all clients support ssl connections to both pop3 and imap, so why bother with the password being sent plain-text over the wire? > > So what do you all do? Is there a tutorial somewhere that would help? We use dovecot with postgresql as a database backend, we have no tutorial, but in the wiki of dovecot there was a tutorial on how to get both dovecot and postfix to read a postgresql database: http://wiki.dovecot.org/moin.cgi/DovecotPostgresql The virtual user stuff in postfix is something you might not need, but it does describe the setup of dovecot for postgresql. > > Thanks, > > M. > Kind regards, Maikel Verheijen. From rick@activeservice.co.uk Sat Apr 3 19:22:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A489BC002800; Sat, 3 Apr 2004 19:22:14 +0300 (EEST) Received: from mcp.34sp.com (unknown [212.187.158.4]) by talvi.dovecot.org (Postfix) with SMTP id 4E0C9C000D9B for ; Sat, 3 Apr 2004 19:22:12 +0300 (EEST) Received: (qmail 65181 invoked from network); 3 Apr 2004 16:17:10 -0000 Received: from unknown (HELO activeservice.co.uk) (qmailr@62.164.179.224) by softdnserror with SMTP; 3 Apr 2004 16:17:10 -0000 Received: (qmail 14435 invoked from network); 3 Apr 2004 16:17:00 -0000 X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on smithy.activeservice.co.uk Received: from pc-00009.activeservice.co.uk (HELO [192.168.0.9]) (192.168.0.9) by smithy.activeservice.co.uk (192.168.0.1) with ESMTP; 03 Apr 2004 16:16:58 -0000 Date: Sat, 03 Apr 2004 17:17:03 +0100 From: Rick Jones To: dovecot@dovecot.org Message-ID: <332239094.1081012623@[192.168.0.9]> X-Mailer: Mulberry/3.1.2 (Win32) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==========965F6D25956CBB30EC6F==========" Cc: tss@iki.fi Subject: [Dovecot] Bug fix - message/rfc822 attachments X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Apr 2004 16:22:14 -0000 X-UID: 8875 Status: O Content-Length: 2761 --==========965F6D25956CBB30EC6F========== Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Greetings I've attached a patch that fixes a bug in Dovecot relating to rfc822 attachments. This problem shows up in Mulberry (which hammers the IMAP protocol more than most!). The problem is that FETCH BODY[n], where "n" is the number for the message/rfc822 part, returns the wrong information. It returns the message without the headers, whereas it should return the entire rfc822 attachment. FETCH BODY[n.MIME] doesn't appear to return the MIME headers for the part either. This happens because the find_part() function always steps down into the child when the type of the part is RFC822. It should only do this if the request is for a sub-part, or for HEADER. Otherwise it should stay at the current level. I have to say the IMAP protocol is a bit perverse in the way implicit nesting of rfc822 messages is handled, which is why this looks somewhat hacky. I don't see a nicer way though. The effect in Mulberry is that certain operations on rfc822 attachments don't work properly, in particular extracting the attachment into a separate message. It also affects message-digest format messages, which will completely lock up Mulberry if one is even present in a mailbox. (It may be that Dovecot itself hangs, I don't know. Once I found that the patch fixed both problems I didn't look any further :) Mulberry doesn't exhibit these problems with other IMAP servers. The attached patch is for the source code of 0.99.10.04. I've looked at the "latest" source, and there is no change in these lines of code, so I guess the bug is still there. -- Best regards Rick Jones --==========965F6D25956CBB30EC6F========== Content-Type: application/octet-stream; name="imap-fetch-body-section.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="imap-fetch-body-section.patch"; size=527 LS0tIG9yaWcvaW1hcC1mZXRjaC1ib2R5LXNlY3Rpb24uYwlNb24gTm92IDEwIDE4OjI4OjA1IDIw MDMKKysrIC4vaW1hcC1mZXRjaC1ib2R5LXNlY3Rpb24uYwlTYXQgQXByICAzIDE1OjMxOjQxIDIw MDQKQEAgLTQ0Nyw4ICs0NDcsMTAgQEAKIAkJfQogCiAJCWlmIChwYXJ0ICE9IE5VTEwgJiYKLQkJ ICAgIChwYXJ0LT5mbGFncyAmIE1FU1NBR0VfUEFSVF9GTEFHX01FU1NBR0VfUkZDODIyKSkgewot CQkJLyogc2tpcCB0aGUgbWVzc2FnZS9yZmM4MjIgcGFydCAqLworCQkgICAgKHBhcnQtPmZsYWdz ICYgTUVTU0FHRV9QQVJUX0ZMQUdfTUVTU0FHRV9SRkM4MjIpICYmCisJCSAgICAoKnBhdGggPj0g JzAnICYmICpwYXRoIDw9ICc5JyB8fCBzdHJuY21wKHBhdGgsICJIRUFERVIiLCA2KSA9PSAwKSkg eworCQkJLyogaWYgcmVtYWluZGVyIG9mIHBhdGggaXMgYSBudW1iZXIgb3IgIkhFQURFUiIsCisJ CQkJc2tpcCB0aGUgbWVzc2FnZS9yZmM4MjIgcGFydCAqLwogCQkJcGFydCA9IHBhcnQtPmNoaWxk cmVuOwogCQl9CiAJfQo= --==========965F6D25956CBB30EC6F==========-- From esj@harvee.org Sun Apr 4 08:33:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B195BC002800; Sun, 4 Apr 2004 08:33:19 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by talvi.dovecot.org (Postfix) with ESMTP id 8BC6AC000D9B for ; Sun, 4 Apr 2004 08:33:15 +0300 (EEST) Received: from harvee.org (harvee.org [127.0.0.1]) by harvee.org (8.12.8/8.12.8) with ESMTP id i345QZCe000719; Sun, 4 Apr 2004 00:28:22 -0500 Received: FROM harvee.org ([192.168.0.54]) BY harvee.org WITH ESMTP ; Sun, 4 Apr 2004 00:26:30 -0500 Message-ID: <406F9C77.4060701@harvee.org> Date: Sun, 04 Apr 2004 00:26:15 -0500 From: "Eric S. Johansson" User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Maikel Verheijen Subject: Re: [Dovecot] passwd-file maintenance by users, other options References: <200404022331.i32NVG03024984@chilled.skew.org> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:040404:maikel@ladot.com:01e52e363923e369 X-Hashcash: 0:040404:mike@skew.org:356cc5cb4157d39f X-Hashcash: 0:040404:dovecot@dovecot.org:367f51488eacea22 Cc: Mike Brown , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Apr 2004 05:33:20 -0000 X-UID: 8876 Status: O Maikel Verheijen wrote: > Why don't you move to a database instead of having a password file? If > you use a database, you could easily write a php-web-interface for your > users where they can update or change their passwords. I have a real problem suggesting using databases for something as simple as a password file. kind of like using a bulldozer to park your car. cam be done but usually causes a boatload of damage and a great deal of regret. a simple dbm file is sufficent for this task. gdbm seems to be reasonable instance. > The only thing you won't solve is the APOP issue, but since you already > support IMAP as well, why no allow pop3 too? Almost all clients support > ssl connections to both pop3 and imap, so why bother with the password > being sent plain-text over the wire? very good sugestion. a great tool for generating and managing certs in the small is tinyca. http://tinyca.sm-zone.net/ --- eric From m_pahlevanzadeh@yahoo.com Mon Apr 5 03:44:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BBF62C000D9D; Mon, 5 Apr 2004 03:44:31 +0300 (EEST) Received: from web21408.mail.yahoo.com (web21408.mail.yahoo.com [216.136.232.78]) by talvi.dovecot.org (Postfix) with SMTP id 8C720C000D9B for ; Mon, 5 Apr 2004 03:44:28 +0300 (EEST) Message-ID: <20040405003919.45988.qmail@web21408.mail.yahoo.com> Received: from [217.218.155.70] by web21408.mail.yahoo.com via HTTP; Sun, 04 Apr 2004 17:39:19 PDT Date: Sun, 4 Apr 2004 17:39:19 -0700 (PDT) From: Pahlevanzadeh Mohsen To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] User authentication X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Apr 2004 00:44:31 -0000 X-UID: 8877 Status: O Hi. I installed IMP webmail. I had use MySQL authentication for IMAP. Can i use MySQL for dovecot-imap server? Please guide me.... Yours,Mohsen. ===== ---------DIGITAL SIGNATURE------------------- ///Mohsen Pahlevanzadeh//////// Network administrator & programmer My work phone is : +98216054096-7 My home phone is: +98213810146 My emails is m_pahlevanzadeh@yahoo.com My website is: http://webnegar.net ---------------------------------------------------------------- __________________________________ Do you Yahoo!? Yahoo! Small Business $15K Web Design Giveaway http://promotions.yahoo.com/design_giveaway/ From cube@NetBSD.org Mon Apr 5 10:00:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A111AC000D9D; Mon, 5 Apr 2004 10:00:28 +0300 (EEST) Received: from s2.relay.oleane.net (s2.relay.oleane.net [195.25.12.49]) by talvi.dovecot.org (Postfix) with ESMTP id 3918BC000D9B for ; Mon, 5 Apr 2004 10:00:26 +0300 (EEST) Received: from brest.eve-team.com ([194.250.174.227]) by s2.relay.oleane.net with ESMTP id i356srT0096537 for ; Mon, 5 Apr 2004 08:55:09 +0200 (CEST) Received: from vidal.eve (vidal.eve [192.168.1.77]) by brest.eve-team.com (Postfix) with SMTP id 55D88686E9 for ; Mon, 5 Apr 2004 08:55:15 +0200 (CEST) Date: Mon, 5 Apr 2004 08:55:14 +0200 From: Quentin Garnier To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot not reconnecting to ldap after ldap restart Message-Id: <20040405085514.66f44477@vidal.eve> In-Reply-To: <7191B064-84B8-11D8-A343-000393DB639A@redjar.org> References: <500E3A5B-8278-11D8-91F7-000393DB639A@redjar.org> <7191B064-84B8-11D8-A343-000393DB639A@redjar.org> Organization: NetBSD X-Mailer: Sylpheed version 0.9.10claws (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Mon__5_Apr_2004_08_55_14_+0200_aJF=L2ve.C0NOBOB" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Apr 2004 07:00:28 -0000 X-UID: 8878 Status: O Content-Length: 3023 This is a multi-part message in MIME format. --Multipart=_Mon__5_Apr_2004_08_55_14_+0200_aJF=L2ve.C0NOBOB Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Fri Apr 2 18:17:50 2004 redjar at redjar.org (Jared) wrote: [...] > So I'd like to try to not use stunnel with dovecot. But how do I > configure dovecot-ldap.conf to connect directly to the LDAP server > with SSL/TLS? > > I've tried: > > hosts = ldaps://ldap.server.com > and > hosts = ldap.server.com:636 > > But neither work. > > I didn't see another directive to use to turn SSL/TLS on in the conf > file or in the docs. There is no way in current dovecot source. I hit the same issue when I tested dovecot. I'm attaching the patches that I have in my local pkgsrc tree. What they do is: 1. Change default value for 'hosts' to NULL instead of 'localhost'. That way, libldap will choose the default list of server as specified in OpenLDAP's ldap.conf configuration file. 2. Add a new configuration stance, 'uris', which you can set to a list of URIs that will be passed directly to libldap, which understands them. I hope the patches will be included in dovecot tree, however it might be best to fall back on 'hosts' value if using'uris' fails. In my patch, 'hosts' is ignored if 'uris' is filled in. Quentin Garnier. --Multipart=_Mon__5_Apr_2004_08_55_14_+0200_aJF=L2ve.C0NOBOB Content-Type: text/plain; name="patch-ae" Content-Disposition: attachment; filename="patch-ae" Content-Transfer-Encoding: 7bit $NetBSD$ --- src/auth/db-ldap.c.orig Sat Nov 8 16:29:20 2003 +++ src/auth/db-ldap.c @@ -26,6 +26,7 @@ static struct setting_def setting_defs[] = { DEF(SET_STR, hosts), + DEF(SET_STR, uris), DEF(SET_STR, dn), DEF(SET_STR, dnpass), DEF(SET_STR, deref), @@ -42,7 +43,8 @@ static struct setting_def setting_defs[] }; struct ldap_settings default_ldap_settings = { - MEMBER(hosts) "localhost", + MEMBER(hosts) NULL, + MEMBER(uris) NULL, MEMBER(dn) NULL, MEMBER(dnpass) NULL, MEMBER(deref) "never", @@ -178,7 +180,12 @@ static int ldap_conn_open(struct ldap_co return TRUE; if (conn->ld == NULL) { - conn->ld = ldap_init(conn->set.hosts, LDAP_PORT); + if (conn->set.uris != NULL) { + if (ldap_initialize(&conn->ld, conn->set.uris) != LDAP_SUCCESS) + conn->ld = NULL; + } else + conn->ld = ldap_init(conn->set.hosts, LDAP_PORT); + if (conn->ld == NULL) i_fatal("LDAP: ldap_init() failed with hosts: %s", conn->set.hosts); --Multipart=_Mon__5_Apr_2004_08_55_14_+0200_aJF=L2ve.C0NOBOB Content-Type: text/plain; name="patch-af" Content-Disposition: attachment; filename="patch-af" Content-Transfer-Encoding: 7bit $NetBSD$ --- src/auth/db-ldap.h.orig Thu Mar 20 16:46:33 2003 +++ src/auth/db-ldap.h @@ -12,6 +12,7 @@ typedef void db_search_callback_t(struct struct ldap_settings { const char *hosts; + const char *uris; const char *dn; const char *dnpass; const char *deref; --Multipart=_Mon__5_Apr_2004_08_55_14_+0200_aJF=L2ve.C0NOBOB-- From glenn-dovecot@delink.net Mon Apr 5 17:38:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D5804C000D9D; Mon, 5 Apr 2004 17:38:22 +0300 (EEST) Received: from a.mx.delink.net (delink.is-a-geek.net [207.166.198.225]) by talvi.dovecot.org (Postfix) with ESMTP id 0D96CC000D9B for ; Mon, 5 Apr 2004 17:38:19 +0300 (EEST) Received: (qmail 16350 invoked by uid 1000); 5 Apr 2004 14:33:23 -0000 Date: Mon, 5 Apr 2004 10:33:23 -0400 From: Brian T Glenn To: dovecot@dovecot.org Message-ID: <20040405143323.GA16326@delink.net> Mail-Followup-To: dovecot@dovecot.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="VbJkn9YxBvnuCH5J" Content-Disposition: inline X-Operating-System: Linux ziege 2.6.3 X-MTA: qmail-1.03 User-Agent: Mutt/1.5.4i Subject: [Dovecot] dovecot not staying up X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Apr 2004 14:38:23 -0000 X-UID: 8879 Status: O Content-Length: 1184 --VbJkn9YxBvnuCH5J Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable I found one reference to this in the archives via google, but the=20 assistance offered there did not resolve the problem. I am getting the=20 following in the logs: Apr 5 10:21:25 ziegchen dovecot: Dovecot starting up Apr 5 10:21:26 ziegchen dovecot: Auth process died too early - shutting do= wn Apr 5 10:21:26 ziegchen dovecot: child 30091 (auth) returned error 127 Apr 5 10:21:26 ziegchen imap-login: fd_send(-1) failed: Broken pipe This is with SSL on or off, I have tried building the source many=20 different ways, but it behaves the same every time. I even copied the=20 config from a working installation and tried it with that, but to no=20 avail. Any insight would be appreciated. --=20 Brian T Glenn delink.net Internet Services --VbJkn9YxBvnuCH5J Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAcW4zFy/L+4MovqIRAuCqAKCXj009f+9CVw0AM66XSrIGW6KIXACgie2U jiYLQr2XHoZBm9evTdwFgow= =mVOX -----END PGP SIGNATURE----- --VbJkn9YxBvnuCH5J-- From freebsd@helenmarks.co.uk Mon Apr 5 18:03:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 91421C000D9D; Mon, 5 Apr 2004 18:03:40 +0300 (EEST) Received: from mail.helenmarks.co.uk (mail.helenmarks.co.uk [82.68.196.22]) by talvi.dovecot.org (Postfix) with ESMTP id 61E0EC000D9B for ; Mon, 5 Apr 2004 18:03:38 +0300 (EEST) Received: from [192.168.0.3] (82-69-49-2.dsl.in-addr.zen.co.uk [82.69.49.2]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.helenmarks.co.uk (Postfix) with ESMTP id DE2BA17180; Mon, 5 Apr 2004 15:58:41 +0100 (BST) From: Dominic Marks To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot not staying up Date: Mon, 5 Apr 2004 15:59:08 +0100 User-Agent: KMail/1.6.1 References: <20040405143323.GA16326@delink.net> In-Reply-To: <20040405143323.GA16326@delink.net> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200404051559.08502.freebsd@helenmarks.co.uk> Cc: glenn-dovecot@delink.net X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Apr 2004 15:03:40 -0000 X-UID: 8880 Status: O Content-Length: 1037 On Monday 05 April 2004 15:33, Brian T Glenn wrote: > I found one reference to this in the archives via google, but the > assistance offered there did not resolve the problem. I am getting > the following in the logs: > > Apr 5 10:21:25 ziegchen dovecot: Dovecot starting up > Apr 5 10:21:26 ziegchen dovecot: Auth process died too early - What does your dovecot.conf look like? > shutting down Apr 5 10:21:26 ziegchen dovecot: child 30091 (auth) > returned error 127 Apr 5 10:21:26 ziegchen imap-login: fd_send(-1) > failed: Broken pipe > > This is with SSL on or off, I have tried building the source many > different ways, but it behaves the same every time. I even copied > the config from a working installation and tried it with that, but > to no avail. Any insight would be appreciated. What operating system are you using? Thanks, -- Dominic Marks 'We have a very simple system in Libya. We have a very open, democratic system - it's like a great big circle, and there in the middle is me.' -- Colonel Gaddafi, 2004 From glenn-dovecot@delink.net Tue Apr 6 05:29:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BA72BC000D9D; Tue, 6 Apr 2004 05:29:17 +0300 (EEST) Received: from a.mx.delink.net (delink.is-a-geek.net [207.166.198.225]) by talvi.dovecot.org (Postfix) with ESMTP id D76E0C000D9B for ; Tue, 6 Apr 2004 05:29:13 +0300 (EEST) Received: (qmail 23068 invoked by uid 1000); 6 Apr 2004 02:24:16 -0000 Date: Mon, 5 Apr 2004 22:24:16 -0400 From: Brian T Glenn To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot not staying up Message-ID: <20040406022415.GI18230@delink.net> Mail-Followup-To: dovecot@dovecot.org References: <20040405143323.GA16326@delink.net> <200404051559.08502.freebsd@helenmarks.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200404051559.08502.freebsd@helenmarks.co.uk> X-Operating-System: Linux ziege 2.6.3 X-MTA: qmail-1.03 User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2004 02:29:17 -0000 X-UID: 8881 Status: O Content-Length: 1365 On Mon, Apr 05, 2004 at 03:59:08PM +0100, Dominic Marks may have written: > On Monday 05 April 2004 15:33, Brian T Glenn wrote: > > I found one reference to this in the archives via google, but the > > assistance offered there did not resolve the problem. I am getting > > the following in the logs: > > > > Apr 5 10:21:25 ziegchen dovecot: Dovecot starting up > > Apr 5 10:21:26 ziegchen dovecot: Auth process died too early - > > What does your dovecot.conf look like? > > > shutting down Apr 5 10:21:26 ziegchen dovecot: child 30091 (auth) > > returned error 127 Apr 5 10:21:26 ziegchen imap-login: fd_send(-1) > > failed: Broken pipe > > > > This is with SSL on or off, I have tried building the source many > > different ways, but it behaves the same every time. I even copied > > the config from a working installation and tried it with that, but > > to no avail. Any insight would be appreciated. > > What operating system are you using? Thank you for your reply, however, I believe I have found the problem. The --with-pgsql option being enabled seems to require that a pgsql server be running on the system, which in the case of this server it was not. Perhaps a more useful error message, such as unable to connect to pgsql database, or something similar would be helpful in the future. Thanks, -- Brian T Glenn delink.net Internet Services From electron31@hotmail.com Tue Apr 6 11:08:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 442F8C002800; Tue, 6 Apr 2004 11:08:09 +0300 (EEST) Received: from hotmail.com (bay2-f154.bay2.hotmail.com [65.54.247.154]) by talvi.dovecot.org (Postfix) with ESMTP id CCBE7C000D9B for ; Tue, 6 Apr 2004 11:08:06 +0300 (EEST) Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Tue, 6 Apr 2004 00:51:43 -0700 Received: from 195.167.33.1 by by2fd.bay2.hotmail.msn.com with HTTP; Tue, 06 Apr 2004 07:51:43 GMT X-Originating-IP: [195.167.33.1] X-Originating-Email: [electron31@hotmail.com] X-Sender: electron31@hotmail.com From: "electron electron" To: dovecot@dovecot.org Date: Tue, 06 Apr 2004 07:51:43 +0000 Mime-Version: 1.0 Content-Type: text/plain; format=flowed Message-ID: X-OriginalArrivalTime: 06 Apr 2004 07:51:43.0647 (UTC) FILETIME=[00E3CAF0:01C41BAC] Subject: [Dovecot] dovecot with sendmail X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2004 08:08:09 -0000 X-UID: 8882 Status: O Content-Length: 1043 Hello, Here is an issue. I am trying to make dovecot work with sendmail If I use the default conf file (default_mail_env = ) then the inbox is the file /var/mail/user and a mail folder is created in /home/user directory where it stores all additional imap folders. The problem with this is that I can’t have subfolders. If I edit dovecot.conf file and enter default_mail_env = maildir:/var/mail/%1u/%u/Maildir then I can create subfolders, but new emails are not stored in INBOX, but the stay in /var/mail/user. In order to overcome this issue I used procmail .procmailrc: ---------- { :0 Maildir/ } ---------- So now all emails are stored in Maildir format and again with the default dovecot.conf file it works fine. I was wondering if there is an alternative way to do this, without using procmail…..just editing the dovecot.conf file. Thank you Regards _________________________________________________________________ MSN 8 with e-mail virus protection service: 2 months FREE* http://join.msn.com/?page=features/virus From charlie@rubberduck.com Tue Apr 6 11:44:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 73C47C002800; Tue, 6 Apr 2004 11:44:17 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by talvi.dovecot.org (Postfix) with ESMTP id 5E58CC000D9B for ; Tue, 6 Apr 2004 11:44:14 +0300 (EEST) Received: from machine.internal.schools.net.au (dsl-203-113-207-94.VIC.netspace.net.au [203.113.207.94]) by lazy.spodder.com (Postfix) with ESMTP id DEB918FCE; Tue, 6 Apr 2004 18:38:22 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id A1ABE477A94; Tue, 6 Apr 2004 18:38:56 +1000 (EST) Date: Tue, 6 Apr 2004 18:38:55 +1000 From: Charlie Allom To: Pahlevanzadeh Mohsen Subject: Re: [Dovecot] User authentication Message-ID: <20040406083850.GA25431@myinternet.com.au> References: <20040405003919.45988.qmail@web21408.mail.yahoo.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="5vNYLRcllDrimb99" Content-Disposition: inline In-Reply-To: <20040405003919.45988.qmail@web21408.mail.yahoo.com> User-Agent: Mutt/1.5.6i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2004 08:44:17 -0000 X-UID: 8883 Status: O --5vNYLRcllDrimb99 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Apr 04, 2004 at 05:39:19PM -0700, Pahlevanzadeh Mohsen wrote: > Hi. > I installed IMP webmail. > I had use MySQL authentication for IMAP. > Can i use MySQL for dovecot-imap server? There is a mysql patch. Check the website. C. --=20 charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --5vNYLRcllDrimb99 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFAcmyZqiZDwhSqeUERAkEoAJ9MtH72EPTWm4rzp7VmM9AvvW9UTgCfc4hb 2b0i8XRlsFogIXeYnjccYCA= =Eq9F -----END PGP SIGNATURE----- --5vNYLRcllDrimb99-- From glenn-dovecot@delink.net Tue Apr 6 18:31:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 132C4C002800; Tue, 6 Apr 2004 18:31:51 +0300 (EEST) Received: from a.mx.delink.net (delink.is-a-geek.net [207.166.198.225]) by talvi.dovecot.org (Postfix) with ESMTP id 4F823C000D9B for ; Tue, 6 Apr 2004 18:31:48 +0300 (EEST) Received: (qmail 4910 invoked by uid 1000); 6 Apr 2004 15:26:47 -0000 Date: Tue, 6 Apr 2004 11:26:47 -0400 From: Brian T Glenn To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot with sendmail Message-ID: <20040406152647.GB634@delink.net> Mail-Followup-To: dovecot@dovecot.org References: Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="k1lZvvs/B4yU6o8G" Content-Disposition: inline In-Reply-To: X-Operating-System: Linux ziege 2.6.3 X-MTA: qmail-1.03 User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2004 15:31:51 -0000 X-UID: 8884 Status: O Content-Length: 1874 --k1lZvvs/B4yU6o8G Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Apr 06, 2004 at 07:51:43AM +0000, electron electron may have writte= n: > I am trying to make dovecot work with sendmail > If I use the default conf file (default_mail_env =3D ) then the inbox is = the=20 > file /var/mail/user and a mail folder is created in /home/user directory= =20 > where it stores all additional imap folders. > The problem with this is that I can?t have subfolders. > If I edit dovecot.conf file and enter > default_mail_env =3D maildir:/var/mail/%1u/%u/Maildir > then I can create subfolders, but new emails are not stored in INBOX, but= =20 > the stay in /var/mail/user. This is because dovecot plays no role in the delivery of email. You will=20 need to consult your sendmail configuration on how to make it deliver=20 to a Maildir. > In order to overcome this issue I used procmail [snip procmail config] =20 > So now all emails are stored in Maildir format and again with the default= =20 > dovecot.conf file it works fine. That is because you made the system deliver to a Maildir, just like=20 dovecot was expecting. This configuration is fine unless the server is=20 too taxed to spawn an extra program for delivery each time. > I was wondering if there is an alternative way to do this, without using= =20 > procmail?..just editing the dovecot.conf file. You will need to consult sendmail's docs. dovecot is not involved with=20 your problem. --=20 Brian T Glenn delink.net Internet Services --k1lZvvs/B4yU6o8G Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAcsw3Fy/L+4MovqIRAh/GAJ99fAh/UWChH+apDx1g+iyqSUi0SgCeOoq6 u6HX89mcaJvmbsp0OHCghQw= =/1JP -----END PGP SIGNATURE----- --k1lZvvs/B4yU6o8G-- From phanson@smarp.us Wed Apr 7 08:16:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1C6DBC002800; Wed, 7 Apr 2004 08:16:07 +0300 (EEST) Received: from mail.smarp.us (kato-broadband-smarp-ws-1.dsl.hickorytech.net [216.114.198.114]) by talvi.dovecot.org (Postfix) with ESMTP id 1B5E2C000D9B for ; Wed, 7 Apr 2004 08:16:03 +0300 (EEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.smarp.us (Postfix) with ESMTP id 952642B2CAB for ; Wed, 7 Apr 2004 00:16:02 -0500 (CDT) Received: from mail.smarp.us ([127.0.0.1]) by localhost (puck.smarp.us [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 14302-04 for ; Wed, 7 Apr 2004 00:16:02 -0500 (CDT) Received: from sassafras (kato-broadband-smarp-ws-5.dsl.hickorytech.net [216.114.198.118]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.smarp.us (Postfix) with ESMTP id 050712B2CA9 for ; Wed, 7 Apr 2004 00:16:02 -0500 (CDT) From: "Paul Hanson" To: Date: Wed, 7 Apr 2004 00:09:25 -0500 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0032_01C41C34.961DA9A0" X-Mailer: Microsoft Office Outlook, Build 11.0.5510 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Thread-Index: AcQcXn7N8b04qDxkStazb/fxkdRjgg== Message-Id: <20040407051602.050712B2CA9@mail.smarp.us> X-Virus-Scanned: by amavisd-new at smarp.us Subject: [Dovecot] Repeating downloads X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Apr 2004 05:16:07 -0000 X-UID: 8885 Status: O Content-Length: 22397 This is a multi-part message in MIME format. ------=_NextPart_000_0032_01C41C34.961DA9A0 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0033_01C41C34.961DA9A0" ------=_NextPart_001_0033_01C41C34.961DA9A0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hey- Just wanna say that I'm really happy with Dovecot, it has worked really well for my small operation. I do have a couple problems I'd just like to bring to everyone's attention for future bugfixes and if there is a solution available. I'm using dovecot-0.99.10-6 with a clean fedora core 1 install. I'm using primarily IMAP with OpenSSL, however a few people use POP3 (over SSL) with outlook 2002 clients. The problem is that with each send and receive another copy of all messages in their Inboxes are downloaded. I have tried closing outlook restarting it etc. nothing seems to help unless I tell outlook to remove all messages from the server then outlook responds with "messages that outlook was attempting to download are no longer on the server." And problem solved. Not a huge deal but others with similar setups may be experiencing the same problems. I have postfix for my MTA, every account uses Maildir. Attached is my dovecot.conf. Thanks a lot!!! -Paul ------=_NextPart_001_0033_01C41C34.961DA9A0 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hey-  Just wanna say that I’m really happy = with Dovecot, it has worked really well for my small operation.  I do = have a couple problems I’d just like to bring to everyone’s = attention for future bugfixes and if there is a solution available.  I’m = using dovecot-0.99.10-6 with a clean fedora core 1 install.  I’m using primarily IMAP = with OpenSSL, however a few people use POP3 (over SSL) with outlook 2002 = clients.  The problem is that with each send and receive another copy of all = messages in their Inboxes are downloaded.  I have tried closing outlook = restarting it etc… nothing seems to help unless I tell outlook to remove all = messages from the server then outlook responds with “messages that outlook = was attempting to download are no longer on the server.” And problem solved.  Not a huge deal but others with similar setups may be experiencing the same problems. I have postfix for my MTA, every account = uses Maildir.  Attached is my dovecot.conf.

 

Thanks a lot!!!

         =    -Paul

------=_NextPart_001_0033_01C41C34.961DA9A0-- ------=_NextPart_000_0032_01C41C34.961DA9A0 Content-Type: text/plain; name="dovecot.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="dovecot.txt" ## Dovecot 1.0 configuration file # Default values are shown after each value, it's not required to = uncomment # any of the lines. Exception to this are paths, they're just examples # with real defaults being based on configure options. The paths listed = here # are for configure --prefix=3D/usr --sysconfdir=3D/etc = --localstatedir=3D/var # --with-ssldir=3D/usr/share/ssl # Base directory where to store runtime data. #base_dir =3D /var/run/dovecot/ # Protocols we want to be serving: # imap imaps pop3 pop3s protocols =3D imap imaps pop3s # IP or host address where to listen in for connections. It's not = currently # possible to specify multiple addresses. "*" listens in all IPv4 = interfaces. # "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4 # interfaces depending on the operating system. You can specify ports = with # "host:port". imap_listen =3D localhost:143 #pop3_listen =3D * # IP or host address where to listen in for SSL connections. Defaults # to above non-SSL equilevants if not specified. imaps_listen =3D 216.114.198.114:993 #pop3s_listen =3D # Disable SSL/TLS support. #ssl_disable =3D no # PEM encoded X.509 SSL/TLS certificate and private key. They're opened = before # dropping root privileges, so keep the key file unreadable by anyone = but # root. Included doc/mkcert.sh can be used to easily generate = self-signed # certificate, just make sure to update the domains in = dovecot-openssl.cnf ssl_cert_file =3D /usr/share/ssl/certs/dovecot.pem ssl_key_file =3D /usr/share/ssl/private/dovecot.pem # SSL parameter file. Master process generates this file for login = processes. # It contains Diffie Hellman and RSA parameters. #ssl_parameters_file =3D /var/run/dovecot/ssl-parameters.dat # How often to regenerate the SSL parameters file. Generation is quite = CPU # intensive operation. The value is in hours, 0 disables regeneration # entirely. #ssl_parameters_regenerate =3D 24 # Disable LOGIN command and all other plaintext authentications unless # SSL/TLS is used (LOGINDISABLED capability) disable_plaintext_auth =3D no # Use this logfile instead of syslog(). /dev/stderr can be used if you = want to # use stderr for logging (ONLY /dev/stderr - otherwise it is closed). #log_path =3D # For informational messages, use this logfile instead of the default #info_log_path =3D # Prefix for each line written to log file. % codes are in strftime(3) # format. Note the extra space at the end of line. #log_timestamp =3D %b %d %H:%M:%S ## ## Login processes ## # Directory where authentication process places authentication UNIX = sockets # which login needs to be able to connect to. The sockets are created = when # running as root, so you don't have to worry about permissions. login_dir =3D /var/run/dovecot-login # chroot login process to the login_dir. Only reason not to do this is = if you # wish to run the whole Dovecot without roots. #login_chroot =3D yes ## ## IMAP login process ## login =3D imap # Executable location. #login_executable =3D /usr/libexec/dovecot/imap-login # User to use for the login process. Create a completely new user for = this, # and don't use it anywhere else. The user must also belong to a group = where # only it has access, it's used to control access for authentication = process. #login_user =3D dovecot # Set max. process size in megabytes. If you don't use # login_process_per_connection you might need to grow this. #login_process_size =3D 16 # Should each login be processed in it's own process (yes), or should = one # login process be allowed to process multiple connections (no)? Yes is = more # secure, espcially with SSL/TLS enabled. No is faster since there's no = need # to create processes all the time. #login_process_per_connection =3D yes # Number of login processes to create. If login_process_per_user is # yes, this is the number of extra processes waiting for users to log = in. #login_processes_count =3D 3 # Maximum number of extra login processes to create. The extra process = count # usually stays at login_processes_count, but when multiple users start = logging # in at the same time more extra processes are created. To prevent = fork-bombing # we check only once in a second if new processes should be created - if = all # of them are used at the time, we double their amount until limit set = by this # setting is reached. This setting is used only if login_process_per_use = is yes. #login_max_processes_count =3D 128 # Maximum number of connections allowed in login state. When this limit = is # reached, the oldest connections are dropped. If login_process_per_user # is no, this is a per-process value, so the absolute maximum number of = users # logging in actually login_processes_count * max_logging_users. #login_max_logging_users =3D 256 ## ## POP3 login process ## # Settings default to same as above, so you don't have to set anything # unless you want to override them. login =3D pop3 # Exception to above rule being the executable location. #login_executable =3D /usr/libexec/dovecot/pop3-login ## ## Mail processes ## # Maximum number of running mail processes. When this limit is reached, # new users aren't allowed to log in. #max_mail_processes =3D 1024 # Show more verbose process titles (in ps). Currently shows user name = and # IP address. Useful for seeing who are actually using the IMAP = processes # (eg. shared mailboxes or if same uid is used for multiple accounts). #verbose_proctitle =3D no # Show protocol level SSL errors. #verbose_ssl =3D no # Valid UID range for users, defaults to 500 and above. This is mostly # to make sure that users can't log in as daemons or other system users. # Note that denying root logins is hardcoded to dovecot binary and can't # be done even if first_valid_uid is set to 0. #first_valid_uid =3D 500 #last_valid_uid =3D 0 # Valid GID range for users, defaults to non-root/wheel. Users having # non-valid GID as primary group ID aren't allowed to log in. If user # belongs to supplementary groups with non-valid GIDs, those groups are # not set. #first_valid_gid =3D 1 #last_valid_gid =3D 0 # ':' separated list of directories under which chrooting is allowed for = mail # processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar = too). # This setting doesn't affect login_chroot or auth_chroot variables. # WARNING: Never add directories here which local users can modify, that # may lead to root exploit. Usually this should be done only if you = don't # allow shell access for users. See doc/configuration.txt for more = information. #valid_chroot_dirs =3D # Default MAIL environment to use when it's not set. By leaving this = empty # dovecot tries to do some automatic detection as described in # doc/mail-storages.txt. There's a few special variables you can use: # # %u - username # %n - user part in user@domain, same as %u if there's no domain # %d - domain part in user@domain, empty if user there's no domain # %h - home directory # # You can also limit a width of string by giving the number of max. = characters # after the '%' character. For example %1u gives the first character of # username. Some examples: # # maildir:/var/mail/%1u/%u/Maildir # mbox:~/mail/:INBOX=3D/var/mail/%u # mbox:/var/mail/%d/%n/:INDEX=3D/var/indexes/%d/%n # default_mail_env =3D maildir:~/Maildir # Space-separated list of fields to cache for all mails. Currently these # fields are allowed followed by a list of commands they speed up: # # Envelope - FETCH ENVELOPE and SEARCH FROM, TO, CC, BCC, SUBJECT, # SENTBEFORE, SENTON, SENTSINCE, HEADER MESSAGE-ID, # HEADER IN-REPLY-TO # Body - FETCH BODY # Bodystructure - FETCH BODY, BODYSTRUCTURE # MessagePart - FETCH BODY[1.2.3] (ie. body parts), RFC822.SIZE, # SEARCH SMALLER, LARGER, also speeds up = BODY/BODYSTRUCTURE # generation. This is always set with mbox mailboxes, = and # also default with Maildir. # # Different IMAP clients work in different ways, that's why Dovecot by = default # only caches MessagePart which speeds up most operations. Whenever = client # does something where caching could be used, the field is automatically = marked # to be cached later. For example after FETCH BODY the BODY will be = cached # for all new messages. Normally you should leave this alone, unless you = know # what most of your IMAP clients are. Caching more fields than needed = makes # the index files larger and generate useless I/O. # # With maildir there's one extra optimization - if nothing is cached, = indexing # the maildir becomes much faster since it's not opening any of the mail = files. # This could be useful if your IMAP clients access only new mails. #mail_cache_fields =3D MessagePart # Space-separated list of fields that Dovecot should never set to be = cached. # Useful if you want to save disk space at the cost of more I/O when the = fields # needed. #mail_never_cache_fields =3D # Workarounds for various client bugs: # oe6-fetch-no-newmail: # Never send EXISTS/RECENT when replying to FETCH command. Outlook = Express # seems to think they are FETCH replies and gives user "Message no = longer # in server" error. Note that OE6 still breaks even with this = workaround # if synchronization is set to "Headers Only". # outlook-idle: # Outlook and Outlook Express never abort IDLE command, so if no = mail # arrives in half a hour, Dovecot closes the connection. This is = still # fine, except Outlook doesn't connect back so you don't see if new = mail # arrives. #client_workarounds =3D # Dovecot can notify client of new mail in selected mailbox soon after = it's # received. This setting specifies the minimum interval in seconds = between # new mail notifications to client - internally they may be checked more = or # less often. Setting this to 0 disables the checking. # NOTE: Evolution client breaks with this option when it's trying to = APPEND. #mailbox_check_interval =3D 0 # Like mailbox_check_interval, but used for IDLE command. #mailbox_idle_check_interval =3D 30 # Allow full filesystem access to clients. There's no access checks = other than # what the operating system does for the active UID/GID. It works with = both # maildir and mboxes, allowing you to prefix mailboxes names with eg. = /path/ # or ~user/. #mail_full_filesystem_access =3D no # Maximum allowed length for custom flag name. It's only forced when = trying # to create new flags. #mail_max_flag_length =3D 50 # Save mails with CR+LF instead of plain LF. This makes sending those = mails # take less CPU, especially with sendfile() syscall with Linux and = FreeBSD. # But it also creates a bit more disk I/O which may just make it slower. #mail_save_crlf =3D no # Use mmap() instead of read() to read mail files. read() seems to be a = bit # faster with my Linux/x86 and it's better with NFS, so that's the = default. #mail_read_mmaped =3D no # Copy mail to another folders using hard links. This is much faster = than # actually copying the file. This is problematic only if something = modifies # the mail in one folder but doesn't want it modified in the others. I = don't # know any MUA which would modify mail files directly. IMAP protocol = also # requires that the mails don't change, so it would be problematic in = any case. # If you care about performance, enable it. #maildir_copy_with_hardlinks =3D no # Check if mails' content has been changed by external programs. This = slows # down things as extra stat() needs to be called for each file. If = changes are # noticed, the message is treated as a new message, since IMAP protocol # specifies that existing message are immutable. #maildir_check_content_changes =3D no # Which locking methods to use for locking mbox. There's three = available: # dotlock: Create .lock file. This is the oldest and most = NFS-safe # solution. If you want to use /var/mail/ like directory, the = users # will need write access to that directory. # fcntl : Use this if possible. Works with NFS too if lockd is used. # flock : May not exist in all systems. Doesn't work with NFS. # # You can use both fcntl and flock too; if you do the order they're = declared # with is important to avoid deadlocks if other MTAs/MUAs are using both = fcntl # and flock. Some operating systems don't allow using both of them # simultaneously, eg. BSDs. If dotlock is used, it's always created = first. #mbox_locks =3D fcntl # Should we create dotlock file even when we want only a read-lock? = Setting # this to yes hurts the performance when the mailbox is accessed = simultaneously # by multiple processes, but it's needed for reliable reading if no = other # locking methods are available. #mbox_read_dotlock =3D no # Maximum time in seconds to wait for lock (all of them) before = aborting. #mbox_lock_timeout =3D 300 # If dotlock exists but the mailbox isn't modified in any way, override = the # lock file after this many seconds. #mbox_dotlock_change_timeout =3D 30 # umask to use for mail files and directories #umask =3D 0077 # Drop all privileges before exec()ing the mail process. This is mostly # meant for debugging, otherwise you don't get core dumps. Note that = setting # this to yes means that log file is opened as the logged in user, which # might not work. It could also be a small security risk if you use = single UID # for multiple users, as the users could ptrace() each others processes = then. #mail_drop_priv_before_exec =3D no ## ## IMAP process ## # Executable location #imap_executable =3D /usr/libexec/dovecot/imap # Set max. process size in megabytes. Most of the memory goes to = mmap()ing # files, so it shouldn't harm much even if this limit is set pretty = high. #imap_process_size =3D 256 # Support for dynamically loadable modules. #imap_use_modules =3D no #imap_modules =3D /usr/lib/dovecot/imap ## ## POP3 process ## # Executable location #pop3_executable =3D /usr/libexec/dovecot/pop3 # Set max. process size in megabytes. Most of the memory goes to = mmap()ing # files, so it shouldn't harm much even if this limit is set pretty = high. #pop3_process_size =3D 256 # Support for dynamically loadable modules. #pop3_use_modules =3D no #pop3_modules =3D /usr/lib/dovecot/pop3 ## ## Authentication processes ## # You can have multiple processes; each time "auth =3D xx" is seen, a = new # process definition is started. The point of multiple processes is to = be # able to set stricter permissions to others. For example, plain/PAM # authentication requires roots, but if you also use digest-md5 = authentication # for some users, you can authenticate them without any privileges in a # separate auth process. Just remember that only one auth process is = asked # for the password, so you can't have different passwords with different # processes (unless they have different auth methods, and you're ok with # having different password for each method). # Authentication process name. auth =3D default # Space separated list of wanted authentication mechanisms: # plain digest-md5 anonymous auth_mechanisms =3D plain # Space separated list of realms for SASL authentication mechanisms that = need # them. You can leave it empty if you don't want to support multiple = realms. # Many clients simply use the first one listed here, so keep the default = realm # first. #auth_realms =3D # Default realm to use if none was specified. #auth_default_realm =3D # Where user database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # passwd-file : passwd-like file with specified location # static uid=3D gid=3D home=3D
: static = settings # vpopmail: vpopmail library # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see = doc/dovecot-pgsql.conf auth_userdb =3D passwd # Where password database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # shadow: /etc/shadow or similiar, using getspnam() # pam [ | *]: PAM authentication # passwd-file : passwd-like file with specified location # vpopmail: vpopmail authentication # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see = doc/dovecot-pgsql.conf auth_passdb =3D pam # Executable location #auth_executable =3D /usr/libexec/dovecot/dovecot-auth # Set max. process size in megabytes. #auth_process_size =3D 256 # User to use for the process. This user needs access to only user and # password databases, nothing else. Only shadow and pam authentication # requires roots, so use something else if possible. auth_user =3D root # Directory where to chroot the process. Most authentication backends = don't # work if this is set, and there's no point chrooting if auth_user is = root. #auth_chroot =3D # Number of authentication processes to create #auth_count =3D 1 # List of allowed characters in username. If the user-given username = contains # a character not listed in here, the login automatically fails. This is = just # an extra check to make sure user can't exploit any potential quote = escaping # vulnerabilities with SQL/LDAP databases. If you want to allow all = characters, # set this value to empty. #auth_username_chars =3D = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ # Username to use for users logging in with ANONYMOUS SASL mechanism #auth_anonymous_username =3D anonymous # More verbose logging. Useful for figuring out why authentication isn't # working. #auth_verbose =3D no # digest-md5 authentication process. It requires special MD5 passwords = which # /etc/shadow and PAM doesn't support, so we never need roots to handle = it. # Note that the passwd-file is opened before chrooting and dropping root # privileges, so it may be 0600-root owned file. #auth =3D digest_md5 #auth_methods =3D digest-md5 #auth_realms =3D #auth_userdb =3D passwd-file /etc/passwd.imap #auth_passdb =3D passwd-file /etc/passwd.imap #auth_user =3D imapauth #auth_chroot =3D # if you plan to use only passwd-file, you don't need the two auth = processes, # simply set "auth_methods =3D plain digest-md5" ------=_NextPart_000_0032_01C41C34.961DA9A0-- From phanson@smarp.us Wed Apr 7 08:24:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2105CC002801; Wed, 7 Apr 2004 08:24:27 +0300 (EEST) Received: from mail.smarp.us (kato-broadband-smarp-ws-1.dsl.hickorytech.net [216.114.198.114]) by talvi.dovecot.org (Postfix) with ESMTP id 251CEC002800 for ; Wed, 7 Apr 2004 08:24:25 +0300 (EEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.smarp.us (Postfix) with ESMTP id 8E7132B2CAB for ; Wed, 7 Apr 2004 00:24:25 -0500 (CDT) Received: from mail.smarp.us ([127.0.0.1]) by localhost (puck.smarp.us [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 14302-05 for ; Wed, 7 Apr 2004 00:24:25 -0500 (CDT) Received: from sassafras (kato-broadband-smarp-ws-5.dsl.hickorytech.net [216.114.198.118]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.smarp.us (Postfix) with ESMTP id 571162B2CA9 for ; Wed, 7 Apr 2004 00:24:25 -0500 (CDT) From: "Paul Hanson" To: Subject: [Dovecot] Repeating downloads Date: Wed, 7 Apr 2004 00:17:48 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Office Outlook, Build 11.0.5510 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Thread-Index: AcQcX6q3Y5Fcv24bTI6zaM1s9zLj8g== Message-Id: <20040407052425.571162B2CA9@mail.smarp.us> X-Virus-Scanned: by amavisd-new at smarp.us X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Apr 2004 05:24:27 -0000 X-UID: 8886 Status: O Content-Length: 1161 Sorry about the Spam with the dovecot.conf. Here is the intended = message. Thanks!! Hey-=A0 Just wanna say that I=92m really happy with Dovecot, it has = worked really well for my small operation.=A0 I do have a couple problems I=92d = just like to bring to everyone=92s attention for future bugfixes and if there = is a solution available.=A0 I=92m using dovecot-0.99.10-6 with a clean fedora = core 1 install. =A0I=92m using primarily IMAP with OpenSSL, however a few = people use POP3 (over SSL) with outlook 2002 clients.=A0 The problem is that with = each send and receive another copy of all messages in their Inboxes are downloaded.=A0 I have tried closing outlook restarting it etc=85 nothing = seems to help unless I tell outlook to remove all messages from the server = then outlook responds with =93messages that outlook was attempting to = download are no longer on the server.=94 And problem solved.=A0 Not a huge deal but = others with similar setups may be experiencing the same problems. I have = postfix for my MTA, every account uses Maildir.=A0 Attached is my dovecot.conf.=20 =A0 Thanks a lot!!! =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 -Paul From subscribed-lists@sterndata.com Wed Apr 7 17:35:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5B676C002801; Wed, 7 Apr 2004 17:35:11 +0300 (EEST) Received: from snipe.mail.pas.earthlink.net (snipe.mail.pas.earthlink.net [207.217.120.62]) by talvi.dovecot.org (Postfix) with ESMTP id 69DEBC002800 for ; Wed, 7 Apr 2004 17:35:08 +0300 (EEST) Received: from h-69-3-218-112.chcgilgm.dynamic.covad.net ([69.3.218.112] helo=ciscy.sterndata.com) by snipe.mail.pas.earthlink.net with esmtp (Exim 3.33 #1) id 1BBE47-0006Vy-00 for dovecot@dovecot.org; Wed, 07 Apr 2004 07:30:07 -0700 Received: from sds ([192.168.123.169]) by ciscy.sterndata.com (8.12.10/8.12.10) with SMTP id i37EU6El002758 for ; Wed, 7 Apr 2004 09:30:06 -0500 From: Steven Stern To: dovecot@dovecot.org Date: Wed, 07 Apr 2004 09:30:37 -0500 Message-ID: X-Mailer: Forte Agent 2.0/32.652 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: clamd / ClamAV version 0.70rc, clamav-milter version 0.70 Subject: [Dovecot] Process died to early X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Apr 2004 14:35:11 -0000 X-UID: 8887 Status: O Just went through this again today. Has anyone found a solution? ------------------------------------------------------ After several days of operation, POP connections fail to my server. The=20 log message is Mar 27 15:51:46 ciscy dovecot: Login process died too early - shutting=20 down Linux ciscy.sterndata.com 2.4.22-1.2174.nptl #1 Wed Feb 18 16:38:32 EST=20 2004 i686 i686 i386 GNU/Linux ]# /usr/sbin/dovecot --version 0.99.10 # /etc/init.d/dovecot status dovecot (pid 6900) is running... Killing the dovecot process, deleting /var/lock/subys/dovecot, and=20 restarting the process gets POP3 and IMAP working again. Suggestions? -- Steve =20 From jrn@oregonhanggliding.com Wed Apr 7 18:17:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B0D01C002805; Wed, 7 Apr 2004 18:17:01 +0300 (EEST) Received: from falcon.oregonhanggliding.com (oregonhanggliding.com [66.80.68.82]) by talvi.dovecot.org (Postfix) with ESMTP id 8F7B6C002801 for ; Wed, 7 Apr 2004 18:16:59 +0300 (EEST) Received: by falcon.oregonhanggliding.com (Postfix, from userid 500) id 87D8443355; Wed, 7 Apr 2004 08:11:59 -0700 (PDT) Date: Wed, 7 Apr 2004 08:11:59 -0700 From: Jim Norton To: dovecot@dovecot.org Message-ID: <20040407151159.GB10972@falcon.oregonhanggliding.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i Subject: [Dovecot] dovecot vs. cyrus IMAP? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: jrn@oregonhanggliding.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Apr 2004 15:17:01 -0000 X-UID: 8888 Status: O Hello all, I just learned about dovecot. I am currently using Cyrus IMAP/POP3 with Postfix on a Linux system. The one thing I don't like about Cyrus IMAP is that it doesn't support mail users who have accounts on the system. It uses it's own mailbox format and the users can't be regular system users. It would be nice to have an IMAP/POP3 server that can handle mail for users in /etc/passwd as well as the cyrus 'virtual' user type. Does dovecot only provide access to mail for users in /etc/passwd? Or can one setup email accounts for people that don't have accounts on the system ( in /etc/passwd )? Thanks, -- Jim Norton - http://www.jimnorton.org Recursion; n. see 'Recursion' From mem@mv.mv.com Wed Apr 7 20:07:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 18EC6C002801; Wed, 7 Apr 2004 20:07:49 +0300 (EEST) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 6B6D7C002800 for ; Wed, 7 Apr 2004 20:07:46 +0300 (EEST) Received: (qmail 24073 invoked from network); 7 Apr 2004 13:02:46 -0400 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 7 Apr 2004 13:02:46 -0400 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 6361 invoked by uid 101); 7 Apr 2004 13:02:46 -0400 From: "Mark E. Mallett" Date: Wed, 7 Apr 2004 13:02:46 -0400 To: Steven Stern Subject: Re: [Dovecot] Process died to early Message-ID: <20040407170246.GA5512@iridium.mv.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Apr 2004 17:07:49 -0000 X-UID: 8889 Status: O Content-Length: 1261 On Wed, Apr 07, 2004 at 09:30:37AM -0500, Steven Stern wrote: > Just went through this again today. Has anyone found a solution? As far as I know, it's a known thing with the last official version (i.e. with 0.99.10.4). Somebody correct me if I'm wrong of course. There seems to be some kind of resource leak that eventually results in a lockup of the supervisor task. We still have to restart it every week or so. mm > > ------------------------------------------------------ > > > After several days of operation, POP connections fail to my server. The > log message is > > Mar 27 15:51:46 ciscy dovecot: Login process died too early - shutting > down > > Linux ciscy.sterndata.com 2.4.22-1.2174.nptl #1 Wed Feb 18 16:38:32 EST > 2004 i686 i686 i386 GNU/Linux > > ]# /usr/sbin/dovecot --version > 0.99.10 > > # /etc/init.d/dovecot status > dovecot (pid 6900) is running... > > Killing the dovecot process, deleting /var/lock/subys/dovecot, and > restarting the process gets POP3 and IMAP working again. > > Suggestions? > -- > Steve > -- Mark E. Mallett | http://www.mv.com/users/mem/ MV Communications, Inc. | http://www.mv.com/ NH Internet Access since 1991 | (603) 629-0000 / FAX: 629-0049 From glenn-dovecot@delink.net Wed Apr 7 21:19:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5CF96C002801; Wed, 7 Apr 2004 21:19:11 +0300 (EEST) Received: from a.mx.delink.net (delink.is-a-geek.net [207.166.198.225]) by talvi.dovecot.org (Postfix) with ESMTP id 6BD76C002800 for ; Wed, 7 Apr 2004 21:19:08 +0300 (EEST) Received: (qmail 17803 invoked by uid 1000); 7 Apr 2004 18:14:06 -0000 Date: Wed, 7 Apr 2004 14:14:06 -0400 From: Brian T Glenn To: dovecot@dovecot.org Subject: Re: [Dovecot] Repeating downloads Message-ID: <20040407181406.GI634@delink.net> Mail-Followup-To: dovecot@dovecot.org References: <20040407051602.050712B2CA9@mail.smarp.us> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="aVD9QWMuhilNxW9f" Content-Disposition: inline In-Reply-To: <20040407051602.050712B2CA9@mail.smarp.us> X-Operating-System: Linux ziege 2.6.3 X-MTA: qmail-1.03 User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Apr 2004 18:19:11 -0000 X-UID: 8890 Status: O Content-Length: 1356 --aVD9QWMuhilNxW9f Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Apr 07, 2004 at 12:09:25AM -0500, Paul Hanson may have written: [snip] > core 1 install. I'm using primarily IMAP with OpenSSL, however a few > people use POP3 (over SSL) with outlook 2002 clients. The problem is that > with each send and receive another copy of all messages in their Inboxes > are downloaded. I have tried closing outlook restarting it etc... nothing > seems to help unless I tell outlook to remove all messages from the server > then outlook responds with "messages that outlook was attempting to > download are no longer on the server." And problem solved. Not a huge > deal but others with similar setups may be experiencing the same problems. > I have postfix for my MTA, every account uses Maildir. Attached is my > dovecot.conf. That sounds about how POP3 works in my experience. How were you=20 expecting it to behave differently? --=20 Brian T Glenn delink.net Internet Services --aVD9QWMuhilNxW9f Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAdETuFy/L+4MovqIRAjzFAJ4pInt8u3Sd9R71cfviGTnbyxyQmwCcCwuf YBwEDF9f0inAZ0nIr0HuOiM= =iyDE -----END PGP SIGNATURE----- --aVD9QWMuhilNxW9f-- From glenn-dovecot@delink.net Thu Apr 8 06:15:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 45071C002801; Thu, 8 Apr 2004 06:15:02 +0300 (EEST) Received: from a.mx.delink.net (delink.is-a-geek.net [207.166.198.225]) by talvi.dovecot.org (Postfix) with ESMTP id E1740C002800 for ; Thu, 8 Apr 2004 06:14:58 +0300 (EEST) Received: (qmail 22818 invoked by uid 1000); 8 Apr 2004 03:09:57 -0000 Date: Wed, 7 Apr 2004 23:09:57 -0400 From: Brian T Glenn To: dovecot@dovecot.org Subject: Re: [Dovecot] Repeating downloads Message-ID: <20040408030957.GN634@delink.net> Mail-Followup-To: dovecot@dovecot.org References: <20040407181406.GI634@delink.net> <20040407213353.7F0B12B2CA9@mail.smarp.us> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="yVhtmJPUSI46BTXb" Content-Disposition: inline In-Reply-To: <20040407213353.7F0B12B2CA9@mail.smarp.us> X-Operating-System: Linux ziege 2.6.3 X-MTA: qmail-1.03 User-Agent: Mutt/1.5.4i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 03:15:02 -0000 X-UID: 8891 Status: O Content-Length: 1630 --yVhtmJPUSI46BTXb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable [You have top-posted your message. Please refrain from doing so on=20 technical mailing lists. It ruins the flow of the conversation as well=20 as making archive difficult to read] [You have sent a personal reply to a mailing list message when it was=20 not warranted. Please keep replies on the list so that everyone can=20 benefit.] On Wed, Apr 07, 2004 at 04:27:01PM -0500, Paul Hanson may have written: > On Wednesday, April 07, 2004 1:14 PM Brian T Glenn wrote: > > That sounds about how POP3 works in my experience. How were you=20 > > expecting it to behave differently? >=20 > Well the only problem is that if they receive a new message, not only do = you > get the new message but another copy of ALL messages on the server. A > scenario that I have not experienced with any other POP3 server/client > setup. The correct behavior should be to only download the new message. =66rom doing a search on dovecot and uidl, it seems that dovecot supports= =20 these functions, which is the standard way for a pop3 server to announce=20 unique checksums of messages. Whether or not your client software=20 supports this is another matter. --=20 Brian T Glenn delink.net Internet Services --yVhtmJPUSI46BTXb Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAdMKFFy/L+4MovqIRAhD7AKCiz4kOCBTGy/QQafU9EaAEGSuP6QCgo1bZ GcGi/vT688K6N196O9HS1bI= =ktKn -----END PGP SIGNATURE----- --yVhtmJPUSI46BTXb-- From dpham@mercy.com.au Thu Apr 8 09:48:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C6B8EC002801; Thu, 8 Apr 2004 09:48:51 +0300 (EEST) Received: from coregw01.mercy.com.au (mail.mercy.com.au [210.9.192.244]) by talvi.dovecot.org (Postfix) with ESMTP id 05185C002800 for ; Thu, 8 Apr 2004 09:48:48 +0300 (EEST) Received: from emelb-mail-01.mercy.com.au ([172.27.128.251]) by coregw01.mercy.com.au with InterScan Messaging Security Suite; Thu, 08 Apr 2004 16:36:59 +1000 Received: by emelb-mail-01.mercy.com.au with Internet Mail Service (5.5.2653.19)id ; Thu, 8 Apr 2004 16:43:28 +1000 Message-ID: <3ED0289A9D58414D9AD116DA91E2E96915E659@coremx01.mercynet.com.au> From: Zoong Pham To: "'dovecot@dovecot.org'" Date: Thu, 8 Apr 2004 16:43:24 +1000 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset=ISO-8859-1 X-imss-version: 2.5 X-imss-result: Passed X-imss-scores: Clean:69.92129 C:10 M:4 S:5 R:5 X-imss-settings: Baseline:1 C:1 M:1 S:1 R:1 (0.0000 0.0000) Subject: [Dovecot] username and password not from /etc/passwd X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 06:48:52 -0000 X-UID: 8892 Status: O Content-Length: 1051 Can dovecot use usernames and passwords not from /etc/passwd and be able to read mails of an user whose username and password are in /etc/passwd ? For example: - Joe Bloke has a local Unix account joe on Unix server mail.example.com - Sendmail on mail.example.com accepts mails for joe@example.com and put them in /var/mail/joe - can dovecot use other username/password file or database or directory rather than /etc/passwd to authenticate Joe and let him (once logs in successfully) reading mails in /var/mail/joe ? Ideally, the usernames and passwords that dovecot uses are different with the ones in /etc/passwd. Say, username is joe.bloke@example.com That way, Joe doesn't need to know the username and password on the Unix server at all. In summary, I want to have IMAP usernames and passwords totally different from the local Unix usernames and passwords. And users use only IMAP usernames and passwords to read their mails. I use OpenBSD-3.4, Sendmail 8.12.9, dovecot-0.99.10p0 (pre-compiled packaged from OpenBSD). Thanks, Zoong Pham From dr@jones.dk Thu Apr 8 12:29:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 24B2AC002802; Thu, 8 Apr 2004 12:29:01 +0300 (EEST) Received: from auryn.jones.dk (cpe.atm0-0-0-1201001.0x503f72d6.albnxx2.customer.tele.dk [80.63.114.214]) by talvi.dovecot.org (Postfix) with ESMTP id E45CCC002800 for ; Thu, 8 Apr 2004 12:28:58 +0300 (EEST) Received: from jones.dk (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id E2CC23F2198 for ; Thu, 8 Apr 2004 11:23:58 +0200 (CEST) Message-ID: <40751A2E.2030109@jones.dk> Date: Thu, 08 Apr 2004 11:23:58 +0200 From: Jonas Smedegaard User-Agent: Mozilla Thunderbird 0.5 (X11/20040313) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] username and password not from /etc/passwd References: <3ED0289A9D58414D9AD116DA91E2E96915E659@coremx01.mercynet.com.au> In-Reply-To: <3ED0289A9D58414D9AD116DA91E2E96915E659@coremx01.mercynet.com.au> X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 09:29:01 -0000 X-UID: 8893 Status: O Content-Length: 1132 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Zoong Pham wrote: | Can dovecot use usernames and passwords not from /etc/passwd and be able to | read mails of an user whose username and password are in /etc/passwd ? [...] | I use OpenBSD-3.4, Sendmail 8.12.9, dovecot-0.99.10p0 (pre-compiled packaged | from OpenBSD). On a Debian GNU/Linux machine, I'd configure PAM (Pluggable Authentication Modules) to use a different authentication scheme than the default for the imap and pop3 services. I don't know if that is similar on OpenBSD. Alternatively (not exactly what you're asking for, but possibly solves your underlying goal) you can use a fake shell for those users not allowed shell access. ~ - Jonas - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er n=E6r: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFAdRotn7DbMsAkQLgRAgq8AJwPgxxirPxNZe5B6VkYHRlw6t1C/gCePNVp 7NNJfut2N2rnksNmXDpk8uU=3D =3DXo// -----END PGP SIGNATURE----- From olive@pasteur.fr Thu Apr 8 19:29:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1951CC002802; Thu, 8 Apr 2004 19:29:40 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id 1574AC002800 for ; Thu, 8 Apr 2004 19:29:38 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id B9E1B11447 for ; Thu, 8 Apr 2004 18:24:35 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 74B4211416 for ; Thu, 8 Apr 2004 18:24:35 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 5CBE13F67E; Thu, 8 Apr 2004 18:24:35 +0200 (CEST) Date: Thu, 8 Apr 2004 18:24:35 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot vs. cyrus IMAP? Message-ID: <20040408162435.GA78053@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <20040407151159.GB10972@falcon.oregonhanggliding.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040407151159.GB10972@falcon.oregonhanggliding.com> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 16:29:40 -0000 X-UID: 8894 Status: O * Jim Norton (20040407 08:11): > Does dovecot only provide access to mail for users in /etc/passwd? Or can one setup email accounts for people that don't have accounts on the system ( in /etc/passwd )? You can authenticate users with an LDAP, Mysql or PostgreSQL server. There are examples in the source tarball and on the Wiki: http://wiki.dovecot.org/ -- olive From amery@geeks.cl Thu Apr 8 20:36:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 87EEDC002802; Thu, 8 Apr 2004 20:36:00 +0300 (EEST) Received: from velero.bsp.cl (omasesores2.manquehue.net [200.74.171.130]) by talvi.dovecot.org (Postfix) with SMTP id 90C64C002800 for ; Thu, 8 Apr 2004 20:35:57 +0300 (EEST) Received: (qmail 25779 invoked from network); 8 Apr 2004 18:32:50 -0000 Received: from unknown (HELO mail.bsp.cl) (127.0.0.1) by localhost with SMTP; 8 Apr 2004 18:32:50 -0000 Received: from 200.75.0.6 (proxying for 200.75.27.45) (SquirrelMail authenticated user amery@geeks.cl) by mail.bsp.cl with HTTP; Thu, 8 Apr 2004 14:32:50 -0400 (CLT) Message-ID: <33837.200.75.0.6.1081449170.squirrel@mail.bsp.cl> Date: Thu, 8 Apr 2004 14:32:50 -0400 (CLT) From: "Alejandro Mery" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] vmailmgr X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 17:36:00 -0000 X-UID: 8895 Status: O hi, does dovecot supports vmailmgr authentication? any recomended reading? and, in a vmailmgr context, what are the benefits of dovecot over courier-imap or bincimap? Best regards, Alejandro Mery From bavo@coderspotting.org Thu Apr 8 21:00:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B0BEEC002802; Thu, 8 Apr 2004 21:00:45 +0300 (EEST) Received: from apate.telenet-ops.be (apate.telenet-ops.be [195.130.132.57]) by talvi.dovecot.org (Postfix) with ESMTP id 7DC75C002800 for ; Thu, 8 Apr 2004 21:00:42 +0300 (EEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by apate.telenet-ops.be (Postfix) with SMTP id 4BE232B4292 for ; Thu, 8 Apr 2004 19:55:40 +0200 (MEST) Received: from [192.168.123.171] (D5770887.kabel.telenet.be [213.119.8.135]) by apate.telenet-ops.be (Postfix) with ESMTP id 3CBFE2B427E for ; Thu, 8 Apr 2004 19:55:39 +0200 (MEST) Received: from 127.0.0.1 by espresso.latte.be with esmtp (masqmail 0.2.20) id 1BBdkY-10x-00 for ; Thu, 08 Apr 2004 19:55:38 +0200 From: Bavo De Ridder Organization: CoderSpotting To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot startup at boottime fails Date: Thu, 8 Apr 2004 19:55:38 +0200 User-Agent: KMail/1.6.1 References: <200403181044.52623.bavo@coderspotting.org> <200403231649.08058.bavo@coderspotting.org> <20040323174348.GD51279@f4.ca> In-Reply-To: <20040323174348.GD51279@f4.ca> MIME-Version: 1.0 Content-Disposition: inline Content-Type: Multipart/Mixed; boundary="Boundary-00=_aIZdAkGl1HBuyv8" Message-Id: <200404081955.38304.bavo@coderspotting.org> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 18:00:45 -0000 X-UID: 8896 Status: O Content-Length: 14214 --Boundary-00=_aIZdAkGl1HBuyv8 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline I don't even have a seperate /var partition. Just / and swap. Attached you can find an strace output of /usr/libexec/dovecot/dovecot-auth during boot. During boot, the last service to start is dovecot (I did this on purpose to make sure everything is up and running before attempting to start dovecot in case dovecot had some dependencies), this fails with the error message (in /var/log/mail.err) "dovecot: Login process died too early - shutting down" If, after boot, I just login as root and type: /etc/init.d/dovecot start Dovecot starts fine. As you can see from the strace, the dovecot-auth seems to have some trouble reading the socket. B. On Tuesday 23 March 2004 18:43, Skye Poier wrote: > OK, I guess those perms are probably right. > Is /var mounted rw during your "run level 3" ? > I know nothing about SUSE. > > Skye > > > Hi, > > > > What exactly do you mean with this? > > These are the permissions of the /var/run/dovecot/login directory: > > drwxr-x--- 2 root dovecot 72 Mar 23 00:20 login > > > > B. > > > > On Friday 19 March 2004 20:05, Skye Poier wrote: > > > Does dovecot-auth have permissions to /var/run/dovecot/login > > > during boot time? > > > > > > Skye > > > > > > Word on the street is Bavo De Ridder said: > > > > Hi, > > > > > > > > I am running dovecot 0.99.10.4 on SuSE 9. I installed it using > > > > apt-get from the gwdg repository. > > > > > > > > The dovecot service is configured to start at boottime in run level 3 > > > > and 5. However, it dies immediately with this error > > > > (/var/log/mail.err): > > > > > > > > dovecot: Login process died too early - shutting down > > > > > > > > Starting the service afterwords from a prompt as root with the > > > > command: > > > > > > > > /etc/init.d/dovecot start > > > > > > > > works without a glitch. Attached you can find my dovecot.conf and the > > > > startup script /etc/init.d/dovecot. > > > > > > > > I hope someone could shed some light on this issue. -- Bavo De Ridder Web Service Consulting & EMEA Linux Practice Novell, Inc. "In God We Trust, everyone else get yourself an X.500 certificate" --Boundary-00=_aIZdAkGl1HBuyv8 Content-Type: text/plain; name=" " Content-Transfer-Encoding: 7bit execve("/usr/libexec/dovecot/dovecot-auth2", ["/usr/libexec/dovecot/dovecot-auth2"], [/* 16 vars */]) = 0 uname({sys="Linux", node="BRU-P7J0J-BDERIDDER", ...}) = 0 brk(0) = 0x8064b04 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 5 fstat64(5, {st_mode=S_IFREG|0644, st_size=86746, ...}) = 0 old_mmap(NULL, 86746, PROT_READ, MAP_PRIVATE, 5, 0) = 0x40016000 close(5) = 0 open("/lib/libpam.so.0", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\25\0\0004\0\0\0\234u\0\0\0\0\0\0004\0 \0\3\0(\0\31\0\26\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\372o\0\0\372o\0\0\5\0\0\0\0\20\0\0\1\0\0\0\0p\0\0\0p\0\0\0p\0\0\224\2\0\0\230\2\0\0\6\0\0\0\0\20\0\0\2\0\0\0\310p\0\0\310p\0\0\310p\0\0\320\0\0\0\320\0\0\0\6\0\0\0\4\0\0\0a\0\0\0f\0\0\0Y\0\0\0\0\0\0\0I\0\0\0?\0\0\0L\0\0\0$\0\0\0\0\0\0\0\33\0\0\0\0\0\0\0H\0\0\0\0\0\0\0Q\0\0\0,\0\0\0^\0\0\0J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0S\0\0\0N\0\0\0-\0\0\0\0\0"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0755, st_size=36200, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4002c000 old_mmap(NULL, 29336, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x4002d000 old_mmap(0x40034000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x7000) = 0x40034000 close(5) = 0 open("/usr/lib/libldap.so.2", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \210\0\0004\0\0\0\2604\3\0\0\0\0\0004\0 \0\3\0(\0\31\0\26\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\26\3\0c\26\3\0\5\0\0\0\0\20\0\0\1\0\0\0\0 \3\0\0 \3\0\0 \3\0l\r\0\0\250\r\0\0\6\0\0\0\0\20\0\0\2\0\0\0\f&\3\0\f&\3\0\f&\3\0\370\0\0\0\370\0\0\0\6\0\0\0\4\0\0\0\t\2\0\0?\2\0\0\316\1\0\0>\1\0\0\0\0\0\0y\1\0\0001\2\0\0\0\0\0\0\0\0\0\0\353\1\0\0\0\0\0\0X\1\0\0\212\1\0\0\266\1\0\0\340\0\0\0\312\1\0\0\307\1\0\0{\0\0\0\330\1\0\0[\1\0\0\0\0\0\0\327\0\0\0\221\1\0\0W\0"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0755, st_size=237971, ...}) = 0 old_mmap(NULL, 208296, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x40035000 old_mmap(0x40067000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x32000) = 0x40067000 close(5) = 0 open("/usr/lib/liblber.so.2", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p%\0\0004\0\0\0L\266\0\0\0\0\0\0004\0 \0\3\0(\0\31\0\26\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\203\256\0\0\203\256\0\0\5\0\0\0\0\20\0\0\1\0\0\0\0\260\0\0\0\260\0\0\0\260\0\0\254\3\0\0P\4\0\0\6\0\0\0\0\20\0\0\2\0\0\0\24\261\0\0\24\261\0\0\24\261\0\0\310\0\0\0\310\0\0\0\6\0\0\0\4\0\0\0\203\0\0\0\262\0\0\0\220\0\0\0\213\0\0\0\202\0\0\0V\0\0\0\0\0\0\0`\0\0\0\205\0\0\0\261\0\0\0\230\0\0\0O\0\0\0\257\0\0\0\0\0\0\0\207\0\0\0\231\0\0\0=\0\0\0\0\0\0\0\201\0\0\0\0\0"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0755, st_size=56275, ...}) = 0 old_mmap(NULL, 46160, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x40068000 old_mmap(0x40073000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0xb000) = 0x40073000 close(5) = 0 open("/usr/lib/libsasl2.so.2", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20/\0\0004\0\0\0\30.\1\0\0\0\0\0004\0 \0\3\0(\0\31\0\26\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264$\1\0\264$\1\0\5\0\0\0\0\20\0\0\1\0\0\0\300$\1\0\3004\1\0\3004\1\0\220\6\0\0\354\6\0\0\6\0\0\0\0\20\0\0\2\0\0\0\304\'\1\0\3047\1\0\3047\1\0\330\0\0\0\330\0\0\0\6\0\0\0\4\0\0\0\305\0\0\0\330\0\0\0\313\0\0\0\220\0\0\0\261\0\0\0\0\0\0\0e\0\0\0\0\0\0\0\252\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\214\0\0\0\257\0\0\0\0\0\0\0\323\0\0\0q\0\0\0\0\0\0\0\0\0\0\0\203\0\0\0Q\0\0\0\0"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0755, st_size=89417, ...}) = 0 old_mmap(NULL, 80812, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x40074000 old_mmap(0x40087000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x12000) = 0x40087000 close(5) = 0 open("/lib/libresolv.so.2", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0*\0\0004\0\0\0(\374\0\0\0\0\0\0004\0 \0\6\0(\0\34\0\31\0\6\0\0\0004\0\0\0004\0\0\0004\0\0\0\300\0\0\0\300\0\0\0\5\0\0\0\4\0\0\0\3\0\0\0l\344\0\0l\344\0\0l\344\0\0\23\0\0\0\23\0\0\0\4\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\177\344\0\0\177\344\0\0\5\0\0\0\0\20\0\0\1\0\0\0\0\360\0\0\0\360\0\0\0\360\0\0\210\10\0\0\250/\0\0\6\0\0\0\0\20\0\0\2\0\0\0\344\365\0\0\344\365\0\0\344\365\0\0\330\0\0\0\330\0\0\0\6\0\0\0\4\0\0\0\4\0\0\0\364\0\0\0\364\0\0\0\364"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0755, st_size=74577, ...}) = 0 old_mmap(NULL, 73640, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x40088000 old_mmap(0x40097000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0xf000) = 0x40097000 old_mmap(0x40098000, 8104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40098000 close(5) = 0 open("/usr/lib/libssl.so.0.9.7", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\204\0\0004\0\0\0h\371\2\0\0\0\0\0004\0 \0\3\0(\0\33\0\30\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\315\2\0A\315\2\0\5\0\0\0\0\20\0\0\1\0\0\0\0\320\2\0\0\320\2\0\0\320\2\0\244#\0\0\320*\0\0\6\0\0\0\0\20\0\0\2\0\0\0<\357\2\0<\357\2\0<\357\2\0\340\0\0\0\340\0\0\0\6\0\0\0\4\0\0\0\t\2\0\0005\2\0\0\34\2\0\0v\0\0\0\0\0\0\0:\0\0\0r\1\0\0\23\2\0\0\0\0\0\0\0\0\0\0.\1\0\0\35\2\0\0\210\1\0\0\0\0\0\0009\1\0\0\t\2\0\0\322\1\0\0\266\1\0\0\33\1\0\0\253\0\0\0\0\0\0\0\253"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0555, st_size=223898, ...}) = 0 old_mmap(NULL, 195280, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x4009a000 old_mmap(0x400c7000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x2d000) = 0x400c7000 close(5) = 0 open("/usr/lib/libcrypto.so.0.9.7", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\275\2\0004\0\0\0000\31\17\0\0\0\0\0004\0 \0\4\0(\0\35\0\32\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\354\304\r\0\354\304\r\0\5\0\0\0\0\20\0\0\1\0\0\0\0\320\r\0\0\320\r\0\0\320\r\0\314\21\1\0\330L\1\0\6\0\0\0\0\20\0\0\2\0\0\0\370\333\16\0\370\333\16\0\370\333\16\0\330\0\0\0\330\0\0\0\6\0\0\0\4\0\0\0P\345td\320\304\r\0\320\304\r\0\320\304\r\0\34\0\0\0\34\0\0\0\4\0\0\0\4\0\0\0\5\10\0\0\332\n\0\0\0\0\0\0\236\n\0\0\0\0\0\0002\7\0\0\0\0\0\0\0\0\0\0<\7\0\0\205\n"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0555, st_size=1143807, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400ca000 old_mmap(NULL, 990424, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x400cb000 old_mmap(0x401a8000, 73728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0xdd000) = 0x401a8000 old_mmap(0x401ba000, 11480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401ba000 close(5) = 0 open("/usr/lib/libpq.so.3", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`F\0\0004\0\0\0(N\1\0\0\0\0\0004\0 \0\3\0(\0\31\0\26\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T6\1\0T6\1\0\5\0\0\0\0\20\0\0\1\0\0\0\0@\1\0\0@\1\0\0@\1\0D\v\0\0\300\v\0\0\6\0\0\0\0\20\0\0\2\0\0\0\24G\1\0\24G\1\0\24G\1\0\360\0\0\0\360\0\0\0\6\0\0\0\4\0\0\0\7\1\0\0/\1\0\0\0\0\0\0\0\0\0\0k\0\0\0-\1\0\0\201\0\0\0\317\0\0\0\274\0\0\0\0\0\0\0\221\0\0\0\0\0\0\0\265\0\0\0\0\0\0\0$\1\0\0\351\0\0\0\0\0\0\0\364\0\0\0\0\0\0\0\373\0\0\0\0\0\0\0\34\1\0\0\32\1\0\0\333\0\0\0\302"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0755, st_size=99920, ...}) = 0 old_mmap(NULL, 84928, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x401bd000 old_mmap(0x401d1000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x14000) = 0x401d1000 close(5) = 0 open("/lib/libcrypt.so.1", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\n\0\0004\0\0\0\360\225\0\0\0\0\0\0004\0 \0\6\0(\0\34\0\31\0\6\0\0\0004\0\0\0004\0\0\0004\0\0\0\300\0\0\0\300\0\0\0\5\0\0\0\4\0\0\0\3\0\0\0,\200\0\0,\200\0\0,\200\0\0\23\0\0\0\23\0\0\0\4\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\200\0\0?\200\0\0\5\0\0\0\0\20\0\0\1\0\0\0@\200\0\0@\220\0\0@\220\0\0(\23\0\0\\\204\2\0\6\0\0\0\0\20\0\0\2\0\0\0\10\222\0\0\10\242\0\0\10\242\0\0\330\0\0\0\330\0\0\0\6\0\0\0\4\0\0\0\4\0\0\0\364\0\0\0\364\0\0\0\364\0\0\0 \0"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0755, st_size=43574, ...}) = 0 old_mmap(NULL, 201884, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x401d2000 old_mmap(0x401db000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x8000) = 0x401db000 old_mmap(0x401dd000, 156828, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401dd000 close(5) = 0 open("/lib/libdl.so.2", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\34\0\0004\0\0\0H$\0\0\0\0\0\0004\0 \0\6\0(\0\34\0\31\0\6\0\0\0004\0\0\0004\0\0\0004\0\0\0\300\0\0\0\300\0\0\0\5\0\0\0\4\0\0\0\3\0\0\0\242\36\0\0\242\36\0\0\242\36\0\0\23\0\0\0\23\0\0\0\4\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\265\36\0\0\265\36\0\0\5\0\0\0\0\20\0\0\1\0\0\0\0 \0\0\0 \0\0\0 \0\0\230\1\0\0\270\1\0\0\6\0\0\0\0\20\0\0\2\0\0\0\f \0\0\f \0\0\f \0\0\340\0\0\0\340\0\0\0\6\0\0\0\4\0\0\0\4\0\0\0\364\0\0\0\364\0\0\0\364\0\0\0 \0\0\0 \0"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0755, st_size=13625, ...}) = 0 old_mmap(NULL, 8632, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x40204000 old_mmap(0x40206000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x2000) = 0x40206000 close(5) = 0 open("/lib/libc.so.6", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0^\1\0004\0\0\0,\255\23\0\0\0\0\0004\0 \0\7\0(\0009\0006\0\6\0\0\0004\0\0\0004\0\0\0004\0\0\0\340\0\0\0\340\0\0\0\5\0\0\0\4\0\0\0\3\0\0\0\310\333\22\0\310\333\22\0\310\333\22\0\23\0\0\0\23\0\0\0\4\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0X\341\22\0X\341\22\0\5\0\0\0\0\20\0\0\1\0\0\0`\341\22\0`\361\22\0`\361\22\0\340B\0\0$m\0\0\6\0\0\0\0\20\0\0\2\0\0\0t \23\0t0\23\0t0\23\0\330\0\0\0\330\0\0\0\6\0\0\0\4\0\0\0\4\0\0\0\24\1\0\0\24\1\0\0\24\1\0\0 \0\0"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0755, st_size=1470060, ...}) = 0 old_mmap(NULL, 1269380, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x40207000 old_mmap(0x40336000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x12e000) = 0x40336000 old_mmap(0x4033b000, 7812, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4033b000 close(5) = 0 open("/lib/libnsl.so.1", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20<\0\0004\0\0\0\364#\1\0\0\0\0\0004\0 \0\6\0(\0\34\0\31\0\6\0\0\0004\0\0\0004\0\0\0004\0\0\0\300\0\0\0\300\0\0\0\5\0\0\0\4\0\0\0\3\0\0\0g\24\1\0g\24\1\0g\24\1\0\23\0\0\0\23\0\0\0\4\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0z\24\1\0z\24\1\0\5\0\0\0\0\20\0\0\1\0\0\0\200\24\1\0\200$\1\0\200$\1\0H\t\0\0\240*\0\0\6\0\0\0\0\20\0\0\2\0\0\0\304\31\1\0\304)\1\0\304)\1\0\330\0\0\0\330\0\0\0\6\0\0\0\4\0\0\0\4\0\0\0\364\0\0\0\364\0\0\0\364\0\0\0 \0\0\0 \0\0\0"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0755, st_size=89022, ...}) = 0 old_mmap(NULL, 85792, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x4033d000 old_mmap(0x4034f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x11000) = 0x4034f000 old_mmap(0x40350000, 7968, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40350000 close(5) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40352000 munmap(0x40016000, 86746) = 0 fcntl64(4, F_GETFD) = 0 getsockname(4, 0xbffffbc0, [28]) = -1 ENOTSOCK (Socket operation on non-socket) fstat64(4, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ --Boundary-00=_aIZdAkGl1HBuyv8-- From schrock@dayzed.com Fri Apr 9 00:08:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 41625C002801; Fri, 9 Apr 2004 00:08:13 +0300 (EEST) Received: from mail.dayzed.com (24-176-245-120.cs-cres.charterpipeline.net [24.176.245.120]) by talvi.dovecot.org (Postfix) with ESMTP id 4DE12C002800 for ; Fri, 9 Apr 2004 00:08:11 +0300 (EEST) Received: from dayzed.com (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with SMTP id 381291784E for ; Thu, 8 Apr 2004 14:03:06 -0700 (PDT) Received: from 66-224-116-226.atgi.net ([66.224.116.226]) (SquirrelMail authenticated user schrock) by new.host.name with HTTP; Thu, 8 Apr 2004 14:03:06 -0700 (PDT) Message-ID: <21447.66.224.116.226.1081458186.squirrel@new.host.name> Date: Thu, 8 Apr 2004 14:03:06 -0700 (PDT) From: "Avery Day" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] (no subject) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 21:08:13 -0000 X-UID: 8897 Status: O Sorry if this question has been asked before I looked through some of the archives before posting this. I am considering using dovecot on a small 35 user enviorment (only around 6 gigs of email) that will be primarly be used with squirrelmail for the MUA. I have been using dovecot for a few weeks now and really like it. It is a big improvement over uw-imap thats for sure. I was wondering how many people in this mailing list are using dovecot for a production email server, and why you chose to use dovecot over cyrus or courier. Or maybe someone feels that dovecot isnt ready for this type of thing just yet. I am all ears so please feel free. Thanks -- Avery From schrock@dayzed.com Fri Apr 9 00:09:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B780EC002802; Fri, 9 Apr 2004 00:09:31 +0300 (EEST) Received: from mail.dayzed.com (24-176-245-120.cs-cres.charterpipeline.net [24.176.245.120]) by talvi.dovecot.org (Postfix) with ESMTP id 34403C002801 for ; Fri, 9 Apr 2004 00:09:29 +0300 (EEST) Received: from dayzed.com (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with SMTP id 8FE031784E for ; Thu, 8 Apr 2004 14:04:24 -0700 (PDT) Received: from 66-224-116-226.atgi.net ([66.224.116.226]) (SquirrelMail authenticated user schrock) by new.host.name with HTTP; Thu, 8 Apr 2004 14:04:24 -0700 (PDT) Message-ID: <21540.66.224.116.226.1081458264.squirrel@new.host.name> Date: Thu, 8 Apr 2004 14:04:24 -0700 (PDT) From: "Avery Day" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Dovecot for production environment X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 21:09:31 -0000 X-UID: 8898 Status: O Sorry if this question has been asked before I looked through some of the archives before posting this. I am considering using dovecot on a small 35 user environment (only around 6 gigs of email) that will be primarly be used with squirrelmail for the MUA. I have been using dovecot for a few weeks now and really like it. It is a big improvement over uw-imap thats for sure. I was wondering how many people in this mailing list are using dovecot for a production email server, and why you chose to use dovecot over cyrus or courier. Or maybe someone feels that dovecot isnt ready for this type of thing just yet. I am all ears so please feel free. Thanks -- Avery -- Avery Day From james@powweb.com Fri Apr 9 00:32:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9267FC002802; Fri, 9 Apr 2004 00:32:17 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 2BBDEC002801 for ; Fri, 9 Apr 2004 00:32:15 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id 7A614B8E4C; Thu, 8 Apr 2004 14:27:01 -0700 (PDT) Message-ID: <4075C37B.5040704@powweb.com> Date: Thu, 08 Apr 2004 14:26:19 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040311 X-Accept-Language: en-us, en MIME-Version: 1.0 To: schrock@dayzed.com Subject: Re: [Dovecot] Dovecot for production environment References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> In-Reply-To: <21540.66.224.116.226.1081458264.squirrel@new.host.name> Content-Type: multipart/mixed; boundary="------------040304030409040708010801" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 21:32:17 -0000 X-UID: 8899 Status: O Content-Length: 2145 This is a multi-part message in MIME format. --------------040304030409040708010801 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit We just started using it on a system with more than 50,000 users and it works quite nicely. Migrating from uw-imap to dovecot caused a few problems with some user's mail clients, like Mozilla mail based clients issued command that cuased the server to respond with "Invalid mask", and Eudora's SASL AUTH doesn't seem to work with the pop server, but other than that it seems to work great. Any word when we are going to see 1.0 =) Avery Day wrote: >Sorry if this question has been asked before I looked through some of the >archives before posting this. > >I am considering using dovecot on a small 35 user environment (only around >6 gigs of email) that will be primarly be used with squirrelmail for the >MUA. I have been using dovecot for a few weeks now and really like it. It >is a big improvement over uw-imap thats for sure. I was wondering how many >people in this mailing list are using dovecot for a production email >server, and why you chose to use dovecot over cyrus or courier. Or maybe >someone feels that dovecot isnt ready for this type of thing just yet. I >am all ears so please feel free. > >Thanks > > -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------040304030409040708010801 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------040304030409040708010801-- From roselius@batky-howell.com Fri Apr 9 00:36:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0FBF3C002802; Fri, 9 Apr 2004 00:36:02 +0300 (EEST) Received: from www.batky-howell.com (www.batky-howell.com [65.105.210.210]) by talvi.dovecot.org (Postfix) with ESMTP id CAD02C002801 for ; Fri, 9 Apr 2004 00:35:59 +0300 (EEST) Received: from roselius by www.batky-howell.com with local (Exim 4.30) id 1BBh8z-0001GS-5z for dovecot@dovecot.org; Thu, 08 Apr 2004 15:33:05 -0600 Subject: Re: [Dovecot] Re: Dovecot died due to some SSL related error In-Reply-To: To: dovecot@dovecot.org Date: Thu, 8 Apr 2004 15:33:05 -0600 (MDT) Sender: roselius@batky-howell.com From: rhr-dovecot@batky-howell.com X-Mailer: ELM [version 2.4ME+ PL111 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Message-Id: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: rhr-dovecot@batky-howell.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 21:36:02 -0000 X-UID: 8900 Status: O Content-Length: 3583 Following up to myself - per an email request from a new subscriber, here's my script and crontab entry for checking and restarting dovecot on Redhat/Fedora. This catches a crashed dovecot at least once a day, sometimes several, all due to the "PRNG not seeded" thing on Fedora. I could have just let the cron daemon email the results to root like any other cron job, but I wanted a copy to my own account. Running on a couple of hosts - MYHOST replaced with actual hostname, MY-PERSONAL@EMAIL.ADDR replaced with ... well you get the picture. Hope it's useful, Rob root Crontab: ============================================================================= ## Run once every minute, always. * * * * * /root/CronJobs/cron.chk_dovecot >/dev/null 2>&1 ============================================================================= Script: /root/CronJobs/cron.chk_dovecot ============================================================================= #!/bin/bash if ! pgrep -x dovecot then if [ -f /var/lock/subsys/dovecot ]; then if rm -f /var/lock/subsys/dovecot ; then MsgRmLock="Lock file /var/lock/subsys/dovecot removed." else MsgRmLock="Unable to remove lock file /var/lock/subsys/dovecot." fi else MsgRmLock="No lock file found: /var/lock/subsys/dovecot." fi if /etc/init.d/dovecot start; then MsgStart="Dovecot started." else MsgStart="Unable to start Dovecot." fi if pgrep -x dovecot; then MsgRunning="Dovecot running." else MsgRunning="Dovecot not running. To restart, run (as root): /etc/init.d/dovecot start" fi mail -s "MYHOST DOVECOT NOT RUNNING `date '+%R %D'`" -c root MY-PERSONAL@EMAIL.ADDR < (Sorry, just joined the list, can't reply in the original message > from Feb 4.) > > Feb 4 11:18:27 hundehuette imap-login: RAND_bytes() failed: > > error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not > > seeded > > Feb 4 11:18:27 hundehuette dovecot: Login process died too early - > > shutting down > > [...] > > Hi, > > No idea, but I'm getting the same thing, at least once a day, > sometimes several times a day. I tried putting a .rnd file in > /var/libexec/dovecot, no help. > > - Fedora Core 1.0 > - dovecot-0.99.10-6 > - openssl-0.9.7a-23 > - About 20 users, using pop, pops, imap, imaps. > > I had to run a cron job that checks every minute to see if dovecot > is running, and restart it if it isn't. I'd love to get this figured > out, though. I see another message about this in the list archives, > at the end of January. I'll post if I find anything... > > Rob From redjar@redjar.org Fri Apr 9 00:39:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A5BF4C002802; Fri, 9 Apr 2004 00:39:22 +0300 (EEST) Received: from mute.marlboro.edu (mute.marlboro.edu [12.6.230.75]) by talvi.dovecot.org (Postfix) with ESMTP id B19C6C002801 for ; Fri, 9 Apr 2004 00:39:19 +0300 (EEST) Received: from mdhcp5-230.marlboro.edu ([10.1.5.230]) by mute.marlboro.edu with esmtp (Exim 3.35 #1 (Debian)) id 1BBhA4-0003FW-00; Thu, 08 Apr 2004 17:34:12 -0400 In-Reply-To: <21540.66.224.116.226.1081458264.squirrel@new.host.name> References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Jared Subject: Re: [Dovecot] Dovecot for production environment Date: Thu, 8 Apr 2004 17:35:55 -0400 To: dovecot@dovecot.org X-Mailer: Apple Mail (2.613) X-Marlboro-MailScanner: clean X-Marlboro-SpamCheck: not spam, SpamAssassin (score=-4.867, required 7, AWL 0.03, BAYES_00 -4.90) Cc: schrock@dayzed.com X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 21:39:22 -0000 X-UID: 8901 Status: O Content-Length: 2202 I am running it in a production environment with about 500 users. I wasn't particularly excited about running pre 1.0 pop3 imap server software but it had all the features I was after. I was looking for: - LDAP authentication - POP3, POP3S, IMAP, IMAPS - mbox support (simultaneous support for maildir is also nice since we'll hopefully migrate sometime soon.) - easy but powerful configuration - a nice responsive developer and support community - uw-imap compatibility (that's what we were running before) - written with security in mind - good documentation - open source and Free It's also nicely packaged for debian by the nice folks at braincells.com. I've been mostly happy. Some things still feel a little fragile. We've had corrupted mboxes a few times, but I haven't had time to figure what is at fault. I suppose certain pop clients could be the problem. The LDAP authentication doesn't seem to work well with stunnel. Other than these few small blips, it's been running flawlessly for over 8 months. One other concern which worries me a little, is that the primary developer Timo seems to have gotten busy or uninterested recently. He was clearly going above and beyond by responding to every question within minutes, but looking at the archives recently he is posting a lot less. I just hope he's busy and not burned out because his work on dovecot is amazing. -jared On Apr 8, 2004, at 5:04 PM, Avery Day wrote: > > Sorry if this question has been asked before I looked through some of > the > archives before posting this. > > I am considering using dovecot on a small 35 user environment (only > around > 6 gigs of email) that will be primarly be used with squirrelmail for > the > MUA. I have been using dovecot for a few weeks now and really like it. > It > is a big improvement over uw-imap thats for sure. I was wondering how > many > people in this mailing list are using dovecot for a production email > server, and why you chose to use dovecot over cyrus or courier. Or > maybe > someone feels that dovecot isnt ready for this type of thing just yet. > I > am all ears so please feel free. > > Thanks > -- > Avery > > > > -- > Avery Day > From skvidal@phy.duke.edu Fri Apr 9 00:40:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 33F6FC002801; Fri, 9 Apr 2004 00:40:04 +0300 (EEST) Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by talvi.dovecot.org (Postfix) with ESMTP id 80118C002804 for ; Fri, 9 Apr 2004 00:39:53 +0300 (EEST) Received: from [152.3.182.42] (opus.phy.duke.edu [152.3.182.42]) by mail.phy.duke.edu (Postfix) with ESMTP id AA705A7AED; Thu, 8 Apr 2004 17:34:48 -0400 (EDT) Subject: Re: [Dovecot] Dovecot for production environment From: seth vidal To: James Moser In-Reply-To: <4075C37B.5040704@powweb.com> References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> Content-Type: text/plain Message-Id: <1081460101.31283.25.camel@opus.phy.duke.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-1) Date: Thu, 08 Apr 2004 17:35:01 -0400 Content-Transfer-Encoding: 7bit Cc: schrock@dayzed.com, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 21:40:04 -0000 X-UID: 8902 Status: O On Thu, 2004-04-08 at 17:26, James Moser wrote: > We just started using it on a system with more than 50,000 users and it > works quite nicely. Migrating from uw-imap to dovecot caused a few > problems with some user's mail clients, like Mozilla mail based clients > issued command that cuased the server to respond with "Invalid mask", > and Eudora's SASL AUTH doesn't seem to work with the pop server, but > other than that it seems to work great. > Just b/c I'm curious (and if you want take this offlist is fine) what's your setup look like for this system? Do you have a whitepaper or a layout for it? Thanks, -sv From dr@jones.dk Fri Apr 9 00:52:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 213B6C002801; Fri, 9 Apr 2004 00:52:59 +0300 (EEST) Received: from auryn.jones.dk (cpe.atm0-0-0-1201001.0x503f72d6.albnxx2.customer.tele.dk [80.63.114.214]) by talvi.dovecot.org (Postfix) with ESMTP id CB28EC002800 for ; Fri, 9 Apr 2004 00:52:56 +0300 (EEST) Received: from jones.dk (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id 466E03F2136 for ; Thu, 8 Apr 2004 23:47:56 +0200 (CEST) Message-ID: <4075C88B.7090102@jones.dk> Date: Thu, 08 Apr 2004 23:47:55 +0200 From: Jonas Smedegaard User-Agent: Mozilla Thunderbird 0.5 (X11/20040313) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot for production environment References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> <1081460101.31283.25.camel@opus.phy.duke.edu> In-Reply-To: <1081460101.31283.25.camel@opus.phy.duke.edu> X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: multipart/mixed; boundary="------------070500040500000807060501" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 21:52:59 -0000 X-UID: 8903 Status: O Content-Length: 2189 This is a multi-part message in MIME format. --------------070500040500000807060501 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 seth vidal wrote: | On Thu, 2004-04-08 at 17:26, James Moser wrote: | |>We just started using it on a system with more than 50,000 users and it= |>works quite nicely. Migrating from uw-imap to dovecot caused a few |>problems with some user's mail clients, like Mozilla mail based clients= |>issued command that cuased the server to respond with "Invalid mask", |>and Eudora's SASL AUTH doesn't seem to work with the pop server, but |>other than that it seems to work great. |> | | | Just b/c I'm curious (and if you want take this offlist is fine) what's= | your setup look like for this system? Do you have a whitepaper or a | layout for it? Please use the list. Also, I am interested in the migration process. If you used scripts (like switch from mbox to Maildir) then which one(s), and did you do some finetuning to them? Did you use the "move to mbox" feature of uw-imap, and if you did how did you handle that when you switched? Any tricks and experiences are much appreciated. ~ - Jonas - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er n=E6r: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFAdciKn7DbMsAkQLgRAiupAJ9KmysGJhhEdtiQO0CXrDFVbtNC4gCePCF7 8QttYJL6hAmJtaM2uxHN5W0=3D =3DbHsg -----END PGP SIGNATURE----- --------------070500040500000807060501 Content-Type: text/x-vcard; charset=utf8; name="dr.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="dr.vcf" begin:vcard fn:Jonas Smedegaard n:Smedegaard;Jonas org:IT-guide dr. Jones adr:;;Munksoegaard 3;Roskilde;;4000;Denmark email;internet:dr@jones.dk title:Internet Architect tel;work:+45 40843136 tel;home:+45 40843136 tel;cell:+45 40843136 x-mozilla-html:FALSE url:http://dr.jones.dk/ version:2.1 end:vcard --------------070500040500000807060501-- From mem@mv.mv.com Fri Apr 9 00:54:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5AFC4C002802; Fri, 9 Apr 2004 00:54:30 +0300 (EEST) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id BAA5FC002800 for ; Fri, 9 Apr 2004 00:54:27 +0300 (EEST) Received: (qmail 13695 invoked from network); 8 Apr 2004 17:49:24 -0400 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 8 Apr 2004 17:49:24 -0400 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 19319 invoked by uid 101); 8 Apr 2004 17:49:24 -0400 From: "Mark E. Mallett" Date: Thu, 8 Apr 2004 17:49:23 -0400 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot for production environment Message-ID: <20040408214923.GE8044@iridium.mv.net> References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 21:54:30 -0000 X-UID: 8904 Status: O Content-Length: 1310 > > I was looking for: > > - LDAP authentication > - POP3, POP3S, IMAP, IMAPS > - mbox support (simultaneous support for maildir is also nice since > we'll hopefully migrate sometime soon.) > - easy but powerful configuration > - a nice responsive developer and support community > - uw-imap compatibility (that's what we were running before) > - written with security in mind > - good documentation > - open source and Free We're using it here on two mailservers and I echo the above comments. > One other concern which worries me a little, is that the primary > developer Timo seems to have gotten busy or uninterested recently. He > was clearly going above and beyond by responding to every question > within minutes, but looking at the archives recently he is posting a > lot less. I just hope he's busy and not burned out because his work on > dovecot is amazing. He probably is busy but I kinda have the opposite perspective. Seems to me he got it into a shape where it was working quite well before going off and doing a lot of violence to the code for the next iteration. It's nice to have progress but stable checkpoints are good too. I dunno, can't have everything I guess :-) If there were some real show-stoppers in what we're running now I'd probably have a different opinion. mm From andrew@mux.org.uk Fri Apr 9 01:03:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BBF4AC002801; Fri, 9 Apr 2004 01:03:09 +0300 (EEST) Received: from 82-41-155-225.cable.ubr01.linl.blueyonder.co.uk (82-41-155-225.cable.ubr01.linl.blueyonder.co.uk [82.41.155.225]) by talvi.dovecot.org (Postfix) with ESMTP id 94AA3C002800 for ; Fri, 9 Apr 2004 01:03:07 +0300 (EEST) Received: from mux.org.uk (spatula.home [192.168.0.4]) by gateway.home (Postfix) with ESMTP id 21FCFF0; Thu, 8 Apr 2004 22:57:59 +0100 (BST) Message-ID: <4075CAE6.6020401@mux.org.uk> Date: Thu, 08 Apr 2004 22:57:58 +0100 From: Andrew Boothman User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jared Subject: Re: [Dovecot] Dovecot for production environment References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: schrock@dayzed.com, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 22:03:09 -0000 X-UID: 8905 Status: O Jared wrote: > One other concern which worries me a little, is that the primary > developer Timo seems to have gotten busy or uninterested recently. He > was clearly going above and beyond by responding to every question > within minutes, but looking at the archives recently he is posting a lot > less. I just hope he's busy and not burned out because his work on > dovecot is amazing. Timo posted recently and said: > Sorry about the lack of replies to questions in this list. Work on the > new indexing code has taken way too long, but it's finally beginning > to be get near usable state. After it's fully working, I'll start > being more active here again. So I hope that he will be increasingly active on the list again, but there's little point in second guessing the reasons for his absence. I also am increadably impressed with Dovecot so far, and would like to use it in larger installations once its small outstanding problems are fixed and it reaches 1.0. Andrew From james@powweb.com Fri Apr 9 01:03:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CE29CC002800; Fri, 9 Apr 2004 01:03:45 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 44B03C00280B for ; Fri, 9 Apr 2004 01:03:20 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id 12799B8E5A; Thu, 8 Apr 2004 14:58:14 -0700 (PDT) Message-ID: <4075CACC.9000908@powweb.com> Date: Thu, 08 Apr 2004 14:57:32 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040311 X-Accept-Language: en-us, en MIME-Version: 1.0 To: seth vidal Subject: Re: [Dovecot] Dovecot for production environment References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> <1081460101.31283.25.camel@opus.phy.duke.edu> In-Reply-To: <1081460101.31283.25.camel@opus.phy.duke.edu> Content-Type: multipart/mixed; boundary="------------040702050005060106030403" Cc: schrock@dayzed.com, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 22:03:48 -0000 X-UID: 8906 Status: O Content-Length: 4388 This is a multi-part message in MIME format. --------------040702050005060106030403 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit I'll tell ya anything you wanna know... I'm using FreeBSD 4.9, here is my how I currently configuered it (didn't use the ports).. ./configure --without-shadow --without-pam --without-passwd-file --without-static-userdb --disable-ipv6 --localstatedir=/var \ --with-ssl=openssl --with-ssldir=/var/dovecot/ssl --with-pop3d --with-storages=mbox I had the default configure options working too, I just wanted to remove everything I didn't need to increase performance, maybe it doesn't matter... I didn't see much of a change. We are currently using mbox, and hopefully someday will be converting to maildir, but one step at a time... this is actually one of the reasons I choose to try dovecot. My dovecot.conf configuration is attached... mostly defaults with some exceptions.... if anyone has some recommendations that'd be great... I have all caching turned off for Imap for other reasons, but it might work fine for you. seth vidal wrote: >On Thu, 2004-04-08 at 17:26, James Moser wrote: > > >>We just started using it on a system with more than 50,000 users and it >>works quite nicely. Migrating from uw-imap to dovecot caused a few >>problems with some user's mail clients, like Mozilla mail based clients >>issued command that cuased the server to respond with "Invalid mask", >>and Eudora's SASL AUTH doesn't seem to work with the pop server, but >>other than that it seems to work great. >> >> >> > >Just b/c I'm curious (and if you want take this offlist is fine) what's >your setup look like for this system? Do you have a whitepaper or a >layout for it? > >Thanks, >-sv > > > > -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------040702050005060106030403 Content-Type: text/plain; name="dovecot.conf" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dovecot.conf" base_dir = /var/dovecot/ protocols = imap imaps pop3 pop3s imaps_listen = * pop3s_listen = * ssl_cert_file = /var/dovecot/ssl/certs/imapd.pem ssl_key_file = /var/dovecot/ssl/private/imapd.pem ssl_parameters_file = /var/dovecot/ssl/parameters.dat login_dir = /var/dovecot/login login_chroot = yes login = imap login_executable = /usr/local/libexec/dovecot/imap-login login_user = dovecot login_process_size = 0 login_process_per_connection = no login_processes_count = 1 login = pop3 login_executable = /usr/local/libexec/dovecot/pop3-login verbose_proctitle = yes verbose_ssl = yes first_valid_uid = 500 first_valid_gid = 500 valid_chroot_dirs = /var/mail default_mail_env = mbox:%h:INBOX=/var/mail/%u mail_cache_fields = mail_never_cache_fields = MessagePart Bodystructure Body Envelope client_workarounds = oe6-fetch-no-newmail outlook-idle mailbox_check_interval = 0 mailbox_idle_check_interval = 0 mail_full_filesystem_access = no # Save mails with CR+LF instead of plain LF. This makes sending those mails # take less CPU, especially with sendfile() syscall with Linux and FreeBSD. # But it also creates a bit more disk I/O which may just make it slower. mail_save_crlf = yes maildir_copy_with_hardlinks = yes maildir_check_content_changes = no mbox_locks = fcntl imap_executable = /usr/local/libexec/dovecot/imap pop3_executable = /usr/local/libexec/dovecot/pop3 auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = passwd auth_executable = /usr/local/libexec/dovecot/dovecot-auth auth_user = root auth_count = 5 auth_verbose = yes --------------040702050005060106030403 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------040702050005060106030403-- From james@powweb.com Fri Apr 9 01:10:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 43B70C002801; Fri, 9 Apr 2004 01:10:48 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 9242AC002800 for ; Fri, 9 Apr 2004 01:10:45 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id CD696B8E7A; Thu, 8 Apr 2004 15:05:39 -0700 (PDT) Message-ID: <4075CC8A.1080500@powweb.com> Date: Thu, 08 Apr 2004 15:04:58 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040311 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jonas Smedegaard Subject: Re: [Dovecot] Dovecot for production environment References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> <1081460101.31283.25.camel@opus.phy.duke.edu> <4075C88B.7090102@jones.dk> In-Reply-To: <4075C88B.7090102@jones.dk> Content-Type: multipart/mixed; boundary="------------040504090201000708030407" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 22:10:48 -0000 X-UID: 8907 Status: O Content-Length: 3243 This is a multi-part message in MIME format. --------------040504090201000708030407 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit I didn't convert any mail files... I did copy the .mailboxlist to .subscriptions since dovecot uses a different filename than uw-imap, and I edited the C code so that the pop server wouldn't adervtise it supported SASL PLAIN to make Eudora users happy. For some users, deleting their account settings and resetting them up took care of the Invalid mask problem. I had that problem with Mozilla mail, and two other people had the problem with Mozilla Thunderbird. If it becomes a big enough problem its easy enough to comment out one line of code in dovecot so it won't reply with this error message. Thats it... overall the migration was pretty easy.. Jonas Smedegaard wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > seth vidal wrote: > | On Thu, 2004-04-08 at 17:26, James Moser wrote: > | > |>We just started using it on a system with more than 50,000 users and it > |>works quite nicely. Migrating from uw-imap to dovecot caused a few > |>problems with some user's mail clients, like Mozilla mail based clients > |>issued command that cuased the server to respond with "Invalid mask", > |>and Eudora's SASL AUTH doesn't seem to work with the pop server, but > |>other than that it seems to work great. > |> > | > | > | Just b/c I'm curious (and if you want take this offlist is fine) what's > | your setup look like for this system? Do you have a whitepaper or a > | layout for it? > > Please use the list. > > Also, I am interested in the migration process. If you used scripts > (like switch from mbox to Maildir) then which one(s), and did you do > some finetuning to them? Did you use the "move to mbox" feature of > uw-imap, and if you did how did you handle that when you switched? > > Any tricks and experiences are much appreciated. > > ~ - Jonas > > - -- > * Jonas Smedegaard - idealist og Internet-arkitekt > * Tlf.: +45 40843136 Website: http://dr.jones.dk/ > > ~ - Enden er nær: http://www.shibumi.org/eoti.htm > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.2.4 (GNU/Linux) > Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org > > iD8DBQFAdciKn7DbMsAkQLgRAiupAJ9KmysGJhhEdtiQO0CXrDFVbtNC4gCePCF7 > 8QttYJL6hAmJtaM2uxHN5W0= > =bHsg > -----END PGP SIGNATURE---- > - -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------040504090201000708030407 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------040504090201000708030407-- From james@powweb.com Fri Apr 9 01:14:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AD33EC002802; Fri, 9 Apr 2004 01:14:47 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 6A9EEC002800 for ; Fri, 9 Apr 2004 01:14:45 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id 71819B8EC7; Thu, 8 Apr 2004 15:09:39 -0700 (PDT) Message-ID: <4075CD79.7040704@powweb.com> Date: Thu, 08 Apr 2004 15:08:57 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040311 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jared Subject: Re: [Dovecot] Dovecot for production environment References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> In-Reply-To: Content-Type: multipart/mixed; boundary="------------040100090603060704030601" Cc: schrock@dayzed.com, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 22:14:47 -0000 X-UID: 8908 Status: O Content-Length: 1297 This is a multi-part message in MIME format. --------------040100090603060704030601 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Jared wrote: > - mbox support (simultaneous support for maildir is also nice since > we'll hopefully migrate sometime soon.) Wow, it keeps getting better and better... is this possible (simultaneous support)? If so how exactly? It would probably make a future migration easier. -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------040100090603060704030601 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------040100090603060704030601-- From rjohnson@medata.com Fri Apr 9 02:23:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 38ED6C002802; Fri, 9 Apr 2004 02:23:54 +0300 (EEST) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id 714EDC002800 for ; Fri, 9 Apr 2004 02:23:51 +0300 (EEST) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i38NIiSD010679 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 8 Apr 2004 16:18:44 -0700 Message-ID: <4075DDD7.9060403@medata.com> Date: Thu, 08 Apr 2004 16:18:47 -0700 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040404) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] (no subject) References: <21447.66.224.116.226.1081458186.squirrel@new.host.name> In-Reply-To: <21447.66.224.116.226.1081458186.squirrel@new.host.name> X-Enigmail-Version: 0.83.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.70rc, clamav-milter version 0.70 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 23:23:54 -0000 X-UID: 8909 Status: O Content-Length: 1971 Avery Day wrote: > Sorry if this question has been asked before I looked through some of the > archives before posting this. > > I am considering using dovecot on a small 35 user enviorment (only around > 6 gigs of email) that will be primarly be used with squirrelmail for the > MUA. I have been using dovecot for a few weeks now and really like it. It > is a big improvement over uw-imap thats for sure. I was wondering how many > people in this mailing list are using dovecot for a production email > server, and why you chose to use dovecot over cyrus or courier. Or maybe > someone feels that dovecot isnt ready for this type of thing just yet. I > am all ears so please feel free. > > Thanks I presently use Dovecot (converted to MailDir) for IMAP/IMAPS along with SquirrelMail on a Red Hat 9 server. This serves about 150 users. I chose Dovecot because it provided the Maildir format advantages for large mail stores, but offered me an easy way to convert from uw-imap while keeping the mbox format during the transition. While I'd still like to have the quota capabilities of Courier or Cyrus (not sure which has it), I've found Dovecot to do very well in terms of performance. It's extensability means I have room for future growth in the event that I may want to try LDAP or SQL authentication in the future. I initially had some growing pains with Dovecot, however the latest revision seemed to take care of most of it. My only pain now is more client related in that Mozilla doesn't clear previous customflags before assigning new ones - which makes removing labels in certain cases difficult or impossible. I think Mozilla has addressed this in the latest Trunk, however as well. All and all, I and my company are happy that we made the switch from uw-imap to dovecot. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From rjohnson@medata.com Fri Apr 9 02:28:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B6BE5C002802; Fri, 9 Apr 2004 02:28:54 +0300 (EEST) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id 24B95C002800 for ; Fri, 9 Apr 2004 02:28:52 +0300 (EEST) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i38NNjSD011196 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 8 Apr 2004 16:23:45 -0700 Message-ID: <4075DF04.20501@medata.com> Date: Thu, 08 Apr 2004 16:23:48 -0700 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040404) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot for production environment References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> <1081460101.31283.25.camel@opus.phy.duke.edu> <4075C88B.7090102@jones.dk> In-Reply-To: <4075C88B.7090102@jones.dk> X-Enigmail-Version: 0.83.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.70rc, clamav-milter version 0.70 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 23:28:54 -0000 X-UID: 8910 Status: O Jonas Smedegaard wrote: > Also, I am interested in the migration process. If you used scripts > (like switch from mbox to Maildir) then which one(s), and did you do > some finetuning to them? Did you use the "move to mbox" feature of > uw-imap, and if you did how did you handle that when you switched? Feel free to search the archives - I recently did a mbox to Maildir conversion, and posted the scripts I used to accomplish this. It worked well in my environment - and was able to traverse a few levels down for uses who had sub-folders. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From schrock@dayzed.com Fri Apr 9 02:58:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9075AC002802; Fri, 9 Apr 2004 02:58:24 +0300 (EEST) Received: from mail.dayzed.com (24-176-245-120.cs-cres.charterpipeline.net [24.176.245.120]) by talvi.dovecot.org (Postfix) with ESMTP id 5DACBC002800 for ; Fri, 9 Apr 2004 02:58:22 +0300 (EEST) Received: from 192.168.50.2 (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with SMTP id 3E28B1784E for ; Thu, 8 Apr 2004 16:53:17 -0700 (PDT) Received: from 192.168.50.6 (SquirrelMail authenticated user schrock) by dayzed.com with HTTP; Thu, 8 Apr 2004 16:53:17 -0700 (PDT) Message-ID: <33186.192.168.50.6.1081468397.squirrel@dayzed.com> In-Reply-To: <4075DF04.20501@medata.com> References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> <1081460101.31283.25.camel@opus.phy.duke.edu><4075C88B.7090102@jones.dk> <4075DF04.20501@medata.com> Date: Thu, 8 Apr 2004 16:53:17 -0700 (PDT) Subject: Re: [Dovecot] Dovecot for production environment From: "Avery Day" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2004 23:58:24 -0000 X-UID: 8911 Status: O Content-Length: 1045 > Jonas Smedegaard wrote: >> Also, I am interested in the migration process. If you used scripts >> (like switch from mbox to Maildir) then which one(s), and did you do >> some finetuning to them? Did you use the "move to mbox" feature of >> uw-imap, and if you did how did you handle that when you switched? > > Feel free to search the archives - I recently did a mbox to Maildir > conversion, and posted the scripts I used to accomplish this. It worked > well in my environment - and was able to traverse a few levels down for > uses who had sub-folders. > > -Rick > -- > Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com > Linux/Network Administrator - Medata, Inc. > PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc > > I just migrated my email system at home from mbox to maildir using mb2md.pl http://batleth.sapienti-sat.org/projects/mb2md/ it was as easy as mb2md-3.20.pl -R -s ~/mail -d ~/Maildir This is a really cool tool. It was also the best one around that I could find. -- Avery Day From schrock@dayzed.com Fri Apr 9 03:27:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 92A0CC002802; Fri, 9 Apr 2004 03:27:00 +0300 (EEST) Received: from mail.dayzed.com (24-176-245-120.cs-cres.charterpipeline.net [24.176.245.120]) by talvi.dovecot.org (Postfix) with ESMTP id E3D0DC002800 for ; Fri, 9 Apr 2004 03:26:57 +0300 (EEST) Received: from 192.168.50.2 (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with SMTP id CC9181784E for ; Thu, 8 Apr 2004 17:21:52 -0700 (PDT) Received: from 192.168.50.6 (SquirrelMail authenticated user schrock) by dayzed.com with HTTP; Thu, 8 Apr 2004 17:21:52 -0700 (PDT) Message-ID: <33261.192.168.50.6.1081470112.squirrel@dayzed.com> In-Reply-To: References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> Date: Thu, 8 Apr 2004 17:21:52 -0700 (PDT) Subject: Re: [Dovecot] Dovecot for production environment From: "Avery Day" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2004 00:27:00 -0000 X-UID: 8912 Status: O Content-Length: 2841 > I am running it in a production environment with about 500 users. I > wasn't particularly excited about running pre 1.0 pop3 imap server > software but it had all the features I was after. > > I was looking for: > > - LDAP authentication > - POP3, POP3S, IMAP, IMAPS > - mbox support (simultaneous support for maildir is also nice since > we'll hopefully migrate sometime soon.) > - easy but powerful configuration > - a nice responsive developer and support community > - uw-imap compatibility (that's what we were running before) > - written with security in mind > - good documentation > - open source and Free > > It's also nicely packaged for debian by the nice folks at > braincells.com. > > I've been mostly happy. Some things still feel a little fragile. > We've had corrupted mboxes a few times, but I haven't had time to > figure what is at fault. I suppose certain pop clients could be the > problem. The LDAP authentication doesn't seem to work well with > stunnel. Other than these few small blips, it's been running flawlessly > for over 8 months. > > One other concern which worries me a little, is that the primary > developer Timo seems to have gotten busy or uninterested recently. He > was clearly going above and beyond by responding to every question > within minutes, but looking at the archives recently he is posting a > lot less. I just hope he's busy and not burned out because his work on > dovecot is amazing. > > -jared > > > On Apr 8, 2004, at 5:04 PM, Avery Day wrote: > >> >> Sorry if this question has been asked before I looked through some of >> the >> archives before posting this. >> >> I am considering using dovecot on a small 35 user environment (only >> around >> 6 gigs of email) that will be primarly be used with squirrelmail for >> the >> MUA. I have been using dovecot for a few weeks now and really like it. >> It >> is a big improvement over uw-imap thats for sure. I was wondering how >> many >> people in this mailing list are using dovecot for a production email >> server, and why you chose to use dovecot over cyrus or courier. Or >> maybe >> someone feels that dovecot isnt ready for this type of thing just yet. >> I >> am all ears so please feel free. >> >> Thanks >> -- >> Avery >> >> >> >> -- >> Avery Day >> > > quote: ---------------- corrupted mboxes ---------------- Well thats not cool at all. I have been dealing with corrupt mailboxes for the last year on our exchange server. Infact I will be migrating the entire email system from exchange server to a postfix+dovecot+spamassassin+procmail+mailfilter setup hopefully in the next month or two. But hearing about corrupt mailboxes sends shivers up my spine. Infact I didn't think it was possible to have corruption or at least next to impossible with a unix type mailbox systems. -- Avery Day From skvidal@phy.duke.edu Fri Apr 9 08:08:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1D9E7C002801; Fri, 9 Apr 2004 08:08:48 +0300 (EEST) Received: from mail.phy.duke.edu (mail.phy.duke.edu [152.3.182.2]) by talvi.dovecot.org (Postfix) with ESMTP id 4C8DCC002800 for ; Fri, 9 Apr 2004 08:08:43 +0300 (EEST) Received: from [192.168.0.3] (rdu57-248-095.nc.rr.com [66.57.248.95]) by mail.phy.duke.edu (Postfix) with ESMTP id C36F1A7846; Fri, 9 Apr 2004 01:03:38 -0400 (EDT) Subject: Re: [Dovecot] Dovecot for production environment From: seth vidal To: James Moser In-Reply-To: <4075CACC.9000908@powweb.com> References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> <1081460101.31283.25.camel@opus.phy.duke.edu> <4075CACC.9000908@powweb.com> Content-Type: text/plain Message-Id: <1081487017.5775.73.camel@binkley> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.5.5 (1.5.5-1) Date: Fri, 09 Apr 2004 01:03:38 -0400 Content-Transfer-Encoding: 7bit Cc: schrock@dayzed.com, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2004 05:08:48 -0000 X-UID: 8913 Status: O On Thu, 2004-04-08 at 14:57 -0700, James Moser wrote: > I'll tell ya anything you wanna know... I'm using FreeBSD 4.9, here is > my how I currently configuered it (didn't use the ports).. > I'm actually curious about: 1. how many systems? 2. how many concurrent users? 3. what type of hw is this on? 4. what type of mail volume do you have to deal with? Thanks for all the info - the central powers at duke that be just went through a fairly massive mail system migration and I'm just curious about other systems of similar scale 50K users is similar scale. Thanks -sv From james@powweb.com Fri Apr 9 08:15:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E7A07C002801; Fri, 9 Apr 2004 08:15:44 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 18076C002800 for ; Fri, 9 Apr 2004 08:15:42 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id 53BA1B8E5A; Thu, 8 Apr 2004 22:10:33 -0700 (PDT) Message-ID: <4076301E.9040304@powweb.com> Date: Thu, 08 Apr 2004 22:09:50 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040311 X-Accept-Language: en-us, en MIME-Version: 1.0 To: seth vidal Subject: Re: [Dovecot] Dovecot for production environment References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> <1081460101.31283.25.camel@opus.phy.duke.edu> <4075CACC.9000908@powweb.com> <1081487017.5775.73.camel@binkley> In-Reply-To: <1081487017.5775.73.camel@binkley> Content-Type: multipart/mixed; boundary="------------020904070403020500030205" Cc: schrock@dayzed.com, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2004 05:15:45 -0000 X-UID: 8914 Status: O Content-Length: 4172 This is a multi-part message in MIME format. --------------020904070403020500030205 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit That was 50,221 users on one dual processor (PIII 3.02Ghz Xeon) dell 2650 with 4gigs of ram. I'm not sure about concurrent users, but we have as many as 10 to 15 authenticated connections per second. mail01# tail -f /var/log/maillog |grep Login Apr 8 22:07:57 mail01 pop3-login: Login: tinamc [66.74.103.232] Apr 8 22:07:57 mail01 pop3-login: Login: rsqm [66.130.185.91] Apr 8 22:07:57 mail01 pop3-login: Login: jbenalluch [69.140.148.204] Apr 8 22:07:57 mail01 pop3-login: Login: mrjensen [24.0.200.132] Apr 8 22:07:57 mail01 pop3-login: Login: papabear3 [67.38.17.200] Apr 8 22:07:57 mail01 pop3-login: Login: guetta [68.161.98.196] Apr 8 22:07:57 mail01 pop3-login: Login: 10807.postma [24.20.89.23] Apr 8 22:07:58 mail01 pop3-login: Login: ddove [12.202.143.197] Apr 8 22:07:58 mail01 pop3-login: Login: 12061.sarah [66.214.64.87] Apr 8 22:07:58 mail01 pop3-login: Login: lmcooper [148.64.10.179] Apr 8 22:07:58 mail01 pop3-login: Login: k2kast [68.232.127.204] Apr 8 22:07:58 mail01 pop3-login: Login: 4835.uspromo [68.224.241.105] Apr 8 22:07:58 mail01 pop3-login: Login: hnconner [209.17.161.60] Apr 8 22:07:58 mail01 pop3-login: Login: kbechtel [216.153.176.93] Apr 8 22:07:58 mail01 pop3-login: Login: jolthoff [12.219.166.42] Apr 8 22:07:58 mail01 pop3-login: Login: beta [64.203.14.99] Apr 8 22:07:58 mail01 pop3-login: Login: 14185.joe [141.158.63.80] Apr 8 22:07:58 mail01 pop3-login: Login: threebearsjunc [67.38.17.200] Apr 8 22:07:58 mail01 pop3-login: Login: valcarcel [24.184.87.216] Apr 8 22:07:58 mail01 pop3-login: Login: eintec [24.184.87.216] Apr 8 22:07:59 mail01 pop3-login: Login: wardbaxter [24.20.97.47] Apr 8 22:07:59 mail01 imap-login: Login: orangeweb [66.152.97.131] Apr 8 22:07:59 mail01 pop3-login: Login: wlmeyer [69.165.47.173] Apr 8 22:07:59 mail01 pop3-login: Login: 654.amanda [4.242.102.192] Apr 8 22:07:59 mail01 pop3-login: Login: rca_email [66.38.89.33] Apr 8 22:07:59 mail01 pop3-login: Login: christy2 [66.75.155.254] Apr 8 22:08:00 mail01 pop3-login: Login: drolthoff [12.219.166.42] Apr 8 22:08:00 mail01 pop3-login: Login: grant2720 [68.56.3.132] Apr 8 22:08:00 mail01 pop3-login: Login: jbenalluch [69.140.148.204] Apr 8 22:08:00 mail01 pop3-login: Login: joyce465321 [66.82.195.158] This mail server hosted just over 12,000 virtual domains.... handles thoasands of messages per hour. postfix is running on the same system. Its running beautifully too... I've converted over three more systems with almost identical environments... seth vidal wrote: >On Thu, 2004-04-08 at 14:57 -0700, James Moser wrote: > > > >>I'll tell ya anything you wanna know... I'm using FreeBSD 4.9, here is >>my how I currently configuered it (didn't use the ports).. >> >> >> > >I'm actually curious about: >1. how many systems? >2. how many concurrent users? >3. what type of hw is this on? >4. what type of mail volume do you have to deal with? > >Thanks for all the info - the central powers at duke that be just went >through a fairly massive mail system migration and I'm just curious >about other systems of similar scale 50K users is similar scale. > >Thanks >-sv > > > > -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------020904070403020500030205 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------020904070403020500030205-- From bah@webmedic.net Fri Apr 9 09:47:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B16D3C002801; Fri, 9 Apr 2004 09:47:18 +0300 (EEST) Received: from courage.vosn.net (courage.vosn.net [209.151.74.1]) by talvi.dovecot.org (Postfix) with ESMTP id 864A1C002800 for ; Fri, 9 Apr 2004 09:47:16 +0300 (EEST) Received: from d16-117.rb.vcr.centurytel.net ([69.29.251.117]) by courage.vosn.net with asmtp (TLSv1:RC4-MD5:128) (Exim 4.24) id 1BBpiq-0008Gs-QW for dovecot@dovecot.org; Fri, 09 Apr 2004 00:42:40 -0600 From: Brook Humphrey Organization: Mobile PC Medic To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot for production environment Date: Thu, 8 Apr 2004 22:42:13 -0700 User-Agent: KMail/1.6.1 References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <33261.192.168.50.6.1081470112.squirrel@dayzed.com> In-Reply-To: <33261.192.168.50.6.1081470112.squirrel@dayzed.com> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Message-Id: <200404082242.13454.bah@webmedic.net> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - courage.vosn.net X-AntiAbuse: Original Domain - dovecot.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - webmedic.net X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2004 06:47:18 -0000 X-UID: 8915 Status: O On Thursday 08 April 2004 05:21 pm, Avery Day wrote: > Well thats not cool at all. I have been dealing with corrupt mailboxes for > the last year on our exchange server. Infact I will be migrating the > entire email system from exchange server to a > postfix+dovecot+spamassassin+procmail+mailfilter setup hopefully in the > next =A0month or two. But hearing about corrupt mailboxes sends shivers up > my spine. Infact I didn't think it was possible to have corruption or at > least next to impossible with a unix type mailbox systems. well no not really that depends on the milserver you use. However it is=20 impossible using maildir instead of mbox. From t1lt@bk.ru Fri Apr 9 21:39:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 28BC8C002801; Fri, 9 Apr 2004 21:39:14 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 26907C002800 for ; Fri, 9 Apr 2004 21:39:12 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id C489C23828; Fri, 9 Apr 2004 21:34:07 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id BFDFA2382F; Fri, 9 Apr 2004 21:34:07 +0300 (EEST) Received: from sun.com (port-212-202-38-35.reverse.qsc.de [212.202.38.35]) by danu.procontrol.fi (Postfix) with SMTP id 8758323828 for ; Fri, 9 Apr 2004 21:33:32 +0300 (EEST) Received: (qmail 18926 invoked by uid 1000); 9 Apr 2004 18:34:06 -0000 Date: Fri, 9 Apr 2004 20:34:05 +0200 From: Moe Wibble To: "Gareth J. Greenaway" Subject: Re: [Dovecot] shared folders? Message-ID: <20040409183405.GA1904@woom.net> Mail-Followup-To: Moe Wibble , "Gareth J. Greenaway" , dovecot@procontrol.fi References: <20040310235202.GR20847@wiked.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040310235202.GR20847@wiked.org> Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2004 18:39:14 -0000 X-UID: 8916 Status: O I'm curious, too. Any progress since last year? (http://dovecot.procontrol.fi/list/dovecot/2003-April/001387.html) best regards! :) On Wed, Mar 10, 2004 at 03:52:03PM -0800, Gareth J. Greenaway wrote: > Greetings, > I saw mention in results from a google search that there was some support in > dovecot CVS for shared folders, is there some docs on how to use them? > Provided there is in fact support for them in CVS. From mem@mv.mv.com Sat Apr 10 02:21:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AD82AC002801; Sat, 10 Apr 2004 02:21:16 +0300 (EEST) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 940E2C002800 for ; Sat, 10 Apr 2004 02:21:13 +0300 (EEST) Received: (qmail 11360 invoked from network); 9 Apr 2004 19:16:05 -0400 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 9 Apr 2004 19:16:07 -0400 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 2594 invoked by uid 101); 9 Apr 2004 19:16:04 -0400 From: "Mark E. Mallett" Date: Fri, 9 Apr 2004 19:16:04 -0400 To: James Moser Subject: Re: [Dovecot] Dovecot for production environment Message-ID: <20040409231604.GA29580@iridium.mv.net> References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> <1081460101.31283.25.camel@opus.phy.duke.edu> <4075CACC.9000908@powweb.com> <1081487017.5775.73.camel@binkley> <4076301E.9040304@powweb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4076301E.9040304@powweb.com> User-Agent: Mutt/1.4.2.1i Cc: schrock@dayzed.com, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2004 23:21:16 -0000 X-UID: 8917 Status: O > > mail01# tail -f /var/log/maillog |grep Login > Apr 8 22:07:57 mail01 pop3-login: Login: tinamc [66.74.103.232] > Apr 8 22:07:57 mail01 pop3-login: Login: rsqm [66.130.185.91] ... > > This mail server hosted just over 12,000 virtual domains.... handles > thoasands of messages per hour. postfix is running on the same > system. Its running beautifully too... I've converted over three more > systems with almost identical environments... Ours isn't quite that busy, but yesterday's log: 25# gzcat maillog.0 | grep Login | wc 174342 1569078 13933340 That would be about 7200/hour averaged over the 24 hour day. That's on a server using Maildir. We have another using mbox, with the same dovecot codebase. It's not as active, but still, I haven't seen any corrupted mbox problems. mm From t1lt@bk.ru Sat Apr 10 02:31:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 015EAC002801; Sat, 10 Apr 2004 02:31:49 +0300 (EEST) Received: from sun.com (port-212-202-38-35.reverse.qsc.de [212.202.38.35]) by talvi.dovecot.org (Postfix) with SMTP id 60B15C002800 for ; Sat, 10 Apr 2004 02:31:46 +0300 (EEST) Received: (qmail 10134 invoked by uid 1000); 9 Apr 2004 23:27:17 -0000 Date: Sat, 10 Apr 2004 01:27:17 +0200 From: Moe Wibble To: dovecot@dovecot.org Message-ID: <20040409232713.GA30182@woom.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <20040312220834.GA28346@ktb.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040312220834.GA28346@ktb.net> Subject: [Dovecot] index corruption bug (0.99.10.4) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2004 23:31:49 -0000 X-UID: 8918 Status: O Hello, I've just upgraded to 0.99.10.4 and I think I've spotted a bug that can corrupt Maildir-index. Reproduce it like this: 1. Get rid of all indexes e.g.: find ~/Maildir -name ".*imap.index*" -exec rm -v {} \; find ~/Maildir -name "dovecot-uidlist" -exec rm -v {} \; 2. Load Mailclient, Enter INBOX once (to have index recreated) 3. Change to LARGEFOLDER (one that takes a minute or so to index) 4. Deliver mail to INBOX *while LARGEFOLDER is still indexing* 5. Wait until LARGEFOLDER has finally opened, then switch back to INBOX Result (for me): imap(moe): Corrupted index file /home/moe/Maildir/.INBOX/.imap.index: index.next_uid (247) > uid_rec.uid (246) My dovecot runs on linux 2.4.19, Maildir on ext2 (softraid). best regards From subscribed-lists@sterndata.com Sat Apr 10 02:32:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B6184C002803; Sat, 10 Apr 2004 02:32:35 +0300 (EEST) Received: from turkey.mail.pas.earthlink.net (turkey.mail.pas.earthlink.net [207.217.120.126]) by talvi.dovecot.org (Postfix) with ESMTP id 99B14C002800 for ; Sat, 10 Apr 2004 02:32:33 +0300 (EEST) Received: from h-69-3-218-112.chcgilgm.dynamic.covad.net ([69.3.218.112] helo=ciscy.sterndata.com) by turkey.mail.pas.earthlink.net with esmtp (Exim 3.33 #1) id 1BC5PC-0002Hl-00 for dovecot@dovecot.org; Fri, 09 Apr 2004 16:27:26 -0700 Received: from sds ([192.168.123.169]) by ciscy.sterndata.com (8.12.10/8.12.10) with SMTP id i39NRQEl012010 for ; Fri, 9 Apr 2004 18:27:26 -0500 From: Steven Stern To: dovecot@dovecot.org Date: Fri, 09 Apr 2004 18:27:55 -0500 Message-ID: X-Mailer: Forte Agent 2.0/32.652 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: clamd / ClamAV version 0.70rc, clamav-milter version 0.70 Subject: [Dovecot] dovecot dies - mabye a clue? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2004 23:32:35 -0000 X-UID: 8919 Status: O Dovecot died twice today. This was in the maillog: Apr 9 17:50:27 ciscy pop3-login: RAND_bytes() failed: = error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded Apr 9 17:50:27 ciscy dovecot: Login process died too early - shutting = down I think I can cause it to happen reliably and I'm asking for other to = test this scenario: Open several terminal windows. In each, type "telnet 127.0.0.1 110". = Wait for the dovecot POP prompt and do nothing. After each times out, up-arrow and try again. Sometime in the next hour, dovecot will die. -- Steve =20 From james@powweb.com Sat Apr 10 02:52:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EF94BC002801; Sat, 10 Apr 2004 02:52:35 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 818C0C002800 for ; Sat, 10 Apr 2004 02:52:33 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id E37BCB8E3B for ; Fri, 9 Apr 2004 16:47:23 -0700 (PDT) Message-ID: <407735E2.8070009@powweb.com> Date: Fri, 09 Apr 2004 16:46:42 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: multipart/mixed; boundary="------------070605020100010203040300" Subject: [Dovecot] Missing mail file - Internal Error X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2004 23:52:36 -0000 X-UID: 8920 Status: O Content-Length: 1352 This is a multi-part message in MIME format. --------------070605020100010203040300 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit I have noticed that if the user does not already have a mail file, for instance in /var/mail, the IMAP server responds with Internal Error, and the pop server imediately terminates the connection. Is this something I have configuered wrong? Are there any work arounds for this... /var/mail is owned by root:mail with permissions 0775... -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------070605020100010203040300 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------070605020100010203040300-- From kiwi@oav.net Sat Apr 10 12:57:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A2DD7C002801; Sat, 10 Apr 2004 12:57:47 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 64114C002800 for ; Sat, 10 Apr 2004 12:57:45 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 71F292382F; Sat, 10 Apr 2004 12:52:39 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 6D3BA23830; Sat, 10 Apr 2004 12:52:39 +0300 (EEST) Received: from akira.oav.net (akira.oav.net [195.20.105.157]) by danu.procontrol.fi (Postfix) with ESMTP id A2B152382F for ; Sat, 10 Apr 2004 12:52:04 +0300 (EEST) Received: from localhost (localhost.oav.net [127.0.0.1]) by akira.oav.net (Postfix) with ESMTP id 1D5FD2A42E for ; Sat, 10 Apr 2004 11:51:58 +0200 (CEST) (envelope-from kiwi@oav.net) Received: from akira.oav.net ([127.0.0.1]) by localhost (akira.oav.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 71184-01 for ; Sat, 10 Apr 2004 11:51:57 +0200 (CEST) Received: from [192.168.0.7] (kiwi.oav.net [82.225.248.92]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by akira.oav.net (Postfix) with ESMTP id 2C1D02A42C for ; Sat, 10 Apr 2004 11:51:55 +0200 (CEST) (envelope-from kiwi@oav.net) Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: <20040409231604.GA29580@iridium.mv.net> References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> <1081460101.31283.25.camel@opus.phy.duke.edu> <4075CACC.9000908@powweb.com> <1081487017.5775.73.camel@binkley> <4076301E.9040304@powweb.com> <20040409231604.GA29580@iridium.mv.net> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Xavier Beaudouin Subject: Re: [Dovecot] Dovecot for production environment Date: Sat, 10 Apr 2004 11:51:54 +0200 To: dovecot@procontrol.fi X-Mailer: Apple Mail (2.613) X-Virus-Scanned: by amavisd-new at akira.oav.net X-Spam-Status: No, hits=0.0 tagged_above=-999.0 required=6.3 tests= X-Spam-Level: Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Apr 2004 09:57:47 -0000 X-UID: 8921 Status: O I am very impressed as well by dovecot... But the only feature missing is Softquota Maildir++ support. I had in the idea to add a plugin for dovecot, using Laurent Wacrenier mdq library, but the example on dovecot's website doesn't ever seems to works. You can find this library there : http://pll.sourceforge.net/man.mdq.html / http://pll.sourceforge.net/ . How do people in production environment works with quota ? Especialy softquota, since for my point of vue system quota can't deal with my own systems.... /Xavier From redjar@redjar.org Sun Apr 11 05:19:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AF65FC002802; Sun, 11 Apr 2004 05:19:17 +0300 (EEST) Received: from a34-mta02.direcway.com (a34-mta02.direcpc.com [66.82.4.91]) by talvi.dovecot.org (Postfix) with ESMTP id 33C5DC002801 for ; Sun, 11 Apr 2004 05:19:15 +0300 (EEST) Received: from [10.10.10.162] (dpcbw098001.direcpc.com [65.88.98.1]) by a34-mta02.direcway.com (iPlanet Messaging Server 5.2 HotFix 1.12 (built Feb 13 2003)) with ESMTP id <0HVZ00BJVI6Y6N@a34-mta02.direcway.com> for dovecot@dovecot.org; Sat, 10 Apr 2004 22:13:51 -0400 (EDT) Date: Sat, 10 Apr 2004 22:15:22 -0400 From: Jared Subject: Re: [Dovecot] Dovecot for production environment In-reply-to: To: dovecot@dovecot.org Message-id: <16110281-8B5E-11D8-B1A7-000393DB639A@redjar.org> MIME-version: 1.0 X-Mailer: Apple Mail (2.613) Content-type: text/plain; charset=US-ASCII; format=flowed Content-transfer-encoding: 7BIT References: <21540.66.224.116.226.1081458264.squirrel@new.host.name> <4075C37B.5040704@powweb.com> <1081460101.31283.25.camel@opus.phy.duke.edu> <4075CACC.9000908@powweb.com> <1081487017.5775.73.camel@binkley> <4076301E.9040304@powweb.com> <20040409231604.GA29580@iridium.mv.net> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Apr 2004 02:19:17 -0000 X-UID: 8922 Status: O On Apr 10, 2004, at 5:51 AM, Xavier Beaudouin wrote: > How do people in production environment works with quota ? Especialy > softquota, since for my point of vue system quota can't deal with my > own systems.... We just use the system quota and warnquota to email the users when they go over soft quota. We use a 7 day grace period so they get plenty of time and warning via email. We then use a cgi script to allow users to check their quota via the web, and we display it on the active desktop of the public lab machines when then user logs in. -jared From schrock@dayzed.com Tue Apr 13 05:12:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B45F2C002800; Tue, 13 Apr 2004 05:12:28 +0300 (EEST) Received: from mail.dayzed.com (24-176-245-120.cs-cres.charterpipeline.net [24.176.245.120]) by talvi.dovecot.org (Postfix) with ESMTP id 17291C000D9D for ; Tue, 13 Apr 2004 05:12:26 +0300 (EEST) Received: from 192.168.50.2 (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with SMTP id B403C1784E for ; Mon, 12 Apr 2004 19:07:10 -0700 (PDT) Received: from 192.168.50.6 (SquirrelMail authenticated user schrock) by dayzed.com with HTTP; Mon, 12 Apr 2004 19:07:10 -0700 (PDT) Message-ID: <34556.192.168.50.6.1081822030.squirrel@dayzed.com> Date: Mon, 12 Apr 2004 19:07:10 -0700 (PDT) From: "Avery Day" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] I added a "SQ and Dovecot FAQ" on the SQ website X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2004 02:12:29 -0000 X-UID: 8923 Status: O On the Squirrelmail website I setup in the FAQ a quick install guid on how to get squirrelmail to work with Dovecot. Maybe someone can verify my setup procedure really quick. Maybe someone thinks this is wrong. Also if you have something to add please do so. No one has bothered to do this before so I took it upon my self. Here is the link in the FAQ its about 8 lines down http://www.squirrelmail.org/wiki/en_US/InstallingSquirrelMail Here is where the link takes you http://www.squirrelmail.org/wiki/en_US/SquirrelMailAndDovecotIMAP Thanks -- Avery From dpham@mercy.com.au Tue Apr 13 05:46:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DE702C002801; Tue, 13 Apr 2004 05:46:59 +0300 (EEST) Received: from coregw01.mercy.com.au (mail.mercy.com.au [210.9.192.244]) by talvi.dovecot.org (Postfix) with ESMTP id 69E9AC002800 for ; Tue, 13 Apr 2004 05:46:56 +0300 (EEST) Received: from emelb-mail-01.mercy.com.au ([172.27.128.251]) by coregw01.mercy.com.au with InterScan Messaging Security Suite; Tue, 13 Apr 2004 12:34:43 +1000 Received: by emelb-mail-01.mercy.com.au with Internet Mail Service (5.5.2653.19)id ; Tue, 13 Apr 2004 12:41:17 +1000 Message-ID: <3ED0289A9D58414D9AD116DA91E2E96915E662@coremx01.mercynet.com.au> From: Zoong Pham To: "'schrock@dayzed.com'" , dovecot@dovecot.org Subject: RE: [Dovecot] I added a "SQ and Dovecot FAQ" on the SQ website Date: Tue, 13 Apr 2004 12:41:09 +1000 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset=iso-8859-1 X-imss-version: 2.5 X-imss-result: Passed X-imss-scores: Clean:99.90000 C:22 M:1 S:5 R:5 X-imss-settings: Baseline:1 C:1 M:1 S:1 R:1 (0.0000 0.0000) Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2004 02:47:00 -0000 X-UID: 8924 Status: O Is that dovecot in your FAQ serving mbox or mdir format? Thanks, Zoong -----Original Message----- From: Avery Day [mailto:schrock@dayzed.com] Sent: Tuesday, 13 April 2004 12:07 PM To: dovecot@dovecot.org Subject: [Dovecot] I added a "SQ and Dovecot FAQ" on the SQ website On the Squirrelmail website I setup in the FAQ a quick install guid on how to get squirrelmail to work with Dovecot. Maybe someone can verify my setup procedure really quick. Maybe someone thinks this is wrong. Also if you have something to add please do so. No one has bothered to do this before so I took it upon my self. Here is the link in the FAQ its about 8 lines down http://www.squirrelmail.org/wiki/en_US/InstallingSquirrelMail Here is where the link takes you http://www.squirrelmail.org/wiki/en_US/SquirrelMailAndDovecotIMAP Thanks -- Avery From schrock@dayzed.com Tue Apr 13 06:00:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 88E8EC002802; Tue, 13 Apr 2004 06:00:04 +0300 (EEST) Received: from mail.dayzed.com (24-176-245-120.cs-cres.charterpipeline.net [24.176.245.120]) by talvi.dovecot.org (Postfix) with ESMTP id 36285C002801 for ; Tue, 13 Apr 2004 06:00:01 +0300 (EEST) Received: from 192.168.50.2 (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with SMTP id BF9031784E for ; Mon, 12 Apr 2004 19:54:46 -0700 (PDT) Received: from 192.168.50.6 (SquirrelMail authenticated user schrock) by dayzed.com with HTTP; Mon, 12 Apr 2004 19:54:46 -0700 (PDT) Message-ID: <34751.192.168.50.6.1081824886.squirrel@dayzed.com> In-Reply-To: <3ED0289A9D58414D9AD116DA91E2E96915E662@coremx01.mercynet.com.au> References: <3ED0289A9D58414D9AD116DA91E2E96915E662@coremx01.mercynet.com.au> Date: Mon, 12 Apr 2004 19:54:46 -0700 (PDT) Subject: RE: [Dovecot] I added a "SQ and Dovecot FAQ" on the SQ website From: "Avery Day" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2004 03:00:04 -0000 X-UID: 8925 Status: O > Is that dovecot in your FAQ serving mbox or mdir format? > > Thanks, > Zoong > > -----Original Message----- > From: Avery Day [mailto:schrock@dayzed.com] > Sent: Tuesday, 13 April 2004 12:07 PM > To: dovecot@dovecot.org > Subject: [Dovecot] I added a "SQ and Dovecot FAQ" on the SQ website > > > On the Squirrelmail website I setup in the FAQ a quick install guid on how > to get squirrelmail to work with Dovecot. Maybe someone can verify my > setup procedure really quick. Maybe someone thinks this is wrong. Also if > you have something to add please do so. No one has bothered to do this > before so I took it upon my self. > Here is the link in the FAQ its about 8 lines down > http://www.squirrelmail.org/wiki/en_US/InstallingSquirrelMail > Here is where the link takes you > http://www.squirrelmail.org/wiki/en_US/SquirrelMailAndDovecotIMAP > > Thanks > -- > Avery > > Ooops it is for Maildir, I will fix this. Thanks, -- Avery Day From zach.bagnall@bulletinwireless.com Tue Apr 13 06:18:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B2C33C002803; Tue, 13 Apr 2004 06:18:08 +0300 (EEST) Received: from hawk.bulletinwireless.net (ns1.jungledrum.co.nz [210.54.149.34]) by talvi.dovecot.org (Postfix) with ESMTP id DB2FAC002802 for ; Tue, 13 Apr 2004 06:18:05 +0300 (EEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by hawk.bulletinwireless.net (Postfix) with ESMTP id 963A61646B for ; Tue, 13 Apr 2004 15:12:50 +1200 (NZST) Received: from hawk.bulletinwireless.net ([127.0.0.1]) by localhost (hawk [127.0.0.1:10024]) (amavisd-new) with LMTP id 32175-03-4 for ; Tue, 13 Apr 2004 15:12:38 +1200 (NZST) Received: from piranha (piranha.intra.jungledrum.co.nz [192.168.1.13]) by hawk.bulletinwireless.net (Postfix) with ESMTP id C60B316438 for ; Tue, 13 Apr 2004 15:12:38 +1200 (NZST) Date: Tue, 13 Apr 2004 15:11:10 +1200 From: Zach Bagnall To: Dovecot mailing list Subject: Re: [Dovecot] Calling gentoo maintainers - at last! Message-Id: <20040413151110.08cae224.zach.bagnall@bulletinwireless.com> In-Reply-To: <20040326090838.0fdcf4dc.zach.bagnall@bulletinwireless.com> References: <20040326090838.0fdcf4dc.zach.bagnall@bulletinwireless.com> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.9.7claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Tue__13_Apr_2004_15_11_10_+1200_tJegzVg.JEggBXno" X-Virus-Scanned: by amavisd-new X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2004 03:18:08 -0000 X-UID: 8926 Status: O Content-Length: 1679 --Signature=_Tue__13_Apr_2004_15_11_10_+1200_tJegzVg.JEggBXno Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit It's in :-) Big thanks to all involved - Andreas Simon for the base, all the testers and commenters and finally Grant Goodyear for boosting it into CVS. * net-mail/dovecot [ Masked ] Latest version available: 0.99.10.4 Latest version installed: 0.99.10.4 Size of downloaded files: 839 kB Homepage: http://dovecot.procontrol.fi/ Description: An IMAP and POP3 server written with security primarily in mind License: LGPL-2.1 Currently it is masked for ~x86 only. What other platforms have been tested? The ebuild will need to be updated to indicate support for the other UNIXes. Feel free to comment in the ticket, or make a new one. I'm not quite sure how updates to ebuilds are supposed to be handled.. Zach. On Fri, 26 Mar 2004 09:08:38 +1200, Zach Bagnall wrote: > If anyone knows someone with CVS access can they please take another > look at http://bugs.gentoo.org/show_bug.cgi?id=22080. It has been in > bugzilla for nearly nine months. Would like to see this in portage - > masked is fine - so at least everyone is working off the same file. > > Cheers > > Zach. --Signature=_Tue__13_Apr_2004_15_11_10_+1200_tJegzVg.JEggBXno Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAe1pT4jDFYT+aqaIRAqAbAJ9s10fAl2F31F3SkCTrGb2YqsQ4agCfWD+k 0dcMMva3h1hBajUCvvFATNg= =zhfp -----END PGP SIGNATURE----- --Signature=_Tue__13_Apr_2004_15_11_10_+1200_tJegzVg.JEggBXno-- From dr@jones.dk Tue Apr 13 07:43:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1620FC002802; Tue, 13 Apr 2004 07:43:51 +0300 (EEST) Received: from auryn.jones.dk (cpe.atm0-0-0-1201001.0x503f72d6.albnxx2.customer.tele.dk [80.63.114.214]) by talvi.dovecot.org (Postfix) with ESMTP id A24EBC000D9D for ; Tue, 13 Apr 2004 07:43:48 +0300 (EEST) Received: from jones.dk (auryn [127.0.0.1]) by auryn.jones.dk (Postfix) with ESMTP id 8746F3F2198 for ; Tue, 13 Apr 2004 06:38:17 +0200 (CEST) Message-ID: <407B6EB7.7000907@jones.dk> Date: Tue, 13 Apr 2004 06:38:15 +0200 From: Jonas Smedegaard User-Agent: Mozilla Thunderbird 0.5 (X11/20040313) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Calling gentoo maintainers - at last! References: <20040326090838.0fdcf4dc.zach.bagnall@bulletinwireless.com> <20040413151110.08cae224.zach.bagnall@bulletinwireless.com> In-Reply-To: <20040413151110.08cae224.zach.bagnall@bulletinwireless.com> X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: multipart/mixed; boundary="------------040005020402050303090806" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2004 04:43:51 -0000 X-UID: 8927 Status: O Content-Length: 1991 This is a multi-part message in MIME format. --------------040005020402050303090806 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Zach Bagnall wrote: | Currently it is masked for ~x86 only. What other platforms have been | tested? The ebuild will need to be updated to indicate support for the | other UNIXes. Feel free to comment in the ticket, or make a new one. I'= m | not quite sure how updates to ebuilds are supposed to be handled.. On Debian it at least builds correctly on all 11 platforms with autobuilders: http://packages.debian.org/unstable/mail/dovecot-imapd The 11 Debian hardware platforms with autobuilders are: GNU/Linux/alpha GNU/Linux/arm GNU/Linux/hppa GNU/Linux/i386 GNU/Linux/ia64 GNU/Linux/m68k GNU/Linux/mips GNU/Linux/mipsel GNU/Linux/powerpc GNU/Linux/s390 GNU/Linux/sparc Jaldhar, the maintainer of the package, may have more details on success stories. He is with us here on this list too. ~ - Jonas - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er n=E6r: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFAe263n7DbMsAkQLgRAqHGAJ4urELxhWC6sR5z3HgdzJmH4GTuxQCgkFx/ Cd5xih7e8FrbEFcIHu8E7ak=3D =3Dikb3 -----END PGP SIGNATURE----- --------------040005020402050303090806 Content-Type: text/x-vcard; charset=utf8; name="dr.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="dr.vcf" begin:vcard fn:Jonas Smedegaard n:Smedegaard;Jonas org:IT-guide dr. Jones adr:;;Munksoegaard 3;Roskilde;;4000;Denmark email;internet:dr@jones.dk title:Internet Architect tel;work:+45 40843136 tel;home:+45 40843136 tel;cell:+45 40843136 x-mozilla-html:FALSE url:http://dr.jones.dk/ version:2.1 end:vcard --------------040005020402050303090806-- From JMelville@selectaustralasia.com.au Tue Apr 13 08:14:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AB0B4C002803; Tue, 13 Apr 2004 08:14:59 +0300 (EEST) Received: from pittst-smtp.select-appointments.com.au (unknown [61.88.1.162]) by talvi.dovecot.org (Postfix) with SMTP id 083FAC002802 for ; Tue, 13 Apr 2004 08:14:56 +0300 (EEST) Received: FROM SYDEXCHVS01.Australasia.SelectNET.com BY pittst-smtp.select-appointments.com.au ; Tue Apr 13 15:12:12 2004 +1000 Content-class: urn:content-classes:message Subject: RE: [Dovecot] I added a "SQ and Dovecot FAQ" on the SQ website Date: Tue, 13 Apr 2004 15:09:35 +1000 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Message-ID: <4290D8AB6C950C44B59AA76B2513A6CA07B16D@SYDEXCHVS01.Australasia.SelectNET.com> X-MS-Has-Attach: X-MimeOLE: Produced By Microsoft Exchange V6.5.6944.0 X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] I added a "SQ and Dovecot FAQ" on the SQ website Thread-Index: AcQg/H7i7cBaxT1OQ0yHRWhxzkhi4AAGNMJw From: "Julian Melville" To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2004 05:14:59 -0000 X-UID: 8928 Status: O > Maybe someone can verify my setup procedure really quick.=20 Looks the same as mine except for saying that the server is like Courier... I left that bit blank and haven't had any hassles. What does that change I wonder? Cheers, Julian. From smk@fyi.net Tue Apr 13 15:39:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 52DAEC002803; Tue, 13 Apr 2004 15:39:45 +0300 (EEST) Received: from yoda.fyi.net (yoda.fyi.net [204.179.80.2]) by talvi.dovecot.org (Postfix) with ESMTP id 2D8C7C002802 for ; Tue, 13 Apr 2004 15:39:43 +0300 (EEST) Received: from localhost ([127.0.0.1]) by yoda.fyi.net with esmtp (Exim 3.36 #2) id 1BDNMU-0000Jg-00 for dovecot@dovecot.org; Tue, 13 Apr 2004 08:49:59 -0400 Date: Tue, 13 Apr 2004 08:49:58 -0400 (EDT) From: smk X-Sender: smk@yoda To: dovecot@dovecot.org Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] file permissions help! X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2004 12:39:45 -0000 X-UID: 8929 Status: O Content-Length: 1073 Hi all! Ran into a problem and hopefully i can get some help. OK here is my set up: - dovecot-0.99.10.4 + MySQL patch. - Redhat 9 The authentication part works just fine. It gives me the following entry in the log file: imap-login: "Apr 12 22:15:10 "Info: Login: USER@DOMAIN.com [127.0.0.1] But there is a problem with dovecot reading the mbox file (I think). In the error file I get this entry: imap(USER@DOMAIN.com): "Apr 12 22:15:10 "Fatal: Failed to create storage with data: /export/htdocs/DOMAIN.com/mail/USER dovecot: "Apr 12 22:15:11 "Error: child 18613 (imap) returned error 89 Of course the user and domain info was changed. I am out of ideas but thats not to say its something easy or something I completely looked over. This is how I compiled dovecot: CPPFLAGS="-I/usr/local/mysql/include/mysql -DPASSDB_MYSQL -DUSERDB_MYSQL" \ LDFLAGS="-L/usr/local/mysql/lib/mysql/ -lmysqlclient" \ \ ./configure \ --prefix=/usr/local/imapd \ --disable-ipv6 \ --without-pop3d \ --without-ssl \ --with-storages=mbox \ --enable-debug thanks in advance. Scott From jeffhos@telerama.com Tue Apr 13 17:15:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 79C32C002803; Tue, 13 Apr 2004 17:15:00 +0300 (EEST) Received: from mail.compunetix.com (mail.compunetix.com [198.144.40.4]) by talvi.dovecot.org (Postfix) with SMTP id A8209C002802 for ; Tue, 13 Apr 2004 17:14:55 +0300 (EEST) Received: (qmail 74283 invoked by uid 85); 13 Apr 2004 14:09:39 -0000 Received: from jeffhos@telerama.com by mail.compunetix.com by uid 82 with qmail-scanner-1.16 (. spamassassin: 2.54. Clear:. Processed in 0.067347 secs); 13 Apr 2004 14:09:39 -0000 Received: from jeffhos.main.compunetix.com (HELO telerama.com) (128.3.7.210) by mail.compunetix.com with SMTP; 13 Apr 2004 14:09:39 -0000 Message-ID: <407BF419.7080307@telerama.com> Date: Tue, 13 Apr 2004 10:07:21 -0400 From: Jeff Hoskinson User-Agent: Mozilla Thunderbird 0.5+ (Windows/20040319) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Problem with flags X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2004 14:15:00 -0000 X-UID: 8930 Status: O Content-Length: 1363 Greetings! I'm having a problem with flags not working correctly. I'm using Mozilla Thunderbird as my mail client, and Dovecot 0.99.10.4 as part of Debian on a Sparc box. The thing that doesn't seem to be working right is Thunderbird's Label feature, which uses custom IMAP flags. I noticed that once I labeled a message, I couldn't un-label it. I recorded this exchange between Thunderbird and Dovecot while using the Label/None command on a message: 5235 uid store 35 -Flags ($Label1 $Label2 $Label3 $Label4 $Label5) * 35 FETCH (FLAGS (\Answered \Seen NonJunk $Label4 $Label5) UID 35) 5235 OK Store completed. Even though Thunderbird is sending the -Flags command for all its custom flags, the message is still retaining two of those flags. Just out of curiousity, I tried changing the flag of that same message to something different, and recorded this exchange: 5259 uid store 35 +Flags ($Label2) * 35 FETCH (FLAGS (\Answered \Seen NonJunk $Label4 $Label2 $Label5) UID 35) 5259 OK Store completed. 5260 uid store 35 -Flags ($Label1 $Label3 $Label4 $Label5) * 35 FETCH (FLAGS (\Answered \Seen NonJunk $Label4 $Label2 $Label5) UID 35) 5260 OK Store completed. So it seems the +Flags command works, but not the -Flags? Or does it have something to do with sending more than one flag at a time? Any help would be appreciated. Thanks, -- Jeff From james@powweb.com Wed Apr 14 05:33:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 45F0EC002807; Wed, 14 Apr 2004 05:33:00 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 9BD53C002803 for ; Wed, 14 Apr 2004 05:32:57 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id F23C6B8F15 for ; Tue, 13 Apr 2004 19:27:37 -0700 (PDT) Message-ID: <407CA16F.7020300@powweb.com> Date: Tue, 13 Apr 2004 19:26:55 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: multipart/mixed; boundary="------------040900050001000106010207" Subject: [Dovecot] syslog() logging problems X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2004 02:33:00 -0000 X-UID: 8931 Status: O Content-Length: 1216 This is a multi-part message in MIME format. --------------040900050001000106010207 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit was wondering if anyone else has had problems with dovecot logging to syslog? When I start the server it works fine, then after an hour or so it stops.. restarting the server always makes it work again. -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------040900050001000106010207 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------040900050001000106010207-- From schrock@dayzed.com Wed Apr 14 06:41:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D9C04C002808; Wed, 14 Apr 2004 06:41:59 +0300 (EEST) Received: from mail.dayzed.com (24-176-252-149.cs-cres.charterpipeline.net [24.176.252.149]) by talvi.dovecot.org (Postfix) with ESMTP id 8D301C002807 for ; Wed, 14 Apr 2004 06:41:57 +0300 (EEST) Received: from 192.168.50.2 (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with SMTP id 4137E1784E for ; Tue, 13 Apr 2004 20:07:27 -0700 (PDT) Received: from 192.168.50.6 (SquirrelMail authenticated user schrock) by dayzed.com with HTTP; Tue, 13 Apr 2004 20:07:27 -0700 (PDT) Message-ID: <33418.192.168.50.6.1081912047.squirrel@dayzed.com> In-Reply-To: <4290D8AB6C950C44B59AA76B2513A6CA07B16D@SYDEXCHVS01.Australasia.Select NET.com> References: <4290D8AB6C950C44B59AA76B2513A6CA07B16D@SYDEXCHVS01.Australasia.SelectNET.com> Date: Tue, 13 Apr 2004 20:07:27 -0700 (PDT) Subject: RE: [Dovecot] I added a "SQ and Dovecot FAQ" on the SQ website From: "Avery Day" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2004 03:42:00 -0000 X-UID: 8932 Status: O Content-Length: 1336 >> Maybe someone can verify my setup procedure really quick. > > Looks the same as mine except for saying that the server is like > Courier... I left that bit blank and haven't had any hassles. What does > that change I wonder? > > Cheers, > > Julian. > > Actually I stole alot of the procedure from some website. Im not taking credit for anything I'm just doing the dirty work :) If you do perl conf.pl and change the IMAP server to courier it tells you everything that it changes --------------------------------------------------------- Please select your IMAP server: cyrus = Cyrus IMAP server uw = University of Washington's IMAP server exchange = Microsoft Exchange IMAP server courier = Courier IMAP server macosx = Mac OS X Mailserver quit = Do not change anything Command >> courier imap_server_type = courier default_folder_prefix = INBOX. trash_folder = Trash sent_folder = Sent draft_folder = Drafts show_prefix_option = false default_sub_of_inbox = false show_contain_subfolders_option = false optional_delimiter = . delete_folder = true ---------------------------------------------------------- -- Avery From james@powweb.com Wed Apr 14 09:50:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0D3CCC002800; Wed, 14 Apr 2004 09:50:11 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 4C1C5C000D9D for ; Wed, 14 Apr 2004 09:50:08 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id D0FA8B8F38 for ; Tue, 13 Apr 2004 23:44:47 -0700 (PDT) Message-ID: <407CDDE1.2070005@powweb.com> Date: Tue, 13 Apr 2004 23:44:49 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] syslog() logging problems References: <407CA16F.7020300@powweb.com> In-Reply-To: <407CA16F.7020300@powweb.com> Content-Type: multipart/mixed; boundary="------------030803040304010803040906" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2004 06:50:11 -0000 X-UID: 8933 Status: O Content-Length: 1510 This is a multi-part message in MIME format. --------------030803040304010803040906 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit setting "login_chroot = no" seems to have fixed this... is this a known bug? I haven't seen anything else about it. It seems to stop logging pop3 loggins first, then eventually imap loggins as well, thought that may just because we have much more pop loggins. James Moser wrote: > was wondering if anyone else has had problems with dovecot logging to > syslog? When I start the server it works fine, then after an hour or > so it stops.. restarting the server always makes it work again. > -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------030803040304010803040906 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------030803040304010803040906-- From kar11@rediffmail.com Thu Apr 15 10:20:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3B8FCC002802; Thu, 15 Apr 2004 10:20:25 +0300 (EEST) Received: from rediffmail.com (unknown [202.54.124.179]) by talvi.dovecot.org (Postfix) with SMTP id 7EBD6C000D9D for ; Thu, 15 Apr 2004 10:20:21 +0300 (EEST) Received: (qmail 32307 invoked by uid 510); 15 Apr 2004 07:15:00 -0000 Date: 15 Apr 2004 07:15:00 -0000 Message-ID: <20040415071500.32306.qmail@webmail10.rediffmail.com> Received: from unknown (61.11.53.128) by rediffmail.com via HTTP; 15 apr 2004 07:15:00 -0000 MIME-Version: 1.0 From: "Kartik Vaidyanathan" To: dovecot@dovecot.org Content-type: multipart/alternative; boundary="Next_1082013300---0-202.54.124.179-32298" Subject: [Dovecot] adding new user to dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Kartik Vaidyanathan List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2004 07:20:25 -0000 X-UID: 8934 Status: O Content-Length: 2459 This is a multipart mime message --Next_1082013300---0-202.54.124.179-32298 Content-type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline

=0AHi,
=0AThis is from your documentation
=0ACreating new users=0A------------------
=0ADovecot is interested in only one thing - bein= g able to find the user's
=0Amail directory. With maildir you need to do= mkdir ~user/Maildir, with mbox mkdir ~user/mail.
=0A
=0Awhat does ~ = refer to.
=0APardon my ignorance in unix, i am relatively new to unix.=0A
=0ADoes not ~ refer to the user account in which you have logged i= n.
=0ASo does that mean that maildir folder exist for only user accounts= that already exist.My intention for asking the above is that i have a java= program running, that will take a new users name and password, so with tha= t can i create a mailbox for that person , or does the admin have to create= an user account for that person , so that his maildir folder can be create= d.
=0A
=0APlease clarify my understanding of how it workds..
=0ATh= anks=0A

=0A=0A=0A

=0A=0A --Next_1082013300---0-202.54.124.179-32298 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi,=0AThis is from your documentation=0ACreating new users=0A--------------= ----=0ADovecot is interested in only one thing - being able to find the use= r's=0Amail directory. With maildir you need to do mkdir ~user/Maildir, with= mbox mkdir ~user/mail.=0A=0Awhat does ~ refer to.=0APardon my ignorance in= unix, i am relatively new to unix.=0A=0ADoes not ~ refer to the user accou= nt in which you have logged in.=0ASo does that mean that maildir folder exi= st for only user accounts that already exist.My intention for asking the ab= ove is that i have a java program running, that will take a new users name = and password, so with that can i create a mailbox for that person , or does= the admin have to create an user account for that person , so that his mai= ldir folder can be created.=0A=0APlease clarify my understanding of how it = workds..=0AThanks=0A=0A --Next_1082013300---0-202.54.124.179-32298-- From johannes@sipsolutions.de Thu Apr 15 11:16:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6861FC002802; Thu, 15 Apr 2004 11:16:49 +0300 (EEST) Received: from dd2002.kasserver.com (dd2002.kasserver.com [81.209.148.122]) by talvi.dovecot.org (Postfix) with ESMTP id A848AC000D9D for ; Thu, 15 Apr 2004 11:16:46 +0300 (EEST) Received: from [172.17.16.20] (pD9525853.dip.t-dialin.net [217.82.88.83]) by dd2002.kasserver.com (Postfix) with ESMTP id BCB82143E62; Thu, 15 Apr 2004 10:11:27 +0200 (CEST) Subject: Re: [Dovecot] adding new user to dovecot From: Johannes Berg To: Kartik Vaidyanathan In-Reply-To: <20040415071500.32306.qmail@webmail10.rediffmail.com> References: <20040415071500.32306.qmail@webmail10.rediffmail.com> Content-Type: text/plain Message-Id: <1082016700.2157.76.camel@xZone> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Thu, 15 Apr 2004 10:11:41 +0200 Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2004 08:16:49 -0000 X-UID: 8935 Status: O On Thu, 2004-04-15 at 09:15, Kartik Vaidyanathan wrote: > Dovecot is interested in only one thing - being able to find the user's > mail directory. With maildir you need to do mkdir ~user/Maildir, with mbox mkdir ~user/mail. > > what does ~ refer to. > Pardon my ignorance in unix, i am relatively new to unix. You have to understand that the "magic" here is not "~", but "~user", and conventionally "~user" refers to the $HOME directory for "user". Of course, what dovecot really looks for can be specified in its configuration file (so you can also use ~user/.invisimail) or whatever. IIRC it is not specified as "~" or "~user" in the config file, but "$user" or so. johannes From daemon@kzone.ch Fri Apr 16 00:32:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D87FDC002802; Fri, 16 Apr 2004 00:32:38 +0300 (EEST) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id E09A1C000D9D for ; Fri, 16 Apr 2004 00:32:35 +0300 (EEST) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id XAA18206 for dovecot@dovecot.org; Thu, 15 Apr 2004 23:27:15 +0200 From: Sven Kirmess To: dovecot@dovecot.org Subject: Re: [Dovecot] adding new user to dovecot Date: Thu, 15 Apr 2004 23:27:15 +0200 Organization: Kirmess Lines: 19 Message-ID: References: <20040415071500.32306.qmail@webmail10.rediffmail.com> NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1082064435 18201 192.168.100.100 (15 Apr 2004 21:27:15 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 15 Apr 2004 21:27:15 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <20040415071500.32306.qmail@webmail10.rediffmail.com> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2004 21:32:39 -0000 X-UID: 8936 Status: O "Normally" you would have one system user account for each mail user. The mail user would be the system account. Therefore, you would create a user kartik (any other name is fine too). The mails would be stored in the home directory of this user (normally, this would be /home/kartik). This is all configurable... As Johannes already pointed out, ~ is a synonym for the home directory of the current user in a shell. If you, as user kartik, type: kartik> echo ~ you get the answer /home/kartik which is the home directory of user kartik. You can use ~kartik or ~root or anything else and this always resolves to the home directory of the specified user. Maybe you should tell us what you would like to do. Operating system, number of users, existing solution... Sven From kar11@rediffmail.com Fri Apr 16 07:38:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 57E6BC002800; Fri, 16 Apr 2004 07:38:41 +0300 (EEST) Received: from rediffmail.com (unknown [202.54.124.145]) by talvi.dovecot.org (Postfix) with SMTP id B053BC000D9D for ; Fri, 16 Apr 2004 07:38:35 +0300 (EEST) Received: (qmail 923 invoked by uid 510); 16 Apr 2004 04:33:08 -0000 Date: 16 Apr 2004 04:33:08 -0000 Message-ID: <20040416043308.922.qmail@webmail30.rediffmail.com> Received: from unknown (61.11.55.173) by rediffmail.com via HTTP; 16 apr 2004 04:33:08 -0000 MIME-Version: 1.0 From: "Kartik Vaidyanathan" To: dovecot@dovecot.org Subject: Re: Re: [Dovecot] adding new user to dovecot Content-type: multipart/alternative; boundary="Next_1082089988---0-202.54.124.145-875" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Kartik Vaidyanathan List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2004 04:38:42 -0000 X-UID: 8937 Status: O Content-Length: 4330 This is a multipart mime message --Next_1082089988---0-202.54.124.145-875 Content-type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline

=0A Hi,
=0AThanks a lot=A0for the mails.Well one major doubt that was= prevailing was that do i need to create a system account for each person i= n order to send/receive mails, and from both(Sven Kirmess & Johannes Be= rg ) your mails i gather it is a must.
=0A
=0ABut Is there a workarou= nd to this?
=0A
=0AI have actually configured dovecot because i requi= red a mail server in order to build a mailing list manager.A mail list mana= ger is something in the likes of yahoogroups, where each group in my case m= ust have a mailbox.
=0A
=0A1. I am using Debian OS.
=0AThe softwa= re that i am creating , which is going developed in JSP, will take a new us= ers name and password and create a account for him by executing a shell scr= ipt in my linux machine.I assume yahoo also does something similar to this = to create new mail boxes for any new user.Please correct me if i am wrong.<= BR>=0A
=0AIn fact this very mail that i have received from you is becaus= e i have subscribed to the dovecott mailing list. How do you think dovecott= has been able to accomplish this. Is it not because that dovecott has a ma= ilbox in the group name "dovecott" in some system, that internall= y does the sending of mails to all those in the groups refering to some dat= abase.
=0A
=0A2.Will the mail server support me in anyway by giving m= e some functionality to add users, thereby creating maildir's (imap) for th= e users.
=0A
=0A3.Dont I need to know the admin login and passwd, to = create users?
=0A
=0A3.Lastly i know this is not that prevalent a que= stion -> I was told mail man does a similar job as to what my software w= ill do.Do you know how mailman works (or even yahoogroups)?.
=0A
=0AP= lease enlighten me on the above issues.
=0AThanks a lot for you time.=0A
=0ARegards
=0AKartik
=0A
=0A=0A

=0A=0A=0A

=0A<= A target=3D"_blank" HREF=3D"http://clients.rediff.com/signature/track_sig.a= sp">=0A --Next_1082089988---0-202.54.124.145-875 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi,=0AThanks a lot=A0for the mails.Well one major doubt that was prevailin= g was that do i need to create a system account for each person in order to= send/receive mails, and from both(Sven Kirmess & Johannes Berg ) your mail= s i gather it is a must.=0A=0ABut Is there a workaround to this?=0A=0AI hav= e actually configured dovecot because i required a mail server in order to = build a mailing list manager.A mail list manager is something in the likes = of yahoogroups, where each group in my case must have a mailbox.=0A=0A1. I = am using Debian OS. =0AThe software that i am creating , which is going dev= eloped in JSP, will take a new users name and password and create a account= for him by executing a shell script in my linux machine.I assume yahoo als= o does something similar to this to create new mail boxes for any new user.= Please correct me if i am wrong.=0A=0AIn fact this very mail that i have re= ceived from you is because i have subscribed to the dovecott mailing list. = How do you think dovecott has been able to accomplish this. Is it not becau= se that dovecott has a mailbox in the group name "dovecott" in some system,= that internally does the sending of mails to all those in the groups refer= ing to some database.=0A=0A2.Will the mail server support me in anyway by g= iving me some functionality to add users, thereby creating maildir's (imap)= for the users.=0A=0A3.Dont I need to know the admin login and passwd, to c= reate users?=0A=0A3.Lastly i know this is not that prevalent a question -> = I was told mail man does a similar job as to what my software will do.Do yo= u know how mailman works (or even yahoogroups)?.=0A=0APlease enlighten me o= n the above issues. =0AThanks a lot for you time.=0A=0ARegards =0AKartik=0A= =0A=0A=0A --Next_1082089988---0-202.54.124.145-875-- From chibi@gol.com Fri Apr 16 11:38:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A1E7AC002800; Fri, 16 Apr 2004 11:38:16 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id 233A8C000D9D for ; Fri, 16 Apr 2004 11:38:14 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BEOmG-0008O5-00 for ; Fri, 16 Apr 2004 17:32:48 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 16 Apr 2004 17:32:48 +0900 From: Christian Balzer Message-Id: Subject: [Dovecot] Feature request: more log info/stats X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2004 08:38:16 -0000 X-UID: 8938 Status: O Content-Length: 1621 Hello, even though Timo seems to be hibernating (it's not _that_ cold in ole Suomi ;) I'd like to beg for a feature that would be very much appreciated over here. If something like this is already present and eluded my thorough archive and doc searches, feel free to smack me and then point me to the right direction. Feature request: More extensive session information and statistics in the logs. Currently all I can get from dovecot is login information, there's not even a log entry when a session was ended either by the client or a timeout. In addition a short summary would be be very helpful, qpoppers one liner stats come to mind like this: --- Apr 12 05:30:30 test in.qpopper[21266]: Stats: test 6 21868 2 108126 some.do.main IP.AD.DR.ES [pop_updt.c:296] --- Stating that user test downloaded/deleted 6 mails with 21868 bytes total and kept 2 in the inbox. This might be expanded on for IMAP operations like moves or such and raw data about transferred bytes in/out added (in my case I get that info from perdition), but the really important parts are: When did a user log into the server, when did that session end? How many new mails were read and how many mails deleted during that session? The rationale is that with this info at hand the (unfortunately) very common user whining along the lines of "the mail server ate my mails" or "I never saw this mail!" are much easier to refute. Regards and keep up the good work, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From jethro.binks@strath.ac.uk Fri Apr 16 11:43:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 150C9C002802; Fri, 16 Apr 2004 11:43:05 +0300 (EEST) Received: from edfu.cc.strath.ac.uk (vif-mailread-o.cc.strath.ac.uk [130.159.16.85]) by talvi.dovecot.org (Postfix) with ESMTP id CB15CC002800 for ; Fri, 16 Apr 2004 11:43:02 +0300 (EEST) Received: from defjam.cc.strath.ac.uk ([130.159.96.19]:62247) by edfu.cc.strath.ac.uk with esmtp (Exim 4.22 #2) id 1BEOqz-0000r1-UN for ; Fri, 16 Apr 2004 09:37:41 +0100 Date: Fri, 16 Apr 2004 09:37:40 +0100 (BST) From: Jethro R Binks To: dovecot@dovecot.org Subject: Re: [Dovecot] Feature request: more log info/stats In-Reply-To: Message-ID: <20040416093621.T32669@defjam.cc.strath.ac.uk> References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Strath-Information: Contact for more information X-Strath-Scan: clean X-Strath-UBECheck: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2004 08:43:05 -0000 X-UID: 8939 Status: O Content-Length: 1078 On Fri, 16 Apr 2004, Christian Balzer wrote: > Stating that user test downloaded/deleted 6 mails with 21868 bytes total > and kept 2 in the inbox. > This might be expanded on for IMAP operations like moves or such and raw > data about transferred bytes in/out added (in my case I get that info > from perdition), but the really important parts are: > > When did a user log into the server, when did that session end? > How many new mails were read and how many mails deleted during that session? > > The rationale is that with this info at hand the (unfortunately) very > common user whining along the lines of "the mail server ate my mails" or > "I never saw this mail!" are much easier to refute. I was just thinking about this yesterday. I would second this request; it is sometimes really useful to be able to see how many mails were downloaded and how many were left on the server in a session. Jethro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jethro R Binks Computing Officer, IT Services University Of Strathclyde, Glasgow, UK From james@powweb.com Fri Apr 16 11:47:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B3E63C002807; Fri, 16 Apr 2004 11:47:06 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 42D02C002802 for ; Fri, 16 Apr 2004 11:47:04 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id 14721B8E99; Fri, 16 Apr 2004 01:41:27 -0700 (PDT) Message-ID: <407F9C33.8010607@powweb.com> Date: Fri, 16 Apr 2004 01:41:23 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jethro R Binks Subject: Re: [Dovecot] Feature request: more log info/stats References: <20040416093621.T32669@defjam.cc.strath.ac.uk> In-Reply-To: <20040416093621.T32669@defjam.cc.strath.ac.uk> Content-Type: multipart/mixed; boundary="------------030201020706090001080900" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2004 08:47:06 -0000 X-UID: 8940 Status: O Content-Length: 2161 This is a multi-part message in MIME format. --------------030201020706090001080900 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Here here!! =) Jethro R Binks wrote: >On Fri, 16 Apr 2004, Christian Balzer wrote: > > > >>Stating that user test downloaded/deleted 6 mails with 21868 bytes total >>and kept 2 in the inbox. >>This might be expanded on for IMAP operations like moves or such and raw >>data about transferred bytes in/out added (in my case I get that info >>from perdition), but the really important parts are: >> >>When did a user log into the server, when did that session end? >>How many new mails were read and how many mails deleted during that session? >> >>The rationale is that with this info at hand the (unfortunately) very >>common user whining along the lines of "the mail server ate my mails" or >>"I never saw this mail!" are much easier to refute. >> >> > >I was just thinking about this yesterday. I would second this request; it >is sometimes really useful to be able to see how many mails were >downloaded and how many were left on the server in a session. > >Jethro. > >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >Jethro R Binks >Computing Officer, IT Services >University Of Strathclyde, Glasgow, UK > > -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------030201020706090001080900 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------030201020706090001080900-- From mem@mv.mv.com Fri Apr 16 19:10:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6AC37C002800; Fri, 16 Apr 2004 19:10:20 +0300 (EEST) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id ECD17C000D9D for ; Fri, 16 Apr 2004 19:10:17 +0300 (EEST) Received: (qmail 5564 invoked from network); 16 Apr 2004 12:04:55 -0400 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 16 Apr 2004 12:04:55 -0400 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 24924 invoked by uid 101); 16 Apr 2004 12:04:55 -0400 From: "Mark E. Mallett" Date: Fri, 16 Apr 2004 12:04:55 -0400 To: Christian Balzer Subject: Re: [Dovecot] Feature request: more log info/stats Message-ID: <20040416160455.GC857@iridium.mv.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2004 16:10:20 -0000 X-UID: 8941 Status: O > > Feature request: > More extensive session information and statistics in the logs. Yep- I think this is a common suggestion :-) Not to mention some more information in the entries that report errors. For example, when I see Apr 16 07:11:26 mercury dovecot-auth: passwd(xxxxx): unknown user repeated 10,000 times, I would like to have a handle on what IP address that login is coming in on, so I can call the person and get the problem fixed. Ditto with the "disconnected" or "aborted" or whatever-- some way to tie the reports to the source or the login. mm From daemon@kzone.ch Fri Apr 16 19:46:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7606AC002801; Fri, 16 Apr 2004 19:46:57 +0300 (EEST) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id D57EAC002800 for ; Fri, 16 Apr 2004 19:46:54 +0300 (EEST) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id SAA06633 for dovecot@dovecot.org; Fri, 16 Apr 2004 18:41:33 +0200 From: Sven Kirmess To: dovecot@dovecot.org Subject: Re: [Dovecot] adding new user to dovecot Date: Fri, 16 Apr 2004 18:42:15 +0200 Organization: Kirmess Lines: 75 Message-ID: References: <20040416043308.922.qmail@webmail30.rediffmail.com> NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1082133692 6628 192.168.100.100 (16 Apr 2004 16:41:32 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 16 Apr 2004 16:41:32 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: de-CH,de,de-AT,en In-Reply-To: <20040416043308.922.qmail@webmail30.rediffmail.com> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2004 16:46:57 -0000 X-UID: 8942 Status: O Content-Length: 2924 Kartik Vaidyanathan wrote: > Well one major doubt that was prevailing was that do > i need to create a system account for each person in > order to send/receive mails, and from both > (Sven Kirmess & Johannes Berg ) your mails i gather > it is a must. That's not correct. Take a look at http://wiki.dovecot.org/. They have an example with "Virtual user support with OpenLDAP" and "Virtual user support with PostgreSQL". You either use LDAP or a PostgreSQL database to store the mail users. The mail can then be stored in any directory. > The software that i am creating , which is going developed > in JSP, will take a new users name and password and create > a account for him by executing a shell script in my linux machine. Should be possible. You have to create the account in SQL or LDAP with that script... > I assume yahoo also does something similar to this to > create new mail boxes for any new user. You use the mailbox for the mailing list archive? > In fact this very mail that i have received from you is > because i have subscribed to the dovecott mailing list. > How do you think dovecott has been able to accomplish this. That's done by the mail delivery agent (sendmail, postfix). If you just have to send a mail to each recepient you do not need an IMAP server. > 2.Will the mail server support me in anyway by giving me some > functionality to add users, thereby creating maildir's > (imap) for the users. No. You have to add the user to the database (LDAP, SQL or /etc/passwd) and create the directory yourself. > 3.Dont I need to know the admin login and passwd, to > create users? Yes and no. You need either the root account to create an entry in /etc/passwd or a user which is able to write to SQL or LDAP. Depending on which database you use. > 3.Lastly i know this is not that prevalent a question -> > I was told mail man does a similar job as to what my > software will do. Do you know how mailman works (or even yahoogroups)?. You probably should ask in as mailman group. They might know better. I will explain how majordomo does this. Majordomo is abother mailing list software (Probably not the best one, but the one I know). In the /etc/aliases file (which belongs to sendmail, postfix or whatever is your MDA. This files does _not_ belong to dovecot.) there is an entry like this: dovecot: :include:/usr/local/majordomo/lists/dovecot Then, the file /usr/local/majordomo/lists/dovecot contains a list of all the persons subscribed to this mailing list. One email address per line. The MDA does send each mail sent to dovecot individually to each entry in the /usr/local/majordomo/lists/dovecot file. The mailing list software does now manage the /usr/local/majordomo/lists/dovecot (adding and removing users). To create a new list, you have to add an entry to /etc/aliases. Please let me know if the answer does not match to your question. ;-) Sven From daemon@kzone.ch Fri Apr 16 19:52:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 94459C002802; Fri, 16 Apr 2004 19:52:35 +0300 (EEST) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id 4B0CDC002801 for ; Fri, 16 Apr 2004 19:52:33 +0300 (EEST) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id SAA06699 for dovecot@dovecot.org; Fri, 16 Apr 2004 18:47:11 +0200 From: Sven Kirmess To: dovecot@dovecot.org Date: Fri, 16 Apr 2004 18:47:55 +0200 Organization: Kirmess Lines: 16 Message-ID: NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1082134031 6694 192.168.100.100 (16 Apr 2004 16:47:11 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 16 Apr 2004 16:47:11 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: de-CH,de,de-AT,en Subject: [Dovecot] [OT] Is there a secure reverse IMAP proxy X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2004 16:52:35 -0000 X-UID: 8943 Status: O This question is off topic. I ask this list because the question is related to security and IMAP and I guess the people in this list know a lot about both of that. Is there a secure reverse proxy for the IMAP protocol? Something you can install on a bastion host which checks the IMAP traffic before forwarding it to the internal IMAP server? There are these proxies for WebMail to IMAP connections but as far as I can tell they were not created for security reasons and not with security as primary goal. Sven From kar11@rediffmail.com Sat Apr 17 08:48:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 40284C002803; Sat, 17 Apr 2004 08:48:13 +0300 (EEST) Received: from rediffmail.com (unknown [202.54.124.179]) by talvi.dovecot.org (Postfix) with SMTP id 9A9F4C002802 for ; Sat, 17 Apr 2004 08:48:08 +0300 (EEST) Received: (qmail 25007 invoked by uid 510); 17 Apr 2004 05:42:42 -0000 Date: 17 Apr 2004 05:42:42 -0000 Message-ID: <20040417054242.25004.qmail@webmail10.rediffmail.com> Received: from unknown (61.11.54.184) by rediffmail.com via HTTP; 17 apr 2004 05:42:42 -0000 MIME-Version: 1.0 From: "Kartik Vaidyanathan" To: dovecot@dovecot.org Content-type: multipart/alternative; boundary="Next_1082180562---0-202.54.124.179-24992" Subject: [Dovecot] configuration problem.. with passwd X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Kartik Vaidyanathan List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2004 05:48:13 -0000 X-UID: 8944 Status: O Content-Length: 1688 This is a multipart mime message --Next_1082180562---0-202.54.124.179-24992 Content-type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline

=0A  Hi
=0Ai was trying to configure dovecot. Under the authent= ication section
=0Ai have set the
=0Aauth_passdb=3D/etc/passwd
= =0Aauth_user=3Droot
=0Aauth_userdb=3D/etc/passwd
=0A
=0ABut it giv= es
=0AError in configuration file /etc/dovecot.conf line 398 :missing v= alue which points to
=0Aauth_passdb=3D/etc/passwd in the file.
=0AFi= rstly do i need setup some other parameters
=0AI want to follow the most= simple authentication process.
=0APlease advice.
=0Athanks
=0A=0A
=0A=0A

=0A=0A=0A

=0A=0A --Next_1082180562---0-202.54.124.179-24992 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline =A0Hi =0Ai was trying to configure dovecot. Under the authentication secti= on=0Ai have set the =0Aauth_passdb=3D/etc/passwd=0Aauth_user=3Droot=0Aauth_= userdb=3D/etc/passwd=0A=0ABut it gives =0AError in configuration file /etc/= dovecot.conf line 398 :missing value which points to =0Aauth_passdb=3D/etc/= passwd in the file.=0AFirstly do i need setup some other parameters=0AI wan= t to follow the most simple authentication process.=0APlease advice.=0Athan= ks=0A=0A=0A=0A=0A --Next_1082180562---0-202.54.124.179-24992-- From schrock@dayzed.com Sun Apr 18 02:46:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8E540C002805; Sun, 18 Apr 2004 02:46:49 +0300 (EEST) Received: from mail.dayzed.com (24-176-252-149.cs-cres.charterpipeline.net [24.176.252.149]) by talvi.dovecot.org (Postfix) with ESMTP id A2778C002802 for ; Sun, 18 Apr 2004 02:46:47 +0300 (EEST) Received: from 192.168.50.2 (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with ESMTP id 147F017882 for ; Sat, 17 Apr 2004 16:41:19 -0700 (PDT) Received: from 192.168.50.6 (SquirrelMail authenticated user schrock); by new.host.name with HTTP; Sat, 17 Apr 2004 16:41:19 -0700 (PDT) Message-ID: <34610.192.168.50.6.1082245279.squirrel@192.168.50.6> Date: Sat, 17 Apr 2004 16:41:19 -0700 (PDT) From: "Avery" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Is dovecot distributed with RHEL 3.0 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2004 23:46:50 -0000 X-UID: 8945 Status: O I can't seem to find out if dovecot is packaged with RHEL 3.0. It seems redhat makes it hard to find what packages you get when you purchase their RHEL. Does anyone know if dovecot is disributed with Red Hat Enterprise Linux ES 3.0? I know dovecot is distribured with redhat 9.0 and fedora. Thanks, -- Avery From wouter@pair.com Sun Apr 18 09:32:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AF1B9C002809; Sun, 18 Apr 2004 09:32:57 +0300 (EEST) Received: from amsfep17-int.chello.nl (amsfep17-int.chello.nl [213.46.243.15]) by talvi.dovecot.org (Postfix) with ESMTP id A2707C002805 for ; Sun, 18 Apr 2004 09:32:55 +0300 (EEST) Received: from hibernate.cryolabs.net ([213.132.151.209]) by amsfep17-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with SMTP id <20040418062730.FCAN15425.amsfep17-int.chello.nl@hibernate.cryolabs.net> for ; Sun, 18 Apr 2004 08:27:30 +0200 Received: (qmail 961 invoked from network); 18 Apr 2004 08:26:53 +0200 Received: from unknown (HELO senta.theria.org) (192.168.196.7) by hibernate.cryolabs.net with SMTP; 18 Apr 2004 08:26:53 +0200 Date: Sun, 18 Apr 2004 08:27:25 +0200 (CEST) From: Wouter Van Hemel To: Sven Kirmess Subject: Re: [Dovecot] [OT] Is there a secure reverse IMAP proxy In-Reply-To: Message-ID: References: PGP: 0B B4 BC 28 53 62 FE 94 6A 57 EE B8 A6 E2 1B E4 (0xAA5412F0) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2004 06:32:57 -0000 X-UID: 8946 Status: O On Fri, 16 Apr 2004, Sven Kirmess wrote: > [...] > Is there a secure reverse proxy for the IMAP protocol? I know about Perdition: http://www.vergenet.net/linux/perdition/ ... but I don't know how secure it is. From kar11@rediffmail.com Sun Apr 18 10:20:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 453D9C00280A; Sun, 18 Apr 2004 10:20:09 +0300 (EEST) Received: from rediffmail.com (unknown [202.54.124.145]) by talvi.dovecot.org (Postfix) with SMTP id 4908BC002809 for ; Sun, 18 Apr 2004 10:20:05 +0300 (EEST) Received: (qmail 10987 invoked by uid 510); 18 Apr 2004 07:14:36 -0000 Date: 18 Apr 2004 07:14:36 -0000 Message-ID: <20040418071436.10986.qmail@webmail30.rediffmail.com> Received: from unknown (61.11.54.87) by rediffmail.com via HTTP; 18 apr 2004 07:14:36 -0000 MIME-Version: 1.0 From: "Kartik Vaidyanathan" To: wouter-dovecot@fort-knox.rave.org, dovecot@dovecot.org Subject: [Dovecot] adding new user to dovecot Content-type: multipart/alternative; boundary="Next_1082272476---0-202.54.124.145-10972" Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Kartik Vaidyanathan List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2004 07:20:09 -0000 X-UID: 8947 Status: O Content-Length: 14300 This is a multipart mime message --Next_1082272476---0-202.54.124.145-10972 Content-type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline

=0AHi,
=0AYour mail was very insightful.
=0A
=0AYou have stated= in you mail as follows ..
=0A
=0A"But I think they create virtu= al users in database systems for email, I can't imagine all of the users th= ey have are in one passwd file on one tiny machine."
=0A
=0Aa. W= hat do you mean by virtual users.
=0Ab. How does one link them to a mai= lbox.
=0A
=0AVery frankly i am confused...
=0A
=0A1.Well lets s= ay i have a user who wants to create a new group say GROUP1.Lets say i have= users who want to create GROUP1@pigeonhole.com or GROUP2@pigeonhole.com .T= his group name will be entered in my JSP page, now what do i have to do to = create the group.
=0A
=0A2.How do i see to that anyone who sends a ma= il to GROUP2@pigeonhole receives it in it mailbox( Firstly does the group h= ave a mails box in the groups name).Will one create a account(mailbox) for = the group or how is it done.
=0A
=0A3.Lastly I actually want to creat= e a mailing List manager.
=0A
=0APlease advice on how to go about it.=
=0A
=0ARegards
=0AKartik
=0A
=0AOn Sun, 18 Apr 2004 Wouter = Van Hemel wrote :
=0A>On Fri, 16 Apr 2004, Kartik Vaidyanathan wrote:=
=0A>
=0A> >  Hi,
=0A> >
=0A> > I hav= e actually configured dovecot because i required a mail server in
=0A>= ; > order to build a mailing list manager.A mail list manager is somethi= ng
=0A> > in the likes of yahoogroups, where each group in my case= must have a
=0A> > mailbox.
=0A> >
=0A>
=0A>= You need a MTA, such as postfix, qmail, sendmail, exim, etc. It's more
= =0A>important than an imap server for what you want to do.
=0A>=0A>Actually, I don't really understand why you need an imap server whe= n
=0A>making a mailinglist manager.
=0A>
=0A> > 1. I a= m using Debian OS.
=0A> > The software that i am creating , which = is going developed in JSP, will
=0A> > take a new users name and p= assword and create a account for him by
=0A> > executing a shell s= cript in my linux machine.I assume yahoo also does
=0A> > somethin= g similar to this to create new mail boxes for any new
=0A> > user= .Please correct me if i am wrong.
=0A> >
=0A>
=0A>I do= n't know, I don't work at yahoo. But I think they create virtual users
= =0A>in database systems for email, I can't imagine all of the users they= have
=0A>are in one passwd file on one tiny machine.
=0A>
= =0A> > In fact this very mail that i have received from you is becaus= e i have
=0A> > subscribed to the dovecott mailing list. How do yo= u think dovecott has
=0A> > been able to accomplish this. Is it no= t because that dovecott has a
=0A> > mailbox in the group name &qu= ot;dovecott" in some system, that internally
=0A> > does the = sending of mails to all those in the groups refering to some
=0A> >= ; database.
=0A> >
=0A>
=0A>Dovecot doesn't have anyth= ing to do with that. It's mostly the MTA, aided
=0A>by the mailing li= st manager.
=0A>
=0A>Here's how majordomo (popular mailinglist = manager) works:
=0A>
=0A>Bob wants to subscribe to the pigeonho= le mailinglist. He emails or enters
=0A>his email address in a web fo= rm so it ends up in a database file with all
=0A>the other users on t= hat list. The mailinglist manager's job is to take
=0A>care of adding= (or removing) email addresses to (from) that file; it adds
=0A>Bob's= address.
=0A>
=0A>When an email is sent to pigeonhole@pigeonho= le.org, the mailer daemon
=0A>(MTA) receives this email, and instead = of delivering it to a local user,
=0A>either it (1) delivers it to a = pipe - it passes the email to the
=0A>mailinglist software, which the= n just generates an email that replaces the
=0A>original destination = with the list of email addresses; or (2) the mailer
=0A>daemon itself= forwards the email by alias expansion to the list of email
=0A>addre= sses the mailinglist software made.
=0A>
=0A>In the former case= , the mailinglist manager reads the original message and
=0A>replaces= the address with all those in the list's database; in the latter
=0A>= ;case, basically the only thing a mailinglist manager does, is taking care<= BR>=0A>of an error-free database file with email addresses so the MTA ca= n forward
=0A>the email to the addresses in this file.
=0A>
= =0A>Because Bob's email address is in this file, his address will be ins= erted
=0A>in the headers of the message, and he will receive the emai= l.
=0A>
=0A> > 2.Will the mail server support me in anyway b= y giving me some
=0A> > functionality to add users, thereby creati= ng maildir's (imap) for the
=0A> > users.
=0A> >
=0A&g= t;
=0A>No, adding users is not the job of a mail server daemon. Or of= an imap
=0A>server. Usually, you don't allow people to add users to = your system, for
=0A>obvious reasons.
=0A>
=0A>If you wan= t to add users to a mailing list, you don't need accounts for
=0A>tho= se users, only when you also want to provide them with an email address.=0A>
=0A>What do you want to do: provide email addresses, or a ma= ilinglist manager?
=0A>
=0A> > 3.Dont I need to know the adm= in login and passwd, to create users?
=0A> >
=0A>
=0A>= Yes, ofcourse. Unless your users are in a database server, in that case
= =0A>you need the ability to add records to that database.
=0A>
= =0A>(Shared webhosting accounts usually allow adding virtual users, if t= hat's
=0A>the reasoning behind your question.)
=0A>
=0A> = > 3.Lastly i know this is not that prevalent a question -> I was told= mail
=0A> > man does a similar job as to what my software will do= .Do you know how
=0A> > mailman works (or even yahoogroups)?.
= =0A> >
=0A>
=0A>Not precisely, but pretty much like I sai= d above. You can check out the
=0A>documentation and source code of s= aid software.
=0A>
=0A>Yahoogroups probably uses custom written= software, but still based on the
=0A>simple approach of a mailinglis= t manager taking care of a list of
=0A>subscribers, and the mailer da= emon either itself or by aid of an external
=0A>program multiplicatin= g the recipients.
=0A>
=0A>
=0A>A mailinglist manager has= nothing to do with Dovecot. Dovecot has nothing
=0A>to do with *send= ing* email, only with retrieving it from a system with
=0A>IMAP of PO= P. It's the end-of-the-line for emails, delivery to final
=0A>destina= tion; it does not forward or duplicate.
=0A>
=0A> > Please e= nlighten me on the above issues.
=0A> > Thanks a lot for you time.=
=0A> >
=0A>
=0A>I'll send you the bill later. ;)
= =0A>
=0A> > Regards
=0A> > Kartik
=0A> >
= =0A> >
=0A> >
=0A> >
=0A>
=0A=0A

=0A=0A= =0A

=0A=0A --Next_1082272476---0-202.54.124.145-10972 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi,=0AYour mail was very insightful.=0A=0AYou have stated in you mail as fo= llows ..=0A=0A"But I think they create virtual users in database systems fo= r email, I can't imagine all of the users they have are in one passwd file = on one tiny machine."=0A=0Aa. What do you mean by virtual users. =0Ab. How = does one link them to a mailbox.=0A=0AVery frankly i am confused...=0A=0A1.= Well lets say i have a user who wants to create a new group say GROUP1.Lets= say i have users who want to create GROUP1@pigeonhole.com or GROUP2@pigeon= hole.com .This group name will be entered in my JSP page, now what do i hav= e to do to create the group.=0A=0A2.How do i see to that anyone who sends a= mail to GROUP2@pigeonhole receives it in it mailbox( Firstly does the grou= p have a mails box in the groups name).Will one create a account(mailbox) f= or the group or how is it done.=0A=0A3.Lastly I actually want to create a m= ailing List manager.=0A=0APlease advice on how to go about it.=0A=0ARegards= =0AKartik=0A=0AOn Sun, 18 Apr 2004 Wouter Van Hemel wrote :=0A>On Fri, 16 A= pr 2004, Kartik Vaidyanathan wrote:=0A>=0A> > Hi,=0A> >=0A> > I have actua= lly configured dovecot because i required a mail server in=0A> > order to b= uild a mailing list manager.A mail list manager is something=0A> > in the l= ikes of yahoogroups, where each group in my case must have a=0A> > mailbox.= =0A> >=0A>=0A>You need a MTA, such as postfix, qmail, sendmail, exim, etc. = It's more=0A>important than an imap server for what you want to do.=0A>=0A>= Actually, I don't really understand why you need an imap server when=0A>mak= ing a mailinglist manager.=0A>=0A> > 1. I am using Debian OS.=0A> > The sof= tware that i am creating , which is going developed in JSP, will=0A> > take= a new users name and password and create a account for him by=0A> > execut= ing a shell script in my linux machine.I assume yahoo also does=0A> > somet= hing similar to this to create new mail boxes for any new=0A> > user.Please= correct me if i am wrong.=0A> >=0A>=0A>I don't know, I don't work at yahoo= . But I think they create virtual users=0A>in database systems for email, I= can't imagine all of the users they have=0A>are in one passwd file on one = tiny machine.=0A>=0A> > In fact this very mail that i have received from yo= u is because i have=0A> > subscribed to the dovecott mailing list. How do y= ou think dovecott has=0A> > been able to accomplish this. Is it not because= that dovecott has a=0A> > mailbox in the group name "dovecott" in some sys= tem, that internally=0A> > does the sending of mails to all those in the gr= oups refering to some=0A> > database.=0A> >=0A>=0A>Dovecot doesn't have any= thing to do with that. It's mostly the MTA, aided=0A>by the mailing list ma= nager.=0A>=0A>Here's how majordomo (popular mailinglist manager) works:=0A>= =0A>Bob wants to subscribe to the pigeonhole mailinglist. He emails or ente= rs=0A>his email address in a web form so it ends up in a database file with= all=0A>the other users on that list. The mailinglist manager's job is to t= ake=0A>care of adding (or removing) email addresses to (from) that file; it= adds=0A>Bob's address.=0A>=0A>When an email is sent to pigeonhole@pigeonho= le.org, the mailer daemon=0A>(MTA) receives this email, and instead of deli= vering it to a local user,=0A>either it (1) delivers it to a pipe - it pass= es the email to the=0A>mailinglist software, which then just generates an e= mail that replaces the=0A>original destination with the list of email addre= sses; or (2) the mailer=0A>daemon itself forwards the email by alias expans= ion to the list of email=0A>addresses the mailinglist software made.=0A>=0A= >In the former case, the mailinglist manager reads the original message and= =0A>replaces the address with all those in the list's database; in the latt= er=0A>case, basically the only thing a mailinglist manager does, is taking = care=0A>of an error-free database file with email addresses so the MTA can = forward=0A>the email to the addresses in this file.=0A>=0A>Because Bob's em= ail address is in this file, his address will be inserted=0A>in the headers= of the message, and he will receive the email.=0A>=0A> > 2.Will the mail s= erver support me in anyway by giving me some=0A> > functionality to add use= rs, thereby creating maildir's (imap) for the=0A> > users.=0A> >=0A>=0A>No,= adding users is not the job of a mail server daemon. Or of an imap=0A>serv= er. Usually, you don't allow people to add users to your system, for=0A>obv= ious reasons.=0A>=0A>If you want to add users to a mailing list, you don't = need accounts for=0A>those users, only when you also want to provide them w= ith an email address.=0A>=0A>What do you want to do: provide email addresse= s, or a mailinglist manager?=0A>=0A> > 3.Dont I need to know the admin logi= n and passwd, to create users?=0A> >=0A>=0A>Yes, ofcourse. Unless your user= s are in a database server, in that case=0A>you need the ability to add rec= ords to that database.=0A>=0A>(Shared webhosting accounts usually allow add= ing virtual users, if that's=0A>the reasoning behind your question.)=0A>=0A= > > 3.Lastly i know this is not that prevalent a question -> I was told mai= l=0A> > man does a similar job as to what my software will do.Do you know h= ow=0A> > mailman works (or even yahoogroups)?.=0A> >=0A>=0A>Not precisely, = but pretty much like I said above. You can check out the=0A>documentation a= nd source code of said software.=0A>=0A>Yahoogroups probably uses custom wr= itten software, but still based on the=0A>simple approach of a mailinglist = manager taking care of a list of=0A>subscribers, and the mailer daemon eith= er itself or by aid of an external=0A>program multiplicating the recipients= .=0A>=0A>=0A>A mailinglist manager has nothing to do with Dovecot. Dovecot = has nothing=0A>to do with *sending* email, only with retrieving it from a s= ystem with=0A>IMAP of POP. It's the end-of-the-line for emails, delivery to= final=0A>destination; it does not forward or duplicate.=0A>=0A> > Please e= nlighten me on the above issues.=0A> > Thanks a lot for you time.=0A> >=0A>= =0A>I'll send you the bill later. ;)=0A>=0A> > Regards=0A> > Kartik=0A> >= =0A> >=0A> >=0A> >=0A>=0A=0A=0A --Next_1082272476---0-202.54.124.145-10972-- From wouter@pair.com Sun Apr 18 21:06:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D7698C00280B; Sun, 18 Apr 2004 21:06:59 +0300 (EEST) Received: from amsfep12-int.chello.nl (amsfep12-int.chello.nl [213.46.243.18]) by talvi.dovecot.org (Postfix) with ESMTP id 7C5EFC002809 for ; Sun, 18 Apr 2004 21:06:57 +0300 (EEST) Received: from hibernate.cryolabs.net ([213.132.151.209]) by amsfep12-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with SMTP id <20040418180112.RGRU18840.amsfep12-int.chello.nl@hibernate.cryolabs.net> for ; Sun, 18 Apr 2004 20:01:12 +0200 Received: (qmail 27095 invoked from network); 18 Apr 2004 20:00:29 +0200 Received: from unknown (HELO senta.theria.org) (192.168.196.7) by hibernate.cryolabs.net with SMTP; 18 Apr 2004 20:00:29 +0200 Date: Sun, 18 Apr 2004 20:01:10 +0200 (CEST) From: wouter@pair.com To: Kartik Vaidyanathan Subject: Re: [Dovecot] adding new user to dovecot In-Reply-To: <20040418071436.10986.qmail@webmail30.rediffmail.com> Message-ID: References: <20040418071436.10986.qmail@webmail30.rediffmail.com> PGP: 0B B4 BC 28 53 62 FE 94 6A 57 EE B8 A6 E2 1B E4 (0xAA5412F0) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2004 18:07:00 -0000 X-UID: 8948 Status: O Content-Length: 5264 On Sun, 18 Apr 2004, Kartik Vaidyanathan wrote: > [...] > a. What do you mean by virtual users. The mail accounts are not unix accounts. All email accounts are in a database (sql, ldap, text file, whatever), but these users do not have access to the unix system. Usually, all mailboxes are owned by the mailer daemon or whatever does the distribution. Check the Dovecot wiki. This is the most likely way big companies do things (you asked about yahoo). Obviously, yahoo would not like its free webmail users to log in on their unix machines. So they just have a lot of mailboxes owned by the email software they use, and the webmail software takes care that any user can only read their own mailbox. This is nothing to do with unix permissions or users anymore - you create your own definition of what 'user' is and what they can do. > b. How does one link them to a mailbox. > You just let the mail software deliver it to a mailbox owned by the user needed to check the email. E.g., your webserver runs as user 'www' - so you deliver all mail to a mailbox with the username it was sent to, but owned by that user 'www'. Hence, checking email through a web interface will work, as the user 'www' -the user of the webserver- will own and thus have access to all of these mailboxes. You have to be *very* careful to ensure that the users of your webmail system can't read other mailboxes, ofcourse. > Very frankly i am confused... > A unix user has nothing to do with a user from a webmail system or virtual email system. Ofcourse, you can make your own abstraction of what a user is, ignoring any unix background (users, permissions, etc), as long as the software can read and possibly write to the proper files. > 1.Well lets say i have a user who wants to create a new group say > GROUP1.Lets say i have users who want to create GROUP1@pigeonhole.com or > GROUP2@pigeonhole.com .This group name will be entered in my JSP page, > now what do i have to do to create the group. > There are several ways to do it. You could add a user 'group1' and add all email addresses that subscribe to a file called 'group1.users'. Then you have to get the email to 'group1' either passed on to your software which then sends out an email for the people in your 'group1.users' database, or find the MTA specific way of forwarding to all the users in this 'group1.users' file (with other words, you take care yourself of sending the email on to all the people in your list, or you find out how you can use any specific mailer daemon functionality that can expand an address to many addresses like sendmail's 'include'). > 2.How do i see to that anyone who sends a mail to GROUP2@pigeonhole > receives it in it mailbox( Firstly does the group have a mails box in > the groups name).Will one create a account(mailbox) for the group or how > is it done. > You either create a virtual user (check the dovecot website, especially the wiki, it has several pages on this) - that is a 'user' that has nothing to do with the unix concept of 'user', but is your own abstraction in a database - and you set up the mail system to get its addresses from this database -or- you create a real unix user 'group1'. This user will receive all email in the mailbox specified by the MTA software. Then, you need to find a way to either duplicate the email FROM THE MAILER SOFTWARE, pass it on to your program which then sends it on to everybody on your list; or you can find a way to use alias expansion functionality in the MAILER SOFTWARE, which will then replace 'group1' by all the users in your 'group1.users' database/file. I'm not a java expert, but I guess this part of the software will probably need to be written in a more unix-y language (c, c++, perl, python, etc). > 3.Lastly I actually want to create a mailing List manager. > It's not hard to create a program (java, if you want) that just adds email addresses to a file or database, and allows to remove these addresses. That's pretty much all the mailinglist manager does, basically. But you need something that accepts emails from the unix mail daemon, and then expands this file/database and sends on the email to all the people. Or can make use of forwarding functionality present in mailing software. All of this has nothing to do with Dovecot or IMAP. If you provide a webmail interface like yahoo, I don't think you even need any IMAP server. > Please advice on how to go about it. > I suggest you check out GNU Mailman, Majordomo and other free mailinglist software. They have extensive information on how to plug your database or program in the mailing daemon. It probably is a better idea to install one of these mailinglist managers, and then create a java (that's what you wanted, wasn't it) frontend to the database of subscribed people. Otherwise, you will still have a lot of learning about unix backend to do... ;) May I point out this is very irrelevant to the Dovecot mailinglist, you might find more useful help on lists about mailinglist software or even MTA's like postfix, sendmail, exim, etc. Dovecot is only a pop/imap server, and has no connection with what you want to do (except, maybe, after you set all the other things up and want to provide IMAP access). Regards, Wouter From zach.bagnall@bulletinwireless.com Mon Apr 19 01:05:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 97FE7C002800; Mon, 19 Apr 2004 01:05:52 +0300 (EEST) Received: from hawk.bulletinwireless.net (ns1.jungledrum.co.nz [210.54.149.34]) by talvi.dovecot.org (Postfix) with ESMTP id 3F981C000D9D for ; Mon, 19 Apr 2004 01:05:50 +0300 (EEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by hawk.bulletinwireless.net (Postfix) with ESMTP id 8468017586; Mon, 19 Apr 2004 10:00:21 +1200 (NZST) Received: from hawk.bulletinwireless.net ([127.0.0.1]) by localhost (hawk [127.0.0.1:10024]) (amavisd-new) with LMTP id 08526-01-19; Mon, 19 Apr 2004 09:59:57 +1200 (NZST) Received: from piranha (piranha.intra.jungledrum.co.nz [192.168.1.13]) by hawk.bulletinwireless.net (Postfix) with ESMTP id A1D4C17562; Mon, 19 Apr 2004 09:59:57 +1200 (NZST) Date: Mon, 19 Apr 2004 09:58:10 +1200 From: Zach Bagnall To: dovecot@dovecot.org Subject: Re: [Dovecot] Is dovecot distributed with RHEL 3.0 Message-Id: <20040419095810.23d8e4e9.zach.bagnall@bulletinwireless.com> In-Reply-To: <34610.192.168.50.6.1082245279.squirrel@192.168.50.6> References: <34610.192.168.50.6.1082245279.squirrel@192.168.50.6> Organization: Bulletin Wireless X-Mailer: Sylpheed version 0.9.7claws (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Mon__19_Apr_2004_09_58_10_+1200_aUo.8F2jDbIeOfNg" X-Virus-Scanned: by amavisd-new Cc: schrock@dayzed.com X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2004 22:05:52 -0000 X-UID: 8949 Status: O Content-Length: 1281 --Signature=_Mon__19_Apr_2004_09_58_10_+1200_aUo.8F2jDbIeOfNg Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit RHN doesn't list anything for dovecot. I'm not surprised really. Dovecot is relatively quite new and the RHEL policy seems to be including only popular, well tested proven apps. Lots of perl modules which had RPMs in 7/8/9 aren't in RHEL - 2.1 didn't even have postfix. That said, the RH 9 or FC RPMs may well work fine without modification. Zach. On Sat, 17 Apr 2004 16:41:19 -0700 (PDT), "Avery" wrote: > I can't seem to find out if dovecot is packaged with RHEL 3.0. It > seems redhat makes it hard to find what packages you get when you > purchase their RHEL. Does anyone know if dovecot is disributed with > Red Hat Enterprise Linux ES 3.0? > I know dovecot is distribured with redhat 9.0 and fedora. > > Thanks, > -- > Avery --Signature=_Mon__19_Apr_2004_09_58_10_+1200_aUo.8F2jDbIeOfNg Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAgvny4jDFYT+aqaIRAoNNAJ4m0/YuU5CYTcjPtPLzxn6V0c+AgACdGafw cy2GZFPJ1RFOdgxWEpiDsjk= =7rlf -----END PGP SIGNATURE----- --Signature=_Mon__19_Apr_2004_09_58_10_+1200_aUo.8F2jDbIeOfNg-- From olive@pasteur.fr Mon Apr 19 17:56:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 14FBAC002801; Mon, 19 Apr 2004 17:56:24 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id 1A9F7C000D9D for ; Mon, 19 Apr 2004 17:56:22 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id EF1DB1145B for ; Mon, 19 Apr 2004 16:50:51 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 5F2A61144B for ; Mon, 19 Apr 2004 16:50:51 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 3658F3F67D; Mon, 19 Apr 2004 16:50:51 +0200 (CEST) Date: Mon, 19 Apr 2004 16:50:51 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] configuration problem.. with passwd Message-ID: <20040419145051.GU74923@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <20040417054242.25004.qmail@webmail10.rediffmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20040417054242.25004.qmail@webmail10.rediffmail.com> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2004 14:56:24 -0000 X-UID: 8950 Status: O * Kartik Vaidyanathan (20040417 05:42): >  Hi > i was trying to configure dovecot. Under the authentication section > i have set the > auth_passdb=/etc/passwd > auth_user=root > auth_userdb=/etc/passwd > > But it gives > Error in configuration file /etc/dovecot.conf line 398 :missing value which points to > auth_passdb=/etc/passwd in the file. Just type 'auth_passdb=passwd'. -- olive From adani@stevens.edu Mon Apr 19 19:00:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4C20BC002801; Mon, 19 Apr 2004 19:00:55 +0300 (EEST) Received: from nexus.stevens.edu (nexus.stevens.edu [155.246.14.12]) by talvi.dovecot.org (Postfix) with ESMTP id 30752C000D9D for ; Mon, 19 Apr 2004 19:00:53 +0300 (EEST) Received: from it000056 (chosetop.cc.stevens-tech.edu [155.246.154.236]) by nexus.stevens.edu (iPlanet Messaging Server 5.2 HotFix 1.26 (built Mar 31 2004)) with ESMTP id <0HWF00LACDKAGN@nexus.stevens.edu> for dovecot@dovecot.org; Mon, 19 Apr 2004 11:55:22 -0400 (EDT) Date: Mon, 19 Apr 2004 11:55:22 -0400 From: Alban Dani To: dovecot@dovecot.org Message-id: <0HWF00LADDKAGN@nexus.stevens.edu> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Mailer: Microsoft Office Outlook, Build 11.0.5510 Content-type: multipart/alternative; boundary="Boundary_(ID_dCQLAnhfmUI45O+Jhh5sxg)" Thread-index: AcQmJriaF3UM1IklRxSO5V7l6o48Gw== Subject: [Dovecot] Can't resolve address 127.0.0.1 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2004 16:00:55 -0000 X-UID: 8951 Status: O Content-Length: 3934 This is a multi-part message in MIME format. --Boundary_(ID_dCQLAnhfmUI45O+Jhh5sxg) Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Hi , I recently installed Fedora Core 1. Installed postfix on it and that is running fine. I am trying to get dovecot to run and I have changed only the following line from the default dovecot.conf : imap_listen = 127.0.0.1 since I'd like to install squirrelmail later on. Now when I try to start dovecot I get "Starting Dovecot Imap: Fatal: Can't resolve address 127.0.0.1 : Name or service not known" Can anybody help me? Alban --Boundary_(ID_dCQLAnhfmUI45O+Jhh5sxg) Content-type: text/html; charset=us-ascii Content-transfer-encoding: 7BIT

Hi ,

 

I recently installed Fedora Core 1.

Installed postfix on it and that is running fine.

 

I am trying to get dovecot to run and I have changed only the following line from the default dovecot.conf :

 

imap_listen = 127.0.0.1 since I’d like to install squirrelmail later on.

 

Now when I try to start dovecot I get “Starting Dovecot Imap: Fatal: Can't resolve address 127.0.0.1 : Name or service not known”

 

 

 

Can anybody help me?

 

Alban

 

--Boundary_(ID_dCQLAnhfmUI45O+Jhh5sxg)-- From rjohnson@medata.com Tue Apr 20 00:44:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EDD6BC002801; Tue, 20 Apr 2004 00:44:18 +0300 (EEST) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id A3612C000D9D for ; Tue, 20 Apr 2004 00:44:15 +0300 (EEST) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i3JLceSD027907 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 19 Apr 2004 14:38:43 -0700 Message-ID: <408446E3.4010109@medata.com> Date: Mon, 19 Apr 2004 14:38:43 -0700 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040404) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Alban Dani Subject: Re: [Dovecot] Can't resolve address 127.0.0.1 References: <0HWF00LADDKAGN@nexus.stevens.edu> In-Reply-To: <0HWF00LADDKAGN@nexus.stevens.edu> X-Enigmail-Version: 0.83.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2004 21:44:19 -0000 X-UID: 8952 Status: O Alban Dani wrote: > Hi , > > I recently installed Fedora Core 1. > > Installed postfix on it and that is running fine. > > I am trying to get dovecot to run and I have changed only the following > line from the default dovecot.conf : > > imap_listen = 127.0.0.1 since I’d like to install squirrelmail later on. > > Now when I try to start dovecot I get “Starting Dovecot Imap: Fatal: > Can't resolve address 127.0.0.1 : Name or service not known” Does /etc/hosts still contain an entry for localhost? Does /etc/nsswitch.conf still reference files for name resolution? Is the interface lo active? (run ifconfig to find out) -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From adani@stevens.edu Tue Apr 20 04:34:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 26F14C002801; Tue, 20 Apr 2004 04:34:49 +0300 (EEST) Received: from nexus.stevens.edu (nexus.stevens.edu [155.246.14.12]) by talvi.dovecot.org (Postfix) with ESMTP id C3EF4C000D9D for ; Tue, 20 Apr 2004 04:34:46 +0300 (EEST) Received: from cpipe.stevens.edu (cpipe.stevens.edu [155.246.21.37]) by nexus.stevens.edu (iPlanet Messaging Server 5.2 HotFix 1.26 (built Mar 31 2004)) with SMTP id <0HWG00MOU44T61@nexus.stevens.edu> for dovecot@dovecot.org; Mon, 19 Apr 2004 21:29:17 -0400 (EDT) Date: Mon, 19 Apr 2004 21:29:17 -0400 (EDT) From: Alban Dani Subject: Re: [Dovecot] Can't resolve address 127.0.0.1 To: Rick Johnson Message-id: <6254374.1082424557424.JavaMail.adani@stevens.edu> MIME-version: 1.0 Content-type: text/plain Content-transfer-encoding: 7BIT Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2004 01:34:49 -0000 X-UID: 8953 Status: O Content-Length: 1219 Rick thanks for the message, -I have not done any changes to the default nsswitch.conf. I checked and the entry hosts: files dns is there -127.0.0.1 localhost entry is in the /etc/hosts file. -ifconfig shows that the interface is up and I can successfully ping it by name ( ping localhost ). What else can be wrong. I am totally lost here. Alban Rick Johnson wrote: >Alban Dani wrote: >> Hi , >> >> I recently installed Fedora Core 1. >> >> Installed postfix on it and that is running fine. >> >> I am trying to get dovecot to run and I have changed only the following >> line from the default dovecot.conf : >> >> imap_listen = 127.0.0.1 since I'd like to install squirrelmail later on. >> >> Now when I try to start dovecot I get "Starting Dovecot Imap: Fatal: >> Can't resolve address 127.0.0.1 : Name or service not known" > >Does /etc/hosts still contain an entry for localhost? > >Does /etc/nsswitch.conf still reference files for name resolution? > >Is the interface lo active? (run ifconfig to find out) > >-Rick > >-- >Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com >Linux/Network Administrator - Medata, Inc. >PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc > From dpham@mercy.com.au Tue Apr 20 09:05:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E0515C00280B; Tue, 20 Apr 2004 09:05:51 +0300 (EEST) Received: from coregw01.mercy.com.au (mail.mercy.com.au [210.9.192.244]) by talvi.dovecot.org (Postfix) with ESMTP id 56313C000D9D for ; Tue, 20 Apr 2004 09:05:48 +0300 (EEST) Received: from emelb-mail-01.mercy.com.au ([172.27.128.251]) by coregw01.mercy.com.au with InterScan Messaging Security Suite; Tue, 20 Apr 2004 15:53:18 +1000 Received: by emelb-mail-01.mercy.com.au with Internet Mail Service (5.5.2653.19) id ; Tue, 20 Apr 2004 15:59:58 +1000 Message-ID: <3ED0289A9D58414D9AD116DA91E2E96915E6BC@coremx01.mercynet.com.au> From: Zoong Pham To: "'dovecot@dovecot.org'" Date: Tue, 20 Apr 2004 15:59:54 +1000 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="ISO-8859-1" Subject: [Dovecot] Wiki: virutal user with Sendmail and OpenLDAP X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2004 06:05:52 -0000 X-UID: 8954 Status: O In the Wiki, section 2, "Virtual user support with OpenLDAP", does the example apply to non Sendmail? If that's the case, can someone post a quick guide about setup virtual user with Sendmail. I use OpenBSD-3.4, BTW. TIA, Zoong From dovecot@blinkenlights.ch Tue Apr 20 09:42:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 88402C00280C; Tue, 20 Apr 2004 09:42:56 +0300 (EEST) Received: from mail5.bluewin.ch (mail5.bluewin.ch [195.186.1.207]) by talvi.dovecot.org (Postfix) with ESMTP id CE23CC00280B for ; Tue, 20 Apr 2004 09:42:53 +0300 (EEST) Received: from blinkenlights.ch (62.202.0.18) by mail5.bluewin.ch (Bluewin AG 7.0.027) id 40570144005E57BB for dovecot@dovecot.org; Tue, 20 Apr 2004 06:37:22 +0000 Received: from fuzzy.lunix (unknown [192.168.1.1]) by blinkenlights.ch (Postfix) with SMTP id 7E1463BF8 for ; Tue, 20 Apr 2004 08:37:17 +0200 (CEST) Date: Tue, 20 Apr 2004 08:37:21 +0200 From: Adrian Ulrich To: dovecot@dovecot.org Subject: Re: [Dovecot] Can't resolve address 127.0.0.1 Message-Id: <20040420083721.1d1a4323.dovecot@blinkenlights.ch> In-Reply-To: <6254374.1082424557424.JavaMail.adani@stevens.edu> References: <6254374.1082424557424.JavaMail.adani@stevens.edu> Organization: Bluewin AG X-Mailer: Sylpheed version 0.9.9 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2004 06:42:56 -0000 X-UID: 8955 Status: O Hello, > imap_listen = 127.0.0.1 Check if you have a space after .1: 'imap_listen = 127.0.0.1' maybe not the same as 'imap_listen = 127.0.0.1 ' bye From adani@stevens.edu Tue Apr 20 16:39:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0919FC00280C; Tue, 20 Apr 2004 16:39:01 +0300 (EEST) Received: from nexus.stevens.edu (nexus.stevens.edu [155.246.14.12]) by talvi.dovecot.org (Postfix) with ESMTP id 151EAC00280B for ; Tue, 20 Apr 2004 16:38:59 +0300 (EEST) Received: from it000056 (chosetop.cc.stevens-tech.edu [155.246.154.236]) by nexus.stevens.edu (iPlanet Messaging Server 5.2 HotFix 1.26 (built Mar 31 2004)) with ESMTP id <0HWH000GL1NSAR@nexus.stevens.edu> for dovecot@dovecot.org; Tue, 20 Apr 2004 09:33:28 -0400 (EDT) Date: Tue, 20 Apr 2004 09:33:28 -0400 From: Alban Dani In-reply-to: <20040420090004.DA2D9C00280F@talvi.dovecot.org> To: dovecot@blinkenlights.ch Message-id: <0HWH000GM1NSAR@nexus.stevens.edu> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Mailer: Microsoft Office Outlook, Build 11.0.5510 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Thread-index: AcQmtSXmxPXnGYPhRamAeYaFOZEi5QAJYeEQ Cc: dovecot@dovecot.org Subject: [Dovecot] RE: dovecot Digest, Vol 12, Issue 21 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2004 13:39:01 -0000 X-UID: 8956 Status: O Hi Adrian, You are right. I had a space after the .1. Now dovecot is listening fine on 127.0.0.1. Thanks a lot. I would have never thought of it. Alban Date: Tue, 20 Apr 2004 08:37:21 +0200 From: Adrian Ulrich Subject: Re: [Dovecot] Can't resolve address 127.0.0.1 To: dovecot@dovecot.org Message-ID: <20040420083721.1d1a4323.dovecot@blinkenlights.ch> Content-Type: text/plain; charset=US-ASCII Hello, > imap_listen = 127.0.0.1 Check if you have a space after .1: 'imap_listen = 127.0.0.1' maybe not the same as 'imap_listen = 127.0.0.1 ' bye From yedidia@jct.ac.il Tue Apr 20 17:13:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 65121C00280C; Tue, 20 Apr 2004 17:13:45 +0300 (EEST) Received: from mail.jct.ac.il (unknown [147.161.1.14]) by talvi.dovecot.org (Postfix) with ESMTP id 158E0C00280B for ; Tue, 20 Apr 2004 17:13:43 +0300 (EEST) Received: from kidushin.jct.ac.il (kidushin.jct.ac.il [147.161.1.19]) by mail.jct.ac.il (8.12.8+Sun/8.12.8) with SMTP id i3KE7Z06004325 for ; Tue, 20 Apr 2004 17:07:35 +0300 (IDT) Received: from jct.ac.il ([147.161.1.211]) by kidushin.jct.ac.il (SAVSMTP 3.1.3.37) with SMTP id M2004042016553205212 for ; Tue, 20 Apr 2004 16:55:32 +0300 Message-ID: <40852EC8.2010209@jct.ac.il> Date: Tue, 20 Apr 2004 17:08:08 +0300 From: Yedidia Klein User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] configuring dovecot for NIS (w/ pam) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2004 14:13:45 -0000 X-UID: 8957 Status: O Hi, I am trying to start using dovecot on a linux machine. I config it to auth w/ my passwd/shadow and it worked perefectly. I'm not getting to config it to work with my SUN NIS (not +) As I understood I must use PAM for this, I tried to config it w/o any success... do someone has a config file/ pam config for this ? thanks --Yedidia From katzj@redhat.com Tue Apr 20 17:21:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C65EEC00280F; Tue, 20 Apr 2004 17:21:04 +0300 (EEST) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by talvi.dovecot.org (Postfix) with ESMTP id 6EC0CC00280C for ; Tue, 20 Apr 2004 17:21:02 +0300 (EEST) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i3KEFUJW007326; Tue, 20 Apr 2004 10:15:30 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i3KEFUj05321; Tue, 20 Apr 2004 10:15:30 -0400 Received: from [172.16.50.57] (vpn50-57.rdu.redhat.com [172.16.50.57]) by devserv.devel.redhat.com (8.12.10/8.12.10) with ESMTP id i3KEF41n002085; Tue, 20 Apr 2004 10:15:05 -0400 Subject: Re: [Dovecot] Is dovecot distributed with RHEL 3.0 From: Jeremy Katz To: schrock@dayzed.com In-Reply-To: <34610.192.168.50.6.1082245279.squirrel@192.168.50.6> References: <34610.192.168.50.6.1082245279.squirrel@192.168.50.6> Content-Type: text/plain Message-Id: <1082470454.22892.36.camel@rivendell.local.net> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-1) Date: Tue, 20 Apr 2004 10:14:15 -0400 Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2004 14:21:04 -0000 X-UID: 8958 Status: O On Sat, 2004-04-17 at 19:41, Avery wrote: > I can't seem to find out if dovecot is packaged with RHEL 3.0. It seems > redhat makes it hard to find what packages you get when you purchase their > RHEL. Does anyone know if dovecot is disributed with Red Hat Enterprise > Linux ES 3.0? > I know dovecot is distribured with redhat 9.0 and fedora. It wasn't included in RHEL 3, although it was included with Fedora Core 1. The FC1 package should rebuild fine (I did that internally for some testing/use myself) Jeremy From rjohnson@medata.com Tue Apr 20 19:39:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4AB4DC002807; Tue, 20 Apr 2004 19:39:47 +0300 (EEST) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id A233AC002800 for ; Tue, 20 Apr 2004 19:39:44 +0300 (EEST) Received: from medata.com (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i3KGYBSD023475 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 20 Apr 2004 09:34:11 -0700 Message-ID: <40855104.8040407@medata.com> Date: Tue, 20 Apr 2004 09:34:12 -0700 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.5 (X11/20040404) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Is dovecot distributed with RHEL 3.0 References: <34610.192.168.50.6.1082245279.squirrel@192.168.50.6> <1082470454.22892.36.camel@rivendell.local.net> In-Reply-To: <1082470454.22892.36.camel@rivendell.local.net> X-Enigmail-Version: 0.83.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.70, clamav-milter version 0.70j X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2004 16:39:47 -0000 X-UID: 8959 Status: O Jeremy Katz wrote: > It wasn't included in RHEL 3, although it was included with Fedora Core > 1. The FC1 package should rebuild fine (I did that internally for some > testing/use myself) The FC1 package also rebuilds well under RH9 - which RHEL 3 is mostly based on. Lately, I've been using the Rawhide SRPM rebuilt for RH9 in order to ensure that I have everything released upstream. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From alsbergt@zoopee.org Fri Apr 23 13:53:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 48FE5C002800; Fri, 23 Apr 2004 13:53:53 +0300 (EEST) Received: from dexter.zoopee.org (zoopee.org [192.117.108.58]) by talvi.dovecot.org (Postfix) with ESMTP id AE05AC000D9D for ; Fri, 23 Apr 2004 13:53:50 +0300 (EEST) Received: from alsbergt by dexter.zoopee.org with local (Exim 4.30) id 1BGyE9-0004dK-6p for dovecot@dovecot.org; Fri, 23 Apr 2004 13:48:13 +0300 Date: Fri, 23 Apr 2004 13:48:13 +0300 From: Tom Alsberg To: Dovecot Mailing List Message-ID: <20040423104813.GA17771@zoopee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Face: "5"j@Y1Peoz1; ftTv>\|['ox-csmV+:_RDNdi/2lSe2x?0:HVAeVW~ajwQ7RfDlcb^18eJ; t,O,s5-aNdU/DJ2E8h1s,..4}N9$27u`pWmH|; s!zlqqVwr9R^_ji=1\3}Z6gQBYyQ]{gd5-V8s^fYf{$V2*_&S>eA|SH@Y\hOVUjd[5eah{EO@gCr.ydSpJHJIU[QsH~bC?$C@O:SzF=CaUxp80-iknM(]q(W Subject: [Dovecot] Envelope From changed - why? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Tom Alsberg List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2004 10:53:53 -0000 X-UID: 8960 Status: O Hi there. I am evaluating Dovecot as an IMAP server. I noticed on thing which irritates me. When a user saves a message to an IMAP folder with the Dovecot server, the envelope From line is changed to the address of that user, instead of keeping the From line of the original message. How can I have the original envelope From line preserved when saving messages? -- Tom -- Tom Alsberg - certified insane, complete illiterate. Homepage: http://www.cs.huji.ac.il/~alsbergt/ * An idea is not responsible for the people who believe in it. From wouter-dovecot@fort-knox.rave.org Sun Apr 18 09:17:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4C825C002809; Sun, 18 Apr 2004 09:17:22 +0300 (EEST) Received: from amsfep15-int.chello.nl (amsfep15-int.chello.nl [213.46.243.28]) by talvi.dovecot.org (Postfix) with ESMTP id F10A3C002805 for ; Sun, 18 Apr 2004 09:17:15 +0300 (EEST) Received: from hibernate.cryolabs.net ([213.132.151.209]) by amsfep15-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with SMTP id <20040418061148.PRMB7662.amsfep15-int.chello.nl@hibernate.cryolabs.net> for ; Sun, 18 Apr 2004 08:11:48 +0200 Received: (qmail 27603 invoked from network); 18 Apr 2004 08:11:15 +0200 Received: from unknown (HELO senta.theria.org) (192.168.196.7) by hibernate.cryolabs.net with SMTP; 18 Apr 2004 08:11:15 +0200 Date: Sun, 18 Apr 2004 08:11:46 +0200 (CEST) From: Wouter Van Hemel To: Kartik Vaidyanathan Subject: Re: Re: [Dovecot] adding new user to dovecot In-Reply-To: <20040416043308.922.qmail@webmail30.rediffmail.com> Message-ID: References: <20040416043308.922.qmail@webmail30.rediffmail.com> PGP: 0B B4 BC 28 53 62 FE 94 6A 57 EE B8 A6 E2 1B E4 (0xAA5412F0) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Mailman-Approved-At: Fri, 23 Apr 2004 14:05:00 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2004 06:17:22 -0000 X-UID: 8961 Status: O Content-Length: 4664 On Fri, 16 Apr 2004, Kartik Vaidyanathan wrote: > Hi, > > I have actually configured dovecot because i required a mail server in > order to build a mailing list manager.A mail list manager is something > in the likes of yahoogroups, where each group in my case must have a > mailbox. > You need a MTA, such as postfix, qmail, sendmail, exim, etc. It's more important than an imap server for what you want to do. Actually, I don't really understand why you need an imap server when making a mailinglist manager. > 1. I am using Debian OS. > The software that i am creating , which is going developed in JSP, will > take a new users name and password and create a account for him by > executing a shell script in my linux machine.I assume yahoo also does > something similar to this to create new mail boxes for any new > user.Please correct me if i am wrong. > I don't know, I don't work at yahoo. But I think they create virtual users in database systems for email, I can't imagine all of the users they have are in one passwd file on one tiny machine. > In fact this very mail that i have received from you is because i have > subscribed to the dovecott mailing list. How do you think dovecott has > been able to accomplish this. Is it not because that dovecott has a > mailbox in the group name "dovecott" in some system, that internally > does the sending of mails to all those in the groups refering to some > database. > Dovecot doesn't have anything to do with that. It's mostly the MTA, aided by the mailing list manager. Here's how majordomo (popular mailinglist manager) works: Bob wants to subscribe to the pigeonhole mailinglist. He emails or enters his email address in a web form so it ends up in a database file with all the other users on that list. The mailinglist manager's job is to take care of adding (or removing) email addresses to (from) that file; it adds Bob's address. When an email is sent to pigeonhole@pigeonhole.org, the mailer daemon (MTA) receives this email, and instead of delivering it to a local user, either it (1) delivers it to a pipe - it passes the email to the mailinglist software, which then just generates an email that replaces the original destination with the list of email addresses; or (2) the mailer daemon itself forwards the email by alias expansion to the list of email addresses the mailinglist software made. In the former case, the mailinglist manager reads the original message and replaces the address with all those in the list's database; in the latter case, basically the only thing a mailinglist manager does, is taking care of an error-free database file with email addresses so the MTA can forward the email to the addresses in this file. Because Bob's email address is in this file, his address will be inserted in the headers of the message, and he will receive the email. > 2.Will the mail server support me in anyway by giving me some > functionality to add users, thereby creating maildir's (imap) for the > users. > No, adding users is not the job of a mail server daemon. Or of an imap server. Usually, you don't allow people to add users to your system, for obvious reasons. If you want to add users to a mailing list, you don't need accounts for those users, only when you also want to provide them with an email address. What do you want to do: provide email addresses, or a mailinglist manager? > 3.Dont I need to know the admin login and passwd, to create users? > Yes, ofcourse. Unless your users are in a database server, in that case you need the ability to add records to that database. (Shared webhosting accounts usually allow adding virtual users, if that's the reasoning behind your question.) > 3.Lastly i know this is not that prevalent a question -> I was told mail > man does a similar job as to what my software will do.Do you know how > mailman works (or even yahoogroups)?. > Not precisely, but pretty much like I said above. You can check out the documentation and source code of said software. Yahoogroups probably uses custom written software, but still based on the simple approach of a mailinglist manager taking care of a list of subscribers, and the mailer daemon either itself or by aid of an external program multiplicating the recipients. A mailinglist manager has nothing to do with Dovecot. Dovecot has nothing to do with *sending* email, only with retrieving it from a system with IMAP of POP. It's the end-of-the-line for emails, delivery to final destination; it does not forward or duplicate. > Please enlighten me on the above issues. > Thanks a lot for you time. > I'll send you the bill later. ;) > Regards > Kartik > > > > From wouter-dovecot@fort-knox.rave.org Sun Apr 18 09:27:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 83B16C002809; Sun, 18 Apr 2004 09:27:54 +0300 (EEST) Received: from amsfep20-int.chello.nl (amsfep12-int.chello.nl [213.46.243.18]) by talvi.dovecot.org (Postfix) with ESMTP id 9BC9BC002805 for ; Sun, 18 Apr 2004 09:27:51 +0300 (EEST) Received: from hibernate.cryolabs.net ([213.132.151.209]) by amsfep20-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with SMTP id <20040418062226.PJOX2228.amsfep20-int.chello.nl@hibernate.cryolabs.net> for ; Sun, 18 Apr 2004 08:22:26 +0200 Received: (qmail 26098 invoked from network); 18 Apr 2004 08:21:54 +0200 Received: from unknown (HELO senta.theria.org) (192.168.196.7) by hibernate.cryolabs.net with SMTP; 18 Apr 2004 08:21:54 +0200 Date: Sun, 18 Apr 2004 08:22:26 +0200 (CEST) From: Wouter Van Hemel To: Sven Kirmess Subject: Re: [Dovecot] adding new user to dovecot In-Reply-To: Message-ID: References: <20040416043308.922.qmail@webmail30.rediffmail.com> PGP: 0B B4 BC 28 53 62 FE 94 6A 57 EE B8 A6 E2 1B E4 (0xAA5412F0) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Mailman-Approved-At: Fri, 23 Apr 2004 14:05:00 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2004 06:27:54 -0000 X-UID: 8962 Status: O On Fri, 16 Apr 2004, Sven Kirmess wrote: > [...] I will explain how majordomo does this. [...] Doh. I really should learn to read the rest of the thread before replying and repeating the whole thing all over. :*) From john@sysful.com Fri Apr 23 17:54:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6EF11C002800; Fri, 23 Apr 2004 17:54:19 +0300 (EEST) Received: from smtp.monmouth.com (smtp.monmouth.com [209.191.58.6]) by talvi.dovecot.org (Postfix) with ESMTP id 3AC5DC000D9D for ; Fri, 23 Apr 2004 17:54:17 +0300 (EEST) Received: from sfi ([64.19.185.2]) by smtp.monmouth.com (8.12.11/8.12.11) with SMTP id i3NEmb1X002921 for ; Fri, 23 Apr 2004 10:48:39 -0400 (EDT) Message-ID: <00f301c42942$69ef0930$3fc8c8c8@SFULFILLMENT.local> From: "John Wentworth" To: "dovecot" Date: Fri, 23 Apr 2004 10:51:09 -0400 Organization: Systems Fulfillment MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_00F0_01C42920.E2BEE4B0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Subject: [Dovecot] SSL Ciphers X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: John Wentworth List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2004 14:54:19 -0000 X-UID: 8963 Status: O Content-Length: 2720 This is a multi-part message in MIME format. ------=_NextPart_000_00F0_01C42920.E2BEE4B0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I have dovecot running as a pop3s server on port 995 it works great with sendmail and=20 I run nessus to check security issues nessus reports this The SSLv2 server offers 3 strong ciphers, but also 0 medium strength and 2 weak "export class" ciphers. The weak/medium ciphers may be chosen by an export-grade or badly configured client software. They only offer a=20 limited protection against a brute force attack Solution: disable those ciphers and upgrade your client software if necessary I have previously disabled weak ciphers in apache=20 but cannot figure out how to disable the weak ciphers in dovecot Any help would be appreciated john ------=_NextPart_000_00F0_01C42920.E2BEE4B0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
I have dovecot running as a pop3s = server on port=20 995
 
it works great with = sendmail
and
I run nessus to check security = issues
nessus reports this
The SSLv2 server offers 3 strong = ciphers, but=20 also
0 medium strength and 2 weak "export class" ciphers.
The = weak/medium=20 ciphers may be chosen by an export-grade
or badly configured client = software.=20 They only offer a
limited protection against a brute force=20 attack
 
Solution: disable those ciphers and = upgrade your=20 client
software if necessary
I have previously disabled weak ciphers = in apache=20
but cannot figure out how to disable = the weak=20 ciphers in
dovecot
Any help would be = appreciated
 
john
------=_NextPart_000_00F0_01C42920.E2BEE4B0-- From amyzing@talsever.com Sat Apr 24 02:13:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6731AC002800; Sat, 24 Apr 2004 02:13:10 +0300 (EEST) Received: from smtp6.mindspring.com (smtp6.mindspring.com [207.69.200.110]) by talvi.dovecot.org (Postfix) with ESMTP id 51533C000D9D for ; Sat, 24 Apr 2004 02:13:08 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by smtp6.mindspring.com with esmtp (Exim 3.33 #1) id 1BH9lK-0005eD-00 for dovecot@dovecot.org; Fri, 23 Apr 2004 19:07:14 -0400 Received: from lirdala.talsever.com (lirdala.talsever.com [192.168.0.28]) by marajen.talsever.com (Postfix) with SMTP id 9AFE5B770 for ; Fri, 23 Apr 2004 19:07:13 -0400 (EDT) Date: Fri, 23 Apr 2004 19:07:13 -0400 From: Amelia A Lewis To: dovecot@dovecot.org Message-Id: <20040423190713.777efc16.amyzing@talsever.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.7 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Dovecot] problems with squirrelmail and TLS (debian unstable) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2004 23:13:10 -0000 X-UID: 8964 Status: O Content-Length: 1553 Heylas, So, okay, I've had this lovely IMAP server running, and adore the ease of configuration, among other things. Problem, though. I'm trying to set up SquirrelMail, so that some folks with accounts on my box can use it without having to set up a proper imap client (or can check mail when they're at a cafe, or like that). However, I *won't* turn off the disable_plaintext_auth, 'cause I'm damned if I'll set up a box that asks people to send passwords in the clear, and there *are* people using imap. Dovecot cannot, currently, be configured to permit plaintext on localhost while requiring Something Better from the rest of the world. This becomes a problem with SquirrelMail, which can't cope with TLS. It just barfs. Looking at bug reports in debian, this has already been noticed, and the maintainer there (and the maintainers of SquirrelMail) considers this a non-problem, 'cause, they say, you shouldn't be using TLS with webmail. Is there a way to set up, for instance, two instances of dovecot, running on different ports, so that one listens to the external interface and the other listens to localhost? I don't much like the idea, but how would I go about doing this? Two copies of dovecot.conf and a command-line switch? Amy! -- Amelia A. Lewis amyzing {at} talsever.com Yankees are compelled by some mysterious force to imitate Southern accents and they're so damn dumb they don't know the difference beween a Tennessee drawl and a Charleston clip. -- Rita Mae Brown, "Rubyfruit Jungle" From amyzing@talsever.com Sat Apr 24 17:54:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id ACC55C002800; Sat, 24 Apr 2004 17:54:43 +0300 (EEST) Received: from barry.mail.mindspring.net (barry.mail.mindspring.net [207.69.200.25]) by talvi.dovecot.org (Postfix) with ESMTP id 2FAC7C000D9D for ; Sat, 24 Apr 2004 17:54:41 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by barry.mail.mindspring.net with esmtp (Exim 3.33 #1) id 1BHOST-0005AZ-00 for dovecot@dovecot.org; Sat, 24 Apr 2004 10:48:45 -0400 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id 02CECB769 for ; Sat, 24 Apr 2004 10:48:44 -0400 (EDT) Date: Sat, 24 Apr 2004 10:48:44 -0400 From: Amelia A Lewis To: dovecot@dovecot.org Subject: Re: [Dovecot] problems with squirrelmail and TLS (debian unstable) Message-Id: <20040424104844.5f550190.amyzing@talsever.com> In-Reply-To: <20040424065642.7c8166c1.cube@cubidou.net> References: <20040423190713.777efc16.amyzing@talsever.com> <20040424065642.7c8166c1.cube@cubidou.net> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.7 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Apr 2004 14:54:43 -0000 X-UID: 8965 Status: O Content-Length: 2029 I should follow up, having complained in public ... On Sat, 24 Apr 2004 06:56:42 +0200 Quentin Garnier wrote: > Le Fri, 23 Apr 2004 19:07:13 -0400 > Amelia A Lewis a ecrit : > [...] > > Dovecot cannot, currently, be configured to permit plaintext on > > localhost while requiring Something Better from the rest of the world. > > > > This becomes a problem with SquirrelMail, which can't cope with TLS. > > It just barfs. Looking at bug reports in debian, this has already > > SquirrelMail works perfectly fine with Dovecot and TLS. I use it in > production for the company I work in. > > However, it is true that I had to debug a very big issue with PHP and > the way it is compiled. I'm using NetBSD and pkgsrc, but I guess it > might be the same with the Debian packages. [snip] It's interesting that there are different issues. My debian installation had a bug in functions/imap_general.php that discarded the server name if tls was used (the server name became "tls://", only, instead of prepending that to the server name). Once I fixed that (now reported to debian maintainer, so should show fixed soon there), I still had problems, because I assumed that squirrelmail could do STARTTLS. It doesn't, apparently (I could be wrong again, though). Switching it to port 993 in config made everything lovely. Debian's php (libapache2-mod-php4, in my case, a recent addition to packages that actually permits php4 with apache2) appears to be compiled with the proper support. So, all serene. *laugh* On the other hand, I *would* still like to be able to run without TLS on localhost (a localhost exception to disable_plaintext_auth), because it's fairly pointless to require the processor to do all the extra work of encryption and decryption in that situation. Feature request, please, Timo? Amy! -- Amelia A. Lewis amyzing {at} talsever.com The flesh is strong. The spirit stronger. So shed your skin, baby. Let it through. Come on over. -- Amy Ray From thomas@stthomasanglican.org Sat Apr 24 18:13:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A6ED5C002802; Sat, 24 Apr 2004 18:13:39 +0300 (EEST) Received: from air.on.ca (mail.tbaytel.net [216.211.26.26]) by talvi.dovecot.org (Postfix) with ESMTP id 12010C002800 for ; Sat, 24 Apr 2004 18:13:37 +0300 (EEST) Received: from [216.211.61.122] (HELO stthomas.stthomasanglican.org) by air.on.ca (CommuniGate Pro SMTP 4.1.8) with ESMTP-TLS id 18485 for dovecot@dovecot.org; Sat, 24 Apr 2004 11:07:55 -0400 Received: from CPQ36731385022 (client100.stthomasanglican.org [172.16.1.100]) (authenticated bits=0) by stthomas.stthomasanglican.org (8.12.9p1/8.12.9) with ESMTP id i3OF74kv030209 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) for ; Sat, 24 Apr 2004 11:07:05 -0400 (EDT) (envelope-from thomas@stthomasanglican.org) Message-ID: <001201c42a0d$d13ec5f0$640110ac@CPQ36731385022> From: "Thomas Abthorpe" To: Date: Sat, 24 Apr 2004 11:07:09 -0400 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_000F_01C429EC.49B13F30" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-MailScanner-Information: Please contact MailScanner@stthomasanglican.org for more information X-MailScanner: Found to be clean X-MailScanner-SpamCheck: not spam, SpamAssassin (timed out) X-MailScanner-From: thomas@stthomasanglican.org Subject: [Dovecot] error dropping root group priv X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Apr 2004 15:13:39 -0000 X-UID: 8966 Status: O Content-Length: 2820 This is a multi-part message in MIME format. ------=_NextPart_000_000F_01C429EC.49B13F30 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Good morning all, I am new to this list. I have been running FreeBSD 5.1 with dovecot successfully for about a year.= Just recently, I built a new machine with 5.2.1-p5 on the Intel platform w= ith dovecot-0.99.10.4_2. When I use the same configuration options on the n= ew machine, I get Apr 24 10:53:59 standrew pop3-login: Login: tabthorpe [172.16.1.100] Apr 24 10:53:59 standrew pop3(tabthorpe): We couldn't drop root group privi= leges Apr 24 10:53:59 standrew dovecot: child 44134 (pop3) returned error 89 Any suggestion? Thanks in advance. Thomas --=20 This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. Postmaster http://www.stthomasanglican.org ------=_NextPart_000_000F_01C429EC.49B13F30 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Good morning all, I am new to this list.
 
I have been running FreeBSD 5.1 with dovecot=20 successfully for about a year. Just recently, I built a new machine wi= th=20 5.2.1-p5 on the Intel platform with dovecot-0.99.10.4_2. When I use the sam= e=20 configuration options on the new machine, I get
 
Apr 24 10:53:59 standrew pop3-login: Login: tabth= orpe=20 [172.16.1.100]
Apr 24 10:53:59 standrew pop3(tabthorpe): We couldn't dro= p=20 root group privileges
Apr 24 10:53:59 standrew dovecot: child 44134 (pop= 3)=20 returned error 89
 
Any suggestion?
 
Thanks in advance.
 
 
Thomas

--=20
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Postmaster
http://www.stthomasanglic= an.org ------=_NextPart_000_000F_01C429EC.49B13F30-- From cube@NetBSD.org Sat Apr 24 18:30:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B2895C002801; Sat, 24 Apr 2004 18:30:35 +0300 (EEST) Received: from yoda.cubidou.net (puzo.quatriemek.com [62.4.18.140]) by talvi.dovecot.org (Postfix) with ESMTP id 5388FC000D9D for ; Sat, 24 Apr 2004 18:30:33 +0300 (EEST) Received: from padme.cubidou.net (padme.ipv6.cubidou.net [2001:7a8:188c:0:280:c8ff:fe3f:6c2e]) by yoda.cubidou.net (Postfix) with SMTP id EE4053695; Sat, 24 Apr 2004 17:24:51 +0200 (CEST) Date: Sat, 24 Apr 2004 17:24:50 +0200 From: Quentin Garnier To: Amelia A Lewis Subject: Re: [Dovecot] problems with squirrelmail and TLS (debian unstable) Message-Id: <20040424172450.7f82877e.cube@NetBSD.org> In-Reply-To: <20040424104844.5f550190.amyzing@talsever.com> References: <20040423190713.777efc16.amyzing@talsever.com> <20040424065642.7c8166c1.cube@cubidou.net> <20040424104844.5f550190.amyzing@talsever.com> Organization: The NetBSD Project X-Mailer: Sylpheed version 0.9.7claws (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Apr 2004 15:30:35 -0000 X-UID: 8967 Status: O Content-Length: 2228 Le Sat, 24 Apr 2004 10:48:44 -0400 Amelia A Lewis a ecrit : > I should follow up, having complained in public ... My reply didn't make it to the list because I was using the wrong From address. > On Sat, 24 Apr 2004 06:56:42 +0200 > Quentin Garnier wrote: > > Le Fri, 23 Apr 2004 19:07:13 -0400 > > Amelia A Lewis a ecrit : > > [...] > > > Dovecot cannot, currently, be configured to permit plaintext on > > > localhost while requiring Something Better from the rest of the > > > world. > > > > > > This becomes a problem with SquirrelMail, which can't cope with TLS. > > > > > > It just barfs. Looking at bug reports in debian, this has already > > > > SquirrelMail works perfectly fine with Dovecot and TLS. I use it in > > production for the company I work in. > > > > However, it is true that I had to debug a very big issue with PHP and > > the way it is compiled. I'm using NetBSD and pkgsrc, but I guess it > > might be the same with the Debian packages. > > [snip] > > It's interesting that there are different issues. > > My debian installation had a bug in functions/imap_general.php that > discarded the server name if tls was used (the server name became > "tls://", only, instead of prepending that to the server name). Once I > fixed that (now reported to debian maintainer, so should show fixed soon > there), I still had problems, because I assumed that squirrelmail could > do STARTTLS. It doesn't, apparently (I could be wrong again, though). Yes, it doesn't. SquirrelMail doesn't really care about TLS, it merely passes a parameter to the PHP socket API telling it wants TLS for that connection. Turning on TLS in the middle of a TCP connection requires more integration between the application layer and OpenSSL. > So, all serene. *laugh* On the other hand, I *would* still like to be > able to run without TLS on localhost (a localhost exception to > disable_plaintext_auth), because it's fairly pointless to require the > processor to do all the extra work of encryption and decryption in that > situation. Feature request, please, Timo? Yeah, some generalized ACLs would be good. -- Quentin Garnier - cube@NetBSD.org The NetBSD Project - http://www.NetBSD.org/ From john@sysful.com Fri Apr 23 17:52:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5E51BC002800; Fri, 23 Apr 2004 17:52:12 +0300 (EEST) Received: from smtp.monmouth.com (smtp.monmouth.com [209.191.58.6]) by talvi.dovecot.org (Postfix) with ESMTP id DE12CC000D9D for ; Fri, 23 Apr 2004 17:52:09 +0300 (EEST) Received: from sfi ([64.19.185.2]) by smtp.monmouth.com (8.12.11/8.12.11) with SMTP id i3NEkTd4002742 for ; Fri, 23 Apr 2004 10:46:31 -0400 (EDT) Message-ID: <00d701c42942$1dac54b0$3fc8c8c8@SFULFILLMENT.local> From: "John Wentworth" To: "dovecot" Date: Fri, 23 Apr 2004 10:49:01 -0400 Organization: Systems Fulfillment MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_00D4_01C42920.964CE2D0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Mailman-Approved-At: Sun, 25 Apr 2004 21:50:05 +0300 Subject: [Dovecot] SSL Ciphers X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: John Wentworth List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2004 14:52:12 -0000 X-UID: 8968 Status: O Content-Length: 2671 This is a multi-part message in MIME format. ------=_NextPart_000_00D4_01C42920.964CE2D0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I have dovecot running as a pop3s server on port 995 it works great with sendmail and=20 I run nessus to check security issues nessus reports this The SSLv2 server offers 3 strong ciphers, but also 0 medium strength and 2 weak "export class" ciphers. The weak/medium ciphers may be chosen by an export-grade or badly configured client software. They only offer a=20 limited protection against a brute force attack Solution: disable those ciphers and upgrade your client software if necessary I have previously disabled weak ciphers in apache=20 but cannot figure out how to disable the weak ciphers in dovecot Any help would be appreciated john ------=_NextPart_000_00D4_01C42920.964CE2D0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
I have dovecot running as a pop3s = server on port=20 995
 
it works great with = sendmail
and
I run nessus to check security = issues
nessus reports this
The SSLv2 server offers 3 strong = ciphers, but=20 also
0 medium strength and 2 weak "export class" ciphers.
The = weak/medium=20 ciphers may be chosen by an export-grade
or badly configured client = software.=20 They only offer a
limited protection against a brute force=20 attack
 
Solution: disable those ciphers and = upgrade your=20 client
software if necessary
I have previously disabled weak ciphers = in apache=20
but cannot figure out how to disable = the weak=20 ciphers in
dovecot
Any help would be = appreciated
 
john
------=_NextPart_000_00D4_01C42920.964CE2D0-- From john@computer-heaven.net Fri Apr 23 17:53:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C1744C002800; Fri, 23 Apr 2004 17:53:52 +0300 (EEST) Received: from www.computer-heaven.net (www.computer-heaven.net [64.19.185.3]) by talvi.dovecot.org (Postfix) with ESMTP id 484CCC000D9D for ; Fri, 23 Apr 2004 17:53:50 +0300 (EEST) Received: from sfi ([64.19.185.2]) by www.computer-heaven.net (8.12.10/8.12.10) with SMTP id i3NEm9T6003304 for ; Fri, 23 Apr 2004 10:48:11 -0400 Message-ID: <00ea01c42942$596973c0$3fc8c8c8@SFULFILLMENT.local> From: "John Wentworth" To: "dovecot" Date: Fri, 23 Apr 2004 10:50:41 -0400 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_00E7_01C42920.D1F78B50" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Mailman-Approved-At: Sun, 25 Apr 2004 21:50:05 +0300 Subject: [Dovecot] SSL Ciphers X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: John Wentworth List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2004 14:53:52 -0000 X-UID: 8969 Status: O Content-Length: 2683 This is a multi-part message in MIME format. ------=_NextPart_000_00E7_01C42920.D1F78B50 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I have dovecot running as a pop3s server on port 995 it works great with sendmail and=20 I run nessus to check security issues nessus reports this The SSLv2 server offers 3 strong ciphers, but also 0 medium strength and 2 weak "export class" ciphers. The weak/medium ciphers may be chosen by an export-grade or badly configured client software. They only offer a=20 limited protection against a brute force attack Solution: disable those ciphers and upgrade your client software if necessary I have previously disabled weak ciphers in apache=20 but cannot figure out how to disable the weak ciphers in dovecot Any help would be appreciated john ------=_NextPart_000_00E7_01C42920.D1F78B50 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
I have dovecot running as a pop3s = server on port=20 995
 
it works great with = sendmail
and
I run nessus to check security = issues
nessus reports this
The SSLv2 server offers 3 strong = ciphers, but=20 also
0 medium strength and 2 weak "export class" ciphers.
The = weak/medium=20 ciphers may be chosen by an export-grade
or badly configured client = software.=20 They only offer a
limited protection against a brute force=20 attack
 
Solution: disable those ciphers and = upgrade your=20 client
software if necessary
I have previously disabled weak ciphers = in apache=20
but cannot figure out how to disable = the weak=20 ciphers in
dovecot
Any help would be = appreciated
 
john
------=_NextPart_000_00E7_01C42920.D1F78B50-- From cube@cubidou.net Sat Apr 24 08:02:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 25B59C002800; Sat, 24 Apr 2004 08:02:36 +0300 (EEST) Received: from yoda.cubidou.net (puzo.quatriemek.com [62.4.18.140]) by talvi.dovecot.org (Postfix) with ESMTP id 43EB9C000D9D for ; Sat, 24 Apr 2004 08:02:33 +0300 (EEST) Received: from padme.cubidou.net (padme.cubidou.net [192.168.0.6]) by yoda.cubidou.net (Postfix) with SMTP id 1254B3695; Sat, 24 Apr 2004 06:56:52 +0200 (CEST) Date: Sat, 24 Apr 2004 06:56:42 +0200 From: Quentin Garnier To: Amelia A Lewis Subject: Re: [Dovecot] problems with squirrelmail and TLS (debian unstable) Message-Id: <20040424065642.7c8166c1.cube@cubidou.net> In-Reply-To: <20040423190713.777efc16.amyzing@talsever.com> References: <20040423190713.777efc16.amyzing@talsever.com> X-Mailer: Sylpheed version 0.9.7claws (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Sat__24_Apr_2004_06_56_42_+0200_XCYlij.3.y538B7s" X-Mailman-Approved-At: Sun, 25 Apr 2004 21:50:05 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Apr 2004 05:02:36 -0000 X-UID: 8970 Status: O Content-Length: 3165 --Signature=_Sat__24_Apr_2004_06_56_42_+0200_XCYlij.3.y538B7s Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit Le Fri, 23 Apr 2004 19:07:13 -0400 Amelia A Lewis a ecrit : [...] > Dovecot cannot, currently, be configured to permit plaintext on > localhost while requiring Something Better from the rest of the world. > This becomes a problem with SquirrelMail, which can't cope with TLS. It > just barfs. Looking at bug reports in debian, this has already been > noticed, and the maintainer there (and the maintainers of SquirrelMail) > considers this a non-problem, 'cause, they say, you shouldn't be using > TLS with webmail. > > Is there a way to set up, for instance, two instances of dovecot, > running on different ports, so that one listens to the external > interface and the other listens to localhost? I don't much like the > idea, but how would I go about doing this? Two copies of dovecot.conf > and a command-line switch? SquirrelMail works perfectly fine with Dovecot and TLS. I use it in production for the company I work in. However, it is true that I had to debug a very big issue with PHP and the way it is compiled. I'm using NetBSD and pkgsrc, but I guess it might be the same with the Debian packages. If PHP has not OpenSSL compiled in, it will not be able to initiate TLS connections. The openssl PHP module only contains crypto functions, and won't bring in support for TLS. You have to compile it in the php binary and/or the Apache PHP module. Thus I committed (no later than a few days ago) a change to our php packages to allow support for OpenSSL compiled in, and that works. What make the issue really bad is the way PHP handles this: creating the socket won't fail. If OpenSSL support is not compiled in, the TLS option SquirrelMail passes along while creating the socket is ignored. Thus SquirrelMail gets a "normal" socket, and you can see it in Ethereal and the like: SquirrelMail send in clear text 'AUTH ...' while Dovecot of course expects some TLS data, and then it gets stuck for a while. Hope that helps. And you can even use pkgsrc on your Linux distribution to get the full suite, it's already Dovecot/SquirrelMail/TLS-ready :) [http://www.pkgsrc.org] -- Quentin Garnier - cube@cubidou.net - cube@NetBSD.org "Feels like I'm fiddling while Rome is burning down. Should I lay my fiddle down and take a rifle from the ground ?" Leigh Nash/Sixpence None The Richer, Paralyzed, Divine Discontents, 2002. --Signature=_Sat__24_Apr_2004_06_56_42_+0200_XCYlij.3.y538B7s Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (NetBSD) iQEVAwUBQInzk9goQloHrPnoAQJutQgAzEWNcp+Kz3a82aG1VTk6fYwlsnJcHQdv L3tVEIle+8Zb40hjy7jNUDAGX7UYaQnzLnUutPyjJiRnrZs2xGNKc0Qz308P9QZS bztxq87BWtR8u1qAJClMNhzyKpPpehiZwEyASJM0NT5UoqIWYEZ6gBaiwAc1O6xT QoXtTkQcbJY/SWs4YM/MiL0yHQlBk/qLByfZYO66Po1QjjUgovbX3X1MpYwZFdmv TJPp2OIGTCGIHmZYkOdnOBpe1z+H6SOym2fujwMFmxxM/f5CUhZVyL0cB95ocAyi TSpLOr5z7wNRkTUbF0QQ7xy23BjD/Q/lJYa152fwSQdnOUmdCFMuUg== =blOH -----END PGP SIGNATURE----- --Signature=_Sat__24_Apr_2004_06_56_42_+0200_XCYlij.3.y538B7s-- From tss@iki.fi Sun Apr 25 22:19:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 608A8C002802; Sun, 25 Apr 2004 22:19:55 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 6B131C002801 for ; Sun, 25 Apr 2004 22:19:53 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id A770C30234B0B for ; Sun, 25 Apr 2004 22:14:10 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-hDsJwVtInF44xqpvBD8V" Message-Id: <1082920450.1401.27.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 25 Apr 2004 22:14:10 +0300 Subject: [Dovecot] 1.0-test1 released X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 19:19:55 -0000 X-UID: 8971 Status: O Content-Length: 1120 --=-hDsJwVtInF44xqpvBD8V Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ I couldn't break this with Evolution with a few minutes of testing, so here's the first tarball release based on the new indexing code. Try if you're interested, but don't try it on any real mailboxes, or at least keep backups :) Also note that dovecot-uidlist file format has changed a bit, Dovecot 0.99.x isn't able to read it anymore. Things to do: - mbox code doesn't even compile, so it's disabled - custom flags aren't implemented - recent flags are broken - cache file handling isn't working now, so it's disabled - maildir syncing code isn't as well optimized as it used to be - NFS-safety to indexes (pretty easy) --=-hDsJwVtInF44xqpvBD8V Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjA4CyUhSUUBViskRAoo/AJ4kcV9vwy+ZcnojrWXxFGC1h/b4FgCgmEmb LQs2YQpBuCR4SIngXCFktAo= =YI4q -----END PGP SIGNATURE----- --=-hDsJwVtInF44xqpvBD8V-- From tss@iki.fi Mon Apr 26 00:41:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E702CC002800; Mon, 26 Apr 2004 00:41:30 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 04F63C000D9D for ; Mon, 26 Apr 2004 00:41:29 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 065A330234B0B; Mon, 26 Apr 2004 00:35:45 +0300 (EEST) Subject: Re: [Dovecot] problems with squirrelmail and TLS (debian unstable) From: Timo Sirainen To: Amelia A Lewis In-Reply-To: <20040424104844.5f550190.amyzing@talsever.com> References: <20040423190713.777efc16.amyzing@talsever.com> <20040424065642.7c8166c1.cube@cubidou.net> <20040424104844.5f550190.amyzing@talsever.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-oWmk4ERYYNZECrARnDCP" Message-Id: <1082928945.1400.74.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 00:35:45 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 21:41:31 -0000 X-UID: 8972 Status: O --=-oWmk4ERYYNZECrARnDCP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-04-24 at 17:48, Amelia A Lewis wrote: > So, all serene. *laugh* On the other hand, I *would* still like to be > able to run without TLS on localhost (a localhost exception to > disable_plaintext_auth), because it's fairly pointless to require the > processor to do all the extra work of encryption and decryption in that > situation. Feature request, please, Timo? It's actually been implemented in CVS for quite some time.. If IP begins with 127, it's treated as secure. --=-oWmk4ERYYNZECrARnDCP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjC8xyUhSUUBViskRAvfXAJ9nMjYNsnQyUyFdGqOtqsCgrZZf9gCcCUuj +8wvxS6v+XPdDe+VsWXf7SU= =08iP -----END PGP SIGNATURE----- --=-oWmk4ERYYNZECrARnDCP-- From tss@iki.fi Mon Apr 26 00:43:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1870AC002801; Mon, 26 Apr 2004 00:43:41 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 2F73CC002800 for ; Mon, 26 Apr 2004 00:43:39 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 441FE30234B0B; Mon, 26 Apr 2004 00:37:56 +0300 (EEST) Subject: Re: [Dovecot] SSL Ciphers From: Timo Sirainen To: John Wentworth In-Reply-To: <00f301c42942$69ef0930$3fc8c8c8@SFULFILLMENT.local> References: <00f301c42942$69ef0930$3fc8c8c8@SFULFILLMENT.local> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-b7GKORTjLIajaTY0On4E" Message-Id: <1082929076.1393.77.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 00:37:56 +0300 Cc: dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 21:43:41 -0000 X-UID: 8973 Status: O --=-b7GKORTjLIajaTY0On4E Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-04-23 at 17:51, John Wentworth wrote: > I have previously disabled weak ciphers in apache=20 > but cannot figure out how to disable the weak ciphers in > dovecot > Any help would be appreciated Currently you'd have to edit src/login-common/ssl-proxy-openssl.c by hand. Default is #define SSL_CIPHER_LIST "ALL:!LOW". I guess Nessus has different idea of weak ciphers than OpenSSL. I'll add in TODO that this should be configurable in config file as well. --=-b7GKORTjLIajaTY0On4E Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjC+0yUhSUUBViskRAhL1AJ98euAx6DBxD5J4rbP/RtMvHOQAegCdGDki Rf5GbC1zovh/tMsCYkOR+wo= =FojQ -----END PGP SIGNATURE----- --=-b7GKORTjLIajaTY0On4E-- From tss@iki.fi Mon Apr 26 00:46:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 706E8C002801; Mon, 26 Apr 2004 00:46:43 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 81325C002800 for ; Mon, 26 Apr 2004 00:46:41 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 943F430234B0B; Mon, 26 Apr 2004 00:40:58 +0300 (EEST) Subject: Re: [Dovecot] Envelope From changed - why? From: Timo Sirainen To: Tom Alsberg In-Reply-To: <20040423104813.GA17771@zoopee.org> References: <20040423104813.GA17771@zoopee.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-B09aj3puv6tZ8Sz4poqL" Message-Id: <1082929258.1400.80.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 00:40:58 +0300 Cc: Dovecot Mailing List X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 21:46:43 -0000 X-UID: 8974 Status: O Content-Length: 1081 --=-B09aj3puv6tZ8Sz4poqL Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-04-23 at 13:48, Tom Alsberg wrote: > Hi there. >=20 > I am evaluating Dovecot as an IMAP server. I noticed on thing which > irritates me. When a user saves a message to an IMAP folder with the > Dovecot server, the envelope From line is changed to the address of > that user, instead of keeping the From line of the original message. >=20 > How can I have the original envelope From line preserved when saving > messages? I'm not quite sure what you mean. The mbox From-line? From where should it keep it? IMAP protocol doesn't provide IMAP server that information, so Dovecot just adds the user name. --=-B09aj3puv6tZ8Sz4poqL Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjDBqyUhSUUBViskRAot7AJ94iYlonJO90UyvViR9vSyl2s7CsgCeNwrZ f8UaP5QphxpgXAPg0wVmNxg= =a35o -----END PGP SIGNATURE----- --=-B09aj3puv6tZ8Sz4poqL-- From tss@iki.fi Mon Apr 26 00:51:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0EDCCC002801; Mon, 26 Apr 2004 00:51:23 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 1D838C002800 for ; Mon, 26 Apr 2004 00:51:21 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2C30A30234B0B; Mon, 26 Apr 2004 00:45:38 +0300 (EEST) Subject: Re: [Dovecot] [OT] Is there a secure reverse IMAP proxy From: Timo Sirainen To: Wouter Van Hemel In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-K/RE+klUcfKc3c8Cnlc/" Message-Id: <1082929538.1396.83.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 00:45:38 +0300 Cc: Sven Kirmess , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 21:51:23 -0000 X-UID: 8975 Status: O Content-Length: 1040 --=-K/RE+klUcfKc3c8Cnlc/ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2004-04-18 at 09:27, Wouter Van Hemel wrote: > I know about Perdition: >=20 > http://www.vergenet.net/linux/perdition/ >=20 >=20 > ... but I don't know how secure it is. Well, from my sent-mail (this was fixed later): From:=20 Timo Sirainen To:=20 horms@vergenet.net Subject:=20 buffer overflow in perdition Date:=20 23 Oct 2002 00:48:42 +0300 token_read() doesn't seem to do any bounds checking, I could overflow buffer[] by 3k or something with "USER xxxx..etc.." with pop3. Don't know if it's exploitable. --=-K/RE+klUcfKc3c8Cnlc/ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjDGCyUhSUUBViskRAsMbAKCEoW2EdzPRLLskjQC8W+Suj67HyQCgmV1D rCfilYW1YemaGmrVQkj7qro= =WLyb -----END PGP SIGNATURE----- --=-K/RE+klUcfKc3c8Cnlc/-- From tss@iki.fi Mon Apr 26 01:01:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0FBD1C002801; Mon, 26 Apr 2004 01:01:33 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 2D34CC002800 for ; Mon, 26 Apr 2004 01:01:31 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3DE8930234B0B; Mon, 26 Apr 2004 00:55:48 +0300 (EEST) Subject: Re: [Dovecot] Feature request: more log info/stats From: Timo Sirainen To: Christian Balzer In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-xaJLO73d4gjMKqo0rdYi" Message-Id: <1082930148.1393.92.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 00:55:48 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 22:01:33 -0000 X-UID: 8976 Status: O --=-xaJLO73d4gjMKqo0rdYi Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-04-16 at 11:32, Christian Balzer wrote: > Feature request:=20 > More extensive session information and statistics in the logs. I've thought about doing this with a plugin, so everyone can decide what exactly they want to log. The plugin API should probably be changed in some way to support this more easily.. --=-xaJLO73d4gjMKqo0rdYi Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjDPkyUhSUUBViskRAn0iAJ9eQ8AbqhiYAQH8EEND42CNfZlUUACaA7aW ayHrDf8xxCsbM94gDRWoFLY= =95F5 -----END PGP SIGNATURE----- --=-xaJLO73d4gjMKqo0rdYi-- From tss@iki.fi Mon Apr 26 01:04:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D7D71C002801; Mon, 26 Apr 2004 01:04:08 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id E92D5C002800 for ; Mon, 26 Apr 2004 01:04:06 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 05EE930234B0B; Mon, 26 Apr 2004 00:58:24 +0300 (EEST) Subject: Re: [Dovecot] syslog() logging problems From: Timo Sirainen To: James Moser In-Reply-To: <407CDDE1.2070005@powweb.com> References: <407CA16F.7020300@powweb.com> <407CDDE1.2070005@powweb.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-PuMfFNZZ+0IqdHuw/7I5" Message-Id: <1082930303.1378.95.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 00:58:23 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 22:04:09 -0000 X-UID: 8977 Status: O Content-Length: 1192 --=-PuMfFNZZ+0IqdHuw/7I5 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hmm.. This could be because of log rotating.. I think I'll have to move all the logging to Dovecot's master process so this gets fixed. On Wed, 2004-04-14 at 09:44, James Moser wrote: > setting "login_chroot =3D no" seems to have fixed this... is this a known= =20 > bug? I haven't seen anything else about it. It seems to stop logging=20 > pop3 loggins first, then eventually imap loggins as well, thought that=20 > may just because we have much more pop loggins. >=20 >=20 > James Moser wrote: >=20 > > was wondering if anyone else has had problems with dovecot logging to=20 > > syslog? When I start the server it works fine, then after an hour or=20 > > so it stops.. restarting the server always makes it work again. > > --=-PuMfFNZZ+0IqdHuw/7I5 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjDR/yUhSUUBViskRAgFoAJ0bji19qw7k0Fp/hwzMCP0mbuy4EwCdFx+o eNRRI8guSDEh6dYbeUpL0ME= =wTti -----END PGP SIGNATURE----- --=-PuMfFNZZ+0IqdHuw/7I5-- From tss@iki.fi Mon Apr 26 01:15:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 06FC5C002801; Mon, 26 Apr 2004 01:15:01 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 20936C002800 for ; Mon, 26 Apr 2004 01:14:59 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 1EA4430234B0B; Mon, 26 Apr 2004 01:09:16 +0300 (EEST) Subject: Re: [Dovecot] Problem with flags From: Timo Sirainen To: Jeff Hoskinson In-Reply-To: <407BF419.7080307@telerama.com> References: <407BF419.7080307@telerama.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-jJmW6RXMeoeGxAnLK5d3" Message-Id: <1082930956.1382.97.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 01:09:16 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 22:15:01 -0000 X-UID: 8978 Status: O --=-jJmW6RXMeoeGxAnLK5d3 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-04-13 at 17:07, Jeff Hoskinson wrote: > 5235 uid store 35 -Flags ($Label1 $Label2 $Label3 $Label4 $Label5) > * 35 FETCH (FLAGS (\Answered \Seen NonJunk $Label4 $Label5) UID 35) > 5235 OK Store completed. Whops. Here's a fix: http://dovecot.org/patches/customflags-fix.patch --=-jJmW6RXMeoeGxAnLK5d3 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjDcLyUhSUUBViskRAn98AKCX/VhRq/hQ1nOHHNOyE/lZHcp52ACghwzQ ol2JR3IbdhSxb1CzBLFTeQc= =k5AD -----END PGP SIGNATURE----- --=-jJmW6RXMeoeGxAnLK5d3-- From tss@iki.fi Mon Apr 26 01:17:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B7F08C002801; Mon, 26 Apr 2004 01:17:08 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id CF677C002800 for ; Mon, 26 Apr 2004 01:17:06 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E27F330234B0B; Mon, 26 Apr 2004 01:11:23 +0300 (EEST) Subject: Re: [Dovecot] file permissions help! From: Timo Sirainen To: smk In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Gd+WqfeRyC4Llv0KtDJW" Message-Id: <1082931083.1393.100.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 01:11:23 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 22:17:08 -0000 X-UID: 8979 Status: O Content-Length: 1068 --=-Gd+WqfeRyC4Llv0KtDJW Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-04-13 at 15:49, smk wrote: > But there is a problem with dovecot reading the mbox file (I think). In > the error file I get this entry: >=20 > imap(USER@DOMAIN.com): "Apr 12 22:15:10 "Fatal: Failed to create > storage with data: /export/htdocs/DOMAIN.com/mail/USER > dovecot: "Apr 12 22:15:11 "Error: child 18613 (imap) returned error 89 This means Dovecot wasn't able to figure out what to do with that given default_mail_env. It didn't know if it was maildir, mbox or what. So the fix is to add "mbox:" to beginning of default_mail_env, ie.: default_mail_env =3D mbox:/export/htdocs/... --=-Gd+WqfeRyC4Llv0KtDJW Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjDeLyUhSUUBViskRAimVAJ4qcTelu4M692/zVL2zefuIw8TEcQCfdhYU XrbGQW0+kIYV/LfdnTpSd2Y= =9wuy -----END PGP SIGNATURE----- --=-Gd+WqfeRyC4Llv0KtDJW-- From tss@iki.fi Mon Apr 26 01:20:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8CF1DC002801; Mon, 26 Apr 2004 01:20:54 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id A3544C002800 for ; Mon, 26 Apr 2004 01:20:52 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id AB02830234B0B; Mon, 26 Apr 2004 01:15:09 +0300 (EEST) Subject: Re: [Dovecot] dovecot dies - mabye a clue? From: Timo Sirainen To: Steven Stern In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Zxmp5jXFkOdkaHRHs511" Message-Id: <1082931309.1391.103.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 01:15:09 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 22:20:54 -0000 X-UID: 8980 Status: O --=-Zxmp5jXFkOdkaHRHs511 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-04-10 at 02:27, Steven Stern wrote: > Dovecot died twice today. This was in the maillog: >=20 > Apr 9 17:50:27 ciscy pop3-login: RAND_bytes() failed: error:24064064:ran= dom > number generator:SSLEAY_RAND_BYTES:PRNG not seeded > Apr 9 17:50:27 ciscy dovecot: Login process died too early - shutting do= wn Fedora? http://dovecot.org/list/dovecot/2004-January/002858.html https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=3D115284 --=-Zxmp5jXFkOdkaHRHs511 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjDhtyUhSUUBViskRAjzYAJ9Ke7NClFFTTIuWRRQndqVSYy4bJgCfW3/+ 6717NY22MeCfk+Hd1YNo2lU= =Ns2M -----END PGP SIGNATURE----- --=-Zxmp5jXFkOdkaHRHs511-- From tss@iki.fi Mon Apr 26 01:32:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1BBC8C002801; Mon, 26 Apr 2004 01:32:19 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 38355C002800 for ; Mon, 26 Apr 2004 01:32:17 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3AA3C30234B0B; Mon, 26 Apr 2004 01:26:34 +0300 (EEST) Subject: Re: [Dovecot] imap errors filtering folders with evolution From: Timo Sirainen To: Brent Hills In-Reply-To: <1080970707.1962.56.camel@unixtop.openshores.local> References: <1080970707.1962.56.camel@unixtop.openshores.local> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-nYrRobwJMFPn3wI+y1sV" Message-Id: <1082931994.1393.109.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 01:26:34 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 22:32:19 -0000 X-UID: 8981 Status: O --=-nYrRobwJMFPn3wI+y1sV Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-04-03 at 08:38, Brent Hills wrote: > Error while 'Filtering Folder' > Imap command failed internal error [YYYY-MM-DD HH:MM:SS] >=20 > The timestamp seems to be the current time. The filters used are > primarily move to folder where the destination folder is another imap > folder on the same server. That is just a generic error message shown to IMAP client. The real error message is in Dovecot's log file. That would be more helpful in figuring out what went wrong. --=-nYrRobwJMFPn3wI+y1sV Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjDsayUhSUUBViskRAt7OAJ9qYdRiQvL8DoqNfHcxDfCuypJGmQCfWV1l PsIV6cBwD7PRImponUSg3BU= =WO77 -----END PGP SIGNATURE----- --=-nYrRobwJMFPn3wI+y1sV-- From tss@iki.fi Mon Apr 26 01:35:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 90080C002801; Mon, 26 Apr 2004 01:35:29 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 83F81C002800 for ; Mon, 26 Apr 2004 01:35:27 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 898DD30234B0B; Mon, 26 Apr 2004 01:29:44 +0300 (EEST) Subject: Re: [Dovecot] RE: Missed config option From: Timo Sirainen To: Alex S Moore In-Reply-To: <20040402114428.3497f608@sws602> References: <20040402114428.3497f608@sws602> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-bqQiTWhCPhElcpk1inwM" Message-Id: <1082932184.1378.113.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 01:29:44 +0300 Cc: dovecot mailing list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 22:35:29 -0000 X-UID: 8982 Status: O --=-bqQiTWhCPhElcpk1inwM Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-04-02 at 20:44, Alex S Moore wrote: > The From server sws601.mcsun.local is dovecot. What did I miss that caus= es the NAMESPACE capability to not be seen from dovecot? What is the separ= ator character? Dovecot doesn't support NAMESPACE in 0.99.10.x, although there's a plugin for it in http://dovecot.org/patches/namespace.c (see http://dovecot.org/list/dovecot/2003-June/001814.html) --=-bqQiTWhCPhElcpk1inwM Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjDvYyUhSUUBViskRAjlMAJ9g3uBtF6yVomTf5RQBFDykxhuS/QCgj1QU VP8ygaVV0aU14hIOAerIark= =C5sw -----END PGP SIGNATURE----- --=-bqQiTWhCPhElcpk1inwM-- From tss@iki.fi Mon Apr 26 01:56:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E8DF6C002800; Mon, 26 Apr 2004 01:56:25 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 02552C000D9D for ; Mon, 26 Apr 2004 01:56:23 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id E33E130234B0B; Mon, 26 Apr 2004 01:50:40 +0300 (EEST) Subject: Re: [Dovecot] triggering multiple actions on pop-3 request From: Timo Sirainen To: "Eric S. Johansson" In-Reply-To: <40599EEE.9090806@harvee.org> References: <4290D8AB6C950C44B59AA76B2513A6CA05A4A1@SYDEXCHVS01.Australasia.SelectNET.com> <40590322.1030705@harvee.org> <20040318024018.GN22419@f4.ca> <40599EEE.9090806@harvee.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-w7o3Fe1eR8/J68YnwypC" Message-Id: <1082933440.1391.118.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 01:50:40 +0300 Cc: Skye Poier , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 22:56:26 -0000 X-UID: 8983 Status: O Content-Length: 1195 --=-w7o3Fe1eR8/J68YnwypC Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-03-18 at 15:06, Eric S. Johansson wrote: > the best place would be a place for I have all of the necessary=20 > information about the user and is a mainline pass through the code so it=20 > will always be executed. If you do this right, it could be a plug-in=20 > point for pre access functionality. There is probably some equivalent=20 > location for post access. Might be an interesting place to put in=20 > plug-in infrastructure so we can do all sorts of things to people's=20 > e-mail. =20 It's already possible. Use http://dovecot.org/patches/quota.c as base, but instead of overriding the storage functions, just call fetchmail in quota_mail_storage_created(). Same plugin would work for both POP3 and IMAP. --=-w7o3Fe1eR8/J68YnwypC Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjEDAyUhSUUBViskRAncPAKCIhlmykLER5Re5+bBk+E70F/tD1QCgnFrB LskfOoK6ZznlyLFuTHcYrfo= =Fp3s -----END PGP SIGNATURE----- --=-w7o3Fe1eR8/J68YnwypC-- From tss@iki.fi Mon Apr 26 02:11:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2B79FC002801; Mon, 26 Apr 2004 02:11:08 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 4B6E1C002800 for ; Mon, 26 Apr 2004 02:11:06 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 624A42382E; Mon, 26 Apr 2004 02:05:23 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4F91A23829; Mon, 26 Apr 2004 02:05:23 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 77EE72382E for ; Mon, 26 Apr 2004 02:04:49 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3595730234B0B; Mon, 26 Apr 2004 02:04:48 +0300 (EEST) Subject: Re: [Dovecot] shared folders? From: Timo Sirainen To: "Gareth J. Greenaway" In-Reply-To: <20040310235202.GR20847@wiked.org> References: <20040310235202.GR20847@wiked.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-IikO8St8H11phbjdW9ij" Message-Id: <1082934288.13722.4.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 02:04:48 +0300 Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 23:11:08 -0000 X-UID: 8984 Status: O Content-Length: 1138 --=-IikO8St8H11phbjdW9ij Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-03-11 at 01:52, Gareth J. Greenaway wrote: > Greetings, > I saw mention in results from a google search that there was some support= in > dovecot CVS for shared folders, is there some docs on how to use them? > Provided there is in fact support for them in CVS. It's kludgy. You'll have to create symlink for the folder manually and indexes have to be in different directory so each user gets separate index file which stores the flags. Then you'll have to create file named dovecot-shared with the permissions you want new mail files to be created (0660 probably). Of course, CVS version is quite broken currently. I'm not sure if this works with 1.0-test1. --=-IikO8St8H11phbjdW9ij Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjEQQyUhSUUBViskRAiibAJ0RNyTavnXtAIJv+TgOBUV8sxxe2ACZAQa2 x0wFeBUfdTQWbWDN/F2zD24= =asxf -----END PGP SIGNATURE----- --=-IikO8St8H11phbjdW9ij-- From james@powweb.com Mon Apr 26 02:15:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2D94EC002805; Mon, 26 Apr 2004 02:15:59 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 07BC0C002802 for ; Mon, 26 Apr 2004 02:15:57 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id 68A95B8F4B; Sun, 25 Apr 2004 16:10:04 -0700 (PDT) Message-ID: <408C454C.5000904@powweb.com> Date: Sun, 25 Apr 2004 16:10:04 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] syslog() logging problems References: <407CA16F.7020300@powweb.com> <407CDDE1.2070005@powweb.com> <1082930303.1378.95.camel@hurina> In-Reply-To: <1082930303.1378.95.camel@hurina> Content-Type: multipart/mixed; boundary="------------020900070603020902070401" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 23:15:59 -0000 X-UID: 8985 Status: O Content-Length: 1980 This is a multi-part message in MIME format. --------------020900070603020902070401 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit No, this would happen every 15 to 30 minutes, my logs only rotated at midnight. This is only a problem when I set "login_chroot = yes" on FreeBSD 4.x. I'm running it now set to no and do not have a problem. Timo Sirainen wrote: >Hmm.. This could be because of log rotating.. I think I'll have to move >all the logging to Dovecot's master process so this gets fixed. > >On Wed, 2004-04-14 at 09:44, James Moser wrote: > > >>setting "login_chroot = no" seems to have fixed this... is this a known >>bug? I haven't seen anything else about it. It seems to stop logging >>pop3 loggins first, then eventually imap loggins as well, thought that >>may just because we have much more pop loggins. >> >> >>James Moser wrote: >> >> >> >>>was wondering if anyone else has had problems with dovecot logging to >>>syslog? When I start the server it works fine, then after an hour or >>>so it stops.. restarting the server always makes it work again. >>> >>> -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------020900070603020902070401 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------020900070603020902070401-- From alsbergt@cs.huji.ac.il Mon Apr 26 10:09:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3FF07C002800; Mon, 26 Apr 2004 10:09:02 +0300 (EEST) Received: from cs1.cs.huji.ac.il (cs1.cs.huji.ac.il [132.65.16.10]) by talvi.dovecot.org (Postfix) with ESMTP id 5CEF3C000D9D for ; Mon, 26 Apr 2004 10:08:56 +0300 (EEST) Received: from dev.cs.huji.ac.il ([132.65.16.100] ident=exim) by cs1.cs.huji.ac.il with esmtp id 1BI091-0008LI-Bu; Mon, 26 Apr 2004 10:03:11 +0300 Received: from alsbergt by dev.cs.huji.ac.il with local (Exim 4.12) id 1BI091-0002P4-00; Mon, 26 Apr 2004 10:03:11 +0300 Date: Mon, 26 Apr 2004 10:03:11 +0300 From: Tom Alsberg To: Timo Sirainen Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040426070311.GA9104@cs.huji.ac.il> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1082929258.1400.80.camel@hurina> X-Face: "5"j@Y1Peoz1; ftTv>\|['ox-csmV+:_RDNdi/2lSe2x?0:HVAeVW~ajwQ7RfDlcb^18eJ; t,O,s5-aNdU/DJ2E8h1s,..4}N9$27u`pWmH|; s!zlqqVwr9R^_ji=1\3}Z6gQBYyQ]{gd5-V8s^fYf{$V2*_&S>eA|SH@Y\hOVUjd[5eah{EO@gCr.ydSpJHJIU[QsH~bC?$C@O:SzF=CaUxp80-iknM(]q(W X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Tom Alsberg List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2004 07:09:02 -0000 X-UID: 8986 Status: O Content-Length: 2448 I realize (having read the RFC), that IMAP does not deal with the envelope "From " at all. I also realize that IMAP calls something else the "envelope", so I'll refer to it as the Unix (mbox) "From " line. However, the mbox format does store those lines, and they even still have some meaning. If users access their mailboxes both through IMAP and through mbox files in ~/mail/ (e.g. elm/mutt/pine/mail -f), (which I assume is a rather common deployment given the option of storing mail in mbox files, and anyway is the idea in my intended deployment) compatibility should be preserved wherever possible. When storing (copying/moving) a message from one mbox to another (using the IMAP COPY command), wouldn't it make more sense for dovecot to copy the entire message block, including the "From " line at the beginning, instead of inventing/writing its own (phony) "From @..." line and copying only the rest? I tried to see if I can patch dovecot to the expected logical behaviour, however from the little I looked, I got a bit overwhelmed and confused by all the structs, with the mail_save_context and istream stuff. The only simple/trivial thing I could is have it, when copying a message, given the pointer to the data in the stream, search backward for a "From " line and copy from there. That seems not to be the most elegant solution... So, any help with getting my expected behaviour from dovecot is still appreciated... Thanks, -- Tom On Mon, Apr 26, 2004 at 12:40:58AM +0300, Timo Sirainen wrote: > On Fri, 2004-04-23 at 13:48, Tom Alsberg wrote: > > Hi there. > > > > I am evaluating Dovecot as an IMAP server. I noticed on thing which > > irritates me. When a user saves a message to an IMAP folder with the > > Dovecot server, the envelope From line is changed to the address of > > that user, instead of keeping the From line of the original message. > > > > How can I have the original envelope From line preserved when saving > > messages? > > I'm not quite sure what you mean. The mbox From-line? From where should > it keep it? IMAP protocol doesn't provide IMAP server that information, > so Dovecot just adds the user name. > -- Tom Alsberg - hacker (being the best description fitting this space) Web page: http://www.cs.huji.ac.il/~alsbergt/ DISCLAIMER: The above message does not even necessarily represent what my fingers have typed on the keyboard, save anything further. From miquels@cistron.net Mon Apr 26 12:50:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5930BC002801; Mon, 26 Apr 2004 12:50:01 +0300 (EEST) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by talvi.dovecot.org (Postfix) with ESMTP id 61D14C002800 for ; Mon, 26 Apr 2004 12:49:59 +0300 (EEST) Received: from traveler.cistron-office.nl ([62.216.29.67] helo=traveler) by smtp.cistron-office.nl with esmtp (Exim 3.35 #1 (Debian)) id 1BI2ee-0001BH-00; Mon, 26 Apr 2004 11:44:00 +0200 Date: Mon, 26 Apr 2004 11:43:59 +0200 From: Miquel van Smoorenburg To: Tom Alsberg Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040426094359.GA11096@traveler.cistron.net> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20040426070311.GA9104@cs.huji.ac.il> (from alsbergt@cs.huji.ac.il on Mon, Apr 26, 2004 at 09:03:11 +0200) X-Mailer: Balsa 2.0.16 Lines: 14 Cc: Timo Sirainen , Dovecot Mailing List X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: dovecot@dovecot.org List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2004 09:50:01 -0000 X-UID: 8987 Status: O On 2004.04.26 09:03, Tom Alsberg wrote: > I realize (having read the RFC), that IMAP does not deal with the > envelope "From " at all. I also realize that IMAP calls something > else the "envelope", so I'll refer to it as the Unix (mbox) "From " > line. > > However, the mbox format does store those lines, and they even still > have some meaning. Why not let your MDA or local delivery agent add a proper Return-Path: header. It contains the same information as the From_ line, but it works with all mailbox types, it's easier to parse and you can get at it using IMAP. Mike. From mclay@zaniahgroup.com Mon Apr 26 21:35:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C07A1C002802; Mon, 26 Apr 2004 21:35:58 +0300 (EEST) Received: from ms-smtp-04.texas.rr.com (ms-smtp-04.texas.rr.com [24.93.47.43]) by talvi.dovecot.org (Postfix) with ESMTP id 5CF09C002801 for ; Mon, 26 Apr 2004 21:35:56 +0300 (EEST) Received: from jedrik.ae.utexas.edu (cs2891-195.austin.rr.com [24.28.91.195]) by ms-smtp-04.texas.rr.com (8.12.10/8.12.7) with ESMTP id i3QIU8t1022399 for ; Mon, 26 Apr 2004 13:30:09 -0500 (CDT) From: Robert McLay To: dovecot@dovecot.org Content-Type: text/plain Message-Id: <1083004208.12073.18.camel@jedrik.ae.utexas.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Mon, 26 Apr 2004 13:30:08 -0500 Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine Subject: [Dovecot] Newbie Q: Setting up under linux: Spool directory. X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: mclay@zaniahgroup.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2004 18:35:58 -0000 X-UID: 8988 Status: O I am trying to set up dovecot under linux. (RH9 if it matters). I'm having trouble having it find the mail that is already delivered. What I would like is that mail is delivered by fetch mail to /var/spool/mail/mclay (that me) then have dovecot find it. I'm sure that I have not set the dovecot.conf file correctly. The documentation is unclear as to what "mbox" is and "INBOX" is. I have tried having default_mail_env unset and with the following: default_mail_env = mbox:/var/spool/mail/%u:INBOX=:/home/%u/Maildir What I get when I talk to it directly is: $ telnet localhost imap Trying 127.0.0.1... Connected to localhost Escape character is '^]'. * OK dovecot ready. A00002 LOGIN mclay "xxxxxx" A00002 OK Logged in. A00003 SELECT INBOX A00003 NO Internal error [2004-04-26 12:56:03] So could a kind sole point me in the right direction? Thanks From rick@activeservice.co.uk Mon Apr 26 22:26:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 767EFC002805; Mon, 26 Apr 2004 22:26:34 +0300 (EEST) Received: from mcp.34sp.com (unknown [212.187.158.4]) by talvi.dovecot.org (Postfix) with SMTP id AA9DAC002802 for ; Mon, 26 Apr 2004 22:26:31 +0300 (EEST) Received: (qmail 7505 invoked from network); 26 Apr 2004 19:20:35 -0000 Received: from unknown (HELO activeservice.co.uk) (62.164.177.176) by softdnserror with SMTP; 26 Apr 2004 19:20:35 -0000 Received: (qmail 23091 invoked from network); 26 Apr 2004 19:20:35 -0000 X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on smithy.activeservice.co.uk Received: from dad.activeservice.co.uk (HELO [192.168.0.9]) (192.168.0.9) by smithy.activeservice.co.uk (192.168.0.1) with ESMTP; 26 Apr 2004 19:20:33 -0000 Date: Mon, 26 Apr 2004 20:20:38 +0100 From: Rick Jones To: dovecot@dovecot.org Message-ID: X-Mailer: Mulberry/3.1.3 (Win32) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="==========EF6F6CFA2C9AEACE7C5C==========" Content-Disposition: inline Subject: [Dovecot] Index abuse X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2004 19:26:34 -0000 X-UID: 8989 Status: O Content-Length: 1765 --==========EF6F6CFA2C9AEACE7C5C========== Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline How resilient is Dovecot's indexing mechanism? (seeing as it's been extensively re-vamped I guess this question may have different answers for 0.99 & 1.0). To put it in context, I'm playing with server-side automatic maintenance scripts for things like deleting messages more than x days old from folders a, b, c, etc. (using Maildir layout). So far I'm just zapping files in the cur and new directories and nothing amiss appears to happen from the IMAP client's viewpoint. I just wonder if I'm storing up trouble. Will the index files continue to hold references to non-existent files and get bloated, or do they self-clean? -- Rick Jones --==========EF6F6CFA2C9AEACE7C5C========== Content-Type: text/enriched; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Courier NewHow resilient is Dovecot's = indexing mechanism? (seeing as it's been extensively re-vamped I guess this = question may have different answers for 0.99 & 1.0). To put it in context, I'm playing with server-side automatic maintenance = scripts for things like deleting messages more than x days old from folders = a, b, c, etc. (using Maildir layout). So far I'm just zapping files in the = cur and new directories and nothing amiss appears to happen from the IMAP = client's viewpoint. I just wonder if I'm storing up trouble. Will the index files continue to = hold references to non-existent files and get bloated, or do they = self-clean? --=20 Rick Jones --==========EF6F6CFA2C9AEACE7C5C==========-- From tss@iki.fi Mon Apr 26 23:30:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CB8BCC002800; Mon, 26 Apr 2004 23:30:24 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id A2A95C000D9D for ; Mon, 26 Apr 2004 23:30:22 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3F25B300E2DB0; Mon, 26 Apr 2004 23:24:37 +0300 (EEST) Subject: Re: [Dovecot] Index abuse From: Timo Sirainen To: Rick Jones In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-gC9YHyGMNfB2f4wSSuIS" Message-Id: <1083011076.13726.43.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 23:24:36 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2004 20:30:25 -0000 X-UID: 8990 Status: O Content-Length: 1287 --=-gC9YHyGMNfB2f4wSSuIS Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-04-26 at 22:20, Rick Jones wrote: > To put it in context, I'm playing with server-side automatic > maintenance scripts for things like deleting messages more than x days > old from folders a, b, c, etc. (using Maildir layout). So far I'm just > zapping files in the cur and new directories and nothing amiss appears > to happen from the IMAP client's viewpoint. >=20 > I just wonder if I'm storing up trouble. Will the index files continue > to hold references to non-existent files and get bloated, or do they > self-clean? They'll clean themselves up. I wouldn't call Dovecot maildir- or mbox-compatible if it didn't. That's actually how it internally works now, Dovecot just deletes the mails and then calls mailbox syncing function which updates the indexes. New indexing code does it differently though. --=-gC9YHyGMNfB2f4wSSuIS Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjXAEyUhSUUBViskRAgPXAJ9Vf17WxOrfdy1UIMvlWd19y8De/ACdHvGu EZbCjzIpKL+n81isfNQkkJQ= =Feyd -----END PGP SIGNATURE----- --=-gC9YHyGMNfB2f4wSSuIS-- From tss@iki.fi Mon Apr 26 23:36:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DA1D5C002802; Mon, 26 Apr 2004 23:36:44 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id C8AF2C002801 for ; Mon, 26 Apr 2004 23:36:42 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id B2F36300E2DB0; Mon, 26 Apr 2004 23:30:57 +0300 (EEST) Subject: Re: [Dovecot] Newbie Q: Setting up under linux: Spool directory. From: Timo Sirainen To: mclay@zaniahgroup.com In-Reply-To: <1083004208.12073.18.camel@jedrik.ae.utexas.edu> References: <1083004208.12073.18.camel@jedrik.ae.utexas.edu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-oQWmMQHSlJizWSigQiLc" Message-Id: <1083011457.13723.50.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 26 Apr 2004 23:30:57 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2004 20:36:45 -0000 X-UID: 8991 Status: O Content-Length: 1529 --=-oQWmMQHSlJizWSigQiLc Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-04-26 at 21:30, Robert McLay wrote: > What I would like is that mail is delivered by fetch mail to > /var/spool/mail/mclay (that me) then have dovecot find it. I'm sure > that I have not set the dovecot.conf file correctly. The documentation > is unclear as to what "mbox" is and "INBOX" is. mbox and maildir are mail file formats, INBOX is the location of the mailbox which receives new incoming mail. > I have tried having default_mail_env unset and with the following: >=20 > default_mail_env =3D mbox:/var/spool/mail/%u:INBOX=3D:/home/%u/Maildir You can't mix mbox and maildir currently, so /home/%u/Maildir wouldn't work. You probably want: default_mail_env =3D mbox:/home/%u/mail:INBOX=3D/var/spool/mail/%u > A00003 NO Internal error [2004-04-26 12:56:03] Log file tells the real reason. Hmm. This gets asked so often that I think I'll change the error message to "Internal error, see log file". It's probably anyway because your default_mail_env was broken. If it still doesn't work, see http://wiki.dovecot.org/moin.cgi/VarMailDotLock --=-oQWmMQHSlJizWSigQiLc Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjXGByUhSUUBViskRAlhtAJ9lRM4RdvmRE1N81+18420cKMYjYACeNDRV j0IYhOxupJkBwHnBaKucRa0= =zS7O -----END PGP SIGNATURE----- --=-oQWmMQHSlJizWSigQiLc-- From rick@activeservice.co.uk Mon Apr 26 23:41:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D3A10C002805; Mon, 26 Apr 2004 23:41:57 +0300 (EEST) Received: from mcp.34sp.com (unknown [212.187.158.4]) by talvi.dovecot.org (Postfix) with SMTP id AB0DAC002802 for ; Mon, 26 Apr 2004 23:41:55 +0300 (EEST) Received: (qmail 12582 invoked from network); 26 Apr 2004 20:36:03 -0000 Received: from unknown (HELO activeservice.co.uk) (62.164.177.176) by softdnserror with SMTP; 26 Apr 2004 20:36:03 -0000 Received: (qmail 23686 invoked from network); 26 Apr 2004 20:36:03 -0000 X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on smithy.activeservice.co.uk Received: from dad.activeservice.co.uk (HELO [192.168.0.9]) (192.168.0.9) by smithy.activeservice.co.uk (192.168.0.1) with ESMTP; 26 Apr 2004 20:36:01 -0000 Date: Mon, 26 Apr 2004 21:36:07 +0100 From: Rick Jones To: Timo Sirainen Subject: Re: [Dovecot] Index abuse Message-ID: <6C0880DEF3F27CFB937648AA@[192.168.0.9]> In-Reply-To: <1083011076.13726.43.camel@hurina> References: <1083011076.13726.43.camel@hurina> X-Mailer: Mulberry/3.1.3 (Win32) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="==========543C509C99E5FBCEEBC4==========" Content-Disposition: inline Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2004 20:41:58 -0000 X-UID: 8992 Status: O Content-Length: 1797 --==========543C509C99E5FBCEEBC4========== Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline --On 26 April 2004 23:24 +0300 Timo Sirainen wrote: > On Mon, 2004-04-26 at 22:20, Rick Jones wrote: > > > > I just wonder if I'm storing up trouble. Will the index files continue > > to hold references to non-existent files and get bloated, or do they > > self-clean? > > > They'll clean themselves up. I wouldn't call Dovecot maildir- or > mbox-compatible if it didn't. > > > That's actually how it internally works now, Dovecot just deletes the > mails and then calls mailbox syncing function which updates the indexes. > New indexing code does it differently though. Thanks, that's great to know. -- Cheers Rick --==========543C509C99E5FBCEEBC4========== Content-Type: text/enriched; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Courier New--On 26 April 2004 23:24 = +0300 Timo Sirainen < wrote: 9900,3300,6600 > On Mon, 2004-04-26 at 22:20, Rick Jones wrote: > >=20 > > I just wonder if I'm storing up trouble. Will the index files continue > > to hold references to non-existent files and get bloated, or do they > > self-clean? >=20 >=20 > They'll clean themselves up. I wouldn't call Dovecot maildir- or > mbox-compatible if it didn't. >=20 >=20 > That's actually how it internally works now, Dovecot just deletes the > mails and then calls mailbox syncing function which updates the indexes. > New indexing code does it differently though. Thanks, that's great to know. --=20 Cheers Rick --==========543C509C99E5FBCEEBC4==========-- From mem@mv.mv.com Tue Apr 27 00:32:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 02764C000D9D; Tue, 27 Apr 2004 00:32:39 +0300 (EEST) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 78051C00098C for ; Tue, 27 Apr 2004 00:32:36 +0300 (EEST) Received: (qmail 3506 invoked from network); 26 Apr 2004 17:26:48 -0400 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 26 Apr 2004 17:26:48 -0400 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 10836 invoked by uid 101); 26 Apr 2004 17:26:47 -0400 From: "Mark E. Mallett" Date: Mon, 26 Apr 2004 17:26:47 -0400 To: dovecot@dovecot.org Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040426212647.GX20969@iridium.mv.net> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040426094359.GA11096@traveler.cistron.net> User-Agent: Mutt/1.4.2.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2004 21:32:39 -0000 X-UID: 8993 Status: O On Mon, Apr 26, 2004 at 11:43:59AM +0200, Miquel van Smoorenburg wrote: > On 2004.04.26 09:03, Tom Alsberg wrote: > > I realize (having read the RFC), that IMAP does not deal with the > > envelope "From " at all. I also realize that IMAP calls something > > else the "envelope", so I'll refer to it as the Unix (mbox) "From " > > line. Often called the "From_" line as well > > However, the mbox format does store those lines, and they even still > > have some meaning. > > Why not let your MDA or local delivery agent add a proper Return-Path: > header. It contains the same information as the From_ line, but it works > with all mailbox types, it's easier to parse and you can get at it using IMAP. That is a good positive suggestion about how to maintain "envelope from." I don't think it counters the desire *not* to muck with the existing "From_" line though. I would not want that disturbed without some very good reason (and I can't really think of one). mm From mclay@zaniahgroup.com Tue Apr 27 01:27:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3C358C000D9D; Tue, 27 Apr 2004 01:27:34 +0300 (EEST) Received: from ms-smtp-04.texas.rr.com (ms-smtp-04.texas.rr.com [24.93.47.43]) by talvi.dovecot.org (Postfix) with ESMTP id C2070C00098C for ; Tue, 27 Apr 2004 01:27:31 +0300 (EEST) Received: from jedrik.ae.utexas.edu (cs2891-195.austin.rr.com [24.28.91.195]) by ms-smtp-04.texas.rr.com (8.12.10/8.12.7) with ESMTP id i3QMLit1012744 for ; Mon, 26 Apr 2004 17:21:44 -0500 (CDT) From: Robert McLay To: dovecot@dovecot.org Content-Type: text/plain Message-Id: <1083018104.12116.50.camel@jedrik.ae.utexas.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Mon, 26 Apr 2004 17:21:44 -0500 Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine Subject: [Dovecot] Setting "default_mail_env" Why is index->mailbox_path empty? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: mclay@zaniahgroup.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2004 22:27:34 -0000 X-UID: 8994 Status: O Content-Length: 2464 I now have default_mail_env = mbox:~/mail:INBOX=:/var/spool/mail/%u I now getting: Apr 26 15:55:32 jedrik imap(mclay): open() failed with mbox file : No such file or directory I tracked down where the error message is getting generated and added some more printing: In mbox-index.c I added: int mbox_set_syscall_error(struct mail_index *index, const char *function) { i_assert(function != NULL); i_error("index->mailbox_path: %%%s%%", index->mailbox_path); i_error("index->dir: %%%s%%", index->dir); i_error("index->filepath: %%%s%%", index->filepath); i_error("index->control_dir: %%%s%%", index->control_dir); index_set_error(index, "%s failed with mbox file %s: %m", function, index->mailbox_path); return FALSE; } This generates the following output. It seems clear that the initial reading of mbox is read correctly because index->dir and others have values derived from it but for some reason mailbox_path is empty. This is version 0.99.10.4 built with gcc 3.3.2. Here is the bottom of running ./configure: --------------------------------------------------------------------------- Install prefix ...................... : /vol/pkg/dovecot/0.99.10.4 File offsets ........................ : 64bit Building with SSL support ........... : yes (OpenSSL) Building with IPv6 support .......... : yes Building with pop3 server ........... : yes Building with user database modules . : static passwd passwd-file (modules) Building with password lookup modules : passwd passwd-file shadow pam (modules) --------------------------------------------------------------------------- Apr 26 17:06:51 jedrik imap(mclay): index->mailbox_path: %% Apr 26 17:06:51 jedrik imap(mclay): index->dir: %/home/mclay/mail/.imap/INBOX% Apr 26 17:06:51 jedrik imap(mclay): index->filepath: %/home/mclay/mail/.imap/INBOX/.imap.index% Apr 26 17:06:51 jedrik imap(mclay): index->control_dir: %/home/mclay/mail/.imap/INBOX% Apr 26 17:06:51 jedrik imap(mclay): open() failed with mbox file : No such file or directory Apr 26 17:06:51 jedrik imap(mclay): index->mailbox_path: %% Apr 26 17:06:51 jedrik imap(mclay): index->dir: %/home/mclay/mail/.imap/INBOX% Apr 26 17:06:51 jedrik imap(mclay): index->filepath: %(in-memory index for )% Apr 26 17:06:51 jedrik imap(mclay): index->control_dir: %/home/mclay/mail/.imap/INBOX% Apr 26 17:06:51 jedrik imap(mclay): stat() failed with mbox file : No such file or directory Any ideas? Thanks From tss@iki.fi Tue Apr 27 01:49:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 69076C002800; Tue, 27 Apr 2004 01:49:46 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 8B264C00098C for ; Tue, 27 Apr 2004 01:49:44 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 58AAD2382E; Tue, 27 Apr 2004 01:43:59 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 19EBC23825; Tue, 27 Apr 2004 01:43:26 +0300 (EEST) In-Reply-To: <1083018104.12116.50.camel@jedrik.ae.utexas.edu> References: <1083018104.12116.50.camel@jedrik.ae.utexas.edu> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-19--514498695" Message-Id: <1DB5BFC0-97D3-11D8-A67A-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Setting "default_mail_env" Why is index->mailbox_path empty? Date: Tue, 27 Apr 2004 01:43:19 +0300 To: mclay@zaniahgroup.com X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.3 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2004 22:49:46 -0000 X-UID: 8995 Status: O --Apple-Mail-19--514498695 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 27.4.2004, at 01:21, Robert McLay wrote: > default_mail_env = mbox:~/mail:INBOX=:/var/spool/mail/%u Remove ":" character after "INBOX=". --Apple-Mail-19--514498695 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAjZCJyUhSUUBViskRAlc7AJ0WlsaqJ4KtA/c1uHcJ9U8uLD3gtQCdGZ3t Ta37X9yC63P5UIZjXDNmsig= =IjuL -----END PGP SIGNATURE----- --Apple-Mail-19--514498695-- From chibi@gol.com Tue Apr 27 09:19:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E53B0C000D9D; Tue, 27 Apr 2004 09:19:11 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id 80446C00098C for ; Tue, 27 Apr 2004 09:19:06 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BILq1-00030L-00; Tue, 27 Apr 2004 15:13:01 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: Timo Sirainen Subject: Re: [Dovecot] Feature request: more log info/stats In-reply-to: <1082930148.1393.92.camel@hurina> References: <1082930148.1393.92.camel@hurina> Comments: In-reply-to Timo Sirainen message dated "Mon, 26 Apr 2004 00:55:48 +0300." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 27 Apr 2004 15:13:01 +0900 From: Christian Balzer Message-Id: Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 06:19:12 -0000 X-UID: 8996 Status: O [He lives!] Timo wrote: >On Fri, 2004-04-16 at 11:32, Christian Balzer wrote: >> Feature request:=20 >> More extensive session information and statistics in the logs. > >I've thought about doing this with a plugin, so everyone can decide what >exactly they want to log. The plugin API should probably be changed in >some way to support this more easily.. > I'm sure I can mobilize some local talent to work on a plugin once the API is in what you would deem a stable state. Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From alsbergt@cs.huji.ac.il Tue Apr 27 10:59:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 064B3C000D9D; Tue, 27 Apr 2004 10:59:16 +0300 (EEST) Received: from cs1.cs.huji.ac.il (cs1.cs.huji.ac.il [132.65.16.10]) by talvi.dovecot.org (Postfix) with ESMTP id DA885C00098C for ; Tue, 27 Apr 2004 10:59:13 +0300 (EEST) Received: from dev.cs.huji.ac.il ([132.65.16.100] ident=exim) by cs1.cs.huji.ac.il with esmtp id 1BINPC-000BSf-Co; Tue, 27 Apr 2004 10:53:26 +0300 Received: from alsbergt by dev.cs.huji.ac.il with local (Exim 4.12) id 1BINPC-000AJe-00; Tue, 27 Apr 2004 10:53:26 +0300 Date: Tue, 27 Apr 2004 10:53:26 +0300 From: Tom Alsberg To: Dovecot Mailing List Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040427075326.GA39453@cs.huji.ac.il> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040426094359.GA11096@traveler.cistron.net> X-Face: "5"j@Y1Peoz1; ftTv>\|['ox-csmV+:_RDNdi/2lSe2x?0:HVAeVW~ajwQ7RfDlcb^18eJ; t,O,s5-aNdU/DJ2E8h1s,..4}N9$27u`pWmH|; s!zlqqVwr9R^_ji=1\3}Z6gQBYyQ]{gd5-V8s^fYf{$V2*_&S>eA|SH@Y\hOVUjd[5eah{EO@gCr.ydSpJHJIU[QsH~bC?$C@O:SzF=CaUxp80-iknM(]q(W, Miquel van Smoorenburg X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Tom Alsberg List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 07:59:16 -0000 X-UID: 8997 Status: O Content-Length: 2328 Comment below: On Mon, Apr 26, 2004 at 11:43:59AM +0200, Miquel van Smoorenburg wrote: > On 2004.04.26 09:03, Tom Alsberg wrote: > > > > However, the mbox format does store those lines, and they even still > > have some meaning. > > Why not let your MDA or local delivery agent add a proper Return-Path: > header. It contains the same information as the From_ line, but it works > with all mailbox types, it's easier to parse and you can get at it using IMAP. Well, my MTA, as most others, does add a Return-Path: header. Usually it contains the same information as the From_ line, but not always, IIRC (the Return-Path: header, IIRC, may be altered/added to by an SMTP relay in the way, while the envelope From_ line is guaranteed to remain as it was). Never mind that, however - naturally I can have the same information stored also in the headers (X-Envelope-From: or something like that). However, I would still like the From_ line to remain intact - I see no reason to rewrite it while copying the message, instead of keeping the original one. Actually, some user agents and other software even do read it and regard it (for filtering, marking messages, sorting and merging mailboxes, etc.), so it disturbs a bit when that's changed. To note it - IMAP is not the only way -- at least in my intended installation -- that users access their mailboxes in. Wherever possible, the IMAP and the local mailbox access should be synchronized, and using one should not disturb the usage of the other. It is a bad assumption in my opinion, therefore, that the From_ line is completely irrelevant (and needs not be preserved) only because it is not visible in IMAP. Maybe it isn't important to many other users, but if it is irrelevant to IMAP, any reason not to preserve it instead of rewriting it? I haven't tried any further yet, but would appreciate some tip on how to cleanly patch dovecot to do so (searching backwards for the From_ line is rather ugly...), or just have it "fixed" in CVS/the next version... > Mike. Thanks again, -- Tom -- Tom Alsberg - hacker (being the best description fitting this space) Web page: http://www.cs.huji.ac.il/~alsbergt/ DISCLAIMER: The above message does not even necessarily represent what my fingers have typed on the keyboard, save anything further. From alsbergt@cs.huji.ac.il Tue Apr 27 11:01:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5090DC000D9D; Tue, 27 Apr 2004 11:01:42 +0300 (EEST) Received: from cs1.cs.huji.ac.il (cs1.cs.huji.ac.il [132.65.16.10]) by talvi.dovecot.org (Postfix) with ESMTP id 5AFA4C00098C for ; Tue, 27 Apr 2004 11:01:40 +0300 (EEST) Received: from dev.cs.huji.ac.il ([132.65.16.100] ident=exim) by cs1.cs.huji.ac.il with esmtp id 1BINRZ-000BUI-6D; Tue, 27 Apr 2004 10:55:53 +0300 Received: from alsbergt by dev.cs.huji.ac.il with local (Exim 4.12) id 1BINRZ-000AK4-00; Tue, 27 Apr 2004 10:55:53 +0300 Date: Tue, 27 Apr 2004 10:55:53 +0300 From: Tom Alsberg To: "Mark E. Mallett" Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040427075553.GB39453@cs.huji.ac.il> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040426212647.GX20969@iridium.mv.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040426212647.GX20969@iridium.mv.net> X-Face: "5"j@Y1Peoz1; ftTv>\|['ox-csmV+:_RDNdi/2lSe2x?0:HVAeVW~ajwQ7RfDlcb^18eJ; t,O,s5-aNdU/DJ2E8h1s,..4}N9$27u`pWmH|; s!zlqqVwr9R^_ji=1\3}Z6gQBYyQ]{gd5-V8s^fYf{$V2*_&S>eA|SH@Y\hOVUjd[5eah{EO@gCr.ydSpJHJIU[QsH~bC?$C@O:SzF=CaUxp80-iknM(]q(W X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 08:01:42 -0000 X-UID: 8998 Status: O On Mon, Apr 26, 2004 at 05:26:47PM -0400, Mark E. Mallett wrote: > > That is a good positive suggestion about how to maintain "envelope from." > I don't think it counters the desire *not* to muck with the existing > "From_" line though. I would not want that disturbed without some > very good reason (and I can't really think of one). That's pretty much what I mean... Any reason it should be rewritten instead of kept in its original form? > mm -- Tom -- Tom Alsberg - hacker (being the best description fitting this space) Web page: http://www.cs.huji.ac.il/~alsbergt/ DISCLAIMER: The above message does not even necessarily represent what my fingers have typed on the keyboard, save anything further. From miquels@cistron.net Tue Apr 27 13:45:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EEB9BC000D9D; Tue, 27 Apr 2004 13:45:43 +0300 (EEST) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by talvi.dovecot.org (Postfix) with ESMTP id CF598C00098C for ; Tue, 27 Apr 2004 13:45:41 +0300 (EEST) Received: from traveler.cistron-office.nl ([62.216.29.67] helo=traveler) by smtp.cistron-office.nl with esmtp (Exim 3.35 #1 (Debian)) id 1BIQ04-0005sN-00; Tue, 27 Apr 2004 12:39:40 +0200 Date: Tue, 27 Apr 2004 12:39:24 +0200 From: Miquel van Smoorenburg To: Tom Alsberg Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040427103924.GG16189@traveler.cistron.net> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20040427075326.GA39453@cs.huji.ac.il> (from alsbergt@cs.huji.ac.il on Tue, Apr 27, 2004 at 09:53:26 +0200) X-Mailer: Balsa 2.0.16 Lines: 53 Cc: Timo Sirainen , Miquel van Smoorenburg , Dovecot Mailing List X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Dovecot Mailing List List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 10:45:44 -0000 X-UID: 8999 Status: O Content-Length: 2279 On 2004.04.27 09:53, Tom Alsberg wrote: > Comment below: > > On Mon, Apr 26, 2004 at 11:43:59AM +0200, Miquel van Smoorenburg wrote: > > On 2004.04.26 09:03, Tom Alsberg wrote: > > > > > > However, the mbox format does store those lines, and they even still > > > have some meaning. > > > > Why not let your MDA or local delivery agent add a proper Return-Path: > > header. It contains the same information as the From_ line, but it works > > with all mailbox types, it's easier to parse and you can get at it using IMAP. > > Well, my MTA, as most others, does add a Return-Path: header. Usually > it contains the same information as the From_ line, but not always, I think that would be a bug. > IIRC (the Return-Path: header, IIRC, may be altered/added to by an > SMTP relay in the way No, the Return-Path header is not present at SMTP transport time. It is added the moment the message leaves the SMTP domain, i.e. the moment it drops into a local mbox (or is sent through another transport like UUCP). That is the same moment a From_ header is added, and the content should be the same. > while the envelope From_ line is guaranteed to > remain as it was). The From_ line is only retained over UUCP, no other transport has a From_ line in the message. SMTP certainly doesn't. > Never mind that, however - naturally I can have > the same information stored also in the headers (X-Envelope-From: or > something like that). > > However, I would still like the From_ line to remain intact - I see no > reason to rewrite it while copying the message, instead of keeping the > original one. Actually, some user agents and other software even do > read it and regard it (for filtering, marking messages, sorting and > merging mailboxes, etc.), so it disturbs a bit when that's changed. Well, when COPYing mailboxes over IMAP dovecot should be able to retain the From_ line I suppose (if the internal API is rich enough) - but if the MUA does something like get message from folder A and write it to folder B (which many clients still do) the From_ line gets lost. I suppose the mbox folder code could get the basic info for the From_ line from the Return-Path: header if it is present. That's what my own mbox library for internal projects does... Mike. From alsbergt@cs.huji.ac.il Tue Apr 27 15:59:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 93BA5C000D9D; Tue, 27 Apr 2004 15:59:30 +0300 (EEST) Received: from cs1.cs.huji.ac.il (cs1.cs.huji.ac.il [132.65.16.10]) by talvi.dovecot.org (Postfix) with ESMTP id 541B7C00098C for ; Tue, 27 Apr 2004 15:59:28 +0300 (EEST) Received: from dev.cs.huji.ac.il ([132.65.16.100] ident=exim) by cs1.cs.huji.ac.il with esmtp id 1BIS5j-000Gn4-Qf; Tue, 27 Apr 2004 15:53:39 +0300 Received: from alsbergt by dev.cs.huji.ac.il with local (Exim 4.12) id 1BIS5j-000AWW-00; Tue, 27 Apr 2004 15:53:39 +0300 Date: Tue, 27 Apr 2004 15:53:39 +0300 From: Tom Alsberg To: Miquel van Smoorenburg Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040427125339.GA39737@cs.huji.ac.il> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040427103924.GG16189@traveler.cistron.net> X-Face: "5"j@Y1Peoz1; ftTv>\|['ox-csmV+:_RDNdi/2lSe2x?0:HVAeVW~ajwQ7RfDlcb^18eJ; t,O,s5-aNdU/DJ2E8h1s,..4}N9$27u`pWmH|; s!zlqqVwr9R^_ji=1\3}Z6gQBYyQ]{gd5-V8s^fYf{$V2*_&S>eA|SH@Y\hOVUjd[5eah{EO@gCr.ydSpJHJIU[QsH~bC?$C@O:SzF=CaUxp80-iknM(]q(W, Tom Alsberg , Dovecot Mailing List X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Tom Alsberg List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 12:59:30 -0000 X-UID: 9000 Status: O Content-Length: 3735 On Tue, Apr 27, 2004 at 12:39:24PM +0200, Miquel van Smoorenburg wrote: > On 2004.04.27 09:53, Tom Alsberg wrote: > > > > Well, my MTA, as most others, does add a Return-Path: header. Usually > > it contains the same information as the From_ line, but not always, > > I think that would be a bug. Now that I checked it, you're right here... > > IIRC (the Return-Path: header, IIRC, may be altered/added to by an > > SMTP relay in the way > > No, the Return-Path header is not present at SMTP transport time. It is > added the moment the message leaves the SMTP domain, i.e. the moment it > drops into a local mbox (or is sent through another transport like UUCP). True. Sorry for the confusion - had to refresh my understanding. > That is the same moment a From_ header is added, and the content should > be the same. Well, the From_ line is not a header. It is stored in Unix (traditional mbox style) mailboxes, and originally (as in - early Unix mail withing the host, where the "mail" command would just append the message into /var/mail/, before Intenet/ARPAnet mail embraced with SMTP, etc.) was the only line stored except the message body, containing the username of the sender and the date. Nowadays, of course, it contains the full e-mail address (@) in case the message travelled through the net. > > while the envelope From_ line is guaranteed to remain as it was). > > The From_ line is only retained over UUCP, no other transport has a > From_ line in the message. SMTP certainly doesn't. SMTP doesn't have a From_ line in the message, as it is not really part of the message, like the headers and body are. It is part of the SMTP protocol however, in a slightly different form: In the SMTP protocol, sending a message begins with "MAIL FROM
", and if the message goes through another server in the way, the relay over it will also begin with the same "MAIL FROM
" command. That, AFAIK, is called the SMTP envelope. At the end-point MTA, the FROM part of the SMTP envelope is written in the form of a "From " line. However, that's the same thing - so SMTP does actually retain that line in the protocol. "MAIL FROM
" is the direct protocol to the "From " line leading a message in a traditional mbox file. > Well, when COPYing mailboxes over IMAP dovecot should be able to > retain the From_ line I suppose That's what I mean - when the IMAP COPY command is issued, the From_ line should be copied together with the rest of the actual message. > (if the internal API is rich enough) - but if the MUA does > something like get message from folder A and write it to folder B > (which many clients still do) the From_ line gets lost. Well, if the MUA does this, then naturally dovecot can't do much else, so it makes sense that it invents its own line (although, as you mentioned, it could use the Return-Path: header). But it appears that most MUAs issue the COPY command properly. > I suppose the mbox folder code could get the basic info for the > From_ line from the Return-Path: header if it is present. That's > what my own mbox library for internal projects does... That's possible. But I'd prefer it if when COPYing a message, it would just copy the "From " line verbatim as well, and not get into this trouble, even though I see now that the content should normally be the same (leave those semantics to the MTA...). > Mike. Thanks, -- Tom -- Tom Alsberg - hacker (being the best description fitting this space) Web page: http://www.cs.huji.ac.il/~alsbergt/ DISCLAIMER: The above message does not even necessarily represent what my fingers have typed on the keyboard, save anything further. From amyzing@talsever.com Tue Apr 27 17:56:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6F5C0C000D9D; Tue, 27 Apr 2004 17:56:02 +0300 (EEST) Received: from smtp10.atl.mindspring.net (smtp10.atl.mindspring.net [207.69.200.246]) by talvi.dovecot.org (Postfix) with ESMTP id 4F770C00098C for ; Tue, 27 Apr 2004 17:56:00 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by smtp10.atl.mindspring.net with esmtp (Exim 3.33 #1) id 1BITuB-0000V2-00; Tue, 27 Apr 2004 10:49:51 -0400 Received: by marajen.talsever.com (Postfix, from userid 1000) id 65C27B791; Tue, 27 Apr 2004 10:49:51 -0400 (EDT) Date: Tue, 27 Apr 2004 10:49:51 -0400 From: Amelia A Lewis To: Tom Alsberg Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040427144951.GA4055@talsever.com> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> <20040427125339.GA39737@cs.huji.ac.il> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040427125339.GA39737@cs.huji.ac.il> User-Agent: Mutt/1.5.5.1+cvs20040105i Cc: Dovecot Mailing List X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 14:56:02 -0000 X-UID: 9001 Status: O Content-Length: 1443 On Tue, Apr 27, 2004 at 03:53:39PM +0300, Tom Alsberg wrote: >That's possible. But I'd prefer it if when COPYing a message, it >would just copy the "From " line verbatim as well, and not get into >this trouble, even though I see now that the content should normally >be the same (leave those semantics to the MTA...). Okay, so this is the IMAP COPY command, right? Why are you putting mbox "From " lines into my maildir? If dovecot is the source, how does it know what format the target mailbox is in? Should dovecot instances communicate with one another? Is this only for mailboxes that a single dovecot instance is in charge of? So the move, although issued as IMAP, should behave differently for a move between two mailboxes on one server than it does between mailboxes on two servers? If dovecot is moving messages from one folder (that it "owns") to another folder (that it "owns"), how much of the format-specific information should be copied, if it has been instructed to do an IMAP copy? When does the difference in semantics between a server-internal IMAP COPY versus an inter-server IMAP COPY become anti-intuitive? Amy! -- Amelia A. Lewis amyzing {at} talsever.com Yankees are compelled by some mysterious force to imitate Southern accents and they're so damn dumb they don't know the difference beween a Tennessee drawl and a Charleston clip. -- Rita Mae Brown, "Rubyfruit Jungle" From jaldhar@debian.org Tue Apr 27 20:44:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 33CABC000D9D; Tue, 27 Apr 2004 20:44:31 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id C16B9C00098C for ; Tue, 27 Apr 2004 20:44:28 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 3DBDA7FE3; Tue, 27 Apr 2004 13:38:38 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30885-09; Tue, 27 Apr 2004 13:38:37 -0400 (EDT) Received: from [149.123.132.122] (unknown [149.123.132.122]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 0A1C67F7D; Tue, 27 Apr 2004 13:38:37 -0400 (EDT) Date: Tue, 27 Apr 2004 13:38:06 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test1 released In-Reply-To: <1082920450.1401.27.camel@hurina> Message-ID: References: <1082920450.1401.27.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 17:44:31 -0000 X-UID: 9002 Status: O Content-Length: 1309 On Sun, 25 Apr 2004, Timo Sirainen wrote: > http://dovecot.org/test/ > > I couldn't break this with Evolution with a few minutes of testing, so > here's the first tarball release based on the new indexing code. Try if > you're interested, but don't try it on any real mailboxes, or at least > keep backups :) > Not quite 0day but I have prepared .debs and put them on http://src.braincells.com/dovecot-test/. These packages are deliberately non-aptable. You need to download them and manually install them with dpkg -i. Do not use them if you are at all worried about potentially losing mail. > Also note that dovecot-uidlist file format has changed a bit, Dovecot > 0.99.x isn't able to read it anymore. > > Things to do: > - mbox code doesn't even compile, so it's disabled > - custom flags aren't implemented > - recent flags are broken > - cache file handling isn't working now, so it's disabled > - maildir syncing code isn't as well optimized as it used to be > - NFS-safety to indexes (pretty easy) - make it work with gnutls10. I have compiled the current versions with openssl because when using gnutls7 it causes segfaults with other Debian libraries (e.g. LDAP) which are now using gnutls10. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From alsbergt@cs.huji.ac.il Tue Apr 27 21:45:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B897CC000D9D; Tue, 27 Apr 2004 21:45:53 +0300 (EEST) Received: from cs1.cs.huji.ac.il (cs1.cs.huji.ac.il [132.65.16.10]) by talvi.dovecot.org (Postfix) with ESMTP id 0714FC00098C for ; Tue, 27 Apr 2004 21:45:51 +0300 (EEST) Received: from dev.cs.huji.ac.il ([132.65.16.100] ident=exim) by cs1.cs.huji.ac.il with esmtp id 1BIXUw-000NQ8-Ga; Tue, 27 Apr 2004 21:40:02 +0300 Received: from alsbergt by dev.cs.huji.ac.il with local (Exim 4.12) id 1BIXUw-000AkT-00; Tue, 27 Apr 2004 21:40:02 +0300 Date: Tue, 27 Apr 2004 21:40:02 +0300 From: Tom Alsberg To: Amelia A Lewis Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040427184002.GA41115@cs.huji.ac.il> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> <20040427125339.GA39737@cs.huji.ac.il> <20040427144951.GA4055@talsever.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040427144951.GA4055@talsever.com> X-Face: "5"j@Y1Peoz1; ftTv>\|['ox-csmV+:_RDNdi/2lSe2x?0:HVAeVW~ajwQ7RfDlcb^18eJ; t,O,s5-aNdU/DJ2E8h1s,..4}N9$27u`pWmH|; s!zlqqVwr9R^_ji=1\3}Z6gQBYyQ]{gd5-V8s^fYf{$V2*_&S>eA|SH@Y\hOVUjd[5eah{EO@gCr.ydSpJHJIU[QsH~bC?$C@O:SzF=CaUxp80-iknM(]q(W X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Tom Alsberg List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 18:45:53 -0000 X-UID: 9003 Status: O Content-Length: 3911 Hi there. Please read my comments below: On Tue, Apr 27, 2004 at 10:49:51AM -0400, Amelia A Lewis wrote: > On Tue, Apr 27, 2004 at 03:53:39PM +0300, Tom Alsberg wrote: > >That's possible. But I'd prefer it if when COPYing a message, it > >would just copy the "From " line verbatim as well, and not get into > >this trouble, even though I see now that the content should normally > >be the same (leave those semantics to the MTA...). > > Okay, so this is the IMAP COPY command, right? Yes... > Why are you putting mbox "From " lines into my maildir? Uhmm, I am not. It should of course only copy it together with the "From " line if copied to an mbox... > If dovecot is the source, how does it know what format the target > mailbox is in? Well, it obviously knows what format the target mailbox is in already, as it needs it to be able to write to it properly anyway... > Should dovecot instances communicate with one another? I'm not sure I understand you. Well, from what I've seen in the code, in no occassion does the COPY command work between processes. When COPYing a message, it just reads the message (from an istream or something like that, don't remember exactly right now), and writes the message to the target mailbox (in the same process - called from within the same routine), and in the case of mbox, the writing routine first calls mbox_from_create to write the "From " line. It could, when COPYing from an mbox to and mbox, copy the message together with the "From " line to the target mbox, instead of calling mbox_from_create to write a new "From " line and then copying the rest. Given that every user can only access his mailboxes, and there is one process per connected user, I fail to see how any interaction between dovecot instances is necessary. > Is this only for mailboxes that a single dovecot instance is in > charge of? What do you mean by a "dovecot instance"? Do you mean one server, or one forked process, or what? > So the move, although issued as IMAP, should behave differently for > a move between two mailboxes on one server than it does between > mailboxes on two servers? Can IMAP move messages between servers? (Can IMAP servers communicate amongst them?) I don't think that I understand... As far as I understood IMAP (from the RFC, docs, etc.), within one session, it only operates on a defined mailbox/folder space (the folders accessible to the user after he's authenticated). There's no sending of messages through IMAP (modifying/appending to own mailboxes doesn't count)... > If dovecot is moving messages from one folder (that it "owns") to > another folder (that it "owns"), how much of the format-specific > information should be copied, if it has been instructed to do an > IMAP copy? When does the difference in semantics between a > server-internal IMAP COPY versus an inter-server IMAP COPY become > anti-intuitive? You'll have to explain me what I'm missing... I don't understand what you mean by an "inter-server IMAP COPY". However, if something like that exists, I still believe that when possible (e.g. the COPY is between two mbox folders in the same server, which is usually the case in a server based solely on mbox), it should preserve the format (the "From " line). Modifying the "From " line with no reason is counter-intuitive in the first place... If users in the installation access their mailboxes only by IMAP, though, then it does not matter, and then some inconsistency (preserving the "From " line only when possible) does not hurt since it is not visible at all. > Amy! I'm sorry for my ignorance, enlighten me... -- Tom -- Tom Alsberg - hacker (being the best description fitting this space) Web page: http://www.cs.huji.ac.il/~alsbergt/ DISCLAIMER: The above message does not even necessarily represent what my fingers have typed on the keyboard, save anything further. From tss@iki.fi Tue Apr 27 21:54:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 33250C000D9D; Tue, 27 Apr 2004 21:54:21 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 39415C00098C for ; Tue, 27 Apr 2004 21:54:19 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D01DB30234B0D for ; Tue, 27 Apr 2004 21:48:31 +0300 (EEST) Subject: Re: [Dovecot] Envelope From changed - why? From: Timo Sirainen To: Dovecot Mailing List In-Reply-To: <20040427125339.GA39737@cs.huji.ac.il> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> <20040427125339.GA39737@cs.huji.ac.il> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ZaW6ct7EQWEbI8nFldBE" Message-Id: <1083091711.13720.87.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 27 Apr 2004 21:48:31 +0300 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 18:54:21 -0000 X-UID: 9004 Status: O Content-Length: 1122 --=-ZaW6ct7EQWEbI8nFldBE Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-04-27 at 15:53, Tom Alsberg wrote: > That's what I mean - when the IMAP COPY command is issued, the From_ > line should be copied together with the rest of the actual message. I don't think I'll want to do the copying exactly, as the way COPY currently works is "read message" and "save message", although maildir has special code for hardlink-copying. I don't think mbox really deserves that.. However, I could change read and save APIs so that the "envelope from" can be read and written. With maildir reading would give NULL, and writing would just ignore it. With mbox it would work right though, and if it's NULL it'd do what it does now. --=-ZaW6ct7EQWEbI8nFldBE Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjqr/yUhSUUBViskRArhfAJ9AmpMpFX2xQksF9yXfGt3wDcql9gCfXyrV y/MgXLz6yYmZAJoAockgP8g= =ZKdt -----END PGP SIGNATURE----- --=-ZaW6ct7EQWEbI8nFldBE-- From amyzing@talsever.com Tue Apr 27 23:31:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BC2BEC00098C; Tue, 27 Apr 2004 23:31:42 +0300 (EEST) Received: from smtp10.atl.mindspring.net (smtp10.atl.mindspring.net [207.69.200.246]) by talvi.dovecot.org (Postfix) with ESMTP id C7AFCC00280C for ; Tue, 27 Apr 2004 23:31:03 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by smtp10.atl.mindspring.net with esmtp (Exim 3.33 #1) id 1BIZ8c-0000vs-00; Tue, 27 Apr 2004 16:25:06 -0400 Received: by marajen.talsever.com (Postfix, from userid 1000) id 6B192B791; Tue, 27 Apr 2004 16:25:06 -0400 (EDT) Date: Tue, 27 Apr 2004 16:25:06 -0400 From: Amelia A Lewis To: Tom Alsberg Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040427202506.GA4524@talsever.com> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> <20040427125339.GA39737@cs.huji.ac.il> <20040427144951.GA4055@talsever.com> <20040427184002.GA41115@cs.huji.ac.il> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040427184002.GA41115@cs.huji.ac.il> User-Agent: Mutt/1.5.5.1+cvs20040105i Cc: Dovecot Mailing List X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 20:31:43 -0000 X-UID: 9005 Status: O Content-Length: 3661 On Tue, Apr 27, 2004 at 09:40:02PM +0300, Tom Alsberg wrote: >Hi there. >Please read my comments below: > >On Tue, Apr 27, 2004 at 10:49:51AM -0400, Amelia A Lewis wrote: >> On Tue, Apr 27, 2004 at 03:53:39PM +0300, Tom Alsberg wrote: >> >That's possible. But I'd prefer it if when COPYing a message, it >> >would just copy the "From " line verbatim as well, and not get into >> >this trouble, even though I see now that the content should normally >> >be the same (leave those semantics to the MTA...). >> >> Okay, so this is the IMAP COPY command, right? > >Yes... > >> Why are you putting mbox "From " lines into my maildir? > >Uhmm, I am not. It should of course only copy it together with the >"From " line if copied to an mbox... There's the problem. IMAP can work between multiple servers (I do it every day, partly to keep my Important Email backed up). The protocol, which defines the COPY command, doesn't have a place for a "From " line, since it isn't a header. So, if dovecot implements it, then there are four possibilities: 1) IMAP COPY from serverA (dovecot) to serverA (dovecot) 2) IMAP COPY from serverA (dovecot) to serverB (dovecot) 3) IMAP COPY from serverA (dovecot) to serverC (not-dovecot) 4) IMAP COPY from serverC (not-dovecot) to ServerA (or B) (dovecot) In case 1, if the source mailbox is mbox and the target mailbox is mbox, then the additional information can be copied. I gather that this is the scenario that you have in mind. If the source is mbox and the target is maildir, it would be preferable to drop the information or transform it to ReturnPath, although that isn't an IMAP server's job. If the source is maildir and the target is mbox, what should happen? In case 2, it doesn't matter that both servers are dovecot, unless you're suggesting a custom extension of the protocol. Assuming that Timo refuses to muck up the protocol with custom extensions, then this is equivalent to case 3. The originating server has no way of knowing what format the target server is storing in, and the "From " line is not a header, so has no "normal" means of being passed. If Timo implements a custom extension to the protocol (rather than custom metadata for a server-internal copy), this is equivalent to case 1. Case 4 is like case 3. In neither case is it possible to communicate from a dovecot server to a non-dovecot server (or vice versa) information which does not fit into the IMAP protocol, such as a non-header line prepended to a message, or the format of the target mailbox. So, fine, implement for case 1, and leave the others alone, right? Well. A user could then reasonably ask "Why does my data change when I copy it from my ISP's machine to Uni's Cyrus server? It doesn't change when I copy it from folder to folder on my ISP!" I can't say that I much like the idea of a network protocol command that has enhancements to behave like a local file copy. If all you're concerned about in the copying is a single local machine, preserving the semantics of a particular storage format, then why not do file copies? Note, this is *not* a rhetorical question; if a network server is to be asked to behave in a different way depending upon context (that users may not even be aware of) that arises from the chosen storage context, what happens next? Is this not possibly a slippery slope? Amy! -- Amelia A. Lewis amyzing {at} talsever.com It's is not, it isn't ain't, and it's it's, not its, if you mean it is. If you don't, it's its. Then too, it's hers. It isn't her's. It isn't our's either. It's ours, and likewise yours and theirs. --OUP Edpress News From mem@mv.mv.com Tue Apr 27 23:45:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 94D05C000D91; Tue, 27 Apr 2004 23:45:44 +0300 (EEST) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 1546EC00098C for ; Tue, 27 Apr 2004 23:45:42 +0300 (EEST) Received: (qmail 12493 invoked from network); 27 Apr 2004 16:39:46 -0400 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 27 Apr 2004 16:39:53 -0400 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 13335 invoked by uid 101); 27 Apr 2004 16:39:46 -0400 From: "Mark E. Mallett" Date: Tue, 27 Apr 2004 16:39:46 -0400 To: Amelia A Lewis Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040427203945.GX901@iridium.mv.net> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> <20040427125339.GA39737@cs.huji.ac.il> <20040427144951.GA4055@talsever.com> <20040427184002.GA41115@cs.huji.ac.il> <20040427202506.GA4524@talsever.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040427202506.GA4524@talsever.com> User-Agent: Mutt/1.4.2.1i Cc: Tom Alsberg , Dovecot Mailing List X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 20:45:44 -0000 X-UID: 9006 Status: O On Tue, Apr 27, 2004 at 04:25:06PM -0400, Amelia A Lewis wrote: ... > So, fine, implement for case 1, and leave the others alone, right? Well. > A user could then reasonably ask "Why does my data change when I copy it > from my ISP's machine to Uni's Cyrus server? It doesn't change when I copy > it from folder to folder on my ISP!" I can't say that I much like the idea > of a network protocol command that has enhancements to behave like a local > file copy. ... I think you're making way too much of this. The question was just "why is my existing "From_" line being altered when copying from one mbox to another." I say, why indeed. In all the cases where it needs to be fabricated, by all means, fabricate it. Where it already exists in the source and should also exist in the destination, try to preserve it. That's all. mm From tss@iki.fi Tue Apr 27 23:49:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8E4E0C002802; Tue, 27 Apr 2004 23:49:57 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 9FE00C000D91 for ; Tue, 27 Apr 2004 23:49:55 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 13E2F300E3269; Tue, 27 Apr 2004 23:44:08 +0300 (EEST) Subject: Re: [Dovecot] Envelope From changed - why? From: Timo Sirainen To: Amelia A Lewis In-Reply-To: <20040427202506.GA4524@talsever.com> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> <20040427125339.GA39737@cs.huji.ac.il> <20040427144951.GA4055@talsever.com> <20040427184002.GA41115@cs.huji.ac.il> <20040427202506.GA4524@talsever.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-bygQQam7khB2vPJjRDBS" Message-Id: <1083098647.13723.94.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 27 Apr 2004 23:44:07 +0300 Cc: Tom Alsberg , Dovecot Mailing List X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 20:49:57 -0000 X-UID: 9007 Status: O Content-Length: 1321 --=-bygQQam7khB2vPJjRDBS Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-04-27 at 23:25, Amelia A Lewis wrote: > There's the problem. IMAP can work between multiple servers (I do it eve= ry > day, partly to keep my Important Email backed up). The protocol, which > defines the COPY command, doesn't have a place for a "From " line, since = it > isn't a header. So, if dovecot implements it, then there are four > possibilities: >=20 > 1) IMAP COPY from serverA (dovecot) to serverA (dovecot) > 2) IMAP COPY from serverA (dovecot) to serverB (dovecot) > 3) IMAP COPY from serverA (dovecot) to serverC (not-dovecot) > 4) IMAP COPY from serverC (not-dovecot) to ServerA (or B) (dovecot) 2-4 cases aren't COPY commands, it's client which does FETCH to serverA and APPEND to serverB. Unless you mean some kind of clustered server setup such as Cyrus Murder, but that doesn't have much to do with standard IMAP anymore. --=-bygQQam7khB2vPJjRDBS Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjsYXyUhSUUBViskRAmNuAJwJ1zLCMJWKjqTB18tz0bLM21G98ACeLQKL KFoza0GdHzANKGrdlLKaWXk= =RZ+g -----END PGP SIGNATURE----- --=-bygQQam7khB2vPJjRDBS-- From tss@iki.fi Wed Apr 28 00:02:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2574BC000D91; Wed, 28 Apr 2004 00:02:15 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 27F28C000D91 for ; Wed, 28 Apr 2004 00:02:13 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 94A89300E3269; Tue, 27 Apr 2004 23:56:25 +0300 (EEST) Subject: Re: [Dovecot] Feature request: more log info/stats From: Timo Sirainen To: Christian Balzer In-Reply-To: References: <1082930148.1393.92.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-VXuHXbfZwVuUPT8Uzg/c" Message-Id: <1083099385.13727.107.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 27 Apr 2004 23:56:25 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 21:02:15 -0000 X-UID: 9008 Status: O Content-Length: 1548 --=-VXuHXbfZwVuUPT8Uzg/c Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-04-27 at 09:13, Christian Balzer wrote: > >> Feature request:=3D20 > >> More extensive session information and statistics in the logs. > > > >I've thought about doing this with a plugin, so everyone can decide what > >exactly they want to log. The plugin API should probably be changed in > >some way to support this more easily.. > > > I'm sure I can mobilize some local talent to work on a plugin once the > API is in what you would deem a stable state. I think writing the plugin itself doesn't take more than few minutes when there's simple API for it. It's the API designing that takes time.. I think lib-index API is pretty great now, mail-storage API needs some heavy redesigning, and imap/pop3-specific plugin API hardly exists yet. What would it need? At least make it possible to replace, extend or just transparently hook into existing commands (pre, post, somewhere-in-the-middle?) and create new commands. Creating and replacing already works. Figuring out how extending works could be tricky. Mail-storage API already allows hooking into it. What else? .. --=-VXuHXbfZwVuUPT8Uzg/c Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAjsj5yUhSUUBViskRAr4XAJ0Y7MXC3vxc8ex9jYvc+/q/IA7kZgCfdEC2 97odi5ihTzv67AEntd2ppRE= =ay8K -----END PGP SIGNATURE----- --=-VXuHXbfZwVuUPT8Uzg/c-- From amyzing@talsever.com Wed Apr 28 00:35:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 763DEC000D91; Wed, 28 Apr 2004 00:35:36 +0300 (EEST) Received: from blount.mail.mindspring.net (blount.mail.mindspring.net [207.69.200.226]) by talvi.dovecot.org (Postfix) with ESMTP id 6D1C1C00098C for ; Wed, 28 Apr 2004 00:35:34 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by blount.mail.mindspring.net with esmtp (Exim 3.33 #1) id 1BIa91-0005kb-00 for dovecot@dovecot.org; Tue, 27 Apr 2004 17:29:36 -0400 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id C2AEEB786 for ; Tue, 27 Apr 2004 17:29:35 -0400 (EDT) Date: Tue, 27 Apr 2004 17:29:35 -0400 From: Amelia A Lewis To: dovecot@dovecot.org Subject: Re: [Dovecot] Envelope From changed - why? Message-Id: <20040427172935.3734fb08.amyzing@talsever.com> In-Reply-To: <1083098647.13723.94.camel@hurina> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> <20040427125339.GA39737@cs.huji.ac.il> <20040427144951.GA4055@talsever.com> <20040427184002.GA41115@cs.huji.ac.il> <20040427202506.GA4524@talsever.com> <1083098647.13723.94.camel@hurina> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.7 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2004 21:35:36 -0000 X-UID: 9009 Status: O Content-Length: 1031 On Tue, 27 Apr 2004 23:44:07 +0300 Timo Sirainen wrote: > On Tue, 2004-04-27 at 23:25, Amelia A Lewis wrote: > > "From " line, since it isn't a header. So, if dovecot implements it, > > then there are four possibilities: > > > > 1) IMAP COPY from serverA (dovecot) to serverA (dovecot) > > 2) IMAP COPY from serverA (dovecot) to serverB (dovecot) > > 3) IMAP COPY from serverA (dovecot) to serverC (not-dovecot) > > 4) IMAP COPY from serverC (not-dovecot) to ServerA (or B) (dovecot) > > 2-4 cases aren't COPY commands, it's client which does FETCH to serverA > and APPEND to serverB. Unless you mean some kind of clustered server > setup such as Cyrus Murder, but that doesn't have much to do with > standard IMAP anymore. My bad then. I'd thought that the copies actually worked server to server, rather than server to client to server. Amy! -- Amelia A. Lewis amyzing {at} talsever.com Did you exchange a walk-on part in the war for the lead role in a cage? -- Pink Floyd From alsbergt@cs.huji.ac.il Wed Apr 28 10:53:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 583E2C000D93; Wed, 28 Apr 2004 10:53:51 +0300 (EEST) Received: from cs1.cs.huji.ac.il (cs1.cs.huji.ac.il [132.65.16.10]) by talvi.dovecot.org (Postfix) with ESMTP id AC0F5C00098C for ; Wed, 28 Apr 2004 10:53:48 +0300 (EEST) Received: from ludo.cs.huji.ac.il ([132.65.80.122]) by cs1.cs.huji.ac.il with esmtp id 1BIjnT-000HXZ-4Z; Wed, 28 Apr 2004 10:47:59 +0300 Received: from alsbergt by ludo.cs.huji.ac.il with local (Exim 4.12) id 1BIjnT-00039m-00; Wed, 28 Apr 2004 10:47:59 +0300 Date: Wed, 28 Apr 2004 10:47:58 +0300 From: Tom Alsberg To: Timo Sirainen Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040428074758.GA12009@cs.huji.ac.il> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> <20040427125339.GA39737@cs.huji.ac.il> <1083091711.13720.87.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1083091711.13720.87.camel@hurina> X-Face: "5"j@Y1Peoz1; ftTv>\|['ox-csmV+:_RDNdi/2lSe2x?0:HVAeVW~ajwQ7RfDlcb^18eJ; t,O,s5-aNdU/DJ2E8h1s,..4}N9$27u`pWmH|; s!zlqqVwr9R^_ji=1\3}Z6gQBYyQ]{gd5-V8s^fYf{$V2*_&S>eA|SH@Y\hOVUjd[5eah{EO@gCr.ydSpJHJIU[QsH~bC?$C@O:SzF=CaUxp80-iknM(]q(W X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Apr 2004 07:53:51 -0000 X-UID: 9010 Status: O Content-Length: 2976 On Tue, Apr 27, 2004 at 09:48:31PM +0300, Timo Sirainen wrote: > On Tue, 2004-04-27 at 15:53, Tom Alsberg wrote: > > That's what I mean - when the IMAP COPY command is issued, the From_ > > line should be copied together with the rest of the actual message. > > I don't think I'll want to do the copying exactly, That's a shame... Any tips, though, on how I could change it in the least ugly-hackish way? (I'd like to see and know in order to understand the internal architecture of dovecot anyway, even if you are soon to implement it with the read and save API into the mainstream code track) > as the way COPY currently works is "read message" and "save > message", although maildir has special code for hardlink-copying. I > don't think mbox really deserves that.. Well, OK... Not sure why, though - I'd think this would be a small piece of code specific to mbox (if done right), and would warrant a special case. > However, I could change read and save APIs so that the "envelope from" > can be read and written. With maildir reading would give NULL, and > writing would just ignore it. With mbox it would work right though, and > if it's NULL it'd do what it does now. Sounds like a good idea. I'd also think of trying to base on Return-Path: if it's NULL when writing to an mbox, before dropping to inventing a completely fabricated one, but that's just an added bonus... Any idea as to when I could expect to have this implemented in dovecot? (I'd love to help with it, given some guidance) Main question in my mind now about the code: What data is kept in the context of a message, except for the istream pointing to the contents? (As in - where would you insert that "envelope from" field? Would it just be a parameter to the functions, or would it be some field in the data structure representing a message?) I understood that in the current development dovecot, mbox support doesn't even work anymore... I do hope that'll be fixed when it becomes the current stable branch. I must say that until now I really like dovecot, being the best IMAP server I've found until now (most suitable to my needs, but also clean and flexible, functioning well...). Hopefully mbox support won't just be dropped at some point, as it is important for me, and I believe for other users as well. I understood the direction of development right now is into making dovecot as modular as feasible, so maybe even if mbox support won't be in the main dovecot code, it could be an external module (with a clean enough API, I could even write and maintain an mbox module) Thank you, Timo, and the rest of the dovecot developers, for all the efforts into this neat piece of software :-) Thanks again, -- Tom -- Tom Alsberg - hacker (being the best description fitting this space) Web page: http://www.cs.huji.ac.il/~alsbergt/ DISCLAIMER: The above message does not even necessarily represent what my fingers have typed on the keyboard, save anything further. From skye@f4.ca Wed Apr 28 20:00:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CF69FC002802; Wed, 28 Apr 2004 20:00:30 +0300 (EEST) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id 976C5C002801 for ; Wed, 28 Apr 2004 20:00:28 +0300 (EEST) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1BIsKT-0000mM-00 for dovecot@dovecot.org; Wed, 28 Apr 2004 09:54:37 -0700 Date: Wed, 28 Apr 2004 09:54:37 -0700 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] Index abuse Message-ID: <20040428165437.GE92098@f4.ca> References: <1083011076.13726.43.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1083011076.13726.43.camel@hurina> User-Agent: Mutt/1.4.2.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Apr 2004 17:00:31 -0000 X-UID: 9011 Status: O Content-Length: 1042 That's great news, as I'm going to be doing server-side message nuking as well :) Also excited to see 1.0-test1 released!! Go Timo! Skye Word on the street is Timo Sirainen said: > On Mon, 2004-04-26 at 22:20, Rick Jones wrote: > > To put it in context, I'm playing with server-side automatic > > maintenance scripts for things like deleting messages more than x days > > old from folders a, b, c, etc. (using Maildir layout). So far I'm just > > zapping files in the cur and new directories and nothing amiss appears > > to happen from the IMAP client's viewpoint. > > > > I just wonder if I'm storing up trouble. Will the index files continue > > to hold references to non-existent files and get bloated, or do they > > self-clean? > > They'll clean themselves up. I wouldn't call Dovecot maildir- or > mbox-compatible if it didn't. > > That's actually how it internally works now, Dovecot just deletes the > mails and then calls mailbox syncing function which updates the indexes. > New indexing code does it differently though. > From lars@misterp.dk Thu Apr 29 15:50:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3EF65C00098C; Thu, 29 Apr 2004 15:50:31 +0300 (EEST) Received: from misterp.dk (129.142.126.35.ip.tele2adsl.dk [129.142.126.35]) by talvi.dovecot.org (Postfix) with ESMTP id 68ED0C00280C for ; Thu, 29 Apr 2004 15:50:28 +0300 (EEST) Received: from [192.168.2.2] (g4 [192.168.2.2]) by misterp.dk (8.12.9/8.12.9) with ESMTP id i3TCiaBY006838 for ; Thu, 29 Apr 2004 14:44:37 +0200 (CEST) X-Spam-Filter: check_local@misterp.dk by digitalanswers.org Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: text/plain; charset=US-ASCII; format=flowed To: dovecot@dovecot.org From: Lars Skovgaard Date: Thu, 29 Apr 2004 14:44:35 +0200 X-Mailer: Apple Mail (2.613) Subject: [Dovecot] Timezone of logentries from dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2004 12:50:31 -0000 X-UID: 9012 Status: O Content-Length: 1279 Hi I've been using dovecot for a long time now, and have nothing but praise for it. It's considerably faster than uw-imap, and has been very easy to configure, in spite of my limited knowledge of unix. One thing still botheres me, though, and that's the time of the entries in my logfiles. It seems that dovecot logs it's entries in GMT, while I'm using GMT+1. This is made even worse by the fact that we're now using daylight savings time, which upps the difference to two hours. Here's a couple of lines from my logs to show the difference: Apr 29 14:30:07 misterp mach_kernel: ipfw: 10000 Deny UDP 213.122.19.185:33123 129.142.126.35:137 in via en0 Apr 29 14:30:59 misterp mach_kernel: ipfw: 4000 Accept TCP 80.197.22.210:38518 129.142.126.35:995 in via en0 Apr 29 12:30:59 misterp pop3-login: Login: torben [80.197.22.210] Apr 29 14:32:25 misterp mach_kernel: ipfw: 10000 Deny UDP 195.122.208.191:1066 129.142.126.35:1434 in via en0 I don't know how to fix this, whether it's in dovecot or somewhere in a system-setting. However, all other applications log their entries with the systems current setting, so I suspect it's in dovecot. I would very much appreciate any help on the subject. Btw, I'm using MacOS X 10.2 with dovecot 0.99.10.4. Thanks! /Lars From cube@NetBSD.org Thu Apr 29 15:54:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 10AA4C000D93; Thu, 29 Apr 2004 15:54:36 +0300 (EEST) Received: from yoda.cubidou.net (puzo.quatriemek.com [62.4.18.140]) by talvi.dovecot.org (Postfix) with ESMTP id E1910C00098C for ; Thu, 29 Apr 2004 15:54:33 +0300 (EEST) Received: from padme.cubidou.net (padme.ipv6.cubidou.net [2001:7a8:188c:0:280:c8ff:fe3f:6c2e]) by yoda.cubidou.net (Postfix) with SMTP id 82D293695 for ; Thu, 29 Apr 2004 14:48:40 +0200 (CEST) Date: Thu, 29 Apr 2004 14:48:40 +0200 From: Quentin Garnier To: dovecot@dovecot.org Subject: Re: [Dovecot] Timezone of logentries from dovecot Message-Id: <20040429144840.3c5b869f.cube@NetBSD.org> In-Reply-To: References: Organization: The NetBSD Project X-Mailer: Sylpheed version 0.9.7claws (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2004 12:54:36 -0000 X-UID: 9013 Status: O Le Thu, 29 Apr 2004 14:44:35 +0200 Lars Skovgaard a ecrit : [...] > I don't know how to fix this, whether it's in dovecot or somewhere in a > system-setting. However, all other applications log their entries with > the systems current setting, so I suspect it's in dovecot. I would very > much appreciate any help on the subject. > > Btw, I'm using MacOS X 10.2 with dovecot 0.99.10.4. It's because the logging process is chrooted, doesn't have TZ env. var. set, and doesn't have a correct /etc/localtime (or whatever your libc uses) _inside_ the chroot directory. Therefore its timezone is the default, UTC (formerly known as GMT). -- Quentin Garnier - cube@NetBSD.org The NetBSD Project - http://www.NetBSD.org/ From tss@iki.fi Thu Apr 29 16:03:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9C2D1C000D93; Thu, 29 Apr 2004 16:03:38 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id B2A1DC00098C for ; Thu, 29 Apr 2004 16:03:36 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3C650300DFC0E for ; Thu, 29 Apr 2004 15:57:45 +0300 (EEST) Subject: Re: [Dovecot] Timezone of logentries from dovecot From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20040429144840.3c5b869f.cube@NetBSD.org> References: <20040429144840.3c5b869f.cube@NetBSD.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-rqOclUJ/UEATTJ5M9xU4" Message-Id: <1083243464.32748.70.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 29 Apr 2004 15:57:44 +0300 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2004 13:03:38 -0000 X-UID: 9014 Status: O --=-rqOclUJ/UEATTJ5M9xU4 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-04-29 at 15:48, Quentin Garnier wrote: > It's because the logging process is chrooted, doesn't have TZ env. var. > set, and doesn't have a correct /etc/localtime (or whatever your libc > uses) _inside_ the chroot directory. Therefore its timezone is the > default, UTC (formerly known as GMT). One more reason to make all logging go through dovecot-master process.. Temporary fix of course is setting login_chroot =3D no to config file. --=-rqOclUJ/UEATTJ5M9xU4 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAkPvIyUhSUUBViskRAmqFAJ4oN21WU4NfdJPsY2D8DRVK/F59NgCfexZP nJScpTnlJxmPTGmDYs0GoyI= =bCkv -----END PGP SIGNATURE----- --=-rqOclUJ/UEATTJ5M9xU4-- From gmid-dovecot@m.gmane.org Thu Apr 29 17:51:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 15FCCC000D93; Thu, 29 Apr 2004 17:51:40 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 1E43BC00098C for ; Thu, 29 Apr 2004 17:51:38 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BJCn5-0005tU-00 for ; Thu, 29 Apr 2004 16:45:31 +0200 Received: from pd951fade.dip.t-dialin.net ([217.81.250.222]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 29 Apr 2004 16:45:31 +0200 Received: from matthias.andree by pd951fade.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 29 Apr 2004 16:45:31 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Thu, 29 Apr 2004 14:52:39 +0200 Lines: 13 Message-ID: References: <1082920450.1401.27.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd951fade.dip.t-dialin.net User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:BROsohqhFmxp8q44Z67ut4ICOcI= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: 1.0-test1 released X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2004 14:51:40 -0000 X-UID: 9015 Status: O "Jaldhar H. Vyas" writes: > I have compiled the current versions with openssl because when using > gnutls7 it causes segfaults with other Debian libraries (e.g. LDAP) which > are now using gnutls10. Name space issue? Berkeley DB offers --with-uniquename, maybe GnuTLS should do so as well. -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From jaldhar@debian.org Thu Apr 29 19:14:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C18C6C000D93; Thu, 29 Apr 2004 19:14:32 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 6FBAFC00098C for ; Thu, 29 Apr 2004 19:14:30 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 3FE487F7D; Thu, 29 Apr 2004 12:08:37 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30252-07; Thu, 29 Apr 2004 12:08:36 -0400 (EDT) Received: from [192.168.1.109] (pcp09354467pcs.jersyc01.nj.comcast.net [69.141.24.176]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 9A3967F68; Thu, 29 Apr 2004 12:08:36 -0400 (EDT) Date: Thu, 29 Apr 2004 12:08:31 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Matthias Andree Subject: Re: [Dovecot] Re: 1.0-test1 released In-Reply-To: Message-ID: References: <1082920450.1401.27.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2004 16:14:32 -0000 X-UID: 9016 Status: O On Thu, 29 Apr 2004, Matthias Andree wrote: > "Jaldhar H. Vyas" writes: > > > I have compiled the current versions with openssl because when using > > gnutls7 it causes segfaults with other Debian libraries (e.g. LDAP) which > > are now using gnutls10. > > Name space issue? No. API change + lack of versioned symbols. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From tss@iki.fi Thu Apr 29 23:15:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DEAACC000D93; Thu, 29 Apr 2004 23:15:50 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id C72F5C00098C for ; Thu, 29 Apr 2004 23:15:48 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 8D4E1300E3272 for ; Thu, 29 Apr 2004 23:09:55 +0300 (EEST) Subject: Re: [Dovecot] Re: 1.0-test1 released From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: References: <1082920450.1401.27.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-1yXu9brbZqTxenbaXCWB" Message-Id: <1083269394.32748.77.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 29 Apr 2004 23:09:55 +0300 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2004 20:15:51 -0000 X-UID: 9017 Status: O Content-Length: 1191 --=-1yXu9brbZqTxenbaXCWB Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-04-29 at 19:08, Jaldhar H. Vyas wrote: > > "Jaldhar H. Vyas" writes: > > > > > I have compiled the current versions with openssl because when using > > > gnutls7 it causes segfaults with other Debian libraries (e.g. LDAP) w= hich > > > are now using gnutls10. > > > > Name space issue? >=20 > No. API change + lack of versioned symbols. Looks like it's read/write/handshake functions were changed (fixed?) to work very much like OpenSSL's, ie. read/write can return that handshake renegoatiation is needed, and read can fail because if needs to write and vice versa. The ssl-proxy-openssl.c code should just be copy&pasted to gnutls version and the function calls changed. Any volunteers? :) --=-1yXu9brbZqTxenbaXCWB Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD4DBQBAkWESyUhSUUBViskRAr8+AJ9aQlpf9qHRoyXcTMe/HDUpEzXlEACVGCv2 hlAetsVVm89+hrJbnzEH7A== =bgn+ -----END PGP SIGNATURE----- --=-1yXu9brbZqTxenbaXCWB-- From olive@pasteur.fr Fri Apr 30 18:28:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0C682C000D93; Fri, 30 Apr 2004 18:28:28 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id 02BBEC00098C for ; Fri, 30 Apr 2004 18:28:26 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 3858711474 for ; Fri, 30 Apr 2004 17:22:31 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 08C9611473 for ; Fri, 30 Apr 2004 17:22:31 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id DE0E83F67E; Fri, 30 Apr 2004 17:22:30 +0200 (CEST) Date: Fri, 30 Apr 2004 17:22:30 +0200 From: Olivier Tharan To: Dovecot mailing list Subject: Re: [Dovecot] imap indexing error when moving multiple mails Message-ID: <20040430152230.GA4193@mafate.sis.pasteur.fr> Mail-Followup-To: Dovecot mailing list References: <20040330201722.GB83591@mafate.sis.pasteur.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040330201722.GB83591@mafate.sis.pasteur.fr> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Apr 2004 15:28:28 -0000 X-UID: 9018 Status: O Content-Length: 2616 * Olivier Tharan (20040330 22:17): > > Mar 25 14:07:33 bounce imap-login: Login: hf [130.83.xxx.yyy] > > Mar 25 14:07:44 bounce imap(hf): Error indexing mbox file > > /home/hf/Mail/Leute/Marc Wirth: LF not found where expected > > Mar 25 14:09:30 bounce imap(hf): Error indexing mbox file > > /home/hf/Mail/Leute/Marc Wirth: LF not found where expected > > FWIW, I have the same exact problem. This happens when > `expunging' a mbox or QUIT-ting a POP3 session. The consequence > is the email is not deleted (good), the next fetchmail will get > another, identical message. I keep having the problem. I do my testing with : - on one terminal : ,---- | while ((1)); do echo "test" | mail -s 'test' zzzzzzz; sleep 10; done `---- - on one machine, a fetchmail -d 10 The logs: ,---- | Apr 30 17:15:29 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] | Apr 30 17:15:32 munster pop3(zzzzzzz): Error indexing mbox file /var/mail/zzzzzzz: LF not found where expected | Apr 30 17:15:42 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] | Apr 30 17:15:55 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] | Apr 30 17:15:58 munster pop3(zzzzzzz): Error indexing mbox file /var/mail/zzzzzzz: LF not found where expected | Apr 30 17:16:09 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] | Apr 30 17:16:12 munster pop3(zzzzzzz): Error indexing mbox file /var/mail/zzzzzzz: LF not found where expected | Apr 30 17:16:22 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] | Apr 30 17:16:36 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] | Apr 30 17:16:39 munster pop3(zzzzzzz): Error indexing mbox file /var/mail/zzzzzzz: LF not found where expected | Apr 30 17:16:49 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] | Apr 30 17:16:52 munster pop3(zzzzzzz): Error indexing mbox file /var/mail/zzzzzzz: LF not found where expected | Apr 30 17:17:02 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] | Apr 30 17:17:16 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] | Apr 30 17:17:19 munster pop3(zzzzzzz): Error indexing mbox file /var/mail/zzzzzzz: LF not found where expected | Apr 30 17:17:29 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] | Apr 30 17:17:32 munster pop3(zzzzzzz): Error indexing mbox file /var/mail/zzzzzzz: LF not found where expected | Apr 30 17:17:42 munster pop3-login: Login: zzzzzzz [157.99.xx.xx] `---- A precision: /var/mail is a NFS filesystem (from a Netapp). The indexes are on a local disk. The same test on a box with a local spool (no NFS) does not trigger the errors. On both machines, this is dovecot-0.99.10.4 from the FreeBSD ports. Any ideas? -- olive From tss@iki.fi Fri Apr 30 20:28:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 645B6C002801; Fri, 30 Apr 2004 20:28:22 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 28192C000D93 for ; Fri, 30 Apr 2004 20:28:20 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id C81601C2D5C0; Fri, 30 Apr 2004 20:22:25 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 88C371C2D5BE; Fri, 30 Apr 2004 20:21:51 +0300 (EEST) In-Reply-To: <20040430152230.GA4193@mafate.sis.pasteur.fr> References: <20040330201722.GB83591@mafate.sis.pasteur.fr> <20040430152230.GA4193@mafate.sis.pasteur.fr> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-1--188189615" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] imap indexing error when moving multiple mails Date: Fri, 30 Apr 2004 20:21:48 +0300 To: Olivier Tharan X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.6 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot mailing list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Apr 2004 17:28:22 -0000 X-UID: 9019 Status: O Content-Length: 1549 --Apple-Mail-1--188189615 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 30.4.2004, at 18:22, Olivier Tharan wrote: > | Apr 30 17:17:32 munster pop3(zzzzzzz): Error indexing mbox file > /var/mail/zzzzzzz: LF not found where expected .. > A precision: /var/mail is a NFS filesystem (from a Netapp). The > indexes are on a local disk. > > The same test on a box with a local spool (no NFS) does not > trigger the errors. On both machines, this is dovecot-0.99.10.4 > from the FreeBSD ports. mail_read_mmaped = no I guess? Recently I've began wondering what exactly are NFS client's caching rules. When exactly does it try to read the file from local cache and when does it check that it's not changed in server? Maybe the only answer to write fully NFS compatible code is to read the actual NFS client implementations of most popular OSes :) Of course, this might not be NFS-related bug at all even though it triggers only with NFS. Anyway, I don't think I'll spend any time wondering about it as mbox code will be rewritten anyway. --Apple-Mail-1--188189615 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAkosuyUhSUUBViskRAhy8AJ9V4HwLPR/FPHZcisH1AVTrgbRmmgCcDRYZ ZQqddjw64JqMVawcaWZWANQ= =CO// -----END PGP SIGNATURE----- --Apple-Mail-1--188189615-- From t1lt@bk.ru Fri Apr 30 23:12:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 94D39C002802; Fri, 30 Apr 2004 23:12:19 +0300 (EEST) Received: from sun.com (port-212-202-38-4.reverse.qsc.de [212.202.38.4]) by talvi.dovecot.org (Postfix) with SMTP id 51BADC002801 for ; Fri, 30 Apr 2004 23:12:17 +0300 (EEST) Received: (qmail 20926 invoked by uid 1000); 30 Apr 2004 20:07:38 -0000 Date: Fri, 30 Apr 2004 22:07:38 +0200 From: Moe Wibble To: Dovecot mailing list Subject: Re: [Dovecot] imap indexing error when moving multiple mails Message-ID: <20040430200738.GA4819@woom.net> Mail-Followup-To: Moe Wibble , Dovecot mailing list References: <20040330201722.GB83591@mafate.sis.pasteur.fr> <20040430152230.GA4193@mafate.sis.pasteur.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Apr 2004 20:12:19 -0000 X-UID: 9020 Status: O Content-Length: 1367 On Fri, Apr 30, 2004 at 08:21:48PM +0300, Timo Sirainen wrote: > On 30.4.2004, at 18:22, Olivier Tharan wrote: > > >| Apr 30 17:17:32 munster pop3(zzzzzzz): Error indexing mbox file > >/var/mail/zzzzzzz: LF not found where expected > .. > >A precision: /var/mail is a NFS filesystem (from a Netapp). The > >indexes are on a local disk. > > > >The same test on a box with a local spool (no NFS) does not > >trigger the errors. On both machines, this is dovecot-0.99.10.4 > >from the FreeBSD ports. > > mail_read_mmaped = no I guess? > > Recently I've began wondering what exactly are NFS client's caching > rules. When exactly does it try to read the file from local cache and > when does it check that it's not changed in server? Maybe the only > answer to write fully NFS compatible code is to read the actual NFS > client implementations of most popular OSes :) > > Of course, this might not be NFS-related bug at all even though it > triggers only with NFS. Anyway, I don't think I'll spend any time > wondering about it as mbox code will be rewritten anyway. Hi Timo, may I ask for a working stable Maildir-index before you go at the mbox-rewrite? ;-) I'd just love to get rid of the (few) quierks that my v0.99.8 has. But unfornationally every time I try an update or fetch a cvs copy the index-code seems to be (still?) broken :-( best regards From jaldhar@debian.org Fri Apr 30 23:25:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1B202C002805; Fri, 30 Apr 2004 23:25:36 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 18F03C002801 for ; Fri, 30 Apr 2004 23:25:33 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id EBCB5800E; Fri, 30 Apr 2004 16:19:35 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15480-05; Fri, 30 Apr 2004 16:19:35 -0400 (EDT) Received: from [149.123.132.63] (unknown [149.123.132.63]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 033767FE4; Fri, 30 Apr 2004 16:19:35 -0400 (EDT) Date: Fri, 30 Apr 2004 16:19:32 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Timo Sirainen Subject: Re: [Dovecot] Re: 1.0-test1 released In-Reply-To: <1083269394.32748.77.camel@hurina> Message-ID: References: <1082920450.1401.27.camel@hurina> <1083269394.32748.77.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Apr 2004 20:25:36 -0000 X-UID: 9021 Status: O Content-Length: 2728 On Thu, 29 Apr 2004, Timo Sirainen wrote: > Looks like it's read/write/handshake functions were changed (fixed?) to > work very much like OpenSSL's, ie. read/write can return that handshake > renegoatiation is needed, and read can fail because if needs to write > and vice versa. The ssl-proxy-openssl.c code should just be copy&pasted > to gnutls version and the function calls changed. > > Any volunteers? :) > Well here is an attempt. I asked around and gnutls10 is supposed to be basically compatible with gnutls7, they've just changed some API names and prototypes. I haven't really been able to test this much but fwiw, it compiles cleanly and doesn't make dovecot crash (at least so far :-) --- dovecot-1.0.orig/src/login-common/ssl-proxy-gnutls.c +++ dovecot-1.0/src/login-common/ssl-proxy-gnutls.c @@ -276,7 +276,7 @@ return; /* i/o interrupted */ - dir = gnutls_handshake_get_direction(proxy->session) == 0 ? + dir = gnutls_record_get_direction(proxy->session) == 0 ? IO_READ : IO_WRITE; if (proxy->io_ssl_dir != dir) { if (proxy->io_ssl != NULL) @@ -298,7 +298,7 @@ gnutls_compression_set_priority(session, comp_priority); gnutls_kx_set_priority(session, kx_priority); gnutls_mac_set_priority(session, mac_priority); - gnutls_cert_type_set_priority(session, cert_type_priority); + gnutls_certificate_type_set_priority(session, cert_type_priority); gnutls_cred_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred); return session; @@ -504,8 +504,8 @@ read_parameters(paramfile); - if ((ret = gnutls_certificate_allocate_cred(&x509_cred)) < 0) { - i_fatal("gnutls_certificate_allocate_cred() failed: %s", + if ((ret = gnutls_certificate_allocate_credentials(&x509_cred)) < 0) { + i_fatal("gnutls_certificate_allocate_credentials() failed: %s", gnutls_strerror(ret)); } @@ -516,12 +516,8 @@ certfile, keyfile, gnutls_strerror(ret)); } - ret = gnutls_certificate_set_dh_params(x509_cred, dh_params); - if (ret < 0) - i_fatal("Can't set DH parameters: %s", gnutls_strerror(ret)); - ret = gnutls_certificate_set_rsa_params(x509_cred, rsa_params); - if (ret < 0) - i_fatal("Can't set RSA parameters: %s", gnutls_strerror(ret)); + gnutls_certificate_set_dh_params(x509_cred, dh_params); + gnutls_certificate_set_rsa_export_params(x509_cred, rsa_params); ssl_proxies = hash_create(default_pool, default_pool, 0, NULL, NULL); ssl_initialized = TRUE; @@ -541,7 +537,7 @@ hash_iterate_deinit(iter); hash_destroy(ssl_proxies); - gnutls_certificate_free_cred(x509_cred); + gnutls_certificate_free_credentials(x509_cred); gnutls_global_deinit(); } -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From tss@iki.fi Fri Apr 30 23:39:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 498AEC002806; Fri, 30 Apr 2004 23:39:09 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 5B245C002801 for ; Fri, 30 Apr 2004 23:39:07 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id F29971C2D5C0; Fri, 30 Apr 2004 23:33:12 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AA8F71C2D5BE for ; Fri, 30 Apr 2004 23:32:38 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: References: <1082920450.1401.27.camel@hurina> <1083269394.32748.77.camel@hurina> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-1--176742529" Message-Id: <83D39BA8-9AE5-11D8-B8A2-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Re: 1.0-test1 released Date: Fri, 30 Apr 2004 23:32:35 +0300 To: Dovecot mailing list X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.6 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Apr 2004 20:39:09 -0000 X-UID: 9022 Status: O Content-Length: 1648 --Apple-Mail-1--176742529 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 30.4.2004, at 23:19, Jaldhar H. Vyas wrote: >> Looks like it's read/write/handshake functions were changed (fixed?) >> to >> work very much like OpenSSL's, ie. read/write can return that >> handshake >> renegoatiation is needed, and read can fail because if needs to write >> and vice versa. The ssl-proxy-openssl.c code should just be >> copy&pasted >> to gnutls version and the function calls changed. >> >> Any volunteers? :) >> > > Well here is an attempt. I asked around and gnutls10 is supposed to be > basically compatible with gnutls7, they've just changed some API names > and > prototypes. > > I haven't really been able to test this much but fwiw, it compiles > cleanly > and doesn't make dovecot crash (at least so far :-) It still doesn't check gnutls_record_recv/send return values, so if the record can't be fully read/written the connection might get stuck.. The current code only tries to re-read if gnutls_record_recv fails, but it might need to re-send or re-handshake instead which it doesn't attempt, the same for gnutls_record_send.. --Apple-Mail-1--176742529 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAkrfkyUhSUUBViskRAo1sAJ90tOO36TqcoM2ztDtap3dRmlpUDACfUAYa Y90I4buWbJL9b4mtoUYhDeU= =qVRw -----END PGP SIGNATURE----- --Apple-Mail-1--176742529-- From tss@iki.fi Sat May 1 21:54:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 54F5DC000D93; Sat, 1 May 2004 21:54:17 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 3B4BCC00098C for ; Sat, 1 May 2004 21:54:15 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 44662300DFC06 for ; Sat, 1 May 2004 21:48:18 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-fem/3s0ok8IB8+Dv0LjA" Message-Id: <1083437297.21296.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 01 May 2004 21:48:17 +0300 Subject: [Dovecot] 1.0-test2 released X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 May 2004 18:54:17 -0000 X-UID: 9023 Status: O Content-Length: 1217 --=-fem/3s0ok8IB8+Dv0LjA Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ I still haven't done much real world testing, but I've been thinking about all the potential race conditions a lot since last time and fixed a lot of them. There might still be some.. Changes since -test1: - Locking fixes - A lot more difficult to crash it with corrupted index files - Recent flag works, this time exactly as IMAP RFC says - Maildir syncing fixes - fcntl_lock_disable and mmap_disable settings to make it work with NFS.. almost. Not very well tested and there's a few performance issues left. - mmap_no_write setting to disable mixing write/mmap calls. Required for OpenBSD. Uses slightly more memory. If you can break the indexes, I'd like to know about that. I think they should work pretty well now. --=-fem/3s0ok8IB8+Dv0LjA Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAk/DxyUhSUUBViskRAiKZAKCEt4NQcRNFhmmMoY8AOsMwnlQFQwCeIkwn N3H+zxeVh0TmFwZ4/uWQ+m0= =+VBR -----END PGP SIGNATURE----- --=-fem/3s0ok8IB8+Dv0LjA-- From lars@misterp.dk Sun May 2 12:39:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BD57AC000D93; Sun, 2 May 2004 12:39:16 +0300 (EEST) Received: from misterp.dk (129.142.126.35.ip.tele2adsl.dk [129.142.126.35]) by talvi.dovecot.org (Postfix) with ESMTP id 70C8EC00098C for ; Sun, 2 May 2004 12:39:14 +0300 (EEST) Received: from [192.168.2.2] (g4 [192.168.2.2]) by misterp.dk (8.12.9/8.12.9) with ESMTP id i429XGBY010656 for ; Sun, 2 May 2004 11:33:16 +0200 (CEST) X-Spam-Filter: check_local@misterp.dk by digitalanswers.org Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: quoted-printable Message-Id: Content-Type: text/plain; charset=WINDOWS-1252; format=flowed To: dovecot@dovecot.org From: Lars Skovgaard Date: Sun, 2 May 2004 11:33:15 +0200 X-Mailer: Apple Mail (2.613) Subject: [Dovecot] Re: Timezone of logentries from dovecot (Timo Sirainen) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 May 2004 09:39:17 -0000 X-UID: 9024 Status: O Content-Length: 1377 On Thu, 2004-04-29 at 15:57, Timo Sirainen wrote: > One more reason to make all logging go through dovecot-master = process.. > > Temporary fix of course is setting login_chroot =3D no to config file. Thanks, Timo, that did the trick. Also thanks to Quentin for his reply, though I don't understand any of=20= it. As stated, my knowledge of unix is rather limited... On Thu, 2004-04-29 at 15:48, Quentin Garnier wrote: > It's because the logging process is chrooted, doesn't have TZ env. = var. > set, and doesn't have a correct /etc/localtime (or whatever your libc > uses) _inside_ the chroot directory. Therefore its timezone is the > default, UTC (formerly known as GMT). As I understand it, it would be a good idea to come up with a more=20 permanent fix. However, I have no idea where to begin. Timo writes=20 about making all logging go through the dovecot-master process =96 can=20= anyone point me in the direction of information on how to accomplish=20 this? Quentin writes about TZ env. var. (TimeZone?), /etc/localtime and the=20 chroot directory. I'm sorry, Quentin, but I need a bit more info. I=20 have the correct /etc/localtime, as far as I can tell. I've tried=20 looking up TZ env. var. in my man-pages, but haven't come up with=20 anything. I'll copy my /etc/localtime to the login_dir and see if this=20= is enough. Thanks again, guys! /Lars= From jaldhar@debian.org Mon May 3 07:48:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1151EC000D8E; Mon, 3 May 2004 07:48:21 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 80BF5C00098C for ; Mon, 3 May 2004 07:48:18 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 8106F8044 for ; Mon, 3 May 2004 00:42:20 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 09810-04 for ; Mon, 3 May 2004 00:42:20 -0400 (EDT) Received: from [192.168.1.109] (pcp09354467pcs.jersyc01.nj.comcast.net [69.141.24.176]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id E5BC17FE4 for ; Mon, 3 May 2004 00:42:19 -0400 (EDT) Date: Mon, 3 May 2004 00:42:07 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test2 released In-Reply-To: <1083437297.21296.19.camel@hurina> Message-ID: References: <1083437297.21296.19.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 May 2004 04:48:21 -0000 X-UID: 9025 Status: O On Sat, 1 May 2004, Timo Sirainen wrote: > http://dovecot.org/test/ > > I still haven't done much real world testing, but I've been thinking > about all the potential race conditions a lot since last time and fixed > a lot of them. There might still be some.. > I see test3 is out as well. I've debianized that and put the packages on http://src.braincells.com/dovecot-test/ Once again don't use this if you aren't willing to risk breakage. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From jaldhar@debian.org Mon May 3 07:50:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A72BFC000D8E; Mon, 3 May 2004 07:50:52 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 882B7C00098C for ; Mon, 3 May 2004 07:50:50 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id BEE4C8099; Mon, 3 May 2004 00:44:53 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 09810-06; Mon, 3 May 2004 00:44:53 -0400 (EDT) Received: from [192.168.1.109] (pcp09354467pcs.jersyc01.nj.comcast.net [69.141.24.176]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id EE4497FE4; Mon, 3 May 2004 00:44:52 -0400 (EDT) Date: Mon, 3 May 2004 00:44:40 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Timo Sirainen In-Reply-To: <83D39BA8-9AE5-11D8-B8A2-000393CC2E90@iki.fi> Message-ID: References: <1082920450.1401.27.camel@hurina> <1083269394.32748.77.camel@hurina> <83D39BA8-9AE5-11D8-B8A2-000393CC2E90@iki.fi> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: Dovecot mailing list Subject: [Dovecot] Patch for gnutls10 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 May 2004 04:50:52 -0000 X-UID: 9026 Status: O [Was Re: [Dovecot] Re: 1.0-test1 released ] On Fri, 30 Apr 2004, Timo Sirainen wrote: > It still doesn't check gnutls_record_recv/send return values, so if the > record can't be fully read/written the connection might get stuck.. The > current code only tries to re-read if gnutls_record_recv fails, but it > might need to re-send or re-handshake instead which it doesn't attempt, > the same for gnutls_record_send.. > Just to clarify, are you saying my patch is incomplete or is it incorrect? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From dovecot@gutzeit.at Mon May 3 15:20:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 14FDAC000D8E; Mon, 3 May 2004 15:20:31 +0300 (EEST) Received: from cat-proof.de (cat.cat-proof.de [213.239.198.176]) by talvi.dovecot.org (Postfix) with ESMTP id E863FC00098C for ; Mon, 3 May 2004 15:20:28 +0300 (EEST) Received: from jensemann.lan.saturn (pD9E0813E.dip.t-dialin.net [217.224.129.62]) by cat-proof.de (Postfix) with ESMTP id 0963B61854F for ; Mon, 3 May 2004 14:13:35 +0200 (CEST) Received: by jensemann.lan.saturn (Postfix, from userid 1000) id C49B5219DAF; Mon, 3 May 2004 14:14:28 +0200 (CEST) Date: Mon, 3 May 2004 14:14:28 +0200 From: Jens Gutzeit To: dovecot@dovecot.org Message-ID: <20040503121428.GO6506@gutzeit.at> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.6i Subject: [Dovecot] Dovecot hangs after 2 or 3 days X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 May 2004 12:20:31 -0000 X-UID: 9027 Status: O Hi all, We've some problems with our dovecot installation, its the latest stable compiled on a debian woody box. After 2 or 3 days dovecot hangs, no user can login (pop3 and imap), there's nothing in the logs. The client does allways timeout, if I restart dovecot all works well again. It's a box with s.th. around 400 users, we've enough mem free, load is not a problem, it went from 0.9 to 0.1 after migrating from cyrus-imapd, so this doesn't seem to be hardware related. My dovecot conf is online at: http://mail.sunday.de/dovecot.conf best regards/Mit freundlichen Grüßen Jens Gutzeit -- Tel.: +492151 652945 Ein PC besteht sowieso i.d.R. zu 90% aus faulen Kompromissen, zu 7% aus Elektronikschrott und zu 3% aus wirren Ideen. Benedict Mangelsdorff From tss@iki.fi Mon May 3 17:07:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4D021C000D8E; Mon, 3 May 2004 17:07:10 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 7ABF3C00098C for ; Mon, 3 May 2004 17:07:08 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id AF97E1C2D5BC; Mon, 3 May 2004 17:01:07 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 40A861C2D5B6 for ; Mon, 3 May 2004 17:00:28 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: 7bit Message-Id: <3B8B8DC3-9D0A-11D8-B8A2-000393CC2E90@iki.fi> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-6-58929465" To: Dovecot mailing list From: Timo Sirainen Date: Mon, 3 May 2004 17:00:28 +0300 X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.0 required=5.0 tests=AWL,BAYES_01,PGP_SIGNATURE_2,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test4 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 May 2004 14:07:10 -0000 X-UID: 9028 Status: O --Apple-Mail-6-58929465 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed http://dovecot.org/test/ Maildir syncing should be pretty optimized now. And it works now with more than 40 messages in mailbox :) --Apple-Mail-6-58929465 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAllB8yUhSUUBViskRAs/4AJ97adcVrdecukgY52gzWZ6uh/Q1ZwCePFD5 Vkn8RDk+++POAhpLn9060R4= =uLrw -----END PGP SIGNATURE----- --Apple-Mail-6-58929465-- From reboot78@freenet.de Mon May 3 22:17:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 96C5BC002803; Mon, 3 May 2004 22:17:04 +0300 (EEST) Received: from mout0.freenet.de (mout0.freenet.de [194.97.50.131]) by talvi.dovecot.org (Postfix) with ESMTP id BC03FC002801 for ; Mon, 3 May 2004 22:17:02 +0300 (EEST) Received: from [194.97.55.148] (helo=mx5.freenet.de) by mout0.freenet.de with asmtp (Exim 4.32) id 1BKiqC-00081v-OD for dovecot@dovecot.org; Mon, 03 May 2004 21:11:00 +0200 Received: from pd90525d2.dip.t-dialin.net ([217.5.37.210] helo=navi.lan) by mx5.freenet.de with asmtp (ID reboot78@freenet.de) (Exim 4.32 #1) id 1BKiqC-0003wd-74 for dovecot@dovecot.org; Mon, 03 May 2004 21:11:00 +0200 Date: Mon, 3 May 2004 21:10:57 +0200 From: Christoph Hohmann To: dovecot@dovecot.org Message-Id: <20040503211057.7ce8bc30@navi.lan> X-Mailer: Sylpheed version 0.9.10claws52 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Dovecot] Maildir files in cur without info X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 May 2004 19:17:04 -0000 X-UID: 9029 Status: O Hi, I have tried to use the same Maildir dovecot uses with another program and encountered the problem that Dovecot seems to move files from new to cur in maildir-sync.c::maildir_scan_dir without adding an info part. On the page http://cr.yp.to/proto/maildir.html is written that mails have to be renamed to uniq:info when moved to the cur directory. Could this be a bug in dovecot? -- http://reboot.animeirc.de http://sylpheed-claws.sourceforge.net/ From tss@iki.fi Mon May 3 22:28:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 11ADFC002803; Mon, 3 May 2004 22:28:05 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 0B673C002801 for ; Mon, 3 May 2004 22:28:03 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 53515300E05FE; Mon, 3 May 2004 22:22:01 +0300 (EEST) Subject: Re: [Dovecot] Maildir files in cur without info From: Timo Sirainen To: Christoph Hohmann In-Reply-To: <20040503211057.7ce8bc30@navi.lan> References: <20040503211057.7ce8bc30@navi.lan> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-SYH6lQCXxZZrPZXCUXsb" Message-Id: <1083612120.21316.60.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 03 May 2004 22:22:01 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 May 2004 19:28:05 -0000 X-UID: 9030 Status: O Content-Length: 1024 --=-SYH6lQCXxZZrPZXCUXsb Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-03 at 22:10, Christoph Hohmann wrote: > I have tried to use the same Maildir dovecot uses with > another program and encountered the problem that Dovecot > seems to move files from new to cur in > maildir-sync.c::maildir_scan_dir without adding an info > part. On the page http://cr.yp.to/proto/maildir.html is > written that mails have to be renamed to uniq:info when > moved to the cur directory. >=20 > Could this be a bug in dovecot? So it seems. I hadn't noticed that "have to" part. Here's a fix: http://dovecot.org/patches/maildir.patch --=-SYH6lQCXxZZrPZXCUXsb Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAlpvYyUhSUUBViskRAqHDAJ4jSuLp5k0nZhXFw+K7QfylPYU4zACdGupo OhCr0UhmN4rONgeb6KLqHZM= =EWVI -----END PGP SIGNATURE----- --=-SYH6lQCXxZZrPZXCUXsb-- From reboot78@freenet.de Mon May 3 23:31:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2FC8FC002801; Mon, 3 May 2004 23:31:12 +0300 (EEST) Received: from mout0.freenet.de (mout0.freenet.de [194.97.50.131]) by talvi.dovecot.org (Postfix) with ESMTP id 06A4AC000D8E for ; Mon, 3 May 2004 23:31:10 +0300 (EEST) Received: from [194.97.50.135] (helo=mx2.freenet.de) by mout0.freenet.de with asmtp (Exim 4.32) id 1BKjzw-0004hh-A1 for dovecot@dovecot.org; Mon, 03 May 2004 22:25:08 +0200 Received: from pd90525d2.dip.t-dialin.net ([217.5.37.210] helo=navi.lan) by mx2.freenet.de with asmtp (ID reboot78@freenet.de) (Exim 4.32 #1) id 1BKjzv-0004Ut-UD for dovecot@dovecot.org; Mon, 03 May 2004 22:25:08 +0200 Date: Mon, 3 May 2004 22:24:35 +0200 From: Christoph Hohmann To: dovecot@dovecot.org Subject: Re: [Dovecot] Maildir files in cur without info Message-Id: <20040503222435.65c03a8d@navi.lan> In-Reply-To: <1083612120.21316.60.camel@hurina> References: <20040503211057.7ce8bc30@navi.lan> <1083612120.21316.60.camel@hurina> X-Mailer: Sylpheed version 0.9.10claws52 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 May 2004 20:31:12 -0000 X-UID: 9031 Status: O Timo Sirainen wrote: > > I have tried to use the same Maildir dovecot uses with > > another program and encountered the problem that Dovecot > > seems to move files from new to cur without adding an info > > part. > > So it seems. I hadn't noticed that "have to" part. Here's a fix: > http://dovecot.org/patches/maildir.patch Applied it to 0.99.10.4, had to modify the variable names to make it build, tested it and seems to work fine now, thanks. -- http://reboot.animeirc.de http://sylpheed-claws.sourceforge.net/ From rjohnson@medata.com Tue May 4 03:20:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2378BC002802; Tue, 4 May 2004 03:20:57 +0300 (EEST) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id 8D903C000D8E for ; Tue, 4 May 2004 03:20:54 +0300 (EEST) Received: from [172.24.2.12] (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i440EmlO003468 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 3 May 2004 17:14:48 -0700 Message-ID: <4096E07B.8010309@medata.com> Date: Mon, 03 May 2004 17:14:51 -0700 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.6 (X11/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Maildir files in cur without info References: <20040503211057.7ce8bc30@navi.lan> In-Reply-To: <20040503211057.7ce8bc30@navi.lan> X-Enigmail-Version: 0.83.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.70, clamav-milter version 0.70j X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 May 2004 00:20:57 -0000 X-UID: 9032 Status: O Christoph Hohmann wrote: > Hi, > > I have tried to use the same Maildir dovecot uses with > another program and encountered the problem that Dovecot > seems to move files from new to cur in > maildir-sync.c::maildir_scan_dir without adding an info > part. On the page http://cr.yp.to/proto/maildir.html is > written that mails have to be renamed to uniq:info when > moved to the cur directory. > > Could this be a bug in dovecot? I've found that placing the files inside of the new directory instead of the cur forces the files to be indexed as the MUA "sees" them as new messages (which in theory, they are to that user/folder). Not sure if this addresses what you're looking for, but it's how I've gotten around the issue for now. -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From alsbergt@cs.huji.ac.il Tue May 4 13:04:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C942FC002806; Tue, 4 May 2004 13:04:05 +0300 (EEST) Received: from cs1.cs.huji.ac.il (cs1.cs.huji.ac.il [132.65.16.10]) by talvi.dovecot.org (Postfix) with ESMTP id 5D5C5C002803 for ; Tue, 4 May 2004 13:04:03 +0300 (EEST) Received: from ludo.cs.huji.ac.il ([132.65.80.122] ident=exim) by cs1.cs.huji.ac.il with esmtp id 1BKwgV-000INl-AC; Tue, 04 May 2004 12:57:55 +0300 Received: from alsbergt by ludo.cs.huji.ac.il with local (Exim 4.12) id 1BKwgV-000BS8-00; Tue, 04 May 2004 12:57:55 +0300 Date: Tue, 4 May 2004 12:57:55 +0300 From: Tom Alsberg To: Timo Sirainen Subject: Re: [Dovecot] Envelope From changed - why? Message-ID: <20040504095755.GA43988@cs.huji.ac.il> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> <20040427125339.GA39737@cs.huji.ac.il> <1083091711.13720.87.camel@hurina> <20040428074758.GA12009@cs.huji.ac.il> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040428074758.GA12009@cs.huji.ac.il> X-Face: "5"j@Y1Peoz1; ftTv>\|['ox-csmV+:_RDNdi/2lSe2x?0:HVAeVW~ajwQ7RfDlcb^18eJ; t,O,s5-aNdU/DJ2E8h1s,..4}N9$27u`pWmH|; s!zlqqVwr9R^_ji=1\3}Z6gQBYyQ]{gd5-V8s^fYf{$V2*_&S>eA|SH@Y\hOVUjd[5eah{EO@gCr.ydSpJHJIU[QsH~bC?$C@O:SzF=CaUxp80-iknM(]q(W X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Tom Alsberg List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 May 2004 10:04:06 -0000 X-UID: 9033 Status: O Content-Length: 3469 So, Timo and others - Any ideas, status, expectations, or hints, regarding this? I haven't looked much since, but I'd like to fix it, and wouldn't want to do it ugly (back-searching "\nFrom ")... Where shall I try, or is a fix (1.0 mbox support?) in its way? Thanks, cheers, -- Tom On Wed, Apr 28, 2004 at 10:47:58AM +0300, I wrote (and probably nobody noticed): > On Tue, Apr 27, 2004 at 09:48:31PM +0300, Timo Sirainen wrote: > > On Tue, 2004-04-27 at 15:53, Tom Alsberg wrote: > > > That's what I mean - when the IMAP COPY command is issued, the From_ > > > line should be copied together with the rest of the actual message. > > > > I don't think I'll want to do the copying exactly, > > That's a shame... Any tips, though, on how I could change it in the > least ugly-hackish way? (I'd like to see and know in order to > understand the internal architecture of dovecot anyway, even if you > are soon to implement it with the read and save API into the > mainstream code track) > > > as the way COPY currently works is "read message" and "save > > message", although maildir has special code for hardlink-copying. I > > don't think mbox really deserves that.. > > Well, OK... Not sure why, though - I'd think this would be a small > piece of code specific to mbox (if done right), and would warrant a > special case. > > > However, I could change read and save APIs so that the "envelope from" > > can be read and written. With maildir reading would give NULL, and > > writing would just ignore it. With mbox it would work right though, and > > if it's NULL it'd do what it does now. > > Sounds like a good idea. I'd also think of trying to base on > Return-Path: if it's NULL when writing to an mbox, before dropping to > inventing a completely fabricated one, but that's just an added > bonus... > > Any idea as to when I could expect to have this implemented in > dovecot? (I'd love to help with it, given some guidance) > > Main question in my mind now about the code: What data is kept in the > context of a message, except for the istream pointing to the contents? > (As in - where would you insert that "envelope from" field? Would it > just be a parameter to the functions, or would it be some field in the > data structure representing a message?) > > I understood that in the current development dovecot, mbox support > doesn't even work anymore... I do hope that'll be fixed when it > becomes the current stable branch. > > I must say that until now I really like dovecot, being the best IMAP > server I've found until now (most suitable to my needs, but also clean > and flexible, functioning well...). Hopefully mbox support won't just > be dropped at some point, as it is important for me, and I believe for > other users as well. > > I understood the direction of development right now is into making > dovecot as modular as feasible, so maybe even if mbox support won't be > in the main dovecot code, it could be an external module (with a clean > enough API, I could even write and maintain an mbox module) > > Thank you, Timo, and the rest of the dovecot developers, for all the > efforts into this neat piece of software :-) > > Thanks again, > -- Tom -- Tom Alsberg - hacker (being the best description fitting this space) Web page: http://www.cs.huji.ac.il/~alsbergt/ DISCLAIMER: The above message does not even necessarily represent what my fingers have typed on the keyboard, save anything further. From tss@iki.fi Tue May 4 20:21:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3E04AC002803; Tue, 4 May 2004 20:21:17 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 30037C000D8E for ; Tue, 4 May 2004 20:21:15 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 7D915300E05FF; Tue, 4 May 2004 20:15:11 +0300 (EEST) Subject: Re: [Dovecot] Envelope From changed - why? From: Timo Sirainen To: Tom Alsberg In-Reply-To: <20040504095755.GA43988@cs.huji.ac.il> References: <20040423104813.GA17771@zoopee.org> <1082929258.1400.80.camel@hurina> <20040426070311.GA9104@cs.huji.ac.il> <20040426094359.GA11096@traveler.cistron.net> <20040427075326.GA39453@cs.huji.ac.il> <20040427103924.GG16189@traveler.cistron.net> <20040427125339.GA39737@cs.huji.ac.il> <1083091711.13720.87.camel@hurina> <20040428074758.GA12009@cs.huji.ac.il> <20040504095755.GA43988@cs.huji.ac.il> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-AcikwYSaxT06lkuaQ8I1" Message-Id: <1083690910.18875.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 04 May 2004 20:15:10 +0300 Cc: Dovecot Mailing List X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 May 2004 17:21:17 -0000 X-UID: 9034 Status: O Content-Length: 1201 --=-AcikwYSaxT06lkuaQ8I1 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-05-04 at 12:57, Tom Alsberg wrote: > So, Timo and others - >=20 > Any ideas, status, expectations, or hints, regarding this? >=20 > I haven't looked much since, but I'd like to fix it, and wouldn't want > to do it ugly (back-searching "\nFrom ")... Where shall I try, or is > a fix (1.0 mbox support?) in its way? What I was going to do to 1.0 is make it read the address from From-line and make it available with mail->get_special(mail, MAIL_FETCH_FROM_ENVELOPE). Then add char *from_envelope to save() function, and make it save that for mbox if it's given. Then just make COPY command fetch it and feed it to save(). mbox code is still completely broken in 1.0-test releases. I was going to begin working on that soon. --=-AcikwYSaxT06lkuaQ8I1 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAl8+eyUhSUUBViskRAgKdAJ9+7Nh1GR4H6M3PDyuv0NlLsDJU+ACeMrLv QYQhHlhsgcDr4InQAI1IfLA= =IO2o -----END PGP SIGNATURE----- --=-AcikwYSaxT06lkuaQ8I1-- From tss@iki.fi Tue May 4 20:23:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 314E3C002803; Tue, 4 May 2004 20:23:32 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 30C5BC000D8E for ; Tue, 4 May 2004 20:23:30 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 9F6C9300E05FF; Tue, 4 May 2004 20:17:26 +0300 (EEST) Subject: Re: [Dovecot] Re: Timezone of logentries from dovecot (Timo Sirainen) From: Timo Sirainen To: Lars Skovgaard In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-P1byKyiZlNHj73p9n9Ap" Message-Id: <1083691046.18872.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 04 May 2004 20:17:26 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 May 2004 17:23:32 -0000 X-UID: 9035 Status: O Content-Length: 1349 --=-P1byKyiZlNHj73p9n9Ap Content-Type: text/plain; charset=windows-1251 Content-Transfer-Encoding: quoted-printable On Sun, 2004-05-02 at 12:33, Lars Skovgaard wrote: > > It's because the logging process is chrooted, doesn't have TZ env. var. > > set, and doesn't have a correct /etc/localtime (or whatever your libc > > uses) _inside_ the chroot directory. Therefore its timezone is the > > default, UTC (formerly known as GMT). >=20 > As I understand it, it would be a good idea to come up with a more=20 > permanent fix. However, I have no idea where to begin. Timo writes=20 > about making all logging go through the dovecot-master process =96 can=20 > anyone point me in the direction of information on how to accomplish=20 > this? The permanent fix will be to use 1.0 (pre)releases once they become stable. The current test releases aren't yet. Until then login_chroot =3D no isn't really bad either, it just drops extra safety against possible security holes in Dovecot. --=-P1byKyiZlNHj73p9n9Ap Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAl9AmyUhSUUBViskRAm66AKCOGn0QvK9ZABEUguOKTKEOp0SeqwCgkXow +QdbufD/FI+TtBbQdAo7XEU= =cK75 -----END PGP SIGNATURE----- --=-P1byKyiZlNHj73p9n9Ap-- From epp719@epp.teicrete.gr Wed May 5 15:30:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 47BAAC002803; Wed, 5 May 2004 15:30:22 +0300 (EEST) Received: from mailscan1.epp.teiher.gr (mailscan.epp.teiher.gr [193.92.9.30]) by talvi.dovecot.org (Postfix) with ESMTP id BCC3DC000D8E for ; Wed, 5 May 2004 15:30:19 +0300 (EEST) Received: from ermis.staff.epp.teiher.gr ([10.0.2.5]) by 193.92.9.30 with InterScan Messaging Security Suite; Wed, 05 May 2004 15:24:13 +0300 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable X-MimeOLE: Produced By Microsoft Exchange V6.5.6944.0 Date: Wed, 5 May 2004 15:24:17 +0300 Message-ID: <172B6594DD0B93468951D46DF5152E65382DED@ermis.epp.teiher.gr> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Dovecot chrooting Thread-Index: AcQym+K2s+vSmZMsQJCuxXrlG64W+Q== From: =?ISO-8859-1?Q?=3Fa=3F=3F=B5p=3F=3F_=3Fa=3Fa=3F=3F=3Ft=3F=3F?= To: X-Mailman-Approved-At: Wed, 05 May 2004 15:46:57 +0300 Subject: [Dovecot] Dovecot chrooting X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 May 2004 12:30:22 -0000 X-UID: 9036 Status: O hello all i am new to dovecot and i have a small problem. I use qmail as = a pop3 server and dovecot as imap. my rc script is as follows: -----snip----- #!/bin/sh exec env - PATH=3D"/var/qmail/bin:$PATH" \ qmail-start '|preline procmail' splogger qmai -----end----- thus i deliver mails through procmail so all mails are located to = /var/spool/mail. The problem exists when i tested chrooting and found it a very good idea = to jail all my users.. *but*=20 still qmail delivers mails to the real /var/spool/mail and not to the = /home/chrootusers/var/spool/mail so that dovecot can pick them up. Is = there any special configuration in dovecot.conf in order to chroot the = /var/spool/mail to /home/chrootusers ? some of my conf: login_chroot =3D yes valid_chroot_dirs =3D /home/chrootusers mail_chroot =3D /var/spool/mail default_mail_env =3D mbox:~/mail/:INBOX=3D/var/mail/%u PS: tell me if you need more of the dovecot.conf PS2: sorry for my english its not my native From tss@iki.fi Thu May 6 04:27:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 790AAC002803; Thu, 6 May 2004 04:27:55 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 5CE92C000D8E for ; Thu, 6 May 2004 04:27:53 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 9245E1C35315; Thu, 6 May 2004 04:21:46 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8F29F1C2E7BF; Thu, 6 May 2004 04:21:12 +0300 (EEST) In-Reply-To: <172B6594DD0B93468951D46DF5152E65382DED@ermis.epp.teiher.gr> References: <172B6594DD0B93468951D46DF5152E65382DED@ermis.epp.teiher.gr> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-3-272572020" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Dovecot chrooting Date: Thu, 6 May 2004 04:21:10 +0300 To: =?ISO-8859-1?Q?=3Fa=3F=3F=B5p=3F=3F_=3Fa=3Fa=3F=3F=3Ft=3F=3F?= X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.5 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 May 2004 01:27:55 -0000 X-UID: 9037 Status: O Content-Length: 1542 --Apple-Mail-3-272572020 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=ISO-8859-1; format=flowed On 5.5.2004, at 15:24, ?a??=B5p?? ?a?a???t?? wrote: > hello all i am new to dovecot and i have a small problem. I use qmail=20= > as a pop3 server and dovecot as imap. my rc script is as follows: > -----snip----- > #!/bin/sh > exec env - PATH=3D"/var/qmail/bin:$PATH" \ > qmail-start '|preline procmail' splogger qmai > -----end----- > thus i deliver mails through procmail so all mails are located to=20 > /var/spool/mail. > The problem exists when i tested chrooting and found it a very good=20 > idea to jail all my users.. *but* > still qmail delivers mails to the real /var/spool/mail and not to the=20= > /home/chrootusers/var/spool/mail so that dovecot can pick them up. Is=20= > there any special configuration in dovecot.conf in order to chroot the=20= > /var/spool/mail to /home/chrootusers ? It isn't possible to chroot to more than one directory. Pretty much the=20= only possibility is to make qmail deliver the mail to ~/mail/inbox. --Apple-Mail-3-272572020 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAmZMHyUhSUUBViskRArNbAJ9woiSXeS5085qWFMgcy4DFTu9IdQCfcEOV ljGxhTJZ41poUebFToujctc= =UDxY -----END PGP SIGNATURE----- --Apple-Mail-3-272572020-- From mrproper@ximian.com Thu May 6 04:39:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 69602C002807; Thu, 6 May 2004 04:39:53 +0300 (EEST) Received: from peabody.ximian.com (peabody.ximian.com [130.57.169.10]) by talvi.dovecot.org (Postfix) with ESMTP id 365ACC002806 for ; Thu, 6 May 2004 04:39:49 +0300 (EEST) Received: (qmail 19902 invoked from network); 6 May 2004 01:33:40 -0000 Received: from localhost (HELO ?192.168.10.14?) (mrproper@127.0.0.1) by localhost with SMTP; 6 May 2004 01:33:40 -0000 From: Kevin Breit To: dovecot@dovecot.org Content-Type: multipart/mixed; boundary="=-FCrHuLsnxZ5Pf+cbtyjt" Organization: Novell Date: Wed, 05 May 2004 20:34:35 -0400 Message-Id: <1083803676.3253.15.camel@kbreit.attbi.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.5.7 X-Mailman-Approved-At: Thu, 06 May 2004 06:09:34 +0300 Subject: [Dovecot] Mail always is delivered to /var/mail/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 May 2004 01:39:53 -0000 X-UID: 9038 Status: O Content-Length: 18521 --=-FCrHuLsnxZ5Pf+cbtyjt Content-Type: text/plain Content-Transfer-Encoding: 7bit Hey, I am setting up Dovecot on Debian with Postfix. I am telling Dovecot to use maildir:~/Maildir but it persists in dumping mail in mbox format in /var/mail/username. Can anyone suggest ideas? My config file is attached. Thanks Kevin --=-FCrHuLsnxZ5Pf+cbtyjt Content-Disposition: attachment; filename=dovecot.conf Content-Type: text/plain; name=dovecot.conf; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit ## Dovecot 1.0 configuration file # Default values are shown after each value, it's not required to uncomment # any of the lines. Exception to this are paths, they're just examples # with real defaults being based on configure options. The paths listed here # are for configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var # --with-ssldir=/etc/ssl # Base directory where to store runtime data. #base_dir = /var/run/dovecot/ # Protocols we want to be serving: # imap imaps pop3 pop3s protocols = imap imaps pop3 pop3s # IP or host address where to listen in for connections. It's not currently # possible to specify multiple addresses. "*" listens in all IPv4 interfaces. # "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4 # interfaces depending on the operating system. You can specify ports with # "host:port". #imap_listen = * #pop3_listen = * # IP or host address where to listen in for SSL connections. Defaults # to above non-SSL equilevants if not specified. #imaps_listen = #pop3s_listen = # Disable SSL/TLS support. #ssl_disable = no # PEM encoded X.509 SSL/TLS certificate and private key. They're opened before # dropping root privileges, so keep the key file unreadable by anyone but # root. #ssl_cert_file = /etc/ssl/certs/dovecot.pem #ssl_key_file = /etc/ssl/private/dovecot.pem # SSL parameter file. Master process generates this file for login processes. # It contains Diffie Hellman and RSA parameters. #ssl_parameters_file = /var/run/dovecot/ssl-parameters.dat # How often to regenerate the SSL parameters file. Generation is quite CPU # intensive operation. The value is in hours, 0 disables regeneration # entirely. #ssl_parameters_regenerate = 24 # Disable LOGIN command and all other plaintext authentications unless # SSL/TLS is used (LOGINDISABLED capability) disable_plaintext_auth = yes # Use this logfile instead of syslog(). /dev/stderr can be used if you want to # use stderr for logging (ONLY /dev/stderr - otherwise it is closed). #log_path = # For informational messages, use this logfile instead of the default #info_log_path = # Prefix for each line written to log file. % codes are in strftime(3) # format. Note the extra space at the end of line. #log_timestamp = "%b %d %H:%M:%S " ## ## Login processes ## # Directory where authentication process places authentication UNIX sockets # which login needs to be able to connect to. The sockets are created when # running as root, so you don't have to worry about permissions. #login_dir = /var/run/dovecot/login # chroot login process to the login_dir. Only reason not to do this is if you # wish to run the whole Dovecot without roots. #login_chroot = yes ## ## IMAP login process ## login = imap # Executable location. #login_executable = /usr/lib/dovecot/imap-login # User to use for the login process. Create a completely new user for this, # and don't use it anywhere else. The user must also belong to a group where # only it has access, it's used to control access for authentication process. #login_user = dovecot # Set max. process size in megabytes. If you don't use # login_process_per_connection you might need to grow this. #login_process_size = 16 # Should each login be processed in it's own process (yes), or should one # login process be allowed to process multiple connections (no)? Yes is more # secure, espcially with SSL/TLS enabled. No is faster since there's no need # to create processes all the time. #login_process_per_connection = yes # Number of login processes to create. If login_process_per_user is # yes, this is the number of extra processes waiting for users to log in. #login_processes_count = 3 # Maximum number of extra login processes to create. The extra process count # usually stays at login_processes_count, but when multiple users start logging # in at the same time more extra processes are created. To prevent fork-bombing # we check only once in a second if new processes should be created - if all # of them are used at the time, we double their amount until limit set by this # setting is reached. This setting is used only if login_process_per_use is yes. #login_max_processes_count = 128 # Maximum number of connections allowed in login state. When this limit is # reached, the oldest connections are dropped. If login_process_per_user # is no, this is a per-process value, so the absolute maximum number of users # logging in actually login_processes_count * max_logging_users. #login_max_logging_users = 256 ## ## POP3 login process ## # Settings default to same as above, so you don't have to set anything # unless you want to override them. login = pop3 # Exception to above rule being the executable location. #login_executable = /usr/lib/dovecot/pop3-login ## ## Mail processes ## # Maximum number of running mail processes. When this limit is reached, # new users aren't allowed to log in. #max_mail_processes = 1024 # Show more verbose process titles (in ps). Currently shows user name and # IP address. Useful for seeing who are actually using the IMAP processes # (eg. shared mailboxes or if same uid is used for multiple accounts). #verbose_proctitle = no # Show protocol level SSL errors. #verbose_ssl = no # Valid UID range for users, defaults to 500 and above. This is mostly # to make sure that users can't log in as daemons or other system users. # Note that denying root logins is hardcoded to dovecot binary and can't # be done even if first_valid_uid is set to 0. #first_valid_uid = 500 #last_valid_uid = 0 # Valid GID range for users, defaults to non-root/wheel. Users having # non-valid GID as primary group ID aren't allowed to log in. If user # belongs to supplementary groups with non-valid GIDs, those groups are # not set. #first_valid_gid = 1 #last_valid_gid = 0 # ':' separated list of directories under which chrooting is allowed for mail # processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too). # This setting doesn't affect login_chroot or auth_chroot variables. # WARNING: Never add directories here which local users can modify, that # may lead to root exploit. Usually this should be done only if you don't # allow shell access for users. See # /usr/share/doc/dovecot-common/configuration.txt for more information. #valid_chroot_dirs = # Default chroot directory for mail processes. This can be overridden by # giving /./ in user's home directory (eg. /home/./user chroots into /home). #mail_chroot = # Default MAIL environment to use when it's not set. By leaving this empty # dovecot tries to do some automatic detection as described in # /usr/share/doc/dovecot-common/mail-storages.txt. There's a few special # variables you can use: # # %u - username # %n - user part in user@domain, same as %u if there's no domain # %d - domain part in user@domain, empty if user there's no domain # %h - home directory # # You can also limit a width of string by giving the number of max. characters # after the '%' character. For example %1u gives the first character of # username. Some examples: # # maildir:/var/mail/%1u/%u/Maildir # mbox:~/mail/:INBOX=/var/mail/%u # mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n # default_mail_env = maildir:~/Maildir # Space-separated list of fields to cache for all mails. Currently these # fields are allowed followed by a list of commands they speed up: # # Envelope - FETCH ENVELOPE and SEARCH FROM, TO, CC, BCC, SUBJECT, # SENTBEFORE, SENTON, SENTSINCE, HEADER MESSAGE-ID, # HEADER IN-REPLY-TO # Body - FETCH BODY # Bodystructure - FETCH BODY, BODYSTRUCTURE # MessagePart - FETCH BODY[1.2.3] (ie. body parts), RFC822.SIZE, # SEARCH SMALLER, LARGER, also speeds up BODY/BODYSTRUCTURE # generation. This is always set with mbox mailboxes, and # also default with Maildir. # # Different IMAP clients work in different ways, that's why Dovecot by default # only caches MessagePart which speeds up most operations. Whenever client # does something where caching could be used, the field is automatically marked # to be cached later. For example after FETCH BODY the BODY will be cached # for all new messages. Normally you should leave this alone, unless you know # what most of your IMAP clients are. Caching more fields than needed makes # the index files larger and generate useless I/O. # # With maildir there's one extra optimization - if nothing is cached, indexing # the maildir becomes much faster since it's not opening any of the mail files. # This could be useful if your IMAP clients access only new mails. #mail_cache_fields = MessagePart # Space-separated list of fields that Dovecot should never set to be cached. # Useful if you want to save disk space at the cost of more I/O when the fields # needed. #mail_never_cache_fields = # Workarounds for various client bugs: # oe6-fetch-no-newmail: # Never send EXISTS/RECENT when replying to FETCH command. Outlook Express # seems to think they are FETCH replies and gives user "Message no longer # in server" error. Note that OE6 still breaks even with this workaround # if synchronization is set to "Headers Only". # outlook-idle: # Outlook and Outlook Express never abort IDLE command, so if no mail # arrives in half a hour, Dovecot closes the connection. This is still # fine, except Outlook doesn't connect back so you don't see if new mail # arrives. #client_workarounds = # Dovecot can notify client of new mail in selected mailbox soon after it's # received. This setting specifies the minimum interval in seconds between # new mail notifications to client - internally they may be checked more or # less often. Setting this to 0 disables the checking. # NOTE: Evolution client breaks with this option when it's trying to APPEND. #mailbox_check_interval = 0 # Like mailbox_check_interval, but used for IDLE command. #mailbox_idle_check_interval = 30 # Allow full filesystem access to clients. There's no access checks other than # what the operating system does for the active UID/GID. It works with both # maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/ # or ~user/. #mail_full_filesystem_access = no # Maximum allowed length for custom flag name. It's only forced when trying # to create new flags. #mail_max_flag_length = 50 # Save mails with CR+LF instead of plain LF. This makes sending those mails # take less CPU, especially with sendfile() syscall with Linux and FreeBSD. # But it also creates a bit more disk I/O which may just make it slower. #mail_save_crlf = no # Use mmap() instead of read() to read mail files. read() seems to be a bit # faster with my Linux/x86 and it's better with NFS, so that's the default. #mail_read_mmaped = no # Copy mail to another folders using hard links. This is much faster than # actually copying the file. This is problematic only if something modifies # the mail in one folder but doesn't want it modified in the others. I don't # know any MUA which would modify mail files directly. IMAP protocol also # requires that the mails don't change, so it would be problematic in any case. # If you care about performance, enable it. #maildir_copy_with_hardlinks = no # Check if mails' content has been changed by external programs. This slows # down things as extra stat() needs to be called for each file. If changes are # noticed, the message is treated as a new message, since IMAP protocol # specifies that existing message are immutable. #maildir_check_content_changes = no # Which locking methods to use for locking mbox. There's three available: # dotlock: Create .lock file. This is the oldest and most NFS-safe # solution. If you want to use /var/mail/ like directory, the users # will need write access to that directory. # fcntl : Use this if possible. Works with NFS too if lockd is used. # flock : May not exist in all systems. Doesn't work with NFS. # # You can use both fcntl and flock too; if you do the order they're declared # with is important to avoid deadlocks if other MTAs/MUAs are using both fcntl # and flock. Some operating systems don't allow using both of them # simultaneously, eg. BSDs. If dotlock is used, it's always created first. #mbox_locks = dotlock fcntl # Should we create dotlock file even when we want only a read-lock? Setting # this to yes hurts the performance when the mailbox is accessed simultaneously # by multiple processes, but it's needed for reliable reading if no other # locking methods are available. #mbox_read_dotlock = no # Maximum time in seconds to wait for lock (all of them) before aborting. #mbox_lock_timeout = 300 # If dotlock exists but the mailbox isn't modified in any way, override the # lock file after this many seconds. #mbox_dotlock_change_timeout = 30 # umask to use for mail files and directories #umask = 0077 # Drop all privileges before exec()ing the mail process. This is mostly # meant for debugging, otherwise you don't get core dumps. Note that setting # this to yes means that log file is opened as the logged in user, which # might not work. It could also be a small security risk if you use single UID # for multiple users, as the users could ptrace() each others processes then. #mail_drop_priv_before_exec = no ## ## IMAP process ## # Executable location #imap_executable = /usr/lib/dovecot/imap # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. #imap_process_size = 256 # Support for dynamically loadable modules. #imap_use_modules = no #imap_modules = /usr/lib/dovecot/imap ## ## POP3 process ## # Executable location #pop3_executable = /usr/lib/dovecot/pop3 # Set max. process size in megabytes. Most of the memory goes to mmap()ing # files, so it shouldn't harm much even if this limit is set pretty high. #pop3_process_size = 256 # Support for dynamically loadable modules. #pop3_use_modules = no #pop3_modules = /usr/lib/dovecot/pop3 ## ## Authentication processes ## # You can have multiple processes; each time "auth = xx" is seen, a new # process definition is started. The point of multiple processes is to be # able to set stricter permissions to others. For example, plain/PAM # authentication requires roots, but if you also use digest-md5 authentication # for some users, you can authenticate them without any privileges in a # separate auth process. Just remember that only one auth process is asked # for the password, so you can't have different passwords with different # processes (unless they have different auth methods, and you're ok with # having different password for each method). # Authentication process name. auth = default # Space separated list of wanted authentication mechanisms: # plain digest-md5 anonymous auth_mechanisms = plain # Space separated list of realms for SASL authentication mechanisms that need # them. You can leave it empty if you don't want to support multiple realms. # Many clients simply use the first one listed here, so keep the default realm # first. #auth_realms = # Default realm to use if none was specified. #auth_default_realm = # Where user database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # passwd-file : passwd-like file with specified location # static uid= gid= home=: static settings # vpopmail: vpopmail library # ldap : LDAP, see /etc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see /etc/dovecot-pgsql.conf auth_userdb = passwd #auth_userdb = pgsql /usr/local/etc/dovecot-pgsql.conf # Where password database is kept: # passwd: /etc/passwd or similiar, using getpwnam() # shadow: /etc/shadow or similiar, using getspnam() # pam [ | *]: PAM authentication # passwd-file : passwd-like file with specified location # vpopmail: vpopmail authentication # ldap : LDAP, see doc/dovecot-ldap.conf # pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf #auth_passdb = pgsql /usr/local/etc/dovecot-pgsql.conf auth_passdb = pam #auth_executable = /usr/lib/dovecot/dovecot-auth # Set max. process size in megabytes. #auth_process_size = 256 # User to use for the process. This user needs access to only user and # password databases, nothing else. Only shadow and pam authentication # requires roots, so use something else if possible. auth_user = root # Directory where to chroot the process. Most authentication backends don't # work if this is set, and there's no point chrooting if auth_user is root. #auth_chroot = # Number of authentication processes to create #auth_count = 1 # List of allowed characters in username. If the user-given username contains # a character not listed in here, the login automatically fails. This is just # an extra check to make sure user can't exploit any potential quote escaping # vulnerabilities with SQL/LDAP databases. If you want to allow all characters, # set this value to empty. #auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ # Username to use for users logging in with ANONYMOUS SASL mechanism #auth_anonymous_username = anonymous # More verbose logging. Useful for figuring out why authentication isn't # working. #auth_verbose = no # digest-md5 authentication process. It requires special MD5 passwords which # /etc/shadow and PAM doesn't support, so we never need roots to handle it. # Note that the passwd-file is opened before chrooting and dropping root # privileges, so it may be 0600-root owned file. #auth = digest_md5 #auth_methods = digest-md5 #auth_realms = #auth_userdb = passwd-file /etc/passwd.imap #auth_passdb = passwd-file /etc/passwd.imap #auth_user = imapauth #auth_chroot = # if you plan to use only passwd-file, you don't need the two auth processes, # simply set "auth_methods = plain digest-md5" --=-FCrHuLsnxZ5Pf+cbtyjt-- From james@giantrobot.co.nz Thu May 6 06:13:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 647D3C002803; Thu, 6 May 2004 06:13:46 +0300 (EEST) Received: from mx1.giantrobot.co.nz (wedge.giantrobot.co.nz [210.55.105.76]) by talvi.dovecot.org (Postfix) with ESMTP id 21D48C000D8E for ; Thu, 6 May 2004 06:13:44 +0300 (EEST) Received: from port-222-152-49-185.fastadsl.net.nz ([222.152.49.185] helo=[192.168.1.204]) by mx1.giantrobot.co.nz with asmtp (TLSv1:RC4-SHA:128) (Exim 4.30) id 1BLZES-0000JR-Fo; Thu, 06 May 2004 15:07:32 +1200 In-Reply-To: <1083803676.3253.15.camel@kbreit.attbi.com> References: <1083803676.3253.15.camel@kbreit.attbi.com> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <7FEA69E7-9F0A-11D8-AB02-000A957DCC26@giantrobot.co.nz> Content-Transfer-Encoding: 7bit From: James Whatever Subject: Re: [Dovecot] Mail always is delivered to /var/mail/ Date: Thu, 6 May 2004 15:07:25 +1200 To: Kevin Breit X-Mailer: Apple Mail (2.613) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 May 2004 03:13:46 -0000 X-UID: 9039 Status: O > Hey, > I am setting up Dovecot on Debian with Postfix. I am telling Dovecot > to use maildir:~/Maildir but it persists in dumping mail in mbox format > in /var/mail/username. Can anyone suggest ideas? My config file is > attached. That's most likely because it's your MTA that's doing your local delivery. Check your exim/postfix/sendmail/whatever config. --- James Whatever My niece called me "Uncle Robot" on the weekend! Giant Robot Ltd, http://www.giantrobot.co.nz/ From yedidia@jct.ac.il Thu May 6 10:31:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 755AFC002803; Thu, 6 May 2004 10:31:27 +0300 (EEST) Received: from mail.jct.ac.il (unknown [147.161.1.14]) by talvi.dovecot.org (Postfix) with ESMTP id 68D65C000D8E for ; Thu, 6 May 2004 10:31:22 +0300 (EEST) Received: from kidushin.jct.ac.il (kidushin.jct.ac.il [147.161.1.19]) by mail.jct.ac.il (8.12.8+Sun/8.12.8) with SMTP id i467ORte006600; Thu, 6 May 2004 10:24:27 +0300 (IDT) Received: from jct.ac.il ([147.161.1.211]) by kidushin.jct.ac.il (SAVSMTP 3.1.3.37) with SMTP id M2004050610105608987 ; Thu, 06 May 2004 10:10:56 +0300 Message-ID: <4099E82B.40502@jct.ac.il> Date: Thu, 06 May 2004 10:24:27 +0300 From: Yedidia Klein User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: James Whatever Subject: Re: [Dovecot] Mail always is delivered to /var/mail/ References: <1083803676.3253.15.camel@kbreit.attbi.com> <7FEA69E7-9F0A-11D8-AB02-000A957DCC26@giantrobot.co.nz> In-Reply-To: <7FEA69E7-9F0A-11D8-AB02-000A957DCC26@giantrobot.co.nz> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Kevin Breit , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 May 2004 07:31:28 -0000 X-UID: 9040 Status: O Is there a way to configure dovecot to work like UW imap? mean mail come to /var/mail/[username] (in mbox format) then while the user connect, the imapd move the email to ~/mbox and serve it from there. --Yedidia James Whatever wrote: >> Hey, >> I am setting up Dovecot on Debian with Postfix. I am telling >> Dovecot >> to use maildir:~/Maildir but it persists in dumping mail in mbox format >> in /var/mail/username. Can anyone suggest ideas? My config file is >> attached. > > > That's most likely because it's your MTA that's doing your local > delivery. > > Check your exim/postfix/sendmail/whatever config. > > --- > James Whatever > My niece called me "Uncle Robot" on the weekend! > Giant Robot Ltd, http://www.giantrobot.co.nz/ From james@powweb.com Thu May 6 11:09:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 93FA8C002803; Thu, 6 May 2004 11:09:52 +0300 (EEST) Received: from nexus.powweb.com (nexus.powweb.com [66.152.96.135]) by talvi.dovecot.org (Postfix) with ESMTP id 69934C000D8E for ; Thu, 6 May 2004 11:09:50 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id 2B157B8E48; Thu, 6 May 2004 01:03:39 -0700 (PDT) Message-ID: <4099F150.5060706@powweb.com> Date: Thu, 06 May 2004 01:03:28 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Yedidia Klein Subject: Re: [Dovecot] Mail always is delivered to /var/mail/ References: <1083803676.3253.15.camel@kbreit.attbi.com> <7FEA69E7-9F0A-11D8-AB02-000A957DCC26@giantrobot.co.nz> <4099E82B.40502@jct.ac.il> In-Reply-To: <4099E82B.40502@jct.ac.il> Content-Type: multipart/mixed; boundary="------------020508050203080100070401" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 May 2004 08:09:52 -0000 X-UID: 9041 Status: O Content-Length: 1866 This is a multi-part message in MIME format. --------------020508050203080100070401 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit default_mail_env = mbox:%h:INBOX=/var/mail/%u Yedidia Klein wrote: > Is there a way to configure dovecot to work like UW imap? > mean mail come to /var/mail/[username] (in mbox format) then while the > user connect, the imapd move the email to ~/mbox and serve it from there. > > --Yedidia > > James Whatever wrote: > >>> Hey, >>> I am setting up Dovecot on Debian with Postfix. I am telling >>> Dovecot >>> to use maildir:~/Maildir but it persists in dumping mail in mbox format >>> in /var/mail/username. Can anyone suggest ideas? My config file is >>> attached. >> >> >> >> That's most likely because it's your MTA that's doing your local >> delivery. >> >> Check your exim/postfix/sendmail/whatever config. >> >> --- >> James Whatever >> My niece called me "Uncle Robot" on the weekend! >> Giant Robot Ltd, http://www.giantrobot.co.nz/ > > -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------020508050203080100070401 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------020508050203080100070401-- From yedidia@jct.ac.il Thu May 6 11:26:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A00CFC002806; Thu, 6 May 2004 11:26:10 +0300 (EEST) Received: from mail.jct.ac.il (unknown [147.161.1.14]) by talvi.dovecot.org (Postfix) with ESMTP id 557C3C002803 for ; Thu, 6 May 2004 11:26:08 +0300 (EEST) Received: from kidushin.jct.ac.il (kidushin.jct.ac.il [147.161.1.19]) by mail.jct.ac.il (8.12.8+Sun/8.12.8) with SMTP id i468J4tk013631; Thu, 6 May 2004 11:19:15 +0300 (IDT) Received: from jct.ac.il ([147.161.1.211]) by kidushin.jct.ac.il (SAVSMTP 3.1.3.37) with SMTP id M2004050611054509717 ; Thu, 06 May 2004 11:05:45 +0300 Message-ID: <4099F504.70204@jct.ac.il> Date: Thu, 06 May 2004 11:19:16 +0300 From: Yedidia Klein User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: James Moser Subject: Re: [Dovecot] Mail always is delivered to /var/mail/ References: <1083803676.3253.15.camel@kbreit.attbi.com> <7FEA69E7-9F0A-11D8-AB02-000A957DCC26@giantrobot.co.nz> <4099E82B.40502@jct.ac.il> <4099F150.5060706@powweb.com> In-Reply-To: <4099F150.5060706@powweb.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 May 2004 08:26:10 -0000 X-UID: 9042 Status: O Content-Length: 1219 that's the way I already configed it, but my running UW IMAP act as I explained: it move all incoming mail from /var/mail/[username] to ~/mbox and then the imap inbox is the ~/mbox the move from UW to dovecot will be much more complicate if the inbox place is different. --Yedidia James Moser wrote: > > default_mail_env = mbox:%h:INBOX=/var/mail/%u > > Yedidia Klein wrote: > >> Is there a way to configure dovecot to work like UW imap? >> mean mail come to /var/mail/[username] (in mbox format) then while >> the user connect, the imapd move the email to ~/mbox and serve it >> from there. >> >> --Yedidia >> >> James Whatever wrote: >> >>>> Hey, >>>> I am setting up Dovecot on Debian with Postfix. I am telling >>>> Dovecot >>>> to use maildir:~/Maildir but it persists in dumping mail in mbox >>>> format >>>> in /var/mail/username. Can anyone suggest ideas? My config file is >>>> attached. >>> >>> >>> >>> >>> That's most likely because it's your MTA that's doing your local >>> delivery. >>> >>> Check your exim/postfix/sendmail/whatever config. >>> >>> --- >>> James Whatever >>> My niece called me "Uncle Robot" on the weekend! >>> Giant Robot Ltd, http://www.giantrobot.co.nz/ >> >> >> > From olive@pasteur.fr Thu May 6 12:42:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9D8EFC002806; Thu, 6 May 2004 12:42:48 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id 9C4A0C000D8E for ; Thu, 6 May 2004 12:42:46 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id B236B11474 for ; Thu, 6 May 2004 11:36:38 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 79C3511473 for ; Thu, 6 May 2004 11:36:38 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 5F0B53F641; Thu, 6 May 2004 11:36:38 +0200 (CEST) Date: Thu, 6 May 2004 11:36:38 +0200 From: Olivier Tharan To: Dovecot mailing list Subject: Re: [Dovecot] imap indexing error when moving multiple mails Message-ID: <20040506093638.GI31267@mafate.sis.pasteur.fr> Mail-Followup-To: Dovecot mailing list References: <20040330201722.GB83591@mafate.sis.pasteur.fr> <20040430152230.GA4193@mafate.sis.pasteur.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 May 2004 09:42:48 -0000 X-UID: 9043 Status: O Content-Length: 1539 * Timo Sirainen (20040430 20:21): > >The same test on a box with a local spool (no NFS) does not > >trigger the errors. On both machines, this is dovecot-0.99.10.4 > >from the FreeBSD ports. > > mail_read_mmaped = no I guess? Yes :) I took advice from the comment in the config file, so I stayed with the default value: ,---- | # Use mmap() instead of read() to read mail files. read() seems to be a bit | # faster with my Linux/x86 and it's better with NFS, so that's the default. | #mail_read_mmaped = no `---- Do you think I should put this to `yes' or definitely not? > Recently I've began wondering what exactly are NFS client's caching > rules. When exactly does it try to read the file from local cache and > when does it check that it's not changed in server? Maybe the only > answer to write fully NFS compatible code is to read the actual NFS > client implementations of most popular OSes :) I have heard horror stories from my colleagues about how bad the client-side NFS implementation is on Tru64, which is the OS which delivers the emails. Perhaps I will first deliver the mails on the FreeBSD-5 machine. > Of course, this might not be NFS-related bug at all even though it > triggers only with NFS. Anyway, I don't think I'll spend any time > wondering about it as mbox code will be rewritten anyway. Ok. In the meantime, we are thinking of putting this box in production, so I am not really willing to beta-test the newest code, but will stay in touch when you release something new. -- olive From cgrady@the-magi.us Thu May 6 20:34:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8A31BC002803; Thu, 6 May 2004 20:34:59 +0300 (EEST) Received: from sccrmhc12.comcast.net (sccrmhc12.comcast.net [204.127.202.56]) by talvi.dovecot.org (Postfix) with ESMTP id 5B689C000D8E for ; Thu, 6 May 2004 20:34:57 +0300 (EEST) Received: from mail.the-magi.us (c-24-20-63-67.client.comcast.net[24.20.63.67]) by comcast.net (sccrmhc12) with ESMTP id <2004050617283701200rqajee>; Thu, 6 May 2004 17:28:47 +0000 Received: from magus ([192.168.1.100]) by mail.the-magi.us with esmtp (Exim 4.32) id 1BLlqk-0004jO-Id for dovecot@dovecot.org; Thu, 06 May 2004 09:35:54 -0700 Message-ID: <409A75C3.50102@the-magi.us> Date: Thu, 06 May 2004 10:28:35 -0700 From: Collin Grady User-Agent: Mozilla Thunderbird 0.6 (Windows/20040430) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] imap idle on non-inbox? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 May 2004 17:34:59 -0000 X-UID: 9044 Status: O Can this be done with dovecot? I really like the imap idle feature, but it doesn't work for me because I sort my mail into folders with procmail, so it only notifies me when one drops into inbox and not a subfolder. Is there just an option for this I'm missing, or does support for this not exist yet? Also, I don't think its a client issue as I watched the traffic with tcpdump and it only announced anything for inbox, messages dropping into other folders caused no traffic. -- Collin Grady BOFH excuse #347: The rubber band broke From mrproper@ximian.com Fri May 7 18:51:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0F502C002803; Fri, 7 May 2004 18:51:13 +0300 (EEST) Received: from peabody.ximian.com (peabody.ximian.com [130.57.169.10]) by talvi.dovecot.org (Postfix) with ESMTP id 9946AC000D8E for ; Fri, 7 May 2004 18:51:10 +0300 (EEST) Received: (qmail 28078 invoked from network); 7 May 2004 15:44:57 -0000 Received: from localhost (HELO kbreit.attbi.com) (mrproper@127.0.0.1) by localhost with SMTP; 7 May 2004 15:44:57 -0000 Subject: Re: [Dovecot] Mail always is delivered to /var/mail/ From: Kevin Breit To: James Whatever In-Reply-To: <7FEA69E7-9F0A-11D8-AB02-000A957DCC26@giantrobot.co.nz> References: <1083803676.3253.15.camel@kbreit.attbi.com> <7FEA69E7-9F0A-11D8-AB02-000A957DCC26@giantrobot.co.nz> Content-Type: multipart/mixed; boundary="=-HbZlIS/u/d+HigPzULi5" Organization: Novell Date: Fri, 07 May 2004 10:45:09 -0400 Message-Id: <1083941109.2740.0.camel@kbreit.attbi.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.5.7 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 May 2004 15:51:13 -0000 X-UID: 9045 Status: O Content-Length: 2002 --=-HbZlIS/u/d+HigPzULi5 Content-Type: text/plain Content-Transfer-Encoding: 7bit On Thu, 2004-05-06 at 15:07 +1200, James Whatever wrote: > > Hey, > > I am setting up Dovecot on Debian with Postfix. I am telling Dovecot > > to use maildir:~/Maildir but it persists in dumping mail in mbox format > > in /var/mail/username. Can anyone suggest ideas? My config file is > > attached. > > That's most likely because it's your MTA that's doing your local > delivery. My Postfix file is fixed. I am not seeing any references to /var/mail, could you take a look through and see if I'm missing anything? Thanks! Kevin --=-HbZlIS/u/d+HigPzULi5 Content-Disposition: attachment; filename=main.cf Content-Type: text/plain; name=main.cf; charset=iso-8859-1 Content-Transfer-Encoding: 7bit # see /usr/share/postfix/main.cf.dist for a commented, fuller # version of this file. # Do not change these directory settings - they are critical to Postfix # operation. command_directory = /usr/sbin daemon_directory = /usr/lib/postfix program_directory = /usr/lib/postfix setgid_group = postdrop # appending .domain is the MUA's job. append_dot_mydomain = no smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # Uncomment the next line to generate delayed mail warnings #delay_warning_time = 4h smtpd_recipient_restrictions = check_client_access hash:/etc/postfix/client_access myhostname = newgod alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = kbreit.dyndns.org, localhost, localhost.localdomain, localhost #relayhost = mynetworks = 127.0.0.0/8 192.168.10.0/24 24.12.138.69/32 hash:/etc/postfix/client_access smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient, check_client_access hash:/etc/postfix/client_access, reject_unauth_destination #mailbox_command = procmail -a "$EXTENSION" mailbox_command = mailbox_size_limit = 51200000 recipient_delimiter = + relayhost = --=-HbZlIS/u/d+HigPzULi5-- From mrproper@ximian.com Fri May 7 18:53:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3AF1BC002803; Fri, 7 May 2004 18:53:47 +0300 (EEST) Received: from peabody.ximian.com (peabody.ximian.com [130.57.169.10]) by talvi.dovecot.org (Postfix) with ESMTP id C46FCC000D8E for ; Fri, 7 May 2004 18:53:43 +0300 (EEST) Received: (qmail 28322 invoked from network); 7 May 2004 15:47:29 -0000 Received: from localhost (HELO kbreit.attbi.com) (mrproper@127.0.0.1) by localhost with SMTP; 7 May 2004 15:47:29 -0000 Subject: Re: [Dovecot] Mail always is delivered to /var/mail/ From: Kevin Breit To: James Whatever In-Reply-To: <1083941109.2740.0.camel@kbreit.attbi.com> References: <1083803676.3253.15.camel@kbreit.attbi.com> <7FEA69E7-9F0A-11D8-AB02-000A957DCC26@giantrobot.co.nz> <1083941109.2740.0.camel@kbreit.attbi.com> Content-Type: text/plain Organization: Novell Date: Fri, 07 May 2004 10:47:38 -0400 Message-Id: <1083941258.2740.2.camel@kbreit.attbi.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.5.7 Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 May 2004 15:53:47 -0000 X-UID: 9046 Status: O On Fri, 2004-05-07 at 10:45 -0400, Kevin Breit wrote: > My Postfix file is fixed. I am not seeing any references to /var/mail, > could you take a look through and see if I'm missing anything? Fixed? WTF? Attached :) Kevin From amyzing@talsever.com Fri May 7 19:09:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F3758C002806; Fri, 7 May 2004 19:09:12 +0300 (EEST) Received: from hall.mail.mindspring.net (hall.mail.mindspring.net [207.69.200.60]) by talvi.dovecot.org (Postfix) with ESMTP id C89F4C002803 for ; Fri, 7 May 2004 19:09:10 +0300 (EEST) Received: from user-2ivf46j.dialup.mindspring.com ([165.247.144.211] helo=marajen.talsever.com) by hall.mail.mindspring.net with esmtp (Exim 3.33 #1) id 1BM7oC-0006up-00; Fri, 07 May 2004 12:02:44 -0400 Received: from ythgin.talsever.com (ythgin.talsever.com [192.168.0.20]) by marajen.talsever.com (Postfix) with SMTP id 6167BB77E; Fri, 7 May 2004 12:02:43 -0400 (EDT) Date: Fri, 7 May 2004 12:02:43 -0400 From: Amelia A Lewis To: Kevin Breit Subject: Re: [Dovecot] Mail always is delivered to /var/mail/ Message-Id: <20040507120243.72a6d695.amyzing@talsever.com> In-Reply-To: <1083941109.2740.0.camel@kbreit.attbi.com> References: <1083803676.3253.15.camel@kbreit.attbi.com> <7FEA69E7-9F0A-11D8-AB02-000A957DCC26@giantrobot.co.nz> <1083941109.2740.0.camel@kbreit.attbi.com> Organization: The Mysthical World of Talsever! X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 May 2004 16:09:13 -0000 X-UID: 9047 Status: O On Fri, 07 May 2004 10:45:09 -0400 Kevin Breit wrote: > On Thu, 2004-05-06 at 15:07 +1200, James Whatever wrote: > > > Hey, > > > I am setting up Dovecot on Debian with Postfix. I am telling > > > Dovecot > > > to use maildir:~/Maildir but it persists in dumping mail in mbox > > > format in /var/mail/username. Can anyone suggest ideas? My config > > > file is attached. > > > > That's most likely because it's your MTA that's doing your local > > delivery. > > My Postfix file is fixed. I am not seeing any references to /var/mail, Add home_mailbox = Maildir/ to main.cf. Or change the defaults for mail location in /etc/login.defs. Amy! -- Amelia A. Lewis amyzing {at} talsever.com Love is never less for being shared. From Nicolas.Stransky@neo-lan.net Fri May 7 17:36:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 546A2C002803; Fri, 7 May 2004 17:36:09 +0300 (EEST) Received: from mailhost.curie.fr (burton1.curie.fr [193.49.205.23]) by talvi.dovecot.org (Postfix) with ESMTP id B3B64C000D8E for ; Fri, 7 May 2004 17:36:03 +0300 (EEST) Received: from smtp-in.curie.fr (localhost [127.0.0.1]) by mailhost.curie.fr/1 with ESMTP id i47ETp3J019564 for ; Fri, 7 May 2004 16:29:51 +0200 (CEST) Received: from [10.10.11.73] (jpt-0115-6340.curie.fr [10.10.11.73]) by smtp-in.curie.fr with ESMTP id i47EToGa013574 for ; Fri, 7 May 2004 16:29:50 +0200 (CEST) X-Client-Addr: 10.10.11.73 jpt-0115-6340.curie.fr (OK) X-Client-Sender: Nicolas.Stransky@neo-lan.net Message-ID: <409B9D5F.6080102@neo-lan.net> Date: Fri, 07 May 2004 16:29:51 +0200 From: Nicolas STRANSKY User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org References: <409A75C3.50102@the-magi.us> In-Reply-To: <409A75C3.50102@the-magi.us> X-Enigmail-Version: 0.83.5.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Sat, 08 May 2004 13:12:35 +0300 Subject: [Dovecot] Re: imap idle on non-inbox? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 May 2004 14:36:09 -0000 X-UID: 9048 Status: O Collin Grady wrote: > Can this be done with dovecot? I really like the imap idle feature, but > it doesn't work for me because I sort my mail into folders with > procmail, so it only notifies me when one drops into inbox and not a > subfolder. I have noticed the same thing, using dovecot 0.99.10.4-2 from Debian testing and thunderbird 0.6 : other folders that INBOX don't get refreshed by the idle feature when new mail arrives. -- Nico From tss@iki.fi Sat May 8 13:15:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0E357C002806; Sat, 8 May 2004 13:15:04 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id DA527C000D8E for ; Sat, 8 May 2004 13:15:00 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 0C2BB300201CD; Sat, 8 May 2004 13:08:48 +0300 (EEST) Subject: Re: [Dovecot] imap idle on non-inbox? From: Timo Sirainen To: Collin Grady In-Reply-To: <409A75C3.50102@the-magi.us> References: <409A75C3.50102@the-magi.us> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-c041edqcDUbG4IXvBUgL" Message-Id: <1084010927.25654.2.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 08 May 2004 13:08:47 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 May 2004 10:15:04 -0000 X-UID: 9049 Status: O Content-Length: 1058 --=-c041edqcDUbG4IXvBUgL Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-05-06 at 20:28, Collin Grady wrote: > Can this be done with dovecot? I really like the imap idle feature, but=20 > it doesn't work for me because I sort my mail into folders with=20 > procmail, so it only notifies me when one drops into inbox and not a=20 > subfolder. >=20 > Is there just an option for this I'm missing, or does support for this=20 > not exist yet? IDLE extension itself doesn't really support this feature. I have thought about making Dovecot send client STATUS notifications for mailboxes which have changed, but I don't know if clients would actually use it. --=-c041edqcDUbG4IXvBUgL Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAnLGvyUhSUUBViskRApi1AJ4xjU9TCJp/WVfzv+FwWuOPrGfSTQCePsKw bjGN4m0XmRRME55HbyeOinY= =ZSd5 -----END PGP SIGNATURE----- --=-c041edqcDUbG4IXvBUgL-- From jan@weitan.org Sun May 9 01:10:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1D09BC002803; Sun, 9 May 2004 01:10:42 +0300 (EEST) Received: from weitan.org (unknown [80.190.204.99]) by talvi.dovecot.org (Postfix) with ESMTP id 213F3C000D8E for ; Sun, 9 May 2004 01:10:40 +0300 (EEST) Received: from weitan.org (localhost [127.0.0.1]) by weitan.org (Postfix) with ESMTP id 1CB897D438 for ; Sat, 8 May 2004 22:03:25 +0000 (UTC) Received: from 217.255.193.2 (SquirrelMail authenticated user jan); by weitan.org with HTTP; Sat, 8 May 2004 21:38:01 -0000 (UTC) Message-ID: <33317.217.255.193.2.1084052281.squirrel@217.255.193.2> In-Reply-To: <1084010927.25654.2.camel@hurina> References: <409A75C3.50102@the-magi.us> <1084010927.25654.2.camel@hurina> Date: Sat, 8 May 2004 21:38:01 -0000 (UTC) Subject: [Dovecot] SSL Client Certificate Support From: jan@weitan.org To: dovecot@dovecot.org User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 May 2004 22:10:42 -0000 X-UID: 9050 Status: O Content-Length: 1265 I would appreciate this feature as well. Because i am using postfix relaying with permit_tls_clientcerts and it just checks the fingerprints of the certs. It find it far more convenient than using something like pam and authorising with user accounts. Postfix can use this features also in combination with normal sasl methods. < Using OpenSSL for authentication brings > in tons of more code that has to be relied on. Your port 22 is closed or does not rely on the the OpenSSL lib ? I took a short look at the sources from postfix but i am not too sure if it´s easy to include in dovecot. Just a idea. Regards Jan Timo Sirainen wrote: > Personally I'd really like to get the current CVS code fully working as > intended. Then there's some long standing bugs/features (eg. recent > counters). Then some NFS safety problems. All those should have been > fixed long ago. yes, it's better to get dovecot stable first. > Also currently there's only dovecot-auth and master processes in Dovecot > which have to be free of security holes to avoid pre-login security > holes. That's not a lot of code. Using OpenSSL for authentication brings > in tons of more code that has to be relied on. I understand. But please, keep it in mind for later versions of dovecot! From tss@iki.fi Mon May 10 03:16:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 19EBCC002801; Mon, 10 May 2004 03:16:04 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A3292C000D8E for ; Mon, 10 May 2004 03:16:00 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 0FB1D1C2D5C0; Mon, 10 May 2004 03:09:44 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9B3771C2D5BE; Mon, 10 May 2004 03:09:09 +0300 (EEST) In-Reply-To: <33317.217.255.193.2.1084052281.squirrel@217.255.193.2> References: <409A75C3.50102@the-magi.us> <1084010927.25654.2.camel@hurina> <33317.217.255.193.2.1084052281.squirrel@217.255.193.2> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-12-613849998" Message-Id: <41F53666-A216-11D8-AEE1-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] SSL Client Certificate Support Date: Mon, 10 May 2004 03:09:08 +0300 To: jan@weitan.org X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.3 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 00:16:04 -0000 X-UID: 9051 Status: O Content-Length: 1780 --Apple-Mail-12-613849998 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 9.5.2004, at 00:38, jan@weitan.org wrote: > I would appreciate this feature as well. Because i am using postfix > relaying with permit_tls_clientcerts and it just checks the > fingerprints > of the certs. It find it far more convenient than using something like > pam > and authorising with user accounts. Postfix can use this features also > in > combination with normal sasl methods. I've been thinking about doing this lately as well. Shouldn't really be much of a job. Just tell OpenSSL library to require a valid client certificate. Optionally also force the cert's common name to be client's login name. I think it would still be a good idea to use passwords as well. Wasn't the one OpenSSL hole a year ago exploitable only with servers requiring client certificates?.. Maybe the passwordless authentication would work just by keeping password fields empty in password database? Or maybe I'll just create a new "nocheck" passdb. EXTERNAL SASL mechanism would also be useful for this. > < Using OpenSSL for authentication brings >> in tons of more code that has to be relied on. > Your port 22 is closed or does not rely on the the OpenSSL lib ? Closed except from a few IPs :) --Apple-Mail-12-613849998 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAnsgkyUhSUUBViskRAhFXAKCEnmAIhpYqN2XWwke8WnfrV+OCXQCfSN+W YeFHsYA0jllzU0m0mzSbGLM= =yrdY -----END PGP SIGNATURE----- --Apple-Mail-12-613849998-- From tss@iki.fi Mon May 10 03:30:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E3B7AC002801; Mon, 10 May 2004 03:30:18 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 027BAC000D8E for ; Mon, 10 May 2004 03:30:17 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 95AB41C2D5BE; Mon, 10 May 2004 03:24:00 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 018CD1C2D5C0 for ; Mon, 10 May 2004 03:23:26 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: 7bit Message-Id: <403A0B7F-A218-11D8-AEE1-000393CC2E90@iki.fi> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-13-614706088" To: Dovecot mailing list From: Timo Sirainen Date: Mon, 10 May 2004 03:23:24 +0300 X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-6.6 required=5.0 tests=AWL,BAYES_10,PGP_SIGNATURE_2,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test7 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 00:30:19 -0000 X-UID: 9052 Status: O Content-Length: 1830 --Apple-Mail-13-614706088 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed http://dovecot.org/test/ Lots of bugfixes related to syncing. There's still some left. Somewhat working mbox support: - combined syncing/rewriting uses much less disk I/O than with older mbox code - expunges aren't working yet - last-uid field in X-IMAPbase header isn't updated - it's currently syncing the whole mbox constantly even if it hasn't changed - it isn't hiding the mbox-specific headers from IMAP clients - if mbox hasn't changed, rewriting could start from the message which requires rewriting instead of syncing the whole mbox - syncing could keep the lock file extra two seconds to make sure if someone changes it the file's mtime changes -> as long as only Dovecot is modifying it, we'll never need to sync the whole mbox -> multi-gigabyte mboxes are still fast! One nice thing about this mbox code is that it isn't exactly mbox-specific. Some people are still using formats which use eg. ^A as separator rather than From-line. Some people are using SMTP-formatted data directly ('.' as mail separator, '..' = normal line begins with '.'). These formats should be pretty easy to implement now as all mbox-specific code is in istream-raw-mbox.c file. I'll probably do that once mbox itself is fully working. --Apple-Mail-13-614706088 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAnst8yUhSUUBViskRArDpAKCFvalKgIDmsDWuiAm/eUe7cs7dCACfbEQG MelHWqdNL9ObW/IsNxWF62k= =NLuc -----END PGP SIGNATURE----- --Apple-Mail-13-614706088-- From tss@iki.fi Mon May 10 05:18:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F066CC002801; Mon, 10 May 2004 05:18:18 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 1D14DC000D8E for ; Mon, 10 May 2004 05:18:17 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 82A161C2D5C0; Mon, 10 May 2004 05:12:00 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8A20B1C2D5B6 for ; Mon, 10 May 2004 05:11:25 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: <41F53666-A216-11D8-AEE1-000393CC2E90@iki.fi> References: <409A75C3.50102@the-magi.us> <1084010927.25654.2.camel@hurina> <33317.217.255.193.2.1084052281.squirrel@217.255.193.2> <41F53666-A216-11D8-AEE1-000393CC2E90@iki.fi> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-17-621185484" Message-Id: <563F44EA-A227-11D8-AEE1-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] SSL Client Certificate Support Date: Mon, 10 May 2004 05:11:24 +0300 To: Dovecot mailing list X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.6 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 02:18:19 -0000 X-UID: 9053 Status: O --Apple-Mail-17-621185484 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 10.5.2004, at 03:09, Timo Sirainen wrote: > I've been thinking about doing this lately as well. Shouldn't really > be much of a job. Just tell OpenSSL library to require a valid client > certificate. Optionally also force the cert's common name to be > client's login name. Current CVS version has ssl_verify_client_cert option. It doesn't do anything else - if client doesn't send valid certificate the SSL handshake fails. --Apple-Mail-17-621185484 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAnuTMyUhSUUBViskRArTiAJ9XuiuRj2ZR/2gmkrEILreG/8pNYQCfQBvI BtLdTKTfoiET1kAorabKTdY= =3AjM -----END PGP SIGNATURE----- --Apple-Mail-17-621185484-- From benjamin@weiss.name Mon May 10 16:34:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C544CC002801; Mon, 10 May 2004 16:34:27 +0300 (EEST) Received: from lakermmtao04.cox.net (lakermmtao04.cox.net [68.230.240.35]) by talvi.dovecot.org (Postfix) with ESMTP id 25FF7C000D8E for ; Mon, 10 May 2004 16:34:25 +0300 (EEST) Received: from mail.birdvet.org ([68.97.130.220]) by lakermmtao04.cox.net (InterMail vM.6.01.03.02 201-2131-111-104-20040324) with ESMTP id <20040510132806.VQNM19546.lakermmtao04.cox.net@mail.birdvet.org> for ; Mon, 10 May 2004 09:28:06 -0400 Received: from osbi03981 (unknown [204.87.126.161]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.birdvet.org (Postfix) with ESMTP id D39B71B584 for ; Mon, 10 May 2004 08:27:59 -0500 (CDT) Message-ID: <004001c43692$a085b9a0$7f790180@osbi039812> From: "Benjamin J. Weiss" To: "Dovecot mailing list" Date: Mon, 10 May 2004 08:28:04 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-birdvet.org-MailScanner-Information: Please contact the ISP for more information X-birdvet.org-MailScanner: Found to be clean X-birdvet.org-MailScanner-SpamCheck: Subject: [Dovecot] Is Dovecot ready for production use? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 13:34:27 -0000 X-UID: 9054 Status: O Hi! I'm currently running RH 9 with postfix, uw-imap and MailScanner. I want to install Fedora Core 2 (when it comes out next week) with postfix, dovecot and amavisd. I'm unhappy with the problems I'm having with MailScanner, with the difficulty I've had with authentication as I am currently configured, and want to move to Maildir instead of mbox. That being said, is dovecot stable enough yet for production use? I only have four users on my home linux box, but I personally get around 500 emails a day (that fedora list is *busy*). Thanks, Ben From benjamin@weiss.name Mon May 10 16:54:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2AD79C002801; Mon, 10 May 2004 16:54:05 +0300 (EEST) Received: from lakermmtao11.cox.net (lakermmtao11.cox.net [68.230.240.28]) by talvi.dovecot.org (Postfix) with ESMTP id C8B63C000D8E for ; Mon, 10 May 2004 16:54:02 +0300 (EEST) Received: from mail.birdvet.org ([68.97.130.220]) by lakermmtao11.cox.net (InterMail vM.6.01.03.02 201-2131-111-104-20040324) with ESMTP id <20040510134744.WUMF18803.lakermmtao11.cox.net@mail.birdvet.org> for ; Mon, 10 May 2004 09:47:44 -0400 Received: from osbi03981 (unknown [204.87.126.161]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.birdvet.org (Postfix) with ESMTP id D39B71B584 for ; Mon, 10 May 2004 08:27:59 -0500 (CDT) Message-ID: <004001c43692$a085b9a0$7f790180@osbi03981> From: "Benjamin J. Weiss" To: "Dovecot mailing list" Date: Mon, 10 May 2004 08:28:04 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-birdvet.org-MailScanner-Information: Please contact the ISP for more information X-birdvet.org-MailScanner: Found to be clean X-birdvet.org-MailScanner-SpamCheck: Subject: [Dovecot] Is Dovecot ready for production use? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 13:54:05 -0000 X-UID: 9055 Status: O Hi! I'm currently running RH 9 with postfix, uw-imap and MailScanner. I want to install Fedora Core 2 (when it comes out next week) with postfix, dovecot and amavisd. I'm unhappy with the problems I'm having with MailScanner, with the difficulty I've had with authentication as I am currently configured, and want to move to Maildir instead of mbox. That being said, is dovecot stable enough yet for production use? I only have four users on my home linux box, but I personally get around 500 emails a day (that fedora list is *busy*). Thanks, Ben From higels@cs.tcd.ie Mon May 10 17:03:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9EAB7C002801; Mon, 10 May 2004 17:03:23 +0300 (EEST) Received: from imx2.tcd.ie (imx2.tcd.ie [134.226.1.156]) by talvi.dovecot.org (Postfix) with ESMTP id 91747C000D8E for ; Mon, 10 May 2004 17:03:21 +0300 (EEST) Received: from imx2.tcd.ie (imx2.tcd.ie [134.226.1.156]) by imx2.tcd.ie (Postfix) with ESMTP id 2D81C314C1; Mon, 10 May 2004 14:57:03 +0100 (IST) Received: from imx2.tcd.ie by localhost.localdomain (VaMailArmor-2.0.1.16) id 17974-4F54C74B; Mon, 10 May 2004 14:57:01 +0100 Received: from vimes.cs.tcd.ie (vimes.cs.tcd.ie [134.226.42.35]) by imx2.tcd.ie (Postfix) with ESMTP id 0670A314BD; Mon, 10 May 2004 14:57:01 +0100 (IST) Received: from higels by vimes.cs.tcd.ie with local (Exim 3.36 #1 (Debian)) id 1BNBHA-0004jl-00; Mon, 10 May 2004 14:57:00 +0100 Date: Mon, 10 May 2004 14:56:58 +0100 From: Steffen Higel To: "Benjamin J. Weiss" Subject: Re: [Dovecot] Is Dovecot ready for production use? Message-ID: <20040510135652.GG17496@vimes> References: <004001c43692$a085b9a0$7f790180@osbi03981> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <004001c43692$a085b9a0$7f790180@osbi03981> User-Agent: Mutt/1.5.6i Sender: Steffen Higel X-AntiVirus: checked by Vexira MailArmor (version: 2.0.1.16; VAE: 6.25.0.3; VDF: 6.25.0.55; host: imx2.tcd.ie) Cc: Dovecot mailing list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 14:03:23 -0000 X-UID: 9056 Status: O Content-Length: 1031 Benjamin J. Weiss wrote: > That being said, is dovecot stable enough yet for production use? I only > have four users on my home linux box, but I personally get around 500 emails > a day (that fedora list is *busy*). I use it in two such environments, one in an office with 10 users, most of whom are connected from inside the office itself for the whole day. It easily passes 500 mails across the network in 24 hours. The other is in a larger organisation with maybe 20 or 30 people connected at a time through various webmail clients. In both cases, it has behaved perfectly. It was also trivial to set up, particularly when contrasted with uw-imapd or courier. I'm using Jaldhar's Debian backports. And very nice they are too :-) regards, Steffen -- Steffen Higel Knowledge and Data Engineering Group, | e: Steffen.Higel@cs.tcd.ie Department of Computer Science, | w: http://netsoc.tcd.ie/~higels Trinity College Dublin | t: +353 (1) 6082361 pgp: http://www.cs.tcd.ie/Steffen.Higel/higels.txt From rjohnson@medata.com Mon May 10 20:45:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5A461C000D8E; Mon, 10 May 2004 20:45:19 +0300 (EEST) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id 1E52FC002801 for ; Mon, 10 May 2004 20:45:16 +0300 (EEST) Received: from [172.24.2.12] (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i4AHctlO017875 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 10 May 2004 10:38:55 -0700 Message-ID: <409FBE30.9030300@medata.com> Date: Mon, 10 May 2004 10:38:56 -0700 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.6 (X11/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot mailing list Subject: Re: [Dovecot] Is Dovecot ready for production use? References: <004001c43692$a085b9a0$7f790180@osbi03981> In-Reply-To: <004001c43692$a085b9a0$7f790180@osbi03981> X-Enigmail-Version: 0.83.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.70, clamav-milter version 0.70j X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 17:45:19 -0000 X-UID: 9057 Status: O Content-Length: 1293 Benjamin J. Weiss wrote: > Hi! > > I'm currently running RH 9 with postfix, uw-imap and MailScanner. I want to > install Fedora Core 2 (when it comes out next week) with postfix, dovecot > and amavisd. I'm unhappy with the problems I'm having with MailScanner, > with the difficulty I've had with authentication as I am currently > configured, and want to move to Maildir instead of mbox. > > That being said, is dovecot stable enough yet for production use? I only > have four users on my home linux box, but I personally get around 500 emails > a day (that fedora list is *busy*). I've "backported" the latest Red Hat development packages of Dovecot to Red Hat 9 (simply rebuilt the RPM), and have 150+ users using it. My server runs Sendmail (milter plugins require it for now), Dovecot (using Maildir), SpamAssassin (via procmail), ClamAV (via milter), and Anomy Sanitizer (via procmail). There are a couple of customflags annoyances between Mozilla based mail clients and Dovecot running Maildir, however it has otherwise proven quite stable in my enivronment. We process about 5-6000 mails per day. HTH, -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From alsbergt@cs.huji.ac.il Mon May 10 21:17:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B447FC002801; Mon, 10 May 2004 21:17:05 +0300 (EEST) Received: from cs1.cs.huji.ac.il (cs1.cs.huji.ac.il [132.65.16.10]) by talvi.dovecot.org (Postfix) with ESMTP id A5A72C000D8E for ; Mon, 10 May 2004 21:17:03 +0300 (EEST) Received: from dev.cs.huji.ac.il ([132.65.16.100] ident=exim) by cs1.cs.huji.ac.il with esmtp id 1BNFEj-000HmC-4v; Mon, 10 May 2004 21:10:45 +0300 Received: from alsbergt by dev.cs.huji.ac.il with local (Exim 4.12) id 1BNFEj-000E9t-00; Mon, 10 May 2004 21:10:45 +0300 Date: Mon, 10 May 2004 21:10:45 +0300 From: Tom Alsberg To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test7 Message-ID: <20040510181044.GA54367@cs.huji.ac.il> References: <403A0B7F-A218-11D8-AEE1-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <403A0B7F-A218-11D8-AEE1-000393CC2E90@iki.fi> X-Face: "5"j@Y1Peoz1; ftTv>\|['ox-csmV+:_RDNdi/2lSe2x?0:HVAeVW~ajwQ7RfDlcb^18eJ; t,O,s5-aNdU/DJ2E8h1s,..4}N9$27u`pWmH|; s!zlqqVwr9R^_ji=1\3}Z6gQBYyQ]{gd5-V8s^fYf{$V2*_&S>eA|SH@Y\hOVUjd[5eah{EO@gCr.ydSpJHJIU[QsH~bC?$C@O:SzF=CaUxp80-iknM(]q(W X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Tom Alsberg List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 18:17:05 -0000 X-UID: 9058 Status: O Content-Length: 1645 On Mon, May 10, 2004 at 03:23:24AM +0300, Timo Sirainen wrote: > > Somewhat working mbox support: - What about preserving the mbox "From " line? Please don't leave this out of the api for 1.0. > - combined syncing/rewriting uses much less disk I/O than with older > mbox code > - expunges aren't working yet > - last-uid field in X-IMAPbase header isn't updated > - it's currently syncing the whole mbox constantly even if it hasn't > changed > - it isn't hiding the mbox-specific headers from IMAP clients > - if mbox hasn't changed, rewriting could start from the message which > requires rewriting instead of syncing the whole mbox > - syncing could keep the lock file extra two seconds to make sure if > someone changes it the file's mtime changes -> as long as only Dovecot > is modifying it, we'll never need to sync the whole mbox -> > multi-gigabyte mboxes are still fast! > > One nice thing about this mbox code is that it isn't exactly > mbox-specific. Some people are still using formats which use eg. ^A as > separator rather than From-line. Some people are using SMTP-formatted > data directly ('.' as mail separator, '..' = normal line begins with > '.'). These formats should be pretty easy to implement now as all > mbox-specific code is in istream-raw-mbox.c file. I'll probably do that > once mbox itself is fully working. -- Tom -- Tom Alsberg - hacker (being the best description fitting this space) Web page: http://www.cs.huji.ac.il/~alsbergt/ DISCLAIMER: The above message does not even necessarily represent what my fingers have typed on the keyboard, save anything further. From benjamin@weiss.name Mon May 10 21:30:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 08494C002801; Mon, 10 May 2004 21:30:05 +0300 (EEST) Received: from lakermmtao09.cox.net (lakermmtao09.cox.net [68.230.240.30]) by talvi.dovecot.org (Postfix) with ESMTP id 3E3EBC000D8E for ; Mon, 10 May 2004 21:30:02 +0300 (EEST) Received: from mail.birdvet.org ([68.97.130.220]) by lakermmtao09.cox.net (InterMail vM.6.01.03.02 201-2131-111-104-20040324) with ESMTP id <20040510182343.TEPB5659.lakermmtao09.cox.net@mail.birdvet.org>; Mon, 10 May 2004 14:23:43 -0400 Received: from osbi03981 (unknown [204.87.126.161]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.birdvet.org (Postfix) with ESMTP id 30DB61B584; Mon, 10 May 2004 13:23:38 -0500 (CDT) Message-ID: <003c01c436bb$ed4060a0$7f790180@osbi03981> From: "Benjamin J. Weiss" To: "Rick Johnson" , "Dovecot mailing list" References: <004001c43692$a085b9a0$7f790180@osbi03981> <409FBE30.9030300@medata.com> Subject: Re: [Dovecot] Is Dovecot ready for production use? Date: Mon, 10 May 2004 13:23:43 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-birdvet.org-MailScanner-Information: Please contact the ISP for more information X-birdvet.org-MailScanner: Found to be clean X-birdvet.org-MailScanner-SpamCheck: Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 18:30:05 -0000 X-UID: 9059 Status: O Content-Length: 1508 From: "Rick Johnson" > Benjamin J. Weiss wrote: > > Hi! > > > > I'm currently running RH 9 with postfix, uw-imap and MailScanner. I want to > > install Fedora Core 2 (when it comes out next week) with postfix, dovecot > > and amavisd. I'm unhappy with the problems I'm having with MailScanner, > > with the difficulty I've had with authentication as I am currently > > configured, and want to move to Maildir instead of mbox. > > > > That being said, is dovecot stable enough yet for production use? I only > > have four users on my home linux box, but I personally get around 500 emails > > a day (that fedora list is *busy*). > > I've "backported" the latest Red Hat development packages of Dovecot to > Red Hat 9 (simply rebuilt the RPM), and have 150+ users using it. My > server runs Sendmail (milter plugins require it for now), Dovecot (using > Maildir), SpamAssassin (via procmail), ClamAV (via milter), and Anomy > Sanitizer (via procmail). There are a couple of customflags annoyances > between Mozilla based mail clients and Dovecot running Maildir, however > it has otherwise proven quite stable in my enivronment. We process about > 5-6000 mails per day. Thanks, but I received an email pointing out an SSL problem with Fedora and dovecot: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115284 and I do *all* connections to my server in an encrypted mode, even imaps. If dovecot is going to crash on an hourly basis, I may have to stick with uw and mbox. :( From rjohnson@medata.com Mon May 10 21:42:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1AA55C002807; Mon, 10 May 2004 21:42:13 +0300 (EEST) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id 4AF2EC002806 for ; Mon, 10 May 2004 21:42:10 +0300 (EEST) Received: from [172.24.2.12] (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i4AIZnlO031508 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 10 May 2004 11:35:49 -0700 Message-ID: <409FCB87.2050500@medata.com> Date: Mon, 10 May 2004 11:35:51 -0700 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.6 (X11/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot mailing list Subject: Re: [Dovecot] Is Dovecot ready for production use? References: <004001c43692$a085b9a0$7f790180@osbi03981> <409FBE30.9030300@medata.com> <003c01c436bb$ed4060a0$7f790180@osbi03981> In-Reply-To: <003c01c436bb$ed4060a0$7f790180@osbi03981> X-Enigmail-Version: 0.83.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.70, clamav-milter version 0.70j X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 18:42:13 -0000 X-UID: 9060 Status: O Content-Length: 1087 Benjamin J. Weiss wrote: > > Thanks, but I received an email pointing out an SSL problem with Fedora and > dovecot: > > https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115284 > > > and I do *all* connections to my server in an encrypted mode, even imaps. > > If dovecot is going to crash on an hourly basis, I may have to stick with uw > and mbox. :( > I have yet to experience this problem with the 0.99.10.4 version from the Devel tree. We do 95% of our connections via SSL as well (OpenSSL), and I run Fedora Core 1 at home for a personal server configured in the same fashion. Note I am using a dovecot package from the devel tree. That version is: dovecot-0.99.10.4-3. The package that was reported was dovecot-0.99.10-6, which is the "stock" fedora package. We had problems with that version too, which is why I stepped up. So far, we've avoided any crashes as a result of the update. Rgds, -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From tss@iki.fi Mon May 10 21:42:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E1900C002807; Mon, 10 May 2004 21:42:54 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 237F0C002809 for ; Mon, 10 May 2004 21:42:49 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id CEB39300DFC12; Mon, 10 May 2004 21:36:30 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test7 From: Timo Sirainen To: Tom Alsberg In-Reply-To: <20040510181044.GA54367@cs.huji.ac.il> References: <403A0B7F-A218-11D8-AEE1-000393CC2E90@iki.fi> <20040510181044.GA54367@cs.huji.ac.il> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-WKCuXo9sVzFqUtdGIpjG" Message-Id: <1084214190.3027.72.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 10 May 2004 21:36:30 +0300 Cc: Dovecot mailing list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 18:42:55 -0000 X-UID: 9061 Status: O --=-WKCuXo9sVzFqUtdGIpjG Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-10 at 21:10, Tom Alsberg wrote: > On Mon, May 10, 2004 at 03:23:24AM +0300, Timo Sirainen wrote: > > > > Somewhat working mbox support: >=20 > - What about preserving the mbox "From " line? Please don't leave > this out of the api for 1.0. It's there. --=-WKCuXo9sVzFqUtdGIpjG Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAn8uuyUhSUUBViskRAg5AAJsHnb+Gz3I+8vz0OY2Zq2nYp+Y1twCfUSts E/2PahRv0TjuWhtKgG9JOaI= =qL/M -----END PGP SIGNATURE----- --=-WKCuXo9sVzFqUtdGIpjG-- From tss@iki.fi Mon May 10 22:24:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8C2E3C002808; Mon, 10 May 2004 22:24:11 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 74E74C000D8E for ; Mon, 10 May 2004 22:24:09 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 18559302363BE for ; Mon, 10 May 2004 22:17:51 +0300 (EEST) From: Timo Sirainen To: Dovecot mailing list In-Reply-To: <003c01c436bb$ed4060a0$7f790180@osbi03981> References: <004001c43692$a085b9a0$7f790180@osbi03981> <409FBE30.9030300@medata.com> <003c01c436bb$ed4060a0$7f790180@osbi03981> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-XqbVc02g/ziwj4+nDD+P" Message-Id: <1084216670.3026.94.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 10 May 2004 22:17:51 +0300 Subject: [Dovecot] Dovecot, Fedora, SSL X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 19:24:11 -0000 X-UID: 9062 Status: O Content-Length: 1897 --=-XqbVc02g/ziwj4+nDD+P Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-10 at 21:23, Benjamin J. Weiss wrote: > Thanks, but I received an email pointing out an SSL problem with Fedora a= nd > dovecot: >=20 > https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=3D115284 Well, I finally looked at what Fedora's OpenSSL package looks like. It has at least this patch which doesn't work if Dovecot is chrooted. I'm not really sure when ICA is really called though. Actually there's a bug in that patch, if open() fails rfd =3D -1. The check should be if (rfd =3D=3D -1), not if (rfd).. Maybe it would work with that fix? Anyone want to try? --- openssl-0.9.7a/libica-1.3.5/src/prand.c.urandom 2003-07-10 16:09:35.000= 000000 -0400 +++ openssl-0.9.7a/libica-1.3.5/src/prand.c 2003-10-24 01:59:53.000000000 -= 0400 @@ -421,11 +421,26 @@ */ =20 =20 + /* + ** Change 10/24/03 PK: Use /dev/urandom instead. + */ static unsigned char get_byte(u_int32 *array5, int current_byte) { - u_int32 val; + static int rfd =3D 0; /* File descriptor to /dev/urandom */ + unsigned char retval; + + if (!rfd) { + rfd =3D open("/dev/urandom", O_RDONLY); + } + + /* If we have a valid fd for /dev/urandom then use it */ + if (rfd) { + read(rfd, &retval, 1); + return retval; + } =20 + /* Otherwise use the old pseudo random number generator */ val =3D *(array5 + current_byte/4); =20 current_byte %=3D 4; --=-XqbVc02g/ziwj4+nDD+P Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAn9VeyUhSUUBViskRAkLkAJ4x1riCqbTTMycN32nivEPh+lu1DwCfWwRH WOUfTHjatuOgBdGuN/SuEo0= =78h8 -----END PGP SIGNATURE----- --=-XqbVc02g/ziwj4+nDD+P-- From tss@iki.fi Mon May 10 22:43:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 90BD1C002809; Mon, 10 May 2004 22:43:07 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id A4B82C002808 for ; Mon, 10 May 2004 22:43:05 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 0540C302363BE for ; Mon, 10 May 2004 22:36:47 +0300 (EEST) Subject: Re: [Dovecot] Dovecot, Fedora, SSL From: Timo Sirainen To: Dovecot mailing list In-Reply-To: <1084216670.3026.94.camel@hurina> References: <004001c43692$a085b9a0$7f790180@osbi03981> <409FBE30.9030300@medata.com> <003c01c436bb$ed4060a0$7f790180@osbi03981> <1084216670.3026.94.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-nYxqkiZL871ROFgUsHuZ" Message-Id: <1084217806.3034.97.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 10 May 2004 22:36:46 +0300 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 19:43:07 -0000 X-UID: 9063 Status: O --=-nYxqkiZL871ROFgUsHuZ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-10 at 22:17, Timo Sirainen wrote: > Well, I finally looked at what Fedora's OpenSSL package looks like. It > has at least this patch which doesn't work if Dovecot is chrooted. I'm > not really sure when ICA is really called though. I guess it's only when using some IBM crypto hardware. Also that patch couldn't be the cause of the real problem. Oh well, wondering some more. (btw. I filed this as openssl bug in rh bugzilla) --=-nYxqkiZL871ROFgUsHuZ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAn9nOyUhSUUBViskRAoNNAJ9d8TonfJibr54W93Gd89Pvay9SwgCbB/0D t7rcGyk8rng+/SdyIpeq1m8= =29mE -----END PGP SIGNATURE----- --=-nYxqkiZL871ROFgUsHuZ-- From tss@iki.fi Mon May 10 23:04:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DB651C002809; Mon, 10 May 2004 23:04:42 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id D7C30C002808 for ; Mon, 10 May 2004 23:04:40 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 6AD4F302363BE for ; Mon, 10 May 2004 22:58:22 +0300 (EEST) Subject: Re: [Dovecot] Dovecot, Fedora, SSL From: Timo Sirainen To: Dovecot mailing list In-Reply-To: <1084217806.3034.97.camel@hurina> References: <004001c43692$a085b9a0$7f790180@osbi03981> <409FBE30.9030300@medata.com> <003c01c436bb$ed4060a0$7f790180@osbi03981> <1084216670.3026.94.camel@hurina> <1084217806.3034.97.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-MWwF4Hc23d/r7iR7mQx7" Message-Id: <1084219102.3028.100.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 10 May 2004 22:58:22 +0300 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 20:04:43 -0000 X-UID: 9064 Status: O Content-Length: 1230 --=-MWwF4Hc23d/r7iR7mQx7 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable With a little bit of thinking, maybe it's this simple to fix: diff -u -r1.21 ssl-proxy-openssl.c --- src/login-common/ssl-proxy-openssl.c 10 May 2004 02:15:16 -0000 1.21 +++ src/login-common/ssl-proxy-openssl.c 10 May 2004 20:03:26 -0000 @@ -460,9 +460,10 @@ } =20 /* PRNG initialization might want to use /dev/urandom, make sure it - does it before chrooting. */ - if (RAND_bytes(&buf, 1) !=3D 1) - i_fatal("RAND_bytes() failed: %s\n", ssl_last_error()); + does it before chrooting. We might not have enough entropy at + the first try, so this function may fail. It's still been + initialized though. */ + (void)RAND_bytes(&buf, 1); =20 ssl_proxies =3D hash_create(default_pool, default_pool, 0, NULL, N= ULL); ssl_initialized =3D TRUE; --=-MWwF4Hc23d/r7iR7mQx7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAn97eyUhSUUBViskRAuncAKCi2CyrrsePWxDN/r5v9YZcNjhyZACfc1UD FQQIQFK8D3zm1WDpf2jHklI= =Nvec -----END PGP SIGNATURE----- --=-MWwF4Hc23d/r7iR7mQx7-- From skye@f4.ca Mon May 10 23:44:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A68B2C00280B; Mon, 10 May 2004 23:44:55 +0300 (EEST) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id 9882EC002809 for ; Mon, 10 May 2004 23:44:53 +0300 (EEST) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1BNHXl-000IvZ-00 for dovecot@dovecot.org; Mon, 10 May 2004 13:38:33 -0700 Date: Mon, 10 May 2004 13:38:33 -0700 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test7 Message-ID: <20040510203833.GD55473@f4.ca> References: <403A0B7F-A218-11D8-AEE1-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <403A0B7F-A218-11D8-AEE1-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.2.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 20:44:55 -0000 X-UID: 9065 Status: O Will the MySQL patch be integrated in to 1.0-release? Sorry if this has already been covered. Thanks, Skye -- | www.f4.ca | F4 internet | quality web hosting $10/month | From tss@iki.fi Tue May 11 00:46:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 70CBCC00280C; Tue, 11 May 2004 00:46:44 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 8D749C00280B for ; Tue, 11 May 2004 00:46:42 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id C263030086FB1; Tue, 11 May 2004 00:40:23 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test7 From: Timo Sirainen To: Skye Poier In-Reply-To: <20040510203833.GD55473@f4.ca> References: <403A0B7F-A218-11D8-AEE1-000393CC2E90@iki.fi> <20040510203833.GD55473@f4.ca> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-uPdfntoRKJezZj6/ELcD" Message-Id: <1084225223.3034.102.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 11 May 2004 00:40:23 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2004 21:46:44 -0000 X-UID: 9066 Status: O --=-uPdfntoRKJezZj6/ELcD Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-10 at 23:38, Skye Poier wrote: > Will the MySQL patch be integrated in to 1.0-release? > Sorry if this has already been covered. It's in 1.0-test8. --=-uPdfntoRKJezZj6/ELcD Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAn/bHyUhSUUBViskRArgRAJ9qT1XD1404kJ2pCjmLyMlymhNIUACfUPkQ czbooNRW8K3vNyhWlStVqyE= =DawO -----END PGP SIGNATURE----- --=-uPdfntoRKJezZj6/ELcD-- From anielsen@diku.dk Tue May 11 12:58:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5E3A2C002801; Tue, 11 May 2004 12:58:06 +0300 (EEST) Received: from fitch1.uni2.net (fitch1.uni2.net [130.227.52.104]) by talvi.dovecot.org (Postfix) with ESMTP id 03709C000D8E for ; Tue, 11 May 2004 12:58:04 +0300 (EEST) Received: from anders.intranet ([130.227.149.6]) by fitch1.uni2.net (8.12.6/8.11.6) with ESMTP id i4B9phuG032523; Tue, 11 May 2004 11:51:43 +0200 Subject: Re: [Dovecot] Is Dovecot ready for production use? From: Anders Nielsen To: Rick Johnson In-Reply-To: <409FCB87.2050500@medata.com> References: <004001c43692$a085b9a0$7f790180@osbi03981> <409FBE30.9030300@medata.com> <003c01c436bb$ed4060a0$7f790180@osbi03981> <409FCB87.2050500@medata.com> Content-Type: text/plain Message-Id: <1084269102.14589.13.camel@anders.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Tue, 11 May 2004 11:51:43 +0200 Content-Transfer-Encoding: 7bit Cc: Dovecot mailing list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2004 09:58:06 -0000 X-UID: 9067 Status: O Content-Length: 1310 On Mon, 2004-05-10 at 20:35, Rick Johnson wrote: > Benjamin J. Weiss wrote: > > > > Thanks, but I received an email pointing out an SSL problem with Fedora and > > dovecot: > > > > https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115284 > > > > > > and I do *all* connections to my server in an encrypted mode, even imaps. > > > > If dovecot is going to crash on an hourly basis, I may have to stick with uw > > and mbox. :( > > > > I have yet to experience this problem with the 0.99.10.4 version from > the Devel tree. We do 95% of our connections via SSL as well (OpenSSL), > and I run Fedora Core 1 at home for a personal server configured in the > same fashion. > > Note I am using a dovecot package from the devel tree. That version is: > dovecot-0.99.10.4-3. The package that was reported was > dovecot-0.99.10-6, which is the "stock" fedora package. We had problems > with that version too, which is why I stepped up. So far, we've avoided > any crashes as a result of the update. > It was me who pointed this problem out to Benjamin in a private email. I have rebuilded and installed the version of the package you mention. I will test it out to see if it fixes the problem. It does however look like Timo is still working on a fix tough. -- Anders Nielsen From maikel@ladot.com Tue May 11 13:15:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E5EB1C002807; Tue, 11 May 2004 13:15:51 +0300 (EEST) Received: from amsfep13-int.chello.nl (amsfep13-int.chello.nl [213.46.243.24]) by talvi.dovecot.org (Postfix) with ESMTP id C5976C002806 for ; Tue, 11 May 2004 13:15:49 +0300 (EEST) Received: from myst.dohd.org ([62.163.178.220]) by amsfep13-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040511100929.LCER11880.amsfep13-int.chello.nl@myst.dohd.org> for ; Tue, 11 May 2004 12:09:29 +0200 Received: from [10.0.3.6] (mactop-wi.myst.dohd.org [10.0.3.6]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i4BA9bRD083870 for ; Tue, 11 May 2004 12:09:38 +0200 (CEST) (envelope-from maikel@ladot.com) Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: 7bit Message-Id: <461D49AC-A333-11D8-90C3-000A95B3C1CA@ladot.com> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: dovecot@dovecot.org From: Maikel Verheijen Date: Tue, 11 May 2004 12:09:22 +0200 X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Subject: [Dovecot] nfs dotlock issues X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2004 10:15:52 -0000 X-UID: 9068 Status: O Hi List, While testing with dovecot-1.0-test8 on our platform, I get al lot of these: May 11 11:42:50 mf1 dovecot: imap(user@domain.tld): Our dotlock file /var/mail/mounted/d/do/domain.tld/user/Maildir/.INBOX/ dovecot.index.log.lock was modified (1084268570 vs 1084268875), assuming it wasn't overridden This is probably due to some time-issues on our platform, and the load the backend has. (our backends run in a live environment). Can the dotlock code get the timestamp of the file when the dotlock gets created in order to be able to keep the time in sync? Is there another way to prevent those seconds of time-difference? we run ntpd on both our frondends and our backends. Kind regards, Maikel Verheijen From anielsen@diku.dk Tue May 11 13:29:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4B6ECC002807; Tue, 11 May 2004 13:29:51 +0300 (EEST) Received: from fitch1.uni2.net (fitch1.uni2.net [130.227.52.104]) by talvi.dovecot.org (Postfix) with ESMTP id 66985C002806 for ; Tue, 11 May 2004 13:29:49 +0300 (EEST) Received: from anders.intranet ([130.227.149.6]) by fitch1.uni2.net (8.12.6/8.11.6) with ESMTP id i4BANSuG000091 for ; Tue, 11 May 2004 12:23:29 +0200 Subject: Re: [Dovecot] Is Dovecot ready for production use? From: Anders Nielsen To: Dovecot mailing list In-Reply-To: <1084269102.14589.13.camel@anders.intranet> References: <004001c43692$a085b9a0$7f790180@osbi03981> <409FBE30.9030300@medata.com> <003c01c436bb$ed4060a0$7f790180@osbi03981> <409FCB87.2050500@medata.com> <1084269102.14589.13.camel@anders.intranet> Content-Type: text/plain Message-Id: <1084271008.14589.16.camel@anders.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Tue, 11 May 2004 12:23:28 +0200 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2004 10:29:51 -0000 X-UID: 9069 Status: O On Tue, 2004-05-11 at 11:51, Anders Nielsen wrote: > It was me who pointed this problem out to Benjamin in a private email. > > I have rebuilded and installed the version of the package you mention. I > will test it out to see if it fixes the problem. It does however look > like Timo is still working on a fix tough. The problem is still there - 2 crashes in 1 hour of testing. -- Anders Nielsen From anielsen@jobindex.dk Tue May 11 15:09:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E8900C002807; Tue, 11 May 2004 15:09:23 +0300 (EEST) Received: from fitch1.uni2.net (fitch1.uni2.net [130.227.52.104]) by talvi.dovecot.org (Postfix) with ESMTP id 0CF34C002801 for ; Tue, 11 May 2004 15:09:22 +0300 (EEST) Received: from anders.intranet ([130.227.149.6]) by fitch1.uni2.net (8.12.6/8.11.6) with ESMTP id i4BC2pqU007611; Tue, 11 May 2004 14:02:51 +0200 Subject: Re: [Dovecot] Dovecot, Fedora, SSL From: Anders Nielsen To: Timo Sirainen In-Reply-To: <1084219102.3028.100.camel@hurina> References: <004001c43692$a085b9a0$7f790180@osbi03981> <409FBE30.9030300@medata.com> <003c01c436bb$ed4060a0$7f790180@osbi03981> <1084216670.3026.94.camel@hurina> <1084217806.3034.97.camel@hurina> <1084219102.3028.100.camel@hurina> Content-Type: text/plain Message-Id: <1084276970.14589.22.camel@anders.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Tue, 11 May 2004 14:02:51 +0200 Content-Transfer-Encoding: 7bit Cc: Dovecot mailing list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2004 12:09:24 -0000 X-UID: 9070 Status: O On Mon, 2004-05-10 at 21:58, Timo Sirainen wrote: > With a little bit of thinking, maybe it's this simple to fix: > > diff -u -r1.21 ssl-proxy-openssl.c I am testing the patch now... So far no crashes but it is still to early to conclude anything. I will get back with more info later. -- Anders Nielsen From cmaloney@umd.com.au Tue May 11 03:59:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EE41CC002801; Tue, 11 May 2004 03:59:05 +0300 (EEST) Received: from umd.com.au (unknown [203.43.92.77]) by talvi.dovecot.org (Postfix) with ESMTP id B0F0AC000D8E for ; Tue, 11 May 2004 03:59:02 +0300 (EEST) Received: from [192.168.1.9] (ws9.umd.com.au [192.168.1.9]) by umd.com.au (8.12.9/8.12.9) with ESMTP id i4B0qfHH017458 for ; Tue, 11 May 2004 11:52:41 +1100 (EST) Message-ID: <40A023D6.60800@umd.com.au> Date: Tue, 11 May 2004 10:52:38 +1000 From: Curtis Maloney User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Tue, 11 May 2004 15:29:15 +0300 Subject: [Dovecot] Problem building 1.0-test7 : missing header X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2004 00:59:06 -0000 X-UID: 9071 Status: O Greetings, I recently rolled out Dovecot in our small (<30 people) company, and have been mightily impressed by the quality, performance and ease of use. I was hoping to use the new versions soon, as I'd like to start using CRAM-MD5 (much more common in mail clients than DIGEST-MD5), but found the 0.99.11 versions too unstable. So, I tried to build last nights CVS snapshot (May 10th), only to have the make break at this point: make[3]: Entering directory `/home/src/dovecot-1.0-test7/src/lib-index' make[3]: *** No rule to make target `mail-index-util.h', needed by `mail-cache.o'. Stop. I know it's not much, but it's a start at giving back a little. Hope it helps. -- Curtis Maloney From maikel@ladot.com Tue May 11 15:36:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 540F5C002809; Tue, 11 May 2004 15:36:48 +0300 (EEST) Received: from amsfep15-int.chello.nl (amsfep15-int.chello.nl [213.46.243.28]) by talvi.dovecot.org (Postfix) with ESMTP id 47F86C002807 for ; Tue, 11 May 2004 15:36:46 +0300 (EEST) Received: from myst.dohd.org ([62.163.178.220]) by amsfep15-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040511123025.QDWP25649.amsfep15-int.chello.nl@myst.dohd.org> for ; Tue, 11 May 2004 14:30:25 +0200 Received: from [10.0.3.6] (mactop-wi.myst.dohd.org [10.0.3.6]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i4BCUURD084626 for ; Tue, 11 May 2004 14:30:30 +0200 (CEST) (envelope-from maikel@ladot.com) Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: <40A023D6.60800@umd.com.au> References: <40A023D6.60800@umd.com.au> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] Problem building 1.0-test7 : missing header Date: Tue, 11 May 2004 14:30:11 +0200 To: dovecot@dovecot.org X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2004 12:36:48 -0000 X-UID: 9072 Status: O Hi Curtis, On May 11, 2004, at 2:52 AM, Curtis Maloney wrote: > Greetings, [snip] > make[3]: Entering directory `/home/src/dovecot-1.0-test7/src/lib-index' > make[3]: *** No rule to make target `mail-index-util.h', needed by > `mail-cache.o'. Stop. You can also download dovecot-1.0-test8 from http://dovecot.org/test/ test8 compiled fine here (redhat 7.3) > Curtis Maloney Kind regards, Maikel Verheijen From jan@weitan.org Tue May 11 19:20:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E02C6C002801; Tue, 11 May 2004 19:20:51 +0300 (EEST) Received: from weitan.org (unknown [80.190.204.99]) by talvi.dovecot.org (Postfix) with ESMTP id EEEA5C000D8E for ; Tue, 11 May 2004 19:20:49 +0300 (EEST) Received: from weitan.org (localhost [127.0.0.1]) by weitan.org (Postfix) with ESMTP id B20AB7D423; Tue, 11 May 2004 16:13:25 +0000 (UTC) Received: from 217.255.192.157 (SquirrelMail authenticated user jan); by weitan.org with HTTP; Tue, 11 May 2004 16:13:25 -0000 (UTC) Message-ID: <32794.217.255.192.157.1084292005.squirrel@217.255.192.157> In-Reply-To: References: <40A023D6.60800@umd.com.au> Date: Tue, 11 May 2004 16:13:25 -0000 (UTC) From: jan@weitan.org To: "Maikel Verheijen" User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Cc: dovecot@dovecot.org Subject: [Dovecot] CVS undefined references... X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2004 16:20:52 -0000 X-UID: 9073 Status: O Content-Length: 1755 > Hi Curtis, > > On May 11, 2004, at 2:52 AM, Curtis Maloney wrote: > >> Greetings, > > [snip] > >> make[3]: Entering directory `/home/src/dovecot-1.0-test7/src/lib-index' >> make[3]: *** No rule to make target `mail-index-util.h', needed by >> `mail-cache.o'. Stop. On Sunday the CVS compiled fine, now i get: gcc -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -o dovecot auth-process.o login-process.o mail-process.o main.o master-settings.o ssl-init.o ssl-init-gnutls.o ssl-init-openssl.o ../lib-settings/libsettings.a ../lib/liblib.a -lssl -lcrypto -ldl auth-process.o(.text+0x5f0): In function `create_auth_process': dovecot/src/master/auth-process.c:267: undefined reference to `log_create_pipe' login-process.o(.text+0xa76): In function `create_login_process': /home/jan/dovecot/src/master/login-process.c:447: undefined reference to `log_create_pipe' mail-process.o(.text+0x4c4): In function `create_mail_process': dovecot/src/master/mail-process.c:184: undefined reference to `log_create_pipe' main.o(.text+0x963): In function `main_init': dovecot/src/master/main.c:374: undefined reference to `log_init' main.o(.text+0xa26): In function `main_deinit': /home/jan/dovecot/src/master/main.c:404: undefined reference to `log_deinit' collect2: ld returned 1 exit status Code is always a changing thing and never finished. I must admit i haven´t tried the requested feature for certs yet or even looked at the source, but i´ll do it this week. My swedish version of Shrek surprisingly contains a finnish language track, i take this as a sign. @timo -> you should open your port 22 for my ip ;-) Sorry just making fun. Next time i´ll write something more serious. jan From P.Basenghi@netribe.it Tue May 11 20:00:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 03F6AC002801; Tue, 11 May 2004 20:00:19 +0300 (EEST) Received: from mail.paolob.fcr (unknown [217.220.196.131]) by talvi.dovecot.org (Postfix) with ESMTP id DDDE3C000D8E for ; Tue, 11 May 2004 20:00:16 +0300 (EEST) Received: from netribe.it (localhost.localdomain [127.0.0.1]) by mail.paolob.fcr (Postfix) with ESMTP id AE1F320D5AC for ; Tue, 11 May 2004 18:53:04 +0200 (CEST) Message-ID: <40A104F0.5050109@netribe.it> Date: Tue, 11 May 2004 18:53:04 +0200 From: Paolo Basenghi User-Agent: Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.4.1) Gecko/20031114 X-Accept-Language: it, en, en-us MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 8bit Subject: [Dovecot] LDAP + passwd X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2004 17:00:19 -0000 X-UID: 9074 Status: O Content-Length: 1096 Hello, I'm in the process to choose between Courier and Dovecot. I would like to know if it's possible to configure Dovecot in order to use multiple user database (e.g. ldap+passwd) in order to have both virtual user authenticated by LDAP and system user authenticated by system password and with their own home directory. Another question: at http://dovecot.org/doc/dovecot-example.conf there is a configuration example that seems not work with Dovecot 0.99.10.4 It result in a "Fatal: Error in configuration file /etc/dovecot.conf line 391: Missing value". Line 391 is: "auth default {" Thank you for attention. Best regards. -- ___________________________________________________________________ Ing. PAOLO BASENGHI :::: Systems & Networking Engineer p.basenghi@netribe.it ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ NETRIBE srl :: Collaborative E-Business 42100 :: Reggio Emilia :: Italy :: Via della Costituzione, 27/4 ph. +39 0522 232378 :: fax +39 0522 232386 :: http://www.netribe.it ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ From rjohnson@medata.com Tue May 11 20:15:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 15E2AC002801; Tue, 11 May 2004 20:15:09 +0300 (EEST) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id 92E3FC000D8E for ; Tue, 11 May 2004 20:15:06 +0300 (EEST) Received: from [172.24.2.12] (tech008 [172.24.2.12]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i4BH8glO029030 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 11 May 2004 10:08:42 -0700 Message-ID: <40A1089C.1000105@medata.com> Date: Tue, 11 May 2004 10:08:44 -0700 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.6 (X11/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Paolo Basenghi Subject: Re: [Dovecot] LDAP + passwd References: <40A104F0.5050109@netribe.it> In-Reply-To: <40A104F0.5050109@netribe.it> X-Enigmail-Version: 0.83.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.70, clamav-milter version 0.70j Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2004 17:15:09 -0000 X-UID: 9075 Status: O Paolo Basenghi wrote: > Hello, > I'm in the process to choose between Courier and Dovecot. > I would like to know if it's possible to configure Dovecot in order to > use multiple user database (e.g. ldap+passwd) in order to have both > virtual user authenticated by LDAP and system user authenticated by > system password and with their own home directory. Wouldn't this be possible with just using PAM, and letting it decide which to use? -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From jeff@image-src.com Wed May 12 00:30:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5A562C002801; Wed, 12 May 2004 00:30:39 +0300 (EEST) Received: from mailsrv.image-src.com (host-216-153-219-70.spr.choiceone.net [216.153.219.70]) by talvi.dovecot.org (Postfix) with ESMTP id EB27CC000D8E for ; Wed, 12 May 2004 00:30:36 +0300 (EEST) Received: from helipad (gateway.image-src.com [216.153.219.66]) by mailsrv.image-src.com (8.12.8/8.12.8) with ESMTP id i4BLgeFT024481 for ; Tue, 11 May 2004 17:42:40 -0400 From: "Jeff Graves" To: Date: Tue, 11 May 2004 17:23:49 -0400 Organization: Image Source, Inc. Message-ID: <002301c4379e$402985c0$3601a8c0@bellingham.imagesrc.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0024_01C4377C.B917E5C0" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4024 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Importance: Normal X-MailScanner: Found to be clean X-MailScanner-SpamCheck: Subject: [Dovecot] Case sensitive user names X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 May 2004 21:30:39 -0000 X-UID: 9076 Status: O Content-Length: 2770 This is a multi-part message in MIME format. ------=_NextPart_000_0024_01C4377C.B917E5C0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hello list. This is my first post and I hope that I have something useful for people. Using Fedora Core 1 with the stock dovecot-0.99.10 RPM I noticed that user names were case sensitive which was a problem for me since I was attempting to set up winbind authentication which meant that what dovecot thought the homedir was could change depending upon the case the user typed in. Sendmail/procmail always changed the username to lowercase so I needed a way to duplicate this behavior. At any rate, I searched the archives and found Andrew's post from March: http://www.dovecot.org/list/dovecot/2004-March/003067.html - using this as a jumping point and I finally have case insensitive user names (better yet, forced lower case usernames) working for plain-text authentication (eg. dovecot.conf: auth = plain, auth_userdb = passwd, auth_passdb = passwd). It has been tested only on the source RPM from Redhat FC1 and I'm not a C programmer so I have no idea if it will work with other authentication methods or newer versions of software. I've rebuilt the RPMs (source and i386) if anyone's interested and here's the patch for those not using RPMs (it's attached as well): diff -ru dovecot-0.99.10/src/auth/mech-plain.c dovecot-0.99.10.new/src/auth/mech-plain.c --- dovecot-0.99.10/src/auth/mech-plain.c 2003-05-18 08:26:28.000000000 -0400 +++ dovecot-0.99.10.new/src/auth/mech-plain.c 2004-05-11 16:58:30.000000000 -0400 @@ -57,6 +57,7 @@ authenid); } + auth_request->user = str_lcase(auth_request->user); if (!mech_is_valid_username(auth_request->user)) { /* invalid username */ if (verbose) { Thanks, Jeff Graves, MCP Customer Support Engineer Image Source, Inc. 10 Mill Street Bellingham, MA 02019 508.966.5200 - Phone 508.966.5170 - Fax jeff@image-src.com - Email ------=_NextPart_000_0024_01C4377C.B917E5C0 Content-Type: application/octet-stream; name="dovecot-0.99.10-auth-case.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="dovecot-0.99.10-auth-case.patch" diff -ru dovecot-0.99.10/src/auth/mech-plain.c = dovecot-0.99.10.new/src/auth/mech-plain.c=0A= --- dovecot-0.99.10/src/auth/mech-plain.c 2003-05-18 08:26:28.000000000 = -0400=0A= +++ dovecot-0.99.10.new/src/auth/mech-plain.c 2004-05-11 = 16:58:30.000000000 -0400=0A= @@ -57,6 +57,7 @@=0A= authenid);=0A= }=0A= =0A= + auth_request->user =3D str_lcase(auth_request->user);=0A= if (!mech_is_valid_username(auth_request->user)) {=0A= /* invalid username */=0A= if (verbose) {=0A= ------=_NextPart_000_0024_01C4377C.B917E5C0-- From cmaloney@cardgate.net Wed May 12 06:38:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F16F1C002806; Wed, 12 May 2004 06:38:05 +0300 (EEST) Received: from umd.com.au (unknown [203.43.92.77]) by talvi.dovecot.org (Postfix) with ESMTP id 67650C002801 for ; Wed, 12 May 2004 06:38:00 +0300 (EEST) Received: from [192.168.1.9] (ws9.umd.com.au [192.168.1.9]) by umd.com.au (8.12.9/8.12.9) with ESMTP id i4C3VYHH025011 for ; Wed, 12 May 2004 14:31:35 +1100 (EST) Message-ID: <40A19A95.1060507@cardgate.net> Date: Wed, 12 May 2004 13:31:33 +1000 From: Curtis Maloney User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Problem building 1.0-test7 : missing header References: <40A023D6.60800@umd.com.au> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 May 2004 03:38:06 -0000 X-UID: 9077 Status: O Maikel Verheijen wrote: > [snip] > >> make[3]: Entering directory `/home/src/dovecot-1.0-test7/src/lib-index' >> make[3]: *** No rule to make target `mail-index-util.h', needed by >> `mail-cache.o'. Stop. > > You can also download dovecot-1.0-test8 from http://dovecot.org/test/ > > test8 compiled fine here (redhat 7.3) Yes... I noticed that in the list, and found it on the site. Compiled and built happily (haven't run/tested yet...) on Solaris 9 with GCC 3.3.2... > >> Curtis Maloney > > Kind regards, > > Maikel Verheijen > From schrock@dayzed.com Wed May 12 08:20:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id ED332C002806; Wed, 12 May 2004 08:20:15 +0300 (EEST) Received: from mail.dayzed.com (24-176-252-149.cs-cres.charterpipeline.net [24.176.252.149]) by talvi.dovecot.org (Postfix) with ESMTP id EA7B8C002801 for ; Wed, 12 May 2004 08:20:13 +0300 (EEST) Received: from 192.168.50.2 (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with ESMTP id 761A2177FC for ; Tue, 11 May 2004 22:13:48 -0700 (PDT) Received: from mail2.dayzed2.com ([192.168.50.3]) (SquirrelMail authenticated user schrock); by new.host.name with HTTP; Tue, 11 May 2004 22:13:48 -0700 (PDT) Message-ID: <34898.192.168.50.3.1084338828.squirrel@192.168.50.3> Date: Tue, 11 May 2004 22:13:48 -0700 (PDT) From: "Avery" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] php.ini tweak X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 May 2004 05:20:16 -0000 X-UID: 9078 Status: O I noticed this is my /etc/php.ini file ---------------------------------------- ; This directive tells PHP whether to declare the argv&argc variables (that ; would contain the GET information). If you don't use these variables, you ; should turn it off for increased performance. register_argc_argv = on ---------------------------------------- I ma trying to squeeze some extra performance out of my email server. If I turn this to off will this cause any problems with SQmail or any of SQmail's plugins. I tried turned this setting to off and everything seems to work fine. I am surprised that no one has asked about this before in this mailing list. Thanks, Avery From P.Basenghi@netribe.it Wed May 12 14:32:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E8906C002807; Wed, 12 May 2004 14:32:43 +0300 (EEST) Received: from cerbero.reggionet.it (cerbero-e3.netribe.it [81.208.35.2]) by talvi.dovecot.org (Postfix) with ESMTP id CE298C002806 for ; Wed, 12 May 2004 14:32:41 +0300 (EEST) Received: from netribe.it (paolo.reggionet.it [172.16.255.10]) by cerbero.reggionet.it (8.12.9/8.12.5/Pav_Milter_1.2) with ESMTP id i4CBQEmb029292; Wed, 12 May 2004 13:26:14 +0200 Message-ID: <40A209E6.4030806@netribe.it> Date: Wed, 12 May 2004 13:26:30 +0200 From: Paolo Basenghi Organization: Netribe S.r.l. User-Agent: Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.6) Gecko/20040116 X-Accept-Language: it, en, en-us MIME-Version: 1.0 To: Rick Johnson Subject: Re: [Dovecot] LDAP + passwd References: <40A104F0.5050109@netribe.it> <40A1089C.1000105@medata.com> In-Reply-To: <40A1089C.1000105@medata.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 May 2004 11:32:44 -0000 X-UID: 9079 Status: O Content-Length: 1030 Thank you Rick. I'm going to learn Pam capabilities (man, howtos, etc.). Bye ___________________________________________________________________ Ing. PAOLO BASENGHI :::: Systems & Networking Engineer p.basenghi@netribe.it ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ NETRIBE srl :: Collaborative E-Business 42100 :: Reggio Emilia :: Italy :: Via della Costituzione, 27/4 ph. +39 0522 232378 :: fax +39 0522 232386 :: http://www.netribe.it ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Rick Johnson wrote: > Paolo Basenghi wrote: > >> Hello, >> I'm in the process to choose between Courier and Dovecot. >> I would like to know if it's possible to configure Dovecot in order >> to use multiple user database (e.g. ldap+passwd) in order to have >> both virtual user authenticated by LDAP and system user authenticated >> by system password and with their own home directory. > > > Wouldn't this be possible with just using PAM, and letting it decide > which to use? > > -Rick > From schrock@dayzed.com Wed May 12 17:47:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C67D2C002806; Wed, 12 May 2004 17:47:48 +0300 (EEST) Received: from mail.dayzed.com (24-176-252-149.cs-cres.charterpipeline.net [24.176.252.149]) by talvi.dovecot.org (Postfix) with ESMTP id 88E71C000D8E for ; Wed, 12 May 2004 17:47:46 +0300 (EEST) Received: from dayzed.com (localhost [127.0.0.1]) by mail.dayzed.com (Postfix) with ESMTP id 5909F177FC for ; Wed, 12 May 2004 07:41:19 -0700 (PDT) Received: from 66-224-116-226.atgi.net ([66.224.116.226]) (SquirrelMail authenticated user schrock); by new.host.name with HTTP; Wed, 12 May 2004 07:41:19 -0700 (PDT) Message-ID: <40262.66.224.116.226.1084372879.squirrel@66.224.116.226> In-Reply-To: <34898.192.168.50.3.1084338828.squirrel@192.168.50.3> References: <34898.192.168.50.3.1084338828.squirrel@192.168.50.3> Date: Wed, 12 May 2004 07:41:19 -0700 (PDT) Subject: Re: [Dovecot] php.ini tweak From: "Avery" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 May 2004 14:47:48 -0000 X-UID: 9080 Status: O Could I be any stupider. Wrong mailing list sorry. -- Avery From anielsen@diku.dk Wed May 12 18:48:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DB7B8C002809; Wed, 12 May 2004 18:48:37 +0300 (EEST) Received: from pfepc.post.tele.dk (pfepc.post.tele.dk [195.41.46.237]) by talvi.dovecot.org (Postfix) with ESMTP id DF4BDC002808 for ; Wed, 12 May 2004 18:48:35 +0300 (EEST) Received: from [192.168.0.101] (x1-6-00-60-97-10-da-d9.k191.webspeed.dk [80.163.27.36]) by pfepc.post.tele.dk (Postfix) with ESMTP id 94B5A2628D8; Wed, 12 May 2004 17:42:10 +0200 (CEST) Subject: Re: [Dovecot] Dovecot, Fedora, SSL From: Anders Nielsen To: Timo Sirainen In-Reply-To: <1084276970.14589.22.camel@anders.intranet> References: <004001c43692$a085b9a0$7f790180@osbi03981> <409FBE30.9030300@medata.com> <003c01c436bb$ed4060a0$7f790180@osbi03981> <1084216670.3026.94.camel@hurina> <1084217806.3034.97.camel@hurina> <1084219102.3028.100.camel@hurina> <1084276970.14589.22.camel@anders.intranet> Content-Type: text/plain Message-Id: <1084376529.11133.212.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Wed, 12 May 2004 17:42:10 +0200 Content-Transfer-Encoding: 7bit Cc: Dovecot mailing list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 May 2004 15:48:38 -0000 X-UID: 9081 Status: O On Tue, 2004-05-11 at 14:02, Anders Nielsen wrote: > On Mon, 2004-05-10 at 21:58, Timo Sirainen wrote: > > With a little bit of thinking, maybe it's this simple to fix: > > > > diff -u -r1.21 ssl-proxy-openssl.c > > I am testing the patch now... So far no crashes but it is still to early > to conclude anything. I will get back with more info later. No crashes after 30 hours :-) This is remarkable since we have seen between 2 and 14 crashes a day for at least 14 days. Since I put dovecot into production a month ago I have only seen one day with out crashes (a sunday where the server was almost idle). I would say that the patch have helped. Thank you Timo :-) -- Anders Nielsen From maikel@ladot.com Thu May 13 12:40:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1E0E1C002801; Thu, 13 May 2004 12:40:53 +0300 (EEST) Received: from amsfep16-int.chello.nl (amsfep16-int.chello.nl [213.46.243.26]) by talvi.dovecot.org (Postfix) with ESMTP id B0B5BC000D8E for ; Thu, 13 May 2004 12:40:50 +0300 (EEST) Received: from myst.dohd.org ([62.163.178.220]) by amsfep16-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040513093425.OFTC22010.amsfep16-int.chello.nl@myst.dohd.org> for ; Thu, 13 May 2004 11:34:25 +0200 Received: from [10.0.3.6] (mactop-wi.myst.dohd.org [10.0.3.6]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i4D9YZRD094176 for ; Thu, 13 May 2004 11:34:39 +0200 (CEST) (envelope-from maikel@ladot.com) Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: dovecot@dovecot.org From: Maikel Verheijen Date: Thu, 13 May 2004 11:34:17 +0200 X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Subject: [Dovecot] dovecot-1.0-test8 / nfs / maildir / flags issues X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2004 09:40:53 -0000 X-UID: 9082 Status: O Content-Length: 2892 Hi List, While (bluntly) testing the prerelease version of dovecot on our mailfarm (just for the webmail imap) we noticed some small problems: - While our OLD dovecot/imap drove the load to a maximum of 1 over a day after running, the new dovecot/imap pushes it easily to 20. This is mainly due to a LOT more disk activity. This is probably caused by the fact we a) use indexes on disk and b) there are no indexes left. I hope this will smooth out when most of the indexes are made. - We notice some very strange "delete" flag things in our IMP webmail system (working on a test environment to be more specific). The problem is that if you mark some messages "deleted", a lot of messages that do NOT have "deleted" flag are also in the deleted list. Since nothing changed on the webmail, it must be in the way dovecot responds different in the new version on certain requests. - In the dotlocking code, it seems that dovecot uses time() for it's internal locktime, and uses stat() to see if the file-time of the lock is different. Since we use nfs there might be a time-difference on the file creation and time() when our nfs gets "busy". This happens a lot when the indexes are created for multiple users at the same time resulting in a lot of: May 12 08:57:44 mf1 dovecot[3763]: imap(user@domain.tld): Our dotlock file /var/mail/mounted/d/do/domain.tld/user/Maildir/.INBOX/ dovecot.index.log.lock was modified (1084345063 vs 1084345062), assuming it wasn't overridden I am not completely sure if this interrupts imap traffic. I think this MIGHT be solved by storing a stat() time as the locktime instead of a time(), but this might be intentional. - I patched dovecot to report its pid in syslog messages, in order to find the "killed by signal X" where X are mostly 11 and 6 processes. The pids reported do not show up in the rest of the log file, so these may be "disconnected" sessions? It seems that the "old" version has the same problem, and nobody really complained it was broken, so this isn't a big issue. To clarify our setup: We use multiple mail-frontends running dovecot that are load-balanced by a cisco load-balancer. We mount our mailstores from an active-active backend cluster, both nodes export a big partition, and take over the job of the other in case of a problem. This seems to go pretty smooth. Our users are stored in a pgsql database. In our current setup, we run a modified cvs version of dovecot from WAY back, to support nfs. The backdraw is that we can't use the newer dovecot releases, since I couldn't modify the source in the way I did it the first time (with a LOT of help from Timo :P). If anyone has some ideas on where to look and where to test in order to get our problems more clear, I would be very grateful :) Kind regards, Maikel Verheijen Ladot Nederland BV. From petr.tuma@mff.cuni.cz Thu May 13 13:03:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5F3F0C002807; Thu, 13 May 2004 13:03:21 +0300 (EEST) Received: from smtp1.ms.mff.cuni.cz (ns.ms.mff.cuni.cz [195.113.20.71]) by talvi.dovecot.org (Postfix) with ESMTP id 3F7FAC002801 for ; Thu, 13 May 2004 13:03:19 +0300 (EEST) Received: from nenya.ms.mff.cuni.cz (nenya [195.113.17.137]) by smtp1.ms.mff.cuni.cz (8.12.11/8.12.11) with ESMTP id i4D9usNK057740 for ; Thu, 13 May 2004 11:56:54 +0200 (CEST) (envelope-from petr.tuma@mff.cuni.cz) Received: from mff.cuni.cz (shiva.ms.mff.cuni.cz [195.113.17.149]) by nenya.ms.mff.cuni.cz (Postfix) with ESMTP id 75B7DD79D1 for ; Thu, 13 May 2004 11:56:54 +0200 (CEST) Message-ID: <40A34666.40200@mff.cuni.cz> Date: Thu, 13 May 2004 11:56:54 +0200 From: Petr Tuma User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040506 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Codepage of folder names X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2004 10:03:21 -0000 X-UID: 9083 Status: O Hi, I have run into a problem configuring DoveCot 0.99 on a Linux server that handles Windows users. The server uses UTF8 on its filesystem but the Outlook IMAP folder names are sent in what looks like CP852. As a result, folder names that use national characters are damaged, which in turn breaks a webmail application running on the same server. A natural solution would be DoveCot translating folder names from CP852 coming across the wire to UTF8 used in filesystem operations, but I did not find any option for that in the configuration. Anybody encountered and solved this problem ? Petr Tuma From dr@jones.dk Thu May 13 13:33:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F1854C002809; Thu, 13 May 2004 13:33:27 +0300 (EEST) Received: from xayide.jones.dk (cpe.atm0-0-0-1201001.0x503f72d6.albnxx2.customer.tele.dk [80.63.114.214]) by talvi.dovecot.org (Postfix) with ESMTP id B777AC002808 for ; Thu, 13 May 2004 13:33:25 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by xayide.jones.dk (Postfix) with ESMTP id 211161AB77E; Thu, 13 May 2004 12:27:00 +0200 (CEST) Received: from xayide.jones.dk ([127.0.0.1]) by localhost (xayide.jones.dk [127.0.0.1]) (amavisd-new, port 10024) with SMTP id 01999-08; Thu, 13 May 2004 12:26:53 +0200 (CEST) Received: from jones.dk (unknown [192.168.102.144]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by xayide.jones.dk (Postfix) with ESMTP id 0A80D1AB2A5; Thu, 13 May 2004 12:26:53 +0200 (CEST) Message-ID: <40A34D6C.2060908@jones.dk> Date: Thu, 13 May 2004 12:26:52 +0200 From: Jonas Smedegaard User-Agent: Mozilla Thunderbird 0.5 (X11/20040313) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Maikel Verheijen Subject: Re: [Dovecot] dovecot-1.0-test8 / nfs / maildir / flags issues References: In-Reply-To: X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at jones.dk Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2004 10:33:28 -0000 X-UID: 9084 Status: O Content-Length: 1428 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Maikel Verheijen wrote: | - We notice some very strange "delete" flag things in our IMP webmail | system (working on a test environment to be more specific). The problem= | is that if you mark some messages "deleted", a lot of messages that do | NOT have "deleted" flag are also in the deleted list. Since nothing | changed on the webmail, it must be in the way dovecot responds | different in the new version on certain requests. Webmail applications reply (in most cases, IMP included) on PHP imap code= =2E When reporting problems with webmail programs, it is thus relevant to note what version of PHP you are running, and on what platform (or even better, if you know it: what version of libc-client it has been linked against). It may be that your brand-new IMP relies on a brand-new PHP linking against an old buggy version of libc-client. libc-client is the core engine from UW-imap, which is also used in Pine, PHP and other projects. ~ - Jonas - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er n=E6r: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFAo01sn7DbMsAkQLgRAmEZAJ4tiyX+SSX71rszgRHtZdGxw9hUMACgnymW wmnUPq/04B+xJegDHWvjaco=3D =3DNVXL -----END PGP SIGNATURE----- From reuben-dovecot@reub.net Thu May 13 13:48:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5299FC002808; Thu, 13 May 2004 13:48:33 +0300 (EEST) Received: from tornado.reub.net (port-222-152-48-85.fastadsl.net.nz [222.152.48.85]) by talvi.dovecot.org (Postfix) with ESMTP id D079BC002801 for ; Thu, 13 May 2004 13:48:29 +0300 (EEST) Received: (qmail 16694 invoked from network); 13 May 2004 10:42:02 -0000 Received: from typhoon.reub.net (192.168.0.6) by tornado.reub.net with SMTP; 13 May 2004 10:42:02 -0000 Received-SPF: pass (tornado.reub.net: domain of reuben-dovecot@reub.net designates 192.168.0.6 as permitted sender) receiver=tornado.reub.net; client_ip=192.168.0.6; envelope-from=reuben-dovecot@reub.net; Message-Id: <6.1.0.6.2.20040513223514.01990ea8@mail.reub.net> X-Sender: reuben@mail.reub.net (Unverified) X-Mailer: QUALCOMM Windows Eudora Version 6.1.0.6 Date: Thu, 13 May 2004 22:42:17 +1200 To: dovecot@dovecot.org From: Reuben Farrelly Subject: Re: [Dovecot] dovecot-1.0-test8 / nfs / maildir / flags issues In-Reply-To: <40A34D6C.2060908@jones.dk> References: <40A34D6C.2060908@jones.dk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2004 10:48:33 -0000 X-UID: 9085 Status: O Content-Length: 1706 In this case the version of PHP-imap might not be so relevant...my Horde/IMP (-cvs) has also broken in the latest test releases but works fine with the older (semi) stable 0.99 releases. All my mail folders appear empty when displayed with IMP although the folder list is fine (and even the message count in each folder is correct). I suspect the command which is not working is: 00000004 UID SORT (ARRIVAL) US-ASCII ALL The very bottom paragraph at http://www.dovecot.org/bugreport.html gives some clues as to how to go about debugging this sort of problem, and would probably be handy in this case too :) reuben At 10:26 p.m. 13/05/2004, Jonas Smedegaard wrote: >-----BEGIN PGP SIGNED MESSAGE----- >Hash: SHA1 > >Maikel Verheijen wrote: > >| - We notice some very strange "delete" flag things in our IMP webmail >| system (working on a test environment to be more specific). The problem >| is that if you mark some messages "deleted", a lot of messages that do >| NOT have "deleted" flag are also in the deleted list. Since nothing >| changed on the webmail, it must be in the way dovecot responds >| different in the new version on certain requests. > >Webmail applications reply (in most cases, IMP included) on PHP imap code. > >When reporting problems with webmail programs, it is thus relevant to >note what version of PHP you are running, and on what platform (or even >better, if you know it: what version of libc-client it has been linked >against). > >It may be that your brand-new IMP relies on a brand-new PHP linking >against an old buggy version of libc-client. > >libc-client is the core engine from UW-imap, which is also used in Pine, >PHP and other projects. > >~ - Jonas From maikel@ladot.com Thu May 13 14:07:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D85F5C002808; Thu, 13 May 2004 14:07:17 +0300 (EEST) Received: from amsfep15-int.chello.nl (amsfep15-int.chello.nl [213.46.243.28]) by talvi.dovecot.org (Postfix) with ESMTP id C63FBC002801 for ; Thu, 13 May 2004 14:07:15 +0300 (EEST) Received: from myst.dohd.org ([62.163.178.220]) by amsfep15-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040513110036.QNOG25649.amsfep15-int.chello.nl@myst.dohd.org>; Thu, 13 May 2004 13:00:36 +0200 Received: from [10.0.3.6] (mactop-wi.myst.dohd.org [10.0.3.6]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i4DB0lRD094702; Thu, 13 May 2004 13:00:47 +0200 (CEST) (envelope-from maikel@ladot.com) In-Reply-To: <40A34D6C.2060908@jones.dk> References: <40A34D6C.2060908@jones.dk> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] dovecot-1.0-test8 / nfs / maildir / flags issues Date: Thu, 13 May 2004 13:00:27 +0200 To: Jonas Smedegaard X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2004 11:07:18 -0000 X-UID: 9086 Status: O Hi Jonas, Thank you for your swift response. > Webmail applications reply (in most cases, IMP included) on PHP imap > code. > > When reporting problems with webmail programs, it is thus relevant to > note what version of PHP you are running, and on what platform (or even > better, if you know it: what version of libc-client it has been linked > against). Agreed, I could (and should) have provided more information on the imp environment. - php 4.3.1 - linux kernel 2.4.20 - IMAP c-Client version 2001 > It may be that your brand-new IMP relies on a brand-new PHP linking > against an old buggy version of libc-client. The IMP hasn't changed. Just the imapd (dovecot) has been updated (and downgraded) > ~ - Jonas Kind regards, Maikel Verheijen Ladot Nederland BV. From tss@iki.fi Thu May 13 15:17:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E6733C00280A; Thu, 13 May 2004 15:17:31 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B8706C002808 for ; Thu, 13 May 2004 15:17:29 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 1EAB31C2D5C9; Thu, 13 May 2004 15:11:05 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B26A41C2D5CA; Thu, 13 May 2004 15:10:30 +0300 (EEST) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-31-916331312" Message-Id: <86DE4963-A4D6-11D8-AEE1-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] dovecot-1.0-test8 / nfs / maildir / flags issues Date: Thu, 13 May 2004 15:10:30 +0300 To: Maikel Verheijen X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_20,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2004 12:17:32 -0000 X-UID: 9087 Status: O Content-Length: 3636 --Apple-Mail-31-916331312 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed On 13.5.2004, at 12:34, Maikel Verheijen wrote: > While (bluntly) testing the prerelease version of dovecot on our > mailfarm (just for the webmail imap) we noticed some small problems: Not very good idea at least until "1.0 alpha". I can still pretty easily make it crash and complain about corrupt indexes. > - While our OLD dovecot/imap drove the load to a maximum of 1 over a > day after running, the new dovecot/imap pushes it easily to 20. This > is mainly due to a LOT more disk activity. This is probably caused by > the fact we a) use indexes on disk and b) there are no indexes left. I > hope this will smooth out when most of the indexes are made. I think this is mostly because the 1.0-tests don't cache anything. The index files contain only message UIDs and flags, everything else requires opening and parsing the message file. I'll fix the caching once other things seem to be working. > - We notice some very strange "delete" flag things in our IMP webmail > system (working on a test environment to be more specific). The > problem is that if you mark some messages "deleted", a lot of messages > that do NOT have "deleted" flag are also in the deleted list. Since > nothing changed on the webmail, it must be in the way dovecot responds > different in the new version on certain requests. Hm.. I'm not sure about this. Maybe concurrent access breaks it sometimes.. > - In the dotlocking code, it seems that dovecot uses time() for it's > internal locktime, and uses stat() to see if the file-time of the lock > is different. Since we use nfs there might be a time-difference on the > file creation and time() when our nfs gets "busy". This happens a lot > when the indexes are created for multiple users at the same time > resulting in a lot of: > > May 12 08:57:44 mf1 dovecot[3763]: imap(user@domain.tld): Our dotlock > file > /var/mail/mounted/d/do/domain.tld/user/Maildir/.INBOX/ > dovecot.index.log.lock was modified (1084345063 vs 1084345062), > assuming it wasn't overridden > > I am not completely sure if this interrupts imap traffic. I think this > MIGHT be solved by storing a stat() time as the locktime instead of a > time(), but this might be intentional. It does store and compare stat() times for that check.. There was a bug where Dovecot itself overwrote the lock file and caused that error, but it was fixed in test8 already. Maybe there's other such problems. > - I patched dovecot to report its pid in syslog messages, in order to > find the "killed by signal X" where X are mostly 11 and 6 processes. > The pids reported do not show up in the rest of the log file, so these > may be "disconnected" sessions? It seems that the "old" version has > the same problem, and nobody really complained it was broken, so this > isn't a big issue. What else should there be in log file about them? Killed by signal 11 means just that it crashed without any specific reason. Signal 6 is abort(), that should write the error into log file. --Apple-Mail-31-916331312 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAo2W2yUhSUUBViskRAjn9AJ0YXCDSmIUGWPRQvi1SborXTXM3lgCghgol FcWIcAnEGDd2Xh6Sblg6dUE= =KQ7d -----END PGP SIGNATURE----- --Apple-Mail-31-916331312-- From tss@iki.fi Thu May 13 15:29:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 20B4AC002815; Thu, 13 May 2004 15:29:04 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 30D8AC00280A for ; Thu, 13 May 2004 15:29:02 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 498921C2D5CA; Thu, 13 May 2004 15:22:37 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2FCC31C2D5C9; Thu, 13 May 2004 15:22:03 +0300 (EEST) In-Reply-To: <40A34666.40200@mff.cuni.cz> References: <40A34666.40200@mff.cuni.cz> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-32-917020945" Message-Id: <21EC12CE-A4D8-11D8-AEE1-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Codepage of folder names Date: Thu, 13 May 2004 15:21:59 +0300 To: Petr Tuma X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.6 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2004 12:29:04 -0000 X-UID: 9088 Status: O Content-Length: 1768 --Apple-Mail-32-917020945 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=ISO-8859-1; format=flowed On 13.5.2004, at 12:56, Petr Tuma wrote: > I have run into a problem configuring DoveCot 0.99 on a Linux server=20= > that handles Windows users. The server uses UTF8 on its filesystem but=20= > the Outlook IMAP folder names are sent in what looks like CP852. As a=20= > result, folder names that use national characters are damaged, which=20= > in turn breaks a webmail application running on the same server. IMAP folder names are supposed to be sent in modified-UTF7 character=20 set, and Outlook (2000, XP) use it too. So eg. "=F6" becomes "&APY-".=20 Dovecot stores the mailbox names just as it was sent, so assuming=20 everyone used UTF7 they should all contain only 7bit characters and=20 filesystem charset isn't an issue. Is the problem then your webmail using UTF8 and not UTF7? > A natural solution would be DoveCot translating folder names from=20 > CP852 coming across the wire to UTF8 used in filesystem operations,=20 > but I did not find any option for that in the configuration. Anybody=20= > encountered and solved this problem ? You could patch src/lib-storage/index/maildir/maildir-storage.c=20 maildir_fix_mailbox_name() to convert those names.. --Apple-Mail-32-917020945 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAo2hnyUhSUUBViskRAnECAJ9rJfsvOAi8NfqIojCxCe8NnSj+zwCfVLwI YghnfanROO0pCtgyydazDh8= =B4i4 -----END PGP SIGNATURE----- --Apple-Mail-32-917020945-- From tss@iki.fi Thu May 13 15:51:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DDF92C00281A; Thu, 13 May 2004 15:51:26 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id F1B1CC002808 for ; Thu, 13 May 2004 15:51:24 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 1BBFA300DF873; Thu, 13 May 2004 15:45:00 +0300 (EEST) Subject: Re: [Dovecot] CVS undefined references... From: Timo Sirainen To: jan@weitan.org In-Reply-To: <32794.217.255.192.157.1084292005.squirrel@217.255.192.157> References: <40A023D6.60800@umd.com.au> <32794.217.255.192.157.1084292005.squirrel@217.255.192.157> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-QqysG7z1aG+t8qDv+JSU" Message-Id: <1084452299.17376.1.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 13 May 2004 15:44:59 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 May 2004 12:51:27 -0000 X-UID: 9089 Status: O --=-QqysG7z1aG+t8qDv+JSU Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-05-11 at 19:13, jan@weitan.org wrote: > On Sunday the CVS compiled fine, now i get: > auth-process.o(.text+0x5f0): In function `create_auth_process': > dovecot/src/master/auth-process.c:267: undefined reference to > `log_create_pipe' Run autogen.sh and configure again so Makefiles are updated with new files that I've added. --=-QqysG7z1aG+t8qDv+JSU Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAo23KyUhSUUBViskRAkAgAJ9LNBo6vF8Q5vP4YnqnL3hTS8sQjwCgieAy Kdm5sLKui67pM0/GKN0jwpw= =OFFF -----END PGP SIGNATURE----- --=-QqysG7z1aG+t8qDv+JSU-- From charlie@rubberduck.com Fri May 14 05:40:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A4A88C002807; Fri, 14 May 2004 05:40:10 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by talvi.dovecot.org (Postfix) with ESMTP id 636BFC000D8E for ; Fri, 14 May 2004 05:40:05 +0300 (EEST) Received: by lazy.spodder.com (Postfix, from userid 501) id 202DF8FE6; Fri, 14 May 2004 12:29:31 +1000 (EST) Date: Fri, 14 May 2004 12:29:30 +1000 From: Charlie Allom To: Maikel Verheijen Subject: offlineimap deletes with extreme prejudice (was Re: [Dovecot] dovecot-1.0-test8 / nfs / maildir / flags issues) Message-ID: <20040514022929.GC4248@myinternet.com.au> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.4i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 May 2004 02:40:10 -0000 X-UID: 9090 Status: O On Thu, May 13, 2004 at 11:34:17AM +0200, Maikel Verheijen wrote: > > > - We notice some very strange "delete" flag things in our IMP webmail > system (working on a test environment to be more specific). The problem > is that if you mark some messages "deleted", a lot of messages that do > NOT have "deleted" flag are also in the deleted list. Since nothing > changed on the webmail, it must be in the way dovecot responds > different in the new version on certain requests. > I also have this problem with 0.99 and the python 'offlineimap' script. I can't easily reproduce it, but sometimes whole mboxes decide to be deleted. I am trying to get an IMAP dump and see what is happening. C. -- charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com From hitao@vip.sina.com Fri May 14 06:10:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 83607C002807; Fri, 14 May 2004 06:10:47 +0300 (EEST) Received: from vip.sina.com (unknown [202.108.35.178]) by talvi.dovecot.org (Postfix) with SMTP id C6781C000D8E for ; Fri, 14 May 2004 06:10:43 +0300 (EEST) Received: (qmail 48567 invoked from network); 14 May 2004 03:04:03 -0000 Received: from unknown (HELO cfsc8hf7h1aac2) (61.149.83.63) by 202.108.35.178 with SMTP; 14 May 2004 03:04:03 -0000 Received: from(hitao@vip.sina.com) to(dovecot@dovecot.org) Message-ID: <005501c43960$363875d0$0c01a8c0@cfsc8hf7h1aac2> From: "Hitao" To: Date: Fri, 14 May 2004 11:04:45 +0800 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Subject: [Dovecot] can I share IMAP folders for multiple user X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Hitao List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 May 2004 03:10:47 -0000 X-UID: 9091 Status: O Hi, Dear all, Just a bit curious, could I configure dovecot for two users share the access to certain IMAP folders in the mailbox? I searched the list archive and only found http://dovecot.org/list/dovecot/2004-April/003236.html and http://dovecot.org/list/dovecot/2004-April/003168.html, but I am not sure is this the same thing that I want and where could I find more details? Wish you a nice day! Hitao From johannes@sipsolutions.de Fri May 14 16:51:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F2108C002807; Fri, 14 May 2004 16:51:53 +0300 (EEST) Received: from johannes.sipsolutions.com (pD95251D7.dip.t-dialin.net [217.82.81.215]) by talvi.dovecot.org (Postfix) with ESMTP id BCE09C000D8E for ; Fri, 14 May 2004 16:51:48 +0300 (EEST) Received: from [127.0.0.1] (localhost [127.0.0.1]) by johannes.sipsolutions.com (Postfix) with ESMTP id E934A1516C27 for ; Thu, 13 May 2004 19:16:44 +0200 (CEST) From: Johannes Berg To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-q5jDeZwkOpM5cci45EW5" Message-Id: <1084468593.2651.33.camel@johannes> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Thu, 13 May 2004 19:16:34 +0200 Subject: [Dovecot] using one-time passwords X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 May 2004 13:51:54 -0000 X-UID: 9092 Status: O Content-Length: 2435 --=-q5jDeZwkOpM5cci45EW5 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, Is there any way to use something like OPIE (one-time passwords in everything, S/KEY) with dovecot? Here's what I want to do ultimately: * have an AUTH=3DXYZ method that relies on S/KEY as provided by the libpam-opie module (well, maybe not through pam) * have dovecot advertise authentication as follows: - local : PLAIN, XYZ - remote (encrypted) : EXTERNAL, and rely on certificate - remote (unencrypted): XYZ Thats the dovecot part. Then I would modify squirrelmail to a) negotiate PLAIN with an authorized web client certificate b) negotiate XYZ when without SSL or SSL without a valid certificate This way I could check my mail even from computers that I don't trust at all to not do key-logging, since I can have an S/KEY generator on my cell-phone. Does this sound feasible? I see the following advantages: * allows checking of webmail on the road, on untrusted computers,=20 giving out only whatever you decide to look at * allows checking of mail via unencrypted IMAP, relying on one-time passwords so giving an attacker only whatever he can look at while your session is active (assuming he can't insert anything into the tcp stream...) * is otherwise encrypted, and then doesn't force using one-time keys which may be somewhat a hassle to generate. johannes --=-q5jDeZwkOpM5cci45EW5 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Comment: Johannes Berg (SIP Solutions) iQIVAwUAQKOtbaVg1VMiehFYAQJSSw//U2DvSoy78T+/G7qOF5Qyn6n70DlLdGyi ZxVNHcB2NoTjiLlp3wFs+JLVLlwfBf94S+ja8G8M3hEDrupqmTMJETc6ukary54+ +UM66DFnZa61xwikWGwlv8hvtBnR6/c7Sk+N1lVpLsc/XpqdVKAVV/VLBMvkwCZR luHypljMPjFePGrqmt5BQ4LMAPqekyLtq39mxnlehaDXH5bdIj4fJbA2wxeUSSPm nVltWNwPdjVfI6pEu385HoNb5De9dX2PmPPMZva1Uh16oEjSeZwfd9Z/Bjdk3W2T bLSJDsEA3CHeZ3qEV+W+S5bsyd+mCJzzypFORogimmjEGxWAyBGZReNx1K3AYW2o PGPig8+A7uyohubVXC/2IoPONEesRb5hPX7TAA9MWUpAflRKkFyiKqmu0LedUT+y jbNatXyN7/aS4GhXVIVK10bk5o0JZcsx3BDNdI5nXX9OtwIvrZm85bFqoaeCuMh8 NP6AMXRFZIr8nbVMCOk2CnZRu59YO6FN+SK/UeUZQbFZs32rffdIv85FIFAoBtvB CEyPg+Yg0WrD8NMFFxC9IKHlFBUr9laW0IeMhcdTbAYmXGIXGb4amKF9wQBZLppi QGjm8MkbpF2yIRx4MFRNDo/3b1yvBl4m8bgZ8lMZ9DNtWUL9yB2pzruIz0rDnctP qfy7Y8DLrfg= =M098 -----END PGP SIGNATURE----- --=-q5jDeZwkOpM5cci45EW5-- From SRS0=tibtoMW9=II=outflux.net=kees@outflux.net Sat May 15 02:53:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 41883C002807; Sat, 15 May 2004 02:53:10 +0300 (EEST) Received: from rayon.outflux.net (rayon.outflux.net [69.93.193.226]) by talvi.dovecot.org (Postfix) with ESMTP id 04881C000D8E for ; Sat, 15 May 2004 02:53:08 +0300 (EEST) Received: from ghostship.outflux.net (serenity-end.outflux.net [10.2.0.2]) by rayon.outflux.net (8.12.11/8.12.11/Debian-3) with ESMTP id i4ENkcNq004131 for ; Fri, 14 May 2004 16:46:39 -0700 Date: Fri, 14 May 2004 16:46:38 -0700 From: Kees Cook To: dovecot@dovecot.org Message-ID: <20040514234638.GR18910@outflux.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-MIMEDefang-Filter: outflux$Revision: 1.121 $ X-Scanned-By: MIMEDefang 2.39 Subject: [Dovecot] local auth X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 May 2004 23:53:10 -0000 X-UID: 9093 Status: O Is there a way to run dovecot locally as a user, like uw-imap lets you do? I want to use dovecot with fetchmail over ssh... I couldn't find anything in the archives on this. -- Kees Cook @outflux.net From olive@pasteur.fr Sat May 15 10:57:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 066B5C002807; Sat, 15 May 2004 10:57:11 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id E6032C000D8E for ; Sat, 15 May 2004 10:57:05 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 93C5711474 for ; Sat, 15 May 2004 09:50:36 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 5CEA411473 for ; Sat, 15 May 2004 09:50:36 +0200 (CEST) Received: from [192.168.1.12] (AMontsouris-108-1-18-219.w80-15.abo.wanadoo.fr [80.15.147.219]) by mafate.sis.pasteur.fr (Postfix) with ESMTP id F35353F63B for ; Sat, 15 May 2004 09:50:35 +0200 (CEST) Message-ID: <40A5CBC5.4010106@pasteur.fr> Date: Sat, 15 May 2004 09:50:29 +0200 From: Olivier Tharan Organization: Institut Pasteur User-Agent: Mozilla Thunderbird 0.6 (Macintosh/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] local auth References: <20040514234638.GR18910@outflux.net> In-Reply-To: <20040514234638.GR18910@outflux.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 May 2004 07:57:15 -0000 X-UID: 9094 Status: O Kees Cook wrote: > Is there a way to run dovecot locally as a user, like uw-imap lets you > do? I want to use dovecot with fetchmail over ssh... I couldn't find > anything in the archives on this. Of course, you can. Just exec the /usr/local/libexec/dovecot/imap binary (or wherever it is located in your system -- I use the FreeBSD path). Launching the binary as a user will get you into pre-authenticated mode, just the way you want. olive From lehmann@cnm.de Sun May 16 02:05:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1EDA7C002807; Sun, 16 May 2004 02:05:01 +0300 (EEST) Received: from vm16.variomedia.de (vm16.variomedia.de [81.28.224.61]) by talvi.dovecot.org (Postfix) with ESMTP id 2B731C000D8E for ; Sun, 16 May 2004 02:04:59 +0300 (EEST) Received: from [82.82.191.100] (helo=cnm.de) by vm16.variomedia.de with asmtp (Exim 4.30) id 1BP83c-0000BS-N9 for dovecot@dovecot.org; Sun, 16 May 2004 00:55:04 +0200 Message-ID: <40A6A093.50205@cnm.de> Date: Sun, 16 May 2004 00:58:27 +0200 From: Marten Lehmann User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Relay-User: lehmann@variomedia.de Subject: [Dovecot] Dovecot vs. Courier-Imap X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 May 2004 23:05:01 -0000 X-UID: 9095 Status: O Hello, I've heard of both and I already tested and installed both, but I'm not sure which one is better, since both just seem to work and I can't see a difference, except from the point how it's set up and configured. Where are the drawbacks of each one, where are the benefits? I also tested cyrus before, but cyrus is not working well with maildirs. I'm not that into detail of both projects, maybe you can explain a bit. Thanks in advance for every answer! Regards Marten From fuyuki@hadaly.org Sun May 16 03:20:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 97EC8C002812; Sun, 16 May 2004 03:20:00 +0300 (EEST) Received: from mgate14.so-net.ne.jp (mgate14.so-net.ne.jp [210.139.254.161]) by talvi.dovecot.org (Postfix) with ESMTP id 47931C002807 for ; Sun, 16 May 2004 03:19:57 +0300 (EEST) Received: from mail.dg8.so-net.ne.jp (mspool12.so-net.ne.jp [210.139.248.12]) by mgate14.so-net.ne.jp with ESMTP id i4G0D9v16206; Sun, 16 May 2004 09:13:09 +0900 (JST) Received: from ns.nigredo.org (p624256.spprac00.ap.so-net.ne.jp [219.98.66.86]) by mail.dg8.so-net.ne.jp with ESMTP id i4G0D8425406; Sun, 16 May 2004 09:13:08 +0900 (JST) Date: Sun, 16 May 2004 09:13:08 +0900 Message-ID: <868yftqlez.wl%fuyuki@hadaly.org> From: Kimura Fuyuki To: lehmann@cnm.de Subject: Re: [Dovecot] Dovecot vs. Courier-Imap In-Reply-To: <40A6A093.50205@cnm.de> References: <40A6A093.50205@cnm.de> User-Agent: Wanderlust/2.10.1 (Watching The Wheels) Emacs/21.3 Mule/5.0 (SAKAKI) X-Public-Key: http://www.hadaly.org/fuyuki/pubkey.asc X-Fingerprint: 8D68 1138 1A85 8556 C6A9 274B 2C72 2E56 3AF7 3D89 MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2004 00:20:00 -0000 X-UID: 9096 Status: O At Sun, 16 May 2004 00:58:27 +0200, Marten Lehmann wrote: > > I've heard of both and I already tested and installed both, but I'm not > sure which one is better, since both just seem to work and I can't see a > difference, except from the point how it's set up and configured. Where > are the drawbacks of each one, where are the benefits? I also tested > cyrus before, but cyrus is not working well with maildirs. I'm not that > into detail of both projects, maybe you can explain a bit. Thanks in > advance for every answer! I believe Dovecot is much faster than Courier. Dovecot's index caching is very smart and works well even on huge mailboxes. -- fuyuki From lehmann@cnm.de Sun May 16 06:43:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 55672C002814; Sun, 16 May 2004 06:43:09 +0300 (EEST) Received: from vm16.variomedia.de (vm16.variomedia.de [81.28.224.61]) by talvi.dovecot.org (Postfix) with ESMTP id 6394DC002812 for ; Sun, 16 May 2004 06:43:07 +0300 (EEST) Received: from [82.82.191.100] (helo=cnm.de) by vm16.variomedia.de with asmtp (Exim 4.30) id 1BPCOv-0002T2-S1 for dovecot@dovecot.org; Sun, 16 May 2004 05:33:21 +0200 Message-ID: <40A6E1CD.9030707@cnm.de> Date: Sun, 16 May 2004 05:36:45 +0200 From: Marten Lehmann User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot vs. Courier-Imap References: <40A6A093.50205@cnm.de> <868yftqlez.wl%fuyuki@hadaly.org> In-Reply-To: <868yftqlez.wl%fuyuki@hadaly.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Relay-User: lehmann@variomedia.de X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2004 03:43:10 -0000 X-UID: 9097 Status: O > I believe Dovecot is much faster than Courier. Dovecot's index caching > is very smart and works well even on huge mailboxes. How many people are actively working on both projects? Who is using dovecot? In which environments? Has someone moved from Courier-Imap to Dovecot? Which of both has the smaller footprint (e.g. memory usage)? Regards Marten From fuyuki@hadaly.org Sun May 16 07:33:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 50A13C002801; Sun, 16 May 2004 07:33:46 +0300 (EEST) Received: from mgate11.so-net.ne.jp (mgate11.so-net.ne.jp [210.139.254.158]) by talvi.dovecot.org (Postfix) with ESMTP id 4108FC000D8E for ; Sun, 16 May 2004 07:33:42 +0300 (EEST) Received: from mail.dg8.so-net.ne.jp (mspool12.so-net.ne.jp [210.139.248.12]) by mgate11.so-net.ne.jp with ESMTP id i4G4R9D08673; Sun, 16 May 2004 13:27:09 +0900 (JST) Received: from ns.nigredo.org (p624256.spprac00.ap.so-net.ne.jp [219.98.66.86]) by mail.dg8.so-net.ne.jp with ESMTP id i4G4R8401893; Sun, 16 May 2004 13:27:08 +0900 (JST) Date: Sun, 16 May 2004 13:27:08 +0900 Message-ID: <867jvdq9nn.wl%fuyuki@hadaly.org> From: Kimura Fuyuki To: lehmann@cnm.de Subject: Re: [Dovecot] Dovecot vs. Courier-Imap In-Reply-To: <40A6E1CD.9030707@cnm.de> References: <40A6A093.50205@cnm.de> <868yftqlez.wl%fuyuki@hadaly.org> <40A6E1CD.9030707@cnm.de> User-Agent: Wanderlust/2.10.1 (Watching The Wheels) Emacs/21.3 Mule/5.0 (SAKAKI) X-Public-Key: http://www.hadaly.org/fuyuki/pubkey.asc X-Fingerprint: 8D68 1138 1A85 8556 C6A9 274B 2C72 2E56 3AF7 3D89 MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2004 04:33:46 -0000 X-UID: 9098 Status: O At Sun, 16 May 2004 05:36:45 +0200, Marten Lehmann wrote: > > How many people are actively working on both projects? Who is using > dovecot? In which environments? Has someone moved from Courier-Imap to > Dovecot? Which of both has the smaller footprint (e.g. memory usage)? I've experienced at least four imap daemons on FreeBSD; UW's, Cyrus, Courier and (of course) Dovecot. Forget about the first one. Cyrus's would be most popular and is actually quite fast, but I don't like some of its behavior details. Courier-IMAP is works well on Maildir except that it is fairly slow since it never caches mail indexes. (Is it still true for recent versions?) My current choice is Dovecot. It works just fine more than a year. It is so fast and eats little memory. In short, you should read a blurb by the author himself. It's not a bubble. http://www.dovecot.org/ -- fuyuki From dovecot@blinkenlights.ch Sun May 16 09:28:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 39C38C002806; Sun, 16 May 2004 09:28:36 +0300 (EEST) Received: from mail5.bluewin.ch (mail5.bluewin.ch [195.186.1.207]) by talvi.dovecot.org (Postfix) with ESMTP id 237C1C000D8E for ; Sun, 16 May 2004 09:28:34 +0300 (EEST) Received: from blinkenlights.ch (62.202.0.18) by mail5.bluewin.ch (Bluewin AG 7.0.028) id 40A46B2100031B11 for dovecot@dovecot.org; Sun, 16 May 2004 06:22:02 +0000 Received: from hunzelstrunzel (unknown [192.168.1.10]) by blinkenlights.ch (Postfix) with SMTP id B680680CD for ; Sun, 16 May 2004 08:22:00 +0200 (CEST) Date: Sun, 16 May 2004 08:22:00 +0200 From: Adrian Ulrich To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot vs. Courier-Imap Message-Id: <20040516082200.24d70942.dovecot@blinkenlights.ch> In-Reply-To: <40A6E1CD.9030707@cnm.de> References: <40A6A093.50205@cnm.de> <868yftqlez.wl%fuyuki@hadaly.org> <40A6E1CD.9030707@cnm.de> X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; powerpc-unknown-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2004 06:28:36 -0000 X-UID: 9099 Status: O Hi, Dovecot performs very well if you have a very huge mailbox. I have a mailbox with about 30 folders with ~ 8000 messages per folder (with 200 new messages each day) Running Courier-Imap, you couldn't access the mailbox, it was so slooooww. Courier also segfaulted very often. After switching to dovecot, everything runs fine. No crash and its FAST. And dovecot uses less memory/cpu. It runs also fast enough for my old 486 with 66mhz and 64mb ram. -- Adrian From security@jlug.org Sun May 16 11:29:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 60214C002801; Sun, 16 May 2004 11:29:15 +0300 (EEST) Received: from jlug.fi (jlug.fi [192.194.49.184]) by talvi.dovecot.org (Postfix) with ESMTP id 1464BC000D8E for ; Sun, 16 May 2004 11:29:13 +0300 (EEST) Received: (qmail 12155 invoked by uid 537); 16 May 2004 08:22:41 -0000 Received: from security@jlug.org by jlug by uid 510 with qmail-scanner-1.20 (clamscan: 0.70. spamassassin: 2.63. Clear:RC:1(62.216.98.109):. Processed in 0.027289 secs); 16 May 2004 08:22:41 -0000 Received: from unknown (HELO ?192.168.0.2?) (eero@jlug.fi@62.216.98.109) by 0 with SMTP; 16 May 2004 08:22:41 -0000 Message-ID: <40A724A5.80600@jlug.org> Date: Sun, 16 May 2004 11:21:57 +0300 From: security officer User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot vs. Courier-Imap References: <40A6A093.50205@cnm.de> <868yftqlez.wl%fuyuki@hadaly.org> <40A6E1CD.9030707@cnm.de> <20040516082200.24d70942.dovecot@blinkenlights.ch> In-Reply-To: <20040516082200.24d70942.dovecot@blinkenlights.ch> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2004 08:29:15 -0000 X-UID: 9100 Status: O Adrian Ulrich wrote: > After switching to dovecot, everything runs fine. > No crash and its FAST. > Yep, I also changed some courier-imaps to dovecot, since courier have some mystic problems with outlook 2003. No any problem with dovecot. Only thing that is missing is maildir++ quota, hope it is soon implemented. Anyway, dovecot supports easily vpopmail+qmail combination that I use on most mail servers. -- Eero From tss@iki.fi Mon May 17 02:39:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2164EC002806; Mon, 17 May 2004 02:39:31 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 234E2C000D8E for ; Mon, 17 May 2004 02:39:29 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 1327C300E05FE for ; Mon, 17 May 2004 02:32:56 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-QIrww8UaN2H6PYpTKzE2" Message-Id: <1084750375.2023.32.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 17 May 2004 02:32:55 +0300 Subject: [Dovecot] 1.0-test9 released X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2004 23:39:31 -0000 X-UID: 9101 Status: O Content-Length: 1149 --=-QIrww8UaN2H6PYpTKzE2 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ - SORT command always replied with NO - Locking fixes. Fixes several crashes, dotlock errors and deadlock errors - When multiple sessions were concurrently modifying mailbox it often mixed up the messages that were supposed to be modified. When expunging it also gave errors such as: Corrupted transaction log file /home/user/Maildir/.INBOX/dovecot.index.log:= Expunge range 5..5: UIDs 6..6 doesn't match real UIDs 18..18 Now it doesn't do it as often, but it still does.. I'm not really sure where the bug is. Have to keep looking. This seems much more stable than test8, but because of the above problem I still don't recommend it for more than testing. --=-QIrww8UaN2H6PYpTKzE2 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAp/onyUhSUUBViskRAlF7AJ47Vfz9wg3aOhn84vJq/LZtIqg4aQCfc80x G07MdYbdGCGmh2nT9zMlmBc= =26Wt -----END PGP SIGNATURE----- --=-QIrww8UaN2H6PYpTKzE2-- From tss@iki.fi Mon May 17 03:31:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 41857C002807; Mon, 17 May 2004 03:31:27 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id D4ED7C002806 for ; Mon, 17 May 2004 03:31:24 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D04CB300E05FE; Mon, 17 May 2004 03:24:51 +0300 (EEST) Subject: Re: [Dovecot] using one-time passwords From: Timo Sirainen To: Johannes Berg In-Reply-To: <1084468593.2651.33.camel@johannes> References: <1084468593.2651.33.camel@johannes> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ZfMYV2I78FHaEV9KQMYH" Message-Id: <1084753491.2023.52.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 17 May 2004 03:24:51 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 00:31:27 -0000 X-UID: 9102 Status: O Content-Length: 2896 --=-ZfMYV2I78FHaEV9KQMYH Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-05-13 at 20:16, Johannes Berg wrote: > Hi, >=20 > Is there any way to use something like OPIE (one-time passwords in > everything, S/KEY) with dovecot? >=20 > Here's what I want to do ultimately: > * have an AUTH=3DXYZ method that relies on S/KEY as provided by the > libpam-opie module (well, maybe not through pam) I didn't really understand how libpam-opie works. Does it require some special client or how does it tell the seed/sequence? Or doesn't it? But sure, Cyrus SASL has AUTH=3DOTP mechanism, we could be compatible with that. Want to write it? :) Shouldn't be hard to plug into Dovecot, I just don't really have time right now. The OTP-data could be stored in same way as PASSDB_CREDENTIALS_DIGEST_MD5. Except the code doesn't currently allow multiple credentials per user, it only uses the beginning of the password field to specify the password type, eg. "{PLAIN}password", "{DIGEST-MD5}digest-md5-credentials", etc. I guess I should do something about that.. > * have dovecot advertise authentication as follows: > - local : PLAIN, XYZ > - remote (encrypted) : EXTERNAL, and rely on certificate > - remote (unencrypted): XYZ >=20 > Thats the dovecot part. Then I would modify squirrelmail to > a) negotiate PLAIN with an authorized web client certificate > b) negotiate XYZ when without SSL or SSL without a valid certificate 1.0-test9 supports "ssl_verify_client_cert" option, but then it always requires it .. hmm. maybe with it enabled the configuration could support something like: auth default { mechanisms =3D plain .. ssl_require_client_cert =3D yes } auth otp { mechanisms =3D otp .. ssl_require_client_cert =3D no } Yes, that looks good, I'll implement that. > Does this sound feasible? I see the following advantages: > * allows checking of webmail on the road, on untrusted computers,=20 > giving out only whatever you decide to look at One problem is that it also gives the possibility to modify the mailbox which isn't very good. From my TODO: - support read-only logins. user could with alternative password get only read-access to mails so mails could be read relatively safely with untrusted computers. Maybe always send [ALERT] about the previous read-only login time with IP? Maybe flag changes would be allowed (but not \Deleted). Anyway, this could be configurable as well (append :READONLY to default_mail_env). --=-ZfMYV2I78FHaEV9KQMYH Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAqAZTyUhSUUBViskRArhyAJ9FX/3xWjkTQieXAtJAqyVM7rkTJACgjjPT /uUiF+CsTJCvIgbPD7Qy/Ik= =oVCr -----END PGP SIGNATURE----- --=-ZfMYV2I78FHaEV9KQMYH-- From johannes@sipsolutions.de Mon May 17 06:51:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 79C7AC002809; Mon, 17 May 2004 06:51:39 +0300 (EEST) Received: from dd2002.kasserver.com (dd2002.kasserver.com [81.209.148.122]) by talvi.dovecot.org (Postfix) with ESMTP id 5A44DC002807 for ; Mon, 17 May 2004 06:51:35 +0300 (EEST) Received: from johannes.sipsolutions.com (p5082BB3E.dip.t-dialin.net [80.130.187.62]) by dd2002.kasserver.com (Postfix) with ESMTP id 7D8A714A94D; Mon, 17 May 2004 05:44:58 +0200 (CEST) Received: from [127.0.0.1] (localhost [127.0.0.1]) by johannes.sipsolutions.com (Postfix) with ESMTP id 102881516C27; Mon, 17 May 2004 05:44:55 +0200 (CEST) Subject: Re: [Dovecot] using one-time passwords From: Johannes Berg To: Timo Sirainen In-Reply-To: <1084753491.2023.52.camel@hurina> References: <1084468593.2651.33.camel@johannes> <1084753491.2023.52.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-lNPnkQgEkKZ3kzx+QU1v" Message-Id: <1084765494.3100.57.camel@johannes> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Mon, 17 May 2004 05:44:54 +0200 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 03:51:39 -0000 X-UID: 9103 Status: O Content-Length: 3223 --=-lNPnkQgEkKZ3kzx+QU1v Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-17 at 02:24, Timo Sirainen wrote: > I didn't really understand how libpam-opie works. Does it require some > special client or how does it tell the seed/sequence? Or doesn't it? For setting the password, it tells you the seed/sequence (will refer to that as s/s for now). You then calculate md5^sequence(key) (apply md5 sequence times) and give that to the server. It stores it, and lets you log in the next time if you can give it md5^(sequence-1)(key). If you really want to know the gory details -> s/key in opie(4). Opie uses this inside pam by just making the query string "opie: s/s" (similar, not identical to that) instead of "Password:". > But sure, Cyrus SASL has AUTH=3DOTP mechanism, we could be compatible wit= h > that.=20 Would have to investigate that SASL mechanism. > Want to write it? :) Shouldn't be hard to plug into Dovecot, I > just don't really have time right now. Sure. > The OTP-data could be stored in same way as > PASSDB_CREDENTIALS_DIGEST_MD5. Except the code doesn't currently allow > multiple credentials per user, it only uses the beginning of the > password field to specify the password type, eg. "{PLAIN}password", > "{DIGEST-MD5}digest-md5-credentials", etc. I guess I should do something > about that.. I don't think that matters. In opie, that could be: {OTP}sequence seed md5 date or something. You really only need to store one tuple of data per user. > 1.0-test9 supports "ssl_verify_client_cert" option, but then it always > requires it ..=20 Yeah, I've seen that,... > hmm. maybe with it enabled the configuration could > support something like: >=20 > auth default { > mechanisms =3D plain > .. > ssl_require_client_cert =3D yes > } >=20 > auth otp { > mechanisms =3D otp > .. > ssl_require_client_cert =3D no > } >=20 > Yes, that looks good, I'll implement that. but that looks perfect :-) > One problem is that it also gives the possibility to modify the mailbox > which isn't very good. From my TODO: Good point! Hadn't thought of that so far. Thanks for your answer. I'll be looking at SASL OTP, and dovecot source. johannes --=-lNPnkQgEkKZ3kzx+QU1v Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Comment: Johannes Berg (SIP Solutions) iQIVAwUAQKg1M6Vg1VMiehFYAQL8yg//a0ublbfMsaUOzriZuXEcpjTPF6XJrPDj DyyQVv+1XUDC7LsGpZ9RbUQZXwYegyQvfYWzzWGJvWqVmeC/IWlZEKOd2RKVtMzF +jXlhvWefNpAB2gTISNfTAK4N8o/8dZuBJ9ZvOhyGKZSpI2g/MP/Tf0lJgCPkH7K uQy2voBGvA+od4VohZX+YIyHa80UH2xZirpAyQ/UvhESCMbaPGlR8xEs2jSCqowx vV6vmzJio7jBnJgBd3txA9EVMLAiZ0eb9ggIfhqNNaCR4S7sQX59rAuzIn+c1cN1 sieDKm/EKum02DmFjKQrXoPgj+RCHffLodLLyEJvP7+X1jjcWz+cR79/mME9bRhM IWci5I6j6FOtiD3EWxPpEp9Yay9bcHm9G331YNN7sP1Qk4rS7cCI2/Ubfh5PJQZI KR+otl8IvXbH0CabphPZry2lC1iy54DK9PxA7fbcxeiJeQfEXsOxpLdg867KAUux LkOURdAnoj0dwQo4xC9UF05x3S4j1KAhxpAPDrTDKni2S96qds6R8qV6QWJ6S4zn YfOScJY/707Gp80YTEJmpvYte9ZiVbEVn+CMZ2uZ8GGf1sygXw/CHqDMRxT1ju63 K0u2lhizmqM9zpoP6NPwFTlHt9UPRm57CxXB/iyLwu4uLbv44Zlm5I484OES747r RUMOXHWLFwE= =gRZc -----END PGP SIGNATURE----- --=-lNPnkQgEkKZ3kzx+QU1v-- From joshua@shallow.net Mon May 17 13:15:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F0F58C002808; Mon, 17 May 2004 13:15:35 +0300 (EEST) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id 7FF97C002801 for ; Mon, 17 May 2004 13:15:33 +0300 (EEST) Received: by yello.shallow.net (Postfix, from userid 1001) id F3A072A59; Mon, 17 May 2004 20:08:56 +1000 (EST) Date: Mon, 17 May 2004 20:08:56 +1000 From: Joshua Goodall To: Timo Sirainen Subject: Re: [Dovecot] using one-time passwords Message-ID: <20040517100856.GE17516@roughtrade.net> References: <1084468593.2651.33.camel@johannes> <1084753491.2023.52.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1084753491.2023.52.camel@hurina> User-Agent: Mutt/1.5.4i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 10:15:36 -0000 X-UID: 9104 Status: O On Mon, May 17, 2004 at 03:24:51AM +0300, Timo Sirainen wrote: > The OTP-data could be stored in same way as > PASSDB_CREDENTIALS_DIGEST_MD5. Except the code doesn't currently allow > multiple credentials per user, it only uses the beginning of the > password field to specify the password type, eg. "{PLAIN}password", > "{DIGEST-MD5}digest-md5-credentials", etc. I guess I should do something > about that.. Please keep it as compatible as possible with the equivalent LDAP scheme! (Also bearing in mind that LDAP permits multiple credentials per user, although it can't do anything much sophisticated than retrieving them). Thanks Joshua. -- Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 From charlie@rubberduck.com Mon May 17 13:27:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3BB71C002808; Mon, 17 May 2004 13:27:26 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 12897C002801 for ; Mon, 17 May 2004 13:27:24 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 2DC4B1C2D5BC; Mon, 17 May 2004 13:20:50 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 274851C2D5C3; Mon, 17 May 2004 13:20:50 +0300 (EEST) Received: from lazy.spodder.com (unknown [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 89CA51C2D5BC for ; Mon, 17 May 2004 13:20:14 +0300 (EEST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 0B45B9072 for ; Mon, 17 May 2004 20:15:43 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id F2778694310; Mon, 17 May 2004 20:19:50 +1000 (EST) Date: Mon, 17 May 2004 20:19:50 +1000 From: Charlie Allom To: dovecot@procontrol.fi Message-ID: <20040517101950.GB3703@myinternet.com.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="KlAEzMkarCnErv5Q" Content-Disposition: inline User-Agent: Mutt/1.5.6i Cc: Subject: [Dovecot] dovecot (mutt?) tells me I have new email (when I don't) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 10:27:26 -0000 X-UID: 9105 Status: O Content-Length: 31648 --KlAEzMkarCnErv5Q Content-Type: multipart/mixed; boundary="76DTJ5CE0DCVQemd" Content-Disposition: inline --76DTJ5CE0DCVQemd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, does anyone else, whilst using mutt, have the problem where you read your new email - then change to another mailbox, *then* mutt tells you that you have new email in the mailbox you just read!? It seems to only happen when I: a) receive email in, say, =3Dmi b) change to, and read email in =3Dmi c) hit 'c' to change to next-unread mailbox d) mutt says "New mail in imap://yeled@localhost/" e) I 'c' back there to =3Dmi and there is no New email - but there are=20 some Old 'unread' emails (ie "O" status in mutt) I've attached the IMAP logs. Of special note is the RECENT after the thread 'a1192' in the file 203.018.243.123.00143-203.031.232.002.57 a1192 OK Status completed. * STATUS "mi" (RECENT 1) a1193 OK Status completed. I believe it's telling mutt that there is a new email in "mi" after I've just read it!=20 a1184 OK Status completed. * 890 FETCH (UID 901 BODY[] {3661}=20 ^^this is the email I just read, and is now "New" again. Subject: test2 Is this a mutt or dovecot bug/feature? Regards, C. --=20 charlie@rubberduck.com - Melbourne, Australia http://rubberduck.com/~yeled/ PGP: 0x14AA7941 || finger yeled@lazy.spodder.com --76DTJ5CE0DCVQemd Content-Type: application/x-gunzip Content-Disposition: attachment; filename="203.018.243.123.00143-203.031.232.002.57196.gz" Content-Transfer-Encoding: base64 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 SUwmi+x2nwWI6a/0h8Lh/wNzpdaoYFkBAA== --76DTJ5CE0DCVQemd Content-Type: application/x-gunzip Content-Disposition: attachment; filename="203.031.232.002.57196-203.018.243.123.00143.gz" Content-Transfer-Encoding: base64 H4sICPyOqEAAAzIwMy4wMzEuMjMyLjAwMi41NzE5Ni0yMDMuMDE4LjI0My4xMjMuMDAxNDMA 1J1bcxzHkYWfFxH8Dx18ksIecLruA5kbAoEhBRkkKABUSN71Q2OmAQw5N84FILze/e1bMwCB 6jyZ1fSbbL9Q6OzLVPYtz5enq+rG/xUH++/3Xx0dH53//mynin8oi+OTN0fviud39bgePi+e X4yr6+f3y1RxfHR2XjyPf334iy7O+sf9g/i3o3evTn57+KspXvfPD34qyj3lesV3H44Oi9fH +2/OiqN35/3Td/vHh/vn/eL09UFQavfs6G/94tXJ4e+77/v9v/7XT/39w/7p7uuj/vHhWfHd NvL16cnb4uzDq583ezo/KQ4Oirf9s7P9N/1O3PRp/3X/tP/uoH9WHJzEHbw775z//r4fd9Y5 7b8//r0T13j8x/HRuxj3W+d4/1X/+Pu/f39/wLZ4d3Ly/v7frjg73z//cFY8n4x2F6vnxXen /YO40YdQnyymy0K66ny2XE2qZb2gUb00alpdjWbLzmCyJGFllwm7qFcVE1qmoctVtYIIlUZc D+linS6e3dSL6ejqmv700jxGjUfL1XL3Yn21WlSfaZilYcthh4t7GujFZAQ7842lnVU9uIZf 9TTeszksTIb5ki5UXXKM1aSaDqvOOqYLYksSO6xG47vOp4uY287guppe1bCKoptfL5ejurNc T2mkphuPoz+Y0dFQdOgfwjqDG9g3Hf7JerXif5jjIof1DY3zJG58uZrTmEBiluPRZK75/fb4 WNyzfkrTYDaZDOvl6GqqaFDJBGkaRDMyrBa3o2lnPlvAxaIhJ0ksM+KaJmdaTWdXNIim5e3B AQ2BfNTji858QsNoOubDi080hqZjWq9Wo0lNwyAT1VXdqdYkzNCr5SGsM56t49lPo+n18jX6 ZjSgoTQrX0Or6TRuegCbppn5Gv9xdkGzYmhWvsZu7iQ0libna+yknq5m9AZuaJ6GcXThp9Es 1ZdVZ0QvG0PztImaL0Y31eCOhtJcbUIH9XQ5WyyvYcOWpmxUry53l0v6yy1N1jZuuKgu4bKw NFnbUCFTlmZqGzyaLzq39MqwT4lazODOZyE19WC9iLfSu2U1nIzo/dTS3MTUxOfP7qKOz89p NcaT29JE0TWmdzS3lrm6NqvEA1vEE4a96Vmavod1hjO6dUdT9xApjLSjGXwIv67H9KRwNIMP oZsbW7y73daLORwMzWO6yqQazHENuBsma9xUX2g4zS/ZgQv03uaEFG/XWM6rBRyRkOHtCoPZ RTWmJ50TEswl1gmJ3W59pIMj8V5I7+a21In/puFCerfh22thtKK3Ci/kebvOajYbx7cWuHK8 kOntSp/iGyGNF/K8jR8s7uarGV1DSPX9T5nQs9ULed6Gz+vF5WxBH41eyPR2lcloSc8ML+R5 G79J9ri+qcd0JSHh98f1id7eQi7fX8qShufyPZrGl/sxPaAgpDu+ntOTNUiX86er5WIgvM0G mumH6NvRvDOMgxrfbekaNNPJGov6ZlTf0hVorpMV8IUrCGm+vb2VfoKQ6OVsvRhIb/FBSHQ1 vJkN8AHdExL9dF9yhq6SS3Y9uahpodbLXdncu2wP3pjG1fJ6CI/ZHs3x7WiBe4e0xhL3cvSF feD1nlIaD3IZbziwT5rG0XwGu6SJi4+E2ZI+RHo0U+tpPKrNeIym5HosuzRND2/3zG8ou1j6 bWM3t0N6Xyi7Qokh3EfKrlBmDDexs/nm1ZOuAVXg/Rpf6EOm7NJMfd02fdsou/Ay+xAZX0KZ AaEpu09Hh3kVK7t86jrxDvaJhtL8PYTGkbuh+klZ0gTG4HiG3c4Wn+YLWneVJU3hw6ah2CxL uLZW40+dIY2iWfs4p28oJQglt3W1uo5vV7M5jaR5uhxNP7GnYgnFYTUYVxeTahpLFRgimqbZ PzqjJeycSVC8SmfL+KzkN0vTpFy329n8kwSCvLINfEgSjaUJut9odUvjaHo2d6hxvVzCK30J ospFBUdIU/TrOY14Sk0cl8XscjS4ruMQ3XUVjUwUw4vZl91qfdUtaYzHGNhOaMZ8XE8xpteM mVSLLtE6ykQ1eYjBY05Ek23MdHbT7dKYpxGfzZf8Zp5GOj7gVtN43vJxSY33qObxkbYRycc8 DTh3qehUov0qw67gbNYNtXaTEBjIhlJbzXGoTUOkvawvMKKhzX5cjzFCNSOmGNGQZ7mUJ2LH NuIOI2wasaznGPE0qpsxm8+m2xeAB6H97CHIFwfHJ2f9+/8IhAeUG5HigQekUth2me0+UoFy oxf+4bFAmYgj93SjOWC2kThKCkqbZo0uM8wpCmeobeRMIgWldUwYSwpK27g0GFJQ2sZVQUlB aRuXhEAKSpAwWFJQgnTBk4Iy0S2QFJSJRCGRgjIRJYAUlIkEAaSgBLVBJgUlCA2tpKAEpUEi BSXoDCwpKEFeEElBCdKCRApKEBR4UlCChoCkoATdQCYFJSgGEikoE7FAJAVlIg+IpKAETUAm BSVIAXlSUIbuI2csodAHIFBCYc8CgRKKegQCJdTwLBAooXBngUAJ5XoOCJRQrotAoIQ6PQ8E SijRZSBQQn0uA4ESCvMcECihKmeAQAmVOAcESqjDRSBQQjWeAwJlj6aMBwIlFuUSECihNs8A gRJKdBEIqKRCRyCgoCbPAgEFVXkbEFBQl7cCAQWFeTsQUFCiS0BAQYmeBQIKanQRCCgo0VuB gIJSvQ0IKKjXs0BAQcHeBgQUFu55IKCghm8DAgoqehkIKKjp80BAQWWfBQIKavt2IKCg0v8G IKCg2s8DAQVFfxsQUFD6Z4GAAgWgFQgoUALyQECBLPANQEBBx0UWCChou8gCAQXdF61AQEEz hggEFPRifAMQUJpmug0IKE0z3QIEFPRr5ICAgo6NNiCgsGejHQgo6OHIAgEF/RytQEBBb0cL EFBco0cOCChs+WCBgIKeDwYIKGj1yAABlegcPBBQ0N6BQEBBWwcHBBQ0dMhAQGE7hwgEFHR1 ZICAguaOPBBQ0OHRBgQUdHlIQEBBn4cEBBS0eeSAgII+DxkIKMunjgECCro+MkBAQc9HDggo 6PeQgIDCNg8GCCho7EAgoEAPkYCAAklEAgIKmjkyQEA5miYOCCho3WgBAgqaNwQgoEBFkYGA AhWFBwIKpBMRCCjQTgAIKNBNKBBQiVySBwIqkUskIKASqUQCAiqRSiQgoBKJRAICyjsawxwz ARQMEFC+0W/Lb+ZppHNAQCVdEXkgoBKdRAICKhFKuEslNPRzCQio0BBlGSCgQkOQZYCACg0t lgECKjQkWAYIqBCaEQAEVGiosFzKe91mBAAB1Ws2jSMQUImsIQIB1dOPkpbqmSc4oHqWwAG1 kSDALKB6/sksEC/CPzwVUL2Q/OJGIigC0N00C3RZyZyU9JzU3QZjkBCA7momjEUAuts4yxkE oLuNs5wiAN00SAgIQIMKwSIADQoEjwB0IjsgAtAldzehMWV686ILk2GmCECDXCAjAA1CQSsC 0KAXSAhAg1LAIgANCoGIADS2AAgIQIMawCMADSoAIgANdb+MADQU/RIC0EmtLyIAnRT4IgLQ UNDLCEBDNZ9HABrLeTQLaCjggQ1oKNxZNqCxVAc2oKE4Z9mAhpKcZQMaavEcG9BQh4tsQEP1 nWcDGspvmQ1oqLtlNqCh5M6xAQ31NsMGNBTbHBvQUG2LbECDsSLHBjTW3Swb0FB7i2xAQwGe YQMaKnCRDeikAEc2oKHizrIBDQV3GxvQUHC3sgENlXc7G9BQg0tsQEP9nWUDGkpwkQ1oKMFb 2YCWzBciG9CS+YJnA1oyXohsQEu2C4kNaMl9IbIBLRkwuMRmHRjIBjTU7Vk2oCXvRYYNaMmA kWMDWvJgCGxASxYMkQ1oyYLBswEtuTBkNqCzRgxkAzrrxBA0PZ21YgAb0FkTBrABnfVgsGxA SyYMZANaMmDk2IAGC0YbG9DQcNHCBjR0XeTYgJb8FyIb0JIFI8cGtGTC4NmAFo0YIhvQXAtH jg1oaOZoYQMa2zpYNqChoYNhAxpaOTJsQCeCBs8GNHRvIBvQ0LXBsQEN3RoyG9DQtCGzAQ2t Gxk2oKF5I88GNLRvtLEBDY0cEhvQ0MchsQENTRw5NmDAaSGzAQNdHSIbMNDRkWEDBpo5cmzA QB+HxAYMdm8wbMBA5wayAQNCicQGDGglEhswnJ9CYgMG+jM4NmA4H0WODRjoyhDYgAF5RWYD BuQVng0Y0FRENmBAVAE2YEBQoWzAJDpKng2YkjTwM2zAqC7G0O0o0sDPsAGjCIdghGKjNI3B Y1aEQzBswCSaicAGTCKV5NiASSSSPBswiU4isQGTCCXcpaIbQrnEBoxuqLUMGzC6odQybMDo hkjLsAGjG9oswwaMts0IYANGN+RZLuVNfwTDBkzTGsGwAZPIGiIbMKZbbNX8rbzfizfXJ+H+ 7/cB5Tbg7PzktL8N2Ar/u2dHx3FHxXf/fVbX04dNqSe0YIwmaMFslImm74B9Vb2PtU8+hDic f3jgYBJ5hLEhGNNIJ2UQxqS5pMt6zMkP575tXCISgzC2ZMJYBmGazgmGQZiGeQIYhGn6JwQG YUDCYBmEAdmCZxDGNu9LdGlg7lo0ppfeJMnCRHkABmFAZJAZhAGRoZVBGNAZJAZhQGJgGYQB VUFkEAa0BIlBGFAReAZhQDtABmFAMJAZhAGlQGIQJtEIRAZhEk1AZBAGlACZQRiQAfIMwqAG gAzCQPUPDMJArc8yCIMFPjAIw31UARmEgWKeZRAGKvgcgzBQuosMwkDZnmcQBmp2mUEYyXvB MAgjGjA4BmGgXmcYhIF6nWMQBgwXIoMwULHnGISB2p1nEAaqd5FBGCjeMwzCQPUuMgiT1O7I IAxU6lkGYaBMb2MQBsr1VgZhoG5vZxAWqneJQVio3bMMwkqODGQQVrJiyAzCSlYMkUFYyYjB MwgruTFEBmElQ4bEIGzWlsExCCu5MrjEZv0YyCCsZMjgGYSV3BgZBmElQ0aOQVjJkyEwCCv5 MkQGYbPODGAQNuvMYBmEzRozkEHYrCdD0A5t1pgBDMJmXRnAIGzWlcEyCCu5MpBBWGUem60s tGW0oQULzRktaMFCd0YOLVjJZyGiBSvZLXJowUIPRxYtWK6dI48WLLR2tKAFKxkuJLRgsc+D RQsWmjwYtGChsyODFmyidvBowUJDB6IFC20cHFqw0MchowUL3RwyWrDQzpFBCxa6OfJowUJX RxtasNDcIaEFK3kr8CVCclawaMFCo4eMFix0eYhowUJ7RwYtWGjsyKEFCy0dElqw2NLBoAUL nRyIFizoHxJasCCBSGjBcvYJCS1Y6Nfg0IKFHo0WtGChR0NACxZUExktWFBNeLRgQSoR0YIF rQTQggWdhKIFm8gjebRgHWnhZ9CCTaQRCS1YRxAFgxasJ4iC0ZmtL2kMHjO1SjBowSZSiIAW bKKA5NCCTZSPPFqwifwhoQWb6B/cpeIbKrqEFqxviLAMWrChIcAyaMGGhvbKoAUbGpIrgxZs 0yXBoAXbNEhwKW8aJBi0YJsGCQYt2EStENGCDU9N+DZ8A4uwiRpxdv9E+3B0+Ov+8dHh0fnv DyFlsf/+ff/d4WPIPYAo/qcX/P8+2zmsVvVe8XY2/XMRX/XfVneF2kx1UPb2VNiLj/4/ld1u 99nO68VsslccXFeL8agu9sfj2aT4y+D+P39crC8u6sVwPfi0O5hN/vPZzvlsr+AXPts5W198 rAervWJVL1fls5238S6z0XmODveKv2z2vak5uj0VTHf3zb6OpdePk7t459y8Faw2m4hnU9zF 29Gk7vwaz8/RbLpXlLvxGA9mMSoW/ud38/iTJuvxarS5bl5slMh6+EMxGQ2q8dXL+dW8s7yu yh+e7fxHfKatZoPZ+OXzaj4fx+WruLkX24i4UrVaL+rnPxQXseKPT+67l89P6+rzcvbl6uTV T69/e3X90/OnvR7GZ8BsOVptj2c0HY+m9bOdD/EK6uxfxeVxjNer1Yty1+66URyFVdz4cq84 PXm2s/l/p0M3TX/Pqv6yejEfx1e9H7Zju6xXL9fx/rwcjEYtR/G4oUU1XV7GI+pPB7NhfHvb Kz6vZ6t6uBG7pqvqYlxvjmX8cTm83BzSSxVHVUhk0Sne1uM4MjEtfy7218vVohqPqhh/vVrN 9168aIa/+L/tzBsv4vL3b97vFd0vpdnf9734wvjPfxbxwRwfiMU25Mdx9Y+73fgrhsN6cX/K fMvwiPlrGZvNtuP/XvU304PEQyvOjt68i5fUaX/792c7j+fYm+n6/ZviptxVu6b47nD7Jvf9 ZgOjw3D46pfX+5+Pfjv6PPrb4e312ef6Q/90fzS92f/59ujK/OlAz79cXv/qfz69GfqlO68O T/Zf1L8cXE2uf+k/21mbnitPP+hV78WbX04+V723w8Off++/fLbz8vr05PThGDcXMXeE3PDc /31z/auvYFC7vc1H5v7waND2dEJYg4tvAASx2p5pRgSMsAmE3W5DorC255qhIROafCjO9uiH 4myvx3jB4gvXv5cXzHXLx8eQa1q1KId1DYsWXfYtn4NzTV+WxGFd05+V47CuMZkNx2Fdc0ob ymFdcy4bgcM6UBxZDutAaOQ5rEsURuSwLtESJQ7rEukQOKxLdELgsA4kQZnDOvRhtXFYB3qg xGEdKIEsh3Wg/Ykc1oHuJ3FYB5Ifz2Ed6HzIYR18cUXmsA4EQInDukT4EzmsS8Q+kcM60Phk DutA3ctzWIfCHnJYB3IecFgH8h3LYR2IdshhHfddFOSwTvJi0bB/5TtxTjRhAYd1ogeLZ05O muiG4bBOnO0GOawT57rhOKxDGQ85rAP5juOwDkQ7kcM6UOtyHNbxXizgsA70OpHDOhDrMhzW gVoncliXqHXIYR3Ic1kO6yTLlchhnWS9kjmsk+xXGQ7rJB8WSKhOsl8JIy15r5DDuqzviuWw Lmu84jisyzqvgMM6yXYlcliXNV8xHNaB1NfGYZ1kwOISm535Bjmsy3qugMO6rOWK57Aua7oS OKzLWq+Qw7qs74rjsC4/Bw7lsC7vueI4rMv6rpDDuqzxSgAtLjv/DXBYl53/Bjisy859w3JY J01/gxzWSZPe5LxgDrq12oCtg8atFmDroHcrB2yd5LoSga2TTFc5YOsk4xUPbB00c7UCWyfN gCMBWydNgCMBW4df1mWBrYMuLwbYOmjuygBbl3R48cDWYWMXAFsH/VwcsHVgw5KBrZMsWOxv +Be+E+ck/5V0HxFdWBKw9dKcNwBsvTTjDbxteGm6GxbYes6HJQBbL7mwENh66N3KAFsPnVs5 YOulqW6g2PTYrsUAWw8tWghsPQglErD1oJVIwNZDP1YG2HpoxOKArYfOqxZg66H1SgC2HuQV Gdh6kFd4YOtBUxGBrQdRBYCtB0GFAlufOrOywNZTfxYDbD31ZzHA1lN/FgNsfTqdjQBsPZ3I hj3m9u/E+UQzEYCtT6SSHLD1iUSSB7Y+0UkkYOsToYS7VJoGLQnY+qZLiwG2vunSYoCtb7q0 GGDrmy4tBtj6pkuLAba+OYENl/LmBDYMsPXNCWwYYOsTWUPkr97oJx7gjSE8wG9Eim80cHnj EgPXvwGl8YlWwhi4fMOhBeDAN0xaZJnl3ItwwrLOLKABvunKyoED37RnMeDANx1aFBz45tQ2 Ajjw6MziwIEHJYMHB55YtOjSHnOrITGJRgHgwCeKBIADD+KDDA486A6t4MCD8CCBAy85s2iY 8K05rKo8b8tifxj7uTl8owJJAcGBl0xZ3H5BQJDAgWe9WfQxkqgFIjjwWVMWjc19cI4ZcZQG EBx4EAQAHHgQAFhw4PGDKwAOPPeZFQQHXnJm0TDJksWBAy+6sgAceNGQxYukXjRlITjwoikL wYEX58ThwIGH6p0BB561ZlF937OuLBYceKjac+DA88YsAAeed2Vx4MDzniwhU1DKi+DAJ5U8 ggMPtXsWHPhWOxac3JIbSwYHQTJjZcBBkGxZUMoHyZHFj3SQXFkIDkLWjcWCg5C1Y3HgIGQd WQAOQtaOxYGDkPVjMeAgZCfJ4cBBkExZXGKzM+QgOAhZRxaAg5A1Y/HgIGS9WAI4CFlDFoKD kLVjceAg5OfKoeAgZN1YLDgIWUMWgoOQ9WIJgl/IOrIAHISsIwvAQcjOkcOCgyBNk4PgICj7 2CEVcnYslgeEnB+L4wEB2jVyPCBIdiyRBwTJi5XjAUFyZPE8IEhuLJkHhKwfi+EBQZr/RuIB ATs+WB4QoOWD4QEBOj0yPCAkMgfPAwJ0dyAPCNDVwfGAAP0cMg8IkimL+w2SJ4vjAUEyZEm3 B8mOJfKAINmygAcE0ZYFLxHSbDcsDwiSKYt5wwqSKwt5QOA8WRIPCJwlS+QBQZrpBmrIgF0e DA8I0NeBPCCA/iHxgAASiMQDAvRyZHhAgC4OjgcE6Nxo4QGB92UhDwi8KYvlAQFUE54HBJBK RB4QQCsBHhBAJ6E8IKS2rCwPCJw5iz6tqTmL4QGBmrMYHhDQnAXicKDmLO6Y6Tw2DA8IvtFu y2/maaRzPCAQW5bMA0Iif0g8ICT6B3epNJ1ZEg8IxJ6FPCA07VkMDwhNexbDAwK1ZwEPCE17 FsMDArVnMcdBvh4HPCA0569heEBI1AqRB4Tw/9WdQW8cxxGF7wb8H3gXErC7irus3GQlcOI4 JhHFsZWjHckkZEE2FQnIv08t4Gi7+71XMwICRPbJ4r6R5R0tOfV9VV1xfi6My+Hf29kTXEdf PMH1iR7A3MB1+K9rbuA6hqfimN7yFf9fx/h+r6+xCUP4+zkvqVH4P6ZlNSX+j3l3DcH/MQ9D rPg/5n01Av8H0AOK/wOIAcf/cTl/71hfZadOrplJbK4vDm/ziv8D6nuN/wPq+038H1DiK/wf UN1T/B+4x0bh/4AyXuH/gAKe4/+Ash3xf0CtrvF/QJGu8H8M5bnE/zGU4xL/BxThGv8HVOA1 /g8svxH/BwxLAP4PqMcp/g8swgH/BzsKBfF/QMFN8X9AlV3h/4DyWuL/UDtsBP4PucwG8X/I VTaI/0PusmH4P6CmJvg/oKZm+D9gcELi/4CqusL/AfU1x/8BFbbE/wEFdoH/g++wYfg/hvoa 8X9ANV3i/4BSegv/B5TUm/g/oLbexv+hlttA5R5qqY14p9VCG8T/oYYqNP4PNVUh8X+ooQqO /6Pca8Pwf5RrbQj+j3KrDcP/oQYs2I0tJysQ/4eaq+D4P9RcRYH/Q01WVPg/oF6v8X+Uy20Y /o9ytQ3g/ygHLCj+j3LIAvF/lAMWgu9Fvdtmxf9RzlcA/o9yuILi/1ADFoj/Qw1WVHMDAa0T W54goIFiwxMEdFBUniDUbIX0BKFGKypPEGrIgnuCUJtttCcItdpGeYJQa22UJwjsxaCeIKAR g3iCgO6LwhPEgC64JwhoukBPENBqwTxBQK+F9gQBHRfaEwS0XBSeIKDjovYEoZbZSE8QaqUN eIJQ+2zwaUNusmGeIKAZQ3uCgE4M6QkCWjC0Jzgd6oNh5QkyLRTEWmxmEj5b6Akytd418ATt EkCJ8ASZXO+T8ASZJNMSwhNkeL1NxBNkitygwhPkBett4p6gXQJekZ4gs1w+LJ4gc+vtUZ4g o+s9Wj1BRtZbtHiCTAxwtvIEmVz69NETZIYcBge/z+Ib0BNkZvENCI3b5bqvhv2Z13016Aky c37HuSfIyPmdLjxB5oYar/IEmZyPhOOZ8xvOPip9QuLCE2RsorXoCTIxHwUHnqBdzutq0BNk YmKz6AkysRwFt3qCTEx4lt3yeQYCPUEmJteAniATwz4g4QkytH0aXIbO7yw/3C0jIQ93i43D 3eJ3WbLvOdyNHb42nu8Gry9HvHV9xFv48beff/aRHfH2x0d+89XtX2/fPhwe3by7/+F/eMTb +lv//454e3n35p8vXt6dD3mbb/5vLm4fnr+6f/vq4unbn04PgJk436GLJ2/f/Ov1q+cP/331 4mk+Ydx///xNxn6fP09Ot/70z6Msu+3i+rTbsuf33Hz1L6+/u//x+fnV0yq7lmXF4dD3vUUf xTFvz76cjnm7e3j9+M9Pfr765sm3X727ujvcfv/2259vXn73xdO7N489Hh4/+eH+m+f26Sc/ 9i/+/vjrN+8e//Tvfzz84bPbq0c3109u/3Q65u3yxbNnO455W9+eX455a/mRem8Y8xdtNoz5 lf7eML66/+VL9l4vnlzlx64X8w98/u6MA0f58vSt+WF9VPED+XEGP83mtVPCKmbsmsSYVczo 9NMPrWK7nMed7tZH5XnOiVvFTK3PdcwqZgye6ZhVzNz8pLG+yg6cXTOH8bFnfXF4m1/Ai3Bc mLKKmcWp8doqtksgh8IqZhLqVmIVMwYVq7CKGYV2K24VMwnTyMwqZm4tfcAqZgY34AqrmFmY E+BWMZPn26SsYoaChNZHJmB70ipmVrAEbhUzD+UoWMUMrbdltYoZgftBrGLGgO2sVjEzhMiC VcyYGKZZY+rQMGIVM62ODFutYrtUW6m4Vcy8EpZgFTOrjCVYxcwqW0msYqYB7oBVzBA7POx+ /djA5JOyihllmlJYxUzTo8NWq5g5emoYsYrtEhdJS6uYYWoriVXM6HAq5WoV81W4NYVVzLhw Hcoq5hXCdUirmJcI36GtYl4jSPjK+TIpCLh6pwX7BqvYmhqGklYxL9k4LGy1inlFpS5Xq5jx DW25WsW8otKWaBXzgkpcEquYV4gbTG5sK6eiwCpmvjJZq1XMeOWwqFVsTc1EFVYxL6oMB1jF jFeCg1jFvKKcj3q1/m0tR6OYVcxLKm8JVjHzlbjkNiAvKrdVLVYx49X9Xq1ixqv7zaxi3ghx u8EqZlR9nLVVzIuKo8KYVcwr4MDU0irmBYW4hAeuBh1aG1YxrxA3urCKeZG40dQqZnxz2HGx inlJdbPRKuYnqNxIhs+yDVu8mFXMHGP28F+H2yqtYobPt5RaxdaglwusYmvQwUWsYqbWOyWt YmaLQ8Pg/0EcGEasYn67KnQl+z6i9lgpq5hXCG+5WsVMKmO5Pm00ucSKWMVMi2PDyKNYgwYv ZRUzKmQls4qNrbCSVrGpeSkoNht2cxGr2KCJC61iA1CirGIDVqKsYoNmrcIqNmjVYlaxQXvW hlVs0J4lrGIDvKKtYgO8wq1iA6YirWIDqAJWsQFQWa1iGzhKbRXbwFGUVWwDQ1FWsR0WO0ms YltXVRHF1NZpKPpnXuwksYptYCbCKrYBlVRWsQ2IpLaKbeAkyiq2AZSwj8pxorTKKrbjRGuJ VWzHidQSq9jmTVXEKrZ5FIpYxTZPQRGr2OYpKHbL5ykoYhXbPAVFrGIbsIYUhu36atiKchpn mZeiZGDcdHIKiEUnmTwvOslfLItO8iux92CzfGY+rz85PQt89J6hDXiEeIYW0+1cPUOL8V6u r+3YiJKpPRtRMrZ3I0pGNzaiZKLaiJIv79iIkqXOno0oGdu1ESVzxUaUfHVzI0pm9EaUfFFv RMkXd29EyeyHbkTJS3ZuRMnkno0oWTru3YiS0Z0bUTK5ayNK5jY3omRm90aUzO7ciJLJ7Y0o GdreiJKh3RtRMvtBG1GyRN/eiJKhrY0oGdmzESVjmxtRMrNnI0rG9mxEydgHbETJ9N6NKBn9 oI0omd+9EaV1OY6FDqLLYSzmIDrU68RBdKjXmYPoMH4lHUSHir1yEB1qd+4gOlTv0kF03Dit HUTH002Ug+hD7Y4OouOymspBdCjTtxxEh3J900F0qNu3HUSH6l05iK6Gs8Q7rSaz0EF0NZGl HURXA1nSQXQ1mMUdRFeDWdJB9HI+iziIXk5nMQfR1XQWu7HlaBY6iK4Gs7iD6Gosq3AQXQ1m VQ6iqwkt4SB6OaHFHESvh7RWB9HL+SzqIPqhshzoIHo5nSXYYS8HtMBB9HJACxxEL4ezqIPo aj4LHUQ/vD/AonVoy9hSCx2aMzbUQofujEotdDV2JdVCVxttKrXQ1UYbrha62mij1UIvt9oQ tdDV4JVSCx37PKha6NDkQdRCx/01Wi30gXZwtdChoQPVQoc2DqYWOvRxaLXQoZtDq4UO7RyF Wuh4jG2pFjp0dWypha5mrUAtdDVphQ8RasyKqoUOjR5aLXSxo4aohQ7tHYVa6NDYUamFrkas sIbElg6iFjp0cqBaMOAfSi0YIBClFgw6Ngq1YNCvwdSCsU00lVow6NEQasGAmmi1YEBNuFow QCVSLRiwElALBpxkVQs24JFaLdiAR5RasAGNKLVgbVEURC1YWxQF4cy2DlDRP/PmopPMbC06 yciuRSfNBvJRqwUb8IdSCzbwD/ZR6RNFV2rB+gRhiVqwPgFYohasT+yVqAWbp6eIWrB5cIqo BZsHp9gtnweniFqweXCKqAUbaIVUC2bnRSf5i2XRSX7lah0vMDv8usYLbCAdBPvbvJdmxf42 L6URaN/mxTQK7du8naZC++aTjSBo33z6WKxo33z6OAi0b0AnKNo3QBMc7dvAJBDt24AhFNq3 gTsA2rdxomJF+wZAQaN9A5SwifYNYIJC+wYQgaJ9A34g0b5h04BA+wbUgKN9A1KAaN8ADGi0 bwAFFNq3AQZItG8DApBo36Do12jfoOCv0b5hrY9o36DCB7RvuG2GoX2DSh7RvrGDVRDtG26a YWjfcMlMgfYN6nmJ9g2K+RrtG5TyGu0bVPAa7RuU7xXaN6jcCdo3qNYZ2jco0SXaN6jSK7Rv UK5ztG8whCHRvmHJrtG+Qe0u0b4NBTyifcPVMxXaN7U+VqJ9U/tjNdo3qN630b5B/a7QvkH9 XqJ9gyJeon2DCn4T7Zsa15Bo39S4Bkf7pkY1JNo3Naih0L6peQ2J9k2NbJAb6+XMBqJ9VwMb HO27mtYo0L6rkY0K7bua2hBo39XQhkT7roY2ONp3Nbeh0b6XoxuI9r2c3RDszsvhDUD7Xo5t ANr3cmqDon1XYxuI9l2NbFTjBQ6tGFsOwGFsY8MBOIxsVA7A1cSGdACuhjYqB+BqbIM7AJej G9IBeLnPhjgALzfakGdZhx4P7gAcmjyIA3DccqMdgA/wgzsAh8YOdAAOzRzMATi0cWgH4NDG oR2AYxOHdgAOzRy1A3Bo69hyAA7dHcoBOJ6rKxyAQ29H5QAc2ju0A3Do7pAOwMUKG+oAHJo9 Kgfg0OuhHIBjjwdxAA5tHegAHECJcgAOrEQ5AGcTGMoBOPRwMAfgbPKicgAOXRvCATjgFe0A HPAKdwAOTEU6AAeoAg7AAaisDsAHjlI7AL9aeDpxAH51jRn4fZaWf+IAfGAnygH4uK1XOAA/ LN6COAAfmIlwAD6gksoB+IBIagfgAydRDsAHUMI+KoeJ0ioH4IeJ1hIH4MeJ1BIH4McJ0hIH 4MeJzRIH4EebE+AA/DjhWXbL54kK4gB8HqYgDsAHrCEdgB+vzw7Aj3Hx5c3nN1//7dNP/gP3 6/qecvsAAA== --76DTJ5CE0DCVQemd-- --KlAEzMkarCnErv5Q Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFAqJHGqiZDwhSqeUERAukWAJ9zJJDqf7F77kB2huZ82XAoG72zEQCfTgQR AvdGeqTMtUdKmPgeu9IVrnI= =Uk5r -----END PGP SIGNATURE----- --KlAEzMkarCnErv5Q-- From gmid-dovecot@m.gmane.org Mon May 17 13:52:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4A8D8C00280A; Mon, 17 May 2004 13:52:10 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 5692EC002808 for ; Mon, 17 May 2004 13:52:08 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BPfcV-0003RY-00 for ; Mon, 17 May 2004 12:45:19 +0200 Received: from pd9e1e4b9.dip.t-dialin.net ([217.225.228.185]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 May 2004 12:45:19 +0200 Received: from matthias.andree by pd9e1e4b9.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 May 2004 12:45:19 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Mon, 17 May 2004 11:50:08 +0200 Lines: 19 Message-ID: References: <40A6A093.50205@cnm.de> <868yftqlez.wl%fuyuki@hadaly.org> <40A6E1CD.9030707@cnm.de> <20040516082200.24d70942.dovecot@blinkenlights.ch> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd9e1e4b9.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:66pHB4mqkI1ITqOu7OsCufHo6ow= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: Dovecot vs. Courier-Imap X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 10:52:10 -0000 X-UID: 9106 Status: O Adrian Ulrich writes: > Dovecot performs very well if you have a very huge mailbox. > I have a mailbox with about 30 folders with ~ 8000 messages > per folder (with 200 new messages each day) > > Running Courier-Imap, you couldn't access the mailbox, it was > so slooooww. Courier also segfaulted very often. While I have hardly used large mailboxes with Courier, I've _never_ seen it segfault. Dovecot is faster, but lacks some features that Courier offers, the NAMESPACE extension, for instance. -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From hendry@cs.helsinki.fi Mon May 17 14:20:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BC08DC00280C; Mon, 17 May 2004 14:20:03 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id EA5B5C002808 for ; Mon, 17 May 2004 14:20:01 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id F09B71C2D5BC; Mon, 17 May 2004 14:13:27 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id EE5591C2D5C3; Mon, 17 May 2004 14:13:27 +0300 (EEST) Received: from mail.cs.helsinki.fi (courier.cs.helsinki.fi [128.214.9.1]) by danu.procontrol.fi (Postfix) with ESMTP id 3020A1C2D5BC for ; Mon, 17 May 2004 14:12:54 +0300 (EEST) Received: from bogrund-17.cs.helsinki.fi (bogrund-17.cs.helsinki.fi [::ffff:128.214.48.17]) (IDENT: root, AUTH: PLAIN cs-relay, TLS: TLSv1/SSLv3, 168bits, DES-CBC3-SHA) by mail.cs.helsinki.fi with esmtp; Mon, 17 May 2004 14:12:48 +0300 Received: from bogrund-17.cs.helsinki.fi (localhost [127.0.0.1]) by bogrund-17.cs.helsinki.fi (8.12.8/8.12.8) with ESMTP id i4HBClfR032565; Mon, 17 May 2004 14:12:47 +0300 Received: (from hendry@localhost) by bogrund-17.cs.helsinki.fi (8.12.8/8.12.8/Submit) id i4HBClP6032563; Mon, 17 May 2004 14:12:47 +0300 Date: Mon, 17 May 2004 14:12:47 +0300 From: Kai Hendry To: Charlie Allom Subject: Re: [Dovecot] dovecot (mutt?) tells me I have new email (when I don't) Message-ID: <20040517111244.GE32372@cs.helsinki.fi> References: <20040517101950.GB3703@myinternet.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <20040517101950.GB3703@myinternet.com.au> User-Agent: Mutt/1.4.1i Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 11:20:03 -0000 X-UID: 9107 Status: O http://www.dovecot.org/list/dovecot/2004-February/002950.html From charlie@rubberduck.com Mon May 17 14:34:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AE849C002808; Mon, 17 May 2004 14:34:55 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 8CE8EC002801 for ; Mon, 17 May 2004 14:34:53 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 8CF431C2D5BC; Mon, 17 May 2004 14:28:19 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 86EB51C2D5C3; Mon, 17 May 2004 14:28:19 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id 6BC081C2D5BC for ; Mon, 17 May 2004 14:27:45 +0300 (EEST) Received: from machine.internal.schools.net.au (dsl-203-113-219-180.VIC.netspace.net.au [203.113.219.180]) by lazy.spodder.com (Postfix) with ESMTP id 9D4508FE0; Mon, 17 May 2004 21:23:29 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id DA4756944CC; Mon, 17 May 2004 21:27:30 +1000 (EST) Date: Mon, 17 May 2004 21:27:30 +1000 From: Charlie Allom To: Kai Hendry Subject: Re: [Dovecot] dovecot (mutt?) tells me I have new email (when I don't) Message-ID: <20040517112729.GA5506@myinternet.com.au> References: <20040517101950.GB3703@myinternet.com.au> <20040517111244.GE32372@cs.helsinki.fi> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="yrj/dFKFPuw6o+aM" Content-Disposition: inline In-Reply-To: <20040517111244.GE32372@cs.helsinki.fi> User-Agent: Mutt/1.5.6i Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 11:34:55 -0000 X-UID: 9108 Status: O --yrj/dFKFPuw6o+aM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, May 17, 2004 at 02:12:47PM +0300, Kai Hendry wrote: > http://www.dovecot.org/list/dovecot/2004-February/002950.html >=20 Thankyou Kai. No response from Timo I see :) --=20 moo. --yrj/dFKFPuw6o+aM Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFAqKGhqiZDwhSqeUERApTdAKCk0VONctbNtjuc0gz034sb0ZU5xwCgrC7H 8fAnhIWbVJVqe3Q9mzqYL7M= =y2rM -----END PGP SIGNATURE----- --yrj/dFKFPuw6o+aM-- From gmid-dovecot@m.gmane.org Mon May 17 15:26:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4DBD6C00280A; Mon, 17 May 2004 15:26:48 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 5F7F7C002808 for ; Mon, 17 May 2004 15:26:46 +0300 (EEST) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BPh6J-000536-00 for ; Mon, 17 May 2004 14:20:11 +0200 Received: from addr-213-139-170-200.suomi.net ([213.139.170.200]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 May 2004 14:20:11 +0200 Received: from asalmela by addr-213-139-170-200.suomi.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 May 2004 14:20:11 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Antti Salmela Date: Mon, 17 May 2004 11:40:01 -0000 Lines: 11 Message-ID: References: <20040517101950.GB3703@myinternet.com.au> X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: addr-213-139-170-200.suomi.net User-Agent: slrn/0.9.8.0 (Linux) Sender: news X-Mailman-Approved-At: Mon, 17 May 2004 15:31:24 +0300 Subject: [Dovecot] Re: dovecot (mutt?) tells me I have new email (when I don't) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 12:26:48 -0000 X-UID: 9109 Status: O Charlie Allom wrote: > does anyone else, whilst using mutt, have the problem where you read > your new email - then change to another mailbox, *then* mutt tells you > that you have new email in the mailbox you just read!? I have the same problem bug haven't had time and/or motivation to investigate it further. -- Antti Salmela From tss@iki.fi Mon May 17 15:32:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3CD2DC002811; Mon, 17 May 2004 15:31:59 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 59D59C002812 for ; Mon, 17 May 2004 15:31:27 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 38FA21C2D5BC; Mon, 17 May 2004 15:24:53 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 330EE1C2D5C3; Mon, 17 May 2004 15:24:53 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id EDF3C1C2D5BC for ; Mon, 17 May 2004 15:24:18 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id AAE62300E05FE; Mon, 17 May 2004 15:24:17 +0300 (EEST) Subject: Re: [Dovecot] dovecot (mutt?) tells me I have new email (when I don't) From: Timo Sirainen To: Charlie Allom In-Reply-To: <20040517112729.GA5506@myinternet.com.au> References: <20040517101950.GB3703@myinternet.com.au> <20040517111244.GE32372@cs.helsinki.fi> <20040517112729.GA5506@myinternet.com.au> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-BOVq0+0z1x+KC6Xxvlgz" Message-Id: <1084796657.8365.0.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 17 May 2004 15:24:17 +0300 Cc: Kai Hendry , dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 12:32:02 -0000 X-UID: 9110 Status: O --=-BOVq0+0z1x+KC6Xxvlgz Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-17 at 14:27, Charlie Allom wrote: > On Mon, May 17, 2004 at 02:12:47PM +0300, Kai Hendry wrote: > > http://www.dovecot.org/list/dovecot/2004-February/002950.html > >=20 >=20 > Thankyou Kai. No response from Timo I see :) It's most likely the recent flags. 1.0 will fix it :) --=-BOVq0+0z1x+KC6Xxvlgz Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD4DBQBAqK7wyUhSUUBViskRAok4AJQLjbw3qisiQLOGro8hXNHX7w7HAJoC6TsN ArmxEIgyR/UcRNXMWCKZDg== =yrlm -----END PGP SIGNATURE----- --=-BOVq0+0z1x+KC6Xxvlgz-- From tss@iki.fi Mon May 17 15:32:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 17763C002808; Mon, 17 May 2004 15:32:55 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 38078C00281E for ; Mon, 17 May 2004 15:32:35 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 17FC3300E05FE; Mon, 17 May 2004 15:26:00 +0300 (EEST) Subject: Re: [Dovecot] using one-time passwords From: Timo Sirainen To: Joshua Goodall In-Reply-To: <20040517100856.GE17516@roughtrade.net> References: <1084468593.2651.33.camel@johannes> <1084753491.2023.52.camel@hurina> <20040517100856.GE17516@roughtrade.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-fXoeCRjjgTo8HB174oKq" Message-Id: <1084796759.8365.2.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 17 May 2004 15:25:59 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 12:32:55 -0000 X-UID: 9111 Status: O Content-Length: 1272 --=-fXoeCRjjgTo8HB174oKq Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-17 at 13:08, Joshua Goodall wrote: > On Mon, May 17, 2004 at 03:24:51AM +0300, Timo Sirainen wrote: > > The OTP-data could be stored in same way as > > PASSDB_CREDENTIALS_DIGEST_MD5. Except the code doesn't currently allow > > multiple credentials per user, it only uses the beginning of the > > password field to specify the password type, eg. "{PLAIN}password", > > "{DIGEST-MD5}digest-md5-credentials", etc. I guess I should do somethin= g > > about that.. >=20 > Please keep it as compatible as possible with the equivalent LDAP > scheme! (Also bearing in mind that LDAP permits multiple credentials > per user, although it can't do anything much sophisticated than > retrieving them). How does it do that? By simply having the same userid multiple times there with different passwords? --=-fXoeCRjjgTo8HB174oKq Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAqK9XyUhSUUBViskRAsYdAJ44YLPFU6MyRvAD+3D80XCTLx+9PACcCUFD EUyOJjiM2NdJoulbnPjQjzk= =CR48 -----END PGP SIGNATURE----- --=-fXoeCRjjgTo8HB174oKq-- From discussion-lists@linnet.org Mon May 17 20:09:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BF31EC002807; Mon, 17 May 2004 20:09:51 +0300 (EEST) Received: from lime.pobox.com (lime.pobox.com [208.58.1.198]) by talvi.dovecot.org (Postfix) with ESMTP id C21CDC000D5F for ; Mon, 17 May 2004 20:09:49 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by lime.pobox.com (Postfix) with ESMTP id 4519495B15 for ; Mon, 17 May 2004 13:03:13 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by lime.pobox.com (Postfix) with ESMTP for ; Mon, 17 May 2004 13:02:40 -0400 (EDT) Received: from vaio.linnet.org (dhcp-255-168.ws.afnog.org [84.201.255.168]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id B177A798 for ; Mon, 17 May 2004 13:01:04 -0400 (EDT) Received: from lists by vaio.linnet.org with local (Exim 4.30) id 1BPlUK-0000Ug-De for dovecot@dovecot.org; Mon, 17 May 2004 17:01:16 +0000 Date: Mon, 17 May 2004 17:01:16 +0000 From: Brian Candler To: dovecot@dovecot.org Message-ID: <20040517170115.GA1865@uk.tiscali.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Subject: [Dovecot] maildirsize X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 17:09:51 -0000 X-UID: 9112 Status: O Hello, Are there plans to implement Maildir++ quotas (maildirsize) in dovecot in the near future? Also - how do things work if you have multiple dovecot frontends accessing an NFS mailstore? If you keep the index files on local disk, and clients connect alternately to different machines, are the stale indexes noticed and corrected? Thanks, Brian. From tss@iki.fi Mon May 17 20:25:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C015EC002807; Mon, 17 May 2004 20:25:26 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 49FF5C000D5F for ; Mon, 17 May 2004 20:25:24 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 91822300E05FF; Mon, 17 May 2004 20:18:49 +0300 (EEST) Subject: Re: [Dovecot] maildirsize From: Timo Sirainen To: Brian Candler In-Reply-To: <20040517170115.GA1865@uk.tiscali.com> References: <20040517170115.GA1865@uk.tiscali.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-wdCPHUBQ7KFcTPecCBw9" Message-Id: <1084814329.8365.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 17 May 2004 20:18:49 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2004 17:25:26 -0000 X-UID: 9113 Status: O --=-wdCPHUBQ7KFcTPecCBw9 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-17 at 20:01, Brian Candler wrote: > Are there plans to implement Maildir++ quotas (maildirsize) in dovecot in > the near future? Yes. Sometimes after 1.0-test releases are beginning to work. Maybe within a few months. > Also - how do things work if you have multiple dovecot frontends accessin= g > an NFS mailstore? If you keep the index files on local disk, and clients > connect alternately to different machines, are the stale indexes noticed = and > corrected? Yes, that works fine. 1.0 will also support indexes stored in NFS. --=-wdCPHUBQ7KFcTPecCBw9 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD4DBQBAqPP5yUhSUUBViskRAuUzAJ44vMH+NFQbpXJ46VT/iBlAu5jrYwCSAhWj xndJIvKJl0CB7/jK9B4Daw== =q4pY -----END PGP SIGNATURE----- --=-wdCPHUBQ7KFcTPecCBw9-- From maikel@ladot.com Tue May 18 10:03:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BA48EC002807; Tue, 18 May 2004 10:03:16 +0300 (EEST) Received: from amsfep15-int.chello.nl (amsfep15-int.chello.nl [213.46.243.28]) by talvi.dovecot.org (Postfix) with ESMTP id 101C2C000D5F for ; Tue, 18 May 2004 10:03:14 +0300 (EEST) Received: from myst.dohd.org ([62.163.178.220]) by amsfep15-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040518065637.XRAD25649.amsfep15-int.chello.nl@myst.dohd.org>; Tue, 18 May 2004 08:56:37 +0200 Received: from [172.31.5.180] (pool-5.ladot.com [217.22.64.98]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i4I6ufWW012564; Tue, 18 May 2004 08:56:42 +0200 (CEST) (envelope-from maikel@ladot.com) In-Reply-To: References: <20040517101950.GB3703@myinternet.com.au> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <7F073435-A898-11D8-8708-000A95B3C1CA@ladot.com> Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] Re: dovecot (mutt?) tells me I have new email (when I don't) Date: Tue, 18 May 2004 08:56:32 +0200 To: Antti Salmela X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 07:03:16 -0000 X-UID: 9114 Status: O On May 17, 2004, at 1:40 PM, Antti Salmela wrote: > Charlie Allom wrote: > >> does anyone else, whilst using mutt, have the problem where you read >> your new email - then change to another mailbox, *then* mutt tells you >> that you have new email in the mailbox you just read!? > > I have the same problem bug haven't had time and/or motivation to > investigate it further. I had a similar problem using mutt on plain maildir-folders (not managed by other mailprograms, other than local delivery by procmail) Never wanted to know why, started running an imap server for my mailboxes. > Antti Salmela Kind regards, Maikel Verheijen Ladot Nederland BV. From johannes@johannes.sipsolutions.com Tue May 18 12:44:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8D2BBC002807; Tue, 18 May 2004 12:44:49 +0300 (EEST) Received: from dd2002.kasserver.com (dd2002.kasserver.com [81.209.148.122]) by talvi.dovecot.org (Postfix) with ESMTP id 9D323C000D5F for ; Tue, 18 May 2004 12:44:47 +0300 (EEST) Received: from johannes.sipsolutions.com (dhcp-74-171.uni-paderborn.de [131.234.74.171]) by dd2002.kasserver.com (Postfix) with ESMTP id 779A314B179; Tue, 18 May 2004 11:38:05 +0200 (CEST) Received: by johannes.sipsolutions.com (Postfix, from userid 1000) id 68C1E1516C27; Tue, 18 May 2004 11:38:07 +0200 (CEST) Subject: Re: [Dovecot] using one-time passwords From: Johannes Berg To: Timo Sirainen In-Reply-To: <1084765494.3100.57.camel@johannes> References: <1084468593.2651.33.camel@johannes> <1084753491.2023.52.camel@hurina> <1084765494.3100.57.camel@johannes> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-FGW9I4b50Acu8dci+jmi" Message-Id: <1084788718.2772.6.camel@johannes> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Mon, 17 May 2004 12:11:58 +0200 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 09:44:49 -0000 X-UID: 9115 Status: O Content-Length: 1682 --=-FGW9I4b50Acu8dci+jmi Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-17 at 05:44, Johannes Berg wrote: > > Want to write it? :) Shouldn't be hard to plug into Dovecot, I > > just don't really have time right now. >=20 > Sure. Looking at the code I see that you support cyrus SASL, and cyrus SASL in turn supports OTP even using the same database as OPIE uses. Would there be and disadvantage in simply using that? Alternatively, what about just libopie (the library behind opie-pam)? Over all, its not hard to implement this in dovecot itself, but I'm not sure that would be the best idea. What is your opinion on that? johannes --=-FGW9I4b50Acu8dci+jmi Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Comment: Johannes Berg (SIP Solutions) iQIVAwUAQKiP6qVg1VMiehFYAQKDGg/+NLwY0YG6ympxGr1smOG66THPU4kIAdYc w6J1r76zTHPP4uW0hkHOa/nKvz45Kom/QYYiiBP6e5l54A04vjiHHEhgeqwdppV2 nmIxhrXY34cbTFXuNwyHEu2pigyNjUB9xoX4rUehsGoT3f8ZyRuuKz+MUVA1U03N 0BOSr9WDttGUkY0kdWw7va1O63Lv27UwnwPNdPtvEGBk7ac4usB2VeaQ9Ip31ZGS fQAUyaI49K0UgAut7Kj6TFvtuI1XYTMPVno1lRKoDSp4yz1OQS7FCijMcMu5H9Sb kTtmEQG2ozKohieUzEjpVoge08x22ADJipLqYxrC9S+Yhi45JYXkwqX1sQpIm81W XzowaycI7tA0kNtTF2+ASlx7wVx00M1MpRoF/V4ox5HGu1bkWJKDRFtr8ejHAkO0 sT2FKciKBPfnUSd8dT0vLQiB5crlpJt7aUkheI8cALxRGrLQMwSe0nq+mnui5SvK N+69lTLPkZh2XqaoDDsr7v9RrDbyWGzzcws1cLAHy4QcI7NWe6TnhqVyeqqIHz5c RFIR+9SKdhqYKp0oan1O2RiO25iYegZ8Ph4FFjYY+S4B3LfNjw3o0eYvHa0I0xGK MVkAkv8fQNZcTEuGcLvbYCVf53L4fh/r4DBNwLSXFHOm5nnbW/qipOZ3ESSlz9Mx zvIRsf7pYGU= =reyj -----END PGP SIGNATURE----- --=-FGW9I4b50Acu8dci+jmi-- From olive@pasteur.fr Tue May 18 13:03:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 93C3BC002808; Tue, 18 May 2004 13:03:21 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id 3F531C002807 for ; Tue, 18 May 2004 13:03:19 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 6EC0211474 for ; Tue, 18 May 2004 11:56:42 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 37B0011473 for ; Tue, 18 May 2004 11:56:42 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 0089D3F63F; Tue, 18 May 2004 11:56:41 +0200 (CEST) Date: Tue, 18 May 2004 11:56:41 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] using one-time passwords Message-ID: <20040518095641.GF80377@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <1084468593.2651.33.camel@johannes> <1084753491.2023.52.camel@hurina> <20040517100856.GE17516@roughtrade.net> <1084796759.8365.2.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1084796759.8365.2.camel@hurina> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 10:03:21 -0000 X-UID: 9116 Status: O * Timo Sirainen (20040517 15:25): > How does it do that? By simply having the same userid multiple times > there with different passwords? The 'userPassword' is multi-valued. -- olive From chibi@gol.com Tue May 18 15:17:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 54E4EC002808; Tue, 18 May 2004 15:17:30 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id 73FEBC002807 for ; Tue, 18 May 2004 15:17:27 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BQ3Qk-0001Ls-00 for ; Tue, 18 May 2004 21:10:46 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 18 May 2004 21:10:46 +0900 From: Christian Balzer Message-Id: Subject: [Dovecot] POP (dot) locks X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 12:17:30 -0000 X-UID: 9117 Status: O Content-Length: 1092 Hello, just to soothe my paranoia from many years of qpopper usage, which enforces solitary access to a POP mailbox. Only one login per user is possible at the same time and if a session terminates w/o qpopper being properly notified it will remain locked for some time, 30 minutes by default. With dovecot (0.99.10.4) one can login multiple times (using POP, with IMAP of course this comes as no surprise :) and thus I presume this bit from the configuration: --- # Should we create dotlock file even when we want only a read-lock? Setting # this to yes hurts the performance when the mailbox is accessed simultaneously # by multiple processes, but it's needed for reliable reading if no other # locking methods are available. #mbox_read_dotlock = no --- means that if the only other reading accesses to a (mbox style in this case here) mailbox are via other dovecot processes everything will be fine? Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From olive@pasteur.fr Tue May 18 15:21:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 04523C002810; Tue, 18 May 2004 15:21:41 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id 06419C002808 for ; Tue, 18 May 2004 15:21:39 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 3525A11474 for ; Tue, 18 May 2004 14:15:02 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id EB97F11473 for ; Tue, 18 May 2004 14:15:01 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id C2C1B3F63F; Tue, 18 May 2004 14:15:01 +0200 (CEST) Date: Tue, 18 May 2004 14:15:01 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] POP (dot) locks Message-ID: <20040518121501.GI80377@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 12:21:41 -0000 X-UID: 9118 Status: O * Christian Balzer (20040518 21:10): > presume this bit from the configuration: > --- > # Should we create dotlock file even when we want only a read-lock? Setting > # this to yes hurts the performance when the mailbox is accessed simultaneously > # by multiple processes, but it's needed for reliable reading if no other > # locking methods are available. > #mbox_read_dotlock = no > --- > means that if the only other reading accesses to a (mbox style in this > case here) mailbox are via other dovecot processes everything will be fine? Yes, but you should be aware there are other processes than Dovecot which can access the mailbox, moreover in a read-write fashion, such as your MDA (procmail, sendmail, maildrop, whatever). You had better teach them to also use dotlock files to be safe. -- olive From tss@iki.fi Tue May 18 15:30:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 55824C00281E; Tue, 18 May 2004 15:30:24 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 062D5C002810 for ; Tue, 18 May 2004 15:30:22 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 8A0C91C185E4; Tue, 18 May 2004 15:23:45 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 259D41C185E3; Tue, 18 May 2004 15:23:10 +0300 (EEST) In-Reply-To: <1084788718.2772.6.camel@johannes> References: <1084468593.2651.33.camel@johannes> <1084753491.2023.52.camel@hurina> <1084765494.3100.57.camel@johannes> <1084788718.2772.6.camel@johannes> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-45--798394237" Message-Id: <1EC60642-A8C6-11D8-AEE1-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] using one-time passwords Date: Tue, 18 May 2004 15:23:08 +0300 To: Johannes Berg X-Pgp-Agent: GPGMail 1.0.1 (v33, 10.3) X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.3 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 12:30:24 -0000 X-UID: 9119 Status: O Content-Length: 2057 --Apple-Mail-45--798394237 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 17.5.2004, at 13:11, Johannes Berg wrote: > Looking at the code I see that you support cyrus SASL, and cyrus SASL > in > turn supports OTP even using the same database as OPIE uses. > Would there be and disadvantage in simply using that? Personally I have never liked Cyrus SASL. It's always been annoyingly difficult to configure to work like I wanted. The code there to support it isn't actually working right now, but I guess it wouldn't be too difficult to fix it. I guess there aren't any real disadvangates though. > Alternatively, > what about just libopie (the library behind opie-pam)? That doesn't look very good code .. Looks like if it was possible for user to set wanted seed there would be several buffer overflows. But I guess normally it's not? > Over all, its not > hard to implement this in dovecot itself, but I'm not sure that would > be > the best idea. What is your opinion on that? The reason why I implemented my own authentication instead of just using Cyrus SASL was that I wanted to be sure there were not going to be any serious security holes. I could have just audited the code, make sure the found security holes were fixed (actually did both once), and then just use it. But that doesn't give any guarantees about it's future versions, I'd have to constantly keep auditing the new versions to make sure they hadn't added more bugs. Anyway, it's OTP code didn't look bad. That would be the easiest way to get it working. --Apple-Mail-45--798394237 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAqgAsyUhSUUBViskRAg5oAJ9l33yEUU+N43dcH6SclEcQ+kKybQCfaY39 zQXx8pn8I2Jaw7L0Kehrqg4= =0oY9 -----END PGP SIGNATURE----- --Apple-Mail-45--798394237-- From chibi@gol.com Tue May 18 15:31:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 820E6C00282B; Tue, 18 May 2004 15:31:08 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id 47E44C00282A for ; Tue, 18 May 2004 15:30:55 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BQ3dp-0001Y0-00 for ; Tue, 18 May 2004 21:24:17 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Subject: Re: [Dovecot] POP (dot) locks In-reply-to: <20040518121501.GI80377@mafate.sis.pasteur.fr> References: <20040518121501.GI80377@mafate.sis.pasteur.fr> Comments: In-reply-to Olivier Tharan message dated "Tue, 18 May 2004 14:15:01 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 18 May 2004 21:24:17 +0900 From: Christian Balzer Message-Id: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 12:31:08 -0000 X-UID: 9120 Status: O Content-Length: 1048 Olivier wrote: [...] >> means that if the only other reading accesses to a (mbox style in this >> case here) mailbox are via other dovecot processes everything will be fine? > >Yes, but you should be aware there are other processes than >Dovecot which can access the mailbox, moreover in a read-write >fashion, such as your MDA (procmail, sendmail, maildrop, >whatever). > Exim. ^^ >You had better teach them to also use dotlock files to be safe. > Sure, it of course does that, it being a write access. Just like one dovecot session deleting a mail from the mailbox would need exclusive access to the thing for that time (and hopefully not utterly confuse the mail clients behind those sessions in the process). I just tested this with our web-mail (Ilohamail) and a reload of the inbox nicely reflects the harsh reality of the mail deleted by the other session. Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From johannes@sipsolutions.de Tue May 18 17:27:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 76D3BC002801; Tue, 18 May 2004 17:27:14 +0300 (EEST) Received: from dd2002.kasserver.com (dd2002.kasserver.com [81.209.148.122]) by talvi.dovecot.org (Postfix) with ESMTP id 48124C000D8E for ; Tue, 18 May 2004 17:27:12 +0300 (EEST) Received: from johannes.sipsolutions.com (dhcp-74-171.uni-paderborn.de [131.234.74.171]) by dd2002.kasserver.com (Postfix) with ESMTP id F03163278E; Tue, 18 May 2004 16:20:30 +0200 (CEST) Received: from [127.0.0.1] (localhost [127.0.0.1]) by johannes.sipsolutions.com (Postfix) with ESMTP id D0A591516C27; Tue, 18 May 2004 16:20:34 +0200 (CEST) Subject: Re: [Dovecot] using one-time passwords From: Johannes Berg To: Timo Sirainen In-Reply-To: <1EC60642-A8C6-11D8-AEE1-000393CC2E90@iki.fi> References: <1084468593.2651.33.camel@johannes> <1084753491.2023.52.camel@hurina> <1084765494.3100.57.camel@johannes> <1084788718.2772.6.camel@johannes> <1EC60642-A8C6-11D8-AEE1-000393CC2E90@iki.fi> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-83pX60HoTAXLx/5gho+n" Message-Id: <1084890033.2294.4.camel@johannes> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Tue, 18 May 2004 16:20:34 +0200 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 14:27:14 -0000 X-UID: 9121 Status: O Content-Length: 2553 --=-83pX60HoTAXLx/5gho+n Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-05-18 at 14:23, Timo Sirainen wrote: > Personally I have never liked Cyrus SASL. It's always been annoyingly > difficult to configure to work like I wanted. I don't have experience with it, so ... :) > The code there to support it isn't actually working right now, but I > guess it wouldn't be too difficult to fix it. I might try this. > That doesn't look very good code .. Looks like if it was possible for > user to set wanted seed there would be several buffer overflows. But I > guess normally it's not? I'm not sure I understand you. opiepasswd allows you to set the seed when changing your otp settings. I guess I'll need to look at the code, though I'm not really a C wizard nor very knowledgeable about insecure C code. Can you explain further what possible problems you see? > The reason why I implemented my own authentication instead of just > using Cyrus SASL was that I wanted to be sure there were not going to > be any serious security holes. I could have just audited the code, make > sure the found security holes were fixed (actually did both once), and > then just use it. But that doesn't give any guarantees about it's > future versions, I'd have to constantly keep auditing the new versions > to make sure they hadn't added more bugs. Makes sense. > Anyway, it's OTP code didn't look bad. That would be the easiest way to > get it working. Right. Cyrus SASL can (optionally) use opie as well. johannes --=-83pX60HoTAXLx/5gho+n Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Comment: Johannes Berg (SIP Solutions) iQIVAwUAQKobrqVg1VMiehFYAQL2GBAAn8ScWgT9sIU4tS7TMtF088gvbcv8i/RG nPqQM85jQ0drlifwcU9ahK3gKK7/9eMSFVKQ41vfTOUj7BgBxj9Co9mvOjivpUSn IKh426QSp6A/JuRCLwBScPZYdnajUW9CXhhVhtHDHqSy5c2ZK6NX3Mur4AhOJuDc 1z05dG03Nee1l0vS4N4MqSRKfEKB3CE26U25yO+VypC2a5oXyYvxpGFPlRs5xrrv 0qpuehCZySVY5NCu/rAh0oNZEq+fKYTdXvNKJNJKGfke2TsYtKp3XUZi7aX6Ztlz WR+GGQYLWfw2gHExYiZiU+p0tTXlReBamEM0cTUv2c9FgIxohA6ObG2H5PP1bkPS GzOuHsVNSk/b2aoDo0dn9MkwPsGTO3g7R/2xDk5SKmn7BwlEFuXsSnmvAOX70we3 pzxaSKnTPg7s4ErMJlnzHYSAF9sCtxuf/bdw7e3VpfzK1VgbvnzAYrq7QVjtjvQi XihBuzkcipF8HVBcWpdrUXPTilgMkpi5PigkPDBHRn9BnBPBRS0+bVKMS9LZI69z V87R7F6/ypYcvasYzj1m+dx3GWKNheZW25iMQSm88vqkdemjEO8VtYkz2elODRep fCi/B3WFBJzW6pQ/KymFLOvmz7P+qsdQgCnLY2aEUDTVZ13GqKrWhgAHChZ7QtyV Xt+0VYikkWU= =5el5 -----END PGP SIGNATURE----- --=-83pX60HoTAXLx/5gho+n-- From esj@harvee.org Tue May 18 18:18:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 49D93C002807; Tue, 18 May 2004 18:18:34 +0300 (EEST) Received: from harvee.org (dsl093-191-107.nyc2.dsl.speakeasy.net [66.93.191.107]) by talvi.dovecot.org (Postfix) with ESMTP id CED5FC002806 for ; Tue, 18 May 2004 18:18:31 +0300 (EEST) Received: from SQUIDLID.local ([192.168.0.54]) by harvee.org (8.12.8/8.12.8) with ESMTP id i4IFBKct022496 for ; Tue, 18 May 2004 11:11:54 -0400 Received: FROM [127.0.0.1] ([127.0.0.1]) BY SQUIDLID.local WITH ESMTP ; Tue, 18 May 2004 11:10:12 -0400 Message-ID: <40AA2754.8090401@harvee.org> Date: Tue, 18 May 2004 11:10:12 -0400 From: "Eric S. Johansson" User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) X-Accept-Language: en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Hashcash: 0:040518:dovecot@dovecot.org:dc39ec98f4c7b770 Subject: [Dovecot] having hell of the time converting away from UW X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 15:18:34 -0000 X-UID: 9122 Status: O I just want to check and make sure not missing anything. I'm trying to convert a customer away from UW. unfortunately, all of the mailboxes are in MBX format (my own mistake coming back to haunt me). mailutil doesn't seem to do conversions properly. It keeps complaining about an existing copy of /mbox and only if I say to -merge append will the copy proceed. mailsync doesn't work well with hierarchies of mailboxes. its copies the top level mailboxes but proceeds to get sick on the sub mailboxes. I'm not sure what other tools there are to help me get out from the mbx rathole and over to the maildir wallow. any suggestions? From discussion-lists@linnet.org Tue May 18 18:40:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BE8A2C002807; Tue, 18 May 2004 18:40:29 +0300 (EEST) Received: from icicle.pobox.com (icicle.pobox.com [207.8.226.3]) by talvi.dovecot.org (Postfix) with ESMTP id B3000C002806 for ; Tue, 18 May 2004 18:40:27 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by icicle.pobox.com (Postfix) with ESMTP id 5CD56FFFE4; Tue, 18 May 2004 11:33:45 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by icicle.pobox.com (Postfix) with ESMTP id A46BAFFFE8; Tue, 18 May 2004 11:33:14 -0400 (EDT) Received: from vaio.linnet.org (dhcp-255-168.ws.afnog.org [84.201.255.168]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id 18CE177C; Tue, 18 May 2004 11:32:35 -0400 (EDT) Received: from lists by vaio.linnet.org with local (Exim 4.30) id 1BQ6aG-0002oe-E7; Tue, 18 May 2004 15:32:48 +0000 Date: Tue, 18 May 2004 15:32:48 +0000 From: Brian Candler To: "Eric S. Johansson" Subject: Re: [Dovecot] having hell of the time converting away from UW Message-ID: <20040518153248.GA10795@uk.tiscali.com> References: <40AA2754.8090401@harvee.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40AA2754.8090401@harvee.org> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 15:40:29 -0000 X-UID: 9123 Status: O On Tue, May 18, 2004 at 11:10:12AM -0400, Eric S. Johansson wrote: > I'm not sure what other tools there are to help me get out from the mbx > rathole and over to the maildir wallow. Look at http://www.qmail.org/top.html#maildir for a whole list of maildir migration tools. I used one called mbox2maildir a long time ago: probably this one. http://untroubled.org/mbox2maildir I think I modified it to add ,S=xxx size values, although I doubt I can locate the source now! Regards, Brian. From john.l.villalovos@intel.com Tue May 18 23:53:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5FDD0C000D8E; Tue, 18 May 2004 23:53:52 +0300 (EEST) Received: from caduceus.fm.intel.com (fmr02.intel.com [192.55.52.25]) by talvi.dovecot.org (Postfix) with ESMTP id E599BC000D5F for ; Tue, 18 May 2004 23:53:49 +0300 (EEST) Received: from talaria.fm.intel.com (talaria.fm.intel.com [10.1.192.39]) by caduceus.fm.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc, v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i4IKlUWj011447 for ; Tue, 18 May 2004 20:47:31 GMT Received: from orsmsxvs041.jf.intel.com (orsmsxvs041.jf.intel.com [192.168.65.54]) by talaria.fm.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc, v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i4IKl4SJ012174 for ; Tue, 18 May 2004 20:47:39 GMT Received: from orsmsx331.amr.corp.intel.com ([192.168.65.56]) by orsmsxvs041.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004051813465908791 for ; Tue, 18 May 2004 13:46:59 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx331.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.6713); Tue, 18 May 2004 13:46:30 -0700 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 Date: Tue, 18 May 2004 13:46:30 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B88C69D@orsmsx410.jf.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: mbox folders Thread-Index: AcQ9GKk322JX660kTWSKY0BN10whSwAAAUsQ From: "Villalovos, John L" To: X-OriginalArrivalTime: 18 May 2004 20:46:30.0994 (UTC) FILETIME=[32DB8320:01C43D19] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Subject: [Dovecot] mbox folders X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2004 20:53:52 -0000 X-UID: 9124 Status: O I just upgraded to Fedora Core 2 from Fedora Core 1. Discovered that UW-IMAP was replaced with Cyrus. Not quite ready to switch to that mail box format so I instead installed dovecot which comes with Fedora Core 2. The RPM version is: dovecot-0.99.10.4-4 The problem I am having is that it seems to want to put folders in: ~/mail/mail/ I would like the folders to be in: ~/mail/ Currently in ~/mail/ there is a .subscriptions file. Am I stuck with having my folders be in ~/mail/mail/ ? Is there some configuration change that I can do? Thanks, John --=20 A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting Q: What is the most annoying thing on usenet and in e-mail? From olive@pasteur.fr Wed May 19 11:06:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 19E26C002801; Wed, 19 May 2004 11:06:36 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id 841B4C000D8E for ; Wed, 19 May 2004 11:06:31 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id CAA8D11474 for ; Wed, 19 May 2004 09:59:52 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 9203211473 for ; Wed, 19 May 2004 09:59:52 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 26EF83F63F; Wed, 19 May 2004 09:59:52 +0200 (CEST) Date: Wed, 19 May 2004 09:59:52 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] mbox folders Message-ID: <20040519075952.GD5789@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <60C14C611F1DDD4198D53F2F43D8CA3B88C69D@orsmsx410.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B88C69D@orsmsx410.jf.intel.com> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2004 08:06:36 -0000 X-UID: 9125 Status: O * Villalovos, John L (20040518 13:46): > The problem I am having is that it seems to want to put folders in: > > ~/mail/mail/ How is your `default_mail_env' variable configured? -- olive From john.l.villalovos@intel.com Wed May 19 20:06:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 812A1C000D8E; Wed, 19 May 2004 20:06:28 +0300 (EEST) Received: from caduceus.jf.intel.com (fmr06.intel.com [134.134.136.7]) by talvi.dovecot.org (Postfix) with ESMTP id C2093C000D5F for ; Wed, 19 May 2004 20:06:25 +0300 (EEST) Received: from talaria.jf.intel.com (talaria.jf.intel.com [10.7.209.7]) by caduceus.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc,v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i4JGwsil007332; Wed, 19 May 2004 16:58:54 GMT Received: from orsmsxvs040.jf.intel.com (orsmsxvs040.jf.intel.com [192.168.65.206]) by talaria.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc,v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i4JGupQp002491; Wed, 19 May 2004 16:56:51 GMT Received: from orsmsx331.amr.corp.intel.com ([192.168.65.56]) by orsmsxvs040.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004051909593303146 ; Wed, 19 May 2004 09:59:33 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx331.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.6713); Wed, 19 May 2004 09:59:32 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] mbox folders Date: Wed, 19 May 2004 09:59:31 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B88C6A1@orsmsx410.jf.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] mbox folders Thread-Index: AcQ9d18UMM/lQA7dSk+uG0uEa0GMrAASyAZg From: "Villalovos, John L" To: "Olivier Tharan" , X-OriginalArrivalTime: 19 May 2004 16:59:32.0381 (UTC) FILETIME=[A7F1D4D0:01C43DC2] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2004 17:06:28 -0000 X-UID: 9126 Status: O dovecot-bounces@dovecot.org wrote: > * Villalovos, John L (20040518 13:46): >> The problem I am having is that it seems to want to put folders in: >>=20 >> ~/mail/mail/ >=20 > How is your `default_mail_env' variable configured? I have: [john@webhost john]$ set | grep -i mail MAIL=3D/var/spool/mail/john MAILCHECK=3D60 [john@webhost john]$ John --=20 A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting Q: What is the most annoying thing on usenet and in e-mail? From skye@f4.ca Wed May 19 20:16:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C5372C002801; Wed, 19 May 2004 20:16:24 +0300 (EEST) Received: from seattle.f4.ca (seattle.f4.ca [216.127.61.112]) by talvi.dovecot.org (Postfix) with ESMTP id 6F74FC000D5F for ; Wed, 19 May 2004 20:16:22 +0300 (EEST) Received: from skye by seattle.f4.ca with local (Exim 4.10) id 1BQUZZ-000FDy-00 for dovecot@dovecot.org; Wed, 19 May 2004 10:09:41 -0700 Date: Wed, 19 May 2004 10:09:41 -0700 From: Skye Poier To: dovecot@dovecot.org Subject: Re: [Dovecot] mbox folders Message-ID: <20040519170941.GD56355@f4.ca> References: <60C14C611F1DDD4198D53F2F43D8CA3B88C6A1@orsmsx410.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B88C6A1@orsmsx410.jf.intel.com> User-Agent: Mutt/1.4.2.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2004 17:16:25 -0000 X-UID: 9127 Status: O No, he means in your dovecot.conf file Skye Word on the street is Villalovos, John L said: > dovecot-bounces@dovecot.org wrote: > > * Villalovos, John L (20040518 13:46): > >> The problem I am having is that it seems to want to put folders in: > >> > >> ~/mail/mail/ > > > > How is your `default_mail_env' variable configured? > > I have: > > [john@webhost john]$ set | grep -i mail > MAIL=/var/spool/mail/john > MAILCHECK=60 > [john@webhost john]$ > > John > From john.l.villalovos@intel.com Wed May 19 20:22:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 47840C002801; Wed, 19 May 2004 20:22:42 +0300 (EEST) Received: from caduceus.fm.intel.com (fmr02.intel.com [192.55.52.25]) by talvi.dovecot.org (Postfix) with ESMTP id D11B3C000D5F for ; Wed, 19 May 2004 20:22:39 +0300 (EEST) Received: from petasus.fm.intel.com (petasus.fm.intel.com [10.1.192.37]) by caduceus.fm.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc,v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i4JHGJtS031688; Wed, 19 May 2004 17:16:20 GMT Received: from orsmsxvs041.jf.intel.com (orsmsxvs041.jf.intel.com [192.168.65.54]) by petasus.fm.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc,v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i4JHGPRU007968; Wed, 19 May 2004 17:16:26 GMT Received: from orsmsx331.amr.corp.intel.com ([192.168.65.56]) by orsmsxvs041.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004051910155028811 ; Wed, 19 May 2004 10:15:50 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx331.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.6713); Wed, 19 May 2004 10:14:59 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] mbox folders Date: Wed, 19 May 2004 10:14:58 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B88C6A3@orsmsx410.jf.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] mbox folders Thread-Index: AcQ9xFrPszFPiNt5TCatBCWMJ560OQAAFueg From: "Villalovos, John L" To: "Skye Poier" , X-OriginalArrivalTime: 19 May 2004 17:14:59.0340 (UTC) FILETIME=[D0748CC0:01C43DC4] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2004 17:22:42 -0000 X-UID: 9128 Status: O dovecot-bounces@dovecot.org wrote: > No, he means in your dovecot.conf file Oh. Oops :) Initially I had nothing. And then went with the following: #default_mail_env =3D default_mail_env =3D mbox:~/mail/:INBOX=3D/var/spool/mail/%u John --=20 A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting Q: What is the most annoying thing on usenet and in e-mail? From charlie@rubberduck.com Thu May 20 12:51:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E0798C002801; Thu, 20 May 2004 12:51:10 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 44680C000D8E for ; Thu, 20 May 2004 12:51:08 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 541871C1D0E1; Thu, 20 May 2004 12:44:27 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4E4531C1D0E2; Thu, 20 May 2004 12:44:27 +0300 (EEST) Received: from lazy.spodder.com (unknown [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id ABD3B1C1D0E1 for ; Thu, 20 May 2004 12:43:51 +0300 (EEST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 325759002 for ; Thu, 20 May 2004 19:38:59 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id 840696A2B6F; Thu, 20 May 2004 19:43:19 +1000 (EST) Date: Thu, 20 May 2004 19:43:19 +1000 From: Charlie Allom To: dovecot@procontrol.fi Message-ID: <20040520094318.GA3207@myinternet.com.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="6TrnltStXW4iwmi0" Content-Disposition: inline User-Agent: Mutt/1.5.6i Cc: Subject: [Dovecot] why does dovecot child die on these messages? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2004 09:51:11 -0000 X-UID: 9129 Status: O Content-Length: 7382 --6TrnltStXW4iwmi0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Timo and other dovecot fans, why, when I'm trying to read certain "Drafts" emails that I just created, or edited, do the dovecot children die (or so I think). In mutt, the behaviour is that I "c =3DDrafts" then select the email and I get "connection closed to squeaky.rubberduck.com". In Mail.app - she just loops, trying to read those headers again and again and again.. (and this truss is from this instance) I find that emails before a certain date are OK - but if i edit them and=20 then try and refetch them - the child dies yet again. So I removed all=20 =2Eimap.* and let dovecot redo it's stuff. No go. Some followup information before the meat of the truss:=20 http://lazy.spodder.com/~yeled/BSD/broken.dove.txt comments in ** ** all fine here.. some are chmod 600 and some are 644 - no difference ** squeaky:/home/virtual/charlie/Maildir/.Drafts# ls -laR =2E: total 76 drwx------ 5 charlie charlie 512 May 20 19:19 ./ drwx------ 101 charlie charlie 2560 May 20 19:32 ../ -rw------- 1 charlie charlie 5 May 14 16:57 .customflags -rw------- 1 charlie charlie 1608 May 20 19:19 .imap.index -rw------- 1 charlie charlie 20240 May 20 19:19 .imap.index.data -rw------- 1 charlie charlie 2576 May 20 19:18 .imap.index.log -rw------- 1 charlie charlie 1560 May 20 19:19 .imap.index.tree drwx------ 2 charlie charlie 2048 May 20 19:19 cur/ -rw------- 1 charlie charlie 1316 May 20 19:19 dovecot-uidlist drwx------ 2 charlie charlie 512 May 20 19:19 new/ drwx------ 2 charlie charlie 512 May 20 19:19 tmp/ =2E/cur: total 130 drwx------ 2 charlie charlie 2048 May 20 19:19 ./ drwx------ 5 charlie charlie 512 May 20 19:19 ../ -rw-r--r-- 1 charlie charlie 1643 May 18 22:26 1046254614.27559_1.pe= ng:2,S -rw-r--r-- 1 charlie charlie 385 May 18 22:26 1062579361.15058_584.= machine:2, -rw-r--r-- 1 charlie charlie 1228 May 19 02:38 1084772855.P1759Q1M70= 3458.lazy:2,S -rw-r--r-- 1 charlie charlie 3967 May 19 02:38 1084801877.P1132Q1M37= 7704.lazy:2,S -rw-r--r-- 1 charlie charlie 1046 May 14 20:56 1084813639.P18189Q0M2= 54273.squeaky:2, -rw-r--r-- 1 charlie charlie 1343 May 14 20:56 1084813639.P18189Q1M2= 54273.squeaky:2, -rw-r--r-- 1 charlie charlie 1103 May 14 20:56 1084813639.P18189Q2M2= 54273.squeaky:2,S -rw-r--r-- 1 charlie charlie 3576 May 14 20:56 1084813639.P18189Q3M2= 54273.squeaky:2, -rw-r--r-- 1 charlie charlie 3649 May 14 20:56 1084813639.P18189Q4M2= 54273.squeaky:2, -rw-r--r-- 1 charlie charlie 1004 May 14 20:56 1084813639.P18189Q5M2= 54273.squeaky:2, -rw-r--r-- 1 charlie charlie 475 May 14 20:56 1084813639.P18189Q6M2= 54273.squeaky:2, -rw-r--r-- 1 charlie charlie 477 May 14 20:56 1084813639.P18189Q7M2= 54273.squeaky:2, -rw-r--r-- 1 charlie charlie 549 May 14 20:56 1084813639.P18189Q8M2= 54273.squeaky:2, -rw-r--r-- 1 charlie charlie 548 May 14 20:56 1084813639.P18189Q9M2= 54273.squeaky:2, -rw-r--r-- 1 charlie charlie 1168 May 19 00:11 1084889503.P504Q0M804= 183.squeaky:2,S -rw-r--r-- 1 charlie charlie 1230 May 19 14:03 1084939383.P25383Q0M3= 79510.squeaky:2,S -rw-r--r-- 1 charlie charlie 772 May 19 15:31 1084944677.P25383Q1M3= 91194.squeaky:2,S -rw-r--r-- 1 charlie charlie 1831 May 19 18:16 1084954582.P19413Q1M8= 10694.squeaky:2,S -rw-r--r-- 1 charlie charlie 1264 May 20 18:37 1085042265.P21880Q0M4= 03770.squeaky:2,S -rw-r--r-- 1 charlie charlie 1264 May 20 18:42 1085042571.P22004Q0M9= 88553.squeaky:2,S -rw-r--r-- 1 charlie charlie 1487 May 20 18:43 1085042586.P22004Q1M9= 14498.squeaky:2,S -rw------- 1 charlie charlie 261 May 20 19:00 1085043373.P22239Q0M5= 9297.squeaky:2,S -rw------- 1 charlie charlie 498 May 20 18:56 1085043378.P22239Q1M7= 49605.squeaky:2,S -rw------- 1 charlie charlie 496 May 20 18:56 1085043383.P22239Q2M7= 97760.squeaky:2,S -rw------- 1 charlie charlie 914 May 20 18:56 1085043388.P22239Q3M6= 06724.squeaky:2,S -rw------- 1 charlie charlie 1227 May 20 18:56 1085043393.P22239Q4M1= 66768.squeaky:2,S -rw------- 1 charlie charlie 926 May 20 18:56 1085043398.P22239Q5M4= 26819.squeaky:2,S -rw------- 1 charlie charlie 3536 May 20 18:56 1085043403.P22239Q6M3= 46821.squeaky:2,S -rw------- 1 charlie charlie 571 May 20 18:56 1085043409.P22239Q7M2= 0841.squeaky:2,S -rw------- 1 charlie charlie 570 May 20 18:56 1085043415.P22239Q8M4= 4288.squeaky:2,S -rw------- 1 charlie charlie 388 May 20 19:05 1085043951.P22418Q1M9= 40309.squeaky:2,S -rw------- 1 charlie charlie 405 May 19 01:54 1085044017.P22527Q0M5= 76547.squeaky:2,DS -rw------- 1 charlie charlie 1132 May 14 16:57 1085044031.P22527Q1M4= 77831.squeaky:2,S -rw------- 1 charlie charlie 1132 May 14 20:56 1085044031.P22527Q2M7= 32509.squeaky:2,S -rw------- 1 charlie charlie 1036 May 20 19:19 1085044751.P23280Q0M9= 30209.squeaky:2,S ** this one wont be able to be fetched! ** squeaky:/home/virtual/charlie/Maildir/.Drafts/cur# head -20 1085044751.P232= 80Q0M930209.squeaky\:2\,S =46rom: Charlie Allom To: "King, Michael" <> Cc: "Oriti, Sam" <>, "Durkin, Jeffrey" <> Subject: Re: waceo deployment portal [Scanned] References: <3730D9DE64F1F34BBAD4DDA02E64FD50760ED5@ceo-mail.ceo.cathednet.= wa.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset=3Dus-ascii Content-Disposition: inline In-Reply-To: <3730D9DE64F1F34BBAD4DDA02E64FD50760ED5@ceo-mail.ceo.cathednet= =2Ewa.edu.au> X-Mutt-Fcc: =3DSent Status: RO X-Mutt-PGP: S On Thu, May 13, 2004 at 03:57:10PM +0800, King, Michael wrote: > > We would like to discuss the process at next weeks ops meeting so that > there is a better understanding of the proceeds on how it impacts on > this deployment and all other deployments. ** this one will ** squeaky:/home/virtual/charlie/Maildir/.Drafts/cur# head -20 1085044031.P225= 27Q2M732509.squeaky\:2\,S =46rom: Charlie Allom To: "King, Michael" <> Cc: "Oriti, Sam" <>, "Durkin, Jeffrey" <> Subject: Re: waceo deployment portal [Scanned] References: <3730D9DE64F1F34BBAD4DDA02E64FD50760ED5@ceo-mail.ceo.cathednet.= wa.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset=3Dus-ascii Content-Disposition: inline In-Reply-To: <3730D9DE64F1F34BBAD4DDA02E64FD50760ED5@ceo-mail.ceo.cathednet= =2Ewa.edu.au> X-Mutt-References: <3730D9DE64F1F34BBAD4DDA02E64FD50760ED5@ceo-mail.ceo.cat= hednet.wa.edu.au> X-Mutt-Fcc: =3DSent Status: RO X-Mutt-PGP: S On Thu, May 13, 2004 at 03:57:10PM +0800, King, Michael wrote: > > We would like to discuss the process at next weeks ops meeting so that > there is a better understanding of the proceeds on how it impacts on > this deployment and all other deployments. squeaky:/home/virtual/charlie/Maildir/.Drafts/cur# --=20 =2Esignature 0x14AA7941 --6TrnltStXW4iwmi0 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFArH22qiZDwhSqeUERAtY/AKCCFsjFzfUhSt/60zeI9AIWMI8D2QCeLiPb L+IADsPnRhzUvVBUhVMaNZ0= =OjGE -----END PGP SIGNATURE----- --6TrnltStXW4iwmi0-- From charlie@rubberduck.com Thu May 20 18:26:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E43AFC002801; Thu, 20 May 2004 18:26:03 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0F7F0C000D8E for ; Thu, 20 May 2004 18:26:01 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 82BF61C1D0E1; Thu, 20 May 2004 18:19:19 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 7D0C61C1D0E2; Thu, 20 May 2004 18:19:19 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id DCFD31C1D0E1 for ; Thu, 20 May 2004 18:18:44 +0300 (EEST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 1DEDC9098 for ; Fri, 21 May 2004 01:14:06 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id E52356A3B8D; Fri, 21 May 2004 01:18:25 +1000 (EST) Date: Fri, 21 May 2004 01:18:24 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] why does dovecot child die on these messages? Message-ID: <20040520151823.GA13061@myinternet.com.au> References: <20040520094318.GA3207@myinternet.com.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="2fHTh5uZTiUOsy+g" Content-Disposition: inline In-Reply-To: <20040520094318.GA3207@myinternet.com.au> User-Agent: Mutt/1.5.6i Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2004 15:26:04 -0000 X-UID: 9130 Status: O --2fHTh5uZTiUOsy+g Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, May 20, 2004 at 07:43:19PM +1000, Charlie Allom wrote: >=20 > why, when I'm trying to read certain "Drafts" emails that I just > created, or edited, do the dovecot children die (or so I think). >=20 Curiously it's only mutt saved emails. If I pipe them back to be delivered by procmail, all is ok. C. --=20 =2Esignature 0x14AA7941 --2fHTh5uZTiUOsy+g Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFArMw/qiZDwhSqeUERAkHGAKCl/vLMyC/B71K6+CuOqqfDN9G98ACfY3HC /e/SH6lucqrgLWR1GAzMJ84= =uSZA -----END PGP SIGNATURE----- --2fHTh5uZTiUOsy+g-- From dr@jones.dk Thu May 20 18:43:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BA56CC002806; Thu, 20 May 2004 18:43:29 +0300 (EEST) Received: from xayide.jones.dk (cpe.atm0-0-0-1201001.0x503f72d6.albnxx2.customer.tele.dk [80.63.114.214]) by talvi.dovecot.org (Postfix) with ESMTP id CB9C3C000D8E for ; Thu, 20 May 2004 18:43:26 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by xayide.jones.dk (Postfix) with ESMTP id E82F61AB3EA for ; Thu, 20 May 2004 17:36:38 +0200 (CEST) Received: from xayide.jones.dk ([127.0.0.1]) by localhost (xayide.jones.dk [127.0.0.1]) (amavisd-new, port 10024) with SMTP id 01775-06 for ; Thu, 20 May 2004 17:36:26 +0200 (CEST) Received: from jones.dk (unknown [192.168.102.144]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by xayide.jones.dk (Postfix) with ESMTP id D4A9E1AB7BA for ; Thu, 20 May 2004 17:36:26 +0200 (CEST) Message-ID: <40ACD07A.3090306@jones.dk> Date: Thu, 20 May 2004 17:36:26 +0200 From: Jonas Smedegaard User-Agent: Mozilla Thunderbird 0.5 (X11/20040313) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] why does dovecot child die on these messages? References: <20040520094318.GA3207@myinternet.com.au> <20040520151823.GA13061@myinternet.com.au> In-Reply-To: <20040520151823.GA13061@myinternet.com.au> X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at jones.dk X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2004 15:43:29 -0000 X-UID: 9131 Status: O -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Charlie Allom wrote: | On Thu, May 20, 2004 at 07:43:19PM +1000, Charlie Allom wrote: | |>why, when I'm trying to read certain "Drafts" emails that I just |>created, or edited, do the dovecot children die (or so I think). |> | | | Curiously it's only mutt saved emails. If I pipe them back to be | delivered by procmail, all is ok. Sounds like Mutt not obeying Maildir specs, then... Beware of the difference between accessing Maildirs directly and going through the IMAP protocol. ~ - Jonas - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er n=E6r: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFArNB5n7DbMsAkQLgRAsp+AJ9IT5dLfp6eZS23+hzyiWS0ncB4jACfTE2k sqkKt5NvG6SG2MnxTqR8FO4=3D =3DH5+V -----END PGP SIGNATURE----- From charlie@rubberduck.com Thu May 20 18:45:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2241CC002810; Thu, 20 May 2004 18:45:52 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by talvi.dovecot.org (Postfix) with ESMTP id 8A6E7C002807 for ; Thu, 20 May 2004 18:45:49 +0300 (EEST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 7DF2B909B; Fri, 21 May 2004 01:34:40 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id DD2B46A4C7D; Fri, 21 May 2004 01:39:01 +1000 (EST) Date: Fri, 21 May 2004 01:39:00 +1000 From: Charlie Allom To: Jonas Smedegaard Subject: Re: [Dovecot] why does dovecot child die on these messages? Message-ID: <20040520153900.GA19839@myinternet.com.au> References: <20040520094318.GA3207@myinternet.com.au> <20040520151823.GA13061@myinternet.com.au> <40ACD07A.3090306@jones.dk> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="TB36FDmn/VVEgNH/" Content-Disposition: inline In-Reply-To: <40ACD07A.3090306@jones.dk> User-Agent: Mutt/1.5.6i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2004 15:45:52 -0000 X-UID: 9132 Status: O Content-Length: 1221 --TB36FDmn/VVEgNH/ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, May 20, 2004 at 05:36:26PM +0200, Jonas Smedegaard wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 >=20 > Charlie Allom wrote: > | On Thu, May 20, 2004 at 07:43:19PM +1000, Charlie Allom wrote: > | > |>why, when I'm trying to read certain "Drafts" emails that I just > |>created, or edited, do the dovecot children die (or so I think). > | > | Curiously it's only mutt saved emails. If I pipe them back to be > | delivered by procmail, all is ok. >=20 > Sounds like Mutt not obeying Maildir specs, then... >=20 > Beware of the difference between accessing Maildirs directly and going > through the IMAP protocol. Thanks, I am accessing it all through imap:// I'm currently compiling a vanilla mutt to see if it exhibits the same problem. --=20 =2Esignature 0x14AA7941 --TB36FDmn/VVEgNH/ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFArNETqiZDwhSqeUERAq0nAKCJn7cZnaP7EpbY+4IEnKG9cpxYmgCdFuwP /VLwd8WBz+J7+9FvtdDVg24= =PQpS -----END PGP SIGNATURE----- --TB36FDmn/VVEgNH/-- From charlie@rubberduck.com Thu May 20 18:58:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7B668C002806; Thu, 20 May 2004 18:58:09 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 9E654C002801 for ; Thu, 20 May 2004 18:58:07 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 2165A1C1D0E1; Thu, 20 May 2004 18:51:26 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 1B5FF1C1D0E2; Thu, 20 May 2004 18:51:26 +0300 (EEST) Received: from lazy.spodder.com (lazy.spodder.com [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id B2C211C1D0E1 for ; Thu, 20 May 2004 18:50:51 +0300 (EEST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) by lazy.spodder.com (Postfix) with ESMTP id 9F3A38F61 for ; Fri, 21 May 2004 01:46:24 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id E18426A7214; Fri, 21 May 2004 01:50:45 +1000 (EST) Date: Fri, 21 May 2004 01:50:45 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] why does dovecot child die on these messages? Message-ID: <20040520155044.GA20440@myinternet.com.au> References: <20040520094318.GA3207@myinternet.com.au> <20040520151823.GA13061@myinternet.com.au> <40ACD07A.3090306@jones.dk> <20040520153900.GA19839@myinternet.com.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="n8g4imXOkfNTN/H1" Content-Disposition: inline In-Reply-To: <20040520153900.GA19839@myinternet.com.au> User-Agent: Mutt/1.5.6i Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2004 15:58:09 -0000 X-UID: 9133 Status: O --n8g4imXOkfNTN/H1 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, May 21, 2004 at 01:39:00AM +1000, Charlie Allom wrote: >=20 > I'm currently compiling a vanilla mutt to see if it exhibits the same > problem. Well that was unexpected! I've discovered that dovecot will not crash if it isn't wrapped in SSL. No matter which client I use. This is looking like a Solaris problem :( C. --=20 =2Esignature 0x14AA7941 --n8g4imXOkfNTN/H1 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFArNPUqiZDwhSqeUERAoH2AKCWEiQMjoAxGg/VE42vGkF8H4euHwCfbKD5 5Af6y7taMyhw3Ty4/XkYgfI= =dFLE -----END PGP SIGNATURE----- --n8g4imXOkfNTN/H1-- From daemon@kzone.ch Thu May 20 19:12:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2AFD5C002812; Thu, 20 May 2004 19:12:17 +0300 (EEST) Received: from Odo.kzone.ch (cable-ggar41-004.intergga.ch [157.161.41.4]) by talvi.dovecot.org (Postfix) with ESMTP id 5EAC4C002806 for ; Thu, 20 May 2004 19:12:14 +0300 (EEST) Received: (from daemon@localhost) by Odo.kzone.ch (8.9.3/8.9.3) id SAA16850 for dovecot@dovecot.org; Thu, 20 May 2004 18:05:31 +0200 From: Sven Kirmess To: dovecot@dovecot.org Date: Thu, 20 May 2004 18:06:05 +0200 Organization: Kirmess Lines: 6 Message-ID: NNTP-Posting-Host: odo.kzone.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: Odo.kzone.ch 1085069131 16835 192.168.100.100 (20 May 2004 16:05:31 GMT) X-Complaints-To: sven.kirmess@gmx.net NNTP-Posting-Date: 20 May 2004 16:05:31 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: de-CH,de,de-AT,en Subject: [Dovecot] Why the name dovecot? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Sven Kirmess List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2004 16:12:17 -0000 X-UID: 9134 Status: O Why is docecot called dovecot? Actually, nobody likes these "rats with wings". ;-) Timo, can we know that or is it a secret? Sven From adam@bostoncoop.net Fri May 21 06:09:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 12A05C002801; Fri, 21 May 2004 06:09:16 +0300 (EEST) Received: from bostoncoop.net (proper.eecs.harvard.edu [140.247.60.120]) by talvi.dovecot.org (Postfix) with ESMTP id B647BC000D8E for ; Fri, 21 May 2004 06:09:13 +0300 (EEST) Received: by bostoncoop.net (Postfix, from userid 1001) id 813B51333E; Thu, 20 May 2004 23:02:30 -0400 (EDT) Date: Thu, 20 May 2004 23:02:30 -0400 From: Adam Kessel To: dovecot@dovecot.org Message-ID: <20040521030229.GB6525@bostoncoop.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.5.1+cvs20040105i Subject: [Dovecot] Dovecot Questions X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 03:09:16 -0000 X-UID: 9135 Status: O Content-Length: 1109 Hi. I have two questions that don't appear to be answered anywhere: - Many of my users use a fetchmail ssh tunnel to get their mail. Typically this looks like poll 140.247.60.120 with proto imap: plugin "ssh -2 %h /usr/sbin/imapd" auth ssh; uw-imapd provides a binary /usr/sbin/imapd that can be used for an ssh-imap tunnel. I found /usr/lib/dovecot/imap (in Debian) which might work as a replacement, except that it appears that running /usr/lib/dovecot/imap doesn't properly read in the configuration file--for example, it is trying to create dotlocks, but in the configuration I have flock. Is there any way I can do what I want to do here? - Dovecot seems to be dying spontaneously in conjunction with SquirrelMail. Do you have any experience of this? SquirrelMail ends up reporting that there was no response to the CAPABILITY query. If I restart Dovecot, everything is fine again. I don't see anything in the logs to indicate the problem. Any ideas why this might be happening? Thanks for any pointers... -- Adam Kessel http://adam.rosi-kessel.org From adam@bostoncoop.net Fri May 21 06:15:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3255BC002807; Fri, 21 May 2004 06:15:35 +0300 (EEST) Received: from bostoncoop.net (proper.eecs.harvard.edu [140.247.60.120]) by talvi.dovecot.org (Postfix) with ESMTP id 2060EC000D8E for ; Fri, 21 May 2004 06:15:33 +0300 (EEST) Received: by bostoncoop.net (Postfix, from userid 1001) id EA7EC13332; Thu, 20 May 2004 23:08:49 -0400 (EDT) Date: Thu, 20 May 2004 23:08:49 -0400 From: Adam Kessel To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot Questions Message-ID: <20040521030849.GA7584@bostoncoop.net> References: <20040521030229.GB6525@bostoncoop.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040521030229.GB6525@bostoncoop.net> User-Agent: Mutt/1.5.5.1+cvs20040105i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 03:15:35 -0000 X-UID: 9136 Status: O On Thu, May 20, 2004 at 11:02:30PM -0400, Adam Kessel wrote: > - Dovecot seems to be dying spontaneously in conjunction with > SquirrelMail. Do you have any experience of this? SquirrelMail ends > up reporting that there was no response to the CAPABILITY query. If I > restart Dovecot, everything is fine again. I don't see anything in the > logs to indicate the problem. Any ideas why this might be happening? I suppose I should have mentioned that this is Debian sid, so Dovecot 0.99.10.4 and SquirrelMail version 1.5.0. Not using pgsql or ldap. -- Adam Kessel http://adam.rosi-kessel.org From james@powweb.com Fri May 21 06:21:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E7F20C002816; Fri, 21 May 2004 06:21:47 +0300 (EEST) Received: from nexus.powweb.com (unknown [66.152.96.130]) by talvi.dovecot.org (Postfix) with ESMTP id 5FBB8C000D8E for ; Fri, 21 May 2004 06:21:45 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id AF16FB8E48 for ; Thu, 20 May 2004 20:14:57 -0700 (PDT) Message-ID: <40AD742B.6070001@powweb.com> Date: Thu, 20 May 2004 20:14:51 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: multipart/mixed; boundary="------------010401080700050003020106" Subject: [Dovecot] feature request / question? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 03:21:48 -0000 X-UID: 9137 Status: O Content-Length: 3014 This is a multi-part message in MIME format. --------------010401080700050003020106 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Occasionally we get a user who decided they need to pop their account 3 to 4 times a second... usually I just disable their account and shout "no!", but now I have someone trying to do it repeatedly with an invalid username so I don't know who to spank. =) Before if this happened I would block the IP and wait for someone to complain... dovecot doesn't make that very easy, or at least I don't see how. May 20 20:12:29 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:30 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:31 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:32 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:32 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:32 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:32 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:32 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:33 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:33 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:33 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:33 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:33 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:34 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username May 20 20:12:34 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net): invalid username No IP address, and we do not host thegrid.net. There are no other messages or authetication errors being logged anywhere else either. It would be helpful to have dovecot display the IP address of failed authentications as well... it allready show's it for login's. -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------010401080700050003020106 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------010401080700050003020106-- From JMelville@selectaustralasia.com.au Fri May 21 06:26:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E138EC002819; Fri, 21 May 2004 06:26:07 +0300 (EEST) Received: from pittst-smtp.select-appointments.com.au (unknown [61.88.1.162]) by talvi.dovecot.org (Postfix) with SMTP id 92E79C002816 for ; Fri, 21 May 2004 06:26:03 +0300 (EEST) Received: FROM SYDEXCHVS01.Australasia.SelectNET.com BY pittst-smtp.select-appointments.com.au ; Fri May 21 13:22:12 2004 +1000 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-MimeOLE: Produced By Microsoft Exchange V6.5.6944.0 Subject: RE: [Dovecot] Dovecot Questions Date: Fri, 21 May 2004 13:19:21 +1000 Message-ID: <4290D8AB6C950C44B59AA76B2513A6CA0FF529@SYDEXCHVS01.Australasia.SelectNET.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Dovecot Questions Thread-Index: AcQ+4W+dd66ElEisT9KhJLHaOpWf7AAAGV8Q From: "Julian Melville" To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 03:26:08 -0000 X-UID: 9138 Status: O > I suppose I should have mentioned that this is Debian sid, so Dovecot > 0.99.10.4 and SquirrelMail version 1.5.0. Not using pgsql or ldap. What happens if you telnet to e.g. port 143 when this is happening? Do you get a response from dovecot? I ask because I was experiencing the same symptom on a Debian (testing) machine a couple of months back. I had some assistance from Jaldhar but didn't get much closer to the answer. Eventually I put it down to low memory problems (it was a virtual-mode Linux server and had memory probs with other apps) and shifted to a real server with plenty of RAM. That's now also running Debian sid, dovecot and Squirrelmail without any problems. Cheers, Julian. From adam@bostoncoop.net Fri May 21 06:31:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A24E5C002819; Fri, 21 May 2004 06:31:35 +0300 (EEST) Received: from bostoncoop.net (proper.eecs.harvard.edu [140.247.60.120]) by talvi.dovecot.org (Postfix) with ESMTP id 2FBA2C002816 for ; Fri, 21 May 2004 06:31:33 +0300 (EEST) Received: by bostoncoop.net (Postfix, from userid 1001) id 087EA13332; Thu, 20 May 2004 23:24:49 -0400 (EDT) Date: Thu, 20 May 2004 23:24:49 -0400 From: Adam Kessel To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot Questions Message-ID: <20040521032449.GA8172@bostoncoop.net> References: <4290D8AB6C950C44B59AA76B2513A6CA0FF529@SYDEXCHVS01.Australasia.SelectNET.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4290D8AB6C950C44B59AA76B2513A6CA0FF529@SYDEXCHVS01.Australasia.SelectNET.com> User-Agent: Mutt/1.5.5.1+cvs20040105i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 03:31:35 -0000 X-UID: 9139 Status: O Content-Length: 1141 On Fri, May 21, 2004 at 01:19:21PM +1000, Julian Melville wrote: > > I suppose I should have mentioned that this is Debian sid, so Dovecot > > 0.99.10.4 and SquirrelMail version 1.5.0. Not using pgsql or ldap. > What happens if you telnet to e.g. port 143 when this is happening? Do > you get a response from dovecot? I'll try that next time and report to the list... > I ask because I was experiencing the same symptom on a Debian (testing) > machine a couple of months back. I had some assistance from Jaldhar but > didn't get much closer to the answer. Eventually I put it down to low > memory problems (it was a virtual-mode Linux server and had memory probs > with other apps) and shifted to a real server with plenty of RAM. That's > now also running Debian sid, dovecot and Squirrelmail without any > problems. The machine has 2G of RAM and is not under a heavy load, so I don't think that should be the issue. I'm actually running a mixed testing/unstable system, although I don't believe any of the lower-versioned packages (from testing, rather than unstable) are involved in IMAP. -- Adam Kessel http://adam.rosi-kessel.org From hf@spg.tu-darmstadt.de Fri May 21 13:24:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6F082C000D8E; Fri, 21 May 2004 13:24:48 +0300 (EEST) Received: from bounce.nt.e-technik.tu-darmstadt.de (bounce.nt.e-technik.tu-darmstadt.de [130.83.197.1]) by talvi.dovecot.org (Postfix) with ESMTP id B4FB0C000D5F for ; Fri, 21 May 2004 13:24:45 +0300 (EEST) Received: from heiligenberg.nt.e-technik.tu-darmstadt.de (heiligenberg.nt.e-technik.tu-darmstadt.de [130.83.186.54]) by bounce.nt.e-technik.tu-darmstadt.de (8.12.11/8.12.11) with ESMTP id i4LAI2FQ019876 for ; Fri, 21 May 2004 12:18:02 +0200 (CEST) Received: from heiligenberg.nt.e-technik.tu-darmstadt.de (localhost [127.0.0.1]) by heiligenberg.nt.e-technik.tu-darmstadt.de (8.12.9p1/8.12.9) with ESMTP id i4LAHuJM008619 for ; Fri, 21 May 2004 12:18:01 +0200 (CEST) Received: (from hf@localhost) by heiligenberg.nt.e-technik.tu-darmstadt.de (8.12.9p1/8.12.9) id i4LAHpQQ013764; Fri, 21 May 2004 12:17:51 +0200 (CEST) Date: Fri, 21 May 2004 12:17:51 +0200 From: Hauke Fath To: dovecot@dovecot.org Subject: Re: [Dovecot] feature request / question? Message-Id: <20040521121751.79723952.hf@spg.tu-darmstadt.de> In-Reply-To: <40AD742B.6070001@powweb.com> References: <40AD742B.6070001@powweb.com> Organization: Technische Universitaet Darmstadt X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 10:24:49 -0000 X-UID: 9140 Status: O On Thu, 20 May 2004 20:14:51 -0700 James Moser wrote: > Before if this happened I=20 > would block the IP and wait for someone to complain... dovecot > doesn't make that very easy, or at least I don't see how. Can dovecot be built with tcpwrappers support? That would take care of the problem... hauke --=20 Hauke Fath /~\ The ASCII Ribbon Campaign Institut f=FCr Nachrichtentechnik \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281 / \ Respect for open standards From nkadel@merl.com Fri May 21 15:37:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 24601C002801; Fri, 21 May 2004 15:37:03 +0300 (EEST) Received: from cambridge.merl.com (cambridge.merl.com [137.203.190.1]) by talvi.dovecot.org (Postfix) with ESMTP id 89B4EC000D5F for ; Fri, 21 May 2004 15:37:00 +0300 (EEST) Received: from tsumi.merl.com (tsumi.merl.com [137.203.134.9]) by cambridge.merl.com (8.12.10/8.12.10) with ESMTP id i4LCUFG1011046 for ; Fri, 21 May 2004 08:30:16 -0400 Received: from tsumi.merl.com (tsumi.merl.com [137.203.134.9]) by tsumi.merl.com (8.12.8/8.12.8) with ESMTP id i4LCUFuD018561 for ; Fri, 21 May 2004 08:30:15 -0400 Date: Fri, 21 May 2004 08:30:15 -0400 (EDT) From: Nico Kadel-Garcia To: dovecot@dovecot.org Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Received-SPF: pass (cambridge.merl.com: domain of nkadel@merl.com designates 137.203.134.9 as permitted sender) Subject: [Dovecot] What about saving your INBOX at ~/mbox ? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 12:37:03 -0000 X-UID: 9141 Status: O Content-Length: 1085 Hi, folks. I'm testing out RedHat's "Fedora Core 2" release, which has switched from the old WashU imapd to dovecot-0.99.10. Overall, this looks like a really, really good move on their part: it looks like a very sweet little tool without some of the ingrained idiocy of Mark Crispin insisting that every home directory consist of nothing but mbox files and allowing you to use a configurable subdirectory by default, ~/mail. Cool. There is one feature of the old WashU imapd that I miss, though. That daemonn could be configured to automatically transfer the user's email to the "~/mbox" upon activation of the daemon, effectively reducing the size of the /var/spool/mail/{username}" mail spool and helping keep the user's disk usage in their home directories, not in /var/spool/mail. This can be a good thing for various reasons. But I don't see any way to enable that behavior for dovecot. Is there something I'm missing, or do folks feel it would be reasonable to add? -- Nico Kadel-Garcia Systems Engineer Mitsubish Electric Research Lab From rick@activeservice.co.uk Fri May 21 16:15:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D3BEDC002801; Fri, 21 May 2004 16:15:44 +0300 (EEST) Received: from mcp.34sp.com (mcp.34sp.com [212.187.158.4]) by talvi.dovecot.org (Postfix) with SMTP id B9DD9C000D5F for ; Fri, 21 May 2004 16:15:42 +0300 (EEST) Received: (qmail 28413 invoked from network); 21 May 2004 13:08:48 -0000 Received: from unknown (HELO activeservice.co.uk) (62.164.178.76) by mcp.34sp.com with SMTP; 21 May 2004 13:08:48 -0000 Received: (qmail 23548 invoked from network); 21 May 2004 13:08:47 -0000 X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on smithy.activeservice.co.uk Received: from dad.activeservice.co.uk (HELO [192.168.0.9]) (192.168.0.9) by smithy.activeservice.co.uk (192.168.0.1) with ESMTP; 21 May 2004 13:08:45 -0000 Date: Fri, 21 May 2004 14:08:40 +0100 From: Rick Jones To: dovecot@dovecot.org Message-ID: <11A74BFC8C15FF94489659DB@[192.168.0.9]> X-Mailer: Mulberry/3.1.3 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: [Dovecot] "important" flag X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 13:15:45 -0000 X-UID: 9142 Status: O I'm wondering what I'd need to do to get the "important" flag set on an incoming message according to a pre-specified header. I know the problem of this not being a "joined-up" feature in standard email, but in practice many MUAs set headers like X-priority etc, and IMAP has an "important" flag that is the obvious mapping. I'm not really sure where would be the best place to try to put something like this. Should it be the delivery agent (qmail in my case), the IMAP server (i.e. Dovecot), or the MUA? To me the MUA doesn't make sense, as the flag should be set before any specific MUA even gets to the message. Since the flags are coded into the filenames when using maildir, is it possible for qmail to deliver a message with the flag included in the filename, and will Dovecot recognise it? If so I might try hacking qmail. Or any other ideas - has anyone else tried this? -- Rick Jones From nkadel@merl.com Fri May 21 17:50:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7F499C00282B; Fri, 21 May 2004 17:50:15 +0300 (EEST) Received: from cambridge.merl.com (cambridge.merl.com [137.203.190.1]) by talvi.dovecot.org (Postfix) with ESMTP id BD6DEC00282A for ; Fri, 21 May 2004 17:50:12 +0300 (EEST) Received: from tsumi.merl.com (tsumi.merl.com [137.203.134.9]) by cambridge.merl.com (8.12.10/8.12.10) with ESMTP id i4LEhGG1013118; Fri, 21 May 2004 10:43:16 -0400 Received: from zeppo (zeppo.merl.com [137.203.140.178]) by tsumi.merl.com (8.12.8/8.12.8) with SMTP id i4LEhGuC029206; Fri, 21 May 2004 10:43:16 -0400 Message-ID: <00a301c43f41$f39ea0e0$b28ccb89@zeppo> From: "Nico Kadel-Garcia" To: "Rick Jones" , References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> Subject: Re: [Dovecot] "important" flag Date: Fri, 21 May 2004 10:43:16 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Received-SPF: pass (cambridge.merl.com: domain of nkadel@merl.com designates 137.203.134.9 as permitted sender) Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 14:50:15 -0000 X-UID: 9143 Status: O Content-Length: 1130 ----- Original Message ----- From: "Rick Jones" To: Sent: Friday, May 21, 2004 9:08 AM Subject: [Dovecot] "important" flag > I'm wondering what I'd need to do to get the "important" flag set on an > incoming message according to a pre-specified header. > > I know the problem of this not being a "joined-up" feature in standard > email, but in practice many MUAs set headers like X-priority etc, and IMAP > has an "important" flag that is the obvious mapping. > > I'm not really sure where would be the best place to try to put something > like this. Should it be the delivery agent (qmail in my case), the IMAP > server (i.e. Dovecot), or the MUA? To me the MUA doesn't make sense, as the > flag should be set before any specific MUA even gets to the message. > > Since the flags are coded into the filenames when using maildir, is it > possible for qmail to deliver a message with the flag included in the > filename, and will Dovecot recognise it? If so I might try hacking qmail. > > Or any other ideas - has anyone else tried this? Probably in procmail, not in dovecot. From bfg@noviforum.si Fri May 21 17:56:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4D23CC004548; Fri, 21 May 2004 17:56:22 +0300 (EEST) Received: from mail.najdi.si (unknown [193.189.169.107]) by talvi.dovecot.org (Postfix) with ESMTP id EE6A2C004547 for ; Fri, 21 May 2004 17:56:19 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by elfstone.noviforum.si (ESMTP) with ESMTP id 7B57F1B921 for ; Fri, 21 May 2004 16:48:33 +0200 (CEST) Received: from noviforum.si (kamai.noviforum.si [192.168.2.14]) by elfstone.noviforum.si (ESMTP) with ESMTP id 583D61B914 for ; Fri, 21 May 2004 16:48:33 +0200 (CEST) Message-ID: <40AE16D7.1030402@noviforum.si> Date: Fri, 21 May 2004 16:48:55 +0200 From: =?ISO-8859-2?Q?=22Branko_F=2E_Gra=E8nar=22?= User-Agent: Mozilla Thunderbird 0.5 (X11/20040208) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.83.3.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by Najdi.si Subject: [Dovecot] maildirsize virtual quota support X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 14:56:22 -0000 X-UID: 9144 Status: O -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi. I'm interested to help you with maildirsize virtual quota support. Is there any documented dovecot api? Best regards, - -- Branko F. Gracnar Noviforum Ltd. Software & Media http://www.noviforum.si http://www.najdi.si -----BEGIN PGP SIGNATURE----- iD8DBQFArhbWfiC/E+t8hPcRAtX7AJ9A5ZtSN+6hGQVNLvEjdwV+h2AMBQCfVNem mn+DiJ2ov6+OB3O9hCu/NC8= =8rsG -----END PGP SIGNATURE----- From hf@spg.tu-darmstadt.de Fri May 21 18:44:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2F377C00621D; Fri, 21 May 2004 18:44:25 +0300 (EEST) Received: from bounce.nt.e-technik.tu-darmstadt.de (bounce.nt.e-technik.tu-darmstadt.de [130.83.197.1]) by talvi.dovecot.org (Postfix) with ESMTP id ABD5AC00621C for ; Fri, 21 May 2004 18:44:22 +0300 (EEST) Received: from [130.83.186.53] (blech.nt.e-technik.tu-darmstadt.de [130.83.186.53]) by bounce.nt.e-technik.tu-darmstadt.de (8.12.11/8.12.11) with ESMTP id i4LFbbLk000805; Fri, 21 May 2004 17:37:38 +0200 (CEST) Mime-Version: 1.0 X-Sender: hf@bounce.nt.e-technik.tu-darmstadt.de (Unverified) Message-Id: In-Reply-To: References: Date: Fri, 21 May 2004 17:37:36 +0200 To: Nico Kadel-Garcia From: Hauke Fath Subject: Re: [Dovecot] What about saving your INBOX at ~/mbox ? Content-Type: text/plain; charset="iso-8859-1" ; format="flowed" Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 15:44:25 -0000 X-UID: 9145 Status: O Content-Length: 1218 Am 21.05.2004 um 8:30 Uhr -0400 schrieb Nico Kadel-Garcia: >There is one feature of the old WashU imapd that I miss, though. That >daemonn could be configured to automatically transfer the user's email >to the "~/mbox" upon activation of the daemon, effectively reducing >the size of the /var/spool/mail/{username}" mail spool and helping >keep the user's disk usage in their home directories, not in >/var/spool/mail. This can be a good thing for various reasons. > >But I don't see any way to enable that behavior for dovecot. Is there >something I'm missing, or do folks feel it would be reasonable to add? By chance, I have just set that up. :) My default mailbox goes to ~/Mail/INBOX; adjust to your liking. Set up sendmail/postfix/whatever to use maildrop as your local mailer, add DEFAULT=$HOME/Mail/INBOX to /etc/courier/maildroprc and set default_mail_env = mbox:~/Mail:INBOX=%h/Mail/INBOX -- that's all. HTH, hauke -- Hauke Fath /~\ The ASCII Ribbon Campaign Institut für Nachrichtentechnik \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281, Fax -3778 / \ Respect for open standards From rick@activeservice.co.uk Fri May 21 19:13:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6A088C00282B; Fri, 21 May 2004 19:13:44 +0300 (EEST) Received: from mcp.34sp.com (mcp.34sp.com [212.187.158.4]) by talvi.dovecot.org (Postfix) with SMTP id 78A2DC00280A for ; Fri, 21 May 2004 19:13:40 +0300 (EEST) Received: (qmail 37160 invoked from network); 21 May 2004 16:06:55 -0000 Received: from unknown (HELO activeservice.co.uk) (62.164.178.76) by mcp.34sp.com with SMTP; 21 May 2004 16:06:55 -0000 Received: (qmail 24362 invoked from network); 21 May 2004 16:06:55 -0000 X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on smithy.activeservice.co.uk Received: from dad.activeservice.co.uk (HELO [192.168.0.9]) (192.168.0.9) by smithy.activeservice.co.uk (192.168.0.1) with ESMTP; 21 May 2004 16:06:53 -0000 Date: Fri, 21 May 2004 17:06:48 +0100 From: Rick Jones To: Nico Kadel-Garcia Subject: Re: [Dovecot] "important" flag Message-ID: In-Reply-To: <00a301c43f41$f39ea0e0$b28ccb89@zeppo> References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> <00a301c43f41$f39ea0e0$b28ccb89@zeppo> X-Mailer: Mulberry/3.1.3 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 16:13:44 -0000 X-UID: 9146 Status: O --On 21 May 2004 10:43 -0400 Nico Kadel-Garcia wrote: > > From: "Rick Jones" > >> I'm wondering what I'd need to do to get the "important" flag set on an >> incoming message according to a pre-specified header. >> >> ... >> >> Since the flags are coded into the filenames when using maildir, is it >> possible for qmail to deliver a message with the flag included in the >> filename, and will Dovecot recognise it? If so I might try hacking qmail. > > Probably in procmail, not in dovecot. Interesting thought, but can procmail change the name of the delivered file? I didn't think it could, and AFAICS that's what needs to happen. This is probably a bit OT now for Dovecot :) -- Cheers Rick From nkadel@merl.com Fri May 21 21:05:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 38DCDC002809; Fri, 21 May 2004 21:05:22 +0300 (EEST) Received: from cambridge.merl.com (cambridge.merl.com [137.203.190.1]) by talvi.dovecot.org (Postfix) with ESMTP id 27727C000D8E for ; Fri, 21 May 2004 21:05:17 +0300 (EEST) Received: from tsumi.merl.com (tsumi.merl.com [137.203.134.9]) by cambridge.merl.com (8.12.10/8.12.10) with ESMTP id i4LHwWG1017194; Fri, 21 May 2004 13:58:32 -0400 Received: from zeppo (zeppo.merl.com [137.203.140.178]) by tsumi.merl.com (8.12.8/8.12.8) with SMTP id i4LHwWuC021233; Fri, 21 May 2004 13:58:32 -0400 Message-ID: <01be01c43f5d$3a9be460$b28ccb89@zeppo> From: "Nico Kadel-Garcia" To: "Hauke Fath" References: Subject: Re: [Dovecot] What about saving your INBOX at ~/mbox ? Date: Fri, 21 May 2004 13:58:32 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Received-SPF: pass (cambridge.merl.com: domain of nkadel@merl.com designates 137.203.134.9 as permitted sender) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 18:05:23 -0000 X-UID: 9147 Status: O Content-Length: 1823 ----- Original Message ----- From: "Hauke Fath" To: "Nico Kadel-Garcia" Cc: Sent: Friday, May 21, 2004 11:37 AM Subject: Re: [Dovecot] What about saving your INBOX at ~/mbox ? > Am 21.05.2004 um 8:30 Uhr -0400 schrieb Nico Kadel-Garcia: > >There is one feature of the old WashU imapd that I miss, though. That > >daemonn could be configured to automatically transfer the user's email > >to the "~/mbox" upon activation of the daemon, effectively reducing > >the size of the /var/spool/mail/{username}" mail spool and helping > >keep the user's disk usage in their home directories, not in > >/var/spool/mail. This can be a good thing for various reasons. > > > >But I don't see any way to enable that behavior for dovecot. Is there > >something I'm missing, or do folks feel it would be reasonable to add? > > By chance, I have just set that up. :) [ Configuration to alter delivery of mail to ~/{arbitrary-location} deleted. ] Your approach is not unreasonable. It does require modifying sendmail, rather than putting the behavior in the IMAP daemon where the WashU daemon did it. It also pretty automatically does it for *ALL* users, which is a bad idea for cases when the user's home directory is NFS mounted and may be unavailable at a particular time. The WashU imapd also didn't do this transfer unless the ~/mbox file already existed. It seems to me that, in such circumstances and if I wanted to do it before the IMAP daemon was active, I'd use a procmail recipe to deliver it to the user's mbox. But in that case, if the file transfer fails for whatever reason, the messages would be left behind in /var/spool/mail/%u. And if I'm using user's ~/.procmailrc's, I have all sorts of weirdness for any potentially NFS mounted home directories. From tss@iki.fi Sat May 22 04:51:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1DE0AC002809; Sat, 22 May 2004 04:51:55 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 05DD7C000D8E for ; Sat, 22 May 2004 04:51:53 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D061A300DFC1A for ; Sat, 22 May 2004 04:45:07 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-nTtO8HoqvzDX3XLBPTpa" Message-Id: <1085190307.17204.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 04:45:07 +0300 Subject: [Dovecot] 1.0-test10 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 01:51:55 -0000 X-UID: 9148 Status: O --=-nTtO8HoqvzDX3XLBPTpa Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ Transaction log file contains now only message UIDs rather than message sequences. I'm not really sure why I originally thought sequences were better.. 0.99 Dovecot used UIDs too. A lot of difficult logic (which was also broken) went away with this change. Fixed also "Maildir sync: UID inserted in the middle of mailbox" errors. I can't anymore get this release to easily complain about corrupted indexes. That doesn't mean that the new logic is correct though, so be careful. --=-nTtO8HoqvzDX3XLBPTpa Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArrCjyUhSUUBViskRAnvvAJ9xzo83n6jXoDgMtWXQsS6hwgTsxACfVnjH rIC4LDbiJY/lX66z4qBMwW8= =6tYm -----END PGP SIGNATURE----- --=-nTtO8HoqvzDX3XLBPTpa-- From tss@iki.fi Sat May 22 05:01:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A9E6DC00280C; Sat, 22 May 2004 05:01:08 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 19888C002809 for ; Sat, 22 May 2004 05:00:57 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id BEED9300DFC1A; Sat, 22 May 2004 04:54:12 +0300 (EEST) Subject: Re: [Dovecot] POP (dot) locks From: Timo Sirainen To: Christian Balzer In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-yWMQs9vsfRcGoKPFOsYR" Message-Id: <1085190852.17204.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 04:54:12 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 02:01:09 -0000 X-UID: 9149 Status: O Content-Length: 1740 --=-yWMQs9vsfRcGoKPFOsYR Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-05-18 at 15:10, Christian Balzer wrote: > # Should we create dotlock file even when we want only a read-lock? Setti= ng > # this to yes hurts the performance when the mailbox is accessed simultan= eously > # by multiple processes, but it's needed for reliable reading if no other > # locking methods are available. > #mbox_read_dotlock =3D no > --- > means that if the only other reading accesses to a (mbox style in this > case here) mailbox are via other dovecot processes everything will be fin= e? This setting only means that we use dotlock also for read-locking, not just write-locking mbox. Normally it uses just fcntl/flock. Hmm. I think I should change the description a bit. So, currently Dovecot doesn't try to lock mbox for the whole POP3 session. That may create problems if two sessions actually try to access the mailbox concurrently. If message gets expunged by another process, Dovecot replies with -ERR to requests to fetch the message. That might confuse some POP3 clients, or cause them to send errors to user. I don't think normally anyone even tries concurrent POP3 access? Anyway, I have thought before that Dovecot/pop3 should lock the mbox for the whole time, just like all others POP3 servers do (and RFC says too).. I'll add in TODO. --=-yWMQs9vsfRcGoKPFOsYR Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArrLEyUhSUUBViskRAsh1AJ9ke2toWV+rof0Zfc4GguodQ0WxTQCeMYWz 3T08tXbbOPI8hZWW34/qRbc= =3Kqs -----END PGP SIGNATURE----- --=-yWMQs9vsfRcGoKPFOsYR-- From tss@iki.fi Sat May 22 05:04:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 32A26C00281F; Sat, 22 May 2004 05:04:26 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 4A5D6C00280C for ; Sat, 22 May 2004 05:04:22 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 3771E300DFC1A; Sat, 22 May 2004 04:57:37 +0300 (EEST) Subject: Re: [Dovecot] mbox folders From: Timo Sirainen To: "Villalovos, John L" In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B88C69D@orsmsx410.jf.intel.com> References: <60C14C611F1DDD4198D53F2F43D8CA3B88C69D@orsmsx410.jf.intel.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-pGbiX1a1SI/p4XTRQCBa" Message-Id: <1085191057.17204.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 04:57:37 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 02:04:26 -0000 X-UID: 9150 Status: O --=-pGbiX1a1SI/p4XTRQCBa Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-05-18 at 23:46, Villalovos, John L wrote: > The problem I am having is that it seems to want to put folders in: >=20 > ~/mail/mail/ Your IMAP client is configured with namespace set to "mail/" or something similiar to get it working right UW-IMAP. Set this empty and it works like you want. Alternatively set default_mail_env =3D mbox:~/:INBOX=3D/var/spool/mail/%u --=-pGbiX1a1SI/p4XTRQCBa Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArrOQyUhSUUBViskRAnxRAJwOdVdUZyKFvhpyv1RgpSZEkRj5ZQCfW6NL i7IsCHqbJlZ2XR7uc1ONJCE= =o/O0 -----END PGP SIGNATURE----- --=-pGbiX1a1SI/p4XTRQCBa-- From tss@iki.fi Sat May 22 05:11:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C2CD5C00281F; Sat, 22 May 2004 05:11:37 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A5FF2C00280C for ; Sat, 22 May 2004 05:11:35 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id A9A431C1D0E1; Sat, 22 May 2004 05:04:50 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id A34A41C1D0E2; Sat, 22 May 2004 05:04:50 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 216F51C1D0E1 for ; Sat, 22 May 2004 05:04:16 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id D5A72300DFC1A; Sat, 22 May 2004 05:04:15 +0300 (EEST) Subject: Re: [Dovecot] why does dovecot child die on these messages? From: Timo Sirainen To: Charlie Allom In-Reply-To: <20040520094318.GA3207@myinternet.com.au> References: <20040520094318.GA3207@myinternet.com.au> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-mB9kxjBlSGwUZ3hvJ1sv" Message-Id: <1085191455.17204.21.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 05:04:15 +0300 Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 02:11:38 -0000 X-UID: 9151 Status: O Content-Length: 1307 --=-mB9kxjBlSGwUZ3hvJ1sv Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-05-20 at 12:43, Charlie Allom wrote: > I find that emails before a certain date are OK - but if i edit them and=20 > then try and refetch them - the child dies yet again. So I removed all=20 > .imap.* and let dovecot redo it's stuff. No go. >=20 > Some followup information before the meat of the truss:=20 >=20 > http://lazy.spodder.com/~yeled/BSD/broken.dove.txt 24087: * 2 9 F E T C H ( U I D 4 4 B O D Y [ H E A D E R ] 24087: { 3 4 1 }\r\n 24087: sendfilev64(1, 1, 0xFFBFF438, 1, 0xFFBFF434) Err#124 EAFNOSUPPOR= T sfv_fd=3D9 sfv_flag=3D0x0 sfv_off=3D0 sfv_len=3D341 You've set mail_save_crlf =3D yes, and looks like sendfile() doesn't work for some reason and Dovecot doesn't try to fallback to write().. Dovecot only checks for EINVAL error, I'll add EAFNOSUPPORT in the check too. --=-mB9kxjBlSGwUZ3hvJ1sv Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArrUfyUhSUUBViskRAlJxAJwNwo6kDUdyOBd1d63XKNFq0hJBGwCfR4F9 DAkkVpsLvt8moYaoZiK5K6Q= =09e6 -----END PGP SIGNATURE----- --=-mB9kxjBlSGwUZ3hvJ1sv-- From tss@iki.fi Sat May 22 05:30:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 55F04C002823; Sat, 22 May 2004 05:30:59 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 5123BC00280C for ; Sat, 22 May 2004 05:30:57 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 43ABC300DFC1A; Sat, 22 May 2004 05:24:12 +0300 (EEST) Subject: Re: [Dovecot] Why the name dovecot? From: Timo Sirainen To: Sven Kirmess In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-we4XpVTtxQCOk6AVW3j4" Message-Id: <1085192652.17204.36.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 05:24:12 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 02:30:59 -0000 X-UID: 9152 Status: O Content-Length: 1339 --=-we4XpVTtxQCOk6AVW3j4 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-05-20 at 19:06, Sven Kirmess wrote: > Why is docecot called dovecot? Actually, nobody likes these "rats with wi= ngs". ;-) >=20 > Timo, can we know that or is it a secret? Well, I think the original discussion was in silcnet #silc where I asked some naming suggestions for my new IMAP server, but I don't have it logged. I found something from IRC logs though: 18.07.2002 20:13 <@Bostik> I tried to suggest him naming if "Dovecot", but don't know if it's good enough for him 18.07.2002 20:14 <@cras> bostik: too bad dovecot.org is taken, but of course i could always do dovecot-imapd.org .. 23.07.2002 18:54 <@cras> but the name .. would Dovecot be good..? :) bostik's idea btw. 23.07.2002 21:07 -!- cras changed the topic of #irssi to: design help please :) http://procontrol.fi/dovecot/ BTW. much of Dovecot was initially designed that summer while jogging. --=-we4XpVTtxQCOk6AVW3j4 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArrnMyUhSUUBViskRAgSCAKCB26W5EdAMLAo7ColAY/5Pprhp3gCeN5gL x9KJw8fQ9sDp5w94Yx8Tabs= =EOhY -----END PGP SIGNATURE----- --=-we4XpVTtxQCOk6AVW3j4-- From chibi@gol.com Sat May 22 05:37:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8EB53C002822; Sat, 22 May 2004 05:37:40 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id 795ECC002823 for ; Sat, 22 May 2004 05:37:36 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BRMHe-0008Ca-00 for ; Sat, 22 May 2004 11:30:46 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Subject: Re: [Dovecot] POP (dot) locks In-reply-to: <1085190852.17204.14.camel@hurina> References: <1085190852.17204.14.camel@hurina> Comments: In-reply-to Timo Sirainen message dated "Sat, 22 May 2004 04:54:12 +0300." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 22 May 2004 11:30:46 +0900 From: Christian Balzer Message-Id: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 02:37:40 -0000 X-UID: 9153 Status: O Content-Length: 2397 Timo wrote: > >So, currently Dovecot doesn't try to lock mbox for the whole POP3 >session. That may create problems if two sessions actually try to access >the mailbox concurrently. If message gets expunged by another process, >Dovecot replies with -ERR to requests to fetch the message. That might >confuse some POP3 clients, or cause them to send errors to user. > That is (for me at least) acceptable as long as there is no danger of actual mailbox corruption (a message gets deleted while another client is actually downloading it). Is this the case in .99.10.4? Again, just expunging something get some things confused, but not lethally so, as tested with a number of clients here. ^^ >I don't think normally anyone even tries concurrent POP3 access? Unfortunately the harsh reality of ISP life tells us otherwise, at least with substandard clients on slow links. Typical current scenario: User with Outlook (Express) on an ISDN or dialup link gets a huge mail. The default timeout for that client is 1 minute, after that it just gives up, but w/o our end actually noticing it. The result are the previously mentioned 30 minutes of POP-lock until qpopper gives up itself or the user tears down the PPP session which gets the message across to qpopper, too. Now during the server side imposed lock the user will be told that another POP session is active while that isn't true from their point of view of course. With the current dovecot they can try again immediately, of course failing again on the large email but the consistent error given might lead them to the right course of action: Get better software, a better link or at least configure your current setup correctly. ;) >Anyway, >I have thought before that Dovecot/pop3 should lock the mbox for the >whole time, just like all others POP3 servers do (and RFC says too).. >I'll add in TODO. > If the RFC requires it, there will be no argument from me, though more granular locks which prevent really bad things from happening are sufficient for me and as detailed above might be more responsive. Also you are saying mbox up there, would a maildir storage accessed via POP3 really be immune to these possibly confusing effects for clients? Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From tss@iki.fi Sat May 22 05:37:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7EC8CC002822; Sat, 22 May 2004 05:37:41 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 005EEC002824 for ; Sat, 22 May 2004 05:37:38 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id ED310300DFC1A; Sat, 22 May 2004 05:30:52 +0300 (EEST) Subject: Re: [Dovecot] Dovecot Questions From: Timo Sirainen To: Adam Kessel In-Reply-To: <20040521030229.GB6525@bostoncoop.net> References: <20040521030229.GB6525@bostoncoop.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-XgYdC1WOblNUTQuTrbOz" Message-Id: <1085193052.17204.43.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 05:30:52 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 02:37:41 -0000 X-UID: 9154 Status: O Content-Length: 1955 --=-XgYdC1WOblNUTQuTrbOz Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-21 at 06:02, Adam Kessel wrote: > uw-imapd provides a binary /usr/sbin/imapd that can be used for an > ssh-imap tunnel. I found /usr/lib/dovecot/imap (in Debian) which > might work as a replacement, except that it appears that running > /usr/lib/dovecot/imap doesn't properly read in the configuration > file--for example, it is trying to create dotlocks, but in the > configuration I have flock. Is there any way I can do what I want to > do here? imap doesn't read configuration file at all, it expects all it's configuration to be in environment variables. I've in TODO to make "dovecot --exec-mail imap" or something like work, which would just read the config and execute imap process. For now you could set the config manually, such as MBOX_LOCKS=3Dfcntl. The environments are only listed in src/master/mail-process.c > - Dovecot seems to be dying spontaneously in conjunction with > SquirrelMail. Do you have any experience of this? SquirrelMail ends > up reporting that there was no response to the CAPABILITY query. If I > restart Dovecot, everything is fine again. I don't see anything in the > logs to indicate the problem. Any ideas why this might be happening? Does it try to use SSL? Probably not.. hmm. It needs a restart to get working again? Some people have said that they need to restart dovecot once in a while or it stops responding. I haven't really figured that out yet. What does ls -l /proc/dovecot-pid/fd/ show then? --=-XgYdC1WOblNUTQuTrbOz Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArrtcyUhSUUBViskRAkS8AJ99JVXOagap8vX8c8f1I2mfYS0H7gCeMaUE MkYVJ0Bo03mIM2cs0AEBu5k= =LHe4 -----END PGP SIGNATURE----- --=-XgYdC1WOblNUTQuTrbOz-- From tss@iki.fi Sat May 22 05:43:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 27078C002823; Sat, 22 May 2004 05:43:03 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 0F7FAC002822 for ; Sat, 22 May 2004 05:43:01 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id ED4AE300DFC1A; Sat, 22 May 2004 05:36:15 +0300 (EEST) Subject: Re: [Dovecot] feature request / question? From: Timo Sirainen To: James Moser In-Reply-To: <40AD742B.6070001@powweb.com> References: <40AD742B.6070001@powweb.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Rj+3I+QmyahHM55dOKuP" Message-Id: <1085193375.17204.50.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 05:36:15 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 02:43:03 -0000 X-UID: 9155 Status: O Content-Length: 1649 --=-Rj+3I+QmyahHM55dOKuP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-21 at 06:14, James Moser wrote: > Occasionally we get a user who decided they need to pop their account 3=20 > to 4 times a second... usually I just disable their account and shout=20 > "no!", but now I have someone trying to do it repeatedly with an invalid=20 > username so I don't know who to spank. =3D) Before if this happened I=20 > would block the IP and wait for someone to complain... dovecot doesn't=20 > make that very easy, or at least I don't see how. >=20 > May 20 20:12:29 mail05 dovecot-auth: mech-plain(jhurley@thegrid.net):=20 > invalid username Currently login process doesn't tell the IP address to auth process, so dovecot-auth doesn't even know the IP. I'll probably change this though. The logging in general should be improved and made more configurable. > No IP address, and we do not host thegrid.net. There are no other=20 > messages or authetication errors being logged anywhere else either. It=20 > would be helpful to have dovecot display the IP address of failed=20 > authentications as well... it allready show's it for login's. After those "invalid username" errors it shows a failed connect with IP address. It's one of those.. --=-Rj+3I+QmyahHM55dOKuP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArryfyUhSUUBViskRAgy3AJ401GT1CnQm0Te9+2fZOOWMWqT+3wCaA+PA JsrDLCyRE04UpR9SuA/tHQM= =A0b3 -----END PGP SIGNATURE----- --=-Rj+3I+QmyahHM55dOKuP-- From tss@iki.fi Sat May 22 05:43:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 58880C002823; Sat, 22 May 2004 05:43:43 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 40DC1C002823 for ; Sat, 22 May 2004 05:43:19 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 2B267300DFC1A; Sat, 22 May 2004 05:36:34 +0300 (EEST) Subject: Re: [Dovecot] feature request / question? From: Timo Sirainen To: Hauke Fath In-Reply-To: <20040521121751.79723952.hf@spg.tu-darmstadt.de> References: <40AD742B.6070001@powweb.com> <20040521121751.79723952.hf@spg.tu-darmstadt.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-dFGWmFC4b5eejGJYYx2j" Message-Id: <1085193394.17204.52.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 05:36:34 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 02:43:44 -0000 X-UID: 9156 Status: O --=-dFGWmFC4b5eejGJYYx2j Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-21 at 13:17, Hauke Fath wrote: > On Thu, 20 May 2004 20:14:51 -0700 James Moser wrote: >=20 > > Before if this happened I=20 > > would block the IP and wait for someone to complain... dovecot > > doesn't make that very easy, or at least I don't see how. >=20 > Can dovecot be built with tcpwrappers support? That would take care of > the problem... Well, you can run Dovecot through inetd. --=-dFGWmFC4b5eejGJYYx2j Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArryyyUhSUUBViskRAvclAJ49q8StbPFJiaa2sBAw3igsj3mgggCglwOG J2ZvETyPpbN6mOvV6a2uF2g= =TDvl -----END PGP SIGNATURE----- --=-dFGWmFC4b5eejGJYYx2j-- From tss@iki.fi Sat May 22 05:47:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B12E7C002827; Sat, 22 May 2004 05:47:13 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id B23A2C002823 for ; Sat, 22 May 2004 05:47:11 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 9D04C300DFC1A; Sat, 22 May 2004 05:40:26 +0300 (EEST) Subject: Re: [Dovecot] What about saving your INBOX at ~/mbox ? From: Timo Sirainen To: Nico Kadel-Garcia In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Cu4jiPR736cPJaMxIkwP" Message-Id: <1085193626.17204.56.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 05:40:26 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 02:47:13 -0000 X-UID: 9157 Status: O Content-Length: 1054 --=-Cu4jiPR736cPJaMxIkwP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-21 at 15:30, Nico Kadel-Garcia wrote: > There is one feature of the old WashU imapd that I miss, though. That > daemonn could be configured to automatically transfer the user's email > to the "~/mbox" upon activation of the daemon, effectively reducing > the size of the /var/spool/mail/{username}" mail spool and helping > keep the user's disk usage in their home directories, not in > /var/spool/mail. This can be a good thing for various reasons. Oh, so there are actually some reasons for the ~/mbox moving? :) Maybe I'll implement it for 1.0, but there's no quick fix. --=-Cu4jiPR736cPJaMxIkwP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArr2ayUhSUUBViskRAnIuAJ9rByXp689gKdY05uoQBgohP0jglACfZ98G s+wdcUHnWmVd2677hmEIi34= =IdO9 -----END PGP SIGNATURE----- --=-Cu4jiPR736cPJaMxIkwP-- From tss@iki.fi Sat May 22 05:54:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A813AC00282B; Sat, 22 May 2004 05:54:14 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 36A0EC002823 for ; Sat, 22 May 2004 05:54:12 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 21886300DFC1A; Sat, 22 May 2004 05:47:27 +0300 (EEST) Subject: Re: [Dovecot] "important" flag From: Timo Sirainen To: Rick Jones In-Reply-To: <11A74BFC8C15FF94489659DB@[192.168.0.9]> References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-HJvWBJnpAUknIyGxKJLV" Message-Id: <1085194046.17204.63.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 05:47:26 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 02:54:14 -0000 X-UID: 9158 Status: O Content-Length: 1797 --=-HJvWBJnpAUknIyGxKJLV Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-21 at 16:08, Rick Jones wrote: > I'm wondering what I'd need to do to get the "important" flag set on an=20 > incoming message according to a pre-specified header. >=20 > I know the problem of this not being a "joined-up" feature in standard=20 > email, but in practice many MUAs set headers like X-priority etc, and IMA= P=20 > has an "important" flag that is the obvious mapping. >=20 > I'm not really sure where would be the best place to try to put something= =20 > like this. Should it be the delivery agent (qmail in my case), the IMAP=20 > server (i.e. Dovecot), or the MUA? To me the MUA doesn't make sense, as t= he=20 > flag should be set before any specific MUA even gets to the message. LDA is the correct place. Dovecot LDA with Sieve support would make this easy. Any voluenteers to write this? :) Shouldn't be too difficult using libsieve. > Since the flags are coded into the filenames when using maildir, is it=20 > possible for qmail to deliver a message with the flag included in the=20 > filename, and will Dovecot recognise it? If so I might try hacking qmail. If the flag is in Dovecot's .customflags file you can hack qmail to directly add the flag in the filename. Files in new/ directory shouldn't actually contain flags (Dovecot's COPY works wrong here..), but Dovecot supports them fine. --=-HJvWBJnpAUknIyGxKJLV Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArr8+yUhSUUBViskRAmkFAJ41nTIY6peTOkHTkd4mtYujT9CGMgCcD7CJ 11AgvfRpsAbw++S0Rbhb7m4= =lpuV -----END PGP SIGNATURE----- --=-HJvWBJnpAUknIyGxKJLV-- From tss@iki.fi Sat May 22 06:04:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0A636C002809; Sat, 22 May 2004 06:04:21 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 04A6DC000D8E for ; Sat, 22 May 2004 06:04:19 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id DD56E300DFC1A; Sat, 22 May 2004 05:57:33 +0300 (EEST) Subject: Re: [Dovecot] maildirsize virtual quota support From: Timo Sirainen To: "\"Branko F." =?iso-8859-2?Q?Gra=E8nar=22?= In-Reply-To: <40AE16D7.1030402@noviforum.si> References: <40AE16D7.1030402@noviforum.si> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ZNkKAibvwWx/dATcDV+F" Message-Id: <1085194653.17204.74.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 05:57:33 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 03:04:21 -0000 X-UID: 9159 Status: O Content-Length: 1304 --=-ZNkKAibvwWx/dATcDV+F Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-21 at 17:48, "Branko F. Gra=E8nar" wrote: > I'm interested to help you with maildirsize virtual quota support. >=20 > Is there any documented dovecot api? For 0.99.x it's not easy and I wouldn't even try. For 1.0-tests it should be possible with a plugin. http://dovecot.org/patches/quota.c has a dummy implementation but it too needs a bit of work and I don't think it compiles against 1.0-tests. src/mail-storage/mail-storage.h is the most important API you need, but quota.c already handles that. There's the one FIXME which is still a bit of a problem, but that'll get fixed before 1.0. I'll probably change mailbox_save() to return struct mail* from which you can ask get_size(). So, if you just implement functions to add to maildir quota, remove from it and recalculate it, it's mostly there :) --=-ZNkKAibvwWx/dATcDV+F Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArsGdyUhSUUBViskRAo4nAJ9ASy+owBvcKNYB2bNNr9vNajgSmgCfd1le 35DjSfIZQQy/UQU7jJnCIgg= =jBCJ -----END PGP SIGNATURE----- --=-ZNkKAibvwWx/dATcDV+F-- From tss@iki.fi Sat May 22 06:16:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 934D8C00282B; Sat, 22 May 2004 06:16:07 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 630C6C000D8E for ; Sat, 22 May 2004 06:16:05 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id 4B731300DFC1A; Sat, 22 May 2004 06:09:20 +0300 (EEST) Subject: Re: [Dovecot] POP (dot) locks From: Timo Sirainen To: Christian Balzer In-Reply-To: References: <1085190852.17204.14.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-7YcrFpAB0bNj5CcOvX9l" Message-Id: <1085195360.17204.85.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 06:09:20 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 03:16:07 -0000 X-UID: 9160 Status: O Content-Length: 2154 --=-7YcrFpAB0bNj5CcOvX9l Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-05-22 at 05:30, Christian Balzer wrote: > >So, currently Dovecot doesn't try to lock mbox for the whole POP3 > >session. That may create problems if two sessions actually try to access > >the mailbox concurrently. If message gets expunged by another process, > >Dovecot replies with -ERR to requests to fetch the message. That might > >confuse some POP3 clients, or cause them to send errors to user. > > > That is (for me at least) acceptable as long as there is no danger of > actual mailbox corruption (a message gets deleted while another client is= =20 > actually downloading it). Is this the case in .99.10.4? There's no possibility for corruption, as long as all software accessing mbox uses compatible locking. So if you don't have mbox_read_dotlock set, make sure everyone uses also fcntl (or flock) locking. > >Anyway, > >I have thought before that Dovecot/pop3 should lock the mbox for the > >whole time, just like all others POP3 servers do (and RFC says too).. > >I'll add in TODO. > > > If the RFC requires it, there will be no argument from me, though more > granular locks which prevent really bad things from happening are > sufficient for me and as detailed above might be more responsive. >=20 > Also you are saying mbox up there, would a maildir storage accessed via > POP3 really be immune to these possibly confusing effects for clients? Maildir can't be locked and so it has the same problem that message might get lost. That's pretty much the reason why I didn't bother to make pop3 lock mboxes either. Both mbox and pop3 are of smaller priority to me than maildir+imap, and making some mbox+pop3-specific locking kludge there wasn't very attractive. --=-7YcrFpAB0bNj5CcOvX9l Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArsRgyUhSUUBViskRAkUgAJ9r7USlro6z/Ub3zMcBb66vHtaHRwCfZoV4 mgJUUbj3LAshQ/5k60bVeAk= =KjlG -----END PGP SIGNATURE----- --=-7YcrFpAB0bNj5CcOvX9l-- From tss@iki.fi Sat May 22 06:24:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 24699C00286A; Sat, 22 May 2004 06:24:49 +0300 (EEST) Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by talvi.dovecot.org (Postfix) with ESMTP id 20E44C00282B for ; Sat, 22 May 2004 06:24:47 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by oma.irssi.org (Postfix) with ESMTP id F0CFD300DFC1A; Sat, 22 May 2004 06:18:01 +0300 (EEST) Subject: Re: [Dovecot] using one-time passwords From: Timo Sirainen To: Johannes Berg In-Reply-To: <1084890033.2294.4.camel@johannes> References: <1084468593.2651.33.camel@johannes> <1084753491.2023.52.camel@hurina> <1084765494.3100.57.camel@johannes> <1084788718.2772.6.camel@johannes> <1EC60642-A8C6-11D8-AEE1-000393CC2E90@iki.fi> <1084890033.2294.4.camel@johannes> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-BO0sK/mohLlrff2TblfZ" Message-Id: <1085195881.17204.92.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 22 May 2004 06:18:01 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 03:24:49 -0000 X-UID: 9161 Status: O Content-Length: 1206 --=-BO0sK/mohLlrff2TblfZ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-05-18 at 17:20, Johannes Berg wrote: > > That doesn't look very good code .. Looks like if it was possible for > > user to set wanted seed there would be several buffer overflows. But I > > guess normally it's not? >=20 > I'm not sure I understand you. > opiepasswd allows you to set the seed when changing your otp settings. I > guess I'll need to look at the code, though I'm not really a C wizard > nor very knowledgeable about insecure C code. Can you explain further > what possible problems you see? opiepasswd checks that the seed is valid size so it's kind of safe, but if you were able to directly modify the database and add a larger seed than normally allowed, the password verifying code could overflow some buffers. --=-BO0sK/mohLlrff2TblfZ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBArsZpyUhSUUBViskRAlO+AJ99P7Xc0/eNwAdzhq+Ai8bHy3J3JQCffVpW XX8hZRDX/XqPoGc5ENHChiE= =ugRv -----END PGP SIGNATURE----- --=-BO0sK/mohLlrff2TblfZ-- From chibi@gol.com Sat May 22 06:53:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9C94BC00286C; Sat, 22 May 2004 06:53:31 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id 24BD0C00282B for ; Sat, 22 May 2004 06:53:27 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BRNT6-0000fe-00 for ; Sat, 22 May 2004 12:46:40 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Subject: Re: [Dovecot] POP (dot) locks In-reply-to: <1085195360.17204.85.camel@hurina> References: <1085190852.17204.14.camel@hurina> <1085195360.17204.85.camel@hurina> Comments: In-reply-to Timo Sirainen message dated "Sat, 22 May 2004 06:09:20 +0300." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 22 May 2004 12:46:40 +0900 From: Christian Balzer Message-Id: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 03:53:32 -0000 X-UID: 9162 Status: O Content-Length: 2078 Timo wrote (hmm, given the usual programmers life style I'd say VERY late at nigth :) : >There's no possibility for corruption, as long as all software accessing >mbox uses compatible locking. So if you don't have mbox_read_dotlock >set, make sure everyone uses also fcntl (or flock) locking. > Oh, my worries are not about the only other bit accessing the boxes, which is exim and that uses fcntl. My question was about this, not at all theoretical scenario: User has a client at home to auto-download (but leave mails on server) and is using a slow link, so those message downloads take a quite measurable time. Now he logs into webmail (which of course also ultimately uses dovecot to access the mailbox) and deletes a message which is currently in transit to his home machine. Will the result be: a) The "read" of that message has triggered an internal dovecot lock and the "write" of the delete will have to wait until this is released. b) The delete happens immediately, but thanks to buffering the read and delivery of the message is always successfully finished. c) The delete of the message happens immediately, the state of the message in transit is indeterminable and it might be truncated. > >Maildir can't be locked and so it has the same problem that message >might get lost. That's pretty much the reason why I didn't bother to >make pop3 lock mboxes either. Both mbox and pop3 are of smaller priority >to me than maildir+imap, and making some mbox+pop3-specific locking >kludge there wasn't very attractive. > Totally understood and agreed with. The solution would of course be to totally lock out any other logins (imap or pop) while a pop3 session is active, like qpopper does. Alas that would have the aforementioned unpleasant side effects. So as long as the answer to the above question is a) or b) I see no reason to add either mbox or session locking. Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From tss@iki.fi Sat May 22 07:19:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 387C2C00286D; Sat, 22 May 2004 07:19:47 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id EA928C00282B for ; Sat, 22 May 2004 07:19:44 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id CAD531C1D0E2; Sat, 22 May 2004 07:12:59 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 106DF1C1D0E1; Sat, 22 May 2004 07:12:23 +0300 (EEST) In-Reply-To: References: <1085190852.17204.14.camel@hurina> <1085195360.17204.85.camel@hurina> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-4--482241157" Message-Id: <38B5435A-ABA6-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] POP (dot) locks Date: Sat, 22 May 2004 07:12:21 +0300 To: Christian Balzer X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.3 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 04:19:47 -0000 X-UID: 9163 Status: O Content-Length: 1750 --Apple-Mail-4--482241157 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.5.2004, at 06:46, Christian Balzer wrote: > Timo wrote (hmm, given the usual programmers life style I'd say VERY > late > at nigth :) : Just went to bed, now just the last few things.. :) > User has a client at home to auto-download (but leave mails on server) > and is using a slow link, so those message downloads take a quite > measurable time. Now he logs into webmail (which of course also > ultimately uses dovecot to access the mailbox) and deletes a message > which is currently in transit to his home machine. > Will the result be: > a) The "read" of that message has triggered an internal dovecot lock > and > the "write" of the delete will have to wait until this is released. Dovecot read-locks the mailbox while it's reading a mail, so this one happens. > b) The delete happens immediately, but thanks to buffering the read and > delivery of the message is always successfully finished. Something like this would happen with maildir. > c) The delete of the message happens immediately, the state of the > message in transit is indeterminable and it might be truncated. And this would happen if you didn't set the locking correctly :) --Apple-Mail-4--482241157 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFArtMlyUhSUUBViskRAg4wAJ9igwwxCK+IsRbDelHNV0n8YNc8tACcCUYq KiC6atUQ8nLlySNxhFNpeMc= =EmtS -----END PGP SIGNATURE----- --Apple-Mail-4--482241157-- From charlie@rubberduck.com Sat May 22 10:08:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BB07DC00286D; Sat, 22 May 2004 10:08:57 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 068CEC002826 for ; Sat, 22 May 2004 10:08:53 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 9650E1C1D0E1; Sat, 22 May 2004 10:02:07 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 904D51C1D0E2; Sat, 22 May 2004 10:02:07 +0300 (EEST) Received: from lazy.spodder.com (unknown [203.18.243.123]) by danu.procontrol.fi (Postfix) with ESMTP id C90ED1C1D0E1 for ; Sat, 22 May 2004 10:01:29 +0300 (EEST) Received: from machine.internal.schools.net.au (dsl-203-113-219-180.VIC.netspace.net.au [203.113.219.180]) by lazy.spodder.com (Postfix) with ESMTP id 8027090CD; Sat, 22 May 2004 16:56:33 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id 9E1A16AF0C5; Sat, 22 May 2004 15:20:34 +1000 (EST) Date: Sat, 22 May 2004 15:20:33 +1000 From: Charlie Allom To: Timo Sirainen Subject: Re: [Dovecot] why does dovecot child die on these messages? Message-ID: <20040522052032.GA11849@myinternet.com.au> References: <20040520094318.GA3207@myinternet.com.au> <1085191455.17204.21.camel@hurina> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Dxnq1zWXvFF0Q93v" Content-Disposition: inline In-Reply-To: <1085191455.17204.21.camel@hurina> User-Agent: Mutt/1.5.6i Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 07:08:58 -0000 X-UID: 9164 Status: O --Dxnq1zWXvFF0Q93v Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, May 22, 2004 at 05:04:15AM +0300, Timo Sirainen wrote: >=20 > You've set mail_save_crlf =3D yes, and looks like sendfile() doesn't work > for some reason and Dovecot doesn't try to fallback to write().. >=20 > Dovecot only checks for EINVAL error, I'll add EAFNOSUPPORT in the check > too. >=20 Timo - You're a legend! C. --=20 =2Esignature 0x14AA7941 --Dxnq1zWXvFF0Q93v Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFAruMgqiZDwhSqeUERAr5mAKCFGEDgTRRlcVo2C8u2xuEKD43WWQCfeSKl CkzFPTcQFoEmOyLRGdAHyFs= =MqFL -----END PGP SIGNATURE----- --Dxnq1zWXvFF0Q93v-- From rick@activeservice.co.uk Sat May 22 13:12:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D5EF1C000D8E; Sat, 22 May 2004 13:12:43 +0300 (EEST) Received: from mcp.34sp.com (mcp.34sp.com [212.187.158.4]) by talvi.dovecot.org (Postfix) with SMTP id 4C5B2C000D8E for ; Sat, 22 May 2004 13:12:41 +0300 (EEST) Received: (qmail 81913 invoked from network); 22 May 2004 10:05:54 -0000 Received: from unknown (HELO activeservice.co.uk) (62.164.178.76) by mcp.34sp.com with SMTP; 22 May 2004 10:05:54 -0000 Received: (qmail 30072 invoked from network); 22 May 2004 10:05:54 -0000 X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on smithy.activeservice.co.uk Received: from dad.activeservice.co.uk (HELO [192.168.0.9]) (192.168.0.9) by smithy.activeservice.co.uk (192.168.0.1) with ESMTP; 22 May 2004 10:05:52 -0000 Date: Sat, 22 May 2004 11:05:49 +0100 From: Rick Jones To: Timo Sirainen Subject: Re: [Dovecot] "important" flag Message-ID: <5E6022C6BA20F275636984F3@[192.168.0.9]> In-Reply-To: <1085194046.17204.63.camel@hurina> References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> <1085194046.17204.63.camel@hurina> X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 10:12:44 -0000 X-UID: 9165 Status: O Content-Length: 1060 --On 22 May 2004 05:47 +0300 Timo Sirainen wrote: > On Fri, 2004-05-21 at 16:08, Rick Jones wrote: >> I'm wondering what I'd need to do to get the "important" flag set on an >> incoming message according to a pre-specified header. >> ... >> Since the flags are coded into the filenames when using maildir, is it >> possible for qmail to deliver a message with the flag included in the >> filename, and will Dovecot recognise it? If so I might try hacking qmail. > > If the flag is in Dovecot's .customflags file you can hack qmail to > directly add the flag in the filename. Files in new/ directory shouldn't > actually contain flags (Dovecot's COPY works wrong here..), but Dovecot > supports them fine. I don't quite follow the significance of .customflags here, as the flag in question (important) isn't a custom one. And are you saying that adding a flag to the file in new/ only works because Dovecot doesn't actually do the right thing? :) In which case, is this likely to be fixed/broken (depending on your viewpoint) in future? Rick From hf@spg.tu-darmstadt.de Sat May 22 14:34:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2F663C002809; Sat, 22 May 2004 14:34:08 +0300 (EEST) Received: from la3serv.rninet.de (la3serv.rninet.de [62.225.55.3]) by talvi.dovecot.org (Postfix) with ESMTP id ADCCAC000D8E for ; Sat, 22 May 2004 14:34:05 +0300 (EEST) Received: (from uucp@localhost) by la3serv.rninet.de (8.12.10/8.12.10) with UUCP id i4MBBfbk010636; Sat, 22 May 2004 13:11:41 +0200 Received: from [172.16.7.7] (blech.causeuse.org [172.16.7.7]) by pizza.causeuse.org (8.12.11/8.12.11) with ESMTP id i4MAssQn025981; Sat, 22 May 2004 12:54:55 +0200 (CEST) Mime-Version: 1.0 X-Sender: hf@bounce.nt.e-technik.tu-darmstadt.de (Unverified) Message-Id: In-Reply-To: <01be01c43f5d$3a9be460$b28ccb89@zeppo> References: <01be01c43f5d$3a9be460$b28ccb89@zeppo> Date: Fri, 21 May 2004 22:58:01 +0100 To: "Nico Kadel-Garcia" From: Hauke Fath Subject: Re: [Dovecot] What about saving your INBOX at ~/mbox ? Content-Type: text/plain; charset="iso-8859-1" ; format="flowed" Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 11:34:08 -0000 X-UID: 9166 Status: O Am 21.05.2004 um 13:58 Uhr -0400 schrieb Nico Kadel-Garcia: >Your approach is not unreasonable. It does require modifying sendmail, >rather than putting the behavior in the IMAP daemon where the WashU daemon >did it. Well, if you call adding define(`LOCAL_MAILER_PATH', `/usr/pkg/bin/maildrop')dnl define(`LOCAL_MAILER_FLAGS', `SPfhn')dnl define(`LOCAL_MAILER_ARGS', `maildrop -d $u')dnl to your favourite .mc config 'modifying sendmail'... You'll want a reasonable local mailer, anyway, for server-side filtering. hauke -- Hauke Fath /~\ The ASCII Ribbon Campaign Institut für Nachrichtentechnik \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281, Fax -3778 / \ Respect for open standards From tomi.hakala@clinet.fi Sat May 22 16:43:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E983EC002809; Sat, 22 May 2004 16:43:27 +0300 (EEST) Received: from columbia.jamsanpaintball.fi (columbia.jamsanpaintball.fi [80.64.12.172]) by talvi.dovecot.org (Postfix) with ESMTP id 5E4ADC000D8E for ; Sat, 22 May 2004 16:43:23 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by columbia.jamsanpaintball.fi (Postfix) with ESMTP id 1D0A51BADA for ; Sat, 22 May 2004 16:36:37 +0300 (EEST) Received: from columbia.jamsanpaintball.fi ([127.0.0.1]) by localhost (columbia [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 32740-08 for ; Sat, 22 May 2004 16:36:32 +0300 (EEST) Received: from clinet.fi (dsl-jklgw3f48.dial.inet.fi [80.223.21.72]) by columbia.jamsanpaintball.fi (Postfix) with ESMTP id 6358A1BAD7 for ; Sat, 22 May 2004 16:36:32 +0300 (EEST) Message-ID: <40AF575F.81850166@clinet.fi> Date: Sat, 22 May 2004 16:36:31 +0300 From: Tomi Hakala X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] POP (dot) locks References: <1085190852.17204.14.camel@hurina> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at jamsanpaintball.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 13:43:28 -0000 X-UID: 9167 Status: O Christian Balzer wrote: > Timo wrote: > >I don't think normally anyone even tries concurrent POP3 access? > Unfortunately the harsh reality of ISP life tells us otherwise I agree, you can expect that customers will do unexpected things :-) -- Tomi Hakala From tss@iki.fi Sat May 22 17:15:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 59140C002809; Sat, 22 May 2004 17:15:10 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 5D9EEC000D8E for ; Sat, 22 May 2004 17:15:04 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 3C52D1C1D0E3; Sat, 22 May 2004 17:08:18 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F0D221C1D0E2; Sat, 22 May 2004 17:07:43 +0300 (EEST) In-Reply-To: <5E6022C6BA20F275636984F3@[192.168.0.9]> References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> <1085194046.17204.63.camel@hurina> <5E6022C6BA20F275636984F3@[192.168.0.9]> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-7--446519605" Message-Id: <646A2C7E-ABF9-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] "important" flag Date: Sat, 22 May 2004 17:07:42 +0300 To: Rick Jones X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 14:15:10 -0000 X-UID: 9168 Status: O Content-Length: 1775 --Apple-Mail-7--446519605 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.5.2004, at 13:05, Rick Jones wrote: >> If the flag is in Dovecot's .customflags file you can hack qmail to >> directly add the flag in the filename. Files in new/ directory >> shouldn't >> actually contain flags (Dovecot's COPY works wrong here..), but >> Dovecot >> supports them fine. > > I don't quite follow the significance of .customflags here, as the > flag in question (important) isn't a custom one. What were you going to use then? Neither IMAP nor Maildir defines an "important" flag unless you use some existing one for it (flagged?). So I was thinking you'd add eg. "1 important" to .customflags and then use 'a' flag in maildir filename. > And are you saying that adding a flag to the file in new/ only works > because Dovecot doesn't actually do the right thing? :) In which case, > is this likely to be fixed/broken (depending on your viewpoint) in > future? I don't think I'm going to change the Dovecot's behaviour of accepting flags in new/ dir, but I was going to change COPY command to move files directly into cur/ to avoid problems with other maildir clients. I think with Sieve LDA it would work also by storing the mail directly into cur/ directory. --Apple-Mail-7--446519605 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAr16uyUhSUUBViskRAt/tAKCRwuIa5c6IGEC8Lh0VyjL6oXLr4wCdES6n BRMOO/wShaWy4AWIwiC+0XI= =Mzf+ -----END PGP SIGNATURE----- --Apple-Mail-7--446519605-- From rick@activeservice.co.uk Sat May 22 18:52:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DE640C002815; Sat, 22 May 2004 18:52:28 +0300 (EEST) Received: from mcp.34sp.com (mcp.34sp.com [212.187.158.4]) by talvi.dovecot.org (Postfix) with SMTP id 6EBE1C002809 for ; Sat, 22 May 2004 18:52:26 +0300 (EEST) Received: (qmail 93957 invoked from network); 22 May 2004 15:45:38 -0000 Received: from unknown (HELO activeservice.co.uk) (62.164.178.76) by mcp.34sp.com with SMTP; 22 May 2004 15:45:38 -0000 Received: (qmail 31921 invoked from network); 22 May 2004 15:45:38 -0000 X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on smithy.activeservice.co.uk Received: from dad.activeservice.co.uk (HELO [192.168.0.9]) (192.168.0.9) by smithy.activeservice.co.uk (192.168.0.1) with ESMTP; 22 May 2004 15:45:36 -0000 Date: Sat, 22 May 2004 16:45:34 +0100 From: Rick Jones To: Timo Sirainen Subject: Re: [Dovecot] "important" flag Message-ID: <8F5F0C102DCB5B330F00824B@[192.168.0.9]> In-Reply-To: <646A2C7E-ABF9-11D8-8870-000393CC2E90@iki.fi> References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> <1085194046.17204.63.camel@hurina> <5E6022C6BA20F275636984F3@[192.168.0.9]> <646A2C7E-ABF9-11D8-8870-000393CC2E90@iki.fi> X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2004 15:52:29 -0000 X-UID: 9169 Status: O Content-Length: 1253 --On 22 May 2004 17:07 +0300 Timo Sirainen wrote: > On 22.5.2004, at 13:05, Rick Jones wrote: >> >> I don't quite follow the significance of .customflags here, as the >> flag in question (important) isn't a custom one. > > What were you going to use then? Neither IMAP nor Maildir defines an > "important" flag unless you use some existing one for it (flagged?). So I > was thinking you'd add eg. "1 important" to .customflags and then use 'a' > flag in maildir filename. OK, I think maybe I've got some terminology confused. My IMAP client (Mulberry) offers "important" as one of the standard flags, as well as supporting custom ones. I guess the official IMAP definition of this is simply "flagged". In any event, that's the one I want to use. > I don't think I'm going to change the Dovecot's behaviour of accepting > flags in new/ dir Sounds good :) > but I was going to change COPY command to move files > directly into cur/ to avoid problems with other maildir clients. I see, so that applies only when the client invokes a COPY between folders? > I think with Sieve LDA it would work also by storing the mail directly > into cur/ directory. Seems to make sense - think I need to learn more about Sieve :-/ -- Cheers Rick From tss@iki.fi Sun May 23 05:05:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 06254C00280C; Sun, 23 May 2004 05:05:43 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id F23CFC002800 for ; Sun, 23 May 2004 05:05:40 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id B68D81C185E1; Sun, 23 May 2004 04:58:53 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 866651C1D0E3; Sun, 23 May 2004 04:58:19 +0300 (EEST) Subject: Re: [Dovecot] "important" flag From: Timo Sirainen To: Rick Jones In-Reply-To: <8F5F0C102DCB5B330F00824B@[192.168.0.9]> References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> <1085194046.17204.63.camel@hurina> <5E6022C6BA20F275636984F3@[192.168.0.9]> <646A2C7E-ABF9-11D8-8870-000393CC2E90@iki.fi> <8F5F0C102DCB5B330F00824B@[192.168.0.9]> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-GNQXLhuj24Pl1aCkk4/d" Message-Id: <1085277488.30043.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 23 May 2004 04:58:08 +0300 X-Spam-Status: No, hits=-9.0 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 02:05:43 -0000 X-UID: 9170 Status: O Content-Length: 1286 --=-GNQXLhuj24Pl1aCkk4/d Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-05-22 at 18:45, Rick Jones wrote: > > but I was going to change COPY command to move files > > directly into cur/ to avoid problems with other maildir clients. >=20 > I see, so that applies only when the client invokes a COPY between folder= s? Well, APPEND command also accepts initial message flags so that'd have to be changed too. Hmm.. Currently Dovecot sets the \Recent flag by checking if mail is in new/ directory. I guess I'll have to do some changes to also set \Recent if it's in cur/ but isn't in dovecot-uidlist file.. > > I think with Sieve LDA it would work also by storing the mail directly > > into cur/ directory. >=20 > Seems to make sense - think I need to learn more about Sieve :-/ Sieve looks nice enough language for mail filtering. Now if I only could get Dovecot to support it :) --=-GNQXLhuj24Pl1aCkk4/d Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAsAUuyUhSUUBViskRAi1iAJ9m0nasCEdcNxY9Kfs6vvQkt6ByvQCfXPsb 3bd436ziBizEnNKz0OCoqp8= =bVSV -----END PGP SIGNATURE----- --=-GNQXLhuj24Pl1aCkk4/d-- From tss@iki.fi Sun May 23 05:20:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7DD36C00280C; Sun, 23 May 2004 05:20:19 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A7186C002800 for ; Sun, 23 May 2004 05:20:17 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 6CBCB1C185E1; Sun, 23 May 2004 05:13:30 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 61CF71C1D0E3 for ; Sun, 23 May 2004 05:12:56 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ZttRDehBy5ZMdFTAcWq6" Message-Id: <1085278376.30043.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 23 May 2004 05:12:56 +0300 X-Spam-Status: No, hits=-8.4 required=5.0 tests=AWL,BAYES_01,PGP_SIGNATURE_2,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test11 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 02:20:19 -0000 X-UID: 9171 Status: O --=-ZttRDehBy5ZMdFTAcWq6 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ - Added pop3_mails_keep_recent setting. Currently this only means that mails won't be moved from new/ to cur/ in maildir. More I/O friendly. - Fixed \Recent-flag handling and counters to work correctly with maildir. I think it's finally working right :) - mbox syncing fixes (but expunging still not implemented) - some other fixes.. Please try and report what problems still exist (the old ones too so I know they're not fixed). --=-ZttRDehBy5ZMdFTAcWq6 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAsAinyUhSUUBViskRAqBKAJ9aRScsm7WYYAYSw4qDcVAdhaWKCACfbh/4 eameBysVY9UMpyNbUfPoBs4= =rUje -----END PGP SIGNATURE----- --=-ZttRDehBy5ZMdFTAcWq6-- From rick@activeservice.co.uk Sun May 23 12:25:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 01580C00280C; Sun, 23 May 2004 12:25:56 +0300 (EEST) Received: from mcp.34sp.com (mcp.34sp.com [212.187.158.4]) by talvi.dovecot.org (Postfix) with SMTP id 6EF69C002809 for ; Sun, 23 May 2004 12:25:53 +0300 (EEST) Received: (qmail 31044 invoked from network); 23 May 2004 09:19:04 -0000 Received: from unknown (HELO activeservice.co.uk) (62.164.179.204) by mcp.34sp.com with SMTP; 23 May 2004 09:19:04 -0000 Received: (qmail 9031 invoked from network); 23 May 2004 09:19:03 -0000 X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on smithy.activeservice.co.uk Received: from dad.activeservice.co.uk (HELO [192.168.0.9]) (192.168.0.9) by smithy.activeservice.co.uk (192.168.0.1) with ESMTP; 23 May 2004 09:19:02 -0000 Date: Sun, 23 May 2004 10:19:01 +0100 From: Rick Jones To: Timo Sirainen Subject: Re: [Dovecot] "important" flag Message-ID: <028E1EC539BE78DE9BF55482@[192.168.0.9]> In-Reply-To: <1085277488.30043.3.camel@hurina> References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> <1085194046.17204.63.camel@hurina> <5E6022C6BA20F275636984F3@[192.168.0.9]> <646A2C7E-ABF9-11D8-8870-000393CC2E90@iki.fi> <8F5F0C102DCB5B330F00824B@[192.168.0.9]> <1085277488.30043.3.camel@hurina> X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 09:25:56 -0000 X-UID: 9172 Status: O Content-Length: 1051 Hi Timo --On 23 May 2004 04:58 +0300 Timo Sirainen wrote: > > Hmm.. Currently Dovecot sets the \Recent flag by checking if mail is in > new/ directory. I guess I'll have to do some changes to also set \Recent > if it's in cur/ but isn't in dovecot-uidlist file.. But would that be right? If I copy an old (not-recent) message into another mailbox, I'm not sure I want it flagged 'recent' in its new location. I'd prefer the 'recent' state to be like any other flag, and be preserved with the message - either on or off. >> > I think with Sieve LDA it would work also by storing the mail directly >> > into cur/ directory. >> >> Seems to make sense - think I need to learn more about Sieve :-/ > > Sieve looks nice enough language for mail filtering. Now if I only could > get Dovecot to support it :) You pre-empted my next question! I was half-expecting Sieve to be available as a separate server, but it looks like it needs to be integrated into the IMAP server. It's clearly the way Cyrus does it. Any plans? -- Cheers Rick From t1lt@bk.ru Sun May 23 13:32:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 72289C00280C; Sun, 23 May 2004 13:32:55 +0300 (EEST) Received: from sun.com (port-212-202-37-246.reverse.qsc.de [212.202.37.246]) by talvi.dovecot.org (Postfix) with SMTP id EBF96C002809 for ; Sun, 23 May 2004 13:32:52 +0300 (EEST) Received: (qmail 11518 invoked by uid 1000); 23 May 2004 10:27:54 -0000 Date: Sun, 23 May 2004 12:27:54 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test11 Message-ID: <20040523102754.GA30531@woom.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1085278376.30043.19.camel@hurina> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="7AUc2qLy4jB3hD7Z" Content-Disposition: inline In-Reply-To: <1085278376.30043.19.camel@hurina> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 10:32:55 -0000 X-UID: 9173 Status: O Content-Length: 2313 --7AUc2qLy4jB3hD7Z Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sun, May 23, 2004 at 05:12:56AM +0300, Timo Sirainen wrote: > http://dovecot.org/test/ > > - Added pop3_mails_keep_recent setting. Currently this only means that > mails won't be moved from new/ to cur/ in maildir. More I/O friendly. > - Fixed \Recent-flag handling and counters to work correctly with > maildir. I think it's finally working right :) > - mbox syncing fixes (but expunging still not implemented) > - some other fixes.. > > Please try and report what problems still exist (the old ones too so I > know they're not fixed). I gave it a shot and it looks promising. It still seems to have a problem when mail is delivered to a Maildir while it is being read, tho: ---snip--- sp dovecot: imap(moe): file mail-index.c: line 96 (mail_index_map_clear): \ assertion failed: (map->mmap_base == NULL) sp dovecot: child 29405 (imap) killed with signal 6 ---snip--- I can reproduce it like this: - Open a large folder in Mail client (where header-download takes a while) - Deliver message to Maildir while headers still downloading The result is usually the above crash (signal 6). After the crash I can log right back in and everything still works (no index corruption). -mw --7AUc2qLy4jB3hD7Z Content-Type: application/octet-stream Content-Disposition: attachment; filename="dovecot-dbg.conf.bz2" Content-Transfer-Encoding: base64 QlpoOTFBWSZTWT3orLcAAEPfgAAQSGP/4n////C////6QAI860AApAE00xNDCGgyZNAxqaGm RpiaYmDmAIwTEAwCYJoyGhgEwRiYaTKmmgDIMgaD1AA00AAAABJEEyATTIJpE9QAANDEehPU bUbU/VOvv8Op4DOaS5N33+JRuDuaf27/0xlrtxq7x0SOnaj2DI8mE6P8OOcHxG0MyYx7Bpxs nDnXDjZZFe9r582QilEhgyCNx22Jr0LmGWU8KoLUFriBgNdCaIGYMIJRJhQGORAvNbuzMj7n nJh27RtEyyrKmRKO/dWfzznScaDKaYYAIQz3cOPLn0efgF1hxdu/iLzHJ69y/Jp6KBPRAkhF GTD9fWzszE/WN+U3UfRSNiZ7IU6XIkfVgK08jGtZARH78EeO63+FQ0H8f0QyWGJM3o3EsO/+ VK8HcYxZQgktXZ4Mj/gtLzadWossoHgzAs0vQxa1eLvzRHicklOKOBwKFlDlRyR1Q+4PhTE5 I3op04726Ejbs7AWxVLEMW+GSK7ce0Vy09xuHYvvCbAW2kPtlcGM4bbrkswt8nncaEUqUKsc xg4ipg9xG9D+brzpE5E2majBlTPnIkFwFRyhOUss3Clr2jAfE2sis6+ahYtmpVXLNO4KSk0N VPu1lewltYnMoJKQZCmmyWpq7O7RgGqlhiWkBrmsYkHRlLraSUWDHjpw4ScwGtv4BDNpTU2z cH88b5hGvAte9iTAu6KJkSah2jBhqRuqFnnxwInCrM9USR2W2GxNJaYXhp3QkWjG5I6ZIpDf XSSuX/i7kinChIHvRWW4 --7AUc2qLy4jB3hD7Z-- From tss@iki.fi Sun May 23 16:18:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 79AD4C00280C; Sun, 23 May 2004 16:18:57 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 84C61C002809 for ; Sun, 23 May 2004 16:18:52 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 256031C185E2; Sun, 23 May 2004 16:12:04 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 75D921C185E1; Sun, 23 May 2004 16:11:29 +0300 (EEST) In-Reply-To: <028E1EC539BE78DE9BF55482@[192.168.0.9]> References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> <1085194046.17204.63.camel@hurina> <5E6022C6BA20F275636984F3@[192.168.0.9]> <646A2C7E-ABF9-11D8-8870-000393CC2E90@iki.fi> <8F5F0C102DCB5B330F00824B@[192.168.0.9]> <1085277488.30043.3.camel@hurina> <028E1EC539BE78DE9BF55482@[192.168.0.9]> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-8--363494162" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] "important" flag Date: Sun, 23 May 2004 16:11:28 +0300 To: Rick Jones X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 13:18:57 -0000 X-UID: 9174 Status: O Content-Length: 2494 --Apple-Mail-8--363494162 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 23.5.2004, at 12:19, Rick Jones wrote: >> Hmm.. Currently Dovecot sets the \Recent flag by checking if mail is >> in >> new/ directory. I guess I'll have to do some changes to also set >> \Recent >> if it's in cur/ but isn't in dovecot-uidlist file.. > > But would that be right? If I copy an old (not-recent) message into > another mailbox, I'm not sure I want it flagged 'recent' in its new > location. I'd prefer the 'recent' state to be like any other flag, and > be preserved with the message - either on or off. \Recent flags are a bit useless for human purposes anyway if you're using multiple IMAP clients concurrently to access the mailbox. Only one of the sessions sees the message as recent. So it's mostly useful for things like client-side filtering or other message processing. For that purpose I think it's better to set the \Recent flag again while copying the message. Besides, that's what RFC requires and I'd do anyway :) I've however thought about \Recent-like flag which works nicer with multiple sessions. For that the flag might be better if it \Recent wasn't set when copying. Hmm. I can't find that message in web archives anymore, here: http://dovecot.org/tmp/recent.txt Maybe call it \New or something :) > You pre-empted my next question! I was half-expecting Sieve to be > available as a separate server, but it looks like it needs to be > integrated into the IMAP server. It's clearly the way Cyrus does it. > Any plans? It doesn't really need to be integrated with IMAP, but it does need to know where the mailboxes are stored and in which format. So using Dovecot's mailbox library it should be easier than creating a completely separate thing. It's planned, but I'm not sure when exactly I'll implement it. You could also try Mark Mallet's http://www.mvmf.org/test/ which I heard provides Sieve support but I still haven't looked at that myself.. :) --Apple-Mail-8--363494162 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAsKMAyUhSUUBViskRAkNyAJ9tipK0lUYKxaE42aohKXs5xAjb6QCdG8aX Aq5fcA19P93uYOytcAGZ0sI= =7Ytb -----END PGP SIGNATURE----- --Apple-Mail-8--363494162-- From t1lt@bk.ru Sun May 23 18:28:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DC185C00280C; Sun, 23 May 2004 18:28:16 +0300 (EEST) Received: from sun.com (port-212-202-37-246.reverse.qsc.de [212.202.37.246]) by talvi.dovecot.org (Postfix) with SMTP id 815BDC002809 for ; Sun, 23 May 2004 18:28:12 +0300 (EEST) Received: (qmail 1592 invoked by uid 1000); 23 May 2004 15:23:14 -0000 Date: Sun, 23 May 2004 17:23:14 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test11 Message-ID: <20040523152314.GC30531@woom.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1085278376.30043.19.camel@hurina> <20040523102754.GA30531@woom.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040523102754.GA30531@woom.net> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 15:28:17 -0000 X-UID: 9175 Status: O Content-Length: 1949 On Sun, May 23, 2004 at 12:27:54PM +0200, myself wrote: > > ---snip--- > > sp dovecot: imap(moe): file mail-index.c: line 96 (mail_index_map_clear): \ > assertion failed: (map->mmap_base == NULL) > sp dovecot: child 29405 (imap) killed with signal 6 > > ---snip--- > And now (a couple hours later) I see quite a lot of these: May 23 17:08:23 sp dovecot: imap(moe): Transaction log file /home/moe/Maildir/.INBOX.mf.cron/dovecot.index.log: invalid indexid May 23 17:08:53 sp dovecot: imap(moe): Maildir sync: UID < next_uid (446 < 447, file = msg.vK4) May 23 17:09:23 sp dovecot: imap(moe): Transaction log file /home/moe/Maildir/.INBOX.mf.cron/dovecot.index.log: invalid indexid May 23 17:09:53 sp dovecot: imap(moe): Maildir sync: UID < next_uid (446 < 447, file = msg.vK4) May 23 17:10:24 sp dovecot: imap(moe): Transaction log file /home/moe/Maildir/.INBOX.mf.cron/dovecot.index.log: invalid indexid May 23 17:10:54 sp dovecot: imap(moe): Maildir sync: UID < next_uid (446 < 447, file = msg.vK4) May 23 17:11:24 sp dovecot: imap(moe): Transaction log file /home/moe/Maildir/.INBOX.mf.cron/dovecot.index.log: invalid indexid May 23 17:11:54 sp dovecot: imap(moe): Maildir sync: UID < next_uid (446 < 447, file = msg.vK4) May 23 17:12:24 sp dovecot: imap(moe): Transaction log file /home/moe/Maildir/.INBOX.mf.cron/dovecot.index.log: invalid indexid May 23 17:12:54 sp dovecot: imap(moe): Maildir sync: UID < next_uid (446 < 447, file = msg.vK4) May 23 17:13:24 sp dovecot: imap(moe): Transaction log file /home/moe/Maildir/.INBOX.mf.cron/dovecot.index.log: invalid indexid May 23 17:13:30 sp dovecot: imap(moe): Maildir sync: UID < next_uid (446 < 447, file = msg.vK4) May 23 17:14:06 sp dovecot: imap(moe): Transaction log file /home/moe/Maildir/.INBOX.mf.cron/dovecot.index.log: invalid indexid Also the connection was dropped one more time. I can't find a corresponding "killed with signal"-line in the log, tho. From mem@mv.mv.com Sun May 23 23:03:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6F1E0C00280A; Sun, 23 May 2004 23:03:42 +0300 (EEST) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 435F2C002809 for ; Sun, 23 May 2004 23:03:39 +0300 (EEST) Received: (qmail 22541 invoked from network); 23 May 2004 15:55:09 -0400 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 23 May 2004 15:56:44 -0400 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 11393 invoked by uid 101); 23 May 2004 15:55:09 -0400 From: "Mark E. Mallett" Date: Sun, 23 May 2004 15:55:09 -0400 To: Timo Sirainen Subject: Re: [Dovecot] "important" flag Message-ID: <20040523195509.GJ28442@iridium.mv.net> References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> <1085194046.17204.63.camel@hurina> <5E6022C6BA20F275636984F3@[192.168.0.9]> <646A2C7E-ABF9-11D8-8870-000393CC2E90@iki.fi> <8F5F0C102DCB5B330F00824B@[192.168.0.9]> <1085277488.30043.3.camel@hurina> <028E1EC539BE78DE9BF55482@[192.168.0.9]> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i Cc: Rick Jones , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 20:03:42 -0000 X-UID: 9176 Status: O Content-Length: 1478 On Sun, May 23, 2004 at 04:11:28PM +0300, Timo Sirainen wrote: > On 23.5.2004, at 12:19, Rick Jones wrote: > > >You pre-empted my next question! I was half-expecting Sieve to be > >available as a separate server, but it looks like it needs to be > >integrated into the IMAP server. It's clearly the way Cyrus does it. > >Any plans? > > It doesn't really need to be integrated with IMAP, but it does need to > know where the mailboxes are stored and in which format. So using > Dovecot's mailbox library it should be easier than creating a > completely separate thing. It's planned, but I'm not sure when exactly > I'll implement it. Probably time to mention again the notion of having some kind of redelivery when moving from one folder to another. i.e. for a folder so configured, instead of the IMAP/POP server writing a message directly into the folder, it would invoke a delivery agent to do so. This would be great for giving new filter rules a new crack at an old message, or for things like adding to a statistical spam corpus, etc. > You could also try Mark Mallet's http://www.mvmf.org/test/ which I > heard provides Sieve support but I still haven't looked at that > myself.. :) Just start at www.mvmf.org though, the /test/ was an old thing. Relatedly, Matthew Elvey has a matrix of SIEVE implementations at: http://wiki.fastmail.fm/wiki/index.php/SieveExtensionsSupportMatrix It's an alpha version but it seems like a good thing to have. -mm- From shiva@sewingwitch.com Sun May 23 23:16:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id ADFF2C00280A; Sun, 23 May 2004 23:16:56 +0300 (EEST) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id ED029C002809 for ; Sun, 23 May 2004 23:16:53 +0300 (EEST) Received: from home.sewingwitch.com (c-24-7-84-78.client.comcast.net [24.7.84.78]) (authenticated bits=0) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i4NKA1YI007037 for ; Sun, 23 May 2004 16:10:03 -0400 Received: from [10.0.0.4] (bigiron.lsi.lan [10.0.0.4]) (authenticated bits=0) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i4NKA1Zn028788 for ; Sun, 23 May 2004 13:10:01 -0700 Date: Sun, 23 May 2004 13:13:23 -0700 From: Kenneth Porter To: Dovecot Message-ID: X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.40 Subject: [Dovecot] Serve list archives by dovecot IMAP X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 20:16:56 -0000 X-UID: 9177 Status: O Has anyone considered setting up a Dovecot public server to serve the list archives by IMAP? Or does Dovecot not do anonymous read-only access? (I note by comparison that the Cyrusoft Mulberry list archives are served by an IMAP server. ) It should be sufficient to set up Dovecot on some server in the dovecot.org domain and subscribe it to the lists. From rueckert@informatik.uni-rostock.de Sun May 23 23:47:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D0A4BC00281F; Sun, 23 May 2004 23:47:32 +0300 (EEST) Received: from monsters.rsn.uni-rostock.de (monsters.rsn.uni-rostock.de [139.30.253.26]) by talvi.dovecot.org (Postfix) with ESMTP id D9848C00280A for ; Sun, 23 May 2004 23:47:30 +0300 (EEST) Received: by monsters.rsn.uni-rostock.de (Postfix, from userid 500) id 461FBF255; Sun, 23 May 2004 22:41:48 +0200 (CEST) Date: Sun, 23 May 2004 22:41:48 +0200 From: Marcus Rueckert To: Kenneth Porter Subject: Re: [Dovecot] Serve list archives by dovecot IMAP Message-ID: <20040523204148.GA18626@monsters.rsn.uni-rostock.de> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.6i Cc: Dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 20:47:33 -0000 X-UID: 9178 Status: O On 2004-05-23 13:13:23 -0700, Kenneth Porter wrote: > Has anyone considered setting up a Dovecot public server to serve the list > archives by IMAP? Or does Dovecot not do anonymous read-only access? > > (I note by comparison that the Cyrusoft Mulberry list archives are served > by an IMAP server. ) > > It should be sufficient to set up Dovecot on some server in the dovecot.org > domain and subscribe it to the lists. > http://www.dovecot.org/mailinglists.html links imap://dovecot.org/dovecot-cvs/%;TYPE=LIST (at the bottom) hope this helps darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From tss@iki.fi Mon May 24 00:06:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A1599C002825; Mon, 24 May 2004 00:06:07 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A6341C002823 for ; Mon, 24 May 2004 00:06:05 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 892E11C185E2; Sun, 23 May 2004 23:59:16 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 840661C185E1; Sun, 23 May 2004 23:58:41 +0300 (EEST) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-9--335465010" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Serve list archives by dovecot IMAP Date: Sun, 23 May 2004 23:58:37 +0300 To: Kenneth Porter X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 21:06:07 -0000 X-UID: 9179 Status: O Content-Length: 1032 --Apple-Mail-9--335465010 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 23.5.2004, at 23:13, Kenneth Porter wrote: > Has anyone considered setting up a Dovecot public server to serve the > list archives by IMAP? Or does Dovecot not do anonymous read-only > access? There used to be, but then I upgraded the Dovecot in that server to version where mbox didn't work anymore. Now dovecot.org runs in different server so I guess I could put it back using 0.99.10. Or maybe 1.0-tests once it's mbox code is working well.. --Apple-Mail-9--335465010 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAsRB+yUhSUUBViskRArsNAJ48zvypEKv7rXyZa0kzgUwP8WpUUQCfQvhs wPYqMV4RKMPMy1HI5cPqs0M= =IBdN -----END PGP SIGNATURE----- --Apple-Mail-9--335465010-- From tss@iki.fi Mon May 24 00:15:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A78D1C002828; Mon, 24 May 2004 00:15:11 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 99E9FC002825 for ; Mon, 24 May 2004 00:15:09 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id E0B2E1C185E1; Mon, 24 May 2004 00:08:19 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8EA6E1C185E1; Mon, 24 May 2004 00:07:45 +0300 (EEST) In-Reply-To: <20040523195509.GJ28442@iridium.mv.net> References: <11A74BFC8C15FF94489659DB@[192.168.0.9]> <1085194046.17204.63.camel@hurina> <5E6022C6BA20F275636984F3@[192.168.0.9]> <646A2C7E-ABF9-11D8-8870-000393CC2E90@iki.fi> <8F5F0C102DCB5B330F00824B@[192.168.0.9]> <1085277488.30043.3.camel@hurina> <028E1EC539BE78DE9BF55482@[192.168.0.9]> <20040523195509.GJ28442@iridium.mv.net> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-10--334919689" Message-Id: <3B2611A2-ACFD-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] "important" flag Date: Mon, 24 May 2004 00:07:42 +0300 To: "Mark E. Mallett" X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 21:15:11 -0000 X-UID: 9180 Status: O Content-Length: 1689 --Apple-Mail-10--334919689 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 23.5.2004, at 22:55, Mark E. Mallett wrote: > Probably time to mention again the notion of having some kind of > redelivery when moving from one folder to another. i.e. for a folder > so configured, instead of the IMAP/POP server writing a message > directly into the folder, it would invoke a delivery agent > to do so. This would be great for giving new filter rules a new crack > at an old message, or for things like adding to a statistical spam > corpus, etc. I think this is a plugin's job, and it shouldn't be very difficult to implement for 1.0-tests. Just override the mailbox_save() function in mail-storage. Or possibly create entirely new namespace for it, hmm.. >> You could also try Mark Mallet's http://www.mvmf.org/test/ which I >> heard provides Sieve support but I still haven't looked at that >> myself.. :) > > Just start at www.mvmf.org though, the /test/ was an old thing. Well, I finally looked at it. So it's more than just Sieve, I thought you had just used libsieve to do it. Once Dovecot 1.0's mail-storage API stabilizes would be nice if mvmf could use it directly :) --Apple-Mail-10--334919689 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAsRKeyUhSUUBViskRAtMvAJ9fIjysklAumQI0cGXVG2CCA7B5PQCgibmX Jo/BmTdoIRj+ISU1izGOq1A= =iG6K -----END PGP SIGNATURE----- --Apple-Mail-10--334919689-- From shiva@sewingwitch.com Mon May 24 01:13:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D3B02C002825; Mon, 24 May 2004 01:13:30 +0300 (EEST) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 455A1C002823 for ; Mon, 24 May 2004 01:13:28 +0300 (EEST) Received: from home.sewingwitch.com (c-24-7-84-78.client.comcast.net [24.7.84.78]) (authenticated bits=0) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i4NM6YYI005715 for ; Sun, 23 May 2004 18:06:35 -0400 Received: from [10.0.0.4] (bigiron.lsi.lan [10.0.0.4]) (authenticated bits=0) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i4NM6YZn030034 for ; Sun, 23 May 2004 15:06:34 -0700 Date: Sun, 23 May 2004 15:09:56 -0700 From: Kenneth Porter To: Dovecot Subject: Re: [Dovecot] Serve list archives by dovecot IMAP Message-ID: In-Reply-To: References: X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.40 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 May 2004 22:13:31 -0000 X-UID: 9181 Status: O --On Sunday, May 23, 2004 11:58 PM +0300 Timo Sirainen wrote: > There used to be, but then I upgraded the Dovecot in that server to > version where mbox didn't work anymore. Now dovecot.org runs in different > server so I guess I could put it back using 0.99.10. Or maybe 1.0-tests > once it's mbox code is working well.. Why does the mailbox format matter? If you just subscribe a dummy user on the IMAP server and point the anonymous directory to that user, you should be able to decouple that. If the result doesn't use mbox, then use your favorite conversion utility to migrate the existing archive before subscribing. From tss@iki.fi Mon May 24 05:54:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5552CC00280A; Mon, 24 May 2004 05:54:35 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 3F8A1C002809 for ; Mon, 24 May 2004 05:54:33 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 841521C185E2; Mon, 24 May 2004 05:47:43 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 773CF1C185E1; Mon, 24 May 2004 05:47:09 +0300 (EEST) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-12--314569769" Message-Id: <9CA52612-AD2C-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Serve list archives by dovecot IMAP Date: Mon, 24 May 2004 05:46:52 +0300 To: Kenneth Porter X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 02:54:35 -0000 X-UID: 9182 Status: O Content-Length: 1665 --Apple-Mail-12--314569769 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 24.5.2004, at 01:09, Kenneth Porter wrote: > --On Sunday, May 23, 2004 11:58 PM +0300 Timo Sirainen > wrote: > >> There used to be, but then I upgraded the Dovecot in that server to >> version where mbox didn't work anymore. Now dovecot.org runs in >> different >> server so I guess I could put it back using 0.99.10. Or maybe >> 1.0-tests >> once it's mbox code is working well.. > > Why does the mailbox format matter? If you just subscribe a dummy user > on the IMAP server and point the anonymous directory to that user, you > should be able to decouple that. If the result doesn't use mbox, then > use your favorite conversion utility to migrate the existing archive > before subscribing. Mailman generates mboxes by itself anyway and mboxes are the fastest format for non-changing mailboxes. Anyway It's mostly because I've been lazy and haven't thought anyone would really even care about it. If you really want it now I could set it up. But I'd rather wait a while and make 1.0-test version do it so I wouldn't have to configure it again later :) --Apple-Mail-12--314569769 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAsWIdyUhSUUBViskRAghXAJ4jOKw1drxG/wScHhyVl2VeECMK6QCcCj1q I/WVQrWxOA0UmB3Vcvbvqh8= =U4nE -----END PGP SIGNATURE----- --Apple-Mail-12--314569769-- From tss@iki.fi Mon May 24 06:24:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C44EBC00280C; Mon, 24 May 2004 06:24:07 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id D6CD6C002809 for ; Mon, 24 May 2004 06:24:05 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 1D2DF1C185E2; Mon, 24 May 2004 06:17:16 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0C56D1C185E1 for ; Mon, 24 May 2004 06:16:41 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-13--312782900" To: Dovecot list From: Timo Sirainen Date: Mon, 24 May 2004 06:16:39 +0300 X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-6.7 required=5.0 tests=AWL,BAYES_10,PGP_SIGNATURE_2,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test12 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 03:24:07 -0000 X-UID: 9183 Status: O Content-Length: 1265 --Apple-Mail-13--312782900 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed http://dovecot.org/test/ - "Maildir sync: UID < next_uid (446 < 447, file = .." errors should be fixed - fixes for detecting changes in uidvalidity and external uidnext changes - several fixes and cleanups in index file handling. less code than before and now changes to index header also go through transaction log. that should mean that soon I can get mmap_disable = yes to work without reading the main index file more than once. Are maildir syncing problems finally fixed now? :) I think the "message sequence out of range" problems are fixed now too. Rest of the important known problems are mostly related to mmap_disable=yes or fcntl_locks_disable=yes settings. --Apple-Mail-13--312782900 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAsWkXyUhSUUBViskRAr5pAKCHnTnBNylzHr/+OqgsH/XhpAissQCgkiyU bz2lMI2sz0FyS7LV8aGqPEc= =42Ja -----END PGP SIGNATURE----- --Apple-Mail-13--312782900-- From shiva@sewingwitch.com Mon May 24 06:40:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A47B3C002825; Mon, 24 May 2004 06:40:32 +0300 (EEST) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 503D6C002823 for ; Mon, 24 May 2004 06:40:28 +0300 (EEST) Received: from home.sewingwitch.com (c-24-7-84-78.client.comcast.net [24.7.84.78]) (authenticated bits=0) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i4O3XXYI026886 for ; Sun, 23 May 2004 23:33:35 -0400 Received: from [10.0.0.4] (bigiron.lsi.lan [10.0.0.4]) (authenticated bits=0) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i4O3XTZn032230 for ; Sun, 23 May 2004 20:33:29 -0700 Date: Sun, 23 May 2004 20:36:51 -0700 From: Kenneth Porter To: Dovecot Subject: Re: [Dovecot] Serve list archives by dovecot IMAP Message-ID: <87931E0521004192C5408311@[10.0.0.4]> In-Reply-To: <9CA52612-AD2C-11D8-8870-000393CC2E90@iki.fi> References: <9CA52612-AD2C-11D8-8870-000393CC2E90@iki.fi> X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.40 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 03:40:32 -0000 X-UID: 9184 Status: O --On Monday, May 24, 2004 5:46 AM +0300 Timo Sirainen wrote: > Anyway It's mostly because I've been lazy and haven't thought anyone > would really even care about it. If you really want it now I could set it > up. But I'd rather wait a while and make 1.0-test version do it so I > wouldn't have to configure it again later :) No rush. I solved today's problem. ;) (I was trying to figure out how to configure my client to adapt to Dovecot's handling of my UW-IMAP hierarchy after a Fedora upgrade.) I ended up copying the Mailman archive to my other server still running UW-IMAP so I could use Mulberry to get a usable thread view. From andrew@mux.org.uk Mon May 24 07:41:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id ED8DFC002825; Mon, 24 May 2004 07:41:39 +0300 (EEST) Received: from 82-41-27-171.cable.ubr04.edin.blueyonder.co.uk (82-41-27-32.cable.ubr04.edin.blueyonder.co.uk [82.41.27.32]) by talvi.dovecot.org (Postfix) with ESMTP id C8F3CC002809 for ; Mon, 24 May 2004 07:41:37 +0300 (EEST) Received: from [127.0.0.1] (spatula.flat [192.168.0.2]) by myriad.flat (Postfix) with ESMTP id B23A3D8 for ; Mon, 24 May 2004 03:24:20 +0100 (BST) Message-ID: <40B17B4F.1090908@mux.org.uk> Date: Mon, 24 May 2004 05:34:23 +0100 From: Andrew Boothman User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Errors from 1.0-test11 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 04:41:40 -0000 X-UID: 9185 Status: O Timo + All, A few minutes after having some emails delivered into my mailbox I got the following messages in my maillog: May 24 03:05:27 myriad dovecot: imap(andrew): Maildir sync: UID inserted in the middle of mailbox (2 > 1, file = 1084812461.V27406I77e27.myriad.flat:2,S) May 24 03:05:27 myriad dovecot: child 81038 (imap) killed with signal 11 May 24 03:15:28 myriad dovecot: imap-login: Login: andrew [192.168.0.2] May 24 03:15:28 myriad dovecot: imap(andrew): Transaction log file /home/andrew/Maildir/.INBOX/dovecot.index.log: invalid indexid I'm only running the test releases somewhere where there is just a few mails per day at the moment, but test emails appear to be delivered without fault. I'll try -test12 which it looks like Timo has just released in case fixes in there are related. Thanks! Andrew From djk@cybersource.com.au Mon May 24 10:50:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 97857C00280C; Mon, 24 May 2004 10:50:19 +0300 (EEST) Received: from boombox.cyber.com.au (203-217-42-125.dyn.iinet.net.au [203.217.42.125]) by talvi.dovecot.org (Postfix) with ESMTP id B89B0C002809 for ; Mon, 24 May 2004 10:50:15 +0300 (EEST) Received: from boombox.cyber.com.au (localhost [127.0.0.1]) by boombox.cyber.com.au (8.12.8/8.12.8) with ESMTP id i4O7hNAV008671 for ; Mon, 24 May 2004 17:43:23 +1000 Received: (from djk@localhost) by boombox.cyber.com.au (8.12.8/8.12.8/Submit) id i4O7hNDp008669 for dovecot@dovecot.org; Mon, 24 May 2004 17:43:23 +1000 From: David Keegel Message-Id: <200405240743.i4O7hNDp008669@boombox.cyber.com.au> To: dovecot@dovecot.org Date: Mon, 24 May 2004 17:43:23 +1000 (EST) X-Mailer: ELM [version 2.4ME+ PL66 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Dovecot] Dovecot + SSL + Fedora X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 07:50:19 -0000 X-UID: 9186 Status: O Content-Length: 1180 I've been seeing the Dovecot/SSL/Fedora 1 problem. I have a dovecot server which tends to die at least once a day, with messages like these :- May 24 13:44:44 mail pop3-login: RAND_bytes() failed: error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded May 24 13:44:44 mail dovecot: Login process died too early - shutting down I noticed Timo's email about this at: http://www.dovecot.org/list/dovecot/2004-May/003316.html with the patch that just ignores the return code of RAND_bytes(). Would disabling SSL in dovecot.conf also be a reasonable way of avoiding the problem of dovecot crashing? My plan is to set ssl_disable = yes and also take out pops and imaps from protocols. That is a lot easier for me than getting source, patching it, re-compiling and re-installing. We are using Fedora Core 1 (fedora-release-1-3 i386 rpm) Dovecot 0.99.10 (dovecot-0.99.10-4 i386 rpm) OpenSSL 0.9.7a (openssl-0.9.7a-33.10 i386 rpm) ___________________________________________________________________________ David Keegel http://www.cyber.com.au/users/djk/ Cybersource P/L: Linux/Unix Systems Administration Consulting/Contracting From t1lt@bk.ru Mon May 24 15:33:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 211DFC002809; Mon, 24 May 2004 15:33:28 +0300 (EEST) Received: from sun.com (port-212-202-37-214.reverse.qsc.de [212.202.37.214]) by talvi.dovecot.org (Postfix) with SMTP id CA108C002800 for ; Mon, 24 May 2004 15:33:25 +0300 (EEST) Received: (qmail 7252 invoked by uid 1000); 24 May 2004 12:28:26 -0000 Date: Mon, 24 May 2004 14:28:26 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test12 Message-ID: <20040524122826.GA28204@woom.net> Mail-Followup-To: Moe Wibble , Dovecot list References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 12:33:28 -0000 X-UID: 9187 Status: O Content-Length: 1990 On Mon, May 24, 2004 at 06:16:39AM +0300, Timo Sirainen wrote: > http://dovecot.org/test/ I've upgraded to test12. First glance: May 24 12:32:40 sp dovecot: Dovecot v1.0-test12 starting up May 24 12:32:51 sp dovecot: imap-login: Login: moe [127.0.0.1] May 24 12:32:51 sp dovecot: imap(moe): Maildir sync: UIDVALIDITY changed (1085306036 -> 1081606448) May 24 12:32:51 sp dovecot: imap(moe): Maildir sync: UIDVALIDITY changed (1085306036 -> 1081780899) May 24 12:33:00 sp dovecot: imap(moe): Transaction log file /home/moe/Maildir/.INBOX.pureftpd/dovecot.index.log: invalid indexid (1085306036 != 1085394780) May 24 12:33:00 sp dovecot: imap(moe): Transaction log file /home/moe/Maildir/.INBOX.rhythmbox/dovecot.index.log: invalid indexid (1085306036 != 1085394780) May 24 12:34:06 sp dovecot: imap(moe): Maildir sync: UIDVALIDITY changed (1085306036 -> 1081606459) May 24 12:34:19 sp dovecot: imap-login: Login: moe [127.0.0.1] May 24 12:34:19 sp dovecot: imap(moe): Transaction log file /home/moe/Maildir/.INBOX.gd/dovecot.index.log: invalid indexid (1085306036 != 1085394859) > - "Maildir sync: UID < next_uid (446 < 447, file = .." errors should > be fixed Haven't seen them anymore, seems fine. > - fixes for detecting changes in uidvalidity and external uidnext > changes Humm. I get a lot of these now: May 24 13:48:36 sp dovecot: imap(moe): Maildir sync: UIDVALIDITY changed (1085308074 -> 1081682554) May 24 13:48:43 sp dovecot: imap-login: Login: moe [127.0.0.1] May 24 13:49:06 sp dovecot: imap(moe): file mail-index.c: line 138 (mail_index_mmap): assertion failed: (map->buffer == NULL) May 24 13:49:06 sp dovecot: child 28181 (imap) killed with signal 6 > Are maildir syncing problems finally fixed now? :) I think the "message > sequence out of range" problems are fixed now too. > Rest of the important known problems are mostly related to > mmap_disable=yes or fcntl_locks_disable=yes settings. They're both on default for me (commented out). best regards From t1lt@bk.ru Mon May 24 17:49:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 75589C002809; Mon, 24 May 2004 17:49:25 +0300 (EEST) Received: from sun.com (port-212-202-37-214.reverse.qsc.de [212.202.37.214]) by talvi.dovecot.org (Postfix) with SMTP id 5F684C002800 for ; Mon, 24 May 2004 17:49:23 +0300 (EEST) Received: (qmail 14479 invoked by uid 1000); 24 May 2004 14:44:24 -0000 Date: Mon, 24 May 2004 16:44:24 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test12 Message-ID: <20040524144424.GA11816@woom.net> Mail-Followup-To: Moe Wibble , Dovecot list References: <20040524122826.GA28204@woom.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040524122826.GA28204@woom.net> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 14:49:25 -0000 X-UID: 9188 Status: O One more note... Opening large folders seems *much* zippier with test12 than ever before. My 6k-msg folder opens up in ~4s now. Before test12 it used to be more like 12-20s. Kudos! :) From maikel@ladot.com Mon May 24 17:56:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 88D74C00280A; Mon, 24 May 2004 17:56:39 +0300 (EEST) Received: from amsfep12-int.chello.nl (amsfep12-int.chello.nl [213.46.243.18]) by talvi.dovecot.org (Postfix) with ESMTP id 1DD2CC002809 for ; Mon, 24 May 2004 17:56:37 +0300 (EEST) Received: from myst.dohd.org ([62.163.178.220]) by amsfep12-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040524144937.KPYL16772.amsfep12-int.chello.nl@myst.dohd.org>; Mon, 24 May 2004 16:49:37 +0200 Received: from [172.31.5.88] (pool-5.ladot.com [217.22.64.98]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i4OEnkWW050512; Mon, 24 May 2004 16:49:46 +0200 (CEST) (envelope-from maikel@ladot.com) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v613) Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed Message-Id: <896AAFBD-AD91-11D8-ABBC-000A95B3C1CA@ladot.com> Content-Transfer-Encoding: quoted-printable From: Maikel Verheijen Subject: Re: [Dovecot] 1.0-test12 Date: Mon, 24 May 2004 16:49:19 +0200 To: Timo Sirainen X-Mailer: Apple Mail (2.613) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 14:56:39 -0000 X-UID: 9189 Status: O Content-Length: 2411 Hi Timo and list, On May 24, 2004, at 5:16 AM, Timo Sirainen wrote: > > =A0 - "Maildir sync: UID < next_uid (446 < 447, file =3D .." errors = should > be fixed > =A0 - fixes for detecting changes in uidvalidity and external uidnext > changes > =A0 - several fixes and cleanups in index file handling. less code = than > before and now changes to index header also go through transaction = log. > that should mean that soon I can get mmap_disable =3D yes to work = without > reading the main index file more than once. > > Are maildir syncing problems finally fixed now? :) I think the = "message > sequence out of range" problems are fixed now too. > > Rest of the important known problems are mostly related to > mmap_disable=3Dyes or fcntl_locks_disable=3Dyes settings. With test 12 I get a lot of these errors on my test box (using NFS & =20 both settings above set to yes, so this is probably known): > May 24 15:43:57 fruttel dovecot: imap(user@domain.tld): =20 > file_try_lock() failed with file =20 > /var/mail/mounted/d/do/domain.tld/user/Maildir/.INBOX/=20 > dovecot.index.tmp: Operation not supported > May 24 15:43:57 fruttel dovecot: imap(user@domain.tld): file =20 > mail-transaction-log.c: line 710 (mail_transaction_log_file_map): =20 > assertion failed: (start_offset <=3D end_offset) > May 24 15:43:57 fruttel dovecot: child 1710 (imap) killed with signal = 6 > May 24 15:44:02 fruttel dovecot: imap-login: Login: user@domain.tld =20= > [172.31.5.186] > May 24 15:44:02 fruttel dovecot: imap(user@domain.tld): =20 > file_try_lock() failed with file =20 > /var/mail/mounted/d/do/domain.tld/user/Maildir/.INBOX/=20 > dovecot.index.tmp: Operation not supported > May 24 15:44:06 fruttel dovecot: imap-login: Login: user@domain.tld =20= > [172.31.5.186] > May 24 15:44:06 fruttel dovecot: imap(user@domain.tld): =20 > file_try_lock() failed with file =20 > /var/mail/mounted/d/do/domain.tld/user/Maildir/.INBOX/=20 > dovecot.index.tmp: Operation not supported I can log in and read mail using pop3, but imap won't work using apples =20= "mail.app" or microsofts "outlook express". pop3 stops working after I have tried to log in using imap, until I =20 remove the index* files from the .INBOX/ folder. Pop3 only checked =20 manually, don't know enough of imap's syntax to try manually. My =20 mail.app claims "select" is going wrong. Kind regards, Maikel Verheijen Ladot Nederland BV. From gmid-dovecot@m.gmane.org Mon May 24 16:49:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C1DF6C002809; Mon, 24 May 2004 16:49:31 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id C353FC002800 for ; Mon, 24 May 2004 16:49:29 +0300 (EEST) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BSFiw-0008RX-00 for ; Mon, 24 May 2004 15:42:38 +0200 Received: from c210-49-142-134.kelvn1.qld.optusnet.com.au ([210.49.142.134]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 24 May 2004 15:42:38 +0200 Received: from r.keays by c210-49-142-134.kelvn1.qld.optusnet.com.au with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 24 May 2004 15:42:38 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Roger Keays Date: Mon, 24 May 2004 23:24:17 +1000 Lines: 26 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: c210-49-142-134.kelvn1.qld.optusnet.com.au User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 X-Accept-Language: en-us, en Sender: news X-Mailman-Approved-At: Mon, 24 May 2004 19:49:32 +0300 Subject: [Dovecot] different auth configuration for pop and imap X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 13:49:31 -0000 X-UID: 9190 Status: O Hi there, Firstly, thanks for the great software. I am just wondering if it is possible to configure dovecot to use different authentication configurations for the imap and pop processes. Specifically, I am looking to use a different SQL query for each process. Kind regards, Roger -- ------------------------------------------------------------- Ninth Avenue Software p: +61 7 3870 8494 f: +61 7 3870 8491 _ _ _ m: +61 405 048 371 __(@)< __(@)> __(@), w: http://www.ninthave.net \___) \___) \___) e: r.keays@ninthave.net ------------------------------------------------------------- Send your spam to Sam sam@ninthave.net http://www.ninthave.net/sam From tss@iki.fi Mon May 24 19:58:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 899DEC00280C; Mon, 24 May 2004 19:58:25 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id BA6D9C002809 for ; Mon, 24 May 2004 19:58:22 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 9B4991C185E2; Mon, 24 May 2004 19:51:31 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8E9601C185E1; Mon, 24 May 2004 19:50:57 +0300 (EEST) In-Reply-To: <200405240743.i4O7hNDp008669@boombox.cyber.com.au> References: <200405240743.i4O7hNDp008669@boombox.cyber.com.au> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-14--263928025" Message-Id: <857A27FB-ADA2-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Dovecot + SSL + Fedora Date: Mon, 24 May 2004 19:50:54 +0300 To: David Keegel X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 16:58:25 -0000 X-UID: 9191 Status: O Content-Length: 1913 --Apple-Mail-14--263928025 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 24.5.2004, at 10:43, David Keegel wrote: > I've been seeing the Dovecot/SSL/Fedora 1 problem. > > I have a dovecot server which tends to die at least once a day, > with messages like these :- > May 24 13:44:44 mail pop3-login: RAND_bytes() failed: > error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not > seeded > May 24 13:44:44 mail dovecot: Login process died too early - shutting > down > > I noticed Timo's email about this at: > http://www.dovecot.org/list/dovecot/2004-May/003316.html > with the patch that just ignores the return code of RAND_bytes(). That fixes the crashes, but probably still causes occational problems with SSL connection handshakes failing. > Would disabling SSL in dovecot.conf also be a reasonable way of > avoiding the problem of dovecot crashing? > > My plan is to set > ssl_disable = yes If you don't need SSL, it's a good solution. > and also take out pops and imaps from protocols. That is a lot > easier for me than getting source, patching it, re-compiling and > re-installing. > > We are using > Fedora Core 1 (fedora-release-1-3 i386 rpm) > Dovecot 0.99.10 (dovecot-0.99.10-4 i386 rpm) > OpenSSL 0.9.7a (openssl-0.9.7a-33.10 i386 rpm) This could also be fixed by patching OpenSSL (I think). Patch in https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115284 --Apple-Mail-14--263928025 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAsifvyUhSUUBViskRAgZZAJ9HCWsUAS7u9FF8DVzWrHdZPp9NQgCbBZFC zcwdqmkfUQreJtg3tHCjCi0= =Bo/9 -----END PGP SIGNATURE----- --Apple-Mail-14--263928025-- From mem@mv.mv.com Mon May 24 20:17:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7CD05C00280C; Mon, 24 May 2004 20:17:57 +0300 (EEST) Received: from mercury.mv.net (mercury.mv.net [199.125.85.40]) by talvi.dovecot.org (Postfix) with SMTP id 8EACFC002809 for ; Mon, 24 May 2004 20:17:54 +0300 (EEST) Received: (qmail 24696 invoked from network); 24 May 2004 13:11:01 -0400 Received: from iridium.mv.net (HELO mv.mv.com) (199.125.85.17) by mercury.mv.net with SMTP; 24 May 2004 13:11:01 -0400 X-Peer-Info: remote-ip 199.125.85.17 local-ip 199.125.85.40 local-name mercury.mv.net Received: (qmail 13731 invoked by uid 101); 24 May 2004 13:10:59 -0400 From: "Mark E. Mallett" Date: Mon, 24 May 2004 13:10:59 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Dovecot + SSL + Fedora Message-ID: <20040524171059.GK24922@iridium.mv.net> References: <200405240743.i4O7hNDp008669@boombox.cyber.com.au> <857A27FB-ADA2-11D8-8870-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <857A27FB-ADA2-11D8-8870-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.2.1i Cc: David Keegel , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 17:17:57 -0000 X-UID: 9192 Status: O Content-Length: 2556 On Mon, May 24, 2004 at 07:50:54PM +0300, Timo Sirainen wrote: > > This could also be fixed by patching OpenSSL (I think). Patch in > https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115284 That looks similar to a private patch I created some time back when openssl changed its RAND_bytes logic . I've moved it forward to successive openssl releases as I've installed them. This is pretty specific to the environment here though-- particularly where you know that you have a /dev/urandom. That openssl change (the one that necessitated this patch) also broke systems where the /dev/urandom was implemented via a pipe to a command. Anyway, just for grins.. here's that local patch as carried forward to 0.9.7d *** rand_unix.c.orig Sat Dec 27 11:01:52 2003 --- rand_unix.c Wed Mar 17 23:13:25 2004 *************** *** 167,182 **** --- 167,203 ---- for (randomfile = randomfiles; *randomfile && n < ENTROPY_NEEDED; randomfile++) { + + #ifndef MV_COMM if ((fd = open(*randomfile, O_RDONLY|O_NONBLOCK + #else /* mem 20030409 -- yes, let's block */ + if ((fd = open(*randomfile, O_RDONLY + #endif /* MV_COMM */ + #ifdef O_NOCTTY /* If it happens to be a TTY (god forbid), do not make it our controlling tty */ |O_NOCTTY #endif + + #ifndef MV_COMM /* mem 20030409 -- we don't have O_NOFOLLOW + but let's not even accidently consider + preventing following symbolic link here. + */ #ifdef O_NOFOLLOW /* Fail if the file is a symbolic link */ |O_NOFOLLOW #endif + #endif /* MV_COMM */ )) >= 0) { + + #ifndef MV_COMM /* mem 20030409 -- don't do this idiotic timeout + stuff-- just read from the file. I don't care + if it hangs forever, it's better than failing. + Besides we'll put /dev/urandom first in the + list so if it hangs there are bigger problems + anyway. + */ + struct timeval t = { 0, 10*1000 }; /* Spend 10ms on each file. */ int r; *************** *** 208,213 **** --- 229,251 ---- } while ((r > 0 || (errno == EINTR || errno == EAGAIN)) && t.tv_usec != 0 && n < ENTROPY_NEEDED); + + #else /* MV_COMM */ + + int r; + do { + r = read(fd, (unsigned char*)tmpbuf+n, + ENTROPY_NEEDED-n); + if ( r > 0 ) + n += r; + } + while ( (r > 0) || + ( (errno == EINTR) || ( errno == EAGAIN ) ) ); + /* yeah sure, check for AGAIN even though we + should be blocking. + */ + + #endif /* MV_COMM */ close(fd); } From tss@iki.fi Mon May 24 21:35:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8A579C002809; Mon, 24 May 2004 21:35:01 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id E830DC002800 for ; Mon, 24 May 2004 21:34:58 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id A6F991C185E2; Mon, 24 May 2004 21:28:07 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 270511C185E1; Mon, 24 May 2004 21:27:33 +0300 (EEST) Subject: Re: [Dovecot] different auth configuration for pop and imap From: Timo Sirainen To: Roger Keays In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-4F0+wcoGHazol+QAHocm" Message-Id: <1085423252.27732.45.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 24 May 2004 21:27:32 +0300 X-Spam-Status: No, hits=-8.5 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 18:35:01 -0000 X-UID: 9193 Status: O Content-Length: 1170 --=-4F0+wcoGHazol+QAHocm Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-24 at 16:24, Roger Keays wrote: > I am just wondering if it is possible to configure dovecot to use differe= nt=20 > authentication configurations for the imap and pop processes. Specificall= y, I am=20 > looking to use a different SQL query for each process. Sorry, not really. With 0.99.10 pretty much the only choice is to run two dovecot processes with separate configuration files. With 1.0-tests it's possible to create two server configurations in single config file. But I think the best solution would be if there was a %p variable which expanded to IMAP or POP3 so you could could do something like WHERE user =3D '%u' and protocol =3D '%p'. I'll see if I can get that done now. --=-4F0+wcoGHazol+QAHocm Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAsj6UyUhSUUBViskRAsN+AKCHMUVisC4L3yFtmq2CbV8/EUfaXgCfZkW2 TF5fICz8aEWshVqd8lplCUg= =84bE -----END PGP SIGNATURE----- --=-4F0+wcoGHazol+QAHocm-- From tss@iki.fi Tue May 25 01:54:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C6312C002809; Tue, 25 May 2004 01:54:56 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 4A1D2C002800 for ; Tue, 25 May 2004 01:54:54 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 96BCE1C185E2; Tue, 25 May 2004 01:48:02 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A90131C185E1; Tue, 25 May 2004 01:47:28 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test12 From: Timo Sirainen To: Maikel Verheijen In-Reply-To: <896AAFBD-AD91-11D8-ABBC-000A95B3C1CA@ladot.com> References: <896AAFBD-AD91-11D8-ABBC-000A95B3C1CA@ladot.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-zwdG+bLdJDfreQi/JbzU" Message-Id: <1085438847.27732.82.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 25 May 2004 01:47:27 +0300 X-Spam-Status: No, hits=-8.7 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 22:54:56 -0000 X-UID: 9194 Status: O Content-Length: 1285 --=-zwdG+bLdJDfreQi/JbzU Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-24 at 17:49, Maikel Verheijen wrote: > > May 24 15:43:57 fruttel dovecot: imap(user@domain.tld): =20 > > file_try_lock() failed with file =20 > > /var/mail/mounted/d/do/domain.tld/user/Maildir/.INBOX/=20 > > dovecot.index.tmp: Operation not supported Oh, hadn't noticed this. Was a simple fix anyway. > I can log in and read mail using pop3, but imap won't work using apples =20 > "mail.app" or microsofts "outlook express". >=20 > pop3 stops working after I have tried to log in using imap, until I =20 > remove the index* files from the .INBOX/ folder. Pop3 only checked =20 > manually, don't know enough of imap's syntax to try manually. My =20 > mail.app claims "select" is going wrong. But did IMAP fail because of the above error? Try again with test13 once I release it before I go to sleep.. :) --=-zwdG+bLdJDfreQi/JbzU Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAsnt/yUhSUUBViskRAvhlAJwJRtVe/bAdnnlt+PAWMUeuclXVkACfdtWk VrKIEOUp8IXkNZCzS5oPvuU= =FNep -----END PGP SIGNATURE----- --=-zwdG+bLdJDfreQi/JbzU-- From matthias.andree@gmx.de Tue May 25 06:37:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CF35EC002809; Tue, 25 May 2004 06:37:31 +0300 (EEST) Received: from mail.dt.e-technik.uni-dortmund.de (krusty.dt.e-technik.Uni-Dortmund.DE [129.217.163.1]) by talvi.dovecot.org (Postfix) with ESMTP id 93FF6C002800 for ; Tue, 25 May 2004 06:37:27 +0300 (EEST) Received: from m2a2.dyndns.org (krusty.dt.e-technik.uni-dortmund.de [129.217.163.1]) by mail.dt.e-technik.uni-dortmund.de (Postfix) with ESMTP id 6B1852BBE2; Tue, 25 May 2004 05:30:34 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id DB00FE1F; Tue, 25 May 2004 05:30:32 +0200 (CEST) Received: from merlin.emma.line.org ([127.0.0.1]) by localhost (m2a2.dyndns.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 19141-01; Tue, 25 May 2004 05:30:31 +0200 (CEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id BEC66DE5; Tue, 25 May 2004 05:30:30 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test12 In-Reply-To: <1085438847.27732.82.camel@hurina> (Timo Sirainen's message of "Tue, 25 May 2004 01:47:27 +0300") References: <896AAFBD-AD91-11D8-ABBC-000A95B3C1CA@ladot.com> <1085438847.27732.82.camel@hurina> From: Matthias Andree Date: Tue, 25 May 2004 05:30:30 +0200 Message-ID: User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at m2a2.dyndns.org Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2004 03:37:32 -0000 X-UID: 9195 Status: O Timo Sirainen writes: > But did IMAP fail because of the above error? Try again with test13 once > I release it before I go to sleep.. :) Hmmm... CVS reports v1.0-test10 *shrug* -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From matthias.andree@gmx.de Tue May 25 06:44:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AAAA7C00280A; Tue, 25 May 2004 06:44:30 +0300 (EEST) Received: from mail.dt.e-technik.uni-dortmund.de (mail.dt.e-technik.Uni-Dortmund.DE [129.217.163.1]) by talvi.dovecot.org (Postfix) with ESMTP id AB4BAC002809 for ; Tue, 25 May 2004 06:44:28 +0300 (EEST) Received: from m2a2.dyndns.org (krusty.dt.e-technik.uni-dortmund.de [129.217.163.1]) by mail.dt.e-technik.uni-dortmund.de (Postfix) with ESMTP id 1B7782BBE2; Tue, 25 May 2004 05:37:36 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id DD14CE1F; Tue, 25 May 2004 05:37:33 +0200 (CEST) Received: from merlin.emma.line.org ([127.0.0.1]) by localhost (m2a2.dyndns.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 19141-02; Tue, 25 May 2004 05:37:32 +0200 (CEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 34E7FE02; Tue, 25 May 2004 05:37:32 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test10 In-Reply-To: <1085190307.17204.6.camel@hurina> (Timo Sirainen's message of "Sat, 22 May 2004 04:45:07 +0300") References: <1085190307.17204.6.camel@hurina> From: Matthias Andree Date: Tue, 25 May 2004 05:37:32 +0200 Message-ID: User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at m2a2.dyndns.org Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2004 03:44:30 -0000 X-UID: 9196 Status: O Content-Length: 1050 Timo Sirainen writes: > http://dovecot.org/test/ > > Transaction log file contains now only message UIDs rather than message > sequences. I'm not really sure why I originally thought sequences were > better.. 0.99 Dovecot used UIDs too. A lot of difficult logic (which was > also broken) went away with this change. > > Fixed also "Maildir sync: UID inserted in the middle of mailbox" errors. > I can't anymore get this release to easily complain about corrupted > indexes. That doesn't mean that the new logic is correct though, so be > careful. I haven't installed this version, but ran it with "sudo ./src/master/dovecot -F" in the build directory. I wonder if this is still current after test 12 3/4, and if it's valid given that I didn't do "make install", but logging looks a bit incomplete: dovecot: May 25 05:34:47 Error: imap-login: imap-login: Info: Login: ma [127.0.0.1] Should this have been two log lines, one error (that got lost), one info? -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From matthias.andree@gmx.de Tue May 25 06:53:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3C7F7C002823; Tue, 25 May 2004 06:53:24 +0300 (EEST) Received: from mail.dt.e-technik.uni-dortmund.de (krusty.dt.e-technik.Uni-Dortmund.DE [129.217.163.1]) by talvi.dovecot.org (Postfix) with ESMTP id 4F538C00280C for ; Tue, 25 May 2004 06:53:22 +0300 (EEST) Received: from m2a2.dyndns.org (krusty.dt.e-technik.uni-dortmund.de [129.217.163.1]) by mail.dt.e-technik.uni-dortmund.de (Postfix) with ESMTP id D71312BB90; Tue, 25 May 2004 05:46:29 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id 929A3E53; Tue, 25 May 2004 05:46:28 +0200 (CEST) Received: from merlin.emma.line.org ([127.0.0.1]) by localhost (m2a2.dyndns.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 18660-06; Tue, 25 May 2004 05:46:27 +0200 (CEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 9C997E4E; Tue, 25 May 2004 05:46:27 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test12 In-Reply-To: (Timo Sirainen's message of "Mon, 24 May 2004 06:16:39 +0300") References: From: Matthias Andree Date: Tue, 25 May 2004 05:46:27 +0200 Message-ID: User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at m2a2.dyndns.org Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2004 03:53:24 -0000 X-UID: 9197 Status: O Timo Sirainen writes: > http://dovecot.org/test/ BTW, is NAMESPACE planned for 1.0? -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From andrew@mux.org.uk Tue May 25 08:21:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 186FCC002809; Tue, 25 May 2004 08:21:15 +0300 (EEST) Received: from 82-41-27-171.cable.ubr04.edin.blueyonder.co.uk (82-41-27-32.cable.ubr04.edin.blueyonder.co.uk [82.41.27.32]) by talvi.dovecot.org (Postfix) with ESMTP id F2039C002800 for ; Tue, 25 May 2004 08:21:12 +0300 (EEST) Received: from [127.0.0.1] (spatula.flat [192.168.0.2]) by myriad.flat (Postfix) with ESMTP id 630F8D8; Tue, 25 May 2004 04:03:41 +0100 (BST) Message-ID: <40B2D606.1050705@mux.org.uk> Date: Tue, 25 May 2004 06:13:42 +0100 From: Andrew Boothman User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test12 References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2004 05:21:15 -0000 X-UID: 9198 Status: O Timo Sirainen wrote: > Are maildir syncing problems finally fixed now? :) I think the "message > sequence out of range" problems are fixed now too. I'm not sure if it counts as a problem but after the delivery of some email tonight (again only a few messages arrive every day) I got the following noise from -test12: May 25 03:08:27 myriad dovecot: imap(andrew): Maildir sync: UIDVALIDITY changed (1085364928 -> 1084812656) May 25 03:18:27 myriad dovecot: imap-login: Login: andrew [192.168.0.2] May 25 03:18:27 myriad dovecot: imap(andrew): Transaction log file /home/andrew/Maildir/.INBOX/dovecot.index.log: invalid indexid (1085364928 != 1085451507) I configured dovecot with --debug-enable so perhaps that accounts for the noise? It didn't result in imap dying in the way that my previously reported problem did with -test11 anyway. Andrew From t1lt@bk.ru Tue May 25 17:36:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8C8DFC002809; Tue, 25 May 2004 17:36:03 +0300 (EEST) Received: from sun.com (port-212-202-38-71.reverse.qsc.de [212.202.38.71]) by talvi.dovecot.org (Postfix) with SMTP id F2331C002800 for ; Tue, 25 May 2004 17:36:00 +0300 (EEST) Received: (qmail 26674 invoked by uid 1000); 25 May 2004 14:31:00 -0000 Date: Tue, 25 May 2004 16:31:00 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test12 Message-ID: <20040525143100.GA24931@widecut.net> Mail-Followup-To: Moe Wibble , Dovecot list References: <20040524122826.GA28204@woom.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040524122826.GA28204@woom.net> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2004 14:36:03 -0000 X-UID: 9199 Status: O On Mon, May 24, 2004 at 02:28:26PM +0200, Moe Wibble wrote: > On Mon, May 24, 2004 at 06:16:39AM +0300, Timo Sirainen wrote: > > - "Maildir sync: UID < next_uid (446 < 447, file = .." errors should > > be fixed > > Haven't seen them anymore, seems fine. Sorry, I must correct myself. I get them again, it seems to happen once every 2-3 hours: May 25 16:24:57 sp dovecot: imap(moe): Maildir sync: UID < next_uid (475 < 476, file = msg._K4:2,) I notice them every time because my mutt is running all day and every time it happens the connection is dropped. -mw From lehmann@cnm.de Tue May 25 17:47:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 54455C00280A; Tue, 25 May 2004 17:47:26 +0300 (EEST) Received: from vm16.variomedia.de (vm16.variomedia.de [81.28.224.61]) by talvi.dovecot.org (Postfix) with ESMTP id 4FD0DC002809 for ; Tue, 25 May 2004 17:47:24 +0300 (EEST) Received: from [82.82.213.59] (helo=cnm.de) by vm16.variomedia.de with asmtp (Exim 4.30) id 1BSd6P-0003lQ-13 for dovecot@dovecot.org; Tue, 25 May 2004 16:40:25 +0200 Message-ID: <40B35AEC.3080909@cnm.de> Date: Tue, 25 May 2004 16:40:44 +0200 From: Marten Lehmann User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Relay-User: lehmann@variomedia.de Subject: [Dovecot] error log? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2004 14:47:26 -0000 X-UID: 9200 Status: O Hello, for some reason dovecot doesn't start up. I'm using the default values in dovecot.conf, just changed the login_user, disabled ssl and ran sbin/dovecot, but nothing happens. No error's, I can't find any logs, no daemon anywhere, no ports bound... I don't know where to look and whatfor. I compiled with --enable-debug, but there's no extra output. Any ideas? Regards Marten Lehmann From shiva@sewingwitch.com Tue May 25 18:32:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7D528C002809; Tue, 25 May 2004 18:32:34 +0300 (EEST) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 9C791C002800 for ; Tue, 25 May 2004 18:32:31 +0300 (EEST) Received: from home.sewingwitch.com (c-24-7-84-78.client.comcast.net [24.7.84.78]) (authenticated bits=0) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i4PFPIYI031202 for ; Tue, 25 May 2004 11:25:23 -0400 Received: from [10.0.0.4] (bigiron.lsi.lan [10.0.0.4]) (authenticated bits=0) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i4PFPHZn019574 for ; Tue, 25 May 2004 08:25:18 -0700 Date: Tue, 25 May 2004 08:28:43 -0700 From: Kenneth Porter To: dovecot@dovecot.org Subject: Re: [Dovecot] error log? Message-ID: In-Reply-To: <40B35AEC.3080909@cnm.de> References: <40B35AEC.3080909@cnm.de> X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.40 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2004 15:32:34 -0000 X-UID: 9201 Status: O --On Tuesday, May 25, 2004 4:40 PM +0200 Marten Lehmann wrote: > for some reason dovecot doesn't start up. I'm using the default values in > dovecot.conf, just changed the login_user, disabled ssl and ran > sbin/dovecot, but nothing happens. No error's, I can't find any logs, no > daemon anywhere, no ports bound... I don't know where to look and > whatfor. I compiled with --enable-debug, but there's no extra output. Any > ideas? Dovecot logs to the mail facility with syslog. Look in /etc/syslog.conf to see which file that logs to. On Red Hat systems (including Fedora), that's /var/log/maillog. Also, when trying to figure out where a system logs to, I go to /var/log right after the event and enter "ls -lt | head". This lists the most recent log files that were written to. Then, for each of those files, enter (for example) "tail -50 maillog" to list 50 lines at the end of maillog. From lehmann@cnm.de Tue May 25 21:54:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C47D3C002809; Tue, 25 May 2004 21:54:05 +0300 (EEST) Received: from vm16.variomedia.de (vm16.variomedia.de [81.28.224.61]) by talvi.dovecot.org (Postfix) with ESMTP id 7E9E5C000D8E for ; Tue, 25 May 2004 21:54:03 +0300 (EEST) Received: from [82.82.213.59] (helo=cnm.de) by vm16.variomedia.de with asmtp (Exim 4.30) id 1BSgx5-0004l6-52 for dovecot@dovecot.org; Tue, 25 May 2004 20:47:03 +0200 Message-ID: <40B394BB.9070406@cnm.de> Date: Tue, 25 May 2004 20:47:23 +0200 From: Marten Lehmann User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] error log? References: <40B35AEC.3080909@cnm.de> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Relay-User: lehmann@variomedia.de X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2004 18:54:06 -0000 X-UID: 9202 Status: O > Dovecot logs to the mail facility with syslog. Look in /etc/syslog.conf > to see which file that logs to. On Red Hat systems (including Fedora), > that's /var/log/maillog. I did and the following lines appear each time I'm starting dovecot: May 25 17:58:37 vm3 dovecot: Dovecot starting up May 25 17:58:38 vm3 dovecot: Auth process died too early - shutting down May 25 17:58:38 vm3 dovecot: child 2316 (auth) killed with signal 11 May 25 17:58:38 vm3 dovecot: child 2317 (login) killed with signal 11 I tried different things like replacing pgsql by plain passwd, with no success. Regards Marten From tss@iki.fi Tue May 25 22:04:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DA794C002815; Tue, 25 May 2004 22:04:57 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B5E6DC002809 for ; Tue, 25 May 2004 22:04:55 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 0E7741C185E1; Tue, 25 May 2004 21:58:02 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 37A1C1C1D0E0 for ; Tue, 25 May 2004 21:57:28 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-F8CGA3K3r2BNb2a4Be8o" Message-Id: <1085511447.27732.96.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 25 May 2004 21:57:27 +0300 X-Spam-Status: No, hits=-8.3 required=5.0 tests=AWL,BAYES_00,PGP_SIGNATURE_2,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 0.99.10.5 release candidate X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2004 19:04:58 -0000 X-UID: 9203 Status: O Content-Length: 1087 --=-F8CGA3K3r2BNb2a4Be8o Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/rc/ Thought I'd still make one 0.99.10.x release now that mbox corruption problems are (hopefully) fixed. Please test, if no problems are found this will be the final 0.99.10.5. Changes since .4: + MySQL authentication, patch by Matthew Reimer - mbox: APPEND reversed given \Draft and \Deleted flags - mbox: "LF not found" errors happened sometimes when X-IMAPbase header was updated. Possibly corrupted mbox sometimes. Thanks to Fabrice Bellet for finding this bug. - Custom flags couldn't be unset - Maildir: make sure ":2," is appended to filename when moving mails from new/ to cur/. --=-F8CGA3K3r2BNb2a4Be8o Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAs5cXyUhSUUBViskRAp0YAJ95poh+QLMBzJ5JRzOfVM+tyqv4uwCdGRMN QOmm5hacC0P7NzcDzITyGLA= =1AYu -----END PGP SIGNATURE----- --=-F8CGA3K3r2BNb2a4Be8o-- From tss@iki.fi Wed May 26 05:48:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 52802C002809; Wed, 26 May 2004 05:48:42 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 14DE6C000D8E for ; Wed, 26 May 2004 05:48:40 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 9DEBF1C185E1; Wed, 26 May 2004 05:41:45 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 864051C1D0E0; Wed, 26 May 2004 05:41:11 +0300 (EEST) In-Reply-To: References: <1085190307.17204.6.camel@hurina> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-17--142112733" Message-Id: <250649E8-AEBE-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test10 Date: Wed, 26 May 2004 05:41:09 +0300 To: Matthias Andree X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 02:48:42 -0000 X-UID: 9204 Status: O Content-Length: 1524 --Apple-Mail-17--142112733 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 25.5.2004, at 06:37, Matthias Andree wrote: > I haven't installed this version, but ran it with "sudo > ./src/master/dovecot -F" in the build directory. > > I wonder if this is still current after test 12 3/4, and if it's valid > given that I didn't do "make install", but logging looks a bit > incomplete: > > dovecot: May 25 05:34:47 Error: imap-login: imap-login: Info: Login: > ma [127.0.0.1] > > Should this have been two log lines, one error (that got lost), one > info? It's because Dovecot changed it's logging system. Now imap-login writes "imap-login: info: Login: ma [127.0.0.1]" to stderr, which dovecot-master picks up, notices that it isn't using it's internal logging protocol (line doesn't start with ASCII 1), so it assumes it's an error and prefixes the message with "imap-login". After make install your imap-login talks the internal logging protocol and doesn't prefix lines with extra "imap-login" or "info". --Apple-Mail-17--142112733 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAtAPGyUhSUUBViskRAlrvAKCkOw8cVXQD5AmXoJAMaDMzE4VWdgCfcLit YNVXrbNbVfiEGsMjAOniH9k= =fTNA -----END PGP SIGNATURE----- --Apple-Mail-17--142112733-- From tss@iki.fi Wed May 26 05:52:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 72835C00280C; Wed, 26 May 2004 05:52:27 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 815D6C002809 for ; Wed, 26 May 2004 05:52:25 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 12C281C185E1; Wed, 26 May 2004 05:45:31 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 900E81C1D0E0; Wed, 26 May 2004 05:44:56 +0300 (EEST) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-18--141887081" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test12 Date: Wed, 26 May 2004 05:44:55 +0300 To: Matthias Andree X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 02:52:27 -0000 X-UID: 9205 Status: O Content-Length: 1501 --Apple-Mail-18--141887081 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 25.5.2004, at 06:46, Matthias Andree wrote: > Timo Sirainen writes: > >> http://dovecot.org/test/ > > BTW, is NAMESPACE planned for 1.0? It's already in 1.0-tests. Example below, used for converting existing uw-imap installations with various namespace-prefixes to Dovecot. inbox = yes is used for namespace that contains INBOX. Each namespace also has location parameter which defaults to default_mail_env if not set. So it's possible to have mixed maildir/mbox namespaces. hidden = yes means it's hidden from NAMESPACE reply. namespace private { separator = . inbox = yes prefix = } namespace private { separator = / prefix = mail/ hidden = yes } namespace private { separator = / prefix = ~/mail/ hidden = yes } namespace private { separator = / prefix = ~/Maildir/ hidden = yes } namespace private { separator = / prefix = ~%u/mail/ hidden = yes } --Apple-Mail-18--141887081 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAtASnyUhSUUBViskRAoqvAJwPa1HWoRlC9MGP3ldZd4elMMJBZwCeOEu4 MjbMTMhmZvT/Zu6g7FNni2g= =aUJW -----END PGP SIGNATURE----- --Apple-Mail-18--141887081-- From tss@iki.fi Wed May 26 05:55:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8A3E6C002822; Wed, 26 May 2004 05:55:04 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 8DEABC002815 for ; Wed, 26 May 2004 05:55:02 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 202231C185E1; Wed, 26 May 2004 05:48:08 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2168F1C1D0E0; Wed, 26 May 2004 05:47:34 +0300 (EEST) In-Reply-To: <40B2D606.1050705@mux.org.uk> References: <40B2D606.1050705@mux.org.uk> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-19--141729356" Message-Id: <098F428F-AEBF-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test12 Date: Wed, 26 May 2004 05:47:32 +0300 To: Andrew Boothman X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 02:55:04 -0000 X-UID: 9206 Status: O Content-Length: 1540 --Apple-Mail-19--141729356 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 25.5.2004, at 08:13, Andrew Boothman wrote: > I'm not sure if it counts as a problem but after the delivery of some > email tonight (again only a few messages arrive every day) I got the > following noise from -test12: > > May 25 03:08:27 myriad dovecot: imap(andrew): Maildir sync: > UIDVALIDITY changed (1085364928 -> 1084812656) This is probably because originally Dovecot didn't use the UIDVALIDITY from your existing dovecot-uidlist files. Now it finally notices that it's different, complains about it and marks the index corrupted. It should happen again after this for the same mailbox .. Looks like the error message is missing mailbox path, I'll add that. > May 25 03:18:27 myriad dovecot: imap-login: Login: andrew [192.168.0.2] > May 25 03:18:27 myriad dovecot: imap(andrew): Transaction log file > /home/andrew/Maildir/.INBOX/dovecot.index.log: invalid indexid > (1085364928 != 1085451507) This happens because index is recreated. --Apple-Mail-19--141729356 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAtAVFyUhSUUBViskRApquAJ90wI7XAepdZsnrxtgN/hmdfhTTOwCgpg4l HMVTFnCXaz5xqIKksqSgpCo= =6vrR -----END PGP SIGNATURE----- --Apple-Mail-19--141729356-- From tss@iki.fi Wed May 26 06:07:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C42C2C00282F; Wed, 26 May 2004 06:07:02 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id CBD83C00282B for ; Wed, 26 May 2004 06:07:00 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 59F131C185E1; Wed, 26 May 2004 06:00:06 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 88C5D1C1D0E0 for ; Wed, 26 May 2004 05:59:32 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-20--141011146" To: Dovecot list From: Timo Sirainen Date: Wed, 26 May 2004 05:59:31 +0300 X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.0 required=5.0 tests=AWL,BAYES_00,PGP_SIGNATURE_2,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test13 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 03:07:02 -0000 X-UID: 9207 Status: O --Apple-Mail-20--141011146 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed http://dovecot.org/test/ - Several bugfixes, do maildir syncing problems still persist? - New %var handling code for default_mail_env / authentication things. Added: # %p - protocol (IMAP or POP3) # # You can apply a modifiers for each variable (eg. %Lp = pop3): # %L - lowercase # %U - uppercase # %E - escape '"', "'" and '\' characters by inserting '\' before them. Is anything else useful? --Apple-Mail-20--141011146 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAtAgTyUhSUUBViskRAmhcAJ0Tifat1EKz8Z/pYtwg6FW9oPs0VgCaAmaa 1T8PTNuf6Q7kYFjEh3h2GnI= =EAE+ -----END PGP SIGNATURE----- --Apple-Mail-20--141011146-- From hunte@tplife.com Wed May 26 08:02:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DCB79C002823; Wed, 26 May 2004 08:02:10 +0300 (EEST) Received: from mx.tplife.com (unknown [210.22.95.231]) by talvi.dovecot.org (Postfix) with ESMTP id 6EF64C002815 for ; Wed, 26 May 2004 08:02:08 +0300 (EEST) Received: from ravms by mx.tplife.com with mail-ok (Exim 4.30) id 1BSqZq-00077g-16 for dovecot@dovecot.org; Wed, 26 May 2004 13:03:42 +0800 Received: from [10.1.1.109] (port=53364 helo=mail.tplife.com) by mx.tplife.com with esmtp (Exim 4.30) id 1BSqZq-00077a-0D for dovecot@dovecot.org; Wed, 26 May 2004 13:03:42 +0800 Received: from ravms by mail.tplife.com with mail-ok (Exim 4.24) id 1BSquZ-00036k-Ek for dovecot@dovecot.org; Wed, 26 May 2004 13:25:07 +0800 Received: from [10.2.33.46] (port=2039 helo=xuezs) by mail.tplife.com with asmtp (Exim 4.24) id 1BSquZ-00036V-As for dovecot@dovecot.org; Wed, 26 May 2004 13:25:07 +0800 Message-ID: <005301c442dd$6c905360$2e21020a@xuezs> From: "rtm" To: Date: Wed, 26 May 2004 12:53:44 +0800 MIME-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 X-Rrecipients: dovecot@dovecot.org Subject: [Dovecot] I am a fresh dovecot user. X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: rtm List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 05:02:11 -0000 X-UID: 9208 Status: O DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpodHRwOi8vcG9zdG1hc3RlcnRh bGsubmV0ID0gQ29tbXVuaXR5IGZvciBwb3N0bWFzdGVycy4NCg0KDQo= From per@bothner.com Wed May 26 09:25:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2209AC002824; Wed, 26 May 2004 09:25:10 +0300 (EEST) Received: from mtaw6.prodigy.net (mtaw6.prodigy.net [64.164.98.56]) by talvi.dovecot.org (Postfix) with ESMTP id 0D1DBC002823 for ; Wed, 26 May 2004 09:25:07 +0300 (EEST) Received: from bothner.com (adsl-216-102-199-253.dsl.snfc21.pacbell.net [216.102.199.253]) by mtaw6.prodigy.net (8.12.10/8.12.10) with ESMTP id i4Q6GX9G020940 for ; Tue, 25 May 2004 23:16:44 -0700 (PDT) Message-ID: <40B43783.7090003@bothner.com> Date: Tue, 25 May 2004 23:21:55 -0700 From: Per Bothner User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] dovecot immediately exits on Fedora 2 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 06:25:10 -0000 X-UID: 9209 Status: O I "upgraded" my server running UW-IMAP on Fedora 1, to Fedora 2, which defaults to Dovecot. Unfortunately, the server refuses connecions from my client (Mozilla). It seems that Dovecot immediately exits: ps aux|grep dovecot shows nothing. Also, if I manually start up dovecot, it immediately exits, with no messages. (It does at least parse the config file, since tweaking that gives me errors.) What is surprising is that I haven't been able to "Google" to find anone else reporting someting similar, so I'm wonderring what makes my system unique. I tried downloading, compiling and running the current UW-imap. Mozilla is able to connect to it, and ask for a password, but rejects the login. Curious that we're getting two such very different failure modes. Help would be most appreciated; for now neither I nor others who use my imap server can access our mail (except by directly viewing the /var/spool/mail file). -- --Per Bothner per@bothner.com http://per.bothner.com/ From t1lt@bk.ru Wed May 26 13:07:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2DCB2C002809; Wed, 26 May 2004 13:07:30 +0300 (EEST) Received: from sun.com (port-212-202-38-180.reverse.qsc.de [212.202.38.180]) by talvi.dovecot.org (Postfix) with SMTP id CE1EDC000D8E for ; Wed, 26 May 2004 13:07:27 +0300 (EEST) Received: (qmail 24723 invoked by uid 1000); 26 May 2004 10:02:27 -0000 Date: Wed, 26 May 2004 12:02:27 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test13 Message-ID: <20040526100227.GA23813@widecut.net> Mail-Followup-To: Moe Wibble , Dovecot list References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 10:07:30 -0000 X-UID: 9210 Status: O On Wed, May 26, 2004 at 05:59:31AM +0300, Timo Sirainen wrote: > http://dovecot.org/test/ > > - Several bugfixes, do maildir syncing problems still persist? Unfornationally yes: sp dovecot: imap(moe): Maildir /home/moe/Maildir/.INBOX.gd-cron sync: UID inserted in the middle of mailbox (478 > 476, file = msg.AL4:2,) greets From djk@cybersource.com.au Wed May 26 15:15:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5F2AFC002809; Wed, 26 May 2004 15:15:30 +0300 (EEST) Received: from boombox.cyber.com.au (203-217-41-104.dyn.iinet.net.au [203.217.41.104]) by talvi.dovecot.org (Postfix) with ESMTP id A9BC3C000D8E for ; Wed, 26 May 2004 15:15:25 +0300 (EEST) Received: from boombox.cyber.com.au (localhost [127.0.0.1]) by boombox.cyber.com.au (8.12.8/8.12.8) with ESMTP id i4QC8OAV009007; Wed, 26 May 2004 22:08:24 +1000 Received: (from djk@localhost) by boombox.cyber.com.au (8.12.8/8.12.8/Submit) id i4QC8NDi009005; Wed, 26 May 2004 22:08:23 +1000 From: David Keegel Message-Id: <200405261208.i4QC8NDi009005@boombox.cyber.com.au> Subject: Re: [Dovecot] dovecot immediately exits on Fedora 2 In-Reply-To: <40B43783.7090003@bothner.com> from Per Bothner at "May 25, 2004 11:21:55 pm" To: Per Bothner Date: Wed, 26 May 2004 22:08:23 +1000 (EST) X-Mailer: ELM [version 2.4ME+ PL66 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 12:15:30 -0000 X-UID: 9211 Status: O Content-Length: 1464 I'm new to Dovecot, but I'll have a go at answering since I haven't seen any other answers yet and I have been using dovecot 0.99.10-4 on Fedora 1. ] I "upgraded" my server running UW-IMAP on Fedora 1, ] to Fedora 2, which defaults to Dovecot. Unfortunately, ] the server refuses connecions from my client (Mozilla). "Connection refused" is to be expected if dovecot isn't running. ] It seems that Dovecot immediately exits: ] ps aux|grep dovecot shows nothing. ] Also, if I manually start up dovecot, it immediately ] exits, with no messages. (It does at least parse the ] config file, since tweaking that gives me errors.) I suggest tail /var/log/maillog as the place to look for errors and messages from dovecot. ] What is surprising is that I haven't been able to "Google" ] to find anone else reporting someting similar, so I'm ] wonderring what makes my system unique. A problem I've suffered from (and seen others with Google) is with SSL support, seeding the pseudo random number generator. The symptom is that dovecot totally crashes (and needs to be restarted) at various times (probably when someone tries SSL). I have turned SSL off with ssl_disable = yes in /etc/dovecot.conf. Since then dovecot hasn't crashed. ___________________________________________________________________________ David Keegel http://www.cyber.com.au/users/djk/ Cybersource P/L: Linux/Unix Systems Administration Consulting/Contracting From t1lt@bk.ru Wed May 26 15:24:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6FE25C00280C; Wed, 26 May 2004 15:24:13 +0300 (EEST) Received: from sun.com (port-212-202-38-180.reverse.qsc.de [212.202.38.180]) by talvi.dovecot.org (Postfix) with SMTP id 1755DC000D8E for ; Wed, 26 May 2004 15:24:11 +0300 (EEST) Received: (qmail 32754 invoked by uid 1000); 26 May 2004 12:19:11 -0000 Date: Wed, 26 May 2004 14:19:11 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test13 Message-ID: <20040526121911.GA7638@widecut.net> Mail-Followup-To: Moe Wibble , Dovecot list References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 12:24:13 -0000 X-UID: 9212 Status: O I spotted some more strange behaviour: - New mail is reported (e.g. in INBOX) but it doesn't show up in the folder, not even after I disconnect/reconnect. It seems that only after a dovecot-session crashed (as in broken index, see my other mail) the mail will appear (after the rebuild). - New mail is reported and the messages are there but they're not flagged as new/unread (happened only once so far, maybe it was only my confusion anyhow) regards From lehmann@cnm.de Wed May 26 18:42:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 38FB5C002815; Wed, 26 May 2004 18:42:55 +0300 (EEST) Received: from vm16.variomedia.de (vm16.variomedia.de [81.28.224.61]) by talvi.dovecot.org (Postfix) with ESMTP id D55BEC00280C for ; Wed, 26 May 2004 18:42:52 +0300 (EEST) Received: from [82.82.213.59] (helo=cnm.de) by vm16.variomedia.de with asmtp (Exim 4.30) id 1BT0RM-0001Ro-N6 for dovecot@dovecot.org; Wed, 26 May 2004 17:35:36 +0200 Message-ID: <40B4B960.9000908@cnm.de> Date: Wed, 26 May 2004 17:36:00 +0200 From: Marten Lehmann User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Relay-User: lehmann@variomedia.de Subject: [Dovecot] feature request: undeletable folders X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 15:42:55 -0000 X-UID: 9213 Status: O Content-Length: 1501 Hello, as we all know from the big webmail-services like hotmail.com, yahoo.com, web.de and so on, several folders exist and nobody can remove them for a good reason, because some services rely on them: Trash, Junk, Sent. Can can't remove Trash, because every deleted message is just moved here. You can't remove Junk, because all messages recognized as spam is moved here. And you can't remove Sent, because all messages you sent through the webmail are saved here. With the common courier-imap, everyone either has to bloat his webmail client with permanent checking if the required folders exist and recreate them if needed, or he has to patch courier-imap each time a new release appears to extend to this certain functionality. So why not just include this feature in courier-imap generally? I think there's no need to handle these folders on a per mailbox basis. Courier-imap could look at a file that contains the unremovable folders (one per line) and deny deletion of this folders. Now you might say: "You could prevent deletion of this folders in your webmail client as well." But that's only the half of the truth, because if you just want to see webmail as one option of accessing the emails, but POP3 and IMAP access is offered as well, then deletion must be restricted at IMAP side. I didn't implement this feature yet, but I'll need it in near future, so either someone else implements it our I would send you a patch after I implemented it. Regards Marten Lehmann From lehmann@cnm.de Wed May 26 18:46:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B66C7C002824; Wed, 26 May 2004 18:46:10 +0300 (EEST) Received: from vm16.variomedia.de (vm16.variomedia.de [81.28.224.61]) by talvi.dovecot.org (Postfix) with ESMTP id D538BC002823 for ; Wed, 26 May 2004 18:46:08 +0300 (EEST) Received: from [82.82.213.59] (helo=cnm.de) by vm16.variomedia.de with asmtp (Exim 4.30) id 1BT0Ug-0001TX-Sk for dovecot@dovecot.org; Wed, 26 May 2004 17:39:02 +0200 Message-ID: <40B4BA2F.90504@cnm.de> Date: Wed, 26 May 2004 17:39:27 +0200 From: Marten Lehmann User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] feature request: undeletable folders References: <40B4B960.9000908@cnm.de> In-Reply-To: <40B4B960.9000908@cnm.de> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Relay-User: lehmann@variomedia.de X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 15:46:10 -0000 X-UID: 9214 Status: O Ughm, please replace courier-imap with dovecot. I asked the courier-imap team some weeks for this feature when I wasn't aware of dovecot. I think we'll use dovecot instead of courier-imap, but the requested feature is very important for me anyway. Regards Marten From tss@iki.fi Wed May 26 19:06:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 32AD4C00280C; Wed, 26 May 2004 19:06:15 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id E6A3CC000D8E for ; Wed, 26 May 2004 19:06:12 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 34CEB1C185E2; Wed, 26 May 2004 18:59:17 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6407F1C185E1; Wed, 26 May 2004 18:58:43 +0300 (EEST) Subject: Re: [Dovecot] feature request: undeletable folders From: Timo Sirainen To: Marten Lehmann In-Reply-To: <40B4B960.9000908@cnm.de> References: <40B4B960.9000908@cnm.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-xd+PvJmN/kQq47qv4Kn6" Message-Id: <1085587122.20006.11.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 26 May 2004 18:58:42 +0300 X-Spam-Status: No, hits=-8.5 required=5.0 tests=AWL,BAYES_00,IN_REP_TO,PGP_SIGNATURE_2,REFERENCES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 16:06:15 -0000 X-UID: 9215 Status: O Content-Length: 2609 --=-xd+PvJmN/kQq47qv4Kn6 Content-Type: multipart/mixed; boundary="=-v3yeGql7c+tUlDg+tPzk" --=-v3yeGql7c+tUlDg+tPzk Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I think the real solution to this would be mailbox ACLs which I'll implement some day.. For now you could implement it with attached plugin. Move it to src/imap/ directory and compile there. Then set imap_use_modules =3D yes. --=-v3yeGql7c+tUlDg+tPzk Content-Disposition: attachment; filename=delete_prevent.c Content-Type: text/x-c; name=delete_prevent.c; charset=iso-8859-15 Content-Transfer-Encoding: base64 LyogZ2NjIC1XYWxsIC1zaGFyZWQgZGVsZXRlX3ByZXZlbnQuYyAtbyAvdXNyL2xvY2FsL2xpYi9k b3ZlY290L2ltYXAvZGVsZXRlX3ByZXZlbnQuc28gLURIQVZFX0NPTkZJR19IIC1JIC4uLy4uIC1J IC4uL2xpYiAtSSAuLi9saWItaW1hcCAtSSAuLi9saWItc3RvcmFnZSAqLw0KDQojaW5jbHVkZSAi Y29tbW9uLmgiDQojaW5jbHVkZSAiY29tbWFuZHMuaCINCg0Kc3RhdGljIGludCBjbWRfZGVsZXRl X3ByZXZlbnQoc3RydWN0IGNsaWVudCAqY2xpZW50KQ0Kew0KCXN0cnVjdCBtYWlsYm94ICptYWls Ym94Ow0KCWNvbnN0IGNoYXIgKm5hbWU7DQoNCgkvKiA8bWFpbGJveD4gKi8NCglpZiAoIWNsaWVu dF9yZWFkX3N0cmluZ19hcmdzKGNsaWVudCwgMSwgJm5hbWUpKQ0KCQlyZXR1cm4gRkFMU0U7DQoN CglpZiAoc3RyY21wKG5hbWUsICJJTkJPWCIpID09IDAgfHwNCgkgICAgc3RyY21wKG5hbWUsICJU cmFzaCIpID09IDAgfHwNCgkgICAgc3RyY21wKG5hbWUsICJKdW5rIikgPT0gMCkgew0KCQljbGll bnRfc2VuZF90YWdsaW5lKGNsaWVudCwgIk5PIE1haWxib3ggY2FuJ3QgYmUgZGVsZXRlZC4iKTsN CgkJcmV0dXJuIFRSVUU7DQoJfQ0KDQoJbWFpbGJveCA9IGNsaWVudC0+bWFpbGJveDsNCglpZiAo bWFpbGJveCAhPSBOVUxMICYmIHN0cmNtcChtYWlsYm94LT5uYW1lLCBuYW1lKSA9PSAwKSB7DQoJ CS8qIGRlbGV0aW5nIHNlbGVjdGVkIG1haWxib3guIGNsb3NlIGl0IGZpcnN0ICovDQoJCWNsaWVu dC0+bWFpbGJveCA9IE5VTEw7DQoNCgkJaWYgKCFtYWlsYm94LT5jbG9zZShtYWlsYm94KSkNCgkJ CWNsaWVudF9zZW5kX3VudGFnZ2VkX3N0b3JhZ2VfZXJyb3IoY2xpZW50KTsNCgl9DQoNCglpZiAo Y2xpZW50LT5zdG9yYWdlLT5kZWxldGVfbWFpbGJveChjbGllbnQtPnN0b3JhZ2UsIG5hbWUpKQ0K CQljbGllbnRfc2VuZF90YWdsaW5lKGNsaWVudCwgIk9LIERlbGV0ZSBjb21wbGV0ZWQuIik7DQoJ ZWxzZQ0KCQljbGllbnRfc2VuZF9zdG9yYWdlX2Vycm9yKGNsaWVudCk7DQoJcmV0dXJuIFRSVUU7 DQp9DQoNCnZvaWQgZGVsZXRlX3ByZXZlbnRfaW5pdCh2b2lkKQ0Kew0KCWNvbW1hbmRfdW5yZWdp c3RlcigiREVMRVRFIik7DQoJY29tbWFuZF9yZWdpc3RlcigiREVMRVRFIiwgY21kX2RlbGV0ZV9w cmV2ZW50KTsNCn0NCnZvaWQgZGVsZXRlX3ByZXZlbnRfZGVpbml0KHZvaWQpDQp7DQp9DQo= --=-v3yeGql7c+tUlDg+tPzk-- --=-xd+PvJmN/kQq47qv4Kn6 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAtL6yyUhSUUBViskRArlzAKCMge9T7Uk0JcUdvoqG8yqTUpU68gCeODX1 oggwlsTCQw4q1F0HapXKEzc= =0ldg -----END PGP SIGNATURE----- --=-xd+PvJmN/kQq47qv4Kn6-- From lehmann@cnm.de Wed May 26 20:09:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BED39C002815; Wed, 26 May 2004 20:09:06 +0300 (EEST) Received: from vm16.variomedia.de (vm16.variomedia.de [81.28.224.61]) by talvi.dovecot.org (Postfix) with ESMTP id 8C2F7C00280C for ; Wed, 26 May 2004 20:09:04 +0300 (EEST) Received: from [82.82.213.59] (helo=cnm.de) by vm16.variomedia.de with asmtp (Exim 4.30) id 1BT1mw-0001q5-2c for dovecot@dovecot.org; Wed, 26 May 2004 19:01:58 +0200 Message-ID: <40B4CD9E.8040900@cnm.de> Date: Wed, 26 May 2004 19:02:22 +0200 From: Marten Lehmann User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Relay-User: lehmann@variomedia.de Subject: [Dovecot] dovecot.rawlog X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 17:09:07 -0000 X-UID: 9216 Status: O Hello, I build dovecot tih --with-rawlog and created a folder dovecot.rawlog inside the root-dir of the mailbox (same level as new, cur and tmp). For testing purposes I set the env MAIL to the maildir and started libexec/imap. This generally works, but I can't find the promised logs of input and output. Where do I have to look for them? Regards Marten From tss@iki.fi Wed May 26 20:12:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9345DC002829; Wed, 26 May 2004 20:12:24 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 71468C002823 for ; Wed, 26 May 2004 20:12:22 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 93F5E1C185E1; Wed, 26 May 2004 20:05:26 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B96FC1C1D0E0; Wed, 26 May 2004 20:04:52 +0300 (EEST) In-Reply-To: <40B4CD9E.8040900@cnm.de> References: <40B4CD9E.8040900@cnm.de> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-24--90292051" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] dovecot.rawlog Date: Wed, 26 May 2004 20:04:50 +0300 To: Marten Lehmann X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 17:12:24 -0000 X-UID: 9217 Status: O Content-Length: 1100 --Apple-Mail-24--90292051 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 26.5.2004, at 20:02, Marten Lehmann wrote: > I build dovecot tih --with-rawlog and created a folder dovecot.rawlog > inside the root-dir of the mailbox (same level as new, cur and tmp). > For testing purposes I set the env MAIL to the maildir and started > libexec/imap. This generally works, but I can't find the promised logs > of input and output. Where do I have to look for them? dovecot.rawlog must be created in user's home directory, not in the mail directory. They're then created inside that directory. --Apple-Mail-24--90292051 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAtM4yyUhSUUBViskRAnPwAJ9L0SlX1FakTNBRTDgjGttRRLQZ3gCgjW/7 r1JkVOcG6hYUTh2YMBZ/U+E= =jsIF -----END PGP SIGNATURE----- --Apple-Mail-24--90292051-- From lehmann@cnm.de Wed May 26 20:36:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 514BFC002815; Wed, 26 May 2004 20:36:20 +0300 (EEST) Received: from vm16.variomedia.de (vm16.variomedia.de [81.28.224.61]) by talvi.dovecot.org (Postfix) with ESMTP id 5D713C000D8E for ; Wed, 26 May 2004 20:36:18 +0300 (EEST) Received: from [82.82.213.59] (helo=cnm.de) by vm16.variomedia.de with asmtp (Exim 4.30) id 1BT2DH-0001uK-SP for dovecot@dovecot.org; Wed, 26 May 2004 19:29:11 +0200 Message-ID: <40B4D400.5050304@cnm.de> Date: Wed, 26 May 2004 19:29:36 +0200 From: Marten Lehmann User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Relay-User: lehmann@variomedia.de Subject: [Dovecot] renaming and select failes X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 17:36:20 -0000 X-UID: 9218 Status: O Hello, I created a folder inbox.Test.Try through IMAP. LIST shows me the folder INBOX.Test.Try instead, but in the filesystem it's created inbox.Test.Try. Now every select, examine or rename gives me NO Mailbox doesn't exist INBOX.Test.Try. Seems that inbox is mapped uppercase everywhere except at "create". Regards Marten From tss@iki.fi Wed May 26 20:46:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C04DFC002815; Wed, 26 May 2004 20:46:55 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id D1172C000D8E for ; Wed, 26 May 2004 20:46:53 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id EB2991C185E1; Wed, 26 May 2004 20:39:57 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1A1991C1D0E0; Wed, 26 May 2004 20:39:24 +0300 (EEST) In-Reply-To: <40B4D400.5050304@cnm.de> References: <40B4D400.5050304@cnm.de> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-26--88220227" Message-Id: <9F7C3154-AF3B-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] renaming and select failes Date: Wed, 26 May 2004 20:39:22 +0300 To: Marten Lehmann X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 17:46:55 -0000 X-UID: 9219 Status: O Content-Length: 1083 --Apple-Mail-26--88220227 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 26.5.2004, at 20:29, Marten Lehmann wrote: > I created a folder inbox.Test.Try through IMAP. LIST shows me the > folder INBOX.Test.Try instead, but in the filesystem it's created > inbox.Test.Try. Now every select, examine or rename gives me > > NO Mailbox doesn't exist INBOX.Test.Try. > > Seems that inbox is mapped uppercase everywhere except at "create". CREATE command looks ok to me, are you sure it was because of it? I found that problem from RENAME command though, will be fixed in .10.5. --Apple-Mail-26--88220227 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAtNZKyUhSUUBViskRAnPzAKCT1a/Yy9bMNI01iNCGIjVpe98R0QCfc9wL Vg3PvXR8R6vQxK2lsrFgzGg= =jti8 -----END PGP SIGNATURE----- --Apple-Mail-26--88220227-- From fmulharin@th-record.com Wed May 26 21:08:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 60979C002815; Wed, 26 May 2004 21:08:09 +0300 (EEST) Received: from mailexchange.ottaway.com (mailexchange.ottaway.com [204.27.188.1]) by talvi.dovecot.org (Postfix) with ESMTP id 17275C00280C for ; Wed, 26 May 2004 21:08:07 +0300 (EEST) Received: from mailserver.ottaway.com by mailexchange.ottaway.com; Wed, 26 May 2004 18:05:28 GMT Received: from thrmailserver.th-record.com ([172.20.73.5]) by mailserver.ottaway.com (Netscape Messaging Server 4.15) with SMTP id HYC21Y00.ME9 for ; Wed, 26 May 2004 14:01:10 -0400 Received: from thrmailserver.th-record.com (localhost.localdomain [127.0.0.1]) by thrmailserver.th-record.com (8.12.8/8.12.8) with ESMTP id i4QI28lC027146 for ; Wed, 26 May 2004 14:02:09 -0400 Received: (from apache@localhost) by thrmailserver.th-record.com (8.12.8/8.12.8/Submit) id i4QI28gD027140; Wed, 26 May 2004 14:02:08 -0400 Received: from 172.20.73.150 (SquirrelMail authenticated user fmulharin) by 172.20.73.5 with HTTP; Wed, 26 May 2004 14:02:06 -0400 (EDT) Message-ID: <37493.172.20.73.150.1085594526.squirrel@172.20.73.5> Date: Wed, 26 May 2004 14:02:06 -0400 (EDT) From: "Fred Mulharin" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2-1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Deleted emails in Outlook Express X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 18:08:09 -0000 X-UID: 9220 Status: O I am having problems with Outlook Express v.6 as an Imap client. Deleted emails are not making it to the Trash, or Deleted Items folders. I have been trying to find a setting in Outlook Express to control this. I am running Dovecot on a Red Hat 9.0 box. I do not have this problem with either Squirrelmail, or Mozilla. Any thoughts would be appreciated Fred -- Fred Mulharin Systems Technology Supervisor Times Herald-Record fmulharin@th-record.com ..We are the trusted leader in news and information for the communities we serve ..because we all live here From lehmann@cnm.de Wed May 26 21:42:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E17A3C00280C; Wed, 26 May 2004 21:42:02 +0300 (EEST) Received: from vm16.variomedia.de (vm16.variomedia.de [81.28.224.61]) by talvi.dovecot.org (Postfix) with ESMTP id 73A6CC000D8E for ; Wed, 26 May 2004 21:42:00 +0300 (EEST) Received: from [82.82.213.59] (helo=cnm.de) by vm16.variomedia.de with asmtp (Exim 4.30) id 1BT3Er-0002B1-Ll for dovecot@dovecot.org; Wed, 26 May 2004 20:34:53 +0200 Message-ID: <40B4E366.5090809@cnm.de> Date: Wed, 26 May 2004 20:35:18 +0200 From: Marten Lehmann User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Relay-User: lehmann@variomedia.de Subject: [Dovecot] append X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 18:42:03 -0000 X-UID: 9221 Status: O Hello, I was testing the append function with a wrong amount of characters. The message I appended was saved in the tmp-folder. But even after I received the "BAD ..." message and after I disconnected, the message remained in the tmp-folder. Would it ever be deleted? From lehmann@cnm.de Wed May 26 21:44:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6CAF7C00280C; Wed, 26 May 2004 21:44:21 +0300 (EEST) Received: from vm16.variomedia.de (vm16.variomedia.de [81.28.224.61]) by talvi.dovecot.org (Postfix) with ESMTP id 5A903C000D8E for ; Wed, 26 May 2004 21:44:19 +0300 (EEST) Received: from [82.82.213.59] (helo=cnm.de) by vm16.variomedia.de with asmtp (Exim 4.30) id 1BT3H6-0002BT-J9 for dovecot@dovecot.org; Wed, 26 May 2004 20:37:12 +0200 Message-ID: <40B4E3F1.2040000@cnm.de> Date: Wed, 26 May 2004 20:37:37 +0200 From: Marten Lehmann User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Relay-User: lehmann@variomedia.de Subject: [Dovecot] \Deleted and expunge X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 18:44:21 -0000 X-UID: 9222 Status: O Hello, I deleted a message by storing the \Deleted flag and called expunge. The message was deleted then, but in the file dovecot-uidlist the filename of that message is still listed, even after logging out and in again, doing select and check. When will this file be updated? Regards Marten From geocar-dovecot@internetconnection.net Wed May 26 21:51:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6502DC00280C; Wed, 26 May 2004 21:51:20 +0300 (EEST) Received: from internetconnection.net (proxy.dmvnoc.com [216.169.144.254]) by talvi.dovecot.org (Postfix) with SMTP id 8B55DC000D8E for ; Wed, 26 May 2004 21:51:17 +0300 (EEST) Received: (qmail 18893 invoked by uid 0); 26 May 2004 18:48:55 -0000 Received: from unknown (HELO ?192.168.1.3?) (192.168.1.3) by pokey with SMTP; 26 May 2004 18:48:55 -0000 From: Geo Carncross To: dovecot@dovecot.org Content-Type: text/plain Organization: Internet Connection Message-Id: <1085597033.1966.34.camel@midget.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Wed, 26 May 2004 14:43:54 -0400 Content-Transfer-Encoding: 7bit Subject: [Dovecot] IMAP views - and things to make Outlook Express not suck so much X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: geocar@internetconnection.net List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 18:51:20 -0000 X-UID: 9223 Status: O Content-Length: 3540 Some of the things that keep being brought up SEEM TO ME to be a form of IMAP crack that can be accomplished in a much more generalized manner with a little bit of thought. An idea I had a while back was for IMAP views. It accomplishes the four things I keep seeing on this list without being specific to any of them. Consider new configuration variables: rewrite Junk { folder = INBOX search = KEYWORD "Junk" post = +FLAGS (Junk) } rewrite Trash { folder = * search = DELETED fetch = -FLAGS (\Deleted) post = +FLAGS (\Deleted) } Views would not be deletable (unless one wants to invent some nonstandard IMAP extensions today), but they would otherwise look like regular folders. One could post and search and fetch messages as normal (with some alterations to various IMAP fields). In the examples I gave: A001 SELECT Junk A002 SEARCH ALL A003 SELECT Trash A004 SEARCH ALL A005 FETCH 1 FLAGS would be translated into: A001 SELECT INBOX A002 SEARCH ALL KEYWORD Junk A003 SELECT {for each SUBSCRIBED folder} A004 SEARCH ALL DELETED A005 FETCH 1 FLAGS Except, A005 would actually yield: * 1 FETCH (FLAGS ()) Instead of: * 1 FETCH (FLAGS (\Deleted)) It would probably be ideal if these were configurable per-user, but I'd be happy with system-wide rewriting. Options for rewrite could include: folder = folders that could be selected using LSUB OR a valid (existing) folder name. If this is system wide, pretty much only INBOX, INBOX.% and INBOX.* and * and % are valid :) search = tags to append to SEARCH operations on the view fetch = IMAP fields that are acceptable to STORE that we will pretend occurred when fetching. recent = IMAP fields that should be STORE'd when the \Recent flag is still set. post = IMAP fields that are acceptable to STORE that we will perform when APPENDing or STOREing. append = argument to be passed to /bin/sh -c which will receive on standard input the APPENDed body, and produce on output a STOREed body. open = argument for /bin/sh -c for when this view is SELECTed or EXAMINEd close = argument to be passed to /bin/sh -c for when the view is closed. index = argument to be passed to /bin/sh -c for when dovecot wants to index a portion of the message. standard input of the argument is the message, whereas standard output is the portion to actually index. path = a regular dovecot mailbox path that would contain the real contents of this folder. ro path = like path, but would be decidedly read-only (except for any side-effects generated by append =) Subprocesses that exit 99 would handle the task internally- thus any normal actions (such as for index = and append =) would not occur. Exit code 0 is for normal completion, and all other exit codes should generate an error. If one allowed open = and close = to be used on REAL folders, this would allow people to actually have the behavior UW-IMAP does by MOVING mail from /v/s/m into ~/mbox... One could use append = with a "Outbox" view that could write the queue at the same time as storing a copy into Sent Items. One could also use append for gpg-signing messages as they're being recorded. One could also use append for publishing to a mailing list. One could use index = to spell-check messages beforehand thus improving my chances of actually finding messages from my PHB. One could also use append =, recent = and ro path = to emulate shared folders support in a manner that would be useful for using IMAP folders as a kind of work-queue. Thoughts? From tss@iki.fi Wed May 26 22:33:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B0C44C00280C; Wed, 26 May 2004 22:33:07 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 97F86C000D8E for ; Wed, 26 May 2004 22:33:05 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 80FC81C185E1; Wed, 26 May 2004 22:26:09 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 96AE11C1D0E0; Wed, 26 May 2004 22:25:35 +0300 (EEST) Subject: Re: [Dovecot] append From: Timo Sirainen To: Marten Lehmann In-Reply-To: <40B4E366.5090809@cnm.de> References: <40B4E366.5090809@cnm.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-VO1z1dgDxfGKlOlE6iJ4" Message-Id: <1085599535.20006.34.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 26 May 2004 22:25:35 +0300 X-Spam-Status: No, hits=-9.0 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 19:33:07 -0000 X-UID: 9224 Status: O Content-Length: 1371 --=-VO1z1dgDxfGKlOlE6iJ4 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-05-26 at 21:35, Marten Lehmann wrote: > Hello, >=20 > I was testing the append function with a wrong amount of characters. The=20 > message I appended was saved in the tmp-folder. But even after I=20 > received the "BAD ..." message and after I disconnected, the message=20 > remained in the tmp-folder. Would it ever be deleted? I can't reproduce that, the message gets deleted if something goes wrong. I also don't see any files in tmp/ dirs in a system that has been running for over a year. Does it happen every time with you? Anyway, it might be useful to check tmp/ once in a while and delete the files that could have possibly been left there (especially because of crashes), but I'm not sure if it's Dovecot's job. It shouldn't anyway be done too often to avoid useless extra I/O. Maybe a daily cronjob with something like: find /var/mail -path 'tmp/*' -cmin +60 -print0|xargs -0 rm --=-VO1z1dgDxfGKlOlE6iJ4 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAtO8vyUhSUUBViskRAiBHAJ4+sO/aLhO7NPmyOJlhlfUrQYH0ZACgmtSp HSCUHpnV9zAoJdm9x0dGI+U= =sCmO -----END PGP SIGNATURE----- --=-VO1z1dgDxfGKlOlE6iJ4-- From tss@iki.fi Wed May 26 22:35:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 45D55C00280C; Wed, 26 May 2004 22:35:44 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 62C96C000D8E for ; Wed, 26 May 2004 22:35:42 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 519C31C185E1; Wed, 26 May 2004 22:28:46 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 444191C1D0E0; Wed, 26 May 2004 22:28:12 +0300 (EEST) Subject: Re: [Dovecot] \Deleted and expunge From: Timo Sirainen To: Marten Lehmann In-Reply-To: <40B4E3F1.2040000@cnm.de> References: <40B4E3F1.2040000@cnm.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-7CL3sGn7TpbnK9hMG0cN" Message-Id: <1085599691.20006.38.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 26 May 2004 22:28:11 +0300 X-Spam-Status: No, hits=-9.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 19:35:44 -0000 X-UID: 9225 Status: O --=-7CL3sGn7TpbnK9hMG0cN Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-05-26 at 21:37, Marten Lehmann wrote: > I deleted a message by storing the \Deleted flag and called expunge. The=20 > message was deleted then, but in the file dovecot-uidlist the filename=20 > of that message is still listed, even after logging out and in again,=20 > doing select and check. When will this file be updated? It's only used for figuring out UIDs for existing files, so entries for expunged mails are just ignored. It's updated whenever new messages are written there, the old entries are removed then. --=-7CL3sGn7TpbnK9hMG0cN Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAtO/LyUhSUUBViskRAkg3AJ4lRFlFozFaytJzz1wDvhfBHtTflQCfe3oZ Mpr15UYVuHNJ8iGUGjo160M= =Zuf1 -----END PGP SIGNATURE----- --=-7CL3sGn7TpbnK9hMG0cN-- From tss@iki.fi Wed May 26 22:42:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 783EBC00280C; Wed, 26 May 2004 22:42:08 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 86305C000D8E for ; Wed, 26 May 2004 22:42:06 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 6B45E1C185E1; Wed, 26 May 2004 22:35:10 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 84ECA1C1D0E0; Wed, 26 May 2004 22:34:36 +0300 (EEST) Subject: Re: [Dovecot] IMAP views - and things to make Outlook Express not suck so much From: Timo Sirainen To: geocar@internetconnection.net In-Reply-To: <1085597033.1966.34.camel@midget.intranet> References: <1085597033.1966.34.camel@midget.intranet> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-b5PvAmf/YPS3mqVCydAv" Message-Id: <1085600076.20006.46.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 26 May 2004 22:34:36 +0300 X-Spam-Status: No, hits=-9.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 19:42:08 -0000 X-UID: 9226 Status: O Content-Length: 1123 --=-b5PvAmf/YPS3mqVCydAv Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-05-26 at 21:43, Geo Carncross wrote: > An idea I had a while back was for IMAP views. It accomplishes the four > things I keep seeing on this list without being specific to any of them. I've thought about something similiar before, but I've mostly just thought about performance and complexity issues with it. Creating a single view from many mailboxes could be slow without some special indexing. Good ideas anyway, I'll think about them more once I get around to implementing the thing (unless someone else wants to? :), sometimes after v1.0. Simple open/close/append triggers would be easier to implement, those could be done with a plugin. --=-b5PvAmf/YPS3mqVCydAv Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAtPFMyUhSUUBViskRAphLAJ9JhCHPZy5Omjaxk8flnYHYd5AtYQCeL+Wa N038gRhs4tyqgU41DQrBjRk= =VbrU -----END PGP SIGNATURE----- --=-b5PvAmf/YPS3mqVCydAv-- From reboot@gmx.ch Wed May 26 22:49:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 25126C00280C; Wed, 26 May 2004 22:49:14 +0300 (EEST) Received: from mail.gmx.net (mail.gmx.de [213.165.64.20]) by talvi.dovecot.org (Postfix) with SMTP id D36FFC000D8E for ; Wed, 26 May 2004 22:49:11 +0300 (EEST) Received: (qmail 3257 invoked by uid 65534); 26 May 2004 19:42:14 -0000 Received: from pD9052E9B.dip.t-dialin.net (EHLO navi.lan) (217.5.46.155) by mail.gmx.net (mp025) with SMTP; 26 May 2004 21:42:14 +0200 X-Authenticated: #2648902 Date: Wed, 26 May 2004 21:42:09 +0200 From: Christoph Hohmann To: dovecot@dovecot.org Subject: Re: [Dovecot] append Message-Id: <20040526214209.1c6cb09b@navi.lan> In-Reply-To: <1085599535.20006.34.camel@hurina> References: <40B4E366.5090809@cnm.de> <1085599535.20006.34.camel@hurina> X-Mailer: Sylpheed-Claws 0.9.10cvs71 (GTK+ 1.2.10; i686-pc-linux-gnu) X-Face: 6D"~KL6`~X`aGp^DOcl"; ~E/aDfT9qJp!44BUO3su9G?3tY%T0Ibo@#f6>xTOR*yb4}4H'$Oi*QmHuSqB^&t25Y9bF+i1L; =jaVrp]2%meF?3?_nO5]bS7/){T9ususDr8qq&Rp9u@=[k?2DT.j; cYJ&Pt}qd\Wce*(J@On&G2yqlY`>OOl|k7Og9s?xF42kj%tSN3/'C`73NF-UejIbi<6_ Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Wed__26_May_2004_21_42_09_+0200_MrFXZ0vBn/TW/rUl" X-Mailman-Approved-At: Wed, 26 May 2004 22:51:32 +0300 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 19:49:14 -0000 X-UID: 9227 Status: O Content-Length: 1244 --Signature=_Wed__26_May_2004_21_42_09_+0200_MrFXZ0vBn/TW/rUl Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit Timo Sirainen wrote: > Anyway, it might be useful to check tmp/ once in a while and delete the > files that could have possibly been left there (especially because of > crashes), but I'm not sure if it's Dovecot's job. It shouldn't anyway be > done too often to avoid useless extra I/O. Maybe a daily cronjob with > something like: > > find /var/mail -path 'tmp/*' -cmin +60 -print0|xargs -0 rm see http://www.qmail.org/man/man5/maildir.html The reader is also expected to look through the tmp directory and to clean up any old files found there. A file in tmp may be safely removed if it has not been accessed in 36 hours. -- http://reboot.animeirc.de http://sylpheed-claws.sourceforge.net/ --Signature=_Wed__26_May_2004_21_42_09_+0200_MrFXZ0vBn/TW/rUl Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAtPMUoHTSdnOy6+ERAjveAJwLzTiNfCXEY1JjrymhHhpTRdSPpwCeNLzA 6Oha1dcotKo6ga1LvjO2oVo= =TE34 -----END PGP SIGNATURE----- --Signature=_Wed__26_May_2004_21_42_09_+0200_MrFXZ0vBn/TW/rUl-- From rick@activeservice.co.uk Wed May 26 23:00:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2EE59C00280C; Wed, 26 May 2004 23:00:50 +0300 (EEST) Received: from mcp.34sp.com (mcp.34sp.com [212.187.158.4]) by talvi.dovecot.org (Postfix) with SMTP id A3797C000D8E for ; Wed, 26 May 2004 23:00:47 +0300 (EEST) Received: (qmail 37786 invoked from network); 26 May 2004 19:53:40 -0000 Received: from unknown (HELO activeservice.co.uk) (62.164.179.204) by mcp.34sp.com with SMTP; 26 May 2004 19:53:40 -0000 Received: (qmail 1734 invoked from network); 26 May 2004 19:53:39 -0000 X-Virus-Scanned: by amavis-ng-0.1.6.4-03dc on smithy.activeservice.co.uk Received: from dad.activeservice.co.uk (HELO [192.168.0.9]) (192.168.0.9) by smithy.activeservice.co.uk (192.168.0.1) with ESMTP; 26 May 2004 19:53:38 -0000 Date: Wed, 26 May 2004 20:53:46 +0100 From: Rick Jones To: dovecot@dovecot.org Subject: Re: [Dovecot] Deleted emails in Outlook Express Message-ID: <6791004BAF5DD55D4930276E@[192.168.0.9]> In-Reply-To: <37493.172.20.73.150.1085594526.squirrel@172.20.73.5> References: <37493.172.20.73.150.1085594526.squirrel@172.20.73.5> X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 20:00:50 -0000 X-UID: 9228 Status: O --On 26 May 2004 14:02 -0400 Fred Mulharin wrote: > > I am having problems with Outlook Express v.6 as an Imap client. > > Deleted emails are not making it to the Trash, or Deleted Items folders. I > have been trying to find a setting in Outlook Express to control this. IMAP itself only supports the "mark-deleted + expunge" model. Any "delete moves to trash" action is implemented by the client. AFAIK OE doesn't offer that for IMAP servers, only for local folders and POP accounts (which are local folders anyway). -- Rick Jones From per@bothner.com Wed May 26 23:48:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E45DEC00280C; Wed, 26 May 2004 23:48:29 +0300 (EEST) Received: from bothner.com (adsl-216-102-199-253.dsl.snfc21.pacbell.net [216.102.199.253]) by talvi.dovecot.org (Postfix) with ESMTP id 2BA52C000D8E for ; Wed, 26 May 2004 23:48:27 +0300 (EEST) Received: from [192.168.1.10] ([192.168.1.10]) by bothner.com (8.12.11/8.12.10) with ESMTP id i4QKiea1025935; Wed, 26 May 2004 13:44:41 -0700 Message-ID: <40B500BE.4040304@bothner.com> Date: Wed, 26 May 2004 13:40:30 -0700 From: Per Bothner User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7) Gecko/20040514 X-Accept-Language: en-us, en MIME-Version: 1.0 To: David Keegel Subject: Re: [Dovecot] dovecot immediately exits on Fedora 2 References: <200405261208.i4QC8NDi009005@boombox.cyber.com.au> In-Reply-To: <200405261208.i4QC8NDi009005@boombox.cyber.com.au> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 20:48:30 -0000 X-UID: 9229 Status: O Content-Length: 1069 David Keegel wrote: > I suggest tail /var/log/maillog as the place to look for > errors and messages from dovecot. Yes, while I was debugging uw-imap I made use of that. And looking through the maillog I found messages like: May 25 16:03:42 bothner imap-login: Can't load private key file /usr/share/ssl/private/dovecot.pem: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch So that's a pretty strong hint what to look at ... Thanks for the hint - which in retrospect I should have been able to figure out myself. Ah well. I was able to debug uw-imap (by inserting extra syslog calls), and determined the problem was a missing configuration file for PAM (pluggable authentical modules). I now have uw-imap working, so getting dovecot working is no longer urgent. Of course I prefer to use the "vendor-supported" packages, but I think I might stick with UW-imap until it is time for Fedora 3 - there doesn't seem to be any reason to fiddle with things until then. -- --Per Bothner per@bothner.com http://per.bothner.com/ From joshua@shallow.net Thu May 27 00:49:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C5C88C00280C; Thu, 27 May 2004 00:49:29 +0300 (EEST) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id DDB3AC000D8E for ; Thu, 27 May 2004 00:49:26 +0300 (EEST) Received: by yello.shallow.net (Postfix, from userid 1001) id BE7F82BE0; Thu, 27 May 2004 07:42:27 +1000 (EST) Date: Thu, 27 May 2004 07:42:27 +1000 From: Joshua Goodall To: Timo Sirainen Subject: Re: [Dovecot] IMAP views - and things to make Outlook Express not suck so much Message-ID: <20040526214227.GB1698@roughtrade.net> References: <1085597033.1966.34.camel@midget.intranet> <1085600076.20006.46.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1085600076.20006.46.camel@hurina> User-Agent: Mutt/1.5.4i Cc: geocar@internetconnection.net, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 21:49:30 -0000 X-UID: 9230 Status: O On Wed, May 26, 2004 at 10:34:36PM +0300, Timo Sirainen wrote: > On Wed, 2004-05-26 at 21:43, Geo Carncross wrote: > > An idea I had a while back was for IMAP views. It accomplishes the four > > things I keep seeing on this list without being specific to any of them. > > I've thought about something similiar before, but I've mostly just > thought about performance and complexity issues with it. Creating a > single view from many mailboxes could be slow without some special > indexing. Just as an implementation point; it would be good if the specification language was Sieve. J -- Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 From geocar-dovecot@internetconnection.net Thu May 27 02:38:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 65417C00282B; Thu, 27 May 2004 02:38:59 +0300 (EEST) Received: from internetconnection.net (proxy.dmvnoc.com [216.169.144.254]) by talvi.dovecot.org (Postfix) with SMTP id ED0E3C000D8E for ; Thu, 27 May 2004 02:38:52 +0300 (EEST) Received: (qmail 5403 invoked by uid 0); 26 May 2004 23:36:30 -0000 Received: from unknown (HELO ?192.168.1.3?) (192.168.1.3) by pokey with SMTP; 26 May 2004 23:36:30 -0000 Subject: Re: [Dovecot] IMAP views - and things to make Outlook Express not suck so much From: Geo Carncross To: Timo Sirainen In-Reply-To: <1085600076.20006.46.camel@hurina> References: <1085597033.1966.34.camel@midget.intranet> <1085600076.20006.46.camel@hurina> Content-Type: text/plain Organization: Internet Connection Message-Id: <1085614287.1966.101.camel@midget.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Wed, 26 May 2004 19:31:28 -0400 Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: geocar@internetconnection.net List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 23:39:00 -0000 X-UID: 9231 Status: O On Wed, 2004-05-26 at 15:34, Timo Sirainen wrote: > On Wed, 2004-05-26 at 21:43, Geo Carncross wrote: > > An idea I had a while back was for IMAP views. It accomplishes the four > > things I keep seeing on this list without being specific to any of them. > > I've thought about something similiar before, but I've mostly just > thought about performance and complexity issues with it. Creating a > single view from many mailboxes could be slow without some special > indexing. It shouldn't be slower than performing the actions manually. The only "tricky" part would be the UIDL/ID matchups. If one is willing to implement 64-bit integers, or accept a 2^32 maximal limit on the number of messages accessible in a view, then the problem can be reduced to m=n*nfol+folnum where nfol is the number of subscribed folders, folnum is the relay counter, n is the original UIDL or ID number, and m is the resulting UIDL/ID passed to the client. Am I missing something about dovecot's implementation? From geocar-dovecot@internetconnection.net Thu May 27 02:39:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2D1AFC000D8E; Thu, 27 May 2004 02:39:00 +0300 (EEST) Received: from internetconnection.net (proxy.dmvnoc.com [216.169.144.254]) by talvi.dovecot.org (Postfix) with SMTP id B899CC002829 for ; Thu, 27 May 2004 02:38:54 +0300 (EEST) Received: (qmail 5413 invoked by uid 0); 26 May 2004 23:36:32 -0000 Received: from unknown (HELO ?192.168.1.3?) (192.168.1.3) by pokey with SMTP; 26 May 2004 23:36:32 -0000 Subject: Re: [Dovecot] IMAP views - and things to make Outlook Express not suck so much From: Geo Carncross To: Joshua Goodall In-Reply-To: <20040526214227.GB1698@roughtrade.net> References: <1085597033.1966.34.camel@midget.intranet> <1085600076.20006.46.camel@hurina> <20040526214227.GB1698@roughtrade.net> Content-Type: text/plain Organization: Internet Connection Message-Id: <1085614289.1966.103.camel@midget.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Wed, 26 May 2004 19:31:30 -0400 Content-Transfer-Encoding: 7bit Cc: Timo Sirainen , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: geocar@internetconnection.net List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 23:39:00 -0000 X-UID: 9232 Status: O Content-Length: 1129 On Wed, 2004-05-26 at 17:42, Joshua Goodall wrote: > On Wed, May 26, 2004 at 10:34:36PM +0300, Timo Sirainen wrote: > > On Wed, 2004-05-26 at 21:43, Geo Carncross wrote: > > > An idea I had a while back was for IMAP views. It accomplishes the four > > > things I keep seeing on this list without being specific to any of them. > > > > I've thought about something similiar before, but I've mostly just > > thought about performance and complexity issues with it. Creating a > > single view from many mailboxes could be slow without some special > > indexing. > > Just as an implementation point; it would be good if the specification > language was Sieve. This could require the IMAP server fetch the entire contents of a message before processing something as simple as a FETCH FLAGS command. Also, much of sieve would be otherwise useless (fileinto, keep, etc). It'd also require sieve be available to dovecot, which it isn't (yet). AS an implementation point, poisoning the IMAP queries would probably be easier- and currently, wouldn't require any architectural changes (except to support matching multiple folders). From tss@iki.fi Thu May 27 03:27:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A1533C00286C; Thu, 27 May 2004 03:27:39 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id EEDEFC002829 for ; Thu, 27 May 2004 03:27:36 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 614C01C185E1; Thu, 27 May 2004 03:20:40 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4D0121C1D0E0; Thu, 27 May 2004 03:20:07 +0300 (EEST) In-Reply-To: <1085614287.1966.101.camel@midget.intranet> References: <1085597033.1966.34.camel@midget.intranet> <1085600076.20006.46.camel@hurina> <1085614287.1966.101.camel@midget.intranet> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-28--64177055" Message-Id: <9A547378-AF73-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] IMAP views - and things to make Outlook Express not suck so much Date: Thu, 27 May 2004 03:20:05 +0300 To: geocar@internetconnection.net X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 00:27:39 -0000 X-UID: 9233 Status: O Content-Length: 2119 --Apple-Mail-28--64177055 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 27.5.2004, at 02:31, Geo Carncross wrote: >> I've thought about something similiar before, but I've mostly just >> thought about performance and complexity issues with it. Creating a >> single view from many mailboxes could be slow without some special >> indexing. > > It shouldn't be slower than performing the actions manually. Sure, it's not, but clients aren't doing this manually now. Doing it in a simple way would be easy I guess, but I'm not sure if the performance would be good enough to be acceptable.. Especially if a view consists of tens of mailboxes. Each synchronization would require scanning through changes in all of them. I had been thinking about making some global index about mailboxes and their states. So that by just reading one file would be able to tell what mailboxes have changed. With that kind of system it would work much better. > The only > "tricky" part would be the UIDL/ID matchups. If one is willing to > implement 64-bit integers, or accept a 2^32 maximal limit on the number > of messages accessible in a view, then the problem can be reduced to > m=n*nfol+folnum where nfol is the number of subscribed folders, folnum > is the relay counter, n is the original UIDL or ID number, and m is the > resulting UIDL/ID passed to the client. IMAP spec only allows using 32bit numbers, so UIDs and message counts can be max. 2^32-1. But I don't think the UID lookup is too difficult, I could just create a new index of uid => {original mailbox id, uid} mapping with simple increasing UIDs. --Apple-Mail-28--64177055 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAtTQ1yUhSUUBViskRAglIAJ9R9mgJeP7hYIMM6USYDxI0MWfQ5gCfQ0Wz CnWU1SUxXvzS0Xgc7FJLEOM= =uWFL -----END PGP SIGNATURE----- --Apple-Mail-28--64177055-- From tss@iki.fi Thu May 27 05:43:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 04784C00286C; Thu, 27 May 2004 05:43:27 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0C8F7C002829 for ; Thu, 27 May 2004 05:43:21 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 1BE131C185E1; Thu, 27 May 2004 05:36:25 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 421A71C1D0E0 for ; Thu, 27 May 2004 05:35:51 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-L1HVvQ4YeuwhvIMsftKm" Message-Id: <1085625350.20006.57.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 27 May 2004 05:35:50 +0300 X-Spam-Status: No, hits=-8.4 required=5.0 tests=AWL,BAYES_00,PGP_SIGNATURE_2,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 0.99.10.5-rc2 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 02:43:28 -0000 X-UID: 9234 Status: O --=-L1HVvQ4YeuwhvIMsftKm Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/rc/ Just a few more changes: - --with-moduledir option to configure - compile fix to Solaris 10 - mbox syncing complains if mbox is modified while we have it locked and something goes wrong (lock settings are wrong) - maildir: RENAME xx inbox.xx makes sure INBOX is uppercased. - "RAND_bytes() failed:" SSL "fix" for fedora/redhat --=-L1HVvQ4YeuwhvIMsftKm Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAtVQGyUhSUUBViskRAo25AJ46mWLPv8sZebZIbDjhqGpj3tnvQgCeLNSv uImkI1ObIbHgYUm4IlqhiZk= =ooEh -----END PGP SIGNATURE----- --=-L1HVvQ4YeuwhvIMsftKm-- From charlie@rubberduck.com Thu May 27 10:54:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9A182C00286C; Thu, 27 May 2004 10:54:14 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 63122C002829 for ; Thu, 27 May 2004 10:54:12 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 16FEA1C1D0E0; Thu, 27 May 2004 10:47:15 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 111961C185E1; Thu, 27 May 2004 10:47:15 +0300 (EEST) Received: from squeaky.rubberduck.com (unknown [203.28.8.126]) by danu.procontrol.fi (Postfix) with ESMTP id B9A881C1D0E0 for ; Thu, 27 May 2004 10:46:40 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by squeaky.rubberduck.com (Postfix) with ESMTP id 723E5BFC4 for ; Thu, 27 May 2004 17:46:19 +1000 (EST) Received: from squeaky.rubberduck.com ([127.0.0.1]) by localhost (squeaky [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26171-07 for ; Thu, 27 May 2004 17:46:16 +1000 (EST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (Client CN "machine.internal.schools.net.au", Issuer "machine.internal.schools.net.au" (verified OK)) by squeaky.rubberduck.com (Postfix) with ESMTP id 40DCDBFBF for ; Thu, 27 May 2004 17:46:16 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id 119556D185F; Thu, 27 May 2004 17:46:14 +1000 (EST) Date: Thu, 27 May 2004 17:46:14 +1000 From: Charlie Allom To: dovecot@procontrol.fi Message-ID: <20040527074613.GO24701@myinternet.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; x-action=pgp-signed Content-Disposition: inline User-Agent: Mutt/1.5.6i X-Virus-Scanned: by amavisd-new at rubberduck.com Cc: Subject: [Dovecot] ioloop.c: line 90: assertion failed: (io->fd <= current_ioloop->highest_fd) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 07:54:14 -0000 X-UID: 9235 Status: O -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I'm running the last release, not the tests, and was wondering if anyone had seen this? It happens a few times a day.. May 27 17:43:29 squeaky imap-login: [ID 480647 mail.crit] file ioloop.c: line 90: assertion failed: (io->fd <= current_ioloop->highest_fd) May 27 17:43:29 squeaky dovecot: [ID 684838 mail.error] child 23744 (login) killed with signal 6 This is on Solaris. Regards, C. - -- .signature 0x14AA7941 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFAtZzFqiZDwhSqeUERAofWAKCO2kadhJnZySSs28qkVIG2ma/HMACfdP21 wPvPym7NAST85eofOJCSods= =8c1t -----END PGP SIGNATURE----- From oleg@cs.msu.su Thu May 27 16:36:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7A6E1C00286C; Thu, 27 May 2004 16:36:03 +0300 (EEST) Received: from jaffar.mlab.cs.msu.su (jaffar.cs.msu.su [158.250.11.254]) by talvi.dovecot.org (Postfix) with ESMTP id A2EB2C002829 for ; Thu, 27 May 2004 16:36:00 +0300 (EEST) Received: from illusion (illusion.jscc.ru [195.208.40.102]) by jaffar.mlab.cs.msu.su (8.12.8/8.12.8) with SMTP id i4RDT2AH000681 for ; Thu, 27 May 2004 17:29:02 +0400 Message-ID: <00a301c443ee$9348dd80$6628d0c3@mlab.cs.msu.su> From: "Oleg I. Vdovikin" To: Date: Thu, 27 May 2004 17:29:02 +0400 MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Subject: [Dovecot] Small change to make dovecot pop3 uw-imap migration friendly X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 13:36:03 -0000 X-UID: 9236 Status: O Content-Length: 1316 Hi, today I've finished migration from uw-imap daemons to shiny and fast dovecot. With thanks of dovecot my mail server load average drops by factor of ten even with ancient unix mailboxes. ;-) So, the only thing I've discovered is what POP3 uidls are different than ones used in the uw-imap. Luckily, the difference are only in the format string used in uidl response. So, I've made the following change in the code --- dovecot-0.99.10.4.orig/src/pop3/commands.c 2003-05-28 15:17:15.000000000 +0400 +++ dovecot-0.99.10.4/src/pop3/commands.c 2004-05-27 14:06:48.000000000 +0400 @@ -374,7 +374,7 @@ while ((mail = client->mailbox->fetch_next(ctx)) != NULL) { client_send_line(client, message == 0 ? - "%u %u.%u" : "+OK %u %u.%u", + "%u %08x%08x" : "+OK %u %08x%08x", mail->seq, client->uidvalidity, mail->uid); found = TRUE; } and got everything just like in the old uw-imap pop3. I'm current running RH9, but thinking of FC2 which uses dovecot. So, I've rebuild the FC2 rpm for RH9 including this patch. Pop3 users, which do not remove their mails from the server are really happy - they do not receive old mails twice. Probably this small change could be applied to the 1.0, or used as a config option. Any suggestions are greatly appriciated. Thanks, Oleg. From geocar-dovecot@internetconnection.net Thu May 27 17:01:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C934CC00286C; Thu, 27 May 2004 17:01:50 +0300 (EEST) Received: from internetconnection.net (proxy.dmvnoc.com [216.169.144.254]) by talvi.dovecot.org (Postfix) with SMTP id 5AAA5C002829 for ; Thu, 27 May 2004 17:01:47 +0300 (EEST) Received: (qmail 20959 invoked by uid 0); 27 May 2004 13:59:21 -0000 Received: from unknown (HELO ?192.168.1.3?) (192.168.1.3) by pokey with SMTP; 27 May 2004 13:59:21 -0000 Subject: Re: [Dovecot] IMAP views - and things to make Outlook Express not suck so much From: Geo Carncross To: Timo Sirainen In-Reply-To: <9A547378-AF73-11D8-8870-000393CC2E90@iki.fi> References: <1085597033.1966.34.camel@midget.intranet> <1085600076.20006.46.camel@hurina> <1085614287.1966.101.camel@midget.intranet> <9A547378-AF73-11D8-8870-000393CC2E90@iki.fi> Content-Type: text/plain Organization: Internet Connection Message-Id: <1085666053.1966.129.camel@midget.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Thu, 27 May 2004 09:54:14 -0400 Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: geocar@internetconnection.net List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 14:01:51 -0000 X-UID: 9237 Status: O Content-Length: 1800 On Wed, 2004-05-26 at 20:20, Timo Sirainen wrote: > On 27.5.2004, at 02:31, Geo Carncross wrote: > > >> I've thought about something similiar before, but I've mostly just > >> thought about performance and complexity issues with it. Creating a > >> single view from many mailboxes could be slow without some special > >> indexing. > > > > It shouldn't be slower than performing the actions manually. > > Sure, it's not, but clients aren't doing this manually now. Doing it in > a simple way would be easy I guess, but I'm not sure if the performance > would be good enough to be acceptable.. Especially if a view consists > of tens of mailboxes. Each synchronization would require scanning > through changes in all of them. Perhaps another way would be to maintain separate indexes for each view and (see below). > I had been thinking about making some global index about mailboxes and > their states. So that by just reading one file would be able to tell > what mailboxes have changed. With that kind of system it would work > much better. This would be easier still with an LDA that could pull a trigger when a mailbox needs re-syncing. One could enable a configuration option called (say) lda_trigger = that would refer to a spec identifying a pipe (possibly per mailbox) that dovecot could select() on. any writes to it would fill the buffer and cause dovecot to rescan. If dovecot wasn't watching the pipe, and the pipe buffer got full, "oh well", dovecot should expunge the pipe buffer when it starts up anyway. the LDA trigger-pull could be as simple as: |echo '' > mailbox/lda_trigger 2>/dev/null; exit 0 being added to ones .qmail file. Similarly, .forwards could be altered similarly. This watching of a pipe could solve other problems (like avoiding extra stat() calls) From olive@pasteur.fr Thu May 27 17:18:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 19F0DC002900; Thu, 27 May 2004 17:18:49 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id E67A6C00286C for ; Thu, 27 May 2004 17:18:46 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 7614911474 for ; Thu, 27 May 2004 16:11:48 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 3EFE411473 for ; Thu, 27 May 2004 16:11:48 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 2D41B3F66A; Thu, 27 May 2004 16:11:48 +0200 (CEST) Date: Thu, 27 May 2004 16:11:48 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] 0.99.10.5 release candidate Message-ID: <20040527141148.GL43374@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <1085511447.27732.96.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1085511447.27732.96.camel@hurina> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 14:18:49 -0000 X-UID: 9238 Status: O Content-Length: 1244 Hi, * Timo Sirainen (20040525 21:57): > http://dovecot.org/rc/ > > Thought I'd still make one 0.99.10.x release now that mbox corruption > problems are (hopefully) fixed. I have yet to see from my testers if mailbox corruption still occurs. > - mbox: "LF not found" errors happened sometimes when X-IMAPbase > header was updated. Possibly corrupted mbox sometimes. > Thanks to Fabrice Bellet for finding this bug. I have not seen these errors in the log file with this version (except perhaps the first time people checked their mail after the upgrade). Thank you! I keep seeing the following message from time to time: ,---- | May 27 16:04:38 munster imap(xxxx): Our dotlock file /home/xxxx/Mail/mrtg.lock was modified (1085666677 vs 1085666678), assuming it wasn't overridden `---- Could it still be a NFS-locking problem? Dovecot uses: mbox_locks = dotlock Procmail (on the same server, FreeBSD 5.2) uses: Locking strategies: dotlocking, lockf() Procmail (on another server, Tru64) uses: Locking strategies: dotlocking, fcntl(), lockf(), flock() I suppose I must use exactly the same locking facilities, but there seems to be differences between reading and writing a mbox in Dovecot. -- olive From tss@iki.fi Thu May 27 18:00:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8A7E7C00290C; Thu, 27 May 2004 18:00:03 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 4558AC002900 for ; Thu, 27 May 2004 18:00:00 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 3FCBE1C1D0E1; Thu, 27 May 2004 17:53:02 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D5ACC1C1D0E0; Thu, 27 May 2004 17:52:25 +0300 (EEST) In-Reply-To: <20040527141148.GL43374@mafate.sis.pasteur.fr> References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-29--11838009" Message-Id: <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.5 release candidate Date: Thu, 27 May 2004 17:52:24 +0300 To: Olivier Tharan X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 15:00:04 -0000 X-UID: 9239 Status: O Content-Length: 1485 --Apple-Mail-29--11838009 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 27.5.2004, at 17:11, Olivier Tharan wrote: >> Thought I'd still make one 0.99.10.x release now that mbox corruption >> problems are (hopefully) fixed. > > I have yet to see from my testers if mailbox corruption still occurs. So far I've heard only positive reports :) > I keep seeing the following message from time to time: > > ,---- > | May 27 16:04:38 munster imap(xxxx): Our dotlock file > /home/xxxx/Mail/mrtg.lock was modified (1085666677 vs 1085666678), > assuming it wasn't overridden > `---- > > Could it still be a NFS-locking problem? Hmm.. Just one second difference. Is it always one second? > Dovecot uses: mbox_locks = dotlock If you don't use fcntl locking (and with NFS you probably won't), you'd have to enable mbox_read_dotlock, otherwise mailbox isn't locked for reading at all and that could cause problems. I think I'll make Dovecot complain about this if it's not done.. --Apple-Mail-29--11838009 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAtgCoyUhSUUBViskRAoRiAJ0V1mjKuTeyDnJCPMF9aZUFQaJtpgCgnjLF X4EauBffIKgytXiHvVqaABM= =z5C2 -----END PGP SIGNATURE----- --Apple-Mail-29--11838009-- From tss@iki.fi Thu May 27 18:05:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 158B8C002915; Thu, 27 May 2004 18:05:17 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 4CD59C00290C for ; Thu, 27 May 2004 18:05:14 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 4DE0A1C1D0E1; Thu, 27 May 2004 17:58:16 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 163FB1C1D0E0; Thu, 27 May 2004 17:57:43 +0300 (EEST) In-Reply-To: <00a301c443ee$9348dd80$6628d0c3@mlab.cs.msu.su> References: <00a301c443ee$9348dd80$6628d0c3@mlab.cs.msu.su> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-30--11522021" Message-Id: <332DA6F9-AFEE-11D8-8870-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Small change to make dovecot pop3 uw-imap migration friendly Date: Thu, 27 May 2004 17:57:40 +0300 To: "Oleg I. Vdovikin" X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 15:05:17 -0000 X-UID: 9240 Status: O Content-Length: 1648 --Apple-Mail-30--11522021 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 27.5.2004, at 16:29, Oleg I. Vdovikin wrote: > Hi, > > today I've finished migration from uw-imap daemons to shiny and > fast > dovecot. With thanks of dovecot my mail server load average drops by > factor > of ten even with ancient unix mailboxes. ;-) Get 0.99.10.5, it fixes possible mbox corruption. > So, the only thing I've discovered is what POP3 uidls are > different than > ones used in the uw-imap. Luckily, the difference are only in the > format > string used in uidl response. So, I've made the following change in > the code Actually I just wrote a similiar patch a few days ago .. :) http://dovecot.org/patches/pop3-uidl-uwimap.patch it's against .10.5 which changed a bit. > Probably this small change could be applied to the 1.0, or used as > a > config option. I was thinking about making this fully configurable, ie. a config option which would accept printf-like string. "%v.%u" "%08xv%08xu" or something. Or maybe it's not worth it, I'd have to look at other POP3 servers to see what different kinds of UIDs they use.. --Apple-Mail-30--11522021 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAtgHkyUhSUUBViskRAikdAKCOWGwST3erygLN4WfL2qUc50hFBgCfdtf9 AtTQrw/P6lr/V9NW2mlQIcg= =U+lT -----END PGP SIGNATURE----- --Apple-Mail-30--11522021-- From oleg@cs.msu.su Thu May 27 18:23:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 503D3C00291B; Thu, 27 May 2004 18:23:27 +0300 (EEST) Received: from imap.cs.msu.su (imap.cs.msu.su [158.250.10.39]) by talvi.dovecot.org (Postfix) with ESMTP id 3160AC002915 for ; Thu, 27 May 2004 18:23:25 +0300 (EEST) Received: from webmail.cs.msu.su (localhost [127.0.0.1]) by imap.cs.msu.su (8.12.9p2/8.12.9) with SMTP id i4RFGPOg088106; Thu, 27 May 2004 19:16:26 +0400 (MSD) (envelope-from oleg@cs.msu.su) Received: from 195.208.40.102 (SquirrelMail authenticated user oleg) by mail.cs.msu.su with HTTP; Thu, 27 May 2004 19:16:26 +0400 (MSD) Message-ID: <4223.195.208.40.102.1085670986.squirrel@mail.cs.msu.su> In-Reply-To: <332DA6F9-AFEE-11D8-8870-000393CC2E90@iki.fi> References: <00a301c443ee$9348dd80$6628d0c3@mlab.cs.msu.su> <332DA6F9-AFEE-11D8-8870-000393CC2E90@iki.fi> Date: Thu, 27 May 2004 19:16:26 +0400 (MSD) Subject: =?utf-8?Q?Re:=C2=A0[Dovecot]=C2=A0Small=C2=A0change=C2=A0to=C2=A0make?= =?utf-8?Q?=C2=A0dovecot=C2=A0pop3=C2=A0uw-imap=C2=A0migration=C2=A0friend?= ly From: oleg@cs.msu.su To: =?utf-8?Q?Timo=C2_Sirainen=C2?= User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 15:23:27 -0000 X-UID: 9241 Status: O Content-Length: 1254 > On 27.5.2004, at 16:29, Oleg I. Vdovikin wrote: > >> Hi, >> >> today I've finished migration from uw-imap daemons to shiny and >> fast >> dovecot. With thanks of dovecot my mail server load average drops by >> factor >> of ten even with ancient unix mailboxes. ;-) > > Get 0.99.10.5, it fixes possible mbox corruption. Thanks, will do. > >> So, the only thing I've discovered is what POP3 uidls are >> different than >> ones used in the uw-imap. Luckily, the difference are only in the >> format >> string used in uidl response. So, I've made the following change in >> the code > > Actually I just wrote a similiar patch a few days ago .. :) > http://dovecot.org/patches/pop3-uidl-uwimap.patch it's against .10.5 > which changed a bit. Perfect. ;-) > >> Probably this small change could be applied to the 1.0, or used as >> a >> config option. > > I was thinking about making this fully configurable, ie. a config > option which would accept printf-like string. "%v.%u" "%08xv%08xu" or > something. Or maybe it's not worth it, I'd have to look at other POP3 > servers to see what different kinds of UIDs they use.. Yes, this sounds reasonable. Probably you will need to add more format specifiers to catch everything. ;-) Thanks, Oleg. From olive@pasteur.fr Thu May 27 18:33:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id ECB97C00291F; Thu, 27 May 2004 18:33:31 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id BF291C002916 for ; Thu, 27 May 2004 18:33:29 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 4B24911474 for ; Thu, 27 May 2004 17:26:31 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 12CBE11473 for ; Thu, 27 May 2004 17:26:31 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id C6B923F641; Thu, 27 May 2004 17:26:30 +0200 (CEST) Date: Thu, 27 May 2004 17:26:30 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] 0.99.10.5 release candidate Message-ID: <20040527152630.GN43374@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 15:33:32 -0000 X-UID: 9242 Status: O * Timo Sirainen (20040527 17:52): > >| May 27 16:04:38 munster imap(xxxx): Our dotlock file > >/home/xxxx/Mail/mrtg.lock was modified (1085666677 vs 1085666678), > >assuming it wasn't overridden > >`---- > > > >Could it still be a NFS-locking problem? > > Hmm.. Just one second difference. Is it always one second? Oh yes it is. I have never taken the trouble to examine the figures closer. Is it a problem or is it normal? > >Dovecot uses: mbox_locks = dotlock > > If you don't use fcntl locking (and with NFS you probably won't), you'd > have to enable mbox_read_dotlock, otherwise mailbox isn't locked for > reading at all and that could cause problems. I think I'll make Dovecot > complain about this if it's not done.. mbox_read_dotlock is set, yes. -- olive From tss@iki.fi Thu May 27 18:53:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2DA69C00291D; Thu, 27 May 2004 18:53:19 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 1EA1FC002915 for ; Thu, 27 May 2004 18:53:17 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 08CA51C1D0E0; Thu, 27 May 2004 18:46:19 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A6F921C1D0E0 for ; Thu, 27 May 2004 18:45:44 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v613) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-32--8639065" To: Dovecot list From: Timo Sirainen Date: Thu, 27 May 2004 18:45:43 +0300 X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.1 required=5.0 tests=AWL,BAYES_01,PGP_SIGNATURE_2,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 0.99.10.5 released X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 15:53:19 -0000 X-UID: 9243 Status: O Content-Length: 1604 --Apple-Mail-32--8639065 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed One more bugfix since rc2: - Maildir: synchronization might have sometimes set wrong flags to messages, or crash completely Quite rare because we were lucky before :) And list of all the changes one more time: v0.99.10.5 2003-12-27 Timo Sirainen + MySQL authentication, patch by Matthew Reimer + --with-moduledir configure option - mbox: APPEND reversed given \Draft and \Deleted flags - mbox: "LF not found" errors happened sometimes when X-IMAPbase header was updated. Possibly corrupted mbox sometimes. Thanks to Fabrice Bellet for finding this bug. - Custom flags couldn't be unset - Maildir: make sure ":2," is appended to filename when moving mails from new/ to cur/. - Maildir: synchronization might have sometimes set wrong flags to messages, or crash completely - Maildir: RENAME xx inbox.xx didn't result as uppercased ".INBOX.xx" directory which then couldn't be accessed - Don't crash with RAND_bytes() error messages anymore. This mostly happened with Fedora/RedHat. --Apple-Mail-32--8639065 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAtg0nyUhSUUBViskRAhnPAJwM6GI9X8MIk0W81Dmi/L1EfNiG6QCdEMTq Vp6m9PU81XaR7eT9KPAamxc= =PFoc -----END PGP SIGNATURE----- --Apple-Mail-32--8639065-- From tss@iki.fi Thu May 27 19:09:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3C2ADC00291D; Thu, 27 May 2004 19:09:16 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id D6FA2C002916 for ; Thu, 27 May 2004 19:09:13 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id B6EF71C1D0E1; Thu, 27 May 2004 19:02:15 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 748D01C1D0E0; Thu, 27 May 2004 19:01:40 +0300 (EEST) In-Reply-To: <20040527152630.GN43374@mafate.sis.pasteur.fr> References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <20040527152630.GN43374@mafate.sis.pasteur.fr> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-34--7684320" Message-Id: <229F5DEF-AFF7-11D8-8870-000393CC2E90@iki.fi> From: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.5 release candidate Date: Thu, 27 May 2004 19:01:37 +0300 To: Olivier Tharan Content-Transfer-Encoding: 7bit X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.3 required=5.0 tests=AWL,BAYES_01,IN_REP_TO,PGP_SIGNATURE_2,REFERENCES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 16:09:16 -0000 X-UID: 9244 Status: O Content-Length: 2427 --Apple-Mail-34--7684320 Content-Type: multipart/mixed; boundary=Apple-Mail-33--7684341 --Apple-Mail-33--7684341 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 27.5.2004, at 18:26, Olivier Tharan wrote: > * Timo Sirainen (20040527 17:52): >>> | May 27 16:04:38 munster imap(xxxx): Our dotlock file >>> /home/xxxx/Mail/mrtg.lock was modified (1085666677 vs 1085666678), >>> assuming it wasn't overridden >>> `---- >>> >>> Could it still be a NFS-locking problem? >> >> Hmm.. Just one second difference. Is it always one second? > > Oh yes it is. I have never taken the trouble to examine the > figures closer. Is it a problem or is it normal? Would attached patch help? Wasn't a real problem if it does, but then I have to keep in mind that NFS implementations can do this too to avoid real problems elsewhere.. --Apple-Mail-33--7684341 Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0640; name="dotlock.diff" Content-Disposition: attachment; filename=dotlock.diff --- src/lib/file-dotlock.c.old 2004-05-27 18:56:27.000000000 +0300 +++ src/lib/file-dotlock.c 2004-05-27 18:59:08.000000000 +0300 @@ -168,13 +168,27 @@ dotlock_r->dev = st.st_dev; dotlock_r->ino = st.st_ino; - dotlock_r->mtime = st.st_mtime; if (close(fd) < 0) { i_error("close(%s) failed: %m", lock_path); (void)unlink(lock_path); return -1; } + + /* some NFS implementations may have used cached mtime in previous + fstat() call. Check again to avoid "dotlock was modified" errors. */ + if (stat(lock_path, &st) < 0) { + i_error("stat(%s) failed: %m", lock_path); + return -1; + } + /* extra sanity check won't hurt.. */ + if (st.st_dev != dotlock_r->dev || + st.st_ino != dotlock_r->ino) { + i_error("dotlock %s was immediately recreated under us", + lock_path); + return -1; + } + dotlock_r->mtime = st.st_mtime; return 1; } --Apple-Mail-33--7684341-- --Apple-Mail-34--7684320 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAthDiyUhSUUBViskRAhk3AJ9wYUAV07u8pZnBZqm/LyIRWd/3mACfW1FH N3Qp8wuD2DhV6dGQLDy/Fns= =e3kN -----END PGP SIGNATURE----- --Apple-Mail-34--7684320-- From dluke@geeklair.net Thu May 27 19:31:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4411FC00291D; Thu, 27 May 2004 19:31:56 +0300 (EEST) Received: from dluke.geeklair.net (dluke.geeklair.net [204.42.254.11]) by talvi.dovecot.org (Postfix) with ESMTP id 8AE77C00291A for ; Thu, 27 May 2004 19:31:53 +0300 (EEST) Received: from [192.168.5.3] (c-24-11-194-3.client.comcast.net [24.11.194.3]) (authenticated bits=0) by dluke.geeklair.net (8.12.11/8.12.11) with ESMTP id i4RGOmpi026628 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Thu, 27 May 2004 12:24:52 -0400 (EDT) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-1--6296485" Message-Id: <5DD51F40-AFFA-11D8-913E-00306548377E@geeklair.net> Content-Transfer-Encoding: 7bit X-Image-Url: http://geeklair.net/~dluke/images/dluke.jpg From: "Daniel J. Luke" Subject: Re: [Dovecot] 0.99.10.5 released Date: Thu, 27 May 2004 12:24:45 -0400 To: Dovecot list X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 16:31:56 -0000 X-UID: 9245 Status: O Content-Length: 1608 --Apple-Mail-1--6296485 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On May 27, 2004, at 11:45 AM, Timo Sirainen wrote: > And list of all the changes one more time: I'm running 0.99.10.5 on a Mac OS X 10.2.8 system (Darwin 6.8) and I get these errors in the log: May 27 12:20:44 dluke imap(dluke): mmap_istream.madvise(): Invalid argument I can edit the generated config.h and undef HAVE_MADVISE, but 10.2 is supposed to have a working madvise(). I took a quick look at the dovecot code, but I don't see anything obviously incorrect. Any suggestions on what to look for? (I could provide a non-root account on the machine if someone wants access to test.) Thanks. -- Daniel J. Luke +========================================================+ | *---------------- dluke@geeklair.net ----------------* | | *-------------- http://www.geeklair.net -------------* | +========================================================+ | Opinions expressed are mine and do not necessarily | | reflect the opinions of my employer. | +========================================================+ --Apple-Mail-1--6296485 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFAthZOjUs5tAKawAoRAtFRAJwIYYJDfDpRurYol5a8Rda0R/fzcwCfecI+ vQ4Klsx7pdkgamaLLZJy9II= =hHqk -----END PGP SIGNATURE----- --Apple-Mail-1--6296485-- From discussion-lists@linnet.org Thu May 27 19:40:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9F144C002923; Thu, 27 May 2004 19:40:27 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id 6F045C002916 for ; Thu, 27 May 2004 19:40:25 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 90A8F138E44; Thu, 27 May 2004 12:33:25 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.226.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id BD6EB138E37; Thu, 27 May 2004 12:33:24 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BTNop-0000Fv-Hj; Thu, 27 May 2004 17:33:23 +0100 Date: Thu, 27 May 2004 17:33:23 +0100 From: Brian Candler To: Timo Sirainen Subject: Re: [Dovecot] Small change to make dovecot pop3 uw-imap migration friendly Message-ID: <20040527163323.GB950@uk.tiscali.com> References: <00a301c443ee$9348dd80$6628d0c3@mlab.cs.msu.su> <332DA6F9-AFEE-11D8-8870-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <332DA6F9-AFEE-11D8-8870-000393CC2E90@iki.fi> User-Agent: Mutt/1.4.1i Cc: "Oleg I. Vdovikin" , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 16:40:27 -0000 X-UID: 9246 Status: O Content-Length: 1625 On Thu, May 27, 2004 at 05:57:40PM +0300, Timo Sirainen wrote: > > Probably this small change could be applied to the 1.0, or used as > >a > >config option. > > I was thinking about making this fully configurable, ie. a config > option which would accept printf-like string. "%v.%u" "%08xv%08xu" or > something. Or maybe it's not worth it, I'd have to look at other POP3 > servers to see what different kinds of UIDs they use.. Suggestion: if you have any way to maintain per-message state information, keep the UID in there. You can prime it using an algorithm of your choice. Ideally you'd allow its value to be taken from a header (e.g. X-POP3-UIDL) if present. The reason for this: when migrating a mailbox from any other POP3 server, you can take whatever UIDL the old POP3 server gives and attach it to the message in Dovecot. courier-imap *almost* allows me to do this. It keeps a state file (courierpop3dsizelist), containing one line per message - it has the exact message size as per RFC1939, and a sequence number. The UIDL entry is then sequenced from UID${uidvalidity}.${sequence} What I'd prefer is that instead of a sequence number, the exact UIDL string is stored there. Then I could migrate from *any* POP3 server and preserve UIDLs. (I'm keeping an eye on Dovecot... courier-imap has served me extremely well in production environments and under heavy load, but from what I've seen on this list, Dovecot is very good at producing diagnostic error messages when things go wrong, which courier is dreadful at... I can't deploy Dovecot until it supports Maildir++ quotas though) Regards, Brian. From shiva@sewingwitch.com Thu May 27 20:13:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D06D4C002916; Thu, 27 May 2004 20:13:47 +0300 (EEST) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 01F5FC002829 for ; Thu, 27 May 2004 20:13:44 +0300 (EEST) Received: from home.sewingwitch.com (c-24-7-84-78.client.comcast.net [24.7.84.78]) (authenticated bits=0) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i4RH6hYI000795 for ; Thu, 27 May 2004 13:06:44 -0400 Received: from [10.0.0.4] (bigiron.lsi.lan [10.0.0.4]) (authenticated bits=0) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i4RH6fZn016990 for ; Thu, 27 May 2004 10:06:42 -0700 Date: Thu, 27 May 2004 10:10:12 -0700 From: Kenneth Porter To: Dovecot list Subject: Re: [Dovecot] 0.99.10.5 released Message-ID: <02C517B90ED9261AAAF963DD@[10.0.0.4]> In-Reply-To: References: X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.40 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 17:13:48 -0000 X-UID: 9247 Status: O Content-Length: 2193 Are you pushing these downstream to the Fedora group? And are you on the package CC list for the Fedora Bugzilla? This hit the SpamAssassin Developer list yesterday: ------------ Forwarded Message ------------ Date: Thursday, May 20, 2004 5:06 PM -1000 From: Warren Togami To: spamassassin-dev@incubator.apache.org Subject: SA Devel for Fedora Core Any spamassassin developers interested in being automatically added to all new spamassassin bugs that are reported for Fedora Core at bugzilla.redhat.com? Developers from other upstream projects like gaim have become involved with FC in this way. It has proven to be a win for both the upstream and downstream projects, as the developers often KNOW the majority of problems instantly, alert us to existing patches for the package, or even simply close stupid user reports. Otherwise they have the option of removing themselves from the CC if they simply are not interested. [1] Any volunteers, developers or even power-users, can help as liasons to the Fedora Project. Your software is important to our distribution, so fostering communication with upstream development and making sure patches go both ways is important. https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=123710 This is a problem tracker for spamassassin 3.0's snapshots in FC rawhide that should be solved before the release of FC3. FC3 development will expose spamassassin 3.0 snapshots and later pre-releases to thousands of additional testers, with the goal of improving the quality of both SA 3.0 and FC3. Warren Togami wtogami@redhat.com [1] Three upstream gaim developers are automatically added to all FC gaim bugs. As the result of the gaim partnership, several bugs were quickly killed in upstream CVS, and the FC2 package has been polished, exposing CVS fixes to wide user testing before the next upstream release. (This has even been instrumental in preventing one regression from reaching gaim-0.78, after Gentoo stole a Fedora CVS backport and they noticed an extremely subtle breakage.) As the result of this successful partnership, there are current ZERO open FC gaim bugs. ---------- End Forwarded Message ---------- From jaldhar@debian.org Thu May 27 21:17:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2DFBFC002916; Thu, 27 May 2004 21:17:18 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 441D0C002829 for ; Thu, 27 May 2004 21:17:15 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id B8A2682F5; Thu, 27 May 2004 14:10:14 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 24197-02; Thu, 27 May 2004 14:10:13 -0400 (EDT) Received: from [149.123.132.64] (unknown [149.123.132.64]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id DAF8A8074; Thu, 27 May 2004 14:10:12 -0400 (EDT) Date: Thu, 27 May 2004 14:09:23 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.5 released In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 18:17:18 -0000 X-UID: 9248 Status: O Content-Length: 1684 On Thu, 27 May 2004, Timo Sirainen wrote: > v0.99.10.5 2003-12-27 Timo Sirainen > > + MySQL authentication, patch by Matthew Reimer > + --with-moduledir configure option > - mbox: APPEND reversed given \Draft and \Deleted flags > - mbox: "LF not found" errors happened sometimes when X-IMAPbase > header was updated. Possibly corrupted mbox sometimes. > Thanks to Fabrice Bellet for finding this bug. > - Custom flags couldn't be unset > - Maildir: make sure ":2," is appended to filename when moving mails > from new/ to cur/. > - Maildir: synchronization might have sometimes set wrong flags to > messages, or crash completely > - Maildir: RENAME xx inbox.xx didn't result as uppercased ".INBOX.xx" > directory which then couldn't be accessed > - Don't crash with RAND_bytes() error messages anymore. This mostly > happened with Fedora/RedHat. > I just uploaded Debian packages to unstable. I've enabled mysql support and openssl (Timo: I still owe you the gnutls10 patch but I've been insanely busy recently.) I intend to provide a woody backport but as I'm going to need to use some other backported packages, I shall probably upload it to http://www.backports.org/ rather than http://src.braincells.com/ I'll keep this list and the wiki updated. Timo: does this release fix any of the outstanding Debian bugs? Especially #225408? And If any Debian dovecot users would like to go through the bug list and see if there are any that can be closed, I would appreciate it. The URL is http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=dovecot -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From tss@iki.fi Thu May 27 21:17:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 34AC2C00292B; Thu, 27 May 2004 21:17:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B444DC002932 for ; Thu, 27 May 2004 21:17:30 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 62D0C1C1D0E1; Thu, 27 May 2004 21:10:32 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 53CA61C1D0E0; Thu, 27 May 2004 21:09:58 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10.5 released From: Timo Sirainen To: Kenneth Porter In-Reply-To: <02C517B90ED9261AAAF963DD@[10.0.0.4]> References: <02C517B90ED9261AAAF963DD@[10.0.0.4]> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-zqXDuz/1OuA8rsN+CXQS" Message-Id: <1085681397.20006.76.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 27 May 2004 21:09:57 +0300 X-Spam-Status: No, hits=-8.9 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 18:17:55 -0000 X-UID: 9249 Status: O --=-zqXDuz/1OuA8rsN+CXQS Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-05-27 at 20:10, Kenneth Porter wrote: > Are you pushing these downstream to the Fedora group? And are you on the=20 > package CC list for the Fedora Bugzilla? I got a similiar mail some weeks ago and was added to Cc list. --=-zqXDuz/1OuA8rsN+CXQS Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAti71yUhSUUBViskRAuZXAKCm4EzmBdo1CG+9ckstwnPdb+DzQACfcc8X +f2wLTWxEb/L6hcGWrKyvwc= =uoNU -----END PGP SIGNATURE----- --=-zqXDuz/1OuA8rsN+CXQS-- From tss@iki.fi Thu May 27 21:32:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 17E19C002932; Thu, 27 May 2004 21:32:37 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 39C6BC002926 for ; Thu, 27 May 2004 21:32:35 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id DC4411C1D0E1; Thu, 27 May 2004 21:25:36 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C839E1C1D0E0; Thu, 27 May 2004 21:25:02 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10.5 released From: Timo Sirainen To: "Jaldhar H. Vyas" In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-isDWG8LRYiAVCM89afQy" Message-Id: <1085682302.20006.83.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 27 May 2004 21:25:02 +0300 X-Spam-Status: No, hits=-9.0 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 18:32:37 -0000 X-UID: 9250 Status: O --=-isDWG8LRYiAVCM89afQy Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-05-27 at 21:09, Jaldhar H. Vyas wrote: > Timo: does this release fix any of the outstanding Debian bugs? > Especially #225408? #225048 I think? I have very high hopes that it's fixed now. > And If any Debian dovecot users would like to go through the bug list and > see if there are any that can be closed, I would appreciate it. The URL > is http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=3Ddovecot #221972 should be fixed too. --=-isDWG8LRYiAVCM89afQy Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAtjJ+yUhSUUBViskRApUfAJ0cBIUYzETx8JVkEnzWNbti2rlPXQCgoUPi DaR5Oz5P26aJY+Qde8hdVtA= =Oz7k -----END PGP SIGNATURE----- --=-isDWG8LRYiAVCM89afQy-- From jaldhar@debian.org Thu May 27 21:40:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5C799C002935; Thu, 27 May 2004 21:40:17 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id EE1B5C002932 for ; Thu, 27 May 2004 21:40:14 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 4875C80C5; Thu, 27 May 2004 14:33:17 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 24427-03; Thu, 27 May 2004 14:33:16 -0400 (EDT) Received: from [149.123.132.64] (unknown [149.123.132.64]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 8DDD28074; Thu, 27 May 2004 14:33:16 -0400 (EDT) Date: Thu, 27 May 2004 14:32:27 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.5 released In-Reply-To: <1085682302.20006.83.camel@hurina> Message-ID: References: <1085682302.20006.83.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: 221972-done@bugs.debian.org, 225048-done@bugs.debian.org, Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 18:40:17 -0000 X-UID: 9251 Status: O On Thu, 27 May 2004, Timo Sirainen wrote: > On Thu, 2004-05-27 at 21:09, Jaldhar H. Vyas wrote: > > Timo: does this release fix any of the outstanding Debian bugs? > > Especially #225408? > > #225048 I think? Aargh I keep doing that today. > I have very high hopes that it's fixed now. > I'll close it for now. Someone will be sure to squawk loudly if it is still happening. > > And If any Debian dovecot users would like to go through the bug list and > > see if there are any that can be closed, I would appreciate it. The URL > > is http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=dovecot > > #221972 should be fixed too. > Excellent. Thankyou very much for this wonderful program. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From maikel@ladot.com Thu May 27 22:22:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 20C6AC002932; Thu, 27 May 2004 22:22:51 +0300 (EEST) Received: from amsfep16-int.chello.nl (amsfep16-int.chello.nl [213.46.243.26]) by talvi.dovecot.org (Postfix) with ESMTP id C548CC002829 for ; Thu, 27 May 2004 22:22:48 +0300 (EEST) Received: from myst.dohd.org ([62.163.181.64]) by amsfep16-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040527191549.YZCN160.amsfep16-int.chello.nl@myst.dohd.org> for ; Thu, 27 May 2004 21:15:49 +0200 Received: from [10.0.3.6] (mactop-wi.myst.dohd.org [10.0.3.6]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i4RJG1WW073500 for ; Thu, 27 May 2004 21:16:07 +0200 (CEST) (envelope-from maikel@ladot.com) Mime-Version: 1.0 (Apple Message framework v618) In-Reply-To: References: Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <3A75CCF6-B012-11D8-8BED-000A95B3C1CA@ladot.com> Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] 0.99.10.5 released Date: Thu, 27 May 2004 21:15:34 +0200 To: Dovecot list X-Mailer: Apple Mail (2.618) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 19:22:51 -0000 X-UID: 9252 Status: O Hi Timo and list, Does this release work safely over NFS with maildir? I saw an email about rc2 for nfs + mbox, which seemed to work (apart from some small dotlock warnings)? Will it work with indexes on disk too? Thanks, Kind regards, Maikel Verheijen From tss@iki.fi Thu May 27 22:54:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3E135C000DCB; Thu, 27 May 2004 22:54:29 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 06CB0C0007B4 for ; Thu, 27 May 2004 22:54:27 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id BE1181C185E1; Thu, 27 May 2004 22:47:27 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DAF241C1D0E1; Thu, 27 May 2004 22:46:53 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10.5 released From: Timo Sirainen To: Maikel Verheijen In-Reply-To: <3A75CCF6-B012-11D8-8BED-000A95B3C1CA@ladot.com> References: <3A75CCF6-B012-11D8-8BED-000A95B3C1CA@ladot.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-o3rat3ZJWsXAn2uFOVpp" Message-Id: <1085687213.20006.90.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 27 May 2004 22:46:53 +0300 X-Spam-Status: No, hits=-9.0 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 19:54:29 -0000 X-UID: 9253 Status: O Content-Length: 1073 --=-o3rat3ZJWsXAn2uFOVpp Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-05-27 at 22:15, Maikel Verheijen wrote: > Does this release work safely over NFS with maildir? I saw an email=20 > about rc2 for nfs + mbox, which seemed to work (apart from some small=20 > dotlock warnings)? >=20 > Will it work with indexes on disk too? 0.99.10.5 is only 0.99.10.4 with a few important fixes. It's no more NFS safe then .4. Hmm. Looks like with in-memory indexes with mbox doesn't support custom flags at all. That could be fixed without too much trouble since mbox stores the flags in the mbox file itself.. Subscription file handling is also still using fcntl locking in .5. --=-o3rat3ZJWsXAn2uFOVpp Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAtkWtyUhSUUBViskRArAIAJ9d5CDThpCcnDNT1NJeextMkgaZWQCgmcJ8 u2VrHPTknhxyya6wG/2TluM= =qOr0 -----END PGP SIGNATURE----- --=-o3rat3ZJWsXAn2uFOVpp-- From chibi@gol.com Fri May 28 02:06:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8E25EC000DCB; Fri, 28 May 2004 02:06:27 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id A2C3BC0007B4 for ; Fri, 28 May 2004 02:06:22 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BTTqI-0005WG-00 for ; Fri, 28 May 2004 07:59:18 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Subject: Re: [Dovecot] 0.99.10.5 released In-reply-to: <1085682302.20006.83.camel@hurina> References: <1085682302.20006.83.camel@hurina> Comments: In-reply-to Timo Sirainen message dated "Thu, 27 May 2004 21:25:02 +0300." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 28 May 2004 07:59:18 +0900 From: Christian Balzer Message-Id: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 23:06:27 -0000 X-UID: 9254 Status: O Hello, thanks for this latest (and last ;) 0.99 version. Just to make absolutely sure. Timo, this is a drop in replacement in relation to 0.99.10.4, read no UID generation changes, so users will never know the difference? Jaldhar, any realistic estimate when this will filter down into sarge? Regards and thanks, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From tss@iki.fi Fri May 28 02:29:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 91FD5C000DCB; Fri, 28 May 2004 02:29:43 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B3C6FC0007B4 for ; Fri, 28 May 2004 02:29:40 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id DD7A01C185E1; Fri, 28 May 2004 02:22:41 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B23B11C1D0E1; Fri, 28 May 2004 02:22:07 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10.5 released From: Timo Sirainen To: Christian Balzer In-Reply-To: References: <1085682302.20006.83.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-n2y/BIA47ha0kKe1/BaP" Message-Id: <1085700127.20006.99.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 28 May 2004 02:22:07 +0300 X-Spam-Status: No, hits=-9.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 23:29:43 -0000 X-UID: 9255 Status: O --=-n2y/BIA47ha0kKe1/BaP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-28 at 01:59, Christian Balzer wrote: > thanks for this latest (and last ;) 0.99 version.=20 > Just to make absolutely sure. Timo, this is a drop in replacement=20 > in relation to 0.99.10.4, read no UID generation changes, so users will=20 > never know the difference?=20 Right. I doubt I'll ever change the UID generation defaults. --=-n2y/BIA47ha0kKe1/BaP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAtngfyUhSUUBViskRAtIYAKCI9TDh4fL+6XrB17FsoGq5ouAhrACaA5yX NHtbFgOl/Slo4c3A2H4Cfk0= =UaRt -----END PGP SIGNATURE----- --=-n2y/BIA47ha0kKe1/BaP-- From james@powweb.com Fri May 28 02:40:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AD59FC000DCB; Fri, 28 May 2004 02:40:07 +0300 (EEST) Received: from nexus.powweb.com (unknown [66.152.96.130]) by talvi.dovecot.org (Postfix) with ESMTP id 8EB6BC0007B4 for ; Fri, 28 May 2004 02:40:03 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id 500ABB8E48 for ; Thu, 27 May 2004 16:33:00 -0700 (PDT) Message-ID: <40B67AAC.5020904@powweb.com> Date: Thu, 27 May 2004 16:33:00 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: multipart/mixed; boundary="------------020702030605020906090603" Subject: [Dovecot] dovecot API / Virtual Folders? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2004 23:40:07 -0000 X-UID: 9256 Status: O Content-Length: 1571 This is a multi-part message in MIME format. --------------020702030605020906090603 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit I was wondering if anyone has done something like this, or knows of any reason it would not work. Would it be possible to use dovecot's API to create virtual folders where when messages are placed in them some other application can be executed on them? With programs like DSPAM and SpamAssassin, and with users who do not have shell access to the machines, it would be nice if there was a way they could do something like this to use dspam/sa-learn, that way they could use it with any mail application. I don't like the idea of using cron to do this. -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------020702030605020906090603 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------020702030605020906090603-- From joshua@shallow.net Fri May 28 03:14:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 625F6C000DD4; Fri, 28 May 2004 03:14:53 +0300 (EEST) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id 32796C000DCD for ; Fri, 28 May 2004 03:14:49 +0300 (EEST) Received: by yello.shallow.net (Postfix, from userid 1001) id 9E4432A19; Fri, 28 May 2004 10:07:48 +1000 (EST) Date: Fri, 28 May 2004 10:07:48 +1000 From: Joshua Goodall To: geocar@internetconnection.net Subject: Re: [Dovecot] IMAP views - and things to make Outlook Express not suck so much Message-ID: <20040528000748.GG1698@roughtrade.net> References: <1085597033.1966.34.camel@midget.intranet> <1085600076.20006.46.camel@hurina> <20040526214227.GB1698@roughtrade.net> <1085614289.1966.103.camel@midget.intranet> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1085614289.1966.103.camel@midget.intranet> User-Agent: Mutt/1.5.4i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 00:14:53 -0000 X-UID: 9257 Status: O Content-Length: 1123 On Wed, May 26, 2004 at 07:31:30PM -0400, Geo Carncross wrote: > > Just as an implementation point; it would be good if the specification > > language was Sieve. > > This could require the IMAP server fetch the entire contents of a > message before processing something as simple as a FETCH FLAGS command. That would be a naive implementation. > Also, much of sieve would be otherwise useless (fileinto, keep, etc). The rationale is this: if a Sieve-based delivery agent exists, you'll be using some kind of frontend tool to write configuration filters. It is a big usability win if the delivery filter language, and thus the interface, has the same logic as the virtual folder specification language and interface. > It'd also require sieve be available to dovecot, which it isn't (yet). Indeed. If there was a dovecot-API-based delivery agent, I hope it would speak Sieve. Such a thing lurks at the back of my mind in the stack marked "interesting projects". J -- Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 From jaldhar@debian.org Fri May 28 04:58:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 09AE2C000DCC; Fri, 28 May 2004 04:58:02 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 53FF1C0007B4 for ; Fri, 28 May 2004 04:57:59 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 78DDD80C5; Thu, 27 May 2004 21:51:01 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28967-04; Thu, 27 May 2004 21:50:58 -0400 (EDT) Received: from [192.168.1.115] (pcp09354467pcs.jersyc01.nj.comcast.net [69.141.24.176]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 7AA6A8099; Thu, 27 May 2004 21:50:58 -0400 (EDT) Date: Thu, 27 May 2004 21:49:58 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Christian Balzer Subject: Re: [Dovecot] 0.99.10.5 released In-Reply-To: Message-ID: References: <1085682302.20006.83.camel@hurina> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 01:58:02 -0000 X-UID: 9258 Status: O On Fri, 28 May 2004, Christian Balzer wrote: > Jaldhar, any realistic estimate when this will filter down into sarge? > Barring any show-stopping bugs, 10 days. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From maikel@ladot.com Fri May 28 08:52:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 17F31C000DCC; Fri, 28 May 2004 08:52:52 +0300 (EEST) Received: from amsfep14-int.chello.nl (amsfep14-int.chello.nl [213.46.243.22]) by talvi.dovecot.org (Postfix) with ESMTP id 3E318C0007B4 for ; Fri, 28 May 2004 08:52:48 +0300 (EEST) Received: from myst.dohd.org ([62.163.181.64]) by amsfep14-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040528054548.XYXD2698.amsfep14-int.chello.nl@myst.dohd.org>; Fri, 28 May 2004 07:45:48 +0200 Received: from [10.0.3.6] (mactop-wi.myst.dohd.org [10.0.3.6]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i4S5kDWW075803; Fri, 28 May 2004 07:46:13 +0200 (CEST) (envelope-from maikel@ladot.com) In-Reply-To: <1085687213.20006.90.camel@hurina> References: <1085687213.20006.90.camel@hurina> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <41E3ADD4-B06A-11D8-8BED-000A95B3C1CA@ladot.com> Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] 0.99.10.5 released Date: Fri, 28 May 2004 07:45:42 +0200 To: Timo Sirainen X-Mailer: Apple Mail (2.618) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 05:52:53 -0000 X-UID: 9259 Status: O Hi Timo and list, On May 27, 2004, at 9:46 PM, Timo Sirainen wrote: > On Thu, 2004-05-27 at 22:15, Maikel Verheijen wrote: >> Does this release work safely over NFS with maildir? I saw an email >> about rc2 for nfs + mbox, which seemed to work (apart from some small >> dotlock warnings)? >> >> Will it work with indexes on disk too? > > 0.99.10.5 is only 0.99.10.4 with a few important fixes. It's no more > NFS > safe then .4. Ok. We will have to wait for 1.0 then :) Kind regards, Maikel Verheijen From gmid-dovecot@m.gmane.org Fri May 28 13:52:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 75472C000DCD; Fri, 28 May 2004 13:52:29 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 80FF0C0007B4 for ; Fri, 28 May 2004 13:52:27 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BTerf-0003fu-00 for ; Fri, 28 May 2004 12:45:27 +0200 Received: from pd951fe6d.dip.t-dialin.net ([217.81.254.109]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 28 May 2004 12:45:26 +0200 Received: from matthias.andree by pd951fe6d.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 28 May 2004 12:45:26 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Fri, 28 May 2004 09:21:25 +0200 Lines: 11 Message-ID: References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd951fe6d.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:wD2H9UQp428rfXujNnhDwizUAiI= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: 0.99.10.5 release candidate X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 10:52:29 -0000 X-UID: 9260 Status: O Timo Sirainen writes: > If you don't use fcntl locking (and with NFS you probably won't), you'd What does this mean? Of course, we'll use fcntl locking with NFS as well. At least on Linux and Solaris, this works. -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From gmid-dovecot@m.gmane.org Fri May 28 13:59:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1AB2AC000DD9; Fri, 28 May 2004 13:59:17 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 15623C000DCD for ; Fri, 28 May 2004 13:59:15 +0300 (EEST) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BTeyE-0003lo-00 for ; Fri, 28 May 2004 12:52:14 +0200 Received: from pd951fe6d.dip.t-dialin.net ([217.81.254.109]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 28 May 2004 12:52:14 +0200 Received: from matthias.andree by pd951fe6d.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 28 May 2004 12:52:14 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Fri, 28 May 2004 09:24:24 +0200 Lines: 16 Message-ID: References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <20040527152630.GN43374@mafate.sis.pasteur.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd951fe6d.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:pOEmKR4atHFZ2tpW6SUKjQxgZ5I= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: 0.99.10.5 release candidate X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 10:59:17 -0000 X-UID: 9261 Status: O Olivier Tharan writes: > Oh yes it is. I have never taken the trouble to examine the > figures closer. Is it a problem or is it normal? I'm running a LAN with two and a half dozen machines, and the time is dead on, within fractions of a second - I'm running NTP, one machine in broadcast mode (and with "upstream" servers, i. e. servers with lower stratum, peut-être que l'Institut Pasteur has one of those stratum 2 servers for internal use?), the others in broadcastclient mode. Little traffic, everything in synch. -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From gmid-dovecot@m.gmane.org Fri May 28 14:09:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 94154C000DDE; Fri, 28 May 2004 14:09:39 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 9B549C000DCD for ; Fri, 28 May 2004 14:09:37 +0300 (EEST) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BTf8H-00048y-00 for ; Fri, 28 May 2004 13:02:37 +0200 Received: from pd951fe6d.dip.t-dialin.net ([217.81.254.109]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 28 May 2004 13:02:37 +0200 Received: from matthias.andree by pd951fe6d.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 28 May 2004 13:02:37 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Fri, 28 May 2004 09:43:59 +0200 Lines: 43 Message-ID: References: <00a301c443ee$9348dd80$6628d0c3@mlab.cs.msu.su> <332DA6F9-AFEE-11D8-8870-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd951fe6d.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:VMMh12kr/MTZ6NlPWpxjBKaSm0Y= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: Small change to make dovecot pop3 uw-imap migration friendly X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 11:09:39 -0000 X-UID: 9262 Status: O Content-Length: 1459 Timo Sirainen writes: > On 27.5.2004, at 16:29, Oleg I. Vdovikin wrote: > >> So, the only thing I've discovered is what POP3 uidls are >> different than ones used in the uw-imap. Luckily, the difference are >> only in the format string used in uidl response. So, I've made the >> following change in the code > > Actually I just wrote a similiar patch a few days ago .. :) > http://dovecot.org/patches/pop3-uidl-uwimap.patch it's against .10.5 > which changed a bit. [...] > I was thinking about making this fully configurable, ie. a config option > which would accept printf-like string. "%v.%u" "%08xv%08xu" or > something. Or maybe it's not worth it, I'd have to look at other POP3 > servers to see what different kinds of UIDs they use.. Question: will this apply to all UIDs or just to those for new mail? I can't tell from the code fragment. There are two requirements: 1. major: a UID that any client may have seen _MUST NOT_ change. This means that a formatting string MUST ONLY have an impact on newly arriving mail. 2. minor: those who migrate from UWImap would like to use UWImap UIDs for existing mail. This could be achieved by a little program that runs once per mailbox after the initial switch. And note that the client must not care about the UIDL format as long as it's legal, so anything beyond "importing" the UWIMAP UIDL is bogus. -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From oleg@cs.msu.su Fri May 28 15:02:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B2577C000DCD; Fri, 28 May 2004 15:02:07 +0300 (EEST) Received: from jaffar.mlab.cs.msu.su (jaffar.cs.msu.su [158.250.11.254]) by talvi.dovecot.org (Postfix) with ESMTP id 166EBC0007B4 for ; Fri, 28 May 2004 15:02:05 +0300 (EEST) Received: from illusion (illusion.jscc.ru [195.208.40.102]) by jaffar.mlab.cs.msu.su (8.12.8/8.12.8) with SMTP id i4SBt3Im011814 for ; Fri, 28 May 2004 15:55:04 +0400 Message-ID: <005f01c444aa$9cfbc010$6628d0c3@mlab.cs.msu.su> From: "Oleg I. Vdovikin" To: References: <00a301c443ee$9348dd80$6628d0c3@mlab.cs.msu.su><332DA6F9-AFEE-11D8-8870-000393CC2E90@iki.fi> Subject: Re: [Dovecot] Re: Small change to make dovecot pop3 uw-imap migrationfriendly Date: Fri, 28 May 2004 15:55:03 +0400 MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 12:02:07 -0000 X-UID: 9263 Status: O Content-Length: 2484 ----- Original Message ----- From: "Matthias Andree" To: Sent: Friday, May 28, 2004 11:43 AM Subject: [Dovecot] Re: Small change to make dovecot pop3 uw-imap migrationfriendly > Timo Sirainen writes: > > > On 27.5.2004, at 16:29, Oleg I. Vdovikin wrote: > > > >> So, the only thing I've discovered is what POP3 uidls are > >> different than ones used in the uw-imap. Luckily, the difference are > >> only in the format string used in uidl response. So, I've made the > >> following change in the code > > > > Actually I just wrote a similiar patch a few days ago .. :) > > http://dovecot.org/patches/pop3-uidl-uwimap.patch it's against .10.5 > > which changed a bit. > > [...] > > > I was thinking about making this fully configurable, ie. a config option > > which would accept printf-like string. "%v.%u" "%08xv%08xu" or > > something. Or maybe it's not worth it, I'd have to look at other POP3 > > servers to see what different kinds of UIDs they use.. > > Question: will this apply to all UIDs or just to those for new mail? I > can't tell from the code fragment. In may particular environment this applied to all messages. Taking in account that old messages was served by uw-pop3 they will not refeteched by POP3 clients after the upgrade to dovecot. > There are two requirements: > > 1. major: a UID that any client may have seen _MUST NOT_ change. > Right. > This means that a formatting string MUST ONLY have an impact on newly > arriving mail. No, there is no need to store the exact formatting string with each message. > > 2. minor: those who migrate from UWImap would like to use UWImap UIDs > for existing mail. > > This could be achieved by a little program that runs once per mailbox > after the initial switch. There is no need for this. The only thing is needed - is just an ability to specify the format string in the config file and use this forever. So, for existing dovecot configuration (default) it will be like pop3uidl = "%u.%u" while for uw-imap migrated environment it should be changed to pop3uidl = "%08x%08x" And everyone will be happy. No UIDL value changes. > And note that the client must not care about the UIDL format as long as > it's legal, so anything beyond "importing" the UWIMAP UIDL is bogus. There is no dependency on the UIDL format, but the dependecy on the content for the messages received with old pop3 daemon. Regards, Oleg. From discussion-lists@linnet.org Fri May 28 15:14:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 289FDC000DDE; Fri, 28 May 2004 15:14:25 +0300 (EEST) Received: from boggle.pobox.com (boggle.pobox.com [208.58.1.193]) by talvi.dovecot.org (Postfix) with ESMTP id E3ABBC000DDD for ; Fri, 28 May 2004 15:14:22 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by boggle.pobox.com (Postfix) with ESMTP id BFD909D62F; Fri, 28 May 2004 08:07:19 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by boggle.pobox.com (Postfix) with ESMTP id 219149D662; Fri, 28 May 2004 08:06:43 -0400 (EDT) Received: from localhost.localdomain (localhost [127.0.0.1]) by jester.pobox.com (Postfix) with ESMTP id B510478B; Fri, 28 May 2004 08:06:32 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.226.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id 76B0877F; Fri, 28 May 2004 08:06:31 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BTg87-0002WQ-2m; Fri, 28 May 2004 13:06:31 +0100 Date: Fri, 28 May 2004 13:06:31 +0100 From: Brian Candler To: "Oleg I. Vdovikin" Subject: Re: [Dovecot] Re: Small change to make dovecot pop3 uw-imap migrationfriendly Message-ID: <20040528120631.GA9680@uk.tiscali.com> References: <005f01c444aa$9cfbc010$6628d0c3@mlab.cs.msu.su> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <005f01c444aa$9cfbc010$6628d0c3@mlab.cs.msu.su> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 12:14:25 -0000 X-UID: 9264 Status: O On Fri, May 28, 2004 at 03:55:03PM +0400, Oleg I. Vdovikin wrote: > > 1. major: a UID that any client may have seen _MUST NOT_ change. > > > Right. > > > This means that a formatting string MUST ONLY have an impact on newly > > arriving mail. > No, there is no need to store the exact formatting string with each > message. He did not say that the formatting string is stored with each message; but there is a requirement that the *UID string* is stored with each message. i.e. changing the format string does not change the UIDs of existing messages; or put another way, the format string is only applied the first time that a new message is seen. Given that, you could apply *any* UID to messages when you import them, and the format string will only affect subsequently-delivered messages. From oleg@cs.msu.su Fri May 28 15:39:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D6AF0C000DDE; Fri, 28 May 2004 15:39:25 +0300 (EEST) Received: from jaffar.mlab.cs.msu.su (jaffar.cs.msu.su [158.250.11.254]) by talvi.dovecot.org (Postfix) with ESMTP id AD228C0007B4 for ; Fri, 28 May 2004 15:39:23 +0300 (EEST) Received: from illusion (illusion.jscc.ru [195.208.40.102]) by jaffar.mlab.cs.msu.su (8.12.8/8.12.8) with SMTP id i4SCWNIm012184 for ; Fri, 28 May 2004 16:32:23 +0400 Message-ID: <007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> From: "Oleg I. Vdovikin" To: References: <005f01c444aa$9cfbc010$6628d0c3@mlab.cs.msu.su> <20040528120631.GA9680@uk.tiscali.com> Subject: Re: [Dovecot] Re: Small change to make dovecot pop3 uw-imapmigrationfriendly Date: Fri, 28 May 2004 16:32:22 +0400 MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 12:39:26 -0000 X-UID: 9265 Status: O Content-Length: 1738 ----- Original Message ----- From: "Brian Candler" To: "Oleg I. Vdovikin" Cc: Sent: Friday, May 28, 2004 4:06 PM Subject: Re: [Dovecot] Re: Small change to make dovecot pop3 uw-imapmigrationfriendly > On Fri, May 28, 2004 at 03:55:03PM +0400, Oleg I. Vdovikin wrote: > > > 1. major: a UID that any client may have seen _MUST NOT_ change. > > > > > Right. > > > > > This means that a formatting string MUST ONLY have an impact on newly > > > arriving mail. > > No, there is no need to store the exact formatting string with each > > message. > > He did not say that the formatting string is stored with each message; but > there is a requirement that the *UID string* is stored with each message. I mean UIDL string, not formatting string, sorry. But this does not matter. > i.e. changing the format string does not change the UIDs of existing > messages; or put another way, the format string is only applied the first > time that a new message is seen. IMAP UID is just a number. And it's appearence is fixed. It's not an UIDL response. Right? > Given that, you could apply *any* UID to messages when you import them, and > the format string will only affect subsequently-delivered messages. Just to clarify: there is no importing at all. Dovecot stores UID and UIDVALIDITY internally and basically it's compatible with uw-imap. But the UIDL command answers via POP3 is different. So, I need to be able specify formatting string for the UIDL answer. This does not requires any changes for old messages and for the new ones. I'm just want sit fixed at %08x%08x format forever and do not want to switch to %u.%u used by dovecot... Regards, Oleg. From martynas@inet.lt Fri May 28 16:01:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D3516C000DDE; Fri, 28 May 2004 16:01:53 +0300 (EEST) Received: from marsas.lmb.lt (marsas.lmb.lt [193.219.88.69]) by talvi.dovecot.org (Postfix) with ESMTP id BDF2BC0007B4 for ; Fri, 28 May 2004 16:01:51 +0300 (EEST) Received: from mail.inet.lt (saturnas.lmb.lt [193.219.88.66]) by marsas.lmb.lt (Postfix) with SMTP id 639CF30126 for ; Fri, 28 May 2004 15:08:41 +0300 (EEST) From: "martynas@inet.lt" To: dovecot@dovecot.org Date: Fri, 28 May 2004 15:54:30 +0200 Message-ID: <1085752470268.martynas@inet.lt> Content-Type: text/plain; charset=iso-8859-1 X-Mailer: Null Webmail / 0.8.4 X-SenderIP: 193.219.88.88 Subject: [Dovecot] help: Unknown password scheme SHA X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 13:01:54 -0000 X-UID: 9266 Status: O Hello, I would like to change my courier to dovecot. When I try to setup ldap auth, I get error: dovecot-auth: ldap(martynas): Unknown password scheme SHA So, how enable SHA scheme on dovecot? regards, Martynas From discussion-lists@linnet.org Fri May 28 16:23:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 66B8EC000DE4; Fri, 28 May 2004 16:23:59 +0300 (EEST) Received: from lime.pobox.com (lime.pobox.com [208.58.1.198]) by talvi.dovecot.org (Postfix) with ESMTP id 0D20DC000DDE for ; Fri, 28 May 2004 16:23:57 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by lime.pobox.com (Postfix) with ESMTP id 54A6D9E734; Fri, 28 May 2004 09:16:53 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by lime.pobox.com (Postfix) with ESMTP id 19B2A9E70B; Fri, 28 May 2004 09:16:27 -0400 (EDT) Received: from localhost.localdomain (localhost [127.0.0.1]) by jester.pobox.com (Postfix) with ESMTP id 8A8BD7B4; Fri, 28 May 2004 09:14:55 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.226.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id 725097B2; Fri, 28 May 2004 09:14:54 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BThCI-0002Ze-OT; Fri, 28 May 2004 14:14:54 +0100 Date: Fri, 28 May 2004 14:14:54 +0100 From: Brian Candler To: "Oleg I. Vdovikin" Subject: Re: [Dovecot] Re: Small change to make dovecot pop3 uw-imapmigrationfriendly Message-ID: <20040528131454.GA9870@uk.tiscali.com> References: <20040528120631.GA9680@uk.tiscali.com> <007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 13:23:59 -0000 X-UID: 9267 Status: O Content-Length: 1800 On Fri, May 28, 2004 at 04:32:22PM +0400, Oleg I. Vdovikin wrote: > > i.e. changing the format string does not change the UIDs of existing > > messages; or put another way, the format string is only applied the first > > time that a new message is seen. > IMAP UID is just a number. And it's appearence is fixed. It's not an > UIDL response. Right? I'm sorry - given the discussion about its *format* being important, I was assuming we were talking about POP3 UIDL. IMAP UIDs are *defined* to be monotonically increasing integers, and number 1234 is 1234. (RFC3501 is bad, but it doesn't say you can send them in hex :-) > Just to clarify: there is no importing at all. Dovecot stores UID and > UIDVALIDITY internally and basically it's compatible with uw-imap. But the > UIDL command answers via POP3 is different. So, I need to be able specify > formatting string for the UIDL answer. Ah OK. But POP3 servers are not *required* to use any particular format for UIDL. So when importing messages from server X, then the UID could be any arbitary string. If you want to allow transparent migration of messages from server X to dovecot, then you need to import the UID string as-is. Maybe some POP3 servers derive their UIDL from the IMAP UID, but not all do (courier-imap for one; also any standalone POP3 server which does not have an IMAP component) > This does not requires any changes > for old messages and for the new ones. I'm just want sit fixed at %08x%08x > format forever and do not want to switch to %u.%u used by dovecot... The other point is that if you have a global default like this, and one day you decide to change from one format to the other, then all POP3 clients will suddenly believe that all the stored mail is new and will download it again. Regards, Brian. From oleg@cs.msu.su Fri May 28 16:38:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DBF9EC000DDE; Fri, 28 May 2004 16:38:01 +0300 (EEST) Received: from jaffar.mlab.cs.msu.su (jaffar.cs.msu.su [158.250.11.254]) by talvi.dovecot.org (Postfix) with ESMTP id B30D2C0007B4 for ; Fri, 28 May 2004 16:37:59 +0300 (EEST) Received: from illusion (illusion.jscc.ru [195.208.40.102]) by jaffar.mlab.cs.msu.su (8.12.8/8.12.8) with SMTP id i4SDUwIm013279; Fri, 28 May 2004 17:30:58 +0400 Message-ID: <00ad01c444b8$02fb9590$6628d0c3@mlab.cs.msu.su> From: "Oleg I. Vdovikin" To: "Brian Candler" References: <20040528120631.GA9680@uk.tiscali.com><007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> <20040528131454.GA9870@uk.tiscali.com> Subject: Re: [Dovecot] Re: Small change to make dovecot pop3uw-imapmigrationfriendly Date: Fri, 28 May 2004 17:30:58 +0400 MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 13:38:02 -0000 X-UID: 9268 Status: O Content-Length: 1186 ----- Original Message ----- From: "Brian Candler" To: "Oleg I. Vdovikin" Cc: Sent: Friday, May 28, 2004 5:14 PM Subject: Re: [Dovecot] Re: Small change to make dovecot pop3uw-imapmigrationfriendly > Maybe some POP3 servers derive their UIDL from the IMAP UID, but not all do > (courier-imap for one; also any standalone POP3 server which does not have > an IMAP component) Yes, that's the case. And luckily dovecot and uw-imap use the same approach. ;-) And RedHat guys pushing dovecot instead of uw-imap in Fedora Core 2. Many users will "migrate" this way. > > > This does not requires any changes > > for old messages and for the new ones. I'm just want sit fixed at %08x%08x > > format forever and do not want to switch to %u.%u used by dovecot... > > The other point is that if you have a global default like this, and one day > you decide to change from one format to the other, then all POP3 clients > will suddenly believe that all the stored mail is new and will download it > again. Yes, but I need at least transparent migration from uw-imap to dovecot. ;-) > > Regards, > > Brian. Regards, Oleg. From geocar-dovecot@internetconnection.net Fri May 28 16:42:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 488DBC000DDE; Fri, 28 May 2004 16:42:22 +0300 (EEST) Received: from internetconnection.net (proxy.dmvnoc.com [216.169.144.254]) by talvi.dovecot.org (Postfix) with SMTP id 4E6D0C0007B4 for ; Fri, 28 May 2004 16:42:19 +0300 (EEST) Received: (qmail 28566 invoked by uid 0); 28 May 2004 13:39:52 -0000 Received: from unknown (HELO ?192.168.1.3?) (192.168.1.3) by pokey with SMTP; 28 May 2004 13:39:52 -0000 Subject: Re: [Dovecot] IMAP views - and things to make Outlook Express not suck so much From: Geo Carncross To: Joshua Goodall In-Reply-To: <20040528000748.GG1698@roughtrade.net> References: <1085597033.1966.34.camel@midget.intranet> <1085600076.20006.46.camel@hurina> <20040526214227.GB1698@roughtrade.net> <1085614289.1966.103.camel@midget.intranet> <20040528000748.GG1698@roughtrade.net> Content-Type: text/plain Organization: Internet Connection Message-Id: <1085751277.1966.164.camel@midget.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Fri, 28 May 2004 09:34:37 -0400 Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: geocar@internetconnection.net List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 13:42:22 -0000 X-UID: 9269 Status: O Content-Length: 3057 On Thu, 2004-05-27 at 20:07, Joshua Goodall wrote: > On Wed, May 26, 2004 at 07:31:30PM -0400, Geo Carncross wrote: > > > Just as an implementation point; it would be good if the specification > > > language was Sieve. > > > > This could require the IMAP server fetch the entire contents of a > > message before processing something as simple as a FETCH FLAGS command. > > That would be a naive implementation. I didn't say _would_, I said _could_. Read on... > > Also, much of sieve would be otherwise useless (fileinto, keep, etc). > > The rationale is this: if a Sieve-based delivery agent exists, > you'll be using some kind of frontend tool to write configuration > filters. It is a big usability win if the delivery filter language, > and thus the interface, has the same logic as the virtual folder > specification language and interface. One might add an "appearin" extension to sieve that would work like "fileinto" but only be a reference to wherever the message actually went. If this were the case, the task could actually be made simpler: "appearin" would add the message to the mailbox, but mark it with some special flags that Dovecot would know that actions on this message must be postprocessed by the sieve program (after mirroring to the original copy of the message-- wherever it was fileinto'd). Whenever changes where made, the copies of the messages would be deleted in such a way that they were REALLY DELETED (without having to EXPUNGE) and they could be redelivered. The obvious benefit to this manner is that sieve actually makes this behavior pleasant, and it requires only MINIMAL changes to dovecot. _AND_ you get to pretend you can reuse all your helpful sieve scripts and script generators :) [[ and in reality, you probably can, with minor adjustments to take advantage of appearin ]] With this, the Outbox and Shared virtual folders could be implemented. One could also implement the PHB-filter I described. However. This doesn't make it possible to implement the virtual Trashbox (unless sieve could ask questions about mailboxes instead of "the current message"), the virtual Junk folder (same reason). Sieve doesn't have a way to ask "FOR ALL DELETED MESSAGES", or "FOR ALL KEYWORD JUNK MESSAGES" -- instead you have to say "if this message is deleted", or "if this message is junk" -- something that unless the sieve implementation was optimized for, would require an extraneous amount of work. Much more so than playing IMAP questions, anyway. > > It'd also require sieve be available to dovecot, which it isn't (yet). > > Indeed. If there was a dovecot-API-based delivery agent, I hope it > would speak Sieve. Such a thing lurks at the back of my mind in > the stack marked "interesting projects". Sieve is not a complicated language, but adding the "appearin" extension wouldn't require a system so intricately tied to dovecot. One could use arbitrary scripts, with "appearin" implemented as a simple program. It might suit some peoples desires, but I don't think it would help mine out any... From discussion-lists@linnet.org Fri May 28 19:15:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 60C6FC000DCE; Fri, 28 May 2004 19:15:53 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id CEB90C0007B4 for ; Fri, 28 May 2004 19:15:50 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 87630138E6C; Fri, 28 May 2004 12:08:49 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.226.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id C6F77138F73; Fri, 28 May 2004 12:08:48 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BTjuZ-0000BT-2M; Fri, 28 May 2004 17:08:47 +0100 Date: Fri, 28 May 2004 17:08:47 +0100 From: Brian Candler To: "Oleg I. Vdovikin" Subject: Re: [Dovecot] Re: Small change to make dovecot pop3uw-imapmigrationfriendly Message-ID: <20040528160846.GA701@uk.tiscali.com> References: <20040528131454.GA9870@uk.tiscali.com> <00ad01c444b8$02fb9590$6628d0c3@mlab.cs.msu.su> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <00ad01c444b8$02fb9590$6628d0c3@mlab.cs.msu.su> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 16:15:53 -0000 X-UID: 9270 Status: O On Fri, May 28, 2004 at 05:30:58PM +0400, Oleg I. Vdovikin wrote: > > The other point is that if you have a global default like this, and one > day > > you decide to change from one format to the other, then all POP3 clients > > will suddenly believe that all the stored mail is new and will download it > > again. > Yes, but I need at least transparent migration from uw-imap to dovecot. > ;-) OK. I think what we're saying is that a format string for creating POP3 UIDLs from IMAP UIDs will solve that particular problem, but it doesn't solve the general problem of migrating from an arbitary POP3 server to dovecot. I'm more interested in the latter; if you're an ISP and you buy out another ISP, you want to migrate their mailboxes transparently but the other ISP could have been running any POP3 server at all. Regards, Brian. From mauricio@hostarica.com Fri May 28 20:07:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0A0E3C000DCE; Fri, 28 May 2004 20:07:06 +0300 (EEST) Received: from mx.hostarica.com (mx.hostarica.com [196.40.45.74]) by talvi.dovecot.org (Postfix) with ESMTP id C310FC0007B4 for ; Fri, 28 May 2004 20:07:02 +0300 (EEST) Received: from localhost (localhost.hostarica.com [127.0.0.1]) by mx.hostarica.com (Postfix) with ESMTP id 26123F6C5 for ; Fri, 28 May 2004 11:01:32 -0600 (CST) Received: from [192.168.0.68] (unknown [192.168.0.68]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx.hostarica.com (Postfix) with ESMTP id 0C03CF6C4 for ; Fri, 28 May 2004 11:01:31 -0600 (CST) From: "Mauricio Araya V." To: dovecot@dovecot.org Content-Type: text/plain Organization: Corp. Hostarica S.A. Message-Id: <1085763598.273.25.camel@wd.hostarica.net> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Fri, 28 May 2004 10:59:59 -0600 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd 0.1 Subject: [Dovecot] Messages does not appear in OE6 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 17:07:06 -0000 X-UID: 9271 Status: O Hi List! I have an issue with dovecot: Outlook express users sometimes can't see some emails (they are not even listed) that can be seen with other IMAP clients, I tested it (and it works) with Evolution, Outlook and SquirrelMail (a web mail). Please note that this is not the client bug reported at http://dovecot.org/clients.html with the message: "Message is no longer available on this server" I have the following configuration: - Postfix as MTA (ver. 2.1), using the Maildir format to store messages. - Dovecot 0.99.10.4_2 serving POP3 and IMAP. Relevant dovecot config: client_workarounds = oe6-fetch-no-newmail outlook-idle default_mail_env = maildir:/%h/Maildir Something important is that I am using freebsd 4.9, and dovecot is installed from ports (/usr/ports/mail/dovecot) Does anyone has the solution for this problem, or at least an idea of what causes it? Regards, -Mauricio From gmid-dovecot@m.gmane.org Fri May 28 21:52:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6D37BC000DCF; Fri, 28 May 2004 21:52:29 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 82DE2C0007B4 for ; Fri, 28 May 2004 21:52:26 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BTmM9-0000GM-00 for ; Fri, 28 May 2004 20:45:25 +0200 Received: from pd951fe6d.dip.t-dialin.net ([217.81.254.109]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 28 May 2004 20:45:25 +0200 Received: from matthias.andree by pd951fe6d.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 28 May 2004 20:45:25 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Fri, 28 May 2004 19:54:25 +0200 Lines: 47 Message-ID: References: <00a301c443ee$9348dd80$6628d0c3@mlab.cs.msu.su> <332DA6F9-AFEE-11D8-8870-000393CC2E90@iki.fi> <005f01c444aa$9cfbc010$6628d0c3@mlab.cs.msu.su> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd951fe6d.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:w1LTSDu0M+0ic/VSE5DePbnujjk= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: Small change to make dovecot pop3 uw-imap migrationfriendly X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 18:52:29 -0000 X-UID: 9272 Status: O Content-Length: 1494 "Oleg I. Vdovikin" writes: >> Question: will this apply to all UIDs or just to those for new mail? I >> can't tell from the code fragment. > In may particular environment this applied to all messages. Taking in > account that old messages was served by uw-pop3 they will not refeteched by > POP3 clients after the upgrade to dovecot. I understand your motivation. >> There are two requirements: >> >> 1. major: a UID that any client may have seen _MUST NOT_ change. >> > Right. > >> This means that a formatting string MUST ONLY have an impact on newly >> arriving mail. > No, there is no need to store the exact formatting string with each > message. No, but the UID must be stored UNLESS the format is perpetual. How do I tell Dovecot which format $ANY_OTHER_SERVER used? What if the server used MD5? Will we see dozens of plugins? Or would not it be more sensible to just give it a list of UIDs? >> This could be achieved by a little program that runs once per mailbox >> after the initial switch. > There is no need for this. The only thing is needed - is just an ability > to specify the format string in the config file and use this forever. So, > for existing dovecot configuration (default) it will be like > > pop3uidl = "%u.%u" > while for uw-imap migrated environment it should be changed to > > pop3uidl = "%08x%08x" This won't catch all cases, as above. Cheers, -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From gmid-dovecot@m.gmane.org Fri May 28 21:59:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2A272C000DCF; Fri, 28 May 2004 21:59:28 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 1F5DDC0007B4 for ; Fri, 28 May 2004 21:59:26 +0300 (EEST) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BTmSv-0000MM-00 for ; Fri, 28 May 2004 20:52:25 +0200 Received: from pd951fe6d.dip.t-dialin.net ([217.81.254.109]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 28 May 2004 20:52:24 +0200 Received: from matthias.andree by pd951fe6d.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 28 May 2004 20:52:24 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Fri, 28 May 2004 19:56:07 +0200 Lines: 12 Message-ID: References: <20040528120631.GA9680@uk.tiscali.com> <007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> <20040528131454.GA9870@uk.tiscali.com> <00ad01c444b8$02fb9590$6628d0c3@mlab.cs.msu.su> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd951fe6d.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:UY69YSsMr0FoiWOTq3o3sEyJu7Q= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: Small change to make dovecot pop3uw-imapmigrationfriendly X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 18:59:28 -0000 X-UID: 9273 Status: O "Oleg I. Vdovikin" writes: > Yes, but I need at least transparent migration from uw-imap to dovecot. We need transparent migration from any server, not just from UW Imap. It can be a Perl/Python/Whatever script - it only runs one if Dovecot stores the UIDLs in a file. -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From dovecot@steve.cotse.net Sat May 29 02:23:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2C7F7C000DCF; Sat, 29 May 2004 02:23:35 +0300 (EEST) Received: from www.cotse.net (packetderm.com [68.166.125.227]) by talvi.dovecot.org (Postfix) with ESMTP id 6E1D7C0007B4 for ; Sat, 29 May 2004 02:23:30 +0300 (EEST) Received: from localhost (localhost[127.0.0.1]) (authenticated bits=0) by www.cotse.net (5.7.4/5.7.4) with ESMTP id i4SNGPei017228 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 28 May 2004 19:16:25 -0400 (EDT) (envelope-from dovecot@steve.cotse.net) Message-Id: <5.1.0.14.2.20040528191057.041fb518@pop.cotse.com> X-Mailer: Cotse Date: Fri, 28 May 2004 19:15:05 -0400 To: dovecot@dovecot.org From: "Stephen K. Gielda" Subject: Re: [Dovecot] Messages does not appear in OE6 In-Reply-To: <1085763598.273.25.camel@wd.hostarica.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 23:23:36 -0000 X-UID: 9274 Status: O Content-Length: 1937 At 12:59 PM 5/28/2004, Mauricio Araya V. wrote: >Hi List! > >I have an issue with dovecot: Outlook express users sometimes can't see >some emails (they are not even listed) that can be seen with other IMAP >clients, I tested it (and it works) with Evolution, Outlook and >SquirrelMail (a web mail). > >Please note that this is not the client bug reported at >http://dovecot.org/clients.html with the message: "Message is no longer >available on this server" > >I have the following configuration: >- Postfix as MTA (ver. 2.1), using the Maildir format to store messages. >- Dovecot 0.99.10.4_2 serving POP3 and IMAP. > >Relevant dovecot config: >client_workarounds = oe6-fetch-no-newmail outlook-idle >default_mail_env = maildir:/%h/Maildir > >Something important is that I am using freebsd 4.9, and dovecot is >installed from ports (/usr/ports/mail/dovecot) > >Does anyone has the solution for this problem, or at least an idea of >what causes it? I hit this same issue, turned out to be that leaving mail_save_crlf =no fixed it (I had set it to yes). The issue could be duplicated by moving messages within webmail to inbox then popping them out. OE would experience display issues if mail_save_crlf = yes. For what it is worth to anyone: We are running dovecot on a fairly large user base subscription service, OS is fbsd, mbox format. It's not huge, we currently process around 210k messages a day, but it is a decent load. Web interface is a highly modified squirrelmail, imap proxy for the webmail, not using dovecot pop (I need more features in my popd, mainly ability to restrict by username), and a custom MTA. We don't yet allow outside access to imap, but plan to offer both imap and imaps after a 1.x release has proven stable. We currently run the latest 99.10.5 and found that it resolved the LF errors we were getting with the previous release. /steve -- http://www.cotse.net http://www.cotse.com From strombrg@dcs.nac.uci.edu Sat May 29 02:25:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2B818C000DD7; Sat, 29 May 2004 02:25:17 +0300 (EEST) Received: from dcs.nac.uci.edu (dcs.nac.uci.edu [128.200.34.32]) by talvi.dovecot.org (Postfix) with ESMTP id 9D6F7C000DD5 for ; Sat, 29 May 2004 02:25:14 +0300 (EEST) Received: from [128.200.34.35] (tesuji.nac.uci.edu [128.200.34.35]) by dcs.nac.uci.edu (8.12.11/8.12.10) with ESMTP id i4SNICh1005955 for ; Fri, 28 May 2004 16:18:12 -0700 From: Dan Stromberg To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-4iDWQSWIRtQKTwN5/vKV" Message-Id: <1085786292.14760.3.camel@tesuji.nac.uci.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Fri, 28 May 2004 16:18:12 -0700 Subject: [Dovecot] dovecot and nfs X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2004 23:25:17 -0000 X-UID: 9275 Status: O Content-Length: 1140 --=-4iDWQSWIRtQKTwN5/vKV Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I configured dovecot on a Fedora Core 2 system - the version that comes with FC2. I was using it with a RHEL 3 NFS server. Dovecot would again and again get stuck trying to grab an fcntl lock, even though I specified that it should only use dotlocks in dovecot.conf. Sometimes it would segfault (leaving things locked?).=20 Often there would be two dovecot imapd processes for the same user. I've since moved dovecot onto our internal NFS server, but we have many (relatively) external imap servers where it might be nice to use dovecot, and in a number of those scenarios, NFS would be a requirement. Thanks. --=20 Dan Stromberg DCS/NACS/UCI --=-4iDWQSWIRtQKTwN5/vKV Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBAt8izo0feVm00f/8RAtu2AJ9JP5HrosrBxT9Av1tymqSBNZqzUwCfeXM2 gIZMV0H/Ax+x7lYVtS3eFj4= =Qlc3 -----END PGP SIGNATURE----- --=-4iDWQSWIRtQKTwN5/vKV-- From bart@istnet.net.au Sat May 29 09:04:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E939CC000DD2; Sat, 29 May 2004 09:04:57 +0300 (EEST) Received: from bajor.istnet.net.au (dsl-2.237.240.220.dsl.comindico.com.au [220.240.237.2]) by talvi.dovecot.org (Postfix) with ESMTP id CC3AAC0007B4 for ; Sat, 29 May 2004 09:04:52 +0300 (EEST) Received: from [127.0.0.1] (bajor [127.0.0.1]) by bajor.istnet.net.au (Postfix) with ESMTP id 4568369133 for ; Sat, 29 May 2004 14:00:58 +0800 (WST) From: Daniel To: dovecot@dovecot.org Content-Type: text/plain Message-Id: <1085810458.15536.9.camel@bajor> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Sat, 29 May 2004 14:00:58 +0800 Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Sat, 29 May 2004 18:27:13 +0300 Subject: [Dovecot] Fedora 1 packaged version or upgrade to newest dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: bart@istnet.net.au List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 06:04:58 -0000 X-UID: 9276 Status: O Hello I running dovecot that is packaged with Fedora 1 with about 1500 email accounts approximately 5k messages per day. I have had to restart dovecot twice over a period of about 3 months due to it not responding. Overall I'm happy with the setup, however would I see and improvement if I upgraded to the latest version, at time of writing 0.99.10.5. Regards Daniel Rowe From reboot78@freenet.de Sat May 29 20:56:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 83F09C000DCF; Sat, 29 May 2004 20:56:33 +0300 (EEST) Received: from mout2.freenet.de (mout2.freenet.de [194.97.50.155]) by talvi.dovecot.org (Postfix) with ESMTP id 91A1EC0007B4 for ; Sat, 29 May 2004 20:56:31 +0300 (EEST) Received: from [194.97.50.135] (helo=mx2.freenet.de) by mout2.freenet.de with asmtp (Exim 4.33) id 1BU7xW-0000ui-2i for dovecot@dovecot.org; Sat, 29 May 2004 19:49:26 +0200 Received: from pd9052d2b.dip.t-dialin.net ([217.5.45.43] helo=navi.lan) by mx2.freenet.de with asmtp (ID reboot78@freenet.de) (Exim 4.33 #3) id 1BU7xV-0008UE-P7 for dovecot@dovecot.org; Sat, 29 May 2004 19:49:26 +0200 Date: Sat, 29 May 2004 19:49:23 +0200 From: Christoph Hohmann To: Dovecot list Message-Id: <20040529194923.0d10706b@navi.lan> X-Mailer: Sylpheed-Claws 0.9.10cvs71 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Dovecot] Dovecot returns everything starting with "." as folder X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 17:56:33 -0000 X-UID: 9277 Status: O Hi, I'm using dovecot imapd 0.99.10.5 from debian unstable and I noticed that dovecot returns everything in the maildir folder that starts with a "." as a folder as the result of LIST "" "%" command without checking if it is really a maildir folder (must contain the directories cur, new, tmp and the file maildirfolder). This is a little bit annoying because it also returns Sylpheed's cache files '.sylpheed_cache' and '.sylpheed_mark' if they exist in the maildir. -- http://reboot.animeirc.de http://sylpheed-claws.sourceforge.net/ From tss@iki.fi Sun May 30 00:44:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C7FDEC000DCF; Sun, 30 May 2004 00:44:17 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A1675C0007B4 for ; Sun, 30 May 2004 00:44:15 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 37BBB1C185E0; Sun, 30 May 2004 00:37:12 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BD7401C1D0E3; Sun, 30 May 2004 00:36:37 +0300 (EEST) Subject: Re: [Dovecot] help: Unknown password scheme SHA From: Timo Sirainen To: "martynas@inet.lt" In-Reply-To: <1085752470268.martynas@inet.lt> References: <1085752470268.martynas@inet.lt> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-dHHXQQScGjsUlmqskyp0" Message-Id: <1085866594.30728.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 30 May 2004 00:36:34 +0300 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.5 required=5.0 tests=AWL,BAYES_00, TO_ADDRESS_EQ_REAL autolearn=ham version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 21:44:19 -0000 X-UID: 9278 Status: O --=-dHHXQQScGjsUlmqskyp0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-28 at 16:54, martynas@inet.lt wrote: > I would like to change my courier to dovecot. When I try to setup ldap au= th, > I get error: > dovecot-auth: ldap(martynas): Unknown password scheme SHA >=20 > So, how enable SHA scheme on dovecot? Sorry, there's currently no SHA support. Should be pretty simple to implement though, any volunteers? :) --=-dHHXQQScGjsUlmqskyp0 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAuQJhyUhSUUBViskRAhfbAJ0XXo5cCIH52VE7bhrLfMMGq/KJTwCgkFvl znRu0AKqmPlinDkN1B7tX4o= =ktzN -----END PGP SIGNATURE----- --=-dHHXQQScGjsUlmqskyp0-- From tss@iki.fi Sun May 30 00:45:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 182D1C000DD2; Sun, 30 May 2004 00:45:53 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id D8FEAC000DCF for ; Sun, 30 May 2004 00:45:50 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 7F97E1C185E0; Sun, 30 May 2004 00:38:47 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A7FC21C1D0E3; Sun, 30 May 2004 00:38:13 +0300 (EEST) Subject: Re: [Dovecot] dovecot and nfs From: Timo Sirainen To: Dan Stromberg In-Reply-To: <1085786292.14760.3.camel@tesuji.nac.uci.edu> References: <1085786292.14760.3.camel@tesuji.nac.uci.edu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-TrhkK/Pe7KSeejA9r2gd" Message-Id: <1085866693.30728.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 30 May 2004 00:38:13 +0300 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 21:45:53 -0000 X-UID: 9279 Status: O --=-TrhkK/Pe7KSeejA9r2gd Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-05-29 at 02:18, Dan Stromberg wrote: > I configured dovecot on a Fedora Core 2 system - the version that comes > with FC2. I was using it with a RHEL 3 NFS server. >=20 > Dovecot would again and again get stuck trying to grab an fcntl lock, > even though I specified that it should only use dotlocks in > dovecot.conf. Sometimes it would segfault (leaving things locked?).=20 > Often there would be two dovecot imapd processes for the same user. 0.99.10 doesn't really support NFS yet, 1.0 will. --=-TrhkK/Pe7KSeejA9r2gd Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAuQLFyUhSUUBViskRAnp7AKChZjQvZ5D9Da+xKcKi/ELtgP8c7gCgpdAV F5AH9Net3SXW5ckIsBkWJw4= =gFJF -----END PGP SIGNATURE----- --=-TrhkK/Pe7KSeejA9r2gd-- From tss@iki.fi Sun May 30 00:50:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A2447C000DD6; Sun, 30 May 2004 00:50:00 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id BCC00C000DD2 for ; Sun, 30 May 2004 00:49:58 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 559041C185E0; Sun, 30 May 2004 00:42:55 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7B0171C1D0E3; Sun, 30 May 2004 00:42:21 +0300 (EEST) Subject: Re: [Dovecot] Fedora 1 packaged version or upgrade to newest dovecot From: Timo Sirainen To: bart@istnet.net.au In-Reply-To: <1085810458.15536.9.camel@bajor> References: <1085810458.15536.9.camel@bajor> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-QqpaNAWw215voWqHBvHF" Message-Id: <1085866941.30728.11.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 30 May 2004 00:42:21 +0300 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 21:50:00 -0000 X-UID: 9280 Status: O --=-QqpaNAWw215voWqHBvHF Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-05-29 at 09:00, Daniel wrote: > I running dovecot that is packaged with Fedora 1 with about 1500 email > accounts approximately 5k messages per day. I have had to restart > dovecot twice over a period of about 3 months due to it not responding. > Overall I'm happy with the setup, however would I see and improvement if > I upgraded to the latest version, at time of writing 0.99.10.5. 0.99.10.5 fixes several real problems, although they didn't happen very often with most people. See http://dovecot.org/list/dovecot/2004-May/003495.html --=-QqpaNAWw215voWqHBvHF Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAuQO8yUhSUUBViskRAr45AJ474RSzm/BTN+NjqAQu0ytSJ1uQKACdEB+n 6CtoCWlt7YJoiuedKqJWSfg= =HeAT -----END PGP SIGNATURE----- --=-QqpaNAWw215voWqHBvHF-- From martynas@inet.lt Sun May 30 01:12:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 09947C000DD2; Sun, 30 May 2004 01:12:36 +0300 (EEST) Received: from marsas.lmb.lt (marsas.lmb.lt [193.219.88.69]) by talvi.dovecot.org (Postfix) with ESMTP id 7E04FC0007B4 for ; Sun, 30 May 2004 01:12:33 +0300 (EEST) Received: from mail.inet.lt (saturnas.lmb.lt [193.219.88.66]) by marsas.lmb.lt (Postfix) with SMTP id EDDA130126; Sun, 30 May 2004 00:17:34 +0300 (EEST) From: "martynas@inet.lt" To: tss@iki.fi Subject: Re: [Dovecot] help: Unknown password scheme SHA Date: Sun, 30 May 2004 01:05:08 +0200 Message-ID: <1085871908765.martynas@inet.lt> Content-Type: text/plain; charset=iso-8859-1 X-Mailer: Null Webmail / 0.8.4 X-SenderIP: 213.164.97.252 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 22:12:36 -0000 X-UID: 9281 Status: O I dont want to change over 1500 passwords in ldap;) So, if somebody implement this, i'll change from courier to dovecot. regards, Martynas P.S. Timo, could you drop me email, when dovecot would support this. Thank you. --- Timo Sirainen wrote: > On Fri, 2004-05-28 at 16:54, martynas@inet.lt wrote: > > I would like to change my courier to dovecot. When I try to setup ldap au> th, > > I get error: > > dovecot-auth: ldap(martynas): Unknown password scheme SHA > > > > So, how enable SHA scheme on dovecot? > > Sorry, there's currently no SHA support. Should be pretty simple to > implement though, any volunteers? :) > > From tss@iki.fi Sun May 30 01:21:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 15FECC000DD6; Sun, 30 May 2004 01:21:54 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 207B8C000DD2 for ; Sun, 30 May 2004 01:21:52 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id A667F1C185E5; Sun, 30 May 2004 01:14:48 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9E4A11C1D0E3; Sun, 30 May 2004 01:14:14 +0300 (EEST) Subject: Re: [Dovecot] Dovecot returns everything starting with "." as folder From: Timo Sirainen To: Christoph Hohmann In-Reply-To: <20040529194923.0d10706b@navi.lan> References: <20040529194923.0d10706b@navi.lan> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-1Lo9eezH7lMuYSEj2mr7" Message-Id: <1085868854.30728.30.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 30 May 2004 01:14:14 +0300 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.60 Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 22:21:54 -0000 X-UID: 9282 Status: O Content-Length: 1215 --=-1Lo9eezH7lMuYSEj2mr7 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-05-29 at 20:49, Christoph Hohmann wrote: > I'm using dovecot imapd 0.99.10.5 from debian unstable and I > noticed that dovecot returns everything in the maildir > folder that starts with a "." as a folder as the result of >=20 > LIST "" "%" >=20 > command without checking if it is really a maildir folder > (must contain the directories cur, new, tmp and the file > maildirfolder). It's a bit useless to check it in most situations and it would just cause extra disk I/O if system doesn't support struct dirent->d_type field.. But since this has been asked often enough..: http://www.dovecot.org/patches/maildir-stat-dirs.patch You'd probably want to run autogen.sh + configure again, or just #define HAVE_DIRENT_D_TYPE in config.h. --=-1Lo9eezH7lMuYSEj2mr7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAuQs2yUhSUUBViskRAm6KAJ4nbxRsgroHZahQqboXG/gT3dFgdQCfRm4U GTD/4WtzKXdpzp4sf/I4rnU= =s5Hn -----END PGP SIGNATURE----- --=-1Lo9eezH7lMuYSEj2mr7-- From tss@iki.fi Sun May 30 01:25:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 88773C000DD6; Sun, 30 May 2004 01:25:37 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 9314EC000DD2 for ; Sun, 30 May 2004 01:25:35 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 1FD581C185E2; Sun, 30 May 2004 01:18:32 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2F1091C1D0E3; Sun, 30 May 2004 01:17:58 +0300 (EEST) Subject: Re: [Dovecot] dovecot API / Virtual Folders? From: Timo Sirainen To: James Moser In-Reply-To: <40B67AAC.5020904@powweb.com> References: <40B67AAC.5020904@powweb.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-d1SbdHoRnCjOrqeBWH+f" Message-Id: <1085869077.30728.34.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 30 May 2004 01:17:57 +0300 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 22:25:37 -0000 X-UID: 9283 Status: O Content-Length: 1333 --=-d1SbdHoRnCjOrqeBWH+f Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-28 at 02:33, James Moser wrote: > I was wondering if anyone has done something like this, or knows of any=20 > reason it would not work. >=20 > Would it be possible to use dovecot's API to create virtual folders=20 > where when messages are placed in them some other application can be=20 > executed on them? With programs like DSPAM and SpamAssassin, and with=20 > users who do not have shell access to the machines, it would be nice if=20 > there was a way they could do something like this to use dspam/sa-learn,=20 > that way they could use it with any mail application. I don't like the=20 > idea of using cron to do this. In case you didn't notice, it was just being discussed under "IMAP views .." subject. http://dovecot.org/list/dovecot/2004-May/003475.html I think it would be possible to implement it with a plugin with 1.0-test codebase. --=-d1SbdHoRnCjOrqeBWH+f Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAuQwVyUhSUUBViskRAs2iAJsEO9ZB2258PvR0poLfV4sJ4u4rFACgnrQE 1ZpGK0v2WxGqFRYKGg6mTWc= =nqNR -----END PGP SIGNATURE----- --=-d1SbdHoRnCjOrqeBWH+f-- From tss@iki.fi Sun May 30 01:28:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7093EC000DD6; Sun, 30 May 2004 01:28:11 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 801F5C000DD2 for ; Sun, 30 May 2004 01:28:09 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 0C2111C185E1; Sun, 30 May 2004 01:21:06 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 264CE1C1D0E3; Sun, 30 May 2004 01:20:32 +0300 (EEST) Subject: Re: [Dovecot] Re: Small change to make dovecot pop3uw-imapmigrationfriendly From: Timo Sirainen To: Matthias Andree In-Reply-To: References: <20040528120631.GA9680@uk.tiscali.com> <007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> <20040528131454.GA9870@uk.tiscali.com> <00ad01c444b8$02fb9590$6628d0c3@mlab.cs.msu.su> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-nl5tPbItiPvP6uARq9eq" Message-Id: <1085869231.30728.37.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 30 May 2004 01:20:31 +0300 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 22:28:11 -0000 X-UID: 9284 Status: O Content-Length: 1076 --=-nl5tPbItiPvP6uARq9eq Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-28 at 20:56, Matthias Andree wrote: > "Oleg I. Vdovikin" writes: >=20 > > Yes, but I need at least transparent migration from uw-imap to dove= cot. >=20 > We need transparent migration from any server, not just from UW Imap. It > can be a Perl/Python/Whatever script - it only runs one if Dovecot > stores the UIDLs in a file. Would it be enough if Dovecot simply used "X-POP3-UID" (or something) header which contains the UID for the old server? That would have to be generated using some script though. If the header doesn't exist, Dovecot would use it's internal method. --=-nl5tPbItiPvP6uARq9eq Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAuQyvyUhSUUBViskRArq3AKCYHtPg/9bMK590Rv/EfrVmfPnnPACeKUjW FBMD7LpnvRQ8ayFxdKc7qPk= =5K92 -----END PGP SIGNATURE----- --=-nl5tPbItiPvP6uARq9eq-- From tss@iki.fi Sun May 30 01:30:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 75CFAC000DF6; Sun, 30 May 2004 01:30:18 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 9AEDDC000DED for ; Sun, 30 May 2004 01:30:14 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 2AEF71C185E1; Sun, 30 May 2004 01:23:11 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5489F1C1D0E3; Sun, 30 May 2004 01:22:37 +0300 (EEST) Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate From: Timo Sirainen To: Matthias Andree In-Reply-To: References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-rqnEHgwYfSfz6NNbvbWF" Message-Id: <1085869356.30728.40.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 30 May 2004 01:22:36 +0300 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 22:30:18 -0000 X-UID: 9285 Status: O --=-rqnEHgwYfSfz6NNbvbWF Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-05-28 at 10:21, Matthias Andree wrote: > Timo Sirainen writes: >=20 > > If you don't use fcntl locking (and with NFS you probably won't), you'd >=20 > What does this mean? Of course, we'll use fcntl locking with NFS as > well. At least on Linux and Solaris, this works. I thought Linux or BSDs didn't support fcntl locks as NFS client? And I've heard they've always been more or less buggy.. --=-rqnEHgwYfSfz6NNbvbWF Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAuQ0syUhSUUBViskRAvJVAJ0SaKZqTlAwjBCWZpiQw7hocuBsmQCeKSTf gGIMrTaq+PzqCBoB5JaMg5M= =fvo1 -----END PGP SIGNATURE----- --=-rqnEHgwYfSfz6NNbvbWF-- From james@powweb.com Sun May 30 01:35:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CFC57C000DEF; Sun, 30 May 2004 01:35:38 +0300 (EEST) Received: from nexus.powweb.com (unknown [66.152.96.141]) by talvi.dovecot.org (Postfix) with ESMTP id 3A367C000DF8 for ; Sun, 30 May 2004 01:35:36 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id 98C8FB8E37; Sat, 29 May 2004 15:28:28 -0700 (PDT) Message-ID: <40B90E8D.3080306@powweb.com> Date: Sat, 29 May 2004 15:28:29 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> In-Reply-To: <1085869356.30728.40.camel@hurina> Content-Type: multipart/mixed; boundary="------------080304030005080700030003" X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.60 Cc: Matthias Andree , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 22:35:39 -0000 X-UID: 9286 Status: O Content-Length: 1584 This is a multi-part message in MIME format. --------------080304030005080700030003 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit I know FreeBSD currently does not (or at least 4.x, and I'm pretty sure neither does 5.x) Timo Sirainen wrote: >On Fri, 2004-05-28 at 10:21, Matthias Andree wrote: > > >>Timo Sirainen writes: >> >> >> >>>If you don't use fcntl locking (and with NFS you probably won't), you'd >>> >>> >>What does this mean? Of course, we'll use fcntl locking with NFS as >>well. At least on Linux and Solaris, this works. >> >> > >I thought Linux or BSDs didn't support fcntl locks as NFS client? And >I've heard they've always been more or less buggy.. > > > -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------080304030005080700030003 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------080304030005080700030003-- From reboot78@freenet.de Sun May 30 01:41:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9314DC000DEF; Sun, 30 May 2004 01:41:25 +0300 (EEST) Received: from mout2.freenet.de (mout2.freenet.de [194.97.50.155]) by talvi.dovecot.org (Postfix) with ESMTP id F0C46C0007B4 for ; Sun, 30 May 2004 01:41:22 +0300 (EEST) Received: from [194.97.55.148] (helo=mx5.freenet.de) by mout2.freenet.de with asmtp (Exim 4.33) id 1BUCPD-0007hL-7X for dovecot@dovecot.org; Sun, 30 May 2004 00:34:19 +0200 Received: from pd9052d2b.dip.t-dialin.net ([217.5.45.43] helo=navi.lan) by mx5.freenet.de with asmtp (ID reboot78@freenet.de) (Exim 4.33 #3) id 1BUCPC-0007mZ-L7 for dovecot@dovecot.org; Sun, 30 May 2004 00:34:19 +0200 Date: Sun, 30 May 2004 00:33:48 +0200 From: Christoph Hohmann To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot returns everything starting with "." as folder Message-Id: <20040530003348.64f7ede1@navi.lan> In-Reply-To: <1085868854.30728.30.camel@hurina> References: <20040529194923.0d10706b@navi.lan> <1085868854.30728.30.camel@hurina> X-Mailer: Sylpheed-Claws 0.9.10cvs71 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-3.9 required=5.0 tests=AWL,BAYES_00, FROM_ENDS_IN_NUMS autolearn=no version=2.60 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 22:41:25 -0000 X-UID: 9287 Status: O Timo Sirainen wrote: > > I'm using dovecot imapd 0.99.10.5 from debian unstable and I > > noticed that dovecot returns everything in the maildir > > folder that starts with a "." as a folder as the result of > > > > LIST "" "%" > > > > command without checking if it is really a maildir folder > > It's a bit useless to check it in most situations and it would just > cause extra disk I/O if system doesn't support struct dirent->d_type > field.. But since this has been asked often enough..: > > http://www.dovecot.org/patches/maildir-stat-dirs.patch How often do IMAP clients use the LIST commands, that this extra IO would cause significant slowdown? > You'd probably want to run autogen.sh + configure again, or just #define > HAVE_DIRENT_D_TYPE in config.h. I'm using the debian package. -- http://reboot.animeirc.de http://sylpheed-claws.sourceforge.net/ From jaldhar@debian.org Sun May 30 01:59:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D2F0EC000DED; Sun, 30 May 2004 01:59:34 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 661EAC000DD6 for ; Sun, 30 May 2004 01:59:32 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id C2F4D8078; Sat, 29 May 2004 18:52:29 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20829-08; Sat, 29 May 2004 18:52:29 -0400 (EDT) Received: from [192.168.1.116] (pcp09354467pcs.jersyc01.nj.comcast.net [69.141.24.176]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 022768071; Sat, 29 May 2004 18:52:29 -0400 (EDT) Date: Sat, 29 May 2004 18:51:32 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Christoph Hohmann Subject: Re: [Dovecot] Dovecot returns everything starting with "." as folder In-Reply-To: <20040530003348.64f7ede1@navi.lan> Message-ID: References: <20040529194923.0d10706b@navi.lan> <1085868854.30728.30.camel@hurina> <20040530003348.64f7ede1@navi.lan> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at braincells.com X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 22:59:35 -0000 X-UID: 9288 Status: O Content-Length: 1632 On Sun, 30 May 2004, Christoph Hohmann wrote: > Timo Sirainen wrote: > > > > I'm using dovecot imapd 0.99.10.5 from debian unstable and I > > > noticed that dovecot returns everything in the maildir > > > folder that starts with a "." as a folder as the result of > > > > > > LIST "" "%" > > > > > > command without checking if it is really a maildir folder > > > > It's a bit useless to check it in most situations and it would just > > cause extra disk I/O if system doesn't support struct dirent->d_type > > field.. But since this has been asked often enough..: > > > > http://www.dovecot.org/patches/maildir-stat-dirs.patch > > How often do IMAP clients use the LIST commands, that this > extra IO would cause significant slowdown? > > > You'd probably want to run autogen.sh + configure again, or just #define > > HAVE_DIRENT_D_TYPE in config.h. > > I'm using the debian package. > > # apt-get install fakeroot dpkg-dev # apt-get source dovecot # apt-get build-dep dovecot $ cd dovecot-0.99.10.5 $ chmod +x debian/rules (add the patch per Timos instructions) change the 1st line of debian/changelog so the version is 0.99.10.5-1.1 $ fakeroot debian/rules binary $ cd .. $ apt-get moo While I can add the patch to the official package, we really need to get this version into sarge which will happen after 8 days. If I upload a new version, the timer gets reset and it will take 10 days from the time of upload. Debian users: my question is, is adding the patch worth the delay in getting 0.99.10.5 into sarge? -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From tss@iki.fi Sun May 30 02:05:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5CF1DC000DED; Sun, 30 May 2004 02:05:30 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 760DDC000DD6 for ; Sun, 30 May 2004 02:05:28 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id EBE8D1C185E1; Sun, 30 May 2004 01:58:24 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 847E21C1D0E3; Sun, 30 May 2004 01:57:50 +0300 (EEST) Subject: Re: [Dovecot] help: Unknown password scheme SHA From: Timo Sirainen To: "martynas@inet.lt" In-Reply-To: <1085871908765.martynas@inet.lt> References: <1085871908765.martynas@inet.lt> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-PVEto3vMPKIfw5MoUm8Y" Message-Id: <1085871469.30728.55.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 30 May 2004 01:57:49 +0300 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.5 required=5.0 tests=AWL,BAYES_00, TO_ADDRESS_EQ_REAL autolearn=ham version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 23:05:30 -0000 X-UID: 9289 Status: O --=-PVEto3vMPKIfw5MoUm8Y Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2004-05-30 at 02:05, martynas@inet.lt wrote: > I dont want to change over 1500 passwords in ldap;) So, if somebody imple= ment > this, i'll change from courier to dovecot. oh well, using openssl: http://dovecot.org/patches/auth-sha1.patch --=-PVEto3vMPKIfw5MoUm8Y Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAuRVtyUhSUUBViskRAvcfAJ9phaafWMo2scmECYNGy44dsgGi9gCcDYOd +3+KtOUqvPrzJS8hznAQbOQ= =dohM -----END PGP SIGNATURE----- --=-PVEto3vMPKIfw5MoUm8Y-- From tss@iki.fi Sun May 30 02:11:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AE7E8C000DF0; Sun, 30 May 2004 02:11:00 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B22DCC000DD6 for ; Sun, 30 May 2004 02:10:58 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 2B9E01C185E1; Sun, 30 May 2004 02:03:55 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3659E1C1D0E3; Sun, 30 May 2004 02:03:20 +0300 (EEST) Subject: Re: [Dovecot] Dovecot returns everything starting with "." as folder From: Timo Sirainen To: Christoph Hohmann In-Reply-To: <20040530003348.64f7ede1@navi.lan> References: <20040529194923.0d10706b@navi.lan> <1085868854.30728.30.camel@hurina> <20040530003348.64f7ede1@navi.lan> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-sDlru2LThhN1kGROJN6Q" Message-Id: <1085871799.30728.61.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 30 May 2004 02:03:19 +0300 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.60 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 23:11:00 -0000 X-UID: 9290 Status: O Content-Length: 1303 --=-sDlru2LThhN1kGROJN6Q Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2004-05-30 at 01:33, Christoph Hohmann wrote: > > It's a bit useless to check it in most situations and it would just > > cause extra disk I/O if system doesn't support struct dirent->d_type > > field.. But since this has been asked often enough..: > >=20 > > http://www.dovecot.org/patches/maildir-stat-dirs.patch >=20 > How often do IMAP clients use the LIST commands, that this > extra IO would cause significant slowdown? It depends on client, many of them do it every time while checking for mails. It probably don't slow down noticeably for most people, but why do it if it's useful only for a few people? Anyway, with that patch it is done by default if dirent->d_type exists and works. I'm not sure what operating systems do that, but I'd guess most of the new ones. Some filesystems might not support that though (NFS?). --=-sDlru2LThhN1kGROJN6Q Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAuRa3yUhSUUBViskRArhCAJ9/2AvGIPQqLtEbkTSD1few21/gawCaA5it ZaalDiokHBpByXG4E68T29U= =92Wi -----END PGP SIGNATURE----- --=-sDlru2LThhN1kGROJN6Q-- From dr@jones.dk Sun May 30 02:54:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B8678C000DD6; Sun, 30 May 2004 02:54:57 +0300 (EEST) Received: from xayide.jones.dk (cpe.atm0-0-0-1201001.0x503f72d6.albnxx2.customer.tele.dk [80.63.114.214]) by talvi.dovecot.org (Postfix) with ESMTP id ED5B5C0007B4 for ; Sun, 30 May 2004 02:54:53 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by xayide.jones.dk (Postfix) with ESMTP id 9255C1AB394; Sun, 30 May 2004 01:47:46 +0200 (CEST) Received: from xayide.jones.dk ([127.0.0.1]) by localhost (xayide.jones.dk [127.0.0.1]) (amavisd-new, port 10024) with SMTP id 11956-09; Sun, 30 May 2004 01:47:34 +0200 (CEST) Received: from jones.dk (ip46035.poa.virtua.com.br [200.213.46.35]) (using SSLv3 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by xayide.jones.dk (Postfix) with ESMTP id 723CF1AB34D; Sun, 30 May 2004 01:47:22 +0200 (CEST) Message-ID: <40B920FD.2050300@jones.dk> Date: Sat, 29 May 2004 20:47:09 -0300 From: Jonas Smedegaard User-Agent: Mozilla Thunderbird 0.5 (X11/20040313) X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Jaldhar H. Vyas" Subject: Re: [Dovecot] Dovecot returns everything starting with "." as folder References: <20040529194923.0d10706b@navi.lan> <1085868854.30728.30.camel@hurina> <20040530003348.64f7ede1@navi.lan> In-Reply-To: X-Enigmail-Version: 0.83.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at jones.dk X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on talvi.dovecot.org X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.60 Cc: dovecot@dovecot.org, Christoph Hohmann X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 May 2004 23:54:57 -0000 X-UID: 9291 Status: O Content-Length: 1841 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Jaldhar H. Vyas wrote: | On Sun, 30 May 2004, Christoph Hohmann wrote: |>I'm using the debian package. |> |> | | | # apt-get install fakeroot dpkg-dev | # apt-get source dovecot | # apt-get build-dep dovecot | $ cd dovecot-0.99.10.5 | $ chmod +x debian/rules | | (add the patch per Timos instructions) | | change the 1st line of debian/changelog so the version is 0.99.10.5-1.1= | | $ fakeroot debian/rules binary | $ cd .. | $ apt-get moo Or this: # apt-get install fakeroot devscripts # apt-get build-dep dovecot $ apt-get source dovecot $ cd dovecot-0.99.10.5 (add the patch per Timos instructions) $ dch -v 0.99.10.5-1.0.private.1 $ debuild The reason for using the devscripts commands debuild and dch should be obvious: less and simpler commands. There are several reasons for the longer version number: ~ * If next official Debian package is an NMU (done an hour ago but waiting to be released, so older than yours) it is silently ignored ~ * you can later on scan dpkg for version numbers containing "private" to see how much local mess you have done ~ * You have room to make another rebuild | Debian users: my question is, is adding the patch worth the delay in | getting 0.99.10.5 into sarge? No (if you ask me - I can naturally only speak for myself). ~ - Jonas Debian maintainer of UW-imap, and eagerly awaiting dovecot to take over the world! - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er n=E6r: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFAuSD9n7DbMsAkQLgRAli5AKCFY8lmkTESBzrI1WyT4j1SivCCMQCfYm/Y 0uALhhKnGV/uJTkYCmNrVLo=3D =3DaciI -----END PGP SIGNATURE----- From tss@iki.fi Sun May 30 05:01:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9B00BC000DD6; Sun, 30 May 2004 05:01:53 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 1B02CC0007B4 for ; Sun, 30 May 2004 05:01:46 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 4C1E71C185E1; Sun, 30 May 2004 04:54:42 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 008AA1C1D0E3 for ; Sun, 30 May 2004 04:54:08 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-b1bsufyHX6AQCursABmF" Message-Id: <1085882048.6244.11.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 30 May 2004 04:54:08 +0300 X-Spam-Status: No, hits=-8.5 required=5.0 tests=AWL,BAYES_01,PGP_SIGNATURE_2,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] Postfix SASL AUTH from Dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 May 2004 02:01:54 -0000 X-UID: 9292 Status: O Content-Length: 1981 --=-b1bsufyHX6AQCursABmF Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Again today got annoyed at Cyrus SASL. Upgrading it to newer version had broken PAM support. Trying to login as "user@domain" resulted it only asking for "user" from PAM. Well, got it patched and working again, but I'd rather not go through it all the time.. So I finally did what I had been thinking about a year or so, change Postfix to use dovecot-auth directly. This required cleaning dovecot-auth quite a lot, but it seems to be working now. Actually I finally implemented support for initial SASL response as well. POP3's AUTH command had required support for it, strange that no-one ever complained about it not working. If you want to try it, you need very latest CVS version of Dovecot and this patch for Postfix: http://dovecot.org/patches/postfix-dovecot-auth.patch dovecot-auth can be run on it's own (configuration in environment variables), or you can use extra_sockets auth setting which is a ':' separated list of UNIX sockets where to listen in. You'd probably want to set it to /var/spool/postfix/etc/dovecot-auth, the location is hardcoded to /etc/dovecot-auth in the patch for now (smtpd is chrooted). The only real problem is that Dovecot creates the dovecot-auth socket using 0660 root:root modes, so you have to manually chmod it to 0666 or fix owner/group. I guess that needs some more thinking.. Probably each socket should have separate settings for it, but how to do it easily in configuration? .. The patch has also hardcoded dovecot path in Makefile.in, you'll need to change that. --=-b1bsufyHX6AQCursABmF Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAuT7AyUhSUUBViskRAuCBAJ98WsPOSozkQjFOPUrGoGWYCJ3RMACgoAJV rdChF9vMPwPZOnqfAvcUbh8= =j8hd -----END PGP SIGNATURE----- --=-b1bsufyHX6AQCursABmF-- From chibi@gol.com Sun May 30 06:20:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5183BC000DD6; Sun, 30 May 2004 06:20:26 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id C806CC0007B4 for ; Sun, 30 May 2004 06:20:23 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BUGl8-00008K-00 for ; Sun, 30 May 2004 12:13:14 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot returns everything starting with "." as folder In-reply-to: References: <20040529194923.0d10706b@navi.lan> <1085868854.30728.30.camel@hurina> <20040530003348.64f7ede1@navi.lan> Comments: In-reply-to "Jaldhar H. Vyas" message dated "Sat, 29 May 2004 18:51:32 -0400." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 30 May 2004 12:13:14 +0900 From: Christian Balzer Message-Id: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 May 2004 03:20:26 -0000 X-UID: 9293 Status: O Jaldhar wrote: > >Debian users: my question is, is adding the patch worth the delay in >getting 0.99.10.5 into sarge? > You know my answer, no. Dovecot needs to get back into sarge before hell, er, code freezes over, this is something for a 0.99.10.5-n release. Regards, Christian -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From discussion-lists@linnet.org Sun May 30 11:30:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B43F6C000DD2; Sun, 30 May 2004 11:30:11 +0300 (EEST) Received: from majesty.pobox.com (majesty.pobox.com [208.210.124.70]) by talvi.dovecot.org (Postfix) with ESMTP id 238ECC0007B4 for ; Sun, 30 May 2004 11:30:02 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by majesty.pobox.com (Postfix) with ESMTP id 3154FC6A85; Sun, 30 May 2004 04:22:55 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by majesty.pobox.com (Postfix) with ESMTP id CA9E5C86D6; Sun, 30 May 2004 04:22:54 -0400 (EDT) Received: from localhost.localdomain (localhost [127.0.0.1]) by jester.pobox.com (Postfix) with ESMTP id 6230578B; Sun, 30 May 2004 04:22:53 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.228.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id 3636177F; Sun, 30 May 2004 04:22:52 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BULaj-0000Bt-Q2; Sun, 30 May 2004 09:22:49 +0100 Date: Sun, 30 May 2004 09:22:49 +0100 From: Brian Candler To: Timo Sirainen Subject: Re: [Dovecot] Re: Small change to make dovecot pop3uw-imapmigrationfriendly Message-ID: <20040530082249.GA711@uk.tiscali.com> References: <20040528120631.GA9680@uk.tiscali.com> <007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> <20040528131454.GA9870@uk.tiscali.com> <00ad01c444b8$02fb9590$6628d0c3@mlab.cs.msu.su> <1085869231.30728.37.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1085869231.30728.37.camel@hurina> User-Agent: Mutt/1.4.1i Cc: Matthias Andree , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 May 2004 08:30:12 -0000 X-UID: 9294 Status: O Content-Length: 1343 On Sun, May 30, 2004 at 01:20:31AM +0300, Timo Sirainen wrote: > On Fri, 2004-05-28 at 20:56, Matthias Andree wrote: > > "Oleg I. Vdovikin" writes: > > > > > Yes, but I need at least transparent migration from uw-imap to dovecot. > > > > We need transparent migration from any server, not just from UW Imap. It > > can be a Perl/Python/Whatever script - it only runs one if Dovecot > > stores the UIDLs in a file. > > Would it be enough if Dovecot simply used "X-POP3-UID" (or something) > header which contains the UID for the old server? That would have to be > generated using some script though. > > If the header doesn't exist, Dovecot would use it's internal method. As long as the X-POP3-UID header is cached somewhere, it would be fine. The main purpose of UIDL is for when clients leave mail on the server; each time they connect they issue UIDL to check for new mail. So if they have 1000 messages held on the server, each time they log in you don't want to have to open and read each of those 1000 files. Same applies for message sizes for 'LIST' (where the message size counts each newline as two bytes, \r\n). Some clients issue 'LIST' each time they connect, so you don't want to have to open and read each message from start to end just to count the number of newlines it contains. Regards, Brian. From discussion-lists@linnet.org Sun May 30 11:39:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5448CC000DD2; Sun, 30 May 2004 11:39:39 +0300 (EEST) Received: from lime.pobox.com (lime.pobox.com [208.58.1.198]) by talvi.dovecot.org (Postfix) with ESMTP id 2D7C4C0007B4 for ; Sun, 30 May 2004 11:39:36 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by lime.pobox.com (Postfix) with ESMTP id 8F5D59EC1A; Sun, 30 May 2004 04:32:30 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by lime.pobox.com (Postfix) with ESMTP id 630169EC3F; Sun, 30 May 2004 04:32:30 -0400 (EDT) Received: from localhost.localdomain (localhost [127.0.0.1]) by jester.pobox.com (Postfix) with ESMTP id 4EBED78B; Sun, 30 May 2004 04:32:29 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.228.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id 4F38977F; Sun, 30 May 2004 04:32:28 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BULk2-0000C5-Gs; Sun, 30 May 2004 09:32:26 +0100 Date: Sun, 30 May 2004 09:32:26 +0100 From: Brian Candler To: James Moser Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate Message-ID: <20040530083226.GB711@uk.tiscali.com> References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40B90E8D.3080306@powweb.com> User-Agent: Mutt/1.4.1i Cc: Timo Sirainen , Matthias Andree , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 May 2004 08:39:39 -0000 X-UID: 9295 Status: O Content-Length: 1711 On Sat, May 29, 2004 at 03:28:29PM -0700, James Moser wrote: > I know FreeBSD currently does not (or at least 4.x, and I'm pretty sure > neither does 5.x) That's my experience with 4.x too; I've not tried 5.x with this but then I don't remember seeing any release notes saying this had changed either. For POP3 access, I'm happy for no locks to be in place at all. If someone is daft enough to make two concurrent POP3 accesses to the same mailbox, then at worst what happens when they try to retrieve a message is they'll get -ERR This message has been deleted by someone else! or something like that. I can live with that. I've seen too many mailsystems which have annoying mailbox locks; you disconnect and the mailbox remains unavailable for 30 minutes or more because it thinks you are using it. Dotlocks are a pain when you have multiple frontends on an NFS server, because it's impossible to tell if they're stale (they may contain the information that they were created by server B pid P, but if you're on server A, you can't tell whether process P is still running on B or not) If it were felt that locking were important, then I'd propose a simple lock server process: a client opens a TCP connection to this process, sends the name of the mailbox it wants to lock, and gets an ACK back. If the client dies then the TCP connection is dropped and the lock is released. I can see issues with numbers of filehandles/sockets on the lock server process itself, so you'd have to tweak kernel parameters on a busy system. Perhaps you could have a pool of lockserver processes listening on different ports, and use a hash of the directory name to work out which one to connect to? Regards, Brian. From gmid-dovecot@m.gmane.org Mon May 31 01:27:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 811B9C000DD2; Mon, 31 May 2004 01:27:08 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 37E21C0007B4 for ; Mon, 31 May 2004 01:27:06 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BUYet-0007yY-00 for ; Mon, 31 May 2004 00:19:59 +0200 Received: from pd951f43c.dip.t-dialin.net ([217.81.244.60]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 31 May 2004 00:19:59 +0200 Received: from matthias.andree by pd951f43c.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 31 May 2004 00:19:59 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Sun, 30 May 2004 21:52:52 +0200 Lines: 27 Message-ID: References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd951f43c.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:ZwE1Cz5c4aNmcmv6C5E8KlsX+B0= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: 0.99.10.5 release candidate X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 May 2004 22:27:08 -0000 X-UID: 9296 Status: O Timo Sirainen writes: > On Fri, 2004-05-28 at 10:21, Matthias Andree wrote: >> Timo Sirainen writes: >> >> > If you don't use fcntl locking (and with NFS you probably won't), you'd >> >> What does this mean? Of course, we'll use fcntl locking with NFS as >> well. At least on Linux and Solaris, this works. > > I thought Linux or BSDs didn't support fcntl locks as NFS client? And > I've heard they've always been more or less buggy.. FreeBSD 4 supported NFS locks only on the server side, but not on the client side. FreeBSD 5 is supposed to support client-side locks as well, but I haven't tried. Linux has been fine for a long time now (I believe that with ext2/ext3, NFS has been doing fine since 2.2.12 or so, for other file systems, XFS and reiserfs in particular, NFS was a problem until late into 2.4). The point is that NFS locking requires fcntl() and will not work with flock(). -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From gmid-dovecot@m.gmane.org Mon May 31 01:29:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 94F82C000DE8; Mon, 31 May 2004 01:29:22 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 3DEBFC000DD2 for ; Mon, 31 May 2004 01:29:20 +0300 (EEST) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BUYh4-00080H-00 for ; Mon, 31 May 2004 00:22:14 +0200 Received: from pd951f43c.dip.t-dialin.net ([217.81.244.60]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 31 May 2004 00:22:14 +0200 Received: from matthias.andree by pd951f43c.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 31 May 2004 00:22:14 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Sun, 30 May 2004 21:55:39 +0200 Lines: 24 Message-ID: References: <20040528120631.GA9680@uk.tiscali.com> <007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> <20040528131454.GA9870@uk.tiscali.com> <00ad01c444b8$02fb9590$6628d0c3@mlab.cs.msu.su> <1085869231.30728.37.camel@hurina> <20040530082249.GA711@uk.tiscali.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd951f43c.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:/B1BQ6o8BC3qYp47DYIoYHHLoEo= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: Small change to make dovecot pop3uw-imapmigrationfriendly X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 May 2004 22:29:22 -0000 X-UID: 9297 Status: O Brian Candler writes: > The main purpose of UIDL is for when clients leave mail on the server; each > time they connect they issue UIDL to check for new mail. So if they have > 1000 messages held on the server, each time they log in you don't want to > have to open and read each of those 1000 files. And clients will also assume that you don't insert messages into the middle of the mailbox, but append them at the end of the list, and that message-number <-> UIDL assignments remain in the known order (obviously, DELE from the middle will change the assignment overall, but if you had no uid 1 abc 2 def 3 ghi dele 2 should keep 1 abc and 2 ghi. -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From lfarkas@bppiac.hu Mon May 31 15:54:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F2FD0C000DD2; Mon, 31 May 2004 15:54:25 +0300 (EEST) Received: from mx1.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by talvi.dovecot.org (Postfix) with ESMTP id 57C8EC0007B4 for ; Mon, 31 May 2004 15:54:23 +0300 (EEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 6E56B16F4B1; Mon, 31 May 2004 14:47:07 +0200 (CEST) Received: from bppiac.hu (eaglen.vpn.bppiac.hu [192.168.255.54]) by mx1.bppiac.hu (Postfix) with ESMTP id 465EB16F4A3 for ; Mon, 31 May 2004 14:47:07 +0200 (CEST) Message-ID: <40BB294B.1080005@bppiac.hu> Date: Mon, 31 May 2004 14:47:07 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040124 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Postfix SASL AUTH from Dovecot References: <1085882048.6244.11.camel@hurina> In-Reply-To: <1085882048.6244.11.camel@hurina> X-Enigmail-Version: 0.83.5.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 12:54:26 -0000 X-UID: 9298 Status: O Content-Length: 1919 hi, my main question here (as always) why we need sasl at all? what is the main pros for sasl? I've never seen any good reason. anyway why do you use dovecot-auth for postfix? postfix has many authentication mechanism for everything. Timo Sirainen wrote: > Again today got annoyed at Cyrus SASL. Upgrading it to newer version had > broken PAM support. Trying to login as "user@domain" resulted it only > asking for "user" from PAM. Well, got it patched and working again, but > I'd rather not go through it all the time.. > > So I finally did what I had been thinking about a year or so, change > Postfix to use dovecot-auth directly. This required cleaning > dovecot-auth quite a lot, but it seems to be working now. > > Actually I finally implemented support for initial SASL response as > well. POP3's AUTH command had required support for it, strange that > no-one ever complained about it not working. > > If you want to try it, you need very latest CVS version of Dovecot and > this patch for Postfix: > > http://dovecot.org/patches/postfix-dovecot-auth.patch > > dovecot-auth can be run on it's own (configuration in environment > variables), or you can use extra_sockets auth setting which is a ':' > separated list of UNIX sockets where to listen in. You'd probably want > to set it to /var/spool/postfix/etc/dovecot-auth, the location is > hardcoded to /etc/dovecot-auth in the patch for now (smtpd is chrooted). > > The only real problem is that Dovecot creates the dovecot-auth socket > using 0660 root:root modes, so you have to manually chmod it to 0666 or > fix owner/group. I guess that needs some more thinking.. Probably each > socket should have separate settings for it, but how to do it easily in > configuration? .. > > The patch has also hardcoded dovecot path in Makefile.in, you'll need to > change that. > -- Levente "Si vis pacem para bellum!" From tss@iki.fi Mon May 31 19:19:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 215CDC000DF3; Mon, 31 May 2004 19:19:59 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 4B8E4C000DE8 for ; Mon, 31 May 2004 19:19:54 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id A22251C185E2; Mon, 31 May 2004 19:12:46 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6420A1C185E1; Mon, 31 May 2004 19:12:12 +0300 (EEST) Subject: Re: [Dovecot] Postfix SASL AUTH from Dovecot From: Timo Sirainen To: Farkas Levente In-Reply-To: <40BB294B.1080005@bppiac.hu> References: <1085882048.6244.11.camel@hurina> <40BB294B.1080005@bppiac.hu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-SMLgg9PziqnldgqRvtPI" Message-Id: <1086019931.23360.39.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 31 May 2004 19:12:12 +0300 X-Spam-Status: No, hits=-8.9 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 16:19:59 -0000 X-UID: 9299 Status: O Content-Length: 2461 --=-SMLgg9PziqnldgqRvtPI Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-05-31 at 15:47, Farkas Levente wrote: > my main question here (as always) why we need sasl at all? > what is the main pros for sasl? > I've never seen any good reason. SMTP AUTH is done with SASL, so IP-address restrictions and POP/IMAP-before-SMTP are the only alternatives. SASL is really just a list of requirements for an authentication mechanism to be SASL compatible. There are plaintext SASL mechanisms (PLAIN, LOGIN) which are commonly used with SMTP authentication. When talking about SASL library it usually does much more than just implement the few SASL mechanisms. It has to know how to verify the passwords and where to find user's home directory etc. dovecot-auth for example consists of: # user/password databases (pam, ldap, sql, ..) ~/cvs/dovecot/src/auth% wc -l db-*.c|tail -1 975 total ~/cvs/dovecot/src/auth% wc -l userdb*.c|tail -1 881 total ~/cvs/dovecot/src/auth% wc -l passdb*.c|tail -1 1497 total # password matching functions (crypt, md5, ..) ~/cvs/dovecot/src/auth% wc -l password*.c|tail -1 475 total # sasl authentication mechanisms ~/cvs/dovecot/src/auth% wc -l mech-*.c 82 mech-anonymous.c 251 mech-cram-md5.c 250 mech-cyrus-sasl2.c 652 mech-digest-md5.c 136 mech-plain.c 1371 total Only the mech-*.c files are SASL mechanism specific code. ANONYMOUS could be done pretty much by sending username "anonymous" and empty password. CRAM-MD5 and DIGEST-MD5 aren't really useful if SSL is being used, except with them server never sees the plaintext password. What could actually be very useful are Kerberos and OTP mechanisms, if someone just implemented them. > anyway why do you use dovecot-auth for postfix? postfix has many=20 > authentication mechanism for everything. AFAIK Postfix uses only Cyrus SASL library for authentication, it hasn't implemented anything internally and it doesn't support any other library (and there aren't many). And Cyrus SASL was the thing I've always disliked. It also means less configuration. --=-SMLgg9PziqnldgqRvtPI Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAu1lbyUhSUUBViskRAg7wAJ0dziRdNEPDru0esTG+J6j2o+4ZlACgnsHL mY7XMca1DQESEdSx2ZtpTBM= =JFNF -----END PGP SIGNATURE----- --=-SMLgg9PziqnldgqRvtPI-- From tss@iki.fi Mon May 31 19:32:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3D0F7C000DD2; Mon, 31 May 2004 19:32:26 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id DE8EAC0007B4 for ; Mon, 31 May 2004 19:32:23 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 194821C185E2; Mon, 31 May 2004 19:25:16 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A90A81C185E1; Mon, 31 May 2004 19:24:41 +0300 (EEST) Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate From: Timo Sirainen To: Brian Candler In-Reply-To: <20040530083226.GB711@uk.tiscali.com> References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-B3rg/cUt3FkAWlmeTsm1" Message-Id: <1086020681.23360.51.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 31 May 2004 19:24:41 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 16:32:26 -0000 X-UID: 9300 Status: O Content-Length: 2668 --=-B3rg/cUt3FkAWlmeTsm1 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2004-05-30 at 11:32, Brian Candler wrote: > For POP3 access, I'm happy for no locks to be in place at all. If someone= is > daft enough to make two concurrent POP3 accesses to the same mailbox, the= n > at worst what happens when they try to retrieve a message is they'll get >=20 > -ERR This message has been deleted by someone else! >=20 > or something like that. I can live with that. That's what Dovecot does now. But that isn't the worst if you have no locks at all. You still want to lock the mailbox while it's being read or written, otherwise there would be either mailbox corruption (two writers at the same time) or user could be sent corrupted mails (one reading while another is writing). > Dotlocks are a pain when you have multiple frontends on an NFS server, > because it's impossible to tell if they're stale (they may contain the > information that they were created by server B pid P, but if you're on > server A, you can't tell whether process P is still running on B or not) Dovecot does what mutt does. If dotlock exists and mailbox or the dotlock isn't modified in 30 seconds, it's overridden. Hmm. Although that might be a bit too aggressive, just reading a large mailbox could take long and that wouldn't modify it.. > If it were felt that locking were important, then I'd propose a simple lo= ck > server process: a client opens a TCP connection to this process, sends th= e > name of the mailbox it wants to lock, and gets an ACK back. If the client > dies then the TCP connection is dropped and the lock is released.=20 I think nfs.lockd does pretty much that, except the client OS must notify if process dies without releasing lock. If the whole computer gets lost, .. I guess the lock stays there for a long time? > I can see > issues with numbers of filehandles/sockets on the lock server process > itself, so you'd have to tweak kernel parameters on a busy system. Perhap= s > you could have a pool of lockserver processes listening on different port= s, > and use a hash of the directory name to work out which one to connect to? Might be useful, but you'd probably want to have redundancy as well as load balancing. Might not be that easy to implement. --=-B3rg/cUt3FkAWlmeTsm1 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAu1xJyUhSUUBViskRAsT2AJ9Dn8BTZFDzQ4Bcc4bArYSjpvajQACfW0Os Hn4tyku9gtoeC7P+Oyth9QA= =0fJP -----END PGP SIGNATURE----- --=-B3rg/cUt3FkAWlmeTsm1-- From b.candler@pobox.com Mon May 31 21:16:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7A760C000DD6; Mon, 31 May 2004 21:16:38 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id 548DDC000DD2 for ; Mon, 31 May 2004 21:16:36 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 61B3713915E; Mon, 31 May 2004 14:09:26 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.228.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 2AB2B139148; Mon, 31 May 2004 14:09:25 -0400 (EDT) Received: from brian by billdog.local.linnet.org with local (Exim 4.31) id 1BUrDu-0000Eo-EF; Mon, 31 May 2004 19:09:22 +0100 Date: Mon, 31 May 2004 19:09:22 +0100 From: Brian Candler To: Timo Sirainen Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate Message-ID: <20040531180922.GA903@uk.tiscali.com> References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1086020681.23360.51.camel@hurina> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 18:16:38 -0000 X-UID: 9301 Status: O Content-Length: 1154 On Mon, May 31, 2004 at 07:24:41PM +0300, Timo Sirainen wrote: > > -ERR This message has been deleted by someone else! > > > > or something like that. I can live with that. > > That's what Dovecot does now. > > But that isn't the worst if you have no locks at all. You still want to > lock the mailbox while it's being read or written, otherwise there would > be either mailbox corruption (two writers at the same time) or user > could be sent corrupted mails (one reading while another is writing). Oh yes, sorry. I now think "Maildir" exclusively, and forget that some people still use mbox :-) Having seen mailservers where users leave 10-20MB of mail on the server, in a single mbox file, where the POP3 server has to read through the whole mbox every time they login just to count how many messages are in there... well, that's enough for me to give up on mbox. > I think nfs.lockd does pretty much that, except the client OS must > notify if process dies without releasing lock. If the whole computer > gets lost, .. I guess the lock stays there for a long time? If it were over TCP, you could turn on keepalives I guess. Cheers, Brian. From tomi.hakala@clinet.fi Mon May 31 21:33:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4E194C000DD6; Mon, 31 May 2004 21:33:20 +0300 (EEST) Received: from smtp2.song.fi (smtp2.song.fi [194.100.2.122]) by talvi.dovecot.org (Postfix) with ESMTP id 57D62C000DD2 for ; Mon, 31 May 2004 21:33:18 +0300 (EEST) Received: from clinet.fi (denver.clinet.fi [194.100.200.66]) by smtp2.song.fi (Postfix) with ESMTP id 2BECF85DB4 for ; Mon, 31 May 2004 21:25:51 +0300 (EEST) Message-ID: <40BB78B1.7D0C62F6@clinet.fi> Date: Mon, 31 May 2004 21:25:53 +0300 From: Tomi Hakala X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 18:33:20 -0000 X-UID: 9302 Status: O Timo Sirainen wrote: >On Sun, 2004-05-30 at 11:32, Brian Candler wrote: > > I can see > > issues with numbers of filehandles/sockets on the lock server process > > itself, so you'd have to tweak kernel parameters on a busy system. Perhaps > > you could have a pool of lockserver processes listening on different ports, > > and use a hash of the directory name to work out which one to connect to? > > Might be useful, but you'd probably want to have redundancy as well as > load balancing. Might not be that easy to implement. How about distributed lock manager which sits on every node? It could communicate with other nodes by multicast, although keeping the lock would require heartbeat packets instead of just keeping TCP session open, thus causing more interrupts and context switches :-( -- Tomi Hakala From discussion-lists@linnet.org Mon May 31 22:46:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0AD23C000DD2; Mon, 31 May 2004 22:46:50 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id E8DB7C0007B4 for ; Mon, 31 May 2004 22:46:47 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 2E9A213916D; Mon, 31 May 2004 15:39:39 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.228.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 6CFF1139167; Mon, 31 May 2004 15:39:38 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BUsdF-0000If-Dx; Mon, 31 May 2004 20:39:37 +0100 Date: Mon, 31 May 2004 20:39:37 +0100 From: Brian Candler To: Matthias Andree Subject: Re: [Dovecot] Re: Small change to make dovecot pop3uw-imapmigrationfriendly Message-ID: <20040531193937.GC1108@uk.tiscali.com> References: <20040528120631.GA9680@uk.tiscali.com> <007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> <20040528131454.GA9870@uk.tiscali.com> <00ad01c444b8$02fb9590$6628d0c3@mlab.cs.msu.su> <1085869231.30728.37.camel@hurina> <20040530082249.GA711@uk.tiscali.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 19:46:50 -0000 X-UID: 9303 Status: O Content-Length: 1397 On Sun, May 30, 2004 at 09:55:39PM +0200, Matthias Andree wrote: > > The main purpose of UIDL is for when clients leave mail on the server; each > > time they connect they issue UIDL to check for new mail. So if they have > > 1000 messages held on the server, each time they log in you don't want to > > have to open and read each of those 1000 files. > > And clients will also assume that you don't insert messages into the > middle of the mailbox, but append them at the end of the list, and that > message-number <-> UIDL assignments remain in the known order They will?? They shouldn't. RFC1939 doesn't allow them to do this as far as I know. > (obviously, DELE from the middle will change the assignment overall, but > if you had > > no uid > 1 abc > 2 def > 3 ghi > > dele 2 should keep 1 abc and 2 ghi. I don't believe they have any permission to assume this. If the server happens to maintain this ordering, well, the client could attempt some sort of dubious binary-chop to work out where new mail has arrived (since some or all messages may have been deleted); I think 'fetchmail' has some code to do this. I consider this an abuse of the protocol. This requirement would mandate that the server do a sort() on the directory listing, because otherwise the order of files returned by opendir/readdir/ closedir is not necessarily the order in which they are created. Brian. From tss@iki.fi Mon May 31 23:38:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C36C7C000DF5; Mon, 31 May 2004 23:38:44 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id CC669C000DD6 for ; Mon, 31 May 2004 23:38:42 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id C489D1C185E2; Mon, 31 May 2004 23:31:34 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 67AF01C185E1 for ; Mon, 31 May 2004 23:31:00 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Eckr5XGCwkb/7sgn3+Ce" Message-Id: <1086035459.29926.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 31 May 2004 23:31:00 +0300 X-Spam-Status: No, hits=-7.2 required=5.0 tests=AWL,BAYES_10,PGP_SIGNATURE_2,SEARCH_ENGINE_PROMO, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test14 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 20:38:44 -0000 X-UID: 9304 Status: O Content-Length: 1826 --=-Eckr5XGCwkb/7sgn3+Ce Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ Maildir syncing is still somewhat broken. I can't really figure out what the problem is. Maybe it's in indexes after all which are just causing bugs in syncing. I think I'll finish implementing mbox syncing and see if same problems appear with it. This release has mostly dovecot-auth changes: - Delay reporting failed authentications - Log IP address of failed authentications (if verbose =3D yes) - Password schemes can now be loaded from plugins. Example: http://dovecot.org/patches/1.0/password-scheme-lmpass.c - (now that I think of it, auth mechanisms could be implemented as plugins as well if they were placed in password-scheme directory, I think I'll change the directory name so it's more logical) - SASL initial responses are supported (POP3) - SHA/SHA1 password scheme implemented with OpenSSL - dovecot-auth can run as standalone process now (but that doesn't work with Dovecot itself at least yet) - Changes to make it more easier to use it outside Dovecot (eg. the Postfix patch) Added new variables which can be used: %l - local IP address %r - remote IP address %P - PID Added mail_log_prefix setting where variables can be used. So if you want eg. "imap(user,ip-addr,pid): ", set it to "%p(%u,%r,%P): ". And others: - added maildir_stat_dirs setting - several bugfixes for indexes --=-Eckr5XGCwkb/7sgn3+Ce Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAu5YDyUhSUUBViskRAjTZAKCU/+9+r+Za+NbMt2nUbaXqNIe2XACeLNIa NhupqXicsf2ttRuCJvzGTZA= =jLOO -----END PGP SIGNATURE----- --=-Eckr5XGCwkb/7sgn3+Ce-- From miquels@cistron.net Tue Jun 1 01:03:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 73D9BC000DD6; Tue, 1 Jun 2004 01:03:56 +0300 (EEST) Received: from smtp.cistron-office.nl (10fwd.cistron-office.nl [62.216.29.197]) by talvi.dovecot.org (Postfix) with ESMTP id 180C8C000DD2 for ; Tue, 1 Jun 2004 01:03:50 +0300 (EEST) Received: from subspace.cistron-office.nl ([62.216.29.200]) by smtp.cistron-office.nl with esmtp (Exim 3.35 #1 (Debian)) id 1BUult-0003Io-00 for ; Mon, 31 May 2004 23:56:41 +0200 Received: from miquels by subspace.cistron-office.nl with local (Exim 3.35 #1 (Debian)) id 1BUuls-0006rO-00 for ; Mon, 31 May 2004 23:56:40 +0200 Date: Mon, 31 May 2004 23:56:40 +0200 From: Miquel van Smoorenburg To: dovecot@dovecot.org Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate Message-ID: <20040531215640.GA25639@cistron.nl> References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-NCC-RegID: nl.cistron User-Agent: Mutt/1.5.4i Sender: Miquel van Smoorenburg X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: dovecot@dovecot.org List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 22:03:56 -0000 X-UID: 9305 Status: O Content-Length: 1283 According to Matthias Andree: > Timo Sirainen writes: > > > I thought Linux or BSDs didn't support fcntl locks as NFS client? And > > I've heard they've always been more or less buggy.. > > Linux has been fine for a long time now (I believe that with ext2/ext3, > NFS has been doing fine since 2.2.12 or so, for other file systems, XFS > and reiserfs in particular, NFS was a problem until late into 2.4). Linux as a client has supported NFS locking for years. As a server, you need to use the kernel NFS server, not the user-level NFS server, to get working NFS locking. That has been stable since 2.4.something. I've been running lots of linux nfs servers and clients in NFSv3 mode with locking enabled, all 2.4 kernels, for one or two years now. No problems. But indeed, you need to use fcntl() locking on Linux to get NFS locking. lockf() is implemented seperately and doesn't work over NFS. You can use flock(), since that is just an interface to fcntl(), but that is Linux specific - on other platforms flock() might not be an interface to fcntl(). (BTW, it sucks that lockf() doesn't work over NFS - the POSIX fcntl() locking semantics are stupid. Closing any other fd in the same process that refers to the same file loses all the locks ? Wtf ? ) Mike. From joshua@shallow.net Tue Jun 1 01:13:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 72B19C000DD6; Tue, 1 Jun 2004 01:13:43 +0300 (EEST) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id 9D0B8C000DD2 for ; Tue, 1 Jun 2004 01:13:40 +0300 (EEST) Received: by yello.shallow.net (Postfix, from userid 1001) id C4C9C2C7B; Tue, 1 Jun 2004 08:06:30 +1000 (EST) Date: Tue, 1 Jun 2004 08:06:30 +1000 From: Joshua Goodall To: Tomi Hakala Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate Message-ID: <20040531220630.GP1698@roughtrade.net> References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> <40BB78B1.7D0C62F6@clinet.fi> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="FwyhczKCDPOVeYh6" Content-Disposition: inline In-Reply-To: <40BB78B1.7D0C62F6@clinet.fi> User-Agent: Mutt/1.5.4i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 22:13:43 -0000 X-UID: 9306 Status: O Content-Length: 1812 --FwyhczKCDPOVeYh6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, May 31, 2004 at 09:25:53PM +0300, Tomi Hakala wrote: > Timo Sirainen wrote: > >On Sun, 2004-05-30 at 11:32, Brian Candler wrote: > > > I can see > > > issues with numbers of filehandles/sockets on the lock server process > > > itself, so you'd have to tweak kernel parameters on a busy system. Pe= rhaps > > > you could have a pool of lockserver processes listening on different = ports, > > > and use a hash of the directory name to work out which one to connect= to? > >=20 > > Might be useful, but you'd probably want to have redundancy as well as > > load balancing. Might not be that easy to implement. >=20 > How about distributed lock manager which sits on every node? It could > communicate with other nodes by multicast, although keeping the lock > would require heartbeat packets instead of just keeping TCP session open, > thus causing more interrupts and context switches :-( This could be done via Spread: www.spread.org. Spread is an extended virtual synchrony toolkit (roughly this means you have an all-or-nothing delivery guarantee). I maintain FreeBSD and Debian-style packages of Spread and find it very useful for distributed applications. It's not written in Dovecot's secure style, however. J --=20 Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 --FwyhczKCDPOVeYh6 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAu6xmPsqE37hMaDwRAihHAKCn2WMGT9hYkuLNuKzlwHYuLp2xXwCg+Bdf O2l52g/Ca+qC1T8sCLqpKfY= =wCNR -----END PGP SIGNATURE----- --FwyhczKCDPOVeYh6-- From matthias.andree@gmx.de Tue Jun 1 01:14:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 170D6C000DFB; Tue, 1 Jun 2004 01:14:37 +0300 (EEST) Received: from mail.dt.e-technik.uni-dortmund.de (mail.dt.e-technik.Uni-Dortmund.DE [129.217.163.1]) by talvi.dovecot.org (Postfix) with ESMTP id 77976C000DF5 for ; Tue, 1 Jun 2004 01:14:01 +0300 (EEST) Received: from m2a2.dyndns.org (krusty.dt.e-technik.uni-dortmund.de [129.217.163.1]) by mail.dt.e-technik.uni-dortmund.de (Postfix) with ESMTP id 69AB09F84; Tue, 1 Jun 2004 00:06:52 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id 1E3A1C2238; Tue, 1 Jun 2004 00:06:51 +0200 (CEST) Received: from merlin.emma.line.org ([127.0.0.1]) by localhost (m2a2.dyndns.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 08376-03-3; Tue, 1 Jun 2004 00:06:50 +0200 (CEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id F411DC2237; Tue, 1 Jun 2004 00:06:49 +0200 (CEST) To: Brian Candler Subject: Re: [Dovecot] Re: Small change to make dovecot pop3uw-imapmigrationfriendly In-Reply-To: <20040531193937.GC1108@uk.tiscali.com> (Brian Candler's message of "Mon, 31 May 2004 20:39:37 +0100") References: <20040528120631.GA9680@uk.tiscali.com> <007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> <20040528131454.GA9870@uk.tiscali.com> <00ad01c444b8$02fb9590$6628d0c3@mlab.cs.msu.su> <1085869231.30728.37.camel@hurina> <20040530082249.GA711@uk.tiscali.com> <20040531193937.GC1108@uk.tiscali.com> From: Matthias Andree Date: Tue, 01 Jun 2004 00:06:49 +0200 Message-ID: User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at m2a2.dyndns.org Cc: Matthias Andree , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 22:14:37 -0000 X-UID: 9307 Status: O Content-Length: 1125 Brian Candler writes: > I don't believe they have any permission to assume this. If the server > happens to maintain this ordering, well, the client could attempt some sort > of dubious binary-chop to work out where new mail has arrived (since some or > all messages may have been deleted) Yup, given the lack of a range for UIDL, this is necessary. > ; I think 'fetchmail' has some code to do > this. I consider this an abuse of the protocol. Historical convention, earlier POP3 versions required this, to support the LAST command. > This requirement would mandate that the server do a sort() on the directory > listing, because otherwise the order of files returned by opendir/readdir/ > closedir is not necessarily the order in which they are created. True. I know this feature was implemented by Courier-IMAP around 2.0 because too many clients choked with adding new mail out-of-order. qmail-pop3d also shows new mail at the end of the list, and it is perhaps a reference implementation of all Maildir POP3 servers. -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From dpham@mercy.com.au Tue Jun 1 06:52:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B8B99C000DD2; Tue, 1 Jun 2004 06:52:03 +0300 (EEST) Received: from coregw02.mercynet.com.au (unknown [203.134.124.68]) by talvi.dovecot.org (Postfix) with ESMTP id B65B1C000D8E for ; Tue, 1 Jun 2004 06:51:58 +0300 (EEST) Received: from coremx01.mercynet.com.au ([172.27.241.1]) by coregw02 with trend_isnt_name_B; Tue, 01 Jun 2004 13:44:45 +1000 X-MimeOLE: Produced By Microsoft Exchange V6.5.6944.0 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Tue, 1 Jun 2004 13:44:45 +1000 Message-ID: <3ED0289A9D58414D9AD116DA91E2E96915E7DF@coremx01.mercynet.com.au> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: IMAP login name conversion Thread-Index: AcRHiUF48ASY98ZQTMil+JRlCry0Bg== From: "Zoong Pham" To: Subject: [Dovecot] IMAP login name conversion X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 03:52:05 -0000 X-UID: 9308 Status: O Hi all, Out IMAP client (Outlook and others) use login name like = joedirt@domainname.com I need dovecot to convert it to joedirt-domainname_com since that is the = local login name. Can someone give me a hint how to do that? Is there any simple way to do it or do I have to modify any source code? Thanks, Zoong From chibi@gol.com Tue Jun 1 07:38:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7635CC000DD2; Tue, 1 Jun 2004 07:38:25 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id A8AE3C000D8E for ; Tue, 1 Jun 2004 07:38:22 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BV0ve-0007Dp-00 for ; Tue, 01 Jun 2004 13:31:10 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate In-reply-to: <20040531180922.GA903@uk.tiscali.com> References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> <20040531180922.GA903@uk.tiscali.com> Comments: In-reply-to Brian Candler message dated "Mon, 31 May 2004 19:09:22 +0100." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 01 Jun 2004 13:31:09 +0900 From: Christian Balzer Message-Id: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 04:38:25 -0000 X-UID: 9309 Status: O Content-Length: 1680 Brian wrote: >On Mon, May 31, 2004 at 07:24:41PM +0300, Timo Sirainen wrote: >> > -ERR This message has been deleted by someone else! >> > >> > or something like that. I can live with that. >> >> That's what Dovecot does now. >> >> But that isn't the worst if you have no locks at all. You still want to >> lock the mailbox while it's being read or written, otherwise there would >> be either mailbox corruption (two writers at the same time) or user >> could be sent corrupted mails (one reading while another is writing). > >Oh yes, sorry. I now think "Maildir" exclusively, and forget that some >people still use mbox :-) > Converting tens of thousands of users (in a fast and transparent as possible fashion) is no easy feat. >Having seen mailservers where users leave 10-20MB of mail on the server, in >a single mbox file, where the POP3 server has to read through the whole mbox >every time they login just to count how many messages are in there... well, >that's enough for me to give up on mbox. > Tell me about it. ;P Note though that maildir still leaves you vulnerable to some extent with large individual mails (we allow for 10MB per message max here). The atomic tmp -> new move prevents of course the case of multiple (inbound, SMTP) writers. Alas following a recent conversation in this ML with Timo all that saves your butt and mail integrity in the case when a large message being read by slow client gets deleted by another client (dovecot instance) is Saint BufferCache. ;) Regards, Christian -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From discussion-lists@linnet.org Tue Jun 1 11:07:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 704DDC000DD2; Tue, 1 Jun 2004 11:07:51 +0300 (EEST) Received: from icicle.pobox.com (icicle.pobox.com [207.8.226.3]) by talvi.dovecot.org (Postfix) with ESMTP id 472C3C000D8E for ; Tue, 1 Jun 2004 11:07:45 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by icicle.pobox.com (Postfix) with ESMTP id A848B1034F9; Tue, 1 Jun 2004 04:00:25 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by icicle.pobox.com (Postfix) with ESMTP id 3BA11103822; Tue, 1 Jun 2004 04:00:17 -0400 (EDT) Received: from localhost.localdomain (localhost [127.0.0.1]) by jester.pobox.com (Postfix) with ESMTP id 50E1878C; Tue, 1 Jun 2004 04:00:16 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.228.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id F2C7677F; Tue, 1 Jun 2004 04:00:13 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BV4Bv-0000Db-UY; Tue, 01 Jun 2004 09:00:11 +0100 Date: Tue, 1 Jun 2004 09:00:11 +0100 From: Brian Candler To: Christian Balzer Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate Message-ID: <20040601080011.GA704@uk.tiscali.com> References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> <20040531180922.GA903@uk.tiscali.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 08:07:52 -0000 X-UID: 9310 Status: O Content-Length: 2160 On Tue, Jun 01, 2004 at 01:31:09PM +0900, Christian Balzer wrote: > >Oh yes, sorry. I now think "Maildir" exclusively, and forget that some > >people still use mbox :-) > > > Converting tens of thousands of users (in a fast and transparent as > possible fashion) is no easy feat. It's not hard in principle. courier-imap has a feature called "loginexec" (actually something I wrote and managed to persuade Sam to include). Whenever you login, if a file called "loginexec" exists within the Maildir and is executable, it is run. If it terminates with a zero exit code then it is deleted. So in your case, within each Maildir you put a small loginexec script which performs the conversion from mbox to Maildir. The next time this user logs in, their mail gets converted, and then the loginexec file is deleted. What I was using loginexec for was to transfer mail from a remote POP3 server; I wrote a small C program which pulled mail from the old server (given the hostname, username and password) and dropped it into the local Maildir. I've successfully migrated hundreds of thousands of mailboxes in this way, where I don't even have shell access to the old POP3 server. > Note though that maildir still leaves you vulnerable to some extent > with large individual mails (we allow for 10MB per message max here). Sorry, I don't follow. There's no need for the pop3/imap server to *read* every message each time a user logs in. The size for LIST can be cached, so you'd only actually open the file when the client requests the message content or headers. > The atomic tmp -> new move prevents of course the case of multiple > (inbound, SMTP) writers. Alas following a recent conversation in this > ML with Timo all that saves your butt and mail integrity in the case > when a large message being read by slow client gets deleted by another > client (dovecot instance) is Saint BufferCache. ;) I don't understand that comment either. If process A has a file open, and process B deletes it, the file remains (in its entirety) on the filesystem until process A closes it. That's not buffer caching; that's the semantics of unlink(). Regards, Brian. From discussion-lists@linnet.org Tue Jun 1 11:20:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 47B96C000DD6; Tue, 1 Jun 2004 11:20:26 +0300 (EEST) Received: from integer.pobox.com (integer.pobox.com [208.58.1.194]) by talvi.dovecot.org (Postfix) with ESMTP id AE7DAC000D8E for ; Tue, 1 Jun 2004 11:20:23 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by integer.pobox.com (Postfix) with ESMTP id 577799929A; Tue, 1 Jun 2004 04:13:09 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by integer.pobox.com (Postfix) with ESMTP id A8E8E99581; Tue, 1 Jun 2004 04:12:36 -0400 (EDT) Received: from localhost.localdomain (localhost [127.0.0.1]) by jester.pobox.com (Postfix) with ESMTP id BB55677F; Tue, 1 Jun 2004 04:12:35 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.228.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id 798AF77B; Tue, 1 Jun 2004 04:12:34 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BV4Nt-0000E0-21; Tue, 01 Jun 2004 09:12:33 +0100 Date: Tue, 1 Jun 2004 09:12:33 +0100 From: Brian Candler To: Matthias Andree Subject: Re: [Dovecot] Re: Small change to make dovecot pop3uw-imapmigrationfriendly Message-ID: <20040601081233.GB704@uk.tiscali.com> References: <20040528120631.GA9680@uk.tiscali.com> <007301c444af$d37719a0$6628d0c3@mlab.cs.msu.su> <20040528131454.GA9870@uk.tiscali.com> <00ad01c444b8$02fb9590$6628d0c3@mlab.cs.msu.su> <1085869231.30728.37.camel@hurina> <20040530082249.GA711@uk.tiscali.com> <20040531193937.GC1108@uk.tiscali.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 08:20:26 -0000 X-UID: 9311 Status: O Content-Length: 2058 On Tue, Jun 01, 2004 at 12:06:49AM +0200, Matthias Andree wrote: > > I don't believe they have any permission to assume this. If the server > > happens to maintain this ordering, well, the client could attempt some sort > > of dubious binary-chop to work out where new mail has arrived (since some or > > all messages may have been deleted) > > Yup, given the lack of a range for UIDL, this is necessary. I wouldn't say "necessary" - I'd say "a possible optimisation not sanctioned by the RFC" But anyway, I'm sure you'd agree that clients are not *required* to perform this optimisation. So, some (many?) clients do ask for a complete UIDL listing every time they connect. If there are 1000 old messages in the mailbox, then you definitely don't want to open and read every one to find its X-POP3-UID header. Equally, clients may ask for a complete LIST of the maildrop. Again, you don't want to open and read every message file just to calculate its size. courier-imap used to do this, and the load was enormous from clients which left mail on the server. Once it introduced a cache file (courierpop3dsizelist), this problem went away. (This file also stores the UID; previously it had used the Maildir filename as UID, but this turned out to be too long for some clients) I'm not trying to be pro-courier-imap here, by the way. I'd be happy to have a path to bail out; but there are some key features that I need to have first. One is Maildir++ quotas, and another is efficient POP3 operation in the presence of clients who leave mail on server, and issue a full maildrop UIDL and/or LIST each time they connect. A mechanism for transparent migration of mailbox contents from a remote POP3 server is another. If I can preserve the original UID of each message when migrating mail, then this will be a bonus which courier-imap doesn't give me. Oh, and perhaps most important of all, I need robustness. The pop3/imap server should not die and drop the connection, say because a message within the maildrop is mailformed in some way. Regards, Brian. From jaekel@webgods.de Tue Jun 1 13:27:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 114AFC000DD2; Tue, 1 Jun 2004 13:27:38 +0300 (EEST) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by talvi.dovecot.org (Postfix) with ESMTP id EB37CC000D8E for ; Tue, 1 Jun 2004 13:27:35 +0300 (EEST) Received: from ANDREAS-M5LES2F.webgods.de (yian-ho03.nir.cronon.net [192.166.201.90]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by fredda.webgods.de (Postfix) with ESMTP id E2D5F13C008 for ; Tue, 1 Jun 2004 12:20:25 +0200 (CEST) Message-Id: <5.2.1.1.0.20040601115849.02e8ae28@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Tue, 01 Jun 2004 12:13:20 +0200 To: dovecot@dovecot.org From: Andreas Jaekel Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: [Dovecot] 1.0-test14: no sendfile() in Solaris 8 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 10:27:38 -0000 X-UID: 9312 Status: O Aloha. The current CVS snapshot and 1.0-test14 will not build on Solaris 8 because it does not provide a sendfile() funtion. It just has sendfilev(). Solaris 9 has sendfile(), though. Using the old sendfile-util.c from 1.0-test1 and setting HAVE_SOLARIS_SENDFILEV instead of HAVE_LINUX_SENDFILE in config.h works. Greetings, Andy. From dgc@uchicago.edu Tue Jun 1 14:16:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6945FC000DD2; Tue, 1 Jun 2004 14:16:35 +0300 (EEST) Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by talvi.dovecot.org (Postfix) with ESMTP id 8854AC000D8E for ; Tue, 1 Jun 2004 14:16:31 +0300 (EEST) Received: from dust.uchicago.edu (localhost [127.0.0.1]) by dust.uchicago.edu (8.12.10/8.12.9) with ESMTP id i51B8qJx020705; Tue, 1 Jun 2004 06:08:52 -0500 (CDT) Received: (from dgc@localhost) by dust.uchicago.edu (8.12.10/8.12.10/Submit) id i51B8p6J020704; Tue, 1 Jun 2004 06:08:51 -0500 (CDT) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Tue, 1 Jun 2004 06:08:51 -0500 From: David Champion To: Andreas Jaekel Message-ID: <20040601110851.GA20313@dust.uchicago.edu> Mail-Followup-To: Andreas Jaekel , dovecot@dovecot.org References: <5.2.1.1.0.20040601115849.02e8ae28@fredda.webgods.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5.2.1.1.0.20040601115849.02e8ae28@fredda.webgods.de> X-Virus-Trap: submit@cdc.uchicago.edu X-Spam-Trap: submit@nospam.uchicago.edu X-Gouranga: Gouranga gouranga gouranga X-Quote: Can I have my sword back? User-Agent: Mutt/1.5.6i Cc: dovecot@dovecot.org Subject: [Dovecot] Re: 1.0-test14: no sendfile() in Solaris 8 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 11:16:35 -0000 X-UID: 9313 Status: O * On 2004.06.01, in <5.2.1.1.0.20040601115849.02e8ae28@fredda.webgods.de>, * "Andreas Jaekel" wrote: > Aloha. > > The current CVS snapshot and 1.0-test14 will not build on Solaris 8 > because it does not provide a sendfile() funtion. It just has sendfilev(). It's available via patch -- perhaps 111297-01. http://sunsolve.sun.com/pub-cgi/findPatch.pl?patchId=111297&rev=01 I have not tried building 1.0-test14 with it, though. -- -D. dgc@uchicago.edu NSIT::ENSS No money, no book. No book, no study. No study, no pass. No pass, no graduate. No graduate, no job. No job, no money. T h e U n i v e r s i t y o f C h i c a g o From tss@iki.fi Tue Jun 1 14:43:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1180FC000DED; Tue, 1 Jun 2004 14:43:24 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 37A9FC000DD6 for ; Tue, 1 Jun 2004 14:43:20 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id ABBBC1C185F2; Tue, 1 Jun 2004 14:36:10 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B9F0A1C185E5; Tue, 1 Jun 2004 14:35:36 +0300 (EEST) In-Reply-To: <5.2.1.1.0.20040601115849.02e8ae28@fredda.webgods.de> References: <5.2.1.1.0.20040601115849.02e8ae28@fredda.webgods.de> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-4-408353163" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test14: no sendfile() in Solaris 8 Date: Tue, 1 Jun 2004 14:35:35 +0300 To: Andreas Jaekel X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.8 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 11:43:24 -0000 X-UID: 9314 Status: O --Apple-Mail-4-408353163 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 1.6.2004, at 13:13, Andreas Jaekel wrote: > The current CVS snapshot and 1.0-test14 will not build on Solaris 8 > because it does not provide a sendfile() funtion. It just has > sendfilev(). > Solaris 9 has sendfile(), though. Doesn't the configure detect that you don't have it? It shouldn't define HAVE_SOLARIS_SENDFILE if it isn't there (if sendfile library doesn't have sendfile() function). --Apple-Mail-4-408353163 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAvGoHyUhSUUBViskRAj+rAJ4zzgBeDcnpaETNizkF9cfbBZAfiQCffa0t B3LBJpV6o7rvKhlgQyBQBkA= =sYJ9 -----END PGP SIGNATURE----- --Apple-Mail-4-408353163-- From tss@iki.fi Tue Jun 1 14:46:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E0F50C00280A; Tue, 1 Jun 2004 14:46:17 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0510DC000DD6 for ; Tue, 1 Jun 2004 14:46:16 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 7DB4A1C185F3; Tue, 1 Jun 2004 14:39:06 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 830C11C185E5; Tue, 1 Jun 2004 14:38:32 +0300 (EEST) In-Reply-To: <3ED0289A9D58414D9AD116DA91E2E96915E7DF@coremx01.mercynet.com.au> References: <3ED0289A9D58414D9AD116DA91E2E96915E7DF@coremx01.mercynet.com.au> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-5-408529243" Message-Id: <353E816C-B3C0-11D8-9D25-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] IMAP login name conversion Date: Tue, 1 Jun 2004 14:38:31 +0300 To: "Zoong Pham" X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.9 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 11:46:18 -0000 X-UID: 9315 Status: O Content-Length: 1037 --Apple-Mail-5-408529243 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 1.6.2004, at 06:44, Zoong Pham wrote: > Out IMAP client (Outlook and others) use login name like > joedirt@domainname.com > > I need dovecot to convert it to joedirt-domainname_com since that is > the local login name. > Can someone give me a hint how to do that? > Is there any simple way to do it or do I have to modify any source > code? What passdb and userdb do you use? Unless you're authenticating from SQL you probably have to modify the source. --Apple-Mail-5-408529243 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAvGq3yUhSUUBViskRAtXxAJ0U71SQmvwj0nA0UKmgPH+pJLoCCACfUgxF b7EqCsGzu9c/IFuJbpoineA= =wf7O -----END PGP SIGNATURE----- --Apple-Mail-5-408529243-- From olive@pasteur.fr Tue Jun 1 15:18:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4134CC000DD6; Tue, 1 Jun 2004 15:18:50 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id 145FAC000D8E for ; Tue, 1 Jun 2004 15:18:48 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 79EA511474 for ; Tue, 1 Jun 2004 14:11:37 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 3857111473 for ; Tue, 1 Jun 2004 14:11:37 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id E2FA03F63F; Tue, 1 Jun 2004 14:11:36 +0200 (CEST) Date: Tue, 1 Jun 2004 14:11:36 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] 0.99.10.5 release candidate Message-ID: <20040601121136.GK3141@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <20040527152630.GN43374@mafate.sis.pasteur.fr> <229F5DEF-AFF7-11D8-8870-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <229F5DEF-AFF7-11D8-8870-000393CC2E90@iki.fi> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 12:18:50 -0000 X-UID: 9316 Status: O * Timo Sirainen (20040527 19:01): > >Oh yes it is. I have never taken the trouble to examine the > >figures closer. Is it a problem or is it normal? > > Would attached patch help? Wasn't a real problem if it does, but then I > have to keep in mind that NFS implementations can do this too to avoid > real problems elsewhere.. With 0.99.10.5 and this patch, things seem to have settled to normal and I do not have spurious log messages anymore. I think I will soon put this server into production. Thanks! -- olive From tss@iki.fi Tue Jun 1 15:23:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B56D9C000DD6; Tue, 1 Jun 2004 15:23:20 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 8FFDBC000D8E for ; Tue, 1 Jun 2004 15:23:18 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id F375E1C185F2; Tue, 1 Jun 2004 15:16:08 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F30411C185E5; Tue, 1 Jun 2004 15:15:34 +0300 (EEST) Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate From: Timo Sirainen To: Brian Candler In-Reply-To: <20040601080011.GA704@uk.tiscali.com> References: <1085511447.27732.96.camel@hurina> <20040527141148.GL43374@mafate.sis.pasteur.fr> <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> <20040531180922.GA903@uk.tiscali.com> <20040601080011.GA704@uk.tiscali.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-fgx+q/QLCY7itfx256yZ" Message-Id: <1086092134.29926.26.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 01 Jun 2004 15:15:34 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Christian Balzer , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 12:23:20 -0000 X-UID: 9317 Status: O Content-Length: 1286 --=-fgx+q/QLCY7itfx256yZ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-01 at 11:00, Brian Candler wrote: > > The atomic tmp -> new move prevents of course the case of multiple=20 > > (inbound, SMTP) writers. Alas following a recent conversation in this > > ML with Timo all that saves your butt and mail integrity in the case > > when a large message being read by slow client gets deleted by another > > client (dovecot instance) is Saint BufferCache. ;) >=20 > I don't understand that comment either. If process A has a file open, and > process B deletes it, the file remains (in its entirety) on the filesyste= m > until process A closes it. That's not buffer caching; that's the semantic= s > of unlink(). I think Christian was talking about NFS, it doesn't follow the "semantics of unlink()". Rather if a file is deleted and it's tried to be read later you'll get ESTALE. --=-fgx+q/QLCY7itfx256yZ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAvHNmyUhSUUBViskRAvokAKCQD6c7nNNhDm1ehShOLYvp61ZKqQCeIOrm hY9zi1mp5H02YCvF47SNDwE= =QXS1 -----END PGP SIGNATURE----- --=-fgx+q/QLCY7itfx256yZ-- From jaekel@webgods.de Tue Jun 1 15:51:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2F622C000DD6; Tue, 1 Jun 2004 15:51:53 +0300 (EEST) Received: from fredda.webgods.de (fredda.webgods.de [192.166.196.83]) by talvi.dovecot.org (Postfix) with ESMTP id 31BB7C000D8E for ; Tue, 1 Jun 2004 15:51:51 +0300 (EEST) Received: from ANDREAS-M5LES2F.webgods.de (yian-ho03.nir.cronon.net [192.166.201.90]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by fredda.webgods.de (Postfix) with ESMTP id 4C47213C008 for ; Tue, 1 Jun 2004 14:44:41 +0200 (CEST) Message-Id: <5.2.1.1.0.20040601143728.02d55580@fredda.webgods.de> X-Sender: jaekel@fredda.webgods.de X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 Date: Tue, 01 Jun 2004 14:37:36 +0200 To: dovecot@dovecot.org From: Andreas Jaekel Subject: Re: [Dovecot] 1.0-test14: no sendfile() in Solaris 8 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 12:51:53 -0000 X-UID: 9318 Status: O At 14:35 01/06/2004 +0300, you wrote: >On 1.6.2004, at 13:13, Andreas Jaekel wrote: > >>The current CVS snapshot and 1.0-test14 will not build on Solaris 8 >>because it does not provide a sendfile() funtion. It just has sendfilev(). >>Solaris 9 has sendfile(), though. > >Doesn't the configure detect that you don't have it? It shouldn't define >HAVE_SOLARIS_SENDFILE if it isn't there (if sendfile library doesn't have >sendfile() function). No, it doesn't. The test for the linux sendfile() function uses ac_compile, no ac_link. So all you get is an "implicit declaration" warning in configure.log, but since the final check is for test -z a.out configure will always happily detect linux sendfile. Greetings, Andy From discussion-lists@linnet.org Tue Jun 1 16:24:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 61FE5C000DFA; Tue, 1 Jun 2004 16:24:50 +0300 (EEST) Received: from majesty.pobox.com (majesty.pobox.com [208.210.124.70]) by talvi.dovecot.org (Postfix) with ESMTP id B9D2AC000DD6 for ; Tue, 1 Jun 2004 16:24:47 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by majesty.pobox.com (Postfix) with ESMTP id C76B5C851A; Tue, 1 Jun 2004 09:17:31 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by majesty.pobox.com (Postfix) with ESMTP id EDB63C88D5; Tue, 1 Jun 2004 09:16:48 -0400 (EDT) Received: from localhost.localdomain (localhost [127.0.0.1]) by jester.pobox.com (Postfix) with ESMTP id 4276D7B2; Tue, 1 Jun 2004 09:14:47 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.228.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id 0233378C; Tue, 1 Jun 2004 09:14:46 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BV96M-0000Xa-3G; Tue, 01 Jun 2004 14:14:46 +0100 Date: Tue, 1 Jun 2004 14:14:46 +0100 From: Brian Candler To: Timo Sirainen Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate Message-ID: <20040601131446.GA2053@uk.tiscali.com> References: <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> <20040531180922.GA903@uk.tiscali.com> <20040601080011.GA704@uk.tiscali.com> <1086092134.29926.26.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1086092134.29926.26.camel@hurina> User-Agent: Mutt/1.4.1i Cc: Christian Balzer , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 13:24:50 -0000 X-UID: 9319 Status: O On Tue, Jun 01, 2004 at 03:15:34PM +0300, Timo Sirainen wrote: > > I don't understand that comment either. If process A has a file open, and > > process B deletes it, the file remains (in its entirety) on the filesystem > > until process A closes it. That's not buffer caching; that's the semantics > > of unlink(). > > I think Christian was talking about NFS, it doesn't follow the > "semantics of unlink()". Rather if a file is deleted and it's tried to > be read later you'll get ESTALE. Bleurgh. Thanks, I stand corrected (and see one of the reasons why NFS is considered as nasty) In that case, if this happens while a message is being downloaded, all the POP3 server can do is drop the TCP connection, to prevent the client getting a partial message. Cheers, Brian. From gmid-dovecot@m.gmane.org Tue Jun 1 21:53:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 66A90C000DED; Tue, 1 Jun 2004 21:53:01 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 4BA32C000DD6 for ; Tue, 1 Jun 2004 21:52:59 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BVEGT-0000o6-00 for ; Tue, 01 Jun 2004 20:45:33 +0200 Received: from pd9e1e54e.dip.t-dialin.net ([217.225.229.78]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 01 Jun 2004 20:45:33 +0200 Received: from matthias.andree by pd9e1e54e.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 01 Jun 2004 20:45:33 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Tue, 01 Jun 2004 17:10:39 +0200 Lines: 13 Message-ID: References: <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> <20040531180922.GA903@uk.tiscali.com> <20040601080011.GA704@uk.tiscali.com> <1086092134.29926.26.camel@hurina> <20040601131446.GA2053@uk.tiscali.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd9e1e54e.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:idK22xIkGnNeMlbeEGCqsFSTZxo= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: 0.99.10.5 release candidate X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 18:53:01 -0000 X-UID: 9320 Status: O Brian Candler writes: > In that case, if this happens while a message is being downloaded, all the > POP3 server can do is drop the TCP connection, to prevent the client getting > a partial message. I'll take bets as to what client recognizes EOF as "don't display/store this message" O:-) -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From tss@iki.fi Tue Jun 1 21:58:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E4F65C000DFB; Tue, 1 Jun 2004 21:58:54 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 6488BC000DD6 for ; Tue, 1 Jun 2004 21:58:52 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 2769F1C185F3; Tue, 1 Jun 2004 21:51:42 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 211371C185E2 for ; Tue, 1 Jun 2004 21:51:08 +0300 (EEST) Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: References: <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> <20040531180922.GA903@uk.tiscali.com> <20040601080011.GA704@uk.tiscali.com> <1086092134.29926.26.camel@hurina> <20040601131446.GA2053@uk.tiscali.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Yg71DoIP46HuAacDJTsb" Message-Id: <1086115867.24096.4.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 01 Jun 2004 21:51:07 +0300 X-Spam-Status: No, hits=-9.3 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 18:58:55 -0000 X-UID: 9321 Status: O --=-Yg71DoIP46HuAacDJTsb Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-01 at 18:10, Matthias Andree wrote: > Brian Candler writes: >=20 > > In that case, if this happens while a message is being downloaded, all = the > > POP3 server can do is drop the TCP connection, to prevent the client ge= tting > > a partial message. >=20 > I'll take bets as to what client recognizes EOF as "don't display/store > this message" O:-) Actually I think most POP3 clients would handle this correctly. Dying TCP connections are quite common with dialups. --=-Yg71DoIP46HuAacDJTsb Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAvNAayUhSUUBViskRAvbVAJ4vABw+gRWZuTIrPqc0kBcl89uuWQCgl49P /gzSzT7fpmQSK6NGwO73sPA= =h/sR -----END PGP SIGNATURE----- --=-Yg71DoIP46HuAacDJTsb-- From strombrg@dcs.nac.uci.edu Tue Jun 1 23:33:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4F894C000DED; Tue, 1 Jun 2004 23:33:37 +0300 (EEST) Received: from dcs.nac.uci.edu (dcs.nac.uci.edu [128.200.34.32]) by talvi.dovecot.org (Postfix) with ESMTP id 885CFC000DD6 for ; Tue, 1 Jun 2004 23:33:33 +0300 (EEST) Received: from [128.200.34.35] (tesuji.nac.uci.edu [128.200.34.35]) by dcs.nac.uci.edu (8.12.11/8.12.10) with ESMTP id i51KQFKd023311; Tue, 1 Jun 2004 13:26:15 -0700 Subject: Re: [Dovecot] Postfix SASL AUTH from Dovecot From: Dan Stromberg To: Timo Sirainen In-Reply-To: <1086019931.23360.39.camel@hurina> References: <1085882048.6244.11.camel@hurina> <40BB294B.1080005@bppiac.hu> <1086019931.23360.39.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-d93ev0bQY+7gxbTw2MBa" Message-Id: <1086121575.24881.12.camel@tesuji.nac.uci.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Tue, 01 Jun 2004 13:26:15 -0700 Cc: Dan Stromberg , Farkas Levente , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 20:33:37 -0000 X-UID: 9322 Status: O Content-Length: 3222 --=-d93ev0bQY+7gxbTw2MBa Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Just guessing from my armchair here, but I believe I heard Wietse (of postfix and tcp wrappers fame) wasn't willing to include SMTP AUTH patches into postfix, because SASL was too large and unaudited. If you have something that allows authenticated SMTP for postfix via dovecot, and it's not a huge gob of unaudited code, you might be onto something really nice - particularly if the changes can be included in the postfix (or dovecot?) baseline so people don't have to patch, and repatch, and hope patching continues to work. On Mon, 2004-05-31 at 09:12, Timo Sirainen wrote: > On Mon, 2004-05-31 at 15:47, Farkas Levente wrote: > > my main question here (as always) why we need sasl at all? > > what is the main pros for sasl? > > I've never seen any good reason. >=20 > SMTP AUTH is done with SASL, so IP-address restrictions and > POP/IMAP-before-SMTP are the only alternatives. >=20 > SASL is really just a list of requirements for an authentication > mechanism to be SASL compatible. There are plaintext SASL mechanisms > (PLAIN, LOGIN) which are commonly used with SMTP authentication. >=20 > When talking about SASL library it usually does much more than just > implement the few SASL mechanisms. It has to know how to verify the > passwords and where to find user's home directory etc. dovecot-auth for > example consists of: >=20 > # user/password databases (pam, ldap, sql, ..) > ~/cvs/dovecot/src/auth% wc -l db-*.c|tail -1 > 975 total > ~/cvs/dovecot/src/auth% wc -l userdb*.c|tail -1 > 881 total > ~/cvs/dovecot/src/auth% wc -l passdb*.c|tail -1 > 1497 total > # password matching functions (crypt, md5, ..) > ~/cvs/dovecot/src/auth% wc -l password*.c|tail -1 > 475 total > # sasl authentication mechanisms > ~/cvs/dovecot/src/auth% wc -l mech-*.c > 82 mech-anonymous.c > 251 mech-cram-md5.c > 250 mech-cyrus-sasl2.c > 652 mech-digest-md5.c > 136 mech-plain.c > 1371 total >=20 > Only the mech-*.c files are SASL mechanism specific code. ANONYMOUS > could be done pretty much by sending username "anonymous" and empty > password. CRAM-MD5 and DIGEST-MD5 aren't really useful if SSL is being > used, except with them server never sees the plaintext password. What > could actually be very useful are Kerberos and OTP mechanisms, if > someone just implemented them. >=20 > > anyway why do you use dovecot-auth for postfix? postfix has many=20 > > authentication mechanism for everything. >=20 > AFAIK Postfix uses only Cyrus SASL library for authentication, it hasn't > implemented anything internally and it doesn't support any other library > (and there aren't many). And Cyrus SASL was the thing I've always > disliked. >=20 > It also means less configuration. --=20 Dan Stromberg DCS/NACS/UCI --=-d93ev0bQY+7gxbTw2MBa Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBAvOZno0feVm00f/8RAh0bAJsHO6B/4QgCasci2dNZqGNeM+ug6QCgmV0+ LHPtoB0Nu+B/NAjHkAKVEL0= =6+Tn -----END PGP SIGNATURE----- --=-d93ev0bQY+7gxbTw2MBa-- From matthias.andree@gmx.de Wed Jun 2 00:22:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5AECBC000DD6; Wed, 2 Jun 2004 00:22:32 +0300 (EEST) Received: from mail.dt.e-technik.uni-dortmund.de (krusty.dt.e-technik.Uni-Dortmund.DE [129.217.163.1]) by talvi.dovecot.org (Postfix) with ESMTP id 3BD79C000DD1 for ; Wed, 2 Jun 2004 00:22:30 +0300 (EEST) Received: from m2a2.dyndns.org (krusty.dt.e-technik.uni-dortmund.de [129.217.163.1]) by mail.dt.e-technik.uni-dortmund.de (Postfix) with ESMTP id 69C8C2D5DE; Tue, 1 Jun 2004 23:15:19 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id E993EC2BC0; Tue, 1 Jun 2004 23:15:17 +0200 (CEST) Received: from merlin.emma.line.org ([127.0.0.1]) by localhost (m2a2.dyndns.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 20771-03-4; Tue, 1 Jun 2004 23:15:11 +0200 (CEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id E3131C2BD6; Tue, 1 Jun 2004 23:15:09 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate In-Reply-To: <1086115867.24096.4.camel@hurina> (Timo Sirainen's message of "Tue, 01 Jun 2004 21:51:07 +0300") References: <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> <20040531180922.GA903@uk.tiscali.com> <20040601080011.GA704@uk.tiscali.com> <1086092134.29926.26.camel@hurina> <20040601131446.GA2053@uk.tiscali.com> <1086115867.24096.4.camel@hurina> From: Matthias Andree Date: Tue, 01 Jun 2004 23:15:09 +0200 Message-ID: User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at m2a2.dyndns.org Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 21:22:32 -0000 X-UID: 9323 Status: O Timo Sirainen writes: > Actually I think most POP3 clients would handle this correctly. Dying > TCP connections are quite common with dialups. Ah well. Might be I am just lucky, but I have never been plagued by dying connections on dialups. Slow maybe, but not dying. -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From tss@iki.fi Wed Jun 2 00:40:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0A11CC000DD6; Wed, 2 Jun 2004 00:40:18 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0B037C000DD1 for ; Wed, 2 Jun 2004 00:40:16 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 828071C185F3; Wed, 2 Jun 2004 00:33:05 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DE2411C1D0E2; Wed, 2 Jun 2004 00:32:27 +0300 (EEST) In-Reply-To: References: <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> <20040531180922.GA903@uk.tiscali.com> <20040601080011.GA704@uk.tiscali.com> <1086092134.29926.26.camel@hurina> <20040601131446.GA2053@uk.tiscali.com> <1086115867.24096.4.camel@hurina> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-10-444158516" Message-Id: <29F18EC5-B413-11D8-9D25-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate Date: Wed, 2 Jun 2004 00:32:20 +0300 To: Matthias Andree X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.9 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 21:40:18 -0000 X-UID: 9324 Status: O Content-Length: 1139 --Apple-Mail-10-444158516 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2.6.2004, at 00:15, Matthias Andree wrote: > Timo Sirainen writes: > >> Actually I think most POP3 clients would handle this correctly. Dying >> TCP connections are quite common with dialups. > > Ah well. Might be I am just lucky, but I have never been plagued by > dying connections on dialups. Slow maybe, but not dying. Do you exit your POP3 client every time before disconnecting? ;) Anyway, I think it's common enough event that POP3 client authors have figured out that it might happen and don't permanently store the partial message. --Apple-Mail-10-444158516 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAvPXkyUhSUUBViskRAgLSAJ4jvY5eCNOv52ZOOnWULq+sgWVkVwCgmzK/ TLP1AuP4ceePZa2Jm0ZKd0w= =XT7C -----END PGP SIGNATURE----- --Apple-Mail-10-444158516-- From tss@iki.fi Wed Jun 2 00:47:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 42925C000DED; Wed, 2 Jun 2004 00:47:36 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 4E51FC000DD6 for ; Wed, 2 Jun 2004 00:47:34 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 9A19E1C185F4; Wed, 2 Jun 2004 00:40:23 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8A5FF1C185F3; Wed, 2 Jun 2004 00:39:47 +0300 (EEST) In-Reply-To: <1086121575.24881.12.camel@tesuji.nac.uci.edu> References: <1085882048.6244.11.camel@hurina> <40BB294B.1080005@bppiac.hu> <1086019931.23360.39.camel@hurina> <1086121575.24881.12.camel@tesuji.nac.uci.edu> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-11-444598857" Message-Id: <30685090-B414-11D8-9D25-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Postfix SASL AUTH from Dovecot Date: Wed, 2 Jun 2004 00:39:41 +0300 To: Dan Stromberg X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.6 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 21:47:36 -0000 X-UID: 9325 Status: O Content-Length: 1566 --Apple-Mail-11-444598857 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 1.6.2004, at 23:26, Dan Stromberg wrote: > Just guessing from my armchair here, but I believe I heard Wietse (of > postfix and tcp wrappers fame) wasn't willing to include SMTP AUTH > patches into postfix, because SASL was too large and unaudited. Similiar to my reasons for not using it. > If you have something that allows authenticated SMTP for postfix via > dovecot, and it's not a huge gob of unaudited code, you might be onto > something really nice - particularly if the changes can be included in > the postfix (or dovecot?) baseline so people don't have to patch, and > repatch, and hope patching continues to work. Someone already sent my original mail to Wietse. Reply was pretty much "I'll continue Postfix hacking in July". We'll see then :) The Postfix part of the code would anyway be minimal. My current patch uses Dovecot's code for it but only because it was the fastest way to do it. It only needs to send and receive data via UNIX sockets, nothing special. --Apple-Mail-11-444598857 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAvPedyUhSUUBViskRAo5jAKCG4DMQQtE2cGZelLjzi+v+k/OI1gCfYii4 BAfn2AH1slqEPZXIvA9tPPo= =5TmU -----END PGP SIGNATURE----- --Apple-Mail-11-444598857-- From benjamin@Weiss.name Wed Jun 2 00:51:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A8D53C000DFA; Wed, 2 Jun 2004 00:51:30 +0300 (EEST) Received: from lakermmtao02.cox.net (lakermmtao02.cox.net [68.230.240.37]) by talvi.dovecot.org (Postfix) with ESMTP id 20956C000DED for ; Wed, 2 Jun 2004 00:51:28 +0300 (EEST) Received: from mail.birdvet.org ([68.97.130.220]) by lakermmtao02.cox.net (InterMail vM.6.01.03.02 201-2131-111-104-20040324) with ESMTP id <20040601214415.QYVF19971.lakermmtao02.cox.net@mail.birdvet.org> for ; Tue, 1 Jun 2004 17:44:15 -0400 Received: by mail.birdvet.org (Postfix, from userid 500) id C16587D7E; Tue, 1 Jun 2004 16:44:15 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by mail.birdvet.org (Postfix) with ESMTP id BA18C13919 for ; Tue, 1 Jun 2004 16:44:15 -0500 (CDT) Date: Tue, 1 Jun 2004 16:44:15 -0500 (CDT) From: "Benjamin J. Weiss" X-X-Sender: benjamin@mail.birdvet.org To: dovecot@dovecot.org Subject: Re: [Dovecot] Dovecot + SSL + Fedora In-Reply-To: <857A27FB-ADA2-11D8-8870-000393CC2E90@iki.fi> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: Benjamin@Weiss.name List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 21:51:30 -0000 X-UID: 9326 Status: O Content-Length: 1113 On Mon, 24 May 2004, Timo Sirainen wrote: > On 24.5.2004, at 10:43, David Keegel wrote: > > > I've been seeing the Dovecot/SSL/Fedora 1 problem. > > > > I have a dovecot server which tends to die at least once a day, > > with messages like these :- > > May 24 13:44:44 mail pop3-login: RAND_bytes() failed: > > error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not > > seeded > > May 24 13:44:44 mail dovecot: Login process died too early - shutting > > down > > > > I noticed Timo's email about this at: > > http://www.dovecot.org/list/dovecot/2004-May/003316.html > > with the patch that just ignores the return code of RAND_bytes(). > > That fixes the crashes, but probably still causes occational problems > with SSL connection handshakes failing. I require encrypted communications between my server and my client for all services, including smtp and imap. I was getting ready to upgrade my server from RH9 and imap-2000 to fedora core 1 and dovecot until I saw this thread. Has anybody brought the ssl problem to the upstream maintainers so that it can get fixed? Thanks! Ben From tss@iki.fi Wed Jun 2 00:57:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9CEBBC000DFB; Wed, 2 Jun 2004 00:57:55 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id ADA8CC000DED for ; Wed, 2 Jun 2004 00:57:53 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 25C931C185F3; Wed, 2 Jun 2004 00:50:43 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B33751C185F3; Wed, 2 Jun 2004 00:50:08 +0300 (EEST) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-13-445222404" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Dovecot + SSL + Fedora Date: Wed, 2 Jun 2004 00:50:04 +0300 To: Benjamin@Weiss.name X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.9 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 21:57:55 -0000 X-UID: 9327 Status: O Content-Length: 1101 --Apple-Mail-13-445222404 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2.6.2004, at 00:44, Benjamin J. Weiss wrote: > Has anybody brought the ssl problem to the upstream maintainers so > that it > can get fixed? This was also at the bottom of the mail you replied: "This could also be fixed by patching OpenSSL (I think). Patch in https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115284" I think the patch in there is a full solution to the problem. I haven't tried contacting OpenSSL people about it, it's somewhat Redhat/Fedora-specific problem anyway so I'll leave it to them. --Apple-Mail-13-445222404 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAvPoMyUhSUUBViskRAmYcAKCiH57acy9fhaOeIntsKcwjAPdGCQCdFzG8 nW/WZVZfU4QMuvV6265z4SQ= =WFKV -----END PGP SIGNATURE----- --Apple-Mail-13-445222404-- From matthias.andree@gmx.de Wed Jun 2 02:15:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 08457C000DD6; Wed, 2 Jun 2004 02:15:21 +0300 (EEST) Received: from mail.dt.e-technik.uni-dortmund.de (krusty.dt.e-technik.Uni-Dortmund.DE [129.217.163.1]) by talvi.dovecot.org (Postfix) with ESMTP id 686CBC000DD1 for ; Wed, 2 Jun 2004 02:15:18 +0300 (EEST) Received: from m2a2.dyndns.org (krusty.dt.e-technik.uni-dortmund.de [129.217.163.1]) by mail.dt.e-technik.uni-dortmund.de (Postfix) with ESMTP id BFCF15603; Wed, 2 Jun 2004 01:08:06 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id C14FCC1BA6; Wed, 2 Jun 2004 01:08:02 +0200 (CEST) Received: from merlin.emma.line.org ([127.0.0.1]) by localhost (m2a2.dyndns.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 25745-02-3; Wed, 2 Jun 2004 01:08:00 +0200 (CEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id BBF8220E6; Wed, 2 Jun 2004 01:08:00 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] Re: 0.99.10.5 release candidate In-Reply-To: <29F18EC5-B413-11D8-9D25-000393CC2E90@iki.fi> (Timo Sirainen's message of "Wed, 2 Jun 2004 00:32:20 +0300") References: <76D5CD75-AFED-11D8-8870-000393CC2E90@iki.fi> <1085869356.30728.40.camel@hurina> <40B90E8D.3080306@powweb.com> <20040530083226.GB711@uk.tiscali.com> <1086020681.23360.51.camel@hurina> <20040531180922.GA903@uk.tiscali.com> <20040601080011.GA704@uk.tiscali.com> <1086092134.29926.26.camel@hurina> <20040601131446.GA2053@uk.tiscali.com> <1086115867.24096.4.camel@hurina> <29F18EC5-B413-11D8-9D25-000393CC2E90@iki.fi> From: Matthias Andree Date: Wed, 02 Jun 2004 01:08:00 +0200 Message-ID: User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at m2a2.dyndns.org Cc: Matthias Andree , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 23:15:21 -0000 X-UID: 9328 Status: O Timo Sirainen writes: > Do you exit your POP3 client every time before disconnecting? ;) The only POP3 client I know that keeps the connection open is mutt. -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From dpham@mercy.com.au Wed Jun 2 02:58:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 619B8C000DD6; Wed, 2 Jun 2004 02:58:56 +0300 (EEST) Received: from coregw02.mercynet.com.au (unknown [203.134.124.68]) by talvi.dovecot.org (Postfix) with ESMTP id 90BE3C000DD1 for ; Wed, 2 Jun 2004 02:58:52 +0300 (EEST) Received: from coremx01.mercynet.com.au ([172.27.241.1]) by coregw02 with trend_isnt_name_B; Wed, 02 Jun 2004 09:51:02 +1000 X-MimeOLE: Produced By Microsoft Exchange V6.5.6944.0 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] IMAP login name conversion Date: Wed, 2 Jun 2004 09:51:02 +1000 Message-ID: <3ED0289A9D58414D9AD116DA91E2E96915E7E9@coremx01.mercynet.com.au> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] IMAP login name conversion Thread-Index: AcRHzRVnGOq9i8jqSCutuUzBApgw9QAYQKsQ From: "Zoong Pham" To: "Timo Sirainen" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jun 2004 23:58:56 -0000 X-UID: 9329 Status: O Content-Length: 1558 > -----Original Message----- > From: Timo Sirainen [mailto:tss@iki.fi] > Sent: Tuesday, 1 June 2004 9:39 PM > To: Zoong Pham > Cc: dovecot@dovecot.org > Subject: Re: [Dovecot] IMAP login name conversion >=20 > What passdb and userdb do you use? Unless you're authenticating from=20 > SQL you probably have to modify the source. Let me explain: My server runs OpenBSD-3.5 and Sendmail. We host few virtual domains. Local accounts have login names in this format: login-domain_abc_xyz For example: joedirt-joedomain_com_au, info-adomain_com, info-otherdomain_com That way login accounts are unique across all the virtual domains. I use the OpenBSD pre-compiled dovecot-0.99.10p2. It is set to use "auth_passdb =3D passwd" and "auth_userdb =3D passwd" I can use mutt to access my mailbox via IMAPS with login name format joedirt-joedomain_com_au. Other users use different MUA like Outlook and prefer to login with their email addresses (joedirt@joedomain.com.au, info@adomain.com,=20 info@otherdomain.com) We use squirrelmail for webmail. I modified squirrelmail to automatically convert login name from format of joedirt@joedomain.com.au to=20 joedirt-joedomain_com_au. So if users use squirrelmail, they can just login with their email addresses. My question is how to achieve the same thing with other MUAs like Outlook? Do I have to modify dovecot source? Can I use LDAP or SQL instead? Note that we are using Sendmail and prefer it than othe MTA. I have looked at the Wiki, specially the "DovecotOpenLdap" but am still confused. Thanks Zoong From tss@iki.fi Wed Jun 2 04:47:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BE1F0C000DD1; Wed, 2 Jun 2004 04:47:29 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 585CCC000DCB for ; Wed, 2 Jun 2004 04:47:27 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 71A7B1C1D0E2; Wed, 2 Jun 2004 04:40:16 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4401C1C185F3; Wed, 2 Jun 2004 04:39:43 +0300 (EEST) Subject: RE: [Dovecot] IMAP login name conversion From: Timo Sirainen To: Zoong Pham In-Reply-To: <3ED0289A9D58414D9AD116DA91E2E96915E7E9@coremx01.mercynet.com.au> References: <3ED0289A9D58414D9AD116DA91E2E96915E7E9@coremx01.mercynet.com.au> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Bn0BSnAP1kiVk45DqSQZ" Message-Id: <1086140382.25071.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 02 Jun 2004 04:39:42 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 01:47:29 -0000 X-UID: 9330 Status: O Content-Length: 1370 --=-Bn0BSnAP1kiVk45DqSQZ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-02 at 02:51, Zoong Pham wrote: > I can use mutt to access my mailbox via IMAPS with login name format > joedirt-joedomain_com_au. >=20 > Other users use different MUA like Outlook and prefer to login with > their email addresses (joedirt@joedomain.com.au, info@adomain.com,=20 > info@otherdomain.com) .. > My question is how to achieve the same thing with other MUAs like > Outlook? > Do I have to modify dovecot source? > Can I use LDAP or SQL instead? I think that kind of conversion is too much of a special case that Dovecot should try to make it easy with internal features. With PostgreSQL authentication you would be able to use functions to modify the login name in wanted way: password_query =3D select password from users where userid =3D '%n-' || translate('%d', '.', '_'); If you don't want to do that, you'll have to modify the sources. For example in src/auth/mech-plain.c --=-Bn0BSnAP1kiVk45DqSQZ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAvS/dyUhSUUBViskRAmRTAKCW7jfAfRmtiBcrzTY2Wc0kgzY7EgCfX/iT X0yH7U0M1c/ld6CFv161JzM= =U0wz -----END PGP SIGNATURE----- --=-Bn0BSnAP1kiVk45DqSQZ-- From oleg@cs.msu.su Wed Jun 2 09:57:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F28C8C000DD0; Wed, 2 Jun 2004 09:57:38 +0300 (EEST) Received: from jaffar.mlab.cs.msu.su (jaffar.cs.msu.su [158.250.11.254]) by talvi.dovecot.org (Postfix) with ESMTP id 1E928C000DCB for ; Wed, 2 Jun 2004 09:57:33 +0300 (EEST) Received: from illusion (illusion.jscc.ru [195.208.40.102]) by jaffar.mlab.cs.msu.su (8.12.8/8.12.8) with SMTP id i526oKIm014414; Wed, 2 Jun 2004 10:50:20 +0400 Message-ID: <006e01c4486d$df5bb160$6628d0c3@mlab.cs.msu.su> From: "Oleg I. Vdovikin" To: , References: Subject: Re: [Dovecot] Dovecot + SSL + Fedora Date: Wed, 2 Jun 2004 10:50:19 +0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 06:57:39 -0000 X-UID: 9331 Status: O Content-Length: 1575 Hi! Dovecot runs with no problems on my up2date RH9 box with SSL. Also, I've build custom rpm for 0.99.10.5 release with uw-imap pop3 uid patch based on FC2 dovecot and they works pretty good. ;-) Regards, Oleg. ----- Original Message ----- From: "Benjamin J. Weiss" To: Sent: Wednesday, June 02, 2004 1:44 AM Subject: Re: [Dovecot] Dovecot + SSL + Fedora > On Mon, 24 May 2004, Timo Sirainen wrote: > > > On 24.5.2004, at 10:43, David Keegel wrote: > > > > > I've been seeing the Dovecot/SSL/Fedora 1 problem. > > > > > > I have a dovecot server which tends to die at least once a day, > > > with messages like these :- > > > May 24 13:44:44 mail pop3-login: RAND_bytes() failed: > > > error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not > > > seeded > > > May 24 13:44:44 mail dovecot: Login process died too early - shutting > > > down > > > > > > I noticed Timo's email about this at: > > > http://www.dovecot.org/list/dovecot/2004-May/003316.html > > > with the patch that just ignores the return code of RAND_bytes(). > > > > That fixes the crashes, but probably still causes occational problems > > with SSL connection handshakes failing. > > I require encrypted communications between my server and my client for all > services, including smtp and imap. I was getting ready to upgrade my > server from RH9 and imap-2000 to fedora core 1 and dovecot until I saw > this thread. > > Has anybody brought the ssl problem to the upstream maintainers so that it > can get fixed? > > Thanks! > > Ben > > From dovecot@gutzeit.at Wed Jun 2 10:29:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1C249C000DD0; Wed, 2 Jun 2004 10:29:45 +0300 (EEST) Received: from cat-proof.de (cat.cat-proof.de [213.239.198.176]) by talvi.dovecot.org (Postfix) with ESMTP id 1CC4FC000DCC for ; Wed, 2 Jun 2004 10:29:43 +0300 (EEST) Received: from jensemann.jensemann.lan.saturn (pD9E0891D.dip.t-dialin.net [217.224.137.29]) by cat-proof.de (Postfix) with ESMTP id 458F26184A6 for ; Wed, 2 Jun 2004 09:21:26 +0200 (CEST) Received: by jensemann.jensemann.lan.saturn (Postfix, from userid 1000) id 37909219E7F; Wed, 2 Jun 2004 09:30:09 +0200 (CEST) Date: Wed, 2 Jun 2004 09:30:09 +0200 From: Jens Gutzeit To: dovecot@dovecot.org Subject: Re: [Dovecot] Fedora 1 packaged version or upgrade to newest dovecot Message-ID: <20040602073008.GF19167@gutzeit.at> References: <1085810458.15536.9.camel@bajor> <1085866941.30728.11.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1085866941.30728.11.camel@hurina> User-Agent: Mutt/1.5.6i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 07:29:45 -0000 X-UID: 9332 Status: O On Sun, May 30, 2004 at 12:42:21AM +0300, Timo Sirainen wrote: > On Sat, 2004-05-29 at 09:00, Daniel wrote: > > I running dovecot that is packaged with Fedora 1 with about 1500 email > > accounts approximately 5k messages per day. I have had to restart > > dovecot twice over a period of about 3 months due to it not responding. > > Overall I'm happy with the setup, however would I see and improvement if > > I upgraded to the latest version, at time of writing 0.99.10.5. > > 0.99.10.5 fixes several real problems, although they didn't happen very > often with most people. See > http://dovecot.org/list/dovecot/2004-May/003495.html Timo, I have the same problem with dovecot, I have to restart it sometimes, mostly each week or so. I'm using a script to automaticaly check if dovecot is responding and restart it if not, is there any information I could let the script grab from the system to help you fixing this problem? best regards/Mit freundlichen Grüßen Jens Gutzeit From antonio.nunes@lifefoundation.org.uk Wed Jun 2 15:24:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AB2B0C000DD0; Wed, 2 Jun 2004 15:24:16 +0300 (EEST) Received: from mail.lfst.demon.co.uk (lfst.demon.co.uk [158.152.87.172]) by talvi.dovecot.org (Postfix) with ESMTP id DC137C000DCB for ; Wed, 2 Jun 2004 15:24:13 +0300 (EEST) Received: from mail.lfst.demon.co.uk (localhost.localdomain [127.0.0.1]) by mail.lfst.demon.co.uk (8.12.8/8.12.8) with ESMTP id i52Auc4w003129 for ; Wed, 2 Jun 2004 11:56:38 +0100 Received: (from apache@localhost) by mail.lfst.demon.co.uk (8.12.8/8.12.8/Submit) id i52AucFT003127; Wed, 2 Jun 2004 11:56:38 +0100 X-Authentication-Warning: mail.lfst.demon.co.uk: apache set sender to antonio.nunes@lifefoundation.org.uk using -f Received: from 10.10.10.22 (SquirrelMail authenticated user antonio.nunes) by 10.10.10.110 with HTTP; Wed, 2 Jun 2004 11:56:37 +0100 (BST) Message-ID: <33510.10.10.10.22.1086173797.squirrel@10.10.10.110> Date: Wed, 2 Jun 2004 11:56:37 +0100 (BST) From: "Antonio Nunes" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2-1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Loggin error with Squirrelmail on Fedore Core 2 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: antonio.nunes@lifefoundation.org.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 12:24:17 -0000 X-UID: 9333 Status: O Hi! I am switching a mail server setup to a new machine which has RHL Fedore Core 2 installed, which uses Dovecot. I managed to get Squirrelmail to work on my personal account, but when logging in with some other accounts I get the following error as response: ERROR : Connection dropped by imap-server. Query: Capability I did a web search on this and found a message from Tim Middleton who experienced the same problem. He also suggests a workaround: "I put in a chron job to touch into existance any non-existing mailboxes for everyone in the passwd file periodically, which mostly eliminates the problem. But I'd still like to know why the server is having the problem, if anyone can make any suggestions." I would like to try this, but I am still fairly new to Unix. Could anyone show me how to set up such a chron job? Are there other, manual, ways to touch the mailboxes? Thanks, Antonio Nunes Don't let who you can be keep you from being who you already are. From tss@iki.fi Wed Jun 2 18:27:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DA16DC000DCC; Wed, 2 Jun 2004 18:27:59 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 664F9C000DCB for ; Wed, 2 Jun 2004 18:27:56 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 241F41C185F4; Wed, 2 Jun 2004 18:20:44 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 281D91C185E2; Wed, 2 Jun 2004 18:20:10 +0300 (EEST) Subject: Re: [Dovecot] Loggin error with Squirrelmail on Fedore Core 2 From: Timo Sirainen To: antonio.nunes@lifefoundation.org.uk In-Reply-To: <33510.10.10.10.22.1086173797.squirrel@10.10.10.110> References: <33510.10.10.10.22.1086173797.squirrel@10.10.10.110> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-XbI38cGXaazpETnYYOI7" Message-Id: <1086189609.26596.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 02 Jun 2004 18:20:09 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 15:28:00 -0000 X-UID: 9334 Status: O Content-Length: 1492 --=-XbI38cGXaazpETnYYOI7 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-02 at 13:56, Antonio Nunes wrote: > I managed to get Squirrelmail to work on my personal account, but when > logging in with some other accounts I get the following error as response= : >=20 > ERROR : Connection dropped by imap-server. > Query: Capability The real error message is in log file, most likely /var/log/mail.log. > I did a web search on this and found a message from Tim Middleton who > experienced the same problem. He also suggests a workaround: >=20 > "I put in a chron job to touch into existance any non-existing mailboxes = for > everyone in the passwd file periodically, which mostly eliminates the > problem. But I'd still like to know why the server is having the problem,= if > anyone can make any suggestions." This is because by default Dovecot detects mailbox locations, and if some user doesn't have /var/mail/user mbox file, Dovecot doesn't know what to do. So alternative to the above kludge is to modify configuration file: default_mail_env =3D mbox:~/mail:INBOX=3D/var/mail/%u --=-XbI38cGXaazpETnYYOI7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAvfAoyUhSUUBViskRAspHAJ953vBJ8Hn7IzrcGTJ9bY+KtfJWewCfQLz/ aZEadDkIrqVqOJMZb/BRG7A= =bSIe -----END PGP SIGNATURE----- --=-XbI38cGXaazpETnYYOI7-- From glenn-dovecot@delink.net Wed Jun 2 18:41:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D8A93C000DCD; Wed, 2 Jun 2004 18:41:41 +0300 (EEST) Received: from a.mx.delink.net (delink.is-a-geek.net [207.166.198.225]) by talvi.dovecot.org (Postfix) with ESMTP id 026E4C000DCC for ; Wed, 2 Jun 2004 18:41:39 +0300 (EEST) Received: (qmail 11882 invoked by uid 1000); 2 Jun 2004 15:34:24 -0000 Date: Wed, 2 Jun 2004 11:34:24 -0400 From: Brian T Glenn To: Dovecot Subject: Re: [Dovecot] Serve list archives by dovecot IMAP Message-ID: <20040602153412.GB1779@delink.net> Mail-Followup-To: Dovecot References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Operating-System: Linux ziegchen 2.6.4 X-MTA: qmail-1.03 User-Agent: Mutt/1.5.5.1+cvs20040105i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 15:41:42 -0000 X-UID: 9335 Status: O On Sun, May 23, 2004 at 01:13:23PM -0700, Kenneth Porter may have written: > Has anyone considered setting up a Dovecot public server to serve the list > archives by IMAP? Or does Dovecot not do anonymous read-only access? > > (I note by comparison that the Cyrusoft Mulberry list archives are served > by an IMAP server. ) > > It should be sufficient to set up Dovecot on some server in the dovecot.org > domain and subscribe it to the lists. You may also want to look at the posterity project. It is designed to do exactly what you are describing. http://multivac.cwru.edu./posterity/ Cheers, -- Brian T Glenn delink.net Internet Services From tss@iki.fi Wed Jun 2 18:54:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BFFCCC000DCD; Wed, 2 Jun 2004 18:54:58 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A7EBAC000DCC for ; Wed, 2 Jun 2004 18:54:56 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 5D7881C185F4; Wed, 2 Jun 2004 18:47:44 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1C2F01C185F2; Wed, 2 Jun 2004 18:47:11 +0300 (EEST) Subject: Re: [Dovecot] Fedora 1 packaged version or upgrade to newest dovecot From: Timo Sirainen To: Jens Gutzeit In-Reply-To: <20040602073008.GF19167@gutzeit.at> References: <1085810458.15536.9.camel@bajor> <1085866941.30728.11.camel@hurina> <20040602073008.GF19167@gutzeit.at> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Rsv6G82+3kZYikCYd2SG" Message-Id: <1086191227.26596.27.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 02 Jun 2004 18:47:07 +0300 X-Spam-Status: No, hits=-9.1 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 15:54:58 -0000 X-UID: 9336 Status: O Content-Length: 1285 --=-Rsv6G82+3kZYikCYd2SG Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-02 at 10:30, Jens Gutzeit wrote: > Timo, I have the same problem with dovecot, I have to restart it > sometimes, mostly each week or so. I'm using a script to automaticaly > check if dovecot is responding and restart it if not, is there > any information I could let the script grab from the system to help > you fixing this problem? What exactly does "isn't responding" mean? Does it accept a TCP connection? Does it send "Dovecot ready" message? Or doesn't it just authenticate? What operating system is this?=20 And when it's stuck: Is there anything in logs? Can you list the used file descriptors by dovecot master process? What about getting a strace of the dovecot process? Or if it's auth problem, those things for dovecot-auth process. Do imap-login processes exist? What about straceing them? --=-Rsv6G82+3kZYikCYd2SG Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAvfZ7yUhSUUBViskRAufPAKCMvO2txX8JWNTZ+VLwlLI1NMXalwCgisTs TmSTDkJQ4BTWVthinZOgO8Y= =f+zI -----END PGP SIGNATURE----- --=-Rsv6G82+3kZYikCYd2SG-- From vegard@svanberg.no Wed Jun 2 21:13:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7348AC000DCE; Wed, 2 Jun 2004 21:13:35 +0300 (EEST) Received: from svanberg.no (svanberg.no [81.175.2.150]) by talvi.dovecot.org (Postfix) with SMTP id A7A3DC000DCC for ; Wed, 2 Jun 2004 21:13:30 +0300 (EEST) Received: (qmail 10988 invoked by uid 1035); 2 Jun 2004 18:06:14 -0000 Date: Wed, 2 Jun 2004 20:06:14 +0200 From: Vegard Svanberg To: dovecot@dovecot.org Message-ID: <20040602180614.GE2995@svanberg.no> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline X-Organization: Svanberg Consulting X-Accept-Language: no se en X-Location: Halden, Norway (Europe) X-IRC: *Takapa@EFnet (irc.homelien.no) User-Agent: Mutt/1.5.4i Subject: [Dovecot] dovecot and virtual hosting X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 18:13:35 -0000 X-UID: 9337 Status: O Hi. A usual hosting provider setup depends on having one IP ("virtual mailserver") per domain. Using dovecot on servers handling hundreds or thousands of domains today equals to having multiple instances of dovecot running. This problem could be solved by making dovecot take into account the IP address the user connects to and authenticate against the proper {database, table, pw-file, [...]} based on that. Comments? -- Vegard Svanberg [*Takapa@IRC (EFnet)] From john.l.villalovos@intel.com Wed Jun 2 21:22:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4D4E0C000DCE; Wed, 2 Jun 2004 21:22:18 +0300 (EEST) Received: from orsfmr001.jf.intel.com (fmr12.intel.com [134.134.136.15]) by talvi.dovecot.org (Postfix) with ESMTP id AE9C0C000DCC for ; Wed, 2 Jun 2004 21:22:14 +0300 (EEST) Received: from talaria.jf.intel.com (talaria.jf.intel.com [10.7.209.7]) by orsfmr001.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc, v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i52BDkNO011297 for ; Wed, 2 Jun 2004 11:14:42 GMT Received: from orsmsxvs040.jf.intel.com (orsmsxvs040.jf.intel.com [192.168.65.206]) by talaria.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc, v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i52IACRd032657 for ; Wed, 2 Jun 2004 18:10:13 GMT Received: from orsmsx332.amr.corp.intel.com ([192.168.65.60]) by orsmsxvs040.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004060211122304846 for ; Wed, 02 Jun 2004 11:12:25 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx332.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.6713); Wed, 2 Jun 2004 11:11:13 -0700 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 Date: Wed, 2 Jun 2004 11:11:13 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Advice on converting from Mbox to Maildir? Thread-Index: AcRIIB0nGDVXQwmjSEGva6em5KRo7gArG8Mw From: "Villalovos, John L" To: X-OriginalArrivalTime: 02 Jun 2004 18:11:13.0343 (UTC) FILETIME=[FD4D0CF0:01C448CC] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Subject: [Dovecot] Advice on converting from Mbox to Maildir? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 18:22:18 -0000 X-UID: 9338 Status: O Does anyone have advice or pointers on good documentation on how to convert a system from using the Mbox format to using Maildir? I recently upgraded to Fedora Core 2 from Fedora Core 1 and discovered that UW-IMAP was gone. So I switched over to using Dovecot. So far so good. But I would like to convert my system to start using the Maildir format. How easy is this to accomplish? Can I keep my Inbox /var/spool/mail/user_name as an mbox format and have my other folders as Maildir? What would I have to change for Sendmail to make it use Maildir for the Inbox? Can procmail support Maildir? Any pointers or help would be much appreciated? John From discussion-lists@linnet.org Wed Jun 2 21:53:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9039FC000DD4; Wed, 2 Jun 2004 21:53:03 +0300 (EEST) Received: from lime.pobox.com (lime.pobox.com [208.58.1.198]) by talvi.dovecot.org (Postfix) with ESMTP id 28635C000DCE for ; Wed, 2 Jun 2004 21:53:01 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by lime.pobox.com (Postfix) with ESMTP id 7553D9F3A0; Wed, 2 Jun 2004 14:45:43 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by lime.pobox.com (Postfix) with ESMTP id 5E9A29F446; Wed, 2 Jun 2004 14:45:06 -0400 (EDT) Received: from localhost.localdomain (localhost [127.0.0.1]) by jester.pobox.com (Postfix) with ESMTP id 9F7EA798; Wed, 2 Jun 2004 14:44:43 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.145.13]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id 83C9278B; Wed, 2 Jun 2004 14:44:42 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BVajB-0000Kj-FS; Wed, 02 Jun 2004 19:44:41 +0100 Date: Wed, 2 Jun 2004 19:44:41 +0100 From: Brian Candler To: Vegard Svanberg Subject: Re: [Dovecot] dovecot and virtual hosting Message-ID: <20040602184441.GB1253@uk.tiscali.com> References: <20040602180614.GE2995@svanberg.no> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040602180614.GE2995@svanberg.no> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 18:53:03 -0000 X-UID: 9339 Status: O Content-Length: 1332 On Wed, Jun 02, 2004 at 08:06:14PM +0200, Vegard Svanberg wrote: > A usual hosting provider setup depends on having one IP ("virtual > mailserver") per domain. Using dovecot on servers handling hundreds or > thousands of domains today equals to having multiple instances of > dovecot running. > > This problem could be solved by making dovecot take into account the IP > address the user connects to and authenticate against the proper > {database, table, pw-file, [...]} based on that. > > Comments? I've worked at very large ISPs, and we never did virtual hosting based on IP address; we simply made the logins unique. - some systems used logins like abc123456, where 'abc' is a prefix specific to that ISP, and '123456' is a sequence number - other systems used username@domain as the login (i.e. the primary E-mail address of the mailbox) You would be very hard pressed these days to justify to RIPE/ARIN/APNIC that you want hundreds of IP addresses just for virtualising POP3 mailboxes (similarly FTP servers for uploading website contents). Even migrating existing ISPs was not a problem; the logins never clashed. Perhaps we we fortunate that in the odd occasion where two different systems had been using the same prefix 'abc' for logins, that they used different ranges of sequence numbers. Regards, Brian. From tss@iki.fi Wed Jun 2 22:07:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0883BC000DDA; Wed, 2 Jun 2004 22:07:04 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 09926C000DD6 for ; Wed, 2 Jun 2004 22:07:02 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 689691C185F2; Wed, 2 Jun 2004 21:59:49 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 864FA1C185E2; Wed, 2 Jun 2004 21:59:15 +0300 (EEST) In-Reply-To: <20040602180614.GE2995@svanberg.no> References: <20040602180614.GE2995@svanberg.no> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-16-521369431" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] dovecot and virtual hosting Date: Wed, 2 Jun 2004 21:59:11 +0300 To: Vegard Svanberg X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.9 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 19:07:04 -0000 X-UID: 9340 Status: O --Apple-Mail-16-521369431 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2.6.2004, at 21:06, Vegard Svanberg wrote: > This problem could be solved by making dovecot take into account the IP > address the user connects to and authenticate against the proper > {database, table, pw-file, [...]} based on that. 1.0-test14 has code to do this, %l variable. Works only with SQL and LDAP databases, I'm not sure if I should bother supporting it with others.. --Apple-Mail-16-521369431 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAviOAyUhSUUBViskRAvarAJ0SS41a1jDe2AbKN0uBHMtMUBlItACdEZ2F MiwBEvwPumotAUD5EUEum8k= =T/ez -----END PGP SIGNATURE----- --Apple-Mail-16-521369431-- From dgc@uchicago.edu Wed Jun 2 22:08:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4A308C002841; Wed, 2 Jun 2004 22:08:42 +0300 (EEST) Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by talvi.dovecot.org (Postfix) with ESMTP id 39F9FC000DDA for ; Wed, 2 Jun 2004 22:08:39 +0300 (EEST) Received: from dust.uchicago.edu (localhost [127.0.0.1]) by dust.uchicago.edu (8.12.10/8.12.9) with ESMTP id i52J0uJx007356; Wed, 2 Jun 2004 14:00:56 -0500 (CDT) Received: (from dgc@localhost) by dust.uchicago.edu (8.12.10/8.12.10/Submit) id i52J0tPV007355; Wed, 2 Jun 2004 14:00:55 -0500 (CDT) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Wed, 2 Jun 2004 14:00:55 -0500 From: David Champion To: "Villalovos, John L" Message-ID: <20040602190055.GJ20313@dust.uchicago.edu> Mail-Followup-To: "Villalovos, John L" , dovecot@dovecot.org References: <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com> X-Virus-Trap: submit@cdc.uchicago.edu X-Spam-Trap: submit@nospam.uchicago.edu X-Gouranga: Gouranga gouranga gouranga X-Quote: Can I have my sword back? User-Agent: Mutt/1.5.6i Cc: dovecot@dovecot.org Subject: [Dovecot] Re: Advice on converting from Mbox to Maildir? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 19:08:42 -0000 X-UID: 9341 Status: O Content-Length: 1195 * On 2004.06.02, in <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com>, * "Villalovos, John L" wrote: > > Can I keep my Inbox /var/spool/mail/user_name as an mbox format and have > my other folders as Maildir? I think so, but offhand I'm not sure how. I assume it's a default_mail_env setting. > What would I have to change for Sendmail to make it use Maildir for the > Inbox? Sendmail doesn't touch the inbox; it depends on the local delivery agent (LDA) to do this. If you use procmail as the LDA, this morphs into your next question: > Can procmail support Maildir? Yes. If a procmail rule specifies delivery to a mailbox whose name ends in "/", it is treated as a Maildir. If you set ORGMAIL=/var/mail/$LOGNAME/ DEFAULT=/var/mail/$LOGNAME/ (noting the ending "/") in /etc/procmailrc, you should have Maildir-format inboxes. N.B. I have not tested any of this. -- -D. dgc@uchicago.edu NSIT::ENSS No money, no book. No book, no study. No study, no pass. No pass, no graduate. No graduate, no job. No job, no money. T h e U n i v e r s i t y o f C h i c a g o From dovecot@gutzeit.at Wed Jun 2 22:42:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1BD6FC000DDE; Wed, 2 Jun 2004 22:42:39 +0300 (EEST) Received: from cat-proof.de (cat.cat-proof.de [213.239.198.176]) by talvi.dovecot.org (Postfix) with ESMTP id 01F40C000DD4 for ; Wed, 2 Jun 2004 22:42:36 +0300 (EEST) Received: from jensemann.jensemann.lan.saturn (pD9E0891D.dip.t-dialin.net [217.224.137.29]) by cat-proof.de (Postfix) with ESMTP id 691796184A8 for ; Wed, 2 Jun 2004 21:34:18 +0200 (CEST) Received: by jensemann.jensemann.lan.saturn (Postfix, from userid 1000) id 621FE219E7F; Wed, 2 Jun 2004 21:43:09 +0200 (CEST) Date: Wed, 2 Jun 2004 21:43:09 +0200 From: Jens Gutzeit To: dovecot@dovecot.org Subject: Re: [Dovecot] Fedora 1 packaged version or upgrade to newest dovecot Message-ID: <20040602194308.GN19167@gutzeit.at> References: <1085810458.15536.9.camel@bajor> <1085866941.30728.11.camel@hurina> <20040602073008.GF19167@gutzeit.at> <1086191227.26596.27.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1086191227.26596.27.camel@hurina> User-Agent: Mutt/1.5.6i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 19:42:39 -0000 X-UID: 9342 Status: O Content-Length: 1465 On Wed, Jun 02, 2004 at 06:47:07PM +0300, Timo Sirainen wrote: > What exactly does "isn't responding" mean? Does it accept a TCP > connection? Does it send "Dovecot ready" message? Or doesn't it just > authenticate? What operating system is this? It accepts a TCP connection, no timeout on the socket, but there is no "Dovecot ready" message. Load is always just fine and there are not so much processes from dovecot running, so, it's probably not a reached user limit. > And when it's stuck: > > Is there anything in logs? Can you list the used file descriptors by > dovecot master process? What about getting a strace of the dovecot > process? Or if it's auth problem, those things for dovecot-auth process. > Do imap-login processes exist? What about straceing them? There is nothing in the logs. I'll change my script to mail me a dir listing of /proc/$dovecot_pid/fd, a ps output with all dovecot processes and a strace of the dovecot process. I'll report this to you next time we have the problem. System is Linux 2.6 (occours with 2.4, too) on a Debian stable Box, x86 Hardware, at least all the libs that are used by dovecot and the compiler is from debian stable. I have a few pop/imap boxes here running dovecot, s.th. around 10 boxes or so, the problem only exists on machines which have a bit more traffic (upto 30 simultan users). On the small ones dovecot runs forever without any problem. best regards/Mit freundlichen Grüßen Jens Gutzeit From strombrg@dcs.nac.uci.edu Wed Jun 2 22:43:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 86C69C00286F; Wed, 2 Jun 2004 22:43:38 +0300 (EEST) Received: from dcs.nac.uci.edu (dcs.nac.uci.edu [128.200.34.32]) by talvi.dovecot.org (Postfix) with ESMTP id 67062C000DDE for ; Wed, 2 Jun 2004 22:43:01 +0300 (EEST) Received: from [128.200.34.35] (tesuji.nac.uci.edu [128.200.34.35]) by dcs.nac.uci.edu (8.12.11/8.12.10) with ESMTP id i52JZicR006015; Wed, 2 Jun 2004 12:35:44 -0700 Subject: Re: [Dovecot] Advice on converting from Mbox to Maildir? From: Dan Stromberg To: "Villalovos, John L" In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com> References: <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-3FfYjWJZpCzC+hxCDn6J" Message-Id: <1086204944.24881.158.camel@tesuji.nac.uci.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Wed, 02 Jun 2004 12:35:44 -0700 Cc: Dan Stromberg , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 19:43:39 -0000 X-UID: 9343 Status: O Content-Length: 1996 --=-3FfYjWJZpCzC+hxCDn6J Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I did this recently. For converting from mbox to Maildir, check out mb2md. I converted a huge collection of folders using it. On Wed, 2004-06-02 at 11:11, Villalovos, John L wrote: > Does anyone have advice or pointers on good documentation on how to > convert a system from using the Mbox format to using Maildir? >=20 > I recently upgraded to Fedora Core 2 from Fedora Core 1 and discovered > that UW-IMAP was gone. So I switched over to using Dovecot. So far so > good. >=20 > But I would like to convert my system to start using the Maildir format. >=20 > How easy is this to accomplish? >=20 > Can I keep my Inbox /var/spool/mail/user_name as an mbox format and have > my other folders as Maildir? I -think- you can, but I chose not to. > What would I have to change for Sendmail to make it use Maildir for the > Inbox? If you have procmail as your MDA off of sendmail, then sendmail doesn't need to be touched. > Can procmail support Maildir? I'm using the procmails that come with RHEL3 and FC2 for Maildir folders without any problem. The only trouble I experienced during the conversion was when I tried to move a huge folder using evolution. Evolution got confused near the end, and I'd been accepting new mail into the target folder, so I had a bit of a mess. I wound up moving stuff a second time using the command line, and eliminating duplicate messages using my sequivs program. > Any pointers or help would be much appreciated? >=20 > John --=20 Dan Stromberg DCS/NACS/UCI --=-3FfYjWJZpCzC+hxCDn6J Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBAviwQo0feVm00f/8RAhN5AJsEGn7groIb/C6C/UtOgc/oca+YKACfXyGm aM97XBNBgAH99e6wj+swEyE= =ZvUU -----END PGP SIGNATURE----- --=-3FfYjWJZpCzC+hxCDn6J-- From tss@iki.fi Wed Jun 2 22:48:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 115A8C00286A; Wed, 2 Jun 2004 22:48:01 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id F09D7C000DD4 for ; Wed, 2 Jun 2004 22:47:58 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 4B4D01C185F2; Wed, 2 Jun 2004 22:40:46 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 52E941C185E2; Wed, 2 Jun 2004 22:40:12 +0300 (EEST) Subject: Re: [Dovecot] Advice on converting from Mbox to Maildir? From: Timo Sirainen To: "Villalovos, John L" In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com> References: <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-gFa7glj2kO50GZsJCq34" Message-Id: <1086205211.26596.33.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 02 Jun 2004 22:40:11 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 19:48:01 -0000 X-UID: 9344 Status: O --=-gFa7glj2kO50GZsJCq34 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-02 at 21:11, Villalovos, John L wrote: > Can I keep my Inbox /var/spool/mail/user_name as an mbox format and have > my other folders as Maildir? Not with 0.99.10. With 1.0-tests it's possible by defining multiple namespaces. --=-gFa7glj2kO50GZsJCq34 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAvi0byUhSUUBViskRAkgrAJ4tJqdRtYn6oFLFRmxOSKMDAoezHQCeLa0j Vpta7ZB33iXqxnh8IbQCmP4= =RRGJ -----END PGP SIGNATURE----- --=-gFa7glj2kO50GZsJCq34-- From dgc@uchicago.edu Wed Jun 2 23:15:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3ECB2C00286A; Wed, 2 Jun 2004 23:15:35 +0300 (EEST) Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by talvi.dovecot.org (Postfix) with ESMTP id 3ACCBC000DE3 for ; Wed, 2 Jun 2004 23:15:32 +0300 (EEST) Received: from dust.uchicago.edu (localhost [127.0.0.1]) by dust.uchicago.edu (8.12.10/8.12.9) with ESMTP id i52K7nJx011626; Wed, 2 Jun 2004 15:07:49 -0500 (CDT) Received: (from dgc@localhost) by dust.uchicago.edu (8.12.10/8.12.10/Submit) id i52K7jL9011625; Wed, 2 Jun 2004 15:07:45 -0500 (CDT) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Wed, 2 Jun 2004 15:07:44 -0500 From: David Champion To: "Villalovos, John L" Message-ID: <20040602200744.GK20313@dust.uchicago.edu> Mail-Followup-To: "Villalovos, John L" , dovecot@dovecot.org References: <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com> <1086204944.24881.158.camel@tesuji.nac.uci.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1086204944.24881.158.camel@tesuji.nac.uci.edu> X-Virus-Trap: submit@cdc.uchicago.edu X-Spam-Trap: submit@nospam.uchicago.edu X-Gouranga: Gouranga gouranga gouranga X-Quote: Can I have my sword back? User-Agent: Mutt/1.5.6i Cc: dovecot@dovecot.org Subject: [Dovecot] Re: Advice on converting from Mbox to Maildir? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 20:15:35 -0000 X-UID: 9345 Status: O Content-Length: 1209 * On 2004.06.02, in <1086204944.24881.158.camel@tesuji.nac.uci.edu>, * "Dan Stromberg" wrote: > > I did this recently. > > For converting from mbox to Maildir, check out mb2md. I converted a > huge collection of folders using it. Ah, I meant to address that too. Since procmail supports Maildir, you can also convert with procmail. It's probably slower to do so than with any dedicated conversion utility, but it uses a smaller and consistent set of tools. Here's a shell script. It doesn't address permissions or ownerships, and it doesn't delete the mbox folder. #!/bin/sh test -n "$1" || exit 5 convert () { MBOX="$1"; export MBOX mv "$MBOX" "$MBOX.mbox" mkdir "$MBOX" formail < "$MBOX" -s procmail "$pmrc" # rm -f "$MBOX" } pmrc=${TMPDIR-/tmp}/`basename $0`.pmrc cat <<'PMRC' >"$pmrc" :0 $MBOX/ PMRC for folder in "$@"; do convert "$folder" done rm -f "$pmrc" N.B. This, too, is untested. -- -D. dgc@uchicago.edu NSIT::ENSS No money, no book. No book, no study. No study, no pass. No pass, no graduate. No graduate, no job. No job, no money. T h e U n i v e r s i t y o f C h i c a g o From john.l.villalovos@intel.com Wed Jun 2 23:50:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0B531C000DE3; Wed, 2 Jun 2004 23:50:32 +0300 (EEST) Received: from hermes.jf.intel.com (fmr05.intel.com [134.134.136.6]) by talvi.dovecot.org (Postfix) with ESMTP id 05DD8C000DDE for ; Wed, 2 Jun 2004 23:50:29 +0300 (EEST) Received: from talaria.jf.intel.com (talaria.jf.intel.com [10.7.209.7]) by hermes.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc,v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i52KiYee015369; Wed, 2 Jun 2004 20:44:34 GMT Received: from orsmsxvs040.jf.intel.com (orsmsxvs040.jf.intel.com [192.168.65.206]) by talaria.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc,v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i52KdNRl009316; Wed, 2 Jun 2004 20:39:40 GMT Received: from orsmsx331.amr.corp.intel.com ([192.168.65.56]) by orsmsxvs040.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004060213431332189 ; Wed, 02 Jun 2004 13:43:13 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx331.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.6713); Wed, 2 Jun 2004 13:43:13 -0700 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 Subject: RE: [Dovecot] Advice on converting from Mbox to Maildir? Date: Wed, 2 Jun 2004 13:43:12 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B88C75D@orsmsx410.jf.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Advice on converting from Mbox to Maildir? Thread-Index: AcRI2NDy/l6ExNPLS6mnWt1FU+fRewACOsRQ From: "Villalovos, John L" To: "Dan Stromberg" X-OriginalArrivalTime: 02 Jun 2004 20:43:13.0667 (UTC) FILETIME=[39700D30:01C448E2] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 20:50:32 -0000 X-UID: 9346 Status: O Dan Stromberg wrote: > For converting from mbox to Maildir, check out mb2md. I converted a > huge collection of folders using it. Thanks. I'll look into that. >> Can procmail support Maildir? >=20 > I'm using the procmails that come with RHEL3 and FC2 for > Maildir folders > without any problem. So how did you setup procmail? Did you setup a /etc/procmailrc And then setup a: DEFAULT=3D$HOME/Maildir/ line in the file? Thanks, John From strombrg@dcs.nac.uci.edu Thu Jun 3 00:19:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1C7DEC000DE3; Thu, 3 Jun 2004 00:19:51 +0300 (EEST) Received: from dcs.nac.uci.edu (dcs.nac.uci.edu [128.200.34.32]) by talvi.dovecot.org (Postfix) with ESMTP id 6C727C000DD4 for ; Thu, 3 Jun 2004 00:19:48 +0300 (EEST) Received: from [128.200.34.35] (tesuji.nac.uci.edu [128.200.34.35]) by dcs.nac.uci.edu (8.12.11/8.12.10) with ESMTP id i52LCVdq007678; Wed, 2 Jun 2004 14:12:31 -0700 Subject: RE: [Dovecot] Advice on converting from Mbox to Maildir? From: Dan Stromberg To: "Villalovos, John L" In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B88C75D@orsmsx410.jf.intel.com> References: <60C14C611F1DDD4198D53F2F43D8CA3B88C75D@orsmsx410.jf.intel.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-GM1ZwUEpCNCocZWlTT22" Message-Id: <1086210750.6201.10.camel@tesuji.nac.uci.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Wed, 02 Jun 2004 14:12:30 -0700 Cc: Dan Stromberg , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 21:19:51 -0000 X-UID: 9347 Status: O Content-Length: 1214 --=-GM1ZwUEpCNCocZWlTT22 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-02 at 13:43, Villalovos, John L wrote: > >> Can procmail support Maildir? > >=20 > > I'm using the procmails that come with RHEL3 and FC2 for > > Maildir folders > > without any problem. >=20 > So how did you setup procmail? >=20 > Did you setup a /etc/procmailrc >=20 > And then setup a: >=20 > DEFAULT=3D$HOME/Maildir/ > > line in the file? I've never used $DEFAULT, though from the sound of it that might be a good idea. I just have a procmailrc that delivers things to $HOME/Maildir/.foldername/ for folders, and $HOME/Maildir/ for the inbox. dovecot didn't seem happy without the . in front of the folder names. These .'s are not visible from the MUA perspective. --=20 Dan Stromberg DCS/NACS/UCI --=-GM1ZwUEpCNCocZWlTT22 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBAvkK+o0feVm00f/8RAna/AJ9kUYdEgG6wZ8MBztUvfaK0xNyeiwCcDsrU 5+p0vcg5UamovkdZU/ADrEE= =+bJy -----END PGP SIGNATURE----- --=-GM1ZwUEpCNCocZWlTT22-- From pegasus@nerv.eu.org Thu Jun 3 00:21:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E206DC002841; Thu, 3 Jun 2004 00:21:55 +0300 (EEST) Received: from mail.animeslovenija.org (feather2.animeslovenija.org [193.77.122.70]) by talvi.dovecot.org (Postfix) with ESMTP id D53C7C000DE3 for ; Thu, 3 Jun 2004 00:21:53 +0300 (EEST) Received: from localhost (disko [192.168.200.4]) by mail.animeslovenija.org (8.7.6/8.7.6) with ESMTP id F2A469C19 for ; Wed, 2 Jun 2004 23:14:45 +0200 (CEST) Received: from mail.animeslovenija.org ([192.168.200.3]) by localhost (disko [192.168.200.4]) (amavisd-new, port 10024) with LMTP id 29437-01 for ; Wed, 2 Jun 2004 23:14:10 +0200 (CEST) Received: from [192.168.0.8] (jarse [193.95.219.68]) by mail.animeslovenija.org (8.7.6/8.7.6) with ESMTP id 17BEF9BD8 for ; Wed, 2 Jun 2004 22:09:52 +0200 (CEST) From: Jure Pecar To: dovecot@dovecot.org Date: Wed, 2 Jun 2004 22:13:36 +0200 User-Agent: KMail/1.6.2 MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <200406022213.36561.pegasus@nerv.eu.org> X-Virus-Scanned: by amavisd-new at animeslovenija.org Subject: [Dovecot] mta/mda config X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 21:21:56 -0000 X-UID: 9348 Status: O Hi all, I'm at the stage of planning our new mail system and am evaluating dovecot = for=20 it.=20 =46or large mailstore setups, it makes sense to split maildirs across many= =20 directories. I see that setting default_mail_env to something like=20 maildir:/var/imap/domain/%1d/%d/%1u/user/%u/ would create almost identical= =20 on-disk layout as multidomain cyrus setup. Now, as dovecot does not have it= s=20 own mda or lmtp daemon, how does one configure mta (eg. postfix) to deliver= =20 mail in such maildirs? Related question ... any cyrus to dovecot migration tales? :) =2D-=20 Jure Pe=C4=8Dar From zerbey@wibble.co.uk Thu Jun 3 01:12:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3AAF5C00290A; Thu, 3 Jun 2004 01:12:11 +0300 (EEST) Received: from gary.horry.org (rrcs-se-24-173-163-50.biz.rr.com [24.173.163.50]) by talvi.dovecot.org (Postfix) with ESMTP id 9F27EC002909 for ; Thu, 3 Jun 2004 01:12:05 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by gary.horry.org (Postfix) with ESMTP id 66D28F00A6 for ; Wed, 2 Jun 2004 18:04:51 -0400 (EDT) Received: from gary.horry.org ([127.0.0.1]) by localhost (gary [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 16215-01 for ; Wed, 2 Jun 2004 18:04:51 -0400 (EDT) Received: from rrcs-se-24-173-163-50.biz.rr.com (rrcs-se-24-173-163-50.biz.rr.com [24.173.163.50]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gary.horry.org (Postfix) with ESMTP id EC3D7F00A5 for ; Wed, 2 Jun 2004 18:04:50 -0400 (EDT) Date: Wed, 2 Jun 2004 18:04:44 -0400 (EDT) From: Chris Horry X-X-Sender: zerbey@gary.horry.org To: dovecot@dovecot.org Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1414501197-1086213884=:16371" X-Virus-Scanned: by amavisd-new at gary.horry.org Subject: [Dovecot] IMAP folders missing after migrating to Dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 22:12:11 -0000 X-UID: 9349 Status: O Content-Length: 26573 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --8323328-1414501197-1086213884=:16371 Content-Type: TEXT/PLAIN; charset=US-ASCII -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello all, I'm migrating to Dovecot from Courier-IMAP. I use Postfix with Maildir for delivery. When I use Dovecot as the IMAP server all of my folders are missing, the only thing that remains is the Inbox folder. Has anyone else experienced this issue? I have enclosed my configuration. Thanks, Chris - -- Chris Horry "Winter is the season in which people zerbey@wibble.co.uk try to keep the house as warm as it was PGP: DSA/2B4C654E it was in the summer, when they complained Amateur Radio: KG4TSM about the heat" --Author Unknown -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iEYEARECAAYFAkC+TwAACgkQnAAeGCtMZU5/IwCeNAac9HXNmZpWn7aoeINC2RH+ SeIAnRASJdvDIOi6/ZvBMzBJwWrKPJVZ =iK37 -----END PGP SIGNATURE----- --8323328-1414501197-1086213884=:16371 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="dovecot.conf" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="dovecot.conf" IyMgRG92ZWNvdCAxLjAgY29uZmlndXJhdGlvbiBmaWxlDQoNCiMgRGVmYXVs dCB2YWx1ZXMgYXJlIHNob3duIGFmdGVyIGVhY2ggdmFsdWUsIGl0J3Mgbm90 IHJlcXVpcmVkIHRvIHVuY29tbWVudA0KIyBhbnkgb2YgdGhlIGxpbmVzLiBF eGNlcHRpb24gdG8gdGhpcyBhcmUgcGF0aHMsIHRoZXkncmUganVzdCBleGFt cGxlcw0KIyB3aXRoIHJlYWwgZGVmYXVsdHMgYmVpbmcgYmFzZWQgb24gY29u ZmlndXJlIG9wdGlvbnMuIFRoZSBwYXRocyBsaXN0ZWQgaGVyZQ0KIyBhcmUg Zm9yIGNvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIC0tc3lzY29uZmRpcj0vZXRj IC0tbG9jYWxzdGF0ZWRpcj0vdmFyDQojIC0td2l0aC1zc2xkaXI9L2V0Yy9z c2wNCg0KIyBCYXNlIGRpcmVjdG9yeSB3aGVyZSB0byBzdG9yZSBydW50aW1l IGRhdGEuDQojYmFzZV9kaXIgPSAvdmFyL3J1bi9kb3ZlY290Lw0KDQojIFBy b3RvY29scyB3ZSB3YW50IHRvIGJlIHNlcnZpbmc6DQojICBpbWFwIGltYXBz IHBvcDMgcG9wM3MNCnByb3RvY29scyA9IGltYXAgaW1hcHMgcG9wMw0KDQoj IElQIG9yIGhvc3QgYWRkcmVzcyB3aGVyZSB0byBsaXN0ZW4gaW4gZm9yIGNv bm5lY3Rpb25zLiBJdCdzIG5vdCBjdXJyZW50bHkNCiMgcG9zc2libGUgdG8g c3BlY2lmeSBtdWx0aXBsZSBhZGRyZXNzZXMuICIqIiBsaXN0ZW5zIGluIGFs bCBJUHY0IGludGVyZmFjZXMuDQojICJbOjpdIiBsaXN0ZW5zIGluIGFsbCBJ UHY2IGludGVyZmFjZXMsIGJ1dCBtYXkgYWxzbyBsaXN0ZW4gaW4gYWxsIElQ djQNCiMgaW50ZXJmYWNlcyBkZXBlbmRpbmcgb24gdGhlIG9wZXJhdGluZyBz eXN0ZW0uIFlvdSBjYW4gc3BlY2lmeSBwb3J0cyB3aXRoDQojICJob3N0OnBv cnQiLg0KI2ltYXBfbGlzdGVuID0gKg0KI3BvcDNfbGlzdGVuID0gKg0KDQoj IElQIG9yIGhvc3QgYWRkcmVzcyB3aGVyZSB0byBsaXN0ZW4gaW4gZm9yIFNT TCBjb25uZWN0aW9ucy4gRGVmYXVsdHMNCiMgdG8gYWJvdmUgbm9uLVNTTCBl cXVpbGV2YW50cyBpZiBub3Qgc3BlY2lmaWVkLg0KaW1hcHNfbGlzdGVuID0g Kjo4MDAwDQojcG9wM3NfbGlzdGVuID0gDQoNCiMgRGlzYWJsZSBTU0wvVExT IHN1cHBvcnQuDQojc3NsX2Rpc2FibGUgPSBubw0KDQojIFBFTSBlbmNvZGVk IFguNTA5IFNTTC9UTFMgY2VydGlmaWNhdGUgYW5kIHByaXZhdGUga2V5LiBU aGV5J3JlIG9wZW5lZCBiZWZvcmUNCiMgZHJvcHBpbmcgcm9vdCBwcml2aWxl Z2VzLCBzbyBrZWVwIHRoZSBrZXkgZmlsZSB1bnJlYWRhYmxlIGJ5IGFueW9u ZSBidXQNCiMgcm9vdC4gSW5jbHVkZWQgZG9jL21rY2VydC5zaCBjYW4gYmUg dXNlZCB0byBlYXNpbHkgZ2VuZXJhdGUgc2VsZi1zaWduZWQNCiMgY2VydGlm aWNhdGUsIGp1c3QgbWFrZSBzdXJlIHRvIHVwZGF0ZSB0aGUgZG9tYWlucyBp biBkb3ZlY290LW9wZW5zc2wuY25mDQojc3NsX2NlcnRfZmlsZSA9IC9ldGMv c3NsL2NlcnRzL2RvdmVjb3QucGVtDQpzc2xfY2VydF9maWxlID0gL3Vzci9s aWIvY291cmllci1pbWFwL3NoYXJlL2ltYXBkLnBlbQ0Kc3NsX2tleV9maWxl ID0gL3Vzci9saWIvY291cmllci1pbWFwL3NoYXJlL2ltYXBkLnBlbQ0KDQoj IFNTTCBwYXJhbWV0ZXIgZmlsZS4gTWFzdGVyIHByb2Nlc3MgZ2VuZXJhdGVz IHRoaXMgZmlsZSBmb3IgbG9naW4gcHJvY2Vzc2VzLg0KIyBJdCBjb250YWlu cyBEaWZmaWUgSGVsbG1hbiBhbmQgUlNBIHBhcmFtZXRlcnMuDQojc3NsX3Bh cmFtZXRlcnNfZmlsZSA9IC92YXIvcnVuL2RvdmVjb3Qvc3NsLXBhcmFtZXRl cnMuZGF0DQoNCiMgSG93IG9mdGVuIHRvIHJlZ2VuZXJhdGUgdGhlIFNTTCBw YXJhbWV0ZXJzIGZpbGUuIEdlbmVyYXRpb24gaXMgcXVpdGUgQ1BVDQojIGlu dGVuc2l2ZSBvcGVyYXRpb24uIFRoZSB2YWx1ZSBpcyBpbiBob3VycywgMCBk aXNhYmxlcyByZWdlbmVyYXRpb24NCiMgZW50aXJlbHkuDQojc3NsX3BhcmFt ZXRlcnNfcmVnZW5lcmF0ZSA9IDI0DQoNCiMgRGlzYWJsZSBMT0dJTiBjb21t YW5kIGFuZCBhbGwgb3RoZXIgcGxhaW50ZXh0IGF1dGhlbnRpY2F0aW9ucyB1 bmxlc3MNCiMgU1NML1RMUyBpcyB1c2VkIChMT0dJTkRJU0FCTEVEIGNhcGFi aWxpdHkpDQojZGlzYWJsZV9wbGFpbnRleHRfYXV0aCA9IG5vDQoNCiMgVXNl IHRoaXMgbG9nZmlsZSBpbnN0ZWFkIG9mIHN5c2xvZygpLiAvZGV2L3N0ZGVy ciBjYW4gYmUgdXNlZCBpZiB5b3Ugd2FudCB0bw0KIyB1c2Ugc3RkZXJyIGZv ciBsb2dnaW5nIChPTkxZIC9kZXYvc3RkZXJyIC0gb3RoZXJ3aXNlIGl0IGlz IGNsb3NlZCkuDQojbG9nX3BhdGggPSANCg0KIyBGb3IgaW5mb3JtYXRpb25h bCBtZXNzYWdlcywgdXNlIHRoaXMgbG9nZmlsZSBpbnN0ZWFkIG9mIHRoZSBk ZWZhdWx0DQojaW5mb19sb2dfcGF0aCA9IA0KDQojIFByZWZpeCBmb3IgZWFj aCBsaW5lIHdyaXR0ZW4gdG8gbG9nIGZpbGUuICUgY29kZXMgYXJlIGluIHN0 cmZ0aW1lKDMpDQojIGZvcm1hdC4gTm90ZSB0aGUgZXh0cmEgc3BhY2UgYXQg dGhlIGVuZCBvZiBsaW5lLg0KI2xvZ190aW1lc3RhbXAgPSAiJWIgJWQgJUg6 JU06JVMgIg0KDQojIw0KIyMgTG9naW4gcHJvY2Vzc2VzDQojIw0KDQojIERp cmVjdG9yeSB3aGVyZSBhdXRoZW50aWNhdGlvbiBwcm9jZXNzIHBsYWNlcyBh dXRoZW50aWNhdGlvbiBVTklYIHNvY2tldHMNCiMgd2hpY2ggbG9naW4gbmVl ZHMgdG8gYmUgYWJsZSB0byBjb25uZWN0IHRvLiBUaGUgc29ja2V0cyBhcmUg Y3JlYXRlZCB3aGVuDQojIHJ1bm5pbmcgYXMgcm9vdCwgc28geW91IGRvbid0 IGhhdmUgdG8gd29ycnkgYWJvdXQgcGVybWlzc2lvbnMuDQojbG9naW5fZGly ID0gL3Zhci9ydW4vZG92ZWNvdC9sb2dpbg0KDQojIGNocm9vdCBsb2dpbiBw cm9jZXNzIHRvIHRoZSBsb2dpbl9kaXIuIE9ubHkgcmVhc29uIG5vdCB0byBk byB0aGlzIGlzIGlmIHlvdQ0KIyB3aXNoIHRvIHJ1biB0aGUgd2hvbGUgRG92 ZWNvdCB3aXRob3V0IHJvb3RzLg0KI2xvZ2luX2Nocm9vdCA9IHllcw0KDQoN CiMjDQojIyBJTUFQIGxvZ2luIHByb2Nlc3MNCiMjDQoNCmxvZ2luID0gaW1h cA0KDQojIEV4ZWN1dGFibGUgbG9jYXRpb24uDQojbG9naW5fZXhlY3V0YWJs ZSA9IC91c3IvbGliZXhlYy9kb3ZlY290L2ltYXAtbG9naW4NCg0KIyBVc2Vy IHRvIHVzZSBmb3IgdGhlIGxvZ2luIHByb2Nlc3MuIENyZWF0ZSBhIGNvbXBs ZXRlbHkgbmV3IHVzZXIgZm9yIHRoaXMsDQojIGFuZCBkb24ndCB1c2UgaXQg YW55d2hlcmUgZWxzZS4gVGhlIHVzZXIgbXVzdCBhbHNvIGJlbG9uZyB0byBh IGdyb3VwIHdoZXJlDQojIG9ubHkgaXQgaGFzIGFjY2VzcywgaXQncyB1c2Vk IHRvIGNvbnRyb2wgYWNjZXNzIGZvciBhdXRoZW50aWNhdGlvbiBwcm9jZXNz Lg0KI2xvZ2luX3VzZXIgPSBkb3ZlY290DQoNCiMgU2V0IG1heC4gcHJvY2Vz cyBzaXplIGluIG1lZ2FieXRlcy4gSWYgeW91IGRvbid0IHVzZQ0KIyBsb2dp bl9wcm9jZXNzX3Blcl9jb25uZWN0aW9uIHlvdSBtaWdodCBuZWVkIHRvIGdy b3cgdGhpcy4NCiNsb2dpbl9wcm9jZXNzX3NpemUgPSAxNg0KDQojIFNob3Vs ZCBlYWNoIGxvZ2luIGJlIHByb2Nlc3NlZCBpbiBpdCdzIG93biBwcm9jZXNz ICh5ZXMpLCBvciBzaG91bGQgb25lDQojIGxvZ2luIHByb2Nlc3MgYmUgYWxs b3dlZCB0byBwcm9jZXNzIG11bHRpcGxlIGNvbm5lY3Rpb25zIChubyk/IFll cyBpcyBtb3JlDQojIHNlY3VyZSwgZXNwY2lhbGx5IHdpdGggU1NML1RMUyBl bmFibGVkLiBObyBpcyBmYXN0ZXIgc2luY2UgdGhlcmUncyBubyBuZWVkDQoj IHRvIGNyZWF0ZSBwcm9jZXNzZXMgYWxsIHRoZSB0aW1lLg0KI2xvZ2luX3By b2Nlc3NfcGVyX2Nvbm5lY3Rpb24gPSB5ZXMNCg0KIyBOdW1iZXIgb2YgbG9n aW4gcHJvY2Vzc2VzIHRvIGNyZWF0ZS4gSWYgbG9naW5fcHJvY2Vzc19wZXJf dXNlciBpcw0KIyB5ZXMsIHRoaXMgaXMgdGhlIG51bWJlciBvZiBleHRyYSBw cm9jZXNzZXMgd2FpdGluZyBmb3IgdXNlcnMgdG8gbG9nIGluLg0KI2xvZ2lu X3Byb2Nlc3Nlc19jb3VudCA9IDMNCg0KIyBNYXhpbXVtIG51bWJlciBvZiBl eHRyYSBsb2dpbiBwcm9jZXNzZXMgdG8gY3JlYXRlLiBUaGUgZXh0cmEgcHJv Y2VzcyBjb3VudA0KIyB1c3VhbGx5IHN0YXlzIGF0IGxvZ2luX3Byb2Nlc3Nl c19jb3VudCwgYnV0IHdoZW4gbXVsdGlwbGUgdXNlcnMgc3RhcnQgbG9nZ2lu Zw0KIyBpbiBhdCB0aGUgc2FtZSB0aW1lIG1vcmUgZXh0cmEgcHJvY2Vzc2Vz IGFyZSBjcmVhdGVkLiBUbyBwcmV2ZW50IGZvcmstYm9tYmluZw0KIyB3ZSBj aGVjayBvbmx5IG9uY2UgaW4gYSBzZWNvbmQgaWYgbmV3IHByb2Nlc3NlcyBz aG91bGQgYmUgY3JlYXRlZCAtIGlmIGFsbA0KIyBvZiB0aGVtIGFyZSB1c2Vk IGF0IHRoZSB0aW1lLCB3ZSBkb3VibGUgdGhlaXIgYW1vdW50IHVudGlsIGxp bWl0IHNldCBieSB0aGlzDQojIHNldHRpbmcgaXMgcmVhY2hlZC4gVGhpcyBz ZXR0aW5nIGlzIHVzZWQgb25seSBpZiBsb2dpbl9wcm9jZXNzX3Blcl91c2Ug aXMgeWVzLg0KI2xvZ2luX21heF9wcm9jZXNzZXNfY291bnQgPSAxMjgNCg0K IyBNYXhpbXVtIG51bWJlciBvZiBjb25uZWN0aW9ucyBhbGxvd2VkIGluIGxv Z2luIHN0YXRlLiBXaGVuIHRoaXMgbGltaXQgaXMNCiMgcmVhY2hlZCwgdGhl IG9sZGVzdCBjb25uZWN0aW9ucyBhcmUgZHJvcHBlZC4gSWYgbG9naW5fcHJv Y2Vzc19wZXJfdXNlcg0KIyBpcyBubywgdGhpcyBpcyBhIHBlci1wcm9jZXNz IHZhbHVlLCBzbyB0aGUgYWJzb2x1dGUgbWF4aW11bSBudW1iZXIgb2YgdXNl cnMNCiMgbG9nZ2luZyBpbiBhY3R1YWxseSBsb2dpbl9wcm9jZXNzZXNfY291 bnQgKiBtYXhfbG9nZ2luZ191c2Vycy4NCiNsb2dpbl9tYXhfbG9nZ2luZ191 c2VycyA9IDI1Ng0KDQojIw0KIyMgUE9QMyBsb2dpbiBwcm9jZXNzDQojIw0K DQojIFNldHRpbmdzIGRlZmF1bHQgdG8gc2FtZSBhcyBhYm92ZSwgc28geW91 IGRvbid0IGhhdmUgdG8gc2V0IGFueXRoaW5nDQojIHVubGVzcyB5b3Ugd2Fu dCB0byBvdmVycmlkZSB0aGVtLg0KDQpsb2dpbiA9IHBvcDMNCg0KIyBFeGNl cHRpb24gdG8gYWJvdmUgcnVsZSBiZWluZyB0aGUgZXhlY3V0YWJsZSBsb2Nh dGlvbi4NCiNsb2dpbl9leGVjdXRhYmxlID0gL3Vzci9saWJleGVjL2RvdmVj b3QvcG9wMy1sb2dpbg0KDQojIw0KIyMgTWFpbCBwcm9jZXNzZXMNCiMjDQoN CiMgTWF4aW11bSBudW1iZXIgb2YgcnVubmluZyBtYWlsIHByb2Nlc3Nlcy4g V2hlbiB0aGlzIGxpbWl0IGlzIHJlYWNoZWQsDQojIG5ldyB1c2VycyBhcmVu J3QgYWxsb3dlZCB0byBsb2cgaW4uDQojbWF4X21haWxfcHJvY2Vzc2VzID0g MTAyNA0KDQojIFNob3cgbW9yZSB2ZXJib3NlIHByb2Nlc3MgdGl0bGVzIChp biBwcykuIEN1cnJlbnRseSBzaG93cyB1c2VyIG5hbWUgYW5kDQojIElQIGFk ZHJlc3MuIFVzZWZ1bCBmb3Igc2VlaW5nIHdobyBhcmUgYWN0dWFsbHkgdXNp bmcgdGhlIElNQVAgcHJvY2Vzc2VzDQojIChlZy4gc2hhcmVkIG1haWxib3hl cyBvciBpZiBzYW1lIHVpZCBpcyB1c2VkIGZvciBtdWx0aXBsZSBhY2NvdW50 cykuDQojdmVyYm9zZV9wcm9jdGl0bGUgPSBubw0KDQojIFNob3cgcHJvdG9j b2wgbGV2ZWwgU1NMIGVycm9ycy4NCiN2ZXJib3NlX3NzbCA9IG5vDQoNCiMg VmFsaWQgVUlEIHJhbmdlIGZvciB1c2VycywgZGVmYXVsdHMgdG8gNTAwIGFu ZCBhYm92ZS4gVGhpcyBpcyBtb3N0bHkNCiMgdG8gbWFrZSBzdXJlIHRoYXQg dXNlcnMgY2FuJ3QgbG9nIGluIGFzIGRhZW1vbnMgb3Igb3RoZXIgc3lzdGVt IHVzZXJzLg0KIyBOb3RlIHRoYXQgZGVueWluZyByb290IGxvZ2lucyBpcyBo YXJkY29kZWQgdG8gZG92ZWNvdCBiaW5hcnkgYW5kIGNhbid0DQojIGJlIGRv bmUgZXZlbiBpZiBmaXJzdF92YWxpZF91aWQgaXMgc2V0IHRvIDAuDQojZmly c3RfdmFsaWRfdWlkID0gNTAwDQojbGFzdF92YWxpZF91aWQgPSAwDQoNCiMg VmFsaWQgR0lEIHJhbmdlIGZvciB1c2VycywgZGVmYXVsdHMgdG8gbm9uLXJv b3Qvd2hlZWwuIFVzZXJzIGhhdmluZw0KIyBub24tdmFsaWQgR0lEIGFzIHBy aW1hcnkgZ3JvdXAgSUQgYXJlbid0IGFsbG93ZWQgdG8gbG9nIGluLiBJZiB1 c2VyDQojIGJlbG9uZ3MgdG8gc3VwcGxlbWVudGFyeSBncm91cHMgd2l0aCBu b24tdmFsaWQgR0lEcywgdGhvc2UgZ3JvdXBzIGFyZQ0KIyBub3Qgc2V0Lg0K I2ZpcnN0X3ZhbGlkX2dpZCA9IDENCiNsYXN0X3ZhbGlkX2dpZCA9IDANCg0K IyAnOicgc2VwYXJhdGVkIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdW5kZXIgd2hp Y2ggY2hyb290aW5nIGlzIGFsbG93ZWQgZm9yIG1haWwNCiMgcHJvY2Vzc2Vz IChpZS4gL3Zhci9tYWlsIHdpbGwgYWxsb3cgY2hyb290aW5nIHRvIC92YXIv bWFpbC9mb28vYmFyIHRvbykuDQojIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFm ZmVjdCBsb2dpbl9jaHJvb3Qgb3IgYXV0aF9jaHJvb3QgdmFyaWFibGVzLg0K IyBXQVJOSU5HOiBOZXZlciBhZGQgZGlyZWN0b3JpZXMgaGVyZSB3aGljaCBs b2NhbCB1c2VycyBjYW4gbW9kaWZ5LCB0aGF0DQojIG1heSBsZWFkIHRvIHJv b3QgZXhwbG9pdC4gVXN1YWxseSB0aGlzIHNob3VsZCBiZSBkb25lIG9ubHkg aWYgeW91IGRvbid0DQojIGFsbG93IHNoZWxsIGFjY2VzcyBmb3IgdXNlcnMu IFNlZSBkb2MvY29uZmlndXJhdGlvbi50eHQgZm9yIG1vcmUgaW5mb3JtYXRp b24uDQojdmFsaWRfY2hyb290X2RpcnMgPSANCg0KIyBEZWZhdWx0IGNocm9v dCBkaXJlY3RvcnkgZm9yIG1haWwgcHJvY2Vzc2VzLiBUaGlzIGNhbiBiZSBv dmVycmlkZGVuIGJ5DQojIGdpdmluZyAvLi8gaW4gdXNlcidzIGhvbWUgZGly ZWN0b3J5IChlZy4gL2hvbWUvLi91c2VyIGNocm9vdHMgaW50byAvaG9tZSku DQojbWFpbF9jaHJvb3QgPSANCg0KIyBEZWZhdWx0IE1BSUwgZW52aXJvbm1l bnQgdG8gdXNlIHdoZW4gaXQncyBub3Qgc2V0LiBCeSBsZWF2aW5nIHRoaXMg ZW1wdHkNCiMgZG92ZWNvdCB0cmllcyB0byBkbyBzb21lIGF1dG9tYXRpYyBk ZXRlY3Rpb24gYXMgZGVzY3JpYmVkIGluDQojIGRvYy9tYWlsLXN0b3JhZ2Vz LnR4dC4gVGhlcmUncyBhIGZldyBzcGVjaWFsIHZhcmlhYmxlcyB5b3UgY2Fu IHVzZToNCiMNCiMgICAldSAtIHVzZXJuYW1lDQojICAgJW4gLSB1c2VyIHBh cnQgaW4gdXNlckBkb21haW4sIHNhbWUgYXMgJXUgaWYgdGhlcmUncyBubyBk b21haW4NCiMgICAlZCAtIGRvbWFpbiBwYXJ0IGluIHVzZXJAZG9tYWluLCBl bXB0eSBpZiB1c2VyIHRoZXJlJ3Mgbm8gZG9tYWluDQojICAgJWggLSBob21l IGRpcmVjdG9yeQ0KIw0KIyBZb3UgY2FuIGFsc28gbGltaXQgYSB3aWR0aCBv ZiBzdHJpbmcgYnkgZ2l2aW5nIHRoZSBudW1iZXIgb2YgbWF4LiBjaGFyYWN0 ZXJzDQojIGFmdGVyIHRoZSAnJScgY2hhcmFjdGVyLiBGb3IgZXhhbXBsZSAl MXUgZ2l2ZXMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZg0KIyB1c2VybmFtZS4g U29tZSBleGFtcGxlczoNCiMNCiMgICBtYWlsZGlyOi92YXIvbWFpbC8lMXUv JXUvTWFpbGRpcg0KIyAgIG1ib3g6fi9tYWlsLzpJTkJPWD0vdmFyL21haWwv JXUNCiMgICBtYm94Oi92YXIvbWFpbC8lZC8lbi86SU5ERVg9L3Zhci9pbmRl eGVzLyVkLyVuDQojDQpkZWZhdWx0X21haWxfZW52ID0gbWFpbGRpcjolaC9N YWlsZGlyDQoNCiMgU3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGRzIHRv IGNhY2hlIGZvciBhbGwgbWFpbHMuIEN1cnJlbnRseSB0aGVzZQ0KIyBmaWVs ZHMgYXJlIGFsbG93ZWQgZm9sbG93ZWQgYnkgYSBsaXN0IG9mIGNvbW1hbmRz IHRoZXkgc3BlZWQgdXA6DQojDQojICBFbnZlbG9wZSAgICAgIC0gRkVUQ0gg RU5WRUxPUEUgYW5kIFNFQVJDSCBGUk9NLCBUTywgQ0MsIEJDQywgU1VCSkVD VCwNCiMgICAgICAgICAgICAgICAgICBTRU5UQkVGT1JFLCBTRU5UT04sIFNF TlRTSU5DRSwgSEVBREVSIE1FU1NBR0UtSUQsDQojICAgICAgICAgICAgICAg ICAgSEVBREVSIElOLVJFUExZLVRPDQojICBCb2R5ICAgICAgICAgIC0gRkVU Q0ggQk9EWQ0KIyAgQm9keXN0cnVjdHVyZSAtIEZFVENIIEJPRFksIEJPRFlT VFJVQ1RVUkUNCiMgIE1lc3NhZ2VQYXJ0ICAgLSBGRVRDSCBCT0RZWzEuMi4z XSAoaWUuIGJvZHkgcGFydHMpLCBSRkM4MjIuU0laRSwNCiMgICAgICAgICAg ICAgICAgICBTRUFSQ0ggU01BTExFUiwgTEFSR0VSLCBhbHNvIHNwZWVkcyB1 cCBCT0RZL0JPRFlTVFJVQ1RVUkUNCiMgICAgICAgICAgICAgICAgICBnZW5l cmF0aW9uLiBUaGlzIGlzIGFsd2F5cyBzZXQgd2l0aCBtYm94IG1haWxib3hl cywgYW5kDQojICAgICAgICAgICAgICAgICAgYWxzbyBkZWZhdWx0IHdpdGgg TWFpbGRpci4NCiMNCiMgRGlmZmVyZW50IElNQVAgY2xpZW50cyB3b3JrIGlu IGRpZmZlcmVudCB3YXlzLCB0aGF0J3Mgd2h5IERvdmVjb3QgYnkgZGVmYXVs dA0KIyBvbmx5IGNhY2hlcyBNZXNzYWdlUGFydCB3aGljaCBzcGVlZHMgdXAg bW9zdCBvcGVyYXRpb25zLiBXaGVuZXZlciBjbGllbnQNCiMgZG9lcyBzb21l dGhpbmcgd2hlcmUgY2FjaGluZyBjb3VsZCBiZSB1c2VkLCB0aGUgZmllbGQg aXMgYXV0b21hdGljYWxseSBtYXJrZWQNCiMgdG8gYmUgY2FjaGVkIGxhdGVy LiBGb3IgZXhhbXBsZSBhZnRlciBGRVRDSCBCT0RZIHRoZSBCT0RZIHdpbGwg YmUgY2FjaGVkDQojIGZvciBhbGwgbmV3IG1lc3NhZ2VzLiBOb3JtYWxseSB5 b3Ugc2hvdWxkIGxlYXZlIHRoaXMgYWxvbmUsIHVubGVzcyB5b3Uga25vdw0K IyB3aGF0IG1vc3Qgb2YgeW91ciBJTUFQIGNsaWVudHMgYXJlLiBDYWNoaW5n IG1vcmUgZmllbGRzIHRoYW4gbmVlZGVkIG1ha2VzDQojIHRoZSBpbmRleCBm aWxlcyBsYXJnZXIgYW5kIGdlbmVyYXRlIHVzZWxlc3MgSS9PLg0KIw0KIyBX aXRoIG1haWxkaXIgdGhlcmUncyBvbmUgZXh0cmEgb3B0aW1pemF0aW9uIC0g aWYgbm90aGluZyBpcyBjYWNoZWQsIGluZGV4aW5nDQojIHRoZSBtYWlsZGly IGJlY29tZXMgbXVjaCBmYXN0ZXIgc2luY2UgaXQncyBub3Qgb3BlbmluZyBh bnkgb2YgdGhlIG1haWwgZmlsZXMuDQojIFRoaXMgY291bGQgYmUgdXNlZnVs IGlmIHlvdXIgSU1BUCBjbGllbnRzIGFjY2VzcyBvbmx5IG5ldyBtYWlscy4N Cg0KI21haWxfY2FjaGVfZmllbGRzID0gTWVzc2FnZVBhcnQNCg0KIyBTcGFj ZS1zZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZHMgdGhhdCBEb3ZlY290IHNob3Vs ZCBuZXZlciBzZXQgdG8gYmUgY2FjaGVkLg0KIyBVc2VmdWwgaWYgeW91IHdh bnQgdG8gc2F2ZSBkaXNrIHNwYWNlIGF0IHRoZSBjb3N0IG9mIG1vcmUgSS9P IHdoZW4gdGhlIGZpZWxkcw0KIyBuZWVkZWQuDQojbWFpbF9uZXZlcl9jYWNo ZV9maWVsZHMgPSANCg0KIyBXb3JrYXJvdW5kcyBmb3IgdmFyaW91cyBjbGll bnQgYnVnczoNCiMgICBvZTYtZmV0Y2gtbm8tbmV3bWFpbDoNCiMgICAgIE5l dmVyIHNlbmQgRVhJU1RTL1JFQ0VOVCB3aGVuIHJlcGx5aW5nIHRvIEZFVENI IGNvbW1hbmQuIE91dGxvb2sgRXhwcmVzcw0KIyAgICAgc2VlbXMgdG8gdGhp bmsgdGhleSBhcmUgRkVUQ0ggcmVwbGllcyBhbmQgZ2l2ZXMgdXNlciAiTWVz c2FnZSBubyBsb25nZXINCiMgICAgIGluIHNlcnZlciIgZXJyb3IuIE5vdGUg dGhhdCBPRTYgc3RpbGwgYnJlYWtzIGV2ZW4gd2l0aCB0aGlzIHdvcmthcm91 bmQNCiMgICAgIGlmIHN5bmNocm9uaXphdGlvbiBpcyBzZXQgdG8gIkhlYWRl cnMgT25seSIuDQojICAgb3V0bG9vay1pZGxlOg0KIyAgICAgT3V0bG9vayBh bmQgT3V0bG9vayBFeHByZXNzIG5ldmVyIGFib3J0IElETEUgY29tbWFuZCwg c28gaWYgbm8gbWFpbA0KIyAgICAgYXJyaXZlcyBpbiBoYWxmIGEgaG91ciwg RG92ZWNvdCBjbG9zZXMgdGhlIGNvbm5lY3Rpb24uIFRoaXMgaXMgc3RpbGwN CiMgICAgIGZpbmUsIGV4Y2VwdCBPdXRsb29rIGRvZXNuJ3QgY29ubmVjdCBi YWNrIHNvIHlvdSBkb24ndCBzZWUgaWYgbmV3IG1haWwNCiMgICAgIGFycml2 ZXMuDQojY2xpZW50X3dvcmthcm91bmRzID0gDQoNCiMgRG92ZWNvdCBjYW4g bm90aWZ5IGNsaWVudCBvZiBuZXcgbWFpbCBpbiBzZWxlY3RlZCBtYWlsYm94 IHNvb24gYWZ0ZXIgaXQncw0KIyByZWNlaXZlZC4gVGhpcyBzZXR0aW5nIHNw ZWNpZmllcyB0aGUgbWluaW11bSBpbnRlcnZhbCBpbiBzZWNvbmRzIGJldHdl ZW4NCiMgbmV3IG1haWwgbm90aWZpY2F0aW9ucyB0byBjbGllbnQgLSBpbnRl cm5hbGx5IHRoZXkgbWF5IGJlIGNoZWNrZWQgbW9yZSBvcg0KIyBsZXNzIG9m dGVuLiBTZXR0aW5nIHRoaXMgdG8gMCBkaXNhYmxlcyB0aGUgY2hlY2tpbmcu DQojIE5PVEU6IEV2b2x1dGlvbiBjbGllbnQgYnJlYWtzIHdpdGggdGhpcyBv cHRpb24gd2hlbiBpdCdzIHRyeWluZyB0byBBUFBFTkQuDQojbWFpbGJveF9j aGVja19pbnRlcnZhbCA9IDANCg0KIyBMaWtlIG1haWxib3hfY2hlY2tfaW50 ZXJ2YWwsIGJ1dCB1c2VkIGZvciBJRExFIGNvbW1hbmQuDQojbWFpbGJveF9p ZGxlX2NoZWNrX2ludGVydmFsID0gMzANCg0KIyBBbGxvdyBmdWxsIGZpbGVz eXN0ZW0gYWNjZXNzIHRvIGNsaWVudHMuIFRoZXJlJ3Mgbm8gYWNjZXNzIGNo ZWNrcyBvdGhlciB0aGFuDQojIHdoYXQgdGhlIG9wZXJhdGluZyBzeXN0ZW0g ZG9lcyBmb3IgdGhlIGFjdGl2ZSBVSUQvR0lELiBJdCB3b3JrcyB3aXRoIGJv dGgNCiMgbWFpbGRpciBhbmQgbWJveGVzLCBhbGxvd2luZyB5b3UgdG8gcHJl Zml4IG1haWxib3hlcyBuYW1lcyB3aXRoIGVnLiAvcGF0aC8NCiMgb3IgfnVz ZXIvLg0KbWFpbF9mdWxsX2ZpbGVzeXN0ZW1fYWNjZXNzID0geWVzDQoNCiMg TWF4aW11bSBhbGxvd2VkIGxlbmd0aCBmb3IgY3VzdG9tIGZsYWcgbmFtZS4g SXQncyBvbmx5IGZvcmNlZCB3aGVuIHRyeWluZw0KIyB0byBjcmVhdGUgbmV3 IGZsYWdzLg0KI21haWxfbWF4X2ZsYWdfbGVuZ3RoID0gNTANCg0KIyBTYXZl IG1haWxzIHdpdGggQ1IrTEYgaW5zdGVhZCBvZiBwbGFpbiBMRi4gVGhpcyBt YWtlcyBzZW5kaW5nIHRob3NlIG1haWxzDQojIHRha2UgbGVzcyBDUFUsIGVz cGVjaWFsbHkgd2l0aCBzZW5kZmlsZSgpIHN5c2NhbGwgd2l0aCBMaW51eCBh bmQgRnJlZUJTRC4NCiMgQnV0IGl0IGFsc28gY3JlYXRlcyBhIGJpdCBtb3Jl IGRpc2sgSS9PIHdoaWNoIG1heSBqdXN0IG1ha2UgaXQgc2xvd2VyLg0KI21h aWxfc2F2ZV9jcmxmID0gbm8NCg0KIyBVc2UgbW1hcCgpIGluc3RlYWQgb2Yg cmVhZCgpIHRvIHJlYWQgbWFpbCBmaWxlcy4gcmVhZCgpIHNlZW1zIHRvIGJl IGEgYml0DQojIGZhc3RlciB3aXRoIG15IExpbnV4L3g4NiBhbmQgaXQncyBi ZXR0ZXIgd2l0aCBORlMsIHNvIHRoYXQncyB0aGUgZGVmYXVsdC4NCiNtYWls X3JlYWRfbW1hcGVkID0gbm8NCg0KIyBDb3B5IG1haWwgdG8gYW5vdGhlciBm b2xkZXJzIHVzaW5nIGhhcmQgbGlua3MuIFRoaXMgaXMgbXVjaCBmYXN0ZXIg dGhhbg0KIyBhY3R1YWxseSBjb3B5aW5nIHRoZSBmaWxlLiBUaGlzIGlzIHBy b2JsZW1hdGljIG9ubHkgaWYgc29tZXRoaW5nIG1vZGlmaWVzDQojIHRoZSBt YWlsIGluIG9uZSBmb2xkZXIgYnV0IGRvZXNuJ3Qgd2FudCBpdCBtb2RpZmll ZCBpbiB0aGUgb3RoZXJzLiBJIGRvbid0DQojIGtub3cgYW55IE1VQSB3aGlj aCB3b3VsZCBtb2RpZnkgbWFpbCBmaWxlcyBkaXJlY3RseS4gSU1BUCBwcm90 b2NvbCBhbHNvDQojIHJlcXVpcmVzIHRoYXQgdGhlIG1haWxzIGRvbid0IGNo YW5nZSwgc28gaXQgd291bGQgYmUgcHJvYmxlbWF0aWMgaW4gYW55IGNhc2Uu DQojIElmIHlvdSBjYXJlIGFib3V0IHBlcmZvcm1hbmNlLCBlbmFibGUgaXQu DQojbWFpbGRpcl9jb3B5X3dpdGhfaGFyZGxpbmtzID0gbm8NCg0KIyBDaGVj ayBpZiBtYWlscycgY29udGVudCBoYXMgYmVlbiBjaGFuZ2VkIGJ5IGV4dGVy bmFsIHByb2dyYW1zLiBUaGlzIHNsb3dzDQojIGRvd24gdGhpbmdzIGFzIGV4 dHJhIHN0YXQoKSBuZWVkcyB0byBiZSBjYWxsZWQgZm9yIGVhY2ggZmlsZS4g SWYgY2hhbmdlcyBhcmUNCiMgbm90aWNlZCwgdGhlIG1lc3NhZ2UgaXMgdHJl YXRlZCBhcyBhIG5ldyBtZXNzYWdlLCBzaW5jZSBJTUFQIHByb3RvY29sDQoj IHNwZWNpZmllcyB0aGF0IGV4aXN0aW5nIG1lc3NhZ2UgYXJlIGltbXV0YWJs ZS4NCiNtYWlsZGlyX2NoZWNrX2NvbnRlbnRfY2hhbmdlcyA9IG5vDQoNCiMg V2hpY2ggbG9ja2luZyBtZXRob2RzIHRvIHVzZSBmb3IgbG9ja2luZyBtYm94 LiBUaGVyZSdzIHRocmVlIGF2YWlsYWJsZToNCiMgIGRvdGxvY2s6IENyZWF0 ZSA8bWFpbGJveD4ubG9jayBmaWxlLiBUaGlzIGlzIHRoZSBvbGRlc3QgYW5k IG1vc3QgTkZTLXNhZmUNCiMgICAgICAgICAgIHNvbHV0aW9uLiBJZiB5b3Ug d2FudCB0byB1c2UgL3Zhci9tYWlsLyBsaWtlIGRpcmVjdG9yeSwgdGhlIHVz ZXJzDQojICAgICAgICAgICB3aWxsIG5lZWQgd3JpdGUgYWNjZXNzIHRvIHRo YXQgZGlyZWN0b3J5Lg0KIyAgZmNudGwgIDogVXNlIHRoaXMgaWYgcG9zc2li bGUuIFdvcmtzIHdpdGggTkZTIHRvbyBpZiBsb2NrZCBpcyB1c2VkLg0KIyAg ZmxvY2sgIDogTWF5IG5vdCBleGlzdCBpbiBhbGwgc3lzdGVtcy4gRG9lc24n dCB3b3JrIHdpdGggTkZTLg0KIw0KIyBZb3UgY2FuIHVzZSBib3RoIGZjbnRs IGFuZCBmbG9jayB0b287IGlmIHlvdSBkbyB0aGUgb3JkZXIgdGhleSdyZSBk ZWNsYXJlZA0KIyB3aXRoIGlzIGltcG9ydGFudCB0byBhdm9pZCBkZWFkbG9j a3MgaWYgb3RoZXIgTVRBcy9NVUFzIGFyZSB1c2luZyBib3RoIGZjbnRsDQoj IGFuZCBmbG9jay4gU29tZSBvcGVyYXRpbmcgc3lzdGVtcyBkb24ndCBhbGxv dyB1c2luZyBib3RoIG9mIHRoZW0NCiMgc2ltdWx0YW5lb3VzbHksIGVnLiBC U0RzLiBJZiBkb3Rsb2NrIGlzIHVzZWQsIGl0J3MgYWx3YXlzIGNyZWF0ZWQg Zmlyc3QuDQojbWJveF9sb2NrcyA9IGRvdGxvY2sgZmNudGwNCg0KIyBTaG91 bGQgd2UgY3JlYXRlIGRvdGxvY2sgZmlsZSBldmVuIHdoZW4gd2Ugd2FudCBv bmx5IGEgcmVhZC1sb2NrPyBTZXR0aW5nDQojIHRoaXMgdG8geWVzIGh1cnRz IHRoZSBwZXJmb3JtYW5jZSB3aGVuIHRoZSBtYWlsYm94IGlzIGFjY2Vzc2Vk IHNpbXVsdGFuZW91c2x5DQojIGJ5IG11bHRpcGxlIHByb2Nlc3NlcywgYnV0 IGl0J3MgbmVlZGVkIGZvciByZWxpYWJsZSByZWFkaW5nIGlmIG5vIG90aGVy DQojIGxvY2tpbmcgbWV0aG9kcyBhcmUgYXZhaWxhYmxlLg0KI21ib3hfcmVh ZF9kb3Rsb2NrID0gbm8NCg0KIyBNYXhpbXVtIHRpbWUgaW4gc2Vjb25kcyB0 byB3YWl0IGZvciBsb2NrIChhbGwgb2YgdGhlbSkgYmVmb3JlIGFib3J0aW5n Lg0KI21ib3hfbG9ja190aW1lb3V0ID0gMzAwDQoNCiMgSWYgZG90bG9jayBl eGlzdHMgYnV0IHRoZSBtYWlsYm94IGlzbid0IG1vZGlmaWVkIGluIGFueSB3 YXksIG92ZXJyaWRlIHRoZQ0KIyBsb2NrIGZpbGUgYWZ0ZXIgdGhpcyBtYW55 IHNlY29uZHMuDQojbWJveF9kb3Rsb2NrX2NoYW5nZV90aW1lb3V0ID0gMzAN Cg0KIyB1bWFzayB0byB1c2UgZm9yIG1haWwgZmlsZXMgYW5kIGRpcmVjdG9y aWVzDQojdW1hc2sgPSAwMDc3DQoNCiMgRHJvcCBhbGwgcHJpdmlsZWdlcyBi ZWZvcmUgZXhlYygpaW5nIHRoZSBtYWlsIHByb2Nlc3MuIFRoaXMgaXMgbW9z dGx5DQojIG1lYW50IGZvciBkZWJ1Z2dpbmcsIG90aGVyd2lzZSB5b3UgZG9u J3QgZ2V0IGNvcmUgZHVtcHMuIE5vdGUgdGhhdCBzZXR0aW5nDQojIHRoaXMg dG8geWVzIG1lYW5zIHRoYXQgbG9nIGZpbGUgaXMgb3BlbmVkIGFzIHRoZSBs b2dnZWQgaW4gdXNlciwgd2hpY2gNCiMgbWlnaHQgbm90IHdvcmsuIEl0IGNv dWxkIGFsc28gYmUgYSBzbWFsbCBzZWN1cml0eSByaXNrIGlmIHlvdSB1c2Ug c2luZ2xlIFVJRA0KIyBmb3IgbXVsdGlwbGUgdXNlcnMsIGFzIHRoZSB1c2Vy cyBjb3VsZCBwdHJhY2UoKSBlYWNoIG90aGVycyBwcm9jZXNzZXMgdGhlbi4N CiNtYWlsX2Ryb3BfcHJpdl9iZWZvcmVfZXhlYyA9IG5vDQoNCiMjDQojIyBJ TUFQIHByb2Nlc3MNCiMjDQoNCiMgRXhlY3V0YWJsZSBsb2NhdGlvbg0KI2lt YXBfZXhlY3V0YWJsZSA9IC91c3IvbGliZXhlYy9kb3ZlY290L2ltYXANCg0K IyBTZXQgbWF4LiBwcm9jZXNzIHNpemUgaW4gbWVnYWJ5dGVzLiBNb3N0IG9m IHRoZSBtZW1vcnkgZ29lcyB0byBtbWFwKClpbmcNCiMgZmlsZXMsIHNvIGl0 IHNob3VsZG4ndCBoYXJtIG11Y2ggZXZlbiBpZiB0aGlzIGxpbWl0IGlzIHNl dCBwcmV0dHkgaGlnaC4NCiNpbWFwX3Byb2Nlc3Nfc2l6ZSA9IDI1Ng0KDQoj IFN1cHBvcnQgZm9yIGR5bmFtaWNhbGx5IGxvYWRhYmxlIG1vZHVsZXMuDQoj aW1hcF91c2VfbW9kdWxlcyA9IG5vDQojaW1hcF9tb2R1bGVzID0gL3Vzci9s aWIvZG92ZWNvdC9pbWFwDQoNCiMjDQojIyBQT1AzIHByb2Nlc3MNCiMjDQoN CiMgRXhlY3V0YWJsZSBsb2NhdGlvbg0KI3BvcDNfZXhlY3V0YWJsZSA9IC91 c3IvbGliZXhlYy9kb3ZlY290L3BvcDMNCg0KIyBTZXQgbWF4LiBwcm9jZXNz IHNpemUgaW4gbWVnYWJ5dGVzLiBNb3N0IG9mIHRoZSBtZW1vcnkgZ29lcyB0 byBtbWFwKClpbmcNCiMgZmlsZXMsIHNvIGl0IHNob3VsZG4ndCBoYXJtIG11 Y2ggZXZlbiBpZiB0aGlzIGxpbWl0IGlzIHNldCBwcmV0dHkgaGlnaC4NCiNw b3AzX3Byb2Nlc3Nfc2l6ZSA9IDI1Ng0KDQojIFN1cHBvcnQgZm9yIGR5bmFt aWNhbGx5IGxvYWRhYmxlIG1vZHVsZXMuDQojcG9wM191c2VfbW9kdWxlcyA9 IG5vDQojcG9wM19tb2R1bGVzID0gL3Vzci9saWIvZG92ZWNvdC9wb3AzDQoN CiMjDQojIyBBdXRoZW50aWNhdGlvbiBwcm9jZXNzZXMNCiMjDQoNCiMgWW91 IGNhbiBoYXZlIG11bHRpcGxlIHByb2Nlc3NlczsgZWFjaCB0aW1lICJhdXRo ID0geHgiIGlzIHNlZW4sIGEgbmV3DQojIHByb2Nlc3MgZGVmaW5pdGlvbiBp cyBzdGFydGVkLiBUaGUgcG9pbnQgb2YgbXVsdGlwbGUgcHJvY2Vzc2VzIGlz IHRvIGJlDQojIGFibGUgdG8gc2V0IHN0cmljdGVyIHBlcm1pc3Npb25zIHRv IG90aGVycy4gRm9yIGV4YW1wbGUsIHBsYWluL1BBTQ0KIyBhdXRoZW50aWNh dGlvbiByZXF1aXJlcyByb290cywgYnV0IGlmIHlvdSBhbHNvIHVzZSBkaWdl c3QtbWQ1IGF1dGhlbnRpY2F0aW9uDQojIGZvciBzb21lIHVzZXJzLCB5b3Ug Y2FuIGF1dGhlbnRpY2F0ZSB0aGVtIHdpdGhvdXQgYW55IHByaXZpbGVnZXMg aW4gYQ0KIyBzZXBhcmF0ZSBhdXRoIHByb2Nlc3MuIEp1c3QgcmVtZW1iZXIg dGhhdCBvbmx5IG9uZSBhdXRoIHByb2Nlc3MgaXMgYXNrZWQNCiMgZm9yIHRo ZSBwYXNzd29yZCwgc28geW91IGNhbid0IGhhdmUgZGlmZmVyZW50IHBhc3N3 b3JkcyB3aXRoIGRpZmZlcmVudA0KIyBwcm9jZXNzZXMgKHVubGVzcyB0aGV5 IGhhdmUgZGlmZmVyZW50IGF1dGggbWV0aG9kcywgYW5kIHlvdSdyZSBvayB3 aXRoDQojIGhhdmluZyBkaWZmZXJlbnQgcGFzc3dvcmQgZm9yIGVhY2ggbWV0 aG9kKS4NCg0KIyBBdXRoZW50aWNhdGlvbiBwcm9jZXNzIG5hbWUuDQphdXRo ID0gZGVmYXVsdA0KDQojIFNwYWNlIHNlcGFyYXRlZCBsaXN0IG9mIHdhbnRl ZCBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zOg0KIyAgIHBsYWluIGRpZ2Vz dC1tZDUgYW5vbnltb3VzDQphdXRoX21lY2hhbmlzbXMgPSBwbGFpbg0KDQoj IFNwYWNlIHNlcGFyYXRlZCBsaXN0IG9mIHJlYWxtcyBmb3IgU0FTTCBhdXRo ZW50aWNhdGlvbiBtZWNoYW5pc21zIHRoYXQgbmVlZA0KIyB0aGVtLiBZb3Ug Y2FuIGxlYXZlIGl0IGVtcHR5IGlmIHlvdSBkb24ndCB3YW50IHRvIHN1cHBv cnQgbXVsdGlwbGUgcmVhbG1zLg0KIyBNYW55IGNsaWVudHMgc2ltcGx5IHVz ZSB0aGUgZmlyc3Qgb25lIGxpc3RlZCBoZXJlLCBzbyBrZWVwIHRoZSBkZWZh dWx0IHJlYWxtDQojIGZpcnN0Lg0KI2F1dGhfcmVhbG1zID0NCg0KIyBEZWZh dWx0IHJlYWxtIHRvIHVzZSBpZiBub25lIHdhcyBzcGVjaWZpZWQuDQojYXV0 aF9kZWZhdWx0X3JlYWxtID0gDQoNCiMgV2hlcmUgdXNlciBkYXRhYmFzZSBp cyBrZXB0Og0KIyAgIHBhc3N3ZDogL2V0Yy9wYXNzd2Qgb3Igc2ltaWxpYXIs IHVzaW5nIGdldHB3bmFtKCkNCiMgICBwYXNzd2QtZmlsZSA8cGF0aD46IHBh c3N3ZC1saWtlIGZpbGUgd2l0aCBzcGVjaWZpZWQgbG9jYXRpb24NCiMgICBz dGF0aWMgdWlkPTx1aWQ+IGdpZD08Z2lkPiBob21lPTxkaXIgdGVtcGxhdGU+ OiBzdGF0aWMgc2V0dGluZ3MNCiMgICB2cG9wbWFpbDogdnBvcG1haWwgbGli cmFyeQ0KIyAgIGxkYXAgPGNvbmZpZyBwYXRoPjogTERBUCwgc2VlIGRvYy9k b3ZlY290LWxkYXAuY29uZg0KIyAgIHBnc3FsIDxjb25maWcgcGF0aD46IGEg UG9zdGdyZVNRTCBkYXRhYmFzZSwgc2VlIGRvYy9kb3ZlY290LXBnc3FsLmNv bmYNCmF1dGhfdXNlcmRiID0gcGFzc3dkDQoNCiMgV2hlcmUgcGFzc3dvcmQg ZGF0YWJhc2UgaXMga2VwdDoNCiMgICBwYXNzd2Q6IC9ldGMvcGFzc3dkIG9y IHNpbWlsaWFyLCB1c2luZyBnZXRwd25hbSgpDQojICAgc2hhZG93OiAvZXRj L3NoYWRvdyBvciBzaW1pbGlhciwgdXNpbmcgZ2V0c3BuYW0oKQ0KIyAgIHBh bSBbPHNlcnZpY2U+IHwgKl06IFBBTSBhdXRoZW50aWNhdGlvbg0KIyAgIHBh c3N3ZC1maWxlIDxwYXRoPjogcGFzc3dkLWxpa2UgZmlsZSB3aXRoIHNwZWNp ZmllZCBsb2NhdGlvbg0KIyAgIHZwb3BtYWlsOiB2cG9wbWFpbCBhdXRoZW50 aWNhdGlvbg0KIyAgIGxkYXAgPGNvbmZpZyBwYXRoPjogTERBUCwgc2VlIGRv Yy9kb3ZlY290LWxkYXAuY29uZg0KIyAgIHBnc3FsIDxjb25maWcgcGF0aD46 IGEgUG9zdGdyZVNRTCBkYXRhYmFzZSwgc2VlIGRvYy9kb3ZlY290LXBnc3Fs LmNvbmYNCiNhdXRoX3Bhc3NkYiA9IHBnc3FsIC91c3IvbG9jYWwvZXRjL2Rv dmVjb3QtcGdzcWwuY29uZg0KYXV0aF9wYXNzZGIgPSBzaGFkb3cgL2V0Yy9z aGFkb3cNCg0KI2F1dGhfZXhlY3V0YWJsZSA9IC91c3IvbGliZXhlYy9kb3Zl Y290L2RvdmVjb3QtYXV0aA0KDQojIFNldCBtYXguIHByb2Nlc3Mgc2l6ZSBp biBtZWdhYnl0ZXMuDQojYXV0aF9wcm9jZXNzX3NpemUgPSAyNTYNCg0KIyBV c2VyIHRvIHVzZSBmb3IgdGhlIHByb2Nlc3MuIFRoaXMgdXNlciBuZWVkcyBh Y2Nlc3MgdG8gb25seSB1c2VyIGFuZA0KIyBwYXNzd29yZCBkYXRhYmFzZXMs IG5vdGhpbmcgZWxzZS4gT25seSBzaGFkb3cgYW5kIHBhbSBhdXRoZW50aWNh dGlvbg0KIyByZXF1aXJlcyByb290cywgc28gdXNlIHNvbWV0aGluZyBlbHNl IGlmIHBvc3NpYmxlLg0KYXV0aF91c2VyID0gcm9vdA0KDQojIERpcmVjdG9y eSB3aGVyZSB0byBjaHJvb3QgdGhlIHByb2Nlc3MuIE1vc3QgYXV0aGVudGlj YXRpb24gYmFja2VuZHMgZG9uJ3QNCiMgd29yayBpZiB0aGlzIGlzIHNldCwg YW5kIHRoZXJlJ3Mgbm8gcG9pbnQgY2hyb290aW5nIGlmIGF1dGhfdXNlciBp cyByb290Lg0KI2F1dGhfY2hyb290ID0gDQoNCiMgTnVtYmVyIG9mIGF1dGhl bnRpY2F0aW9uIHByb2Nlc3NlcyB0byBjcmVhdGUNCiNhdXRoX2NvdW50ID0g MQ0KDQojIExpc3Qgb2YgYWxsb3dlZCBjaGFyYWN0ZXJzIGluIHVzZXJuYW1l LiBJZiB0aGUgdXNlci1naXZlbiB1c2VybmFtZSBjb250YWlucw0KIyBhIGNo YXJhY3RlciBub3QgbGlzdGVkIGluIGhlcmUsIHRoZSBsb2dpbiBhdXRvbWF0 aWNhbGx5IGZhaWxzLiBUaGlzIGlzIGp1c3QNCiMgYW4gZXh0cmEgY2hlY2sg dG8gbWFrZSBzdXJlIHVzZXIgY2FuJ3QgZXhwbG9pdCBhbnkgcG90ZW50aWFs IHF1b3RlIGVzY2FwaW5nDQojIHZ1bG5lcmFiaWxpdGllcyB3aXRoIFNRTC9M REFQIGRhdGFiYXNlcy4gSWYgeW91IHdhbnQgdG8gYWxsb3cgYWxsIGNoYXJh Y3RlcnMsDQojIHNldCB0aGlzIHZhbHVlIHRvIGVtcHR5Lg0KI2F1dGhfdXNl cm5hbWVfY2hhcnMgPSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RF RkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OTAuLV9ADQoNCiMgVXNl cm5hbWUgdG8gdXNlIGZvciB1c2VycyBsb2dnaW5nIGluIHdpdGggQU5PTllN T1VTIFNBU0wgbWVjaGFuaXNtDQojYXV0aF9hbm9ueW1vdXNfdXNlcm5hbWUg PSBhbm9ueW1vdXMNCg0KIyBNb3JlIHZlcmJvc2UgbG9nZ2luZy4gVXNlZnVs IGZvciBmaWd1cmluZyBvdXQgd2h5IGF1dGhlbnRpY2F0aW9uIGlzbid0DQoj IHdvcmtpbmcuDQojYXV0aF92ZXJib3NlID0gbm8NCg0KIyBkaWdlc3QtbWQ1 IGF1dGhlbnRpY2F0aW9uIHByb2Nlc3MuIEl0IHJlcXVpcmVzIHNwZWNpYWwg TUQ1IHBhc3N3b3JkcyB3aGljaA0KIyAvZXRjL3NoYWRvdyBhbmQgUEFNIGRv ZXNuJ3Qgc3VwcG9ydCwgc28gd2UgbmV2ZXIgbmVlZCByb290cyB0byBoYW5k bGUgaXQuDQojIE5vdGUgdGhhdCB0aGUgcGFzc3dkLWZpbGUgaXMgb3BlbmVk IGJlZm9yZSBjaHJvb3RpbmcgYW5kIGRyb3BwaW5nIHJvb3QNCiMgcHJpdmls ZWdlcywgc28gaXQgbWF5IGJlIDA2MDAtcm9vdCBvd25lZCBmaWxlLg0KDQoj YXV0aCA9IGRpZ2VzdF9tZDUNCiNhdXRoX21ldGhvZHMgPSBkaWdlc3QtbWQ1 DQojYXV0aF9yZWFsbXMgPSANCiNhdXRoX3VzZXJkYiA9IHBhc3N3ZC1maWxl IC9ldGMvcGFzc3dkLmltYXANCiNhdXRoX3Bhc3NkYiA9IHBhc3N3ZC1maWxl IC9ldGMvcGFzc3dkLmltYXANCiNhdXRoX3VzZXIgPSBpbWFwYXV0aA0KI2F1 dGhfY2hyb290ID0gDQoNCiMgaWYgeW91IHBsYW4gdG8gdXNlIG9ubHkgcGFz c3dkLWZpbGUsIHlvdSBkb24ndCBuZWVkIHRoZSB0d28gYXV0aCBwcm9jZXNz ZXMsDQojIHNpbXBseSBzZXQgImF1dGhfbWV0aG9kcyA9IHBsYWluIGRpZ2Vz dC1tZDUiDQo= --8323328-1414501197-1086213884=:16371-- From james@powweb.com Thu Jun 3 01:30:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7BB98C00290C; Thu, 3 Jun 2004 01:30:48 +0300 (EEST) Received: from nexus.powweb.com (unknown [66.152.96.141]) by talvi.dovecot.org (Postfix) with ESMTP id 570CBC00290A for ; Thu, 3 Jun 2004 01:30:44 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id E437CB8E37; Wed, 2 Jun 2004 15:23:26 -0700 (PDT) Message-ID: <40BE535E.7020108@powweb.com> Date: Wed, 02 Jun 2004 15:23:26 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Chris Horry Subject: Re: [Dovecot] IMAP folders missing after migrating to Dovecot References: In-Reply-To: Content-Type: multipart/mixed; boundary="------------020902010405020702050801" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 22:30:48 -0000 X-UID: 9350 Status: O Content-Length: 20597 This is a multi-part message in MIME format. --------------020902010405020702050801 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit You probably just have to resubscribe to them... they use different files for subscriptions. Chris Horry wrote: >-----BEGIN PGP SIGNED MESSAGE----- >Hash: SHA1 > >Hello all, > >I'm migrating to Dovecot from Courier-IMAP. I use Postfix with Maildir >for delivery. > >When I use Dovecot as the IMAP server all of my folders are missing, the >only thing that remains is the Inbox folder. > >Has anyone else experienced this issue? I have enclosed my configuration. > >Thanks, > >Chris > >- -- >Chris Horry "Winter is the season in which people >zerbey@wibble.co.uk try to keep the house as warm as it was >PGP: DSA/2B4C654E it was in the summer, when they complained >Amateur Radio: KG4TSM about the heat" --Author Unknown > >-----BEGIN PGP SIGNATURE----- >Version: GnuPG v1.2.4 (GNU/Linux) > >iEYEARECAAYFAkC+TwAACgkQnAAeGCtMZU5/IwCeNAac9HXNmZpWn7aoeINC2RH+ >SeIAnRASJdvDIOi6/ZvBMzBJwWrKPJVZ >=iK37 >-----END PGP SIGNATURE----- > > >------------------------------------------------------------------------ > >## Dovecot 1.0 configuration file > ># Default values are shown after each value, it's not required to uncomment ># any of the lines. Exception to this are paths, they're just examples ># with real defaults being based on configure options. The paths listed here ># are for configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var ># --with-ssldir=/etc/ssl > ># Base directory where to store runtime data. >#base_dir = /var/run/dovecot/ > ># Protocols we want to be serving: ># imap imaps pop3 pop3s >protocols = imap imaps pop3 > ># IP or host address where to listen in for connections. It's not currently ># possible to specify multiple addresses. "*" listens in all IPv4 interfaces. ># "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4 ># interfaces depending on the operating system. You can specify ports with ># "host:port". >#imap_listen = * >#pop3_listen = * > ># IP or host address where to listen in for SSL connections. Defaults ># to above non-SSL equilevants if not specified. >imaps_listen = *:8000 >#pop3s_listen = > ># Disable SSL/TLS support. >#ssl_disable = no > ># PEM encoded X.509 SSL/TLS certificate and private key. They're opened before ># dropping root privileges, so keep the key file unreadable by anyone but ># root. Included doc/mkcert.sh can be used to easily generate self-signed ># certificate, just make sure to update the domains in dovecot-openssl.cnf >#ssl_cert_file = /etc/ssl/certs/dovecot.pem >ssl_cert_file = /usr/lib/courier-imap/share/imapd.pem >ssl_key_file = /usr/lib/courier-imap/share/imapd.pem > ># SSL parameter file. Master process generates this file for login processes. ># It contains Diffie Hellman and RSA parameters. >#ssl_parameters_file = /var/run/dovecot/ssl-parameters.dat > ># How often to regenerate the SSL parameters file. Generation is quite CPU ># intensive operation. The value is in hours, 0 disables regeneration ># entirely. >#ssl_parameters_regenerate = 24 > ># Disable LOGIN command and all other plaintext authentications unless ># SSL/TLS is used (LOGINDISABLED capability) >#disable_plaintext_auth = no > ># Use this logfile instead of syslog(). /dev/stderr can be used if you want to ># use stderr for logging (ONLY /dev/stderr - otherwise it is closed). >#log_path = > ># For informational messages, use this logfile instead of the default >#info_log_path = > ># Prefix for each line written to log file. % codes are in strftime(3) ># format. Note the extra space at the end of line. >#log_timestamp = "%b %d %H:%M:%S " > >## >## Login processes >## > ># Directory where authentication process places authentication UNIX sockets ># which login needs to be able to connect to. The sockets are created when ># running as root, so you don't have to worry about permissions. >#login_dir = /var/run/dovecot/login > ># chroot login process to the login_dir. Only reason not to do this is if you ># wish to run the whole Dovecot without roots. >#login_chroot = yes > > >## >## IMAP login process >## > >login = imap > ># Executable location. >#login_executable = /usr/libexec/dovecot/imap-login > ># User to use for the login process. Create a completely new user for this, ># and don't use it anywhere else. The user must also belong to a group where ># only it has access, it's used to control access for authentication process. >#login_user = dovecot > ># Set max. process size in megabytes. If you don't use ># login_process_per_connection you might need to grow this. >#login_process_size = 16 > ># Should each login be processed in it's own process (yes), or should one ># login process be allowed to process multiple connections (no)? Yes is more ># secure, espcially with SSL/TLS enabled. No is faster since there's no need ># to create processes all the time. >#login_process_per_connection = yes > ># Number of login processes to create. If login_process_per_user is ># yes, this is the number of extra processes waiting for users to log in. >#login_processes_count = 3 > ># Maximum number of extra login processes to create. The extra process count ># usually stays at login_processes_count, but when multiple users start logging ># in at the same time more extra processes are created. To prevent fork-bombing ># we check only once in a second if new processes should be created - if all ># of them are used at the time, we double their amount until limit set by this ># setting is reached. This setting is used only if login_process_per_use is yes. >#login_max_processes_count = 128 > ># Maximum number of connections allowed in login state. When this limit is ># reached, the oldest connections are dropped. If login_process_per_user ># is no, this is a per-process value, so the absolute maximum number of users ># logging in actually login_processes_count * max_logging_users. >#login_max_logging_users = 256 > >## >## POP3 login process >## > ># Settings default to same as above, so you don't have to set anything ># unless you want to override them. > >login = pop3 > ># Exception to above rule being the executable location. >#login_executable = /usr/libexec/dovecot/pop3-login > >## >## Mail processes >## > ># Maximum number of running mail processes. When this limit is reached, ># new users aren't allowed to log in. >#max_mail_processes = 1024 > ># Show more verbose process titles (in ps). Currently shows user name and ># IP address. Useful for seeing who are actually using the IMAP processes ># (eg. shared mailboxes or if same uid is used for multiple accounts). >#verbose_proctitle = no > ># Show protocol level SSL errors. >#verbose_ssl = no > ># Valid UID range for users, defaults to 500 and above. This is mostly ># to make sure that users can't log in as daemons or other system users. ># Note that denying root logins is hardcoded to dovecot binary and can't ># be done even if first_valid_uid is set to 0. >#first_valid_uid = 500 >#last_valid_uid = 0 > ># Valid GID range for users, defaults to non-root/wheel. Users having ># non-valid GID as primary group ID aren't allowed to log in. If user ># belongs to supplementary groups with non-valid GIDs, those groups are ># not set. >#first_valid_gid = 1 >#last_valid_gid = 0 > ># ':' separated list of directories under which chrooting is allowed for mail ># processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too). ># This setting doesn't affect login_chroot or auth_chroot variables. ># WARNING: Never add directories here which local users can modify, that ># may lead to root exploit. Usually this should be done only if you don't ># allow shell access for users. See doc/configuration.txt for more information. >#valid_chroot_dirs = > ># Default chroot directory for mail processes. This can be overridden by ># giving /./ in user's home directory (eg. /home/./user chroots into /home). >#mail_chroot = > ># Default MAIL environment to use when it's not set. By leaving this empty ># dovecot tries to do some automatic detection as described in ># doc/mail-storages.txt. There's a few special variables you can use: ># ># %u - username ># %n - user part in user@domain, same as %u if there's no domain ># %d - domain part in user@domain, empty if user there's no domain ># %h - home directory ># ># You can also limit a width of string by giving the number of max. characters ># after the '%' character. For example %1u gives the first character of ># username. Some examples: ># ># maildir:/var/mail/%1u/%u/Maildir ># mbox:~/mail/:INBOX=/var/mail/%u ># mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n ># >default_mail_env = maildir:%h/Maildir > ># Space-separated list of fields to cache for all mails. Currently these ># fields are allowed followed by a list of commands they speed up: ># ># Envelope - FETCH ENVELOPE and SEARCH FROM, TO, CC, BCC, SUBJECT, ># SENTBEFORE, SENTON, SENTSINCE, HEADER MESSAGE-ID, ># HEADER IN-REPLY-TO ># Body - FETCH BODY ># Bodystructure - FETCH BODY, BODYSTRUCTURE ># MessagePart - FETCH BODY[1.2.3] (ie. body parts), RFC822.SIZE, ># SEARCH SMALLER, LARGER, also speeds up BODY/BODYSTRUCTURE ># generation. This is always set with mbox mailboxes, and ># also default with Maildir. ># ># Different IMAP clients work in different ways, that's why Dovecot by default ># only caches MessagePart which speeds up most operations. Whenever client ># does something where caching could be used, the field is automatically marked ># to be cached later. For example after FETCH BODY the BODY will be cached ># for all new messages. Normally you should leave this alone, unless you know ># what most of your IMAP clients are. Caching more fields than needed makes ># the index files larger and generate useless I/O. ># ># With maildir there's one extra optimization - if nothing is cached, indexing ># the maildir becomes much faster since it's not opening any of the mail files. ># This could be useful if your IMAP clients access only new mails. > >#mail_cache_fields = MessagePart > ># Space-separated list of fields that Dovecot should never set to be cached. ># Useful if you want to save disk space at the cost of more I/O when the fields ># needed. >#mail_never_cache_fields = > ># Workarounds for various client bugs: ># oe6-fetch-no-newmail: ># Never send EXISTS/RECENT when replying to FETCH command. Outlook Express ># seems to think they are FETCH replies and gives user "Message no longer ># in server" error. Note that OE6 still breaks even with this workaround ># if synchronization is set to "Headers Only". ># outlook-idle: ># Outlook and Outlook Express never abort IDLE command, so if no mail ># arrives in half a hour, Dovecot closes the connection. This is still ># fine, except Outlook doesn't connect back so you don't see if new mail ># arrives. >#client_workarounds = > ># Dovecot can notify client of new mail in selected mailbox soon after it's ># received. This setting specifies the minimum interval in seconds between ># new mail notifications to client - internally they may be checked more or ># less often. Setting this to 0 disables the checking. ># NOTE: Evolution client breaks with this option when it's trying to APPEND. >#mailbox_check_interval = 0 > ># Like mailbox_check_interval, but used for IDLE command. >#mailbox_idle_check_interval = 30 > ># Allow full filesystem access to clients. There's no access checks other than ># what the operating system does for the active UID/GID. It works with both ># maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/ ># or ~user/. >mail_full_filesystem_access = yes > ># Maximum allowed length for custom flag name. It's only forced when trying ># to create new flags. >#mail_max_flag_length = 50 > ># Save mails with CR+LF instead of plain LF. This makes sending those mails ># take less CPU, especially with sendfile() syscall with Linux and FreeBSD. ># But it also creates a bit more disk I/O which may just make it slower. >#mail_save_crlf = no > ># Use mmap() instead of read() to read mail files. read() seems to be a bit ># faster with my Linux/x86 and it's better with NFS, so that's the default. >#mail_read_mmaped = no > ># Copy mail to another folders using hard links. This is much faster than ># actually copying the file. This is problematic only if something modifies ># the mail in one folder but doesn't want it modified in the others. I don't ># know any MUA which would modify mail files directly. IMAP protocol also ># requires that the mails don't change, so it would be problematic in any case. ># If you care about performance, enable it. >#maildir_copy_with_hardlinks = no > ># Check if mails' content has been changed by external programs. This slows ># down things as extra stat() needs to be called for each file. If changes are ># noticed, the message is treated as a new message, since IMAP protocol ># specifies that existing message are immutable. >#maildir_check_content_changes = no > ># Which locking methods to use for locking mbox. There's three available: ># dotlock: Create .lock file. This is the oldest and most NFS-safe ># solution. If you want to use /var/mail/ like directory, the users ># will need write access to that directory. ># fcntl : Use this if possible. Works with NFS too if lockd is used. ># flock : May not exist in all systems. Doesn't work with NFS. ># ># You can use both fcntl and flock too; if you do the order they're declared ># with is important to avoid deadlocks if other MTAs/MUAs are using both fcntl ># and flock. Some operating systems don't allow using both of them ># simultaneously, eg. BSDs. If dotlock is used, it's always created first. >#mbox_locks = dotlock fcntl > ># Should we create dotlock file even when we want only a read-lock? Setting ># this to yes hurts the performance when the mailbox is accessed simultaneously ># by multiple processes, but it's needed for reliable reading if no other ># locking methods are available. >#mbox_read_dotlock = no > ># Maximum time in seconds to wait for lock (all of them) before aborting. >#mbox_lock_timeout = 300 > ># If dotlock exists but the mailbox isn't modified in any way, override the ># lock file after this many seconds. >#mbox_dotlock_change_timeout = 30 > ># umask to use for mail files and directories >#umask = 0077 > ># Drop all privileges before exec()ing the mail process. This is mostly ># meant for debugging, otherwise you don't get core dumps. Note that setting ># this to yes means that log file is opened as the logged in user, which ># might not work. It could also be a small security risk if you use single UID ># for multiple users, as the users could ptrace() each others processes then. >#mail_drop_priv_before_exec = no > >## >## IMAP process >## > ># Executable location >#imap_executable = /usr/libexec/dovecot/imap > ># Set max. process size in megabytes. Most of the memory goes to mmap()ing ># files, so it shouldn't harm much even if this limit is set pretty high. >#imap_process_size = 256 > ># Support for dynamically loadable modules. >#imap_use_modules = no >#imap_modules = /usr/lib/dovecot/imap > >## >## POP3 process >## > ># Executable location >#pop3_executable = /usr/libexec/dovecot/pop3 > ># Set max. process size in megabytes. Most of the memory goes to mmap()ing ># files, so it shouldn't harm much even if this limit is set pretty high. >#pop3_process_size = 256 > ># Support for dynamically loadable modules. >#pop3_use_modules = no >#pop3_modules = /usr/lib/dovecot/pop3 > >## >## Authentication processes >## > ># You can have multiple processes; each time "auth = xx" is seen, a new ># process definition is started. The point of multiple processes is to be ># able to set stricter permissions to others. For example, plain/PAM ># authentication requires roots, but if you also use digest-md5 authentication ># for some users, you can authenticate them without any privileges in a ># separate auth process. Just remember that only one auth process is asked ># for the password, so you can't have different passwords with different ># processes (unless they have different auth methods, and you're ok with ># having different password for each method). > ># Authentication process name. >auth = default > ># Space separated list of wanted authentication mechanisms: ># plain digest-md5 anonymous >auth_mechanisms = plain > ># Space separated list of realms for SASL authentication mechanisms that need ># them. You can leave it empty if you don't want to support multiple realms. ># Many clients simply use the first one listed here, so keep the default realm ># first. >#auth_realms = > ># Default realm to use if none was specified. >#auth_default_realm = > ># Where user database is kept: ># passwd: /etc/passwd or similiar, using getpwnam() ># passwd-file : passwd-like file with specified location ># static uid= gid= home=: static settings ># vpopmail: vpopmail library ># ldap : LDAP, see doc/dovecot-ldap.conf ># pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf >auth_userdb = passwd > ># Where password database is kept: ># passwd: /etc/passwd or similiar, using getpwnam() ># shadow: /etc/shadow or similiar, using getspnam() ># pam [ | *]: PAM authentication ># passwd-file : passwd-like file with specified location ># vpopmail: vpopmail authentication ># ldap : LDAP, see doc/dovecot-ldap.conf ># pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf >#auth_passdb = pgsql /usr/local/etc/dovecot-pgsql.conf >auth_passdb = shadow /etc/shadow > >#auth_executable = /usr/libexec/dovecot/dovecot-auth > ># Set max. process size in megabytes. >#auth_process_size = 256 > ># User to use for the process. This user needs access to only user and ># password databases, nothing else. Only shadow and pam authentication ># requires roots, so use something else if possible. >auth_user = root > ># Directory where to chroot the process. Most authentication backends don't ># work if this is set, and there's no point chrooting if auth_user is root. >#auth_chroot = > ># Number of authentication processes to create >#auth_count = 1 > ># List of allowed characters in username. If the user-given username contains ># a character not listed in here, the login automatically fails. This is just ># an extra check to make sure user can't exploit any potential quote escaping ># vulnerabilities with SQL/LDAP databases. If you want to allow all characters, ># set this value to empty. >#auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ > ># Username to use for users logging in with ANONYMOUS SASL mechanism >#auth_anonymous_username = anonymous > ># More verbose logging. Useful for figuring out why authentication isn't ># working. >#auth_verbose = no > ># digest-md5 authentication process. It requires special MD5 passwords which ># /etc/shadow and PAM doesn't support, so we never need roots to handle it. ># Note that the passwd-file is opened before chrooting and dropping root ># privileges, so it may be 0600-root owned file. > >#auth = digest_md5 >#auth_methods = digest-md5 >#auth_realms = >#auth_userdb = passwd-file /etc/passwd.imap >#auth_passdb = passwd-file /etc/passwd.imap >#auth_user = imapauth >#auth_chroot = > ># if you plan to use only passwd-file, you don't need the two auth processes, ># simply set "auth_methods = plain digest-md5" > > -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------020902010405020702050801 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------020902010405020702050801-- From tss@iki.fi Thu Jun 3 01:37:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 43C6FC00290E; Thu, 3 Jun 2004 01:37:55 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 52748C00290C for ; Thu, 3 Jun 2004 01:37:53 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 5C15F1C185F2; Thu, 3 Jun 2004 01:30:40 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 49F691C1D0E2; Thu, 3 Jun 2004 01:30:06 +0300 (EEST) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-17-534021660" Message-Id: <648DC16E-B4E4-11D8-9D25-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] IMAP folders missing after migrating to Dovecot Date: Thu, 3 Jun 2004 01:30:03 +0300 To: Chris Horry X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.8 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 22:37:55 -0000 X-UID: 9351 Status: O --Apple-Mail-17-534021660 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 3.6.2004, at 01:04, Chris Horry wrote: > I'm migrating to Dovecot from Courier-IMAP. I use Postfix with Maildir > for delivery. > > When I use Dovecot as the IMAP server all of my folders are missing, > the > only thing that remains is the Inbox folder. If you have set "IMAP prefix" or "IMAP namespace" in your IMAP client (to "INBOX."), remove it. --Apple-Mail-17-534021660 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAvlTryUhSUUBViskRAr0zAJ9aPo3jpJ8lCzQY3GVZDaT5pJfyuQCfaHWK V6shNbnj+Vpi0a9bq5edCOA= =7uam -----END PGP SIGNATURE----- --Apple-Mail-17-534021660-- From tss@iki.fi Thu Jun 3 01:43:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 45225C00290E; Thu, 3 Jun 2004 01:43:21 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 4FD54C00290C for ; Thu, 3 Jun 2004 01:43:19 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 5729C1C185F4; Thu, 3 Jun 2004 01:36:06 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 01F091C1D0E2; Thu, 3 Jun 2004 01:35:31 +0300 (EEST) In-Reply-To: <200406022213.36561.pegasus@nerv.eu.org> References: <200406022213.36561.pegasus@nerv.eu.org> Mime-Version: 1.0 (Apple Message framework v613) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-18-534346807" Message-Id: <265B3591-B4E5-11D8-9D25-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] mta/mda config Date: Thu, 3 Jun 2004 01:35:29 +0300 To: Jure Pecar X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.8 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 22:43:21 -0000 X-UID: 9352 Status: O Content-Length: 1451 --Apple-Mail-18-534346807 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2.6.2004, at 23:13, Jure Pecar wrote: > For large mailstore setups, it makes sense to split maildirs across > many > directories. I see that setting default_mail_env to something like > maildir:/var/imap/domain/%1d/%d/%1u/user/%u/ would create almost > identical > on-disk layout as multidomain cyrus setup. Now, as dovecot does not > have its > own mda or lmtp daemon, how does one configure mta (eg. postfix) to > deliver > mail in such maildirs? Hmm. No idea. Dovecot LDA is probably implemented some day in this summer, but for 1.0-test versions which aren't yet stable. > Related question ... any cyrus to dovecot migration tales? :) There's a tool for it, cyrus2courier, which also supports Dovecot. I last checked it at v1.1 which is mirrored at http://dovecot.org/tools/. It's current version seems to be 1.3, hopefully it's still Dovecot-compatible. --Apple-Mail-18-534346807 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAvlYwyUhSUUBViskRAnDDAKCCLZCsMM+pzrJ1ipmJT4j0f/fiKQCfaSKb rYJQic4+8NxCjcF/tK7cPew= =NIvS -----END PGP SIGNATURE----- --Apple-Mail-18-534346807-- From tss@iki.fi Thu Jun 3 02:21:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EFCFDC002911; Thu, 3 Jun 2004 02:21:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 11442C00290E for ; Thu, 3 Jun 2004 02:21:51 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 0A7F71C185F4; Thu, 3 Jun 2004 02:14:38 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id DDF3B1C185F2 for ; Thu, 3 Jun 2004 02:14:03 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v613) In-Reply-To: <648DC16E-B4E4-11D8-9D25-000393CC2E90@iki.fi> References: <648DC16E-B4E4-11D8-9D25-000393CC2E90@iki.fi> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-19-536660440" Message-Id: <89639846-B4EA-11D8-9D25-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] IMAP folders missing after migrating to Dovecot Date: Thu, 3 Jun 2004 02:14:02 +0300 To: Dovecot list X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.613) X-Spam-Status: No, hits=-7.8 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 23:21:53 -0000 X-UID: 9353 Status: O --Apple-Mail-19-536660440 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 3.6.2004, at 01:30, Timo Sirainen wrote: >> I'm migrating to Dovecot from Courier-IMAP. I use Postfix with >> Maildir >> for delivery. >> >> When I use Dovecot as the IMAP server all of my folders are missing, >> the >> only thing that remains is the Inbox folder. > > If you have set "IMAP prefix" or "IMAP namespace" in your IMAP client > (to "INBOX."), remove it. Also fully described now in Wiki. --Apple-Mail-19-536660440 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAvl86yUhSUUBViskRAgemAJoCIq89EseeESI6sXTHThRICvqDjQCgjqRw TSnDJlvpwb8YK/YuV+XoO78= =0/xP -----END PGP SIGNATURE----- --Apple-Mail-19-536660440-- From joshua@shallow.net Thu Jun 3 04:49:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BDEBFC000DDD; Thu, 3 Jun 2004 04:49:20 +0300 (EEST) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id DA9A4C000DD5 for ; Thu, 3 Jun 2004 04:49:17 +0300 (EEST) Received: by yello.shallow.net (Postfix, from userid 1001) id A97C92B46; Thu, 3 Jun 2004 11:42:00 +1000 (EST) Date: Thu, 3 Jun 2004 11:42:00 +1000 From: Joshua Goodall To: Brian Candler Subject: Re: [Dovecot] dovecot and virtual hosting Message-ID: <20040603014200.GF1698@roughtrade.net> References: <20040602180614.GE2995@svanberg.no> <20040602184441.GB1253@uk.tiscali.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="xGGVyNQdqA79rdfn" Content-Disposition: inline In-Reply-To: <20040602184441.GB1253@uk.tiscali.com> User-Agent: Mutt/1.5.4i Cc: Vegard Svanberg , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 01:49:21 -0000 X-UID: 9354 Status: O Content-Length: 1794 --xGGVyNQdqA79rdfn Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jun 02, 2004 at 07:44:41PM +0100, Brian Candler wrote: > On Wed, Jun 02, 2004 at 08:06:14PM +0200, Vegard Svanberg wrote: > > A usual hosting provider setup depends on having one IP ("virtual > > mailserver") per domain. Using dovecot on servers handling hundreds or > > thousands of domains today equals to having multiple instances of > > dovecot running.=20 > >=20 > > This problem could be solved by making dovecot take into account the IP > > address the user connects to and authenticate against the proper > > {database, table, pw-file, [...]} based on that. > >=20 > > Comments?=20 >=20 > I've worked at very large ISPs, and we never did virtual hosting based on= IP > address; we simply made the logins unique. Just because you don't use it, doesn't mean that others won't. For example, my employer manages thousands of virtual services distinguished by IP addre= ss for which some of the protocols (e.g. SSL, anonymous FTP) are virtualized by IP, and POP3 virtualization piggybacks on that just because it can. We then support user@domain for those cases where the customer simply doesn= 't want SSL or virtual anon FTP. I think it's a good idea. Do you have patches, Vegard? Joshua. --=20 Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 --xGGVyNQdqA79rdfn Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAvoHoPsqE37hMaDwRAlTIAJ9EY2paH5MeDQMIBOhuauSBqFEpcwCgyE7u owlri9keHLqkb6QhnsZs1MQ= =JlfL -----END PGP SIGNATURE----- --xGGVyNQdqA79rdfn-- From hf@spg.tu-darmstadt.de Thu Jun 3 11:38:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0F056C000DCD; Thu, 3 Jun 2004 11:38:28 +0300 (EEST) Received: from bounce.nt.e-technik.tu-darmstadt.de (bounce.nt.e-technik.tu-darmstadt.de [130.83.197.1]) by talvi.dovecot.org (Postfix) with ESMTP id BC241C000DCB for ; Thu, 3 Jun 2004 11:38:22 +0300 (EEST) Received: from heiligenberg.nt.e-technik.tu-darmstadt.de (heiligenberg.nt.e-technik.tu-darmstadt.de [130.83.186.54]) by bounce.nt.e-technik.tu-darmstadt.de (8.12.11/8.12.11) with ESMTP id i538V8K2027433 for ; Thu, 3 Jun 2004 10:31:08 +0200 (CEST) Received: from heiligenberg.nt.e-technik.tu-darmstadt.de (localhost [127.0.0.1]) by heiligenberg.nt.e-technik.tu-darmstadt.de (8.12.9p1/8.12.9) with ESMTP id i538V8ED024676 for ; Thu, 3 Jun 2004 10:31:08 +0200 (CEST) Received: (from hf@localhost) by heiligenberg.nt.e-technik.tu-darmstadt.de (8.12.9p1/8.12.9) id i538V7Yv005041; Thu, 3 Jun 2004 10:31:07 +0200 (CEST) Date: Thu, 3 Jun 2004 10:31:07 +0200 From: Hauke Fath To: dovecot@dovecot.org Message-Id: <20040603103107.04a1b856.hf@spg.tu-darmstadt.de> Organization: Technische Universitaet Darmstadt X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: [Dovecot] 0.99.10.5 imap flag update issues X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 08:38:28 -0000 X-UID: 9355 Status: O Hi, there is an issue left in 0.99.10.5 which (I think) is a problem with imap status flags. It shows up in two places: (1) When new mail is delivered to the inbox, the last read mail changes to "unread". (2) When you move mails from the inbox to another folder with Mozilla (1.6 on win32, Linux, NetBSD), they are not removed from the inbox, effectively performing a copy instead of a move. And, while I am at it, (3) I see a regular log entry from a MS Outlook 2000 SP 3 Jun 3 10:26:23 bounce imap-login: SSL_read() syscall failed: EOF [130.83.XXX.XXX] The setup here: OS NetBSD 2.0beta, MTA sendmail 8.12.11, LDA maildrop 1.3.9, dovecot 0.99.10.5, OpenSSL 0.9.7d Any ideas? hauke --=20 Hauke Fath /~\ The ASCII Ribbon Campaign Institut f=FCr Nachrichtentechnik \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281 / \ Respect for open standards From discussion-lists@linnet.org Thu Jun 3 11:40:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8A0BAC000DDD; Thu, 3 Jun 2004 11:40:34 +0300 (EEST) Received: from icicle.pobox.com (icicle.pobox.com [207.8.226.3]) by talvi.dovecot.org (Postfix) with ESMTP id 33943C000DD5 for ; Thu, 3 Jun 2004 11:40:31 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by icicle.pobox.com (Postfix) with ESMTP id 9094E1064D5; Thu, 3 Jun 2004 04:33:12 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by icicle.pobox.com (Postfix) with ESMTP id 70F3C1064D6; Thu, 3 Jun 2004 04:32:59 -0400 (EDT) Received: from localhost.localdomain (localhost [127.0.0.1]) by jester.pobox.com (Postfix) with ESMTP id 78C9E78C; Thu, 3 Jun 2004 04:32:58 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.145.13]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id 5A19378B; Thu, 3 Jun 2004 04:32:57 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BVneh-0000E0-LP; Thu, 03 Jun 2004 09:32:55 +0100 Date: Thu, 3 Jun 2004 09:32:55 +0100 From: Brian Candler To: Joshua Goodall Subject: Re: [Dovecot] dovecot and virtual hosting Message-ID: <20040603083255.GA760@uk.tiscali.com> References: <20040602180614.GE2995@svanberg.no> <20040602184441.GB1253@uk.tiscali.com> <20040603014200.GF1698@roughtrade.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040603014200.GF1698@roughtrade.net> User-Agent: Mutt/1.4.1i Cc: Vegard Svanberg , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 08:40:34 -0000 X-UID: 9356 Status: O Content-Length: 1584 On Thu, Jun 03, 2004 at 11:42:00AM +1000, Joshua Goodall wrote: > Just because you don't use it, doesn't mean that others won't. That's true. All I meant was, when choosing where to expend development effort, perhaps it would be better to defer working on things which are arguably bad practice in the first place, and for which workarounds already exist (i.e. in this case bind a separate server instance to each IP address). Now, if you weren't worried about disambiguating usernames, but wanted to select a different certificate for POP3/IMAP over TLS for each virtual domain, then I'd have more sympathy. It's a huge shame that the POP3/IMAP S(TART)TLS commands don't give a way to select a certificate before negotiating TLS. HTTP now does (RFC2817), although I don't know how widely that's implemented. In our case, those people who used TLS for POP3 weren't willing to pay for their own certificate, so they were happy to share ours (they got a 'certificate name mismatch' but otherwise had a valid signed certificate; that's better than having a self-signed certificate) However, if all you're trying to do is have POP3 users 'fred' connecting to pop3.domain1.com and 'fred' connecting to pop3.domain2.com be unambiguous, then I really can't sympathise. You really should be making all these users login as 'fred@domain1.com' and 'fred@domain2.com', even if you happen to have different IP addresses available for pop3.domain1.com and pop3.domain2.com; it's no harder for the end-user to configure, and it's shortsighted not to. You'll regret it one day. Cheers, Brian. From yedidia@jct.ac.il Thu Jun 3 14:30:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7EB10C000DCE; Thu, 3 Jun 2004 14:30:52 +0300 (EEST) Received: from mail.jct.ac.il (unknown [147.161.1.14]) by talvi.dovecot.org (Postfix) with ESMTP id 83836C000DCB for ; Thu, 3 Jun 2004 14:30:49 +0300 (EEST) Received: from kidushin.jct.ac.il (kidushin.jct.ac.il [147.161.1.19]) by mail.jct.ac.il (8.12.8+Sun/8.12.8) with SMTP id i53BNRgd013729 for ; Thu, 3 Jun 2004 14:23:27 +0300 (IDT) Received: from jct.ac.il ([147.161.1.211]) by kidushin.jct.ac.il (SAVSMTP 3.1.3.37) with SMTP id M2004060314074118525 for ; Thu, 03 Jun 2004 14:07:41 +0300 Message-ID: <40BF0A08.60508@jct.ac.il> Date: Thu, 03 Jun 2004 14:22:48 +0300 From: Yedidia Klein User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] inbox file read/write X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 11:30:52 -0000 X-UID: 9357 Status: O Hi, If I config my mta to write incoming mail to /var/mail/[username] and dovecot (or any other imap/pop server) is serving email from this file, can't the fie be corrupted while mta and dovecot read/write at the same time ? is there any mechanism to avoid it ? thanks --Y From chibi@gol.com Thu Jun 3 15:21:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 89DEFC000DCD; Thu, 3 Jun 2004 15:21:01 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id B1392C000DCB for ; Thu, 3 Jun 2004 15:20:58 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BVqmd-0001Kq-00; Thu, 03 Jun 2004 20:53:19 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: Yedidia Klein Subject: Re: [Dovecot] inbox file read/write In-reply-to: <40BF0A08.60508@jct.ac.il> References: <40BF0A08.60508@jct.ac.il> Comments: In-reply-to Yedidia Klein message dated "Thu, 03 Jun 2004 14:22:48 +0300." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 03 Jun 2004 20:53:19 +0900 From: Christian Balzer Message-Id: Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 12:21:02 -0000 X-UID: 9358 Status: O Hello, >If I config my mta to write incoming mail to /var/mail/[username] and >dovecot (or any other imap/pop server) is serving email from this file, >can't the fie be corrupted while mta and dovecot read/write at the same >time ? > >is there any mechanism to avoid it ? > your question has been just recently discussed, see the threads starting with: http://www.dovecot.org/list/dovecot/2004-May/003364.html as well as the nicely commented config file. Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From jduino@aerohead.com Thu Jun 3 15:58:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1CE97C000DCD; Thu, 3 Jun 2004 15:58:13 +0300 (EEST) Received: from aerohead.com (dsl081-033-105.lax1.dsl.speakeasy.net [64.81.33.105]) by talvi.dovecot.org (Postfix) with ESMTP id E6FADC000DCB for ; Thu, 3 Jun 2004 15:58:09 +0300 (EEST) Received: from [192.168.0.3] (mustang [192.168.0.3]) by aerohead.com (8.12.8/8.12.8) with ESMTP id i53CorrU012873 for ; Thu, 3 Jun 2004 05:50:54 -0700 From: John Duino To: dovecot@dovecot.org Content-Type: text/plain Organization: AeroHead Designs - Unix & Network Consulting Message-Id: <1086267053.18680.59.camel@mustang> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Thu, 03 Jun 2004 05:50:53 -0700 Content-Transfer-Encoding: 7bit Subject: [Dovecot] Supporting POP & IMAP with Sendmail X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: jduino@aerohead.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 12:58:13 -0000 X-UID: 9359 Status: O Content-Length: 1181 Greetings! I dug thru the archives but didn't see a clear answer to this. A client has an existing sendmail/pop3 system, and I would like to switch to dovecot for imap support. For imap I much prefer the Maildir format over mbox, however, sendmail natively dumps to mbox (mailspool) and that is what pop typically reads. I've read the threads on how to make sendmail write to Maildir. My problem is that I'd like to support both pop/mailspool and imap/maildir. While running dovecot in imap-only it will use mbox format to read the /var/mail/user as the Inbox and then create the full imap structure under ~user/mail but in mbox format, not maildir. If/when I turn on both pop and imap in dovecot will it allow this with the current config? Or will I still need to convert sendmail output to maildir...and then I assume dovecot/pop will read from ~user/Maildir/Inbox even though it is in Maildir format? Basically, if I'd prefer to not have to convert sendmail to Maildir format, have dovecot always treat /var/mail/user as the Inbox for both pop and imap, and for those who switch to imap, have it store their other folders in ~user/Maildir. Asking too much? Thanks! John From chibi@gol.com Thu Jun 3 17:27:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6C345C000DCD; Thu, 3 Jun 2004 17:27:23 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id D9143C000DCB for ; Thu, 3 Jun 2004 17:27:20 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BVt4b-0003Vn-00; Thu, 03 Jun 2004 23:20:01 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: jduino@aerohead.com Subject: Re: [Dovecot] Supporting POP & IMAP with Sendmail In-reply-to: <1086267053.18680.59.camel@mustang> References: <1086267053.18680.59.camel@mustang> Comments: In-reply-to John Duino message dated "Thu, 03 Jun 2004 05:50:53 -0700." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 03 Jun 2004 23:20:01 +0900 From: Christian Balzer Message-Id: Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 14:27:23 -0000 X-UID: 9360 Status: O Hello, >Basically, if I'd prefer to not have to convert sendmail to Maildir >format, have dovecot always treat /var/mail/user as the Inbox for both >pop and imap, and for those who switch to imap, have it store their >other folders in ~user/Maildir. Asking too much? > Also _just_ answered here, to be precise, yesterday. See the thread starting with: http://www.dovecot.org/list/dovecot/2004-June/003590.html Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From fmulharin@th-record.com Thu Jun 3 17:45:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D754CC000DCD; Thu, 3 Jun 2004 17:45:52 +0300 (EEST) Received: from mailexchange.ottaway.com (mailexchange.ottaway.com [204.27.188.1]) by talvi.dovecot.org (Postfix) with ESMTP id 84195C000DCB for ; Thu, 3 Jun 2004 17:45:50 +0300 (EEST) Received: from mailserver.ottaway.com by mailexchange.ottaway.com; Thu, 03 Jun 2004 14:43:07 GMT Received: from thrmailserver.th-record.com ([172.20.73.5]) by mailserver.ottaway.com (Netscape Messaging Server 4.15) with SMTP id HYQM0A00.5WA for ; Thu, 3 Jun 2004 10:38:34 -0400 Received: from thrmailserver.th-record.com (loopback [127.0.0.1]) by thrmailserver.th-record.com (8.12.8/8.12.8) with ESMTP id i53EhpeS023981 for ; Thu, 3 Jun 2004 10:43:51 -0400 Received: (from apache@localhost) by thrmailserver.th-record.com (8.12.8/8.12.8/Submit) id i53EhplB023979; Thu, 3 Jun 2004 10:43:51 -0400 Received: from 172.20.73.150 (SquirrelMail authenticated user fmulharin) by 172.20.73.5 with HTTP; Thu, 3 Jun 2004 10:43:51 -0400 (EDT) Message-ID: <33716.172.20.73.150.1086273831.squirrel@172.20.73.5> Date: Thu, 3 Jun 2004 10:43:51 -0400 (EDT) From: "Fred Mulharin" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2-1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Lost messages when "Moved to Trash" X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 14:45:53 -0000 X-UID: 9361 Status: O We are using Dovecot 0.99.10.5 on a Redhat 9.0 Box. We are using the Squirrelmail Webmail client, and have occasionally had a problem with users move messages from their Inbox to the "Trash" folder. The Selected messages move to the Trash folder, but the rest of the messages in the INBOX disappear. Fred -- Fred Mulharin Systems Technology Supervisor Times Herald-Record fmulharin@th-record.com ..We are the trusted leader in news and information for the communities we serve ..because we all live here From john.l.villalovos@intel.com Thu Jun 3 18:26:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 91345C000DCD; Thu, 3 Jun 2004 18:26:19 +0300 (EEST) Received: from orsfmr001.jf.intel.com (fmr12.intel.com [134.134.136.15]) by talvi.dovecot.org (Postfix) with ESMTP id 3DD37C000DCB for ; Thu, 3 Jun 2004 18:26:16 +0300 (EEST) Received: from petasus.jf.intel.com (petasus.jf.intel.com [10.7.209.6]) by orsfmr001.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc, v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i538IO5b009717 for ; Thu, 3 Jun 2004 08:18:40 GMT Received: from orsmsxvs041.jf.intel.com (orsmsxvs041.jf.intel.com [192.168.65.54]) by petasus.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc, v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i53FJ6Af021760 for ; Thu, 3 Jun 2004 15:19:34 GMT Received: from orsmsx332.amr.corp.intel.com ([192.168.65.60]) by orsmsxvs041.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004060308183332263 for ; Thu, 03 Jun 2004 08:18:33 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx332.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.6713); Thu, 3 Jun 2004 08:18:33 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] Advice on converting from Mbox to Maildir? Date: Thu, 3 Jun 2004 08:18:31 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B0EFCBF@orsmsx410.jf.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Advice on converting from Mbox to Maildir? Thread-Index: AcRIIB0nGDVXQwmjSEGva6em5KRo7gArG8MwACwmcxA= From: "Villalovos, John L" To: X-OriginalArrivalTime: 03 Jun 2004 15:18:33.0434 (UTC) FILETIME=[08BA23A0:01C4497E] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 15:26:19 -0000 X-UID: 9362 Status: O Content-Length: 1920 To recap what I have learned :) dovecot-bounces@dovecot.org wrote: > Does anyone have advice or pointers on good documentation on how to > convert a system from using the Mbox format to using Maildir? >=20 > I recently upgraded to Fedora Core 2 from Fedora Core 1 and discovered > that UW-IMAP was gone. So I switched over to using Dovecot. > So far so > good. >=20 > But I would like to convert my system to start using the > Maildir format. >=20 > How easy is this to accomplish? Fairly easy on the small system I had. I only have around 8 people using email off of my system. > Can I keep my Inbox /var/spool/mail/user_name as an mbox > format and have > my other folders as Maildir? Timo says that it is NOT available in the version that comes with Fedora Core 2. It will be available in the 1.0 series by defining multiple namespaces. The current 1.0-tests allow this. > What would I have to change for Sendmail to make it use > Maildir for the Inbox? Sendmail does NOT need to be changed. > Can procmail support Maildir? Yes and that is what you need to change. I setup /etc/procmailrc to have the line: DEFAULT=3D$HOME/Maildir/ Make sure there is the terminating / on that line. What this will do is make all new mail that is delivered via procmail go to each user's Maildir folder. But what you need to do first is convert your existing mbox mail into maildir format. I used the program that was recommended to me: mb2md http://batleth.sapienti-sat.org/projects/mb2md/ This program worked great to convert my /var/spool/mail/user_name stuff and also folders that I had created under ~/mail/ So now my whole system is using Maildir format. If you had a big system this might be a big pain :( John --=20 A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting Q: What is the most annoying thing on usenet and in e-mail? From jduino@aerohead.com Thu Jun 3 19:25:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A45D5C000DCE; Thu, 3 Jun 2004 19:25:48 +0300 (EEST) Received: from aerohead.com (dsl081-033-105.lax1.dsl.speakeasy.net [64.81.33.105]) by talvi.dovecot.org (Postfix) with ESMTP id C6F55C000DCD for ; Thu, 3 Jun 2004 19:25:45 +0300 (EEST) Received: from mail.aerohead.com (localhost.localdomain [127.0.0.1]) by aerohead.com (8.12.8/8.12.8) with SMTP id i53GIRrU014051; Thu, 3 Jun 2004 09:18:28 -0700 Received: from 216.135.183.34 (SquirrelMail authenticated user jduino) by mail.aerohead.com with HTTP; Thu, 3 Jun 2004 09:18:28 -0700 (PDT) Message-ID: <39776.216.135.183.34.1086279508.squirrel@mail.aerohead.com> In-Reply-To: References: <1086267053.18680.59.camel@mustang> Date: Thu, 3 Jun 2004 09:18:28 -0700 (PDT) Subject: Re: [Dovecot] Supporting POP & IMAP with Sendmail From: "John Duino" To: "Christian Balzer" User-Agent: SquirrelMail/1.4.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Cc: jduino@aerohead.com, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 16:25:48 -0000 X-UID: 9363 Status: O > Also _just_ answered here, to be precise, yesterday. > > See the thread starting with: > > http://www.dovecot.org/list/dovecot/2004-June/003590.html > > Regards, > > Christian Balzer My apologies and thanks! The messages weren't in the archives I checked but came before I subscribed. Bad timing. From john.l.villalovos@intel.com Thu Jun 3 19:58:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E2340C000DCE; Thu, 3 Jun 2004 19:58:37 +0300 (EEST) Received: from caduceus.jf.intel.com (fmr06.intel.com [134.134.136.7]) by talvi.dovecot.org (Postfix) with ESMTP id 39B47C000DCD for ; Thu, 3 Jun 2004 19:58:34 +0300 (EEST) Received: from petasus.jf.intel.com (petasus.jf.intel.com [10.7.209.6]) by caduceus.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc,v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i53Golhw004325; Thu, 3 Jun 2004 16:50:47 GMT Received: from orsmsxvs041.jf.intel.com (orsmsxvs041.jf.intel.com [192.168.65.54]) by petasus.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc,v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i53GpjAb028212; Thu, 3 Jun 2004 16:52:15 GMT Received: from orsmsx332.amr.corp.intel.com ([192.168.65.60]) by orsmsxvs041.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004060309510317858 ; Thu, 03 Jun 2004 09:51:08 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx332.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.6713); Thu, 3 Jun 2004 09:50:42 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] Supporting POP & IMAP with Sendmail Date: Thu, 3 Jun 2004 09:50:41 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B88C763@orsmsx410.jf.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Supporting POP & IMAP with Sendmail Thread-Index: AcRJaX2ygVAAhksnRZ2UhCTOrUwDUgAITVUQ From: "Villalovos, John L" To: , X-OriginalArrivalTime: 03 Jun 2004 16:50:42.0325 (UTC) FILETIME=[E833F450:01C4498A] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 16:58:38 -0000 X-UID: 9364 Status: O dovecot-bounces@dovecot.org wrote: > I dug thru the archives but didn't see a clear answer to > this. A client > has an existing sendmail/pop3 system, and I would like to switch to > dovecot for imap support. For imap I much prefer the Maildir > format over > mbox, however, sendmail natively dumps to mbox (mailspool) and that is > what pop typically reads. I've read the threads on how to > make sendmail > write to Maildir. >=20 > My problem is that I'd like to support both pop/mailspool and > imap/maildir.=20 My suggestion would be to use Dovecot as your POP and IMAP server. And convert everything to use Maildir unless there is some special reason you want to keep mbox format for. Setup procmail to deliver all mail to the maildir folders. See my previous message on how to do it. John --=20 A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting Q: What is the most annoying thing on usenet and in e-mail? From john.l.villalovos@intel.com Thu Jun 3 20:27:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D0555C000DCE; Thu, 3 Jun 2004 20:27:33 +0300 (EEST) Received: from hermes.jf.intel.com (fmr05.intel.com [134.134.136.6]) by talvi.dovecot.org (Postfix) with ESMTP id E4EBAC000DCD for ; Thu, 3 Jun 2004 20:27:30 +0300 (EEST) Received: from petasus.jf.intel.com (petasus.jf.intel.com [10.7.209.6]) by hermes.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc,v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i53HLTM9009109; Thu, 3 Jun 2004 17:21:29 GMT Received: from orsmsxvs041.jf.intel.com (orsmsxvs041.jf.intel.com [192.168.65.54]) by petasus.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc,v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i53HKHAr017960; Thu, 3 Jun 2004 17:21:09 GMT Received: from orsmsx332.amr.corp.intel.com ([192.168.65.60]) by orsmsxvs041.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004060310200723693 ; Thu, 03 Jun 2004 10:20:07 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx332.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.6713); Thu, 3 Jun 2004 10:20:08 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] Supporting POP & IMAP with Sendmail Date: Thu, 3 Jun 2004 10:20:07 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B0EFCC2@orsmsx410.jf.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Supporting POP & IMAP with Sendmail Thread-Index: AcRJjCle0KygWLYsRyG00VYCVWNvTwAADecA From: "Villalovos, John L" To: "John Duino" X-OriginalArrivalTime: 03 Jun 2004 17:20:08.0082 (UTC) FILETIME=[04AD1720:01C4498F] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 17:27:34 -0000 X-UID: 9365 Status: O John Duino wrote: > That was the one question I haven't had answered (and it's > mostly just out of pure paranoia that I ask it :) Yes. POP email works fine with Maildir for me. I am using dovecot-0.99.10.5-1 which was on the development tree of Fedora. Though I would think the one that came stock with Fedora 2 should work as well. I have no reason to think it won't. One note. I don't use POP that much. I have one person who uses it and they haven't complained. > So if all the mail is moved to Maildir (thus eliminating the typical > mailspool), and somebody pop's onto the server, Dovecot will use the > Maildir/Inbox for the pop?=20 Yes it will. If you read the mail-storages.txt documentation file it talks about it. I would read the section on "Detecting what to use". I did NOT set the default_mail_env variable in my /etc/dovecot.conf and it figured it out automagically :) Good luck, John From antonio.nunes@lifefoundation.org.uk Thu Jun 3 21:13:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AD3EAC000DCE; Thu, 3 Jun 2004 21:13:01 +0300 (EEST) Received: from mail.lfst.demon.co.uk (lfst.demon.co.uk [158.152.87.172]) by talvi.dovecot.org (Postfix) with ESMTP id EADB0C000DCD for ; Thu, 3 Jun 2004 21:12:58 +0300 (EEST) Received: from mail.lfst.demon.co.uk (localhost.localdomain [127.0.0.1]) by mail.lfst.demon.co.uk (8.12.8/8.12.8) with ESMTP id i53GjCVx004017 for ; Thu, 3 Jun 2004 17:45:12 +0100 Received: (from apache@localhost) by mail.lfst.demon.co.uk (8.12.8/8.12.8/Submit) id i53GjBU2004015; Thu, 3 Jun 2004 17:45:11 +0100 X-Authentication-Warning: mail.lfst.demon.co.uk: apache set sender to antonio.nunes@lifefoundation.org.uk using -f Received: from 10.10.10.22 (SquirrelMail authenticated user antonio.nunes) by mail.lfst.demon.co.uk with HTTP; Thu, 3 Jun 2004 17:45:11 +0100 (BST) Message-ID: <36467.10.10.10.22.1086281111.squirrel@mail.lfst.demon.co.uk> In-Reply-To: <1086189609.26596.6.camel@hurina> References: <33510.10.10.10.22.1086173797.squirrel@10.10.10.110> <1086189609.26596.6.camel@hurina> Date: Thu, 3 Jun 2004 17:45:11 +0100 (BST) Subject: Re: [Dovecot] Loggin error with Squirrelmail on Fedore Core 2 From: "Antonio Nunes" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2-1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: antonio.nunes@lifefoundation.org.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 18:13:01 -0000 X-UID: 9366 Status: O Timo wrote: This is because by default Dovecot detects mailbox locations, and if some user doesn't have /var/mail/user mbox file, Dovecot doesn't know what to do. So alternative to the above kludge is to modify configuration file: default_mail_env = mbox:~/mail:INBOX=/var/mail/%u Thanks Timo. It turned out that my batch-file created users were not working correctly on the system at all, so it was not a Dovecot issue. I recreated our users by hand (fortunately they're not too many) and it seems to be OK now with SquirrelMail. I am currently experiencing another issue, but I'll start a separate thread on that. Best wishes, Antonio Nunes The best way of seeing divine light, is to put out your own little candle. From antonio.nunes@lifefoundation.org.uk Thu Jun 3 21:24:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E53CBC000DDD; Thu, 3 Jun 2004 21:24:41 +0300 (EEST) Received: from mail.lfst.demon.co.uk (lfst.demon.co.uk [158.152.87.172]) by talvi.dovecot.org (Postfix) with ESMTP id 1108AC000DCE for ; Thu, 3 Jun 2004 21:24:39 +0300 (EEST) Received: from mail.lfst.demon.co.uk (localhost.localdomain [127.0.0.1]) by mail.lfst.demon.co.uk (8.12.8/8.12.8) with ESMTP id i53GuqVx004062 for ; Thu, 3 Jun 2004 17:56:52 +0100 Received: (from apache@localhost) by mail.lfst.demon.co.uk (8.12.8/8.12.8/Submit) id i53Guqae004060; Thu, 3 Jun 2004 17:56:52 +0100 X-Authentication-Warning: mail.lfst.demon.co.uk: apache set sender to antonio.nunes@lifefoundation.org.uk using -f Received: from 10.10.10.22 (SquirrelMail authenticated user antonio.nunes) by mail.lfst.demon.co.uk with HTTP; Thu, 3 Jun 2004 17:56:51 +0100 (BST) Message-ID: <36504.10.10.10.22.1086281811.squirrel@mail.lfst.demon.co.uk> Date: Thu, 3 Jun 2004 17:56:51 +0100 (BST) From: "Antonio Nunes" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2-1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Getting POP3 up and running X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: antonio.nunes@lifefoundation.org.uk List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 18:24:42 -0000 X-UID: 9367 Status: O Hi! Now that I happily smiling have Squirrelmail working on the new setup (Fedora Core 2), the next hurdle seems to be getting POP3 to work. According to my understanding of the documentation I changed the protocols line in dovecot.conf to: #protocols = imap imaps pop3 pop3s then restarted dovecot, but still can't connect to pop3 (not even after rebooting the whole system). Doing an nmap on my server does not show port 110 as open. Any clues as to what I may be overlooking? Thanks for your support, Antonio There is a world of difference between searching for happiness and choosing to be happy! From john.l.villalovos@intel.com Thu Jun 3 21:34:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 52E7CC000DE4; Thu, 3 Jun 2004 21:34:18 +0300 (EEST) Received: from orsfmr001.jf.intel.com (fmr12.intel.com [134.134.136.15]) by talvi.dovecot.org (Postfix) with ESMTP id 2B36FC000DDD for ; Thu, 3 Jun 2004 21:34:15 +0300 (EEST) Received: from talaria.jf.intel.com (talaria.jf.intel.com [10.7.209.7]) by orsfmr001.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc,v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i53BPn5b012640; Thu, 3 Jun 2004 11:26:46 GMT Received: from orsmsxvs040.jf.intel.com (orsmsxvs040.jf.intel.com [192.168.65.206]) by talaria.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc,v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i53ILBeT027970; Thu, 3 Jun 2004 18:22:00 GMT Received: from orsmsx332.amr.corp.intel.com ([192.168.65.60]) by orsmsxvs040.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004060311253723788 ; Thu, 03 Jun 2004 11:25:37 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx332.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.6713); Thu, 3 Jun 2004 11:25:36 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] Getting POP3 up and running Date: Thu, 3 Jun 2004 11:25:36 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B88C768@orsmsx410.jf.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Getting POP3 up and running Thread-Index: AcRJl3A80P397wn5SI6VoUiY2QeFRAAAJzJA From: "Villalovos, John L" To: , X-OriginalArrivalTime: 03 Jun 2004 18:25:36.0866 (UTC) FILETIME=[2A69F420:01C44998] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 18:34:19 -0000 X-UID: 9368 Status: O dovecot-bounces@dovecot.org wrote: > According to my understanding of the documentation I changed > the protocols > line in dovecot.conf to: >=20 > #protocols =3D imap imaps pop3 pop3s Did you really just change the commented out line? If so then you didn't do anything :( You will need to uncomment the line and restart it. The "#" at the beginning of the line is a comment. John From strombrg@dcs.nac.uci.edu Thu Jun 3 21:40:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E2F3CC000DEC; Thu, 3 Jun 2004 21:40:30 +0300 (EEST) Received: from dcs.nac.uci.edu (dcs.nac.uci.edu [128.200.34.32]) by talvi.dovecot.org (Postfix) with ESMTP id 432D8C000DE4 for ; Thu, 3 Jun 2004 21:40:28 +0300 (EEST) Received: from [128.200.34.35] (tesuji.nac.uci.edu [128.200.34.35]) by dcs.nac.uci.edu (8.12.11/8.12.10) with ESMTP id i53IX9kZ020718; Thu, 3 Jun 2004 11:33:09 -0700 Subject: Re: [Dovecot] 0.99.10.5 imap flag update issues From: Dan Stromberg To: Hauke Fath In-Reply-To: <20040603103107.04a1b856.hf@spg.tu-darmstadt.de> References: <20040603103107.04a1b856.hf@spg.tu-darmstadt.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-nCpQwUtSzRTHj2Ext33M" Message-Id: <1086287589.15311.8.camel@tesuji.nac.uci.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Thu, 03 Jun 2004 11:33:09 -0700 Cc: Dan Stromberg , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 18:40:31 -0000 X-UID: 9369 Status: O --=-nCpQwUtSzRTHj2Ext33M Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-03 at 01:31, Hauke Fath wrote: > (2) When you move mails from the inbox to another folder with Mozilla > (1.6 on win32, Linux, NetBSD), they are not removed from the inbox, > effectively performing a copy instead of a move. I may be seeing this too using evolution. I have an evolution filter set up to change the color of spam messages and refile them to another folder. Once in a while, I find spam still in my inbox that has changed color, but isn't marked as deleted. --=20 Dan Stromberg DCS/NACS/UCI --=-nCpQwUtSzRTHj2Ext33M Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBAv27lo0feVm00f/8RAvalAKCeQ4N3ROGqX5XUuV1POZTjt8YCagCgkZ77 NIIKgzVXFhmBERc2N3PcVIQ= =RgbA -----END PGP SIGNATURE----- --=-nCpQwUtSzRTHj2Ext33M-- From rwf@loonybin.net Thu Jun 3 21:49:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F0321C000DE2; Thu, 3 Jun 2004 21:49:14 +0300 (EEST) Received: from jupiter.loonybin.net (jupiter.loonybin.net [208.248.0.98]) by talvi.dovecot.org (Postfix) with ESMTP id E6990C000DCE for ; Thu, 3 Jun 2004 21:49:12 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id 90C3D22827E for ; Thu, 3 Jun 2004 14:41:56 -0400 (EDT) Received: from jupiter.loonybin.net ([127.0.0.1]) by localhost (jupiter [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12144-09 for ; Thu, 3 Jun 2004 14:41:54 -0400 (EDT) Received: by jupiter.loonybin.net (Postfix, from userid 500) id 17C7E22805C; Thu, 3 Jun 2004 14:41:53 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by jupiter.loonybin.net (Postfix) with ESMTP id C95BD698258 for ; Thu, 3 Jun 2004 14:41:53 -0400 (EDT) Date: Thu, 3 Jun 2004 14:41:53 -0400 (EDT) From: Rob Foehl X-X-Sender: rob@jupiter.loonybin.net To: dovecot@dovecot.org Subject: Re: [Dovecot] mta/mda config In-Reply-To: <200406022213.36561.pegasus@nerv.eu.org> Message-ID: References: <200406022213.36561.pegasus@nerv.eu.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new at loonybin.net X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 18:49:15 -0000 X-UID: 9370 Status: O On Wed, 2 Jun 2004, Jure Pecar wrote: > For large mailstore setups, it makes sense to split maildirs across many > directories. I see that setting default_mail_env to something like > maildir:/var/imap/domain/%1d/%d/%1u/user/%u/ would create almost identical > on-disk layout as multidomain cyrus setup. Now, as dovecot does not have its > own mda or lmtp daemon, how does one configure mta (eg. postfix) to deliver > mail in such maildirs? With Postfix, it's pretty straightforward; you have several options, depending on how you actually want to do the deliveries. Basically, you'll most likely want to use the virtual(8) delivery agent, and supply it with a mailbox map that returns the full mailbox path (be it mbox or maildir). This can be done with just about any of the available map types; I'll try to provide a more concrete example if you provide more information on exactly how you want the deliveries done, and what (if any) other components are involved (SQL database of users, etc).. -Rob From dr@jones.dk Thu Jun 3 21:50:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 16C62C00282F; Thu, 3 Jun 2004 21:50:29 +0300 (EEST) Received: from xayide.jones.dk (cpe.atm0-0-0-1201001.0x503f72d6.albnxx2.customer.tele.dk [80.63.114.214]) by talvi.dovecot.org (Postfix) with ESMTP id 03E1BC000DCE for ; Thu, 3 Jun 2004 21:50:27 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by xayide.jones.dk (Postfix) with ESMTP id 65C5E1AB8F3; Thu, 3 Jun 2004 20:43:10 +0200 (CEST) Received: from xayide.jones.dk ([127.0.0.1]) by localhost (xayide.jones.dk [127.0.0.1]) (amavisd-new, port 10024) with SMTP id 17988-01; Thu, 3 Jun 2004 20:43:00 +0200 (CEST) Received: from [10.0.242.251] (unknown [200.96.126.85]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by xayide.jones.dk (Postfix) with ESMTP id A30421AB8CE; Thu, 3 Jun 2004 20:42:57 +0200 (CEST) Message-ID: <40BF712D.3030203@jones.dk> Date: Thu, 03 Jun 2004 15:42:53 -0300 From: Jonas Smedegaard User-Agent: Mozilla Thunderbird 0.6 (X11/20040528) X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Villalovos, John L" Subject: Re: [Dovecot] Supporting POP & IMAP with Sendmail References: <60C14C611F1DDD4198D53F2F43D8CA3B0EFCC2@orsmsx410.jf.intel.com> In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B0EFCC2@orsmsx410.jf.intel.com> X-Enigmail-Version: 0.83.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at jones.dk Cc: John Duino , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 18:50:29 -0000 X-UID: 9371 Status: O Content-Length: 1296 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Villalovos, John L wrote: | John Duino wrote: |>So if all the mail is moved to Maildir (thus eliminating the typical |>mailspool), and somebody pop's onto the server, Dovecot will use the |>Maildir/Inbox for the pop? | | | Yes it will. If you read the mail-storages.txt documentation file it | talks about it. I would read the section on "Detecting what to use". | | I did NOT set the default_mail_env variable in my /etc/dovecot.conf and= | it figured it out automagically :) Beware that if you (or anybody else reading this) uses /var/mail (as Debian does by default) for INBOX then the it is not automagically detected by Dovecot until mail is actually sent to the account. Example: Create a new user, and configure the IMAP client. Result (in Outlook Express and Mozilla Thunderbird): Error reading INBOX. ~ - Jonas - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ ~ - Enden er n=E6r: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFAv3Esn7DbMsAkQLgRAns7AJ9eKDc5nQCSQb5RDzXpJgyU1I8QAgCeOuty 6o+IGXgBwm0j0HSzPylcjBU=3D =3DSu5B -----END PGP SIGNATURE----- From dovecot@gutzeit.at Thu Jun 3 21:57:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 87BE0C000DE2; Thu, 3 Jun 2004 21:57:16 +0300 (EEST) Received: from cat-proof.de (cat.cat-proof.de [213.239.198.176]) by talvi.dovecot.org (Postfix) with ESMTP id ED89DC000DCE for ; Thu, 3 Jun 2004 21:57:12 +0300 (EEST) Received: from jensemann.jensemann.lan.saturn (pD9E0844F.dip.t-dialin.net [217.224.132.79]) by cat-proof.de (Postfix) with ESMTP id 7C3D06184A7 for ; Thu, 3 Jun 2004 20:48:51 +0200 (CEST) Received: by jensemann.jensemann.lan.saturn (Postfix, from userid 1000) id 44778219E7F; Thu, 3 Jun 2004 20:57:58 +0200 (CEST) Date: Thu, 3 Jun 2004 20:57:58 +0200 From: Jens Gutzeit To: dovecot@dovecot.org Subject: Re: [Dovecot] mta/mda config Message-ID: <20040603185757.GP19167@gutzeit.at> References: <200406022213.36561.pegasus@nerv.eu.org> <265B3591-B4E5-11D8-9D25-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <265B3591-B4E5-11D8-9D25-000393CC2E90@iki.fi> User-Agent: Mutt/1.5.6i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 18:57:16 -0000 X-UID: 9372 Status: O On Thu, Jun 03, 2004 at 01:35:29AM +0300, Timo Sirainen wrote: > There's a tool for it, cyrus2courier, which also supports Dovecot. I=20 > last checked it at v1.1 which is mirrored at http://dovecot.org/tools/.= =20 > It's current version seems to be 1.3, hopefully it's still=20 > Dovecot-compatible. It is, I have used it 1 months ago to kill our last cyrus-imap :) best regards/Mit freundlichen Gr=FC=DFen Jens Gutzeit From mauricio@hostarica.com Fri Jun 4 00:42:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9610FC000DCE; Fri, 4 Jun 2004 00:42:31 +0300 (EEST) Received: from mx.hostarica.com (mx.hostarica.com [196.40.45.74]) by talvi.dovecot.org (Postfix) with ESMTP id 985D4C000DCB for ; Fri, 4 Jun 2004 00:42:27 +0300 (EEST) Received: from localhost (localhost.hostarica.com [127.0.0.1]) by mx.hostarica.com (Postfix) with ESMTP id CE12BF6D3; Thu, 3 Jun 2004 15:37:46 -0600 (CST) Received: from [192.168.0.68] (unknown [192.168.0.68]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx.hostarica.com (Postfix) with ESMTP id AFCB0F6CF; Thu, 3 Jun 2004 15:37:45 -0600 (CST) Subject: Re: [Dovecot] Advice on converting from Mbox to Maildir? From: "Mauricio Araya V." To: "Villalovos, John L" In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com> References: <60C14C611F1DDD4198D53F2F43D8CA3B88C75B@orsmsx410.jf.intel.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-xw5LbKp9mj6NrUhPcXcH" Organization: Corp. Hostarica S.A. Message-Id: <1086298484.37513.105.camel@wd.hostarica.net> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Thu, 03 Jun 2004 15:34:44 -0600 X-Virus-Scanned: by amavisd 0.1 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 21:42:33 -0000 X-UID: 9373 Status: O --=-xw5LbKp9mj6NrUhPcXcH Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-02 at 12:11, Villalovos, John L wrote: > Does anyone have advice or pointers on good documentation on how to > convert a system from using the Mbox format to using Maildir? I recently had to migrate a server(sendmail) using Mbox format to a new one(postfix) using Maildir.=20 Old accounts had a lot of IMAP folders. http://perfectmaildir.home-dn.net/ Regards, Mauricio --=-xw5LbKp9mj6NrUhPcXcH Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD4DBQBAv5l0dLXSr4Dhf2MRAjhOAJiPUrCHs3doYtpNcXVo0XXFmPVZAJ914I1a F5OCesoZABtiJ3EewlCG+Q== =Gu2H -----END PGP SIGNATURE----- --=-xw5LbKp9mj6NrUhPcXcH-- From pegasus@nerv.eu.org Fri Jun 4 02:06:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 51B08C000DCE; Fri, 4 Jun 2004 02:06:50 +0300 (EEST) Received: from mail.animeslovenija.org (feather2.animeslovenija.org [193.77.122.70]) by talvi.dovecot.org (Postfix) with ESMTP id 7A7CBC000DCB for ; Fri, 4 Jun 2004 02:06:47 +0300 (EEST) Received: from localhost (disko [192.168.200.4]) by mail.animeslovenija.org (8.7.6/8.7.6) with ESMTP id 83D4C9BDE for ; Fri, 4 Jun 2004 00:59:36 +0200 (CEST) Received: from mail.animeslovenija.org ([192.168.200.3]) by localhost (disko [192.168.200.4]) (amavisd-new, port 10024) with LMTP id 10907-01 for ; Fri, 4 Jun 2004 01:00:46 +0200 (CEST) Received: from [192.168.0.8] (jarse [193.95.219.68]) by mail.animeslovenija.org (8.7.6/8.7.6) with ESMTP id 47E529BD6 for ; Fri, 4 Jun 2004 00:26:07 +0200 (CEST) From: Jure Pecar To: dovecot@dovecot.org Subject: Re: [Dovecot] mta/mda config Date: Fri, 4 Jun 2004 00:30:14 +0200 User-Agent: KMail/1.6.2 References: <200406022213.36561.pegasus@nerv.eu.org> In-Reply-To: MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <200406040030.14340.pegasus@nerv.eu.org> X-Virus-Scanned: by amavisd-new at animeslovenija.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2004 23:06:50 -0000 X-UID: 9374 Status: O On Thursday 03 of June 2004 20:41, Rob Foehl wrote: > With Postfix, it's pretty straightforward; you have several options, > depending on how you actually want to do the deliveries. Basically, > you'll most likely want to use the virtual(8) delivery agent, and supply > it with a mailbox map that returns the full mailbox path (be it mbox or > maildir). > > This can be done with just about any of the available map types; I'll try > to provide a more concrete example if you provide more information on > exactly how you want the deliveries done, and what (if any) other > components are involved (SQL database of users, etc).. Thanks, i'll take a closer look at vda. It's a part of postfix i've neglect= ed=20 all this time... I guess there is no way yet to use similiar strings as dovecot takes for=20 mail_env, so this would cost me one additional sql lookup per mail delivery= =2E=20 I guess i can live with that ...=20 =2D-=20 Jure Pe=C4=8Dar From warren@togami.com Fri Jun 4 09:08:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EAC7DC000DCF; Fri, 4 Jun 2004 09:08:34 +0300 (EEST) Received: from master.togami.com (master.togami.com [69.44.154.82]) by talvi.dovecot.org (Postfix) with ESMTP id 38898C000DCE for ; Fri, 4 Jun 2004 09:08:31 +0300 (EEST) Received: from [172.31.16.101] (cpe-66-91-85-198.hawaii.rr.com [66.91.85.198]) by master.togami.com (Postfix) with ESMTP id A4ECD36801A for ; Thu, 3 Jun 2004 20:01:41 -1000 (HST) Message-ID: <40C01026.4090805@togami.com> Date: Thu, 03 Jun 2004 20:01:10 -1000 From: Warren Togami User-Agent: Mozilla Thunderbird 0.6 (X11/20040519) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.84.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Fedora dovecot Testing Needed X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jun 2004 06:08:35 -0000 X-UID: 9375 Status: O http://people.redhat.com/wtogami/temp/dovecot/ dovecot-0.99.10.5 binary packages for FC1 and FC2 are available here. I need feedback from Fedora users with THESE ACTUAL BINARIES before pushing them to official updates. Note: This does not solve the SSL related crash issue. That requires a patch to OpenSSL or kernel. I am still trying to convince the maintainers to patch it. Warren Togami wtogami@redhat.com From discussion-lists@linnet.org Fri Jun 4 10:47:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 40BD8C000DD5; Fri, 4 Jun 2004 10:47:18 +0300 (EEST) Received: from integer.pobox.com (integer.pobox.com [208.58.1.194]) by talvi.dovecot.org (Postfix) with ESMTP id 5A6CEC000DCF for ; Fri, 4 Jun 2004 10:47:15 +0300 (EEST) Received: from colander (localhost [127.0.0.1]) by integer.pobox.com (Postfix) with ESMTP id 4577599736; Fri, 4 Jun 2004 03:39:52 -0400 (EDT) Received: from jester.pobox.com (jester.pobox.com [64.71.166.114]) by integer.pobox.com (Postfix) with ESMTP id 4A6FE996FB; Fri, 4 Jun 2004 03:39:27 -0400 (EDT) Received: from localhost.localdomain (localhost [127.0.0.1]) by jester.pobox.com (Postfix) with ESMTP id A957B78C; Fri, 4 Jun 2004 03:39:26 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.145.13]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jester.pobox.com (Postfix) with ESMTP id 872B478B; Fri, 4 Jun 2004 03:39:25 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BW9IR-0000Bx-G4; Fri, 04 Jun 2004 08:39:23 +0100 Date: Fri, 4 Jun 2004 08:39:23 +0100 From: Brian Candler To: Jure Pecar Subject: Re: [Dovecot] mta/mda config Message-ID: <20040604073923.GA730@uk.tiscali.com> References: <200406022213.36561.pegasus@nerv.eu.org> <200406040030.14340.pegasus@nerv.eu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200406040030.14340.pegasus@nerv.eu.org> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jun 2004 07:47:18 -0000 X-UID: 9376 Status: O On Fri, Jun 04, 2004 at 12:30:14AM +0200, Jure Pecar wrote: > Thanks, i'll take a closer look at vda. It's a part of postfix i've neglected > all this time... > > I guess there is no way yet to use similiar strings as dovecot takes for > mail_env, so this would cost me one additional sql lookup per mail delivery. > I guess i can live with that ... Does it really need an additional lookup? I use Exim rather than Postfix, but since you need a database lookup anyway to determine whether the E-mail address exists or not, you can at the same time fetch whatever additional fields you need. Regards, Brian. From warren@togami.com Fri Jun 4 13:46:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4B9B4C000DD7; Fri, 4 Jun 2004 13:46:30 +0300 (EEST) Received: from master.togami.com (master.togami.com [69.44.154.82]) by talvi.dovecot.org (Postfix) with ESMTP id F276FC000DD5 for ; Fri, 4 Jun 2004 13:46:27 +0300 (EEST) Received: from [172.31.16.101] (cpe-66-91-85-198.hawaii.rr.com [66.91.85.198]) by master.togami.com (Postfix) with ESMTP id D6CAD36801A for ; Fri, 4 Jun 2004 00:39:40 -1000 (HST) Message-ID: <40C0514D.8010407@togami.com> Date: Fri, 04 Jun 2004 00:39:09 -1000 From: Warren Togami User-Agent: Mozilla Thunderbird 0.6 (X11/20040519) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Fedora dovecot Testing Needed References: <40C01026.4090805@togami.com> In-Reply-To: <40C01026.4090805@togami.com> X-Enigmail-Version: 0.84.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jun 2004 10:46:30 -0000 X-UID: 9377 Status: O Warren Togami wrote: > http://people.redhat.com/wtogami/temp/dovecot/ > dovecot-0.99.10.5 binary packages for FC1 and FC2 are available here. I > need feedback from Fedora users with THESE ACTUAL BINARIES before > pushing them to official updates. > > Note: > This does not solve the SSL related crash issue. That requires a patch > to OpenSSL or kernel. I am still trying to convince the maintainers to > patch it. Just to verify, does this affect the openssl + kernel + dovecot combination in FC2 too? Warren Togami wtogami@redhat.com From fmulharin@th-record.com Fri Jun 4 17:28:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D5E35C000DD7; Fri, 4 Jun 2004 17:28:47 +0300 (EEST) Received: from mailexchange.ottaway.com (mailexchange.ottaway.com [204.27.188.1]) by talvi.dovecot.org (Postfix) with ESMTP id 25381C000DD5 for ; Fri, 4 Jun 2004 17:28:41 +0300 (EEST) Received: from mailserver.ottaway.com by mailexchange.ottaway.com; Fri, 04 Jun 2004 14:25:57 GMT Received: from thrmailserver.th-record.com ([172.20.73.5]) by mailserver.ottaway.com (Netscape Messaging Server 4.15) with SMTP id HYSFVN00.T1W for ; Fri, 4 Jun 2004 10:21:23 -0400 Received: from thrmailserver.th-record.com (loopback [127.0.0.1]) by thrmailserver.th-record.com (8.12.8/8.12.8) with ESMTP id i54EQkeS010846 for ; Fri, 4 Jun 2004 10:26:46 -0400 Received: (from apache@localhost) by thrmailserver.th-record.com (8.12.8/8.12.8/Submit) id i54EQkwA010844; Fri, 4 Jun 2004 10:26:46 -0400 Received: from 172.20.73.150 (SquirrelMail authenticated user fmulharin) by 172.20.73.5 with HTTP; Fri, 4 Jun 2004 10:26:46 -0400 (EDT) Message-ID: <35300.172.20.73.150.1086359206.squirrel@172.20.73.5> Date: Fri, 4 Jun 2004 10:26:46 -0400 (EDT) From: "Fred Mulharin" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.4.2-1 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] Corrupted Indexes X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jun 2004 14:28:48 -0000 X-UID: 9378 Status: O I am using the latest Stable version of Dovecot on a Redhat 9.0 box with the Squirrelmail Webmail Client, and my Indexes seem to be getting corrupted. Here is an example of what is showing in the Error Logs Error: Corrupted index data file /home/user/mail//.imap/releases/.imap.index.data: Missing location field for record 271 When they Try to access the corrupted folders thee get an IMAP Login error ERROR: Connection dropped by imap-server Query: THREAD REFERENCES ISO-8859-1 ALL thanks Fred -- Fred Mulharin Systems Technology Supervisor Times Herald-Record fmulharin@th-record.com ..We are the trusted leader in news and information for the communities we serve ..because we all live here From tss@iki.fi Fri Jun 4 18:47:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9D3BFC000DD7; Fri, 4 Jun 2004 18:47:56 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 83853C000DD5 for ; Fri, 4 Jun 2004 18:47:54 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 0CA7B1C1D0E2; Fri, 4 Jun 2004 18:40:37 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id F13C51C1D0E1; Fri, 4 Jun 2004 18:40:02 +0300 (EEST) In-Reply-To: <40C0514D.8010407@togami.com> References: <40C01026.4090805@togami.com> <40C0514D.8010407@togami.com> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-2-682215168" Message-Id: <6EC4AE62-B63D-11D8-8B92-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Fedora dovecot Testing Needed Date: Fri, 4 Jun 2004 18:39:57 +0300 To: Warren Togami X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.5 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jun 2004 15:47:56 -0000 X-UID: 9379 Status: O Content-Length: 1246 --Apple-Mail-2-682215168 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 4.6.2004, at 13:39, Warren Togami wrote: > Warren Togami wrote: >> http://people.redhat.com/wtogami/temp/dovecot/ >> dovecot-0.99.10.5 binary packages for FC1 and FC2 are available here. >> I need feedback from Fedora users with THESE ACTUAL BINARIES before >> pushing them to official updates. >> Note: >> This does not solve the SSL related crash issue. That requires a >> patch to OpenSSL or kernel. I am still trying to convince the >> maintainers to patch it. > > Just to verify, does this affect the openssl + kernel + dovecot > combination in FC2 too? Actually .10.5 contains the patch which doesn't make Dovecot crash anymore but just silently fail. --Apple-Mail-2-682215168 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFAwJfNyUhSUUBViskRAsXkAJ9kRA4BbOq2lfBLZFYsGdeJHT7uAwCgl9zZ THNM3zjoNOXsUh8dgtmKaok= =Txcu -----END PGP SIGNATURE----- --Apple-Mail-2-682215168-- From dovecot@steve.cotse.net Sun Jun 6 04:00:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C33B3C000DCB; Sun, 6 Jun 2004 04:00:41 +0300 (EEST) Received: from www.cotse.net (packetderm.com [68.166.125.227]) by talvi.dovecot.org (Postfix) with ESMTP id 87038C0007B4 for ; Sun, 6 Jun 2004 04:00:37 +0300 (EEST) Received: from localhost (localhost[127.0.0.1]) (authenticated bits=0) by www.cotse.net (5.7.4/5.7.4) with ESMTP id i560rCc9065157 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NO) for ; Sat, 5 Jun 2004 20:53:13 -0400 (EDT) (envelope-from dovecot@steve.cotse.net) Message-Id: <5.1.0.14.2.20040605204846.03bdb6c8@pop.cotse.com> X-Mailer: Cotse Date: Sat, 05 Jun 2004 20:53:10 -0400 To: dovecot@dovecot.org From: "Stephen K. Gielda" Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: [Dovecot] Feature request? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jun 2004 01:00:43 -0000 X-UID: 9380 Status: O I'd like to toss a feature request on the table for consideration. We currently use a different popd because of a feature that allows us to restrict pop access based upon an allowed users list. This is the only thing that keeps us from using the popd in dovecot currently. It's a simple text file of usernames that are allowed to use pop, if the name isn't in that list then pop access is denied. Is this something that can be considered for a future feature addition? Would anyone else also find this useful? /steve From dovecot@steve.cotse.net Sun Jun 6 04:11:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 129C4C000DCF; Sun, 6 Jun 2004 04:11:04 +0300 (EEST) Received: from www.cotse.net (packetderm.com [68.166.125.227]) by talvi.dovecot.org (Postfix) with ESMTP id 9A53CC0007B4 for ; Sun, 6 Jun 2004 04:11:01 +0300 (EEST) Received: from localhost (localhost[127.0.0.1]) (authenticated bits=0) by www.cotse.net (5.7.4/5.7.4) with ESMTP id i5613cc9065344 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NO) for ; Sat, 5 Jun 2004 21:03:38 -0400 (EDT) (envelope-from dovecot@steve.cotse.net) Message-Id: <5.1.0.14.2.20040605205503.03bf1870@pop.cotse.com> X-Mailer: Cotse Date: Sat, 05 Jun 2004 21:03:40 -0400 To: dovecot@dovecot.org From: "Stephen K. Gielda" Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: [Dovecot] Errors and periodic corruption using 99.10.5 release with mbox X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jun 2004 01:11:04 -0000 X-UID: 9381 Status: O Hi, I'm seeing these errors in our logs periodically: file istream.c: line 135 (i_stream_skip): assertion failed: (stream->v_size == 0 || stream->v_offset + count <= stream->v_size) Timeout leak: 0x8069328 Any idea on what may be causing these? System is freebsd, format is mbox. I'm also seeing periodic corruption of mailboxes. It's easily fixed because it's always a few stray lines of text left at the beginning of the mbox file above the From I'm currently trying to find out more about what actions may cause it. /steve From james@powweb.com Sun Jun 6 04:28:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 17931C000DD9; Sun, 6 Jun 2004 04:28:11 +0300 (EEST) Received: from nexus.powweb.com (unknown [66.152.96.141]) by talvi.dovecot.org (Postfix) with ESMTP id 8998FC000DD6 for ; Sun, 6 Jun 2004 04:28:08 +0300 (EEST) Received: from powweb.com (31.50.171.66.subscriber.vzavenue.net [66.171.50.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nexus.powweb.com (Postfix) with ESMTP id 4F69AB8E30; Sat, 5 Jun 2004 18:20:43 -0700 (PDT) Message-ID: <40C27168.5080502@powweb.com> Date: Sat, 05 Jun 2004 18:20:40 -0700 From: James Moser User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040409 X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Stephen K. Gielda" Subject: Re: [Dovecot] Errors and periodic corruption using 99.10.5 release with mbox References: <5.1.0.14.2.20040605205503.03bf1870@pop.cotse.com> In-Reply-To: <5.1.0.14.2.20040605205503.03bf1870@pop.cotse.com> Content-Type: multipart/mixed; boundary="------------060106050609000100090005" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jun 2004 01:28:11 -0000 X-UID: 9382 Status: O Content-Length: 2194 This is a multi-part message in MIME format. --------------060106050609000100090005 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit I've seen the same thing... in .4 we had blank lines at the top of the file, which always seemed to fix themselves... however with .5 you get an error stating the file is not in mbox format and it dies. There are usually three lines at the top, with only a few characters in the second line: (blank) somegarbage here (blank) From blah@doh.com ..... The error messages with .4 were: Jun 5 00:06:23 hostname pop3(username): Error indexing mbox file /var/mail/username: LF not found where expected But with .5, they simply state the file is not in mbox format and fails. Stephen K. Gielda wrote: > Hi, > > I'm seeing these errors in our logs periodically: > > file istream.c: line 135 (i_stream_skip): assertion failed: > (stream->v_size == 0 || stream->v_offset + count <= stream->v_size) > > Timeout leak: 0x8069328 > > Any idea on what may be causing these? System is freebsd, format is > mbox. > > I'm also seeing periodic corruption of mailboxes. It's easily fixed > because it's always a few stray lines of text left at the beginning of > the mbox file above the From I'm currently trying to find out more > about what actions may cause it. > > /steve -- James L Moser james@powweb.com PowWeb Hosting http://www.powweb.com /(bb|[^b]{2})/, that is the Question. mysql>SELECT * FROM user WHERE clue > 0; Empty set (0.03 sec) Health is merely the slowest possible rate at which one can die... Health nuts are going to feel stupid someday, lying in hospitals dying of nothing... --------------060106050609000100090005 Content-Type: text/x-vcard; charset=utf8; name="james.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="james.vcf" begin:vcard fn:James Moser n:Moser;James org:PowWeb INC;Internet Technology adr:;;1645 S La Cienaga #7;Los Angeles;CA;90035;US email;internet:james@powweb.com title:CTO x-mozilla-html:FALSE url:http://www.powweb.com version:2.1 end:vcard --------------060106050609000100090005-- From dovecot@steve.cotse.net Sun Jun 6 04:39:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8291FC000DD6; Sun, 6 Jun 2004 04:39:15 +0300 (EEST) Received: from www.cotse.net (packetderm.com [68.166.125.227]) by talvi.dovecot.org (Postfix) with ESMTP id 16272C000DCD for ; Sun, 6 Jun 2004 04:39:13 +0300 (EEST) Received: from localhost (localhost[127.0.0.1]) (authenticated bits=0) by www.cotse.net (5.7.4/5.7.4) with ESMTP id i561Vlc9065857 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NO); Sat, 5 Jun 2004 21:31:47 -0400 (EDT) (envelope-from dovecot@steve.cotse.net) Message-Id: <5.1.0.14.2.20040605213005.03bcc160@pop.cotse.com> X-Mailer: Cotse Date: Sat, 05 Jun 2004 21:31:49 -0400 To: James Moser From: "Stephen K. Gielda" Subject: Re: [Dovecot] Errors and periodic corruption using 99.10.5 release with mbox In-Reply-To: <40C27168.5080502@powweb.com> References: <5.1.0.14.2.20040605205503.03bf1870@pop.cotse.com> <5.1.0.14.2.20040605205503.03bf1870@pop.cotse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jun 2004 01:39:15 -0000 X-UID: 9383 Status: O Content-Length: 1719 At 09:20 PM 6/5/2004, James Moser wrote: >I've seen the same thing... in .4 we had blank lines at the top of the >file, which always seemed to fix themselves... however with .5 you get an >error stating the file is not in mbox format and it dies. There are >usually three lines at the top, with only a few characters in the second line: > >(blank) > somegarbage here >(blank) > From blah@doh.com ..... > >The error messages with .4 were: > >Jun 5 00:06:23 hostname pop3(username): Error indexing mbox file >/var/mail/username: LF not found where expected > >But with .5, they simply state the file is not in mbox format and fails. This is exactly what I've seen too in regards to the corruption (both .5 and .4). /steve >Stephen K. Gielda wrote: > >>Hi, >> >>I'm seeing these errors in our logs periodically: >> >>file istream.c: line 135 (i_stream_skip): assertion failed: >>(stream->v_size == 0 || stream->v_offset + count <= stream->v_size) >> >>Timeout leak: 0x8069328 >> >>Any idea on what may be causing these? System is freebsd, format is mbox. >> >>I'm also seeing periodic corruption of mailboxes. It's easily fixed >>because it's always a few stray lines of text left at the beginning of >>the mbox file above the From I'm currently trying to find out more about >>what actions may cause it. >> >>/steve > > >-- >James L Moser james@powweb.com >PowWeb Hosting http://www.powweb.com > >/(bb|[^b]{2})/, that is the Question. > >mysql>SELECT * FROM user WHERE clue > 0; >Empty set (0.03 sec) >Health is merely the slowest possible rate at which one can die... Health >nuts are going to feel stupid someday, lying in hospitals dying of nothing... > > > From dakota@menta.net Mon Jun 7 00:41:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BBC53C000D8E; Mon, 7 Jun 2004 00:41:16 +0300 (EEST) Received: from hard.microlabsoft.com (152.Red-80-32-137.pooles.rima-tde.net [80.32.137.152]) by talvi.dovecot.org (Postfix) with ESMTP id 59BBBC0007B4 for ; Mon, 7 Jun 2004 00:41:13 +0300 (EEST) Received: from localhost (linux.hard.microlaboft.com [127.0.0.1]) by hard.microlabsoft.com (Postfix/MJ-1.08) with ESMTP id B27A2176A52 for ; Sun, 6 Jun 2004 23:33:49 +0200 (CEST) Received: from hard.microlabsoft.com ([127.0.0.1]) by localhost (hard.microlabsoft.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20328-09 for ; Sun, 6 Jun 2004 23:33:48 +0200 (CEST) Received: from dakotapiv (dom14-84.menta.net [62.57.117.84]) by hard.microlabsoft.com (Postfix/MJ-1.08) with ESMTP id A497C176A4D for ; Sun, 6 Jun 2004 23:33:47 +0200 (CEST) Message-ID: <00db01c44c0d$f3e937d0$3200000a@dakotapiv> From: "Javi Pardo (DAKOTA)" To: Date: Sun, 6 Jun 2004 23:33:46 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Virus-Scanned: by amavisd-new at hard.microlabsoft.com 1.0 Subject: [Dovecot] dovecot and fc2 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jun 2004 21:41:16 -0000 X-UID: 9384 Status: O Content-Length: 1724 Hello I am migrate FC1 to FC2, in FC1 i use ipop3d, but in the migration to = FC2 this programa is obsolete, i decide migrate to dovecot, but i have = problems with the old mail i have the mail stored into /var/spool/mail/USER=20 and this error appears with examine the mail with Oulook Express: Jun 6 23:24:10 dakota pop3(dakota): open(/var/spool/mail/dakota.lock) = failed: Permission denied Jun 6 23:24:10 dakota pop3(dakota): file_lock_dotlock() failed with = mbox file /var/spool/mail/dakota: Permission denied Jun 6 23:24:10 dakota pop3(dakota): open(/var/spool/mail/dakota.lock) = failed: Permission denied Jun 6 23:24:10 dakota pop3(dakota): file_lock_dotlock() failed with = mbox file /var/spool/mail/dakota: Permission denied Jun 6 23:24:10 dakota pop3: I/O leak: 0x8050b08 (0) Jun 6 23:24:10 dakota pop3: I/O leak: 0x807c2b4 (1) Jun 6 23:24:10 dakota pop3: Timeout leak: 0x8062520 into dovecot.conf i have proved differents options ###default_mail_env =3D mbox:/var/spool/mail/%u:INDEX=3D/var/indexes/%u #mbox:~/mail/:INBOX=3D/var/spool/mail/%u #maildir:/var/spool/mail/%1u/%u/Maildir default_mail_env =3Dmbox:~/mail/imap/:INBOX=3D/var/spool/mail/%u with pine not have problem to read the mail, but i need pop3 and imap = for the external users i need help, i have 1 week without email :( regards and sorry for my english dakota@dakotabcn.net Administrador Servidor dakotabcn.net LINUX Registrered USER 93707 :) P.o Box 579 08913 Badalona (Barcelona) SPAIN firmas GnuPG en http://pgp.escomposlinux.org/ dakota@menta.net || dakota@escomposlinux.org - Equipos PIV 2.2 Ghz - 1.5 Gb RAM - W-XP Pro Dual Xeon 2.8Ghz - 1 Gb Ram - Linux Fedora Core 1 Firma para spammers: test@spamout.com.ar (no usar!!!) From discussion-lists@linnet.org Mon Jun 7 14:32:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 88BDFC000D8E; Mon, 7 Jun 2004 14:32:55 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id 9F900C0007B4 for ; Mon, 7 Jun 2004 14:32:50 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id A513D138F01; Mon, 7 Jun 2004 07:25:24 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.170.152]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id DC7BD138ECE; Mon, 7 Jun 2004 07:25:23 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BXIFn-00079K-U9; Mon, 07 Jun 2004 12:25:23 +0100 Date: Mon, 7 Jun 2004 12:25:23 +0100 From: Brian Candler To: "Javi Pardo (DAKOTA)" Subject: Re: [Dovecot] dovecot and fc2 Message-ID: <20040607112523.GB6548@uk.tiscali.com> References: <00db01c44c0d$f3e937d0$3200000a@dakotapiv> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <00db01c44c0d$f3e937d0$3200000a@dakotapiv> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jun 2004 11:32:56 -0000 X-UID: 9385 Status: O Content-Length: 1862 On Sun, Jun 06, 2004 at 11:33:46PM +0200, Javi Pardo (DAKOTA) wrote: > I am migrate FC1 to FC2, in FC1 i use ipop3d, but in the migration to FC2 this programa is obsolete, i decide migrate to dovecot, but i have problems with the old mail > i have the mail stored into /var/spool/mail/USER > and this error appears with examine the mail with Oulook Express: > Jun 6 23:24:10 dakota pop3(dakota): open(/var/spool/mail/dakota.lock) failed: Permission denied > Jun 6 23:24:10 dakota pop3(dakota): file_lock_dotlock() failed with mbox file /var/spool/mail/dakota: Permission denied Looks to me like Dovecot is trying to create dotlock files within /var/spool/mail, but doesn't have sufficient permissions to do so. There are usually two solutions to this: (1) chmod 1777 /var/spool/mail This allows any user to create files in /var/spool/mail, but the 'sticky' bit prevents a user from deleting another user's files. (2) give the imap/pop3 server sufficient rights to create files under /var/spool/mail. Typically this means it running as group "mail", and /var/spool/mail will be mode 775 (rwxrwxr-x) with group owner "mail" (3) don't use dotlocks at all; use flock or fcntl locking. I'm only here to learn a bit more about Dovecot and am not actually using it at the moment, so I don't know how you configure Dovecot for case (2). > with pine not have problem to read the mail Perhaps pine is running setgid mail? Try "ls -l /usr/bin/pine". If so, effectively pine is using solution (2) from above. Otherwise, perhaps pine is using solution (3). It's very important that all your applications on the system use the same locking method, otherwise data corruption will occur when the same mailbox is accessed twice concurrently. Personally I would migrate away from mbox to Maildir format; that gets rid of locking issues altogether. Regards, Brian. From joakim@verona.se Mon Jun 7 14:55:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0A0A4C000DCD; Mon, 7 Jun 2004 14:55:28 +0300 (EEST) Received: from naru.home (c-929672d5.242-1-64736c11.cust.bredbandsbolaget.se [213.114.150.146]) by talvi.dovecot.org (Postfix) with ESMTP id A5B67C000DCB for ; Mon, 7 Jun 2004 14:55:25 +0300 (EEST) Received: from verona.se (localhost.localdomain [127.0.0.1]) (authenticated bits=0) by naru.home (8.12.8/8.12.8) with ESMTP id i57Bm0gp008058 for ; Mon, 7 Jun 2004 13:48:01 +0200 Message-ID: <40C44795.8010603@verona.se> Date: Mon, 07 Jun 2004 12:46:45 +0200 From: Joakim Verona User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5b) Gecko/20030903 Thunderbird/0.2 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] dovecot newbie question about "invalid key" problem X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jun 2004 11:55:28 -0000 X-UID: 9386 Status: O Content-Length: 1057 Hello list, I've trying to migrate a small uw-imap server to dovecot. It works somewhat, and speed seems greatly improved, so thats great. However, I get an "invalid key/Internal Error" problem when connectiong to my INBOX with thunderbird. According to google this is a well known problem with mozilla mailers. Dovecot is not lenient with this bug in thunderbird. Is there some workaround for this? I noticed that its possible to turn on some client bug workarounds for outlook. Does the same go for mozilla? I tried one described remedy, which was to delete the account information and re-register the account. This didnt help. The problem seems to be only with INBOX, which I have mapped to /var/spool/mail/, not my other imap mailboxes. Im running gnus as well and the problem doesnt seem to occur there. My configuration: Redhat 9 dovecot 0.99.10.5 (from DAG repository RPM:s) Another question: Would it be possible to run uw-imap on one port, and dovecot on another? Or would that corrupt the mailstores? Regards, /Joakim From olive@pasteur.fr Mon Jun 7 16:46:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3AACFC000D8E; Mon, 7 Jun 2004 16:46:51 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id C290BC0007B4 for ; Mon, 7 Jun 2004 16:46:48 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 4393611474 for ; Mon, 7 Jun 2004 15:39:22 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 0506911473 for ; Mon, 7 Jun 2004 15:39:21 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id CC3BC3F641; Mon, 7 Jun 2004 15:39:21 +0200 (CEST) Date: Mon, 7 Jun 2004 15:39:21 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] Feature request? Message-ID: <20040607133921.GP45473@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <5.1.0.14.2.20040605204846.03bdb6c8@pop.cotse.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5.1.0.14.2.20040605204846.03bdb6c8@pop.cotse.com> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jun 2004 13:46:51 -0000 X-UID: 9387 Status: O * Stephen K. Gielda (20040605 20:53): > I'd like to toss a feature request on the table for consideration. We > currently use a different popd because of a feature that allows us to > restrict pop access based upon an allowed users list. This is the only > thing that keeps us from using the popd in dovecot currently. It's a > simple text file of usernames that are allowed to use pop, if the name > isn't in that list then pop access is denied. Is this something that can > be considered for a future feature addition? Would anyone else also find > this useful? Couldn't this be accomplished with PAM? -- olive From tallison@tacocat.net Tue Jun 8 03:13:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0B823C000D8E; Tue, 8 Jun 2004 03:13:49 +0300 (EEST) Received: from ms-smtp-03-eri0.ohiordc.rr.com (ms-smtp-03-smtplb.ohiordc.rr.com [65.24.5.137]) by talvi.dovecot.org (Postfix) with ESMTP id 5B4E5C0007B4 for ; Tue, 8 Jun 2004 03:13:46 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-03-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5806IVd006088 for ; Mon, 7 Jun 2004 20:06:18 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id B054021315D for ; Mon, 7 Jun 2004 20:06:17 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29706-07 for ; Mon, 7 Jun 2004 20:06:17 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id 47EDF21311C for ; Mon, 7 Jun 2004 20:06:17 -0400 (EDT) Message-ID: <40C502EE.3050404@tacocat.net> Date: Mon, 07 Jun 2004 20:06:06 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net Subject: [Dovecot] configuration X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2004 00:13:49 -0000 X-UID: 9388 Status: O I've noticed that there are some parameters mentioned in the docs that aren't identified therein (ie: login_process_per_use). Is there a more generic set of docs that can identify what each of the parameters and what they do, or at least something that will allow me a simple how to to avoid embarrasing situations. I supposed I should only settle for ssl based connections (imaps/pops) but I will be open to digest-md5 if I could. I'm also curious to see how I can use pgsql authentication with dovecot. I think this would be great to work with since I'm basing all my postfix settings around postgresql as well. But for now I'm not sure how to use postfix authentication with the file directories I'll need to use for the maildirs (and procmail!). From tallison@tacocat.net Tue Jun 8 04:05:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CBB0DC000D8E; Tue, 8 Jun 2004 04:05:45 +0300 (EEST) Received: from ms-smtp-02-eri0.ohiordc.rr.com (ms-smtp-02-smtplb.ohiordc.rr.com [65.24.5.136]) by talvi.dovecot.org (Postfix) with ESMTP id 3971AC0007B4 for ; Tue, 8 Jun 2004 04:05:42 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-02-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i580wEVG006603 for ; Mon, 7 Jun 2004 20:58:14 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id 2F0DA21315D for ; Mon, 7 Jun 2004 20:58:14 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30005-05 for ; Mon, 7 Jun 2004 20:58:13 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id BAA8921311C for ; Mon, 7 Jun 2004 20:58:13 -0400 (EDT) Message-ID: <40C50F25.5030700@tacocat.net> Date: Mon, 07 Jun 2004 20:58:13 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net Subject: [Dovecot] pgsql configuration X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2004 01:05:46 -0000 X-UID: 9389 Status: O Content-Length: 2512 from the pgsql configuration file: # Query to retrieve the password. # # The query should return one row, one column. If more than one row or column # is returned, authentication will automatically fail. # # Available substitutions: # %u = entire userid # %n = user part of user@domain # %d = domain part of user@domain # # Query to retrieve the user information. # # The query must return only one row. The columns to return are: # home - Home directory # mail - MAIL environment # system_user - System user name (for getting user's groups from /etc/group) # uid - System UID # gid - System GID # # Either home or mail is required. uid and gid are required. If more than one # row is returned or there's missing fields, login will automatically fail. # I'm a bit slow here, so if someone could just nod if I'm in the right direction: I want to support IMAP for at least two domains. Therefore I have to use the authentication string of: SELECT password FROM users WHERE userid = '%u' and the user must enter their entire email address for their login name. (I can do this!) I want some portion of these domains and users to be consistent with existing accounts in my /etc/passwd database. I don't expect to use passwd information for the username and password, but I want the information returned for joe@domain2.com to be for the user:joe in my passwd file and have his email in /home/joe/Maildir. Similarly, I want others (either fred@domain2.com or jane@domain1.com) to be (ideally) all driven under a non-local account name and login. For this second one, I'm thinking I need to do something like this in the user information query (this is mostly a guess): for joe@domain2.com (/etc/passwd) :: jane@domain1.com (no passwd) home - /home/joe --or-- can I use ~/ :: /var/spool/imap/%d/%n ?? mail - maildir:~/Maildir :: maildir:/var/spool/imap/%d/%n ?? system_user - joe :: (a guess -- adduser dovecot-imap to passwd maybe) uid - joes uid (1002) :: dovecot-imap uid (510) gid - joes gid (1001) :: dovecot-imap gid (510) with seperate group This is where I get fuzzy. If someone could help me figure out where I went wrong I would appreciate it. If I did this correctly, then in theory I could pass email delivery to procmail and have one set of rules (/etc/procmail) do some additional filtering for all the email under my domain1.com (spam filtering mostly) and perform a final delivery to maildirs in /var/spool/imap/doamin1.com/jane/ Or am I sleep deprived? From tallison@tacocat.net Tue Jun 8 13:38:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 50C5BC000D8E; Tue, 8 Jun 2004 13:38:13 +0300 (EEST) Received: from ms-smtp-01-eri0.ohiordc.rr.com (ms-smtp-01-smtplb.ohiordc.rr.com [65.24.5.135]) by talvi.dovecot.org (Postfix) with ESMTP id C0381C0007B4 for ; Tue, 8 Jun 2004 13:38:10 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-01-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i58AUfvJ026383 for ; Tue, 8 Jun 2004 06:30:42 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id 1AA8B21315D for ; Tue, 8 Jun 2004 06:30:41 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 31983-01 for ; Tue, 8 Jun 2004 06:30:40 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id 82D7E21311C for ; Tue, 8 Jun 2004 06:30:40 -0400 (EDT) Message-ID: <40C59550.6030901@tacocat.net> Date: Tue, 08 Jun 2004 06:30:40 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net Subject: [Dovecot] authentication configuration X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2004 10:38:13 -0000 X-UID: 9390 Status: O Content-Length: 1062 I've included the non-defaulted bits of my dovecot.conf file at the bottom of this email. As I understand my set-up it's using unix authentication methods (/etc/passwd via pam?). Considering disable_plaintext_auth and auth_mechanisms, what exactly is being passed? I was hoping to get auth_mechanism = digest-md5 but that's not working out very well right now. It seems I can only do plaintext authentication. I got stuck on the userdb/auth_passdb settings. Can someone give me an example of how to configure for md5-digest authentication? My current guess is: disable_plaintext_auth = yes auth = digest-md5 auth_mechanism = digest_md5 auth_passdb = /etc/mydigestfile How would I set this for pgsql? auth_passdb = /etc/dovecot-pgsql.conf ### non-default config settings. protocols = imap imaps disable_plaintext_auth = yes login = imap login_max_processes_count = 16 login = pop3 max_mail_processes = 512 default_mail_env = maildir:~/Maildir mailbox_check_interval = 1 auth = default auth_mechanisms = plain auth_passdb = pam auth_user = root From silviu@genesys.ro Tue Jun 8 12:04:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 423DEC000D8E; Tue, 8 Jun 2004 12:04:06 +0300 (EEST) Received: from mail.genesys.ro (mail.genesys.ro [193.230.224.5]) by talvi.dovecot.org (Postfix) with ESMTP id C75A5C0007B4 for ; Tue, 8 Jun 2004 12:04:03 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.genesys.ro (Postfix on SuSE Linux 8.0 (i386)) with ESMTP id BE03E2842BB for ; Tue, 8 Jun 2004 11:56:35 +0300 (EEST) Received: from mail.genesys.ro ([127.0.0.1]) by localhost (mail [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29378-01 for ; Tue, 8 Jun 2004 11:56:34 +0300 (EEST) Received: from [192.168.1.87] (unknown [192.168.1.87]) by mail.genesys.ro (Postfix on SuSE Linux 8.0 (i386)) with ESMTP id 3D9522842B8 for ; Tue, 8 Jun 2004 11:56:32 +0300 (EEST) Message-ID: <40C57F4F.8030508@genesys.ro> Date: Tue, 08 Jun 2004 11:56:47 +0300 From: Silviu Marin-Caea Organization: Genesys Software Romania [ http://www.genesys.ro ] User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a2) Gecko/20040607 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at genesys.ro X-Mailman-Approved-At: Tue, 08 Jun 2004 16:36:30 +0300 Subject: [Dovecot] Setting IMAP root as user's home directory. How? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2004 09:04:06 -0000 X-UID: 9391 Status: O I'm trying to set up dovecot to use /home/username as IMAP root, but it keeps creating /home/username/mail. I need /home/username in order to migrate with the least changes from uw-imap, just by copying .mailboxlist without the INBOX line in it into .subscriptions I tried each of these, one at a time: default_mail_env = mbox:~/:INBOX=/var/mail/%u default_mail_env = mbox:%h/:INBOX=/var/mail/%u default_mail_env = mbox:/home/%u/:INBOX=/var/mail/%u In each case, dovecot was stubornly creating /home/username/mail Please CC me, I'm not on the mailing list. Thanks. From dovecot@steve.cotse.net Tue Jun 8 22:13:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5B3B0C000DCC; Tue, 8 Jun 2004 22:13:30 +0300 (EEST) Received: from www.cotse.net (packetderm.com [68.166.125.227]) by talvi.dovecot.org (Postfix) with ESMTP id E5F9AC000D8E for ; Tue, 8 Jun 2004 22:13:21 +0300 (EEST) Received: from localhost (localhost[127.0.0.1]) (authenticated bits=0) by www.cotse.net (5.7.4/5.7.4) with ESMTP id i58J5dc9061029 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NO); Tue, 8 Jun 2004 15:05:39 -0400 (EDT) (envelope-from dovecot@steve.cotse.net) Message-Id: <5.1.0.14.2.20040608150351.0427f8a8@pop.cotse.com> X-Mailer: Cotse Date: Tue, 08 Jun 2004 15:05:41 -0400 To: Silviu Marin-Caea , dovecot@dovecot.org From: "Stephen K. Gielda" Subject: Re: [Dovecot] Setting IMAP root as user's home directory. How? In-Reply-To: <40C57F4F.8030508@genesys.ro> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2004 19:13:31 -0000 X-UID: 9392 Status: O At 04:56 AM 6/8/2004, Silviu Marin-Caea wrote: >I'm trying to set up dovecot to use /home/username as IMAP root, but it >keeps creating /home/username/mail. I need /home/username in order to >migrate with the least changes from uw-imap, just by copying .mailboxlist >without the INBOX line in it into .subscriptions > >I tried each of these, one at a time: > >default_mail_env = mbox:~/:INBOX=/var/mail/%u >default_mail_env = mbox:%h/:INBOX=/var/mail/%u >default_mail_env = mbox:/home/%u/:INBOX=/var/mail/%u > >In each case, dovecot was stubornly creating /home/username/mail > >Please CC me, I'm not on the mailing list. Thanks. Don't include the trailing /, ie. use this: default_mail_env = mbox:%h:INBOX=/var/mail/%u /steve From nina@gibbons.com Wed Jun 9 00:18:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D4EA8C000D8E; Wed, 9 Jun 2004 00:18:55 +0300 (EEST) Received: from flounder.gibbons.com (ip-66-80-7-162.dsl.sca.megapath.net [66.80.7.162]) by talvi.dovecot.org (Postfix) with ESMTP id 9E25CC0007B4 for ; Wed, 9 Jun 2004 00:18:52 +0300 (EEST) Received: from gibbons.com (ip-66-80-7-172.dsl.sca.megapath.net [66.80.7.172]) by flounder.gibbons.com (8.12.8/8.12.8) with ESMTP id i58LBLJX017172 for ; Tue, 8 Jun 2004 14:11:21 -0700 Message-ID: <40C62B7A.9060801@gibbons.com> Date: Tue, 08 Jun 2004 14:11:22 -0700 From: Nina Pham User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] mbox configuration X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: nina@gibbons.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2004 21:18:56 -0000 X-UID: 9393 Status: O Hi, I change the dovecot.conf default_mail_env = mbox:/Mail/IMAP/%u/:INBOX=/var/mail/%u After I did the change, I restart dovecot with the hope that folder that I create will be stored in /Mail/IMAP/%u. Then I use Mozzila as my email client and change the IMAP server directory to ~nina/IMAP/ which is the link to /Mail/IMAP/nina/. But then I can not create folder anymore from Mozzila, or view any thing other than inbox. I am still able to see message in inbox since I haven't change the location of inbox. Please help. Nina From dakota@menta.net Wed Jun 9 00:31:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3194EC000D8E; Wed, 9 Jun 2004 00:31:05 +0300 (EEST) Received: from hard.microlabsoft.com (152.Red-80-32-137.pooles.rima-tde.net [80.32.137.152]) by talvi.dovecot.org (Postfix) with ESMTP id 864C4C0007B4 for ; Wed, 9 Jun 2004 00:31:00 +0300 (EEST) Received: from localhost (linux.hard.microlaboft.com [127.0.0.1]) by hard.microlabsoft.com (Postfix/MJ-1.08) with ESMTP id 1ED6F176A52 for ; Tue, 8 Jun 2004 23:23:27 +0200 (CEST) Received: from hard.microlabsoft.com ([127.0.0.1]) by localhost (hard.microlabsoft.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 03572-07 for ; Tue, 8 Jun 2004 23:23:25 +0200 (CEST) Received: from dakotapiv (dom14-84.menta.net [62.57.117.84]) by hard.microlabsoft.com (Postfix/MJ-1.08) with ESMTP id 2DA7A176A4D for ; Tue, 8 Jun 2004 23:23:14 +0200 (CEST) Message-ID: <009001c44d9e$d109abe0$3200000a@dakotapiv> From: "Javi Pardo (DAKOTA)" To: Date: Tue, 8 Jun 2004 23:22:53 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Virus-Scanned: by amavisd-new at hard.microlabsoft.com 1.0 Subject: [Dovecot] failure to create lock X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2004 21:31:05 -0000 X-UID: 9394 Status: O Content-Length: 1402 Jun 8 23:14:09 dakota pop3(dakota): open(/var/spool/mail/dakota.lock) = failed: P ermission denied Jun 8 23:14:09 dakota pop3(dakota): file_lock_dotlock() failed with = mbox file / var/spool/mail/dakota: Permission denied Jun 8 23:14:09 dakota pop3(dakota): open(/var/spool/mail/dakota.lock) = failed: P ermission denied Jun 8 23:14:09 dakota pop3(dakota): file_lock_dotlock() failed with = mbox file / var/spool/mail/dakota: Permission denied Jun 8 23:14:09 dakota pop3: I/O leak: 0x8050b08 (0) Jun 8 23:14:09 dakota pop3: I/O leak: 0x807c2b4 (1) Jun 8 23:14:09 dakota pop3: Timeout leak: 0x8062520 id dovecot uid=3D97(dovecot) gid=3D12(mail) grupos=3D12(mail) [root@dakota root]# su dovecot bash-2.05b$ touch /var/spool/mail/dakota.lock bash-2.05b$ ls -la /var/spool/mail/dakota.lock -rw-r--r-- 1 dovecot mail 0 jun 8 23:16 /var/spool/mail/dakota.lock bash-2.05b$ i have probed all options ... dovecot no create the lock, the user = dovecot works, but no the program i need help for this problem.. :( regards dakota@dakotabcn.net Administrador Servidor dakotabcn.net LINUX Registrered USER 93707 :) P.o Box 579 08913 Badalona (Barcelona) SPAIN firmas GnuPG en http://pgp.escomposlinux.org/ dakota@menta.net || dakota@escomposlinux.org - Equipos PIV 2.2 Ghz - 1.5 Gb RAM - W-XP Pro Dual Xeon 2.8Ghz - 1 Gb Ram - Linux Fedora Core 1 Firma para spammers: test@spamout.com.ar (no usar!!!) From gmid-dovecot@m.gmane.org Tue Jun 8 20:07:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 54C70C000DCC; Tue, 8 Jun 2004 20:07:44 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id B5201C000D8E for ; Tue, 8 Jun 2004 20:07:40 +0300 (EEST) Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BXjxN-00032U-00 for ; Tue, 08 Jun 2004 19:00:13 +0200 Received: from grhrch-mh.physics.tamu.edu ([165.91.121.101]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 08 Jun 2004 19:00:13 +0200 Received: from chris-barnes by grhrch-mh.physics.tamu.edu with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 08 Jun 2004 19:00:13 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: "Chris Barnes" Date: Tue, 8 Jun 2004 11:23:54 -0500 Lines: 38 Message-ID: X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: grhrch-mh.physics.tamu.edu X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Sender: news X-Mailman-Approved-At: Wed, 09 Jun 2004 00:47:25 +0300 Subject: [Dovecot] folders via softlink X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2004 17:07:45 -0000 X-UID: 9395 Status: O Content-Length: 1642 I have recently switched from the UW imap server to dovecot and things seem to be working nicely. One thing that I can't seem to figure out however, is how to get dovecot to show folders that are a softlink. We run SpamAssassin. Users can use both their own personal spam folder as well as a shared spam folder. For messages that everyone would consider spam, the user can simply drag the message to the shared spam folder (messages that are only "spam to them" would go into their own spam folder). sa-learn is then run nightly for each user against both the shared spam folder and their personal spam folder. The shared spam folder is simply a file that everyone has rwx access to and is softlinked to ~/mail/SharedSpam. This used to work fine with UW imap because it didn't seem to care that this was a softlink. However, apparently Dovecot DOES care because when the user resets their folder list and the user selects the folder and chooses "show", they get the error message: Could not show "SharedSpam". The server refused to show it. The folder might already be shown. I have tried editing the .subscriptions file by hand and it does cause the folder to show up, but when the user trys to use it, they get the same error. Is there a setting somewhere I'm missing? -- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Chris Barnes AOL IM: CNBarnes chris-barnes@tamu.edu Yahoo IM: chrisnbarnes Computer Systems Manager ph: 979-845-7801 Department of Physics fax: 979-845-2590 Texas A&M University From nkadel@merl.com Wed Jun 9 01:10:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AD1D4C000D8E; Wed, 9 Jun 2004 01:10:56 +0300 (EEST) Received: from cambridge.merl.com (cambridge.merl.com [137.203.190.1]) by talvi.dovecot.org (Postfix) with ESMTP id 4841BC0007B4 for ; Wed, 9 Jun 2004 01:10:54 +0300 (EEST) Received: from tsumi.merl.com (tsumi.merl.com [137.203.134.9]) by cambridge.merl.com (8.12.10/8.12.10) with ESMTP id i58M3QW3003407; Tue, 8 Jun 2004 18:03:26 -0400 Received: from zeppo (zeppo.merl.com [137.203.140.178]) by tsumi.merl.com (8.12.8/8.12.8) with SMTP id i58M3PYf026100; Tue, 8 Jun 2004 18:03:25 -0400 Message-ID: <00b401c44da4$6c503e70$b28ccb89@zeppo> From: "Nico Kadel-Garcia" To: "Chris Barnes" References: Subject: Re: [Dovecot] folders via softlink Date: Tue, 8 Jun 2004 18:03:25 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Received-SPF: pass (cambridge.merl.com: domain of nkadel@merl.com designates 137.203.134.9 as permitted sender) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2004 22:10:56 -0000 X-UID: 9396 Status: O I would suggest that mail folders *should not* follow symlinks, for a host of security reasons and performance reasons such as the ability to crash IMAP clients that WU-imapd had when following those symlinks recursively and storing the incredibly deep directory tree locally. From G.Ohrner@post.rwth-aachen.de Wed Jun 9 11:21:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 58145C000DCB; Wed, 9 Jun 2004 11:21:47 +0300 (EEST) Received: from node1.UserCenter.de (node1.usercenter.de [62.112.158.193]) by talvi.dovecot.org (Postfix) with ESMTP id 2F322C000D8E for ; Wed, 9 Jun 2004 11:21:43 +0300 (EEST) Received: by node1.UserCenter.de (Postfix, from userid 106) id 623BC3441DF; Wed, 9 Jun 2004 10:13:54 +0200 (CEST) Received: from HornBurg.ohrnet.de (Gbbeb.g.pppool.de [80.185.187.235]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by node1.UserCenter.de (Postfix) with ESMTP id BE926344198 for ; Wed, 9 Jun 2004 10:13:52 +0200 (CEST) Received: from unseenuniversity.scheibenwelt ([192.168.42.20] ident=185d5d7b0cac1e193df9c7307df608a3) by HornBurg.ohrnet.de with esmtp (Exim 3.35 #1 (Debian)) id 1BXyCA-0000fC-00 for ; Wed, 09 Jun 2004 10:12:26 +0200 Received: from localhost ([127.0.0.1] ident=7af31581d93bd1cd96da179736af5898) by UnseenUniversity.Scheibenwelt with esmtp (Exim 3.36 #1 (Debian)) id 1BXyC9-0000pV-00 for ; Wed, 09 Jun 2004 10:12:25 +0200 From: Gunter Ohrner To: dovecot@dovecot.org Subject: Re: [Dovecot] folders via softlink Date: Wed, 9 Jun 2004 10:12:22 +0200 User-Agent: KMail/1.6.2 References: In-Reply-To: MIME-Version: 1.0 Content-Disposition: inline Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: quoted-printable Message-Id: <200406091012.23655@mail.CustomCDROM.de> X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on Blubb.wwwlan.net X-Spam-Level: X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 08:21:49 -0000 X-UID: 9397 Status: O Content-Length: 1313 =2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am Dienstag, 8. Juni 2004 18:23 schrieb Chris Barnes: > The shared spam folder is simply a file that everyone has rwx access to > and is softlinked to ~/mail/SharedSpam. This used to work fine with UW How about simply making a normal link instead? Untested by me, but I think= =20 it'd be worth a shot. Greetings, Gunter =2D --=20 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + http://aachen.uni-dsl.de/ - Der direkte Draht in's Hochschulnetz! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Over the centuries, mankind has tried many ways of combating the forces=20 of evil... prayer, fasting, good works and so on. Up until Doom, no one=20 seemed to have thought about the double-barrel shotgun. Eat leaden=20 death, demon... -- (Terry Pratchett, alt.fan.pratchett) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + PGP-verschl=FCsselte Mails bevorzugt! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAxsZm0ORHvREo8l8RAtaOAJ9lCHSArmLwuFrbEq3Ey5VAcBB0bACgjdXw T1LfXDSXMEyJKpBP60aY3sg=3D =3DA9ub =2D----END PGP SIGNATURE----- From nk@kajander.fi Wed Jun 9 11:34:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B7E32C000DCD; Wed, 9 Jun 2004 11:34:14 +0300 (EEST) Received: from sun.atki.net (unknown [193.209.91.150]) by talvi.dovecot.org (Postfix) with ESMTP id A6129C000DCC for ; Wed, 9 Jun 2004 11:34:12 +0300 (EEST) Received: from [193.208.185.75] (unknown [193.208.185.75]) by sun.atki.net (Postfix) with ESMTP id 131D981FD0 for ; Wed, 9 Jun 2004 11:26:44 +0300 (EEST) From: Niilo Kajander To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-9VFaqJRseLWdnLP77ouf" Message-Id: <1086769551.2209.16.camel@armada> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Wed, 09 Jun 2004 11:25:51 +0300 Subject: [Dovecot] Corrupted index file X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 08:34:14 -0000 X-UID: 9398 Status: O Content-Length: 1072 --=-9VFaqJRseLWdnLP77ouf Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, I've been wondering for a while if reiserfs is dovecot+maildir safe or not. I get this too often (and my imap session gets disconnected): Jun 9 08:42:32 sun imap(nk): Corrupted index file /home/nk/Maildir/.INBOX/.imap .index: UIDVALIDITY changed in uidlist This happens always when a new mail arrives in maildir. It's a Fedora Core 2 box running dovecot-0.99.10.4-4 (redhat) package. Could the reason for these corruptions be something else than reiserfs? I know there has been some problems with Fedora+dovecot but I haven't seen this one reported here. TIA, --=20 Niilo Kajander --=-9VFaqJRseLWdnLP77ouf Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAxsmOP4iiqlDEiVMRArshAJ4ifZnXjkwMmFNvng/e8AxGNYyULgCfWSCw tlkw5kRLhmW6vu9xWaDaQJo= =RdFE -----END PGP SIGNATURE----- --=-9VFaqJRseLWdnLP77ouf-- From djk@cybersource.com.au Wed Jun 9 12:04:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EB439C000DCB; Wed, 9 Jun 2004 12:04:17 +0300 (EEST) Received: from boombox.cyber.com.au (203-217-38-144.dyn.iinet.net.au [203.217.38.144]) by talvi.dovecot.org (Postfix) with ESMTP id 8A822C000D8E for ; Wed, 9 Jun 2004 12:04:14 +0300 (EEST) Received: from boombox.cyber.com.au (localhost [127.0.0.1]) by boombox.cyber.com.au (8.12.8/8.12.8) with ESMTP id i598uhAV014824; Wed, 9 Jun 2004 18:56:43 +1000 Received: (from djk@localhost) by boombox.cyber.com.au (8.12.8/8.12.8/Submit) id i598uhCo014822; Wed, 9 Jun 2004 18:56:43 +1000 From: David Keegel Message-Id: <200406090856.i598uhCo014822@boombox.cyber.com.au> Subject: Re: [Dovecot] Corrupted index file In-Reply-To: <1086769551.2209.16.camel@armada> from Niilo Kajander at "Jun 9, 2004 11:25:51 am" To: Niilo Kajander Date: Wed, 9 Jun 2004 18:56:43 +1000 (EST) X-Mailer: ELM [version 2.4ME+ PL66 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 09:04:18 -0000 X-UID: 9399 Status: O Content-Length: 1156 ] I've been wondering for a while if reiserfs is dovecot+maildir safe or ] not. I get this too often (and my imap session gets disconnected): ] ] Jun 9 08:42:32 sun imap(nk): Corrupted index file ] /home/nk/Maildir/.INBOX/.imap ] .index: UIDVALIDITY changed in uidlist ] ] This happens always when a new mail arrives in maildir. ] ] It's a Fedora Core 2 box running dovecot-0.99.10.4-4 (redhat) package. ] ] Could the reason for these corruptions be something else than reiserfs? ] I know there has been some problems with Fedora+dovecot but I haven't ] seen this one reported here. Sorry I can't directly answer your specific question. But... You may want to have a look at Warren Togami's message: http://www.dovecot.org/list/dovecot/2004-June/003627.html regarding a dovecot-0.99.10.5 rpm for FC2 If you haven't already seen information about version 0.99.10.5: http://dovecot.org/list/dovecot/2004-May/003495.html ___________________________________________________________________________ David Keegel http://www.cyber.com.au/users/djk/ Cybersource P/L: Linux/Unix Systems Administration Consulting/Contracting From nk@kajander.fi Wed Jun 9 12:23:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CBA3CC000DCB; Wed, 9 Jun 2004 12:23:50 +0300 (EEST) Received: from sun.atki.net (unknown [193.209.91.150]) by talvi.dovecot.org (Postfix) with ESMTP id D8E64C000D8E for ; Wed, 9 Jun 2004 12:23:48 +0300 (EEST) Received: from [193.208.185.75] (unknown [193.208.185.75]) by sun.atki.net (Postfix) with ESMTP id 507D781FD0; Wed, 9 Jun 2004 12:16:20 +0300 (EEST) Subject: Re: [Dovecot] Corrupted index file From: Niilo Kajander To: David Keegel In-Reply-To: <200406090856.i598uhCo014822@boombox.cyber.com.au> References: <200406090856.i598uhCo014822@boombox.cyber.com.au> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-VvZ8O425cdKCGNo+6aON" Message-Id: <1086772528.2209.19.camel@armada> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Wed, 09 Jun 2004 12:15:28 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 09:23:50 -0000 X-UID: 9400 Status: O --=-VvZ8O425cdKCGNo+6aON Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-09 at 11:56, David Keegel wrote: > Sorry I can't directly answer your specific question. But... >=20 > You may want to have a look at Warren Togami's message: > http://www.dovecot.org/list/dovecot/2004-June/003627.html > regarding a dovecot-0.99.10.5 rpm for FC2 Cheers, the new rpm seems to fix the problem. --=20 Niilo Kajander --=-VvZ8O425cdKCGNo+6aON Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAxtUvP4iiqlDEiVMRAiRVAJ439EJZ25Fiejd0tdLyGVhEbJLclgCeNsee kCBQPWtoa/GziBDL33VWi2c= =iJWb -----END PGP SIGNATURE----- --=-VvZ8O425cdKCGNo+6aON-- From nk@kajander.fi Wed Jun 9 12:52:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3FC0EC000DCC; Wed, 9 Jun 2004 12:52:06 +0300 (EEST) Received: from sun.atki.net (unknown [193.209.91.150]) by talvi.dovecot.org (Postfix) with ESMTP id 25A8BC000DCB for ; Wed, 9 Jun 2004 12:52:04 +0300 (EEST) Received: from [193.208.185.75] (unknown [193.208.185.75]) by sun.atki.net (Postfix) with ESMTP id 8521581FD4 for ; Wed, 9 Jun 2004 12:44:35 +0300 (EEST) Subject: Re: [Dovecot] Corrupted index file From: Niilo Kajander To: dovecot@dovecot.org In-Reply-To: <1086772528.2209.19.camel@armada> References: <200406090856.i598uhCo014822@boombox.cyber.com.au> <1086772528.2209.19.camel@armada> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-lrkxfuZr3538zWW8qhl8" Message-Id: <1086774223.2209.23.camel@armada> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Wed, 09 Jun 2004 12:43:43 +0300 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 09:52:06 -0000 X-UID: 9401 Status: O --=-lrkxfuZr3538zWW8qhl8 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-09 at 12:15, Niilo Kajander wrote: > On Wed, 2004-06-09 at 11:56, David Keegel wrote: > > Sorry I can't directly answer your specific question. But... > >=20 > > You may want to have a look at Warren Togami's message: > > http://www.dovecot.org/list/dovecot/2004-June/003627.html > > regarding a dovecot-0.99.10.5 rpm for FC2 >=20 > Cheers, the new rpm seems to fix the problem. I was a bit too optimistic, it didn't fix it )-: --=20 Niilo Kajander --=-lrkxfuZr3538zWW8qhl8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAxtvPP4iiqlDEiVMRAvoJAJ4oN6lP5qOIk/bPUtSZDEdywgk8XgCcCdpv tVUbUBq+u1sB9lEOJt/UhHM= =lglC -----END PGP SIGNATURE----- --=-lrkxfuZr3538zWW8qhl8-- From olive@pasteur.fr Wed Jun 9 14:44:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C911CC000DCC; Wed, 9 Jun 2004 14:44:33 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id 7AF4FC000D8E for ; Wed, 9 Jun 2004 14:44:31 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id B76AF11474; Wed, 9 Jun 2004 13:37:02 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 61DBB11473; Wed, 9 Jun 2004 13:37:02 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 527323F674; Wed, 9 Jun 2004 13:37:02 +0200 (CEST) Date: Wed, 9 Jun 2004 13:37:02 +0200 From: Olivier Tharan To: "Javi Pardo (DAKOTA)" Subject: Re: [Dovecot] failure to create lock Message-ID: <20040609113702.GE64455@mafate.sis.pasteur.fr> Mail-Followup-To: "Javi Pardo (DAKOTA)" , dovecot@dovecot.org References: <009001c44d9e$d109abe0$3200000a@dakotapiv> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <009001c44d9e$d109abe0$3200000a@dakotapiv> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 11:44:34 -0000 X-UID: 9402 Status: O * Javi Pardo (DAKOTA) (20040608 23:22): > Jun 8 23:14:09 dakota pop3(dakota): open(/var/spool/mail/dakota.lock) failed: P > ermission denied [ ... ] > i have probed all options ... dovecot no create the lock, the user dovecot works, but no the program As you can see from the log line, the pop3 process runs under the `dakota' identity, not the `dovecot' identity. The user dakota cannot create a lock file. What are the permissions of the /var/spool/mail directory? -- olive From dakota@menta.net Wed Jun 9 16:06:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D9EBBC000DCC; Wed, 9 Jun 2004 16:06:29 +0300 (EEST) Received: from microlab.es (152.Red-80-32-137.pooles.rima-tde.net [80.32.137.152]) by talvi.dovecot.org (Postfix) with ESMTP id 4B163C000D8E for ; Wed, 9 Jun 2004 16:06:24 +0300 (EEST) Received: from dakota ([192.168.1.5]) by microlab.es with Microsoft SMTPSVC(5.0.2195.5329); Wed, 9 Jun 2004 14:58:54 +0200 Message-ID: <006101c44e21$2fe5e7a0$0501a8c0@hard.microlabsoft.loc> From: "Javi" To: References: <009001c44d9e$d109abe0$3200000a@dakotapiv> <20040609113702.GE64455@mafate.sis.pasteur.fr> Subject: Re: [Dovecot] failure to create lock Date: Wed, 9 Jun 2004 14:56:31 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-OriginalArrivalTime: 09 Jun 2004 12:58:54.0636 (UTC) FILETIME=[850D86C0:01C44E21] X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 13:06:30 -0000 X-UID: 9403 Status: O Hello Thanks Olivier for your help the permissions of /var/spool/mail drwxrwxr-x 3 root mail 4096 jun 9 14:52 mail if change the third grup R-X to RWX works? is insecure this action? regards ----- Original Message ----- From: "Olivier Tharan" To: "Javi Pardo (DAKOTA)" Cc: Sent: Wednesday, June 09, 2004 1:37 PM Subject: Re: [Dovecot] failure to create lock > * Javi Pardo (DAKOTA) (20040608 23:22): > > Jun 8 23:14:09 dakota pop3(dakota): open(/var/spool/mail/dakota.lock) failed: P > > ermission denied > [ ... ] > > i have probed all options ... dovecot no create the lock, the user dovecot works, but no the program > > As you can see from the log line, the pop3 process runs under the > `dakota' identity, not the `dovecot' identity. The user dakota > cannot create a lock file. > > What are the permissions of the /var/spool/mail directory? > > -- > olive From olive@pasteur.fr Wed Jun 9 17:15:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 805C1C000DD0; Wed, 9 Jun 2004 17:15:17 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id E47C4C000DCC for ; Wed, 9 Jun 2004 17:15:14 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 3C83C11474; Wed, 9 Jun 2004 16:07:45 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id BFD7811473; Wed, 9 Jun 2004 16:07:44 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id DBA0B3F63F; Wed, 9 Jun 2004 16:07:43 +0200 (CEST) Date: Wed, 9 Jun 2004 16:07:43 +0200 From: Olivier Tharan To: Javi Subject: Re: [Dovecot] failure to create lock Message-ID: <20040609140743.GB2614@mafate.sis.pasteur.fr> Mail-Followup-To: Javi , dovecot@dovecot.org References: <009001c44d9e$d109abe0$3200000a@dakotapiv> <20040609113702.GE64455@mafate.sis.pasteur.fr> <006101c44e21$2fe5e7a0$0501a8c0@hard.microlabsoft.loc> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <006101c44e21$2fe5e7a0$0501a8c0@hard.microlabsoft.loc> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 14:15:17 -0000 X-UID: 9404 Status: O * Javi (20040609 14:56): > the permissions of /var/spool/mail > > drwxrwxr-x 3 root mail 4096 jun 9 14:52 mail > > if change the third grup R-X to RWX works? > is insecure this action? Yes, add also the sticky bit : chmod 1777 /var/spool/mail (or chmod +t) so the permissions appear as dwrxwrxwrt. -- olive From NDeBeer@mweb.com Wed Jun 9 18:47:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0B353C000DD0; Wed, 9 Jun 2004 18:47:18 +0300 (EEST) Received: from mwmx1.mweb.com (unknown [196.2.49.30]) by talvi.dovecot.org (Postfix) with ESMTP id C8C01C000DCF for ; Wed, 9 Jun 2004 18:47:14 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by mwmx1.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Wed, 09 Jun 2004 17:39:40 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Wed, 9 Jun 2004 17:39:40 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: scripting or translation in config Thread-Index: AcRON4RXSFZQmLoiEdiLfgABAgneNQAAGmPw From: "Nico De Beer - MWEB" To: Subject: [Dovecot] FW: scripting or translation in config X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 15:47:18 -0000 X-UID: 9405 Status: O > Hi Is there nay way to do translation on a char >=20 > Exp >=20 > tr ( "." ,"_",$domain) >=20 > so mysql statement can lokk some thing like this >=20 > select * uid,gid,home,.....from `tr ( "." ,"_",$domain)` where uid=3D'$= local' =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will a= ffect your Internet connection in the not too distant future, go to www.m= web.co.za/ten From NDeBeer@mweb.com Wed Jun 9 18:56:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D26D4C000DD3; Wed, 9 Jun 2004 18:56:31 +0300 (EEST) Received: from mwmx1.mweb.com (unknown [196.2.49.30]) by talvi.dovecot.org (Postfix) with ESMTP id 9A66DC000DCF for ; Wed, 9 Jun 2004 18:56:28 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by mwmx1.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Wed, 09 Jun 2004 17:48:58 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Wed, 9 Jun 2004 17:48:58 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: scripting or translation in config Thread-Index: AcRON4RXSFZQmLoiEdiLfgABAgneNQAAGmPwAABSIRA= From: "Nico De Beer - MWEB" To: Subject: [Dovecot] scripting or translation in config X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 15:56:32 -0000 X-UID: 9406 Status: O > Hi Is there nay way to do translation on a char >=20 > Exp >=20 > tr ( "." ,"_",$domain) >=20 > so mysql statement can lokk some thing like this >=20 > select * uid,gid,home,.....from `tr ( "." ,"_",$domain)` where = uid=3D'$local' =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will = affect your Internet connection in the not too distant future, go to = www.mweb.co.za/ten From davis@guydavis.ca Wed Jun 9 21:29:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 74217C000DCB; Wed, 9 Jun 2004 21:29:31 +0300 (EEST) Received: from ops119.int.ca.pason.com (hemlock.pason.com [208.38.1.1]) by talvi.dovecot.org (Postfix) with ESMTP id A0B67C0007B4 for ; Wed, 9 Jun 2004 21:29:28 +0300 (EEST) Received: from guydavis.ca (localhost.localdomain [127.0.0.1]) by ops119.int.ca.pason.com (8.11.6/8.11.6) with ESMTP id i59ILxd03738 for ; Wed, 9 Jun 2004 12:21:59 -0600 Message-ID: <40C75546.5070702@guydavis.ca> Date: Wed, 09 Jun 2004 12:21:58 -0600 From: Guy Davis User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040604 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Help: RH9 upgrade (mbox) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 18:29:31 -0000 X-UID: 9407 Status: O Content-Length: 1279 I just upgraded my RH9 server with UW-IMAP to Fedora Core 2 and after a short try with Cyrus, I'm hoping to get Dovecot configured. My problem is getting Dovecot to recognize my old mbox mail folders. It correctly shows the INBOX contents from the /var/spool/mail/davis mbox. However, I also had a bunch of mboxes such as: /home/davis/Mail/Sent /home/davis/Mail/Lists/list1 Reading the documentation, Dovecot indicates it will recognize mbox files within the ~/mail directory. So I moved my mail over giving: /home/davis/mail/Sent /home/davis/mail/Lists/list1 Unfortunately, after restarting Dovecot and restarting my IMAP client (Mozilla), I don't see anything other than my Inbox. If I create a file (/home/davis/mail/.subscriptions) with 'Sent' in it, and restart things then I can see Inbox and Sent. This would let me have a single directory with multiple mbox files in it. However, I'm not able to get Dovecot to recurse and let me see mboxes in subfolders such as: /home/davis/mail/Lists/list1 As well, when I first connect to Dovecot via Mozilla, I get an error saying: 'The current command did not succeed. The mail server replied "Invalid mask"'. What does this mean and how do I correct it? Any help would be greatly appreciated. Thanks, Guy From davis@guydavis.ca Wed Jun 9 22:28:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A5409C000DCB; Wed, 9 Jun 2004 22:28:15 +0300 (EEST) Received: from ops119.int.ca.pason.com (hemlock.pason.com [208.38.1.1]) by talvi.dovecot.org (Postfix) with ESMTP id 52973C0007B4 for ; Wed, 9 Jun 2004 22:28:12 +0300 (EEST) Received: from guydavis.ca (localhost.localdomain [127.0.0.1]) by ops119.int.ca.pason.com (8.11.6/8.11.6) with ESMTP id i59JKgd04217 for ; Wed, 9 Jun 2004 13:20:42 -0600 Message-ID: <40C7630A.801@guydavis.ca> Date: Wed, 09 Jun 2004 13:20:42 -0600 From: Guy Davis User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040604 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] Help: RH9 upgrade (mbox) References: <40C75546.5070702@guydavis.ca> In-Reply-To: <40C75546.5070702@guydavis.ca> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 19:28:15 -0000 X-UID: 9408 Status: O Guy Davis wrote: > This would let me have a single directory with multiple mbox files in > it. However, I'm not able to get Dovecot to recurse and let me see > mboxes in subfolders such as: > > /home/davis/mail/Lists/list1 Ok. I stumbled across a forum post that made it clear that the ~/Mail/.subscriptions is equivalent to my old ~/.mailboxlist file. Now that I've manually updated .subscriptions to match and moved my mail around, I can see all the directories and their mailboxes again. > As well, when I first connect to Dovecot via Mozilla, I get an error > saying: 'The current command did not succeed. The mail server replied > "Invalid mask"'. What does this mean and how do I correct it? I'm still getting this error every time Mozilla starts up. It's strange as my ~/Mail dir and all contents are readable only myself. The only other file is /var/spool/mail/davis. -rw-rw---- 1 davis mail 45382 Jun 9 13:09 davis Thanks, Guy From discussion-lists@linnet.org Wed Jun 9 22:41:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1B209C000DD2; Wed, 9 Jun 2004 22:41:37 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id C7DD5C000DD1 for ; Wed, 9 Jun 2004 22:41:34 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 87A651393B3; Wed, 9 Jun 2004 15:34:01 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.148.127]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 04BB01393A3; Wed, 9 Jun 2004 15:34:01 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BY8pj-0000CY-Rb; Wed, 09 Jun 2004 20:33:59 +0100 Date: Wed, 9 Jun 2004 20:33:59 +0100 From: Brian Candler To: Gunter Ohrner Subject: Re: [Dovecot] folders via softlink Message-ID: <20040609193359.GB742@uk.tiscali.com> References: <200406091012.23655@mail.CustomCDROM.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200406091012.23655@mail.CustomCDROM.de> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2004 19:41:37 -0000 X-UID: 9409 Status: O On Wed, Jun 09, 2004 at 10:12:22AM +0200, Gunter Ohrner wrote: > Am Dienstag, 8. Juni 2004 18:23 schrieb Chris Barnes: > > The shared spam folder is simply a file that everyone has rwx access to > > and is softlinked to ~/mail/SharedSpam. This used to work fine with UW > > How about simply making a normal link instead? Untested by me, but I think > it'd be worth a shot. Hardlinking a directory is a very, VERY dangerous thing to do. Please do not attempt it unless you enjoy using newfs and restoring your corrupted filesystem from a tape backup. Brian. From G.Ohrner@post.rwth-aachen.de Thu Jun 10 03:51:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6030FC000DCB; Thu, 10 Jun 2004 03:51:05 +0300 (EEST) Received: from node1.UserCenter.de (node1.usercenter.de [62.112.158.193]) by talvi.dovecot.org (Postfix) with ESMTP id A4D36C0007B4 for ; Thu, 10 Jun 2004 03:51:00 +0300 (EEST) Received: by node1.UserCenter.de (Postfix, from userid 106) id BA78C3441E0; Thu, 10 Jun 2004 02:43:30 +0200 (CEST) Received: from HornBurg.ohrnet.de (Gbbeb.g.pppool.de [80.185.187.235]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by node1.UserCenter.de (Postfix) with ESMTP id 181B43440D8 for ; Thu, 10 Jun 2004 02:43:30 +0200 (CEST) Received: from unseenuniversity.scheibenwelt ([192.168.42.20] ident=11f3fded40d1d76edf1eea8fe26f6c60) by HornBurg.ohrnet.de with esmtp (Exim 3.35 #1 (Debian)) id 1BYDf0-0002QO-00 for ; Thu, 10 Jun 2004 02:43:14 +0200 Received: from localhost ([127.0.0.1] ident=e134ca2369a2335600131d4c1c46f7f6) by UnseenUniversity.Scheibenwelt with esmtp (Exim 3.36 #1 (Debian)) id 1BYDez-000065-00 for ; Thu, 10 Jun 2004 02:43:13 +0200 From: Gunter Ohrner To: dovecot@dovecot.org Subject: Re: [Dovecot] folders via softlink Date: Thu, 10 Jun 2004 02:42:58 +0200 User-Agent: KMail/1.6.2 References: <200406091012.23655@mail.CustomCDROM.de> <20040609193359.GB742@uk.tiscali.com> In-Reply-To: <20040609193359.GB742@uk.tiscali.com> MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Boundary-02=_f66xA9rMwhBThth"; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200406100243.11797@mail.CustomCDROM.de> X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on Blubb.wwwlan.net X-Spam-Level: X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 00:51:05 -0000 X-UID: 9410 Status: O Content-Length: 1650 --Boundary-02=_f66xA9rMwhBThth Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Am Mittwoch, 9. Juni 2004 21:33 schrieb Brian Candler: > > > The shared spam folder is simply a file that everyone has rwx access = to > > How about simply making a normal link instead? Untested by me, but I > > think it'd be worth a shot. > Hardlinking a directory is a very, VERY dangerous thing to do. Yes, but hardlinking a file is nothing unusual. You should not do it with y= our=20 active lockfiles or postfix mailspool but for the spam collector file it=20 could work, provided that it can be properly locked this way. Greetings, Gunter =2D-=20 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + http://aachen.uni-dsl.de/ - Der direkte Draht in's Hochschulnetz! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 192) Strong international Encryption: Triple-ROT13 (Carsten Lechte) =20 --=20 http://www.iks-jena.de/mitarb/lutz/usenet/Fachbegriffe.der.Informatik.htm l#192 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + PGP-verschl=FCsselte Mails bevorzugt! + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --Boundary-02=_f66xA9rMwhBThth Content-Type: application/pgp-signature Content-Description: signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAx66f0ORHvREo8l8RArVMAJ9GS6od00Orona/nzOHNS0d6/uSywCfSW2y ELebFM3vbWAbRMjRaPkP2kA= =c7xh -----END PGP SIGNATURE----- --Boundary-02=_f66xA9rMwhBThth-- From discussion-lists@linnet.org Thu Jun 10 11:22:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 917AAC000DCE; Thu, 10 Jun 2004 11:22:27 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id 34990C000DCB for ; Thu, 10 Jun 2004 11:22:22 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 227C71393C0; Thu, 10 Jun 2004 04:14:50 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.148.127]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 915E5138E8A; Thu, 10 Jun 2004 04:14:49 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BYKi1-0000HR-Mb; Thu, 10 Jun 2004 09:14:49 +0100 Date: Thu, 10 Jun 2004 09:14:49 +0100 From: Brian Candler To: Gunter Ohrner Subject: Re: [Dovecot] folders via softlink Message-ID: <20040610081449.GG963@uk.tiscali.com> References: <200406091012.23655@mail.CustomCDROM.de> <20040609193359.GB742@uk.tiscali.com> <200406100243.11797@mail.CustomCDROM.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200406100243.11797@mail.CustomCDROM.de> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 08:22:28 -0000 X-UID: 9411 Status: O On Thu, Jun 10, 2004 at 02:42:58AM +0200, Gunter Ohrner wrote: > Am Mittwoch, 9. Juni 2004 21:33 schrieb Brian Candler: > > > > The shared spam folder is simply a file that everyone has rwx access to > > > How about simply making a normal link instead? Untested by me, but I > > > think it'd be worth a shot. > > Hardlinking a directory is a very, VERY dangerous thing to do. > > Yes, but hardlinking a file is nothing unusual. You should not do it with your > active lockfiles or postfix mailspool but for the spam collector file it > could work, provided that it can be properly locked this way. Sorry, that was me thinking "Maildir" again. I still can't believe that people are still using mbox in production systems :-) Hardlinking a file like this is clearly not going to work with dotlocks (because the two dotlocks will be created in different directories!), but then the same would have been true with symlinks. It will possibly work with fcntl/flock. Regards, Brian. From tallison@tacocat.net Thu Jun 10 13:31:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B0E95C000DCF; Thu, 10 Jun 2004 13:31:48 +0300 (EEST) Received: from ms-smtp-02-eri0.ohiordc.rr.com (ms-smtp-02-smtplb.ohiordc.rr.com [65.24.5.136]) by talvi.dovecot.org (Postfix) with ESMTP id 73FE9C000DCE for ; Thu, 10 Jun 2004 13:31:45 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-02-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5AAOBVG020635 for ; Thu, 10 Jun 2004 06:24:11 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id 46ADA21315D for ; Thu, 10 Jun 2004 06:24:11 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16629-04 for ; Thu, 10 Jun 2004 06:24:11 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id CC32E21311C for ; Thu, 10 Jun 2004 06:24:10 -0400 (EDT) Message-ID: <40C836C0.7070306@tacocat.net> Date: Thu, 10 Jun 2004 06:24:00 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net Subject: [Dovecot] bleah X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 10:31:49 -0000 X-UID: 9412 Status: O Content-Length: 2750 Not to be a bitch, but I've asked several times about some basic questions or examples to clarify the essentials for configuration. What do some of the parameters mean? Expecially the ones that are mentioned only one in a paragraph and no where else in the documentation or wiki. (ie: login_process_per_use) And there have been a few others as well. that I won't bother to repeat. But I've been sitting on this list for a while yet and have found that when it comes to configuration, none of the emails posted have been answered or addressed. The closest I got was a suggestion to use views instead of tables in postgres. But technically nothing was ever said about dovecot itself. So I have to ask. Is the sketchy documentation in the source file, the web page, wiki, and limited reponse on the mailing list a matter of "I haven't gotten around to it yet" or a deliberate move to promote the commercial support potential for Procontrol? I've run into this kind of environment twice before (cyrus and razor) and in the case of cyrus they just didn't believe in doing the documentation but suggested I write it myself. That may be the case there as well ("I haven't gotten around to it yet". That's OK but cyrus has the difficulty of no one still not providing any answers to how anything was done, configured, functioned, or why. So documentation was kind of a reverse-engineering project in itself. In the case of razor it's a mix of no time and they would rather support the company than the project. I went back and re-read the emails that I had posted earlier and am pretty sure that they weren't too stupid (ie: how do I test an imap connection), difficult, or obscure (well, maybe one). I'm just trying to find more information on how to correctly configure this server such that I can retain the concept of keeping security in mind. I'm trolling through the archives and there doesn't seem to be much discussion from anyone else. So maybe I'm really stupid and can't do authentication schemes. I'm sure by this point I've really pissed a few people off and for that I mostly apologize. I'm a little bent here myself. It just that I didn't plan on having to set up sniffit to track my IMAP traffic in order to verify that things were actually working securely. I'm going to plug along and do it myself and probably get something to work. I have plain_text authentication working now, but was really hoping to actually get something secure. At this point I really don't expect an answer, but do hope that after 1.0 is released there will be time available to get some documentation in order. IMHO the level of documentation that is available on a software project is critical to it's use. From chibi@gol.com Thu Jun 10 16:42:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 12BE7C000DCF; Thu, 10 Jun 2004 16:42:24 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id A2EEDC000DCE for ; Thu, 10 Jun 2004 16:42:18 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BYPhc-0002RN-00 for ; Thu, 10 Jun 2004 22:34:44 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 10 Jun 2004 22:34:44 +0900 From: Christian Balzer Message-Id: Subject: [Dovecot] "virgin" mail accounts X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 13:42:24 -0000 X-UID: 9413 Status: O Content-Length: 1554 Hello, I'm willing to swear that with the 0.99.10.4 Debian package in my rather extensive tests with mailbox format dovecot created not only any missing parental directories but also the INBOX file, but the later I can't prove/test now as I upgraded all respective boxes. However 0.99.10.5 will still create (if needed and possible) missing directories for mbox storage, just not an empty INBOX. But with maildir, it will not even do that, from a test with pop3 and imap login attempts to a freshly created account that had not received any mails yet: --- Jun 10 12:58:03 mb01 pop3-login: Login: test [203.216.5.92] Jun 10 12:58:03 mb01 pop3: I/O leak: 0x8050ce0 (0) Jun 10 12:58:03 mb01 pop3: I/O leak: 0x8084aa0 (1) Jun 10 12:58:49 mb01 imap-login: Login: ttest [203.216.5.92] Jun 10 12:58:50 mb01 last message repeated 3 times Jun 10 12:58:50 mb01 dovecot: child 9193 (imap) killed with signal 11 --- It died not very graceful in either case, esp. the later. Unless there are very RFC'ish and imperative reasons, I'd suggest that dovecot creates all missing bits if possible no matter what the storage method or pretends to have encountered an empty mbox file or maildir cur/new respectively. The rationale should be obvious, no frantic user calls about "My mail is not working" when the answer is "Duh, that's because you never ever received one yet". ;) Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From David.Sheryn@ballooning.org.uk Thu Jun 10 16:48:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 30E8BC000DDF; Thu, 10 Jun 2004 16:48:52 +0300 (EEST) Received: from wrebuild.city.ac.uk (wrebuild.city.ac.uk [138.40.205.195]) by talvi.dovecot.org (Postfix) with ESMTP id CC799C000DCF for ; Thu, 10 Jun 2004 16:48:49 +0300 (EEST) Received: from dhs (helo=localhost) by wrebuild.city.ac.uk with local-esmtp (Exim 3.34 #2) id 1BYPo5-000ArD-00; Thu, 10 Jun 2004 14:41:25 +0100 Date: Thu, 10 Jun 2004 14:41:25 +0100 (BST) From: David Sheryn X-Sender: dhs@wrebuild.city.ac.uk To: Christian Balzer Subject: Re: [Dovecot] "virgin" mail accounts In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Mailman-Approved-At: Thu, 10 Jun 2004 16:49:29 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 13:48:52 -0000 X-UID: 9414 Status: O Content-Length: 1035 On Thu, 10 Jun 2004, Christian Balzer wrote: > Subject: [Dovecot] "virgin" mail accounts [ ... ] > It died not very graceful in either case, esp. the later. > > Unless there are very RFC'ish and imperative reasons, I'd suggest > that dovecot creates all missing bits if possible no matter what the > storage method or pretends to have encountered an empty mbox file or > maildir cur/new respectively. > > The rationale should be obvious, no frantic user calls about "My mail is > not working" when the answer is "Duh, that's because you never ever > received one yet". ;) Whilst I agree with you, I try, in such circumstances, to arrange for the account creation system to send a "welcome" email so that there is already a message waiting for the user when they first log in :) I can then rely on Exim to do all the hard work of creating the INBOX properly AND the user gets a nice warm fuzzy feeling of having something there when they first log in to play... :) DHS -- David Sheryn -- david at ballooning dot org dot uk From chibi@gol.com Thu Jun 10 17:04:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 01502C000DEB; Thu, 10 Jun 2004 17:04:12 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id 6DE4AC000DEA for ; Thu, 10 Jun 2004 17:04:09 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BYQ2f-00034I-00; Thu, 10 Jun 2004 22:56:29 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: David Sheryn Subject: Re: [Dovecot] "virgin" mail accounts In-reply-to: References: Comments: In-reply-to David Sheryn message dated "Thu, 10 Jun 2004 14:41:25 +0100." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 10 Jun 2004 22:56:29 +0900 From: Christian Balzer Message-Id: Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 14:04:12 -0000 X-UID: 9415 Status: O Content-Length: 1867 David (DHS) wrote: >On Thu, 10 Jun 2004, Christian Balzer wrote: > >> Subject: [Dovecot] "virgin" mail accounts > >[ ... ] > >> It died not very graceful in either case, esp. the later. >> >> Unless there are very RFC'ish and imperative reasons, I'd suggest >> that dovecot creates all missing bits if possible no matter what the >> storage method or pretends to have encountered an empty mbox file or >> maildir cur/new respectively. >> >> The rationale should be obvious, no frantic user calls about "My mail is >> not working" when the answer is "Duh, that's because you never ever >> received one yet". ;) > >Whilst I agree with you, I try, in such circumstances, to arrange for the >account creation system to send a "welcome" email so that there is already >a message waiting for the user when they first log in :) I can then rely >on Exim to do all the hard work of creating the INBOX properly AND the >user gets a nice warm fuzzy feeling of having something there when they >first log in to play... :) > Oh yes. Same here, same supreme MTA. ;) Alas due to the various DB layers an account has to filter thru to actually become visible to the mail system an immediate welcome mail is not possible in our case so there is a quite happily and heavily hit window of opportunity for users to jump to false conclusions unfortunately. Another nice thing about "pretending to have an empty mailbox if I can't get to the bloody thing" is that it allows migrations or maintenances w/o users noticing (too) much. Though I guess I should nag the perdition author about that, our old, self written pop proxy did that when it couldn't reach the respective backend mailbox server. Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From cor@xs4all.nl Thu Jun 10 17:36:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 23DF2C000DD6; Thu, 10 Jun 2004 17:36:28 +0300 (EEST) Received: from smtp-out3.xs4all.nl (smtp-out3.xs4all.nl [194.109.24.13]) by talvi.dovecot.org (Postfix) with ESMTP id 0FA0BC000DCF for ; Thu, 10 Jun 2004 17:36:26 +0300 (EEST) Received: from xs1.xs4all.nl (xs1.xs4all.nl [194.109.21.2]) by smtp-out3.xs4all.nl (8.12.10/8.12.10) with ESMTP id i5AESsK3077176 for ; Thu, 10 Jun 2004 16:28:54 +0200 (CEST) Received: from xs1.xs4all.nl (cor@localhost.xs4all.nl [127.0.0.1]) by xs1.xs4all.nl (8.12.10/8.12.10) with ESMTP id i5AESsfr007292 for ; Thu, 10 Jun 2004 16:28:54 +0200 (CEST) (envelope-from cor@xs4all.nl) Received: (from cor@localhost) by xs1.xs4all.nl (8.12.10/8.12.9/Submit) id i5AESsVF007291 for dovecot@dovecot.org; Thu, 10 Jun 2004 16:28:54 +0200 (CEST) (envelope-from cor) Date: Thu, 10 Jun 2004 16:28:54 +0200 (CEST) From: Cor Bosman Message-Id: <200406101428.i5AESsVF007291@xs1.xs4all.nl> To: dovecot@dovecot.org Subject: [Dovecot] 2 problems X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 14:36:28 -0000 X-UID: 9416 Status: O Hi all, im testing dovecot as a replacement imap server and noticed 2 problems in 0.99.10.5. if you use dovecot/pop on an account who's quota is fully used, dovecot will ungracefully stop. This will only happen when the account is first accessed by dovecot (for instance, when offering IMAP to an existing userbase using dovecot, or when the index files have inadvertently been deleted). +OK dovecot ready. user scorpio +OK pass xxxxxxxx +OK Logged in. Connection closed by foreign host. The same goes for imap: * OK dovecot ready. . login "scorpio" "xxxxxxx" . OK Logged in. . select INBOX . NO Out of disk space This is a bit of a problem because one of the remedies of solving an out of disk space problem is deleting email, which you cant now. Cor From tss@iki.fi Thu Jun 10 17:56:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2A5E9C000DF7; Thu, 10 Jun 2004 17:56:26 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id E6FEBC000DF0 for ; Thu, 10 Jun 2004 17:56:23 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 056311C1D0E2; Thu, 10 Jun 2004 17:48:52 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 79D851C1D0E1; Thu, 10 Jun 2004 17:48:17 +0300 (EEST) Subject: Re: [Dovecot] bleah From: Timo Sirainen To: Tom Allison In-Reply-To: <40C836C0.7070306@tacocat.net> References: <40C836C0.7070306@tacocat.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-YC2PED+U5ylN0XrZqEQW" Message-Id: <1086878897.4162.84.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 17:48:17 +0300 X-Spam-Status: No, hits=-7.9 required=5.0 tests=AWL,BAYES_20,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 14:56:26 -0000 X-UID: 9417 Status: O Content-Length: 3062 --=-YC2PED+U5ylN0XrZqEQW Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-10 at 13:24, Tom Allison wrote: > Not to be a bitch, but I've asked several times about some basic=20 > questions or examples to clarify the essentials for configuration. I haven't gotten around to answering any questions here for a few days. It always takes some energy and time which I don't always have. > What do some of the parameters mean? Expecially the ones that are=20 > mentioned only one in a paragraph and no where else in the documentation=20 > or wiki. (ie: login_process_per_use) All configuration settings are explained in dovecot-example.conf, more or less well. If something isn't very clear there, I try to fix it if I can. The documentation in doc/ dir was written quite a long time ago and I haven't looked at it lately. login_process_per_user is one example which has changed to login_process_per_connection, which is explained shortly in the config file. > But I've been sitting on this list for a while yet and have found that=20 > when it comes to configuration, none of the emails posted have been=20 > answered or addressed. The closest I got was a suggestion to use views=20 > instead of tables in postgres. But technically nothing was ever said=20 > about dovecot itself. I'm not sure what mails you're referring to, all I see from you are the three mails two days ago which no-one replied to, and the ones last year which weren't configuration related. > So I have to ask. Is the sketchy documentation in the source file, the=20 > web page, wiki, and limited reponse on the mailing list a matter of "I=20 > haven't gotten around to it yet"=20 I've tried to keep the Dovecot-specific settings well explained in comments in config file. More generic documentation is yet to be written, although some is in Wiki and some in doc/ dir. Actually I would have written more documentation already, except that there's quite a lot of differences between 0.99.10 and upcoming 1.0. Writing the docs for 1.0 would be better, but it's not usable yet, so docs for it wouldn't really matter to anyone yet. I'm also still hoping someone else gets to write the documentation :) > or a deliberate move to promote the=20 > commercial support potential for Procontrol? I don't intend to do any blackmailing to get people to pay for Dovecot. Commercial support isn't really planned until v1.0 comes out, although we do already sell software development (Dovecot and non-Dovecot related). When 1.0 gets nearer, more Procontrol people should get more involved in Dovecot development and support (yes, free support in here too). For now however, it's just me. --=-YC2PED+U5ylN0XrZqEQW Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyHSwyUhSUUBViskRAgBsAJ4+jZsM4DBB3HpweN+pYSs1kmdqNwCeMT4I xKlVppA49+JeiLpPk0E67g0= =XVMe -----END PGP SIGNATURE----- --=-YC2PED+U5ylN0XrZqEQW-- From tss@iki.fi Thu Jun 10 18:00:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 36B30C000DF8; Thu, 10 Jun 2004 18:00:15 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 331F5C000DCF for ; Thu, 10 Jun 2004 18:00:13 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 18BF51C1D0E3; Thu, 10 Jun 2004 17:52:42 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E62DB1C1D0E2; Thu, 10 Jun 2004 17:52:07 +0300 (EEST) Subject: Re: [Dovecot] Feature request? From: Timo Sirainen To: "Stephen K. Gielda" In-Reply-To: <5.1.0.14.2.20040605204846.03bdb6c8@pop.cotse.com> References: <5.1.0.14.2.20040605204846.03bdb6c8@pop.cotse.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-8ANDYtiSw70NCpZ324zp" Message-Id: <1086879127.4162.88.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 17:52:07 +0300 X-Spam-Status: No, hits=-8.9 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 15:00:15 -0000 X-UID: 9418 Status: O Content-Length: 1222 --=-8ANDYtiSw70NCpZ324zp Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2004-06-06 at 03:53, Stephen K. Gielda wrote: > I'd like to toss a feature request on the table for consideration. We=20 > currently use a different popd because of a feature that allows us to=20 > restrict pop access based upon an allowed users list. This is the only=20 > thing that keeps us from using the popd in dovecot currently. It's a=20 > simple text file of usernames that are allowed to use pop, if the name=20 > isn't in that list then pop access is denied. Is this something that can= =20 > be considered for a future feature addition? Would anyone else also find= =20 > this useful? How about using PAM and pam_listfile module: auth required pam_listfile.so item=3Duser sense=3Dallow file=3D/et= c/pop3users onerr=3Dfail --=-8ANDYtiSw70NCpZ324zp Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyHWXyUhSUUBViskRAkFvAJ0RHm0EcjjzuudYOP19vzXgbvi89wCgm3K8 /OX6JDbF/QzpJtstkj4gVl8= =dz8n -----END PGP SIGNATURE----- --=-8ANDYtiSw70NCpZ324zp-- From tss@iki.fi Thu Jun 10 18:03:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B6C74C000DFD; Thu, 10 Jun 2004 18:03:20 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id C00EDC000DF9 for ; Thu, 10 Jun 2004 18:03:18 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id A67C31C1D0E2; Thu, 10 Jun 2004 17:55:47 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A1FDF1C1D0E1; Thu, 10 Jun 2004 17:55:13 +0300 (EEST) Subject: Re: [Dovecot] dovecot newbie question about "invalid key" problem From: Timo Sirainen To: Joakim Verona In-Reply-To: <40C44795.8010603@verona.se> References: <40C44795.8010603@verona.se> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-2qnaTLFkxxx795hN6+g4" Message-Id: <1086879312.4162.92.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 17:55:13 +0300 X-Spam-Status: No, hits=-9.3 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 15:03:20 -0000 X-UID: 9419 Status: O Content-Length: 1314 --=-2qnaTLFkxxx795hN6+g4 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-07 at 13:46, Joakim Verona wrote: > However, I get an "invalid key/Internal Error" problem when connectiong=20 > to my INBOX > with thunderbird. I don't know what "invalid key" means, but "Internal error" seems to come from Dovecot. Look for /var/log/mail.log (or something similiar) to see the real error message. > The problem seems to be only with INBOX, which I have mapped to=20 > /var/spool/mail/, > not my other imap mailboxes. I'm guessing the problem is that it can't create dotlock. See http://wiki.dovecot.org/moin.cgi/VarMailDotLock > Another question: Would it be possible to run uw-imap on one port, and=20 > dovecot on another? > Or would that corrupt the mailstores? It's possible, as long as the locking is set in same way. Both use at least dotlocking by default which is enough to prevent corruption. --=-2qnaTLFkxxx795hN6+g4 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyHZQyUhSUUBViskRApimAJ0etqQvVajTGvWcsYUyKniF5q0lWwCbBisN RKZsu74dEv6zC8nSfxfV49Q= =N4qI -----END PGP SIGNATURE----- --=-2qnaTLFkxxx795hN6+g4-- From tss@iki.fi Thu Jun 10 18:31:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4C00DC000DD7; Thu, 10 Jun 2004 18:31:26 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id E92D0C000DCF for ; Thu, 10 Jun 2004 18:31:23 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 7CA071C1D0E2; Thu, 10 Jun 2004 18:23:52 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1D2701C1D0E1; Thu, 10 Jun 2004 18:23:19 +0300 (EEST) Subject: Re: [Dovecot] pgsql configuration From: Timo Sirainen To: Tom Allison In-Reply-To: <40C50F25.5030700@tacocat.net> References: <40C50F25.5030700@tacocat.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-XmJ0o3i6FQvKPvPZseUP" Message-Id: <1086880998.4162.115.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 18:23:18 +0300 X-Spam-Status: No, hits=-8.9 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 15:31:26 -0000 X-UID: 9420 Status: O Content-Length: 4023 --=-XmJ0o3i6FQvKPvPZseUP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-08 at 03:58, Tom Allison wrote: > I want to support IMAP for at least two domains. > Therefore I have to use the authentication string of: > SELECT password FROM users WHERE userid =3D '%u' > and the user must enter their entire email address for their login name. > (I can do this!) Either that, or where userid =3D '%n' and domain =3D '%d' (might be useful to separate the domain for some statistical purposes or similiar later). > I want some portion of these domains and users to be consistent with=20 > existing accounts in my /etc/passwd database. I don't expect to use=20 > passwd information for the username and password, but I want the=20 > information returned for joe@domain2.com to be for the user:joe in my=20 > passwd file and have his email in /home/joe/Maildir. > Similarly, I want others (either fred@domain2.com or jane@domain1.com)=20 > to be (ideally) all driven under a non-local account name and login. With 0.99.10 you can't have more than one userdb/passdb, so all your users have to be in either postgresql or passwd file. If you need to have some syncing between them, you'll have to do it some other way (cron jobs or something). Or, you could take last 1.0-test release, but use imap binary from 0.99.10 as it's buggy in 1.0-tests, and use something like: auth postgres { mechanisms =3D plain userdb =3D pgsql /etc/dovecot-pgsql.conf passdb =3D pgsql /etc/dovecot-pgsql.conf } auth pam { mechanisms =3D plain userdb =3D passwd passdb =3D pam } In that case Dovecot first tries postgresql, if it fails it tries PAM. Users in passwd would then login without the @domain part. > For this second one, I'm thinking I need to do something like this in=20 > the user information query (this is mostly a guess): > for joe@domain2.com (/etc/passwd) :: jane@domain1.com (no passwd) > home - /home/joe --or-- can I use ~/ :: /var/spool/imap/%d/%n ?? When you're defining home directory itself, ~/ is a bit ambiguous :) /var/spool/imap/%d/%n is fine, the mail would then be stored in /var/spool/imap/%d/%n/Maildir. Except %d / %n doesn't work in actually inserted postgresql rows, so you'd have to store /var/spool/imap/domain.com/user there directly. Or create a view which returns the home directory based on username/domain. > mail - maildir:~/Maildir :: maildir:/var/spool/imap/%d/%n ?? mail isn't required to be set, and probably shouldn't if you don't need it. It's mostly useful for overriding the default_mail_env setting in configuration file, ie. if someone has their mails elsewhere than ~/Maildir (assuming default_mail_env =3D maildir:~/Maildir). > system_user - joe :: (a guess -- adduser dovecot-imap to passwd maybe) It's used only to get groups for the user in /etc/group file. You probably don't need to set it at all. > uid - joes uid (1002) :: dovecot-imap uid (510) > gid - joes gid (1001) :: dovecot-imap gid (510) with seperate group Depends on what "dovecot-imap" is. It should be different from what you've set in login_user. For example create a new system user for "domain.com" and use it's uid/gid for all virtual users in that domain. > If I did this correctly, then in theory I could pass email delivery to=20 > procmail and have one set of rules (/etc/procmail) do some additional=20 > filtering for all the email under my domain1.com (spam filtering mostly)=20 > and perform a final delivery to maildirs in=20 > /var/spool/imap/doamin1.com/jane/ I don't know how global procmail config works, but I guess you could use ~/Maildir/.Spam/ or similiar in there. --=-XmJ0o3i6FQvKPvPZseUP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyHzmyUhSUUBViskRAtYQAJwIGDIFKsGvU8nswq/lODA99U2k7wCgoa1y IIMLJbrb3STHKJsBIWfgPCY= =1EV4 -----END PGP SIGNATURE----- --=-XmJ0o3i6FQvKPvPZseUP-- From tss@iki.fi Thu Jun 10 18:38:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CA5C6C000DD8; Thu, 10 Jun 2004 18:38:02 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id CE175C000DCF for ; Thu, 10 Jun 2004 18:38:00 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id A5ED31C1D0E2; Thu, 10 Jun 2004 18:30:29 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B5DBB1C1D0E1; Thu, 10 Jun 2004 18:29:55 +0300 (EEST) Subject: Re: [Dovecot] configuration From: Timo Sirainen To: Tom Allison In-Reply-To: <40C502EE.3050404@tacocat.net> References: <40C502EE.3050404@tacocat.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-1dtlPQ0e35t5XG9jRX9q" Message-Id: <1086881395.4162.122.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 18:29:55 +0300 X-Spam-Status: No, hits=-9.3 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 15:38:02 -0000 X-UID: 9421 Status: O Content-Length: 1348 --=-1dtlPQ0e35t5XG9jRX9q Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-08 at 03:06, Tom Allison wrote: > I supposed I should only settle for ssl based connections (imaps/pops)=20 > but I will be open to digest-md5 if I could. If SSL is already enabled, the only gain from DIGEST-MD5 or CRAM-MD5 is that server never actually sees the plaintext password. So it's mostly useful if you use the same password in multiple places and don't really trust your server. > I'm also curious to see how I can use pgsql authentication with dovecot.=20 I guess you already saw http://wiki.dovecot.org/moin.cgi/DovecotPostgresql ? That explains how I configured them. > I think this would be great to work with since I'm basing all my=20 > postfix settings around postgresql as well. But for now I'm not sure=20 > how to use postfix authentication with the file directories I'll need to=20 > use for the maildirs (and procmail!). File directories? --=-1dtlPQ0e35t5XG9jRX9q Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyH5zyUhSUUBViskRAnZDAJwKprTSOF/CLPH2GjqaBnZ38EGfxgCff7yt sg8xJV1GkL6WDQwSaokekH0= =D5+R -----END PGP SIGNATURE----- --=-1dtlPQ0e35t5XG9jRX9q-- From NDeBeer@mweb.com Thu Jun 10 18:42:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 73AE0C000DF2; Thu, 10 Jun 2004 18:42:34 +0300 (EEST) Received: from mwmx1.mweb.com (unknown [196.2.49.30]) by talvi.dovecot.org (Postfix) with ESMTP id E3784C000DDE for ; Thu, 10 Jun 2004 18:42:30 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by mwmx1.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Thu, 10 Jun 2004 17:34:57 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Thu, 10 Jun 2004 17:34:57 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Scripting Thread-Index: AcRPAHtJiTD9Orq3EdiLfgABAgneNQ== From: "Nico De Beer - MWEB" To: Subject: [Dovecot] Scripting X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 15:42:34 -0000 X-UID: 9422 Status: O You metioned previosely that one can do character translation with postgr= ess with mysql you can also do so but can use it as the table name Is there anyway to write something outside dovecot to do the lookup in sa= y c++ =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will a= ffect your Internet connection in the not too distant future, go to www.m= web.co.za/ten From tss@iki.fi Thu Jun 10 18:45:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 98AD0C000E00; Thu, 10 Jun 2004 18:45:35 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 97340C000DFA for ; Thu, 10 Jun 2004 18:45:33 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 6D5F41C1D0E2; Thu, 10 Jun 2004 18:38:02 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 48DF71C1D0E1; Thu, 10 Jun 2004 18:37:28 +0300 (EEST) Subject: Re: [Dovecot] authentication configuration From: Timo Sirainen To: Tom Allison In-Reply-To: <40C59550.6030901@tacocat.net> References: <40C59550.6030901@tacocat.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ZB3kh7rlIjApU4e9vbUN" Message-Id: <1086881847.4162.131.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 18:37:27 +0300 X-Spam-Status: No, hits=-8.9 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 15:45:35 -0000 X-UID: 9423 Status: O Content-Length: 1515 --=-ZB3kh7rlIjApU4e9vbUN Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-08 at 13:30, Tom Allison wrote: > As I understand my set-up it's using unix authentication methods=20 > (/etc/passwd via pam?). >=20 > Considering disable_plaintext_auth and auth_mechanisms, what exactly is=20 > being passed? I was hoping to get > auth_mechanism =3D digest-md5 > but that's not working out very well right now. It seems I can only do=20 > plaintext authentication. DIGEST-MD5 requires specially generated password field (see last line in doc/auth.txt, realm means pretty much same as domain). PAM supports only plaintext authentication, so you'll need to use something else (passwd-file or postgresql). > My current guess is: > disable_plaintext_auth =3D yes > auth =3D digest-md5 > auth_mechanism =3D digest_md5 > auth_passdb =3D /etc/mydigestfile >=20 > How would I set this for pgsql? auth_passdb =3D /etc/dovecot-pgsql.conf auth_passdb requires as first parameter the database type name. eg.: auth_passdb =3D passwd-file /etc/mydigestfile auth_passdb =3D pgsql /etc/dovecot-pgsql.conf Same goes for userdb. --=-ZB3kh7rlIjApU4e9vbUN Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyIA3yUhSUUBViskRApyBAKCKBscHC8uyP3CPND9N+siieUcnEwCfZXlI coPakthGPnomEqhs09dOgXM= =Xn4x -----END PGP SIGNATURE----- --=-ZB3kh7rlIjApU4e9vbUN-- From tss@iki.fi Thu Jun 10 18:49:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 162A0C000DE4; Thu, 10 Jun 2004 18:49:51 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 2FF01C000DDB for ; Thu, 10 Jun 2004 18:49:49 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 019B81C1D0E2; Thu, 10 Jun 2004 18:42:18 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 86CCF1C1D0E1; Thu, 10 Jun 2004 18:41:41 +0300 (EEST) Subject: Re: [Dovecot] mbox configuration From: Timo Sirainen To: nina@gibbons.com In-Reply-To: <40C62B7A.9060801@gibbons.com> References: <40C62B7A.9060801@gibbons.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-8ZZR5lqb8fSqnBcv0wd4" Message-Id: <1086882101.4162.136.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 18:41:41 +0300 X-Spam-Status: No, hits=-9.0 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, RCVD_IN_ORBS,REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 15:49:51 -0000 X-UID: 9424 Status: O Content-Length: 1185 --=-8ZZR5lqb8fSqnBcv0wd4 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-09 at 00:11, Nina Pham wrote: > Hi, I change the dovecot.conf > default_mail_env =3D mbox:/Mail/IMAP/%u/:INBOX=3D/var/mail/%u > After I did the change, I restart dovecot with the hope that folder that=20 > I create will be stored in /Mail/IMAP/%u. Then I use Mozzila as my email=20 > client and change the IMAP server directory to ~nina/IMAP/ which is the=20 > link to /Mail/IMAP/nina/. With Dovecot you can't by default specify the mail directory from IMAP client itself. You could do this by setting mail_full_filesystem_access =3D yes, but that's probably not what you want. Since you already set the directory in server side, all you have to do in Mozilla is simply clear the IMAP server directory. --=-8ZZR5lqb8fSqnBcv0wd4 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyIE1yUhSUUBViskRAg5vAJ9z7vVJ94iXwpRPEITW2zNJqqcGuwCdHL2D IPGtTi8QcAhWUeyMc/VxTuM= =ClYb -----END PGP SIGNATURE----- --=-8ZZR5lqb8fSqnBcv0wd4-- From tss@iki.fi Thu Jun 10 18:54:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1BB1DC000DE7; Thu, 10 Jun 2004 18:54:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 2C947C000DE4 for ; Thu, 10 Jun 2004 18:54:50 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id F1AD01C1D0E2; Thu, 10 Jun 2004 18:47:18 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 082801C1D0E1; Thu, 10 Jun 2004 18:46:45 +0300 (EEST) Subject: Re: [Dovecot] folders via softlink From: Timo Sirainen To: Chris Barnes In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-e2djJTiFgEnUbO8Qh5Yh" Message-Id: <1086882404.4162.142.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 18:46:44 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 15:54:52 -0000 X-UID: 9425 Status: O Content-Length: 1371 --=-e2djJTiFgEnUbO8Qh5Yh Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-08 at 19:23, Chris Barnes wrote: > I have recently switched from the UW imap server to dovecot and things > seem to be working nicely. One thing that I can't seem to figure out > however, is how to get dovecot to show folders that are a softlink. Dovecot currently follows symlinks, so I think your problem isn't symlinks themselves but something else. > Could not show "SharedSpam". The server refused to show it. The > folder might already be shown. What do log files say? Actually I think I know. Dovecot tries to use shared index files but the first user who created them owns them. If it even had the permission to create the .imap directory. Shared access to indexes isn't really recommended with 0.99.10, so you'd probably want something like: default_mail_env =3D mbox:~/mail:INBOX=3D/var/mail/%u:INDEX=3D/home/%u/mail= /.indexes/ (~ doesn't work after INDEX=3D I think) --=-e2djJTiFgEnUbO8Qh5Yh Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyIJkyUhSUUBViskRAu9sAKCjTApP9iWyfLnBmiHC48/c/6bXLQCdHJSL nhilKM0pFCzld7kWTu4GHNU= =uzYP -----END PGP SIGNATURE----- --=-e2djJTiFgEnUbO8Qh5Yh-- From tss@iki.fi Thu Jun 10 18:57:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F1649C000E00; Thu, 10 Jun 2004 18:57:05 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id D211EC000DE4 for ; Thu, 10 Jun 2004 18:57:02 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id A8CEA1C1D0E3; Thu, 10 Jun 2004 18:49:31 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CFB911C1D0E1; Thu, 10 Jun 2004 18:48:57 +0300 (EEST) Subject: Re: [Dovecot] Corrupted index file From: Timo Sirainen To: Niilo Kajander In-Reply-To: <1086769551.2209.16.camel@armada> References: <1086769551.2209.16.camel@armada> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Bi1cGbaFCW/VbZSWXpYD" Message-Id: <1086882537.4162.145.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 18:48:57 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 15:57:06 -0000 X-UID: 9426 Status: O Content-Length: 1050 --=-Bi1cGbaFCW/VbZSWXpYD Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-09 at 11:25, Niilo Kajander wrote: > I've been wondering for a while if reiserfs is dovecot+maildir safe or > not. I get this too often (and my imap session gets disconnected): >=20 > Jun 9 08:42:32 sun imap(nk): Corrupted index file > /home/nk/Maildir/.INBOX/.imap > .index: UIDVALIDITY changed in uidlist >=20 > This happens always when a new mail arrives in maildir. Is something else modifying the maildir? Does the UIDVALIDITY actually change in dovecot-uidlist file? It's the second number in first line. I can't think of why it would happen only with reiserfs. --=-Bi1cGbaFCW/VbZSWXpYD Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyILpyUhSUUBViskRAliGAJsHc7l4MTHbeHzUDL2VWxRF/bBA1gCffYSl tsGTxGYKPHE2gX+vn8LdmxA= =8mS0 -----END PGP SIGNATURE----- --=-Bi1cGbaFCW/VbZSWXpYD-- From tss@iki.fi Thu Jun 10 19:05:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A2A9BC000DD0; Thu, 10 Jun 2004 19:05:44 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B2FF5C000DCD for ; Thu, 10 Jun 2004 19:05:42 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 85EFC1C1D0E3; Thu, 10 Jun 2004 18:58:11 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 979921C1D0E1; Thu, 10 Jun 2004 18:57:37 +0300 (EEST) Subject: Re: [Dovecot] "virgin" mail accounts From: Timo Sirainen To: Christian Balzer In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-RQQnyKEvcfKpN2kLyb4a" Message-Id: <1086883057.4162.149.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 18:57:37 +0300 X-Spam-Status: No, hits=-9.3 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 16:05:44 -0000 X-UID: 9427 Status: O Content-Length: 1349 --=-RQQnyKEvcfKpN2kLyb4a Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-10 at 16:34, Christian Balzer wrote: > I'm willing to swear that with the 0.99.10.4 Debian package in my=20 > rather extensive tests with mailbox format dovecot created not only > any missing parental directories but also the INBOX file, but the=20 > later I can't prove/test now as I upgraded all respective boxes. >=20 > However 0.99.10.5 will still create (if needed and possible) missing=20 > directories for mbox storage, just not an empty INBOX. Have you set default_mail_env, so that Dovecot actually know where the INBOX is supposed to be in? If Dovecot has to do guessing it doesn't guess you want to use /var/mail/user if it doesn't exist. > But with maildir, it will not even do that, from a test with pop3 > and imap login attempts to a freshly created account that had not=20 > received any mails yet: http://dovecot.org/patches/maildir-autocreate.patch --=-RQQnyKEvcfKpN2kLyb4a Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyITxyUhSUUBViskRAgQpAKCads5L9HUEkakI7pOJhDYgTGoxVgCfdsPM gnqQRgoVS6TMmPRFHVtnE0A= =AYds -----END PGP SIGNATURE----- --=-RQQnyKEvcfKpN2kLyb4a-- From tss@iki.fi Thu Jun 10 19:12:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 87AC4C000DDC; Thu, 10 Jun 2004 19:12:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 974FFC000DD4 for ; Thu, 10 Jun 2004 19:12:50 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 627131C1D0E3; Thu, 10 Jun 2004 19:05:19 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3791C1C1D0E1; Thu, 10 Jun 2004 19:04:46 +0300 (EEST) Subject: Re: [Dovecot] 2 problems From: Timo Sirainen To: Cor Bosman In-Reply-To: <200406101428.i5AESsVF007291@xs1.xs4all.nl> References: <200406101428.i5AESsVF007291@xs1.xs4all.nl> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Yfnnftb/Hyk2OrOlcsrQ" Message-Id: <1086883485.4162.156.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 19:04:45 +0300 X-Spam-Status: No, hits=-8.9 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 16:12:52 -0000 X-UID: 9428 Status: O Content-Length: 1422 --=-Yfnnftb/Hyk2OrOlcsrQ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-10 at 17:28, Cor Bosman wrote: > Hi all, im testing dovecot as a replacement imap server and noticed 2 > problems in 0.99.10.5. >=20 > if you use dovecot/pop on an account who's quota is fully used, dovecot w= ill > ungracefully stop. This will only happen when the account is first > accessed by dovecot (for instance, when offering IMAP to an existing > userbase using dovecot, or when the index files have inadvertently been > deleted). Out of quota isn't handled too well if it happens for indexes or dovecot-uidlist file. Best way to get it working now would be to place them in different partition without quota with INDEX and CONTROL settings in default_mail_env. For 1.0 I'll try to get it working much better, but there's still some unsolvable(?) theoretical problems if dovecot-uidlist file can't be updated (how do you make sure same UID won't be given twice for different messages, if you can't save the UIDs between sessions?). --=-Yfnnftb/Hyk2OrOlcsrQ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyIadyUhSUUBViskRAtrbAKCe69ecXJHdXhFkdu/y4Apnou3lzgCbBK4Y ZY3nc5ZW7DtNk6uCWIKdK3Y= =CwhL -----END PGP SIGNATURE----- --=-Yfnnftb/Hyk2OrOlcsrQ-- From tss@iki.fi Thu Jun 10 19:17:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5CA56C000DFB; Thu, 10 Jun 2004 19:17:48 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 78E9BC000DE8 for ; Thu, 10 Jun 2004 19:17:46 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 42D541C1D0E3; Thu, 10 Jun 2004 19:10:15 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 65EA51C1D0E1; Thu, 10 Jun 2004 19:09:42 +0300 (EEST) Subject: Re: [Dovecot] Scripting From: Timo Sirainen To: Nico De Beer - MWEB In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-gNmOpI0nwvsg1B/Uo9g9" Message-Id: <1086883781.4162.161.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 10 Jun 2004 19:09:41 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 16:17:48 -0000 X-UID: 9429 Status: O Content-Length: 1068 --=-gNmOpI0nwvsg1B/Uo9g9 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-10 at 18:34, Nico De Beer - MWEB wrote: > You metioned previosely that one can do character translation with postgr= ess Yes: select password from translate('%d', '.', '_') where userid =3D '%n'; > with mysql you can also do so but can use it as the table name "can't"? right, mysql has replace() but it can't be used in same way. > Is there anyway to write something outside dovecot to do the lookup in sa= y c++ I'm not sure what you're thinking.. You still want the password from mysql, but without patching Dovecot sources? Maybe with PAM and (probably patched) pam_mysql module. --=-gNmOpI0nwvsg1B/Uo9g9 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyIfFyUhSUUBViskRArn9AJ9Qkf7CMd5m/3joe1qC3mNz9Z68sQCgiaBC N+EvqrKxFpO45XE1XmynTPc= =7w5J -----END PGP SIGNATURE----- --=-gNmOpI0nwvsg1B/Uo9g9-- From gmid-dovecot@m.gmane.org Thu Jun 10 21:15:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 55601C000D8E; Thu, 10 Jun 2004 21:15:54 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 2FE2DC0007B4 for ; Thu, 10 Jun 2004 21:15:51 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BYTyN-0006mL-00 for ; Thu, 10 Jun 2004 20:08:19 +0200 Received: from grhrch-mh.physics.tamu.edu ([165.91.121.101]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 10 Jun 2004 20:08:19 +0200 Received: from chris-barnes by grhrch-mh.physics.tamu.edu with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 10 Jun 2004 20:08:19 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: "Chris Barnes" Date: Thu, 10 Jun 2004 13:08:16 -0500 Lines: 20 Message-ID: References: X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: grhrch-mh.physics.tamu.edu X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Sender: news Subject: [Dovecot] Re: folders via softlink X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 18:15:54 -0000 X-UID: 9430 Status: O Chris Barnes wrote: > The shared spam folder is simply a file that everyone has rwx access > to and is softlinked to ~/mail/SharedSpam. The error was between the chair and the keyboard... I forgot to reset the permissions on the soft linked folder. Once done, everything worked perfectly. -- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Chris Barnes AOL IM: CNBarnes chris-barnes@tamu.edu Yahoo IM: chrisnbarnes Computer Systems Manager ph: 979-845-7801 Department of Physics fax: 979-845-2590 Texas A&M University From tallison@tacocat.net Fri Jun 11 02:36:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F40DFC000D8E; Fri, 11 Jun 2004 02:36:27 +0300 (EEST) Received: from ms-smtp-02-eri0.ohiordc.rr.com (ms-smtp-02-smtplb.ohiordc.rr.com [65.24.5.136]) by talvi.dovecot.org (Postfix) with ESMTP id 10CDAC0007B4 for ; Fri, 11 Jun 2004 02:36:23 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-02-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5ANSmVG008721 for ; Thu, 10 Jun 2004 19:28:48 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id 1DD3A21315D for ; Thu, 10 Jun 2004 19:28:48 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 21167-01 for ; Thu, 10 Jun 2004 19:28:47 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id 9979D21311C for ; Thu, 10 Jun 2004 19:28:47 -0400 (EDT) Message-ID: <40C8EEAF.7030905@tacocat.net> Date: Thu, 10 Jun 2004 19:28:47 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net Subject: [Dovecot] pgsql documentation X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 23:36:28 -0000 X-UID: 9431 Status: O From dovecot-pgsql.conf # Examples: # connect = host=192.168.1.1 dbname=users # connect = host=sql.example.com dbname=virtual user=virtual There is a reference to identify the rest of the parameters via libpq in the postgres documentation. From postgres, libpq says the connection environment variables are: hostname:port:database:username:password http://www.postgresql.org/docs/7.4/static/libpq-pgpass.html Should the dovecot-pgsql.conf docs be changed from "dbname=users" to "database=users" ?? From tallison@tacocat.net Fri Jun 11 04:44:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 790E2C000D8E; Fri, 11 Jun 2004 04:44:27 +0300 (EEST) Received: from ms-smtp-02-eri0.ohiordc.rr.com (ms-smtp-02-smtplb.ohiordc.rr.com [65.24.5.136]) by talvi.dovecot.org (Postfix) with ESMTP id 61ACAC0007B4 for ; Fri, 11 Jun 2004 04:44:24 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-02-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5B1anVG019126 for ; Thu, 10 Jun 2004 21:36:49 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id 47D5121315E for ; Thu, 10 Jun 2004 21:36:49 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 22028-02 for ; Thu, 10 Jun 2004 21:36:49 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id CF0A621315D for ; Thu, 10 Jun 2004 21:36:48 -0400 (EDT) Message-ID: <40C90CB0.3000404@tacocat.net> Date: Thu, 10 Jun 2004 21:36:48 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net Subject: [Dovecot] auth failure X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 01:44:27 -0000 X-UID: 9432 Status: O Content-Length: 1480 well, with some help I've made a fair amount of progress on my box. It's working out much easier than I had anticipated and perhaps my notes will be useful some day. I have two questions... Here is where I am: cling:~# egrep -v "^($|\#)" /etc/dovecot.conf protocols = imap imaps login = imap login_max_processes_count = 16 login = pop3 max_mail_processes = 512 verbose_proctitle = yes default_mail_env = maildir:~/Maildir mailbox_check_interval = 1 auth = default auth_mechanisms = plain auth_passdb = pgsql /etc/dovecot-pgsql.conf auth_user = root auth_verbose = yes cling:~# egrep -v "^($|\#)" /etc/dovecot-pgsql.conf connect = dbname=dbmail user=dbmail_reader password=SECRET default_pass_scheme = PLAIN-MD5 password_query = SELECT passwd AS password FROM users WHERE userid = '%u' I've created working passwords using 'mkpasswd --hash=md5' and plugged the results into my database. I can login and everything looks pretty cool. Except, as near as I can tell, I'm sending plaintext authentication over the wire. My best guess is that my password gets munged into digest-md5 format before it goes over the wire. At this point I'm of the opinion that I'm reasonably secure. True so far? My guess is that the next step in security is to go for imaps and ssl configuration. But my debian installation doesn't appear to have the dovecot-openssl.cnf file referenced in the configuration.txt file. Is this missing from dovecot or am I looking at a debian problem? From chibi@gol.com Fri Jun 11 04:45:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CD428C000DD0; Fri, 11 Jun 2004 04:45:13 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id C67A5C0007B4 for ; Fri, 11 Jun 2004 04:44:43 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BYayk-0002Vz-00 for ; Fri, 11 Jun 2004 10:37:10 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Subject: Re: [Dovecot] "virgin" mail accounts In-reply-to: <1086883057.4162.149.camel@hurina> References: <1086883057.4162.149.camel@hurina> Comments: In-reply-to Timo Sirainen message dated "Thu, 10 Jun 2004 18:57:37 +0300." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 11 Jun 2004 10:37:10 +0900 From: Christian Balzer Message-Id: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 01:45:14 -0000 X-UID: 9433 Status: O Content-Length: 1884 Timo wrote: > >Have you set default_mail_env, so that Dovecot actually know where the >INBOX is supposed to be in? If Dovecot has to do guessing it doesn't >guess you want to use /var/mail/user if it doesn't exist. > Yes, the snippet for the test machine looks like this: --- default_mail_env = mbox:%h/mail:INBOX=%h/mail/INBOX --- This is the result of a test where /home/chibi/mail (and consequently /home/chibi/mail/INBOX did not exist: --- Jun 11 10:27:25 nexgen02 pop3-login: Login: chibi [127.0.0.1] Jun 11 10:27:25 nexgen02 pop3(chibi): stat() failed with mbox file /home/chibi/ mail/INBOX: No such file or directory Jun 11 10:27:25 nexgen02 pop3(chibi): stat() failed with mbox file /home/chibi/ mail/INBOX: No such file or directory Jun 11 10:27:25 nexgen02 pop3: I/O leak: 0x8050ce0 (0) Jun 11 10:27:25 nexgen02 pop3: I/O leak: 0x8084aa0 (1) Jun 11 10:27:25 nexgen02 pop3: Timeout leak: 0x8065d30 --- However it _did_ create the directory and .imap sub-dir: --- ls -la /home/chibi/mail/ total 12 drwx--S--- 3 chibi chibi 4096 Jun 11 10:27 . drwxr-sr-x 6 chibi chibi 4096 Jun 11 10:27 .. drwx--S--- 3 chibi chibi 4096 Jun 11 10:27 .imap --- Maybe a wrong sequence of check/creation or just not attempting to create the INBOX at all... >> But with maildir, it will not even do that, from a test with pop3 >> and imap login attempts to a freshly created account that had not=20 >> received any mails yet: > >http://dovecot.org/patches/maildir-autocreate.patch > That was quick and painless, thanks a lot. Looking forward to see that in the main code of an upcoming stable version, maybe as a config option for people who prefer crash and burn. ^_^ Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From tallison@tacocat.net Fri Jun 11 05:10:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3D3FAC000D8E; Fri, 11 Jun 2004 05:10:04 +0300 (EEST) Received: from ms-smtp-02-eri0.ohiordc.rr.com (ms-smtp-02-smtplb.ohiordc.rr.com [65.24.5.136]) by talvi.dovecot.org (Postfix) with ESMTP id C9355C0007B4 for ; Fri, 11 Jun 2004 05:10:01 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-02-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5B22QVG017015 for ; Thu, 10 Jun 2004 22:02:26 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id 7420821315D; Thu, 10 Jun 2004 22:02:26 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 22130-04; Thu, 10 Jun 2004 22:02:26 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id 0F18521311C; Thu, 10 Jun 2004 22:02:26 -0400 (EDT) Message-ID: <40C912B1.9060000@tacocat.net> Date: Thu, 10 Jun 2004 22:02:25 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tom Allison Subject: Re: [Dovecot] pgsql documentation References: <40C8EEAF.7030905@tacocat.net> In-Reply-To: <40C8EEAF.7030905@tacocat.net> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 02:10:04 -0000 X-UID: 9434 Status: O Tom Allison wrote: > From dovecot-pgsql.conf > # Examples: > # connect = host=192.168.1.1 dbname=users > # connect = host=sql.example.com dbname=virtual user=virtual > > There is a reference to identify the rest of the parameters via libpq in > the postgres documentation. > > From postgres, libpq says the connection environment variables are: > hostname:port:database:username:password > http://www.postgresql.org/docs/7.4/static/libpq-pgpass.html > > Should the dovecot-pgsql.conf docs be changed from > "dbname=users" to "database=users" > > ?? > Never mind, the answer is "no". Silly docs.... From tallison@tacocat.net Fri Jun 11 05:24:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0830FC000DDF; Fri, 11 Jun 2004 05:24:06 +0300 (EEST) Received: from ms-smtp-04-eri0.ohiordc.rr.com (ms-smtp-04-smtplb.ohiordc.rr.com [65.24.5.138]) by talvi.dovecot.org (Postfix) with ESMTP id 276EAC000DDD for ; Fri, 11 Jun 2004 05:24:03 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-04-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5B2GRbc026630 for ; Thu, 10 Jun 2004 22:16:27 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id 0F31A21315D for ; Thu, 10 Jun 2004 22:16:27 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 22130-07 for ; Thu, 10 Jun 2004 22:16:26 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id B382E21311C for ; Thu, 10 Jun 2004 22:16:26 -0400 (EDT) Message-ID: <40C915FA.7060306@tacocat.net> Date: Thu, 10 Jun 2004 22:16:26 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] bleah References: <40C836C0.7070306@tacocat.net> In-Reply-To: <40C836C0.7070306@tacocat.net> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 02:24:06 -0000 X-UID: 9435 Status: O Content-Length: 1291 Tom Allison wrote: > Not to be a bitch, but I've asked several times about some basic > questions or examples to clarify the essentials for configuration. > I have to apologize to the group for my rather untidy outburst. With a few good pointers from Timo and another session with the Fine manuals, I've managed to get everything working correctly (I think). I also hope to get the opportunity this weekend to write up some of my notes on the configuration process to make a contribution. I can document a lot of mistakes not to make! But right now, it's looking really good! I've worked out a rather minimalist configuration with md5 hash passwords over plaintext authentication. The passwords are in postgres and the user information is in /etc/passwd. For now, this lets everyone one the machine have an account that they can manage, but the passwords are distinctly seperated from the shell login passwords. I haven't gotten to the virtual user stuff yet as I don't quite know how I'm going to tie all of that into some procmail rules I have for filtering. I also have nothing regarding shared files, but it appears I have to do some more of that Fine reading on symlinks before I get there. Many thanks to those who haven't /dev/null-ed me on their mail servers! From mark@cye.com.au Fri Jun 11 07:41:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 152C9C000DE8; Fri, 11 Jun 2004 07:41:42 +0300 (EEST) Received: from mail.cye.com.au (v.cye.com.au [81.31.32.92]) by talvi.dovecot.org (Postfix) with ESMTP id EA221C000DE2 for ; Fri, 11 Jun 2004 07:41:37 +0300 (EEST) Received: from c210-49-170-43.brasd1.vic.optusnet.com.au ([210.49.170.43] helo=[192.168.180.91]) by mail.cye.com.au with asmtp (Exim 4.04) id 1BYdjq-0001Cu-00 for dovecot@dovecot.org; Fri, 11 Jun 2004 14:33:58 +1000 From: Mark Williamson To: dovecot@dovecot.org Content-Type: text/plain Message-Id: <1086928436.19851.7.camel@silver.cye.oz> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6-1mdk Date: Fri, 11 Jun 2004 14:33:56 +1000 Content-Transfer-Encoding: 7bit Subject: [Dovecot] IMSP server that works with Dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 04:41:42 -0000 X-UID: 9436 Status: O Hi All, Is there a IMSP server that can work with Dovecot, or would I have to change to Cyrus Imap server to have a server component that will integrate. Cheers Mark From nk@kajander.fi Fri Jun 11 10:00:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 69FF2C000DCB; Fri, 11 Jun 2004 10:00:19 +0300 (EEST) Received: from sun.atki.net (unknown [193.209.91.150]) by talvi.dovecot.org (Postfix) with ESMTP id 21942C000D8E for ; Fri, 11 Jun 2004 10:00:14 +0300 (EEST) Received: from [193.208.185.75] (unknown [193.208.185.75]) by sun.atki.net (Postfix) with ESMTP id 196C881FD4; Fri, 11 Jun 2004 09:52:14 +0300 (EEST) Subject: Re: [Dovecot] Corrupted index file From: Niilo Kajander To: Timo Sirainen In-Reply-To: <1086882537.4162.145.camel@hurina> References: <1086769551.2209.16.camel@armada> <1086882537.4162.145.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-JJRwrh9X/VsabSMCjk1D" Message-Id: <1086936674.2251.2.camel@armada> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Fri, 11 Jun 2004 09:51:14 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 07:00:19 -0000 X-UID: 9437 Status: O Content-Length: 1284 --=-JJRwrh9X/VsabSMCjk1D Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-10 at 18:48, Timo Sirainen wrote: > On Wed, 2004-06-09 at 11:25, Niilo Kajander wrote: > > I've been wondering for a while if reiserfs is dovecot+maildir safe or > > not. I get this too often (and my imap session gets disconnected): > >=20 > > Jun 9 08:42:32 sun imap(nk): Corrupted index file > > /home/nk/Maildir/.INBOX/.imap > > .index: UIDVALIDITY changed in uidlist > >=20 > > This happens always when a new mail arrives in maildir. >=20 > Is something else modifying the maildir? Does the UIDVALIDITY actually > change in dovecot-uidlist file? It's the second number in first line. I'm just doing a 'send/receive all' with evolution. The value doesn't change. >=20 > I can't think of why it would happen only with reiserfs. Perhaps it's another Fedora bug. --=20 Niilo Kajander --=-JJRwrh9X/VsabSMCjk1D Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyVZiP4iiqlDEiVMRAuJhAJ9Oyo4xdxLv5md55ijI7V3/Tzt09wCgq6lO 4OKKQrwSeXW3p2UNURHeOYA= =jYl1 -----END PGP SIGNATURE----- --=-JJRwrh9X/VsabSMCjk1D-- From discussion-lists@linnet.org Fri Jun 11 11:59:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EE328C000DCB; Fri, 11 Jun 2004 11:59:15 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id A735DC000D8E for ; Fri, 11 Jun 2004 11:59:13 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 8A7C51393DC; Fri, 11 Jun 2004 04:51:36 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.148.127]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 833001393C4; Fri, 11 Jun 2004 04:51:34 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BYhl9-0000G3-Pc; Fri, 11 Jun 2004 09:51:35 +0100 Date: Fri, 11 Jun 2004 09:51:35 +0100 From: Brian Candler To: Tom Allison Subject: Re: [Dovecot] auth failure Message-ID: <20040611085135.GA982@uk.tiscali.com> References: <40C90CB0.3000404@tacocat.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40C90CB0.3000404@tacocat.net> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 08:59:16 -0000 X-UID: 9438 Status: O Content-Length: 1171 On Thu, Jun 10, 2004 at 09:36:48PM -0400, Tom Allison wrote: > I've created working passwords using 'mkpasswd --hash=md5' ... > I can login and everything looks pretty cool. > > Except, as near as I can tell, I'm sending plaintext authentication over > the wire. My best guess is that my password gets munged into digest-md5 > format before it goes over the wire. Those two sentences contradict. I think you mean you're sending plaintext passwords over the wire; when received at the server they are MD5-hashed, and compared with the hashed passwords in your database. You can check this with tcpdump, dsniff etc. > At this point I'm of the opinion that I'm reasonably secure. > True so far? Depends on your definition of "secure". Unless running over SSL, you are not secure against sniffers, who can easily see and re-use your passwords. However someone who breaks into your server will not have a full table of cleartext passwords, only the hashes. That means they have to do some work (a dictionary attack) to recover the passwords. Mind you, given most people's password habits, they'll probably recover 80% of the passwords within seconds anyway. Brian. From tallison@tacocat.net Fri Jun 11 14:18:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6C4CEC000DCD; Fri, 11 Jun 2004 14:18:45 +0300 (EEST) Received: from ms-smtp-01-eri0.ohiordc.rr.com (ms-smtp-01-smtplb.ohiordc.rr.com [65.24.5.135]) by talvi.dovecot.org (Postfix) with ESMTP id B7732C000DCB for ; Fri, 11 Jun 2004 14:18:39 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-01-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5BBB2vJ007799; Fri, 11 Jun 2004 07:11:03 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id 5734921315D; Fri, 11 Jun 2004 07:11:02 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25709-04; Fri, 11 Jun 2004 07:11:02 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id C76AE21311C; Fri, 11 Jun 2004 07:11:01 -0400 (EDT) Message-ID: <40C99345.2010108@tacocat.net> Date: Fri, 11 Jun 2004 07:11:01 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Brian Candler Subject: Re: [Dovecot] auth failure References: <40C90CB0.3000404@tacocat.net> <20040611085135.GA982@uk.tiscali.com> In-Reply-To: <20040611085135.GA982@uk.tiscali.com> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 11:18:45 -0000 X-UID: 9439 Status: O Content-Length: 2288 Brian Candler wrote: > On Thu, Jun 10, 2004 at 09:36:48PM -0400, Tom Allison wrote: > >>I've created working passwords using 'mkpasswd --hash=md5' > > ... > >>I can login and everything looks pretty cool. >> >>Except, as near as I can tell, I'm sending plaintext authentication over >>the wire. My best guess is that my password gets munged into digest-md5 >>format before it goes over the wire. > > > Those two sentences contradict. > > I think you mean you're sending plaintext passwords over the wire; when > received at the server they are MD5-hashed, and compared with the hashed > passwords in your database. > > You can check this with tcpdump, dsniff etc. > You're right, I think. But I'm not sure exactly where. I can use telnet 143 to authenticate using plaintext ". login username secret" but sniffit shows my password as garbled up stuff when I send a password through mozilla. Is this a feature of sniffit, mozilla, or what? I guess I know a lot less about authentication than I thought I did. > >>At this point I'm of the opinion that I'm reasonably secure. >>True so far? > Probably not, eh? > > Depends on your definition of "secure". > > Unless running over SSL, you are not secure against sniffers, who can easily > see and re-use your passwords. However someone who breaks into your server > will not have a full table of cleartext passwords, only the hashes. That > means they have to do some work (a dictionary attack) to recover the > passwords. Mind you, given most people's password habits, they'll probably > recover 80% of the passwords within seconds anyway. I'm trying to set up SSL, but I'm not sure it will behave well. Last time I tried this, I had a consistent feature of my SSL connection warning me that my certificate was crap because it wasn't signed properly (I didn't pay Thawte/Verisign to let me read my email). I'll work on SSL over the weekend, but I know I can connect now with plaintext. It's only allowing connections from my subnet A to subnet B and localhost so it's not as bad as 99.9% of the pop servers out there (or am I wrong on that too?). I much prefer the md5 storage for passwords since it makes it much harder. As for the choice of passwords... I assign the email passwords and I love pwgen! From NDeBeer@mweb.com Fri Jun 11 14:30:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 85961C000DCD; Fri, 11 Jun 2004 14:30:26 +0300 (EEST) Received: from mwmx1.mweb.com (unknown [196.2.49.30]) by talvi.dovecot.org (Postfix) with ESMTP id E667DC000DCB for ; Fri, 11 Jun 2004 14:30:22 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by mwmx1.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Fri, 11 Jun 2004 13:22:43 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C44FA6.69BCFED9" Date: Fri, 11 Jun 2004 13:22:43 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Can't open configuration file Thread-Index: AcRPpmpvUMSdgruAEdiLfgABAgneNQ== From: "Nico De Beer - MWEB" To: Subject: [Dovecot] Can't open configuration file X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 11:30:26 -0000 X-UID: 9440 Status: O Content-Length: 2341 This is a multi-part message in MIME format. ------_=_NextPart_001_01C44FA6.69BCFED9 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi I'm getting=20 Jun 11 13:12:46 "Fatal: Can't open configuration file /home/dovecot/dove= cot-pgsql.conf: Permission denied this file have fulle permissions and has belonged to dovecot and root but= =20still no joy what am i missing must be something stupid on this side Thanks for the previos comments about scripting I am swithcing to postgre= ss for the mail env and will look at mysql when they support translation =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will a= ffect your Internet connection in the not too distant future, go to www.m= web.co.za/ten ------_=_NextPart_001_01C44FA6.69BCFED9 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi I'm getting

Jun 11 13:12:46 "Fatal: Can't open = configuration file  /home/dovecot/dovecot-pgsql.conf: Permission den= ied
this file have fulle permissions and ha= s belonged to dovecot and root but still no joy

what am i missing must be something stup= id on this side

Thanks for the previos comments about sc= ripting I am swithcing to postgress for the mail env and will look at mys= ql when they support translation


Are you rea= dy for Telkom's 10-digit area code dialling?
To find out how this will= =20affect your M-Web connection in the not too distant future, click here.

M-Web   JUST LIKE THAT

= ------_=_NextPart_001_01C44FA6.69BCFED9-- From discussion-lists@linnet.org Fri Jun 11 14:42:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 41A9DC000DCD; Fri, 11 Jun 2004 14:42:42 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id CA51FC000DCB for ; Fri, 11 Jun 2004 14:42:39 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 097E213944D; Fri, 11 Jun 2004 07:35:03 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.148.127]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id BF43D139343; Fri, 11 Jun 2004 07:35:01 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BYkJL-0000CT-5M; Fri, 11 Jun 2004 12:35:03 +0100 Date: Fri, 11 Jun 2004 12:35:03 +0100 From: Brian Candler To: Tom Allison Subject: Re: [Dovecot] auth failure Message-ID: <20040611113503.GA739@uk.tiscali.com> References: <40C90CB0.3000404@tacocat.net> <20040611085135.GA982@uk.tiscali.com> <40C99345.2010108@tacocat.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40C99345.2010108@tacocat.net> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 11:42:42 -0000 X-UID: 9441 Status: O Content-Length: 1957 On Fri, Jun 11, 2004 at 07:11:01AM -0400, Tom Allison wrote: > I can use telnet 143 to authenticate using plaintext > ". login username secret" > but sniffit shows my password as garbled up stuff when I send a password > through mozilla. Is this a feature of sniffit, mozilla, or what? I don't know sniffit. What exactly does it show? If it shows xxx login username yyy then yyy *is* the cleartext password. If it shows xxx authenticate foo yyyyyyy then yyyyyyy is base64-encoded authentication data (but trivially decoded in the case where foo is 'PLAIN' or 'LOGIN') I'd just try "tcpdump -i eth0 -n -s1500 -X tcp port 143" and look at the raw packets. > I'm trying to set up SSL, but I'm not sure it will behave well. Last > time I tried this, I had a consistent feature of my SSL connection > warning me that my certificate was crap because it wasn't signed > properly (I didn't pay Thawte/Verisign to let me read my email). Well, that's correct, because the whole SSL security model depends on the presence of a trusted third-party to vouch for encryption keys. There's a presentation with a brief overview here: http://www.ws.afnog.org/afnog2004/t1/security/crypto-slides.pdf But you can always set up your own Certificate Authority and manually install your CA root certificate into your client. That will silence the messages and maintain security. > I'll work on SSL over the weekend, but I know I can connect now with > plaintext. It's only allowing connections from my subnet A to subnet B > and localhost so it's not as bad as 99.9% of the pop servers out there > (or am I wrong on that too?). IMAP and POP are essentially the same as regards authentication. They both have plain logins (LOGIN or USER/PASS), they both have SASL logins (AUTHENTICATE or AUTH), SASL logins could also be plaintext (PLAIN or LOGIN), and they can optionally run over SSL (either on a different port, or using STARTTLS or STLS) Regards, Brian. From discussion-lists@linnet.org Fri Jun 11 14:43:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 91B4DC000DD4; Fri, 11 Jun 2004 14:43:26 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id DA776C000DD2 for ; Fri, 11 Jun 2004 14:43:10 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id A5BD1139453; Fri, 11 Jun 2004 07:35:33 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.148.127]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 27156139463; Fri, 11 Jun 2004 07:35:32 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BYkJp-0000Cd-Og; Fri, 11 Jun 2004 12:35:33 +0100 Date: Fri, 11 Jun 2004 12:35:33 +0100 From: Brian Candler To: Nico De Beer - MWEB Subject: Re: [Dovecot] Can't open configuration file Message-ID: <20040611113533.GB739@uk.tiscali.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 11:43:26 -0000 X-UID: 9442 Status: O On Fri, Jun 11, 2004 at 01:22:43PM +0200, Nico De Beer - MWEB wrote: > Jun 11 13:12:46 "Fatal: Can't open configuration file > /home/dovecot/dovecot-pgsql.conf: Permission denied > this file have fulle permissions and has belonged to dovecot and root > but still no joy What about the directory /home/dovecot ? From tallison@tacocat.net Fri Jun 11 14:51:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2C714C000DEB; Fri, 11 Jun 2004 14:51:00 +0300 (EEST) Received: from ms-smtp-02-eri0.ohiordc.rr.com (ms-smtp-02-smtplb.ohiordc.rr.com [65.24.5.136]) by talvi.dovecot.org (Postfix) with ESMTP id DD378C000DD2 for ; Fri, 11 Jun 2004 14:50:57 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-02-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5BBhJVG029750 for ; Fri, 11 Jun 2004 07:43:21 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id F0C1A21315E for ; Fri, 11 Jun 2004 07:43:18 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 25853-09 for ; Fri, 11 Jun 2004 07:43:18 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id 92B7A21315D for ; Fri, 11 Jun 2004 07:43:18 -0400 (EDT) Message-ID: <40C99AAD.4060501@tacocat.net> Date: Fri, 11 Jun 2004 07:42:37 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net Subject: [Dovecot] 'append aborted' X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 11:51:00 -0000 X-UID: 9443 Status: O I'm copying all my archives from one imap server on one machine to the imap-ssl dovecot server on another machine. After a bit, there's an error that's tossed up on my mozilla client that says the imap server couldn't complete the operation with the message append aborted. It keeps popping up after anything from 50 to 300 emails. Last night I was able to move ~12000 emails from one machine to the other without the ssl enabled. Any hints on what to look for? From tallison@tacocat.net Fri Jun 11 15:05:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 65470C000DD2; Fri, 11 Jun 2004 15:05:27 +0300 (EEST) Received: from ms-smtp-02-eri0.ohiordc.rr.com (ms-smtp-02-smtplb.ohiordc.rr.com [65.24.5.136]) by talvi.dovecot.org (Postfix) with ESMTP id 028AFC000DCD for ; Fri, 11 Jun 2004 15:05:25 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-02-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5BBvnVG013503 for ; Fri, 11 Jun 2004 07:57:49 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id D3B4D21315D for ; Fri, 11 Jun 2004 07:57:48 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26037-03 for ; Fri, 11 Jun 2004 07:57:48 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id 6E23E21311C for ; Fri, 11 Jun 2004 07:57:48 -0400 (EDT) Message-ID: <40C99E3C.4000706@tacocat.net> Date: Fri, 11 Jun 2004 07:57:48 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] 'append aborted' References: <40C99AAD.4060501@tacocat.net> In-Reply-To: <40C99AAD.4060501@tacocat.net> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 12:05:27 -0000 X-UID: 9444 Status: O Tom Allison wrote: > I'm copying all my archives from one imap server on one machine to the > imap-ssl dovecot server on another machine. > > After a bit, there's an error that's tossed up on my mozilla client that > says the imap server couldn't complete the operation with the message > append aborted. > > It keeps popping up after anything from 50 to 300 emails. > > Last night I was able to move ~12000 emails from one machine to the > other without the ssl enabled. Any hints on what to look for? > This problem exists with or without ssl login. I'm assuming that I either have a really messed up email (it is my spam archive). Do I really have to move 7000 emails one at a time??? :) From asmoore@edge.net Fri Jun 11 15:08:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0949CC000DF0; Fri, 11 Jun 2004 15:08:49 +0300 (EEST) Received: from sccrmhc11.comcast.net (sccrmhc11.comcast.net [204.127.202.55]) by talvi.dovecot.org (Postfix) with ESMTP id AD1C7C000DD2 for ; Fri, 11 Jun 2004 15:08:46 +0300 (EEST) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (sccrmhc11) with ESMTP id <2004061112010001100fh20fe>; Fri, 11 Jun 2004 12:01:10 +0000 Received: from [192.168.1.17] (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.11+Sun/8.12.11) with ESMTP id i5BC11P8015071 for ; Fri, 11 Jun 2004 07:01:01 -0500 (CDT) Subject: Re: [Dovecot] 'append aborted' From: Alex S Moore To: dovecot@dovecot.org In-Reply-To: <40C99AAD.4060501@tacocat.net> References: <40C99AAD.4060501@tacocat.net> Content-Type: text/plain Message-Id: <1086955260.10742.1.camel@sws602> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Fri, 11 Jun 2004 07:01:01 -0500 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 12:08:49 -0000 X-UID: 9445 Status: O On Fri, 2004-06-11 at 06:42, Tom Allison wrote: > I'm copying all my archives from one imap server on one machine to the > imap-ssl dovecot server on another machine. > > Last night I was able to move ~12000 emails from one machine to the > other without the ssl enabled. Any hints on what to look for? > IMAPSync at http://www.linux-france.org/prj/imapsync/dist/ Alex From NDeBeer@mweb.com Fri Jun 11 15:29:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D9703C000DF0; Fri, 11 Jun 2004 15:29:24 +0300 (EEST) Received: from mwmx1.mweb.com (unknown [196.2.49.30]) by talvi.dovecot.org (Postfix) with ESMTP id 61583C000DEF for ; Fri, 11 Jun 2004 15:29:21 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by mwmx1.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Fri, 11 Jun 2004 14:21:46 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] Can't open configuration file Date: Fri, 11 Jun 2004 14:21:45 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Can't open configuration file Thread-Index: AcRPqDz3U2RrlB6MSGeGD5STCUqHLAABjZag From: "Nico De Beer - MWEB" To: "Brian Candler" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 12:29:25 -0000 X-UID: 9446 Status: O Let me give a bit more infor Originaly i had it in /usr/local/etc and moved it to home/dovcot so i can give fulle access in a pah where the= re is not other info residing So i'm thinking it is something i specified in my config file or a mistake i did during compiling -----Original Message----- From: Brian Candler [mailto:B.Candler@pobox.com] Sent: 11 June 2004 01:36 To: Nico De Beer - MWEB Cc: dovecot@dovecot.org Subject: Re: [Dovecot] Can't open configuration file On Fri, Jun 11, 2004 at 01:22:43PM +0200, Nico De Beer - MWEB wrote: > Jun 11 13:12:46 "Fatal: Can't open configuration file > /home/dovecot/dovecot-pgsql.conf: Permission denied > this file have fulle permissions and has belonged to dovecot and roo= t > but still no joy What about the directory /home/dovecot ? =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will a= ffect your Internet connection in the not too distant future, go to www.m= web.co.za/ten From discussion-lists@linnet.org Fri Jun 11 15:41:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B937DC000DF8; Fri, 11 Jun 2004 15:41:27 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id B7EEFC000DCD for ; Fri, 11 Jun 2004 15:41:25 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id DC72E13946C; Fri, 11 Jun 2004 08:33:48 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.148.127]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 2F08D13944D; Fri, 11 Jun 2004 08:33:48 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BYlEE-0000GW-6W; Fri, 11 Jun 2004 13:33:50 +0100 Date: Fri, 11 Jun 2004 13:33:50 +0100 From: Brian Candler To: Nico De Beer - MWEB Subject: Re: [Dovecot] Can't open configuration file Message-ID: <20040611123350.GA1000@uk.tiscali.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 12:41:27 -0000 X-UID: 9447 Status: O On Fri, Jun 11, 2004 at 02:21:45PM +0200, Nico De Beer - MWEB wrote: > Let me give a bit more infor > > Originaly i had it in /usr/local/etc > and moved it to home/dovcot so i can give fulle access in a pah where there is not other info residing > > So i'm thinking it is something i specified in my config file > or a mistake i did during compiling OK, to avoid ambiguity, can you show the output of: # ls -ld / /home /home/dovecot /home/dovecot/dovecot-pgsql.conf Then check you get the same log error as before. Brian. From tallison@tacocat.net Fri Jun 11 15:43:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 74F70C000DFB; Fri, 11 Jun 2004 15:43:26 +0300 (EEST) Received: from ms-smtp-02-eri0.ohiordc.rr.com (ms-smtp-02-smtplb.ohiordc.rr.com [65.24.5.136]) by talvi.dovecot.org (Postfix) with ESMTP id 2E5C2C000DF8 for ; Fri, 11 Jun 2004 15:43:24 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-02-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5BCZlVG018823; Fri, 11 Jun 2004 08:35:48 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id 80CF721315D; Fri, 11 Jun 2004 08:35:47 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26311-04; Fri, 11 Jun 2004 08:35:47 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id 32C0621311C; Fri, 11 Jun 2004 08:35:47 -0400 (EDT) Message-ID: <40C9A723.70504@tacocat.net> Date: Fri, 11 Jun 2004 08:35:47 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Alex S Moore Subject: Re: [Dovecot] 'append aborted' References: <40C99AAD.4060501@tacocat.net> <1086955260.10742.1.camel@sws602> In-Reply-To: <1086955260.10742.1.camel@sws602> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 12:43:26 -0000 X-UID: 9448 Status: O Alex S Moore wrote: > On Fri, 2004-06-11 at 06:42, Tom Allison wrote: > >>I'm copying all my archives from one imap server on one machine to the >>imap-ssl dovecot server on another machine. >> >>Last night I was able to move ~12000 emails from one machine to the >>other without the ssl enabled. Any hints on what to look for? >> > > IMAPSync at http://www.linux-france.org/prj/imapsync/dist/ > > Alex > Is there any reason why just rsync wouldn't work? I only plan on doing this once, and I figured the imap process through the client would be easy while I did something else. From NDeBeer@mweb.com Fri Jun 11 15:47:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F410CC000DFB; Fri, 11 Jun 2004 15:47:54 +0300 (EEST) Received: from MMSMTP2.mweb.com (smtp2.mweb.com [196.2.49.201]) by talvi.dovecot.org (Postfix) with ESMTP id 64DFFC000DF8 for ; Fri, 11 Jun 2004 15:47:51 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by MMSMTP2.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Fri, 11 Jun 2004 14:40:15 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] Can't open configuration file Date: Fri, 11 Jun 2004 14:40:14 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Can't open configuration file Thread-Index: AcRPsF54YO4KsX3DSHKMnX7V2wJX4wAAM8VA From: "Nico De Beer - MWEB" To: "Brian Candler" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 12:47:55 -0000 X-UID: 9449 Status: O Content-Length: 1185 drwxr-xr-x 24 root root 4096 Jun 11 14:29 / drwxr-xr-x 6 root root 4096 Jun 11 12:47 /home drwxr-xr-x 2 dovecot dovecot 4096 Jun 11 13:08 /home/dovecot -rwxrwxrwx 1 dovecot dovecot 2656 Jun 11 13:08 /home/dovecot/dovecot-pg= sql.conf this what you wanted -----Original Message----- From: Brian Candler [mailto:B.Candler@pobox.com] Sent: 11 June 2004 02:34 To: Nico De Beer - MWEB Cc: dovecot@dovecot.org Subject: Re: [Dovecot] Can't open configuration file On Fri, Jun 11, 2004 at 02:21:45PM +0200, Nico De Beer - MWEB wrote: > Let me give a bit more infor >=20 > Originaly i had it in /usr/local/etc > and moved it to home/dovcot so i can give fulle access in a pah where t= here is not other info residing >=20 > So i'm thinking it is something i specified in my config file > or a mistake i did during compiling OK, to avoid ambiguity, can you show the output of: # ls -ld / /home /home/dovecot /home/dovecot/dovecot-pgsql.conf Then check you get the same log error as before. Brian. =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will a= ffect your Internet connection in the not too distant future, go to www.m= web.co.za/ten From NDeBeer@mweb.com Fri Jun 11 15:51:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 35817C000DFB; Fri, 11 Jun 2004 15:51:42 +0300 (EEST) Received: from MMSMTP2.mweb.com (smtp2.mweb.com [196.2.49.201]) by talvi.dovecot.org (Postfix) with ESMTP id 866D2C000DF8 for ; Fri, 11 Jun 2004 15:51:38 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by MMSMTP2.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Fri, 11 Jun 2004 14:44:03 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] Can't open configuration file Date: Fri, 11 Jun 2004 14:44:03 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Can't open configuration file Thread-Index: AcRPsF54YO4KsX3DSHKMnX7V2wJX4wAAVTAQ From: "Nico De Beer - MWEB" To: "Brian Candler" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 12:51:42 -0000 X-UID: 9450 Status: O Content-Length: 1369 here is the full error output as in my log file dovecot-auth: "Jun 11 14:48:42 "Fatal: Can't open configuration file /ho= me/dovecot/dovecot-pgsql.conf: Permission denied dovecot: "Jun 11 14:48:42 "Error: Auth process died too early - shutting = down dovecot: "Jun 11 14:48:42 "Error: child 9341 (auth) returned error 89 imap-login: "Jun 11 14:48:42 "Fatal: fd_send(-1) failed: Broken pipe pop3-login: "Jun 11 14:48:42 "Fatal: fd_send(-1) failed: Broken pipe -----Original Message----- From: Brian Candler [mailto:B.Candler@pobox.com] Sent: 11 June 2004 02:34 To: Nico De Beer - MWEB Cc: dovecot@dovecot.org Subject: Re: [Dovecot] Can't open configuration file On Fri, Jun 11, 2004 at 02:21:45PM +0200, Nico De Beer - MWEB wrote: > Let me give a bit more infor >=20 > Originaly i had it in /usr/local/etc > and moved it to home/dovcot so i can give fulle access in a pah where t= here is not other info residing >=20 > So i'm thinking it is something i specified in my config file > or a mistake i did during compiling OK, to avoid ambiguity, can you show the output of: # ls -ld / /home /home/dovecot /home/dovecot/dovecot-pgsql.conf Then check you get the same log error as before. Brian. =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will a= ffect your Internet connection in the not too distant future, go to www.m= web.co.za/ten From NDeBeer@mweb.com Fri Jun 11 15:57:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3B9FEC000DF0; Fri, 11 Jun 2004 15:57:04 +0300 (EEST) Received: from MMSMTP2.mweb.com (smtp2.mweb.com [196.2.49.201]) by talvi.dovecot.org (Postfix) with ESMTP id ADA8FC000DEF for ; Fri, 11 Jun 2004 15:56:59 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by MMSMTP2.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Fri, 11 Jun 2004 14:49:25 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] Can't open configuration file Date: Fri, 11 Jun 2004 14:49:24 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Can't open configuration file Thread-Index: AcRPsF54YO4KsX3DSHKMnX7V2wJX4wAAM8VAAABABaA= From: "Nico De Beer - MWEB" To: "Brian Candler" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 12:57:04 -0000 X-UID: 9451 Status: O Content-Length: 1809 the error originates in the source C file setting.c as fd =3D open(path, O_RDONLY); - if (fd < 0) - i_fatal("Can't open configuration file %s: %m", path); + if (fd < 0) { + i_error("Can't open configuration file %s: %m", path); + return FALSE; + } so it is posible that i don't have a lib or header file that is required I did not get any errors on install doning a tar.gz install on Fedora core2 minimal install -----Original Message----- From: Nico De Beer - MWEB [mailto:NDeBeer@mweb.com] Sent: 11 June 2004 02:40 To: Brian Candler Cc: dovecot@dovecot.org Subject: RE: [Dovecot] Can't open configuration file drwxr-xr-x 24 root root 4096 Jun 11 14:29 / drwxr-xr-x 6 root root 4096 Jun 11 12:47 /home drwxr-xr-x 2 dovecot dovecot 4096 Jun 11 13:08 /home/dovecot -rwxrwxrwx 1 dovecot dovecot 2656 Jun 11 13:08 = /home/dovecot/dovecot-pgsql.conf this what you wanted -----Original Message----- From: Brian Candler [mailto:B.Candler@pobox.com] Sent: 11 June 2004 02:34 To: Nico De Beer - MWEB Cc: dovecot@dovecot.org Subject: Re: [Dovecot] Can't open configuration file On Fri, Jun 11, 2004 at 02:21:45PM +0200, Nico De Beer - MWEB wrote: > Let me give a bit more infor >=20 > Originaly i had it in /usr/local/etc > and moved it to home/dovcot so i can give fulle access in a pah where = there is not other info residing >=20 > So i'm thinking it is something i specified in my config file > or a mistake i did during compiling OK, to avoid ambiguity, can you show the output of: # ls -ld / /home /home/dovecot /home/dovecot/dovecot-pgsql.conf Then check you get the same log error as before. Brian. =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will = affect your Internet connection in the not too distant future, go to = www.mweb.co.za/ten From discussion-lists@linnet.org Fri Jun 11 16:30:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B39B4C000DF8; Fri, 11 Jun 2004 16:30:26 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id B203EC000DF0 for ; Fri, 11 Jun 2004 16:30:24 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id CBDC0139480; Fri, 11 Jun 2004 09:22:47 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.148.127]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 0B407139453; Fri, 11 Jun 2004 09:22:47 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BYlzd-0000JW-5p; Fri, 11 Jun 2004 14:22:49 +0100 Date: Fri, 11 Jun 2004 14:22:49 +0100 From: Brian Candler To: Nico De Beer - MWEB Subject: Re: [Dovecot] Can't open configuration file Message-ID: <20040611132249.GA1142@uk.tiscali.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 13:30:26 -0000 X-UID: 9452 Status: O On Fri, Jun 11, 2004 at 02:40:14PM +0200, Nico De Beer - MWEB wrote: > drwxr-xr-x 24 root root 4096 Jun 11 14:29 / > drwxr-xr-x 6 root root 4096 Jun 11 12:47 /home > drwxr-xr-x 2 dovecot dovecot 4096 Jun 11 13:08 /home/dovecot > -rwxrwxrwx 1 dovecot dovecot 2656 Jun 11 13:08 /home/dovecot/dovecot-pgsql.conf > > this what you wanted Yep. I am stumped as to why open(path, O_RDONLY) fails on that with EACCES, as it appears to be doing. 'cat /home/dovecot/dovecot-pgsql.conf' works, I presume? Brian. From NDeBeer@mweb.com Fri Jun 11 16:41:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 00C86C000E0C; Fri, 11 Jun 2004 16:41:58 +0300 (EEST) Received: from MMSMTP2.mweb.com (smtp2.mweb.com [196.2.49.201]) by talvi.dovecot.org (Postfix) with ESMTP id A6BB8C000DF8 for ; Fri, 11 Jun 2004 16:41:54 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by MMSMTP2.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Fri, 11 Jun 2004 15:34:19 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] Can't open configuration file Date: Fri, 11 Jun 2004 15:34:18 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Can't open configuration file Thread-Index: AcRPtzdpmlYcM9vBSpOvFPTtR4sfAwAAUr8Q From: "Nico De Beer - MWEB" To: "Brian Candler" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 13:41:58 -0000 X-UID: 9453 Status: O Content-Length: 1134 cat works i see when building an rpm from tar.gz it req gettextopenssl-devel and pa= m-devel i did not compile with these during atr gz but can't see that it makes a = diffrence so i'll try via rpm once the packages is installed -----Original Message----- From: Brian Candler [mailto:B.Candler@pobox.com] Sent: 11 June 2004 03:23 To: Nico De Beer - MWEB Cc: dovecot@dovecot.org Subject: Re: [Dovecot] Can't open configuration file On Fri, Jun 11, 2004 at 02:40:14PM +0200, Nico De Beer - MWEB wrote: > drwxr-xr-x 24 root root 4096 Jun 11 14:29 / > drwxr-xr-x 6 root root 4096 Jun 11 12:47 /home > drwxr-xr-x 2 dovecot dovecot 4096 Jun 11 13:08 /home/dovecot > -rwxrwxrwx 1 dovecot dovecot 2656 Jun 11 13:08 /home/dovecot/dovecot-= pgsql.conf >=20 > this what you wanted Yep. I am stumped as to why open(path, O_RDONLY) fails on that with EACCE= S, as it appears to be doing. 'cat /home/dovecot/dovecot-pgsql.conf' works, I presume? Brian. =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will a= ffect your Internet connection in the not too distant future, go to www.m= web.co.za/ten From asmoore@edge.net Fri Jun 11 17:14:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 84842C000E0C; Fri, 11 Jun 2004 17:14:15 +0300 (EEST) Received: from rwcrmhc13.comcast.net (rwcrmhc13.comcast.net [204.127.198.39]) by talvi.dovecot.org (Postfix) with ESMTP id 9F0F2C000DF8 for ; Fri, 11 Jun 2004 17:14:12 +0300 (EEST) Received: from mcsun1.mcsun.local (pcp08669881pcs.500ash01.tn.comcast.net[69.137.83.172]) by comcast.net (rwcrmhc13) with ESMTP id <2004061114063001500fd9tre>; Fri, 11 Jun 2004 14:06:35 +0000 Received: from [192.168.1.17] (sws602.mcsun.local [192.168.1.17]) by mcsun1.mcsun.local (8.12.11+Sun/8.12.11) with ESMTP id i5BE6VAh015092 for ; Fri, 11 Jun 2004 09:06:31 -0500 (CDT) Subject: Re: [Dovecot] 'append aborted' From: Alex S Moore To: dovecot@dovecot.org In-Reply-To: <40C9A723.70504@tacocat.net> References: <40C99AAD.4060501@tacocat.net> <1086955260.10742.1.camel@sws602> <40C9A723.70504@tacocat.net> Content-Type: text/plain Message-Id: <1086962790.10742.7.camel@sws602> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Fri, 11 Jun 2004 09:06:31 -0500 Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 14:14:15 -0000 X-UID: 9454 Status: O On Fri, 2004-06-11 at 07:35, Tom Allison wrote: > Is there any reason why just rsync wouldn't work? > > I only plan on doing this once, and I figured the imap process through > the client would be easy while I did something else. > I do not know the technical reasons. rsync is just for copying files and does not sound like the appropriate tool for transferring data to a maildir. imapsync is a useful tool. Alex From NDeBeer@mweb.com Fri Jun 11 18:53:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5C398C00280C; Fri, 11 Jun 2004 18:53:10 +0300 (EEST) Received: from mwmx1.mweb.com (unknown [196.2.49.30]) by talvi.dovecot.org (Postfix) with ESMTP id BE60BC000E0C for ; Fri, 11 Jun 2004 18:53:06 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by mwmx1.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Fri, 11 Jun 2004 17:45:31 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C44FCB.2053D671" Date: Fri, 11 Jun 2004 17:45:31 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: "Fatal: Unknown userdb type 'pgsql' Thread-Index: AcRPytMvUMSeKruAEdiLfgABAgneNQAADpGA From: "Nico De Beer - MWEB" To: Subject: [Dovecot] Fatal: Unknown userdb type 'pgsql' X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 15:53:10 -0000 X-UID: 9455 Status: O Content-Length: 1767 This is a multi-part message in MIME format. ------_=_NextPart_001_01C44FCB.2053D671 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable i build an rpm and now gets this=20 i builed the rpm with=20 rpmbuild -ta --define 'XFlags --with-mysql --with-pgsql --with-pop3' dove= cot-0.99.10.5.tar.gz=20 =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will a= ffect your Internet connection in the not too distant future, go to www.m= web.co.za/ten ------_=_NextPart_001_01C44FCB.2053D671 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable "Fatal: Unknown userdb type 'pgsql'
i build an rpm and now gets this =
i builed the rpm with

rpmbuild -ta --define 'XFlags --with-mysql --with-pgsql --with-p= op3'=20 dovecot-0.99.10.5.tar.gz


Are you rea= dy for Telkom's 10-digit area code dialling?
To find out how this will= =20affect your M-Web connection in the not too distant future, click here.

M-Web   JUST LIKE THAT

------_=_NextPart_001_01C44FCB.2053D671-- From NDeBeer@mweb.com Fri Jun 11 19:13:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 914B0C002826; Fri, 11 Jun 2004 19:13:24 +0300 (EEST) Received: from mwmx1.mweb.com (unknown [196.2.49.30]) by talvi.dovecot.org (Postfix) with ESMTP id 48EDAC002822 for ; Fri, 11 Jun 2004 19:13:21 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by mwmx1.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Fri, 11 Jun 2004 18:05:46 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C44FCD.F4245927" Subject: RE: [Dovecot] Fatal: Unknown userdb type 'pgsql' Date: Fri, 11 Jun 2004 18:05:45 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: "Fatal: Unknown userdb type 'pgsql' Thread-Index: AcRPytMvUMSeKruAEdiLfgABAgneNQAADpGAAACx3IA= From: "Nico De Beer - MWEB" To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 16:13:24 -0000 X-UID: 9456 Status: O Content-Length: 3155 This is a multi-part message in MIME format. ------_=_NextPart_001_01C44FCD.F4245927 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I R Stupid=20 I can just unzip edit the spec file and atr zip again=20 =20 go figure =20 -----Original Message----- From: Nico De Beer - MWEB [mailto:NDeBeer@mweb.com] Sent: 11 June 2004 05:46 To: dovecot@dovecot.org Subject: [Dovecot] Fatal: Unknown userdb type 'pgsql' i build an rpm and now gets this=20 i builed the rpm with=20 rpmbuild -ta --define 'XFlags --with-mysql --with-pgsql --with-pop3' = dovecot-0.99.10.5.tar.gz=20 Are you ready for Telkom's 10-digit area code dialling? To find out how this will affect your M-Web connection in the not too = distant future, click here .=20 M-Web JUST LIKE THAT ------_=_NextPart_001_01C44FCD.F4245927 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable "Fatal: Unknown userdb type 'pgsql'
I R=20 Stupid
I can=20 just unzip edit the spec file and atr zip again
 
go=20 figure
 
-----Original Message-----
From: Nico De Beer - = MWEB=20 [mailto:NDeBeer@mweb.com]
Sent: 11 June 2004 = 05:46
To:=20 dovecot@dovecot.org
Subject: [Dovecot] Fatal: Unknown userdb = type=20 'pgsql'

i build an rpm and now gets = this
i builed the rpm with

rpmbuild -ta --define 'XFlags --with-mysql --with-pgsql = --with-pop3'=20 dovecot-0.99.10.5.tar.gz


Are you ready = for Telkom's=20 10-digit area code dialling?
To find out how this will affect your = M-Web=20 connection in the not too distant future, click here.
=20

M-Web   JUST LIKE=20 THAT

------_=_NextPart_001_01C44FCD.F4245927-- From NDeBeer@mweb.com Fri Jun 11 19:15:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E9C1DC000E06; Fri, 11 Jun 2004 19:15:21 +0300 (EEST) Received: from MMSMTP2.mweb.com (smtp2.mweb.com [196.2.49.201]) by talvi.dovecot.org (Postfix) with ESMTP id 75179C000E01 for ; Fri, 11 Jun 2004 19:15:18 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by MMSMTP2.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Fri, 11 Jun 2004 18:07:42 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] Can't open configuration file Date: Fri, 11 Jun 2004 18:07:41 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] Can't open configuration file Thread-Index: AcRPtzdpmlYcM9vBSpOvFPTtR4sfAwAFvGcQ From: "Nico De Beer - MWEB" To: "Brian Candler" Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 16:15:22 -0000 X-UID: 9457 Status: O builind the rpm worked great=20 still don't know what it was though=20 ***************8 -----Original Message----- From: Brian Candler [mailto:B.Candler@pobox.com] Sent: 11 June 2004 03:23 To: Nico De Beer - MWEB Cc: dovecot@dovecot.org Subject: Re: [Dovecot] Can't open configuration file On Fri, Jun 11, 2004 at 02:40:14PM +0200, Nico De Beer - MWEB wrote: > drwxr-xr-x 24 root root 4096 Jun 11 14:29 / > drwxr-xr-x 6 root root 4096 Jun 11 12:47 /home > drwxr-xr-x 2 dovecot dovecot 4096 Jun 11 13:08 /home/dovecot > -rwxrwxrwx 1 dovecot dovecot 2656 Jun 11 13:08 /home/dovecot/dovecot-= pgsql.conf >=20 > this what you wanted Yep. I am stumped as to why open(path, O_RDONLY) fails on that with EACCE= S, as it appears to be doing. 'cat /home/dovecot/dovecot-pgsql.conf' works, I presume? Brian. =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will a= ffect your Internet connection in the not too distant future, go to www.m= web.co.za/ten From jb@weitan.org Fri Jun 11 10:39:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C0626C000DCD; Fri, 11 Jun 2004 10:39:12 +0300 (EEST) Received: from weitan.org (unknown [80.190.204.99]) by talvi.dovecot.org (Postfix) with ESMTP id 37088C000DCB for ; Fri, 11 Jun 2004 10:39:10 +0300 (EEST) Received: from weitan.org (localhost [127.0.0.1]) by weitan.org (Postfix) with ESMTP id EA3527D469; Fri, 11 Jun 2004 07:29:10 +0000 (UTC) Received: from 217.255.197.41 (SquirrelMail authenticated user jan); by weitan.org with HTTP; Fri, 11 Jun 2004 07:29:11 -0000 (UTC) Message-ID: <33324.217.255.197.41.1086938951.squirrel@217.255.197.41> In-Reply-To: <40C90CB0.3000404@tacocat.net> References: <40C90CB0.3000404@tacocat.net> Date: Fri, 11 Jun 2004 07:29:11 -0000 (UTC) Subject: Re: [Dovecot] auth failure From: jb@weitan.org To: "Tom Allison" User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-Mailman-Approved-At: Sat, 12 Jun 2004 00:00:09 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 07:39:12 -0000 X-UID: 9458 Status: O > My guess is that the next step in security is to go for imaps and ssl > configuration. But my debian installation doesn't appear to have the > dovecot-openssl.cnf file referenced in the configuration.txt file. > Is this missing from dovecot or am I looking at a debian problem? No debian neither dovecot problem. protocols = imap imaps Be sure to have certificate for dovecot (Debian should create a default one) ssl_cert_file = /etc/ssl/certs/dovecot.pem ssl_key_file = /etc/ssl/private/dovecot.pem I prefer to split up the pem file into crt and key and to use one of my own certificates created with my CA, but you can also buy one... if you like (verisign, thawte) ssl_cert_file = /etc/ssl/certs/my_own_cert.crt ssl_key_file = /etc/ssl/private/my_own_private.key Check if the port does accept connection and if you can see the certificate: openssl s_client -connect localhost:993 (imaps port) That should do it. (you bitch! ;-)) From roman@maths.uwa.edu.au Fri Jun 11 11:21:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 07504C000DCB; Fri, 11 Jun 2004 11:21:06 +0300 (EEST) Received: from asclepius.uwa.edu.au (asclepius3.uwa.edu.au [130.95.128.60]) by talvi.dovecot.org (Postfix) with ESMTP id 164CBC000D8E for ; Fri, 11 Jun 2004 11:21:03 +0300 (EEST) Received: from asclepius (localhost [127.0.0.1]) by asclepius (Postfix) with SMTP id D037A3673F9 for ; Fri, 11 Jun 2004 16:13:23 +0800 (WST) Received: from madvax (madvax.maths.uwa.edu.au [130.95.16.119]) by asclepius.uwa.edu.au (Postfix) with ESMTP id 891B7367187 for ; Fri, 11 Jun 2004 16:13:23 +0800 (WST) Received: from rinzia.maths.uwa.edu.au ([130.95.16.117] helo=maths.uwa.edu.au ident=roman) by madvax with esmtp (Exim 4.32) id 1BYhA7-0000nC-O4 for dovecot@dovecot.org; Fri, 11 Jun 2004 16:13:22 +0800 Message-ID: <40C9699F.9040007@maths.uwa.edu.au> Date: Fri, 11 Jun 2004 16:13:19 +0800 From: Roman Bogoyev Organization: University of WA User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413 Debian/1.6-5 X-Accept-Language: en MIME-Version: 1.0 To: dovecot@dovecot.org X-SA-Exim-Connect-IP: 130.95.16.117 X-SA-Exim-Mail-From: roman@maths.uwa.edu.au Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on madvax X-Spam-Level: X-Spam-Status: No, hits=-4.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.63 X-Spam-Pyzor: Reported 0 times. X-Spam-Report: * -4.9 BAYES_00 BODY: Bayesian spam probability is 0 to 1% * [score: 0.0000] * 0.6 AWL AWL: Auto-whitelist adjustment X-SA-Exim-Version: 4.0 (built Sat, 24 Apr 2004 12:31:30 +0200) X-SA-Exim-Scanned: Yes (on madvax) X-Mailman-Approved-At: Sat, 12 Jun 2004 00:00:09 +0300 Subject: [Dovecot] tcp wrappers? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 08:21:06 -0000 X-UID: 9459 Status: O How can I secure dovecot listening on port 143 to specific machines only? Squirrelmail suggests using non-ssl if the imap daemon is on the same host... Otherwise squirrelmail could use TLS but what about other clients wanting to use SSL on port 993? (sorry I don't know enough about TLS). Thanks, Roman. -- ______________________________________________________________________ Roman Bogoyev, I.T. Manager School of Mathematics and Statistics email: roman@maths.uwa.edu.au University of Western Australia tel: +61 8 6488 3379 35 Stirling Hwy, Crawley 6009 fax: +61 8 6488 1028 Western Australia From tss@iki.fi Sat Jun 12 00:15:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4C956C000DCD; Sat, 12 Jun 2004 00:15:15 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0602FC0007B4 for ; Sat, 12 Jun 2004 00:15:12 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 36ED61C1D0E1; Sat, 12 Jun 2004 00:07:36 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 56E4E1C1D0E0; Sat, 12 Jun 2004 00:07:00 +0300 (EEST) Subject: Re: [Dovecot] IMSP server that works with Dovecot From: Timo Sirainen To: Mark Williamson In-Reply-To: <1086928436.19851.7.camel@silver.cye.oz> References: <1086928436.19851.7.camel@silver.cye.oz> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-KWUq6RA13Utrl7ZKCbL2" Message-Id: <1086988006.4162.194.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 12 Jun 2004 00:06:46 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 21:15:15 -0000 X-UID: 9460 Status: O --=-KWUq6RA13Utrl7ZKCbL2 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-06-11 at 07:33, Mark Williamson wrote: > Is there a IMSP server that can work with Dovecot, or would I have to > change to Cyrus Imap server to have a server component that will > integrate. Are there any actual IMSP clients even? Isn't the whole thing dead already? Cyrus people called their IMSP a "project on life support stage" as well.. --=-KWUq6RA13Utrl7ZKCbL2 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyh7myUhSUUBViskRAurFAJ4/NivSRAVZTRx/31qVOzeYkpLOjgCgmDZO v22yxyLDC2th/85LXK0dG9s= =ym2y -----END PGP SIGNATURE----- --=-KWUq6RA13Utrl7ZKCbL2-- From tss@iki.fi Sat Jun 12 00:16:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DF07BC000DD2; Sat, 12 Jun 2004 00:16:50 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 83ED3C000DCF for ; Sat, 12 Jun 2004 00:16:48 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id D62D31C1D0E2; Sat, 12 Jun 2004 00:09:12 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B66EF1C1D0E0; Sat, 12 Jun 2004 00:08:37 +0300 (EEST) Subject: Re: [Dovecot] 'append aborted' From: Timo Sirainen To: Tom Allison In-Reply-To: <40C99AAD.4060501@tacocat.net> References: <40C99AAD.4060501@tacocat.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-6lksBH4iUiuUMqxZ0RhP" Message-Id: <1086988115.4162.196.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 12 Jun 2004 00:08:35 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 21:16:51 -0000 X-UID: 9461 Status: O --=-6lksBH4iUiuUMqxZ0RhP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-06-11 at 14:42, Tom Allison wrote: > I'm copying all my archives from one imap server on one machine to the=20 > imap-ssl dovecot server on another machine. >=20 > After a bit, there's an error that's tossed up on my mozilla client that=20 > says the imap server couldn't complete the operation with the message=20 > append aborted. mbox or maildir? Anything on Dovecot's log file? --=-6lksBH4iUiuUMqxZ0RhP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyh9TyUhSUUBViskRArphAJ4gDjk7qYjCM+UEK1rrGOXLZ+7OLACcCfB4 NazaI8YBp97vpKMpvRdsvxs= =KciP -----END PGP SIGNATURE----- --=-6lksBH4iUiuUMqxZ0RhP-- From tss@iki.fi Sat Jun 12 00:20:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AC480C000DDC; Sat, 12 Jun 2004 00:20:12 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id AB0EAC000DDB for ; Sat, 12 Jun 2004 00:20:10 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id AE6F91C1D0E2; Sat, 12 Jun 2004 00:12:35 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 828171C1D0E0; Sat, 12 Jun 2004 00:11:58 +0300 (EEST) Subject: RE: [Dovecot] Can't open configuration file From: Timo Sirainen To: Nico De Beer - MWEB In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-/9f4OMgxFMRRyFcVCuKY" Message-Id: <1086988314.4162.199.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 12 Jun 2004 00:11:54 +0300 X-Spam-Status: No, hits=-9.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, RCVD_IN_ORBS,REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org, Brian Candler X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 21:20:12 -0000 X-UID: 9462 Status: O --=-/9f4OMgxFMRRyFcVCuKY Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-06-11 at 15:44, Nico De Beer - MWEB wrote: > here is the full error output as in my log file >=20 > dovecot-auth: "Jun 11 14:48:42 "Fatal: Can't open configuration file /ho= me/dovecot/dovecot-pgsql.conf: Permission denied Looking at there closely, you'll see two spaces before /home/dovecot. So it tried to open " /home/dovecot/dovecot-pgsql.conf", most likely because you had set "passdb =3D pgsql /home/dove...". Maybe I should strip spaces there.. --=-/9f4OMgxFMRRyFcVCuKY Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyiAayUhSUUBViskRAjddAJ9Lmx8uSw6xCYj4XDdTXYkTquf27QCfTt9B BwXbtQ2PEtxDvU98R6+ZUe0= =tTGE -----END PGP SIGNATURE----- --=-/9f4OMgxFMRRyFcVCuKY-- From tss@iki.fi Sat Jun 12 00:28:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4EB47C000DDF; Sat, 12 Jun 2004 00:28:37 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id E336CC000DDB for ; Sat, 12 Jun 2004 00:28:34 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 4E5C71C1D0E2; Sat, 12 Jun 2004 00:20:59 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 40ECC1C1D0E0; Sat, 12 Jun 2004 00:20:25 +0300 (EEST) Subject: Re: [Dovecot] tcp wrappers? From: Timo Sirainen To: Roman Bogoyev In-Reply-To: <40C9699F.9040007@maths.uwa.edu.au> References: <40C9699F.9040007@maths.uwa.edu.au> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-hEwO2OCipqULZSBLGppD" Message-Id: <1086988823.4162.208.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 12 Jun 2004 00:20:23 +0300 X-Spam-Status: No, hits=-9.3 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 21:28:37 -0000 X-UID: 9463 Status: O Content-Length: 1127 --=-hEwO2OCipqULZSBLGppD Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-06-11 at 11:13, Roman Bogoyev wrote: > How can I secure dovecot listening on port 143 to specific > machines only? imap_listen =3D 127.0.0.1 But it works only for one IP then. > Squirrelmail suggests using non-ssl if the imap daemon > is on the same host... >=20 > Otherwise squirrelmail could use TLS but what about other > clients wanting to use SSL on port 993? (sorry I don't know enough about > TLS). Port 993 forces using TLS, but TLS can be used in 143 port as well, so I wouldn't recommend limiting that imap_listen. Better would be to just set disable_plaintext_auth =3D yes setting and Dovecot doesn't allow logins without SSL enabled. --=-hEwO2OCipqULZSBLGppD Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAyiIXyUhSUUBViskRAnUfAJ9u/54CU9pDJxInqxZhioouF9+f3wCfSWQd 0dcVybVr0mkjgbfcRfvbUUI= =CDXg -----END PGP SIGNATURE----- --=-hEwO2OCipqULZSBLGppD-- From shiva@sewingwitch.com Sat Jun 12 00:53:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 26642C000DDC; Sat, 12 Jun 2004 00:53:12 +0300 (EEST) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id B7B3FC000DD2 for ; Sat, 12 Jun 2004 00:53:09 +0300 (EEST) Received: from home.sewingwitch.com (c-24-7-84-78.client.comcast.net [24.7.84.78]) (authenticated bits=0) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i5BLjW0e008042 for ; Fri, 11 Jun 2004 17:45:33 -0400 Received: from [10.169.6.246] (segw.microprecisionautomation.com [69.17.55.168]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i5BLjVZn017982 for ; Fri, 11 Jun 2004 14:45:31 -0700 Date: Fri, 11 Jun 2004 14:45:39 -0700 From: Kenneth Porter To: dovecot@dovecot.org Subject: Re: [Dovecot] IMSP server that works with Dovecot Message-ID: <434A8B9E364041A56A214032@[10.169.6.246]> In-Reply-To: <1086988006.4162.194.camel@hurina> References: <1086928436.19851.7.camel@silver.cye.oz> <1086988006.4162.194.camel@hurina> X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.40 X-Scanned-By: MIMEDefang 2.42 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 21:53:12 -0000 X-UID: 9464 Status: O --On Saturday, June 12, 2004 12:06 AM +0300 Timo Sirainen wrote: > Are there any actual IMSP clients even? Isn't the whole thing dead > already? Cyrus people called their IMSP a "project on life support > stage" as well.. I thought Mulberry did. I keep meaning to set one up so I can carry my configuration around with me. From shiva@sewingwitch.com Sat Jun 12 00:55:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C7AF0C000DDF; Sat, 12 Jun 2004 00:55:57 +0300 (EEST) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id 74541C000DD2 for ; Sat, 12 Jun 2004 00:55:55 +0300 (EEST) Received: from home.sewingwitch.com (c-24-7-84-78.client.comcast.net [24.7.84.78]) (authenticated bits=0) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i5BLmK0e008346; Fri, 11 Jun 2004 17:48:20 -0400 Received: from [10.169.6.246] (segw.microprecisionautomation.com [69.17.55.168]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i5BLmIZn018039; Fri, 11 Jun 2004 14:48:18 -0700 Date: Fri, 11 Jun 2004 14:48:26 -0700 From: Kenneth Porter To: Warren Togami , dovecot@dovecot.org Subject: Re: [Dovecot] Fedora dovecot Testing Needed Message-ID: In-Reply-To: <40C01026.4090805@togami.com> References: <40C01026.4090805@togami.com> X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.40 X-Scanned-By: MIMEDefang 2.42 Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 21:55:57 -0000 X-UID: 9465 Status: O --On Thursday, June 03, 2004 8:01 PM -1000 Warren Togami wrote: > http://people.redhat.com/wtogami/temp/dovecot/ > dovecot-0.99.10.5 binary packages for FC1 and FC2 are available here. I > need feedback from Fedora users with THESE ACTUAL BINARIES before pushing > them to official updates. > > Note: > This does not solve the SSL related crash issue. That requires a patch > to OpenSSL or kernel. I am still trying to convince the maintainers to > patch it. > > Warren Togami > wtogami@redhat.com I've been running it since last week with 4 users (3 POP, 1 IMAP) and no complaints, using mbox. I'm the IMAP user. From john.l.villalovos@intel.com Sat Jun 12 01:12:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3D719C000DDC; Sat, 12 Jun 2004 01:12:42 +0300 (EEST) Received: from caduceus.jf.intel.com (fmr06.intel.com [134.134.136.7]) by talvi.dovecot.org (Postfix) with ESMTP id 3CBC6C000DDB for ; Sat, 12 Jun 2004 01:12:39 +0300 (EEST) Received: from petasus.jf.intel.com (petasus.jf.intel.com [10.7.209.6]) by caduceus.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc,v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i5BM4fjG009880; Fri, 11 Jun 2004 22:04:41 GMT Received: from orsmsxvs040.jf.intel.com (orsmsxvs040.jf.intel.com [192.168.65.206]) by petasus.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc,v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i5BM61rC032542; Fri, 11 Jun 2004 22:06:13 GMT Received: from orsmsx332.amr.corp.intel.com ([192.168.65.60]) by orsmsxvs040.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004061115050202128 ; Fri, 11 Jun 2004 15:05:02 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx332.amr.corp.intel.com with Microsoft SMTPSVC(6.0.3790.0); Fri, 11 Jun 2004 15:05:02 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.5.6944.0 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] tcp wrappers? Date: Fri, 11 Jun 2004 15:05:01 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B010006F1@orsmsx410> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] tcp wrappers? Thread-Index: AcRP9lEJF4AbsbnVTdCFEHG/f+KTggACbeUw From: "Villalovos, John L" To: "Roman Bogoyev" , X-OriginalArrivalTime: 11 Jun 2004 22:05:02.0199 (UTC) FILETIME=[24DE5870:01C45000] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 22:12:42 -0000 X-UID: 9466 Status: O dovecot-bounces@dovecot.org wrote: > How can I secure dovecot listening on port 143 to specific machines > only?=20 >=20 > Squirrelmail suggests using non-ssl if the imap daemon > is on the same host... >=20 > Otherwise squirrelmail could use TLS but what about other > clients wanting to use SSL on port 993? (sorry I don't know enough > about TLS). I use iptables so that only 127.0.0.1 can access IMAP. Everyone else has to use IMAPS. John From tallison@tacocat.net Sat Jun 12 01:51:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C2DD5C000DDB; Sat, 12 Jun 2004 01:51:55 +0300 (EEST) Received: from ms-smtp-04-eri0.ohiordc.rr.com (ms-smtp-04-smtplb.ohiordc.rr.com [65.24.5.138]) by talvi.dovecot.org (Postfix) with ESMTP id 5CF2AC000DD2 for ; Sat, 12 Jun 2004 01:51:53 +0300 (EEST) Received: from janus.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by ms-smtp-04-eri0.ohiordc.rr.com (8.12.10/8.12.7) with ESMTP id i5BMiGbc025562 for ; Fri, 11 Jun 2004 18:44:16 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by janus.tacocat.net (Postfix) with ESMTP id 9A48921315D for ; Fri, 11 Jun 2004 18:44:15 -0400 (EDT) Received: from janus.tacocat.net ([127.0.0.1]) by localhost (janus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30346-04 for ; Fri, 11 Jun 2004 18:44:15 -0400 (EDT) Received: from tacocat.net (unknown [192.168.1.10]) by janus.tacocat.net (Postfix) with ESMTP id 2FEB721311C for ; Fri, 11 Jun 2004 18:44:15 -0400 (EDT) Message-ID: <40CA35BF.6090006@tacocat.net> Date: Fri, 11 Jun 2004 18:44:15 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] 'append aborted' References: <40C99AAD.4060501@tacocat.net> <40C99E3C.4000706@tacocat.net> In-Reply-To: <40C99E3C.4000706@tacocat.net> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Scanned: by amavisd-new at tacocat.net X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 22:51:55 -0000 X-UID: 9467 Status: O Content-Length: 1199 Tom Allison wrote: > Tom Allison wrote: > >> I'm copying all my archives from one imap server on one machine to the >> imap-ssl dovecot server on another machine. >> >> After a bit, there's an error that's tossed up on my mozilla client >> that says the imap server couldn't complete the operation with the >> message append aborted. >> >> It keeps popping up after anything from 50 to 300 emails. >> >> Last night I was able to move ~12000 emails from one machine to the >> other without the ssl enabled. Any hints on what to look for? >> > > This problem exists with or without ssl login. > > I'm assuming that I either have a really messed up email (it is my spam > archive). Do I really have to move 7000 emails one at a time??? :) > This is painfully elusive. I get nothing in the logs on either machine. :( When I get the error from the mail client, I find find an email that duplicates the error consistently. But there's no logging on either imap server. When I shutdown mozilla and login anew, the problem goes away for a bit. But another email will generate it again.... It's only in one folder. Unless someone else runs into this, I think I'm kind of special... From djk@cybersource.com.au Sat Jun 12 02:48:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 81347C000DDB; Sat, 12 Jun 2004 02:48:35 +0300 (EEST) Received: from boombox.cyber.com.au (203-217-38-144.dyn.iinet.net.au [203.217.38.144]) by talvi.dovecot.org (Postfix) with ESMTP id EA73DC000DCF for ; Sat, 12 Jun 2004 02:48:31 +0300 (EEST) Received: from boombox.cyber.com.au (localhost [127.0.0.1]) by boombox.cyber.com.au (8.12.8/8.12.8) with ESMTP id i5BNetAV028484; Sat, 12 Jun 2004 09:40:55 +1000 Received: (from djk@localhost) by boombox.cyber.com.au (8.12.8/8.12.8/Submit) id i5BNesJF028481; Sat, 12 Jun 2004 09:40:54 +1000 From: David Keegel Message-Id: <200406112340.i5BNesJF028481@boombox.cyber.com.au> Subject: Re: [Dovecot] Fedora dovecot Testing Needed In-Reply-To: from Kenneth Porter at "Jun 11, 2004 02:48:26 pm" To: Warren Togami Date: Sat, 12 Jun 2004 09:40:54 +1000 (EST) X-Mailer: ELM [version 2.4ME+ PL66 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2004 23:48:35 -0000 X-UID: 9468 Status: O ] --On Thursday, June 03, 2004 8:01 PM -1000 Warren Togami ] wrote: ] ] > http://people.redhat.com/wtogami/temp/dovecot/ ] > dovecot-0.99.10.5 binary packages for FC1 and FC2 are available here. I ] > need feedback from Fedora users with THESE ACTUAL BINARIES before pushing ] > them to official updates. ] > ] > Warren Togami ] > wtogami@redhat.com ] We have been successfully running it on Fedora Core 1 for 3 days now at a client who was having 0.99.10.4-4 crashing due to SSL issues. This client has one mail server with over 200 users on 15 domains at multiple sites, using pop and imap. ___________________________________________________________________________ David Keegel http://www.cyber.com.au/users/djk/ Cybersource P/L: Linux/Unix Systems Administration Consulting/Contracting From alien@12inch.com Sat Jun 12 04:52:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 67F68C000D8E; Sat, 12 Jun 2004 04:52:57 +0300 (EEST) Received: from uchuu.12inch.com (uchuu.12inch.com [210.158.203.253]) by talvi.dovecot.org (Postfix) with ESMTP id 2862FC0007B4 for ; Sat, 12 Jun 2004 04:52:52 +0300 (EEST) Received: from [192.168.200.10] (YahooBB219195144139.bbtec.net [219.195.144.139]) (authenticated bits=0) by uchuu.12inch.com (8.12.10/8.12.10) with ESMTP id i5C1jARv000954 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Sat, 12 Jun 2004 10:45:10 +0900 Message-ID: <40CA6025.4060304@12inch.com> Date: Sat, 12 Jun 2004 10:45:09 +0900 From: alan premselaar User-Agent: Mozilla Thunderbird 0.6+ (Macintosh/20040610) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Disposition: SMTP AUTH: alien X-SPF-Header: uchuu: domain of alien@12inch.com designates 219.195.144.139 as permitted sender X-Scanned-By: MIMEDefang 2.39 Subject: [Dovecot] some messages showing up twice X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jun 2004 01:52:59 -0000 X-UID: 9469 Status: O I've recently installed dovecot 0.99.10.5 on a redhat 7.3 machine. Everything seems to be running fine and smoothly for the most part, however in the past few days I've seen a couple of duplicate emails (and so have a few of my users) which don't appear to have been processed twice by sendmail. also, on one of my IMAP sub-folders my mail client (mozilla thunderbird version 0.6+ (20040610) nightly) reported 1 unread email, but it didn't show up in the list. it appears that the index for that subfolder got corrupted (i moved all the .index* files to a backup directory and when i checked that folder, it recreated the index files and then showed me the one unread email) I realize that i'm using a nightly build of a beta mail client, but some of my users reporting similar troubles are using Mail.app and other clients. does anybody have any suggestions as to what I might do to get some useful debug info and/or find the cause of this problem? thanks, alan From djk@cybersource.com.au Sat Jun 12 06:33:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4140EC000D8E; Sat, 12 Jun 2004 06:33:45 +0300 (EEST) Received: from boombox.cyber.com.au (203-217-38-144.dyn.iinet.net.au [203.217.38.144]) by talvi.dovecot.org (Postfix) with ESMTP id 4D21BC0007B4 for ; Sat, 12 Jun 2004 06:33:41 +0300 (EEST) Received: from boombox.cyber.com.au (localhost [127.0.0.1]) by boombox.cyber.com.au (8.12.8/8.12.8) with ESMTP id i5C3Q4AV031994; Sat, 12 Jun 2004 13:26:04 +1000 Received: (from djk@localhost) by boombox.cyber.com.au (8.12.8/8.12.8/Submit) id i5C3Q3Ac031992; Sat, 12 Jun 2004 13:26:03 +1000 From: David Keegel Message-Id: <200406120326.i5C3Q3Ac031992@boombox.cyber.com.au> Subject: Re: [Dovecot] folders via softlink In-Reply-To: <1086882404.4162.142.camel@hurina> from Timo Sirainen at "Jun 10, 2004 06:46:44 pm" To: Timo Sirainen Date: Sat, 12 Jun 2004 13:26:03 +1000 (EST) X-Mailer: ELM [version 2.4ME+ PL66 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: Chris Barnes , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jun 2004 03:33:46 -0000 X-UID: 9470 Status: O -- Start of PGP signed section. ] On Tue, 2004-06-08 at 19:23, Chris Barnes wrote: ] > I have recently switched from the UW imap server to dovecot and things ] > seem to be working nicely. One thing that I can't seem to figure out ] > however, is how to get dovecot to show folders that are a softlink. ] ] Dovecot currently follows symlinks, Does dovecot still follow symlinks to work out whether something is a mail folder, if the maildir-stat-dirs.patch is installed? Should + else if (d->d_type != DT_UNKNOWN) be something like + else if (d->d_type != DT_UNKNOWN && d->d_type != DT_LNK) ___________________________________________________________________________ David Keegel http://www.cyber.com.au/users/djk/ Cybersource P/L: Linux/Unix Systems Administration Consulting/Contracting From shiva@sewingwitch.com Sat Jun 12 07:12:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 51F8BC000DCF; Sat, 12 Jun 2004 07:12:48 +0300 (EEST) Received: from matureasskickers.net (matureasskickers.net [66.28.14.59]) by talvi.dovecot.org (Postfix) with ESMTP id EE63FC0007B4 for ; Sat, 12 Jun 2004 07:12:44 +0300 (EEST) Received: from home.sewingwitch.com (c-24-7-84-78.client.comcast.net [24.7.84.78]) (authenticated bits=0) by matureasskickers.net (8.12.8/8.12.8) with ESMTP id i5C4560e007893; Sat, 12 Jun 2004 00:05:06 -0400 Received: from [10.169.6.246] (segw.microprecisionautomation.com [69.17.55.168]) by home.sewingwitch.com (8.12.8/8.12.8) with ESMTP id i5C454Zn020340; Fri, 11 Jun 2004 21:05:05 -0700 Date: Fri, 11 Jun 2004 21:05:04 -0700 From: Kenneth Porter To: Warren Togami , dovecot@dovecot.org Subject: Re: [Dovecot] Fedora dovecot Testing Needed Message-ID: <2C61BC007D34BFE2A5130395@[10.169.6.246]> In-Reply-To: References: <40C01026.4090805@togami.com> X-Mailer: Mulberry/3.1.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Scanned-By: MIMEDefang 2.40 X-Scanned-By: MIMEDefang 2.42 Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jun 2004 04:12:48 -0000 X-UID: 9471 Status: O --On Friday, June 11, 2004 2:48 PM -0700 Kenneth Porter wrote: > I've been running it since last week with 4 users (3 POP, 1 IMAP) and no > complaints, using mbox. I'm the IMAP user. Forgot to add, I'm running on FC2. I'm also using it with several mbox folders in ~/mail, delivered by procmail recipes. From dakota@menta.net Sat Jun 12 19:00:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D4A69C000DD2; Sat, 12 Jun 2004 19:00:18 +0300 (EEST) Received: from hard.microlabsoft.com (152.Red-80-32-137.pooles.rima-tde.net [80.32.137.152]) by talvi.dovecot.org (Postfix) with ESMTP id B1862C000DCF for ; Sat, 12 Jun 2004 19:00:11 +0300 (EEST) Received: from localhost (linux.hard.microlaboft.com [127.0.0.1]) by hard.microlabsoft.com (Postfix/MJ-1.08) with ESMTP id 662F7176A7C for ; Sat, 12 Jun 2004 17:52:28 +0200 (CEST) Received: from hard.microlabsoft.com ([127.0.0.1]) by localhost (hard.microlabsoft.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01943-07 for ; Sat, 12 Jun 2004 17:52:26 +0200 (CEST) Received: from dakotapiv (dom9-197.menta.net [62.57.112.197]) by hard.microlabsoft.com (Postfix/MJ-1.08) with ESMTP id D1AD8176A7B for ; Sat, 12 Jun 2004 17:52:24 +0200 (CEST) Message-ID: <030501c45095$402b5f70$3200000a@dakotapiv> From: "Javi Pardo (DAKOTA)" To: Date: Sat, 12 Jun 2004 17:52:16 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Virus-Scanned: by amavisd-new at hard.microlabsoft.com 1.0 Subject: [Dovecot] password and mysql ? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jun 2004 16:00:19 -0000 X-UID: 9472 Status: O Hello i am postfix and dovecot with the authentication with the password file = of system is possible added virtual domains with mysql? with the two metods?=20 regards dakota@dakotabcn.net Administrador Servidor dakotabcn.net LINUX Registrered USER 93707 :) P.o Box 579 08913 Badalona (Barcelona) SPAIN firmas GnuPG en http://pgp.escomposlinux.org/ dakota@menta.net || dakota@escomposlinux.org - Equipos PIV 2.2 Ghz - 1.5 Gb RAM - W-XP Pro Dual Xeon 2.8Ghz - 1 Gb Ram - Linux Fedora Core 1 Firma para spammers: test@spamout.com.ar (no usar!!!) From alsbergt@cs.huji.ac.il Mon Jun 14 10:01:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D0E98C000E0C; Mon, 14 Jun 2004 10:01:41 +0300 (EEST) Received: from cs1.cs.huji.ac.il (cs1.cs.huji.ac.il [132.65.16.10]) by talvi.dovecot.org (Postfix) with ESMTP id 0C886C000E08 for ; Mon, 14 Jun 2004 10:01:39 +0300 (EEST) Received: from ludo.cs.huji.ac.il ([132.65.80.122] ident=exim) by cs1.cs.huji.ac.il with esmtp id 1BZlLt-0007LN-Qw for dovecot@dovecot.org; Mon, 14 Jun 2004 09:53:53 +0300 Received: from alsbergt by ludo.cs.huji.ac.il with local (Exim 4.34 (FreeBSD)) id 1BZlLt-0004f7-O6 for dovecot@dovecot.org; Mon, 14 Jun 2004 09:53:53 +0300 Date: Mon, 14 Jun 2004 09:53:53 +0300 From: Tom Alsberg To: Dovecot Mailing List Message-ID: <20040614065352.GA17855@cs.huji.ac.il> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Face: "5"j@Y1Peoz1; ftTv>\|['ox-csmV+:_RDNdi/2lSe2x?0:HVAeVW~ajwQ7RfDlcb^18eJ; t,O,s5-aNdU/DJ2E8h1s,..4}N9$27u`pWmH|; s!zlqqVwr9R^_ji=1\3}Z6gQBYyQ]{gd5-V8s^fYf{$V2*_&S>eA|SH@Y\hOVUjd[5eah{EO@gCr.ydSpJHJIU[QsH~bC?$C@O:SzF=CaUxp80-iknM(]q(W List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 07:01:42 -0000 X-UID: 9473 Status: O Content-Length: 1153 A little problem, which is bugging me: when using PAM authentication, Dovecot (0.99.5) does not set the PAM_RHOST item, so the PAM modules cannot know who the client is. We need this for some PAM module doing access control. Changing passdb-pam.c to pam_set_item it seems trivial, but I'm bugged as to how to get the client name from there. It seems not to be available in the auth_request strut or anything from there. I tried even adding an upwards reference from there to the struct client *, but then I see that there are three structs named client and two structs named auth_request, and somehow I got into trouble of passing it cleanly. Any help or guidance for it is greatly appreciated. (I know Dovecot 0.99 is not really under development and such stuff is done in Dovecot 1.0 now, but that's not yet stable and for now we're using 0.99 where it would help). Thanks, -- Tom -- Tom Alsberg - hacker (being the best description fitting this space) Web page: http://www.cs.huji.ac.il/~alsbergt/ DISCLAIMER: The above message does not even necessarily represent what my fingers have typed on the keyboard, save anything further. From chibi@gol.com Mon Jun 14 11:34:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 79667C000DD2; Mon, 14 Jun 2004 11:34:07 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id 172F0C000DCF for ; Mon, 14 Jun 2004 11:34:04 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BZmnM-00084s-00 for ; Mon, 14 Jun 2004 17:26:20 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 14 Jun 2004 17:26:20 +0900 From: Christian Balzer Message-Id: Subject: [Dovecot] Wishlist item, POP3 welcome message X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 08:34:08 -0000 X-UID: 9474 Status: O Hello, With qpopper you get something like this after a successful login: --- +OK test has 6 visible messages (0 hidden) in 11822 octets. --- This gives a clueful user or support people a quick status about the size of this mailbox, very helpful in full quota scenarios. Would be nice if the next dovecot would have such a feature as well. I doubt the same is (easily) applicable for IMAP (though would be trivial once maildirsize is supported). Another thing would be PIPELINING for POP3, but I doubt it's all that helpful in this day and age of bountiful broadband. Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From discussion-lists@linnet.org Mon Jun 14 12:05:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A949AC000DDF; Mon, 14 Jun 2004 12:05:38 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id 87AD9C000DD2 for ; Mon, 14 Jun 2004 12:05:36 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 7E86913935E; Mon, 14 Jun 2004 04:57:47 -0400 (EDT) Received: from vaio.linnet.org (mk-ns500-1.uk.tiscali.com [212.74.112.53]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id B0DB013934B; Mon, 14 Jun 2004 04:57:46 -0400 (EDT) Received: from lists by vaio.linnet.org with local (Exim 4.30) id 1BZnHs-000FJF-3a; Mon, 14 Jun 2004 09:57:52 +0100 Date: Mon, 14 Jun 2004 09:57:52 +0100 From: Brian Candler To: Christian Balzer Subject: Re: [Dovecot] Wishlist item, POP3 welcome message Message-ID: <20040614085751.GA58843@uk.tiscali.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 09:05:38 -0000 X-UID: 9475 Status: O On Mon, Jun 14, 2004 at 05:26:20PM +0900, Christian Balzer wrote: > > With qpopper you get something like this after a successful login: > --- > +OK test has 6 visible messages (0 hidden) in 11822 octets. > --- > > This gives a clueful user or support people a quick status about the > size of this mailbox, very helpful in full quota scenarios. Note that you can just type "STAT" to get the same information. Regards, Brian. From csa@cyberdude.ru Mon Jun 14 13:39:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5DFB8C000DEF; Mon, 14 Jun 2004 13:39:00 +0300 (EEST) Received: from zeon.inlife.ru (inlife.ru [213.171.60.156]) by talvi.dovecot.org (Postfix) with SMTP id 2D4E7C000DE9 for ; Mon, 14 Jun 2004 13:38:57 +0300 (EEST) Received: (qmail 27742 invoked from network); 14 Jun 2004 10:29:46 -0000 Received: from unknown (HELO ?192.168.4.12?) (195.34.23.225) by inlife.ru with SMTP; 14 Jun 2004 10:29:46 -0000 Message-ID: <40CD7D25.5040205@cyberdude.ru> Date: Mon, 14 Jun 2004 14:25:41 +0400 From: Chernomorets Sergey User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] vpopmail and open smtp relay X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 10:39:00 -0000 X-UID: 9476 Status: O Content-Length: 4075 I'm using vpopmail's POP-before-SMTP auth, but dovecot don't support it, so I'm wrote this patch ============================================================== diff -Naur dovecot-0.99.10.5/src/auth/auth-login-interface.h dovecot-0.99.10.5-patched/src/auth/auth-login-interface.h --- dovecot-0.99.10.5/src/auth/auth-login-interface.h Sun May 18 16:26:28 2003 +++ dovecot-0.99.10.5-patched/src/auth/auth-login-interface.h Mon Jun 14 13:18:15 2004 @@ -1,6 +1,10 @@ #ifndef __AUTH_LOGIN_INTERFACE_H #define __AUTH_LOGIN_INTERFACE_H +#ifdef PASSDB_VPOPMAIL +#include "network.h" +#endif + /* max. size for auth_login_request_continue.data[] */ #define AUTH_LOGIN_MAX_REQUEST_DATA_SIZE 4096 @@ -50,6 +54,10 @@ enum auth_mech mech; enum auth_protocol protocol; + +#ifdef PASSDB_VPOPMAIL + struct ip_addr client_ip; +#endif }; /* Continue authentication request */ diff -Naur dovecot-0.99.10.5/src/auth/mech.c dovecot-0.99.10.5-patched/src/auth/mech.c --- dovecot-0.99.10.5/src/auth/mech.c Sun May 18 16:26:28 2003 +++ dovecot-0.99.10.5-patched/src/auth/mech.c Mon Jun 14 13:27:33 2004 @@ -98,7 +98,10 @@ auth_request->conn = conn; auth_request->id = request->id; auth_request->protocol = request->protocol; - +#ifdef PASSDB_VPOPMAIL + auth_request->client_ip = request->client_ip; +#endif + hash_insert(conn->auth_requests, POINTER_CAST(request->id), auth_request); } diff -Naur dovecot-0.99.10.5/src/auth/mech.h dovecot-0.99.10.5-patched/src/auth/mech.h --- dovecot-0.99.10.5/src/auth/mech.h Sun May 18 16:26:28 2003 +++ dovecot-0.99.10.5-patched/src/auth/mech.h Mon Jun 14 13:26:29 2004 @@ -19,6 +19,10 @@ enum auth_protocol protocol; mech_callback_t *callback; +#ifdef PASSDB_VPOPMAIL + struct ip_addr client_ip; +#endif + int (*auth_continue)(struct auth_request *auth_request, struct auth_login_request_continue *request, const unsigned char *data, diff -Naur dovecot-0.99.10.5/src/auth/passdb-vpopmail.c dovecot-0.99.10.5-patched/src/auth/passdb-vpopmail.c --- dovecot-0.99.10.5/src/auth/passdb-vpopmail.c Thu Feb 20 03:46:51 2003 +++ dovecot-0.99.10.5-patched/src/auth/passdb-vpopmail.c Mon Jun 14 13:29:49 2004 @@ -14,6 +14,8 @@ #include "userdb-vpopmail.h" +#include "env-util.h" + static void vpopmail_verify_plain(struct auth_request *request, const char *password, verify_plain_callback_t *callback) @@ -21,6 +23,7 @@ char vpop_user[VPOPMAIL_LIMIT], vpop_domain[VPOPMAIL_LIMIT]; struct vqpasswd *vpw; int result; + const char *ip_addr_fe; vpw = vpopmail_lookup_vqp(request->user, vpop_user, vpop_domain); @@ -57,6 +60,15 @@ return; } + /* it is needed for open smtp relay */ + + ip_addr_fe = net_ip2addr(&request->client_ip); + if (ip_addr_fe == NULL) + ip_addr_fe = "??"; + + env_put(t_strconcat("TCPREMOTEIP=", ip_addr_fe, NULL)); + open_smtp_relay(); + callback(PASSDB_RESULT_OK, request); } diff -Naur dovecot-0.99.10.5/src/login-common/auth-connection.c dovecot-0.99.10.5-patched/src/login-common/auth-connection.c --- dovecot-0.99.10.5/src/login-common/auth-connection.c Mon May 26 19:27:13 2003 +++ dovecot-0.99.10.5-patched/src/login-common/auth-connection.c Mon Jun 14 13:21:22 2004 @@ -298,6 +298,9 @@ struct auth_connection *conn; struct auth_request *request; struct auth_login_request_new auth_request; +#ifdef PASSDB_VPOPMAIL + struct client *_client = context; +#endif if (auth_reconnect) auth_connect_missing(); @@ -325,6 +328,9 @@ auth_request.protocol = protocol; auth_request.mech = request->mech; auth_request.id = request->id; +#ifdef PASSDB_VPOPMAIL + auth_request.client_ip = _client->ip; +#endif if (o_stream_send(request->conn->output, &auth_request, sizeof(auth_request)) < 0) { errno = request->conn->output->stream_errno; From tallison@tacocat.net Mon Jun 14 14:19:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9280BC00280C; Mon, 14 Jun 2004 14:19:50 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id 6E18DC000DEF for ; Mon, 14 Jun 2004 14:19:47 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id DF5224C070 for ; Mon, 14 Jun 2004 07:12:05 -0400 (EDT) Message-ID: <40CD8805.3010208@tacocat.net> Date: Mon, 14 Jun 2004 07:12:05 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] breakin' dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 11:19:50 -0000 X-UID: 9477 Status: O Content-Length: 1675 I know this is cruel, but I figured out a way to break dovecot, temporarily. The really great news is that it recovers nicely. I'm also not sure if anything can be done about this, since I've seen the same thing happen with courier-imap, uw-imap, and maybe cyrus-imap. I used cyrus-imap for such a short period of time that I didn't get to really test it much. how to... (this was done on a fast ethernet network) get a folder with some 1,000+ unread/unseen emails. pop in with mozilla mail and wait for it to download all the mail information from ther server. press and hold the delete key. After about 300 emails being deleted, the imap server will appear to "freeze" and the "M" will keep cycling as if it's doing something. This will not recover until I move off the directory and return to it. hold delete key and repeat. If you do anything less than holding it down, it probably won't fail. It's a timing issue. I'm really not sure if it's even worth looking at. I'm not trying to identify this as a bug/defect/anything. But when I get a new piece of software I am really interested in what it does when it chokes. An old boss of mine would take my user applications and test them my rolling his hands across the keyboard for about a minute and if it hadn't crashed or entered bad data, it was a success. Please note that when I did this under courier-imap, it would stop refreshing itself from any/all directories until I logged out ( quit mozillia ) and logged back in again. So I would consider this to be a vast improvement in that regard. I should check what it logs when this happens, my guess is...nothing because it's frozen. From discussion-lists@linnet.org Mon Jun 14 14:24:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CA3AAC00282B; Mon, 14 Jun 2004 14:24:57 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id A6D59C00280C for ; Mon, 14 Jun 2004 14:24:55 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id BE66F13935E; Mon, 14 Jun 2004 07:17:06 -0400 (EDT) Received: from vaio.linnet.org (mk-ns500-1.uk.tiscali.com [212.74.112.53]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 9210813923B; Mon, 14 Jun 2004 07:17:05 -0400 (EDT) Received: from lists by vaio.linnet.org with local (Exim 4.30) id 1BZpSg-000FRx-Tw; Mon, 14 Jun 2004 12:17:10 +0100 Date: Mon, 14 Jun 2004 12:17:10 +0100 From: Brian Candler To: Tom Allison Subject: Re: [Dovecot] breakin' dovecot Message-ID: <20040614111710.GA59381@uk.tiscali.com> References: <40CD8805.3010208@tacocat.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40CD8805.3010208@tacocat.net> User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 11:24:57 -0000 X-UID: 9478 Status: O Content-Length: 1058 On Mon, Jun 14, 2004 at 07:12:05AM -0400, Tom Allison wrote: > I know this is cruel, but I figured out a way to break dovecot, > temporarily. The really great news is that it recovers nicely. > > I'm also not sure if anything can be done about this, since I've seen > the same thing happen with courier-imap, uw-imap, and maybe cyrus-imap. > I used cyrus-imap for such a short period of time that I didn't get to > really test it much. > > how to... > (this was done on a fast ethernet network) > get a folder with some 1,000+ unread/unseen emails. > pop in with mozilla mail and wait for it to download all the mail > information from ther server. > press and hold the delete key. After about 300 emails being deleted, > the imap server will appear to "freeze" and the "M" will keep cycling as > if it's doing something. Sounds to me that you found a way to break Mozilla, not dovecot and courier-imap and uw-imap identically :-) Or do you have an example of an IMAP server which doesn't cause Mozilla to freeze in this way? Regards, Brian. From tallison@tacocat.net Mon Jun 14 14:29:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B2F0CC00286B; Mon, 14 Jun 2004 14:29:02 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id DFCECC00280C for ; Mon, 14 Jun 2004 14:28:59 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id 3617E4C070; Mon, 14 Jun 2004 07:21:19 -0400 (EDT) Message-ID: <40CD8A2F.10400@tacocat.net> Date: Mon, 14 Jun 2004 07:21:19 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Brian Candler , dovecot@dovecot.org Subject: Re: [Dovecot] breakin' dovecot References: <40CD8805.3010208@tacocat.net> <20040614111710.GA59381@uk.tiscali.com> In-Reply-To: <20040614111710.GA59381@uk.tiscali.com> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 11:29:02 -0000 X-UID: 9479 Status: O Brian Candler wrote: > Sounds to me that you found a way to break Mozilla, not dovecot and > courier-imap and uw-imap identically :-) > > Or do you have an example of an IMAP server which doesn't cause Mozilla to > freeze in this way? > > Regards, > > Brian. > Good point!!!! No clue!! I don't remember doing this with cyrus-imap. But, if it is mozilla then it's obviously not your (dovecot) problem. I think it's actually a bonus that dovecot-mozilla recovers from this much better than courier-mozilla. I suppose I could try it with pine or kmail? From mstan@asesoft.ro Mon Jun 14 14:49:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4B994C00286E; Mon, 14 Jun 2004 14:49:22 +0300 (EEST) Received: from www.net-xt.com (www.asesoft.ro [194.102.96.11]) by talvi.dovecot.org (Postfix) with ESMTP id 4AF4FC000DD2 for ; Mon, 14 Jun 2004 14:49:20 +0300 (EEST) Received: from [192.168.96.20] (helo=asesoft.ro) by www.net-xt.com with asmtp (TLSv1:RC4-MD5:128) (Exim 4.30) id 1BZqdC-0005zP-33 for dovecot@dovecot.org; Mon, 14 Jun 2004 14:32:06 +0200 Message-ID: <40CD8F24.7040209@asesoft.ro> Date: Mon, 14 Jun 2004 14:42:28 +0300 From: Marius Stan User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.2 (/) X-Spam-Report: Spam detection software, running on the system "www.net-xt.com", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or block similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hello, I'm in the process of migrating from qpopper to dovecot and I've stumbled upon the least expected thing: In qpopper I can specify a 'default domain', which will be used if an user will only issue his username (not the whole email address) when logging in. Because of this, the users in my main domain don't use the whole email address when getting their mail. I'd hate to have to call each of them and guide through their OE menus to fix this issue, so I must ask: Is there any way at all of specifying a default domain in dovecot ? [...] Content analysis details: (0.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.2 AWL AWL: Auto-whitelist adjustment Subject: [Dovecot] Default domain ? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 11:49:22 -0000 X-UID: 9480 Status: O Hello, I'm in the process of migrating from qpopper to dovecot and I've stumbled upon the least expected thing: In qpopper I can specify a 'default domain', which will be used if an user will only issue his username (not the whole email address) when logging in. Because of this, the users in my main domain don't use the whole email address when getting their mail. I'd hate to have to call each of them and guide through their OE menus to fix this issue, so I must ask: Is there any way at all of specifying a default domain in dovecot ? Thanks, Marius From tallison@tacocat.net Mon Jun 14 14:53:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4334EC002902; Mon, 14 Jun 2004 14:53:17 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id 4DDDCC00286F for ; Mon, 14 Jun 2004 14:53:15 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id A160A4C070 for ; Mon, 14 Jun 2004 07:45:34 -0400 (EDT) Message-ID: <40CD8FDE.1000206@tacocat.net> Date: Mon, 14 Jun 2004 07:45:34 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] disconnected errors X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 11:53:17 -0000 X-UID: 9481 Status: O Jun 14 07:35:20 cling imap-login: Login: tallison [192.168.1.10] Jun 14 07:35:21 cling dovecot: child 17755 (imap) killed with signal 11 --- I run into this when I try to enter one folder. The rest are fine. From djk@cybersource.com.au Mon Jun 14 14:58:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AA6F3C002907; Mon, 14 Jun 2004 14:58:43 +0300 (EEST) Received: from boombox.cyber.com.au (203-217-38-144.dyn.iinet.net.au [203.217.38.144]) by talvi.dovecot.org (Postfix) with ESMTP id 002D5C002904 for ; Mon, 14 Jun 2004 14:58:39 +0300 (EEST) Received: from boombox.cyber.com.au (localhost [127.0.0.1]) by boombox.cyber.com.au (8.12.8/8.12.8) with ESMTP id i5EBooAV014722; Mon, 14 Jun 2004 21:50:51 +1000 Received: (from djk@localhost) by boombox.cyber.com.au (8.12.8/8.12.8/Submit) id i5EBooA9014720; Mon, 14 Jun 2004 21:50:50 +1000 From: David Keegel Message-Id: <200406141150.i5EBooA9014720@boombox.cyber.com.au> Subject: Re: [Dovecot] Default domain ? In-Reply-To: <40CD8F24.7040209@asesoft.ro> from Marius Stan at "Jun 14, 2004 02:42:28 pm" To: Marius Stan Date: Mon, 14 Jun 2004 21:50:50 +1000 (EST) X-Mailer: ELM [version 2.4ME+ PL66 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 11:58:43 -0000 X-UID: 9482 Status: O Content-Length: 1056 ] Hello, ] ] I'm in the process of migrating from qpopper to dovecot and I've ] stumbled upon the least expected thing: ] In qpopper I can specify a 'default domain', which will be used if an ] user will only issue his username (not the whole email address) when ] logging in. Because of this, the users in my main domain don't use the ] whole email address when getting their mail. ] I'd hate to have to call each of them and guide through their OE menus ] to fix this issue, so I must ask: ] Is there any way at all of specifying a default domain in dovecot ? Try setting auth_default_realm = ... in dovecot.conf. The comment above it is: # Default realm to use if none was specified. Would someone like to suggest a more descriptive comment so more people looking at dovecot.conf can figure this out for themselves? ___________________________________________________________________________ David Keegel http://www.cyber.com.au/users/djk/ Cybersource P/L: Linux/Unix Systems Administration Consulting/Contracting From kiwi@oav.net Mon Jun 14 15:43:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 94A15C00280C; Mon, 14 Jun 2004 15:43:58 +0300 (EEST) Received: from akira.oav.net (akira.oav.net [195.20.105.157]) by talvi.dovecot.org (Postfix) with ESMTP id 6D757C000E09 for ; Mon, 14 Jun 2004 15:43:56 +0300 (EEST) Received: from localhost (localhost.oav.net [127.0.0.1]) by akira.oav.net (Postfix) with ESMTP id E01ED2A4A4; Mon, 14 Jun 2004 14:36:12 +0200 (CEST) (envelope-from kiwi@oav.net) Received: from akira.oav.net ([127.0.0.1]) by localhost (akira.oav.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 58343-02-55; Mon, 14 Jun 2004 14:36:10 +0200 (CEST) Received: from [10.0.1.9] (babel.zehc.net [213.36.100.145]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by akira.oav.net (Postfix) with ESMTP id 1A5652A498; Mon, 14 Jun 2004 14:36:07 +0200 (CEST) (envelope-from kiwi@oav.net) In-Reply-To: <20040614111710.GA59381@uk.tiscali.com> References: <40CD8805.3010208@tacocat.net> <20040614111710.GA59381@uk.tiscali.com> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <6846025D-BDFF-11D8-86D8-000A958871B8@oav.net> Content-Transfer-Encoding: 7bit From: Xavier Beaudouin Subject: Re: [Dovecot] breakin' dovecot Date: Mon, 14 Jun 2004 14:36:07 +0200 To: Brian Candler X-Mailer: Apple Mail (2.618) X-Virus-Scanned: by amavisd-new at akira.oav.net X-Spam-Status: No, hits=0.0 tagged_above=-999.0 required=6.3 tests= X-Spam-Level: Cc: Tom Allison , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 12:43:58 -0000 X-UID: 9483 Status: O > Sounds to me that you found a way to break Mozilla, not dovecot and > courier-imap and uw-imap identically :-) Sounds same for me. On Mail.app (OS X) I currently delete more than 3000 mails in same time (postmaster inbox) every day when I am purging postfix error log messages. So it seems for me this is Mozilla bug not Imap (dovecot, courier-imap, etc...) :) /Xavier -- Xavier Beaudouin - Unix System Administrator & Projects Leader. President of Kazar Organization : http://www.kazar.net/ Please visit http://caudium.net/, home of Caudium & Camas projects From alien@12inch.com Mon Jun 14 18:35:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 57041C000DF2; Mon, 14 Jun 2004 18:35:11 +0300 (EEST) Received: from uchuu.12inch.com (uchuu.12inch.com [210.158.203.253]) by talvi.dovecot.org (Postfix) with ESMTP id 696CDC000DD2 for ; Mon, 14 Jun 2004 18:35:08 +0300 (EEST) Received: from [192.168.200.10] (YahooBB219195144139.bbtec.net [219.195.144.139]) (authenticated bits=0) by uchuu.12inch.com (8.12.10/8.12.10) with ESMTP id i5EFRLcY015973 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 15 Jun 2004 00:27:24 +0900 Message-ID: <40CDC3D4.2020706@12inch.com> Date: Tue, 15 Jun 2004 00:27:16 +0900 From: alan premselaar User-Agent: Mozilla Thunderbird 0.6+ (Macintosh/20040610) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tom Allison Subject: Re: [Dovecot] disconnected errors References: <40CD8FDE.1000206@tacocat.net> In-Reply-To: <40CD8FDE.1000206@tacocat.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Disposition: SMTP AUTH: alien X-Scanned-By: MIMEDefang 2.39 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 15:35:11 -0000 X-UID: 9484 Status: O Tom Allison wrote: > Jun 14 07:35:20 cling imap-login: Login: tallison [192.168.1.10] > Jun 14 07:35:21 cling dovecot: child 17755 (imap) killed with signal 11 > > > --- > > I run into this when I try to enter one folder. > The rest are fine. > I ran into that with one of my folders and I moved the .index* files into a backup directory and tried again and that seemed to fix the problem. I'm not sure what caused it however. hope this helps alan From john.l.villalovos@intel.com Mon Jun 14 22:13:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id EB212C000DD2; Mon, 14 Jun 2004 22:13:12 +0300 (EEST) Received: from caduceus.jf.intel.com (fmr06.intel.com [134.134.136.7]) by talvi.dovecot.org (Postfix) with ESMTP id 4DD99C000DCF for ; Mon, 14 Jun 2004 22:13:08 +0300 (EEST) Received: from petasus.jf.intel.com (petasus.jf.intel.com [10.7.209.6]) by caduceus.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc, v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i5EJ55Le017879 for ; Mon, 14 Jun 2004 19:05:05 GMT Received: from orsmsxvs040.jf.intel.com (orsmsxvs040.jf.intel.com [192.168.65.206]) by petasus.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc, v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i5EJ6b6w009165 for ; Mon, 14 Jun 2004 19:06:38 GMT Received: from orsmsx332.amr.corp.intel.com ([192.168.65.60]) by orsmsxvs040.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004061412052413233 for ; Mon, 14 Jun 2004 12:05:24 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx332.amr.corp.intel.com with Microsoft SMTPSVC(6.0.3790.0); Mon, 14 Jun 2004 12:05:24 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.5.6944.0 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Date: Mon, 14 Jun 2004 12:05:23 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B0106681E@orsmsx410> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Shared folders? Thread-Index: AcRSJDpa/RiD4ptoSxCxRwb77JxY8AAHg2gw From: "Villalovos, John L" To: X-OriginalArrivalTime: 14 Jun 2004 19:05:24.0221 (UTC) FILETIME=[8BEEAAD0:01C45242] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Subject: [Dovecot] Shared folders? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 19:13:14 -0000 X-UID: 9485 Status: O I haven't seen any info on this so I thought I'd ask. Is there support for shared IMAP folders? Quite a few people at work subscribe to the Linux Kernel Mailing List. I thought it would make more sense if there could be a shared LKML folder that they all could use. This would save disk space. Is this posssible? If so how? I am also looking into the idea of doing a local newsgroup of the mailing list but I don't have a news server software setup at the moment. John From epablo@comvoz.com Tue Jun 15 01:30:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B3431C000DE9; Tue, 15 Jun 2004 01:30:45 +0300 (EEST) Received: from comvoz.com (mail.comvoz.net [216.22.81.132]) by talvi.dovecot.org (Postfix) with ESMTP id 0C3C0C000DCF for ; Tue, 15 Jun 2004 01:30:43 +0300 (EEST) Received: from [192.168.0.201] [200.31.138.195] by comvoz.com with ESMTP (SMTPD32-8.11) id A530CAB00DC; Mon, 14 Jun 2004 18:22:40 -0400 From: Pablo Endres To: dovecot@dovecot.org Content-Type: text/plain Organization: ComVoz Comunications Message-Id: <1087251758.4956.10.camel@keymaker> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Mon, 14 Jun 2004 18:22:38 -0400 Content-Transfer-Encoding: 7bit X-IMAIL-SPAM-DNSBL: (sorbs,25300cab00dc3698,127.0.0.10) X-IMAIL-SPAM-DNSBL: (njabl,25300cab00dc3698,127.0.0.3) X-IMAIL-SPAM-VALHELO: (25300cab00dc3698) Subject: [Dovecot] dovecot + Fedora core 1 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 22:30:45 -0000 X-UID: 9486 Status: O Hi, I've installed dovecot-0.99.10.5 using the rpm from Dag Wieers, but when I start it all I get is nothing (but none of the processes are running). I checked the config file and set it up (I'm trying to use it with mysql support, but it doesn't work with traditional config) Any ideas -- Pablo Endres ComVoz Communications USA: +1 954 343-2085 Ext 199 Venezuela: +58 212 7713195 Ext 199 Colombia: +57 1 3256840 Ext 199 From john.l.villalovos@intel.com Tue Jun 15 01:34:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E6002C000DE9; Tue, 15 Jun 2004 01:34:38 +0300 (EEST) Received: from hermes.jf.intel.com (fmr05.intel.com [134.134.136.6]) by talvi.dovecot.org (Postfix) with ESMTP id D9B37C000DCF for ; Tue, 15 Jun 2004 01:34:35 +0300 (EEST) Received: from petasus.jf.intel.com (petasus.jf.intel.com [10.7.209.6]) by hermes.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-outer.mc,v 1.15 2004/01/30 18:16:28 root Exp $) with ESMTP id i5EMSKhS023239; Mon, 14 Jun 2004 22:28:22 GMT Received: from orsmsxvs040.jf.intel.com (orsmsxvs040.jf.intel.com [192.168.65.206]) by petasus.jf.intel.com (8.12.9-20030918-01/8.12.9/d: major-inner.mc,v 1.10 2004/03/01 19:21:36 root Exp $) with SMTP id i5EMRJ7C010515; Mon, 14 Jun 2004 22:27:54 GMT Received: from orsmsx332.amr.corp.intel.com ([192.168.65.60]) by orsmsxvs040.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2004061415263517719 ; Mon, 14 Jun 2004 15:26:35 -0700 Received: from orsmsx410.amr.corp.intel.com ([192.168.65.64]) by orsmsx332.amr.corp.intel.com with Microsoft SMTPSVC(6.0.3790.0); Mon, 14 Jun 2004 15:26:35 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.5.6944.0 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: [Dovecot] dovecot + Fedora core 1 Date: Mon, 14 Jun 2004 15:26:34 -0700 Message-ID: <60C14C611F1DDD4198D53F2F43D8CA3B01066AF4@orsmsx410> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Dovecot] dovecot + Fedora core 1 Thread-Index: AcRSXkanQyKiu8oZR56lkkTmsm6S0QAAE69g From: "Villalovos, John L" To: "Pablo Endres" , X-OriginalArrivalTime: 14 Jun 2004 22:26:35.0471 (UTC) FILETIME=[A6F53DF0:01C4525E] X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com / mimedefang) Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 22:34:39 -0000 X-UID: 9487 Status: O dovecot-bounces@dovecot.org wrote: > Hi, >=20 > I've installed dovecot-0.99.10.5 using the rpm from Dag Wieers, > but when I start it all I get is nothing (but none of the processes > are running).=20 >=20 > I checked the config file and set it up (I'm trying to use it > with mysql support, but it doesn't work with traditional config) Did you look at the output of /var/log/messages? John From epablo@comvoz.com Tue Jun 15 02:11:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9B436C000DE9; Tue, 15 Jun 2004 02:11:24 +0300 (EEST) Received: from comvoz.com (www.comvoz.net [216.22.81.132]) by talvi.dovecot.org (Postfix) with ESMTP id EC551C000DCF for ; Tue, 15 Jun 2004 02:11:21 +0300 (EEST) Received: from [192.168.0.201] [200.31.138.195] by comvoz.com with ESMTP (SMTPD32-8.11) id AE90D8A00DC; Mon, 14 Jun 2004 19:02:40 -0400 Subject: RE: [Dovecot] dovecot + Fedora core 1 From: Pablo Endres To: "Villalovos, John L" In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B01066AF4@orsmsx410> References: <60C14C611F1DDD4198D53F2F43D8CA3B01066AF4@orsmsx410> Content-Type: text/plain Organization: ComVoz Comunications Message-Id: <1087254156.4956.13.camel@keymaker3> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Mon, 14 Jun 2004 19:02:37 -0400 Content-Transfer-Encoding: 7bit X-IMAIL-SPAM-DNSBL: (sorbs,2e8f0d8a00dc37a6,127.0.0.10) X-IMAIL-SPAM-DNSBL: (njabl,2e8f0d8a00dc37a6,127.0.0.3) X-IMAIL-SPAM-VALHELO: (2e8f0d8a00dc37a6) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 23:11:24 -0000 X-UID: 9488 Status: O Yes nothing there -- Pablo Endres ComVoz Communications USA: +1 954 343-2085 Ext 199 Venezuela: +58 212 7713195 Ext 199 Colombia: +57 1 3256840 Ext 199 From tallison@tacocat.net Tue Jun 15 02:50:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A1940C006589; Tue, 15 Jun 2004 02:50:20 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id 85B2AC002913 for ; Tue, 15 Jun 2004 02:50:18 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id A70224C07A; Mon, 14 Jun 2004 19:42:35 -0400 (EDT) Message-ID: <40CE37EB.1010707@tacocat.net> Date: Mon, 14 Jun 2004 19:42:35 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: alan premselaar Subject: Re: [Dovecot] disconnected errors References: <40CD8FDE.1000206@tacocat.net> <40CDC3D4.2020706@12inch.com> In-Reply-To: <40CDC3D4.2020706@12inch.com> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 23:50:20 -0000 X-UID: 9489 Status: O alan premselaar wrote: > Tom Allison wrote: > >> Jun 14 07:35:20 cling imap-login: Login: tallison [192.168.1.10] >> Jun 14 07:35:21 cling dovecot: child 17755 (imap) killed with signal 11 >> >> >> --- >> >> I run into this when I try to enter one folder. >> The rest are fine. >> > > I ran into that with one of my folders and I moved the .index* files > into a backup directory and tried again and that seemed to fix the > problem. I'm not sure what caused it however. > > hope this helps > > alan > How often are the .index files rebuilt? I came back later >10 minutes and it was fine. Self-healing is good... From tss@iki.fi Tue Jun 15 05:26:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DF5A9C000E09; Tue, 15 Jun 2004 05:26:16 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 845CEC000DCF for ; Tue, 15 Jun 2004 05:26:14 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id DE69A1C1D0E1; Tue, 15 Jun 2004 05:18:32 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9091B1C1D0E0; Tue, 15 Jun 2004 05:17:58 +0300 (EEST) Subject: Re: [Dovecot] Wishlist item, POP3 welcome message From: Timo Sirainen To: Christian Balzer In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Pad6UWTl+6ELW8L5TUXG" Message-Id: <1087265878.783.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 05:17:58 +0300 X-Spam-Status: No, hits=-9.0 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 02:26:17 -0000 X-UID: 9490 Status: O Content-Length: 1482 --=-Pad6UWTl+6ELW8L5TUXG Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-14 at 11:26, Christian Balzer wrote: > With qpopper you get something like this after a successful login: > --- > +OK test has 6 visible messages (0 hidden) in 11822 octets. > --- With Dovecot the "+OK" is currently sent by pop3-login process which doesn't yet know that.. I don't think this feature alone is worth the trouble to move it over to pop3 process. Especially because there is the STAT command :) > Another thing would be PIPELINING for POP3, but I doubt it's all that=20 > helpful in this day and age of bountiful broadband.=20 Actually you can support that simply by adding PIPELINING to POP3 capability list. It's already in CVS. Except there's one theoretical(?) problem with it.. pop3-login doesn't transfer buffered data to pop3 process. This means that if something was sent before PASS or AUTH command was finished, it gets lost. I'd think clients wouldn't try sending anything else until they were sure the authentication was finished, but I guess this has to be fixed some day. --=-Pad6UWTl+6ELW8L5TUXG Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAzlxWyUhSUUBViskRAmUBAJ9/BzmL/gSp+AHFyiU+Na/U1SpxtgCfebNT GsDIL23SbY6kEL5L+94T0Z0= =87Rh -----END PGP SIGNATURE----- --=-Pad6UWTl+6ELW8L5TUXG-- From chibi@gol.com Tue Jun 15 05:42:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 419E0C002871; Tue, 15 Jun 2004 05:42:23 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id CB19DC000DCF for ; Tue, 15 Jun 2004 05:42:20 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1Ba3mY-0006mF-00 for ; Tue, 15 Jun 2004 11:34:38 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Subject: Re: [Dovecot] Wishlist item, POP3 welcome message In-reply-to: <1087265878.783.19.camel@hurina> References: <1087265878.783.19.camel@hurina> Comments: In-reply-to Timo Sirainen message dated "Tue, 15 Jun 2004 05:17:58 +0300." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 15 Jun 2004 11:34:38 +0900 From: Christian Balzer Message-Id: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 02:42:23 -0000 X-UID: 9491 Status: O Timo wrote: >On Mon, 2004-06-14 at 11:26, Christian Balzer wrote: >> With qpopper you get something like this after a successful login: >> --- >> +OK test has 6 visible messages (0 hidden) in 11822 octets. >> --- > >With Dovecot the "+OK" is currently sent by pop3-login process which >doesn't yet know that.. I don't think this feature alone is worth the >trouble to move it over to pop3 process. Especially because there is the >STAT command :) > Totally understood and agreed, I blanked on the STAT, thanks to Brian to pointing that out as well. [Pipelining] Guess I'll wait for that until it's well polished, should not be a big time saver anyway. Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From tss@iki.fi Tue Jun 15 05:44:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BD105C002871; Tue, 15 Jun 2004 05:44:29 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id AD937C000DCF for ; Tue, 15 Jun 2004 05:44:27 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 132F41C1D0E2; Tue, 15 Jun 2004 05:36:46 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 020B21C1D0E0; Tue, 15 Jun 2004 05:36:11 +0300 (EEST) Subject: Re: [Dovecot] vpopmail and open smtp relay From: Timo Sirainen To: Chernomorets Sergey In-Reply-To: <40CD7D25.5040205@cyberdude.ru> References: <40CD7D25.5040205@cyberdude.ru> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-V7c7cc8t6Fq1n0/nX5Vx" Message-Id: <1087266971.783.33.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 05:36:11 +0300 X-Spam-Status: No, hits=-9.4 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO, PATCH_UNIFIED_DIFF,PGP_SIGNATURE_2,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 02:44:29 -0000 X-UID: 9492 Status: O Content-Length: 2214 --=-V7c7cc8t6Fq1n0/nX5Vx Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-14 at 13:25, Chernomorets Sergey wrote: > I'm using vpopmail's POP-before-SMTP auth, but dovecot don't support it,=20 > so I'm wrote this patch It's a bit easier in CVS since local/remote IPs are passed. Below is what I committed. See the putenv() change, you most likely want to do the same thing. HAVE_VPOPMAIL_OPEN_SMTP_RELAY check should be added to configure I think.. Index: passdb-vpopmail.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/auth/passdb-vpopmail.c,v retrieving revision 1.6 diff -u -r1.6 passdb-vpopmail.c --- passdb-vpopmail.c 31 May 2004 18:57:25 -0000 1.6 +++ passdb-vpopmail.c 15 Jun 2004 02:42:57 -0000 @@ -14,6 +14,8 @@ =20 #include "userdb-vpopmail.h" =20 +#include + static void vpopmail_verify_plain(struct auth_request *request, const char *password, verify_plain_callback_t *callback) @@ -55,6 +57,25 @@ return; } =20 +#ifdef HAVE_VPOPMAIL_OPEN_SMTP_RELAY + if (strcmp(request->protocol, "POP3") =3D=3D 0 || + strcmp(request->protocol, "IMAP") =3D=3D 0) { + const char *host =3D net_ip2addr(&request->remote_ip); + if (host !=3D NULL) { + /* use putenv() directly rather than env_put() which + would leak memory every time we got here. use a + static buffer for putenv() as SUSv2 requirements + would otherwise corrupt our environment later. */ + static char ip_env[256]; + + i_snprintf(ip_env, sizeof(ip_env), + "TCPREMOTEIP=3D%s", host); + putenv(ip_env); + open_smtp_relay(); + } + } +#endif + callback(PASSDB_RESULT_OK, request); } =20 --=-V7c7cc8t6Fq1n0/nX5Vx Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAzmCbyUhSUUBViskRAqgnAJ9QDQsJNGdbjSMZollF9EParshiGwCffWuC VWFlWWKNfDdDYS1uOpULveM= =X5CT -----END PGP SIGNATURE----- --=-V7c7cc8t6Fq1n0/nX5Vx-- From tss@iki.fi Tue Jun 15 05:49:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 29511C00291A; Tue, 15 Jun 2004 05:49:32 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 4231FC002918 for ; Tue, 15 Jun 2004 05:49:30 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 99F1A1C1D0E2; Tue, 15 Jun 2004 05:41:48 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 72FB81C1D0E0; Tue, 15 Jun 2004 05:41:14 +0300 (EEST) Subject: Re: [Dovecot] Default domain ? From: Timo Sirainen To: David Keegel In-Reply-To: <200406141150.i5EBooA9014720@boombox.cyber.com.au> References: <200406141150.i5EBooA9014720@boombox.cyber.com.au> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-O500F2liL/HbphltgFME" Message-Id: <1087267274.783.35.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 05:41:14 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org, Marius Stan X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 02:49:32 -0000 X-UID: 9493 Status: O --=-O500F2liL/HbphltgFME Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-14 at 14:50, David Keegel wrote: > The comment above it is: > # Default realm to use if none was specified. > Would someone like to suggest a more descriptive comment so more > people looking at dovecot.conf can figure this out for themselves? How about: # Default realm/domain to use if none was specified. This is used for both # SASL realms and appending @domain to username in plaintext logins. That's in CVS now. --=-O500F2liL/HbphltgFME Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAzmHKyUhSUUBViskRAjJbAJ9LrO2ZupR9/SMzWSUA1fOzO4NQXACdHM9P cTPwuQhvR5kBOWP04n2/FRE= =qp7l -----END PGP SIGNATURE----- --=-O500F2liL/HbphltgFME-- From tss@iki.fi Tue Jun 15 05:55:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 19F4BC00291C; Tue, 15 Jun 2004 05:55:03 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 23611C00291A for ; Tue, 15 Jun 2004 05:55:01 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 722891C1D0E1; Tue, 15 Jun 2004 05:47:19 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A400A1C1D0E0; Tue, 15 Jun 2004 05:46:43 +0300 (EEST) Subject: Re: [Dovecot] disconnected errors From: Timo Sirainen To: Tom Allison In-Reply-To: <40CD8FDE.1000206@tacocat.net> References: <40CD8FDE.1000206@tacocat.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-5sSoyMQAvBZJxuc0sd0j" Message-Id: <1087267603.783.41.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 05:46:43 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 02:55:03 -0000 X-UID: 9494 Status: O --=-5sSoyMQAvBZJxuc0sd0j Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-14 at 14:45, Tom Allison wrote: > Jun 14 07:35:20 cling imap-login: Login: tallison [192.168.1.10] > Jun 14 07:35:21 cling dovecot: child 17755 (imap) killed with signal 11 Recently several people have noticed this, but I still haven't got a gdb backtrace which would help fix it. See core dumps section in http://dovecot.org/bugreport.html --=-5sSoyMQAvBZJxuc0sd0j Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAzmMTyUhSUUBViskRAvbpAKCPoPhFPnGDccyT/NE0flOyPSNUpwCghf3r ncbfB3uwNhF/+4xJLfIwQ9s= =a8bt -----END PGP SIGNATURE----- --=-5sSoyMQAvBZJxuc0sd0j-- From tss@iki.fi Tue Jun 15 06:00:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5DF0EC00291D; Tue, 15 Jun 2004 06:00:19 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id E6D53C00291C for ; Tue, 15 Jun 2004 06:00:15 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 3F7031C1D0E1; Tue, 15 Jun 2004 05:52:34 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 12BC41C1D0E0; Tue, 15 Jun 2004 05:52:00 +0300 (EEST) Subject: Re: [Dovecot] Shared folders? From: Timo Sirainen To: "Villalovos, John L" In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B0106681E@orsmsx410> References: <60C14C611F1DDD4198D53F2F43D8CA3B0106681E@orsmsx410> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-S2sdeEHuSs7MLUQ0pBKU" Message-Id: <1087267919.783.47.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 05:51:59 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 03:00:19 -0000 X-UID: 9495 Status: O Content-Length: 1423 --=-S2sdeEHuSs7MLUQ0pBKU Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-14 at 22:05, Villalovos, John L wrote: > I haven't seen any info on this so I thought I'd ask. >=20 > Is there support for shared IMAP folders? >=20 > Quite a few people at work subscribe to the Linux Kernel Mailing List. > I thought it would make more sense if there could be a shared LKML > folder that they all could use. This would save disk space. >=20 > Is this posssible? If so how? Not really with 0.99.10. But it's mostly because the file permissions get set wrong (dovecot-uidlist especially). With symlinks and fixed permissions (use the source) you could do it if you really wanted to :) 1.0-tests have a bit better support for them. You can create dovecot-shared named file in maildir root with wanted permissions (0666) and those will be used for the files. It also supports private per-user message flags for readonly mailboxes (or did at some point, I'm not sure if they still work). Of course, 1.0-tests are still broken. --=-S2sdeEHuSs7MLUQ0pBKU Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAzmRPyUhSUUBViskRAl33AJ0T6M8itrcwSnHmHeQ3O9Bc9hNUyACghC56 UsBUbCL512Vj16bjpqLjI7w= =bGj4 -----END PGP SIGNATURE----- --=-S2sdeEHuSs7MLUQ0pBKU-- From tss@iki.fi Tue Jun 15 06:01:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B47E8C002922; Tue, 15 Jun 2004 06:01:27 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id C23E2C00291C for ; Tue, 15 Jun 2004 06:01:25 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 2688F1C1D0E1; Tue, 15 Jun 2004 05:53:44 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 54AA41C1D0E0; Tue, 15 Jun 2004 05:53:10 +0300 (EEST) Subject: Re: [Dovecot] dovecot + Fedora core 1 From: Timo Sirainen To: Pablo Endres In-Reply-To: <1087251758.4956.10.camel@keymaker> References: <1087251758.4956.10.camel@keymaker> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Z3ZQK2s5bzWBtn0uOi2i" Message-Id: <1087267989.783.49.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 05:53:09 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 03:01:27 -0000 X-UID: 9496 Status: O --=-Z3ZQK2s5bzWBtn0uOi2i Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-15 at 01:22, Pablo Endres wrote: > I've installed dovecot-0.99.10.5 using the rpm from Dag Wieers, > but when I start it all I get is nothing (but none of the processes > are running). >=20 > I checked the config file and set it up (I'm trying to use it > with mysql support, but it doesn't work with traditional config) The error messages are logged in /var/log/mail.log (or something similiar). --=-Z3ZQK2s5bzWBtn0uOi2i Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAzmSVyUhSUUBViskRApL9AJ4+X/0u664Lsj5f3/LGbbV9Q8rAlQCeLnu+ cJlFvDVS0J/ehyohlT0VzvM= =BON5 -----END PGP SIGNATURE----- --=-Z3ZQK2s5bzWBtn0uOi2i-- From tss@iki.fi Tue Jun 15 06:03:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A609AC00292B; Tue, 15 Jun 2004 06:03:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 3198FC00291C for ; Tue, 15 Jun 2004 06:03:50 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 841D81C1D0E1; Tue, 15 Jun 2004 05:56:08 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AD85D1C1D0E0; Tue, 15 Jun 2004 05:55:34 +0300 (EEST) Subject: Re: [Dovecot] password and mysql ? From: Timo Sirainen To: "Javi Pardo (DAKOTA)" In-Reply-To: <030501c45095$402b5f70$3200000a@dakotapiv> References: <030501c45095$402b5f70$3200000a@dakotapiv> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-vddAyk1ZJqBT1R+BJK77" Message-Id: <1087268134.783.52.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 05:55:34 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 03:03:52 -0000 X-UID: 9497 Status: O --=-vddAyk1ZJqBT1R+BJK77 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-06-12 at 18:52, Javi Pardo (DAKOTA) wrote: > i am postfix and dovecot with the authentication with the password file o= f system > is possible added virtual domains with mysql? with the two metods?=20 You want Dovecot to try mysql authentication and then fallback to passwd if user wasn't found from mysql? Not possible with 0.99.10, but is possible with 1.0-tests (which are still broken). --=-vddAyk1ZJqBT1R+BJK77 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAzmUmyUhSUUBViskRAvVxAJ98AiwWlhAFRHI7g45Tya12Fym5FQCfYKlW PSmvkLT2evmtEsXWJ88dHOo= =Eq0K -----END PGP SIGNATURE----- --=-vddAyk1ZJqBT1R+BJK77-- From tss@iki.fi Tue Jun 15 06:14:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 355C8C002930; Tue, 15 Jun 2004 06:14:27 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 1835EC00292D for ; Tue, 15 Jun 2004 06:14:25 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 673611C1D0E3; Tue, 15 Jun 2004 06:06:43 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1D97B1C1D0E0; Tue, 15 Jun 2004 06:06:10 +0300 (EEST) Subject: Re: [Dovecot] PAM_RHOST item From: Timo Sirainen To: Tom Alsberg In-Reply-To: <20040614065352.GA17855@cs.huji.ac.il> References: <20040614065352.GA17855@cs.huji.ac.il> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Woh6hxFnOrxazP3CpBeH" Message-Id: <1087268769.783.63.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 06:06:09 +0300 X-Spam-Status: No, hits=-9.6 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO, PATCH_UNIFIED_DIFF,PGP_SIGNATURE_2,QUOTED_EMAIL_TEXT, RCVD_IN_ORBS,REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot Mailing List X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 03:14:27 -0000 X-UID: 9498 Status: O Content-Length: 2941 --=-Woh6hxFnOrxazP3CpBeH Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-14 at 09:53, Tom Alsberg wrote: > Changing passdb-pam.c to pam_set_item it seems trivial, but I'm bugged > as to how to get the client name from there. It seems not to be > available in the auth_request strut or anything from there. I tried > even adding an upwards reference from there to the struct client *, > but then I see that there are three structs named client and two > structs named auth_request, and somehow I got into trouble of passing > it cleanly. See Chernomorets Sergey's recent post about vpopmail. It has client_ip passed all the way to auth_request. I'll also commit this to CVS: Index: passdb-pam.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/cvs/dovecot/src/auth/passdb-pam.c,v retrieving revision 1.15 diff -u -r1.15 passdb-pam.c --- passdb-pam.c 31 May 2004 18:57:25 -0000 1.15 +++ passdb-pam.c 15 Jun 2004 03:12:37 -0000 @@ -15,6 +15,7 @@ #include "common.h" #include "buffer.h" #include "ioloop.h" +#include "network.h" #include "passdb.h" #include "mycrypt.h" #include "safe-memset.h" @@ -204,7 +205,7 @@ } =20 static void -pam_verify_plain_child(const char *service, const char *user, +pam_verify_plain_child(const struct auth_request *request, const char *ser= vice, const char *password, int fd) { pam_handle_t *pamh; @@ -219,15 +220,21 @@ conv.conv =3D pam_userpass_conv; conv.appdata_ptr =3D &userpass; =20 - userpass.user =3D user; + userpass.user =3D request->user; userpass.pass =3D password; =20 - status =3D pam_start(service, user, &conv, &pamh); + status =3D pam_start(service, request->user, &conv, &pamh); if (status !=3D PAM_SUCCESS) { result =3D PASSDB_RESULT_INTERNAL_FAILURE; str =3D t_strdup_printf("pam_start() failed: %s", pam_strerror(pamh, status)); } else { +#ifdef PAM_RHOST + const char *host =3D net_ip2addr(&request->remote_ip); + if (host !=3D NULL) + pam_set_item(pamh, PAM_RHOST, host); +#endif + status =3D pam_auth(pamh, &str); if ((status2 =3D pam_end(pamh, status)) =3D=3D PAM_SUCCESS) { /* FIXME: check for PASSDB_RESULT_UNKNOWN_USER @@ -360,7 +367,7 @@ =20 if (pid =3D=3D 0) { (void)close(fd[0]); - pam_verify_plain_child(service, request->user, password, fd[1]); + pam_verify_plain_child(request, service, password, fd[1]); _exit(0); } =20 --=-Woh6hxFnOrxazP3CpBeH Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAzmehyUhSUUBViskRArxiAKCA4s2583QslJT3wW8B5JbYEz6pfgCfUyHp l7uuI/9aKzvK2rhmMGjT8wY= =YeOZ -----END PGP SIGNATURE----- --=-Woh6hxFnOrxazP3CpBeH-- From epablo@comvoz.com Tue Jun 15 06:46:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4A3FDC002918; Tue, 15 Jun 2004 06:46:37 +0300 (EEST) Received: from comvoz.com (www.comvoz.com [216.22.81.132]) by talvi.dovecot.org (Postfix) with ESMTP id 85A4FC002871 for ; Tue, 15 Jun 2004 06:46:34 +0300 (EEST) Received: from [192.168.0.201] [200.31.138.195] by comvoz.com with ESMTP (SMTPD32-8.11) id AF37132400DC; Mon, 14 Jun 2004 23:38:31 -0400 Subject: RE: [Dovecot] dovecot + Fedora core 1 From: Pablo Endres To: "Villalovos, John L" In-Reply-To: <60C14C611F1DDD4198D53F2F43D8CA3B01066AF4@orsmsx410> References: <60C14C611F1DDD4198D53F2F43D8CA3B01066AF4@orsmsx410> Content-Type: text/plain Organization: ComVoz Comunications Message-Id: <1087254156.4956.13.camel@keymaker> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Mon, 14 Jun 2004 23:38:29 -0400 Content-Transfer-Encoding: 7bit X-IMAIL-SPAM-DNSBL: (sorbs,6f37132400dc3e65,127.0.0.10) X-IMAIL-SPAM-DNSBL: (njabl,6f37132400dc3e65,127.0.0.3) X-IMAIL-SPAM-VALHELO: (6f37132400dc3e65) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 03:46:37 -0000 X-UID: 9499 Status: O Yes nothing there -- Pablo Endres ComVoz Communications USA: +1 954 343-2085 Ext 199 Venezuela: +58 212 7713195 Ext 199 Colombia: +57 1 3256840 Ext 199 From tss@iki.fi Tue Jun 15 06:52:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4F4F9C002918; Tue, 15 Jun 2004 06:52:21 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 2B6B8C002871 for ; Tue, 15 Jun 2004 06:52:19 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 654021C1D0E1; Tue, 15 Jun 2004 06:44:37 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 216951C1D0E0 for ; Tue, 15 Jun 2004 06:44:04 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-liC8k2ncNPIV59WkG7oS" Message-Id: <1087271043.783.100.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 06:44:03 +0300 X-Spam-Status: No, hits=-8.4 required=5.0 tests=AWL,BAYES_10,PGP_SIGNATURE_2,RCVD_IN_ORBS,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test15 released X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 03:52:21 -0000 X-UID: 9500 Status: O Content-Length: 2111 --=-liC8k2ncNPIV59WkG7oS Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ Maildir code is still having syncing trouble. I thought about fixing mbox code for a chance - if the same problems happen with it too then I at least know that the problems are in indexes instead of maildir syncing itself. So, the biggest change in 1.0-test15 is a new fully functional superfast mbox code. If you can make it corrupt your mboxes I'd like to know about that. I haven't tested it too much yet, but I haven't seen corruption for a while anymore. Superfast as in: - Syncing and modifying the mbox is done in one integrated loop, no more passing through the whole mbox multiple times. - If we know the mbox is synced and we need to modify it, we directly jump to the message(s) needing modification and change only them. This means that with upcoming Dovecot LDA the mbox never needs to be fully parsed. As long as you're not expunging old messages, mboxes with sizes of even gigabytes should be no problem. Still a few remaining issues though: - It gets to infinite loop with 0 sized message body. I'll fix this soon - Recent counters are broken - mbox lock should be kept two extra seconds after syncing. that is required so that we can be sure no-one else has modified the mbox (ie. mtime changes every time) - APPEND command doesn't yet update indexes directly, so they still trigger a full sync - keywords aren't implemented - UW-IMAP style "FOLDER INTERNAL DATA" message is almost supported.. but not quite yet. We're going to use it if it exists, but we won't insert one ourself. This also brings to my mind supporting some other flatfile formats.. Well, I'll write another mail about that. --=-liC8k2ncNPIV59WkG7oS Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAznCDyUhSUUBViskRAsPrAKCb9cfPNigDf/I/HwUqqtNOI+Ti4gCfYF+S MO3mA494kI01IJy5PnBgwEQ= =mhtZ -----END PGP SIGNATURE----- --=-liC8k2ncNPIV59WkG7oS-- From michael@crosscode.org Tue Jun 15 06:58:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 96CF6C00291A; Tue, 15 Jun 2004 06:58:59 +0300 (EEST) Received: from cosby.dhs.org (heidi.crosscode.org [69.50.192.72]) by talvi.dovecot.org (Postfix) with ESMTP id 2D2E0C002871 for ; Tue, 15 Jun 2004 06:58:57 +0300 (EEST) Received: by cosby.dhs.org (Postfix, from userid 1000) id D0A5F13EDAD; Mon, 14 Jun 2004 23:51:14 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by cosby.dhs.org (Postfix) with ESMTP id A22D113ED89 for ; Mon, 14 Jun 2004 23:51:14 -0400 (EDT) Date: Mon, 14 Jun 2004 23:51:14 -0400 (EDT) From: Cc: Subject: Re: [Dovecot] Shared folders? In-Reply-To: <1087267919.783.47.camel@hurina> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 03:58:59 -0000 X-UID: 9501 Status: O Content-Length: 1442 This probably won't work for what you want to do, but with 0.99.10 I just created a second user in /etc/passwd with the same numeric userid (different username). We can both login to the server simultaneously (using seperate passwords) and changes made to the mailbox get from one account to the other fairly quickly. It's perhaps not the neatest way to administer a box, but it works.... - Michael On Tue, 15 Jun 2004, Timo Sirainen wrote: > On Mon, 2004-06-14 at 22:05, Villalovos, John L wrote: > > I haven't seen any info on this so I thought I'd ask. > > > > Is there support for shared IMAP folders? > > > > Quite a few people at work subscribe to the Linux Kernel Mailing List. > > I thought it would make more sense if there could be a shared LKML > > folder that they all could use. This would save disk space. > > > > Is this posssible? If so how? > > Not really with 0.99.10. But it's mostly because the file permissions > get set wrong (dovecot-uidlist especially). With symlinks and fixed > permissions (use the source) you could do it if you really wanted to :) > > 1.0-tests have a bit better support for them. You can create > dovecot-shared named file in maildir root with wanted permissions (0666) > and those will be used for the files. It also supports private per-user > message flags for readonly mailboxes (or did at some point, I'm not sure > if they still work). > > Of course, 1.0-tests are still broken. > > From tss@iki.fi Tue Jun 15 07:09:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CAEDBC00291C; Tue, 15 Jun 2004 07:09:10 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id AC600C002871 for ; Tue, 15 Jun 2004 07:09:08 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id E01AF1C1D0E1; Tue, 15 Jun 2004 07:01:26 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B24B81C1D0E0 for ; Tue, 15 Jun 2004 07:00:52 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-9Q5/E/dHdwH1qATVTx7/" Message-Id: <1087272052.783.119.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 07:00:52 +0300 X-Spam-Status: No, hits=-8.4 required=5.0 tests=AWL,BAYES_10,PGP_SIGNATURE_2,RCVD_IN_ORBS,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] flat file mailbox formats X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 04:09:11 -0000 X-UID: 9502 Status: O Content-Length: 1955 --=-9Q5/E/dHdwH1qATVTx7/ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I've tried to write the new mbox code in a way that it could be moved into generic flat-file library with mbox-specific code being implemented on top of that. The code would be useful for all formats that require modifying message headers to store the metadata. How many such are there? I suppose all such formats could be implemented by separating mails into 3 logical parts: - header ("From ...\n") - mail data (headers and body) - footer ("\n") Except keeping a separate header and footer is kind of annoying, my current code uses: - mail separator ("\nFrom ...\n") - first message header's skip counter: how many characters to remove from mail separator for the first message (1, for \n before the "From ..") - last message's footer Somewhat uglier, but I think all needed formats could be implemented with it? It's also simper and more efficient to implement.. Besides mbox, I know at least two variations which are used: AAAA-box: - I remember seeing this somewhere years ago, but I'm not sure if it's still used or if it has a real name.. - separator is four ^A characters (ascii 1) and LF - header skip counter is 5 - last message footer would be the same ^A^A^A^A\n dotbox: - mails are stored in SMTP format, ie. lines beginning with '.' are prefixed with another '.'. the '.' prefixes will have to be removed for IMAP, so this isn't as simple as others to implement. - separator is ".\n" - header skip counter is 2 - last message footer is ".\n" Any thoughts? --=-9Q5/E/dHdwH1qATVTx7/ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAznR0yUhSUUBViskRAn7lAJsE/83J0XcWJRZJD7kusgwRgByMMgCgiKF+ CCiOEbO/BW1cu4M/GYFiL/s= =oUOm -----END PGP SIGNATURE----- --=-9Q5/E/dHdwH1qATVTx7/-- From charlie@rubberduck.com Tue Jun 15 07:59:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7A985C00291A; Tue, 15 Jun 2004 07:59:41 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 30F35C002871 for ; Tue, 15 Jun 2004 07:59:39 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 5096D1C1D0E0; Tue, 15 Jun 2004 07:51:57 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 4A9731C1D0E1; Tue, 15 Jun 2004 07:51:57 +0300 (EEST) Received: from squeaky.rubberduck.com (unknown [203.28.8.126]) by danu.procontrol.fi (Postfix) with ESMTP id C1E371C1D0E0 for ; Tue, 15 Jun 2004 07:51:22 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by squeaky.rubberduck.com (Postfix) with ESMTP id 34F4ABFC6 for ; Tue, 15 Jun 2004 14:51:00 +1000 (EST) Received: from squeaky.rubberduck.com ([127.0.0.1]) by localhost (squeaky [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 21495-08 for ; Tue, 15 Jun 2004 14:50:56 +1000 (EST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (Client CN "machine.internal.schools.net.au", Issuer "machine.internal.schools.net.au" (verified OK)) by squeaky.rubberduck.com (Postfix) with ESMTP id 85339BFC5 for ; Tue, 15 Jun 2004 14:50:56 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id 522C372AB3B; Tue, 15 Jun 2004 14:50:55 +1000 (EST) Date: Tue, 15 Jun 2004 14:50:55 +1000 From: Charlie Allom To: dovecot@procontrol.fi Message-ID: <20040615045053.GP20969@myinternet.com.au> References: <20040614234225.C7168C002913@talvi.dovecot.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="pwWdILMQNxDD/Cps" Content-Disposition: inline In-Reply-To: <20040614234225.C7168C002913@talvi.dovecot.org> User-Agent: Mutt/1.5.6i X-Virus-Scanned: by amavisd-new at rubberduck.com Cc: Subject: [Dovecot] Re: [dovecot-cvs] dovecot/src/lib fdpass.c,1.28,1.29 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 04:59:41 -0000 X-UID: 9503 Status: O Content-Length: 2390 --pwWdILMQNxDD/Cps Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Will this perhaps fix these? imap-login: Jun 15 12:28:16 Panic: file ioloop.c: line 90: assertion failed: (i o->fd <=3D current_ioloop->highest_fd) dovecot: Jun 15 12:28:16 Error: child 17987 (login) killed with signal 6 imap-login: Jun 15 13:14:58 Panic: file ioloop.c: line 90: assertion failed: (i o->fd <=3D current_ioloop->highest_fd) dovecot: Jun 15 13:14:58 Error: child 13002 (login) killed with signal 6 On Tue, Jun 15, 2004 at 02:42:25AM +0300, cras@procontrol.fi wrote: > Update of /home/cvs/dovecot/src/lib > In directory talvi:/tmp/cvs-serv11171 >=20 > Modified Files: > fdpass.c=20 > Log Message: > Solaris fix by Tim Hurman >=20 >=20 >=20 > Index: fdpass.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /home/cvs/dovecot/src/lib/fdpass.c,v > retrieving revision 1.28 > retrieving revision 1.29 > diff -u -d -r1.28 -r1.29 > --- fdpass.c 1 Dec 2003 19:07:34 -0000 1.28 > +++ fdpass.c 14 Jun 2004 23:42:23 -0000 1.29 > @@ -31,12 +31,20 @@ > #include > =20 > #ifndef CMSG_SPACE > -# define CMSG_ALIGN(len) \ > +# if defined(_CMSG_DATA_ALIGN) && defined(_CMSG_HDR_ALIGN) /* for Sola= ris */ > +# define CMSG_ALIGN(len) _CMSG_DATA_ALIGN(len) > +# define CMSG_SPACE(len) \ > + (_CMSG_DATA_ALIGN(len) + _CMSG_HDR_ALIGN(sizeof(struct cmsghdr))) > +# define CMSG_LEN(len) \ > + (_CMSG_HDR_ALIGN(sizeof(struct cmsghdr)) + (len)) > +# else > +# define CMSG_ALIGN(len) \ > (((len) + sizeof(size_t) - 1) & ~(sizeof(size_t) - 1)) > -# define CMSG_SPACE(len) \ > +# define CMSG_SPACE(len) \ > (CMSG_ALIGN(len) + CMSG_ALIGN(sizeof(struct cmsghdr))) > -# define CMSG_LEN(len) \ > +# define CMSG_LEN(len) \ > (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len)) > +# endif > #endif > =20 > #ifdef SCM_RIGHTS >=20 --=20 =2Esignature 0x14AA7941 --pwWdILMQNxDD/Cps Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFAzoAtqiZDwhSqeUERAmAYAJ0YQqykl1X0D1dVf8TWK9/QsdbBZACfSGd1 evB/AJw+O/ujo61GaHK3s9U= =xez9 -----END PGP SIGNATURE----- --pwWdILMQNxDD/Cps-- From soporte@comvoz.com Tue Jun 15 07:48:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0B7CBC00291A; Tue, 15 Jun 2004 07:48:44 +0300 (EEST) Received: from comvoz.com (mail.comvoz.net [216.22.81.132]) by talvi.dovecot.org (Postfix) with ESMTP id 41006C002871 for ; Tue, 15 Jun 2004 07:48:40 +0300 (EEST) Received: from [192.168.0.201] [200.31.138.195] by comvoz.com with ESMTP (SMTPD32-8.11) id ADC912903AA; Tue, 15 Jun 2004 00:40:41 -0400 From: Pablo Endres To: dovecot@dovecot.org In-Reply-To: <1087251758.4956.10.camel@keymaker> References: <1087251758.4956.10.camel@keymaker> Content-Type: text/plain Message-Id: <1087274438.7900.5.camel@keymaker> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Tue, 15 Jun 2004 00:40:39 -0400 Content-Transfer-Encoding: 7bit X-IMAIL-SPAM-DNSBL: (sorbs,7dc9012903aa3f9b,127.0.0.10) X-IMAIL-SPAM-DNSBL: (njabl,7dc9012903aa3f9b,127.0.0.3) X-IMAIL-SPAM-VALHELO: (7dc9012903aa3f9b) X-Mailman-Approved-At: Tue, 15 Jun 2004 08:05:25 +0300 Subject: [Dovecot] Re: dovecot + Fedora core 1 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 04:48:44 -0000 X-UID: 9504 Status: O Ok got the server working A OK. I can see my mail perfectly via imap using pine, but when I try to use evolution I get the following error: Error while 'Scanning folders in "IMAP server mail.root.com.ve"': Success Any ideas what it could be? Thanks in advance -- Pablo Endres Lozada They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety. -- Benjamin Franklin From tss@iki.fi Tue Jun 15 08:08:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A7AB3C00293F; Tue, 15 Jun 2004 08:08:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id AE2B2C00293C for ; Tue, 15 Jun 2004 08:08:50 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id CC1DF1C1D0E0; Tue, 15 Jun 2004 08:01:08 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id C4C6A1C1D0E1; Tue, 15 Jun 2004 08:01:08 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E0AB21C1D0E0; Tue, 15 Jun 2004 08:00:34 +0300 (EEST) In-Reply-To: <20040615045053.GP20969@myinternet.com.au> References: <20040614234225.C7168C002913@talvi.dovecot.org> <20040615045053.GP20969@myinternet.com.au> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-8--553233128" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Re: [dovecot-cvs] dovecot/src/lib fdpass.c,1.28,1.29 Date: Tue, 15 Jun 2004 08:00:32 +0300 To: Charlie Allom X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 05:08:52 -0000 X-UID: 9505 Status: O --Apple-Mail-8--553233128 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 15.6.2004, at 07:50, Charlie Allom wrote: > Will this perhaps fix these? > > imap-login: Jun 15 12:28:16 Panic: file ioloop.c: line 90: assertion > failed: (i > o->fd <= current_ioloop->highest_fd) I don't think so. Does this happen every time when logging in? With Solaris? --Apple-Mail-8--553233128 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD4DBQFAzoJwyUhSUUBViskRAqkCAJ9M1r783ejCH7vztzNoOBPvkR2e9gCYmOEA 6WL8pxVlgrEHO2QYjayKlQ== =F72r -----END PGP SIGNATURE----- --Apple-Mail-8--553233128-- From charlie@rubberduck.com Tue Jun 15 08:17:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B8DAFC002945; Tue, 15 Jun 2004 08:17:07 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B731AC002916 for ; Tue, 15 Jun 2004 08:17:05 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id D72241C1D0E0; Tue, 15 Jun 2004 08:09:23 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id D117E1C1D0E1; Tue, 15 Jun 2004 08:09:23 +0300 (EEST) Received: from squeaky.rubberduck.com (squeaky.rubberduck.com [203.28.8.126]) by danu.procontrol.fi (Postfix) with ESMTP id D63711C1D0E0 for ; Tue, 15 Jun 2004 08:08:48 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by squeaky.rubberduck.com (Postfix) with ESMTP id 10F2EBFC6 for ; Tue, 15 Jun 2004 15:08:37 +1000 (EST) Received: from squeaky.rubberduck.com ([127.0.0.1]) by localhost (squeaky [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 21895-03 for ; Tue, 15 Jun 2004 15:08:32 +1000 (EST) Received: from machine.internal.schools.net.au (rtr1.snc.schools.net.au [203.31.232.2]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (Client CN "machine.internal.schools.net.au", Issuer "machine.internal.schools.net.au" (verified OK)) by squeaky.rubberduck.com (Postfix) with ESMTP id 5CD3DBFC5 for ; Tue, 15 Jun 2004 15:08:32 +1000 (EST) Received: by machine.internal.schools.net.au (Postfix, from userid 1011) id D11A872ABD3; Tue, 15 Jun 2004 15:08:30 +1000 (EST) Date: Tue, 15 Jun 2004 15:08:30 +1000 From: Charlie Allom To: dovecot@procontrol.fi Subject: Re: [Dovecot] Re: [dovecot-cvs] dovecot/src/lib fdpass.c,1.28,1.29 Message-ID: <20040615050828.GQ20969@myinternet.com.au> References: <20040614234225.C7168C002913@talvi.dovecot.org> <20040615045053.GP20969@myinternet.com.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Idd68gPqKLz5+Ci0" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.6i X-Virus-Scanned: by amavisd-new at rubberduck.com Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 05:17:07 -0000 X-UID: 9506 Status: O Content-Length: 1060 --Idd68gPqKLz5+Ci0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jun 15, 2004 at 08:00:32AM +0300, Timo Sirainen wrote: > On 15.6.2004, at 07:50, Charlie Allom wrote: >=20 > >Will this perhaps fix these? > > > >imap-login: Jun 15 12:28:16 Panic: file ioloop.c: line 90: assertion > >failed: (i > >o->fd <=3D current_ioloop->highest_fd) >=20 > I don't think so. Does this happen every time when logging in? With=20 > Solaris? no - never when originally opening a folder/logging in. It must only be when refreshing the status of the emails. Perhaps that is a mutt thing - logging in twice? Not sure - how can I help? With Solaris only I've found. C. --=20 =2Esignature 0x14AA7941 --Idd68gPqKLz5+Ci0 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFAzoRMqiZDwhSqeUERAujrAJ0Y/+H5Wb40Xmd1RxRaQXzrgg/O2ACgsAxI /4jQYPSLVaxEFpgEl6Ma4AM= =Y4s3 -----END PGP SIGNATURE----- --Idd68gPqKLz5+Ci0-- From strombrg@dcs.nac.uci.edu Tue Jun 15 19:47:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 89027C000DCF; Tue, 15 Jun 2004 19:47:45 +0300 (EEST) Received: from dcs.nac.uci.edu (dcs.nac.uci.edu [128.200.34.32]) by talvi.dovecot.org (Postfix) with ESMTP id 45439C000DCC for ; Tue, 15 Jun 2004 19:47:41 +0300 (EEST) Received: from [128.200.34.35] (tesuji.nac.uci.edu [128.200.34.35]) by dcs.nac.uci.edu (8.12.11/8.12.10) with ESMTP id i5FGds2r006428; Tue, 15 Jun 2004 09:39:54 -0700 Subject: Re: [Dovecot] flat file mailbox formats From: Dan Stromberg To: Timo Sirainen In-Reply-To: <1087272052.783.119.camel@hurina> References: <1087272052.783.119.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ktVqyqRYHxEb0Z4zwuc9" Message-Id: <1087317594.5274.4.camel@tesuji.nac.uci.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Tue, 15 Jun 2004 09:39:54 -0700 Cc: Dan Stromberg , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 16:47:45 -0000 X-UID: 9507 Status: O --=-ktVqyqRYHxEb0Z4zwuc9 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-14 at 21:00, Timo Sirainen wrote: > AAAA-box: > - I remember seeing this somewhere years ago, but I'm not sure if it's > still used or if it has a real name.. > - separator is four ^A characters (ascii 1) and LF > - header skip counter is 5 > - last message footer would be the same ^A^A^A^A\n ISTR this is the "MMDF" format. --=20 Dan Stromberg DCS/NACS/UCI --=-ktVqyqRYHxEb0Z4zwuc9 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBAzyZao0feVm00f/8RApVbAJ9RCFE02tAepxBC9WwJ/mkirqKvGQCgpgwj eU4A5gZD7wb6AIH95+zv9U8= =fxuM -----END PGP SIGNATURE----- --=-ktVqyqRYHxEb0Z4zwuc9-- From terjeros@phys.ntnu.no Tue Jun 15 20:23:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AC9C2C000DDE; Tue, 15 Jun 2004 20:23:47 +0300 (EEST) Received: from anne.phys.ntnu.no (susanne.phys.ntnu.no [129.241.48.175]) by talvi.dovecot.org (Postfix) with ESMTP id 945F2C000DCF for ; Tue, 15 Jun 2004 20:23:45 +0300 (EEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by anne.phys.ntnu.no (Postfix) with ESMTP id 3564772DF8 for ; Tue, 15 Jun 2004 19:16:02 +0200 (CEST) Received: from anne.phys.ntnu.no ([127.0.0.1]) by localhost (anne.phys.ntnu.no [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 31891-02 for ; Tue, 15 Jun 2004 19:16:02 +0200 (CEST) Received: from bohm.phys.ntnu.no (bohm.phys.ntnu.no [129.241.48.101]) by anne.phys.ntnu.no (Postfix) with ESMTP id 15A7972DE5 for ; Tue, 15 Jun 2004 19:16:02 +0200 (CEST) Received: by bohm.phys.ntnu.no (Postfix, from userid 1708) id 95BA2688B; Tue, 15 Jun 2004 19:16:01 +0200 (CEST) To: dovecot@dovecot.org From: Terje Rosten Date: Tue, 15 Jun 2004 19:16:00 +0200 Message-ID: User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new/clamav at anne.phys.ntnu.no Subject: [Dovecot] SSL problems with imap-login X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 17:23:47 -0000 X-UID: 9508 Status: O Content-Length: 1909 I am using dovecot-0.99.10.5-1 on RHEL 3 for x86-64: $ uname -a Linux localhost 2.4.21-15.ELsmp #1 SMP Thu Apr 22 00:09:01 EDT 2004 x86_64 x86_64 x86_64 GNU/Linux The client is Horde-2.2.5/IMP-3.2 on Fedora Core 2 on i386. At random imap-login fails with the following error message: $ grep imap /var/log/maillog: Jun 15 18:01:08 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:01:17 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:15:25 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:15:25 anne imap-login: SSL_accept() failed: error:1409C041:SSL routines:SSL3_SETUP_BUFFERS:malloc failure [10.0.0.1] Jun 15 18:15:47 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:15:47 anne imap-login: SSL_accept() failed: error:1409C041:SSL routines:SSL3_SETUP_BUFFERS:malloc failure [10.0.0.1] Jun 15 18:16:00 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:16:00 anne imap-login: SSL_accept() failed: error:1409C041:SSL routines:SSL3_SETUP_BUFFERS:malloc failure [10.0.0.1] Jun 15 18:16:25 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:17:35 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:19:43 anne imap-login: SSL_accept() failed: error:1409C041:SSL routines:SSL3_SETUP_BUFFERS:malloc failure [10.0.0.1] Jun 15 18:52:01 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:52:01 anne imap-login: SSL_accept() failed: error:1409C041:SSL routines:SSL3_SETUP_BUFFERS:malloc failure [10.0.0.1] Jun 15 18:52:31 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:52:53 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:53:33 anne imap-login: Login: terjeros [10.0.0.1] Jun 15 18:54:30 anne imap-login: SSL_accept() failed: error:1409C041:SSL routines:SSL3_SETUP_BUFFERS:malloc failure [10.0.0.1] The box has plenty of memory: $ free | grep Mem Mem: 4016976 3696888 320088 0 731608 2279704 Any ideas? OpenSSL or dovecot issue? - Terje From tss@iki.fi Tue Jun 15 21:18:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8A2B5C000E0A; Tue, 15 Jun 2004 21:18:48 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 4DFF1C000DCF for ; Tue, 15 Jun 2004 21:18:41 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 2C01A1C1D0E0; Tue, 15 Jun 2004 21:10:58 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 03E441C1D0E2; Tue, 15 Jun 2004 21:10:24 +0300 (EEST) Subject: Re: [Dovecot] SSL problems with imap-login From: Timo Sirainen To: Terje Rosten In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ZbPASV9wf65PQ0/BgoO9" Message-Id: <1087323022.783.125.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 21:10:22 +0300 X-Spam-Status: No, hits=-9.3 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 18:18:49 -0000 X-UID: 9509 Status: O --=-ZbPASV9wf65PQ0/BgoO9 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-15 at 20:16, Terje Rosten wrote: > At random imap-login fails with the following error message: >=20 > Jun 15 18:15:25 anne imap-login: SSL_accept() failed: error:1409C041:SSL = routines:SSL3_SETUP_BUFFERS:malloc failure [10.0.0.1] Try growing login_process_size setting in config file. I guess I'll raise the default from 16 to 32. --=-ZbPASV9wf65PQ0/BgoO9 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAzzuOyUhSUUBViskRAmm6AJ0ZtVyNJ4gMbZj/VYWbKIT+psdXgACfSUX+ mc6Ag8rvAT3Q2iBr0IsTX20= =zG7w -----END PGP SIGNATURE----- --=-ZbPASV9wf65PQ0/BgoO9-- From geocar-dovecot@internetconnection.net Tue Jun 15 21:55:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5BACAC000DF1; Tue, 15 Jun 2004 21:55:24 +0300 (EEST) Received: from internetconnection.net (proxy.dmvnoc.com [216.169.144.254]) by talvi.dovecot.org (Postfix) with SMTP id DF3DFC000DED for ; Tue, 15 Jun 2004 21:55:21 +0300 (EEST) Received: (qmail 1008 invoked by uid 0); 15 Jun 2004 18:52:14 -0000 Received: from unknown (HELO ?192.168.1.3?) (192.168.1.3) by pokey with SMTP; 15 Jun 2004 18:52:14 -0000 From: Geo Carncross To: dovecot@dovecot.org Content-Type: text/plain Organization: Internet Connection Message-Id: <1087325080.1966.581.camel@midget.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Tue, 15 Jun 2004 14:44:41 -0400 Content-Transfer-Encoding: 7bit Subject: [Dovecot] cvs changelog X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: geocar@internetconnection.net List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 18:55:24 -0000 X-UID: 9510 Status: O FEI: the CVS changelog is no longer updating. cras's commits look like this: date: YYYY-MM-DD HH:MM:SS +TZDD; author cras; state Exp; lines +1 -0 but cvs2cl.pl (2.50) demands: date: YYYY/MM/DD HH:MM:SS; author cras; state: Exp; lines +1 -0 cvs2cl.pl version 2.55 still can't parse these lines. I patched my cvs2cl.pl so I could still follow dovecot, but I'm not certain these changes actually belong in cvs2cl.pl --- /s/2.55-orig/cvs2cl.pl 2004-06-15 18:58:54.000000000 +0000 +++ /s/2.55/cvs2cl.pl 2004-06-15 18:59:14.000000000 +0000 @@ -2286,7 +2286,7 @@ my ($year, $mon, $mday, $hours, $min, $secs, $author, $state, $rest) = $line =~ - m!(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);\s+ + m!(\d+)[/-](\d+)[/-](\d+)\s+(\d+):(\d+):(\d+)(?:.*?);\s+ author:\s+([^;]+);\s+state:\s+([^;]+);(.*)!x or die "Couldn't parse date ``$line''"; die "Bad date or Y2K issues" From terjeros@phys.ntnu.no Tue Jun 15 22:06:54 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1EE81C000E0A; Tue, 15 Jun 2004 22:06:54 +0300 (EEST) Received: from anne.phys.ntnu.no (susanne.phys.ntnu.no [129.241.48.175]) by talvi.dovecot.org (Postfix) with ESMTP id 13B04C000DF1 for ; Tue, 15 Jun 2004 22:06:52 +0300 (EEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by anne.phys.ntnu.no (Postfix) with ESMTP id B252672DF8 for ; Tue, 15 Jun 2004 20:59:08 +0200 (CEST) Received: from anne.phys.ntnu.no ([127.0.0.1]) by localhost (anne.phys.ntnu.no [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 00828-01 for ; Tue, 15 Jun 2004 20:59:08 +0200 (CEST) Received: from bohm.phys.ntnu.no (bohm.phys.ntnu.no [129.241.48.101]) by anne.phys.ntnu.no (Postfix) with ESMTP id 9295872DE5 for ; Tue, 15 Jun 2004 20:59:08 +0200 (CEST) Received: by bohm.phys.ntnu.no (Postfix, from userid 1708) id 1E559688B; Tue, 15 Jun 2004 20:59:07 +0200 (CEST) To: dovecot@dovecot.org Subject: Re: [Dovecot] SSL problems with imap-login References: <1087323022.783.125.camel@hurina> From: Terje Rosten Date: Tue, 15 Jun 2004 20:59:07 +0200 In-Reply-To: <1087323022.783.125.camel@hurina> Message-ID: User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new/clamav at anne.phys.ntnu.no X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 19:06:54 -0000 X-UID: 9511 Status: O * Timo Sirainen | | Try growing login_process_size setting in config file. I am using 32 now. No problems so far. Thanks Timo! - Terje From tss@iki.fi Tue Jun 15 22:13:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C33F6C000E0A; Tue, 15 Jun 2004 22:13:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id CC2D2C000DCE for ; Tue, 15 Jun 2004 22:13:50 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 892141C1D0E1; Tue, 15 Jun 2004 22:06:07 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AFD231C1D0E0; Tue, 15 Jun 2004 22:05:33 +0300 (EEST) Subject: Re: [Dovecot] cvs changelog From: Timo Sirainen To: geocar@internetconnection.net In-Reply-To: <1087325080.1966.581.camel@midget.intranet> References: <1087325080.1966.581.camel@midget.intranet> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-StiSk4RpTp9KAamyttWt" Message-Id: <1087326333.783.127.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 15 Jun 2004 22:05:33 +0300 X-Spam-Status: No, hits=-9.3 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2004 19:13:52 -0000 X-UID: 9512 Status: O --=-StiSk4RpTp9KAamyttWt Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-15 at 21:44, Geo Carncross wrote: > FEI: the CVS changelog is no longer updating. Oh, right. I was supposed to fix it today by upgrading cvs2cl. Done. > cvs2cl.pl version 2.55 still can't parse these lines. I patched my > cvs2cl.pl so I could still follow dovecot, but I'm not certain these > changes actually belong in cvs2cl.pl 2.55 Debian package seems to work fine without changes. --=-StiSk4RpTp9KAamyttWt Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAz0h9yUhSUUBViskRAmdDAJwMq6HMyPZ2rqCc14/+DsHuC0eToACcCtCl dm8T+iD62X+ZiHV8eQ3lR9U= =x83X -----END PGP SIGNATURE----- --=-StiSk4RpTp9KAamyttWt-- From tallison@tacocat.net Wed Jun 16 03:48:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6F880C000D8E; Wed, 16 Jun 2004 03:48:51 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id 02BDEC0007B4 for ; Wed, 16 Jun 2004 03:48:49 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id 829FF4C078 for ; Tue, 15 Jun 2004 20:41:03 -0400 (EDT) Message-ID: <40CF971F.2060403@tacocat.net> Date: Tue, 15 Jun 2004 20:41:03 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] review of my configuration X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 00:48:51 -0000 X-UID: 9513 Status: O Content-Length: 1695 Over the last week I've set up dovecot and imap and imaps support. I've even tried to break it but it's been doing very well. Now I'm trying to set up a webmail interface. Rather than use the common squirrelmail, I thought I would try openwebmail. Mainly because it's written in perl, of which I am a big fan. However, I ran into some errors in openwebmail that actually may tie back to dovecot. Here's how: dovecot configuration userdb = /etc/passwd passdb = pgsql.... ---this allows me to use the $HOME, uid, gid from the passwd file and not have to carry two copies of it (/etc/passwd and pgsql) However, under openwebmail I don't seem to have this option as they are really determined to require a home, uid, gid for each user that logs in. As witnessed by the following line: Tue Jun 15 20:23:34 2004 - [31572] (unknown) tallison - userinfo error - auth_pgsql.pl, ret -3, Can't execute SQL statement: ERROR: column "uid" does not exist Sure looks familiar doesn't it? (see, it's relevant!) Since I was thinking that maybe it might be interesting to do some email set up to support multiple domains and users some day, and I want to try out the openwebmail sooner than that. I'm getting the impression that it might be easier if I just made the leap today and started to reconfigure everything for multiple domain hosting and all the cool stuff. Now, I can probably muddle through this without too much internal damage. But I keep getting stuck on one point. How can I filter the delivery of email like I do with procmail, when I am delivering mail to many users, none of whom have a /etc/passwd entry? Are there any alternative ideas on how to do this? From tallison@tacocat.net Wed Jun 16 03:59:29 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1E817C000DCD; Wed, 16 Jun 2004 03:59:29 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id 0C658C0007B4 for ; Wed, 16 Jun 2004 03:59:27 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id AF8C24C078 for ; Tue, 15 Jun 2004 20:51:42 -0400 (EDT) Message-ID: <40CF999E.1040508@tacocat.net> Date: Tue, 15 Jun 2004 20:51:42 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] dovecot non-local users X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 00:59:29 -0000 X-UID: 9514 Status: O From the docs: System without local users -------------------------- Having one uid per user would mean that in case of a security hole in Dovecot, the user still couldn't read other peoples mails. Use this if possible. ----- I don't quite understand this one. If you aren't a local user, what's the uid all about? Do I do something like: create a user for mydomain in /etc/passwd (eg: user:domain_dude, home:/var/dovecot) with a valid home/uid/gid. Plug in the uid/gid/home for domain_dude in the authentication and have a data structure of /var/dovecot/%d/%n/Maildir or %h/%d/%d/Maildir where %h = "/var/dovecot" via /etc/passwd. Something like that? From tss@iki.fi Wed Jun 16 04:11:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AE47DC000DD2; Wed, 16 Jun 2004 04:11:22 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 119E3C000DCD for ; Wed, 16 Jun 2004 04:11:20 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 32FCF1C1D0E1; Wed, 16 Jun 2004 04:03:36 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4340C1C1D0E0 for ; Wed, 16 Jun 2004 04:03:02 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-bJvD+4hRjJhPUONY6gNh" Message-Id: <1087347781.783.142.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 16 Jun 2004 04:03:01 +0300 X-Spam-Status: No, hits=-8.4 required=5.0 tests=AWL,BAYES_10,PGP_SIGNATURE_2,RCVD_IN_ORBS,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test16 - nearing usable state X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 01:11:22 -0000 X-UID: 9515 Status: O Content-Length: 1608 --=-bJvD+4hRjJhPUONY6gNh Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ Here you go, maildir syncing problems finally fixed (I hope). Well, except there's this "new-dir-only syncing" optimization which I'm not really sure if it works as it should. The bug really was in index code as I was beginning to suspect. The good thing is that while trying to figure it out over the last several weeks I thought of many other potential problems (race conditions) which got fixed. Those would have been much harder to find than this one :) Finally I thought I'd stop looking at the code and just begin dumping tons of debugging data to see where exactly it goes wrong. After few hours of debugging I figured out it was because message was being removed from index but not from maildir. 5 hours of sleep later I woke up, thought a while, figured out where it must be, got up, half an hour more debugging and found it. :) Code merging two UID range buffers into one was buggy, inserting one line of code fixed it. So .. Maybe I'll finally start using this myself now. The next important problems seem to be some random error messages about index locking timeouts and some asserts in some situations. --=-bJvD+4hRjJhPUONY6gNh Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAz5xFyUhSUUBViskRAn3NAJ9RD8bx+Jn6XmFd7Xsp5ac9QueTYACcCbFT BidlhGFN6WVZ7Nul51O0Peo= =TvHk -----END PGP SIGNATURE----- --=-bJvD+4hRjJhPUONY6gNh-- From tss@iki.fi Wed Jun 16 04:17:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 998BAC000DD0; Wed, 16 Jun 2004 04:17:09 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 8CC29C000DCB for ; Wed, 16 Jun 2004 04:17:07 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id AAAB11C1D0E1; Wed, 16 Jun 2004 04:09:23 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id AC7C91C1D0E0; Wed, 16 Jun 2004 04:08:49 +0300 (EEST) Subject: Re: [Dovecot] dovecot non-local users From: Timo Sirainen To: Tom Allison In-Reply-To: <40CF999E.1040508@tacocat.net> References: <40CF999E.1040508@tacocat.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-/ogah7ddBWN//X2vWJgK" Message-Id: <1087348129.783.148.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 16 Jun 2004 04:08:49 +0300 X-Spam-Status: No, hits=-9.3 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 01:17:09 -0000 X-UID: 9516 Status: O Content-Length: 1550 --=-/ogah7ddBWN//X2vWJgK Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-16 at 03:51, Tom Allison wrote: > Having one uid per user would mean that in case of a security hole in > Dovecot, the user still couldn't read other peoples mails. Use this if > possible. >=20 > ----- >=20 > I don't quite understand this one. > If you aren't a local user, what's the uid all about? "in case of a security hole", ie. if attacker finds a way to execute arbitrary code in the imap/pop3 process. Of course there never will be such holes ;) > Do I do something like: > create a user for mydomain in /etc/passwd (eg: user:domain_dude,=20 > home:/var/dovecot) with a valid home/uid/gid. > Plug in the uid/gid/home for domain_dude in the authentication and have=20 > a data structure of /var/dovecot/%d/%n/Maildir > or %h/%d/%d/Maildir where %h =3D "/var/dovecot" via /etc/passwd. If the home is domain-wide, it'd probably be better to point home directory to /var/dovecot/domain and use %h/%n/Maildir in default_mail_env. Keeping home directory somewhere where the user has write access to might be useful sooner or later (eg. to get core dumps written). --=-/ogah7ddBWN//X2vWJgK Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAz52hyUhSUUBViskRAu+dAJ9EMWiHs796/ovhYhLbTABZH0HQnACfXc6H RqoEYkjESBPQkhEwHvN0mxQ= =FLMl -----END PGP SIGNATURE----- --=-/ogah7ddBWN//X2vWJgK-- From tss@iki.fi Wed Jun 16 05:07:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 14FA3C000DCD; Wed, 16 Jun 2004 05:07:44 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 07A7CC000DCB for ; Wed, 16 Jun 2004 05:07:42 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 148181C1D0E1; Wed, 16 Jun 2004 04:59:58 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 97ECB1C1D0E0 for ; Wed, 16 Jun 2004 04:59:23 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-JQYxROIJdyhg2OeiHAh8" Message-Id: <1087351163.783.152.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 16 Jun 2004 04:59:23 +0300 X-Spam-Status: No, hits=-8.6 required=5.0 tests=AWL,BAYES_00,PGP_SIGNATURE_2,RCVD_IN_ORBS,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] /var/mail dotlocking workaround X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 02:07:44 -0000 X-UID: 9517 Status: O --=-JQYxROIJdyhg2OeiHAh8 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I added "mail_extra_groups" setting which can be used to give imap/pop3 process access to additional groups. So what this means is if you set it to "mail" you can finally remove o-w access from /var/mail directory. Leaving the sticky bit could still be a good idea, so there's no way users to be able to delete each others inboxes. Here's a patch against 0.99.10.5: http://dovecot.org/patches/mail-extra-groups.diff --=-JQYxROIJdyhg2OeiHAh8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAz6l7yUhSUUBViskRAtH7AKCah6aOCsZ6AB/2xIJqjWPjPAupLgCfSzVO FHggeV169Mi67piAJdCrEpA= =xpym -----END PGP SIGNATURE----- --=-JQYxROIJdyhg2OeiHAh8-- From chibi@gol.com Wed Jun 16 08:56:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5D26DC000DCD; Wed, 16 Jun 2004 08:56:47 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id DAD84C000DCB for ; Wed, 16 Jun 2004 08:56:44 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BaTI8-0002u7-00 for ; Wed, 16 Jun 2004 14:48:56 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 16 Jun 2004 14:48:56 +0900 From: Christian Balzer Message-Id: Subject: [Dovecot] Return (revenge?) of the "pop-lock". X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 05:56:47 -0000 X-UID: 9518 Status: O Hello, The users here have been migrated to the new mail system with dovecot 0.99.10.5 (Debian package) on the backends. Storage is maildir, only pop3 access for now. I see very seldom occurrences (compared to the session wide pop lock of qpopper on the old system) like this: --- Jun 16 14:35:52 mb01 pop3(user@gol.com): Timeout while waiting for release of exclusive fcntl() lock for index file /mail/spool/mb01/9ef/f73/af.user/.INBOX/.imap.index --- These are people with slow connections and at least one large mail in the box, with their client aborting w/o terminating the session properly. I presume the timeout for this is hardcoded, as all the config parameters for timeouts are mbox related, rite? Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From chibi@gol.com Wed Jun 16 09:11:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 25D8FC000DD0; Wed, 16 Jun 2004 09:11:25 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id DBF8CC000DCE for ; Wed, 16 Jun 2004 09:11:22 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BaTWL-00034z-00 for ; Wed, 16 Jun 2004 15:03:37 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: dovecot@dovecot.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 16 Jun 2004 15:03:37 +0900 From: Christian Balzer Message-Id: Subject: [Dovecot] POP3 LAST command? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 06:11:25 -0000 X-UID: 9519 Status: O Hello, any plans to support this in the future? Seems the inability to use LAST breaks that Yahoo remote mailbox slurper thing, not that I care too much about that, but some mail clients might miss it as well. ;) Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From aredridel@nbtsc.org Wed Jun 16 09:14:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 64F70C000DD4; Wed, 16 Jun 2004 09:14:25 +0300 (EEST) Received: from polis.nbtsc.org (polis.nbtsc.org [206.168.119.2]) by talvi.dovecot.org (Postfix) with ESMTP id 5879AC000DCE for ; Wed, 16 Jun 2004 09:14:23 +0300 (EEST) Received: from mizar.nbtsc.org ([206.168.67.102]) by polis.nbtsc.org with asmtp (Exim 4.34) id 1BaTZF-000609-Pg for dovecot@dovecot.org; Wed, 16 Jun 2004 00:06:37 -0600 Subject: Re: [Dovecot] POP3 LAST command? From: Aredridel To: dovecot@dovecot.org In-Reply-To: References: Content-Type: text/plain Date: Wed, 16 Jun 2004 00:07:14 -0600 Message-Id: <1087366034.8803.0.camel@mizar.nbtsc.org> Mime-Version: 1.0 X-Mailer: Evolution 1.5.9.1 Content-Transfer-Encoding: 7bit X-Scan-Signature: 6cad5945768af8579ed87dd42b843e8a X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 06:14:25 -0000 X-UID: 9520 Status: O On Wed, 2004-06-16 at 15:03 +0900, Christian Balzer wrote: > Hello, > > any plans to support this in the future? Seems the inability to > use LAST breaks that Yahoo remote mailbox slurper thing, not that > I care too much about that, but some mail clients might miss it > as well. ;) I actually had a customer complain about that this morning. I'd love to have it as a feature. From tss@iki.fi Wed Jun 16 09:54:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 526AFC000DD5; Wed, 16 Jun 2004 09:54:24 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 5DC00C000DCE for ; Wed, 16 Jun 2004 09:54:22 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id E8A2F1C1D0E1; Wed, 16 Jun 2004 09:46:37 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id E818D1C1D0E0; Wed, 16 Jun 2004 09:46:03 +0300 (EEST) Subject: Re: [Dovecot] POP3 LAST command? From: Timo Sirainen To: Christian Balzer In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Cq2xoEXnY7jxS81nhs9e" Message-Id: <1087368363.31644.2.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 16 Jun 2004 09:46:03 +0300 X-Spam-Status: No, hits=-9.0 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 06:54:24 -0000 X-UID: 9521 Status: O Content-Length: 1209 --=-Cq2xoEXnY7jxS81nhs9e Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-16 at 09:03, Christian Balzer wrote: > any plans to support this in the future? Seems the inability to=20 > use LAST breaks that Yahoo remote mailbox slurper thing, not that > I care too much about that, but some mail clients might miss it > as well. ;) It's in TODO: - POP3: add support for LAST command, but make it optional since it has= to play with \Seen flags (RSET would unset them all with it enabled, not very nice). It's not really difficult to implement with 0.99.10 code either. Just make RETR command set the \Seen flag for the message (there's a kludgy update_seen flag because IMAP needs it too). Then with LAST return the highest message with \Seen flag set. RSET would remove all \Seen flags. --=-Cq2xoEXnY7jxS81nhs9e Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAz+yryUhSUUBViskRAmH5AKCm+arjCpyiIai4YhtKB7UGcKp4mwCeLUKB YWgFq+7V4t4ZlnigZRSG1uc= =OdmG -----END PGP SIGNATURE----- --=-Cq2xoEXnY7jxS81nhs9e-- From tss@iki.fi Wed Jun 16 09:56:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1316DC000DD8; Wed, 16 Jun 2004 09:56:59 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 1AEC4C000DCE for ; Wed, 16 Jun 2004 09:56:57 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id A46091C1D0E1; Wed, 16 Jun 2004 09:49:12 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8311F1C1D0E0; Wed, 16 Jun 2004 09:48:38 +0300 (EEST) Subject: Re: [Dovecot] Return (revenge?) of the "pop-lock". From: Timo Sirainen To: Christian Balzer In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-4PGK35Vmh1SRh2nJGQc4" Message-Id: <1087368518.31644.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 16 Jun 2004 09:48:38 +0300 X-Spam-Status: No, hits=-9.0 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 06:56:59 -0000 X-UID: 9522 Status: O Content-Length: 1433 --=-4PGK35Vmh1SRh2nJGQc4 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-16 at 08:48, Christian Balzer wrote: > I see very seldom occurrences (compared to the session wide pop lock=20 > of qpopper on the old system) like this:=20 > --- > Jun 16 14:35:52 mb01 pop3(user@gol.com):=20 > Timeout while waiting for release of exclusive fcntl() lock for index fil= e=20 > /mail/spool/mb01/9ef/f73/af.user/.INBOX/.imap.index > --- > These are people with slow connections and at least one large mail in > the box, with their client aborting w/o terminating the session properly. >=20 > I presume the timeout for this is hardcoded, as all the config=20 > parameters for timeouts are mbox related, rite? Right. That's one annoying thing with 0.99.10 index code, slow readers will block others from accessing the mailbox. There's not much you can do except disable indexes, which would lose cached message sizes and slow down POP3 a lot. The default timeout it 5 minutes already I think, so I'm not sure if growing it would help much. --=-4PGK35Vmh1SRh2nJGQc4 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAz+1GyUhSUUBViskRAryAAKCcqtgmAvfSIZU3+sqt/iVNaiEwwwCeLw83 o/GJqKhRN1FHs3ShFZeWPng= =6Q26 -----END PGP SIGNATURE----- --=-4PGK35Vmh1SRh2nJGQc4-- From discussion-lists@linnet.org Wed Jun 16 10:49:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F308DC000DCE; Wed, 16 Jun 2004 10:49:48 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id 890B0C000DCB for ; Wed, 16 Jun 2004 10:49:46 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 9F0061392E8; Wed, 16 Jun 2004 03:41:47 -0400 (EDT) Received: from billdog.local.linnet.org (unknown [80.44.147.198]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 01B79139268; Wed, 16 Jun 2004 03:41:47 -0400 (EDT) Received: from lists by billdog.local.linnet.org with local (Exim 4.31) id 1BaV3U-0000Lu-8Y; Wed, 16 Jun 2004 08:41:56 +0100 Date: Wed, 16 Jun 2004 08:41:56 +0100 From: Brian Candler To: Christian Balzer Subject: Re: [Dovecot] POP3 LAST command? Message-ID: <20040616074156.GD916@uk.tiscali.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 07:49:49 -0000 X-UID: 9523 Status: O On Wed, Jun 16, 2004 at 03:03:37PM +0900, Christian Balzer wrote: > any plans to support this in the future? Seems the inability to > use LAST breaks that Yahoo remote mailbox slurper thing, not that > I care too much about that, but some mail clients might miss it > as well. ;) This is a prehistoric feature, and I think it's a bad idea to include it. (It was in RFC1460, removed in RFC1725 *eight* years ago, and the current POP3 spec is RFC1939) All mail clients should be able to use UIDL to detect new mail; LAST was removed because it's conceptually broken (i.e. it assumes that conceptually your mailbox consists of N read mails followed by M unread mails, which often is not the case in real life) Regards, Brian. From chibi@gol.com Wed Jun 16 12:27:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9B896C000DCF; Wed, 16 Jun 2004 12:27:09 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id 44429C000DCB for ; Wed, 16 Jun 2004 12:27:07 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BaWZS-00056T-00; Wed, 16 Jun 2004 18:19:02 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: Timo Sirainen Subject: Re: [Dovecot] Return (revenge?) of the "pop-lock". In-reply-to: <1087368518.31644.6.camel@hurina> References: <1087368518.31644.6.camel@hurina> Comments: In-reply-to Timo Sirainen message dated "Wed, 16 Jun 2004 09:48:38 +0300." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 16 Jun 2004 18:19:02 +0900 From: Christian Balzer Message-Id: Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 09:27:09 -0000 X-UID: 9524 Status: O Timo wrote: >On Wed, 2004-06-16 at 08:48, Christian Balzer wrote: [exclusive fcntl() lock for index file ...] > >Right. That's one annoying thing with 0.99.10 index code, slow readers >will block others from accessing the mailbox. There's not much you can >do except disable indexes, which would lose cached message sizes and >slow down POP3 a lot. > Not worth the hit given the far smaller number of "victims" compared to the qpopper lock. >The default timeout it 5 minutes already I think, so I'm not sure if >growing it would help much. > If anything I might configure it lower, since most clients will have given up waiting for a response from the server after 5 minutes anyway. ;) Regards and thanks for the insight, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From chibi@gol.com Wed Jun 16 12:32:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CCD29C000DD2; Wed, 16 Jun 2004 12:32:24 +0300 (EEST) Received: from batzmaru.gol.ad.jp (batzmaru.gol.ad.jp [203.216.0.80]) by talvi.dovecot.org (Postfix) with ESMTP id 7E448C000DD1 for ; Wed, 16 Jun 2004 12:32:22 +0300 (EEST) Received: from cb (helo=batzmaru.gol.ad.jp) by batzmaru.gol.ad.jp with local-esmtp (Exim 3.36 #1 (Debian)) id 1BaWeC-00059x-00; Wed, 16 Jun 2004 18:23:56 +0900 X-Mailer: exmh version 2.5 07/13/2001 (debian 2.5-1) with nmh-1.1 To: Brian Candler Subject: Re: [Dovecot] POP3 LAST command? In-reply-to: <20040616074156.GD916@uk.tiscali.com> References: <20040616074156.GD916@uk.tiscali.com> Comments: In-reply-to Brian Candler message dated "Wed, 16 Jun 2004 08:41:56 +0100." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 16 Jun 2004 18:23:56 +0900 From: Christian Balzer Message-Id: Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 09:32:25 -0000 X-UID: 9525 Status: O Content-Length: 1241 Brian wrote: >On Wed, Jun 16, 2004 at 03:03:37PM +0900, Christian Balzer wrote: >> any plans to support this in the future? Seems the inability to >> use LAST breaks that Yahoo remote mailbox slurper thing, not that >> I care too much about that, but some mail clients might miss it >> as well. ;) > >This is a prehistoric feature, and I think it's a bad idea to include it. > >(It was in RFC1460, removed in RFC1725 *eight* years ago, and the current >POP3 spec is RFC1939) > That's a good argument to distract the customer with and to make Yahoo look silly with at the same time. Alas you probably know that compared to the mighty "But it worked fine for the last 4 years" will carry a bigger weight in the customers mind. >All mail clients should be able to use UIDL to detect new mail; LAST was >removed because it's conceptually broken (i.e. it assumes that conceptually >your mailbox consists of N read mails followed by M unread mails, which >often is not the case in real life) > Guess Yahoo doesn't feel like keeping tabs on all those UIDLs. ;) Regards, Christian Balzer -- Christian Balzer Network/Systems Engineer NOC chibi@gol.com Global OnLine Japan/Fusion Network Services http://www.gol.com/ From coggy@redefine.org Wed Jun 16 21:01:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7F78AC000DCF; Wed, 16 Jun 2004 21:01:11 +0300 (EEST) Received: from mailgate1.nau.edu (mailgate1.nau.edu [134.114.96.58]) by talvi.dovecot.org (Postfix) with ESMTP id 72CC4C000DCB for ; Wed, 16 Jun 2004 21:01:06 +0300 (EEST) Received: from CONVERSION-DAEMON.mailgate1.nau.edu by mailgate1.nau.edu (PMDF V6.2-X17 #30770) id <0HZE00101XM081@mailgate1.nau.edu> for dovecot@dovecot.org; Wed, 16 Jun 2004 10:51:37 -0700 (MST) Received: from [134.114.70.242] (ucc158.ucc.nau.edu [134.114.70.242]) by mailgate1.nau.edu (PMDF V6.2-X17 #30770) with ESMTP id <0HZE00KBNXM0V5@mailgate1.nau.edu> for dovecot@dovecot.org; Wed, 16 Jun 2004 10:51:36 -0700 (MST) Date: Wed, 16 Jun 2004 10:51:37 -0700 From: Kevin To: dovecot@dovecot.org Message-id: <40D088A9.8060000@redefine.org> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii; format=flowed Content-transfer-encoding: 7BIT X-Accept-Language: en-us, en User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) Subject: [Dovecot] shared authentication X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 18:01:12 -0000 X-UID: 9526 Status: O whats the recommended way to share a user auth info between dovecot and postfix? sasldb seems like it could work but nobody really seems to like using the giant mass that is sasl. i also cant find any information on actually getting dovecot to use sasl past the configure options. i looked at timo's patch for postfix to use dovecot-auth but it doesnt apply correctly on the 2.1 branch. so what are people using to share passwords between the two without using the system passwd? From rueckert@informatik.uni-rostock.de Wed Jun 16 21:19:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9B2B6C000DD3; Wed, 16 Jun 2004 21:19:36 +0300 (EEST) Received: from monsters.rsn.uni-rostock.de (monsters.rsn.uni-rostock.de [139.30.253.26]) by talvi.dovecot.org (Postfix) with ESMTP id 4E8F4C000DD2 for ; Wed, 16 Jun 2004 21:19:34 +0300 (EEST) Received: from intern.dot.rsn.uni-rostock.de (intern.dot.rsn.uni-rostock.de [192.168.22.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "", Issuer "mail.pixalized.technet" (not verified)) by monsters.rsn.uni-rostock.de (Postfix) with ESMTP id 97F23F24D; Wed, 16 Jun 2004 20:12:10 +0200 (CEST) Received: by intern.dot.rsn.uni-rostock.de (Postfix, from userid 1000) id 3CD6B4AC7D; Wed, 16 Jun 2004 20:11:38 +0200 (CEST) Date: Wed, 16 Jun 2004 20:11:38 +0200 From: Marcus Rueckert To: Kevin Subject: Re: [Dovecot] shared authentication Message-ID: <20040616181138.GA32528@monsters.rsn.uni-rostock.de> References: <40D088A9.8060000@redefine.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40D088A9.8060000@redefine.org> User-Agent: Mutt/1.5.6i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 18:19:36 -0000 X-UID: 9527 Status: O On 2004-06-16 10:51:37 -0700, Kevin wrote: > whats the recommended way to share a user auth info between dovecot and > postfix? sasldb seems like it could work but nobody really seems to > like using the giant mass that is sasl. i also cant find any > information on actually getting dovecot to use sasl past the configure > options. i looked at timo's patch for postfix to use dovecot-auth but > it doesnt apply correctly on the 2.1 branch. so what are people using > to share passwords between the two without using the system passwd? ldap/postgres? darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From andrew@mux.org.uk Wed Jun 16 21:26:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 93276C000DD4; Wed, 16 Jun 2004 21:26:32 +0300 (EEST) Received: from 82-41-27-32.cable.ubr04.edin.blueyonder.co.uk (82-41-27-32.cable.ubr04.edin.blueyonder.co.uk [82.41.27.32]) by talvi.dovecot.org (Postfix) with ESMTP id 8EA66C000DD2 for ; Wed, 16 Jun 2004 21:26:30 +0300 (EEST) Received: from [192.168.0.2] (spatula.flat [192.168.0.2]) by myriad.flat (Postfix) with ESMTP id 726B8D8 for ; Wed, 16 Jun 2004 17:05:37 +0100 (BST) Message-ID: <40D08EFC.3050204@mux.org.uk> Date: Wed, 16 Jun 2004 19:18:36 +0100 From: Andrew Boothman User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot list Subject: Re: [Dovecot] 1.0-test16 - nearing usable state References: <1087347781.783.142.camel@hurina> In-Reply-To: <1087347781.783.142.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 18:26:32 -0000 X-UID: 9528 Status: O Timo Sirainen wrote: > http://dovecot.org/test/ > > Here you go, maildir syncing problems finally fixed (I hope). Well, > except there's this "new-dir-only syncing" optimization which I'm not > really sure if it works as it should. Good news Timo! Good to hear that you're making progress tracking down these problems heading for a 1.0 release. :) Andrew From coggy@redefine.org Wed Jun 16 22:09:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 86F7CC000DD2; Wed, 16 Jun 2004 22:09:15 +0300 (EEST) Received: from mailgate3.nau.edu (mailgate3.nau.edu [134.114.96.145]) by talvi.dovecot.org (Postfix) with ESMTP id 4F985C000DD1 for ; Wed, 16 Jun 2004 22:09:13 +0300 (EEST) Received: from CONVERSION-DAEMON.mailgate3.nau.edu by mailgate3.nau.edu (PMDF V6.2-X17 #30845) id <0HZF00A010UES8@mailgate3.nau.edu> for dovecot@dovecot.org; Wed, 16 Jun 2004 12:01:26 -0700 (MST) Received: from [134.114.70.242] (ucc158.ucc.nau.edu [134.114.70.242]) by mailgate3.nau.edu (PMDF V6.2-X17 #30845) with ESMTP id <0HZF006AK0UDMF@mailgate3.nau.edu> for dovecot@dovecot.org; Wed, 16 Jun 2004 12:01:25 -0700 (MST) Date: Wed, 16 Jun 2004 12:01:40 -0700 From: Kevin Subject: Re: [Dovecot] shared authentication In-reply-to: <20040616181138.GA32528@monsters.rsn.uni-rostock.de> To: dovecot@dovecot.org Message-id: <40D09914.5000908@redefine.org> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii; format=flowed Content-transfer-encoding: 7BIT X-Accept-Language: en-us, en User-Agent: Mozilla Thunderbird 0.6 (Windows/20040502) References: <40D088A9.8060000@redefine.org> <20040616181138.GA32528@monsters.rsn.uni-rostock.de> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 19:09:15 -0000 X-UID: 9529 Status: O Marcus Rueckert wrote: > ldap/postgres? > > darix wouldnt that still require sasl for postfix? From tss@iki.fi Wed Jun 16 22:22:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3537CC000DD2; Wed, 16 Jun 2004 22:22:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id F1BC1C000DD1 for ; Wed, 16 Jun 2004 22:22:49 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 513151C1D0E2; Wed, 16 Jun 2004 22:15:04 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 145B61C1D0E1; Wed, 16 Jun 2004 22:14:30 +0300 (EEST) Subject: Re: [Dovecot] shared authentication From: Timo Sirainen To: Kevin In-Reply-To: <40D09914.5000908@redefine.org> References: <40D088A9.8060000@redefine.org> <20040616181138.GA32528@monsters.rsn.uni-rostock.de> <40D09914.5000908@redefine.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Mr4PED7DXdK2KZ2Uvznz" Message-Id: <1087413268.17787.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 16 Jun 2004 22:14:28 +0300 X-Spam-Status: No, hits=-9.1 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, RCVD_IN_ORBS,REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2004 19:22:52 -0000 X-UID: 9530 Status: O --=-Mr4PED7DXdK2KZ2Uvznz Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-16 at 22:01, Kevin wrote: > > ldap/postgres? > >=20 > > darix >=20 > wouldnt that still require sasl for postfix? You'll need Cyrus SASL for Postfix in any case for now. postfix-dovecot-auth has some small issues left and you'd need to use Dovecot 1.0-tests to make it work. And about the patch not applying .. I hadn't noticed Postfix 2.1 exists even, I just got the sources with apt-get which installed 2.0.19. Well, I'll make a patch against 2.1.1 too. Dovecot's Cyrus SASL support is AFAIK completely broken even though it compiles. --=-Mr4PED7DXdK2KZ2Uvznz Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA0JwUyUhSUUBViskRAvjvAJ9USkJDIBIPLNVYqnSpPV6yH5JBzQCbB6yr qbkgG8TvN+QcIgs2wHK6WoE= =COW7 -----END PGP SIGNATURE----- --=-Mr4PED7DXdK2KZ2Uvznz-- From tss@iki.fi Fri Jun 18 03:39:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B1634C000D8E; Fri, 18 Jun 2004 03:39:15 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 982BDC0007B4 for ; Fri, 18 Jun 2004 03:39:13 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 0A5A81C1D0E3; Fri, 18 Jun 2004 03:31:25 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 161F41C1D0E2 for ; Fri, 18 Jun 2004 03:30:51 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-oFdHlBD96TI5yDV+ZR5D" Message-Id: <1087518650.25522.38.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 18 Jun 2004 03:30:50 +0300 X-Spam-Status: No, hits=-8.8 required=5.0 tests=AWL,BAYES_01,PGP_SIGNATURE_2,RCVD_IN_ORBS,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test17 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 00:39:15 -0000 X-UID: 9531 Status: O --=-oFdHlBD96TI5yDV+ZR5D Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ Just mbox fixes since 1.0-test16. The logic is simpler and more correct now. Can anyone break it anymore? I actually tested it a while with Evolution and several mailboxes and it didn't break at least immediately. :) Now maybe a few more days and I dare trying this thing myself with my real mboxes (yes, I'm still using them). Dovecot mailing list archives could soon be served with 1.0-tests too, as soon as I get support for read-only mboxes working again (storing and comparing MD5 summed headers). --=-oFdHlBD96TI5yDV+ZR5D Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA0je6yUhSUUBViskRAhn0AJ9+v/G58mqomTGD6vteW8eBUJH4LwCgkP5K I5kCHj9Tab3kgeCRIF8hBcM= =Lb2p -----END PGP SIGNATURE----- --=-oFdHlBD96TI5yDV+ZR5D-- From tss@iki.fi Fri Jun 18 04:08:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D37B3C000DCD; Fri, 18 Jun 2004 04:08:34 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id BA15CC000D8E for ; Fri, 18 Jun 2004 04:08:32 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 240361C185E0; Fri, 18 Jun 2004 04:00:44 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 29B5B1C1D0E3 for ; Fri, 18 Jun 2004 04:00:10 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-EgdaaaTt4iXiWEc3EEdH" Message-Id: <1087520409.25522.53.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 18 Jun 2004 04:00:09 +0300 X-Spam-Status: No, hits=-8.7 required=5.0 tests=AWL,BAYES_00,PGP_SIGNATURE_2,RCVD_IN_ORBS,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 0.99.10.6-rc1 released X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 01:08:35 -0000 X-UID: 9532 Status: O --=-EgdaaaTt4iXiWEc3EEdH Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/rc/ Fixes the crashes people had been getting more often with 0.99.10.5. Also included all the patches in dovecot.org/patches/old: - SHA1 passwords - mail_extra_groups setting (Debian people can finally fix #185335 :) - autocreate missing maildirs (and don't crash) - maildir_stat_dirs setting If no problems are found within few days this will simply be renamed to 0.99.10.6. --=-EgdaaaTt4iXiWEc3EEdH Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA0j6ZyUhSUUBViskRAnW0AJ9NTZqfkb+HWnfJ73eOEtUlWE8KAwCgnj/H AS3b99Vplz85/aFVhXfY7Z4= =1Kj1 -----END PGP SIGNATURE----- --=-EgdaaaTt4iXiWEc3EEdH-- From hervec@sports.fr Fri Jun 18 04:19:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D5702C000DD0; Fri, 18 Jun 2004 04:19:35 +0300 (EEST) Received: from mail2.sports.fr (host.26.9.23.62.rev.coltfrance.com [62.23.9.26]) by talvi.dovecot.org (Postfix) with ESMTP id C305CC000DCF for ; Fri, 18 Jun 2004 04:19:33 +0300 (EEST) Received: from home.daycom.net ([82.227.225.8]:33988 helo=[10.3.1.2]) by mail2.sports.fr with asmtp (Exim 4.31 #1 (OpenNA Linux)) id 1Bb7uy-00001e-6t for ; Fri, 18 Jun 2004 03:11:44 +0200 Message-ID: <40D24107.3000301@sports.fr> Date: Fri, 18 Jun 2004 03:10:31 +0200 From: =?ISO-8859-1?Q?Herv=E9_Commowick_-_NewSports?= User-Agent: Mozilla Thunderbird 0.6 (X11/20040605) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-SA-Do-Not-Run: Yes X-SA-Exim-Connect-IP: 82.227.225.8 X-SA-Exim-Mail-From: hervec@sports.fr Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.61 (1.212.2.1-2003-12-09-exp) on mail2.sports.fr X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.61 X-SA-Exim-Version: 4.0 (built Sat, 10 Apr 2004 11:26:52 -0400) X-SA-Exim-Scanned: Yes (on mail2.sports.fr) Subject: [Dovecot] LDAP Bind X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 01:19:36 -0000 X-UID: 9533 Status: O hi all 2 Questions : - how not using the authentication bind feature of ldap server ? i rewrite checkpassword-ldap recently to use in bincimap server, and it take 3 lines to do this, so i don't understand how you don't use it. it is more powerful and more secure than retrieve pasword from the base and use crypto api to compare it. - is the dovecot server support the IMAPdir feature like bincimap or not ? thx for this great software, who replace my imap and pop3 server when it support that :) Vr. From tss@iki.fi Fri Jun 18 04:56:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D3E62C000DD1; Fri, 18 Jun 2004 04:56:32 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B53BEC000DCD for ; Fri, 18 Jun 2004 04:56:30 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 0F1131C185E0; Fri, 18 Jun 2004 04:48:42 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 04A411C1D0E3; Fri, 18 Jun 2004 04:48:08 +0300 (EEST) Subject: Re: [Dovecot] LDAP Bind From: Timo Sirainen To: =?ISO-8859-1?Q?Herv=E9?= Commowick - NewSports In-Reply-To: <40D24107.3000301@sports.fr> References: <40D24107.3000301@sports.fr> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-jDMxe27RyHa2vX2WXpif" Message-Id: <1087523287.25522.77.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 18 Jun 2004 04:48:07 +0300 X-Spam-Status: No, hits=-9.4 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 01:56:33 -0000 X-UID: 9534 Status: O Content-Length: 1950 --=-jDMxe27RyHa2vX2WXpif Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: quoted-printable On Fri, 2004-06-18 at 04:10, Herv=E9 Commowick - NewSports wrote: > - how not using the authentication bind feature of ldap server ? > i rewrite checkpassword-ldap recently to use in bincimap server, and it=20 > take 3 lines to do this, so i don't understand how you don't use it. > it is more powerful and more secure than retrieve pasword from the base=20 > and use crypto api to compare it. When I originally wrote the LDAP code I didn't really know about authentication binds. Later I once tried to write support for them but got tired and didn't finish it. dovecot-auth tries to do everything inside one process (it's fast). Making auth binds is a bit more difficult to do in non-blocking way. I've thought about adding checkpassword support for dovecot-auth actually. For now you could support auth binds with PAM and pam-ldap module. > - is the dovecot server support the IMAPdir feature like bincimap or not = ? No, at least not yet. It's pretty nice format, but for being named IMAPdir I think it should have been designed to be 100% IMAP-compatible. The problem is that with IMAPdir (and Maildir++) RENAME isn't atomic when it has to rename subfolders. Also renaming INBOX can be problematic to implement atomically (the INBOX must never be lost). Pretty much the only way to do this with UNIX would be to use real directories to implement hierarchies rather than a special '.' separator in file/directory name. I wonder why Andreas didn't do this. --=-jDMxe27RyHa2vX2WXpif Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA0knXyUhSUUBViskRAuOKAJ9/vFtHX5v7FfjMNmaYKe0oWuHlnQCfQMAk gC6OiCXBbvxqzoLgxzTn1sU= =++qm -----END PGP SIGNATURE----- --=-jDMxe27RyHa2vX2WXpif-- From tallison@tacocat.net Fri Jun 18 05:24:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4F4C6C000DCD; Fri, 18 Jun 2004 05:24:07 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id C9012C000D8E for ; Fri, 18 Jun 2004 05:24:04 +0300 (EEST) Received: from tacocat.net (unknown [192.168.1.106]) by cling.tacocat.net (Postfix) with ESMTP id AF02F4C07B for ; Thu, 17 Jun 2004 22:16:14 -0400 (EDT) Message-ID: <40D251BC.5090605@tacocat.net> Date: Thu, 17 Jun 2004 22:21:48 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030821 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.76.5.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] IMAP and webmail applications X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 02:24:07 -0000 X-UID: 9535 Status: O Content-Length: 1467 I've been hunting around for a webmail application other than squirrelmail for reasons that really don't matter. But I'm seeing that a lot of these applications tend to sometimes access servers via IMAP, but they always seem to have a touch more information needed than might be for an IMAP session. An example is openwebmail. It authenticates very similar to how dovecot authenticates, with a userdb and passdb specifications. It reads directly off the disk for some of it's activities. As for squirrelmail, they seem to want a lot of information regarding the mail architecture (mbox, maildir, folder locations...) and I don't really see where this could come into play with an IMAP implimentation. So, not actually having read all 82 pages of RFC 2060 (but I did print them!), I'm trying to see what I might miss if I were to attempt a web mail application that was based entirely upon IMAPv4 with the only information known prior to connection is the server name. Kind of like my mail client. Will I get into trouble with mail directories/folders if I start accessing different IMAP servers other than dovecot? Can I discover this without any hints from the user? I'm not sure exactly what I'm asking for here, other than some thoughts on what I might have to watch out for or do without (when comparing to squirrelmail as an example). I know I'll have to do something different if someone wants an addressbook, but I'm not there yet. From durango99@hotmail.com Fri Jun 18 05:43:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 74987C000DCF; Fri, 18 Jun 2004 05:43:03 +0300 (EEST) Received: from outbound3.mail.tds.net (outbound3.mail.tds.net [216.170.230.93]) by talvi.dovecot.org (Postfix) with ESMTP id 11312C0007B4 for ; Fri, 18 Jun 2004 05:43:01 +0300 (EEST) Received: from linux.webbase.us (mdsnwi16-vlan463-229.dsl.tds.net [216.170.241.229]) by outbound3.mail.tds.net (8.12.10/8.12.2) with ESMTP id i5I2Z86j019275; Thu, 17 Jun 2004 21:35:10 -0500 (CDT) Received: from localhost ([127.0.0.1] helo=linux.webbase.us) by linux.webbase.us with esmtp (Exim 3.36 #1 (Debian)) id 1Bb9Dg-0005kd-00; Thu, 17 Jun 2004 21:35:08 -0500 Received: from 192.168.0.33 (SquirrelMail authenticated user dwang); by linux.webbase.us with HTTP; Thu, 17 Jun 2004 21:35:08 -0500 (CDT) Message-ID: <4669.192.168.0.33.1087526108.squirrel@192.168.0.33> Date: Thu, 17 Jun 2004 21:35:08 -0500 (CDT) Subject: Re: [Dovecot] IMAP and webmail applications From: "durango99" To: "Tom Allison" User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: durango99@hotmail.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 02:43:03 -0000 X-UID: 9536 Status: O Content-Length: 2343 i thought squirrelmail would be way too much of an overkill for my needs also but i went for it. i'm using debian and i got the squirrelmail package installed and working within 15 minutes. what really makes life easy is that squirrelmail comes with a configuration utility (squirrelmail-configure). it was very easy to get things configured without worry about a lot of conf files :) i also like the many plugins that people have created for squirrelmail. it's also very simple to add these plugins into squirrelmail using squirrelmail-configure. i had originally been ssh and mutt to check my mail, but i decided it be nice to have a web front-end and squirrelmail /apache /dovecot /procmail /spamassassin /gotmail /getmail /fetchyahoo have been a good mix for me. the hardest part for me was figuring out procmail and not squirrelmail :) my 2 cents, dan > I've been hunting around for a webmail application other than > squirrelmail for reasons that really don't matter. > > But I'm seeing that a lot of these applications tend to sometimes access servers via IMAP, but they always seem to have a touch more information needed than might be for an IMAP session. > > An example is openwebmail. It authenticates very similar to how dovecot authenticates, with a userdb and passdb specifications. It reads directly off the disk for some of it's activities. > > As for squirrelmail, they seem to want a lot of information regarding the mail architecture (mbox, maildir, folder locations...) and I don't really see where this could come into play with an IMAP implimentation. > > So, not actually having read all 82 pages of RFC 2060 (but I did print them!), I'm trying to see what I might miss if I were to attempt a web mail application that was based entirely upon IMAPv4 with the only information known prior to connection is the server name. Kind of like my mail client. > > Will I get into trouble with mail directories/folders if I start accessing different IMAP servers other than dovecot? Can I discover this without any hints from the user? > > I'm not sure exactly what I'm asking for here, other than some thoughts on what I might have to watch out for or do without (when comparing to squirrelmail as an example). I know I'll have to do something different if someone wants an addressbook, but I'm not there yet. > From tallison@tacocat.net Fri Jun 18 05:46:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0C88FC000DD4; Fri, 18 Jun 2004 05:46:04 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id 28597C0007B4 for ; Fri, 18 Jun 2004 05:46:00 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id D6F794C07B; Thu, 17 Jun 2004 22:38:10 -0400 (EDT) Message-ID: <40D25592.1080807@tacocat.net> Date: Thu, 17 Jun 2004 22:38:10 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dan_wang@yahoo.com Subject: Re: [Dovecot] IMAP and webmail applications References: <40D251BC.5090605@tacocat.net> <4658.192.168.0.33.1087525742.squirrel@192.168.0.33> In-Reply-To: <4658.192.168.0.33.1087525742.squirrel@192.168.0.33> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 02:46:04 -0000 X-UID: 9537 Status: O Content-Length: 1466 Dan Wang wrote: > i thought squirrelmail would be way too much of an overkill for my needs > also but i went for it. i'm using debian and i got the squirrelmail > package installed and working within 15 minutes. what really makes life > easy is that squirrelmail comes with a configuration utility > (squirrelmail-configure). it was very easy to get things configured > without worry about a lot of conf files :) i also like the many plugins > that people have created for squirrelmail. it's also very simple to add > these plugins into squirrelmail using squirrelmail-configure. > > i had originally been ssh and mutt to check my mail, but i decided it be > nice to have a web front-end and squirrelmail /apache /dovecot /procmail > /spamassassin /gotmail /getmail /fetchyahoo have been a good mix for me. > > the hardest part for me was figuring out procmail and not squirrelmail :) > squirrelmails nice. I'm not going to knock it. In fact, I consider it right to be an example of what to follow. But my interests are to write something for compatability with mod_perl and HTML::Mason so give me a system that will be much faster than squirrelmail and easier to include in web sites. (HTML::Mason would allow you to write the entire webmail application as an object to include in a page...) The advantage of HTML::Mason over PHP is that it's very easy to cache pages in addition to the advantages of mod_perl over PHP (unless you use Zope?). From durango99@hotmail.com Fri Jun 18 05:55:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 32827C000DD9; Fri, 18 Jun 2004 05:55:09 +0300 (EEST) Received: from outbound2.mail.tds.net (outbound2.mail.tds.net [216.170.230.92]) by talvi.dovecot.org (Postfix) with ESMTP id D07ABC000DD6 for ; Fri, 18 Jun 2004 05:55:06 +0300 (EEST) Received: from linux.webbase.us (mdsnwi16-vlan463-229.dsl.tds.net [216.170.241.229]) by outbound2.mail.tds.net (8.12.10/8.12.2) with ESMTP id i5I2lFCw023434; Thu, 17 Jun 2004 21:47:16 -0500 (CDT) Received: from localhost ([127.0.0.1] helo=linux.webbase.us) by linux.webbase.us with esmtp (Exim 3.36 #1 (Debian)) id 1Bb9PP-0005qj-00; Thu, 17 Jun 2004 21:47:15 -0500 Received: from 192.168.0.33 (SquirrelMail authenticated user dwang); by linux.webbase.us with HTTP; Thu, 17 Jun 2004 21:47:15 -0500 (CDT) Message-ID: <4728.192.168.0.33.1087526835.squirrel@192.168.0.33> Date: Thu, 17 Jun 2004 21:47:15 -0500 (CDT) Subject: Re: [Dovecot] IMAP and webmail applications From: "durango99" To: "Tom Allison" User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal References: <40D251BC.5090605@tacocat.net> <4658.192.168.0.33.1087525742.squirrel@192.168.0.33> <40D25592.1080807@tacocat.net> In-Reply-To: <40D25592.1080807@tacocat.net> Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: durango99@hotmail.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 02:55:09 -0000 X-UID: 9538 Status: O Content-Length: 1931 I haven't worked with Mason but I know a bit of what it does and it seems you want more integration into an existing website. I don't have any expertise with performance between perl and php so I can't comment on that :) The only other thing I can add to the conversation is my interest in looking at imapproxy or something similar to allow caching of imap and improve web client performance. I haven't tried it yet, but it's something I'll goof around with. > Dan Wang wrote: >> i thought squirrelmail would be way too much of an overkill for my needs >> also but i went for it. i'm using debian and i got the squirrelmail package installed and working within 15 minutes. what really makes life >> easy is that squirrelmail comes with a configuration utility >> (squirrelmail-configure). it was very easy to get things configured without worry about a lot of conf files :) i also like the many plugins >> that people have created for squirrelmail. it's also very simple to add >> these plugins into squirrelmail using squirrelmail-configure. >> i had originally been ssh and mutt to check my mail, but i decided it be >> nice to have a web front-end and squirrelmail /apache /dovecot /procmail >> /spamassassin /gotmail /getmail /fetchyahoo have been a good mix for me. >> the hardest part for me was figuring out procmail and not squirrelmail :) > > squirrelmails nice. I'm not going to knock it. In fact, I consider it right to be an example of what to follow. > > But my interests are to write something for compatability with mod_perl and HTML::Mason so give me a system that will be much faster than squirrelmail and easier to include in web sites. (HTML::Mason would allow you to write the entire webmail application as an object to include in a page...) The advantage of HTML::Mason over PHP is that it's very easy to cache pages in addition to the advantages of mod_perl over PHP (unless you use Zope?). > From dan_wang@yahoo.com Fri Jun 18 05:37:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8F6F6C000DD3; Fri, 18 Jun 2004 05:37:00 +0300 (EEST) Received: from outbound3.mail.tds.net (outbound3.mail.tds.net [216.170.230.93]) by talvi.dovecot.org (Postfix) with ESMTP id 18853C000DCF for ; Fri, 18 Jun 2004 05:36:58 +0300 (EEST) Received: from linux.webbase.us (mdsnwi16-vlan463-229.dsl.tds.net [216.170.241.229]) by outbound3.mail.tds.net (8.12.10/8.12.2) with ESMTP id i5I2T26j017167; Thu, 17 Jun 2004 21:29:07 -0500 (CDT) Received: from localhost ([127.0.0.1] helo=linux.webbase.us) by linux.webbase.us with esmtp (Exim 3.36 #1 (Debian)) id 1Bb97m-0005i0-00; Thu, 17 Jun 2004 21:29:02 -0500 Received: from 192.168.0.33 (SquirrelMail authenticated user dwang); by linux.webbase.us with HTTP; Thu, 17 Jun 2004 21:29:02 -0500 (CDT) Message-ID: <4658.192.168.0.33.1087525742.squirrel@192.168.0.33> In-Reply-To: <40D251BC.5090605@tacocat.net> References: <40D251BC.5090605@tacocat.net> Date: Thu, 17 Jun 2004 21:29:02 -0500 (CDT) Subject: Re: [Dovecot] IMAP and webmail applications From: "Dan Wang" To: "Tom Allison" User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-Mailman-Approved-At: Fri, 18 Jun 2004 06:40:41 +0300 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: dan_wang@yahoo.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 02:37:00 -0000 X-UID: 9539 Status: O Content-Length: 2371 i thought squirrelmail would be way too much of an overkill for my needs also but i went for it. i'm using debian and i got the squirrelmail package installed and working within 15 minutes. what really makes life easy is that squirrelmail comes with a configuration utility (squirrelmail-configure). it was very easy to get things configured without worry about a lot of conf files :) i also like the many plugins that people have created for squirrelmail. it's also very simple to add these plugins into squirrelmail using squirrelmail-configure. i had originally been ssh and mutt to check my mail, but i decided it be nice to have a web front-end and squirrelmail /apache /dovecot /procmail /spamassassin /gotmail /getmail /fetchyahoo have been a good mix for me. the hardest part for me was figuring out procmail and not squirrelmail :) my 2 cents, dan > I've been hunting around for a webmail application other than > squirrelmail for reasons that really don't matter. > > But I'm seeing that a lot of these applications tend to sometimes access > servers via IMAP, but they always seem to have a touch more information > needed than might be for an IMAP session. > > An example is openwebmail. It authenticates very similar to how dovecot > authenticates, with a userdb and passdb specifications. It reads > directly off the disk for some of it's activities. > > As for squirrelmail, they seem to want a lot of information regarding > the mail architecture (mbox, maildir, folder locations...) and I don't > really see where this could come into play with an IMAP implimentation. > > So, not actually having read all 82 pages of RFC 2060 (but I did print > them!), I'm trying to see what I might miss if I were to attempt a web > mail application that was based entirely upon IMAPv4 with the only > information known prior to connection is the server name. Kind of like > my mail client. > > Will I get into trouble with mail directories/folders if I start > accessing different IMAP servers other than dovecot? Can I discover > this without any hints from the user? > > I'm not sure exactly what I'm asking for here, other than some thoughts > on what I might have to watch out for or do without (when comparing to > squirrelmail as an example). I know I'll have to do something different > if someone wants an addressbook, but I'm not there yet. > From tss@iki.fi Fri Jun 18 06:48:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3CEB6C000DCF; Fri, 18 Jun 2004 06:48:59 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id D0092C000DCD for ; Fri, 18 Jun 2004 06:48:56 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id EFD751C185E0; Fri, 18 Jun 2004 06:41:07 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id ED7491C1D0E3; Fri, 18 Jun 2004 06:40:33 +0300 (EEST) Subject: Re: [Dovecot] IMAP and webmail applications From: Timo Sirainen To: Tom Allison In-Reply-To: <40D251BC.5090605@tacocat.net> References: <40D251BC.5090605@tacocat.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-scY6WmBsWcKdIBaTEvpV" Message-Id: <1087530033.25522.83.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 18 Jun 2004 06:40:33 +0300 X-Spam-Status: No, hits=-9.3 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 03:48:59 -0000 X-UID: 9540 Status: O --=-scY6WmBsWcKdIBaTEvpV Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-06-18 at 05:21, Tom Allison wrote: > As for squirrelmail, they seem to want a lot of information regarding=20 > the mail architecture (mbox, maildir, folder locations...) and I don't=20 > really see where this could come into play with an IMAP implimentation. I suppose it tries to work around some issues with different server implementations. It really shouldn't need them if it and server were both fully IMAP compatible. Well, except for the folder locations. It needs to know what your sent-mail etc. boxes are named. --=-scY6WmBsWcKdIBaTEvpV Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA0mQxyUhSUUBViskRAgM5AJ9ILaB77Yy4Puw9e9UrpVSTbdJR9wCfQBNY TqOEYZn1UwbQ7p+IXU0ZGHU= =Dd7b -----END PGP SIGNATURE----- --=-scY6WmBsWcKdIBaTEvpV-- From tomi.hakala@clinet.fi Fri Jun 18 11:06:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5BF3CC000DCD; Fri, 18 Jun 2004 11:06:58 +0300 (EEST) Received: from columbia.jamsanpaintball.fi (columbia.jamsanpaintball.fi [80.64.12.172]) by talvi.dovecot.org (Postfix) with ESMTP id EF666C0007B4 for ; Fri, 18 Jun 2004 11:06:51 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by columbia.jamsanpaintball.fi (Postfix) with ESMTP id 7EB301BADA for ; Fri, 18 Jun 2004 10:59:02 +0300 (EEST) Received: from columbia.jamsanpaintball.fi ([127.0.0.1]) by localhost (columbia [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 08682-08 for ; Fri, 18 Jun 2004 10:58:58 +0300 (EEST) Received: from clinet.fi (dsl-jklgw3qf5.dial.inet.fi [80.221.106.245]) by columbia.jamsanpaintball.fi (Postfix) with ESMTP id 7B2EF1BAD7 for ; Fri, 18 Jun 2004 10:58:58 +0300 (EEST) Message-ID: <40D2A0C3.DE62C082@clinet.fi> Date: Fri, 18 Jun 2004 10:58:59 +0300 From: Tomi Hakala X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test17 References: <1087518650.25522.38.camel@hurina> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at jamsanpaintball.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 08:06:58 -0000 X-UID: 9541 Status: O Content-Length: 1785 Timo Sirainen wrote: > Just mbox fixes since 1.0-test16. The logic is simpler and more correct > now. Can anyone break it anymore? _o/, I can. Every time when indexes are rebuilt, new mail etc, Dovecot segfaults with this error in logs: Info: pop3-login: Login: joe [127.0.0.1] Error: POP3(joe): file mbox-sync.c: line 745 (mbox_sync_handle_eof_updates): assertion failed: (sync_ctx->expunged_space == 0) Error: child 21489 (pop3) killed with signal 6 Here's a backtrace of it. (gdb) bt #0 0x45dc0721 in kill () from /lib/libc.so.6 #1 0x45dc04c5 in raise () from /lib/libc.so.6 #2 0x45dc19e8 in abort () from /lib/libc.so.6 #3 0x0807de25 in i_internal_panic_handler (fmt=0x0, args=0x0) at failures.c:369 #4 0x0807d8f9 in i_panic (format=0x0) at failures.c:173 #5 0x0805f154 in mbox_sync_handle_eof_updates (sync_ctx=0x2e9, mail_ctx=0xba6eed80) at mbox-sync.c:813 #6 0x0805f8e1 in mbox_sync_update_imap_base (sync_ctx=0xba6eee50) at mbox-sync.c:952 #7 0x0805fc54 in mbox_sync (ibox=0x80a7eb8, last_commit=-1, lock=0) at mbox-sync.c:1053 #8 0x0805fdfb in mbox_storage_sync (box=0x80a7eb8, flags=0) at mbox-sync.c:1087 #9 0x08072746 in mailbox_sync (box=0x0, flags=1173120272) at mail-storage.c:372 #10 0x080674af in index_storage_get_status (box=0x80a7eb8, items=9, status=0xba6eefb0) at index-status.c:35 #11 0x0807271d in mailbox_get_status (box=0x45ec6510, items=0, status=0x0) at mail-storage.c:367 #12 0x08051d85 in init_mailbox (client=0x80a7a20) at client.c:54 #13 0x0805207c in client_create (hin=134780866, hout=0, storage=0x80a7930) at client.c:149 #14 0x08053723 in main_init () at main.c:119 #15 0x0805384c in main (argc=1, argv=0x0, envp=0x0) at main.c:152 (gdb) This system is a Debian GNU/Linux testing/unstable with kernel 2.4.26-grsec. -- Tomi Hakala From tomi.hakala@clinet.fi Fri Jun 18 11:36:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8261EC000DCF; Fri, 18 Jun 2004 11:36:11 +0300 (EEST) Received: from columbia.jamsanpaintball.fi (columbia.jamsanpaintball.fi [80.64.12.172]) by talvi.dovecot.org (Postfix) with ESMTP id A1CDAC0007B4 for ; Fri, 18 Jun 2004 11:36:08 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by columbia.jamsanpaintball.fi (Postfix) with ESMTP id 3A8D81BADA for ; Fri, 18 Jun 2004 11:28:19 +0300 (EEST) Received: from columbia.jamsanpaintball.fi ([127.0.0.1]) by localhost (columbia [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 06219-05 for ; Fri, 18 Jun 2004 11:28:15 +0300 (EEST) Received: from clinet.fi (dsl-jklgw3qf5.dial.inet.fi [80.221.106.245]) by columbia.jamsanpaintball.fi (Postfix) with ESMTP id 3B7291BAD7 for ; Fri, 18 Jun 2004 11:28:15 +0300 (EEST) Message-ID: <40D2A79E.D16CAAF0@clinet.fi> Date: Fri, 18 Jun 2004 11:28:14 +0300 From: Tomi Hakala X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test17 References: <1087518650.25522.38.camel@hurina> <40D2A0C3.DE62C082@clinet.fi> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at jamsanpaintball.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 08:36:11 -0000 X-UID: 9542 Status: O Content-Length: 2226 Tomi Hakala wrote: > _o/, I can. Nevermind that last backtrace, I had a sligth typo on a configure --prefix path and new binaries got installed somewhere else :-/ But I can get some segfaults with actual test17. This happens when more than one message is delivered to an empty box with no indexes present. Info: Dovecot v1.0-test17 starting up Info: pop3-login: Login: joe [127.0.0.1] Error: POP3(joe): file mbox-sync-rewrite.c: line 341 (mbox_sync_fill_leftover): assertion failed: (start_offset < end_offset) Error: child 13957 (pop3) killed with signal 6 (gdb) bt #0 0x46e45721 in kill () from /lib/libc.so.6 #1 0x46e454c5 in raise () from /lib/libc.so.6 #2 0x46e469e8 in abort () from /lib/libc.so.6 #3 0x0807e6d5 in i_internal_panic_handler (fmt=0x0, args=0x0) at failures.c:369 #4 0x0807e1a9 in i_panic (format=0x0) at failures.c:173 #5 0x08063118 in mbox_sync_fill_leftover (sync_ctx=0xb1f8d640, mails=0x80a67c8, seq=1, idx=0, start_offset=55, end_offset=43) at mbox-sync-rewrite.c:341 #6 0x080634f0 in mbox_sync_rewrite (sync_ctx=0xb1f8d640, first_seq=1, last_seq=134899656, extra_space=2985875008) at mbox-sync-rewrite.c:471 #7 0x0805f8c6 in mbox_sync_handle_eof_updates (sync_ctx=0xb1f8d640, mail_ctx=0xb1f8d560) at mbox-sync.c:819 #8 0x0805fd50 in mbox_sync_do (sync_ctx=0xb1f8d640) at mbox-sync.c:954 #9 0x080601e7 in mbox_sync (ibox=0x80a4348, last_commit=0, lock=0) at mbox-sync.c:1077 #10 0x080604eb in mbox_storage_sync (box=0x80a4348, flags=0) at mbox-sync.c:1141 #11 0x08072fb6 in mailbox_sync (box=0x0, flags=1190442256) at mail-storage.c:372 #12 0x08067d0f in index_storage_get_status (box=0x80a4348, items=9, status=0xb1f8d7a0) at index-status.c:35 #13 0x08072f8d in mailbox_get_status (box=0x46f4b510, items=0, status=0x0) at mail-storage.c:367 #14 0x08051e35 in init_mailbox (client=0x80a3eb0) at client.c:54 #15 0x0805212c in client_create (hin=134783714, hout=0, storage=0x80a3dc0) at client.c:149 #16 0x080537d3 in main_init () at main.c:119 #17 0x080538fc in main (argc=1, argv=0x0, envp=0x0) at main.c:152 (gdb) quit Now mailbox is corrupted, first and second message changed their place and first line of a mailbox contains "From" and "Return-Path" lines. -- Tomi Hakala From t1lt@bk.ru Fri Jun 18 12:12:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5B6A3C000DCF; Fri, 18 Jun 2004 12:12:09 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 22158C0007B4 for ; Fri, 18 Jun 2004 12:12:07 +0300 (EEST) Received: (qmail 15282 invoked by uid 1000); 18 Jun 2004 09:04:17 -0000 Date: Fri, 18 Jun 2004 11:04:17 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test16 - nearing usable state Message-ID: <20040618090417.GA14324@widecut.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1087347781.783.142.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1087347781.783.142.camel@hurina> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 09:12:09 -0000 X-UID: 9543 Status: O On Wed, Jun 16, 2004 at 04:03:01AM +0300, Timo Sirainen wrote: > http://dovecot.org/test/ > > Here you go, maildir syncing problems finally fixed (I hope). Well, > except there's this "new-dir-only syncing" optimization which I'm not > really sure if it works as it should. > > So .. Maybe I'll finally start using this myself now. The next important > problems seem to be some random error messages about index locking > timeouts and some asserts in some situations. Yahoo! From mkortela@cc.hut.fi Fri Jun 18 13:08:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5BA84C000DE2; Fri, 18 Jun 2004 13:08:20 +0300 (EEST) Received: from gw02.mail.saunalahti.fi (gw02.mail.saunalahti.fi [195.197.172.116]) by talvi.dovecot.org (Postfix) with ESMTP id 60798C000DD8 for ; Fri, 18 Jun 2004 13:08:18 +0300 (EEST) Received: from platon (platon.techelp.fi [62.142.210.36]) by gw02.mail.saunalahti.fi (Postfix) with ESMTP id DB9CC44602 for ; Fri, 18 Jun 2004 13:00:28 +0300 (EEST) Date: Fri, 18 Jun 2004 13:00:28 +0300 (EEST) From: mkortela@cc.hut.fi X-X-Sender: mkortela@platon To: dovecot@dovecot.org Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [Dovecot] Maildir + Evolution X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 10:08:20 -0000 X-UID: 9544 Status: O I don't know if this is an Evolution bug or not, but when I use the maildir format with Dovecot 0.99.10p2 (from OpenBSD packages collection) and connect to it from Evolution 1.4 using IMAP, Evolution displays subfolders incorrectly. It actually does not show any subfolders, only root folders with names like "Folder.Subfolder" and "Folder.Subfolder.Subsubfolder". There's no such problem when using traditional mailboxes. Is this an Evolution bug or one of Dovecot's? I had thought the IMAP protocol should act the same no matter which mail dir structure was used... -- Mikko Kortelainen mkortela@cc.hut.fi From tallison@tacocat.net Fri Jun 18 13:09:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 57400C000DE6; Fri, 18 Jun 2004 13:09:34 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id 07319C000DE2 for ; Fri, 18 Jun 2004 13:09:32 +0300 (EEST) Received: from tacocat.net (unknown [192.168.1.106]) by cling.tacocat.net (Postfix) with ESMTP id 2359A4C07B; Fri, 18 Jun 2004 06:01:41 -0400 (EDT) Message-ID: <40D2BED4.3070703@tacocat.net> Date: Fri, 18 Jun 2004 06:07:16 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030821 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen , dovecot@dovecot.org Subject: Re: [Dovecot] IMAP and webmail applications References: <40D251BC.5090605@tacocat.net> <1087530033.25522.83.camel@hurina> In-Reply-To: <1087530033.25522.83.camel@hurina> X-Enigmail-Version: 0.76.5.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 10:09:34 -0000 X-UID: 9545 Status: O Timo Sirainen wrote: > On Fri, 2004-06-18 at 05:21, Tom Allison wrote: > >>As for squirrelmail, they seem to want a lot of information regarding >>the mail architecture (mbox, maildir, folder locations...) and I don't >>really see where this could come into play with an IMAP implimentation. > > > I suppose it tries to work around some issues with different server > implementations. It really shouldn't need them if it and server were > both fully IMAP compatible. > > Well, except for the folder locations. It needs to know what your > sent-mail etc. boxes are named. > OK, I guess that's about the only one I really got stuck on, but unless someone's being difficult or esoteric I think everyone uses the set: inbox, sent, trash, drafts with some variation on capitalization. IIRC, Kmail used something unexpected by me, but I think it was ~/Mail/ instead of ~/Maildir or ~/mail. Minor, but somewhat predictable. From gmid-dovecot@m.gmane.org Fri Jun 18 13:13:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E1DE4C000DEA; Fri, 18 Jun 2004 13:13:11 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id D2D77C000DE6 for ; Fri, 18 Jun 2004 13:13:09 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BbGFM-0003iD-00 for ; Fri, 18 Jun 2004 12:05:20 +0200 Received: from pd9e1e194.dip.t-dialin.net ([217.225.225.148]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 18 Jun 2004 12:05:20 +0200 Received: from matthias.andree by pd9e1e194.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 18 Jun 2004 12:05:20 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Fri, 18 Jun 2004 11:32:22 +0200 Lines: 13 Message-ID: References: <1087520409.25522.53.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pd9e1e194.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:Tr+ngKmB7d6OP98Bgl5bE6fzkSU= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: 0.99.10.6-rc1 released X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 10:13:12 -0000 X-UID: 9546 Status: O Timo Sirainen writes: > http://dovecot.org/rc/ > > Fixes the crashes people had been getting more often with 0.99.10.5. > Also included all the patches in dovecot.org/patches/old: Hmmm... how about the namespace patch as a migration aid? :-) -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From reboot78@freenet.de Fri Jun 18 15:00:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A8AE3C000D8E; Fri, 18 Jun 2004 15:00:51 +0300 (EEST) Received: from mout2.freenet.de (mout2.freenet.de [194.97.50.155]) by talvi.dovecot.org (Postfix) with ESMTP id 178D4C0007B4 for ; Fri, 18 Jun 2004 15:00:47 +0300 (EEST) Received: from [194.97.50.144] (helo=mx1.freenet.de) by mout2.freenet.de with asmtp (Exim 4.33) id 1BbHvS-00077r-Ip for dovecot@dovecot.org; Fri, 18 Jun 2004 13:52:54 +0200 Received: from pd95d440d.dip.t-dialin.net ([217.93.68.13] helo=navi.lan) by mx1.freenet.de with asmtp (ID reboot78@freenet.de) (Exim 4.33 #3) id 1BbHvS-0007l9-5U for dovecot@dovecot.org; Fri, 18 Jun 2004 13:52:54 +0200 Date: Fri, 18 Jun 2004 13:52:45 +0200 From: Christoph Hohmann To: dovecot@dovecot.org Subject: Re: [Dovecot] Maildir + Evolution Message-Id: <20040618135245.0becb1c8@navi.lan> In-Reply-To: References: X-Mailer: Sylpheed-Claws 0.9.11cvs13 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 12:00:52 -0000 X-UID: 9547 Status: O mkortela@cc.hut.fi wrote: > I don't know if this is an Evolution bug or not, but when I use the > maildir format with Dovecot 0.99.10p2 (from OpenBSD packages collection) > and connect to it from Evolution 1.4 using IMAP, Evolution displays > subfolders incorrectly. It actually does not show any subfolders, only > root folders with names like "Folder.Subfolder" and > "Folder.Subfolder.Subsubfolder". Evolution is not using the Maildir++ standard to create subfolders where every folder is a subdirectory of the INBOX. Evolution creates subdirectories inside the subfolders directories. See http://www.inter7.com/courierimap/README.maildirquota.html for the Maildir++ specification. -- http://reboot.animeirc.de (Personal Homepage) http://sylpheed-claws.sourceforge.net/ (Open Source Mailer) From t1lt@bk.ru Fri Jun 18 16:41:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2BA01C000DCC; Fri, 18 Jun 2004 16:41:34 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 9CFA4C000D8E for ; Fri, 18 Jun 2004 16:41:31 +0300 (EEST) Received: (qmail 30608 invoked by uid 1000); 18 Jun 2004 13:33:41 -0000 Date: Fri, 18 Jun 2004 15:33:41 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test17 Maildir bug Message-ID: <20040618133341.GA27954@widecut.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1087518650.25522.38.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1087518650.25522.38.camel@hurina> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 13:41:34 -0000 X-UID: 9548 Status: O Content-Length: 1066 Hello Timo and list, I'm still getting some maildir errors with 1.0-test17: sp dovecot: IMAP(moe): file mail-transaction-log.c: line 1159 (mail_transaction_log_sync_lock): assertion failed: (!log->index->log_locked) sp dovecot: child 6497 (imap) killed with signal 6 It happens about once an hour, I'm not sure how it can be reliably reproduced, yet. regards On Fri, Jun 18, 2004 at 03:30:50AM +0300, Timo Sirainen wrote: > http://dovecot.org/test/ > > Just mbox fixes since 1.0-test16. The logic is simpler and more correct > now. Can anyone break it anymore? I actually tested it a while with > Evolution and several mailboxes and it didn't break at least > immediately. :) > > Now maybe a few more days and I dare trying this thing myself with my > real mboxes (yes, I'm still using them). > > Dovecot mailing list archives could soon be served with 1.0-tests too, > as soon as I get support for read-only mboxes working again (storing and > comparing MD5 summed headers). -- sed 's/mbox-support/shared-folders/g' timo_todo_new.txt #;) From mem@mv.mv.com Fri Jun 18 18:44:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E1057C000D8E; Fri, 18 Jun 2004 18:44:19 +0300 (EEST) Received: from mv.mv.com (osmium.mv.net [199.125.85.152]) by talvi.dovecot.org (Postfix) with SMTP id 4DA49C0007B4 for ; Fri, 18 Jun 2004 18:44:14 +0300 (EEST) Received: (qmail 44143 invoked by uid 101); 18 Jun 2004 11:36:21 -0400 From: "Mark E. Mallett" Date: Fri, 18 Jun 2004 11:36:21 -0400 To: dovecot@dovecot.org Subject: Re: [Dovecot] 0.99.10.6-rc1 released Message-ID: <20040618153621.GB43739@osmium.mv.net> References: <1087520409.25522.53.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1087520409.25522.53.camel@hurina> User-Agent: Mutt/1.4.2.1i X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 15:44:20 -0000 X-UID: 9549 Status: O On Fri, Jun 18, 2004 at 04:00:09AM +0300, Timo Sirainen wrote: > http://dovecot.org/rc/ > > Fixes the crashes people had been getting more often with 0.99.10.5. > Also included all the patches in dovecot.org/patches/old: > > - SHA1 passwords > - mail_extra_groups setting (Debian people can finally fix #185335 :) > - autocreate missing maildirs (and don't crash) > - maildir_stat_dirs setting > > If no problems are found within few days this will simply be renamed to > 0.99.10.6. Does it have this fix: http://dovecot.procontrol.fi/list/dovecot/2003-November/002583.html ? 0.99.10.5 didn't :-) mm From NDeBeer@mweb.com Fri Jun 18 19:37:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DA78EC000DD0; Fri, 18 Jun 2004 19:37:34 +0300 (EEST) Received: from mwmx1.mweb.com (unknown [196.2.49.30]) by talvi.dovecot.org (Postfix) with ESMTP id 88E65C000D8E for ; Fri, 18 Jun 2004 19:37:29 +0300 (EEST) Received: from mwmx3.mweb.com (Not Verified[196.2.49.55]) by mwmx1.mweb.com with NetIQ MailMarshal (v5.5.5.6) id ; Fri, 18 Jun 2004 18:28:53 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C45551.581981C8" Date: Fri, 18 Jun 2004 18:28:53 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Info: Internal login failure: Thread-Index: AcRVUVj/N2k3/MEBEdiLfgABAgneNQ== From: "Nico De Beer - MWEB" To: Subject: [Dovecot] Info: Internal login failure: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 16:37:35 -0000 X-UID: 9550 Status: O Content-Length: 7873 This is a multi-part message in MIME format. ------_=_NextPart_001_01C45551.581981C8 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I get the following error on auth with mysql on pop3 what am i missing or doing wrong mysql config file db_host =3D localhost #db_port =3D 3306 db_unix_socket =3D /var/lib/mysql/mysql.sock db =3D ADMIN db_user =3D mailmaster db_passwd =3D ******** db_client_flags =3D 0 default_pass_scheme =3D PLAIN password_query =3D SELECT MAILBOX_PASSWORD AS password FROM MAIL WHERE MA= ILBOX_USERNAME =3D '%n' AND MAILBOX_DOMAIN =3D '%d' #user_query =3D SELECT MAILBOX_ROOT AS home,uid,gid FROM MAIL WHERE MAILB= OX_USERNAME =3D '%n' and MAILBOX_DOMAIN=3D'%d' dovecot config file base_dir =3D /var/run/dovecot/ protocols =3D imap pop3 imap_listen =3D * pop3_listen =3D * ssl_disable =3D yes log_path =3D /var/log/dovecot_log info_log_path =3D /var/log/dovecot_info_log log_timestamp =3D "%b %d %H:%M:%S " login_dir =3D /var/run/dovecot/login login =3D imap login_executable =3D /usr/local/libexec/dovecot/imap-login login_user =3D dovecot login_process_size =3D 16 login_process_per_connection =3D yes login_processes_count =3D 3 login_max_processes_count =3D 128 login_max_logging_users =3D 256 login =3D pop3 max_mail_processes =3D 1024 verbose_proctitle =3D no first_valid_uid =3D 500 #last_valid_uid =3D 0 default_mail_env =3D maildir:/home/mail/%d/%n/Maildir mail_cache_fields =3D MessagePart client_workarounds =3D oe6-fetch-no-newmail:outlook-idle: mailbox_check_interval =3D 300 mailbox_idle_check_interval =3D 30 mail_save_crlf =3D yes mail_read_mmaped =3D no maildir_copy_with_hardlinks =3D yes mbox_locks =3D dotlock fcntl mbox_read_dotlock =3D yes mbox_lock_timeout =3D 120 mbox_dotlock_change_timeout =3D 30 umask =3D 0077 mail_drop_priv_before_exec =3D no imap_executable =3D /usr/local/libexec/dovecot/imap imap_process_size =3D 256 pop3_executable =3D /usr/local/libexec/dovecot/pop3 pop3_process_size =3D 256 auth =3D default auth_mechanisms =3D plain auth_passdb =3D mysql /usr/local/etc/dovecot-mysql.conf auth_user =3D mailmaster auth_username_chars =3D abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW= XYZ01234567890.-_@ =A0 Are you ready for Telkom's 10-digit dialling? To find out how this will a= ffect your Internet connection in the not too distant future, go to www.m= web.co.za/ten ------_=_NextPart_001_01C45551.581981C8 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I get the following error on auth with m= ysql on pop3

what am i missing or doing wrong=

mysql config file

db_host =3D localhost
#db_port =3D 3306
db_unix_socket =3D /var/lib/mysql/mysql= .sock
db =3D ADMIN
db_user =3D mailmaster
db_passwd =3D ********
db_client_flags =3D 0
default_pass_scheme =3D PLAIN
password_query =3D SELECT MAILBOX_PASSW= ORD AS password FROM MAIL WHERE MAILBOX_USERNAME =3D '%n' AND MAILBOX_DOM= AIN =3D '%d'
#user_query =3D SELECT MAILBOX_ROOT AS = home,uid,gid FROM MAIL WHERE MAILBOX_USERNAME =3D '%n' and MAILBOX_DOMAIN= =3D'%d'

dovecot config file
base_dir =3D /var/run/dovecot/
protocols =3D imap pop3
imap_listen =3D *
pop3_listen =3D *
ssl_disable =3D yes
log_path =3D /var/log/dovecot_log
info_log_path =3D /var/log/dovecot_info= _log
log_timestamp =3D "%b %d %H:%M:%S = "
login_dir =3D /var/run/dovecot/login
login =3D imap
login_executable =3D /usr/local/libexec= /dovecot/imap-login
login_user =3D dovecot
login_process_size =3D 16
login_process_per_connection =3D yes
login_processes_count =3D 3
login_max_processes_count =3D 128
login_max_logging_users =3D 256
login =3D pop3
max_mail_processes =3D 1024
verbose_proctitle =3D no
first_valid_uid =3D 500
#last_valid_uid =3D 0
default_mail_env =3D maildir:/home/mail= /%d/%n/Maildir
mail_cache_fields =3D MessagePart
client_workarounds =3D oe6-fetch-no-new= mail:outlook-idle:
mailbox_check_interval =3D 300
mailbox_idle_check_interval =3D 30
mail_save_crlf =3D yes
mail_read_mmaped =3D no
maildir_copy_with_hardlinks =3D yes
mbox_locks =3D dotlock fcntl
mbox_read_dotlock =3D yes
mbox_lock_timeout =3D 120
mbox_dotlock_change_timeout =3D 30
umask =3D 0077
mail_drop_priv_before_exec =3D no
imap_executable =3D /usr/local/libexec/= dovecot/imap
imap_process_size =3D 256
pop3_executable =3D /usr/local/libexec/= dovecot/pop3
pop3_process_size =3D 256
auth =3D default
auth_mechanisms =3D plain
auth_passdb =3D mysql /usr/local/etc/do= vecot-mysql.conf
auth_user =3D mailmaster
auth_username_chars =3D abcdefghijklmno= pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@


Are you rea= dy for Telkom's 10-digit area code dialling?
To find out how this will= =20affect your M-Web connection in the not too distant future, click here.

M-Web   JUST LIKE THAT

= ------_=_NextPart_001_01C45551.581981C8-- From mem@mv.mv.com Fri Jun 18 19:56:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 98166C000DD5; Fri, 18 Jun 2004 19:56:23 +0300 (EEST) Received: from mv.mv.com (osmium.mv.net [199.125.85.152]) by talvi.dovecot.org (Postfix) with SMTP id 9B31EC000DD0 for ; Fri, 18 Jun 2004 19:56:20 +0300 (EEST) Received: (qmail 45185 invoked by uid 101); 18 Jun 2004 12:48:29 -0400 From: "Mark E. Mallett" Date: Fri, 18 Jun 2004 12:48:29 -0400 To: Tom Allison Subject: Re: [Dovecot] IMAP and webmail applications Message-ID: <20040618164829.GM43739@osmium.mv.net> References: <40D251BC.5090605@tacocat.net> <1087530033.25522.83.camel@hurina> <40D2BED4.3070703@tacocat.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40D2BED4.3070703@tacocat.net> User-Agent: Mutt/1.4.2.1i Cc: Timo Sirainen , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 16:56:23 -0000 X-UID: 9551 Status: O Content-Length: 1492 On Fri, Jun 18, 2004 at 06:07:16AM -0400, Tom Allison wrote: > Timo Sirainen wrote: > >On Fri, 2004-06-18 at 05:21, Tom Allison wrote: > > > >>As for squirrelmail, they seem to want a lot of information regarding > >>the mail architecture (mbox, maildir, folder locations...) and I don't > >>really see where this could come into play with an IMAP implimentation. > > > > > >I suppose it tries to work around some issues with different server > >implementations. It really shouldn't need them if it and server were > >both fully IMAP compatible. > > > >Well, except for the folder locations. It needs to know what your > >sent-mail etc. boxes are named. > > > > OK, I guess that's about the only one I really got stuck on, but unless > someone's being difficult or esoteric I think everyone uses the set: > inbox, sent, trash, drafts > with some variation on capitalization. We have a webmail application developed internally here that is based on IMAP access to remote servers (well, the "remote server" might be and usually is a server sitting in the same rack). It stores its preferences inside of a specially named mail folder on the IMAP server. When you log into the webmail appplication, you tell it the IMAP server and login info, and it finds and fetches the preferences stored there. No special protocols other than IMAP needed. (OTOH, it does need other, non-IMAP access in order to update delivery rules and delivery scripts. But that's a different arena.) mm From eric@kahklen.com Fri Jun 18 20:37:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 152C0C000DD0; Fri, 18 Jun 2004 20:37:35 +0300 (EEST) Received: from sirius.lunarpages.com (sirius.lunarpages.com [64.235.234.147]) by talvi.dovecot.org (Postfix) with ESMTP id DA41BC0007B4 for ; Fri, 18 Jun 2004 20:37:32 +0300 (EEST) Received: from email.chhip.org ([66.213.206.2] helo=[10.0.0.26]) by sirius.lunarpages.com with asmtp (Exim 4.34) id 1BbNBN-00060m-0N for dovecot@dovecot.org; Fri, 18 Jun 2004 10:29:41 -0700 Message-ID: <40D32684.5030406@kahklen.com> Date: Fri, 18 Jun 2004 10:29:40 -0700 From: Eric Kahklen User-Agent: Mozilla Thunderbird 0.7 (Windows/20040616) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - sirius.lunarpages.com X-AntiAbuse: Original Domain - dovecot.org X-AntiAbuse: Originator/Caller UID/GID - [0 0] / [47 12] X-AntiAbuse: Sender Address Domain - kahklen.com X-Source: X-Source-Args: X-Source-Dir: Subject: [Dovecot] Add SSL to Dovecot & SquirrelMail X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 17:37:35 -0000 X-UID: 9552 Status: O I am relatively new to setting up mail servers and wondered how difficult it would be to add SSL to my current Dovecot & SquirrelMail setup. Would I just add SSL to the squirrelmail directory under appache with my certificate? Does Dovecot need any changes to the configuration? I have it working fine without SSL. Thanks, Eric From tss@iki.fi Fri Jun 18 22:01:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A0E2BC000DD3; Fri, 18 Jun 2004 22:01:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 1BF42C000DD0 for ; Fri, 18 Jun 2004 22:01:50 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id B274C1C350C9; Fri, 18 Jun 2004 21:53:59 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C77D01C1D0E2; Fri, 18 Jun 2004 21:53:25 +0300 (EEST) In-Reply-To: References: <1087520409.25522.53.camel@hurina> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-17--244061285" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Re: 0.99.10.6-rc1 released Date: Fri, 18 Jun 2004 21:53:24 +0300 To: Matthias Andree X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 19:01:52 -0000 X-UID: 9553 Status: O Content-Length: 1072 --Apple-Mail-17--244061285 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 18.6.2004, at 12:32, Matthias Andree wrote: > Timo Sirainen writes: > >> http://dovecot.org/rc/ >> >> Fixes the crashes people had been getting more often with 0.99.10.5. >> Also included all the patches in dovecot.org/patches/old: > > Hmmm... how about the namespace patch as a migration aid? :-) Um.. The namespace.c which just replies dummy NAMESPACE? Well, I guess that could be added. If you meant the full blown namespace thing in 1.0-tests, that's too much code :) --Apple-Mail-17--244061285 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA0zokyUhSUUBViskRAqBnAJ9pUoVARvAPBp4KPrSPraXZe3y16gCffNET Y9YVqALrHgaBz3OI26UOKpw= =HNUt -----END PGP SIGNATURE----- --Apple-Mail-17--244061285-- From tss@iki.fi Fri Jun 18 22:04:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8132DC000DEA; Fri, 18 Jun 2004 22:04:53 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 5AC1DC000DDB for ; Fri, 18 Jun 2004 22:04:51 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 07B221C350C9; Fri, 18 Jun 2004 21:57:01 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B926A1C1D0E2; Fri, 18 Jun 2004 21:56:26 +0300 (EEST) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-18--243880707" Message-Id: <329BD904-C159-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Maildir + Evolution Date: Fri, 18 Jun 2004 21:56:25 +0300 To: mkortela@cc.hut.fi X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 19:04:53 -0000 X-UID: 9554 Status: O Content-Length: 1401 --Apple-Mail-18--243880707 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 18.6.2004, at 13:00, mkortela@cc.hut.fi wrote: > I don't know if this is an Evolution bug or not, but when I use the > maildir format with Dovecot 0.99.10p2 (from OpenBSD packages > collection) > and connect to it from Evolution 1.4 using IMAP, Evolution displays > subfolders incorrectly. It actually does not show any subfolders, only > root folders with names like "Folder.Subfolder" and > "Folder.Subfolder.Subsubfolder". There's no such problem when using > traditional mailboxes. Is this an Evolution bug or one of Dovecot's? I > had > thought the IMAP protocol should act the same no matter which mail dir > structure was used... Evolution is probably caching wrong hierarchy separator (you switched from mbox to maildir? they have different separators), recreating the account in Evolution should help. --Apple-Mail-18--243880707 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA0zrZyUhSUUBViskRAu2PAJwPSC6yj0JbbS7eVji7xxuf4SUAQQCgg9dG I5os8xrbmSBxnyXyuSkj5qc= =5Ag/ -----END PGP SIGNATURE----- --Apple-Mail-18--243880707-- From tss@iki.fi Fri Jun 18 22:06:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 97565C000DF0; Fri, 18 Jun 2004 22:06:19 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 9F671C000DEE for ; Fri, 18 Jun 2004 22:06:17 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 564FF1C350C9; Fri, 18 Jun 2004 21:58:27 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6CF481C1D0E2; Fri, 18 Jun 2004 21:57:53 +0300 (EEST) In-Reply-To: <20040618153621.GB43739@osmium.mv.net> References: <1087520409.25522.53.camel@hurina> <20040618153621.GB43739@osmium.mv.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-19--243793594" Message-Id: <6688490C-C159-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.6-rc1 released Date: Fri, 18 Jun 2004 21:57:52 +0300 To: "Mark E. Mallett" X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.0 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 19:06:19 -0000 X-UID: 9555 Status: O --Apple-Mail-19--243793594 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 18.6.2004, at 18:36, Mark E. Mallett wrote: > Does it have this fix: > > http://dovecot.procontrol.fi/list/dovecot/2003-November/002583.html > > ? > > 0.99.10.5 didn't :-) Well, I'll add the new from-line parser which supports a few more formats as well. See if -rc2 helps (I'll try to build it soon). --Apple-Mail-19--243793594 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA0zswyUhSUUBViskRAqrjAJ45+jcmUioczL63EVx+idJKJZoxtgCfUwJJ GwiapIbswlp05OK+HZukkIE= =b82n -----END PGP SIGNATURE----- --Apple-Mail-19--243793594-- From keyhman1111@yahoo.ca Fri Jun 18 22:09:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D78BDC000DF0; Fri, 18 Jun 2004 22:09:06 +0300 (EEST) Received: from web52105.mail.yahoo.com (web52105.mail.yahoo.com [206.190.39.74]) by talvi.dovecot.org (Postfix) with SMTP id 75223C000DDE for ; Fri, 18 Jun 2004 22:09:04 +0300 (EEST) Message-ID: <20040618190113.77700.qmail@web52105.mail.yahoo.com> Received: from [209.217.114.231] by web52105.mail.yahoo.com via HTTP; Fri, 18 Jun 2004 15:01:13 EDT Date: Fri, 18 Jun 2004 15:01:13 -0400 (EDT) From: Stephen Hillier To: dovecot@dovecot.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Dovecot] dovecot startup failure - dovecot-auth unable to open passwd-file X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 19:09:07 -0000 X-UID: 9556 Status: O Content-Length: 2104 Hi all, I'm stuck on getting dovecot to work for 2 days. Here's the logfile entries from the startup process(es) dovecot: Jun 18 14:48:43 Info: Dovecot starting up dovecot-auth: Jun 18 14:48:44 Fatal: Can't open passwd-file /var/run/dclogin/mail-passwd: No such file or directory dovecot: Jun 18 14:48:44 Error: Auth process died too early - shutting down dovecot: Jun 18 14:48:44 Error: child 7313 (auth) returned error 89 imap-login: Jun 18 14:48:44 Fatal: fd_send(-1) failed: Broken pipe pop3-login: Jun 18 14:48:44 Fatal: fd_send(-1) failed: Broken pipe The strange thing is, the file I've specified does exist -- i created it manually -- and the 1 entry in that file is this: steve:s13fj3NHakds.:10001:5000::/var/run/dovecot/home/steve:/sbin/nologin::~/Mail/:INBOX=/var/spool/mail/steve What's even stranger -> every time I try to startup dovecot, the passwd-file that is seen to be "missing" gets deleted!!!! why??? Here's a copy of my current (broken) conf: base_dir = /var/run/dovecot/ protocols = imap imaps pop3 pop3s ssl_disable = yes log_path = /var/log/maillog login_dir = /var/run/dclogin login_chroot = no login = imap login_executable = /usr/libexec/dovecot/imap-login login_user = doveauth login_process_per_connection = yes login_processes_count = 5 login = pop3 login_executable = /usr/libexec/dovecot/pop3-login first_valid_uid = 10000 last_valid_uid = 20000 first_valid_gid = 5000 last_valid_gid = 5100 default_mail_env = mbox:~/Mail/:INBOX=/var/spool/mail/%u mbox_locks = fcntl imap_executable = /usr/libexec/dovecot/imap pop3_executable = /usr/libexec/dovecot/pop3 auth = default auth_mechanisms = plain digest-md5 auth_userdb = passwd-file /var/run/dclogin/mail-passwd auth_passdb = passwd-file /var/run/dclogin/mail-passwd auth_executable = /usr/libexec/dovecot/dovecot-auth auth_verbose = yes I'm sure I did something silly in my conf that's causing the problem but I'm not sure what that might be. Thanks in advance for any and all help. Steve. ______________________________________________________________________ Post your free ad now! http://personals.yahoo.ca From tss@iki.fi Fri Jun 18 22:14:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 57EEAC000DDE; Fri, 18 Jun 2004 22:14:45 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 67BC9C000DDE for ; Fri, 18 Jun 2004 22:14:43 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 0F0091C350C9; Fri, 18 Jun 2004 22:06:53 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 344551C1D0E2; Fri, 18 Jun 2004 22:06:19 +0300 (EEST) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-20--243287962" Message-Id: <93E9AA02-C15A-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Info: Internal login failure: Date: Fri, 18 Jun 2004 22:06:18 +0300 To: "Nico De Beer - MWEB" X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.8 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, RCVD_IN_ORBS,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 19:14:45 -0000 X-UID: 9557 Status: O --Apple-Mail-20--243287962 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 18.6.2004, at 19:28, Nico De Beer - MWEB wrote: > I get the following error on auth with mysql on pop3 > what am i missing or doing wrong What does it say in /var/log/dovecot_log? There should be the full error message. But looks like you haven't set auth_userdb to anything, Dovecot can't log you in if it doesn't know where your home dir is. --Apple-Mail-20--243287962 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA0z0qyUhSUUBViskRAthIAJ9tx2hyfip3pj/xPvB3POJZXUoMCwCeOJMI 9BSFh3zfrbP1tJRywl0neco= =8M7E -----END PGP SIGNATURE----- --Apple-Mail-20--243287962-- From tss@iki.fi Fri Jun 18 22:23:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id ADB31C000DEA; Fri, 18 Jun 2004 22:23:33 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id CC23FC000DD0 for ; Fri, 18 Jun 2004 22:23:31 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 6FA1F1C350C9; Fri, 18 Jun 2004 22:15:41 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 8F8031C1D0E2; Fri, 18 Jun 2004 22:15:07 +0300 (EEST) In-Reply-To: <20040618190113.77700.qmail@web52105.mail.yahoo.com> References: <20040618190113.77700.qmail@web52105.mail.yahoo.com> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-21--242760016" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] dovecot startup failure - dovecot-auth unable to open passwd-file Date: Fri, 18 Jun 2004 22:15:05 +0300 To: Stephen Hillier X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.8 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, RCVD_IN_ORBS,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 19:23:33 -0000 X-UID: 9558 Status: O --Apple-Mail-21--242760016 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 18.6.2004, at 22:01, Stephen Hillier wrote: > What's even stranger -> every time I try to startup > dovecot, the passwd-file that is seen to be "missing" > gets deleted!!!! why??? > > login_dir = /var/run/dclogin Everything in login_dir is deleted when Dovecot is started. Login processes are chrooted there and it should contain nothing else than what Dovecot itself creates there. --Apple-Mail-21--242760016 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA0z86yUhSUUBViskRAoSjAKCBS5gt9bWO2QmRo4tt+Z9wJqY5nACginjH /1BKie+IojM4CWDGtkW1NE4= =MqRN -----END PGP SIGNATURE----- --Apple-Mail-21--242760016-- From t1lt@bk.ru Fri Jun 18 22:28:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 957FBC000DF0; Fri, 18 Jun 2004 22:28:41 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 406C7C000DEA for ; Fri, 18 Jun 2004 22:28:39 +0300 (EEST) Received: (qmail 3966 invoked by uid 1000); 18 Jun 2004 19:20:48 -0000 Date: Fri, 18 Jun 2004 21:20:48 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test17 Maildir bug Message-ID: <20040618192048.GA2939@widecut.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1087518650.25522.38.camel@hurina> <20040618133341.GA27954@widecut.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040618133341.GA27954@widecut.net> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 19:28:41 -0000 X-UID: 9559 Status: O Content-Length: 1436 and now these start appearing, too: sp dovecot: IMAP(moe): Maildir /home/moe/Maildir/.INBOX.ac-cron sync: UID inserted in the middle of ma ilbox (835 > 834, file = msg.jGI9:2,) sp dovecot: Killed with signal 15 switching back to dovecot-old... On Fri, Jun 18, 2004 at 03:33:41PM +0200, Moe Wibble wrote: > Hello Timo and list, > > I'm still getting some maildir errors with 1.0-test17: > > sp dovecot: IMAP(moe): file mail-transaction-log.c: line 1159 (mail_transaction_log_sync_lock): assertion failed: (!log->index->log_locked) > sp dovecot: child 6497 (imap) killed with signal 6 > > It happens about once an hour, I'm not sure how it can be > reliably reproduced, yet. > > regards > > On Fri, Jun 18, 2004 at 03:30:50AM +0300, Timo Sirainen wrote: > > http://dovecot.org/test/ > > > > Just mbox fixes since 1.0-test16. The logic is simpler and more correct > > now. Can anyone break it anymore? I actually tested it a while with > > Evolution and several mailboxes and it didn't break at least > > immediately. :) > > > > Now maybe a few more days and I dare trying this thing myself with my > > real mboxes (yes, I'm still using them). > > > > Dovecot mailing list archives could soon be served with 1.0-tests too, > > as soon as I get support for read-only mboxes working again (storing and > > comparing MD5 summed headers). > > -- > sed 's/mbox-support/shared-folders/g' timo_todo_new.txt #;) > > From tss@iki.fi Fri Jun 18 22:47:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4D220C000DEA; Fri, 18 Jun 2004 22:47:34 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 6491AC000DD3 for ; Fri, 18 Jun 2004 22:47:32 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id F252A1C350C9; Fri, 18 Jun 2004 22:39:41 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 08D1F1C1D0E2; Fri, 18 Jun 2004 22:39:08 +0300 (EEST) In-Reply-To: <20040618192048.GA2939@widecut.net> References: <1087518650.25522.38.camel@hurina> <20040618133341.GA27954@widecut.net> <20040618192048.GA2939@widecut.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-22--241319310" Message-Id: <2951ECAA-C15F-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test17 Maildir bug Date: Fri, 18 Jun 2004 22:39:06 +0300 To: Moe Wibble X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.0 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 19:47:34 -0000 X-UID: 9560 Status: O --Apple-Mail-22--241319310 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 18.6.2004, at 22:20, Moe Wibble wrote: > and now these start appearing, too: > > sp dovecot: IMAP(moe): Maildir /home/moe/Maildir/.INBOX.ac-cron sync: > UID inserted in the middle of ma > ilbox (835 > 834, file = msg.jGI9:2,) > sp dovecot: Killed with signal 15 Hmm. You sure this wasn't because of old broken indexes in that mailbox? --Apple-Mail-22--241319310 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA00TbyUhSUUBViskRAvxlAJ45r+XHLAS+dVtoZ0XOBnWbxxC3UACfX917 YqWaOqARxeKIPWqgpZYhExU= =h4pO -----END PGP SIGNATURE----- --Apple-Mail-22--241319310-- From tss@iki.fi Fri Jun 18 22:48:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0A2F8C000DF0; Fri, 18 Jun 2004 22:48:22 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 2F29EC000DD3 for ; Fri, 18 Jun 2004 22:48:20 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id CA3461C350C9; Fri, 18 Jun 2004 22:40:29 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 512411C1D0E2 for ; Fri, 18 Jun 2004 22:39:55 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v618) Content-Transfer-Encoding: 7bit Message-Id: <460A6CC6-C15F-11D8-8017-000393CC2E90@iki.fi> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-23--241271125" To: Dovecot list From: Timo Sirainen Date: Fri, 18 Jun 2004 22:39:54 +0300 X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.3 required=5.0 tests=AWL,BAYES_00,PGP_SIGNATURE_2,RCVD_IN_ORBS, USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 0.99.10.6-rc2 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 19:48:22 -0000 X-UID: 9561 Status: O --Apple-Mail-23--241271125 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed http://dovecot.org/rc/ Since rc1: - Changed a few comments in dovecot-example.conf - Changed a few error messages. Most importantly: "Internal error occured. Error report written to server log." .. maybe that would get more people to look for the real error in the log file :) - Added NAMESPACE command - Fixed SHA1 compiling issue - Fixed FreeBSD compiling issue --Apple-Mail-23--241271125 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA00ULyUhSUUBViskRAt9AAJ4sw4VK0JNGtmSq2tsE8jnxUAUDNwCgjlXu 6sWQYXycbnx+rtWMzjL5g1w= =sROD -----END PGP SIGNATURE----- --Apple-Mail-23--241271125-- From t1lt@bk.ru Fri Jun 18 23:14:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 86B97C000DCD; Fri, 18 Jun 2004 23:14:23 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 5E924C000D8E for ; Fri, 18 Jun 2004 23:14:21 +0300 (EEST) Received: (qmail 18205 invoked by uid 1000); 18 Jun 2004 20:06:30 -0000 Date: Fri, 18 Jun 2004 22:06:30 +0200 From: Moe Wibble To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test17 Maildir bug Message-ID: <20040618200630.GB2939@widecut.net> Mail-Followup-To: Moe Wibble , Timo Sirainen , dovecot@dovecot.org References: <1087518650.25522.38.camel@hurina> <20040618133341.GA27954@widecut.net> <20040618192048.GA2939@widecut.net> <2951ECAA-C15F-11D8-8017-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2951ECAA-C15F-11D8-8017-000393CC2E90@iki.fi> Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 20:14:23 -0000 X-UID: 9562 Status: O On Fri, Jun 18, 2004 at 10:39:06PM +0300, Timo Sirainen wrote: > On 18.6.2004, at 22:20, Moe Wibble wrote: > > >and now these start appearing, too: > > > >sp dovecot: IMAP(moe): Maildir /home/moe/Maildir/.INBOX.ac-cron sync: > >UID inserted in the middle of ma > >ilbox (835 > 834, file = msg.jGI9:2,) > >sp dovecot: Killed with signal 15 > > Hmm. You sure this wasn't because of old broken indexes in that mailbox? Now that you mention it, actually I'm not sure. I'll shutdown, find . -iname "*dovecot*" -exec rm -f {} \;' and give test17 a 2nd shot. From tss@iki.fi Fri Jun 18 23:18:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 819B0C000DD3; Fri, 18 Jun 2004 23:18:36 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 761BBC000DD0 for ; Fri, 18 Jun 2004 23:18:34 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id E8F501C350C9; Fri, 18 Jun 2004 23:10:43 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0444F1C1D0E2; Fri, 18 Jun 2004 23:10:10 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test17 Maildir bug From: Timo Sirainen To: Moe Wibble In-Reply-To: <20040618200630.GB2939@widecut.net> References: <1087518650.25522.38.camel@hurina> <20040618133341.GA27954@widecut.net> <20040618192048.GA2939@widecut.net> <2951ECAA-C15F-11D8-8017-000393CC2E90@iki.fi> <20040618200630.GB2939@widecut.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-pzmClX4OHjjFQ0oTnNDk" Message-Id: <1087589409.30372.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Fri, 18 Jun 2004 23:10:09 +0300 X-Spam-Status: No, hits=-9.4 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 20:18:36 -0000 X-UID: 9563 Status: O Content-Length: 1281 --=-pzmClX4OHjjFQ0oTnNDk Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-06-18 at 23:06, Moe Wibble wrote: > On Fri, Jun 18, 2004 at 10:39:06PM +0300, Timo Sirainen wrote: > > On 18.6.2004, at 22:20, Moe Wibble wrote: > >=20 > > >and now these start appearing, too: > > > > > >sp dovecot: IMAP(moe): Maildir /home/moe/Maildir/.INBOX.ac-cron sync:=20 > > >UID inserted in the middle of ma > > >ilbox (835 > 834, file =3D msg.jGI9:2,) > > >sp dovecot: Killed with signal 15 > >=20 > > Hmm. You sure this wasn't because of old broken indexes in that mailbox= ? >=20 > Now that you mention it, actually I'm not sure. > I'll shutdown, find . -iname "*dovecot*" -exec rm -f {} \;' > and give test17 a 2nd shot. I really hope that fixes it, otherwise I have again no idea why it's breaking, and this time I can't even test it myself as it has worked correctly in my tests every time. --=-pzmClX4OHjjFQ0oTnNDk Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA00whyUhSUUBViskRAovFAJ9lhS7wt2WuCb6f+zJrsS9LDRDBSQCglzsc TWvukSW3warS4ond3t+g7Z4= =X1BI -----END PGP SIGNATURE----- --=-pzmClX4OHjjFQ0oTnNDk-- From mm-mailinglist@madness.at Sat Jun 19 00:01:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B260CC000D8E; Sat, 19 Jun 2004 00:01:52 +0300 (EEST) Received: from cronos.madness.at (madness.at [213.153.61.104]) by talvi.dovecot.org (Postfix) with ESMTP id 79C64C0007B4 for ; Sat, 19 Jun 2004 00:01:50 +0300 (EEST) Received: from mastermind.kaltenbrunner.cc ([195.70.118.73] helo=madness.at) by cronos.madness.at with asmtp (TLSv1:AES256-SHA:256) (Exim 4.33) id 1BbQN5-000BQ4-JI; Fri, 18 Jun 2004 22:53:59 +0200 Message-ID: <40D35666.7050700@madness.at> Date: Fri, 18 Jun 2004 22:53:58 +0200 From: Stefan Kaltenbrunner User-Agent: Mozilla Thunderbird 0.5 (X11/20040306) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test17 References: <1087518650.25522.38.camel@hurina> In-Reply-To: <1087518650.25522.38.camel@hurina> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 21:01:52 -0000 X-UID: 9564 Status: O Content-Length: 1668 Timo Sirainen wrote: > http://dovecot.org/test/ > > Just mbox fixes since 1.0-test16. The logic is simpler and more correct > now. Can anyone break it anymore? I actually tested it a while with > Evolution and several mailboxes and it didn't break at least > immediately. :) well I can break maildir here - although I'm quite unfair :-) I get a shitload of: Jun 18 22:39:58 cronos dovecot: IMAP(mm-mailinglist@madness.at): file mail-transaction-log-view.c: line 122 (mail_transaction_log_view_set): assertion failed: (min_file_seq != max_file_seq || min_file_offset <= max_file_offset) Jun 18 22:39:58 cronos dovecot: child 42945 (imap) killed with signal 6 Jun 18 22:39:58 cronos dovecot: imap-login: Login: mm-mailinglist@madness.at [195.70.118.73] Jun 18 22:39:58 cronos dovecot: IMAP(mm-mailinglist@madness.at): file mail-transaction-log-view.c: line 122 (mail_transaction_log_view_set): assertion failed: (min_file_seq != max_file_seq || min_file_offset <= max_file_offset) what I'm doing here is quite "strange" - though :-) i have courier-imap and dovecot serving the same(!) maildir (on different ports) for evaluation and comparison. what happens now is that new mail gets delivered into the inbox, mozilla-thunderbird (using the dovecot-connection) "sees" it and displays the headers, mozilla-thunderbird courier sees it too and "moves" the message into a subfolder due to a filterrule -> *booom*. while I agree that this is not a typical situation I would much prefer if dovecot could handle that a litte better then just crashing :-( OS is FreeBSD 4.10, client is mozilla-thunderbird. authentication is going through pgsql. Stefan From matthias.andree@gmx.de Sat Jun 19 00:21:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 35D2AC000DD1; Sat, 19 Jun 2004 00:21:04 +0300 (EEST) Received: from mail.dt.e-technik.uni-dortmund.de (mail.dt.E-Technik.Uni-Dortmund.DE [129.217.163.1]) by talvi.dovecot.org (Postfix) with ESMTP id 2C793C000D8E for ; Sat, 19 Jun 2004 00:21:02 +0300 (EEST) Received: from m2a2.dyndns.org (krusty.dt.e-technik.uni-dortmund.de [129.217.163.1]) by mail.dt.e-technik.uni-dortmund.de (Postfix) with ESMTP id A186210D00; Fri, 18 Jun 2004 23:13:10 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by merlin.emma.line.org (Postfix) with ESMTP id 5D86CBEE30; Fri, 18 Jun 2004 23:13:09 +0200 (CEST) Received: from merlin.emma.line.org ([127.0.0.1]) by localhost (m2a2.dyndns.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 22896-01-2; Fri, 18 Jun 2004 23:13:08 +0200 (CEST) Received: by merlin.emma.line.org (Postfix, from userid 500) id 774EBBD7A7; Fri, 18 Jun 2004 23:13:08 +0200 (CEST) To: Timo Sirainen Subject: Re: [Dovecot] Re: 0.99.10.6-rc1 released In-Reply-To: (Timo Sirainen's message of "Fri, 18 Jun 2004 21:53:24 +0300") References: <1087520409.25522.53.camel@hurina> From: Matthias Andree Date: Fri, 18 Jun 2004 23:13:08 +0200 Message-ID: User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new at m2a2.dyndns.org Cc: Matthias Andree , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 21:21:04 -0000 X-UID: 9565 Status: O Timo Sirainen writes: > Um.. The namespace.c which just replies dummy NAMESPACE? Well, I guess > that could be added. If you meant the full blown namespace thing in > 1.0-tests, that's too much code :) Yes, the trivial one, so the IMAP clients figure how the stuff is laid out. It has helped migration from Courier-IMAP a lot in 0.99.10.4 + patch. No problems reported with Linux clients (Evolution, Sylpheed, mutt). -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From tss@iki.fi Sat Jun 19 00:53:20 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AE9F9C000D8E; Sat, 19 Jun 2004 00:53:20 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B2DCDC0007B4 for ; Sat, 19 Jun 2004 00:53:18 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 19CE11C350C9; Sat, 19 Jun 2004 00:45:28 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0CFDF1C1D0E2; Sat, 19 Jun 2004 00:44:54 +0300 (EEST) In-Reply-To: <40D35666.7050700@madness.at> References: <1087518650.25522.38.camel@hurina> <40D35666.7050700@madness.at> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-24--233773628" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test17 Date: Sat, 19 Jun 2004 00:44:52 +0300 To: Stefan Kaltenbrunner X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.7 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 21:53:20 -0000 X-UID: 9566 Status: O Content-Length: 1884 --Apple-Mail-24--233773628 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 18.6.2004, at 23:53, Stefan Kaltenbrunner wrote: > well I can break maildir here - although I'm quite unfair :-) > > I get a shitload of: > > Jun 18 22:39:58 cronos dovecot: IMAP(mm-mailinglist@madness.at): file > mail-transaction-log-view.c: line 122 (mail_transaction_log_view_set): > assertion failed: (min_file_seq != max_file_seq || min_file_offset <= > max_file_offset) > Jun 18 22:39:58 cronos dovecot: child 42945 (imap) killed with signal 6 Oh, that's "normal". I haven't gotten around to figure out that bug yet, but it's completely different from what used to be breaking before. > what I'm doing here is quite "strange" - though :-) > > i have courier-imap and dovecot serving the same(!) maildir (on > different ports) for evaluation and comparison. what happens now is > that new mail gets delivered into the inbox, mozilla-thunderbird > (using the dovecot-connection) "sees" it and displays the headers, > mozilla-thunderbird courier sees it too and "moves" the message into a > subfolder due to a filterrule -> *booom*. > > while I agree that this is not a typical situation I would much prefer > if dovecot could handle that a litte better then just crashing :-( Sure, if Dovecot can't handle other clients accessing the maildir it can't be called maildir-compatible. --Apple-Mail-24--233773628 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA02JVyUhSUUBViskRAjNUAJ9xMjNbvumhJ9zhg5856qI5LAiz/ACfdMz2 IyR7jeOXtJsTN3KES+Hg/qM= =q3+P -----END PGP SIGNATURE----- --Apple-Mail-24--233773628-- From tss@iki.fi Sat Jun 19 04:16:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1DAEBC000D8E; Sat, 19 Jun 2004 04:16:00 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 04718C0007B4 for ; Sat, 19 Jun 2004 04:15:58 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 1082F1C350C9; Sat, 19 Jun 2004 04:08:07 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3E8A21C1D0E2 for ; Sat, 19 Jun 2004 04:07:33 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-W/ynQ/3xAUQm1iRNEjiT" Message-Id: <1087607252.30372.19.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 19 Jun 2004 04:07:32 +0300 X-Spam-Status: No, hits=-8.7 required=5.0 tests=AWL,BAYES_00,PGP_SIGNATURE_2,RCVD_IN_ORBS,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test18 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 01:16:00 -0000 X-UID: 9567 Status: O --=-W/ynQ/3xAUQm1iRNEjiT Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ Again mostly just mbox fixes. The good thing is that the code is only getting cleaner and more understandable with every release. But I think it's clean enough now that this release should work :) It also has checkpassword passdb support. Supporting it as userdb isn't yet implemented. I think I'll make some generic caching thingy, so that if passdb is same as userdb, they both could be queried from database in one query. Probably by allowing pass_query/pass_filter to return them. --=-W/ynQ/3xAUQm1iRNEjiT Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA05HUyUhSUUBViskRAoL1AJ9bt4q62hDYUbnfzSVYs9Wcjrnh9QCgkHcy Xj2B1XXYrX6kIhT9b+D9JW4= =cpkD -----END PGP SIGNATURE----- --=-W/ynQ/3xAUQm1iRNEjiT-- From t1lt@bk.ru Sat Jun 19 12:32:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CCA56C000DD2; Sat, 19 Jun 2004 12:32:31 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 6526DC000D8E for ; Sat, 19 Jun 2004 12:32:29 +0300 (EEST) Received: (qmail 29364 invoked by uid 1000); 19 Jun 2004 09:24:36 -0000 Date: Sat, 19 Jun 2004 11:24:36 +0200 From: Moe Wibble To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test17 Maildir bug Message-ID: <20040619092436.GA27606@widecut.net> Mail-Followup-To: Moe Wibble , Timo Sirainen , dovecot@dovecot.org References: <1087518650.25522.38.camel@hurina> <20040618133341.GA27954@widecut.net> <20040618192048.GA2939@widecut.net> <2951ECAA-C15F-11D8-8017-000393CC2E90@iki.fi> <20040618200630.GB2939@widecut.net> <1087589409.30372.8.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1087589409.30372.8.camel@hurina> Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 09:32:32 -0000 X-UID: 9568 Status: O Content-Length: 1414 On Fri, Jun 18, 2004 at 11:10:09PM +0300, Timo Sirainen wrote: > On Fri, 2004-06-18 at 23:06, Moe Wibble wrote: > > On Fri, Jun 18, 2004 at 10:39:06PM +0300, Timo Sirainen wrote: > > > On 18.6.2004, at 22:20, Moe Wibble wrote: > > > > > > >and now these start appearing, too: > > > > > > > >sp dovecot: IMAP(moe): Maildir /home/moe/Maildir/.INBOX.ac-cron sync: > > > >UID inserted in the middle of ma > > > >ilbox (835 > 834, file = msg.jGI9:2,) > > > >sp dovecot: Killed with signal 15 > > > > > > Hmm. You sure this wasn't because of old broken indexes in that mailbox? > > > > Now that you mention it, actually I'm not sure. > > I'll shutdown, find . -iname "*dovecot*" -exec rm -f {} \;' > > and give test17 a 2nd shot. > > I really hope that fixes it, otherwise I have again no idea why it's > breaking, and this time I can't even test it myself as it has worked > correctly in my tests every time. Sorry, even after erasing *dovecot* before the upgrade this is what I got again this morning: sp dovecot: IMAP(moe): file mail-transaction-log.c: line 1159 (mail_transaction_log_sync_lock): assertion failed: (!log->index->log_locked) sp dovecot: child 25754 (imap) killed with signal 6 It seems to usually happen right after I deleted some messages and try to expunge them (maybe it's only when there is mail being delivered at the same time). But that might just be coincidence (I'm guessing). moe From tallison@tacocat.net Sat Jun 19 13:40:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 43CF5C000DD4; Sat, 19 Jun 2004 13:40:06 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id F18C1C000DD2 for ; Sat, 19 Jun 2004 13:40:01 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id 82C064C07B for ; Sat, 19 Jun 2004 06:32:08 -0400 (EDT) Message-ID: <40D41628.6050102@tacocat.net> Date: Sat, 19 Jun 2004 06:32:08 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test17 References: <1087518650.25522.38.camel@hurina> <40D35666.7050700@madness.at> In-Reply-To: <40D35666.7050700@madness.at> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 10:40:06 -0000 X-UID: 9569 Status: O Stefan Kaltenbrunner wrote: > what I'm doing here is quite "strange" - though :-) > > i have courier-imap and dovecot serving the same(!) maildir (on > different ports) for evaluation and comparison. what happens now is that > new mail gets delivered into the inbox, mozilla-thunderbird (using the > dovecot-connection) "sees" it and displays the headers, > mozilla-thunderbird courier sees it too and "moves" the message into a > subfolder due to a filterrule -> *booom*. > > while I agree that this is not a typical situation I would much prefer > if dovecot could handle that a litte better then just crashing :-( > I'm not on any test yet as I'm at the stage where I do hope most things work. My own scripting is causing enough problems! :) I hope this isn't strange. My other "mua" is actually crontab scripts that move some files from folder to folder. Namely spam filtering/processing. bogofilter filters procmail delivers crontab archives *boom* ?? From tss@iki.fi Sat Jun 19 19:10:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 66C8BC000D8E; Sat, 19 Jun 2004 19:10:27 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 4FAABC0007B4 for ; Sat, 19 Jun 2004 19:10:22 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id DCEA61C1532F; Sat, 19 Jun 2004 19:02:29 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C4B1D1C1D0E2; Sat, 19 Jun 2004 19:01:55 +0300 (EEST) In-Reply-To: <20040619092436.GA27606@widecut.net> References: <1087518650.25522.38.camel@hurina> <20040618133341.GA27954@widecut.net> <20040618192048.GA2939@widecut.net> <2951ECAA-C15F-11D8-8017-000393CC2E90@iki.fi> <20040618200630.GB2939@widecut.net> <1087589409.30372.8.camel@hurina> <20040619092436.GA27606@widecut.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-25--167952108" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test17 Maildir bug Date: Sat, 19 Jun 2004 19:01:53 +0300 To: Moe Wibble X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 16:10:28 -0000 X-UID: 9570 Status: O Content-Length: 1302 --Apple-Mail-25--167952108 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 19.6.2004, at 12:24, Moe Wibble wrote: >> I really hope that fixes it, otherwise I have again no idea why it's >> breaking, and this time I can't even test it myself as it has worked >> correctly in my tests every time. > > Sorry, even after erasing *dovecot* before the upgrade this is what I > got > again this morning: > > sp dovecot: IMAP(moe): file mail-transaction-log.c: line 1159 > (mail_transaction_log_sync_lock): assertion failed: > (!log->index->log_locked) > sp dovecot: child 25754 (imap) killed with signal 6 But that's not a syncing problem. Fixing this one would only require looking through the code and making sure the assert can't ever happen. Not too difficult once I get around doing it :) --Apple-Mail-25--167952108 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1GNyyUhSUUBViskRAi9VAJ9C0AyYcmribsIgKasgB1BFUIlY6QCgoNWq /Lh4fBdywxclBC096VRB/r8= =wVWw -----END PGP SIGNATURE----- --Apple-Mail-25--167952108-- From tss@iki.fi Sat Jun 19 19:30:44 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E6947C000DDE; Sat, 19 Jun 2004 19:30:44 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id E5FC5C000D8E for ; Sat, 19 Jun 2004 19:30:42 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 7699A1C1532F; Sat, 19 Jun 2004 19:22:50 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 538EE1C1D0E2; Sat, 19 Jun 2004 19:22:16 +0300 (EEST) In-Reply-To: <40D41628.6050102@tacocat.net> References: <1087518650.25522.38.camel@hurina> <40D35666.7050700@madness.at> <40D41628.6050102@tacocat.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-26--166730999" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test17 Date: Sat, 19 Jun 2004 19:22:14 +0300 To: Tom Allison X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.0 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 16:30:45 -0000 X-UID: 9571 Status: O --Apple-Mail-26--166730999 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 19.6.2004, at 13:32, Tom Allison wrote: > I hope this isn't strange. My other "mua" is actually crontab scripts > that move some files from folder to folder. Namely spam > filtering/processing. > > bogofilter filters > procmail delivers > crontab archives > *boom* ?? With 0.99.10 there shouldn't be such problems. --Apple-Mail-26--166730999 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1Gg3yUhSUUBViskRAi23AJ9Ue17YmelO0NPHKkN2Ib85Dn8AMQCdES9Q 8xIynhJH+c75MJgBlQol5Wg= =PyDx -----END PGP SIGNATURE----- --Apple-Mail-26--166730999-- From t1lt@bk.ru Sat Jun 19 19:56:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 043D1C000DF0; Sat, 19 Jun 2004 19:56:21 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id A3A81C000DE6 for ; Sat, 19 Jun 2004 19:56:18 +0300 (EEST) Received: (qmail 31564 invoked by uid 1000); 19 Jun 2004 16:48:25 -0000 Date: Sat, 19 Jun 2004 18:48:25 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test17 Maildir bug Message-ID: <20040619164825.GA17686@widecut.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1087518650.25522.38.camel@hurina> <20040618133341.GA27954@widecut.net> <20040618192048.GA2939@widecut.net> <2951ECAA-C15F-11D8-8017-000393CC2E90@iki.fi> <20040618200630.GB2939@widecut.net> <1087589409.30372.8.camel@hurina> <20040619092436.GA27606@widecut.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 16:56:21 -0000 X-UID: 9572 Status: O On Sat, Jun 19, 2004 at 07:01:53PM +0300, Timo Sirainen wrote: > On 19.6.2004, at 12:24, Moe Wibble wrote: > > >>I really hope that fixes it, otherwise I have again no idea why it's > >>breaking, and this time I can't even test it myself as it has worked > >>correctly in my tests every time. > > > >Sorry, even after erasing *dovecot* before the upgrade this is what I > >got > >again this morning: > > > >sp dovecot: IMAP(moe): file mail-transaction-log.c: line 1159 > >(mail_transaction_log_sync_lock): assertion failed: > >(!log->index->log_locked) > >sp dovecot: child 25754 (imap) killed with signal 6 > > But that's not a syncing problem. Fixing this one would only require > looking through the code and making sure the assert can't ever happen. > Not too difficult once I get around doing it :) sounds good, lookin' forward to it. ;) From tss@iki.fi Sat Jun 19 20:41:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E0669C000DEA; Sat, 19 Jun 2004 20:41:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0588EC000DE5 for ; Sat, 19 Jun 2004 20:41:51 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 7611E1C134FD; Sat, 19 Jun 2004 20:33:58 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CF4D41C1D0E2 for ; Sat, 19 Jun 2004 20:33:23 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test17 Maildir bug From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20040619164825.GA17686@widecut.net> References: <1087518650.25522.38.camel@hurina> <20040618133341.GA27954@widecut.net> <20040618192048.GA2939@widecut.net> <2951ECAA-C15F-11D8-8017-000393CC2E90@iki.fi> <20040618200630.GB2939@widecut.net> <1087589409.30372.8.camel@hurina> <20040619092436.GA27606@widecut.net> <20040619164825.GA17686@widecut.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-I5C9oL2AEWVEW2Fkbg0P" Message-Id: <1087666403.18792.9.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sat, 19 Jun 2004 20:33:23 +0300 X-Spam-Status: No, hits=-9.4 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 17:41:53 -0000 X-UID: 9573 Status: O Content-Length: 1320 --=-I5C9oL2AEWVEW2Fkbg0P Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-06-19 at 19:48, Moe Wibble wrote: > > >sp dovecot: IMAP(moe): file mail-transaction-log.c: line 1159=20 > > >(mail_transaction_log_sync_lock): assertion failed:=20 > > >(!log->index->log_locked) > > >sp dovecot: child 25754 (imap) killed with signal 6 > >=20 > > But that's not a syncing problem. Fixing this one would only require=20 > > looking through the code and making sure the assert can't ever happen.=20 > > Not too difficult once I get around doing it :) >=20 > sounds good, lookin' forward to it. ;) Actually it is a syncing problem, but not like the others. It happens when Dovecot tries to update maildir (flags, expunges) but finds out that some file is missing, so it tries to sync the maildir to find it. Except it is already in the middle of syncing index, so it crashes. Have to think a while what is the right fix for this. --=-I5C9oL2AEWVEW2Fkbg0P Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA1HjjyUhSUUBViskRAo2eAJ0WgzppfFb1NJAJMGWydTIln1FEqgCeJ4iX tompeJsnPvrejOF0dVoChLE= =Q1sw -----END PGP SIGNATURE----- --=-I5C9oL2AEWVEW2Fkbg0P-- From t1lt@bk.ru Sat Jun 19 20:58:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BB375C000DF0; Sat, 19 Jun 2004 20:58:16 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 5CB06C000DEA for ; Sat, 19 Jun 2004 20:58:14 +0300 (EEST) Received: (qmail 17147 invoked by uid 1000); 19 Jun 2004 17:50:21 -0000 Date: Sat, 19 Jun 2004 19:50:21 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test17 Maildir bug Message-ID: <20040619175021.GB17686@widecut.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1087518650.25522.38.camel@hurina> <20040618133341.GA27954@widecut.net> <20040618192048.GA2939@widecut.net> <2951ECAA-C15F-11D8-8017-000393CC2E90@iki.fi> <20040618200630.GB2939@widecut.net> <1087589409.30372.8.camel@hurina> <20040619092436.GA27606@widecut.net> <20040619164825.GA17686@widecut.net> <1087666403.18792.9.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1087666403.18792.9.camel@hurina> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 17:58:16 -0000 X-UID: 9574 Status: O Content-Length: 1158 On Sat, Jun 19, 2004 at 08:33:23PM +0300, Timo Sirainen wrote: > On Sat, 2004-06-19 at 19:48, Moe Wibble wrote: > > > >sp dovecot: IMAP(moe): file mail-transaction-log.c: line 1159 > > > >(mail_transaction_log_sync_lock): assertion failed: > > > >(!log->index->log_locked) > > > >sp dovecot: child 25754 (imap) killed with signal 6 > > > > > > But that's not a syncing problem. Fixing this one would only require > > > looking through the code and making sure the assert can't ever happen. > > > Not too difficult once I get around doing it :) > > > > sounds good, lookin' forward to it. ;) > > Actually it is a syncing problem, but not like the others. It happens > when Dovecot tries to update maildir (flags, expunges) but finds out > that some file is missing, so it tries to sync the maildir to find it. > Except it is already in the middle of syncing index, so it crashes. Have > to think a while what is the right fix for this. Sounds confusing. Shouldn't the index-sync just be delayed if there's one in progress already? I imagine something like while ( log->index->log_locked ) usleep(500);. After all it's locked, isn't it? best regards From tss@iki.fi Sat Jun 19 21:56:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 23F56C000DD2; Sat, 19 Jun 2004 21:56:17 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 091CCC000D8E for ; Sat, 19 Jun 2004 21:56:15 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 538EB1C134FD; Sat, 19 Jun 2004 21:48:22 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 447B21C1532F; Sat, 19 Jun 2004 21:47:49 +0300 (EEST) In-Reply-To: <20040619175021.GB17686@widecut.net> References: <1087518650.25522.38.camel@hurina> <20040618133341.GA27954@widecut.net> <20040618192048.GA2939@widecut.net> <2951ECAA-C15F-11D8-8017-000393CC2E90@iki.fi> <20040618200630.GB2939@widecut.net> <1087589409.30372.8.camel@hurina> <20040619092436.GA27606@widecut.net> <20040619164825.GA17686@widecut.net> <1087666403.18792.9.camel@hurina> <20040619175021.GB17686@widecut.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-28--157998779" Message-Id: <28395501-C221-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test17 Maildir bug Date: Sat, 19 Jun 2004 21:47:47 +0300 To: Moe Wibble X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 18:56:17 -0000 X-UID: 9575 Status: O Content-Length: 1780 --Apple-Mail-28--157998779 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 19.6.2004, at 20:50, Moe Wibble wrote: >> Actually it is a syncing problem, but not like the others. It happens >> when Dovecot tries to update maildir (flags, expunges) but finds out >> that some file is missing, so it tries to sync the maildir to find it. >> Except it is already in the middle of syncing index, so it crashes. >> Have >> to think a while what is the right fix for this. > > Sounds confusing. > Shouldn't the index-sync just be delayed if there's one in progress > already? > I imagine something like while ( log->index->log_locked ) usleep(500);. > After all it's locked, isn't it? But it's then syncing the index itself, so sleeping wouldn't help :) It basically goes like: - begin index sync - commit each change to maildir - maildir files may change their names, so if it's lost, we have to find it again: - read everything in maildir and store them - begin index sync, so we can store the changes in it - oops, we're already syncing index, crash - finish index sync Anyway, the fix was pretty simple. Just update the maildir filenames and leave the index syncing later. I'll release test19 sometimes later after some more mbox fixes. --Apple-Mail-28--157998779 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1IpTyUhSUUBViskRAukvAJ4jgS0kMzY6/mv3Nm3jEOPI6KYLiwCgjdQh qX6ZHrJtJoVTahC0DI7ueoQ= =1Xjf -----END PGP SIGNATURE----- --Apple-Mail-28--157998779-- From tss@iki.fi Sat Jun 19 23:07:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 978E5C0007B4; Sat, 19 Jun 2004 23:07:28 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 9F0FAC0007B4 for ; Sat, 19 Jun 2004 23:07:26 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id D56851C1532F; Sat, 19 Jun 2004 22:59:33 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id CE1DC1C350C9; Sat, 19 Jun 2004 22:59:33 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D6CB51C1532F; Sat, 19 Jun 2004 22:58:58 +0300 (EEST) In-Reply-To: <20040615050828.GQ20969@myinternet.com.au> References: <20040614234225.C7168C002913@talvi.dovecot.org> <20040615045053.GP20969@myinternet.com.au> <20040615050828.GQ20969@myinternet.com.au> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-29--153730469" Message-Id: <1855F690-C22B-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Re: [dovecot-cvs] dovecot/src/lib fdpass.c,1.28,1.29 Date: Sat, 19 Jun 2004 22:58:55 +0300 To: Charlie Allom X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) Cc: dovecot@procontrol.fi X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 20:07:28 -0000 X-UID: 9576 Status: O Content-Length: 1396 --Apple-Mail-29--153730469 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 15.6.2004, at 08:08, Charlie Allom wrote: >>> imap-login: Jun 15 12:28:16 Panic: file ioloop.c: line 90: assertion >>> failed: (i >>> o->fd <= current_ioloop->highest_fd) Hmm. Wonder why this hasn't happened more often. Good luck I guess. Pretty simple fix, I'll include with 0.99.10.6 too: diff -u -r1.20 ioloop.c --- ioloop.c 26 Aug 2003 21:18:16 -0000 1.20 +++ ioloop.c 19 Jun 2004 20:05:19 -0000 @@ -81,12 +81,12 @@ /* notify the real I/O handler */ io_loop_handle_remove(current_ioloop, io->fd, io->condition); + io->destroyed = TRUE; + io->fd = -1; + /* check if we removed the highest fd */ if (io->fd == current_ioloop->highest_fd) update_highest_fd(current_ioloop); - - io->destroyed = TRUE; - io->fd = -1; } --Apple-Mail-29--153730469 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1Jr/yUhSUUBViskRAg0vAKCTEzR0zJyps3hv8EWNX5NNiBgZ8QCgg7PS A0bwG/bVhq7XEOqVCfwNzyQ= =GJlx -----END PGP SIGNATURE----- --Apple-Mail-29--153730469-- From tss@iki.fi Sat Jun 19 23:38:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2B212C000DE6; Sat, 19 Jun 2004 23:38:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A04A6C0007B4 for ; Sat, 19 Jun 2004 23:38:49 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id C15A41C134FD; Sat, 19 Jun 2004 23:30:56 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 998D41C1532F; Sat, 19 Jun 2004 23:30:22 +0300 (EEST) In-Reply-To: <5DD51F40-AFFA-11D8-913E-00306548377E@geeklair.net> References: <5DD51F40-AFFA-11D8-913E-00306548377E@geeklair.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-30--151847933" Message-Id: <7A6AA516-C22F-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.5 released Date: Sat, 19 Jun 2004 23:30:18 +0300 To: "Daniel J. Luke" X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.0 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 20:38:52 -0000 X-UID: 9577 Status: O Content-Length: 1223 --Apple-Mail-30--151847933 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 27.5.2004, at 19:24, Daniel J. Luke wrote: > I'm running 0.99.10.5 on a Mac OS X 10.2.8 system (Darwin 6.8) and I > get these errors in the log: > > May 27 12:20:44 dluke imap(dluke): mmap_istream.madvise(): Invalid > argument Sorry, I forgot this mail and found it only now again when checking for old "unseen" mails. Looks like it's OS X problem here, others have had the same problem and it's still not working in 10.3.4. I don't think I'll bother writing any workarounds for this, at least yet.. You can just set mail_read_mmaped = no (which is the default). I'm not sure if there's much point in reading mails mmaped anyway. --Apple-Mail-30--151847933 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1KJayUhSUUBViskRAg4iAJ9vsV575SHuWQ62NqAqQLVdrj5VKQCgohvQ vDVigr7t5Mm8PFbsj1M3AXc= =Bd5Y -----END PGP SIGNATURE----- --Apple-Mail-30--151847933-- From tss@iki.fi Sun Jun 20 01:21:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E3CAFC000DFA; Sun, 20 Jun 2004 01:21:56 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 8F6C1C000DEA for ; Sun, 20 Jun 2004 01:21:54 +0300 (EEST) Received: by danu.procontrol.fi (Postfix) id 88C911C1532F; Sun, 20 Jun 2004 01:14:01 +0300 (EEST) Delivered-To: dovecot@procontrol.fi Received: by danu.procontrol.fi (Postfix, from userid 106) id 819BA1C134FD; Sun, 20 Jun 2004 01:14:01 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9D98E1C1532F; Sun, 20 Jun 2004 01:13:27 +0300 (EEST) In-Reply-To: <1855F690-C22B-11D8-8017-000393CC2E90@iki.fi> References: <20040614234225.C7168C002913@talvi.dovecot.org> <20040615045053.GP20969@myinternet.com.au> <20040615050828.GQ20969@myinternet.com.au> <1855F690-C22B-11D8-8017-000393CC2E90@iki.fi> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-32--145660246" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Re: [dovecot-cvs] dovecot/src/lib fdpass.c,1.28,1.29 Date: Sun, 20 Jun 2004 01:13:25 +0300 To: dovecot@procontrol.fi X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) Cc: Charlie Allom X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 22:21:57 -0000 X-UID: 9578 Status: O --Apple-Mail-32--145660246 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 19.6.2004, at 22:58, Timo Sirainen wrote: > + io->destroyed = TRUE; > + io->fd = -1; > + > /* check if we removed the highest fd */ > if (io->fd == current_ioloop->highest_fd) > update_highest_fd(current_ioloop); > - > - io->destroyed = TRUE; > - io->fd = -1; > } Of course, this is wrong too :) Only the destroyed-line should have been moved.. --Apple-Mail-32--145660246 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1LqGyUhSUUBViskRAlMQAJoCsdXrEo+Rik+E/SlI6W/5bSmr2ACgiawz uoEq3Z9Lg3QJ1jzx82dMaYs= =hZPc -----END PGP SIGNATURE----- --Apple-Mail-32--145660246-- From tss@iki.fi Sun Jun 20 01:37:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DA0A3C000DF5; Sun, 20 Jun 2004 01:37:32 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0765BC0007B4 for ; Sun, 20 Jun 2004 01:37:31 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id EED341C134FD; Sun, 20 Jun 2004 01:29:37 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0EA2F1C1532F for ; Sun, 20 Jun 2004 01:29:04 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v618) Content-Transfer-Encoding: 7bit Message-Id: <10EA0028-C240-11D8-8017-000393CC2E90@iki.fi> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-33--144723493" To: Dovecot list From: Timo Sirainen Date: Sun, 20 Jun 2004 01:29:02 +0300 X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_00,PGP_SIGNATURE_2,RCVD_IN_ORBS, USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test19 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 22:37:33 -0000 X-UID: 9579 Status: O --Apple-Mail-33--144723493 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed http://dovecot.org/test/ I'm finally using this release myself with mboxes. So far no crashes or corruption. :) - several mbox fixes and optimizations - maildir syncing fix - solaris fixes - create mbox root dir if it doesn't exist --Apple-Mail-33--144723493 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1L4uyUhSUUBViskRAhnkAJ9yF9/YJzaRa9VJkjdKwh2GODpRzQCghdYV PtEg9xXbq+FPIio/8neWEHA= =3Gnx -----END PGP SIGNATURE----- --Apple-Mail-33--144723493-- From tss@iki.fi Sun Jun 20 01:47:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E6608C000DF5; Sun, 20 Jun 2004 01:47:03 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 03784C0007B4 for ; Sun, 20 Jun 2004 01:47:02 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id E6F111C134FD; Sun, 20 Jun 2004 01:39:08 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B91DA1C1532F for ; Sun, 20 Jun 2004 01:38:34 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v618) Content-Transfer-Encoding: 7bit Message-Id: <65141FC8-C241-11D8-8017-000393CC2E90@iki.fi> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-34--144152791" To: Dovecot list From: Timo Sirainen Date: Sun, 20 Jun 2004 01:38:33 +0300 X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_00,PGP_SIGNATURE_2,RCVD_IN_ORBS, USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 0.99.10.6 released X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 22:47:04 -0000 X-UID: 9580 Status: O Content-Length: 1199 --Apple-Mail-34--144152791 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Since no-one have complained about previous RCs, I guess it's release time. Since -rc2 I added the ioloop.c assert fix, and 64bit Solaris fix. Here's the full change summary again: v0.99.10.6 2004-06-20 Timo Sirainen + SHA1 password support using OpenSSL crypto library + mail_extra_groups setting + maildir_stat_dirs setting + Added NAMESPACE capability and command - Autocreate missing maildirs (instead of crashing) - Fixed occational crash in maildir synchronization - Fixed occational assertion crash in ioloop.c - Fixed FreeBSD compiling issue - Fixed issues with 64bit Solaris binary --Apple-Mail-34--144152791 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1MBpyUhSUUBViskRAnqiAJwOIweAQEMYlSuTWGgETxprw83u8wCeK1fT 4nXd/1la4WRXBCNPG0ZRPnQ= =5l4R -----END PGP SIGNATURE----- --Apple-Mail-34--144152791-- From joshua@shallow.net Sun Jun 20 04:30:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 96779C000D94; Sun, 20 Jun 2004 04:30:33 +0300 (EEST) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by talvi.dovecot.org (Postfix) with ESMTP id 2C102C0007B4 for ; Sun, 20 Jun 2004 04:30:31 +0300 (EEST) Received: by yello.shallow.net (Postfix, from userid 1001) id AB4362C46; Sun, 20 Jun 2004 11:22:34 +1000 (EST) Date: Sun, 20 Jun 2004 11:22:34 +1000 From: Joshua Goodall To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.6 released Message-ID: <20040620012234.GB5997@roughtrade.net> References: <65141FC8-C241-11D8-8017-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="GyRA7555PLgSTuth" Content-Disposition: inline In-Reply-To: <65141FC8-C241-11D8-8017-000393CC2E90@iki.fi> User-Agent: Mutt/1.5.6i Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2004 01:30:33 -0000 X-UID: 9581 Status: O --GyRA7555PLgSTuth Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Jun 20, 2004 at 01:38:33AM +0300, Timo Sirainen wrote: > v0.99.10.6 2004-06-20 Timo Sirainen [ ... ] I've updated the CRAM-MD5 patch for 0.99.10.6 at http://www.roughtrade.net/dovecot/ and would appreciate feedback. Joshua. --=20 Joshua Goodall "as modern as tomorrow afternoon" joshua@roughtrade.net - FW109 --GyRA7555PLgSTuth Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFA1ObaPsqE37hMaDwRAhYmAKCBYXgDfcDMxLtesctlZCbvMGj78gCeNhDA GMozSlDeikv6EsYdfBjBV0w= =25K9 -----END PGP SIGNATURE----- --GyRA7555PLgSTuth-- From tss@iki.fi Sun Jun 20 08:38:53 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 99833C000D9C; Sun, 20 Jun 2004 08:38:53 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 3C7F9C000D94 for ; Sun, 20 Jun 2004 08:38:51 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 7A8D51C350CB; Sun, 20 Jun 2004 08:30:57 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 96C331C1532F for ; Sun, 20 Jun 2004 08:30:23 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v618) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-36--119445071" To: Dovecot list From: Timo Sirainen Date: Sun, 20 Jun 2004 08:30:20 +0300 X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.5 required=5.0 tests=AWL,BAYES_01,PGP_SIGNATURE_2,RCVD_IN_ORBS, USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test20 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2004 05:38:53 -0000 X-UID: 9582 Status: O Content-Length: 1179 --Apple-Mail-36--119445071 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed http://dovecot.org/test/ One more for today :) Again mostly mbox fixes and optimizations. Don't try it with maildir because it crashes with COPY and APPEND commands. This release supports now UIDPLUS extension. It was mostly a side effect of making saving mails store the X-UID header immediately to mbox and adding the mail to index. So, a Dovecot LDA would finally make sense now. Besides keeping indexes updated, it could also ask user's home dir, uid and gid from dovecot-auth. Now, that combined with postfix-dovecot-auth patch, Dovecot would be very simple to install with Postfix :) --Apple-Mail-36--119445071 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1SDtyUhSUUBViskRAqxPAJ4/QIFY46ghuaclsYjZeIhHSI5JhwCggjgC UiORX4p+J0N1+tVzhy5qpB0= =y2fW -----END PGP SIGNATURE----- --Apple-Mail-36--119445071-- From jaldhar@debian.org Sun Jun 20 08:54:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3B3B7C000DC9; Sun, 20 Jun 2004 08:54:14 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 8DF40C000DC2 for ; Sun, 20 Jun 2004 08:54:11 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id CB68082FF for ; Sun, 20 Jun 2004 01:46:18 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 31896-10 for ; Sun, 20 Jun 2004 01:46:18 -0400 (EDT) Received: from [192.168.1.121] (pcp09354467pcs.jersyc01.nj.comcast.net [69.141.24.176]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 32F308045 for ; Sun, 20 Jun 2004 01:46:18 -0400 (EDT) Date: Sun, 20 Jun 2004 01:44:38 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: dovecot@dovecot.org Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p9 (Debian) at braincells.com Subject: [Dovecot] Debian dovecot news X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2004 05:54:14 -0000 X-UID: 9583 Status: O I uploaded 0.99.10.6 to sid. Owing to the importance of the dot lock fix, I've tried to have this pushed to sarge quickly. Let's see how that goes. I've prepared a backport of 0.99.10.6 to woody which should be showing up on www.backports.org soon hopefully. In the meantime, if you desperately need it and don't mind working out dependencies yourself, you can find it at http://www.braincells.com/backports/ I uploaded 1.0test18 to http://src.braincells.com/dovecot-test/ (I'll do test20 tomorrow) I told Timo I'd port dovecot's gnutls support from gnutls7 to gnutls10 but I have absolutely no time for it so if someone would volunteer, contact me, I'd really appreciate it. -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From Nicolas.Stransky@neo-lan.net Sun Jun 20 12:25:25 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F3A9BC000DF5; Sun, 20 Jun 2004 12:25:24 +0300 (EEST) Received: from aster.neo-lan.net (aster.neo-lan.net [81.57.244.52]) by talvi.dovecot.org (Postfix) with ESMTP id DC1C5C000DC9 for ; Sun, 20 Jun 2004 12:25:22 +0300 (EEST) Received: from aneto (aneto.local.lan [192.168.0.2]) by aster.neo-lan.net (Postfix) with ESMTP id 29C0C2ACDD; Sun, 20 Jun 2004 11:17:28 +0200 (CEST) Received: from localhost ([127.0.0.1]) by aneto with esmtp (Exim 4.34) id 1BbyS8-0005zf-22; Sun, 20 Jun 2004 11:17:28 +0200 Message-ID: <40D55627.1030905@neo-lan.net> Date: Sun, 20 Jun 2004 11:17:27 +0200 From: Nicolas STRANSKY Organization: N&O Lan User-Agent: Mozilla Thunderbird 0.7 (X11/20040615) X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Jaldhar H. Vyas" References: In-Reply-To: X-Enigmail-Version: 0.84.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org Subject: [Dovecot] Re: Debian dovecot news X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2004 09:25:25 -0000 X-UID: 9584 Status: O Le 06/20/2004 07:44 AM, Jaldhar H. Vyas a écrit : > I uploaded 1.0test18 to http://src.braincells.com/dovecot-test/ (I'll do > test20 tomorrow) Hi, Have you got any advice on upgrading from 0.99 to 1.0-test on a sarge ? Any particular configuration options to change ? Is it safe to let the old indexes ? thanx -- Nico Notre repentir n'est pas tant un regret du mal que nous avons fait, qu'une crainte de celui qui nous en peut arriver. -+- François de La Rochefoucauld (1613-1680), Maximes 180 -+- From t1lt@bk.ru Sun Jun 20 20:46:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 98F86C000D9F; Sun, 20 Jun 2004 20:46:28 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id A908EC0007B4 for ; Sun, 20 Jun 2004 20:46:24 +0300 (EEST) Received: (qmail 7005 invoked by uid 1000); 20 Jun 2004 17:38:28 -0000 Date: Sun, 20 Jun 2004 19:38:28 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test19 Message-ID: <20040620173828.GB6803@widecut.net> Mail-Followup-To: Moe Wibble , Dovecot list References: <10EA0028-C240-11D8-8017-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <10EA0028-C240-11D8-8017-000393CC2E90@iki.fi> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2004 17:46:29 -0000 X-UID: 9585 Status: O On Sun, Jun 20, 2004 at 01:29:02AM +0300, Timo Sirainen wrote: > http://dovecot.org/test/ > > I'm finally using this release myself with mboxes. So far no crashes or > corruption. :) > > - several mbox fixes and optimizations > - maildir syncing fix > - solaris fixes > - create mbox root dir if it doesn't exist i'm running it for roughly a day now and the Maildir issues seem to be gone - finally. many thanks! From peter.schuller@infidyne.com Mon Jun 21 00:03:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E8A76C000D8E; Mon, 21 Jun 2004 00:03:47 +0300 (EEST) Received: from mxfep02.bredband.com (mxfep02.bredband.com [195.54.107.73]) by talvi.dovecot.org (Postfix) with ESMTP id 875DEC0007B4 for ; Mon, 21 Jun 2004 00:03:45 +0300 (EEST) Received: from scode.mine.nu ([83.226.138.222] [83.226.138.222]) by mxfep02.bredband.com with ESMTP id <20040620205545.YREO26240.mxfep02.bredband.com@scode.mine.nu> for ; Sun, 20 Jun 2004 22:55:45 +0200 Received: from localhost (localhost [127.0.0.1]) by scode.mine.nu (Postfix) with ESMTP id E9E57DF691 for ; Sun, 20 Jun 2004 23:01:25 +0200 (CEST) From: Peter Schuller To: dovecot@dovecot.org Date: Sun, 20 Jun 2004 23:01:24 +0200 User-Agent: KMail/1.6 MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200406202301.25217.peter.schuller@infidyne.com> Subject: [Dovecot] customflags considered a folder? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2004 21:03:48 -0000 X-UID: 9586 Status: O Hello, i just switched from courier-imap to dovecot on a machine. The transition was painless except for one issue - when using the "Check mail" feature of kmail, one gets the message: "Unable to get information about folder customflags. The server replied: internal error..." So it looks like the server isn't properly hiding the .customflags file for some reason. I googled and only found one person who had seen something similar, but no solution. This is with dovecot 0.99.10.5. Similarly, 'customflags' does show up as a folder when using mutt. How would I go about preventing this problem? Thanks! -- / Peter Schuller, InfiDyne Technologies HB PGP userID: 0xE9758B7D or 'Peter Schuller ' Key retrieval: Send an E-Mail to getpgpkey@scode.org E-Mail: peter.schuller@infidyne.com Web: http://www.scode.org From tss@iki.fi Mon Jun 21 00:46:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D0900C000987; Mon, 21 Jun 2004 00:46:32 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A87D7C0007B4 for ; Mon, 21 Jun 2004 00:46:30 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 5656A1C134FD; Mon, 21 Jun 2004 00:38:35 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5F71D1C134FD; Mon, 21 Jun 2004 00:38:02 +0300 (EEST) In-Reply-To: <200406202301.25217.peter.schuller@infidyne.com> References: <200406202301.25217.peter.schuller@infidyne.com> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-39--61395689" Message-Id: <1427B8FA-C302-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] customflags considered a folder? Date: Mon, 21 Jun 2004 00:37:50 +0300 To: Peter Schuller X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2004 21:46:33 -0000 X-UID: 9587 Status: O --Apple-Mail-39--61395689 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 21.6.2004, at 00:01, Peter Schuller wrote: > So it looks like the server isn't properly hiding the .customflags > file for > some reason. I googled and only found one person who had seen something > similar, but no solution. > > This is with dovecot 0.99.10.5. Similarly, 'customflags' does show up > as a > folder when using mutt. > > How would I go about preventing this problem? Upgrade to 0.99.10.6. --Apple-Mail-39--61395689 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1gOuyUhSUUBViskRAsqJAJsEyqQOilpaF94jFQAU5FCN4/LYIACeL059 wgwuA9jH7kdQHyC+tCzdytA= =qhZ/ -----END PGP SIGNATURE----- --Apple-Mail-39--61395689-- From peter.schuller@infidyne.com Mon Jun 21 00:51:56 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6CAB9C000D9C; Mon, 21 Jun 2004 00:51:56 +0300 (EEST) Received: from mxfep02.bredband.com (mxfep02.bredband.com [195.54.107.73]) by talvi.dovecot.org (Postfix) with ESMTP id 7D86AC000987 for ; Mon, 21 Jun 2004 00:51:54 +0300 (EEST) Received: from scode.mine.nu ([83.226.138.222] [83.226.138.222]) by mxfep02.bredband.com with ESMTP id <20040620214359.ZDME26240.mxfep02.bredband.com@scode.mine.nu>; Sun, 20 Jun 2004 23:43:59 +0200 Received: from localhost (localhost [127.0.0.1]) by scode.mine.nu (Postfix) with ESMTP id F0C8C172DA0; Sun, 20 Jun 2004 23:49:43 +0200 (CEST) From: Peter Schuller To: dovecot@dovecot.org Subject: Re: [Dovecot] customflags considered a folder? Date: Sun, 20 Jun 2004 23:49:43 +0200 User-Agent: KMail/1.6 References: <200406202301.25217.peter.schuller@infidyne.com> <1427B8FA-C302-11D8-8017-000393CC2E90@iki.fi> In-Reply-To: <1427B8FA-C302-11D8-8017-000393CC2E90@iki.fi> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200406202349.43535.peter.schuller@infidyne.com> Cc: Timo Sirainen X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2004 21:51:56 -0000 X-UID: 9588 Status: O > > How would I go about preventing this problem? > > Upgrade to 0.99.10.6. Thanks! -- / Peter Schuller, InfiDyne Technologies HB PGP userID: 0xE9758B7D or 'Peter Schuller ' Key retrieval: Send an E-Mail to getpgpkey@scode.org E-Mail: peter.schuller@infidyne.com Web: http://www.scode.org From t1lt@bk.ru Mon Jun 21 11:22:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E260FC000987; Mon, 21 Jun 2004 11:22:28 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id F0B73C0007B4 for ; Mon, 21 Jun 2004 11:22:23 +0300 (EEST) Received: (qmail 15697 invoked by uid 1000); 21 Jun 2004 08:14:27 -0000 Date: Mon, 21 Jun 2004 10:14:27 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test19 Message-ID: <20040621081426.GA15656@widecut.net> Mail-Followup-To: Moe Wibble , Dovecot list References: <10EA0028-C240-11D8-8017-000393CC2E90@iki.fi> <20040620173828.GB6803@widecut.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040620173828.GB6803@widecut.net> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 08:22:29 -0000 X-UID: 9589 Status: O On Sun, Jun 20, 2004 at 07:38:28PM +0200, Moe Wibble wrote: > On Sun, Jun 20, 2004 at 01:29:02AM +0300, Timo Sirainen wrote: > > http://dovecot.org/test/ > > > > I'm finally using this release myself with mboxes. So far no crashes or > > corruption. :) > > > > - several mbox fixes and optimizations > > - maildir syncing fix > > - solaris fixes > > - create mbox root dir if it doesn't exist > > i'm running it for roughly a day now and the Maildir issues seem to > be gone - finally. many thanks! sorry, seems like i applauded to early. i'm getting these again (quite frequently now): sp dovecot: IMAP(moe): Maildir /home/moe/Maildir sync: UID inserted in the middle of mailbox (288 > 287, file = msg.CDs4:2,) with test19 that is. From t1lt@bk.ru Mon Jun 21 12:31:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7E58FC000987; Mon, 21 Jun 2004 12:31:38 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 5007AC0007B4 for ; Mon, 21 Jun 2004 12:31:36 +0300 (EEST) Received: (qmail 4505 invoked by uid 1000); 21 Jun 2004 09:23:39 -0000 Date: Mon, 21 Jun 2004 11:23:39 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test19 Message-ID: <20040621092339.GA3592@widecut.net> Mail-Followup-To: Moe Wibble , Dovecot list References: <10EA0028-C240-11D8-8017-000393CC2E90@iki.fi> <20040620173828.GB6803@widecut.net> <20040621081426.GA15656@widecut.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040621081426.GA15656@widecut.net> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 09:31:38 -0000 X-UID: 9590 Status: O Content-Length: 1258 On Mon, Jun 21, 2004 at 10:14:27AM +0200, Moe Wibble wrote: > On Sun, Jun 20, 2004 at 07:38:28PM +0200, Moe Wibble wrote: > > On Sun, Jun 20, 2004 at 01:29:02AM +0300, Timo Sirainen wrote: > > > http://dovecot.org/test/ > > > > > > I'm finally using this release myself with mboxes. So far no crashes or > > > corruption. :) > > > > > > - several mbox fixes and optimizations > > > - maildir syncing fix > > > - solaris fixes > > > - create mbox root dir if it doesn't exist > > > > i'm running it for roughly a day now and the Maildir issues seem to > > be gone - finally. many thanks! > > sorry, seems like i applauded to early. > i'm getting these again (quite frequently now): > > sp dovecot: IMAP(moe): Maildir /home/moe/Maildir sync: > UID inserted in the middle of mailbox (288 > 287, file = msg.CDs4:2,) > > with test19 that is. And even more strange behaviour (blast from the past): Sometimes new mail is reported for a folder (usually INBOX) but when I go there no new mail is shown. I've seen this before in an older test-version so I restarted dovecot expecting to see my new mail after the restart. Not this time, there's *still* no new mail. I'll keep watching it but if it becomes too spooky I'm off to dovecot-old again... ;) From tss@iki.fi Mon Jun 21 18:00:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E42A4C000D9C; Mon, 21 Jun 2004 18:00:46 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A6F4CC000987 for ; Mon, 21 Jun 2004 18:00:43 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id A037A1C15337; Mon, 21 Jun 2004 17:52:46 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C96411C1532F for ; Mon, 21 Jun 2004 17:52:12 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v618) Content-Transfer-Encoding: 7bit Message-Id: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-43-663993" To: Dovecot list From: Timo Sirainen Date: Mon, 21 Jun 2004 17:52:09 +0300 X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.1 required=5.0 tests=AWL,BAYES_10,PGP_SIGNATURE_2,RCVD_IN_ORBS, USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test21 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 15:00:47 -0000 X-UID: 9591 Status: O Content-Length: 1522 --Apple-Mail-43-663993 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed http://dovecot.org/test/ Should work again with maildir. - Some bugfixes to indexes (possibly fixing the still persisting maildir sync errrors?) - Enabled cache file again. If client asks about something that can be cached for future, it's done. There's currently no smart logic about when not to do it or when to cache more than was asked for future use. Currently nothing is ever deleted from cache. Currently it's disabled if mmap_disable = yes. - Removed UIDPLUS extension after all. It needs more thinking with maildir, because for performance reasons new messages are given UIDs once at the end transaction rather than separately for each one. So, the UID would have to be 0 temporarily until transaction is committed. But the current API make the new messages visible without syncing, and then the sequences don't match anymore and we can't get the UIDs. So, this one needs thinking, mostly from API designing point of view. --Apple-Mail-43-663993 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1vYayUhSUUBViskRAuyKAJsHAW1mz5IdSDg/we3RcqV/J/96ywCfdO/J //FkHit18yqyakwocP6Vc6M= =tI05 -----END PGP SIGNATURE----- --Apple-Mail-43-663993-- From t1lt@bk.ru Mon Jun 21 19:04:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2F2CAC000D9C; Mon, 21 Jun 2004 19:04:47 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 25515C0007B4 for ; Mon, 21 Jun 2004 19:04:44 +0300 (EEST) Received: (qmail 24015 invoked by uid 1000); 21 Jun 2004 15:56:46 -0000 Date: Mon, 21 Jun 2004 17:56:46 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test21 Message-ID: <20040621155646.GD15376@widecut.net> Mail-Followup-To: Moe Wibble , Dovecot list References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 16:04:47 -0000 X-UID: 9592 Status: O Content-Length: 1515 On Mon, Jun 21, 2004 at 05:52:09PM +0300, Timo Sirainen wrote: > http://dovecot.org/test/ > > Should work again with maildir. > > - Some bugfixes to indexes (possibly fixing the still persisting > maildir sync errrors?) Ah, gotta try that, but... > - Enabled cache file again. If client asks about something that can be > cached for future, it's done. There's currently no smart logic about > when not to do it or when to cache more than was asked for future use. > Currently nothing is ever deleted from cache. Currently it's disabled > if mmap_disable = yes. ...does that mean the cache-file will grow indefinitely? > - Removed UIDPLUS extension after all. It needs more thinking with > maildir, because for performance reasons new messages are given UIDs > once at the end transaction rather than separately for each one. So, > the UID would have to be 0 temporarily until transaction is committed. > But the current API make the new messages visible without syncing, and > then the sequences don't match anymore and we can't get the UIDs. So, > this one needs thinking, mostly from API designing point of view. Actually I find the current maildir-performance quite amazing when compared to courier or bincimap. The only other imapd that can hold a candle to dovecot (at least according to my little-bit-out-dated and not-so-representative personal benchmarks) appears to be cyrus. Anyways, as mentioned before, I'm still looking forward to the next Maildir-stable version. :-) regards From olive@pasteur.fr Mon Jun 21 19:25:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 86261C000DD2; Mon, 21 Jun 2004 19:25:41 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id 5E593C000D9C for ; Mon, 21 Jun 2004 19:25:39 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id C1CD911474 for ; Mon, 21 Jun 2004 18:17:41 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 9918511473 for ; Mon, 21 Jun 2004 18:17:41 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 93AD03F677; Mon, 21 Jun 2004 18:17:41 +0200 (CEST) Date: Mon, 21 Jun 2004 18:17:41 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] The Status: header is forced Message-ID: <20040621161741.GF81439@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <20040326163456.GE32306@mafate.sis.pasteur.fr> <20040330163107.GS75591@mafate.sis.pasteur.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040330163107.GS75591@mafate.sis.pasteur.fr> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 16:25:41 -0000 X-UID: 9593 Status: O [ This belongs to an old thread so I keep extra info upfront ] * Olivier Tharan (20040330 18:31): > * Olivier Tharan (20040326 17:34): > > I started testing dovecot for our next POP/IMAP server (nearing > > production state), and noticed that the Status: header is always > > added, with a value of 'O' or 'RO'. This happens in > > `lib-index/mbox/mbox-rewrite.c'. This does not seem to happen in > > the Maildir case. > > > > Is the Status: header really needed in every case? This breaks > > mutt which displays mails with a 'O' flag instead of 'N'. > > Well, I fixed it with a procmail rule, as these headers are > undoubtedly needed with other MUAs. I did not find any reference > on which (IMAP software or mutt) have used this header first. Sometimes it is good to read back some good old manual. My problem is easily solved with a single keyword in the fetchmail configuration file: 'dropstatus'. -- olive From tss@iki.fi Mon Jun 21 21:01:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 45E75C000987; Mon, 21 Jun 2004 21:01:04 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 30E24C0007B4 for ; Mon, 21 Jun 2004 21:00:58 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id D29391C1D0E0; Mon, 21 Jun 2004 20:53:00 +0300 (EEST) Received: from [10.100.42.83] (gprs-internet.mobile.sonera.net [212.213.204.99]) by danu.procontrol.fi (Postfix) with ESMTP id F37521C1532F; Mon, 21 Jun 2004 20:52:22 +0300 (EEST) In-Reply-To: <20040621155646.GD15376@widecut.net> References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-45-11449448" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test21 Date: Mon, 21 Jun 2004 20:51:55 +0300 To: Moe Wibble X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.5 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 18:01:05 -0000 X-UID: 9594 Status: O Content-Length: 2170 --Apple-Mail-45-11449448 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 21.6.2004, at 18:56, Moe Wibble wrote: >> - Enabled cache file again. If client asks about something that can >> be >> cached for future, it's done. There's currently no smart logic about >> when not to do it or when to cache more than was asked for future use. >> Currently nothing is ever deleted from cache. Currently it's disabled >> if mmap_disable = yes. > > ...does that mean the cache-file will grow indefinitely? Yes. Note the "currently" words there :) Will be fixed before 1.0 of course. > Actually I find the current maildir-performance quite amazing when > compared > to courier or bincimap. The only other imapd that can hold a candle to > dovecot (at least according to my little-bit-out-dated and > not-so-representative personal benchmarks) appears to be cyrus. I recently saw some benchmarks (measuring system load) comparing Dovecot mbox, maildir and Cyrus. Dovecot was much slower than I thought, Cyrus was many times faster in most tests. Dovecot with mbox was also much faster than with maildir, even though my 0.99.10 mbox code is pretty bad. 0.99.10 indexes aren't too good, but I still find it a bit strange that Cyrus takes something like 10x less load. I'd think most of it has to do with maildir format itself, that it needs to rename files when flags change, and Dovecot needs to resync the whole maildir after each change in mailbox (and sometimes twice). I guess we'll need a IMAP-optimized format sometimes soon. Anyway, 1.0 is nearing a state where I'd like to begin hearing benchmarks about it. It's mbox performance should be excellent. --Apple-Mail-45-11449448 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1yA8yUhSUUBViskRApwdAJ4x38ZpdiPeKmNWKNW+MZ4P8wO9XwCgnxPg q8Sya+KgsGYJlUx6buRTpYk= =FzGq -----END PGP SIGNATURE----- --Apple-Mail-45-11449448-- From tss@iki.fi Mon Jun 21 21:05:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2B1E8C000DC7; Mon, 21 Jun 2004 21:05:00 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0F649C0007B4 for ; Mon, 21 Jun 2004 21:04:58 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id B43361C1532F; Mon, 21 Jun 2004 20:57:00 +0300 (EEST) Received: from [10.100.42.83] (gprs-internet.mobile.sonera.net [212.213.204.99]) by danu.procontrol.fi (Postfix) with ESMTP id 16F961C1D0E0; Mon, 21 Jun 2004 20:56:22 +0300 (EEST) In-Reply-To: <20040621161741.GF81439@mafate.sis.pasteur.fr> References: <20040326163456.GE32306@mafate.sis.pasteur.fr> <20040330163107.GS75591@mafate.sis.pasteur.fr> <20040621161741.GF81439@mafate.sis.pasteur.fr> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-46-11694358" Message-Id: <4136CA4A-C3AC-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] The Status: header is forced Date: Mon, 21 Jun 2004 20:56:00 +0300 To: Olivier Tharan X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.6 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 18:05:00 -0000 X-UID: 9595 Status: O Content-Length: 1660 --Apple-Mail-46-11694358 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 21.6.2004, at 19:17, Olivier Tharan wrote: >> * Olivier Tharan (20040326 17:34): >>> I started testing dovecot for our next POP/IMAP server (nearing >>> production state), and noticed that the Status: header is always >>> added, with a value of 'O' or 'RO'. This happens in >>> `lib-index/mbox/mbox-rewrite.c'. This does not seem to happen in >>> the Maildir case. >>> >>> Is the Status: header really needed in every case? This breaks >>> mutt which displays mails with a 'O' flag instead of 'N'. >> >> Well, I fixed it with a procmail rule, as these headers are >> undoubtedly needed with other MUAs. I did not find any reference >> on which (IMAP software or mutt) have used this header first. > > Sometimes it is good to read back some good old manual. My > problem is easily solved with a single keyword in the fetchmail > configuration file: 'dropstatus'. Dovecot shouldn't actually be sending this header to you in any case, even if it's in the mbox file itself. It was too difficult to implement for 0.99.10, but it's done in latest 1.0-test releases. --Apple-Mail-46-11694358 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1yEwyUhSUUBViskRAql9AKCUDZZQaVrB+8TCvRnw0KzvezSkNQCfSBxR lo2Vw208l4HmDnivzhaB0TQ= =K7FA -----END PGP SIGNATURE----- --Apple-Mail-46-11694358-- From tss@iki.fi Mon Jun 21 21:09:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0D02AC000DC7; Mon, 21 Jun 2004 21:09:01 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A58BAC0007B4 for ; Mon, 21 Jun 2004 21:08:58 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 5B4301C1532F; Mon, 21 Jun 2004 21:01:01 +0300 (EEST) Received: from [10.100.42.83] (gprs-internet.mobile.sonera.net [212.213.204.99]) by danu.procontrol.fi (Postfix) with ESMTP id C98251C1D0E0 for ; Mon, 21 Jun 2004 21:00:23 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v618) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-47-11939962" To: Dovecot list From: Timo Sirainen Date: Mon, 21 Jun 2004 21:00:05 +0300 X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.0 required=5.0 tests=AWL,BAYES_01,PGP_SIGNATURE_2,RCVD_IN_ORBS, USER_AGENT_APPLEMAIL version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] proxy plugin X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 18:09:01 -0000 X-UID: 9596 Status: O Content-Length: 1312 --Apple-Mail-47-11939962 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed I've updated the proxy plugin at http://dovecot.org/patches/1.0/quota.c. It doesn't exactly work, even against latest CVS Dovecot as it crashes in save/copy, but it shows how it's basically going to work. Pretty ugly to do objects with C, but works.. If you're interested about writing support for some specific quota backend (maildir++, sql, ..), now would be a good time to begin :) Well, the reason it crashes is because it needs to find out the message's size, but Dovecot doesn't yet really like being asked about messages that haven't been committed to index. I guess that needs to change, hopefully won't require too large changes. I think I'm going to merge mail-index-view and mail-index-transaction into same thing.. --Apple-Mail-47-11939962 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1yImyUhSUUBViskRAuFUAJkB0QmFFr/5e8gNzm+lWgayBne5BgCbBiDC s8i8cCI/aVqDo+T6lfrFpzM= =2Yq7 -----END PGP SIGNATURE----- --Apple-Mail-47-11939962-- From wmoran@potentialtech.com Mon Jun 21 21:12:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 438D6C000DC7; Mon, 21 Jun 2004 21:12:39 +0300 (EEST) Received: from internet.potentialtech.com (h-66-167-251-6.phlapafg.covad.net [66.167.251.6]) by talvi.dovecot.org (Postfix) with ESMTP id 4C27EC0007B4 for ; Mon, 21 Jun 2004 21:12:37 +0300 (EEST) Received: from working.potentialtech.com (pa-plum1c-102.pit.adelphia.net [24.53.179.102]) by internet.potentialtech.com (Postfix) with ESMTP id 311A969A39 for ; Mon, 21 Jun 2004 14:04:39 -0400 (EDT) Date: Mon, 21 Jun 2004 14:04:38 -0400 From: Bill Moran To: dovecot@dovecot.org Message-Id: <20040621140438.22803b07.wmoran@potentialtech.com> Organization: Potential Technologies X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; i386-portbld-freebsd4.9) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Dovecot] Is Dovecot able to use PostgreSQL to store mailboxes? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 18:12:39 -0000 X-UID: 9597 Status: O Subject says it all. (I'm almost positive this is a FAQ, or that the information is online _somewhere_, but I just spent 20 minutes without finding it ... sorry if I didn't search hard enough) -- Bill Moran Potential Technologies http://www.potentialtech.com From tss@iki.fi Mon Jun 21 21:33:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5A51FC000DC7; Mon, 21 Jun 2004 21:33:26 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 6B78BC000D90 for ; Mon, 21 Jun 2004 21:33:24 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 112011C15337; Mon, 21 Jun 2004 21:25:27 +0300 (EEST) Received: from [10.100.42.83] (gprs-internet.mobile.sonera.net [212.213.204.99]) by danu.procontrol.fi (Postfix) with ESMTP id C95BB1C1D0E0; Mon, 21 Jun 2004 21:24:48 +0300 (EEST) In-Reply-To: <20040621140438.22803b07.wmoran@potentialtech.com> References: <20040621140438.22803b07.wmoran@potentialtech.com> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-48-13404719" Message-Id: <3CAC08BE-C3B0-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Is Dovecot able to use PostgreSQL to store mailboxes? Date: Mon, 21 Jun 2004 21:24:30 +0300 To: Bill Moran X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.2 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 18:33:26 -0000 X-UID: 9598 Status: O Content-Length: 1466 --Apple-Mail-48-13404719 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 21.6.2004, at 21:04, Bill Moran wrote: > Subject says it all. > > (I'm almost positive this is a FAQ, or that the information is online > _somewhere_, but I just spent 20 minutes without finding it ... sorry > if I > didn't search hard enough) Well, main Dovecot web page says it: "Dovecot can work with standard mbox and maildir formats and it's fully compatible with UW-IMAP and Courier IMAP servers as well as mail clients accessing the mailboxes directly. I have also plans to support storing mails in SQL databases." Still not in my near future plans, although I've had one guy contact me about making Dovecot use a library derived from dbmail as a backend. I don't think it's really worth it to store mails in SQL database, unless you really need to do it for some reason. Performance is most likely never the reason to do it. Reliability and interoperability might be. --Apple-Mail-48-13404719 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1yfeyUhSUUBViskRAm69AJ43HOBcYa4nrap8YprivHcJGjgNcwCeJlT1 ZLD9GDu/HSAGgirpq2Tb2nk= =up0O -----END PGP SIGNATURE----- --Apple-Mail-48-13404719-- From t1lt@bk.ru Mon Jun 21 21:53:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 036A0C000DC7; Mon, 21 Jun 2004 21:53:19 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 280CAC000D90 for ; Mon, 21 Jun 2004 21:53:16 +0300 (EEST) Received: (qmail 19137 invoked by uid 1000); 21 Jun 2004 18:45:17 -0000 Date: Mon, 21 Jun 2004 20:45:17 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test21 Message-ID: <20040621184517.GB29410@widecut.net> Mail-Followup-To: Moe Wibble , Dovecot list References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 18:53:19 -0000 X-UID: 9599 Status: O Content-Length: 3416 On Mon, Jun 21, 2004 at 08:51:55PM +0300, Timo Sirainen wrote: > On 21.6.2004, at 18:56, Moe Wibble wrote: > > >> - Enabled cache file again. If client asks about something that can > >>be > >>cached for future, it's done. There's currently no smart logic about > >>when not to do it or when to cache more than was asked for future use. > >>Currently nothing is ever deleted from cache. Currently it's disabled > >>if mmap_disable = yes. > > > >...does that mean the cache-file will grow indefinitely? > > Yes. Note the "currently" words there :) Will be fixed before 1.0 of > course. > > >Actually I find the current maildir-performance quite amazing when > >compared > >to courier or bincimap. The only other imapd that can hold a candle to > >dovecot (at least according to my little-bit-out-dated and > >not-so-representative personal benchmarks) appears to be cyrus. > > I recently saw some benchmarks (measuring system load) comparing > Dovecot mbox, maildir and Cyrus. Dovecot was much slower than I > thought, Cyrus was many times faster in most tests. Dovecot with mbox > was also much faster than with maildir, even though my 0.99.10 mbox > code is pretty bad. Strange... I'd think that rewriting the mbox files would cause a lot more performance issues than shuffling around files in a Maildir. But well, as I mentioned before I'm no friend of mbox anyways and think it should be completely dropped in favor to more ressources spent on Maildir performance/features. I do realize that I'm probably in the minority with that opinion, tho ;) > 0.99.10 indexes aren't too good, but I still find it a bit strange that > Cyrus takes something like 10x less load. I'd think most of it has to > do with maildir format itself, that it needs to rename files when flags > change, and Dovecot needs to resync the whole maildir after each change > in mailbox (and sometimes twice). I haven't tested dovecot in a high load (multiuser) environment yet so I can't say much about the actual load in such a situation. But once the indexes are made (and don't break) what's really left to cause (unjustified) load? > I guess we'll need a IMAP-optimized format sometimes soon. But please not before maildir support is stable again and shared folders (which I'd claim is a must-have for most corporate deployments) have been implemented. :) The "proprietary" mailstore-format is the main reason why I'd like to get rid of cyrus. I'll drop it the day that another imapd provides shared folders on regular Maildirs with reasonable performance.. Consequently I'd rather like to see dovecot improve on the indexing/caching- side in order to get most out of Maildir before yet another "prop." format is invented. I do realize that getting the highest performance out of server-side searches may require moving to a prop. format. But for me the drawbacks (uneasy access to the actual mails, probably backup issues/version incompatibilies) outweight the advantages in most cases. Not to mention all the implementation effort that could be spent on smarter Maildir indexing and maybe a separate "search-optimized index" instead ;) Again, that's only my opinion. I'd like to hear others on that... > Anyway, 1.0 is nearing a state where I'd like to begin hearing > benchmarks about it. It's mbox performance should be excellent. I'm curious too (more about Maildir performance, tho). greets From wmoran@potentialtech.com Mon Jun 21 22:13:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 07925C000E00; Mon, 21 Jun 2004 22:13:02 +0300 (EEST) Received: from internet.potentialtech.com (h-66-167-251-6.phlapafg.covad.net [66.167.251.6]) by talvi.dovecot.org (Postfix) with ESMTP id 4B0EFC000DC7 for ; Mon, 21 Jun 2004 22:12:59 +0300 (EEST) Received: from working.potentialtech.com (pa-plum1c-102.pit.adelphia.net [24.53.179.102]) by internet.potentialtech.com (Postfix) with ESMTP id 6F10469A3F; Mon, 21 Jun 2004 15:05:00 -0400 (EDT) Date: Mon, 21 Jun 2004 15:04:59 -0400 From: Bill Moran To: Timo Sirainen Subject: Re: [Dovecot] Is Dovecot able to use PostgreSQL to store mailboxes? Message-Id: <20040621150459.10bcccb6.wmoran@potentialtech.com> In-Reply-To: <3CAC08BE-C3B0-11D8-8017-000393CC2E90@iki.fi> References: <20040621140438.22803b07.wmoran@potentialtech.com> <3CAC08BE-C3B0-11D8-8017-000393CC2E90@iki.fi> Organization: Potential Technologies X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; i386-portbld-freebsd4.9) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 19:13:03 -0000 X-UID: 9600 Status: O Content-Length: 1703 Timo Sirainen wrote: > On 21.6.2004, at 21:04, Bill Moran wrote: > > > Subject says it all. > > > > (I'm almost positive this is a FAQ, or that the information is online > > _somewhere_, but I just spent 20 minutes without finding it ... sorry > > if I > > didn't search hard enough) > > Well, main Dovecot web page says it: > > "Dovecot can work with standard mbox and maildir formats and it's fully > compatible with UW-IMAP and Courier IMAP servers as well as mail > clients accessing the mailboxes directly. I have also plans to support > storing mails in SQL databases." Ahh ... I had a feeling it would be right in front of my face ... > Still not in my near future plans, although I've had one guy contact me > about making Dovecot use a library derived from dbmail as a backend. > > I don't think it's really worth it to store mails in SQL database, > unless you really need to do it for some reason. Performance is most > likely never the reason to do it. Reliability and interoperability > might be. Reliability is the reason for me. We already have acceptable performance. I'm dealing with a client that provides IMAP services for multiple clients, and we're concerned about what happens in the event of a server failure on the machine with the HDDs. There's already RAID in place, but what if the mobo, PS, controller ... etc fails. What I'd like to do is use Postgres with Slony to keep the IMAP folders on two completely seperate machines in real-time. Anyway ... thanks for the great work you've done with Dovecot so far. Maybe I'll even have time to contribute something in the future. -- Bill Moran Potential Technologies http://www.potentialtech.com From lfarkas@bppiac.hu Tue Jun 22 01:26:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E4FE2C000D90; Tue, 22 Jun 2004 01:26:41 +0300 (EEST) Received: from mx1.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by talvi.dovecot.org (Postfix) with ESMTP id 74535C000987 for ; Tue, 22 Jun 2004 01:26:36 +0300 (EEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 1CFD816F890; Tue, 22 Jun 2004 00:18:38 +0200 (CEST) Received: from bppiac.hu (eaglen.vpn.bppiac.hu [192.168.255.54]) by mx1.bppiac.hu (Postfix) with ESMTP id E197416F88D for ; Tue, 22 Jun 2004 00:18:37 +0200 (CEST) Message-ID: <40D75EBD.4080605@bppiac.hu> Date: Tue, 22 Jun 2004 00:18:37 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot list Subject: Re: [Dovecot] 1.0-test21 References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2004 22:26:42 -0000 X-UID: 9601 Status: O Content-Length: 1346 Timo Sirainen wrote: > I recently saw some benchmarks (measuring system load) comparing Dovecot > mbox, maildir and Cyrus. Dovecot was much slower than I thought, Cyrus > was many times faster in most tests. Dovecot with mbox was also much > faster than with maildir, even though my 0.99.10 mbox code is pretty bad. IMHO the performace issue and mainly the system load peeks are very important! what's more if cyrus faster than dovecotm, than it's hard to argue for dovecot (since cyrus is more feature rich). > 0.99.10 indexes aren't too good, but I still find it a bit strange that > Cyrus takes something like 10x less load. I'd think most of it has to do > with maildir format itself, that it needs to rename files when flags > change, and Dovecot needs to resync the whole maildir after each change > in mailbox (and sometimes twice). why should have to resync? couldn't be possible to do one atomic rename and index update step without resync? as I wrote about half a year the best solution would be a local delivery agent which can update the index files and spread the load to the arrival time instead of the mail read time. > I guess we'll need a IMAP-optimized format sometimes soon. than you've to write local delivery agent for many MTAs... -- Levente "Si vis pacem para bellum!" From jaldhar@debian.org Tue Jun 22 03:05:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 361DBC000DC7; Tue, 22 Jun 2004 03:05:51 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 3B266C000D90 for ; Tue, 22 Jun 2004 03:05:48 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id 5FE0E8046; Mon, 21 Jun 2004 19:57:47 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16448-01; Mon, 21 Jun 2004 19:57:46 -0400 (EDT) Received: from [149.123.206.41] (unknown [149.123.206.41]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id A60308045; Mon, 21 Jun 2004 19:57:46 -0400 (EDT) Date: Mon, 21 Jun 2004 19:56:13 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Nicolas STRANSKY In-Reply-To: <40D55627.1030905@neo-lan.net> Message-ID: References: <40D55627.1030905@neo-lan.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p9 (Debian) at braincells.com Cc: dovecot@dovecot.org Subject: [Dovecot] Re: Debian dovecot news X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 00:05:52 -0000 X-UID: 9602 Status: O On Sun, 20 Jun 2004, Nicolas STRANSKY wrote: > Hi, > > Have you got any advice on upgrading from 0.99 to 1.0-test on a sarge ? > Any particular configuration options to change ? Is it safe to let the > old indexes ? > I was hoping you would tell me. ;-) -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From paul@mcmurphy.net Tue Jun 22 04:11:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 96E13C000DC7; Tue, 22 Jun 2004 04:11:36 +0300 (EEST) Received: from email.snapshotpaintball.net (c-66-41-117-121.mn.client2.attbi.com [66.41.117.121]) by talvi.dovecot.org (Postfix) with ESMTP id DFE01C000D90 for ; Tue, 22 Jun 2004 04:11:33 +0300 (EEST) Received: from nForce [192.168.1.10] by email.snapshotpaintball.net (SMTPD32-8.05) id A67D1E00A8; Mon, 21 Jun 2004 20:08:13 -0500 Message-ID: <002f01c457f6$b6fdbc70$0a01a8c0@nForce> From: "Paul McMurphy" To: Date: Mon, 21 Jun 2004 20:17:41 -0500 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_002C_01C457CC.CE22F980" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Subject: [Dovecot] I/O Leak? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 01:11:36 -0000 X-UID: 9603 Status: O Content-Length: 2967 This is a multi-part message in MIME format. ------=_NextPart_000_002C_01C457CC.CE22F980 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Is the I/O leak message normal? (from syslog) Jun 22 02:12:39 xbox pop3(paul): lstat(/var/mail/Maildir/paul/INBOX/cur) = failed: Permission denied Jun 22 02:12:39 xbox pop3(paul): lstat(/var/mail/Maildir/paul/INBOX/cur) = failed: Permission denied Jun 22 02:12:39 xbox pop3: I/O leak: 0x8050ce0 (0) Jun 22 02:12:39 xbox pop3: I/O leak: 0x8084b10 (1) Jun 22 02:13:22 xbox pop3-login: Login: paul [192.168.1.10] Jun 22 02:13:23 xbox pop3(paul): lstat(/var/mail/Maildir/paul/INBOX/cur) = failed: Permission denied Jun 22 02:13:23 xbox pop3(paul): lstat(/var/mail/Maildir/paul/INBOX/cur) = failed: Permission denied Jun 22 02:13:23 xbox pop3: I/O leak: 0x8050ce0 (0) Jun 22 02:13:23 xbox pop3: I/O leak: 0x8084b10 (1) Oh... and any hints on the permissions problem would be ok also. ;) Debian 1.0.1 / dovecot 0.99.10.6-1 Thanks! ------=_NextPart_000_002C_01C457CC.CE22F980 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
 
Is the I/O leak message = normal?
 
(from syslog)
 
Jun 22 02:12:39 xbox pop3(paul):=20 lstat(/var/mail/Maildir/paul/INBOX/cur) failed: Permission = denied
Jun 22=20 02:12:39 xbox pop3(paul): lstat(/var/mail/Maildir/paul/INBOX/cur)=20 failed: Permission denied
Jun 22 02:12:39 xbox pop3: I/O leak: = 0x8050ce0=20 (0)
Jun 22 02:12:39 xbox pop3: I/O leak: 0x8084b10 (1)
Jun 22 = 02:13:22=20 xbox pop3-login: Login: paul [192.168.1.10]
Jun 22 02:13:23 xbox = pop3(paul):=20 lstat(/var/mail/Maildir/paul/INBOX/cur) failed: Permission = denied
Jun 22=20 02:13:23 xbox pop3(paul): lstat(/var/mail/Maildir/paul/INBOX/cur)=20 failed: Permission denied
Jun 22 02:13:23 xbox pop3: I/O leak: = 0x8050ce0=20 (0)
Jun 22 02:13:23 xbox pop3: I/O leak: 0x8084b10 = (1)
Oh... and any hints on the permissions = problem=20 would be ok also. ;)
 
Debian 1.0.1 / dovecot = 0.99.10.6-1
 
Thanks!
------=_NextPart_000_002C_01C457CC.CE22F980-- From tallison@tacocat.net Tue Jun 22 04:52:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 29717C000DDE; Tue, 22 Jun 2004 04:52:15 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id EF2C0C000DC7 for ; Tue, 22 Jun 2004 04:52:12 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id 458834C083; Mon, 21 Jun 2004 21:44:13 -0400 (EDT) Message-ID: <40D78EED.1020907@tacocat.net> Date: Mon, 21 Jun 2004 21:44:13 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Farkas Levente Subject: Re: [Dovecot] 1.0-test21 References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> In-Reply-To: <40D75EBD.4080605@bppiac.hu> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 01:52:15 -0000 X-UID: 9604 Status: O Content-Length: 1396 Farkas Levente wrote: > Timo Sirainen wrote: > >> I recently saw some benchmarks (measuring system load) comparing >> Dovecot mbox, maildir and Cyrus. Dovecot was much slower than I >> thought, Cyrus was many times faster in most tests. Dovecot with mbox >> was also much faster than with maildir, even though my 0.99.10 mbox >> code is pretty bad. > > > IMHO the performace issue and mainly the system load peeks are very > important! > what's more if cyrus faster than dovecotm, than it's hard to argue for > dovecot (since cyrus is more feature rich). > That last statement is arguable. cyrus-imap has some nice capabilities. But if you use procmail then it's no contest who is going to win! ;) But I seem to remember that their indexes had an achilles heal. If you (re)moved an email file via filesystem then the indexes were badly corrupted and there was little you could do with that mail directory again. I don't think that this is proper behaviour for imap servers under a unix environment. That said, I suspect that cyrus used their indexes as a means of providing some rudimentary search results for a give key and an array of file inodes for the correlating email messages in maildir. This would store the locations in the file inode table, making for a nice speedy access of files. Hence, the removal of a file would corrupt their inode lookup table... From tallison@tacocat.net Tue Jun 22 04:57:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DD0D9C000DDE; Tue, 22 Jun 2004 04:57:41 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id 88A19C000DC7 for ; Tue, 22 Jun 2004 04:57:39 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id E6D8A4C083; Mon, 21 Jun 2004 21:49:40 -0400 (EDT) Message-ID: <40D79034.2090207@tacocat.net> Date: Mon, 21 Jun 2004 21:49:40 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] Is Dovecot able to use PostgreSQL to store mailboxes? References: <20040621140438.22803b07.wmoran@potentialtech.com> <3CAC08BE-C3B0-11D8-8017-000393CC2E90@iki.fi> In-Reply-To: <3CAC08BE-C3B0-11D8-8017-000393CC2E90@iki.fi> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 01:57:42 -0000 X-UID: 9605 Status: O Content-Length: 1618 Timo Sirainen wrote: > On 21.6.2004, at 21:04, Bill Moran wrote: > >> Subject says it all. >> >> (I'm almost positive this is a FAQ, or that the information is online >> _somewhere_, but I just spent 20 minutes without finding it ... sorry >> if I >> didn't search hard enough) > > > Well, main Dovecot web page says it: > > "Dovecot can work with standard mbox and maildir formats and it's fully > compatible with UW-IMAP and Courier IMAP servers as well as mail clients > accessing the mailboxes directly. I have also plans to support storing > mails in SQL databases." > > Still not in my near future plans, although I've had one guy contact me > about making Dovecot use a library derived from dbmail as a backend. > > I don't think it's really worth it to store mails in SQL database, > unless you really need to do it for some reason. Performance is most > likely never the reason to do it. Reliability and interoperability might > be. I had a conversation with the same fellow a while back. I'm told that dbmail is actually very fast in mail retrieval. But I was unable to confirm it myself. If such a venture where to be undertaken, I would reconsider their (dbmail) use of postgresql database structure. They do not build and design the database with indexed retrieval in mind. They are missing 90% of the performance capabilities that could be obtained by using such a powerful database back-end. In short, they store the entire header in one field and the entire body in another field. Hardly optimized for the three or four most common sorts (date, subject, sender, threaded) From tss@iki.fi Tue Jun 22 05:56:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 20419C000DC7; Tue, 22 Jun 2004 05:56:01 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 8EA57C000D90 for ; Tue, 22 Jun 2004 05:55:58 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 5D8E81C350CB; Tue, 22 Jun 2004 05:48:00 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B9EAF1C15337; Tue, 22 Jun 2004 05:47:25 +0300 (EEST) In-Reply-To: <20040621184517.GB29410@widecut.net> References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <20040621184517.GB29410@widecut.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-50-43576278" Message-Id: <7C52ADE4-C3F6-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test21 Date: Tue, 22 Jun 2004 05:47:22 +0300 To: Moe Wibble X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 02:56:01 -0000 X-UID: 9606 Status: O Content-Length: 4504 --Apple-Mail-50-43576278 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 21.6.2004, at 21:45, Moe Wibble wrote: >> I recently saw some benchmarks (measuring system load) comparing >> Dovecot mbox, maildir and Cyrus. Dovecot was much slower than I >> thought, Cyrus was many times faster in most tests. Dovecot with mbox >> was also much faster than with maildir, even though my 0.99.10 mbox >> code is pretty bad. > > Strange... I'd think that rewriting the mbox files would cause a lot > more performance issues than shuffling around files in a Maildir. They probably were using mboxes that had already all the necessay X-UID etc. fields, so rewriting wouldn't need to do more than really required. >> 0.99.10 indexes aren't too good, but I still find it a bit strange >> that >> Cyrus takes something like 10x less load. I'd think most of it has to >> do with maildir format itself, that it needs to rename files when >> flags >> change, and Dovecot needs to resync the whole maildir after each >> change >> in mailbox (and sometimes twice). > > I haven't tested dovecot in a high load (multiuser) environment yet > so I can't say much about the actual load in such a situation. > But once the indexes are made (and don't break) what's really > left to cause (unjustified) load? With maildir the problem is that once it's modified by Dovecot, I can't know if someone else didn't modify it at the same time. So after I change anything it, I'll have to resync the whole maildir again, just in case. >> I guess we'll need a IMAP-optimized format sometimes soon. > > But please not before maildir support is stable again I'd probably base it on maildir. Differences would be mostly just: - filename = message UID - new/ directory could exist so existing LDAs can easily add mail - Dovecot-optimized LDAs would store mails directly into cur/ - if anyone modifies cur/ directory, Dovecot issues a warning when it's noticed but still syncs and fixes it. this fallbacking shouldn't affect performance much, since it would be done only if cur/ directory's timestamp didn't match the one in index. - possibly rename the cur/ dir into something else - possibly add some way to insert new mails into mailbox atomically (mkdir tra/1, put mails there, rename tra/1 tra-done/1 -> after that it's considered as committed and if found by any MUA the mails in it must be moved into cur/) > and shared folders > (which I'd claim is a must-have for most corporate deployments) have > been > implemented. :) 1.0-test sort of tupport shared folders.. If you symlink them manually and create a "dovecot-shared" file with the permissions that should be used for new files. But that's only ugly temporary hack and I'll have to figure out some better way. I think the proper support is post-1.0 feature. > I do realize that getting the highest performance out of > server-side searches may require moving to a prop. format. Actually I don't think searching can be optimized at all by moving to another format. > But for me the > drawbacks (uneasy access to the actual mails, probably backup > issues/version > incompatibilies) outweight the advantages in most cases. Not to > mention all > the implementation effort that could be spent on smarter Maildir > indexing Unless the backends share 95% of their code and are compatible in most of the ways.. :) > and maybe a separate "search-optimized index" instead ;) For SEARCH command, only way to index data in usable way that I know of is the Cyrus squat indexer, but it generates large indexes and it's slow to update, so most people aren't using it.. I'll probably implement it one day though. >> Anyway, 1.0 is nearing a state where I'd like to begin hearing >> benchmarks about it. It's mbox performance should be excellent. > > I'm curious too (more about Maildir performance, tho). Maildir performance should still get somewhat better before 1.0, but mbox has very few optimizations left that I can think of. --Apple-Mail-50-43576278 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA1526yUhSUUBViskRAvmJAJ9ELTZdAi5E+Y658IzmbyMbgTDzogCeKGSl lOvoi6G7VVZMkZHyNoll+Q8= =Lbl8 -----END PGP SIGNATURE----- --Apple-Mail-50-43576278-- From tss@iki.fi Tue Jun 22 05:59:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DD154C000DDE; Tue, 22 Jun 2004 05:59:28 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 8AA85C000D90 for ; Tue, 22 Jun 2004 05:59:26 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 5A5A11C350CB; Tue, 22 Jun 2004 05:51:28 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 584FB1C15337; Tue, 22 Jun 2004 05:50:55 +0300 (EEST) In-Reply-To: <40D75EBD.4080605@bppiac.hu> References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-51-43787904" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test21 Date: Tue, 22 Jun 2004 05:50:53 +0300 To: Farkas Levente X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 02:59:29 -0000 X-UID: 9607 Status: O Content-Length: 1804 --Apple-Mail-51-43787904 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.6.2004, at 01:18, Farkas Levente wrote: >> 0.99.10 indexes aren't too good, but I still find it a bit strange >> that Cyrus takes something like 10x less load. I'd think most of it >> has to do with maildir format itself, that it needs to rename files >> when flags change, and Dovecot needs to resync the whole maildir >> after each change in mailbox (and sometimes twice). > > why should have to resync? couldn't be possible to do one atomic > rename and index update step without resync? But to be interoperable with other maildir clients, Dovecot can't know if someone else didn't do other changes within the same second. So it has to resync everything. > as I wrote about half a year the best solution would be a local > delivery agent which can update the index files and spread the load to > the arrival time instead of the mail read time. That's also getting near. mbox already updates the mail index when saving mails to it, I'll soon fix it to update cache file as well. I'll do the same for maildir soon too. >> I guess we'll need a IMAP-optimized format sometimes soon. > > than you've to write local delivery agent for many MTAs... Not necessarily, it can be maildir-compatible for delivery :) --Apple-Mail-51-43787904 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA156OyUhSUUBViskRAmh1AJ420rFF9FDx1MYut5FOwWNbAeiIJACcDu4t g9StaD67CavwApo2f8WjzjY= =ZOm2 -----END PGP SIGNATURE----- --Apple-Mail-51-43787904-- From tss@iki.fi Tue Jun 22 06:12:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D70BAC000DEB; Tue, 22 Jun 2004 06:12:36 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id AC4BAC000DDE for ; Tue, 22 Jun 2004 06:12:34 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 7468E1C350CB; Tue, 22 Jun 2004 06:04:36 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D1B991C15337; Tue, 22 Jun 2004 06:04:02 +0300 (EEST) In-Reply-To: <40D78EED.1020907@tacocat.net> References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> <40D78EED.1020907@tacocat.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-52-44575263" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test21 Date: Tue, 22 Jun 2004 06:04:01 +0300 To: Tom Allison X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.8 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Farkas Levente , Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 03:12:37 -0000 X-UID: 9608 Status: O Content-Length: 2205 --Apple-Mail-52-44575263 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.6.2004, at 04:44, Tom Allison wrote: > That last statement is arguable. cyrus-imap has some nice > capabilities. But if you use procmail then it's no contest who is > going to win! > ;) I actually hate procmail. It's code mostly. It's horrible. > But I seem to remember that their indexes had an achilles heal. If > you (re)moved an email file via filesystem then the indexes were badly > corrupted and there was little you could do with that mail directory > again. I don't think that this is proper behaviour for imap servers > under a unix environment. I think it can be fixed by running "cyrusadm recover" or something similiar. > That said, I suspect that cyrus used their indexes as a means of > providing some rudimentary search results for a give key and an array > of file inodes for the correlating email messages in maildir. This > would store the locations in the file inode table, making for a nice > speedy access of files. Hence, the removal of a file would corrupt > their inode lookup table... I don't really understand much of that :) If you mean by inode table the real filesystem's inode table, I don't think you can store any custom data there yourself? And removing the file would remove the inode, so no problem there. Anyway, Cyrus' indexes are currently quite similiar to Dovecot's. It stores more data per mail, but some of it is just bloat and the rest is forcefeeded caching data that client may never use. Cyrus would be able to deal with losing files if it just wanted to. Implementing Cyrus mail store support for Dovecot might be a fun project, any takers? :) --Apple-Mail-52-44575263 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA16GhyUhSUUBViskRAnPBAJwPmmgjsf3wRmltPvIEnY5YvFfPbQCdGxrK rahQP7kJH+xiDLplzxAaF3U= =xUch -----END PGP SIGNATURE----- --Apple-Mail-52-44575263-- From tss@iki.fi Tue Jun 22 06:23:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5C0ADC000E00; Tue, 22 Jun 2004 06:23:34 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 63B9AC000DDE for ; Tue, 22 Jun 2004 06:23:32 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 275E71C350CB; Tue, 22 Jun 2004 06:15:34 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 259781C15337; Tue, 22 Jun 2004 06:15:00 +0300 (EEST) In-Reply-To: <40D79034.2090207@tacocat.net> References: <20040621140438.22803b07.wmoran@potentialtech.com> <3CAC08BE-C3B0-11D8-8017-000393CC2E90@iki.fi> <40D79034.2090207@tacocat.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-53-45232529" Message-Id: <578675DC-C3FA-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Is Dovecot able to use PostgreSQL to store mailboxes? Date: Tue, 22 Jun 2004 06:14:58 +0300 To: Tom Allison X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.8 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 03:23:34 -0000 X-UID: 9609 Status: O Content-Length: 1316 --Apple-Mail-53-45232529 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.6.2004, at 04:49, Tom Allison wrote: > I had a conversation with the same fellow a while back. > > I'm told that dbmail is actually very fast in mail retrieval. But I > was unable to confirm it myself. It could be fast, but it couldn't be faster than doing "cat mailfile", which is basically what maildir clients do. > In short, they store the entire header in one field and the entire > body in another field. Hardly optimized for the three or four most > common sorts (date, subject, sender, threaded) Sorting could be completely done by SQL server with ORDER BY, but threading would require just fetching a few headers and doing it internally. Dovecot 1.0's cache file btw. keeps the commonly used headers stored in it. --Apple-Mail-53-45232529 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA16QyyUhSUUBViskRAol8AKCbTIjv+Ac86nUi1xv9sqOZFtBmJgCfe4ap tq2RTLm0v/aFb1nr1dtqoTY= =zDSo -----END PGP SIGNATURE----- --Apple-Mail-53-45232529-- From andrew@mux.org.uk Tue Jun 22 07:12:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E9FBAC000DDE; Tue, 22 Jun 2004 07:12:40 +0300 (EEST) Received: from 82-41-155-225.cable.ubr01.linl.blueyonder.co.uk (82-41-155-225.cable.ubr01.linl.blueyonder.co.uk [82.41.155.225]) by talvi.dovecot.org (Postfix) with ESMTP id DBE76C000DC7 for ; Tue, 22 Jun 2004 07:12:35 +0300 (EEST) Received: from [192.168.0.4] (spatula.home [192.168.0.4]) by gateway.home (Postfix) with ESMTP id 77033134; Tue, 22 Jun 2004 05:04:31 +0100 (BST) Message-ID: <40D7AFCD.5000703@mux.org.uk> Date: Tue, 22 Jun 2004 05:04:29 +0100 From: Andrew Boothman User-Agent: Mozilla Thunderbird 0.7 (Windows/20040616) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test21 References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <20040621184517.GB29410@widecut.net> <7C52ADE4-C3F6-11D8-8017-000393CC2E90@iki.fi> In-Reply-To: <7C52ADE4-C3F6-11D8-8017-000393CC2E90@iki.fi> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 04:12:41 -0000 X-UID: 9610 Status: O Content-Length: 1126 Timo Sirainen wrote: >> I haven't tested dovecot in a high load (multiuser) environment yet >> so I can't say much about the actual load in such a situation. >> But once the indexes are made (and don't break) what's really >> left to cause (unjustified) load? > > > With maildir the problem is that once it's modified by Dovecot, I can't > know if someone else didn't modify it at the same time. So after I > change anything it, I'll have to resync the whole maildir again, just in > case. Might it be possible to have a flag in dovecot's config that would allow for the case when the only change that could happen to a Maildir is the writing of a new file into new/? In other words the only application other than Dovecot with access to the Maildir is the MTA as it writes new emails into new/? That would enable Dovecot not to have to concern itself with resyncing other directories. This would seem to be the common case when a Maildir is only accessed using IMAP/POP3 in an ISP environment and might provide performance enhancements until a Dovecot LDA is developed. Or doesn't that make sense? :) Andrew From tss@iki.fi Tue Jun 22 07:39:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0C8EFC000DDE; Tue, 22 Jun 2004 07:39:03 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id F051AC000DC7 for ; Tue, 22 Jun 2004 07:39:00 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 95EE61C350CB; Tue, 22 Jun 2004 07:31:02 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 37E7A1C134FD; Tue, 22 Jun 2004 07:30:28 +0300 (EEST) In-Reply-To: <40D7AFCD.5000703@mux.org.uk> References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <20040621184517.GB29410@widecut.net> <7C52ADE4-C3F6-11D8-8017-000393CC2E90@iki.fi> <40D7AFCD.5000703@mux.org.uk> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-55-49758647" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test21 Date: Tue, 22 Jun 2004 07:30:24 +0300 To: Andrew Boothman X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 04:39:03 -0000 X-UID: 9611 Status: O Content-Length: 1409 --Apple-Mail-55-49758647 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.6.2004, at 07:04, Andrew Boothman wrote: >> With maildir the problem is that once it's modified by Dovecot, I >> can't know if someone else didn't modify it at the same time. So >> after I change anything it, I'll have to resync the whole maildir >> again, just in case. > > Might it be possible to have a flag in dovecot's config that would > allow for the case when the only change that could happen to a Maildir > is the writing of a new file into new/? Sure, but that's the beginning on the way for it to be completely different mail format :) Next one would be "keep flag states only in index, don't bother renaming the maildir files", then comes "just keep the filenames named as UID so we don't need to waste memory for maildir filenames". Then it's pretty much what I had in mind for my own mailbox format.. --Apple-Mail-55-49758647 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA17XhyUhSUUBViskRAl5JAKCT9VPmsefpIH0yaO4tBRGVgiVNRgCfdUwe pR1LN7MHZeUw+1ESN8PWYKQ= =n9Sp -----END PGP SIGNATURE----- --Apple-Mail-55-49758647-- From rueckert@informatik.uni-rostock.de Tue Jun 22 08:32:15 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 20160C000DDE; Tue, 22 Jun 2004 08:32:15 +0300 (EEST) Received: from monsters.rsn.uni-rostock.de (monsters.rsn.uni-rostock.de [139.30.253.26]) by talvi.dovecot.org (Postfix) with ESMTP id 20AE7C000DC7 for ; Tue, 22 Jun 2004 08:32:13 +0300 (EEST) Received: from intern.dot.rsn.uni-rostock.de (intern.dot.rsn.uni-rostock.de [192.168.22.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "", Issuer "mail.pixalized.technet" (not verified)) by monsters.rsn.uni-rostock.de (Postfix) with ESMTP id D2BC1F254; Tue, 22 Jun 2004 07:25:54 +0200 (CEST) Received: by intern.dot.rsn.uni-rostock.de (Postfix, from userid 1000) id 4AFFA5A4B7; Tue, 22 Jun 2004 03:53:21 +0200 (CEST) Date: Tue, 22 Jun 2004 03:53:21 +0200 From: Marcus Rueckert To: Tom Allison Subject: Re: [Dovecot] 1.0-test21 Message-ID: <20040622015321.GA32337@monsters.rsn.uni-rostock.de> References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> <40D78EED.1020907@tacocat.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40D78EED.1020907@tacocat.net> User-Agent: Mutt/1.5.6i Cc: Farkas Levente , Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 05:32:15 -0000 X-UID: 9612 Status: O hi, On 2004-06-21 21:44:13 -0400, Tom Allison wrote: > But I seem to remember that their indexes had an achilles heal. If you > (re)moved an email file via filesystem then the indexes were badly > corrupted and there was little you could do with that mail directory > again. I don't think that this is proper behaviour for imap servers > under a unix environment. thats why normally a user cant access the maildirs directly. so this isnt a case which should happen often. but i agree the failure handling needs some work for that case. :) thats one of the points i hate about cyrus. you cant access it locally direct. only via imap/pop. and about the mentioned procmail: you have sieve ... and i like the syntax of it more than the one from procmail. thats why i use maildrop atm. darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From tss@iki.fi Tue Jun 22 10:56:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3BAE6C000DCB; Tue, 22 Jun 2004 10:56:34 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 1AE48C000D93 for ; Tue, 22 Jun 2004 10:56:32 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 64FF11C350CB; Tue, 22 Jun 2004 10:48:33 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2D1181C134FD; Tue, 22 Jun 2004 10:47:59 +0300 (EEST) Subject: Re: [Dovecot] I/O Leak? From: Timo Sirainen To: Paul McMurphy In-Reply-To: <002f01c457f6$b6fdbc70$0a01a8c0@nForce> References: <002f01c457f6$b6fdbc70$0a01a8c0@nForce> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-PbJ32fn7TYGqaVGRA8cE" Message-Id: <1087890478.18792.49.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 22 Jun 2004 10:47:58 +0300 X-Spam-Status: No, hits=-9.4 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 07:56:34 -0000 X-UID: 9613 Status: O Content-Length: 1340 --=-PbJ32fn7TYGqaVGRA8cE Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-22 at 04:17, Paul McMurphy wrote: > =20 > Is the I/O leak message normal? > Jun 22 02:12:39 xbox pop3(paul): > lstat(/var/mail/Maildir/paul/INBOX/cur) failed: Permission denied > Jun 22 02:12:39 xbox pop3(paul): > lstat(/var/mail/Maildir/paul/INBOX/cur) failed: Permission denied > Jun 22 02:12:39 xbox pop3: I/O leak: 0x8050ce0 (0) > Jun 22 02:12:39 xbox pop3: I/O leak: 0x8084b10 (1) More or less, they just mean some memory was leaked and that there might be a bug somewhere. They've already been fixed in 1.0-tests. The "Permissions denied" messages aren't normal, though :) I/O leaks happen probably because of them. > Oh... and any hints on the permissions problem would be ok also. ;) Give that Dovecot user (paul) correct permissions for it. Is uid set right in userdb and the same uid owns /var/mail/Maildir/paul directory and everything under it? --=-PbJ32fn7TYGqaVGRA8cE Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA1+QuyUhSUUBViskRAm5IAKCgK7FoVB30utytUZvFH4ic0ER2zgCdHGvX OrfrM2hab/63LccBQc07uNw= =I4Bh -----END PGP SIGNATURE----- --=-PbJ32fn7TYGqaVGRA8cE-- From tss@iki.fi Tue Jun 22 11:25:19 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 44ECBC000DCB; Tue, 22 Jun 2004 11:25:19 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 184F2C000D93 for ; Tue, 22 Jun 2004 11:25:17 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 584961C350CB; Tue, 22 Jun 2004 11:17:18 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 51BDA1C134FD for ; Tue, 22 Jun 2004 11:16:45 +0300 (EEST) From: Timo Sirainen To: Dovecot list In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-t3L2DinJJd6x4i+12hFM" Message-Id: <1087892204.18792.79.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 22 Jun 2004 11:16:44 +0300 X-Spam-Status: No, hits=-8.9 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, RCVD_IN_ORBS,REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] Quota plugin X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 08:25:19 -0000 X-UID: 9614 Status: O Content-Length: 2140 --=-t3L2DinJJd6x4i+12hFM Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-21 at 21:00, Timo Sirainen wrote: > I've updated the proxy plugin at=20 > http://dovecot.org/patches/1.0/quota.c. Eeh.. Quota plugin, of course. I mixed up quota and proxy words way too much yesterday when I had to modify both the class proxying code which enables writing plugins more easily as well as the quota plugin. Today with latest CVS code the latest quota plugin fully works with mbox. Except.. I think the logic needs some more thinking. When exactly is the quota updated? Is it our responsibility to update quota for changes made by others then Dovecot? Currently it updates only it's own changes. Maybe it would be better to implement like: 1. Hook into save/copy commands Decrease quota_left internally for each mail, if it ever would become negative, fail the save/copy command. when the whole transaction is complete, update the quota backend. 2. Hook into syncing For each external newly appeared mail, increase the quota (our save/copy hook already updated it for internally created mails). For each internal or external expunge, decrease the quota. If we don't know expunged mail's size anymore (external expunge and we hadn't cached it's size), we need to recalculate quota. Stop calculating quota for the rest of the syncing session, and at the end do the recalculating by summing size of all existing messages. Currently it's not possible to hook into syncing, I have to think how that'd work.. It would probably need to hook between index <-> storage syncing, not between client <-> storage. Although the latter would work, the actual message has always been deleted at that point and there's less chance of getting it's size. --=-t3L2DinJJd6x4i+12hFM Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA1+rsyUhSUUBViskRAtTpAKCYYgfl3EKafImdyHucKeSiw1mV0ACfTwzx FBNxDB8XAWCBq2spf6AV1QA= =8RtK -----END PGP SIGNATURE----- --=-t3L2DinJJd6x4i+12hFM-- From hervec@sports.fr Tue Jun 22 11:56:30 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A6659C000D8E; Tue, 22 Jun 2004 11:56:30 +0300 (EEST) Received: from mail2.sports.fr (host.26.9.23.62.rev.coltfrance.com [62.23.9.26]) by talvi.dovecot.org (Postfix) with ESMTP id F1354C000987 for ; Tue, 22 Jun 2004 11:56:27 +0300 (EEST) Received: from host.146.247.23.62.rev.coltfrance.com ([62.23.247.146]:32865 helo=[172.16.16.183]) by mail2.sports.fr with asmtp (Exim 4.31 #1 (OpenNA Linux)) id 1Bcgx9-00083S-V5; Tue, 22 Jun 2004 10:48:28 +0200 Message-ID: <40D7F214.5040704@sports.fr> Date: Tue, 22 Jun 2004 10:47:16 +0200 From: =?ISO-8859-15?Q?Herv=E9_Commowick_-_NewSports?= User-Agent: Mozilla Thunderbird 0.6 (X11/20040605) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org, tss@iki.fi References: <40D24107.3000301@sports.fr> <1087523287.25522.77.camel@hurina> In-Reply-To: <1087523287.25522.77.camel@hurina> X-SA-Do-Not-Run: Yes X-SA-Exim-Connect-IP: 62.23.247.146 X-SA-Exim-Mail-From: hervec@sports.fr Subject: Re: [Dovecot] LDAP Bind Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.61 (1.212.2.1-2003-12-09-exp) on mail2.sports.fr X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.61 X-SA-Exim-Version: 4.0 (built Sat, 10 Apr 2004 11:26:52 -0400) X-SA-Exim-Scanned: Yes (on mail2.sports.fr) Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 08:56:30 -0000 X-UID: 9615 Status: O Content-Length: 1941 Timo Sirainen wrote: >On Fri, 2004-06-18 at 04:10, Hervé Commowick - NewSports wrote: > > >>- how not using the authentication bind feature of ldap server ? >>i rewrite checkpassword-ldap recently to use in bincimap server, and it >>take 3 lines to do this, so i don't understand how you don't use it. >>it is more powerful and more secure than retrieve pasword from the base >>and use crypto api to compare it. >> >> > >When I originally wrote the LDAP code I didn't really know about >authentication binds. Later I once tried to write support for them but >got tired and didn't finish it. > >dovecot-auth tries to do everything inside one process (it's fast). >Making auth binds is a bit more difficult to do in non-blocking way. > >I've thought about adding checkpassword support for dovecot-auth >actually. For now you could support auth binds with PAM and pam-ldap >module. > > > ok for this :) i'll try to implement this, when i've time, i'll provide patch if i find an issue. >>- is the dovecot server support the IMAPdir feature like bincimap or not ? >> >> > >No, at least not yet. It's pretty nice format, but for being named >IMAPdir I think it should have been designed to be 100% IMAP-compatible. > >The problem is that with IMAPdir (and Maildir++) RENAME isn't atomic >when it has to rename subfolders. Also renaming INBOX can be problematic >to implement atomically (the INBOX must never be lost). > > > i don't understand as well, i'll try to find document about that. >Pretty much the only way to do this with UNIX would be to use real >directories to implement hierarchies rather than a special '.' separator >in file/directory name. I wonder why Andreas didn't do this. > > IMAPdir use real directory to implement hierarchy, if i create a folder, it is created in IMAPdir directory like that : IMAPdir \_INBOX \_TestFolder so the IMAPdir use real directory and not special '.' separator... Hervé. From tss@iki.fi Tue Jun 22 12:09:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1B951C000D90; Tue, 22 Jun 2004 12:09:46 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id E06E0C000987 for ; Tue, 22 Jun 2004 12:09:43 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 1A0B91C350CB; Tue, 22 Jun 2004 12:01:45 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D74151C134FD; Tue, 22 Jun 2004 12:01:10 +0300 (EEST) Subject: Re: [Dovecot] LDAP Bind From: Timo Sirainen To: =?ISO-8859-1?Q?Herv=E9?= Commowick - NewSports In-Reply-To: <40D7F214.5040704@sports.fr> References: <40D24107.3000301@sports.fr> <1087523287.25522.77.camel@hurina> <40D7F214.5040704@sports.fr> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-hKnd/nTQ7vFg33nTfy9S" Message-Id: <1087894870.18792.94.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 22 Jun 2004 12:01:10 +0300 X-Spam-Status: No, hits=-9.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 09:09:46 -0000 X-UID: 9616 Status: O Content-Length: 1933 --=-hKnd/nTQ7vFg33nTfy9S Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-22 at 11:47, Herv=E9 Commowick - NewSports wrote: > >I've thought about adding checkpassword support for dovecot-auth > >actually. For now you could support auth binds with PAM and pam-ldap > >module. BTW. 1.0-test21 has passdb checkpassword support. Still need userdb though. > >No, at least not yet. It's pretty nice format, but for being named > >IMAPdir I think it should have been designed to be 100% IMAP-compatible. > > > >The problem is that with IMAPdir (and Maildir++) RENAME isn't atomic > >when it has to rename subfolders. Also renaming INBOX can be problematic > >to implement atomically (the INBOX must never be lost). > > > i don't understand as well, i'll try to find document about that. It's not too bad, I just think the IMAPdir name is wrong in that case :) > >Pretty much the only way to do this with UNIX would be to use real > >directories to implement hierarchies rather than a special '.' separator > >in file/directory name. I wonder why Andreas didn't do this. > > =20 > > > IMAPdir use real directory to implement hierarchy, if i create a folder,=20 > it is created in IMAPdir directory like that : > IMAPdir > \_INBOX > \_TestFolder >=20 > so the IMAPdir use real directory and not special '.' separator... But when you create a folder under TestFolder? That's created as "TestFolder.SubFolder" in the root dir, not as "TestFolder/SubFolder". At least that's how bincimap.org web page explains it. --=-hKnd/nTQ7vFg33nTfy9S Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA1/VWyUhSUUBViskRAnRGAJ49OgqPuM8UkIlJeKD0nPCIxBUNywCgkqfe t3UEUshjTJ5ihcB2ItdKw6k= =jB0/ -----END PGP SIGNATURE----- --=-hKnd/nTQ7vFg33nTfy9S-- From hervec@sports.fr Tue Jun 22 12:30:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AD324C000D90; Tue, 22 Jun 2004 12:30:13 +0300 (EEST) Received: from mail2.sports.fr (host.26.9.23.62.rev.coltfrance.com [62.23.9.26]) by talvi.dovecot.org (Postfix) with ESMTP id 5FE55C000D8E for ; Tue, 22 Jun 2004 12:30:11 +0300 (EEST) Received: from host.146.247.23.62.rev.coltfrance.com ([62.23.247.146]:32934 helo=[172.16.16.183]) by mail2.sports.fr with asmtp (Exim 4.31 #1 (OpenNA Linux)) id 1BchTn-0008I5-A2; Tue, 22 Jun 2004 11:22:12 +0200 Message-ID: <40D7F9FC.5060400@sports.fr> Date: Tue, 22 Jun 2004 11:21:00 +0200 From: =?ISO-8859-15?Q?Herv=E9_Commowick_-_NewSports?= User-Agent: Mozilla Thunderbird 0.6 (X11/20040605) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen , dovecot@dovecot.org References: <40D24107.3000301@sports.fr> <1087523287.25522.77.camel@hurina> <40D7F214.5040704@sports.fr> <1087894870.18792.94.camel@hurina> In-Reply-To: <1087894870.18792.94.camel@hurina> X-SA-Do-Not-Run: Yes X-SA-Exim-Connect-IP: 62.23.247.146 X-SA-Exim-Mail-From: hervec@sports.fr Subject: Re: [Dovecot] LDAP Bind Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.61 (1.212.2.1-2003-12-09-exp) on mail2.sports.fr X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.61 X-SA-Exim-Version: 4.0 (built Sat, 10 Apr 2004 11:26:52 -0400) X-SA-Exim-Scanned: Yes (on mail2.sports.fr) Cc: X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 09:30:13 -0000 X-UID: 9617 Status: O Content-Length: 1811 Timo Sirainen wrote: >On Tue, 2004-06-22 at 11:47, Hervé Commowick - NewSports wrote: > > >>>I've thought about adding checkpassword support for dovecot-auth >>>actually. For now you could support auth binds with PAM and pam-ldap >>>module. >>> >>> > >BTW. 1.0-test21 has passdb checkpassword support. Still need userdb >though. > > > great. but checkpassword program does not split the userdb and the passdb so how it is implemented ? :) >>>No, at least not yet. It's pretty nice format, but for being named >>>IMAPdir I think it should have been designed to be 100% IMAP-compatible. >>> >>>The problem is that with IMAPdir (and Maildir++) RENAME isn't atomic >>>when it has to rename subfolders. Also renaming INBOX can be problematic >>>to implement atomically (the INBOX must never be lost). >>> >>> >>> >>i don't understand as well, i'll try to find document about that. >> >> > >It's not too bad, I just think the IMAPdir name is wrong in that case :) > > > i think so, ok. >>>Pretty much the only way to do this with UNIX would be to use real >>>directories to implement hierarchies rather than a special '.' separator >>>in file/directory name. I wonder why Andreas didn't do this. >>> >>> >>> >>> >>IMAPdir use real directory to implement hierarchy, if i create a folder, >>it is created in IMAPdir directory like that : >>IMAPdir >>\_INBOX >>\_TestFolder >> >>so the IMAPdir use real directory and not special '.' separator... >> >> > >But when you create a folder under TestFolder? That's created as >"TestFolder.SubFolder" in the root dir, not as "TestFolder/SubFolder". >At least that's how bincimap.org web page explains it. > > > that's right..... it's ridiculous, why use real directory for top level and '.' separator for the other .... thanks. Hervé From discussion-lists@linnet.org Tue Jun 22 12:35:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E115AC000D90; Tue, 22 Jun 2004 12:35:21 +0300 (EEST) Received: from puzzle.pobox.com (puzzle.pobox.com [207.8.214.3]) by talvi.dovecot.org (Postfix) with ESMTP id AA414C000D8E for ; Tue, 22 Jun 2004 12:35:19 +0300 (EEST) Received: from localhost.localdomain (localhost [127.0.0.1]) by puzzle.pobox.com (Postfix) with ESMTP id 30942139095; Tue, 22 Jun 2004 05:27:11 -0400 (EDT) Received: from vaio.linnet.org (mk-ns500-1.uk.tiscali.com [212.74.112.53]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by puzzle.pobox.com (Postfix) with ESMTP id 69B00139077; Tue, 22 Jun 2004 05:27:10 -0400 (EDT) Received: from lists by vaio.linnet.org with local (Exim 4.30) id 1BchYi-000I49-44; Tue, 22 Jun 2004 10:27:16 +0100 Date: Tue, 22 Jun 2004 10:27:16 +0100 From: Brian Candler To: Herv? Commowick - NewSports Subject: Re: [Dovecot] LDAP Bind Message-ID: <20040622092715.GA69436@uk.tiscali.com> References: <40D24107.3000301@sports.fr> <1087523287.25522.77.camel@hurina> <40D7F214.5040704@sports.fr> <1087894870.18792.94.camel@hurina> <40D7F9FC.5060400@sports.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40D7F9FC.5060400@sports.fr> User-Agent: Mutt/1.4.1i Cc: Timo Sirainen , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 09:35:22 -0000 X-UID: 9618 Status: O On Tue, Jun 22, 2004 at 11:21:00AM +0200, Herv? Commowick - NewSports wrote: > that's right..... it's ridiculous, why use real directory for top level > and '.' separator for the other .... In courier-imap I think it's so that the quota file can be found when delivering directly to a folder. Maildir/ -- contains maildirsize (quota calculation info) Maildir/.foo -- contains maildirfolder (zero bytes) Maildir/.foo.bar -- contains maildirfolder (zero bytes) When you deliver to a Maildir, if you find a file 'maildirfolder' in it, then you move up to the parent directory to find the quota file. If it were arranged as Maildir/foo/bar then you would need to know that you'd have to go up *two* levels to find the quota file. Regards, Brian. From kiwi@oav.net Tue Jun 22 12:47:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D6BEDC000D94; Tue, 22 Jun 2004 12:47:32 +0300 (EEST) Received: from kaneda.oav.net (kaneda.oav.net [195.20.105.154]) by talvi.dovecot.org (Postfix) with ESMTP id B3070C000D8E for ; Tue, 22 Jun 2004 12:47:30 +0300 (EEST) Received: from localhost (localhost.oav.net [127.0.0.1]) by kaneda.oav.net (Postfix) with ESMTP id AA26E15228; Tue, 22 Jun 2004 11:39:30 +0200 (CEST) (envelope-from kiwi@oav.net) Received: from kaneda.oav.net ([127.0.0.1]) by localhost (kaneda.oav.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 94893-06-2; Tue, 22 Jun 2004 11:39:27 +0200 (CEST) Received: from [192.168.0.7] (kiwi.oav.net [82.225.248.92]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by kaneda.oav.net (Postfix) with ESMTP id 76B4A15227; Tue, 22 Jun 2004 11:39:26 +0200 (CEST) (envelope-from kiwi@oav.net) In-Reply-To: <20040621150459.10bcccb6.wmoran@potentialtech.com> References: <20040621140438.22803b07.wmoran@potentialtech.com> <3CAC08BE-C3B0-11D8-8017-000393CC2E90@iki.fi> <20040621150459.10bcccb6.wmoran@potentialtech.com> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: text/plain; charset=WINDOWS-1252; format=flowed Message-Id: <0D26A453-C430-11D8-807C-000A958871B8@oav.net> Content-Transfer-Encoding: quoted-printable From: Xavier Beaudouin Subject: Re: [Dovecot] Is Dovecot able to use PostgreSQL to store mailboxes? Date: Tue, 22 Jun 2004 11:39:26 +0200 To: Bill Moran X-Mailer: Apple Mail (2.618) X-Virus-Scanned: by amavisd-new at kaneda.oav.net X-Spam-Status: No, hits=0.0 tagged_above=-999.0 required=6.3 tests= X-Spam-Level: Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 09:47:33 -0000 X-UID: 9619 Status: O Content-Length: 1186 > Reliability is the reason for me. We already have acceptable=20 > performance. > I'm dealing with a client that provides IMAP services for multiple=20 > clients, and > we're concerned about what happens in the event of a server failure on=20= > the > machine with the HDDs. There's already RAID in place, but what if the=20= > mobo, > PS, controller ... etc fails. Allmost everybody has such requirements. > What I'd like to do is use Postgres with Slony to keep the IMAP=20 > folders on two > completely seperate machines in real-time. What about using Netapps (with snapmirrors or snapsync), then you'll=20 get a rock stable storage system... and available on all machines in=20 real-time :p With maildir and nfs you'll can get a very stable system... Using database (eg postgres) as storage system can be a good idea=20 (mostly when you'd like to search something), but when it get corrupted=20= or fragmented... then you'll have troubles.... This is my 0,02=80 ... :) /Savier -- Xavier Beaudouin - Unix System Administrator & Projects Leader. President of Kazar Organization : http://www.kazar.net/ Please visit http://caudium.net/, home of Caudium & Camas projects From lfarkas@bppiac.hu Tue Jun 22 13:48:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 452A6C000D90; Tue, 22 Jun 2004 13:48:13 +0300 (EEST) Received: from mx1.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by talvi.dovecot.org (Postfix) with ESMTP id D9BA7C000D8E for ; Tue, 22 Jun 2004 13:48:10 +0300 (EEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id 9199A16F8DC; Tue, 22 Jun 2004 12:40:11 +0200 (CEST) Received: from bppiac.hu (garfield.int.bppiac.hu [192.168.0.50]) by mx1.bppiac.hu (Postfix) with ESMTP id 80BD316F8DB for ; Tue, 22 Jun 2004 12:40:11 +0200 (CEST) Message-ID: <40D80C8F.5040801@bppiac.hu> Date: Tue, 22 Jun 2004 12:40:15 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot list Subject: Re: [Dovecot] 1.0-test21 References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 10:48:13 -0000 X-UID: 9620 Status: O Content-Length: 1773 Timo Sirainen wrote: > On 22.6.2004, at 01:18, Farkas Levente wrote: > >>> 0.99.10 indexes aren't too good, but I still find it a bit strange >>> that Cyrus takes something like 10x less load. I'd think most of it >>> has to do with maildir format itself, that it needs to rename files >>> when flags change, and Dovecot needsTimo Sirainen to resync the whole maildir >>> after each change in mailbox (and sometimes twice). >> >> >> why should have to resync? couldn't be possible to do one atomic >> rename and index update step without resync? > > > But to be interoperable with other maildir clients, Dovecot can't know > if someone else didn't do other changes within the same second. So it > has to resync everything. but if this is the real reason there can be a configuration option where the sysadm can state "we don't use other maildir clients". since most of the case that's the situation. and may be some resync can happend when something goes wrong. >> as I wrote about half a year the best solution would be a local >> delivery agent which can update the index files and spread the load to >> the arrival time instead of the mail read time. > > > That's also getting near. mbox already updates the mail index when > saving mails to it, I'll soon fix it to update cache file as well. I'll > do the same for maildir soon too. there will be a delivery agent which I can set for postfix and procmail to use when store mails? >>> I guess we'll need a IMAP-optimized format sometimes soon. >> >> >> than you've to write local delivery agent for many MTAs... > > > Not necessarily, it can be maildir-compatible for delivery :) that's would be amazing! -- Levente "Si vis pacem para bellum!" From lfarkas@bppiac.hu Tue Jun 22 13:51:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E52C9C000D93; Tue, 22 Jun 2004 13:51:24 +0300 (EEST) Received: from mx1.bppiac.hu (portal.bppiac.hu [212.24.171.194]) by talvi.dovecot.org (Postfix) with ESMTP id E7047C000D8E for ; Tue, 22 Jun 2004 13:51:22 +0300 (EEST) Received: from portal.bppiac.hu (localhost [127.0.0.1]) by portal.bppiac.hu (Postfix) with SMTP id C1D1D16F8DC; Tue, 22 Jun 2004 12:43:23 +0200 (CEST) Received: from bppiac.hu (garfield.int.bppiac.hu [192.168.0.50]) by mx1.bppiac.hu (Postfix) with ESMTP id AF55716F4AC for ; Tue, 22 Jun 2004 12:43:23 +0200 (CEST) Message-ID: <40D80D4F.4000307@bppiac.hu> Date: Tue, 22 Jun 2004 12:43:27 +0200 From: Farkas Levente User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dovecot list Subject: Re: [Dovecot] 1.0-test21 References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> <40D78EED.1020907@tacocat.net> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 10:51:25 -0000 X-UID: 9621 Status: O Timo Sirainen wrote: > On 22.6.2004, at 04:44, Tom Allison wrote: > >> That last statement is arguable. cyrus-imap has some nice >> capabilities. But if you use procmail then it's no contest who is >> going to win! >> ;) > > > I actually hate procmail. It's code mostly. It's horrible. what else can we use eg. to put a different folder the dovecot mailing list's mails. which have to work on the server side in order to be able to read by mozilla and webmail to? -- Levente "Si vis pacem para bellum!" From gmid-dovecot@m.gmane.org Tue Jun 22 13:53:38 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A6ADCC000D93; Tue, 22 Jun 2004 13:53:38 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id 970BDC000D8E for ; Tue, 22 Jun 2004 13:53:36 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BcimI-0002ca-00 for ; Tue, 22 Jun 2004 12:45:22 +0200 Received: from p5487c0d0.dip.t-dialin.net ([84.135.192.208]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 22 Jun 2004 12:45:22 +0200 Received: from matthias.andree by p5487c0d0.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 22 Jun 2004 12:45:22 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Tue, 22 Jun 2004 11:01:21 +0200 Lines: 14 Message-ID: References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: p5487c0d0.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:tw4EABDdT4ou4FXwIKoOPl3LH3E= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: 1.0-test21 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 10:53:38 -0000 X-UID: 9622 Status: O Timo Sirainen writes: > 0.99.10 indexes aren't too good, but I still find it a bit strange that > Cyrus takes something like 10x less load. I'd think most of it has to > do Load is the number of processes that are ready to run or running IIRC, hence, iowait contributes to the load without actually doing anything useful besides waiting for the hardware... -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From tallison@tacocat.net Tue Jun 22 14:01:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A887CC000D93; Tue, 22 Jun 2004 14:01:42 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id 626AEC000D8E for ; Tue, 22 Jun 2004 14:01:40 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id 46C2B4C083; Tue, 22 Jun 2004 06:53:40 -0400 (EDT) Message-ID: <40D80FB4.8080500@tacocat.net> Date: Tue, 22 Jun 2004 06:53:40 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Marcus Rueckert Subject: Re: [Dovecot] 1.0-test21 References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> <40D78EED.1020907@tacocat.net> <20040622015321.GA32337@monsters.rsn.uni-rostock.de> In-Reply-To: <20040622015321.GA32337@monsters.rsn.uni-rostock.de> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Farkas Levente , Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 11:01:42 -0000 X-UID: 9623 Status: O Marcus Rueckert wrote: > and about the mentioned procmail: you have sieve ... and i like the > syntax of it more than the one from procmail. thats why i use maildrop > atm. > > darix > True that about sieve. But I gave up on it as soon as I found out that I couldn't shell out. I run bogofilter as my spam filter and that's only run as a shell application. I guess maildrop can handle this as well, and it might look better than procmail, but sieve definitely cannot do this. The shell out capability also permits me to test things against email to get a better idea of what might be done to limit spam without losing email. I have never used maildrop, but I understand it can do this just as well. I'm not sure that there is anything that procmail can't do that maildrop can do and visa versa. From hervec@sports.fr Tue Jun 22 14:02:33 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 808D4C000DC3; Tue, 22 Jun 2004 14:02:33 +0300 (EEST) Received: from mail2.sports.fr (host.26.9.23.62.rev.coltfrance.com [62.23.9.26]) by talvi.dovecot.org (Postfix) with ESMTP id 43A4AC000D9C for ; Tue, 22 Jun 2004 14:02:27 +0300 (EEST) Received: from host.146.247.23.62.rev.coltfrance.com ([62.23.247.146]:32989 helo=[172.16.16.183]) by mail2.sports.fr with asmtp (Exim 4.31 #1 (OpenNA Linux)) id 1Bciv5-00077w-9Y for ; Tue, 22 Jun 2004 12:54:28 +0200 Message-ID: <40D80F9A.6050704@sports.fr> Date: Tue, 22 Jun 2004 12:53:14 +0200 From: =?ISO-8859-1?Q?Herv=E9_Commowick_-_NewSports?= User-Agent: Mozilla Thunderbird 0.6 (X11/20040605) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> <40D78EED.1020907@tacocat.net> <40D80D4F.4000307@bppiac.hu> In-Reply-To: <40D80D4F.4000307@bppiac.hu> X-SA-Do-Not-Run: Yes X-SA-Exim-Connect-IP: 62.23.247.146 X-SA-Exim-Mail-From: hervec@sports.fr Subject: Re: [Dovecot] 1.0-test21 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.61 (1.212.2.1-2003-12-09-exp) on mail2.sports.fr X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.61 X-SA-Exim-Version: 4.0 (built Sat, 10 Apr 2004 11:26:52 -0400) X-SA-Exim-Scanned: Yes (on mail2.sports.fr) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 11:02:33 -0000 X-UID: 9624 Status: O Farkas Levente wrote: > Timo Sirainen wrote: > >> On 22.6.2004, at 04:44, Tom Allison wrote: >> >>> That last statement is arguable. cyrus-imap has some nice >>> capabilities. But if you use procmail then it's no contest who is >>> going to win! >>> ;) >> >> >> >> I actually hate procmail. It's code mostly. It's horrible. > > > what else can we use eg. to put a different folder the dovecot mailing > list's mails. which have to work on the server side in order to be > able to read by mozilla and webmail to? > my mail is sort by exim with exim filter language and put in directory i want, it is more powerful than procmail Hervé. From tallison@tacocat.net Tue Jun 22 14:15:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8E2DBC000D90; Tue, 22 Jun 2004 14:15:31 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id 3FA30C000D8E for ; Tue, 22 Jun 2004 14:15:29 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id 930104C083; Tue, 22 Jun 2004 07:07:29 -0400 (EDT) Message-ID: <40D812F1.5030203@tacocat.net> Date: Tue, 22 Jun 2004 07:07:29 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test21 References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <20040621184517.GB29410@widecut.net> <7C52ADE4-C3F6-11D8-8017-000393CC2E90@iki.fi> In-Reply-To: <7C52ADE4-C3F6-11D8-8017-000393CC2E90@iki.fi> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Moe Wibble , Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 11:15:31 -0000 X-UID: 9625 Status: O Content-Length: 1847 Timo Sirainen wrote: > On 21.6.2004, at 21:45, Moe Wibble wrote: > >>> I recently saw some benchmarks (measuring system load) comparing >>> Dovecot mbox, maildir and Cyrus. Dovecot was much slower than I >>> thought, Cyrus was many times faster in most tests. Dovecot with mbox >>> was also much faster than with maildir, even though my 0.99.10 mbox >>> code is pretty bad. >> >> >> Strange... I'd think that rewriting the mbox files would cause a lot >> more performance issues than shuffling around files in a Maildir. > > > They probably were using mboxes that had already all the necessay X-UID > etc. fields, so rewriting wouldn't need to do more than really required. > >>> 0.99.10 indexes aren't too good, but I still find it a bit strange that >>> Cyrus takes something like 10x less load. I'd think most of it has to >>> do with maildir format itself, that it needs to rename files when flags >>> change, and Dovecot needs to resync the whole maildir after each change >>> in mailbox (and sometimes twice). >> >> >> I haven't tested dovecot in a high load (multiuser) environment yet >> so I can't say much about the actual load in such a situation. >> But once the indexes are made (and don't break) what's really >> left to cause (unjustified) load? > > > With maildir the problem is that once it's modified by Dovecot, I can't > know if someone else didn't modify it at the same time. So after I > change anything it, I'll have to resync the whole maildir again, just in > case. > I get to ask a dumb question: Can you put a filelock on the mail files while you are handling them to ensure that no one else is messing with them? I guess the question is then, if you have N emails in folder, then how do you ensure that the other N-1 emails didn't get messed with, or that there aren't now N+m emails in the maildir... From tallison@tacocat.net Tue Jun 22 14:18:10 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4C562C000D90; Tue, 22 Jun 2004 14:18:10 +0300 (EEST) Received: from cling.tacocat.net (cpe-069-133-095-206.twmi.rr.com [69.133.95.206]) by talvi.dovecot.org (Postfix) with ESMTP id CE401C000D8E for ; Tue, 22 Jun 2004 14:18:05 +0300 (EEST) Received: from tacocat.net (loki.tacocat.net [192.168.1.10]) by cling.tacocat.net (Postfix) with ESMTP id 3E38F4C083; Tue, 22 Jun 2004 07:10:06 -0400 (EDT) Message-ID: <40D8138E.4040100@tacocat.net> Date: Tue, 22 Jun 2004 07:10:06 -0400 From: Tom Allison User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.2) Gecko/20040220 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Farkas Levente Subject: Re: [Dovecot] 1.0-test21 References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> <40D78EED.1020907@tacocat.net> <40D80D4F.4000307@bppiac.hu> In-Reply-To: <40D80D4F.4000307@bppiac.hu> X-Enigmail-Version: 0.76.8.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 11:18:11 -0000 X-UID: 9626 Status: O Farkas Levente wrote: > Timo Sirainen wrote: > >> On 22.6.2004, at 04:44, Tom Allison wrote: >> >>> That last statement is arguable. cyrus-imap has some nice >>> capabilities. But if you use procmail then it's no contest who is >>> going to win! >>> ;) >> >> >> >> I actually hate procmail. It's code mostly. It's horrible. > > > what else can we use eg. to put a different folder the dovecot mailing > list's mails. which have to work on the server side in order to be able > to read by mozilla and webmail to? > maildrop, from courier From maikel@ladot.com Tue Jun 22 14:32:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B9E97C000D90; Tue, 22 Jun 2004 14:32:28 +0300 (EEST) Received: from amsfep18-int.chello.nl (amsfep18-int.chello.nl [213.46.243.13]) by talvi.dovecot.org (Postfix) with ESMTP id A955AC000D8E for ; Tue, 22 Jun 2004 14:32:26 +0300 (EEST) Received: from myst.dohd.org ([62.163.181.64]) by amsfep18-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040622112426.UTVX25344.amsfep18-int.chello.nl@myst.dohd.org> for ; Tue, 22 Jun 2004 13:24:26 +0200 Received: from [172.31.4.9] (pool-5.ladot.com [217.22.64.98]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i5MBPatn010772 for ; Tue, 22 Jun 2004 13:25:41 +0200 (CEST) (envelope-from maikel@ladot.com) Mime-Version: 1.0 (Apple Message framework v618) In-Reply-To: <0D26A453-C430-11D8-807C-000A958871B8@oav.net> References: <20040621140438.22803b07.wmoran@potentialtech.com> <3CAC08BE-C3B0-11D8-8017-000393CC2E90@iki.fi> <20040621150459.10bcccb6.wmoran@potentialtech.com> <0D26A453-C430-11D8-807C-000A958871B8@oav.net> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] Is Dovecot able to use PostgreSQL to store mailboxes? Date: Tue, 22 Jun 2004 13:24:15 +0200 To: Dovecot list X-Mailer: Apple Mail (2.618) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 11:32:28 -0000 X-UID: 9627 Status: O On Jun 22, 2004, at 11:39 AM, Xavier Beaudouin wrote: > With maildir and nfs you'll can get a very stable system... We are running with maildir + nfs now, and for a larger (200gb) mailstore over NFS we run into performance issues with maildir (lots of small files). Smaller partitions might do the trick, but we didn't investigate yet. Furthermore: dovecot and nfs aren't playing nice yet, although the new dovecot-1.0-test releases look promising :) > Using database (eg postgres) as storage system can be a good idea > (mostly when you'd like to search something), but when it get > corrupted or fragmented... then you'll have troubles.... Same goes for plain filesystems. > /Savier Kind regards, Maikel Verheijen. From mstan@asesoft.ro Tue Jun 22 14:37:59 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D83C1C000D93; Tue, 22 Jun 2004 14:37:59 +0300 (EEST) Received: from www.net-xt.com (www.asesoft.ro [194.102.96.11]) by talvi.dovecot.org (Postfix) with ESMTP id C19E1C000D90 for ; Tue, 22 Jun 2004 14:37:57 +0300 (EEST) Received: from [192.168.96.20] (helo=[192.168.96.20]) by www.net-xt.com with asmtp (TLSv1:RC4-MD5:128) (Exim 4.30) id 1BckFd-0002TN-2R for dovecot@dovecot.org; Tue, 22 Jun 2004 14:19:45 +0200 Message-ID: <40D8186B.1080902@asesoft.ro> Date: Tue, 22 Jun 2004 14:30:51 +0300 From: Marius Stan User-Agent: Mozilla Thunderbird 0.7 (Windows/20040616) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.2 (/) X-Spam-Report: Spam detection software, running on the system "www.net-xt.com", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or block similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hello, I'm seeing that our favourite pop3 server only deletes the messages upon logoff: dele 1 +OK Marked to be deleted. quit +OK Logging out, messages deleted. Connection closed by foreign host. [...] Content analysis details: (0.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.2 AWL AWL: Auto-whitelist adjustment Subject: [Dovecot] Delete message X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 11:38:00 -0000 X-UID: 9628 Status: O Hello, I'm seeing that our favourite pop3 server only deletes the messages upon logoff: dele 1 +OK Marked to be deleted. quit +OK Logging out, messages deleted. Connection closed by foreign host. This is causing me some trouble with a certain webmail app. Is there a way I can instruct Dovecot to immediatelly delete a message ? 10x, Marius From olive@pasteur.fr Tue Jun 22 14:49:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DBEFEC000D93; Tue, 22 Jun 2004 14:49:47 +0300 (EEST) Received: from munster.sis.pasteur.fr (munster.sis.pasteur.fr [157.99.64.99]) by talvi.dovecot.org (Postfix) with ESMTP id E0C9CC000D90 for ; Tue, 22 Jun 2004 14:49:45 +0300 (EEST) Received: from localhost (localhost.sis.pasteur.fr [127.0.0.1]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 8F52011474 for ; Tue, 22 Jun 2004 13:41:46 +0200 (CEST) Received: from mafate.sis.pasteur.fr (mafate.sis.pasteur.fr [157.99.64.42]) by munster.sis.pasteur.fr (Postfix) with ESMTP id 5771911473 for ; Tue, 22 Jun 2004 13:41:46 +0200 (CEST) Received: by mafate.sis.pasteur.fr (Postfix, from userid 3494) id 2E0123F641; Tue, 22 Jun 2004 13:41:46 +0200 (CEST) Date: Tue, 22 Jun 2004 13:41:46 +0200 From: Olivier Tharan To: dovecot@dovecot.org Subject: Re: [Dovecot] Delete message Message-ID: <20040622114146.GJ86367@mafate.sis.pasteur.fr> Mail-Followup-To: dovecot@dovecot.org References: <40D8186B.1080902@asesoft.ro> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40D8186B.1080902@asesoft.ro> X-message-flag: Outlook: spreading viruses since 1997! http://www.rodos.net/outlook/ X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 11:49:48 -0000 X-UID: 9629 Status: O * Marius Stan (20040622 14:30): > I'm seeing that our favourite pop3 server only deletes the messages upon > logoff: This is how POP3 is supposed to work. > This is causing me some trouble with a certain webmail app. Is there a > way I can instruct Dovecot to immediatelly delete a message ? Use IMAP with your webmail app. -- olive From tss@iki.fi Tue Jun 22 15:17:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5D7A7C000D8E; Tue, 22 Jun 2004 15:17:05 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 5AD14C000987 for ; Tue, 22 Jun 2004 15:17:03 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 41B3D1C350E4; Tue, 22 Jun 2004 15:09:04 +0300 (EEST) Received: from [192.168.200.100] (kone5.procontrol.vip.fi [212.149.71.166]) by danu.procontrol.fi (Postfix) with ESMTP id 716D01C350E2; Tue, 22 Jun 2004 15:08:30 +0300 (EEST) In-Reply-To: <40D7F9FC.5060400@sports.fr> References: <40D24107.3000301@sports.fr> <1087523287.25522.77.camel@hurina> <40D7F214.5040704@sports.fr> <1087894870.18792.94.camel@hurina> <40D7F9FC.5060400@sports.fr> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-56-77243460" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] LDAP Bind Date: Tue, 22 Jun 2004 15:08:29 +0300 To: =?ISO-8859-1?Q?Herv=E9_Commowick_-_NewSports?= X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.9 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 12:17:05 -0000 X-UID: 9630 Status: O Content-Length: 1077 --Apple-Mail-56-77243460 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=ISO-8859-1; format=flowed On 22.6.2004, at 12:21, Herv=E9 Commowick - NewSports wrote: >> BTW. 1.0-test21 has passdb checkpassword support. Still need userdb >> though. >> >> > great. but checkpassword program does not split the userdb and the=20 > passdb so how it is implemented ? :) That's exactly why userdb isn't implemented yet, because currently=20 Dovecot requires that they work separately. The checkpassword passdb=20 would have to store the returned user info so userdb lookup could later=20= get it. --Apple-Mail-56-77243460 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA2CE9yUhSUUBViskRAm8IAJ945Yc/a456lSLfu1V6EEybsqDWyQCeKV1R wXpxJhAFt58oNfKcXWpl77c= =MxVp -----END PGP SIGNATURE----- --Apple-Mail-56-77243460-- From tss@iki.fi Tue Jun 22 15:24:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C38FDC000D90; Tue, 22 Jun 2004 15:24:50 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id C44A1C000D8E for ; Tue, 22 Jun 2004 15:24:48 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id AA5011C350E6; Tue, 22 Jun 2004 15:16:49 +0300 (EEST) Received: from [192.168.200.100] (kone5.procontrol.vip.fi [212.149.71.166]) by danu.procontrol.fi (Postfix) with ESMTP id C60071C350E4; Tue, 22 Jun 2004 15:16:15 +0300 (EEST) In-Reply-To: <40D80C8F.5040801@bppiac.hu> References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> <40D80C8F.5040801@bppiac.hu> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-57-77708044" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test21 Date: Tue, 22 Jun 2004 15:16:14 +0300 To: Farkas Levente X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.9 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 12:24:50 -0000 X-UID: 9631 Status: O Content-Length: 1707 --Apple-Mail-57-77708044 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.6.2004, at 13:40, Farkas Levente wrote: >> But to be interoperable with other maildir clients, Dovecot can't >> know if someone else didn't do other changes within the same second. >> So it has to resync everything. > > but if this is the real reason there can be a configuration option > where the sysadm can state "we don't use other maildir clients". since > most of the case that's the situation. and may be some resync can > happend when something goes wrong. Yes, maybe.. Another problem is if indexes can't be used/updated for some reason (eg. user is out of quota) then the other Dovecots are "other maildir clients". >>> as I wrote about half a year the best solution would be a local >>> delivery agent which can update the index files and spread the load >>> to the arrival time instead of the mail read time. >> That's also getting near. mbox already updates the mail index when >> saving mails to it, I'll soon fix it to update cache file as well. >> I'll do the same for maildir soon too. > > there will be a delivery agent which I can set for postfix and > procmail to use when store mails? Yep. --Apple-Mail-57-77708044 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA2CMOyUhSUUBViskRAhxcAJ0a6JRkwtaWYnSPdbp5MfqXqqjfiACffZzG 4Ay0O2mFRGncJXLsoZeaAFU= =Ul/h -----END PGP SIGNATURE----- --Apple-Mail-57-77708044-- From tss@iki.fi Tue Jun 22 15:33:04 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 505FEC000D90; Tue, 22 Jun 2004 15:33:04 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 6DEA8C000D8E for ; Tue, 22 Jun 2004 15:33:02 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 434891C350E7; Tue, 22 Jun 2004 15:25:03 +0300 (EEST) Received: from [192.168.200.100] (kone5.procontrol.vip.fi [212.149.71.166]) by danu.procontrol.fi (Postfix) with ESMTP id 6B3161C350E4; Tue, 22 Jun 2004 15:24:29 +0300 (EEST) In-Reply-To: <40D80D4F.4000307@bppiac.hu> References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> <40D78EED.1020907@tacocat.net> <40D80D4F.4000307@bppiac.hu> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-58-78201924" Message-Id: <1AD01F58-C447-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test21 Date: Tue, 22 Jun 2004 15:24:27 +0300 To: Farkas Levente X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.0 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 12:33:04 -0000 X-UID: 9632 Status: O Content-Length: 1083 --Apple-Mail-58-78201924 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.6.2004, at 13:43, Farkas Levente wrote: >> I actually hate procmail. It's code mostly. It's horrible. > > what else can we use eg. to put a different folder the dovecot mailing > list's mails. which have to work on the server side in order to be > able to read by mozilla and webmail to? Well, I'm still using procmail myself because I've been too lazy to try out others.. But mvmf looks pretty nice, and since it's author is on this list too maybe he'd like to get it support Dovecot directly :) --Apple-Mail-58-78201924 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA2CT8yUhSUUBViskRAqbOAJ93nEygd3dc1BTqfE0VZhikCAhoJgCfSjgP aDHUmJCctRD7HgSd9evajd8= =7Ne4 -----END PGP SIGNATURE----- --Apple-Mail-58-78201924-- From tss@iki.fi Tue Jun 22 15:39:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2FAC0C000D90; Tue, 22 Jun 2004 15:39:07 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 41BA5C000D8E for ; Tue, 22 Jun 2004 15:39:05 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 1BBE11C350E7; Tue, 22 Jun 2004 15:31:06 +0300 (EEST) Received: from [192.168.200.100] (kone5.procontrol.vip.fi [212.149.71.166]) by danu.procontrol.fi (Postfix) with ESMTP id 460D91C1D0E0; Tue, 22 Jun 2004 15:30:32 +0300 (EEST) In-Reply-To: References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-59-78564946" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Re: 1.0-test21 Date: Tue, 22 Jun 2004 15:30:30 +0300 To: Matthias Andree X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 12:39:07 -0000 X-UID: 9633 Status: O Content-Length: 1169 --Apple-Mail-59-78564946 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.6.2004, at 12:01, Matthias Andree wrote: > Timo Sirainen writes: > >> 0.99.10 indexes aren't too good, but I still find it a bit strange >> that >> Cyrus takes something like 10x less load. I'd think most of it has to >> do > > Load is the number of processes that are ready to run or running IIRC, > hence, iowait contributes to the load without actually doing anything > useful besides waiting for the hardware... Yes, but I/O wait is exactly where the problem is. Your mails aren't coming any faster with 0.1% CPU load than with 99% CPU load if I/O is the bottleneck. --Apple-Mail-59-78564946 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA2CZnyUhSUUBViskRAnLeAJ449o0YbZOR+wKOzubT7WPiPnKcBQCeNpGz XJoeBCmQJtRCDvmBsS4SZKk= =rhR7 -----END PGP SIGNATURE----- --Apple-Mail-59-78564946-- From tss@iki.fi Tue Jun 22 15:43:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A37F6C000D9C; Tue, 22 Jun 2004 15:43:43 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B4DFDC000D90 for ; Tue, 22 Jun 2004 15:43:41 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 8BBB91C350E7; Tue, 22 Jun 2004 15:35:42 +0300 (EEST) Received: from [192.168.200.100] (kone5.procontrol.vip.fi [212.149.71.166]) by danu.procontrol.fi (Postfix) with ESMTP id BA6A11C350E4; Tue, 22 Jun 2004 15:35:08 +0300 (EEST) In-Reply-To: <40D812F1.5030203@tacocat.net> References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <20040621184517.GB29410@widecut.net> <7C52ADE4-C3F6-11D8-8017-000393CC2E90@iki.fi> <40D812F1.5030203@tacocat.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-60-78840473" Message-Id: <976B1A14-C448-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test21 Date: Tue, 22 Jun 2004 15:35:06 +0300 To: Tom Allison X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Moe Wibble , Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 12:43:43 -0000 X-UID: 9634 Status: O Content-Length: 1126 --Apple-Mail-60-78840473 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.6.2004, at 14:07, Tom Allison wrote: > I get to ask a dumb question: > Can you put a filelock on the mail files while you are handling them > to ensure that no one else is messing with them? mbox locks the mailbox when reading/writing, maildir doesn't. > I guess the question is then, if you have N emails in folder, then how > do you ensure that the other N-1 emails didn't get messed with, or > that there aren't now N+m emails in the maildir... With maildir there's no locks, so mails can come and go anytime. Dovecot handles it well. --Apple-Mail-60-78840473 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA2Cd6yUhSUUBViskRAn32AJ4xnkqFqZ/KK8dgj/+HA9J2s8tJOQCfXgcy FevT639XuSX9V0JVkF+kfvk= =33qn -----END PGP SIGNATURE----- --Apple-Mail-60-78840473-- From t1lt@bk.ru Tue Jun 22 15:49:17 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8FDCAC000DC0; Tue, 22 Jun 2004 15:49:17 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 2EC19C000D9C for ; Tue, 22 Jun 2004 15:49:15 +0300 (EEST) Received: (qmail 3748 invoked by uid 1000); 22 Jun 2004 12:41:15 -0000 Date: Tue, 22 Jun 2004 14:41:15 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test21 Message-ID: <20040622124115.GC30818@widecut.net> Mail-Followup-To: Moe Wibble , Dovecot list References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> <40D75EBD.4080605@bppiac.hu> <40D78EED.1020907@tacocat.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40D78EED.1020907@tacocat.net> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 12:49:17 -0000 X-UID: 9635 Status: O Content-Length: 1706 On Mon, Jun 21, 2004 at 09:44:13PM -0400, Tom Allison wrote: > Farkas Levente wrote: > >Timo Sirainen wrote: > > > >>I recently saw some benchmarks (measuring system load) comparing > >>Dovecot mbox, maildir and Cyrus. Dovecot was much slower than I > >>thought, Cyrus was many times faster in most tests. Dovecot with mbox > >>was also much faster than with maildir, even though my 0.99.10 mbox > >>code is pretty bad. > > > > > >IMHO the performace issue and mainly the system load peeks are very > >important! > >what's more if cyrus faster than dovecotm, than it's hard to argue for > >dovecot (since cyrus is more feature rich). > > > > That last statement is arguable. cyrus-imap has some nice capabilities. > But if you use procmail then it's no contest who is going to win! > ;) Agreed. And that sieve stuff is pretty disgusting configwise, too. > But I seem to remember that their indexes had an achilles heal. If you > (re)moved an email file via filesystem then the indexes were badly > corrupted and there was little you could do with that mail directory > again. I don't think that this is proper behaviour for imap servers > under a unix environment. Agreed again. Robustness was obviously not a design goal. > That said, I suspect that cyrus used their indexes as a means of > providing some rudimentary search results for a give key and an array of > file inodes for the correlating email messages in maildir. This would > store the locations in the file inode table, making for a nice speedy > access of files. Hence, the removal of a file would corrupt their inode > lookup table... I felt more comfortable w/ my cyrus setup _before_ you told me that. *gulp* From gth@cs.sfasu.edu Tue Jun 22 18:01:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8B444C000D93; Tue, 22 Jun 2004 18:01:22 +0300 (EEST) Received: from cs.sfasu.edu (cs.sfasu.edu [144.96.100.252]) by talvi.dovecot.org (Postfix) with ESMTP id CF5E6C000D90 for ; Tue, 22 Jun 2004 18:01:19 +0300 (EEST) Received: from cs.sfasu.edu (unknown [144.96.100.163]) by cs.sfasu.edu (Postfix) with ESMTP id CC5F41EC421 for ; Tue, 22 Jun 2004 09:53:19 -0500 (CDT) Message-ID: <40D847DF.3090704@cs.sfasu.edu> Date: Tue, 22 Jun 2004 09:53:19 -0500 From: "Greg T. Harber" Organization: Department of Computer Science User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.83.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Compile error X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 15:01:22 -0000 X-UID: 9636 Status: O Content-Length: 3032 On dovecot-1.0-test21: gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I../../src/lib-auth -DPKG_RUNDIR=\""/usr/local/var/run/dovecot"\" -DSBINDIR=\""/usr/local/sbin"\" -I/usr/local/include -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c ssl-proxy-gnutls.c ssl-proxy-gnutls.c:11:2: #error broken currently ssl-proxy-gnutls.c:310: error: conflicting types for `ssl_proxy_new' ssl-proxy.h:12: error: previous declaration of `ssl_proxy_new' ssl-proxy-gnutls.c: In function `ssl_proxy_new': ssl-proxy-gnutls.c:319: warning: passing arg 2 of `gnutls_transport_set_ptr' makes pointer from integer without a cast ssl-proxy-gnutls.c: In function `read_dh_parameters': ssl-proxy-gnutls.c:417: warning: `gnutls_dh_params_set' is deprecated (declared at /usr/local/include/gnutls/compat8.h:82) ssl-proxy-gnutls.c: In function `read_rsa_parameters': ssl-proxy-gnutls.c:443: warning: `gnutls_rsa_params_set' is deprecated (declared at /usr/local/include/gnutls/compat8.h:77) make[3]: *** [ssl-proxy-gnutls.o] Error 1 On dovecot-0.99.10.6: gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -DPKG_RUNDIR=\""/usr/local/var/run/dovecot"\" -DSBINDIR=\""/usr/local/sbin"\" -I/usr/local/include -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -c ssl-proxy-gnutls.c ssl-proxy-gnutls.c: In function `ssl_handshake': ssl-proxy-gnutls.c:280: warning: implicit declaration of function `gnutls_handshake_get_direction' ssl-proxy-gnutls.c: In function `initialize_state': ssl-proxy-gnutls.c:302: warning: implicit declaration of function `gnutls_cert_type_set_priority' ssl-proxy-gnutls.c: In function `ssl_proxy_new': ssl-proxy-gnutls.c:318: warning: passing arg 2 of `gnutls_transport_set_ptr' makes pointer from integer without a cast ssl-proxy-gnutls.c: In function `read_dh_parameters': ssl-proxy-gnutls.c:416: warning: `gnutls_dh_params_set' is deprecated (declared at /usr/local/include/gnutls/compat8.h:82) ssl-proxy-gnutls.c: In function `read_rsa_parameters': ssl-proxy-gnutls.c:442: warning: `gnutls_rsa_params_set' is deprecated (declared at /usr/local/include/gnutls/compat8.h:77) ssl-proxy-gnutls.c: In function `ssl_proxy_init': ssl-proxy-gnutls.c:508: warning: implicit declaration of function `gnutls_certificate_allocate_cred' ssl-proxy-gnutls.c:520: error: void value not ignored as it ought to be ssl-proxy-gnutls.c:523: error: void value not ignored as it ought to be ssl-proxy-gnutls.c: In function `ssl_proxy_deinit': ssl-proxy-gnutls.c:545: warning: implicit declaration of function `gnutls_certificate_free_cred' make[3]: *** [ssl-proxy-gnutls.o] Error 1 Environment: Solaris 8 (2.8) gnutls 1.0.13 gcc -v Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.3/specs Configured with: ../configure --disable-nls --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld Thread model: posix gcc version 3.3 Process: # ./configure # make From gth@cs.sfasu.edu Tue Jun 22 18:57:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 583FBC000D90; Tue, 22 Jun 2004 18:57:18 +0300 (EEST) Received: from cs.sfasu.edu (cs.sfasu.edu [144.96.100.252]) by talvi.dovecot.org (Postfix) with ESMTP id 4800EC000D8E for ; Tue, 22 Jun 2004 18:57:12 +0300 (EEST) Received: from cs.sfasu.edu (unknown [144.96.100.163]) by cs.sfasu.edu (Postfix) with ESMTP id 7C4121EC421 for ; Tue, 22 Jun 2004 10:49:11 -0500 (CDT) Message-ID: <40D854F7.2050502@cs.sfasu.edu> Date: Tue, 22 Jun 2004 10:49:11 -0500 From: "Greg T. Harber" Organization: Department of Computer Science User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org X-Enigmail-Version: 0.83.6.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [Dovecot] Update: Compile error X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 15:57:21 -0000 X-UID: 9637 Status: O Content-Length: 1316 Offending lines in src/login-common/ssl-proxy-gnutls.c 519 ret = gnutls_certificate_set_dh_params(x509_cred, dh_params); 520 if (ret < 0) 521 i_fatal("Can't set DH parameters: %s", gnutls_strerror(ret)); 522 ret = gnutls_certificate_set_rsa_params(x509_cred, rsa_params); 523 if (ret < 0) 524 i_fatal("Can't set RSA parameters: %s", gnutls_strerror(ret)); Problem: gnutls.h lists these two functions as returning void Solution: remove the ret and the check code Compilation continue but link fails: Undefined first referenced symbol in file gnutls_cert_type_set_priority ../login-common/liblogin-common.a(ssl-proxy-gnutls.o) gnutls_certificate_allocate_cred ../login-common/liblogin-common.a(ssl-proxy-gnutls.o) gnutls_certificate_free_cred ../login-common/liblogin-common.a(ssl-proxy-gnutls.o) gnutls_handshake_get_direction ../login-common/liblogin-common.a(ssl-proxy-gnutls.o) Solution: Add #include "/usr/local/include/gnutls/compat4.h" to ssl-proxy-gnutls.c Successful compile afterwards. -- Greg T. Harber gth@cs.sfasu.edu Director, McGee Computing Laboratory 936 468-2508 Department of Computer Science P.O. Box 13063 Stephen F. Austin State University Nacogdoches, TX 75962 USA From tss@iki.fi Tue Jun 22 19:18:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D17FEC000D9C; Tue, 22 Jun 2004 19:18:34 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A7355C000D94 for ; Tue, 22 Jun 2004 19:18:32 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 2A8201C350E9; Tue, 22 Jun 2004 19:10:33 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 34F4D1C350E6; Tue, 22 Jun 2004 19:09:58 +0300 (EEST) In-Reply-To: <40D847DF.3090704@cs.sfasu.edu> References: <40D847DF.3090704@cs.sfasu.edu> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-67-91731869" Message-Id: <9B4A98D2-C466-11D8-8017-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Compile error Date: Tue, 22 Jun 2004 19:09:57 +0300 To: "Greg T. Harber" X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-7.6 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, RCVD_IN_ORBS,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 16:18:35 -0000 X-UID: 9638 Status: O --Apple-Mail-67-91731869 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.6.2004, at 17:53, Greg T. Harber wrote: > ssl-proxy-gnutls.c:11:2: #error broken currently .. > # ./configure Hmm. I think I should disable gnutls checking in configure completely until it's really fixed. I'm not sure if it works even though you got it to compile with compat4.h.. configure with --with-ssl=openssl --Apple-Mail-67-91731869 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA2FnWyUhSUUBViskRAk2LAKCaMUYJ1/1PU/qZIJh2g/w1U4oAFwCgjrso uWNoRs44X4rxYGEHIlrMnWY= =/Yxb -----END PGP SIGNATURE----- --Apple-Mail-67-91731869-- From jan@weitan.org Tue Jun 22 19:24:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id CB68AC000D8E; Tue, 22 Jun 2004 19:24:45 +0300 (EEST) Received: from weitan.org (unknown [80.190.204.99]) by talvi.dovecot.org (Postfix) with ESMTP id 0BD08C000987 for ; Tue, 22 Jun 2004 19:24:43 +0300 (EEST) Received: from weitan.org (localhost [127.0.0.1]) by weitan.org (Postfix) with ESMTP id 4CF897D466 for ; Tue, 22 Jun 2004 16:15:01 +0000 (UTC) Received: from 217.255.195.45 (SquirrelMail authenticated user jan); by weitan.org with HTTP; Tue, 22 Jun 2004 16:15:01 -0000 (UTC) Message-ID: <33933.217.255.195.45.1087920901.squirrel@217.255.195.45> In-Reply-To: <40D847DF.3090704@cs.sfasu.edu> References: <40D847DF.3090704@cs.sfasu.edu> Date: Tue, 22 Jun 2004 16:15:01 -0000 (UTC) Subject: Re: [Dovecot] Compile error From: jan@weitan.org To: dovecot@dovecot.org User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 16:24:45 -0000 X-UID: 9639 Status: O 5 minutes too slow... Gnutls is currently broken in 1.0 test version 21. It should compile against openssl: ./configure --with-ssl=openssl Btw. Jaldhars gnutls patch (porting from 7 to 10) is already included in test version 21, but Timo added support for a proxy which isn´t ready yet (missing functions), that´s why it doesn´t compile. > > Solaris 8 (2.8) > gnutls 1.0.13 > gcc -v > Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.3/specs > Configured with: ../configure --disable-nls --with-as=/usr/ccs/bin/as > --with-ld=/usr/ccs/bin/ld > Thread model: posix > gcc version 3.3 > > Process: > > # ./configure > # make > From mem@mv.mv.com Tue Jun 22 20:07:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 88388C000D90; Tue, 22 Jun 2004 20:07:43 +0300 (EEST) Received: from mv.mv.com (osmium.mv.net [199.125.85.152]) by talvi.dovecot.org (Postfix) with SMTP id 5EC8DC000D8E for ; Tue, 22 Jun 2004 20:07:40 +0300 (EEST) Received: (qmail 95265 invoked by uid 101); 22 Jun 2004 12:59:39 -0400 From: "Mark E. Mallett" Date: Tue, 22 Jun 2004 12:59:39 -0400 To: Timo Sirainen Subject: Re: [Dovecot] 1.0-test20 Message-ID: <20040622165939.GM93814@osmium.mv.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 17:07:43 -0000 X-UID: 9640 Status: O On Sun, Jun 20, 2004 at 08:30:20AM +0300, Timo Sirainen wrote: > > So, a Dovecot LDA would finally make sense now. Besides keeping indexes > updated, it could also ask user's home dir, uid and gid from > dovecot-auth. Now, that combined with postfix-dovecot-auth patch, > Dovecot would be very simple to install with Postfix :) Also, I would be interested in having other LDAs know how to update the indexes when filing messages. How hard would it be to provide an API of some sort, without any external/contextual dependencies, that could be used by an LDA when it stores a new message? mm From tss@iki.fi Tue Jun 22 20:24:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DD785C000D90; Tue, 22 Jun 2004 20:24:50 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id BBFB2C000D8E for ; Tue, 22 Jun 2004 20:24:48 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 29BC91C350E6; Tue, 22 Jun 2004 20:16:49 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 5587A1C350E2; Tue, 22 Jun 2004 20:16:14 +0300 (EEST) In-Reply-To: <20040622165939.GM93814@osmium.mv.net> References: <20040622165939.GM93814@osmium.mv.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-69-95707981" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test20 Date: Tue, 22 Jun 2004 20:16:13 +0300 To: "Mark E. Mallett" X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 17:24:51 -0000 X-UID: 9641 Status: O Content-Length: 1550 --Apple-Mail-69-95707981 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 22.6.2004, at 19:59, Mark E. Mallett wrote: > Also, I would be interested in having other LDAs know how to update the > indexes when filing messages. How hard would it be to provide an API > of > some sort, without any external/contextual dependencies, that could be > used by an LDA when it stores a new message? Using Dovecot's mail-storage.h API should work pretty well with 1.0-tests. mail_storage_create(), mailbox_open(), mailbox_transaction_create(), mailbox_save(), mailbox_transaction_commit() and there it is. Some of the settings are configured via environment variables which is kind of ugly, "grep getenv src/lib-storage/**/*.c" would show them.. Here's my earlier attempt at creating LDA, Dovecot's APIs have changed since so it doesn't compile anymore but it shows the needed initialization: http://dovecot.org/tmp/deliver.c dovecot-auth would also need to listen in some unix socket so you could do userdb lookups to it, which it doesn't yet. --Apple-Mail-69-95707981 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA2GleyUhSUUBViskRAs5hAJoDe9HwReaDfZyXjIpOJRRYwWzB6gCgjGvJ l74i0dpoSpmzFzynrd4BdHg= =hS8m -----END PGP SIGNATURE----- --Apple-Mail-69-95707981-- From t1lt@bk.ru Tue Jun 22 21:53:34 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9F0D2C000D9C; Tue, 22 Jun 2004 21:53:34 +0300 (EEST) Received: from sun.com (port-212-202-38-208.dynamic.qsc.de [212.202.38.208]) by talvi.dovecot.org (Postfix) with SMTP id 86D98C000D90 for ; Tue, 22 Jun 2004 21:53:30 +0300 (EEST) Received: (qmail 26366 invoked by uid 1000); 22 Jun 2004 18:45:30 -0000 Date: Tue, 22 Jun 2004 20:45:30 +0200 From: Moe Wibble To: Dovecot list Subject: Re: [Dovecot] 1.0-test21 Message-ID: <20040622184530.GA17674@widecut.net> Mail-Followup-To: Moe Wibble , Dovecot list References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 18:53:34 -0000 X-UID: 9642 Status: O On Mon, Jun 21, 2004 at 05:52:09PM +0300, Timo Sirainen wrote: > http://dovecot.org/test/ > > Should work again with maildir. > > - Some bugfixes to indexes (possibly fixing the still persisting > maildir sync errrors?) Sorry, problemos still present. In addition to what I've seen before... sp dovecot: IMAP(moe): Maildir /home/moe/Maildir sync: UID < next_uid (312 < 314, file = msg.CDs4:2,) ...I'm now getting these, too: sp dovecot: IMAP(moe): Corrupted index cache file /home/moe/Maildir/.INBOX/dovecot.index.cache: indexid changed Over all it feels like the index screws up even more often than with the previous version. That could be just coincidence or wrong perception, tho. From gmid-dovecot@m.gmane.org Tue Jun 22 21:53:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9945AC000D90; Tue, 22 Jun 2004 21:53:35 +0300 (EEST) Received: from main.gmane.org (main.gmane.org [80.91.224.249]) by talvi.dovecot.org (Postfix) with ESMTP id F1E32C000D94 for ; Tue, 22 Jun 2004 21:53:30 +0300 (EEST) Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1BcqGx-0005Ej-00 for ; Tue, 22 Jun 2004 20:45:31 +0200 Received: from p5487c0d0.dip.t-dialin.net ([84.135.192.208]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 22 Jun 2004 20:45:31 +0200 Received: from matthias.andree by p5487c0d0.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 22 Jun 2004 20:45:31 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: dovecot@dovecot.org From: Matthias Andree Date: Tue, 22 Jun 2004 17:22:21 +0200 Lines: 15 Message-ID: References: <929B4763-C392-11D8-8017-000393CC2E90@iki.fi> <20040621155646.GD15376@widecut.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: p5487c0d0.dip.t-dialin.net User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:otd+GcDEIH4GfWsPy18m8AR4wzY= X-Leafnode-NNTP-Posting-Host: local file or pipe Sender: news Subject: [Dovecot] Re: 1.0-test21 X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 18:53:36 -0000 X-UID: 9643 Status: O Timo Sirainen writes: > Yes, but I/O wait is exactly where the problem is. Your mails aren't > coming any faster with 0.1% CPU load than with 99% CPU load if I/O is > the bottleneck. I'm still waiting for the day when DJB has to admit that his hardware or OS has cheated on him enabling the write cache defeating f[data]sync() and that made qmail fast. I wonder if he ever did proper testing with unplugging his computer while the queue was full with local deliveries :-P -- Matthias Andree Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 From peter.schuller@infidyne.com Wed Jun 23 01:39:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 75340C000D8E; Wed, 23 Jun 2004 01:39:45 +0300 (EEST) Received: from mxfep01.bredband.com (mxfep01.bredband.com [195.54.107.70]) by talvi.dovecot.org (Postfix) with ESMTP id 1F3ABC000987 for ; Wed, 23 Jun 2004 01:39:40 +0300 (EEST) Received: from scode.mine.nu ([83.226.138.222] [83.226.138.222]) by mxfep01.bredband.com with ESMTP id <20040622223139.OEAI3131.mxfep01.bredband.com@scode.mine.nu>; Wed, 23 Jun 2004 00:31:39 +0200 Received: from localhost (localhost [127.0.0.1]) by scode.mine.nu (Postfix) with ESMTP id 474C7151353; Wed, 23 Jun 2004 00:37:35 +0200 (CEST) From: Peter Schuller To: dovecot@dovecot.org Subject: Re: [Dovecot] customflags considered a folder? Date: Wed, 23 Jun 2004 00:37:34 +0200 User-Agent: KMail/1.6 References: <200406202301.25217.peter.schuller@infidyne.com> <1427B8FA-C302-11D8-8017-000393CC2E90@iki.fi> <200406202349.43535.peter.schuller@infidyne.com> In-Reply-To: <200406202349.43535.peter.schuller@infidyne.com> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200406230037.34517.peter.schuller@infidyne.com> Cc: Timo Sirainen X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 22:39:46 -0000 X-UID: 9644 Status: O > > > How would I go about preventing this problem? > > > > Upgrade to 0.99.10.6. Actually, it seems this didn't solve it (unless the Deban package is broken? I haven't tried the FreeBSD port yet). Dovecot is upgraded and restarted. .customflags is removed, only to be recreated by dovecot and it still shows up as an IMAP folder. -- / Peter Schuller, InfiDyne Technologies HB PGP userID: 0xE9758B7D or 'Peter Schuller ' Key retrieval: Send an E-Mail to getpgpkey@scode.org E-Mail: peter.schuller@infidyne.com Web: http://www.scode.org From tss@iki.fi Wed Jun 23 06:05:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A4FEDC000987; Wed, 23 Jun 2004 06:05:45 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 13CC8C000987 for ; Wed, 23 Jun 2004 06:05:41 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 7E9481C350E6; Wed, 23 Jun 2004 05:57:40 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 934261C350E2; Wed, 23 Jun 2004 05:57:06 +0300 (EEST) In-Reply-To: <200406230037.34517.peter.schuller@infidyne.com> References: <200406202301.25217.peter.schuller@infidyne.com> <1427B8FA-C302-11D8-8017-000393CC2E90@iki.fi> <200406202349.43535.peter.schuller@infidyne.com> <200406230037.34517.peter.schuller@infidyne.com> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-2-130559277" Message-Id: <023BB8D6-C4C1-11D8-ADB4-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] customflags considered a folder? Date: Wed, 23 Jun 2004 05:57:05 +0300 To: Peter Schuller X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.1 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2004 03:05:46 -0000 X-UID: 9645 Status: O Content-Length: 1090 --Apple-Mail-2-130559277 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 23.6.2004, at 01:37, Peter Schuller wrote: >>>> How would I go about preventing this problem? >>> >>> Upgrade to 0.99.10.6. > > Actually, it seems this didn't solve it (unless the Deban package is > broken? I > haven't tried the FreeBSD port yet). Dovecot is upgraded and > restarted. .customflags is removed, only to be recreated by dovecot > and it > still shows up as an IMAP folder. Well, I did add code to check it, and it is working with me.. Maybe your IMAP client is caching the folder list locally? --Apple-Mail-2-130559277 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA2PGByUhSUUBViskRAl6XAKCUVcgNSOjz/kqeu0DR0k9mEbzP+wCcCRn7 EpsgXZtSNhVWuT6VzJnfjBw= =O0OR -----END PGP SIGNATURE----- --Apple-Mail-2-130559277-- From tss@iki.fi Wed Jun 23 09:25:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 17B25C000D8E; Wed, 23 Jun 2004 09:25:37 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 73AF4C000987 for ; Wed, 23 Jun 2004 09:25:34 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 8C9511C350E6; Wed, 23 Jun 2004 09:17:33 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 220751C350E2 for ; Wed, 23 Jun 2004 09:16:56 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-zH+mHMH0mfhy0YNRaUt6" Message-Id: <1087971391.6751.74.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 23 Jun 2004 09:16:32 +0300 X-Spam-Status: No, hits=-8.7 required=5.0 tests=AWL,BAYES_10,PGP_SIGNATURE_2,QUOTED_EMAIL_TEXT, RCVD_IN_ORBS,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] 1.0-test22 - maildir fixed? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2004 06:25:37 -0000 X-UID: 9646 Status: O Content-Length: 1359 --=-zH+mHMH0mfhy0YNRaUt6 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ Well, remember when I said: > Here you go, maildir syncing problems finally fixed (I hope). Well, > except there's this "new-dir-only syncing" optimization which I'm not > really sure if it works as it should. Just before I found the expunge bug in index, I was trying to fix the new-dir-only syncing because the code looked wrong. Then I figured out the indexing problem and thought maybe this one wasn't broken after all, and then forgot about it. Finally after lots of debugging, I came to same conclusion again. The code was wrong, and cause of the remaining "Maildir sync: UID < next_uid (312 < 3)" errors. So, please try and see if you still can break this release. Other changes include some crashfixes for cache file and fix for mbox which kept constantly rewriting headers for \recent messages if we had selected the mailbox as read-only (EXAMINE, STATUS). --=-zH+mHMH0mfhy0YNRaUt6 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA2SA/yUhSUUBViskRAnbWAJ9rrN2R9wmXiHGweDlNsyNWRYvoHACfa2pL UcRkidQ0YSPDzSW19Va6RUI= =Y9pU -----END PGP SIGNATURE----- --=-zH+mHMH0mfhy0YNRaUt6-- From tomi.hakala@clinet.fi Wed Jun 23 18:58:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 77BA5C000D8E; Wed, 23 Jun 2004 18:58:41 +0300 (EEST) Received: from smtp2.song.fi (smtp2.song.fi [194.100.2.122]) by talvi.dovecot.org (Postfix) with ESMTP id 99AF3C000987 for ; Wed, 23 Jun 2004 18:58:38 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by virusscanner.smtp2.song.fi (Postfix) with ESMTP id CB3B4A298D for ; Wed, 23 Jun 2004 18:50:36 +0300 (EEST) Received: from smtp2.song.fi ([127.0.0.1]) by localhost (smtp2 [127.0.0.1]) (anti-virus) with ESMTP id 22662-07 for ; Wed, 23 Jun 2004 18:50:36 +0300 (EEST) Received: from clinet.fi (denver.clinet.fi [194.100.200.66]) by smtp2.song.fi (Postfix) with ESMTP id 8865FA2984 for ; Wed, 23 Jun 2004 18:50:36 +0300 (EEST) Message-ID: <40D9A6CE.33BC71BB@clinet.fi> Date: Wed, 23 Jun 2004 18:50:38 +0300 From: Tomi Hakala X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? References: <1087971391.6751.74.camel@hurina> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2004 15:58:42 -0000 X-UID: 9647 Status: O Timo Sirainen wrote: > So, please try and see if you still can break this release. I have done some stress testing with Maildir, POP3 and IMAP today and this release looks very promising, UID errors are gone. I can see some timeouts of transaction log locks but those seem to be a pretty rare. If only Dovecot would support Qpopper X-UIDL header I'd replace Qpopper with Dovecot on my personal mail server rigth away :-) -- Tomi Hakala From Nico@neo-lan.net Wed Jun 23 19:05:08 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7ED8BC000DC2; Wed, 23 Jun 2004 19:05:08 +0300 (EEST) Received: from mailhost.curie.fr (burton1.curie.fr [193.49.205.23]) by talvi.dovecot.org (Postfix) with ESMTP id 3E7FEC000D93 for ; Wed, 23 Jun 2004 19:05:06 +0300 (EEST) Received: from smtp-in.curie.fr (localhost [127.0.0.1]) by mailhost.curie.fr/1 with ESMTP id i5NFv03J003078 ; Wed, 23 Jun 2004 17:57:00 +0200 (CEST) Received: from [10.10.11.73] (jpt-0115-6340.curie.fr [10.10.11.73]) by smtp-in.curie.fr with ESMTP id i5NFuwGa010871 ; Wed, 23 Jun 2004 17:56:59 +0200 (CEST) X-Client-Addr: 10.10.11.73 jpt-0115-6340.curie.fr (OK) X-Client-Sender: Nico@neo-lan.net Message-ID: <40D9A84A.4060207@neo-lan.net> Date: Wed, 23 Jun 2004 17:56:58 +0200 From: Nicolas STRANSKY User-Agent: Mozilla Thunderbird 0.7 (X11/20040615) X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Jaldhar H. Vyas" References: <40D55627.1030905@neo-lan.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org Subject: [Dovecot] Re: Debian dovecot news X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2004 16:05:08 -0000 X-UID: 9648 Status: O Jaldhar H. Vyas wrote: > On Sun, 20 Jun 2004, Nicolas STRANSKY wrote: > >>Have you got any advice on upgrading from 0.99 to 1.0-test on a sarge ? >>Any particular configuration options to change ? Is it safe to let the >>old indexes ? > > I was hoping you would tell me. ;-) I will, but with at least test22 :) -- Nico Nous nous consolons souvent par faiblesse des maux dont la raison n'a pas la force de nous consoler. -+- François de La Rochefoucauld (1613-1680), Maximes 325 -+- From tss@iki.fi Wed Jun 23 21:46:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7BD5BC000DC3; Wed, 23 Jun 2004 21:46:36 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 443ABC000DC0 for ; Wed, 23 Jun 2004 21:46:34 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 2B5E61C350E6; Wed, 23 Jun 2004 21:38:32 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 202431C350E2; Wed, 23 Jun 2004 21:37:57 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? From: Timo Sirainen To: Tomi Hakala In-Reply-To: <40D9A6CE.33BC71BB@clinet.fi> References: <1087971391.6751.74.camel@hurina> <40D9A6CE.33BC71BB@clinet.fi> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ofzu7l/v9WtKjOeMlZz9" Message-Id: <1088015876.6753.183.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 23 Jun 2004 21:37:56 +0300 X-Spam-Status: No, hits=-9.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2004 18:46:36 -0000 X-UID: 9649 Status: O Content-Length: 1353 --=-ofzu7l/v9WtKjOeMlZz9 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2004-06-23 at 18:50, Tomi Hakala wrote: > If only Dovecot would support Qpopper X-UIDL header I'd replace Qpopper > with Dovecot on my personal mail server rigth away :-) Well, I added most of the code required to do it, but then got a bit stuck at trying to save the X-UIDL into cache file. Normally we don't wait locks for cache file, if we didn't get it immediately we just don't update it. X-UIDL would be pretty much required to be stored in it to get reasonable performance, so we'd have to wait for the lock. But that's yet another thing to consider when making sure that deadlocks don't happen. I think I'll implement it at the same time I fix the already existing mbox deadlock bug. This change also makes it possible to replace pop3-uidl-uwimap.patch with a plugin. But overriding methods in struct mail is pretty difficult now, I'd have to figure out some easier way.. --=-ofzu7l/v9WtKjOeMlZz9 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA2c4EyUhSUUBViskRAlbKAJ9Dinyz7h+fSEV8kZafoOwRrogeBQCgn3jF SaQjP41C2u1FecN0fuUMyE4= =JrXO -----END PGP SIGNATURE----- --=-ofzu7l/v9WtKjOeMlZz9-- From jaldhar@debian.org Wed Jun 23 22:14:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 844C7C000D90; Wed, 23 Jun 2004 22:14:35 +0300 (EEST) Received: from mail.braincells.com (samadhi.braincells.com [216.162.42.100]) by talvi.dovecot.org (Postfix) with ESMTP id 408BAC000987 for ; Wed, 23 Jun 2004 22:14:33 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by mail.braincells.com (Postfix) with ESMTP id D1FE98047; Wed, 23 Jun 2004 15:06:29 -0400 (EDT) Received: from mail.braincells.com ([127.0.0.1]) by localhost (samadhi [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 00328-09; Wed, 23 Jun 2004 15:06:29 -0400 (EDT) Received: from [149.123.132.72] (unknown [149.123.132.72]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (No client certificate requested) by mail.braincells.com (Postfix) with ESMTP id 6EC578046; Wed, 23 Jun 2004 15:06:29 -0400 (EDT) Date: Wed, 23 Jun 2004 15:04:48 -0400 (EDT) From: "Jaldhar H. Vyas" X-X-Sender: jaldhar@diku.intranet.braincell.com To: Nicolas STRANSKY In-Reply-To: <40D9A84A.4060207@neo-lan.net> Message-ID: References: <40D55627.1030905@neo-lan.net> <40D9A84A.4060207@neo-lan.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new-20030616-p9 (Debian) at braincells.com Cc: dovecot@dovecot.org Subject: [Dovecot] Re: Debian dovecot news X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: "Jaldhar H. Vyas" List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2004 19:14:35 -0000 X-UID: 9650 Status: O On Wed, 23 Jun 2004, Nicolas STRANSKY wrote: > > I was hoping you would tell me. ;-) > > I will, but with at least test22 :) > Well here you are then: http://src.braincells.com/dovecot-test/ -- Jaldhar H. Vyas La Salle Debain - http://www.braincells.com/debian/ From Nicolas.Stransky@neo-lan.net Thu Jun 24 00:24:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id AD60DC000D90; Thu, 24 Jun 2004 00:24:45 +0300 (EEST) Received: from aster.neo-lan.net (aster.neo-lan.net [81.57.244.52]) by talvi.dovecot.org (Postfix) with ESMTP id 463F9C000987 for ; Thu, 24 Jun 2004 00:24:43 +0300 (EEST) Received: from aneto (aneto.local.lan [192.168.0.2]) by aster.neo-lan.net (Postfix) with ESMTP id 2F8042ACED; Wed, 23 Jun 2004 23:16:40 +0200 (CEST) Received: from localhost ([127.0.0.1]) by aneto with esmtp (Exim 4.34) id 1BdF6l-00017F-NQ; Wed, 23 Jun 2004 23:16:39 +0200 Message-ID: <40D9F337.4030100@neo-lan.net> Date: Wed, 23 Jun 2004 23:16:39 +0200 From: Nicolas STRANSKY Organization: N&O Lan User-Agent: Mozilla Thunderbird 0.7 (X11/20040615) X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Jaldhar H. Vyas" References: <40D55627.1030905@neo-lan.net> <40D9A84A.4060207@neo-lan.net> In-Reply-To: X-Enigmail-Version: 0.84.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org Subject: [Dovecot] Re: Debian dovecot news X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2004 21:24:45 -0000 X-UID: 9651 Status: O Le 06/23/2004 09:04 PM, Jaldhar H. Vyas a écrit : > On Wed, 23 Jun 2004, Nicolas STRANSKY wrote: > >>>I was hoping you would tell me. ;-) >> >>I will, but with at least test22 :) > > Well here you are then: > http://src.braincells.com/dovecot-test/ Well, it's impressive, great job Timo ! And thanks Jaldhar for the .debs. What can I say, It works right out of the box, and it's damn fast. I had no problem for the installation, just wiped out the old config file and replaced it with the new one, changed 3 params and that was it. Nothing less, nothing more, it took me 3 minutes to be the proud owner of a new dovecot 1.0-test22 server ;) And it's really fast, I tryed to stress it a little bit with 30.000 mails mboxes, erasing indexes, etc... There is no garbage in the logs. -- Nico La vérité est si obscurcie en ce temps, et le mensonge si établi, qu'à moins d'aimer la vérité, on ne saurait la reconnaître. -+- Blaise Pascal (1623-1662), Pensées XIV.864 -+- From peter.schuller@infidyne.com Thu Jun 24 00:47:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 4A2F8C000D93; Thu, 24 Jun 2004 00:47:13 +0300 (EEST) Received: from mxfep01.bredband.com (mxfep01.bredband.com [195.54.107.70]) by talvi.dovecot.org (Postfix) with ESMTP id 39589C000D90 for ; Thu, 24 Jun 2004 00:47:11 +0300 (EEST) Received: from scode.mine.nu ([83.226.138.222] [83.226.138.222]) by mxfep01.bredband.com with ESMTP id <20040623213908.VYME3131.mxfep01.bredband.com@scode.mine.nu>; Wed, 23 Jun 2004 23:39:08 +0200 Received: from localhost (localhost [127.0.0.1]) by scode.mine.nu (Postfix) with ESMTP id E5AB519D31E; Wed, 23 Jun 2004 23:45:03 +0200 (CEST) From: Peter Schuller To: dovecot@dovecot.org Subject: Re: [Dovecot] customflags considered a folder? Date: Wed, 23 Jun 2004 23:45:03 +0200 User-Agent: KMail/1.6 References: <200406202301.25217.peter.schuller@infidyne.com> <200406230037.34517.peter.schuller@infidyne.com> <023BB8D6-C4C1-11D8-ADB4-000393CC2E90@iki.fi> In-Reply-To: <023BB8D6-C4C1-11D8-ADB4-000393CC2E90@iki.fi> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200406232345.03367.peter.schuller@infidyne.com> Cc: Timo Sirainen X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2004 21:47:13 -0000 X-UID: 9652 Status: O > Well, I did add code to check it, and it is working with me.. Maybe > your IMAP client is caching the folder list locally? Nope. I "double-checked" with mutt, which never caches anything, and customflags was still there. I will investigate further though and make noise if I don't solve it. ;) Thanks! -- / Peter Schuller, InfiDyne Technologies HB PGP userID: 0xE9758B7D or 'Peter Schuller ' Key retrieval: Send an E-Mail to getpgpkey@scode.org E-Mail: peter.schuller@infidyne.com Web: http://www.scode.org From subscribed-lists@sterndata.com Thu Jun 24 01:28:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9CE75C000D93; Thu, 24 Jun 2004 01:28:07 +0300 (EEST) Received: from grouse.mail.pas.earthlink.net (grouse.mail.pas.earthlink.net [207.217.120.116]) by talvi.dovecot.org (Postfix) with ESMTP id 2BE47C000D90 for ; Thu, 24 Jun 2004 01:28:05 +0300 (EEST) Received: from h-68-164-3-104.chcgilgm.dynamic.covad.net ([68.164.3.104] helo=ciscy.sterndata.com) by grouse.mail.pas.earthlink.net with esmtp (Exim 3.33 #1) id 1BdG64-0001bE-00; Wed, 23 Jun 2004 15:20:00 -0700 Received: from sds ([192.168.123.169]) by ciscy.sterndata.com (8.12.11/8.12.11) with SMTP id i5NMK0lr011950; Wed, 23 Jun 2004 17:20:00 -0500 From: Steven Stern To: ismail@lists.insidesystems.net, dovecot@dovecot.org Date: Wed, 23 Jun 2004 17:19:43 -0500 Message-ID: References: <0.48557000.1088015180@verbotenplanet.net> In-Reply-To: <0.48557000.1088015180@verbotenplanet.net> X-Mailer: Forte Agent 2.0/32.652 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: clamd / ClamAV version 0.73, clamav-milter version 0.73a on ciscy.sterndata.com X-Virus-Status: Clean Cc: Subject: [Dovecot] Re: [ismail] Re: using Dovecot X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2004 22:28:07 -0000 X-UID: 9653 Status: O Content-Length: 1582 On Wed, 23 Jun 2004 18:26:01 +0000, "Kelley Reynolds" wrote: > >I've never used dovecot, but I know that those directories aren't what = IMAP servers generally expect when looking for a rootfolderpath. > >For example, courier is always 'INBOX', uw-imap is usually but not = always 'mail', and sometimes it's just a blank string. My guess is that = for you, it's one of those three. If your mail is in a 'mail' directory, = I suggest just putting 'mail' and not '~/mail'. > >Kelley Reynolds >President >Inside Systems, Inc > >___________________________________________________________________ I'm going to cross post this to the dovecot list in case someone there = has an idea. To bring those people up to speed: I'm evaluating ISMail (www.insidesystems.net) as a replacement for IMP. I'm having problems configuring the IMAP settings to work with Dovecot. =3D=3D=3D I've got some progress. I set rootmailfolder to "~/mail". When I login = to ISMail, it creates the directory ~/inbox as follows: mail Sent Items then dies. If I set rootmailfolder to as "rootmailfolder=3D" with no argument, it = creates .imap INBOX .customflags =20 .imap.index.data =20 .imap.index.tree .imap.index =20 .imap.index.log then dies If I set rootmail folder to "INBOX" INBOX Sent Items .subscriptions .imap INBOX .customflags =20 .imap.index.data =20 .imap.index.tree .imap.index =20 .imap.index.log -- Steve =20 From tss@iki.fi Thu Jun 24 07:10:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 36102C000D90; Thu, 24 Jun 2004 07:10:42 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 43446C000987 for ; Thu, 24 Jun 2004 07:10:37 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 2A7B31C350E6; Thu, 24 Jun 2004 07:02:34 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D0C471C1D0E0; Thu, 24 Jun 2004 07:01:59 +0300 (EEST) In-Reply-To: References: <0.48557000.1088015180@verbotenplanet.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-2-220853631" Message-Id: <3DDC9426-C593-11D8-BB08-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Re: [ismail] Re: using Dovecot Date: Thu, 24 Jun 2004 07:01:59 +0300 To: Steven Stern X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-8.2 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: ismail@lists.insidesystems.net, dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 04:10:42 -0000 X-UID: 9654 Status: O Content-Length: 1807 --Apple-Mail-2-220853631 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 24.6.2004, at 01:19, Steven Stern wrote: >> I've never used dovecot, but I know that those directories aren't >> what IMAP servers generally expect when looking for a rootfolderpath. >> >> For example, courier is always 'INBOX', uw-imap is usually but not >> always 'mail', and sometimes it's just a blank string. My guess is >> that for you, it's one of those three. If your mail is in a 'mail' >> directory, I suggest just putting 'mail' and not '~/mail'. >> > I'm going to cross post this to the dovecot list in case someone there > has an > idea. To bring those people up to speed: I'm evaluating ISMail > (www.insidesystems.net) as a replacement for IMP. I'm having problems > configuring the IMAP settings to work with Dovecot. You can configure Dovecot to put the mail anywhere you like by changing default_mail_env setting in config file. rootfolderpath should be empty always. > If I set rootmailfolder to as "rootmailfolder=" with no argument, it > creates > > .imap > INBOX > .customflags > .imap.index.data > .imap.index.tree > .imap.index > .imap.index.log > then dies Dies? See if there's error messages in log file (/var/log/mail.log maybe). --Apple-Mail-2-220853631 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA2lI3yUhSUUBViskRAi+PAJ9zHUUsrPHcKVHXSWdlvd95A9FWHACgpASf SKS+j3pyqIeM9R47lH22GkM= =Pdfs -----END PGP SIGNATURE----- --Apple-Mail-2-220853631-- From Nicolas.Stransky@neo-lan.net Thu Jun 24 09:10:36 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E00DDC000D94; Thu, 24 Jun 2004 09:10:36 +0300 (EEST) Received: from aster.neo-lan.net (aster.neo-lan.net [81.57.244.52]) by talvi.dovecot.org (Postfix) with ESMTP id 1C7A4C000987 for ; Thu, 24 Jun 2004 09:10:33 +0300 (EEST) Received: from aneto (aneto.local.lan [192.168.0.2]) by aster.neo-lan.net (Postfix) with ESMTP id 6B1AF2ACD4 for ; Thu, 24 Jun 2004 08:02:29 +0200 (CEST) Received: from localhost ([127.0.0.1]) by aneto with esmtp (Exim 4.34) id 1BdNJd-0004km-7c for dovecot@dovecot.org; Thu, 24 Jun 2004 08:02:29 +0200 Message-ID: <40DA6E75.7010702@neo-lan.net> Date: Thu, 24 Jun 2004 08:02:29 +0200 From: Nicolas STRANSKY Organization: N&O Lan User-Agent: Mozilla Thunderbird 0.7 (X11/20040615) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? References: <1087971391.6751.74.camel@hurina> In-Reply-To: <1087971391.6751.74.camel@hurina> X-Enigmail-Version: 0.84.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 06:10:37 -0000 X-UID: 9655 Status: O Content-Length: 1160 I spoke a bit too fast in my last message ;) I'm having a bunch of these logs after a few hours (test22): > Jun 24 07:55:55 aster dovecot: IMAP(nico): open() failed with index file /home/nico/mail/.imap/Curie-perso/dovecot.index: Too many open files > Jun 24 07:55:55 aster dovecot: IMAP(nico): open() failed with index file /home/nico/mail/Crans/.imap/Moderateurs/dovecot.index: Too many open files > Jun 24 07:55:55 aster dovecot: IMAP(nico): open() failed with index file /home/nico/mail/Debian/.imap/debian-news/dovecot.index: Too many open files > Jun 24 07:55:55 aster dovecot: IMAP(nico): open() failed with index file /home/nico/mail/Debian/.imap/debian-user-french/dovecot.index: Too many open files ... There's a lot like these for all of my imap folders. Is there a way to fix it ? Thanx -- Nico La foi du savant ne ressemble pas à celle que les orthodoxes puisent dans le besoin de certitude. Il ne faut pas croire que l'amour de la vérité se confondent avec celui de la certitude... Non, la foi du savant ressemblerait plutôt à la foi inquiète de l'hérétique, à celle qui cherche toujours et n'est jamais satisfaite. -+- Henri Poincaré -+- From tomi.hakala@clinet.fi Thu Jun 24 09:35:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8728EC000DC0; Thu, 24 Jun 2004 09:35:27 +0300 (EEST) Received: from smtp2.song.fi (smtp2.song.fi [194.100.2.122]) by talvi.dovecot.org (Postfix) with ESMTP id 89C54C000987 for ; Thu, 24 Jun 2004 09:35:25 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by virusscanner.smtp2.song.fi (Postfix) with ESMTP id 4417EA3B98; Thu, 24 Jun 2004 09:27:22 +0300 (EEST) Received: from smtp2.song.fi ([127.0.0.1]) by localhost (smtp2 [127.0.0.1]) (anti-virus) with ESMTP id 18645-03; Thu, 24 Jun 2004 09:27:22 +0300 (EEST) Received: from clinet.fi (denver.clinet.fi [194.100.200.66]) by smtp2.song.fi (Postfix) with ESMTP id F14F0A3B8B; Thu, 24 Jun 2004 09:27:21 +0300 (EEST) Message-ID: <40DA744C.B1FC4926@clinet.fi> Date: Thu, 24 Jun 2004 09:27:24 +0300 From: Tomi Hakala X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Nicolas STRANSKY Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? References: <1087971391.6751.74.camel@hurina> <40DA6E75.7010702@neo-lan.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 06:35:27 -0000 X-UID: 9656 Status: O Nicolas STRANSKY wrote: > > Jun 24 07:55:55 aster dovecot: IMAP(nico): open() failed with index file /home/nico/mail/Debian/.imap/debian-user-french/dovecot.index: Too many open files > ... > > There's a lot like these for all of my imap folders. Is there a way to > fix it ? See how many open files your system supports, with a kernel 2.4.26 and 256M memory default is 26208 open files. # cat /proc/sys/fs/file-max 26208 You can double the value pretty safely echo "65535" > /proc/sys/fs/file-max To have new value set on a boot put it in a /etc/sysctl.conf like fs.file-max=65535 -- Tomi Hakala From Nico@neo-lan.net Thu Jun 24 16:04:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 3B1E4C000D9C; Thu, 24 Jun 2004 16:04:09 +0300 (EEST) Received: from mailhost.curie.fr (burton1.curie.fr [193.49.205.23]) by talvi.dovecot.org (Postfix) with ESMTP id 196ABC000987 for ; Thu, 24 Jun 2004 16:04:03 +0300 (EEST) Received: from smtp-in.curie.fr (localhost [127.0.0.1]) by mailhost.curie.fr/1 with ESMTP id i5OCts3J001975 ; Thu, 24 Jun 2004 14:55:54 +0200 (CEST) Received: from [10.10.11.73] (jpt-0115-6340.curie.fr [10.10.11.73]) by smtp-in.curie.fr with ESMTP id i5OCthGa021154 ; Thu, 24 Jun 2004 14:55:53 +0200 (CEST) X-Client-Addr: 10.10.11.73 jpt-0115-6340.curie.fr (OK) X-Client-Sender: Nico@neo-lan.net Message-ID: <40DACF4E.9000603@neo-lan.net> Date: Thu, 24 Jun 2004 14:55:42 +0200 From: Nicolas STRANSKY User-Agent: Mozilla Thunderbird 0.7 (X11/20040615) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tomi Hakala Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? References: <1087971391.6751.74.camel@hurina> <40DA6E75.7010702@neo-lan.net> <40DA744C.B1FC4926@clinet.fi> In-Reply-To: <40DA744C.B1FC4926@clinet.fi> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org, Nicolas STRANSKY X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 13:04:10 -0000 X-UID: 9657 Status: O Tomi Hakala wrote: > See how many open files your system supports, with a kernel 2.4.26 and > 256M memory default is 26208 open files. > > # cat /proc/sys/fs/file-max > 26208 The value of file-max on my system is already 51159 (kernel 2.6.7, 512MB memory). But the interesting thing is that there are not that much open files, and I didn't have this problem with previous dovecot release. -- Nico Tout bourgeois veut bâtir comme les grands seigneurs, Tout petit prince a des ambassadeurs ; Tout marquis veut avoir des pages. -+- Jean de La Fontaine (1621-1695), La Grenouille qui veut se faire aussi grosse que le Boeuf (Fables I.3) -+- From kcramer@siscom.net Thu Jun 24 16:43:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 8859CC000D94; Thu, 24 Jun 2004 16:43:51 +0300 (EEST) Received: from kcramer.siscom.net (kcramer.siscom.net [209.251.13.230]) by talvi.dovecot.org (Postfix) with ESMTP id B44FDC000D90 for ; Thu, 24 Jun 2004 16:43:48 +0300 (EEST) Received: (qmail 7907 invoked by uid 1000); 24 Jun 2004 09:35:41 -0400 From: "Kevin Cramer" Date: Thu, 24 Jun 2004 09:35:41 -0400 To: dovecot@dovecot.org Message-ID: <20040624133541.GA6323@socrates.siscom.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6i Subject: [Dovecot] Sym links to subfolders? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 13:43:51 -0000 X-UID: 9658 Status: O I just installed dovecot 0.99.10.6 and I'm trying to use symlinks for subfolders. I have my mail in ~/Maildir and I want to make symlinks such as from .Sent to ~/Mail/Sent. All of these folders are maildir and the permissions are correct. I've searched the list and I cannot find anything stating that it should not work. In fact I've seen posts that claim it should work. However, it does not work for me and looking at maildir-list.c around line 101, it appears that it is only checking for directories and not for links. I'm doing this because I have it setup so I can use mutt directly against the maildir folders and so IMAP will work against them. It's worked great for over a year but I want to move it to a different machine and I wanted to switch from courier-imap to dovecot. Can anyone confirm that it works or not? Any ideas on how to address this issue? Thanks, Kevin From tss@iki.fi Thu Jun 24 17:24:13 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 49492C000D9C; Thu, 24 Jun 2004 17:24:13 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 109E9C000D90 for ; Thu, 24 Jun 2004 17:24:11 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id F31991C350E9; Thu, 24 Jun 2004 17:16:06 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7B4001C350E6; Thu, 24 Jun 2004 17:15:32 +0300 (EEST) Subject: Re: [Dovecot] Sym links to subfolders? From: Timo Sirainen To: Kevin Cramer In-Reply-To: <20040624133541.GA6323@socrates.siscom.net> References: <20040624133541.GA6323@socrates.siscom.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-uW7dQdlCgGMILUpbytPm" Message-Id: <1088086532.6758.247.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 24 Jun 2004 17:15:32 +0300 X-Spam-Status: No, hits=-9.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 14:24:13 -0000 X-UID: 9659 Status: O Content-Length: 1154 --=-uW7dQdlCgGMILUpbytPm Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-24 at 16:35, Kevin Cramer wrote: > I just installed dovecot 0.99.10.6 and I'm trying to use symlinks for > subfolders. I have my mail in ~/Maildir and I want to make symlinks > such as from .Sent to ~/Mail/Sent. All of these folders are maildir > and the permissions are correct. >=20 > I've searched the list and I cannot find anything stating that it > should not work. In fact I've seen posts that claim it should work. > However, it does not work for me and looking at maildir-list.c around > line 101, it appears that it is only checking for directories and not > for links. It got broken by change in .10.6. Fix in http://dovecot.org/patches/maildir-symlinks.patch --=-uW7dQdlCgGMILUpbytPm Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA2uIEyUhSUUBViskRAmotAJ0cf/iaMIaEmUZp3EMTNi/9Vw5rLgCghc2y uRBNtJ3rjuHIlHyHvrOp1Ho= =lDh4 -----END PGP SIGNATURE----- --=-uW7dQdlCgGMILUpbytPm-- From tss@iki.fi Thu Jun 24 17:27:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 95E41C002913; Thu, 24 Jun 2004 17:27:55 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 94F45C000D90 for ; Thu, 24 Jun 2004 17:27:53 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 8A4071C350E6; Thu, 24 Jun 2004 17:19:49 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BB6B51C350E9 for ; Thu, 24 Jun 2004 17:19:15 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-o5EBHRQMYnSWjNaRybbY" Message-Id: <1088086755.17996.252.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 24 Jun 2004 17:19:15 +0300 X-Spam-Status: No, hits=-8.9 required=5.0 tests=AWL,BAYES_01,PGP_SIGNATURE_2,RCVD_IN_ORBS,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Subject: [Dovecot] IMAP mailing archives back online X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 14:27:55 -0000 X-UID: 9660 Status: O --=-o5EBHRQMYnSWjNaRybbY Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Read-only mboxes seem to be working nicely now, so I installed latest CVS Dovecot to dovecot.org again to serve them. Allows either ANONYMOUS SASL logins, or plaintext logins with "anonymous" user and empty password. --=-o5EBHRQMYnSWjNaRybbY Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA2uLjyUhSUUBViskRAryCAJwLi1RChivVhuf/mWuCFW+scauT+wCeK9sN fq3WPL1Cu7KPPG/v5z23ZJQ= =CQ1L -----END PGP SIGNATURE----- --=-o5EBHRQMYnSWjNaRybbY-- From Nicolas.Stransky@neo-lan.net Thu Jun 24 17:29:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BD6CDC002913; Thu, 24 Jun 2004 17:29:49 +0300 (EEST) Received: from mailhost.curie.fr (burton1.curie.fr [193.49.205.23]) by talvi.dovecot.org (Postfix) with ESMTP id 432A0C000D90 for ; Thu, 24 Jun 2004 17:29:47 +0300 (EEST) Received: from smtp-in.curie.fr (localhost [127.0.0.1]) by mailhost.curie.fr/1 with ESMTP id i5OELf3J018501 ; Thu, 24 Jun 2004 16:21:41 +0200 (CEST) Received: from [10.10.11.73] (jpt-0115-6340.curie.fr [10.10.11.73]) by smtp-in.curie.fr with ESMTP id i5OELfGa025817 ; Thu, 24 Jun 2004 16:21:41 +0200 (CEST) X-Client-Addr: 10.10.11.73 jpt-0115-6340.curie.fr (OK) X-Client-Sender: Nicolas.Stransky@neo-lan.net Message-ID: <40DAE374.6080903@neo-lan.net> Date: Thu, 24 Jun 2004 16:21:40 +0200 From: Nicolas STRANSKY User-Agent: Mozilla Thunderbird 0.7 (X11/20040615) X-Accept-Language: en-us, en MIME-Version: 1.0 References: <1087971391.6751.74.camel@hurina> <40DA6E75.7010702@neo-lan.net> <40DA744C.B1FC4926@clinet.fi> <40DACF4E.9000603@neo-lan.net> In-Reply-To: <40DACF4E.9000603@neo-lan.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: Tomi Hakala , dovecot@dovecot.org Subject: [Dovecot] Re: 1.0-test22 - maildir fixed? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 14:29:49 -0000 X-UID: 9661 Status: O Nicolas STRANSKY wrote: > The value of file-max on my system is already 51159 (kernel 2.6.7, 512MB > memory). But the interesting thing is that there are not that much open > files, and I didn't have this problem with previous dovecot release. I also notice that thunderbird 0.7 fails to copy a message to the "Sent" folder with Dovecot 1.0 test22. More generaly, I have problems moving or copying messages from somewhere out of the existing imap folders (such as a message that has just been sent), to an imap folder. I'm pretty sure it's not a thunderbird problem because it appeared when I installed Dovecot 1.0 test22. THunderbird just says it "failed", and I see no particular logs on the server. -- Nico Ce qui rend les douleurs de la honte et de la jalousie si aiguës, c'est que la vanité ne peut servir à les supporter. -+- François de La Rochefoucauld (1613-1680), Maximes 446 -+- From rueckert@informatik.uni-rostock.de Thu Jun 24 17:34:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id DE26DC000DD7; Thu, 24 Jun 2004 17:34:28 +0300 (EEST) Received: from monsters.rsn.uni-rostock.de (monsters.rsn.uni-rostock.de [139.30.253.26]) by talvi.dovecot.org (Postfix) with ESMTP id C0D27C000D90 for ; Thu, 24 Jun 2004 17:34:26 +0300 (EEST) Received: from intern.dot.rsn.uni-rostock.de (intern.dot.rsn.uni-rostock.de [192.168.22.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "", Issuer "mail.pixalized.technet" (not verified)) by monsters.rsn.uni-rostock.de (Postfix) with ESMTP id 23D69F254; Thu, 24 Jun 2004 16:28:28 +0200 (CEST) Received: by intern.dot.rsn.uni-rostock.de (Postfix, from userid 1000) id A4EFA67550; Thu, 24 Jun 2004 16:24:13 +0200 (CEST) Date: Thu, 24 Jun 2004 16:24:13 +0200 From: Marcus Rueckert To: Nicolas STRANSKY Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? Message-ID: <20040624142413.GA22100@monsters.rsn.uni-rostock.de> References: <1087971391.6751.74.camel@hurina> <40DA6E75.7010702@neo-lan.net> <40DA744C.B1FC4926@clinet.fi> <40DACF4E.9000603@neo-lan.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40DACF4E.9000603@neo-lan.net> User-Agent: Mutt/1.5.6i Cc: Nicolas STRANSKY , Tomi Hakala , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 14:34:30 -0000 X-UID: 9662 Status: O On 2004-06-24 14:55:42 +0200, Nicolas STRANSKY wrote: > >See how many open files your system supports, with a kernel 2.4.26 and > >256M memory default is 26208 open files. > > > ># cat /proc/sys/fs/file-max > >26208 > > The value of file-max on my system is already 51159 (kernel 2.6.7, 512MB > memory). But the interesting thing is that there are not that much open > files, and I didn't have this problem with previous dovecot release. maybe check for per user limits via pam? e.g /etc/security/limits.conf darix -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From tss@iki.fi Thu Jun 24 17:52:26 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0538DC000D9C; Thu, 24 Jun 2004 17:52:26 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 14DDFC000D90 for ; Thu, 24 Jun 2004 17:52:24 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id F316F1C350E9; Thu, 24 Jun 2004 17:44:19 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 11D3A1C350E6 for ; Thu, 24 Jun 2004 17:43:46 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <20040624142413.GA22100@monsters.rsn.uni-rostock.de> References: <1087971391.6751.74.camel@hurina> <40DA6E75.7010702@neo-lan.net> <40DA744C.B1FC4926@clinet.fi> <40DACF4E.9000603@neo-lan.net> <20040624142413.GA22100@monsters.rsn.uni-rostock.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-as5YLyIQE5s9TUf8q9WE" Message-Id: <1088088225.6753.257.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 24 Jun 2004 17:43:45 +0300 X-Spam-Status: No, hits=-9.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 14:52:26 -0000 X-UID: 9663 Status: O Content-Length: 1169 --=-as5YLyIQE5s9TUf8q9WE Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-24 at 17:24, Marcus Rueckert wrote: > On 2004-06-24 14:55:42 +0200, Nicolas STRANSKY wrote: > > >See how many open files your system supports, with a kernel 2.4.26 and > > >256M memory default is 26208 open files. > > > > > ># cat /proc/sys/fs/file-max > > >26208 > >=20 > > The value of file-max on my system is already 51159 (kernel 2.6.7, 512M= B=20 > > memory). But the interesting thing is that there are not that much open= =20 > > files, and I didn't have this problem with previous dovecot release. >=20 > maybe check for per user limits via pam? > e.g /etc/security/limits.conf Nah, this most likely happens because Dovecot doesn't close some (index?) files. I'll debug it later. --=-as5YLyIQE5s9TUf8q9WE Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA2uihyUhSUUBViskRAiqQAJwK4fryagHXeHWtxlPF91wtWn/R7gCdFCTU NHJcVIftd2WlS1WUXm31JzI= =SyyA -----END PGP SIGNATURE----- --=-as5YLyIQE5s9TUf8q9WE-- From hf@spg.tu-darmstadt.de Thu Jun 24 17:56:31 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 001D2C000D9C; Thu, 24 Jun 2004 17:56:30 +0300 (EEST) Received: from bounce.nt.e-technik.tu-darmstadt.de (bounce.nt.e-technik.tu-darmstadt.de [130.83.197.1]) by talvi.dovecot.org (Postfix) with ESMTP id BEED3C000987 for ; Thu, 24 Jun 2004 17:56:28 +0300 (EEST) Received: from [130.83.186.53] (blech.nt.e-technik.tu-darmstadt.de [130.83.186.53]) by bounce.nt.e-technik.tu-darmstadt.de (8.12.11/8.12.11) with ESMTP id i5OEmNYi021346 for ; Thu, 24 Jun 2004 16:48:23 +0200 (CEST) Mime-Version: 1.0 X-Sender: hf@bounce.nt.e-technik.tu-darmstadt.de (Unverified) Message-Id: Date: Thu, 24 Jun 2004 16:48:23 +0200 To: dovecot@dovecot.org From: Hauke Fath Content-Type: text/plain; charset="iso-8859-1" ; format="flowed" Content-Transfer-Encoding: 8bit Subject: [Dovecot] 0.99.10.6 -imap flag update problem still present X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 14:56:31 -0000 X-UID: 9664 Status: O Content-Length: 1110 Hi, the email status problem that I reported for Dovecot 0.99.10.5 on June 3rd does still show up in 0.99.10.6. Quoting myself: (1) When new mail is delivered to the inbox, the last read mail(s) change(s) to "unread". Clients: Eudora 6 (Mac), Mozilla 1.6 (NetBSD, Linux, Win XP), MS Outlook. (2) When you attempt to move mails from the inbox to another folder with Mozilla (1.6 on win32, Linux, NetBSD), they are not removed from the inbox, effectively performing a copy instead of a move. And, while I am at it, (3) I see a regular log entry from a MS Outlook 2000 SP 3 Jun 3 10:26:23 bounce imap-login: SSL_read() syscall failed: EOF [130.83.XXX.XXX] The setup here: OS NetBSD 2.0beta, MTA sendmail 8.12.11, LDA maildrop 1.3.9, dovecot 0.99.10.6, OpenSSL 0.9.7d Any ideas? My users are starting to nag... hauke -- Institut für Nachrichtentechnik /~\ The ASCII Ribbon Campaign FG Signalverarbeitung \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281, Fax -3778 / \ Respect for open standards From tss@iki.fi Thu Jun 24 18:04:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 21ADFC000D90; Thu, 24 Jun 2004 18:04:24 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A509FC000987 for ; Thu, 24 Jun 2004 18:04:21 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 875F91C350E6; Thu, 24 Jun 2004 17:56:17 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CAFEA1C350E6; Thu, 24 Jun 2004 17:55:32 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10.6 -imap flag update problem still present From: Timo Sirainen To: Hauke Fath In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ZTjFuWmL54EmaajnHRXo" Message-Id: <1088088932.17996.262.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 24 Jun 2004 17:55:32 +0300 X-Spam-Status: No, hits=-8.9 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,HOT_NASTY,IN_REP_TO, PGP_SIGNATURE_2,QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 15:04:24 -0000 X-UID: 9665 Status: O Content-Length: 1447 --=-ZTjFuWmL54EmaajnHRXo Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-24 at 17:48, Hauke Fath wrote: > the email status problem that I reported for Dovecot 0.99.10.5 on=20 > June 3rd does still show up in 0.99.10.6. Quoting myself: >=20 > (1) When new mail is delivered to the inbox, the last read mail(s) change= (s) > to "unread". Clients: Eudora 6 (Mac), Mozilla 1.6 (NetBSD, Linux, Win=20 > XP), MS Outlook. Is this with maildir? > (2) When you attempt to move mails from the inbox to another folder=20 > with Mozilla > (1.6 on win32, Linux, NetBSD), they are not removed from the inbox, > effectively performing a copy instead of a move. Probably same reason why 1) happens. It seems like flags cannot be changed at all? There's nothing in Dovecot's logs? Did it used to work before? > (3) I see a regular log entry from a MS Outlook 2000 SP 3 >=20 > Jun 3 10:26:23 bounce imap-login: SSL_read() syscall failed: EOF > [130.83.XXX.XXX] ssl_verbose =3D no. That's the reason it's no by default, the messages aren't very useful. --=-ZTjFuWmL54EmaajnHRXo Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA2utkyUhSUUBViskRAtGqAJ9JlxKmh6Ec6uG2EbA+QqErYQ0tjgCeOEh5 qhUCHx5NJg1w556kPypgInU= =C0Pr -----END PGP SIGNATURE----- --=-ZTjFuWmL54EmaajnHRXo-- From hf@spg.tu-darmstadt.de Thu Jun 24 18:20:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F19D0C000DD7; Thu, 24 Jun 2004 18:20:56 +0300 (EEST) Received: from bounce.nt.e-technik.tu-darmstadt.de (bounce.nt.e-technik.tu-darmstadt.de [130.83.197.1]) by talvi.dovecot.org (Postfix) with ESMTP id 5E122C000D90 for ; Thu, 24 Jun 2004 18:20:54 +0300 (EEST) Received: from spg.tu-darmstadt.de (heiligenberg.nt.e-technik.tu-darmstadt.de [130.83.186.54]) by bounce.nt.e-technik.tu-darmstadt.de (8.12.11/8.12.11) with ESMTP id i5OFCnbb021051; Thu, 24 Jun 2004 17:12:49 +0200 (CEST) Message-ID: <40DAEF71.1080502@spg.tu-darmstadt.de> Date: Thu, 24 Jun 2004 17:12:49 +0200 From: Hauke Fath Organization: TU Darmstadt User-Agent: Mozilla/5.0 (X11; U; NetBSD i386; en-US; rv:1.6) Gecko/20040315 X-Accept-Language: en-us, en, de-de MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.6 -imap flag update problem still present References: <1088088932.17996.262.camel@hurina> In-Reply-To: <1088088932.17996.262.camel@hurina> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 15:20:57 -0000 X-UID: 9666 Status: O Content-Length: 1679 Timo Sirainen wrote: > On Thu, 2004-06-24 at 17:48, Hauke Fath wrote: > >>the email status problem that I reported for Dovecot 0.99.10.5 on >>June 3rd does still show up in 0.99.10.6. Quoting myself: >> >>(1) When new mail is delivered to the inbox, the last read mail(s) change(s) >>to "unread". Clients: Eudora 6 (Mac), Mozilla 1.6 (NetBSD, Linux, Win >>XP), MS Outlook. > > > Is this with maildir? No, mbox. >>(2) When you attempt to move mails from the inbox to another folder >>with Mozilla >>(1.6 on win32, Linux, NetBSD), they are not removed from the inbox, >>effectively performing a copy instead of a move. > > > Probably same reason why 1) happens. > > It seems like flags cannot be changed at all? There's nothing in > Dovecot's logs? Nothing. >Did it used to work before? No. I set up the server two months ago with 0.99.10.4, iirc. The issue is most annoying for Mozilla users since deleted mail is only flagged (which does not work), so you get duplicates after every move. Eudora physically removes the original mail, so the problem only shows up with the 'read' flag. >>(3) I see a regular log entry from a MS Outlook 2000 SP 3 >> >>Jun 3 10:26:23 bounce imap-login: SSL_read() syscall failed: EOF >>[130.83.XXX.XXX] > > > ssl_verbose = no. That's the reason it's no by default, the messages > aren't very useful. :) Okay, I'll change that. hauke -- Hauke Fath /~\ The ASCII Ribbon Campaign Institut für Nachrichtentechnik \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281 / \ Respect for open standards From t1lt@bk.ru Thu Jun 24 21:41:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 57A2AC000D90; Thu, 24 Jun 2004 21:41:02 +0300 (EEST) Received: from sun.com (port-212-202-37-131.dynamic.qsc.de [212.202.37.131]) by talvi.dovecot.org (Postfix) with SMTP id 17E20C000987 for ; Thu, 24 Jun 2004 21:41:00 +0300 (EEST) Received: (qmail 10874 invoked by uid 1000); 24 Jun 2004 18:32:55 -0000 Date: Thu, 24 Jun 2004 20:32:55 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? Message-ID: <20040624183255.GE4063@widecut.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1087971391.6751.74.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1087971391.6751.74.camel@hurina> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2004 18:41:02 -0000 X-UID: 9667 Status: O Content-Length: 1285 On Wed, Jun 23, 2004 at 09:16:32AM +0300, Timo Sirainen wrote: > http://dovecot.org/test/ > > Well, remember when I said: > > > Here you go, maildir syncing problems finally fixed (I hope). Well, > > except there's this "new-dir-only syncing" optimization which I'm not > > really sure if it works as it should. > > Just before I found the expunge bug in index, I was trying to fix the > new-dir-only syncing because the code looked wrong. Then I figured out > the indexing problem and thought maybe this one wasn't broken after all, > and then forgot about it. > > Finally after lots of debugging, I came to same conclusion again. The > code was wrong, and cause of the remaining "Maildir sync: UID < next_uid > (312 < 3)" errors. > > So, please try and see if you still can break this release. Other > changes include some crashfixes for cache file and fix for mbox which > kept constantly rewriting headers for \recent messages if we had > selected the mailbox as read-only (EXAMINE, STATUS). Sorry, still getting: sp dovecot: IMAP(moe): Maildir /home/moe/Maildir/.INBOX.zp sync: UID inserted in the middle of mailbox (1515 > 1514, file = msg.QNsy:2,) and: sp dovecot: IMAP(moe): Corrupted index cache file /home/moe/Maildir/.INBOX.zp/dovecot.index.cache: indexid changed From kcramer@siscom.net Fri Jun 25 17:05:39 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 39536C000D93; Fri, 25 Jun 2004 17:05:39 +0300 (EEST) Received: from plato.kevincramer.net (kcramer.siscom.net [209.251.13.230]) by talvi.dovecot.org (Postfix) with SMTP id 6C8F7C000987 for ; Fri, 25 Jun 2004 17:05:36 +0300 (EEST) Received: (qmail 4352 invoked by uid 1000); 25 Jun 2004 13:57:29 -0000 From: "Kevin Cramer" Date: Fri, 25 Jun 2004 09:57:29 -0400 To: dovecot@dovecot.org Message-ID: <20040625135729.GA17265@plato.kevincramer.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6i Subject: [Dovecot] Locked index file X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jun 2004 14:05:39 -0000 X-UID: 9668 Status: O I have docevot 0.99.10.6 installed on OpenBSD 3.5 and I'm using it with Squirrelmail. I tried to empty my Trash folder and it timed out. It looks like the process or thread died but the lock wasn't removed: Jun 25 09:16:30 plato imap(kevin): Timeout while waiting for release of shared fcntl() lock for index file /home/kevin/Maildir/.Trash/.imap.index How can I free this lock? I have tried stopping and re-starting dovecot already but that didn't help. Also, is there something I should do to prevent this in the future? The OpenBSD package sets the default locking to fcntl for mbox. I'm not sure if that is the setting that also controls the locking mechanism on the index files. Thanks, Kevin From schrock@dayzed.com Sat Jun 26 06:54:27 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 88E78C000DDA; Sat, 26 Jun 2004 06:54:27 +0300 (EEST) Received: from mail.dayzed.com (24-176-252-149.cs-cres.charterpipeline.net [24.176.252.149]) by talvi.dovecot.org (Postfix) with ESMTP id C385DC000D93 for ; Sat, 26 Jun 2004 06:54:23 +0300 (EEST) Received: from 192.168.50.2 (localhost.localdomain [127.0.0.1]) by mail.dayzed.com (Postfix) with ESMTP id 41A3D233EF for ; Fri, 25 Jun 2004 20:46:12 -0700 (PDT) Received: from 192.168.50.9 (SquirrelMail authenticated user schrock); by new.host.name with HTTP; Fri, 25 Jun 2004 20:46:12 -0700 (PDT) Message-ID: <35223.192.168.50.9.1088221572.squirrel@192.168.50.9> Date: Fri, 25 Jun 2004 20:46:12 -0700 (PDT) From: "Avery" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal Subject: [Dovecot] phpGroupWare X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Jun 2004 03:54:27 -0000 X-UID: 9669 Status: O Anyone here using phpGroupWare with dovecot? Does anyone know if it is possible? Thanks -- Avery From tazdev@punkass.com Sat Jun 26 23:07:05 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9E1B9C000D90; Sat, 26 Jun 2004 23:07:05 +0300 (EEST) Received: from lfs (2-231.242.81.adsl.skynet.be [81.242.231.2]) by talvi.dovecot.org (Postfix) with ESMTP id 5C190C000987 for ; Sat, 26 Jun 2004 23:07:02 +0300 (EEST) Received: from zorglub (zorglub [192.168.0.1]) by lfs (Postfix) with SMTP id A5BCE27609 for ; Sat, 26 Jun 2004 22:15:47 +0000 (UTC) Date: Sat, 26 Jun 2004 21:57:02 +0200 From: T'aZ To: dovecot@dovecot.org Message-Id: <20040626215702.2b215e48.tazdev@punkass.com> X-Mailer: Sylpheed version 0.9.10cvs17 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha1"; boundary="Signature=_Sat__26_Jun_2004_21_57_02_+0200_CRvCQKueGNzDsa1m" Subject: [Dovecot] passwd + shadow auth problem X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Jun 2004 20:07:05 -0000 X-UID: 9670 Status: O Content-Length: 1671 --Signature=_Sat__26_Jun_2004_21_57_02_+0200_CRvCQKueGNzDsa1m Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: 7bit Hi! here is the problem , i have local users some have shadow password, some not, so i must create two auth one to login via shadow , and one via passwd so here is my config file (stripped comments): protocols = imap imaps pop3 pop3s imap_listen = 192.168.0.2 pop3_listen = 192.168.0.2 imaps_listen = 192.168.0.2 pop3s_listen = 192.168.0.2 login = imap login = pop3 auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = shadow auth_user = root auth_count = 1 auth_verbose = yes auth = truc auth_mechanisms = plain auth_userdb = passwd auth_passdb = passwd auth_verbose = yes if i try a user with shadow, it works, but if i try a user without shadow, it fails in the log with dovecot-auth: shadow(taz): unknown user what's wrong, why doesnt it use the second auth option ? where is my error ? i'm using 0.99.10.6 thanks in advance -- T'aZ |Jabber:taz-007@jabber.org|GPG keyID:E051925D|http://taz.prout.be *They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.* Benjamin Franklin 1759 *Beaucoup,vite,loin,mal.* http://www.cl.cam.ac.uk/~rja14/tcpa-faq.html --Signature=_Sat__26_Jun_2004_21_57_02_+0200_CRvCQKueGNzDsa1m Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFA3dUQ3opk9OBRkl0RAtHyAJ0emlCo91dlMwaO7sFezO00mJK3cACePFm8 cka6UKbQ/k2GNE7ooXszJ20= =No4V -----END PGP SIGNATURE----- --Signature=_Sat__26_Jun_2004_21_57_02_+0200_CRvCQKueGNzDsa1m-- From kevin@kcramer.siscom.net Fri Jun 25 16:44:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 09D2EC000D93; Fri, 25 Jun 2004 16:44:24 +0300 (EEST) Received: from plato.kevincramer.net (kcramer.siscom.net [209.251.13.230]) by talvi.dovecot.org (Postfix) with SMTP id A3C81C000987 for ; Fri, 25 Jun 2004 16:44:18 +0300 (EEST) Received: (qmail 13520 invoked by uid 1000); 25 Jun 2004 13:36:10 -0000 From: "Kevin Cramer" Date: Fri, 25 Jun 2004 09:36:10 -0400 To: dovecot@dovecot.org Message-ID: <20040625133610.GA18061@plato.kevincramer.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6i X-Mailman-Approved-At: Sun, 27 Jun 2004 21:50:57 +0300 Subject: [Dovecot] Locked index file X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jun 2004 13:44:24 -0000 X-UID: 9671 Status: O I have docevot 0.99.10.6 installed on OpenBSD 3.5 and I'm using it with Squirrelmail. I tried to empty my Trash folder and it timed out. It looks like the process or thread died but the lock wasn't removed: Jun 25 09:16:30 plato imap(kevin): Timeout while waiting for release of shared fcntl() lock for index file /home/kevin/Maildir/.Trash/.imap.index How can I free this lock? I have tried stopping and re-starting dovecot already but that didn't help. Also, is there something I should do to prevent this in the future? The OpenBSD package sets the default locking to fcntl for mbox. I'm not sure if that is the setting that also controls the locking mechanism on the index files. Thanks, Kevin From kevin@kcramer.siscom.net Fri Jun 25 16:47:37 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 85984C000D93; Fri, 25 Jun 2004 16:47:37 +0300 (EEST) Received: from plato.kevincramer.net (kcramer.siscom.net [209.251.13.230]) by talvi.dovecot.org (Postfix) with SMTP id E129BC000987 for ; Fri, 25 Jun 2004 16:47:34 +0300 (EEST) Received: (qmail 23164 invoked by uid 1000); 25 Jun 2004 13:39:27 -0000 From: "Kevin Cramer" Date: Fri, 25 Jun 2004 09:39:27 -0400 To: dovecot@dovecot.org Message-ID: <20040625133927.GA7097@plato.kevincramer.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6i X-Mailman-Approved-At: Sun, 27 Jun 2004 21:50:57 +0300 Subject: [Dovecot] Locked index file X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jun 2004 13:47:37 -0000 X-UID: 9672 Status: O I have docevot 0.99.10.6 installed on OpenBSD 3.5 and I'm using it with Squirrelmail. I tried to empty my Trash folder and it timed out. It looks like the process or thread died but the lock wasn't removed: Jun 25 09:16:30 plato imap(kevin): Timeout while waiting for release of shared fcntl() lock for index file /home/kevin/Maildir/.Trash/.imap.index How can I free this lock? I have tried stopping and re-starting dovecot already but that didn't help. Also, is there something I should do to prevent this in the future? The OpenBSD package sets the default locking to fcntl for mbox. I'm not sure if that is the setting that also controls the locking mechanism on the index files. Thanks, Kevin From adro01@web.de Sun Jun 27 00:08:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5A1E9C000DDA; Sun, 27 Jun 2004 00:08:48 +0300 (EEST) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.183]) by talvi.dovecot.org (Postfix) with ESMTP id F0A19C000D93 for ; Sun, 27 Jun 2004 00:08:45 +0300 (EEST) Received: from [212.227.126.205] (helo=mrelayng.kundenserver.de) by moutng.kundenserver.de with esmtp (Exim 3.35 #1) id 1BeKHs-0004fs-00 for dovecot@dovecot.org; Sat, 26 Jun 2004 23:00:36 +0200 Received: from [80.185.230.250] (helo=dell.home.netz) by mrelayng.kundenserver.de with asmtp (Exim 3.35 #1) id 1BeKHr-00025c-00 for dovecot@dovecot.org; Sat, 26 Jun 2004 23:00:35 +0200 Received: from localhost (localhost [127.0.0.1]) by dell.home.netz (Postfix) with ESMTP id E3F9FA98A for ; Sat, 26 Jun 2004 22:57:51 +0200 (CEST) Received: from dell.home.netz ([127.0.0.1]) by localhost (dell [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11494-10 for ; Sat, 26 Jun 2004 22:57:47 +0200 (CEST) Received: from web.de (linuxbox.home.netz [192.168.0.15]) by dell.home.netz (Postfix) with ESMTP id 7F1F91ACE6 for ; Sat, 26 Jun 2004 22:10:48 +0200 (CEST) Message-ID: <40DDD8D3.3010207@web.de> Date: Sat, 26 Jun 2004 22:13:07 +0200 From: Adrian Roye User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 X-Accept-Language: de-de, de, ro, ro MIME-Version: 1.0 To: dovecot@dovecot.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: kundenserver.de abuse@kundenserver.de auth:32c874546dbed36b47307231375e05b1 X-Mailman-Approved-At: Sun, 27 Jun 2004 21:50:57 +0300 Subject: [Dovecot] invalid mask X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: adro01@web.de List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Jun 2004 21:08:48 -0000 X-UID: 9673 Status: O Hi ! I still get the message: "The current command did not succeed. The mail server responded: invalid mask" I am using the Netscapes mail client. Adrian From djk@cybersource.com.au Mon Jun 28 01:37:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 99BAFC000DDA; Mon, 28 Jun 2004 01:37:06 +0300 (EEST) Received: from boombox.cyber.com.au (203-217-38-144.dyn.iinet.net.au [203.217.38.144]) by talvi.dovecot.org (Postfix) with ESMTP id D0E01C000D93 for ; Mon, 28 Jun 2004 01:37:00 +0300 (EEST) Received: from boombox.cyber.com.au (localhost [127.0.0.1]) by boombox.cyber.com.au (8.12.8/8.12.8) with ESMTP id i5RMSjAV011897; Mon, 28 Jun 2004 08:28:45 +1000 Received: (from djk@localhost) by boombox.cyber.com.au (8.12.8/8.12.8/Submit) id i5RMSjfP011895; Mon, 28 Jun 2004 08:28:45 +1000 From: David Keegel Message-Id: <200406272228.i5RMSjfP011895@boombox.cyber.com.au> Subject: Re: [Dovecot] invalid mask In-Reply-To: <40DDD8D3.3010207@web.de> from Adrian Roye at "Jun 26, 2004 10:13:07 pm" To: adro01@web.de Date: Mon, 28 Jun 2004 08:28:45 +1000 (EST) X-Mailer: ELM [version 2.4ME+ PL66 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jun 2004 22:37:06 -0000 X-UID: 9674 Status: O ] Hi ! ] I still get the message: ] "The current command did not succeed. The mail server responded: invalid ] mask" ] I am using the Netscapes mail client. ] Adrian I got this error when I had an IMAP server directory (~/Mail) specified on the mail client (which was needed for my former UW imap server), but I had configured dovecot with default_mail_env = mbox:~/Mail/:INBOX=/var/spool/mail/%u ___________________________________________________________________________ David Keegel http://www.cyber.com.au/users/djk/ Cybersource P/L: Linux/Unix Systems Administration Consulting/Contracting From tss@iki.fi Mon Jun 28 12:48:02 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B7AFDC000DDA; Mon, 28 Jun 2004 12:48:02 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0AE55C000D93 for ; Mon, 28 Jun 2004 12:48:00 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 036741C1D0E1; Mon, 28 Jun 2004 12:39:47 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BC1C91C1D0E0; Mon, 28 Jun 2004 12:39:12 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? From: Timo Sirainen To: Moe Wibble In-Reply-To: <20040624183255.GE4063@widecut.net> References: <1087971391.6751.74.camel@hurina> <20040624183255.GE4063@widecut.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-49HFNAj6J2ae7umJVNYU" Message-Id: <1088415548.30749.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 28 Jun 2004 12:39:08 +0300 X-Spam-Status: No, hits=-9.3 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, RCVD_IN_ORBS,REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 09:48:02 -0000 X-UID: 9675 Status: O Content-Length: 1415 --=-49HFNAj6J2ae7umJVNYU Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-24 at 21:32, Moe Wibble wrote: > Sorry, still getting: >=20 > sp dovecot: IMAP(moe): Maildir /home/moe/Maildir/.INBOX.zp sync: UID inse= rted in the middle of mailbox (1515 > 1514, file =3D msg.QNsy:2,) Are you sure the maildir filename is unique and has never existed before? If "msg.QNsy" is the real name, it doesn't conform to maildir spec, although Dovecot doesn't really care about that. But if QNsy is eg. inode number, this could easily happen just because inode numbers are reused and you don't have any kind of timestamp in the file name.=20 Older Dovecots and probably most other maildir clients don't complain about reappearing files, but I think that may cause some (rare) hidden problems. If they really are unique, it would be helpful if you could run a debugging patch and send all the output to me. It generates /tmp/dovecot.* files with tons of debugging data. http://dovecot.org/patches/dovecot-maildir-debug.diff --=-49HFNAj6J2ae7umJVNYU Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA3+c7yUhSUUBViskRAvgzAJ9wDhYK2n3LXVQqi6PJMQYfiRPWTwCfcw/U TCeO42dTZ4RSOgtZgRVld9U= =Gdlx -----END PGP SIGNATURE----- --=-49HFNAj6J2ae7umJVNYU-- From tss@iki.fi Mon Jun 28 12:51:23 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E7FC5C00280C; Mon, 28 Jun 2004 12:51:23 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B9042C000D93 for ; Mon, 28 Jun 2004 12:51:21 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id AE5141C1D0E1; Mon, 28 Jun 2004 12:43:08 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9B74A1C1D0E0; Mon, 28 Jun 2004 12:42:34 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10.6 -imap flag update problem still present From: Timo Sirainen To: Hauke Fath In-Reply-To: <40DAEF71.1080502@spg.tu-darmstadt.de> References: <1088088932.17996.262.camel@hurina> <40DAEF71.1080502@spg.tu-darmstadt.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-9LTISmuVDFzmCgSaeiDj" Message-Id: <1088415754.30749.13.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 28 Jun 2004 12:42:34 +0300 X-Spam-Status: No, hits=-9.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 09:51:24 -0000 X-UID: 9676 Status: O Content-Length: 1112 --=-9LTISmuVDFzmCgSaeiDj Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-24 at 18:12, Hauke Fath wrote: > >>(1) When new mail is delivered to the inbox, the last read mail(s) chan= ge(s) > >>to "unread". Clients: Eudora 6 (Mac), Mozilla 1.6 (NetBSD, Linux, Win=20 > >>XP), MS Outlook. > > Is this with maildir? >=20 > No, mbox. Oh. This all pretty much sounds like Dovecot sees users INBOX as read-only so it won't modify flags and won't expunge messages. You could check this with eg. telnet: telnet localhost imap2 x login user pass x select inbox and see if it sends READ-ONLY or READ-WRITE tag. I think the only reason for it to be treated as read-only is if the file permissions really are such. --=-9LTISmuVDFzmCgSaeiDj Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA3+gKyUhSUUBViskRAgkvAJ9Mamwaa2woW1BvHV5HIUcbK8ulkACfbEk1 2ROKWB1UF9iW5sLUG+I1/hA= =0C8e -----END PGP SIGNATURE----- --=-9LTISmuVDFzmCgSaeiDj-- From tss@iki.fi Mon Jun 28 12:56:52 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id A2726C00291F; Mon, 28 Jun 2004 12:56:52 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id A0010C002868 for ; Mon, 28 Jun 2004 12:56:50 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 903C61C350CA; Mon, 28 Jun 2004 12:48:37 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 76C651C1D0E0; Mon, 28 Jun 2004 12:48:03 +0300 (EEST) Subject: Re: [Dovecot] Locked index file From: Timo Sirainen To: Kevin Cramer In-Reply-To: <20040625135729.GA17265@plato.kevincramer.net> References: <20040625135729.GA17265@plato.kevincramer.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-lKrWQq//i84nE6ZHn9ka" Message-Id: <1088416083.30740.18.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 28 Jun 2004 12:48:03 +0300 X-Spam-Status: No, hits=-9.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 09:56:52 -0000 X-UID: 9677 Status: O Content-Length: 1777 --=-lKrWQq//i84nE6ZHn9ka Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2004-06-25 at 16:57, Kevin Cramer wrote: > I have docevot 0.99.10.6 installed on OpenBSD 3.5 and I'm using it > with Squirrelmail. I tried to empty my Trash folder and it timed out. > It looks like the process or thread died but the lock wasn't removed: >=20 > Jun 25 09:16:30 plato imap(kevin): Timeout while waiting for release of s= hared fcntl() lock for index file /home/kevin/Maildir/.Trash/.imap.index When all processes holding fcntl lock have either dropped it or died by themselves, the lock is gone. If all the processes really have died, this is operating system bug. > How can I free this lock? I have tried stopping and re-starting > dovecot already but that didn't help. Restarting Dovecot doesn't kill imap/pop3 processes that are running at the time. Did you check that they're all gone? > Also, is there something I > should do to prevent this in the future? The OpenBSD package sets the > default locking to fcntl for mbox. I'm not sure if that is the > setting that also controls the locking mechanism on the index files. It doesn't affect index files, they're always fcntl locked. Probably not much you can do to prevent this, if this was because some Dovecot process got stuck.. Also 0.99.10.6 indexes still don't work too well with OpenBSD, so it might be related to that. --=-lKrWQq//i84nE6ZHn9ka Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA3+lTyUhSUUBViskRAnF3AJ9PUccUrsT/Cw6ez3m3gzjTYj36cgCgmfMx 7le2G+1NOENWzXfMmAYFuoU= =xxEY -----END PGP SIGNATURE----- --=-lKrWQq//i84nE6ZHn9ka-- From tss@iki.fi Mon Jun 28 12:58:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2264AC00291F; Mon, 28 Jun 2004 12:58:40 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 31F04C002868 for ; Mon, 28 Jun 2004 12:58:38 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 2A8591C1D0E1; Mon, 28 Jun 2004 12:50:25 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1E09F1C1D0E0; Mon, 28 Jun 2004 12:49:51 +0300 (EEST) Subject: Re: [Dovecot] passwd + shadow auth problem From: Timo Sirainen To: T'aZ In-Reply-To: <20040626215702.2b215e48.tazdev@punkass.com> References: <20040626215702.2b215e48.tazdev@punkass.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-VAGrpq2CXkW2Qcq0H81G" Message-Id: <1088416190.30751.20.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 28 Jun 2004 12:49:50 +0300 X-Spam-Status: No, hits=-9.4 required=5.0 tests=AWL,BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 09:58:40 -0000 X-UID: 9678 Status: O --=-VAGrpq2CXkW2Qcq0H81G Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2004-06-26 at 22:57, T'aZ wrote: > here is the problem , i have local users > some have shadow password, some not, so i must create two auth > one to login via shadow , and one via passwd .. > i'm using 0.99.10.6 It's not supported with 0.99.10, 1.0-tests would work. --=-VAGrpq2CXkW2Qcq0H81G Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA3+m+yUhSUUBViskRAmvfAJ0W0x2zN3lMfPJ3KlcXGG/Ew7THfgCgnA9Z lqENM+dp0QdhIacqpIcLP20= =vOHf -----END PGP SIGNATURE----- --=-VAGrpq2CXkW2Qcq0H81G-- From hf@spg.tu-darmstadt.de Mon Jun 28 13:16:06 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B11F5C002929; Mon, 28 Jun 2004 13:16:06 +0300 (EEST) Received: from bounce.nt.e-technik.tu-darmstadt.de (bounce.nt.e-technik.tu-darmstadt.de [130.83.197.1]) by talvi.dovecot.org (Postfix) with ESMTP id 92A31C00292E for ; Mon, 28 Jun 2004 13:16:02 +0300 (EEST) Received: from [130.83.186.53] (blech.nt.e-technik.tu-darmstadt.de [130.83.186.53]) by bounce.nt.e-technik.tu-darmstadt.de (8.12.11/8.12.11) with ESMTP id i5SA7miP000901; Mon, 28 Jun 2004 12:07:48 +0200 (CEST) Mime-Version: 1.0 X-Sender: hf@bounce.nt.e-technik.tu-darmstadt.de (Unverified) Message-Id: In-Reply-To: <1088415754.30749.13.camel@hurina> References: <1088088932.17996.262.camel@hurina> <40DAEF71.1080502@spg.tu-darmstadt.de> <1088415754.30749.13.camel@hurina> Date: Mon, 28 Jun 2004 12:07:46 +0200 To: Timo Sirainen From: Hauke Fath Subject: Re: [Dovecot] 0.99.10.6 -imap flag update problem still present Content-Type: text/plain; charset="iso-8859-1" ; format="flowed" Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org, Hauke Fath X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 10:16:06 -0000 X-UID: 9679 Status: O Content-Length: 1530 Am 28.06.2004 um 12:42 Uhr +0300 schrieb Timo Sirainen: >Oh. This all pretty much sounds like Dovecot sees users INBOX as >read-only so it won't modify flags and won't expunge messages. > >You could check this with eg. telnet: > >telnet localhost imap2 >x login user pass >x select inbox > >and see if it sends READ-ONLY or READ-WRITE tag. > >I think the only reason for it to be treated as read-only is if the file >permissions really are such. From /etc/dovecot.conf: # Sync this with "DEFAULT" in /etc/courier/maildroprc default_mail_env = mbox:~/Mail/:INBOX=%h/Mail/INBOX [hf@bounce] ~ > cd Mail [hf@bounce] ~/Mail > ll INBOX 27008 -rw------- 1 hf spgmit 27610472 Jun 28 12:00 INBOX [hf@bounce] ~/Mail > telnet localhost imap2 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK dovecot ready. x login hf XXXXXXXX x OK Logged in. x select inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NotJunk Junk NonJunk) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NotJunk Junk NonJunk \*)] Flags permitted. * 604 EXISTS * 3 RECENT * OK [UNSEEN 573] First unseen. * OK [UIDVALIDITY 1054653796] UIDs valid * OK [UIDNEXT 5280] Predicted next UID x OK [READ-WRITE] Select completed. Hum... hauke -- Institut für Nachrichtentechnik /~\ The ASCII Ribbon Campaign FG Signalverarbeitung \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281, Fax -3778 / \ Respect for open standards From tss@iki.fi Mon Jun 28 13:30:11 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 37B6BC002929; Mon, 28 Jun 2004 13:30:11 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0A023C00280C for ; Mon, 28 Jun 2004 13:30:08 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 35C701C1D0E1; Mon, 28 Jun 2004 13:21:55 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1FA581C1D0E0; Mon, 28 Jun 2004 13:21:21 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10.6 -imap flag update problem still present From: Timo Sirainen To: Hauke Fath In-Reply-To: References: <1088088932.17996.262.camel@hurina> <40DAEF71.1080502@spg.tu-darmstadt.de> <1088415754.30749.13.camel@hurina> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-nUZ2toVGFvIgpOHuKngJ" Message-Id: <1088418080.30749.31.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 28 Jun 2004 13:21:20 +0300 X-Spam-Status: No, hits=-9.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 10:30:11 -0000 X-UID: 9680 Status: O Content-Length: 1126 --=-nUZ2toVGFvIgpOHuKngJ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-28 at 13:07, Hauke Fath wrote: > Am 28.06.2004 um 12:42 Uhr +0300 schrieb Timo Sirainen: > >Oh. This all pretty much sounds like Dovecot sees users INBOX as > >read-only so it won't modify flags and won't expunge messages. .. > x OK [READ-WRITE] Select completed. So, not that then. Are any flag changes permanent? If you modify seen flag, is "Status: RO" header ever written in the mbox? They aren't updated immediately, only after the mailbox is closed. And if moving mails didn't work, did simply expunging them? Anyway, this sounds pretty strange. I haven't heard of anything similiar before and 0.99.10.6 is used with mbox by many people.. --=-nUZ2toVGFvIgpOHuKngJ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA3/EgyUhSUUBViskRAsmFAJ0XRKO2kfPmE0pm2DA4E+p6nKTOpgCfTqDY VRYOkpqxtW4nzHzWI1DzjjU= =FJZq -----END PGP SIGNATURE----- --=-nUZ2toVGFvIgpOHuKngJ-- From lesliev@icoc.co.za Mon Jun 28 16:01:28 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B9B6EC00280C; Mon, 28 Jun 2004 16:01:28 +0300 (EEST) Received: from mail.interprise.co.za (ns2.interprise.co.za [196.3.167.51]) by talvi.dovecot.org (Postfix) with ESMTP id 34EABC000D90 for ; Mon, 28 Jun 2004 16:01:26 +0300 (EEST) Received: from mail.tangent.co.za (rrba-34-107.telkomadsl.co.za [165.165.34.107]) by mail.interprise.co.za (Postfix) with ESMTP id D3B72193FC9 for ; Mon, 28 Jun 2004 14:53:06 +0200 (SAST) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.tangent.co.za (Postfix) with ESMTP id C8060FDFE8 for ; Mon, 28 Jun 2004 14:53:06 +0200 (SAST) Received: from mail.tangent.co.za ([127.0.0.1]) by localhost (kerberos.tangent.co.za [127.0.0.1]) (amavisd-new, port 10025) with LMTP id 24555-03-8 for ; Mon, 28 Jun 2004 14:52:56 +0200 (SAST) Received: from pc3.training.tangent.co.za (pc3.training.tangent.co.za [192.168.10.123]) by mail.tangent.co.za (Postfix) with ESMTP id 73A32FD844 for ; Mon, 28 Jun 2004 14:52:56 +0200 (SAST) From: Leslie Viljoen To: dovecot@dovecot.org Date: Mon, 28 Jun 2004 16:51:05 +0200 User-Agent: KMail/1.6.1 MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200406281651.05500.lesliev@icoc.co.za> X-Virus-Scanned: by amavisd-new at tangent.co.za Subject: [Dovecot] Mailbox archiving X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 13:01:29 -0000 X-UID: 9681 Status: O Hi all! I have a strange problem with Dovecot - deleted messages never seem to get deleted on the server! Deleted messages just seem to get a 'T' at the end of them on the server and remain there, so user mail boxes continue to grow to incredible sizes. Is this a setting I must change somewhere? Must I delete these files manually? Leslie From hf@spg.tu-darmstadt.de Mon Jun 28 17:36:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1DA4DC000D93; Mon, 28 Jun 2004 17:36:40 +0300 (EEST) Received: from bounce.nt.e-technik.tu-darmstadt.de (bounce.nt.e-technik.tu-darmstadt.de [130.83.197.1]) by talvi.dovecot.org (Postfix) with ESMTP id 095EDC000D90 for ; Mon, 28 Jun 2004 17:36:37 +0300 (EEST) Received: from spg.tu-darmstadt.de (heiligenberg.nt.e-technik.tu-darmstadt.de [130.83.186.54]) by bounce.nt.e-technik.tu-darmstadt.de (8.12.11/8.12.11) with ESMTP id i5SESMPh011007; Mon, 28 Jun 2004 16:28:22 +0200 (CEST) Message-ID: <40E02B06.9040702@spg.tu-darmstadt.de> Date: Mon, 28 Jun 2004 16:28:22 +0200 From: Hauke Fath Organization: TU Darmstadt User-Agent: Mozilla/5.0 (X11; U; NetBSD i386; en-US; rv:1.6) Gecko/20040315 X-Accept-Language: en-us, en, de-de MIME-Version: 1.0 To: Timo Sirainen Subject: Re: [Dovecot] 0.99.10.6 -imap flag update problem still present References: <1088088932.17996.262.camel@hurina> <40DAEF71.1080502@spg.tu-darmstadt.de> <1088415754.30749.13.camel@hurina> <1088418080.30749.31.camel@hurina> In-Reply-To: <1088418080.30749.31.camel@hurina> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 14:36:40 -0000 X-UID: 9682 Status: O Content-Length: 1421 Timo Sirainen wrote: > On Mon, 2004-06-28 at 13:07, Hauke Fath wrote: > >>x OK [READ-WRITE] Select completed. > > So, not that then. Are any flag changes permanent? If you modify seen > flag, is "Status: RO" header ever written in the mbox? Where would I see that? In a telnet session? In the headers in the mailbox file? > They aren't > updated immediately, only after the mailbox is closed. And if moving > mails didn't work, did simply expunging them? > > Anyway, this sounds pretty strange. I haven't heard of anything similiar > before and 0.99.10.6 is used with mbox by many people.. 8/ ... There are actually two problems that are reported to me: (1) People are reading mail, and when the next mail comes in, the mails just read change status to 'unread'. I've seen this myself with a variety of clients, not strictly reproducibly, but... it happens. (2) People move read mail from the inbox to some other folder (or delete it) and find two copies - one in the new folder (or trash), and one in the old one. This I have not seen myself, and those who have seen it have not yet reported it for 0.99.10.6. hauke -- Hauke Fath /~\ The ASCII Ribbon Campaign Institut für Nachrichtentechnik \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281 / \ Respect for open standards From Juergen.Daubert@t-online.de Mon Jun 28 17:49:01 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7E048C000D93; Mon, 28 Jun 2004 17:49:01 +0300 (EEST) Received: from mailout06.sul.t-online.com (mailout06.sul.t-online.com [194.25.134.19]) by talvi.dovecot.org (Postfix) with ESMTP id EA230C000D90 for ; Mon, 28 Jun 2004 17:48:58 +0300 (EEST) Received: from fwd04.aul.t-online.de by mailout06.sul.t-online.com with smtp id 1BexJM-000128-01; Mon, 28 Jun 2004 16:40:44 +0200 Received: from pD951887A.dip.t-dialin.net (TtKVFeZLZe6mVtA8UrfzRADc1bRQQa1NQCGZRYoTWUE--qrglv9U0x@[217.81.136.122]) by fwd04.sul.t-online.com with esmtp id 1BexIu-1sq8Po0; Mon, 28 Jun 2004 16:40:16 +0200 Received: from 192.168.0.1 by ser.netz with esmtp (masqmail 0.2.20) id 1BexIp-1Ar-00 for ; Mon, 28 Jun 2004 16:40:11 +0200 Received: from juergen by jue.netz with local (Exim 4.34) id 1BexIo-0000Af-Pt for dovecot@dovecot.org; Mon, 28 Jun 2004 16:40:10 +0200 Date: Mon, 28 Jun 2004 16:40:10 +0200 From: Juergen.Daubert@t-online.de (Juergen Daubert) To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? Message-ID: <20040628144010.GA650@jue.netz> Mail-Followup-To: dovecot@dovecot.org References: <1087971391.6751.74.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1087971391.6751.74.camel@hurina> User-Agent: Mutt/1.4.2.1i X-Seen: false X-ID: TtKVFeZLZe6mVtA8UrfzRADc1bRQQa1NQCGZRYoTWUE--qrglv9U0x X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 14:49:01 -0000 X-UID: 9683 Status: O Content-Length: 1701 On Wed, Jun 23, 2004 at 09:16:32AM +0300, Timo Sirainen wrote: > http://dovecot.org/test/ > > Well, remember when I said: > > > Here you go, maildir syncing problems finally fixed (I hope). Well, > > except there's this "new-dir-only syncing" optimization which I'm not > > really sure if it works as it should. While doing some test with 1.0-test22 I've found one strange bug which seems to be related to the 'FOLDER INTERNAL DATA' mail that will be in inserted by uw-imap. To reproduce: 1. stop dovecot, start uw-imap 2. create a new folder and cp some mails into this new folder 3. stop uw-imap, start dovecot 4. select the new created folder Dovecot v1.0-test22 starting up imap-login: Login: juergen [192.168.0.1] IMAP(juergen): file mail-index-transaction.c: line 147 (mail_index_transaction_lookup): assertion failed: (seq >= t->first_new_seq && seq <= t->last_new_seq) child 4432 (imap) killed with signal 6 After reselecting this folder with my client (mutt) I can see sometimes either one additional mail at the bottom or even the first mail doubled ? Sorry, but some other errors, which may be related: IMAP(juergen): mbox sync: UID inserted in the middle of mailbox /home/juergen/Mail/_spam (241 > 240) IMAP(juergen): file mail-index-view.c: line 176 (_view_lookup_full): assertion failed: (seq > 0 && seq <= mail_index_view_get_message_count(view)) child 2891 (imap) killed with signal 6 and IMAP(juergen): file mbox-sync-rewrite.c: line 320 (mbox_sync_read_and_move): assertion failed: (need_space == -mails[idx].space) child 2899 (imap) killed with signal 6 Greetings Juergen -- juergen.daubert@t-online.de From t1lt@bk.ru Mon Jun 28 18:05:32 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5C941C000DE0; Mon, 28 Jun 2004 18:05:32 +0300 (EEST) Received: from sun.com (port-212-202-37-131.dynamic.qsc.de [212.202.37.131]) by talvi.dovecot.org (Postfix) with SMTP id 5D0F8C000D93 for ; Mon, 28 Jun 2004 18:05:28 +0300 (EEST) Received: (qmail 20094 invoked by uid 1000); 28 Jun 2004 14:57:13 -0000 Date: Mon, 28 Jun 2004 16:57:13 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? Message-ID: <20040628145713.GG28969@widecut.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1087971391.6751.74.camel@hurina> <20040624183255.GE4063@widecut.net> <1088415548.30749.8.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1088415548.30749.8.camel@hurina> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 15:05:32 -0000 X-UID: 9684 Status: O Content-Length: 1692 On Mon, Jun 28, 2004 at 12:39:08PM +0300, Timo Sirainen wrote: > On Thu, 2004-06-24 at 21:32, Moe Wibble wrote: > > Sorry, still getting: > > > > sp dovecot: IMAP(moe): Maildir /home/moe/Maildir/.INBOX.zp sync: UID inserted in the middle of mailbox (1515 > 1514, file = msg.QNsy:2,) > > Are you sure the maildir filename is unique and has never existed > before? If "msg.QNsy" is the real name, it doesn't conform to maildir > spec, although Dovecot doesn't really care about that. But if QNsy is > eg. inode number, this could easily happen just because inode numbers > are reused and you don't have any kind of timestamp in the file name. Nope, I'm not sure. The only program delivering to my maildirs is procmail, tho. Seems like procmail creates these kind of filenames, should I file a bug? > Older Dovecots and probably most other maildir clients don't complain > about reappearing files, but I think that may cause some (rare) hidden > problems. If the bugs are gone for other people then that's most likely the cause. Strange enough that procmail doesn't write properly to Maildirs. > If they really are unique, it would be helpful if you could run a > debugging patch and send all the output to me. It generates > /tmp/dovecot.* files with tons of debugging data. I'm not sure whether they're unique but since they're only 4 digits I suppose they're at best some Very Cheap Imitation of unique... I guess it's time to find a better mailfilter than procmail. > http://dovecot.org/patches/dovecot-maildir-debug.diff Gonna try that later if switching to a filter that writes _real_ Maildir didn't help. Any suggestions on what to use? It should run from dot-qmail.. greets From maikel@ladot.com Mon Jun 28 18:41:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0C54DC000DDD; Mon, 28 Jun 2004 18:41:35 +0300 (EEST) Received: from amsfep18-int.chello.nl (amsfep18-int.chello.nl [213.46.243.13]) by talvi.dovecot.org (Postfix) with ESMTP id ADFD0C000D93 for ; Mon, 28 Jun 2004 18:41:32 +0300 (EEST) Received: from myst.dohd.org ([62.163.181.64]) by amsfep18-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040628153318.CUJU25344.amsfep18-int.chello.nl@myst.dohd.org>; Mon, 28 Jun 2004 17:33:18 +0200 Received: from [10.0.3.6] (mactop-wi.myst.dohd.org [10.0.3.6]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i5SFYTtn042619; Mon, 28 Jun 2004 17:34:39 +0200 (CEST) (envelope-from maikel@ladot.com) In-Reply-To: <20040628145713.GG28969@widecut.net> References: <1087971391.6751.74.camel@hurina> <20040624183255.GE4063@widecut.net> <1088415548.30749.8.camel@hurina> <20040628145713.GG28969@widecut.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <6EF8289F-C918-11D8-ABA3-000A95B3C1CA@ladot.com> Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? Date: Mon, 28 Jun 2004 17:32:58 +0200 To: Moe Wibble X-Mailer: Apple Mail (2.618) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 15:41:35 -0000 X-UID: 9685 Status: O On Jun 28, 2004, at 4:57 PM, Moe Wibble wrote: > I'm not sure whether they're unique but since they're only 4 digits I > suppose they're at best some Very Cheap Imitation of unique... > I guess it's time to find a better mailfilter than procmail. > >> http://dovecot.org/patches/dovecot-maildir-debug.diff > > Gonna try that later if switching to a filter that writes _real_ > Maildir didn't help. At home I run procmail from sendmail (as the local mailer) and it generates files like: 1085555933.58805_0.hostname which seems to be a timestamp, the PID of procmail with an addition and a hostname. My procmail version is built from ports on freebsd 5.1 and is: "procmail v3.22 2001/09/10". Kind regards, Maikel Verheijen From t1lt@bk.ru Mon Jun 28 18:55:40 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id BBDDEC000DE0; Mon, 28 Jun 2004 18:55:40 +0300 (EEST) Received: from sun.com (port-212-202-37-131.dynamic.qsc.de [212.202.37.131]) by talvi.dovecot.org (Postfix) with SMTP id 82707C000DDD for ; Mon, 28 Jun 2004 18:55:38 +0300 (EEST) Received: (qmail 2262 invoked by uid 1000); 28 Jun 2004 15:47:24 -0000 Date: Mon, 28 Jun 2004 17:47:24 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? Message-ID: <20040628154724.GA447@widecut.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1087971391.6751.74.camel@hurina> <20040624183255.GE4063@widecut.net> <1088415548.30749.8.camel@hurina> <20040628145713.GG28969@widecut.net> <6EF8289F-C918-11D8-ABA3-000A95B3C1CA@ladot.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6EF8289F-C918-11D8-ABA3-000A95B3C1CA@ladot.com> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 15:55:40 -0000 X-UID: 9686 Status: O Content-Length: 1127 On Mon, Jun 28, 2004 at 05:32:58PM +0200, Maikel Verheijen wrote: > > On Jun 28, 2004, at 4:57 PM, Moe Wibble wrote: > > >I'm not sure whether they're unique but since they're only 4 digits I > >suppose they're at best some Very Cheap Imitation of unique... > >I guess it's time to find a better mailfilter than procmail. > > > >>http://dovecot.org/patches/dovecot-maildir-debug.diff > > > >Gonna try that later if switching to a filter that writes _real_ > >Maildir didn't help. > > At home I run procmail from sendmail (as the local mailer) and it > generates files like: > > 1085555933.58805_0.hostname > > which seems to be a timestamp, the PID of procmail with an addition and > a hostname. > > My procmail version is built from ports on freebsd 5.1 and is: > "procmail v3.22 2001/09/10". Ah, interesting. I'm running the "same" version but from debian: procmail v3.22 2001/09/10 procmail_3.22-9_i386.deb Your message (the one I am replying to) was stored as: msg.qBs4 Seems the BSD port has some patch applied that the debian version hasn't. I'm gonna file a bug report to the package maintainer. greets From rjohnson@medata.com Mon Jun 28 21:50:49 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 83DD8C000DE0; Mon, 28 Jun 2004 21:50:49 +0300 (EEST) Received: from mail.medata.com (firewall.medata.com [65.104.121.53]) by talvi.dovecot.org (Postfix) with ESMTP id 743FBC000DDD for ; Mon, 28 Jun 2004 21:50:46 +0300 (EEST) Received: from [172.24.2.200] (tech008 [172.24.2.200]) (authenticated bits=0) by mail.medata.com (8.12.8/8.12.8) with ESMTP id i5SIgQKE015941 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 28 Jun 2004 11:42:29 -0700 Message-ID: <40E06694.3060001@medata.com> Date: Mon, 28 Jun 2004 11:42:28 -0700 From: Rick Johnson Organization: Medata, Inc. User-Agent: Mozilla Thunderbird 0.7 (X11/20040615) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Leslie Viljoen Subject: Re: [Dovecot] Mailbox archiving References: <200406281651.05500.lesliev@icoc.co.za> In-Reply-To: <200406281651.05500.lesliev@icoc.co.za> X-Enigmail-Version: 0.84.10001.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamd / ClamAV version 0.73, clamav-milter version 0.73a on mail.medata.com X-Virus-Status: Clean Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 18:50:49 -0000 X-UID: 9687 Status: O Content-Length: 1116 Leslie Viljoen wrote: > Hi all! > > I have a strange problem with Dovecot - deleted messages never seem to get > deleted on the server! Deleted messages just seem to get a 'T' at the end of > them on the server and remain there, so user mail boxes continue to grow to > incredible sizes. Is this a setting I must change somewhere? Must I delete > these files manually? This is an MUA issue, not a Dovecot issue. This could be handled either via a script on the server side: I run this nightly via cron (as root): find /home/*/Maildir/ -name "*2,*T*" -type f -exec rm {} \; Or ensure that your mail client is set to expunge or compact folders on exit. Which MUA are your users using? In Mozilla or Thunderbird, the setting is: Under Account Settings, Server Settings (for each account) - check: 'Clean Up ("Expunge") Inbox on Exit' Other clients may differ, but usually "Clean Up", "Compact", or "Expunge" are the terms utilized. HTH, -Rick -- Rick Johnson, RHCE #807302311706007 - rjohnson@medata.com Linux/Network Administrator - Medata, Inc. PGP Public Key: https://mail.medata.com/pgp/rjohnson.asc From strombrg@dcs.nac.uci.edu Mon Jun 28 22:12:55 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B5F39C002826; Mon, 28 Jun 2004 22:12:55 +0300 (EEST) Received: from dcs.nac.uci.edu (dcs.nac.uci.edu [128.200.34.32]) by talvi.dovecot.org (Postfix) with ESMTP id C066FC002822 for ; Mon, 28 Jun 2004 22:12:51 +0300 (EEST) Received: from [128.200.34.35] (tesuji.nac.uci.edu [128.200.34.35]) by dcs.nac.uci.edu (8.12.11/8.12.10) with ESMTP id i5SJ4Ybw031591; Mon, 28 Jun 2004 12:04:34 -0700 Subject: Re: [Dovecot] Is Dovecot able to use PostgreSQL to store mailboxes? From: Dan Stromberg To: Timo Sirainen In-Reply-To: <578675DC-C3FA-11D8-8017-000393CC2E90@iki.fi> References: <20040621140438.22803b07.wmoran@potentialtech.com> <3CAC08BE-C3B0-11D8-8017-000393CC2E90@iki.fi> <40D79034.2090207@tacocat.net> <578675DC-C3FA-11D8-8017-000393CC2E90@iki.fi> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-0hHeTKQzt0SyQSHwT5+j" Message-Id: <1088449473.25550.33.camel@tesuji.nac.uci.edu> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Mon, 28 Jun 2004 12:04:34 -0700 Cc: Tom Allison , Dan Stromberg , dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 19:12:55 -0000 X-UID: 9688 Status: O Content-Length: 1269 --=-0hHeTKQzt0SyQSHwT5+j Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-21 at 20:14, Timo Sirainen wrote: > On 22.6.2004, at 04:49, Tom Allison wrote: >=20 > > I had a conversation with the same fellow a while back. > > > > I'm told that dbmail is actually very fast in mail retrieval. But I=20 > > was unable to confirm it myself. >=20 > It could be fast, but it couldn't be faster than doing "cat mailfile",=20 > which is basically what maildir clients do. Actually, in a really large folder, a database (with a decent organization) could be significantly faster than "cat mailfile" on more traditional filesystems. However, as filesystems take on more database-like features, this distinction will likely become less important. (EG: dir_index on ext3). Thanks for dovecot. It's really great. --=20 Dan Stromberg DCS/NACS/UCI --=-0hHeTKQzt0SyQSHwT5+j Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQBA4GvBo0feVm00f/8RAtq5AJ9TbbilolpWBvsbBeU/qgw6d0338wCfQ9Sc CA468/qW0uscBjH+3WpiD+4= =WYNR -----END PGP SIGNATURE----- --=-0hHeTKQzt0SyQSHwT5+j-- From tss@iki.fi Mon Jun 28 22:38:16 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 7717DC002826; Mon, 28 Jun 2004 22:38:16 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 61525C002822 for ; Mon, 28 Jun 2004 22:38:14 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 63CC61C1D0E1; Mon, 28 Jun 2004 22:30:00 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1B7C71C1D0E0 for ; Mon, 28 Jun 2004 22:29:27 +0300 (EEST) Subject: Re: [Dovecot] Is Dovecot able to use PostgreSQL to store mailboxes? From: Timo Sirainen To: dovecot@dovecot.org In-Reply-To: <1088449473.25550.33.camel@tesuji.nac.uci.edu> References: <20040621140438.22803b07.wmoran@potentialtech.com> <3CAC08BE-C3B0-11D8-8017-000393CC2E90@iki.fi> <40D79034.2090207@tacocat.net> <578675DC-C3FA-11D8-8017-000393CC2E90@iki.fi> <1088449473.25550.33.camel@tesuji.nac.uci.edu> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-RdDW1WqaHC1aNXidHBk1" Message-Id: <1088450966.30747.52.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 28 Jun 2004 22:29:26 +0300 X-Spam-Status: No, hits=-9.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 19:38:16 -0000 X-UID: 9689 Status: O Content-Length: 1505 --=-RdDW1WqaHC1aNXidHBk1 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-28 at 22:04, Dan Stromberg wrote: > > It could be fast, but it couldn't be faster than doing "cat mailfile",=20 > > which is basically what maildir clients do. >=20 > Actually, in a really large folder, a database (with a decent > organization) could be significantly faster than "cat mailfile" on more > traditional filesystems. >=20 > However, as filesystems take on more database-like features, this > distinction will likely become less important. (EG: dir_index on ext3). Right. Directory indexes are really important with maildirs, especially large ones. I guess a database can be slightly faster even with those, depending on how much better it stores the data internally than filesystems. But SQL databases still have the overhead of parsing SQL commands, IPC and what else.. ReiserFS 4 promises very good performance with small files as well as other great things. I've been thinking about adding native support for it once it's more widely used. It should be able to at least partially replace Dovecot's indexes. --=-RdDW1WqaHC1aNXidHBk1 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA4HGWyUhSUUBViskRAqfiAKCAU5ovmG4rwTByn+jfx4wgEB4HogCeObJg 0QgOJLAZ33sY+ypo1bVXK2o= =ymhe -----END PGP SIGNATURE----- --=-RdDW1WqaHC1aNXidHBk1-- From tss@iki.fi Mon Jun 28 22:44:43 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 87B74C00291F; Mon, 28 Jun 2004 22:44:43 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 3E564C002822 for ; Mon, 28 Jun 2004 22:44:41 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 39AD01C1D0E1; Mon, 28 Jun 2004 22:36:27 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 47CE11C1D0E0; Mon, 28 Jun 2004 22:35:53 +0300 (EEST) Subject: Re: [Dovecot] Mailbox archiving From: Timo Sirainen To: Rick Johnson In-Reply-To: <40E06694.3060001@medata.com> References: <200406281651.05500.lesliev@icoc.co.za> <40E06694.3060001@medata.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-kl1urakRS241zWonfKWr" Message-Id: <1088451352.30749.60.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 28 Jun 2004 22:35:52 +0300 X-Spam-Status: No, hits=-9.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 19:44:43 -0000 X-UID: 9690 Status: O --=-kl1urakRS241zWonfKWr Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-28 at 21:42, Rick Johnson wrote: > This could be handled either via a script on the server side: > I run this nightly via cron (as root): >=20 > find /home/*/Maildir/ -name "*2,*T*" -type f -exec rm {} \; Just a small note: "*:2,*T*" would be a bit safer as the maildir base name can contain "2," string, but not ':' character. ',' is already used by some clients to include extra information with the file, eg. file size with maildir++ quota: "base,S=3D123:2,". --=-kl1urakRS241zWonfKWr Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA4HMYyUhSUUBViskRAofhAJ9hJ+vmkgGkySJg0KbGSfmBySKdLgCfdkAf h20EZb5dTDNhzzAPIIY39X0= =bLCW -----END PGP SIGNATURE----- --=-kl1urakRS241zWonfKWr-- From tss@iki.fi Mon Jun 28 23:00:51 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5F128C002822; Mon, 28 Jun 2004 23:00:51 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B44A8C00280C for ; Mon, 28 Jun 2004 23:00:48 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 990AB1C1D0E1; Mon, 28 Jun 2004 22:52:34 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 113661C1D0E0; Mon, 28 Jun 2004 22:52:00 +0300 (EEST) Subject: Re: [Dovecot] 0.99.10.6 -imap flag update problem still present From: Timo Sirainen To: Hauke Fath In-Reply-To: <40E02B06.9040702@spg.tu-darmstadt.de> References: <1088088932.17996.262.camel@hurina> <40DAEF71.1080502@spg.tu-darmstadt.de> <1088415754.30749.13.camel@hurina> <1088418080.30749.31.camel@hurina> <40E02B06.9040702@spg.tu-darmstadt.de> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-QpG4Em4Twzqey1Xo0O8q" Message-Id: <1088452319.30747.77.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 28 Jun 2004 22:51:59 +0300 X-Spam-Status: No, hits=-9.5 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 20:00:51 -0000 X-UID: 9691 Status: O Content-Length: 2532 --=-QpG4Em4Twzqey1Xo0O8q Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-28 at 17:28, Hauke Fath wrote: > Timo Sirainen wrote: > > On Mon, 2004-06-28 at 13:07, Hauke Fath wrote: > >=20 > >>x OK [READ-WRITE] Select completed. > >=20 > > So, not that then. Are any flag changes permanent? If you modify seen > > flag, is "Status: RO" header ever written in the mbox?=20 >=20 > Where would I see that? In a telnet session? In the headers in the > mailbox file? Well, both would work with 0.99.10.6. Probably easier to check from mbox file itself. But if the problems didn't always happen, I guess that's not the problem itself. > There are actually two problems that are reported to me: >=20 > (1) People are reading mail, and when the next mail comes in, the mails > just read change status to 'unread'. I've seen this myself with a > variety of clients, not strictly reproducibly, but... it happens. Seeing what Dovecot and IMAP clients talk when it happens would help.. Enabling rawlog (last chapter in http://dovecot.org/bugreport.html) would do that. One explanation would be that Dovecot sees the new mails (or that mbox has changed), then syncs the whole file again, but for some reason the UIDs don't match in right order, or some other data didn't match right, so Dovecot expunges those messages and creates new UIDs for them, forgetting about the old flag changes which wheren't yet written to disk. For example some older MUAs used to sort mbox, if Dovecot's X-UID header ordering was changed it generated new ones. > (2) People move read mail from the inbox to some other folder (or delete=20 > it) and find two copies - one in the new folder (or trash), and one in=20 > the old one. This I have not seen myself, and those who have seen it=20 > have not yet reported it for 0.99.10.6. Could be the same problem.. Dovecot moves the mails, then tries to expunge the messages only to find out they were already gone. I'd almost suggest trying 1.0-tests, but I guess they still have some problems too which might just make things worse (corrupt the mboxes), although I've been running them fine for a week or so.. --=-QpG4Em4Twzqey1Xo0O8q Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA4HbfyUhSUUBViskRAo9xAKCNmygpX/aS1TpqmKeSGb9Gti8ySQCgpHxE hxtTVl5x6lvS7u2ipAWcZQE= =GqtW -----END PGP SIGNATURE----- --=-QpG4Em4Twzqey1Xo0O8q-- From t1lt@bk.ru Mon Jun 28 23:06:07 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 84310C002822; Mon, 28 Jun 2004 23:06:07 +0300 (EEST) Received: from sun.com (port-212-202-37-131.dynamic.qsc.de [212.202.37.131]) by talvi.dovecot.org (Postfix) with SMTP id CC53BC00280C for ; Mon, 28 Jun 2004 23:06:04 +0300 (EEST) Received: (qmail 28272 invoked by uid 1000); 28 Jun 2004 19:57:50 -0000 Date: Mon, 28 Jun 2004 21:57:50 +0200 From: Moe Wibble To: dovecot@dovecot.org Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? Message-ID: <20040628195750.GB10491@widecut.net> Mail-Followup-To: Moe Wibble , dovecot@dovecot.org References: <1087971391.6751.74.camel@hurina> <20040624183255.GE4063@widecut.net> <1088415548.30749.8.camel@hurina> <20040628145713.GG28969@widecut.net> <6EF8289F-C918-11D8-ABA3-000A95B3C1CA@ladot.com> <20040628154724.GA447@widecut.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040628154724.GA447@widecut.net> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 20:06:07 -0000 X-UID: 9692 Status: O Content-Length: 1648 On Mon, Jun 28, 2004 at 05:47:24PM +0200, Moe Wibble wrote: > On Mon, Jun 28, 2004 at 05:32:58PM +0200, Maikel Verheijen wrote: > > > > On Jun 28, 2004, at 4:57 PM, Moe Wibble wrote: > > > > >I'm not sure whether they're unique but since they're only 4 digits I > > >suppose they're at best some Very Cheap Imitation of unique... > > >I guess it's time to find a better mailfilter than procmail. > > > > > >>http://dovecot.org/patches/dovecot-maildir-debug.diff > > > > > >Gonna try that later if switching to a filter that writes _real_ > > >Maildir didn't help. > > > > At home I run procmail from sendmail (as the local mailer) and it > > generates files like: > > > > 1085555933.58805_0.hostname > > > > which seems to be a timestamp, the PID of procmail with an addition and > > a hostname. > > > > My procmail version is built from ports on freebsd 5.1 and is: > > "procmail v3.22 2001/09/10". > > Ah, interesting. > I'm running the "same" version but from debian: > > procmail v3.22 2001/09/10 > procmail_3.22-9_i386.deb > > Your message (the one I am replying to) was stored as: msg.qBs4 > > Seems the BSD port has some patch applied that the debian version hasn't. > I'm gonna file a bug report to the package maintainer. Problem solved. It was my fault... The pkg-maintainer Santiago instantly replied to my bug report and enlightened me about my broken procmailrc. I was missing the slashes after the Maildir paths so procmail didn't treat them as Maildirs but as.. well, dirs that don't require unique names. I've corrected my mistake and gonna give that test22 another shot. Sorry for causing confusion! best regards From tss@iki.fi Mon Jun 28 23:21:35 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 04455C00280C; Mon, 28 Jun 2004 23:21:35 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 00123C000DE4 for ; Mon, 28 Jun 2004 23:21:32 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id E472A1C1D0E1; Mon, 28 Jun 2004 23:13:18 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 9BDCD1C1D0E0 for ; Mon, 28 Jun 2004 23:12:44 +0300 (EEST) Mime-Version: 1.0 (Apple Message framework v618) In-Reply-To: <20040628195750.GB10491@widecut.net> References: <1087971391.6751.74.camel@hurina> <20040624183255.GE4063@widecut.net> <1088415548.30749.8.camel@hurina> <20040628145713.GG28969@widecut.net> <6EF8289F-C918-11D8-ABA3-000A95B3C1CA@ladot.com> <20040628154724.GA447@widecut.net> <20040628195750.GB10491@widecut.net> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-2-624699597" Message-Id: <84D0C9CB-C93F-11D8-BCE6-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? Date: Mon, 28 Jun 2004 23:12:45 +0300 To: Dovecot list X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Status: No, hits=-6.8 required=5.0 tests=AWL,BAYES_20,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_APPLEMAIL autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 20:21:35 -0000 X-UID: 9693 Status: O Content-Length: 1367 --Apple-Mail-2-624699597 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 28.6.2004, at 22:57, Moe Wibble wrote: > Problem solved. It was my fault... > The pkg-maintainer Santiago instantly replied to my bug report and > enlightened me about my broken procmailrc. I was missing the slashes > after > the Maildir paths so procmail didn't treat them as Maildirs but as.. > well, dirs that don't require unique names. Perhaps Dovecot should require at least minimal compliance from maildir filenames so problem like these wouldn't happen. IIRC Courier requires that filename starts with digit, otherwise it isn't touched. Anyone have opinions either way? One reason why I haven't added any checks is because while testing I often create filenames such as "foo", "foo2", etc. Might take a while to start remembering that digit is required as first character. --Apple-Mail-2-624699597 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA4Hu+yUhSUUBViskRAj3qAJ90RIjPGTLzfAogiU0sfZPz0E+R3wCgmfRo 2oESqj/tZw5OcbEb3FrcCPQ= =fyfb -----END PGP SIGNATURE----- --Apple-Mail-2-624699597-- From tomi.hakala@clinet.fi Mon Jun 28 23:43:45 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id B489CC000DE4; Mon, 28 Jun 2004 23:43:45 +0300 (EEST) Received: from smtp1.song.fi (smtp1.song.fi [194.100.2.121]) by talvi.dovecot.org (Postfix) with ESMTP id E18C7C000D93 for ; Mon, 28 Jun 2004 23:43:43 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by virusscanner.smtp1.song.fi (Postfix) with ESMTP id B1A9D9C948 for ; Mon, 28 Jun 2004 23:35:29 +0300 (EEST) Received: from smtp1.song.fi ([127.0.0.1]) by localhost (smtp1 [127.0.0.1]) (anti-virus) with ESMTP id 12809-02 for ; Mon, 28 Jun 2004 23:35:29 +0300 (EEST) Received: from clinet.fi (denver.clinet.fi [194.100.200.66]) by smtp1.song.fi (Postfix) with ESMTP id 7201C9C947 for ; Mon, 28 Jun 2004 23:35:29 +0300 (EEST) Message-ID: <40E08115.163A834E@clinet.fi> Date: Mon, 28 Jun 2004 23:35:33 +0300 From: Tomi Hakala X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Dovecot list Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: [Dovecot] Dovecot on Redhat GFS X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 20:43:45 -0000 X-UID: 9694 Status: O Now that Redhat released GFS to GLP has anyone gotten around to test Dovecot on top of that? -- Tomi Hakala From schrock@dayzed.com Tue Jun 29 01:05:42 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id F12DBC000DE3; Tue, 29 Jun 2004 01:05:42 +0300 (EEST) Received: from mail.dayzed.com (24-176-252-149.cs-cres.charterpipeline.net [24.176.252.149]) by talvi.dovecot.org (Postfix) with ESMTP id B7107C000987 for ; Tue, 29 Jun 2004 01:05:40 +0300 (EEST) Received: from dayzed.com (localhost.localdomain [127.0.0.1]) by mail.dayzed.com (Postfix) with ESMTP id DB36D233EF for ; Mon, 28 Jun 2004 14:57:23 -0700 (PDT) Received: from 66-224-116-226.atgi.net ([66.224.116.226]) (SquirrelMail authenticated user schrock); by new.host.name with HTTP; Mon, 28 Jun 2004 14:57:23 -0700 (PDT) Message-ID: <19539.66.224.116.226.1088459843.squirrel@66.224.116.226> In-Reply-To: <200406262134.08765.bah@webmedic.net> References: <35223.192.168.50.9.1088221572.squirrel@192.168.50.9> <200406262134.08765.bah@webmedic.net> Date: Mon, 28 Jun 2004 14:57:23 -0700 (PDT) Subject: Re: [Dovecot] phpGroupWare From: "Avery" To: dovecot@dovecot.org User-Agent: SquirrelMail/1.5.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 Importance: Normal X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: schrock@dayzed.com List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 22:05:43 -0000 X-UID: 9695 Status: O I am currently using SQ mail also. Was wondering though about phpGroupWare. Brook Humphrey said: > On Friday 25 June 2004 08:46 pm, Avery wrote: >> Anyone here using phpGroupWare with dovecot? Does anyone know if it is >> possible? >> >> Thanks > I use squirllmail and it works great. > > -- > -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- > Brook Humphrey > Mobile PC Medic, 420 1st, Cheney, WA 99004, 509-235-9107 > http://www.webmedic.net, bah@webmedic.net, bah@linux-mandrake.com > Holiness unto the Lord > -~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~-~`'~- > > -- Avery From tss@iki.fi Tue Jun 29 01:08:00 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C5DE2C000DE7; Tue, 29 Jun 2004 01:08:00 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id B608CC000DE3 for ; Tue, 29 Jun 2004 01:07:58 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 87A091C1D0E0; Tue, 29 Jun 2004 00:59:44 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 63A2A1C350E6; Tue, 29 Jun 2004 00:59:09 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? From: Timo Sirainen To: Juergen Daubert In-Reply-To: <20040628144010.GA650@jue.netz> References: <1087971391.6751.74.camel@hurina> <20040628144010.GA650@jue.netz> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Sib/gUBU0tpVbyewdT76" Message-Id: <1088459948.2007.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 29 Jun 2004 00:59:08 +0300 X-Spam-Status: No, hits=-9.6 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 22:08:00 -0000 X-UID: 9696 Status: O Content-Length: 1243 --=-Sib/gUBU0tpVbyewdT76 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2004-06-28 at 17:40, Juergen Daubert wrote: > While doing some test with 1.0-test22 I've found one strange bug which > seems to be related to the 'FOLDER INTERNAL DATA' mail that will be in > inserted by uw-imap. Thanks, fixed. > After reselecting this folder with my client (mutt) I can see=20 > sometimes either one additional mail at the bottom or even the first=20 > mail doubled ? I guess it could have generated many kinds of errors. > Sorry, but some other errors, which may be related: .. Most likely, yes. I also fixed some other mbox problems which might have caused them. CVS currently has somewhat broken cache file code, I'll try to fix it tomorrow and build test23. I think I figured out some pretty nice rules how to figure out what to keep in cache. --=-Sib/gUBU0tpVbyewdT76 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA4JSsyUhSUUBViskRAlPuAJ9Lv6v9vnDGii6IWIz7JJpN6TpPwQCgn/di cS4jbD0L3aZys5AZeDqvdRM= =J3gK -----END PGP SIGNATURE----- --=-Sib/gUBU0tpVbyewdT76-- From tss@iki.fi Tue Jun 29 01:11:21 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id D264BC000DEC; Tue, 29 Jun 2004 01:11:21 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id DDB24C000DE7 for ; Tue, 29 Jun 2004 01:11:19 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id A03BA1C1D0E1; Tue, 29 Jun 2004 01:03:05 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 47FE61C1D0E0; Tue, 29 Jun 2004 01:02:31 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? From: Timo Sirainen To: Nicolas STRANSKY In-Reply-To: <40DA6E75.7010702@neo-lan.net> References: <1087971391.6751.74.camel@hurina> <40DA6E75.7010702@neo-lan.net> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-XAJK1KHr8aNDwaJGgtAZ" Message-Id: <1088460150.2015.13.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 29 Jun 2004 01:02:30 +0300 X-Spam-Status: No, hits=-9.6 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jun 2004 22:11:22 -0000 X-UID: 9697 Status: O Content-Length: 1575 --=-XAJK1KHr8aNDwaJGgtAZ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2004-06-24 at 09:02, Nicolas STRANSKY wrote: > I spoke a bit too fast in my last message ;) >=20 > I'm having a bunch of these logs after a few hours (test22): >=20 > > Jun 24 07:55:55 aster dovecot: IMAP(nico): open() failed with index fil= e /home/nico/mail/.imap/Curie-perso/dovecot.index: Too many open files > > Jun 24 07:55:55 aster dovecot: IMAP(nico): open() failed with index fil= e /home/nico/mail/Crans/.imap/Moderateurs/dovecot.index: Too many open file= s > > Jun 24 07:55:55 aster dovecot: IMAP(nico): open() failed with index fil= e /home/nico/mail/Debian/.imap/debian-news/dovecot.index: Too many open fil= es > > Jun 24 07:55:55 aster dovecot: IMAP(nico): open() failed with index fil= e /home/nico/mail/Debian/.imap/debian-user-french/dovecot.index: Too many o= pen files > ... >=20 > There's a lot like these for all of my imap folders. Is there a way to=20 > fix it ? I found some leaks from transaction log file handling, but they should have been pretty rare. Could you send the output of ls -l /proc/pid/fd/ when it shows lots of same files? pid would be the PID of imap process. --=-XAJK1KHr8aNDwaJGgtAZ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA4JV2yUhSUUBViskRAhJEAJ4mdPWXmDqaaPxRu2ZUKsfTZ2ibOACgjp6U ERKQWlFk5SUl65lyY4om23E= =0Qx2 -----END PGP SIGNATURE----- --=-XAJK1KHr8aNDwaJGgtAZ-- From maikel@ladot.com Tue Jun 29 15:10:47 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 9A8AAC000DE0; Tue, 29 Jun 2004 15:10:47 +0300 (EEST) Received: from amsfep13-int.chello.nl (nl-ams-slo-l4-01-pip-6.chellonetwork.com [213.46.243.23]) by talvi.dovecot.org (Postfix) with ESMTP id 067CFC000987 for ; Tue, 29 Jun 2004 15:10:45 +0300 (EEST) Received: from myst.dohd.org ([62.163.181.64]) by amsfep13-int.chello.nl (InterMail vM.6.00.05.02 201-2115-109-103-20031105) with ESMTP id <20040629120228.ZEBF13039.amsfep13-int.chello.nl@myst.dohd.org>; Tue, 29 Jun 2004 14:02:28 +0200 Received: from [172.31.5.88] (pool-5.ladot.com [217.22.64.98]) (authenticated bits=0) by myst.dohd.org (8.12.10/8.12.10) with ESMTP id i5TC3ptn047147; Tue, 29 Jun 2004 14:03:51 +0200 (CEST) (envelope-from maikel@ladot.com) In-Reply-To: <84D0C9CB-C93F-11D8-BCE6-000393CC2E90@iki.fi> References: <84D0C9CB-C93F-11D8-BCE6-000393CC2E90@iki.fi> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <2B2B310A-C9C4-11D8-ABA3-000A95B3C1CA@ladot.com> Content-Transfer-Encoding: 7bit From: Maikel Verheijen Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? Date: Tue, 29 Jun 2004 14:02:18 +0200 To: Timo Sirainen X-Mailer: Apple Mail (2.618) X-Virus-Scanned: clamd / ClamAV version 0.67-1, clamav-milter version 0.67a X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on myst.dohd.org Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jun 2004 12:10:47 -0000 X-UID: 9698 Status: O Content-Length: 1555 On Jun 28, 2004, at 10:12 PM, Timo Sirainen wrote: > On 28.6.2004, at 22:57, Moe Wibble wrote: > > Perhaps Dovecot should require at least minimal compliance from maildir > filenames so problem like these wouldn't happen. IIRC Courier requires > that filename starts with digit, otherwise it isn't touched. > > Anyone have opinions either way? Why not hold on to the maildir standard and enforce that? Maybe complain about invalid mail-files? http://cr.yp.to/proto/maildir.html contains the following passage: Okay, so you're writing messages. A unique name has three pieces, separated by dots. On the left is the result of time() or the second counter from gettimeofday(). On the right is the result of gethostname(). (To deal with invalid host names, replace / with \057 and : with \072.) In the middle is a delivery identifier, discussed below. Which states it should contain 3 dots, the left portion should be a timestamp, the middle "an identifier" and the right hand side a hostname. This means you can check if it has a) 2 dots (3 pieces) and starts with a valid timestamp? > > One reason why I haven't added any checks is because while testing I > often create filenames such as "foo", "foo2", etc. Might take a while > to start remembering that digit is required as first character. This is indeed a pain if you don't follow the maildir standard. However it is pretty easy to generate a "custom" mailfile-name creator :) eg: printf "%d.%d.%s\n" `date +%s` "$$" `hostname -s ` Kind regards, Maikel Verheijen Ladot Nederland BV. From tss@iki.fi Tue Jun 29 18:05:41 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E305CC000DE0; Tue, 29 Jun 2004 18:05:41 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 56441C000987 for ; Tue, 29 Jun 2004 18:05:39 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 6BFA91C350E8; Tue, 29 Jun 2004 17:57:23 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CD8FD1C1532F; Tue, 29 Jun 2004 17:56:48 +0300 (EEST) Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? From: Timo Sirainen To: Maikel Verheijen In-Reply-To: <2B2B310A-C9C4-11D8-ABA3-000A95B3C1CA@ladot.com> References: <84D0C9CB-C93F-11D8-BCE6-000393CC2E90@iki.fi> <2B2B310A-C9C4-11D8-ABA3-000A95B3C1CA@ladot.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-YhyctdTwN5f36oKwuDe4" Message-Id: <1088521008.4868.49.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 29 Jun 2004 17:56:48 +0300 X-Spam-Status: No, hits=-9.2 required=5.0 tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jun 2004 15:05:42 -0000 X-UID: 9699 Status: O Content-Length: 1177 --=-YhyctdTwN5f36oKwuDe4 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-29 at 15:02, Maikel Verheijen wrote: > > Perhaps Dovecot should require at least minimal compliance from maildir > > filenames so problem like these wouldn't happen. IIRC Courier requires > > that filename starts with digit, otherwise it isn't touched. > > > > Anyone have opinions either way? > Why not hold on to the maildir standard and enforce that?=20 Well, it seems a bit bad for me to constantly waste CPU for things that aren't needed for anything else than catching other people's configuration mistakes. Checking the first character is a simple check and I could live with that, fully checking the filename is nearing bloat. > Maybe complain about invalid mail-files? Probably, yes.. --=-YhyctdTwN5f36oKwuDe4 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA4YMwyUhSUUBViskRAhYlAJ4t2qKGL/tG5CgXyHJDcW4Esg3ayACfTWLY 0PyIVF25XJJD13QT2xIK33c= =3jjW -----END PGP SIGNATURE----- --=-YhyctdTwN5f36oKwuDe4-- From lists@pote.com Tue Jun 29 18:41:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 0ADADC000DE3; Tue, 29 Jun 2004 18:41:09 +0300 (EEST) Received: from harrier.mail.pas.earthlink.net (harrier.mail.pas.earthlink.net [207.217.120.12]) by talvi.dovecot.org (Postfix) with ESMTP id D89B3C000987 for ; Tue, 29 Jun 2004 18:41:06 +0300 (EEST) Received: from user-0ccemqh.cable.mindspring.com ([24.199.91.81] helo=tarsier.pote.com) by harrier.mail.pas.earthlink.net with smtp (Exim 3.33 #1) id 1BfKbI-0000zq-00 for dovecot@dovecot.org; Tue, 29 Jun 2004 08:32:49 -0700 Received: (qmail 12868 invoked from network); 29 Jun 2004 15:32:47 -0000 Received: from unknown (HELO tarsier.pote.com) (eater@192.168.50.105) by 192.168.50.105 with SMTP; 29 Jun 2004 11:32:47 -0400 Date: Tue, 29 Jun 2004 11:32:47 -0400 (EDT) From: Paul Adams To: dovecot@dovecot.org In-Reply-To: <20040629090008.68B0AC000DE7@talvi.dovecot.org> Message-ID: <0406291129170.0@somehost.domainz.com> References: <20040629090008.68B0AC000DE7@talvi.dovecot.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Subject: [Dovecot] 1.0 Maildir/mbox X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jun 2004 15:41:09 -0000 X-UID: 9700 Status: O Just to confirm, and sorry if I've missed this info somewhere in the flurry of messages: dovecot 1.0 will be able to support maildir and mbox users simultaneously? Paul From tss@iki.fi Tue Jun 29 18:53:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 1A2A5C000DE7; Tue, 29 Jun 2004 18:53:24 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 0B151C000987 for ; Tue, 29 Jun 2004 18:53:22 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 0B1081C350E8; Tue, 29 Jun 2004 18:45:06 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CD8551C1D0E1; Tue, 29 Jun 2004 18:44:30 +0300 (EEST) Subject: Re: [Dovecot] 1.0 Maildir/mbox From: Timo Sirainen To: Paul Adams In-Reply-To: <0406291129170.0@somehost.domainz.com> References: <20040629090008.68B0AC000DE7@talvi.dovecot.org> <0406291129170.0@somehost.domainz.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-g+ZZQmDcGSe6phF67U0Y" Message-Id: <1088523870.4872.60.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Tue, 29 Jun 2004 18:44:30 +0300 X-Spam-Status: No, hits=-9.6 required=5.0 tests=AWL,BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,PGP_SIGNATURE_2, QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_XIMIAN autolearn=ham version=2.54 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.54 (1.174.2.17-2003-05-11-exp) Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jun 2004 15:53:24 -0000 X-UID: 9701 Status: O Content-Length: 1264 --=-g+ZZQmDcGSe6phF67U0Y Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2004-06-29 at 18:32, Paul Adams wrote: > Just to confirm, and sorry if I've missed this info somewhere in the=20 > flurry of messages: dovecot 1.0 will be able to support maildir and mbox=20 > users simultaneously? Yes, although at least currently you'll have to create separate namespaces for it. And user-specific namespaces aren't yet supported, I'll probably add ~/.dovecotrc which can be used to override that and some other settings. Maybe the APIs could also be redesigned so that mixing them could be done with only symlinks.. Anyway, currently you'd do it like: namespace private { prefix =3D inbox =3D yes # INBOX is in this namespace location =3D maildir:~/Maildir } namespace private { prefix =3D #mbox/ location =3D mbox:~/mail } mboxes would then be under #mbox/ --=-g+ZZQmDcGSe6phF67U0Y Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA4Y5eyUhSUUBViskRAt/QAJoD5J9KNFbmUsehH5Q8gFQY3Ifw7wCgmb81 v2h78Onb/+15fJHLwDHEguI= =lGq4 -----END PGP SIGNATURE----- --=-g+ZZQmDcGSe6phF67U0Y-- From geocar-dovecot@internetconnection.net Tue Jun 29 21:34:24 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 5FECCC000DE4; Tue, 29 Jun 2004 21:34:24 +0300 (EEST) Received: from internetconnection.net (proxy.dmvnoc.com [216.169.144.254]) by talvi.dovecot.org (Postfix) with SMTP id 17BE0C000987 for ; Tue, 29 Jun 2004 21:34:19 +0300 (EEST) Received: (qmail 5389 invoked by uid 0); 29 Jun 2004 18:31:18 -0000 Received: from unknown (HELO ?192.168.1.3?) (192.168.1.3) by pokey with SMTP; 29 Jun 2004 18:31:18 -0000 Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? From: Geo Carncross To: Timo Sirainen In-Reply-To: <1088521008.4868.49.camel@hurina> References: <84D0C9CB-C93F-11D8-BCE6-000393CC2E90@iki.fi> <2B2B310A-C9C4-11D8-ABA3-000A95B3C1CA@ladot.com> <1088521008.4868.49.camel@hurina> Content-Type: text/plain Organization: Internet Connection Message-Id: <1088533462.1160.291.camel@midget.intranet> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7) Date: Tue, 29 Jun 2004 14:24:22 -0400 Content-Transfer-Encoding: 7bit Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list Reply-To: geocar@internetconnection.net List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jun 2004 18:34:24 -0000 X-UID: 9702 Status: O > Why not hold on to the maildir standard and enforce that? Agreed. Courier is wrong. From: http://cr.yp.to/proto/maildir.html "A unique name can be anything that doesn't contain a colon (or slash) and doesn't start with a dot. Do not try to extract information from unique names." From kcramer@siscom.net Tue Jun 29 22:25:48 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 58BE3C000DEC; Tue, 29 Jun 2004 22:25:48 +0300 (EEST) Received: from plato.kevincramer.net (kcramer.siscom.net [209.251.13.230]) by talvi.dovecot.org (Postfix) with SMTP id 39CAAC000987 for ; Tue, 29 Jun 2004 22:25:44 +0300 (EEST) Received: (qmail 30021 invoked by uid 1000); 29 Jun 2004 19:17:26 -0000 From: "Kevin Cramer" Date: Tue, 29 Jun 2004 15:17:26 -0400 To: Timo Sirainen Subject: Re: [Dovecot] Locked index file Message-ID: <20040629191726.GB9096@plato.kevincramer.net> References: <20040625135729.GA17265@plato.kevincramer.net> <1088416083.30740.18.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1088416083.30740.18.camel@hurina> User-Agent: Mutt/1.5.6i Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jun 2004 19:25:48 -0000 X-UID: 9703 Status: O Content-Length: 1675 You might be correct that I didn't kill all the imap processes. I have the problem solved now. However, I still haven't tried to empty the trash folder via IMAP. Do you expect the OpenBSD index support to be better in 1.0? Thanks, Kevin On Mon, Jun 28, 2004 at 12:48:03PM +0300, Timo Sirainen wrote: > On Fri, 2004-06-25 at 16:57, Kevin Cramer wrote: > > I have docevot 0.99.10.6 installed on OpenBSD 3.5 and I'm using it > > with Squirrelmail. I tried to empty my Trash folder and it timed out. > > It looks like the process or thread died but the lock wasn't removed: > > > > Jun 25 09:16:30 plato imap(kevin): Timeout while waiting for release of shared fcntl() lock for index file /home/kevin/Maildir/.Trash/.imap.index > > When all processes holding fcntl lock have either dropped it or died by > themselves, the lock is gone. If all the processes really have died, > this is operating system bug. > > > How can I free this lock? I have tried stopping and re-starting > > dovecot already but that didn't help. > > Restarting Dovecot doesn't kill imap/pop3 processes that are running at > the time. Did you check that they're all gone? > > > Also, is there something I > > should do to prevent this in the future? The OpenBSD package sets the > > default locking to fcntl for mbox. I'm not sure if that is the > > setting that also controls the locking mechanism on the index files. > > It doesn't affect index files, they're always fcntl locked. > > Probably not much you can do to prevent this, if this was because some > Dovecot process got stuck.. Also 0.99.10.6 indexes still don't work too > well with OpenBSD, so it might be related to that. > From karl@designit.com.au Wed Jun 30 10:59:14 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id E6E3AC000DE7; Wed, 30 Jun 2004 10:59:14 +0300 (EEST) Received: from proxy.designit.com.au (proxy.designit.com.au [210.11.135.189]) by talvi.dovecot.org (Postfix) with ESMTP id 7318EC000987 for ; Wed, 30 Jun 2004 10:59:11 +0300 (EEST) From: Karl Latiss To: dovecot@dovecot.org Content-Type: text/plain Organization: designIT Message-Id: <1088581849.8651.53.camel@darkstar.internal.designit.com.au> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-1) Date: Wed, 30 Jun 2004 17:50:49 +1000 Content-Transfer-Encoding: 7bit Subject: [Dovecot] ldap auth problems X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jun 2004 07:59:15 -0000 X-UID: 9704 Status: O I have previously configured dovecot with ldap auth on a fedora setup with no problems. Now, using RHEL 3 with the same config I get: dovecot: Jun 30 17:46:07 Error: Auth process died too early - shutting down dovecot: Jun 30 17:46:07 Error: child 16780 (auth) killed with signal 11 pop3-login: Jun 30 17:46:07 Fatal: fd_send(-1) failed: Broken pipe imap-login: Jun 30 17:46:07 Fatal: fd_send(-1) failed: Broken pipe This doesn't happen when using other kinds of authentication, eg pam The ldap directory is working fine for other apps so I'm pretty sure that's not it. I'm using the rpm from dag's repository and even re-compiled to ensure ldap support is there. Any clues? -- Karl Latiss designIT From tss@iki.fi Wed Jun 30 11:44:18 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 38671C000DE0; Wed, 30 Jun 2004 11:44:18 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id F35C4C000987 for ; Wed, 30 Jun 2004 11:44:15 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 5190C1C350E8; Wed, 30 Jun 2004 11:35:58 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B5E2F1C350CA; Wed, 30 Jun 2004 11:35:52 +0300 (EEST) In-Reply-To: <1088581849.8651.53.camel@darkstar.internal.designit.com.au> References: <1088581849.8651.53.camel@darkstar.internal.designit.com.au> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-8-755690609" Message-Id: <818AE8CA-CA70-11D8-BCE6-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] ldap auth problems Date: Wed, 30 Jun 2004 11:35:56 +0300 To: Karl Latiss X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on danu.procontrol.fi X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.63 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jun 2004 08:44:18 -0000 X-UID: 9705 Status: O Content-Length: 1026 --Apple-Mail-8-755690609 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 30.6.2004, at 10:50, Karl Latiss wrote: > dovecot: Jun 30 17:46:07 Error: Auth process died too early - shutting > down > dovecot: Jun 30 17:46:07 Error: child 16780 (auth) killed with signal > 11 Start Dovecot with strace -f dovecot 2>log and see what it does before it crashes. One somewhat common problem is that dovecot-auth is linked against some library which isn't in default library path (although I'm not sure if it segfaulted then). --Apple-Mail-8-755690609 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA4ntsyUhSUUBViskRAh9IAKCNhS3nL5coLU+kHPyroHJgEi+tKwCfdJLk vlefHikKR7OqEROQO3CuLGg= =mVxK -----END PGP SIGNATURE----- --Apple-Mail-8-755690609-- From tss@iki.fi Wed Jun 30 11:46:22 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 016E3C000DE4; Wed, 30 Jun 2004 11:46:22 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 01AB1C000987 for ; Wed, 30 Jun 2004 11:46:20 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 5F1C91C350E8; Wed, 30 Jun 2004 11:38:02 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 084C91C350CA; Wed, 30 Jun 2004 11:37:58 +0300 (EEST) In-Reply-To: <20040629191726.GB9096@plato.kevincramer.net> References: <20040625135729.GA17265@plato.kevincramer.net> <1088416083.30740.18.camel@hurina> <20040629191726.GB9096@plato.kevincramer.net> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-9-755816020" Message-Id: Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] Locked index file Date: Wed, 30 Jun 2004 11:38:02 +0300 To: "Kevin Cramer" X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on danu.procontrol.fi X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.63 Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jun 2004 08:46:22 -0000 X-UID: 9706 Status: O --Apple-Mail-9-755816020 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 29.6.2004, at 22:17, Kevin Cramer wrote: > You might be correct that I didn't kill all the imap processes. I > have the problem solved now. However, I still haven't tried to empty > the trash folder via IMAP. Do you expect the OpenBSD index support to > be better in 1.0? Yes, 1.0-tests already work nicely by setting mmap_no_write = yes. --Apple-Mail-9-755816020 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA4nvqyUhSUUBViskRAnOFAJ9Y8YSQmAljc8ErevtT85ugycWVywCglahA LzfWTdR0nVpGnetHyqPqPO0= =psOT -----END PGP SIGNATURE----- --Apple-Mail-9-755816020-- From tss@iki.fi Wed Jun 30 11:51:57 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id C6507C000DE0; Wed, 30 Jun 2004 11:51:57 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 294C5C000987 for ; Wed, 30 Jun 2004 11:51:55 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 762101C350E8; Wed, 30 Jun 2004 11:43:37 +0300 (EEST) Received: from [192.168.10.217] (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C0CA81C350CA; Wed, 30 Jun 2004 11:43:32 +0300 (EEST) In-Reply-To: <1088533462.1160.291.camel@midget.intranet> References: <84D0C9CB-C93F-11D8-BCE6-000393CC2E90@iki.fi> <2B2B310A-C9C4-11D8-ABA3-000A95B3C1CA@ladot.com> <1088521008.4868.49.camel@hurina> <1088533462.1160.291.camel@midget.intranet> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-10-756150464" Message-Id: <93A31232-CA71-11D8-BCE6-000393CC2E90@iki.fi> Content-Transfer-Encoding: 7bit From: Timo Sirainen Subject: Re: [Dovecot] 1.0-test22 - maildir fixed? Date: Wed, 30 Jun 2004 11:43:36 +0300 To: geocar@internetconnection.net X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on danu.procontrol.fi X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.63 Cc: Dovecot list X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jun 2004 08:51:57 -0000 X-UID: 9707 Status: O Content-Length: 1091 --Apple-Mail-10-756150464 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 29.6.2004, at 21:24, Geo Carncross wrote: >> Why not hold on to the maildir standard and enforce that? > > Agreed. Courier is wrong. Actually now that I looked it doesn't check anything. Guess I remembered wrong. > From: http://cr.yp.to/proto/maildir.html > > "A unique name can be anything that doesn't contain a colon (or slash) > and doesn't start with a dot. Do not try to extract information from > unique names." Right.. I should read that page every time before I think about doing some changes :) --Apple-Mail-10-756150464 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQFA4n04yUhSUUBViskRAr2HAKCFahKoP0NibojvHzV1BHweJ8Ce1wCdHtmm +IoTOFZrSwMPPUPybg//6FI= =p5LL -----END PGP SIGNATURE----- --Apple-Mail-10-756150464-- From tss@iki.fi Wed Jun 30 15:13:03 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 23381C000D9C; Wed, 30 Jun 2004 15:13:03 +0300 (EEST) Received: from danu.procontrol.fi (danu [212.149.71.178]) by talvi.dovecot.org (Postfix) with ESMTP id 90FDEC000987 for ; Wed, 30 Jun 2004 15:12:56 +0300 (EEST) Received: by danu.procontrol.fi (Postfix, from userid 106) id 2C50F1C350CA; Wed, 30 Jun 2004 15:04:38 +0300 (EEST) Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A932E1C134FD for ; Wed, 30 Jun 2004 15:04:31 +0300 (EEST) From: Timo Sirainen To: dovecot@dovecot.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-WqJ2KBT/EC9K31n2B4GS" Message-Id: <1088597070.4861.151.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Wed, 30 Jun 2004 15:04:31 +0300 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on danu.procontrol.fi X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=2.63 Subject: [Dovecot] 1.0-test23 and caching decisions X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jun 2004 12:13:03 -0000 X-UID: 9708 Status: O Content-Length: 3908 --=-WqJ2KBT/EC9K31n2B4GS Content-Type: text/plain Content-Transfer-Encoding: quoted-printable http://dovecot.org/test/ mbox fixes mostly. Began some other things, but none of them actually work yet: - Use X-UIDL header in mboxes for POP3 UIDL list - Cache file compression - Some cleverness for cache file for figuring out what to cache Well, I might as well explain the last one now. Users can be divided to three groups: 1. Most users will use only a single IMAP client which caches everything locally. For these users it's quite pointless to do any kind of caching as it only wastes disk space. That might also mean more disk I/O. 2. Some users use multiple IMAP clients which cache everything locally. These could benefit from caching until all clients have fetched the data. After that it's useless. 3. Some clients don't do permanent local caching at all. For example Pine and webmails. These clients would benefit from caching everything. Some locally caching clients might also access some data from server again, such as when searching messages. They could benefit from caching only these fields. After thinking about these a while, I figured out that people who care about performance most will be using the upcoming Dovecot LDA anyway which updates the indexes/cache immediately. In that case even the first user group would benefit from caching the same way as second group. LDA reads the mail anyway, so it might as well extract some information about it and store them into cache. So, group 1. and 2. could be optimally implemented by keeping things cached only for a while. I thought a week would be good. When cache file is compressed, everything older than week will be dropped. But how to figure out if user is in group 3? One quite easy rule would be to see if client is accessing messages older than a week. But with only that rule we might have already dropped useful cached data. It's not very nice if we have to read and cache it twice. Most locally caching clients always fetch new messages (all but body) when they see them. They fetch them in ascending order. Noncaching clients might fetch messages in pretty much any order, as they usually don't fetch everything they can, only what's visible in screen. Some will use server side sorting/threading which also makes messages to be fetched in random order. Second rule would then be that if a session doesn't fetch messages in ascending order, the fetched field type will be permanently cached. So, we have three caching decisions: 1. Don't cache: Clients have never wanted the field 2. Cache temporarily: Clients want this only once 3. Cache permanently: Clients want this more than once Different mailboxes have different decisions. Different fields have different decisions. There are some problems, such as if a client accesses message older than a week, we can't know if user just started using a new client which is just filling it's local cache for the first time. Or it might be a client user hasn't just used for over a week. In these cases we shouldn't have marked the field to be permanently cached. User might also switch clients from non-caching to caching. So we should re-evaluate our caching decisions from time to time. This is done by checking the above rules constantly and marking when was the last time the decision was right. If decision hasn't matched for two months, it's changed. I picked two months because people go to at least one month vacations where they might still be reading mails, but with different clients. --=-WqJ2KBT/EC9K31n2B4GS Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBA4qxOyUhSUUBViskRAt3kAJ913Rzwt+5S/KaCRE27f5e8rsDjGQCdFuyA Vs7nzitv292abEv02fjBfz8= =wvl1 -----END PGP SIGNATURE----- --=-WqJ2KBT/EC9K31n2B4GS-- From Nicolas.Stransky@neo-lan.net Thu Jul 1 10:45:12 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 35208C000D9C; Thu, 1 Jul 2004 10:45:12 +0300 (EEST) Received: from aster.neo-lan.net (aster.neo-lan.net [81.57.244.52]) by talvi.dovecot.org (Postfix) with ESMTP id EE2DAC000987 for ; Thu, 1 Jul 2004 10:45:07 +0300 (EEST) Received: from aneto (aneto.local.lan [192.168.0.2]) by aster.neo-lan.net (Postfix) with ESMTP id 68D602ACDD for ; Thu, 1 Jul 2004 09:36:46 +0200 (CEST) Received: from localhost ([127.0.0.1]) by aneto with esmtp (Exim 4.34) id 1Bfw7i-0000nD-CW for dovecot@dovecot.org; Thu, 01 Jul 2004 09:36:46 +0200 Message-ID: <40E3BF0E.2060906@neo-lan.net> Date: Thu, 01 Jul 2004 09:36:46 +0200 From: Nicolas STRANSKY Organization: N&O Lan User-Agent: Mozilla Thunderbird 0.7 (X11/20040615) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dovecot@dovecot.org References: <1087971391.6751.74.camel@hurina> <40DA6E75.7010702@neo-lan.net> <40DA744C.B1FC4926@clinet.fi> <40DACF4E.9000603@neo-lan.net> <40DAE374.6080903@neo-lan.net> In-Reply-To: <40DAE374.6080903@neo-lan.net> X-Enigmail-Version: 0.84.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: [Dovecot] Re: 1.0-test22 - maildir fixed? X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jul 2004 07:45:12 -0000 X-UID: 9709 Status: O Le 06/24/2004 04:21 PM, Nicolas STRANSKY a écrit : > I also notice that thunderbird 0.7 fails to copy a message to the "Sent" > folder with Dovecot 1.0 test22. More generaly, I have problems moving or > copying messages from somewhere out of the existing imap folders (such > as a message that has just been sent), to an imap folder. > I'm pretty sure it's not a thunderbird problem because it appeared when > I installed Dovecot 1.0 test22. THunderbird just says it "failed", and I > see no particular logs on the server. Reverting to Dovecot 0.99.10.6 solves this issue... So what could cause this in Dovecot 1.0-test ? -- Nico Le résultat des arguments de Zénon, c'est la démonstration d'une confusion dans le langage. -+- Paul Valéry -+- From hf@spg.tu-darmstadt.de Thu Jul 1 11:11:50 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 46605C000D9C; Thu, 1 Jul 2004 11:11:50 +0300 (EEST) Received: from bounce.nt.e-technik.tu-darmstadt.de (bounce.nt.e-technik.tu-darmstadt.de [130.83.197.1]) by talvi.dovecot.org (Postfix) with ESMTP id B4ED4C000987 for ; Thu, 1 Jul 2004 11:11:47 +0300 (EEST) Received: from spg.tu-darmstadt.de (heiligenberg.nt.e-technik.tu-darmstadt.de [130.83.186.54]) by bounce.nt.e-technik.tu-darmstadt.de (8.12.11/8.12.11) with ESMTP id i6183Roi001910; Thu, 1 Jul 2004 10:03:27 +0200 (CEST) Message-ID: <40E3C54F.7060502@spg.tu-darmstadt.de> Date: Thu, 01 Jul 2004 10:03:27 +0200 From: Hauke Fath Organization: TU Darmstadt User-Agent: Mozilla/5.0 (X11; U; NetBSD i386; en-US; rv:1.6) Gecko/20040315 X-Accept-Language: en-us, en, de-de MIME-Version: 1.0 To: Nicolas STRANSKY Subject: Re: [Dovecot] Re: 1.0-test22 - maildir fixed? References: <1087971391.6751.74.camel@hurina> <40DA6E75.7010702@neo-lan.net> <40DA744C.B1FC4926@clinet.fi> <40DACF4E.9000603@neo-lan.net> <40DAE374.6080903@neo-lan.net> <40E3BF0E.2060906@neo-lan.net> In-Reply-To: <40E3BF0E.2060906@neo-lan.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: dovecot@dovecot.org X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jul 2004 08:11:50 -0000 X-UID: 9710 Status: O Content-Length: 1059 Nicolas STRANSKY wrote: > Le 06/24/2004 04:21 PM, Nicolas STRANSKY a écrit : > >> I also notice that thunderbird 0.7 fails to copy a message to the >> "Sent" folder with Dovecot 1.0 test22. More generaly, I have problems >> moving or copying messages from somewhere out of the existing imap >> folders (such as a message that has just been sent), to an imap folder. >> I'm pretty sure it's not a thunderbird problem because it appeared >> when I installed Dovecot 1.0 test22. THunderbird just says it >> "failed", and I see no particular logs on the server. Same here with test23 amd Mozilla 1.6 (NetBSD, Linux) - it sends the mail, but hangs a while trying to store a copy in the sent-folder and then times out. Doesn't happen with Sylpheed nor Eudora. hauke -- Hauke Fath /~\ The ASCII Ribbon Campaign Institut für Nachrichtentechnik \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281 / \ Respect for open standards From cmaloney@cardgate.net Thu Jul 1 11:27:58 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 489F2C000D9C; Thu, 1 Jul 2004 11:27:58 +0300 (EEST) Received: from umd.com.au (unknown [203.43.92.77]) by talvi.dovecot.org (Postfix) with ESMTP id 57B79C000987 for ; Thu, 1 Jul 2004 11:27:54 +0300 (EEST) Received: from ws80 ([192.168.101.80]) by umd.com.au (8.12.9/8.12.9) with ESMTP id i618JUZg017791 for ; Thu, 1 Jul 2004 19:19:31 +1100 (EST) Content-Type: text/plain; charset="iso-8859-1" From: Curtis Maloney To: dovecot@dovecot.org Subject: Re: [Dovecot] Re: 1.0-test22 - maildir fixed? Date: Thu, 1 Jul 2004 18:19:28 +1000 User-Agent: KMail/1.4.3 References: <1087971391.6751.74.camel@hurina> <40E3BF0E.2060906@neo-lan.net> <40E3C54F.7060502@spg.tu-darmstadt.de> In-Reply-To: <40E3C54F.7060502@spg.tu-darmstadt.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-Id: <200407011819.28588.cmaloney@cardgate.net> X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jul 2004 08:27:58 -0000 X-UID: 9711 Status: O Content-Length: 1044 On Thu, 1 Jul 2004 06:03 pm, Hauke Fath wrote: > Nicolas STRANSKY wrote: > > Le 06/24/2004 04:21 PM, Nicolas STRANSKY a écrit : > >> I also notice that thunderbird 0.7 fails to copy a message to the > >> "Sent" folder with Dovecot 1.0 test22. More generaly, I have problems > >> moving or copying messages from somewhere out of the existing imap > >> folders (such as a message that has just been sent), to an imap folder. > >> I'm pretty sure it's not a thunderbird problem because it appeared > >> when I installed Dovecot 1.0 test22. THunderbird just says it > >> "failed", and I see no particular logs on the server. > > Same here with test23 amd Mozilla 1.6 (NetBSD, Linux) - it sends the > mail, but hangs a while trying to store a copy in the sent-folder and > then times out. Doesn't happen with Sylpheed nor Eudora. > > hauke I saw this when I originaly tried Thunderbird 0.5 on Dovecot 0.99.10.4... haven't seen it on any other clients, including later version of Thunderbird. -- -- Curtis Maloney Cardgate.net (03) 9660 5093 From hf@spg.tu-darmstadt.de Thu Jul 1 11:31:46 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 2C800C000DE4; Thu, 1 Jul 2004 11:31:46 +0300 (EEST) Received: from bounce.nt.e-technik.tu-darmstadt.de (bounce.nt.e-technik.tu-darmstadt.de [130.83.197.1]) by talvi.dovecot.org (Postfix) with ESMTP id D4A02C000DE3 for ; Thu, 1 Jul 2004 11:31:43 +0300 (EEST) Received: from heiligenberg.nt.e-technik.tu-darmstadt.de (heiligenberg.nt.e-technik.tu-darmstadt.de [130.83.186.54]) by bounce.nt.e-technik.tu-darmstadt.de (8.12.11/8.12.11) with ESMTP id i618NNc0026184 for ; Thu, 1 Jul 2004 10:23:23 +0200 (CEST) Received: from heiligenberg.nt.e-technik.tu-darmstadt.de (localhost [127.0.0.1]) by heiligenberg.nt.e-technik.tu-darmstadt.de (8.12.9p1/8.12.9) with ESMTP id i618NNDN011173 for ; Thu, 1 Jul 2004 10:23:23 +0200 (CEST) Received: (from hf@localhost) by heiligenberg.nt.e-technik.tu-darmstadt.de (8.12.9p1/8.12.9) id i618NLi0010369; Thu, 1 Jul 2004 10:23:21 +0200 (CEST) Date: Thu, 1 Jul 2004 10:23:21 +0200 From: Hauke Fath To: dovecot@dovecot.org Subject: Re: [Dovecot] Re: 1.0-test22 - maildir fixed? Message-Id: <20040701102321.56841d12.hf@spg.tu-darmstadt.de> In-Reply-To: <40E3C54F.7060502@spg.tu-darmstadt.de> References: <1087971391.6751.74.camel@hurina> <40DA6E75.7010702@neo-lan.net> <40DA744C.B1FC4926@clinet.fi> <40DACF4E.9000603@neo-lan.net> <40DAE374.6080903@neo-lan.net> <40E3BF0E.2060906@neo-lan.net> <40E3C54F.7060502@spg.tu-darmstadt.de> Organization: Technische Universitaet Darmstadt X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; i386--netbsdelf) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jul 2004 08:31:46 -0000 X-UID: 9712 Status: O Content-Length: 1547 On Thu, 01 Jul 2004 10:03:27 +0200 Hauke Fath wrote: > Same here with test23 amd Mozilla 1.6 (NetBSD, Linux) - it sends the=20 > mail, but hangs a while trying to store a copy in the sent-folder and=20 > then times out. Doesn't happen with Sylpheed nor Eudora. Replying to myself - my users report they get locked out, and the logs show me Jul 1 10:00:46 bounce dovecot: IMAP(cbrown): file mbox-sync-rewrite.c: line 325 (mbox_sync_read_and_move): assertion failed: (need_space =3D=3D -mails[idx].space) Jul 1 10:00:46 bounce dovecot: child 1992 (imap) killed with signal 6 (repeatedly; user action was a bulk move from mailbox to mailbox, with the /home file-system having 20G free) and then=20 Jul 1 10:02:10 bounce dovecot: IMAP(brcic): file mail-transaction-log-view.c: line 122 (mail_transaction_log_view_set): assertion failed: (min_file_seq !=3D max_file_seq || min_file_offse t <=3D max_file_offset)=20 Jul 1 10:02:10 bounce dovecot: child 10098 (imap) killed with signal 6 and further Jul 1 10:05:06 bounce dovecot: pipe() failed: Too many open files Jul 1 10:05:37 bounce last message repeated 312778 times Jul 1 10:05:58 bounce last message repeated 211646 times and finally it dies. For the moment, I am back to 0.99.10.6. hauke --=20 Hauke Fath /~\ The ASCII Ribbon Campaign Institut f=FCr Nachrichtentechnik \ / No HTML/RTF in email TU Darmstadt X No Word docs in email Ruf +49-6151-16-3281 / \ Respect for open standards From pazke@donpac.ru Thu Jul 1 13:39:09 2004 Return-Path: X-Original-To: dovecot@dovecot.org Delivered-To: dovecot@dovecot.org Received: by talvi.dovecot.org (Postfix, from userid 107) id 6B0F3C000DE0; Thu, 1 Jul 2004 13:39:09 +0300 (EEST) Received: from donpac.ru (mail.donpac.ru [80.254.111.2]) by talvi.dovecot.org (Postfix) with ESMTP id 91F8BC000D9C for ; Thu, 1 Jul 2004 13:39:06 +0300 (EEST) Received: from [80.254.111.9] (helo=pazke) by donpac.ru with asmtp (TLSv1:AES256-SHA:256) (Exim 4.34) id 1Bfyq5-0002BI-Jh for dovecot@dovecot.org; Thu, 01 Jul 2004 14:30:45 +0400 Received: from pazke by pazke with local (Exim 4.30) id 1Bfyq5-0002k1-3O for dovecot@dovecot.org; Thu, 01 Jul 2004 14:30:45 +0400 Date: Thu, 1 Jul 2004 14:30:44 +0400 From: Andrey Panin To: dovecot@dovecot.org Message-ID: <20040701103044.GB8118@pazke> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="TYecfFk8j8mZq+dy" Content-Disposition: inline User-Agent: Mutt/1.5.6+20040523i Sender: Andrey Panin X-SMTP-Authenticated: pazke@donpac.ru (cram) X-SMTP-TLS: TLSv1:AES256-SHA:256 Subject: [Dovecot] [PATCH, RFC] add APOP authentication mechanism X-BeenThere: dovecot@dovecot.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: Dovecot Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jul 2004 10:39:09 -0000 X-UID: 9713 Status: O Content-Length: 12770 --TYecfFk8j8mZq+dy Content-Type: multipart/mixed; boundary="b5gNqxB1S1yM7hjW" Content-Disposition: inline --b5gNqxB1S1yM7hjW Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello all, this patch add APOP authentication mechanism to dovecot 1.0-test23. Please take a look. Best regards. --=20 Andrey Panin | Linux and UNIX system administrator pazke@donpac.ru | PGP key: wwwkeys.pgp.net --b5gNqxB1S1yM7hjW Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="patch-apop-1.0-test23" Content-Transfer-Encoding: quoted-printable diff -udrpN -X /usr/share/dontdiff -x Makefile dovecot-1.0-test23.vanilla/s= rc/auth/Makefile.am dovecot-1.0-test23/src/auth/Makefile.am --- dovecot-1.0-test23.vanilla/src/auth/Makefile.am 2004-06-24 12:14:13.000= 000000 +0400 +++ dovecot-1.0-test23/src/auth/Makefile.am 2004-07-01 11:38:32.000000000 += 0400 @@ -31,6 +31,7 @@ dovecot_auth_SOURCES =3D \ mech-plain.c \ mech-cram-md5.c \ mech-digest-md5.c \ + mech-apop.c \ mycrypt.c \ passdb.c \ passdb-bsdauth.c \ diff -udrpN -X /usr/share/dontdiff -x Makefile dovecot-1.0-test23.vanilla/s= rc/auth/mech-apop.c dovecot-1.0-test23/src/auth/mech-apop.c --- dovecot-1.0-test23.vanilla/src/auth/mech-apop.c 1970-01-01 03:00:00.000= 000000 +0300 +++ dovecot-1.0-test23/src/auth/mech-apop.c 2004-07-01 11:38:32.000000000 += 0400 @@ -0,0 +1,183 @@ +/* + * APOP (RFC-1460) authentication mechanism. + * + * Copyright (c) 2004 Andrey Panin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as publishe= d=20 + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#include "common.h" +#include "safe-memset.h" +#include "mech.h" +#include "passdb.h" +#include "md5.h" +#include "buffer.h" +#include "hex-binary.h" + +#include + +struct apop_auth_request { + struct auth_request auth_request; + + pool_t pool; + + /* requested: */ + char *challenge; + + /* received: */ + char *username; + char *digest; + unsigned long maxbuf; +}; + +static void +apop_credentials_callback(const char *credentials, + struct auth_request *auth_request) +{ + struct apop_auth_request *auth =3D + (struct apop_auth_request *)auth_request; + buffer_t *digest_buf; + unsigned char remote_digest[16]; + unsigned char digest[16]; + struct md5_context ctx; + + digest_buf =3D buffer_create_data(pool_datastack_create(), + remote_digest, sizeof(remote_digest)); + if (hex_to_binary(auth->digest, digest_buf) <=3D 0) { + if (verbose) + i_info("apop(%s): invalid characters in APOP digest", get_log_prefix(au= th_request)); + mech_auth_finish(auth_request, NULL, 0, FALSE); + return; + } + + md5_init(&ctx); + md5_update(&ctx, auth->challenge, strlen(auth->challenge)); + md5_update(&ctx, credentials, strlen(credentials)); + md5_final(&ctx, digest); + + safe_memset((void *) credentials, 0, strlen(credentials)); + + mech_auth_finish(auth_request, NULL, 0, + memcmp(digest, remote_digest, 16) ? FALSE : TRUE); +} + +static int +mech_apop_auth_initial(struct auth_request *auth_request, + struct auth_client_request_new *request, + const unsigned char *data, + mech_callback_t *callback) +{ + struct apop_auth_request *auth =3D + (struct apop_auth_request *)auth_request; + const unsigned char *tmp, *end, *username; + + auth_request->callback =3D callback; + + if (strcmp(auth_request->protocol, "POP3")) { + if (verbose) + i_info("apop(%s): wrong protocol %s", get_log_prefix(auth_request), + auth_request->protocol); + mech_auth_finish(auth_request, NULL, 0, FALSE); + return TRUE; + } + + if (!AUTH_CLIENT_REQUEST_HAVE_INITIAL_RESPONSE(request)) { + /* Should never happen */ + if (verbose) + i_info("apop(%s): no initial respone", get_log_prefix(auth_request)); + mech_auth_finish(auth_request, NULL, 0, FALSE); + return TRUE; + } + + tmp =3D data =3D data + request->initial_resp_idx; + end =3D data + request->data_size - request->initial_resp_idx; + + while (*tmp && (tmp < end)) + tmp++; + + if (tmp =3D=3D end) { + /* Should never happen */ + if (verbose) + i_info("apop(%s): mailformed data", get_log_prefix(auth_request)); + mech_auth_finish(auth_request, NULL, 0, FALSE); + return TRUE; + } + tmp++; + + auth->challenge =3D p_strdup(auth->pool, data); + + username =3D tmp; + while (*tmp && !isspace(*tmp) && (tmp < end)) + tmp++; + + if (tmp =3D=3D end) { + if (verbose) + i_info("apop(%s): mailformed response", get_log_prefix(auth_request)); + mech_auth_finish(auth_request, NULL, 0, FALSE); + return TRUE; + } + tmp++; + + auth->username =3D p_strndup(auth->pool, username, tmp - username - 1); + if (!mech_is_valid_username(auth->username)) { + if (verbose) + i_info("apop(%s): invalid username", get_log_prefix(auth_request)); + mech_auth_finish(auth_request, NULL, 0, FALSE); + return TRUE; + } + + auth_request->user =3D p_strdup(auth->pool, auth->username); + + if ((end - tmp) !=3D 32) { + if (verbose) + i_info("apop(%s): wrong APOP digest length", get_log_prefix(auth_reques= t)); + mech_auth_finish(auth_request, NULL, 0, FALSE); + return TRUE; + } + + auth->digest =3D p_strndup(auth->pool, tmp, 32); + + passdb->lookup_credentials(auth_request, PASSDB_CREDENTIALS_PLAINTEXT, + apop_credentials_callback); + + return TRUE; +} + +static void +mech_apop_auth_free(struct auth_request *auth_request) +{ + pool_unref(auth_request->pool); +} + +static struct auth_request *mech_apop_auth_new(void) +{ + struct apop_auth_request *auth; + pool_t pool; + + pool =3D pool_alloconly_create("apop_auth_request", 256); + auth =3D p_new(pool, struct apop_auth_request, 1); + auth->pool =3D pool; + + auth->auth_request.refcount =3D 1; + auth->auth_req gluon-0.17.0/benchmarks/imaptest/main_test.go000066400000000000000000000156311445200213000211750ustar00rootroot00000000000000package main import ( "bytes" "context" "fmt" "os" "regexp" "strconv" "sync" "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "golang.org/x/sys/execabs" "gopkg.in/yaml.v3" ) const ( allowParallel = false doFullIMAPtestLog = false gluonLogLevel = "warn" ignoreRecentError = true ) var ( rxImapTestError = regexp.MustCompile(`(?m)^Error: .*$`) rxImapTestRecentError = regexp.MustCompile(`Error: .*: Message UID=\d+ has \\Recent flag in multiple sessions:`) ) func TestIMAPTest(t *testing.T) { if path, err := execabs.LookPath("imaptest"); err != nil || path == "" { t.Skip("imaptest is not installed") } r := require.New(t) c, err := newConfig("./benchmark.yml") r.NoError(err) scenarios, err := c.generateScenarios() r.NoError(err) for _, scenario := range scenarios { t.Run(scenario.name, scenario.test) } } // nolint: musttag type config struct { Cases []caseConfig Settings map[string]settingsConfig } type caseConfig struct { Users, Clients int Settings []string allowFail bool } type settingsConfig map[string]string func newConfig(path string) (*config, error) { rawYAML, err := os.ReadFile(path) if err != nil { return nil, err } bm := &config{} if err := yaml.Unmarshal(rawYAML, bm); err != nil { return nil, err } return bm, nil } func (conf *config) generateScenarios() ([]*scenario, error) { var scenarios []*scenario i := 0 for _, c := range conf.Cases { for _, settingName := range c.Settings { s, ok := conf.Settings[settingName] if !ok { return nil, fmt.Errorf("wrong config format: cannot find definition for %q setting", settingName) } sc, err := newScenario(c, settingName, s, 10143+i) if err != nil { return nil, err } scenarios = append(scenarios, sc) i++ } } return scenarios, nil } type scenario struct { allowFail bool port string users int name string imaptestParams []string timeout time.Duration t *testing.T ctx context.Context } func newScenario(c caseConfig, settingName string, s settingsConfig, port int) (*scenario, error) { sc := &scenario{ allowFail: c.allowFail, port: fmt.Sprintf("%d", port), users: c.Users, name: fmt.Sprintf("u%d_c%d_%s", c.Users, c.Clients, settingName), timeout: time.Duration(time.Second), } if secs, err := strconv.Atoi(s["secs"]); err == nil { sc.timeout = time.Duration(secs) * 2 * time.Second } // coomon arguments sc.imaptestParams = []string{ "host=127.0.0.1", fmt.Sprintf("port=%d", port), "user=user%d@example.com", fmt.Sprintf("users=%d", c.Users), "pass=pass", fmt.Sprintf("clients=%d", c.Clients), } // scenario specific arguments for k, val := range s { if val == "false" { continue } if val == "true" { sc.imaptestParams = append(sc.imaptestParams, k) continue } sc.imaptestParams = append(sc.imaptestParams, fmt.Sprintf("%s=%s", k, val)) } return sc, nil } func (s *scenario) test(t *testing.T) { s.t = t if allowParallel { t.Parallel() } var cancel context.CancelFunc s.ctx, cancel = context.WithTimeout(context.Background(), s.timeout) wg := sync.WaitGroup{} wg.Add(1) defer func() { cancel() wg.Wait() // to printout log }() go func() { s.runGluon() cancel() wg.Done() }() // wait for gluon demo to setup users time.Sleep(time.Second) s.runIMAPTest() } func (s *scenario) runGluon() { cmd := execabs.CommandContext(s.ctx, "./gluon-demo") cmd.Dir = "../.." cmd.Env = append(cmd.Env, fmt.Sprintf("GLUON_DIR=%s", s.t.TempDir()), fmt.Sprintf("GLUON_USER_COUNT=%d", s.users), fmt.Sprintf("GLUON_HOST=127.0.0.1:%s", s.port), "GLUON_LOG_LEVEL="+gluonLogLevel, ) out := bytes.NewBuffer(nil) cmd.Stderr = out cmd.Stdout = out err := cmd.Run() fmt.Printf("Gluon[%s]:\n%s\nGluonEnd[%s]\n", s.name, out.String(), s.name) assert.Error(s.t, err) assert.Equal(s.t, "signal: killed", err.Error()) } func (s *scenario) runIMAPTest() { logPath := "" if doFullIMAPtestLog { logPath = s.t.TempDir() + "imaptest.log" s.imaptestParams = append(s.imaptestParams, "output="+logPath) } cmd := execabs.CommandContext(s.ctx, "imaptest", s.imaptestParams...) out := bytes.NewBuffer(nil) cmd.Stderr = out cmd.Stdout = out err := cmd.Run() fmt.Printf("IMAPTEST[%s]: %q\n%s\nIMAPTESTEND[%s]\n", s.name, s.imaptestParams, out.String(), s.name) assert.NoError(s.t, err) assert.False(s.t, hasIMAPLogAnError(out.Bytes(), ignoreRecentError), "Error(s) found in imaptest log.") if doFullIMAPtestLog { log, err := os.ReadFile(logPath) assert.NoError(s.t, err) fmt.Println("LOG", s.name, "\n", string(log), "\nLOG", s.name, "END") } } func hasIMAPLogAnError(log []byte, ignoreRecent bool) bool { for _, errMatch := range rxImapTestError.FindAll(log, -1) { if ignoreRecent && rxImapTestRecentError.Match(errMatch) { continue } return true } return false } func TestHasIMAPTestAnError(t *testing.T) { data := []struct { given string want, wantWithIgnore bool }{ { given: `Error: uknown error This is not an error Error: user1@example.com[510]: Message UID=76 has \Recent flag in multiple sessions: 510 and 511: * 76 FETCH (FLAGS (\Answered \Deleted \Draft \Recent)) Logi List Stat Sele Fetc Fet2 Stor Dele Expu Appe Logo 100% 50% 50% 100% 100% 100% 50% 100% 100% 100% 100% 30% 5% 524 262 253 500 0 0 0 0 0 63 24 500/500 52 22 17 24 108 0 0 0 0 158 52 500/500 136 68 60 95 76 63 0 0 0 72 136 500/500 `, want: true, wantWithIgnore: true, }, { given: `This is not an error Logi List Stat Sele Fetc Fet2 Stor Dele Expu Appe Logo 100% 50% 50% 100% 100% 100% 50% 100% 100% 100% 100% 30% 5% 524 262 253 500 0 0 0 0 0 63 24 500/500 52 22 17 24 108 0 0 0 0 158 52 500/500 136 68 60 95 76 63 0 0 0 72 136 500/500 `, want: false, wantWithIgnore: false, }, { given: `This is not an error Error: user1@example.com[510]: Message UID=76 has \Recent flag in multiple sessions: 510 and 511: * 76 FETCH (FLAGS (\Answered \Deleted \Draft \Recent)) Logi List Stat Sele Fetc Fet2 Stor Dele Expu Appe Logo 100% 50% 50% 100% 100% 100% 50% 100% 100% 100% 100% 30% 5% 524 262 253 500 0 0 0 0 0 63 24 500/500 52 22 17 24 108 0 0 0 0 158 52 500/500 136 68 60 95 76 63 0 0 0 72 136 500/500 `, want: true, wantWithIgnore: false, }, } for i, td := range data { assert.Equal(t, td.want, hasIMAPLogAnError([]byte(td.given), false), "While not ignoring case %d", i) assert.Equal(t, td.wantWithIgnore, hasIMAPLogAnError([]byte(td.given), true), "While ignoring case %d", i) } } gluon-0.17.0/builder.go000066400000000000000000000071351445200213000146750ustar00rootroot00000000000000package gluon import ( "crypto/tls" "io" "os" "time" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/backend" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3" "github.com/ProtonMail/gluon/internal/session" "github.com/ProtonMail/gluon/limits" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/store" "github.com/ProtonMail/gluon/version" "github.com/sirupsen/logrus" ) type serverBuilder struct { dataDir string databaseDir string delim string loginJailTime time.Duration tlsConfig *tls.Config idleBulkTime time.Duration inLogger io.Writer outLogger io.Writer versionInfo version.Info cmdExecProfBuilder profiling.CmdProfilerBuilder storeBuilder store.Builder reporter reporter.Reporter disableParallelism bool imapLimits limits.IMAP uidValidityGenerator imap.UIDValidityGenerator panicHandler async.PanicHandler dbCI db.ClientInterface } func newBuilder() (*serverBuilder, error) { return &serverBuilder{ delim: "/", cmdExecProfBuilder: &profiling.NullCmdExecProfilerBuilder{}, storeBuilder: &store.OnDiskStoreBuilder{}, reporter: &reporter.NullReporter{}, idleBulkTime: 500 * time.Millisecond, imapLimits: limits.DefaultLimits(), uidValidityGenerator: imap.DefaultEpochUIDValidityGenerator(), panicHandler: async.NoopPanicHandler{}, dbCI: sqlite3.NewBuilder(), }, nil } func (builder *serverBuilder) build() (*Server, error) { if builder.dataDir == "" { dir, err := os.MkdirTemp("", "gluon-*") if err != nil { return nil, err } builder.dataDir = dir } if err := os.MkdirAll(builder.dataDir, 0o700); err != nil { return nil, err } if builder.databaseDir == "" { dir, err := os.MkdirTemp("", "gluon-*") if err != nil { return nil, err } builder.databaseDir = dir } if err := os.MkdirAll(builder.databaseDir, 0o700); err != nil { return nil, err } backend, err := backend.New( builder.dataDir, builder.databaseDir, builder.storeBuilder, builder.delim, builder.loginJailTime, builder.imapLimits, builder.panicHandler, builder.dbCI, ) if err != nil { return nil, err } // Defer delete all the previous databases from removed user accounts. This is required since we can't // close ent databases on demand. if err := db.DeleteDeferredDBFiles(builder.databaseDir); err != nil { logrus.WithError(err).Error("Failed to remove old database files") } s := &Server{ dataDir: builder.dataDir, databaseDir: builder.databaseDir, backend: backend, sessions: make(map[int]*session.Session), serveErrCh: async.NewQueuedChannel[error](1, 1, builder.panicHandler), serveDoneCh: make(chan struct{}), serveWG: async.MakeWaitGroup(builder.panicHandler), inLogger: builder.inLogger, outLogger: builder.outLogger, tlsConfig: builder.tlsConfig, idleBulkTime: builder.idleBulkTime, storeBuilder: builder.storeBuilder, cmdExecProfBuilder: builder.cmdExecProfBuilder, versionInfo: builder.versionInfo, reporter: builder.reporter, disableParallelism: builder.disableParallelism, uidValidityGenerator: builder.uidValidityGenerator, panicHandler: builder.panicHandler, } return s, nil } gluon-0.17.0/connector/000077500000000000000000000000001445200213000147045ustar00rootroot00000000000000gluon-0.17.0/connector/connector.go000066400000000000000000000053661445200213000172370ustar00rootroot00000000000000package connector import ( "context" "errors" "time" "github.com/ProtonMail/gluon/imap" ) var ErrOperationNotAllowed = errors.New("operation not allowed") var ErrMessageSizeExceedsLimits = errors.New("message size exceeds limits") // Connector connects the gluon server to a remote mail store. type Connector interface { // Authorize returns whether the given username/password combination are valid for this connector. Authorize(ctx context.Context, username string, password []byte) bool // CreateMailbox creates a mailbox with the given name. CreateMailbox(ctx context.Context, name []string) (imap.Mailbox, error) // GetMessageLiteral is intended to be used by Gluon when, for some reason, the local cached data no longer exists. // Note: this can get called from different go routines. GetMessageLiteral(ctx context.Context, id imap.MessageID) ([]byte, error) // GetMailboxVisibility can be used to retrieve the visibility of mailboxes for connected clients. GetMailboxVisibility(ctx context.Context, mboxID imap.MailboxID) imap.MailboxVisibility // UpdateMailboxName sets the name of the mailbox with the given ID. UpdateMailboxName(ctx context.Context, mboxID imap.MailboxID, newName []string) error // DeleteMailbox deletes the mailbox with the given ID. DeleteMailbox(ctx context.Context, mboxID imap.MailboxID) error // CreateMessage creates a new message on the remote. CreateMessage(ctx context.Context, mboxID imap.MailboxID, literal []byte, flags imap.FlagSet, date time.Time) (imap.Message, []byte, error) // AddMessagesToMailbox adds the given messages to the given mailbox. AddMessagesToMailbox(ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID) error // RemoveMessagesFromMailbox removes the given messages from the given mailbox. RemoveMessagesFromMailbox(ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID) error // MoveMessages removes the given messages from one mailbox and adds them to the another mailbox. // Returns true if the original messages should be removed from mboxFromID (e.g: Distinguishing between labels and folders). MoveMessages(ctx context.Context, messageIDs []imap.MessageID, mboxFromID, mboxToID imap.MailboxID) (bool, error) // MarkMessagesSeen sets the seen value of the given messages. MarkMessagesSeen(ctx context.Context, messageIDs []imap.MessageID, seen bool) error // MarkMessagesFlagged sets the flagged value of the given messages. MarkMessagesFlagged(ctx context.Context, messageIDs []imap.MessageID, flagged bool) error // GetUpdates returns a stream of updates that the gluon server should apply. GetUpdates() <-chan imap.Update // Close the connector will no longer be used and all resources should be closed/released. Close(ctx context.Context) error } gluon-0.17.0/connector/dummy.go000066400000000000000000000261631445200213000163760ustar00rootroot00000000000000package connector import ( "bytes" "context" "errors" "fmt" "sync" "sync/atomic" "time" "github.com/ProtonMail/gluon/constants" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/ticker" "github.com/bradenaw/juniper/xslices" "github.com/sirupsen/logrus" "golang.org/x/exp/slices" ) var ( ErrNoSuchMailbox = errors.New("no such mailbox") ErrNoSuchMessage = errors.New("no such message") ErrInvalidPrefix = errors.New("invalid prefix") ErrRenameForbidden = errors.New("rename operation is not allowed") ErrDeleteForbidden = errors.New("delete operation is not allowed") ) type Dummy struct { // state holds the fake connector state. state *dummyState // usernames holds usernames that can be used for authorization. usernames []string // password holds the password that can be used for authorization. password []byte // These hold the default flags/attributes given to mailboxes. flags, permFlags, attrs imap.FlagSet // These hold prefixes given to folders (exclusive) and labels (non-exclusive). pfxFolder, pfxLabel string // updateCh delivers simulated updates to the mailserver. updateCh chan imap.Update updateQuitCh chan struct{} // ticker controls the delivery of simulated events to the mailserver. ticker *ticker.Ticker // queue holds queued updates which are to be delivered to the mailserver each tick cycle. queue []imap.Update queueLock sync.Mutex // hiddenMailboxes holds the visibility status of the mailboxes. Mailboxes not listed are considered visible. mailboxVisibilities map[imap.MailboxID]imap.MailboxVisibility allowMessageCreateWithUnknownMailboxID bool updatesAllowedToFail int32 } func NewDummy(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) *Dummy { conn := &Dummy{ state: newDummyState(flags, permFlags, attrs), usernames: usernames, password: password, flags: flags, permFlags: permFlags, attrs: attrs, updateCh: make(chan imap.Update, constants.ChannelBufferCount), updateQuitCh: make(chan struct{}), ticker: ticker.New(period), mailboxVisibilities: make(map[imap.MailboxID]imap.MailboxVisibility), } go func() { conn.ticker.Tick(func(time.Time) { for _, update := range conn.popUpdates() { defer func() { err, ok := update.Wait() if ok && err != nil { if atomic.LoadInt32(&conn.updatesAllowedToFail) == 0 { panic(fmt.Sprintf("Failed to apply update %v: %v", update.String(), err)) } else { logrus.Errorf("Failed to apply update %v: %v", update.String(), err) } } }() select { case conn.updateCh <- update: continue case <-conn.updateQuitCh: return } } }) }() conn.state.createMailboxWithID([]string{imap.Inbox}, "0", false) return conn } func (conn *Dummy) Authorize(_ context.Context, username string, password []byte) bool { if bytes.Compare(password, conn.password) != 0 { return false } return slices.Contains(conn.usernames, username) } func (conn *Dummy) GetUpdates() <-chan imap.Update { return conn.updateCh } func (conn *Dummy) CreateMailbox(ctx context.Context, name []string) (imap.Mailbox, error) { exclusive, err := conn.validateName(name) if err != nil { return imap.Mailbox{}, err } mbox := conn.state.createMailbox(name, exclusive) conn.pushUpdate(imap.NewMailboxCreated(mbox)) return mbox, nil } func (conn *Dummy) UpdateMailboxName(ctx context.Context, mboxID imap.MailboxID, newName []string) error { mbox, err := conn.state.getMailbox(mboxID) if err != nil { return err } if err := conn.validateUpdate(mbox.Name, newName); err != nil { return err } conn.state.updateMailboxName(mboxID, newName) conn.pushUpdate(imap.NewMailboxUpdated(mboxID, newName)) return nil } func (conn *Dummy) DeleteMailbox(ctx context.Context, mboxID imap.MailboxID) error { conn.state.deleteMailbox(mboxID) conn.pushUpdate(imap.NewMailboxDeleted(mboxID)) return nil } func (conn *Dummy) GetMessageLiteral(ctx context.Context, id imap.MessageID) ([]byte, error) { return conn.state.tryGetLiteral(id) } func (conn *Dummy) CreateMessage(ctx context.Context, mboxID imap.MailboxID, literal []byte, flags imap.FlagSet, date time.Time) (imap.Message, []byte, error) { // NOTE: We are only recording this here since it was the easiest command to verify the data has been record properly // in the context, as APPEND will always require a communication with the remote connector. conn.state.recordIMAPID(ctx) parsed, err := imap.NewParsedMessage(literal) if err != nil { return imap.Message{}, nil, err } message := conn.state.createMessage( mboxID, literal, parsed, flags.ContainsUnchecked(imap.FlagSeenLowerCase), flags.ContainsUnchecked(imap.FlagFlaggedLowerCase), flags, date, ) update := imap.NewMessagesCreated(conn.allowMessageCreateWithUnknownMailboxID, &imap.MessageCreated{ Message: message, Literal: literal, MailboxIDs: []imap.MailboxID{mboxID}, ParsedMessage: parsed, }) conn.pushUpdate(update) return message, literal, nil } func (conn *Dummy) AddMessagesToMailbox(ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID) error { for _, messageID := range messageIDs { conn.state.addMessageToMailbox(messageID, mboxID) conn.pushUpdate(imap.NewMessageMailboxesUpdated( messageID, conn.state.getMailboxIDs(messageID), conn.state.getMessageFlags(messageID), )) } return nil } func (conn *Dummy) RemoveMessagesFromMailbox(ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID) error { for _, messageID := range messageIDs { conn.state.removeMessageFromMailbox(messageID, mboxID) conn.pushUpdate(imap.NewMessageMailboxesUpdated( messageID, conn.state.getMailboxIDs(messageID), conn.state.getMessageFlags(messageID), )) } return nil } func (conn *Dummy) MoveMessages(ctx context.Context, messageIDs []imap.MessageID, mboxFromID, mboxToID imap.MailboxID) (bool, error) { for _, messageID := range messageIDs { conn.state.removeMessageFromMailbox(messageID, mboxFromID) conn.state.addMessageToMailbox(messageID, mboxToID) conn.pushUpdate(imap.NewMessageMailboxesUpdated( messageID, conn.state.getMailboxIDs(messageID), conn.state.getMessageFlags(messageID), )) } return true, nil } func (conn *Dummy) MarkMessagesSeen(ctx context.Context, messageIDs []imap.MessageID, seen bool) error { for _, messageID := range messageIDs { conn.state.setSeen(messageID, seen) conn.pushUpdate(imap.NewMessageFlagsUpdated( messageID, conn.state.getMessageFlags(messageID), )) } return nil } func (conn *Dummy) MarkMessagesFlagged(ctx context.Context, messageIDs []imap.MessageID, flagged bool) error { for _, messageID := range messageIDs { conn.state.setFlagged(messageID, flagged) conn.pushUpdate(imap.NewMessageFlagsUpdated( messageID, conn.state.getMessageFlags(messageID), )) } return nil } func (conn *Dummy) Sync(ctx context.Context) error { for _, mailbox := range conn.state.getMailboxes() { update := imap.NewMailboxCreated(mailbox) conn.updateCh <- update err, ok := update.WaitContext(ctx) if ok && err != nil { return fmt.Errorf("failed to apply update %v:%w", update.String(), err) } } var updates []*imap.MessageCreated for _, message := range conn.state.getMessages() { update, err := conn.state.getMessageCreatedUpdate(message.ID) if err != nil { return err } updates = append(updates, update) } update := imap.NewMessagesCreated(conn.allowMessageCreateWithUnknownMailboxID, updates...) conn.updateCh <- update err, ok := update.WaitContext(ctx) if ok && err != nil { return fmt.Errorf("failed to apply update %v:%w", update.String(), err) } return nil } func (conn *Dummy) Close(ctx context.Context) error { close(conn.updateQuitCh) close(conn.updateCh) conn.ticker.Stop() conn.password = nil return nil } func (conn *Dummy) GetLastRecordedIMAPID() imap.IMAPID { return conn.state.lastIMAPID } func (conn *Dummy) ClearUpdates() { conn.popUpdates() } func (conn *Dummy) GetMailboxVisibility(_ context.Context, id imap.MailboxID) imap.MailboxVisibility { visibility, ok := conn.mailboxVisibilities[id] if !ok { return imap.Visible } return visibility } func (conn *Dummy) SetMailboxVisibility(id imap.MailboxID, visibility imap.MailboxVisibility) { conn.mailboxVisibilities[id] = visibility } func (conn *Dummy) pushUpdate(update imap.Update) { conn.queueLock.Lock() defer conn.queueLock.Unlock() // We mimic the behaviour of the Proton sever. if several update to a message or mailbox happen in between // two event polls, we only get one refresh update with the latest state. switch update := update.(type) { case *imap.MessageMailboxesUpdated: conn.queue = removeMessageMailboxesUpdatedFromSlice(conn.queue, update.MessageID) case *imap.MessageFlagsUpdated: conn.queue = removeMessageFlagsUpdatedFromSlice(conn.queue, update.MessageID) case *imap.MailboxUpdated: conn.queue = removeMailboxUpdatedFromSlice(conn.queue, update.MailboxID) } conn.queue = append(conn.queue, update) } func (conn *Dummy) popUpdates() []imap.Update { conn.queueLock.Lock() defer conn.queueLock.Unlock() var updates []imap.Update updates, conn.queue = conn.queue, []imap.Update{} return updates } func (conn *Dummy) validateUpdate(oldName, newName []string) error { oldEx, err := conn.validateName(oldName) if err != nil { return err } newEx, err := conn.validateName(newName) if err != nil { return err } if oldEx != newEx { return ErrRenameForbidden } return nil } func removeMessageMailboxesUpdatedFromSlice(updates []imap.Update, messageID imap.MessageID) []imap.Update { return xslices.Filter(updates, func(update imap.Update) bool { u, ok := update.(*imap.MessageMailboxesUpdated) return (!ok) || (u.MessageID != messageID) }) } func removeMessageFlagsUpdatedFromSlice(updates []imap.Update, messageID imap.MessageID) []imap.Update { return xslices.Filter(updates, func(update imap.Update) bool { u, ok := update.(*imap.MessageFlagsUpdated) return (!ok) || (u.MessageID != messageID) }) } func removeMailboxUpdatedFromSlice(updates []imap.Update, mailboxID imap.MailboxID) []imap.Update { return xslices.Filter(updates, func(update imap.Update) bool { u, ok := update.(*imap.MailboxUpdated) return (!ok) || (u.MailboxID != mailboxID) }) } func (conn *Dummy) validateName(name []string) (bool, error) { var exclusive bool switch { case len(conn.pfxFolder)+len(conn.pfxLabel) == 0: exclusive = false case len(conn.pfxFolder) > 0 && len(conn.pfxLabel) > 0: if name[0] == conn.pfxFolder { exclusive = true } else if name[0] == conn.pfxLabel { exclusive = false } else { return false, ErrInvalidPrefix } case len(conn.pfxFolder) > 0: if len(name) > 1 && name[0] == conn.pfxFolder { exclusive = true } case len(conn.pfxLabel) > 0: if len(name) > 1 && name[0] == conn.pfxLabel { exclusive = false } } return exclusive, nil } func (conn *Dummy) SetUpdatesAllowedToFail(value bool) { var v int32 if value { v = 1 } else { v = 0 } atomic.StoreInt32(&conn.updatesAllowedToFail, v) } gluon-0.17.0/connector/dummy_simulate.go000066400000000000000000000122241445200213000202720ustar00rootroot00000000000000package connector import ( "github.com/ProtonMail/gluon/imap" ) func (conn *Dummy) SetFolderPrefix(pfx string) { defer conn.Flush() conn.pfxFolder = pfx mbox := conn.state.createMailbox([]string{pfx}, true) mbox.Attributes = mbox.Attributes.Add(imap.AttrNoSelect) conn.pushUpdate(imap.NewMailboxCreated(mbox)) } func (conn *Dummy) SetLabelsPrefix(pfx string) { defer conn.Flush() conn.pfxLabel = pfx mbox := conn.state.createMailbox([]string{pfx}, false) mbox.Attributes = mbox.Attributes.Add(imap.AttrNoSelect) conn.pushUpdate(imap.NewMailboxCreated(mbox)) } func (conn *Dummy) MailboxCreated(mbox imap.Mailbox) error { conn.state.lock.Lock() defer conn.state.lock.Unlock() exclusive, err := conn.validateName(mbox.Name) if err != nil { return err } conn.state.mailboxes[mbox.ID] = &dummyMailbox{ mboxName: mbox.Name, exclusive: exclusive, } conn.pushUpdate(imap.NewMailboxCreated(mbox)) return nil } func (conn *Dummy) MailboxDeleted(mboxID imap.MailboxID) error { conn.state.deleteMailbox(mboxID) conn.pushUpdate(imap.NewMailboxDeleted(mboxID)) return nil } func (conn *Dummy) MessageCreated(message imap.Message, literal []byte, mboxIDs []imap.MailboxID) error { parsedMessage, err := imap.NewParsedMessage(literal) if err != nil { return err } conn.state.lock.Lock() defer conn.state.lock.Unlock() mboxIDMap := make(map[imap.MailboxID]struct{}) for _, mboxID := range mboxIDs { mboxIDMap[mboxID] = struct{}{} } conn.state.messages[message.ID] = &dummyMessage{ literal: literal, seen: message.Flags.Contains(imap.FlagSeen), flagged: message.Flags.Contains(imap.FlagFlagged), parsed: parsedMessage, date: message.Date, mboxIDs: mboxIDMap, } update := imap.NewMessagesCreated(conn.allowMessageCreateWithUnknownMailboxID, &imap.MessageCreated{ Message: message, Literal: literal, MailboxIDs: mboxIDs, ParsedMessage: parsedMessage, }) conn.pushUpdate(update) return nil } func (conn *Dummy) MessagesCreated(messages []imap.Message, literals [][]byte, mboxIDs [][]imap.MailboxID) error { conn.state.lock.Lock() defer conn.state.lock.Unlock() var updates []*imap.MessageCreated for i := 0; i < len(messages); i++ { parsedMessage, err := imap.NewParsedMessage(literals[i]) if err != nil { return err } mboxIDMap := make(map[imap.MailboxID]struct{}) for _, mboxID := range mboxIDs[i] { mboxIDMap[mboxID] = struct{}{} } conn.state.messages[messages[i].ID] = &dummyMessage{ literal: literals[i], seen: messages[i].Flags.Contains(imap.FlagSeen), flagged: messages[i].Flags.Contains(imap.FlagFlagged), parsed: parsedMessage, date: messages[i].Date, mboxIDs: mboxIDMap, } updates = append(updates, &imap.MessageCreated{ Message: messages[i], Literal: literals[i], MailboxIDs: mboxIDs[i], ParsedMessage: parsedMessage, }) } conn.pushUpdate(imap.NewMessagesCreated(conn.allowMessageCreateWithUnknownMailboxID, updates...)) return nil } func (conn *Dummy) MessageUpdated(message imap.Message, literal []byte, mboxIDs []imap.MailboxID) error { conn.state.lock.Lock() defer conn.state.lock.Unlock() parsedMessage, err := imap.NewParsedMessage(literal) if err != nil { return err } mboxIDMap := make(map[imap.MailboxID]struct{}) for _, mboxID := range mboxIDs { mboxIDMap[mboxID] = struct{}{} } conn.state.messages[message.ID] = &dummyMessage{ literal: literal, seen: message.Flags.Contains(imap.FlagSeen), flagged: message.Flags.Contains(imap.FlagFlagged), parsed: parsedMessage, date: message.Date, mboxIDs: mboxIDMap, } conn.pushUpdate(imap.NewMessageUpdated(message, literal, mboxIDs, parsedMessage, false)) return nil } func (conn *Dummy) MessageAdded(messageID imap.MessageID, mboxID imap.MailboxID) error { conn.state.addMessageToMailbox(messageID, mboxID) conn.pushUpdate(imap.NewMessageMailboxesUpdated( messageID, conn.state.getMailboxIDs(messageID), conn.state.getMessageFlags(messageID), )) return nil } func (conn *Dummy) MessageRemoved(messageID imap.MessageID, mboxID imap.MailboxID) error { conn.state.removeMessageFromMailbox(messageID, mboxID) conn.pushUpdate(imap.NewMessageMailboxesUpdated( messageID, conn.state.getMailboxIDs(messageID), conn.state.getMessageFlags(messageID), )) return nil } func (conn *Dummy) MessageSeen(messageID imap.MessageID, seen bool) error { conn.state.setSeen(messageID, seen) conn.pushUpdate(imap.NewMessageFlagsUpdated( messageID, conn.state.getMessageFlags(messageID), )) return nil } func (conn *Dummy) MessageFlagged(messageID imap.MessageID, flagged bool) error { conn.state.setFlagged(messageID, flagged) conn.pushUpdate(imap.NewMessageFlagsUpdated( messageID, conn.state.getMessageFlags(messageID), )) return nil } func (conn *Dummy) MessageDeleted(messageID imap.MessageID) error { conn.pushUpdate(imap.NewMessagesDeleted(messageID)) return nil } func (conn *Dummy) UIDValidityBumped() { conn.pushUpdate(imap.NewUIDValidityBumped()) } func (conn *Dummy) Flush() { conn.ticker.Poll() } func (conn *Dummy) SetAllowMessageCreateWithUnknownMailboxID(value bool) { conn.allowMessageCreateWithUnknownMailboxID = value } gluon-0.17.0/connector/dummy_state.go000066400000000000000000000160041445200213000175670ustar00rootroot00000000000000package connector import ( "context" "sync" "time" "github.com/ProtonMail/gluon/imap" "github.com/bradenaw/juniper/xslices" "github.com/google/uuid" "golang.org/x/exp/maps" ) type dummyState struct { flags, permFlags, attrs imap.FlagSet messages map[imap.MessageID]*dummyMessage mailboxes map[imap.MailboxID]*dummyMailbox lastIMAPID imap.IMAPID lock sync.RWMutex } type dummyMailbox struct { mboxName []string exclusive bool } type dummyMessage struct { literal []byte parsed *imap.ParsedMessage seen bool flagged bool date time.Time flags imap.FlagSet mboxIDs map[imap.MailboxID]struct{} } func newDummyState(flags, permFlags, attrs imap.FlagSet) *dummyState { return &dummyState{ flags: flags, permFlags: permFlags, attrs: attrs, messages: make(map[imap.MessageID]*dummyMessage), mailboxes: make(map[imap.MailboxID]*dummyMailbox), lastIMAPID: imap.NewIMAPID(), } } func (state *dummyState) recordIMAPID(ctx context.Context) { if id, ok := imap.GetIMAPIDFromContext(ctx); ok { state.lock.Lock() defer state.lock.Unlock() state.lastIMAPID = id } } func (state *dummyState) getMailboxes() []imap.Mailbox { state.lock.Lock() defer state.lock.Unlock() return xslices.Map(maps.Keys(state.mailboxes), func(mboxID imap.MailboxID) imap.Mailbox { return state.toMailbox(mboxID) }) } func (state *dummyState) getMailbox(mboxID imap.MailboxID) (imap.Mailbox, error) { state.lock.Lock() defer state.lock.Unlock() if _, ok := state.mailboxes[mboxID]; !ok { return imap.Mailbox{}, ErrNoSuchMailbox } return state.toMailbox(mboxID), nil } func (state *dummyState) createMailbox(name []string, exclusive bool) imap.Mailbox { state.lock.Lock() defer state.lock.Unlock() mboxID := imap.MailboxID(uuid.NewString()) state.mailboxes[mboxID] = &dummyMailbox{ mboxName: name, exclusive: exclusive, } return state.toMailbox(mboxID) } func (state *dummyState) createMailboxWithID(name []string, id imap.MailboxID, exclusive bool) imap.Mailbox { state.lock.Lock() defer state.lock.Unlock() state.mailboxes[id] = &dummyMailbox{ mboxName: name, exclusive: exclusive, } return state.toMailbox(id) } func (state *dummyState) updateMailboxName(mboxID imap.MailboxID, name []string) { state.lock.Lock() defer state.lock.Unlock() state.mailboxes[mboxID].mboxName = name } func (state *dummyState) deleteMailbox(mboxID imap.MailboxID) { state.lock.Lock() defer state.lock.Unlock() delete(state.mailboxes, mboxID) for _, message := range state.messages { delete(message.mboxIDs, mboxID) } } func (state *dummyState) getMessages() []imap.Message { state.lock.Lock() defer state.lock.Unlock() return xslices.Map(maps.Keys(state.messages), func(messageID imap.MessageID) imap.Message { return state.toMessage(messageID) }) } func (state *dummyState) getMessageCreatedUpdate(id imap.MessageID) (*imap.MessageCreated, error) { state.lock.Lock() defer state.lock.Unlock() msg, ok := state.messages[id] if !ok { return nil, ErrNoSuchMessage } return &imap.MessageCreated{ Message: state.toMessage(id), Literal: msg.literal, MailboxIDs: maps.Keys(msg.mboxIDs), ParsedMessage: msg.parsed, }, nil } func (state *dummyState) getMessage(messageID imap.MessageID) (imap.Message, error) { state.lock.Lock() defer state.lock.Unlock() if _, ok := state.messages[messageID]; !ok { return imap.Message{}, ErrNoSuchMessage } return state.toMessage(messageID), nil } func (state *dummyState) getMailboxIDs(messageID imap.MessageID) []imap.MailboxID { state.lock.Lock() defer state.lock.Unlock() return maps.Keys(state.messages[messageID].mboxIDs) } func (state *dummyState) getLiteral(messageID imap.MessageID) []byte { state.lock.Lock() defer state.lock.Unlock() return state.messages[messageID].literal } func (state *dummyState) tryGetLiteral(messageID imap.MessageID) ([]byte, error) { state.lock.Lock() defer state.lock.Unlock() v, ok := state.messages[messageID] if !ok { return nil, ErrNoSuchMessage } return v.literal, nil } func (state *dummyState) createMessage( mboxID imap.MailboxID, literal []byte, parsed *imap.ParsedMessage, seen, flagged bool, otherFlags imap.FlagSet, date time.Time, ) imap.Message { state.lock.Lock() defer state.lock.Unlock() messageID := imap.MessageID(uuid.NewString()) if seen { otherFlags.RemoveFromSelf(imap.FlagSeen) } if flagged { otherFlags.RemoveFromSelf(imap.FlagFlagged) } state.messages[messageID] = &dummyMessage{ literal: literal, seen: seen, parsed: parsed, flagged: flagged, flags: otherFlags, date: date, mboxIDs: map[imap.MailboxID]struct{}{mboxID: {}}, } return state.toMessage(messageID) } func (state *dummyState) addMessageToMailbox(messageID imap.MessageID, mboxID imap.MailboxID) { state.lock.Lock() defer state.lock.Unlock() if state.mailboxes[mboxID].exclusive { state.messages[messageID].mboxIDs = make(map[imap.MailboxID]struct{}) } state.messages[messageID].mboxIDs[mboxID] = struct{}{} } func (state *dummyState) removeMessageFromMailbox(messageID imap.MessageID, mboxID imap.MailboxID) { state.lock.Lock() defer state.lock.Unlock() delete(state.messages[messageID].mboxIDs, mboxID) } func (state *dummyState) setSeen(messageID imap.MessageID, seen bool) { state.lock.Lock() defer state.lock.Unlock() state.messages[messageID].seen = seen } func (state *dummyState) setFlagged(messageID imap.MessageID, flagged bool) { state.lock.Lock() defer state.lock.Unlock() state.messages[messageID].flagged = flagged } func (state *dummyState) isSeen(messageID imap.MessageID) bool { state.lock.Lock() defer state.lock.Unlock() return state.messages[messageID].seen } func (state *dummyState) isFlagged(messageID imap.MessageID) bool { state.lock.Lock() defer state.lock.Unlock() return state.messages[messageID].flagged } func (state *dummyState) isDraft(messageID imap.MessageID) bool { state.lock.Lock() defer state.lock.Unlock() // NOTE: If we want to support a custom draft folder, handle it here and update `getMessageFlags`. return false } func (state *dummyState) getMessageFlags(messageID imap.MessageID) imap.FlagSet { state.lock.Lock() defer state.lock.Unlock() msg := state.messages[messageID] flags := imap.NewFlagSet() if msg.seen { flags.AddToSelf(imap.FlagSeen) } if msg.flagged { flags.AddToSelf(imap.FlagFlagged) } return flags } func (state *dummyState) toMailbox(mboxID imap.MailboxID) imap.Mailbox { return imap.Mailbox{ ID: mboxID, Name: state.mailboxes[mboxID].mboxName, Flags: state.flags, PermanentFlags: state.permFlags, Attributes: state.attrs, } } func (state *dummyState) toMessage(messageID imap.MessageID) imap.Message { flags := imap.NewFlagSet() if state.messages[messageID].seen { flags.AddToSelf(imap.FlagSeen) } if state.messages[messageID].flagged { flags.AddToSelf(imap.FlagFlagged) } flags.AddFlagSetToSelf(state.messages[messageID].flags) return imap.Message{ ID: messageID, Flags: flags, Date: state.messages[messageID].date, } } gluon-0.17.0/connector/dummy_test.go000066400000000000000000000033151445200213000174270ustar00rootroot00000000000000package connector import ( "testing" "time" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/require" ) const defaultPeriod = time.Second var ( defaultFlags = imap.NewFlagSet(imap.FlagSeen, imap.FlagFlagged, imap.FlagDeleted) defaultPermanentFlags = imap.NewFlagSet(imap.FlagSeen, imap.FlagFlagged, imap.FlagDeleted) defaultAttributes = imap.NewFlagSet() ) func TestDummyConnector_validateUpdate(t *testing.T) { conn := NewDummy( []string{"username"}, []byte("password"), defaultPeriod, defaultFlags, defaultPermanentFlags, defaultAttributes, ) go func() { for update := range conn.GetUpdates() { update.Done(nil) } }() require.NoError(t, conn.validateUpdate([]string{"something"}, []string{"other"})) conn.SetFolderPrefix("Folders") require.NoError(t, conn.validateUpdate([]string{"Folders", "something"}, []string{"Folders", "other"})) require.NoError(t, conn.validateUpdate([]string{"Folders", "something"}, []string{"Folders", "other", "long"})) require.Error(t, conn.validateUpdate([]string{"Folders", "something"}, []string{"other"})) require.Error(t, conn.validateUpdate([]string{"something"}, []string{"Folders", "other"})) conn.SetLabelsPrefix("Labels") require.NoError(t, conn.validateUpdate([]string{"Labels", "something"}, []string{"Labels", "other"})) require.NoError(t, conn.validateUpdate([]string{"Labels", "something"}, []string{"Labels", "other", "long"})) require.Error(t, conn.validateUpdate([]string{"Labels", "something"}, []string{"other"})) require.Error(t, conn.validateUpdate([]string{"something"}, []string{"Labels", "other"})) require.Error(t, conn.validateUpdate([]string{"Folders", "something"}, []string{"Labels", "something"})) } gluon-0.17.0/connector/mock_connector/000077500000000000000000000000001445200213000177075ustar00rootroot00000000000000gluon-0.17.0/connector/mock_connector/connector.go000066400000000000000000000224221445200213000222320ustar00rootroot00000000000000// Code generated by MockGen. DO NOT EDIT. // Source: github.com/ProtonMail/gluon/connector (interfaces: Connector) // Package mock_connector is a generated GoMock package. package mock_connector import ( context "context" reflect "reflect" time "time" imap "github.com/ProtonMail/gluon/imap" gomock "github.com/golang/mock/gomock" ) // MockConnector is a mock of Connector interface. type MockConnector struct { ctrl *gomock.Controller recorder *MockConnectorMockRecorder } // MockConnectorMockRecorder is the mock recorder for MockConnector. type MockConnectorMockRecorder struct { mock *MockConnector } // NewMockConnector creates a new mock instance. func NewMockConnector(ctrl *gomock.Controller) *MockConnector { mock := &MockConnector{ctrl: ctrl} mock.recorder = &MockConnectorMockRecorder{mock} return mock } // EXPECT returns an object that allows the caller to indicate expected use. func (m *MockConnector) EXPECT() *MockConnectorMockRecorder { return m.recorder } // AddMessagesToMailbox mocks base method. func (m *MockConnector) AddMessagesToMailbox(arg0 context.Context, arg1 []imap.MessageID, arg2 imap.MailboxID) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AddMessagesToMailbox", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // AddMessagesToMailbox indicates an expected call of AddMessagesToMailbox. func (mr *MockConnectorMockRecorder) AddMessagesToMailbox(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddMessagesToMailbox", reflect.TypeOf((*MockConnector)(nil).AddMessagesToMailbox), arg0, arg1, arg2) } // Authorize mocks base method. func (m *MockConnector) Authorize(arg0 string, arg1 []byte) bool { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "Authorize", arg0, arg1) ret0, _ := ret[0].(bool) return ret0 } // Authorize indicates an expected call of Authorize. func (mr *MockConnectorMockRecorder) Authorize(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Authorize", reflect.TypeOf((*MockConnector)(nil).Authorize), arg0, arg1) } // Close mocks base method. func (m *MockConnector) Close(arg0 context.Context) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "Close", arg0) ret0, _ := ret[0].(error) return ret0 } // Close indicates an expected call of Close. func (mr *MockConnectorMockRecorder) Close(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockConnector)(nil).Close), arg0) } // CreateMailbox mocks base method. func (m *MockConnector) CreateMailbox(arg0 context.Context, arg1 []string) (imap.Mailbox, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateMailbox", arg0, arg1) ret0, _ := ret[0].(imap.Mailbox) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateMailbox indicates an expected call of CreateMailbox. func (mr *MockConnectorMockRecorder) CreateMailbox(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateMailbox", reflect.TypeOf((*MockConnector)(nil).CreateMailbox), arg0, arg1) } // CreateMessage mocks base method. func (m *MockConnector) CreateMessage(arg0 context.Context, arg1 imap.MailboxID, arg2 []byte, arg3 imap.FlagSet, arg4 time.Time) (imap.Message, []byte, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateMessage", arg0, arg1, arg2, arg3, arg4) ret0, _ := ret[0].(imap.Message) ret1, _ := ret[1].([]byte) ret2, _ := ret[2].(error) return ret0, ret1, ret2 } // CreateMessage indicates an expected call of CreateMessage. func (mr *MockConnectorMockRecorder) CreateMessage(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateMessage", reflect.TypeOf((*MockConnector)(nil).CreateMessage), arg0, arg1, arg2, arg3, arg4) } // DeleteMailbox mocks base method. func (m *MockConnector) DeleteMailbox(arg0 context.Context, arg1 imap.MailboxID) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteMailbox", arg0, arg1) ret0, _ := ret[0].(error) return ret0 } // DeleteMailbox indicates an expected call of DeleteMailbox. func (mr *MockConnectorMockRecorder) DeleteMailbox(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteMailbox", reflect.TypeOf((*MockConnector)(nil).DeleteMailbox), arg0, arg1) } // GetMailboxVisibility mocks base method. func (m *MockConnector) GetMailboxVisibility(arg0 context.Context, arg1 imap.MailboxID) imap.MailboxVisibility { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetMailboxVisibility", arg0, arg1) ret0, _ := ret[0].(imap.MailboxVisibility) return ret0 } // GetMailboxVisibility indicates an expected call of GetMailboxVisibility. func (mr *MockConnectorMockRecorder) GetMailboxVisibility(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMailboxVisibility", reflect.TypeOf((*MockConnector)(nil).GetMailboxVisibility), arg0, arg1) } // GetMessageLiteral mocks base method. func (m *MockConnector) GetMessageLiteral(arg0 context.Context, arg1 imap.MessageID) ([]byte, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetMessageLiteral", arg0, arg1) ret0, _ := ret[0].([]byte) ret1, _ := ret[1].(error) return ret0, ret1 } // GetMessageLiteral indicates an expected call of GetMessageLiteral. func (mr *MockConnectorMockRecorder) GetMessageLiteral(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMessageLiteral", reflect.TypeOf((*MockConnector)(nil).GetMessageLiteral), arg0, arg1) } // GetUpdates mocks base method. func (m *MockConnector) GetUpdates() <-chan imap.Update { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetUpdates") ret0, _ := ret[0].(<-chan imap.Update) return ret0 } // GetUpdates indicates an expected call of GetUpdates. func (mr *MockConnectorMockRecorder) GetUpdates() *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUpdates", reflect.TypeOf((*MockConnector)(nil).GetUpdates)) } // MarkMessagesFlagged mocks base method. func (m *MockConnector) MarkMessagesFlagged(arg0 context.Context, arg1 []imap.MessageID, arg2 bool) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "MarkMessagesFlagged", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // MarkMessagesFlagged indicates an expected call of MarkMessagesFlagged. func (mr *MockConnectorMockRecorder) MarkMessagesFlagged(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MarkMessagesFlagged", reflect.TypeOf((*MockConnector)(nil).MarkMessagesFlagged), arg0, arg1, arg2) } // MarkMessagesSeen mocks base method. func (m *MockConnector) MarkMessagesSeen(arg0 context.Context, arg1 []imap.MessageID, arg2 bool) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "MarkMessagesSeen", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // MarkMessagesSeen indicates an expected call of MarkMessagesSeen. func (mr *MockConnectorMockRecorder) MarkMessagesSeen(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MarkMessagesSeen", reflect.TypeOf((*MockConnector)(nil).MarkMessagesSeen), arg0, arg1, arg2) } // MoveMessages mocks base method. func (m *MockConnector) MoveMessages(arg0 context.Context, arg1 []imap.MessageID, arg2, arg3 imap.MailboxID) (bool, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "MoveMessages", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(bool) ret1, _ := ret[1].(error) return ret0, ret1 } // MoveMessages indicates an expected call of MoveMessages. func (mr *MockConnectorMockRecorder) MoveMessages(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MoveMessages", reflect.TypeOf((*MockConnector)(nil).MoveMessages), arg0, arg1, arg2, arg3) } // RemoveMessagesFromMailbox mocks base method. func (m *MockConnector) RemoveMessagesFromMailbox(arg0 context.Context, arg1 []imap.MessageID, arg2 imap.MailboxID) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RemoveMessagesFromMailbox", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // RemoveMessagesFromMailbox indicates an expected call of RemoveMessagesFromMailbox. func (mr *MockConnectorMockRecorder) RemoveMessagesFromMailbox(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveMessagesFromMailbox", reflect.TypeOf((*MockConnector)(nil).RemoveMessagesFromMailbox), arg0, arg1, arg2) } // UpdateMailboxName mocks base method. func (m *MockConnector) UpdateMailboxName(arg0 context.Context, arg1 imap.MailboxID, arg2 []string) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UpdateMailboxName", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // UpdateMailboxName indicates an expected call of UpdateMailboxName. func (mr *MockConnectorMockRecorder) UpdateMailboxName(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMailboxName", reflect.TypeOf((*MockConnector)(nil).UpdateMailboxName), arg0, arg1, arg2) } gluon-0.17.0/connector/package.go000066400000000000000000000002521445200213000166250ustar00rootroot00000000000000// Package connector defines the type that connects the server to a remote. package connector //go:generate mockgen -destination mock_connector/connector.go . Connector gluon-0.17.0/constants/000077500000000000000000000000001445200213000147265ustar00rootroot00000000000000gluon-0.17.0/constants/constants.go000066400000000000000000000000621445200213000172670ustar00rootroot00000000000000package constants const ChannelBufferCount = 100 gluon-0.17.0/db/000077500000000000000000000000001445200213000132775ustar00rootroot00000000000000gluon-0.17.0/db/client.go000066400000000000000000000022531445200213000151060ustar00rootroot00000000000000package db import ( "context" "path/filepath" "github.com/ProtonMail/gluon/imap" ) const ChunkLimit = 1000 type Client interface { Init(ctx context.Context, generator imap.UIDValidityGenerator) error Read(ctx context.Context, op func(context.Context, ReadOnly) error) error Write(ctx context.Context, op func(context.Context, Transaction) error) error Close() error } type ClientInterface interface { New(path string, userID string) (Client, bool, error) Delete(path string, userID string) error } func GetDeferredDeleteDBPath(dir string) string { return filepath.Join(dir, "deferred_delete") } func ClientReadType[T any](ctx context.Context, c Client, op func(context.Context, ReadOnly) (T, error)) (T, error) { var result T err := c.Read(ctx, func(ctx context.Context, read ReadOnly) error { var err error result, err = op(ctx, read) return err }) return result, err } func ClientWriteType[T any](ctx context.Context, c Client, op func(context.Context, Transaction) (T, error)) (T, error) { var result T err := c.Write(ctx, func(ctx context.Context, t Transaction) error { var err error result, err = op(ctx, t) return err }) return result, err } gluon-0.17.0/db/deferred_delete.go000066400000000000000000000026211445200213000167310ustar00rootroot00000000000000package db import ( "errors" "fmt" "os" "path/filepath" "github.com/google/uuid" ) // DeleteDB will rename all the database files for the given user to a directory within the same folder to avoid // issues with ent not being able to close the database on demand. The database will be cleaned up on the next // run on the Gluon server. func DeleteDB(dir, userID string) error { // Rather than deleting the files immediately move them to a directory to be cleaned up later. deferredDeletePath := GetDeferredDeleteDBPath(dir) if err := os.MkdirAll(deferredDeletePath, 0o700); err != nil { return fmt.Errorf("failed to create deferred delete dir: %w", err) } matchingFiles, err := filepath.Glob(filepath.Join(dir, userID+"*")) if err != nil { return fmt.Errorf("failed to match db files:%w", err) } for _, file := range matchingFiles { // Use new UUID to avoid conflict with existing files if err := os.Rename(file, filepath.Join(deferredDeletePath, uuid.NewString())); err != nil { return fmt.Errorf("failed to move db file '%v' :%w", file, err) } } return nil } // DeleteDeferredDBFiles deletes all data from previous databases that were scheduled for removal. func DeleteDeferredDBFiles(dir string) error { deferredDeleteDir := GetDeferredDeleteDBPath(dir) if err := os.RemoveAll(deferredDeleteDir); err != nil { if !errors.Is(err, os.ErrNotExist) { return err } } return nil } gluon-0.17.0/db/errors.go000066400000000000000000000006011445200213000151370ustar00rootroot00000000000000package db import "errors" var ErrNotFound = errors.New("value not found") var ErrTransactionFailed = errors.New("transaction failed") var ErrMigrationFailed = errors.New("database migration failed") var ErrInvalidDatabaseVersion = errors.New("invalid database version") func IsErrNotFound(err error) bool { if err == nil { return false } return errors.Is(err, ErrNotFound) } gluon-0.17.0/db/ops.go000066400000000000000000000002771445200213000144350ustar00rootroot00000000000000package db type ReadOnly interface { MailboxReadOps MessageReadOps SubscriptionReadOps } type Transaction interface { ReadOnly MailboxWriteOps MessageWriteOps SubscriptionWriteOps } gluon-0.17.0/db/ops_mailbox.go000066400000000000000000000125011445200213000161410ustar00rootroot00000000000000package db import ( "context" "strings" "github.com/ProtonMail/gluon/imap" ) type MailboxReadOps interface { MailboxExistsWithID(ctx context.Context, mboxID imap.InternalMailboxID) (bool, error) MailboxExistsWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (bool, error) MailboxExistsWithName(ctx context.Context, name string) (bool, error) GetMailboxIDFromRemoteID(ctx context.Context, mboxID imap.MailboxID) (imap.InternalMailboxID, error) GetMailboxName(ctx context.Context, mboxID imap.InternalMailboxID) (string, error) GetMailboxNameWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (string, error) GetMailboxMessageIDPairs(ctx context.Context, mboxID imap.InternalMailboxID) ([]MessageIDPair, error) GetAllMailboxesWithAttr(ctx context.Context) ([]*MailboxWithAttr, error) GetAllMailboxesAsRemoteIDs(ctx context.Context) ([]imap.MailboxID, error) GetMailboxByName(ctx context.Context, name string) (*Mailbox, error) GetMailboxByID(ctx context.Context, mboxID imap.InternalMailboxID) (*Mailbox, error) GetMailboxByRemoteID(ctx context.Context, mboxID imap.MailboxID) (*Mailbox, error) GetMailboxRecentCount(ctx context.Context, mboxID imap.InternalMailboxID) (int, error) GetMailboxMessageCount(ctx context.Context, mboxID imap.InternalMailboxID) (int, error) GetMailboxMessageCountWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (int, error) GetMailboxFlags(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) GetMailboxPermanentFlags(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) GetMailboxAttributes(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) GetMailboxUID(ctx context.Context, mboxID imap.InternalMailboxID) (imap.UID, error) GetMailboxMessageCountAndUID(ctx context.Context, mboxID imap.InternalMailboxID) (int, imap.UID, error) GetMailboxMessageForNewSnapshot(ctx context.Context, mboxID imap.InternalMailboxID) ([]SnapshotMessageResult, error) MailboxTranslateRemoteIDs(ctx context.Context, mboxIDs []imap.MailboxID) ([]imap.InternalMailboxID, error) MailboxFilterContains(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []MessageIDPair) ([]imap.InternalMessageID, error) GetMailboxCount(ctx context.Context) (int, error) } type MailboxWriteOps interface { MailboxReadOps CreateMailbox(ctx context.Context, mboxID imap.MailboxID, name string, flags, permFlags, attrs imap.FlagSet, uidValidity imap.UID) (*Mailbox, error) GetOrCreateMailbox(ctx context.Context, mboxID imap.MailboxID, name string, flags, permFlags, attrs imap.FlagSet, uidValidity imap.UID) (*Mailbox, error) GetOrCreateMailboxAlt(ctx context.Context, mbox imap.Mailbox, delimiter string, uidValidity imap.UID) (*Mailbox, error) RenameMailboxWithRemoteID(ctx context.Context, mboxID imap.MailboxID, name string) error DeleteMailboxWithRemoteID(ctx context.Context, mboxID imap.MailboxID) error AddMessagesToMailbox(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []MessageIDPair) ([]UIDWithFlags, error) RemoveMessagesFromMailbox(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID) error ClearRecentFlagInMailboxOnMessage(ctx context.Context, mboxID imap.InternalMailboxID, messageID imap.InternalMessageID) error ClearRecentFlagsInMailbox(ctx context.Context, mboxID imap.InternalMailboxID) error CreateMailboxIfNotExists(ctx context.Context, mbox imap.Mailbox, delimiter string, uidValidity imap.UID) error SetMailboxMessagesDeletedFlag(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID, deleted bool) error SetMailboxSubscribed(ctx context.Context, mboxID imap.InternalMailboxID, subscribed bool) error UpdateRemoteMailboxID(ctx context.Context, mobxID imap.InternalMailboxID, remoteID imap.MailboxID) error SetMailboxUIDValidity(ctx context.Context, mboxID imap.InternalMailboxID, uidValidity imap.UID) error } type SnapshotMessageResult struct { InternalID imap.InternalMessageID `json:"uid_message"` RemoteID imap.MessageID `json:"remote_id"` UID imap.UID `json:"uid"` Recent bool `json:"recent"` Deleted bool `json:"deleted"` Flags string `json:"flags"` } func (msg *SnapshotMessageResult) GetFlagSet() imap.FlagSet { var flagSet imap.FlagSet if len(msg.Flags) > 0 { flags := strings.Split(msg.Flags, ",") flagSet = imap.NewFlagSetFromSlice(flags) } else { flagSet = imap.NewFlagSet() } if msg.Deleted { flagSet.AddToSelf(imap.FlagDeleted) } if msg.Recent { flagSet.AddToSelf(imap.FlagRecent) } return flagSet } type UIDWithFlags struct { InternalID imap.InternalMessageID `json:"uid_message"` RemoteID imap.MessageID `json:"remote_id"` UID imap.UID `json:"uid"` Recent bool `json:"recent"` Deleted bool `json:"deleted"` Flags string `json:"flags"` } func (u *UIDWithFlags) GetFlagSet() imap.FlagSet { var flagSet imap.FlagSet if len(u.Flags) > 0 { flags := strings.Split(u.Flags, ",") flagSet = imap.NewFlagSetFromSlice(flags) } else { flagSet = imap.NewFlagSet() } if u.Deleted { flagSet.AddToSelf(imap.FlagDeleted) } if u.Recent { flagSet.AddToSelf(imap.FlagRecent) } return flagSet } gluon-0.17.0/db/ops_message.go000066400000000000000000000047521445200213000161430ustar00rootroot00000000000000package db import ( "context" "time" "github.com/ProtonMail/gluon/imap" ) type MessageReadOps interface { MessageExists(ctx context.Context, id imap.InternalMessageID) (bool, error) MessageExistsWithRemoteID(ctx context.Context, id imap.MessageID) (bool, error) GetMessageNoEdges(ctx context.Context, id imap.InternalMessageID) (*Message, error) GetTotalMessageCount(ctx context.Context) (int, error) GetMessageRemoteID(ctx context.Context, id imap.InternalMessageID) (imap.MessageID, error) GetImportedMessageData(ctx context.Context, id imap.InternalMessageID) (*MessageWithFlags, error) GetMessageDateAndSize(ctx context.Context, id imap.InternalMessageID) (time.Time, int, error) GetMessageMailboxIDs(ctx context.Context, id imap.InternalMessageID) ([]imap.InternalMailboxID, error) GetMessagesFlags(ctx context.Context, ids []imap.InternalMessageID) ([]MessageFlagSet, error) GetMessageIDsMarkedAsDelete(ctx context.Context) ([]imap.InternalMessageID, error) GetMessageIDFromRemoteID(ctx context.Context, id imap.MessageID) (imap.InternalMessageID, error) GetMessageDeletedFlag(ctx context.Context, id imap.InternalMessageID) (bool, error) GetAllMessagesIDsAsMap(ctx context.Context) (map[imap.InternalMessageID]struct{}, error) } type MessageWriteOps interface { MessageReadOps CreateMessages(ctx context.Context, reqs ...*CreateMessageReq) error CreateMessageAndAddToMailbox(ctx context.Context, mbox imap.InternalMailboxID, req *CreateMessageReq) (imap.UID, imap.FlagSet, error) MarkMessageAsDeleted(ctx context.Context, id imap.InternalMessageID) error MarkMessageAsDeletedAndAssignRandomRemoteID(ctx context.Context, id imap.InternalMessageID) error MarkMessageAsDeletedWithRemoteID(ctx context.Context, id imap.MessageID) error DeleteMessages(ctx context.Context, ids []imap.InternalMessageID) error UpdateRemoteMessageID(ctx context.Context, internalID imap.InternalMessageID, remoteID imap.MessageID) error AddFlagToMessages(ctx context.Context, ids []imap.InternalMessageID, flag string) error RemoveFlagFromMessages(ctx context.Context, ids []imap.InternalMessageID, flag string) error SetFlagsOnMessages(ctx context.Context, ids []imap.InternalMessageID, flags imap.FlagSet) error } type CreateMessageReq struct { Message imap.Message InternalID imap.InternalMessageID LiteralSize int Body string Structure string Envelope string } type MessageFlagSet struct { ID imap.InternalMessageID RemoteID imap.MessageID FlagSet imap.FlagSet } gluon-0.17.0/db/ops_subscription.go000066400000000000000000000006521445200213000172360ustar00rootroot00000000000000package db import ( "context" "github.com/ProtonMail/gluon/imap" ) type SubscriptionReadOps interface { GetDeletedSubscriptionSet(ctx context.Context) (map[imap.MailboxID]*DeletedSubscription, error) } type SubscriptionWriteOps interface { AddDeletedSubscription(ctx context.Context, mboxName string, mboxID imap.MailboxID) error RemoveDeletedSubscriptionWithName(ctx context.Context, mboxName string) (int, error) } gluon-0.17.0/db/types.go000066400000000000000000000046251445200213000150010ustar00rootroot00000000000000package db import ( "fmt" "time" "github.com/ProtonMail/gluon/imap" ) type MailboxIDPair struct { InternalID imap.InternalMailboxID RemoteID imap.MailboxID } func (m *MailboxIDPair) String() string { return fmt.Sprintf("%v::%v", m.InternalID, m.RemoteID) } type MessageIDPair struct { InternalID imap.InternalMessageID RemoteID imap.MessageID } func (m *MessageIDPair) String() string { return fmt.Sprintf("%v::%v", m.InternalID, m.RemoteID) } func NewMailboxIDPair(mbox *Mailbox) MailboxIDPair { return MailboxIDPair{ InternalID: mbox.ID, RemoteID: mbox.RemoteID, } } func NewMailboxIDPairWithoutRemote(internalID imap.InternalMailboxID) MailboxIDPair { return MailboxIDPair{ InternalID: internalID, RemoteID: "", } } func NewMessageIDPair(msg *Message) MessageIDPair { return MessageIDPair{ InternalID: msg.ID, RemoteID: msg.RemoteID, } } func SplitMessageIDPairSlice(s []MessageIDPair) ([]imap.InternalMessageID, []imap.MessageID) { l := len(s) internalMessageIDs := make([]imap.InternalMessageID, 0, l) remoteMessageIDs := make([]imap.MessageID, 0, l) for _, v := range s { internalMessageIDs = append(internalMessageIDs, v.InternalID) remoteMessageIDs = append(remoteMessageIDs, v.RemoteID) } return internalMessageIDs, remoteMessageIDs } func SplitMailboxIDPairSlice(s []MailboxIDPair) ([]imap.InternalMailboxID, []imap.MailboxID) { l := len(s) internalMailboxIDs := make([]imap.InternalMailboxID, 0, l) mailboxIDs := make([]imap.MailboxID, 0, l) for _, v := range s { internalMailboxIDs = append(internalMailboxIDs, v.InternalID) mailboxIDs = append(mailboxIDs, v.RemoteID) } return internalMailboxIDs, mailboxIDs } type MailboxFlag struct { ID int Value string } type MailboxAttr struct { ID int Value string } type Mailbox struct { ID imap.InternalMailboxID RemoteID imap.MailboxID Name string UIDValidity imap.UID Subscribed bool } type MailboxWithAttr struct { Mailbox Attributes imap.FlagSet } type Message struct { ID imap.InternalMessageID RemoteID imap.MessageID Date time.Time Size int Body string BodyStructure string Envelope string Deleted bool } type MessageWithFlags struct { Message Flags imap.FlagSet } type UID struct { UID imap.UID Deleted bool Recent bool } type DeletedSubscription struct { Name string RemoteID imap.MailboxID } gluon-0.17.0/demo/000077500000000000000000000000001445200213000136365ustar00rootroot00000000000000gluon-0.17.0/demo/demo.go000066400000000000000000000057521445200213000151220ustar00rootroot00000000000000package main import ( "context" "flag" "fmt" "net" "os" "strconv" "time" "github.com/ProtonMail/gluon" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/imap" "github.com/pkg/profile" "github.com/sirupsen/logrus" ) var ( cpuProfileFlag = flag.Bool("profile-cpu", false, "Enable CPU profiling.") memProfileFlag = flag.Bool("profile-mem", false, "Enable Memory profiling.") blockProfileFlag = flag.Bool("profile-lock", false, "Enable lock profiling.") profilePathFlag = flag.String("profile-path", "", "Path where to write profile data.") ) func main() { ctx := context.Background() flag.Parse() if *cpuProfileFlag { p := profile.Start(profile.CPUProfile, profile.ProfilePath(*profilePathFlag)) defer p.Stop() } if *memProfileFlag { p := profile.Start(profile.MemProfile, profile.MemProfileAllocs, profile.ProfilePath(*profilePathFlag)) defer p.Stop() } if *blockProfileFlag { p := profile.Start(profile.BlockProfile, profile.ProfilePath(*profilePathFlag)) defer p.Stop() } if level, err := logrus.ParseLevel(os.Getenv("GLUON_LOG_LEVEL")); err == nil { logrus.SetLevel(level) } server, err := gluon.New( gluon.WithLogger( logrus.StandardLogger().WriterLevel(logrus.TraceLevel), logrus.StandardLogger().WriterLevel(logrus.TraceLevel), ), gluon.WithDataDir(os.Getenv("GLUON_DIR")), gluon.WithDatabaseDir(os.Getenv("GLUON_DIR")), ) if err != nil { logrus.WithError(err).Fatal("Failed to create server") } defer server.Close(ctx) nUsers := 2 if envUsers, err := strconv.Atoi(os.Getenv("GLUON_USER_COUNT")); err == nil { nUsers = envUsers } for i := 1; i <= nUsers; i++ { if err := addUser(ctx, server, []string{ fmt.Sprintf("user%d@example.com", i), fmt.Sprintf("alias%d@example.com", i), }, []byte("pass")); err != nil { logrus.WithError(err).Fatal("Failed to add user") } } host := "localhost:1143" if envHost := os.Getenv("GLUON_HOST"); envHost != "" { host = envHost } listener, err := net.Listen("tcp", host) if err != nil { logrus.WithError(err).Fatal("Failed to listen") } logrus.Infof("Server is listening on %v", listener.Addr()) if err := server.Serve(ctx, listener); err != nil { logrus.WithError(err).Fatal("Failed to serve") } for err := range server.GetErrorCh() { logrus.WithError(err).Error("Error while serving") } if err := listener.Close(); err != nil { logrus.WithError(err).Error("Failed to close listener") } } func addUser(ctx context.Context, server *gluon.Server, addresses []string, password []byte) error { connector := connector.NewDummy( addresses, password, time.Second, imap.NewFlagSet(`\Answered`, `\Seen`, `\Flagged`, `\Deleted`), imap.NewFlagSet(`\Answered`, `\Seen`, `\Flagged`, `\Deleted`), imap.NewFlagSet(), ) userID, err := server.AddUser( ctx, connector, password, ) if err != nil { return err } if err := connector.Sync(ctx); err != nil { return err } logrus.WithField("userID", userID).Info("User added to server") return nil } gluon-0.17.0/errors.go000066400000000000000000000007151445200213000145600ustar00rootroot00000000000000// Package gluon implements an IMAP4rev1 (+ extensions) mailserver. package gluon import ( "errors" "github.com/ProtonMail/gluon/internal/state" ) // IsNoSuchMessage returns true if the error is ErrNoSuchMessage. func IsNoSuchMessage(err error) bool { return errors.Is(err, state.ErrNoSuchMessage) } // IsNoSuchMailbox returns true if the error is ErrNoSuchMailbox. func IsNoSuchMailbox(err error) bool { return errors.Is(err, state.ErrNoSuchMailbox) } gluon-0.17.0/events/000077500000000000000000000000001445200213000142165ustar00rootroot00000000000000gluon-0.17.0/events/events.go000066400000000000000000000001561445200213000160530ustar00rootroot00000000000000package events type Event interface { _isEvent() } type eventBase struct{} func (eventBase) _isEvent() {} gluon-0.17.0/events/id.go000066400000000000000000000002041445200213000151350ustar00rootroot00000000000000package events import "github.com/ProtonMail/gluon/imap" type IMAPID struct { eventBase SessionID int IMAPID imap.IMAPID } gluon-0.17.0/events/listener.go000066400000000000000000000002231445200213000163670ustar00rootroot00000000000000package events import "net" type ListenerAdded struct { eventBase Addr net.Addr } type ListenerRemoved struct { eventBase Addr net.Addr } gluon-0.17.0/events/login.go000066400000000000000000000001231445200213000156510ustar00rootroot00000000000000package events type Login struct { eventBase SessionID int UserID string } gluon-0.17.0/events/login_failed.go000066400000000000000000000001311445200213000171540ustar00rootroot00000000000000package events type LoginFailed struct { eventBase SessionID int Username string } gluon-0.17.0/events/select.go000066400000000000000000000001241445200213000160210ustar00rootroot00000000000000package events type Select struct { eventBase SessionID int Mailbox string } gluon-0.17.0/events/session.go000066400000000000000000000002741445200213000162330ustar00rootroot00000000000000package events import "net" type SessionAdded struct { eventBase SessionID int LocalAddr net.Addr RemoteAddr net.Addr } type SessionRemoved struct { eventBase SessionID int } gluon-0.17.0/events/user.go000066400000000000000000000003101445200213000155150ustar00rootroot00000000000000package events import "github.com/ProtonMail/gluon/imap" type UserAdded struct { eventBase UserID string Counts map[imap.MailboxID]int } type UserRemoved struct { eventBase UserID string } gluon-0.17.0/go.mod000066400000000000000000000020721445200213000140210ustar00rootroot00000000000000module github.com/ProtonMail/gluon go 1.20 require ( github.com/ProtonMail/go-mbox v1.1.0 github.com/bradenaw/juniper v0.12.0 github.com/emersion/go-imap v1.2.1 github.com/emersion/go-imap-uidplus v0.0.0-20200503180755-e75854c361e9 github.com/golang/mock v1.6.0 github.com/google/uuid v1.3.0 github.com/mattn/go-sqlite3 v1.14.17 github.com/pierrec/lz4/v4 v4.1.17 github.com/pkg/profile v1.7.0 github.com/sirupsen/logrus v1.9.0 github.com/stretchr/testify v1.8.1 go.uber.org/goleak v1.2.1 golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb golang.org/x/sys v0.5.0 golang.org/x/text v0.7.0 gopkg.in/yaml.v3 v3.0.1 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/emersion/go-sasl v0.0.0-20220912192320-0145f2c60ead // indirect github.com/felixge/fgprof v0.9.3 // indirect github.com/google/pprof v0.0.0-20211214055906-6f57359322fd // indirect github.com/kr/pretty v0.3.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect golang.org/x/sync v0.1.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) gluon-0.17.0/go.sum000066400000000000000000000222401445200213000140450ustar00rootroot00000000000000github.com/ProtonMail/go-mbox v1.1.0 h1:vrEcpvX5YfOkld5Q2fil41gXnLbYWKbE2gezZr6rqBU= github.com/ProtonMail/go-mbox v1.1.0/go.mod h1:ToecLYsf8RlxhndDEdjUa+eIfxuTxSQcxUQcGF6XB3A= github.com/bradenaw/juniper v0.12.0 h1:Q/7icpPQD1nH/La5DobQfNEtwyrBSiSu47jOQx7lJEM= github.com/bradenaw/juniper v0.12.0/go.mod h1:Z2B7aJlQ7xbfWsnMLROj5t/5FQ94/MkIdKC30J4WvzI= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/emersion/go-imap v1.2.1 h1:+s9ZjMEjOB8NzZMVTM3cCenz2JrQIGGo5j1df19WjTA= github.com/emersion/go-imap v1.2.1/go.mod h1:Qlx1FSx2FTxjnjWpIlVNEuX+ylerZQNFE5NsmKFSejY= github.com/emersion/go-imap-uidplus v0.0.0-20200503180755-e75854c361e9 h1:2Kbw3iu7fFeSso6RWIArVNUj1VGG2PvjetnPUW7bnis= github.com/emersion/go-imap-uidplus v0.0.0-20200503180755-e75854c361e9/go.mod h1:GfiSiw/du0221I3Cf4F0DqX3Bv5Xe580gIIATrQtnJg= github.com/emersion/go-message v0.15.0/go.mod h1:wQUEfE+38+7EW8p8aZ96ptg6bAb1iwdgej19uXASlE4= github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ= github.com/emersion/go-sasl v0.0.0-20220912192320-0145f2c60ead h1:fI1Jck0vUrXT8bnphprS1EoVRe2Q5CKCX8iDlpqjQ/Y= github.com/emersion/go-sasl v0.0.0-20220912192320-0145f2c60ead/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ= github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594/go.mod h1:aqO8z8wPrjkscevZJFVE1wXJrLpC5LtJG7fqLOsPb2U= github.com/felixge/fgprof v0.9.3 h1:VvyZxILNuCiUCSXtPtYmmtGvb65nqXh2QFWc0Wpf2/g= github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/google/pprof v0.0.0-20211214055906-6f57359322fd h1:1FjCyPC+syAzJ5/2S8fqdZK1R22vvA0J7JZKcuOIQ7Y= github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM= github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc= github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA= github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb h1:PaBZQdo+iSDyHT053FjUCgZQ/9uqVwPOcl7KSWhKn6w= golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gluon-0.17.0/imap/000077500000000000000000000000001445200213000136405ustar00rootroot00000000000000gluon-0.17.0/imap/attributes.go000066400000000000000000000005621445200213000163600ustar00rootroot00000000000000package imap const ( AttrNoSelect = `\Noselect` AttrNoInferiors = `\Noinferiors` AttrMarked = `\Marked` AttrUnmarked = `\Unmarked` // Special Use attributes as defined in RFC-6154. AttrAll = `\All` AttrArchive = `\Archive` AttrDrafts = `\Drafts` AttrFlagged = `\Flagged` AttrJunk = `\Junk` AttrSent = `\Sent` AttrTrash = `\Trash` ) gluon-0.17.0/imap/capabilities.go000066400000000000000000000007231445200213000166220ustar00rootroot00000000000000package imap type Capability string const ( IMAP4rev1 Capability = `IMAP4rev1` StartTLS Capability = `STARTTLS` IDLE Capability = `IDLE` UNSELECT Capability = `UNSELECT` UIDPLUS Capability = `UIDPLUS` MOVE Capability = `MOVE` ID Capability = `ID` ) func IsCapabilityAvailableBeforeAuth(c Capability) bool { switch c { case IMAP4rev1, StartTLS, IDLE, ID: return true case UNSELECT, UIDPLUS, MOVE: return false } return false } gluon-0.17.0/imap/command/000077500000000000000000000000001445200213000152565ustar00rootroot00000000000000gluon-0.17.0/imap/command/append.go000066400000000000000000000034511445200213000170570ustar00rootroot00000000000000package command import ( "fmt" "time" "github.com/ProtonMail/gluon/rfcparser" ) type Append struct { Mailbox string Flags []string DateTime time.Time Literal []byte } func (l Append) String() string { return fmt.Sprintf("APPEND '%v' Flags='%v' DateTime='%v' Literal=%v", l.Mailbox, l.Flags, l.DateTime, l.Literal, ) } func (l Append) SanitizedString() string { return fmt.Sprintf("APPEND '%v' Flags='%v' DateTime='%v'", sanitizeString(l.Mailbox), l.Flags, l.DateTime, ) } func (l Append) HasDateTime() bool { return l.DateTime != time.Time{} } type AppendCommandParser struct{} func (AppendCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after mailbox"); err != nil { return nil, err } var appendFlags []string // check if we have flags. flagList, hasFlagList, err := TryParseFlagList(p) if err != nil { return nil, err } else if hasFlagList { appendFlags = flagList } if hasFlagList { if err := p.Consume(rfcparser.TokenTypeSP, "expected space after flag list"); err != nil { return nil, err } } var dateTime time.Time // check date time. if !p.Check(rfcparser.TokenTypeLCurly) { dt, err := ParseDateTime(p) if err != nil { return nil, err } dateTime = dt if err := p.Consume(rfcparser.TokenTypeSP, "expected space after flag list"); err != nil { return nil, err } } // read literal. literal, err := p.ParseLiteral() if err != nil { return nil, err } return &Append{ Mailbox: mailbox.Value, Literal: literal, Flags: appendFlags, DateTime: dateTime, }, nil } gluon-0.17.0/imap/command/append_test.go000066400000000000000000000074401445200213000201200ustar00rootroot00000000000000package command import ( "bytes" "fmt" "testing" "time" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func buildAppendDateTime(year int, month time.Month, day int, hour int, min int, sec int, zoneHour int, zoneMinutes int, negativeZone bool) time.Time { zoneMultiplier := 1 if negativeZone { zoneMultiplier = -1 } zone := (zoneHour*3600 + zoneMinutes*60) * zoneMultiplier location := time.FixedZone("zone", zone) return time.Date(year, month, day, hour, min, sec, 0, location) } func TestParser_AppendCommandWithAllFields(t *testing.T) { input := toIMAPLine(`A003 APPEND saved-messages (\Seen) "15-Nov-1984 13:37:01 +0730" {23}`, `My message body is here`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "A003", Payload: &Append{ Mailbox: "saved-messages", Flags: []string{`\Seen`}, Literal: []byte("My message body is here"), DateTime: buildAppendDateTime(1984, time.November, 15, 13, 37, 1, 07, 30, false), }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "append", p.LastParsedCommand()) require.Equal(t, "A003", p.LastParsedTag()) } func TestParser_AppendCommandWithLiteralOnly(t *testing.T) { input := toIMAPLine(`A003 APPEND saved-messages {23}`, `My message body is here`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "A003", Payload: &Append{ Mailbox: "saved-messages", Literal: []byte("My message body is here"), }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "append", p.LastParsedCommand()) require.Equal(t, "A003", p.LastParsedTag()) } func TestParser_AppendCommandWithFlagAndLiteral(t *testing.T) { input := toIMAPLine(`A003 APPEND saved-messages (\Seen) {23}`, `My message body is here`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "A003", Payload: &Append{ Mailbox: "saved-messages", Flags: []string{`\Seen`}, Literal: []byte("My message body is here"), }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "append", p.LastParsedCommand()) require.Equal(t, "A003", p.LastParsedTag()) } func TestParser_AppendCommandWithDateTimeAndLiteral(t *testing.T) { input := toIMAPLine(`A003 APPEND saved-messages "15-Nov-1984 13:37:01 +0730" {23}`, `My message body is here`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "A003", Payload: &Append{ Mailbox: "saved-messages", Literal: []byte("My message body is here"), DateTime: buildAppendDateTime(1984, time.November, 15, 13, 37, 1, 07, 30, false), }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "append", p.LastParsedCommand()) require.Equal(t, "A003", p.LastParsedTag()) } func TestParser_AppendWithUTF8Literal(t *testing.T) { const literal = `割ゃã¡ã¨ãŸç´€åˆ¥ãƒãƒŽãƒ›ã‚³éš é¢ãƒŽãƒã‚·æŠ«ç•‘ã¤ç­‹åž‹èŠãƒ©æ¸ˆç™¾ãƒãƒ¦ãƒå ±èƒ½ã’ã»ã¹ãˆä¸€çŽ‹ãƒ¦ã‚µç¦æœªã‚·ãƒ ã‚«å­¦åº·ã»ãƒ«é€€ä»Šãšã¯ãžã‚ƒå®¿ç†å¤ãˆã¹ã«ã‚。民ã•ã±ã‚’ã æ„宇りã†åŒ»6通海ヘクヲ点71丈2社ã¤ã´ã’ã‚中知多ッ場親られ見è¦ã‚¯ãƒ©è‘—喜栄潟ã¼ã‚†ãƒ©ã‘。著ç½ãƒ³ã†ä¸‰è‚²åºœèƒ½ã«æ±è£ãƒ©ãƒ¤ãƒ¦å“‰èƒ½ãƒ«ã‚µãƒ¬é–‹30被ã¡ã‚ƒè‹±æ­»ã‚ªã‚¤æ•™ç¦èƒ½ãµã¦ã£ã›ç¤¾åŒ–é¸å¸‚ã¸ã™ã€‚` input := toIMAPLine(fmt.Sprintf("A003 APPEND saved-messages (\\Seen) {%v}", len(literal)), literal) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "A003", Payload: &Append{ Mailbox: "saved-messages", Flags: []string{`\Seen`}, Literal: []byte(literal), }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) } gluon-0.17.0/imap/command/capability.go000066400000000000000000000006161445200213000177310ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Capability struct{} func (l Capability) String() string { return fmt.Sprintf("CAPABILITY") } func (l Capability) SanitizedString() string { return l.String() } type CapabilityCommandParser struct{} func (CapabilityCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { return &Capability{}, nil } gluon-0.17.0/imap/command/capability_test.go000066400000000000000000000010221445200213000207600ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_CapabilityCommand(t *testing.T) { input := toIMAPLine(`tag CAPABILITY`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Capability{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "capability", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/check.go000066400000000000000000000005531445200213000166650ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Check struct{} func (l Check) String() string { return fmt.Sprintf("CHECK") } func (l Check) SanitizedString() string { return l.String() } type CheckCommandParser struct{} func (CheckCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { return &Check{}, nil } gluon-0.17.0/imap/command/check_test.go000066400000000000000000000007761445200213000177330ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_CheckCommand(t *testing.T) { input := toIMAPLine(`tag CHECK`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Check{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "check", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/close.go000066400000000000000000000005531445200213000167150ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Close struct{} func (l Close) String() string { return fmt.Sprintf("CLOSE") } func (l Close) SanitizedString() string { return l.String() } type CloseCommandParser struct{} func (CloseCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { return &Close{}, nil } gluon-0.17.0/imap/command/close_test.go000066400000000000000000000007761445200213000177630ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_CloseCommand(t *testing.T) { input := toIMAPLine(`tag CLOSE`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Close{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "close", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/command.go000066400000000000000000000012071445200213000172230ustar00rootroot00000000000000package command import ( "encoding/base64" "fmt" "github.com/ProtonMail/gluon/internal/hash" ) type Payload interface { String() string // SanitizedString should return the command payload with all the sensitive information stripped out. SanitizedString() string } func sanitizeString(s string) string { return base64.StdEncoding.EncodeToString(hash.SHA256([]byte(s))) } type Command struct { Tag string Payload Payload } func (c Command) String() string { return fmt.Sprintf("%v %v", c.Tag, c.Payload.String()) } func (c Command) SanitizedString() string { return fmt.Sprintf("%v %v", c.Tag, c.Payload.SanitizedString()) } gluon-0.17.0/imap/command/copy.go000066400000000000000000000016611445200213000165630ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Copy struct { SeqSet []SeqRange Mailbox string } func (l Copy) String() string { return fmt.Sprintf("COPY %v '%v'", l.SeqSet, l.Mailbox) } func (l Copy) SanitizedString() string { return fmt.Sprintf("COPY %v '%v'", l.SeqSet, sanitizeString(l.Mailbox)) } type CopyCommandParser struct{} func (CopyCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // copy = "COPY" SP sequence-set SP mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } seqSet, err := ParseSeqSet(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after seqset"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } return &Copy{ SeqSet: seqSet, Mailbox: mailbox.Value, }, nil } gluon-0.17.0/imap/command/copy_test.go000066400000000000000000000011271445200213000176170ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_CopyCommand(t *testing.T) { input := toIMAPLine(`tag COPY 1:* INBOX`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Copy{ Mailbox: "INBOX", SeqSet: []SeqRange{{Begin: 1, End: SeqNumValueAsterisk}}, }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "copy", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/create.go000066400000000000000000000012751445200213000170550ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Create struct { Mailbox string } func (l Create) String() string { return fmt.Sprintf("CREATE '%v'", l.Mailbox) } func (l Create) SanitizedString() string { return fmt.Sprintf("CREATE '%v'", sanitizeString(l.Mailbox)) } type CreateCommandParser struct{} func (CreateCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // create = "CREATE" SP mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } return &Create{ Mailbox: mailbox.Value, }, nil } gluon-0.17.0/imap/command/create_test.go000066400000000000000000000010361445200213000201070ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_CreateCommand(t *testing.T) { input := toIMAPLine(`tag CREATE INBOX`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Create{ Mailbox: "INBOX", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "create", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/date_time.go000066400000000000000000000115671445200213000175520ustar00rootroot00000000000000package command import ( "fmt" "strings" "time" "github.com/ProtonMail/gluon/rfcparser" ) func ParseDateTime(p *rfcparser.Parser) (time.Time, error) { // date-time = DQUOTE date-day-fixed "-" date-month "-" date-year SP time SP zone DQUOTE if err := p.Consume(rfcparser.TokenTypeDQuote, `Expected '"' at start of date time`); err != nil { return time.Time{}, err } dateDay, err := ParseDateDayFixed(p) if err != nil { return time.Time{}, err } if err := p.Consume(rfcparser.TokenTypeMinus, `Expected '-' after date day`); err != nil { return time.Time{}, err } dateMonth, err := ParseDateMonth(p) if err != nil { return time.Time{}, err } if err := p.Consume(rfcparser.TokenTypeMinus, `Expected '-' after date month`); err != nil { return time.Time{}, err } dateYear, err := ParseDateYear(p) if err != nil { return time.Time{}, err } if err := p.Consume(rfcparser.TokenTypeSP, `Expected space after date year`); err != nil { return time.Time{}, err } timeHour, timeMin, timeSec, err := ParseTime(p) if err != nil { return time.Time{}, err } if err := p.Consume(rfcparser.TokenTypeSP, `Expected space after date time`); err != nil { return time.Time{}, err } timeZone, err := ParseZone(p) if err != nil { return time.Time{}, err } if err := p.Consume(rfcparser.TokenTypeDQuote, `Expected '"' at end of date time`); err != nil { return time.Time{}, err } return time.Date(dateYear, dateMonth, dateDay, timeHour, timeMin, timeSec, 0, timeZone), nil } func ParseDateDayFixed(p *rfcparser.Parser) (int, error) { // date-day-fixed = (SP DIGIT) / 2DIGIT if ok, err := p.Matches(rfcparser.TokenTypeSP); err != nil { return 0, err } else if ok { if err := p.Consume(rfcparser.TokenTypeDigit, "expected digit after space separated date day"); err != nil { return 0, err } return rfcparser.ByteToInt(p.PreviousToken().Value), nil } return p.ParseNumberN(2) } var dateMonthToInt = map[string]time.Month{ "jan": time.January, "feb": time.February, "mar": time.March, "apr": time.April, "may": time.May, "jun": time.June, "jul": time.July, "aug": time.August, "sep": time.September, "oct": time.October, "nov": time.November, "dec": time.December, } func ParseDateMonth(p *rfcparser.Parser) (time.Month, error) { month := make([]byte, 3) for i := 0; i < 3; i++ { if err := p.Consume(rfcparser.TokenTypeChar, "unexpected character for date month"); err != nil { return 0, err } month[i] = p.PreviousToken().Value } v, ok := dateMonthToInt[strings.ToLower(string(month))] if !ok { return 0, p.MakeError(fmt.Sprintf("invalid date month '%v'", string(month))) } return v, nil } func ParseDateYear(p *rfcparser.Parser) (int, error) { return p.ParseNumberN(4) } func ParseZone(p *rfcparser.Parser) (*time.Location, error) { multiplier := 1 if ok, err := p.Matches(rfcparser.TokenTypePlus); err != nil { return nil, err } else if !ok { if ok, err := p.Matches(rfcparser.TokenTypeMinus); err != nil { return nil, err } else if ok { multiplier = -1 } else { return nil, p.MakeError("expected either '+' or '-' on time zone start") } } zoneHour, err := p.ParseNumberN(2) if err != nil { return nil, err } zoneMinute, err := p.ParseNumberN(2) if err != nil { return nil, err } zone := (zoneHour*3600 + zoneMinute*60) * multiplier return time.FixedZone("zone", zone), nil } func ParseTime(p *rfcparser.Parser) (int, int, int, error) { hour, err := p.ParseNumberN(2) if err != nil { return 0, 0, 0, err } if err := p.Consume(rfcparser.TokenTypeColon, "expected colon after hour component"); err != nil { return 0, 0, 0, err } min, err := p.ParseNumberN(2) if err != nil { return 0, 0, 0, err } if err := p.Consume(rfcparser.TokenTypeColon, "expected colon after minute component"); err != nil { return 0, 0, 0, err } sec, err := p.ParseNumberN(2) if err != nil { return 0, 0, 0, err } return hour, min, sec, nil } func ParseDate(p *rfcparser.Parser) (time.Time, error) { hasQuotes, err := p.Matches(rfcparser.TokenTypeDQuote) if err != nil { return time.Time{}, err } date, err := ParseDateText(p) if err != nil { return time.Time{}, err } if hasQuotes { if err := p.Consume(rfcparser.TokenTypeDQuote, `expected closing "`); err != nil { return time.Time{}, err } } return date, nil } func ParseDateText(p *rfcparser.Parser) (time.Time, error) { day, err := p.ParseNumberN(2) if err != nil { return time.Time{}, err } if err := p.Consume(rfcparser.TokenTypeMinus, "expected - after year"); err != nil { return time.Time{}, err } month, err := ParseDateMonth(p) if err != nil { return time.Time{}, err } if err := p.Consume(rfcparser.TokenTypeMinus, "expected - after month"); err != nil { return time.Time{}, err } year, err := ParseDateYear(p) if err != nil { return time.Time{}, err } return time.Date(year, month, day, 0, 0, 0, 0, time.UTC), nil } gluon-0.17.0/imap/command/date_time_test.go000066400000000000000000000026101445200213000205760ustar00rootroot00000000000000package command import ( "bytes" "testing" "time" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestDateTimeParser(t *testing.T) { input := []byte(`"15-Nov-1984 13:37:01 +0730"`) expected := buildAppendDateTime(1984, time.November, 15, 13, 37, 1, 07, 30, false) p := rfcparser.NewParser(rfcparser.NewScanner(bytes.NewReader(input))) // Advance at least once to prepare first token. err := p.Advance() require.NoError(t, err) dt, err := ParseDateTime(p) require.NoError(t, err) require.Equal(t, expected, dt) } func TestDateTimeParser_OneDayDigit(t *testing.T) { input := []byte(`" 5-Nov-1984 13:37:01 -0730"`) expected := buildAppendDateTime(1984, time.November, 5, 13, 37, 1, 07, 30, true) p := rfcparser.NewParser(rfcparser.NewScanner(bytes.NewReader(input))) // Advance at least once to prepare first token. err := p.Advance() require.NoError(t, err) dt, err := ParseDateTime(p) require.NoError(t, err) require.Equal(t, expected, dt) } func TestDateMonthIsCaseInsensitive(t *testing.T) { inputs := []string{"May", "MAY", "may", "mAy"} for _, input := range inputs { p := rfcparser.NewParser(rfcparser.NewScanner(bytes.NewReader([]byte(input)))) // Advance at least once to prepare first token. err := p.Advance() require.NoError(t, err) v, err := ParseDateMonth(p) require.NoError(t, err) require.Equal(t, time.May, v) } } gluon-0.17.0/imap/command/delete.go000066400000000000000000000012751445200213000170540ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Delete struct { Mailbox string } func (l Delete) String() string { return fmt.Sprintf("DELETE '%v'", l.Mailbox) } func (l Delete) SanitizedString() string { return fmt.Sprintf("DELETE '%v'", sanitizeString(l.Mailbox)) } type DeleteCommandParser struct{} func (DeleteCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // delete = "DELETE" SP mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } return &Delete{ Mailbox: mailbox.Value, }, nil } gluon-0.17.0/imap/command/delete_test.go000066400000000000000000000010361445200213000201060ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_DeleteCommand(t *testing.T) { input := toIMAPLine(`tag DELETE INBOX`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Delete{ Mailbox: "INBOX", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "delete", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/done.go000066400000000000000000000002651445200213000165350ustar00rootroot00000000000000package command import ( "fmt" ) type Done struct{} func (l Done) String() string { return fmt.Sprintf("DONE") } func (l Done) SanitizedString() string { return l.String() } gluon-0.17.0/imap/command/done_test.go000066400000000000000000000013511445200213000175710ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_DoneCommand(t *testing.T) { input := toIMAPLine(`DONE`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "", Payload: &Done{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "done", p.LastParsedCommand()) require.Empty(t, p.LastParsedTag()) } func TestParser_DoneCommandAfterTagIsError(t *testing.T) { input := toIMAPLine(`tag DONE`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) _, err := p.Parse() require.Error(t, err) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/examine.go000066400000000000000000000013071445200213000172340ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Examine struct { Mailbox string } func (l Examine) String() string { return fmt.Sprintf("EXAMINE '%v'", l.Mailbox) } func (l Examine) SanitizedString() string { return fmt.Sprintf("EXAMINE '%v'", sanitizeString(l.Mailbox)) } type ExamineCommandParser struct{} func (ExamineCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // examine = "EXAMINE" SP mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } return &Examine{ Mailbox: mailbox.Value, }, nil } gluon-0.17.0/imap/command/examine_test.go000066400000000000000000000010421445200213000202670ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_ExamineCommand(t *testing.T) { input := toIMAPLine(`tag EXAMINE INBOX`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Examine{ Mailbox: "INBOX", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "examine", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/expunge.go000066400000000000000000000005711445200213000172630ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Expunge struct{} func (l Expunge) String() string { return fmt.Sprintf("EXPUNGE") } func (l Expunge) SanitizedString() string { return l.String() } type ExpungeCommandParser struct{} func (ExpungeCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { return &Expunge{}, nil } gluon-0.17.0/imap/command/expunge_test.go000066400000000000000000000010061445200213000203140ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_ExpungeCommand(t *testing.T) { input := toIMAPLine(`tag EXPUNGE`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Expunge{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "expunge", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/fetch.go000066400000000000000000000250161445200213000167020ustar00rootroot00000000000000package command import ( "fmt" "strings" "github.com/ProtonMail/gluon/rfcparser" ) type FetchAttribute interface { String() string } type Fetch struct { SeqSet []SeqRange Attributes []FetchAttribute } func (f Fetch) String() string { return fmt.Sprintf("FETCH %v %v", f.SeqSet, f.Attributes) } func (f Fetch) SanitizedString() string { return f.String() } type FetchCommandParser struct{} func (FetchCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { //fetch = "FETCH" SP sequence-set SP ("ALL" / "FULL" / "FAST" / // fetch-att / "(" fetch-att *(SP fetch-att) ")") if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } seqSet, err := ParseSeqSet(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after sequence set"); err != nil { return nil, err } var attributes []FetchAttribute if p.Check(rfcparser.TokenTypeLParen) { // Multiple list of attributes. attr, err := parseFetchAttributes(p) if err != nil { return nil, err } attributes = attr } else { // One single attribute. attribute, err := parseFetchAttributeName(p) if err != nil { return nil, err } switch attribute.Value { case "all": attributes = []FetchAttribute{&FetchAttributeAll{}} case "full": attributes = []FetchAttribute{&FetchAttributeFull{}} case "fast": attributes = []FetchAttribute{&FetchAttributeFast{}} default: attr, err := handleFetchAttribute(attribute, p) if err != nil { return nil, err } attributes = []FetchAttribute{attr} } } return &Fetch{SeqSet: seqSet, Attributes: attributes}, nil } func parseFetchAttributeName(p *rfcparser.Parser) (rfcparser.String, error) { att, err := p.CollectBytesWhileMatches(rfcparser.TokenTypeChar) if err != nil { return rfcparser.String{}, err } return att.IntoString().ToLower(), nil } func parseFetchAttributes(p *rfcparser.Parser) ([]FetchAttribute, error) { var attributes []FetchAttribute if err := p.Consume(rfcparser.TokenTypeLParen, "expected ( for fetch attribute list start"); err != nil { return nil, err } // First attribute. { attribute, err := parseFetchAttribute(p) if err != nil { return nil, err } attributes = append(attributes, attribute) } // Remaining. for { if ok, err := p.Matches(rfcparser.TokenTypeSP); err != nil { return nil, err } else if !ok { break } attribute, err := parseFetchAttribute(p) if err != nil { return nil, err } attributes = append(attributes, attribute) } if err := p.Consume(rfcparser.TokenTypeRParen, "expected ) for fetch attribute list end"); err != nil { return nil, err } return attributes, nil } func parseFetchAttribute(p *rfcparser.Parser) (FetchAttribute, error) { attribute, err := parseFetchAttributeName(p) if err != nil { return nil, err } attr, err := handleFetchAttribute(attribute, p) if err != nil { return nil, err } return attr, nil } func handleFetchAttribute(name rfcparser.String, p *rfcparser.Parser) (FetchAttribute, error) { /* fetch-att = "ENVELOPE" / "FLAGS" / "INTERNALDATE" / "RFC822" [".HEADER" / ".SIZE" / ".TEXT"] / "BODY" ["STRUCTURE"] / "UID" / "BODY" section ["<" number "." nz-number ">"] / "BODY.PEEK" section ["<" number "." nz-number ">"] */ switch name.Value { case "envelope": return &FetchAttributeEnvelope{}, nil case "flags": return &FetchAttributeFlags{}, nil case "internaldate": return &FetchAttributeInternalDate{}, nil case "bodystructure": return &FetchAttributeBodyStructure{}, nil case "uid": return &FetchAttributeUID{}, nil case "rfc": return handleRFC822FetchAttribute(p) case "body": return handleBodyFetchAttribute(p) default: return nil, p.MakeErrorAtOffset(fmt.Sprintf("unknown fetch attribute '%v'", name.Value), name.Offset) } } func handleRFC822FetchAttribute(p *rfcparser.Parser) (FetchAttribute, error) { if err := p.ConsumeBytesFold('8', '2', '2'); err != nil { return nil, err } if ok, err := p.Matches(rfcparser.TokenTypePeriod); err != nil { return nil, err } else if !ok { return &FetchAttributeRFC822{}, nil } attribute, err := parseFetchAttributeName(p) if err != nil { return nil, err } switch attribute.Value { case "header": return &FetchAttributeRFC822Header{}, nil case "size": return &FetchAttributeRFC822Size{}, nil case "text": return &FetchAttributeRFC822Text{}, nil default: return nil, p.MakeErrorAtOffset(fmt.Sprintf("unknown fetch attribute 'RFC822.%v", attribute.Value), attribute.Offset) } } func handleBodyFetchAttribute(p *rfcparser.Parser) (FetchAttribute, error) { // Check if we are dealing with BODY only if !p.Check(rfcparser.TokenTypeLBracket) && !p.Check(rfcparser.TokenTypePeriod) { return &FetchAttributeBody{}, nil } var readOnly = false if ok, err := p.Matches(rfcparser.TokenTypePeriod); err != nil { return nil, err } else if ok { if err := p.ConsumeBytesFold('P', 'E', 'E', 'K'); err != nil { return nil, err } readOnly = true } if err := p.Consume(rfcparser.TokenTypeLBracket, "expected [ for body section start"); err != nil { return nil, err } var section BodySection if !p.Check(rfcparser.TokenTypeRBracket) { s, err := parseSectionSpec(p) if err != nil { return nil, err } section = s } if err := p.Consume(rfcparser.TokenTypeRBracket, "expected ] for body section end"); err != nil { return nil, err } var partial *BodySectionPartial if ok, err := p.Matches(rfcparser.TokenTypeLess); err != nil { return nil, err } else if ok { offset, err := p.ParseNumber() if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypePeriod, "expected '.' after partial start"); err != nil { return nil, err } count, err := ParseNZNumber(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeGreater, "expected > for end of partial specification"); err != nil { return nil, err } partial = &BodySectionPartial{ Offset: int64(offset), Count: int64(count), } } return &FetchAttributeBodySection{Peek: readOnly, Section: section, Partial: partial}, nil } func parseSectionSpec(p *rfcparser.Parser) (BodySection, error) { // section-spec = section-msgtext / (section-part ["." section-text]) if p.Check(rfcparser.TokenTypeDigit) { part, err := parseSectionPart(p) if err != nil { return nil, err } var textSection BodySection if p.Check(rfcparser.TokenTypeChar) { // Note: trailing . is consumed by parserSectionPart(). text, err := parseSectionText(p) if err != nil { return nil, err } textSection = text } return &BodySectionPart{Part: part, Section: textSection}, nil } return parseSectionMsgText(p) } func parseSectionPart(p *rfcparser.Parser) ([]int, error) { // section-part = nz-number *("." nz-number) // ; body part nesting var result []int { num, err := ParseNZNumber(p) if err != nil { return nil, err } result = append(result, num) } for { if ok, err := p.Matches(rfcparser.TokenTypePeriod); err != nil { return nil, err } else if !ok { break } // If there is section-text after the section-part we can continue with number processing. if !p.Check(rfcparser.TokenTypeDigit) { break } num, err := ParseNZNumber(p) if err != nil { return nil, err } result = append(result, num) } return result, nil } func parseSectionText(p *rfcparser.Parser) (BodySection, error) { // section-text = section-msgtext / "MIME" // ; text other than actual body part (headers, etc.) text, err := p.CollectBytesWhileMatches(rfcparser.TokenTypeChar) if err != nil { return nil, err } textStr := text.IntoString().ToLower() if textStr.Value == "mime" { return &BodySectionMIME{}, nil } return handleSectionMessageText(textStr, p) } func parseSectionMsgText(p *rfcparser.Parser) (BodySection, error) { text, err := p.CollectBytesWhileMatches(rfcparser.TokenTypeChar) if err != nil { return nil, err } textStr := text.IntoString().ToLower() return handleSectionMessageText(textStr, p) } func handleSectionMessageText(text rfcparser.String, p *rfcparser.Parser) (BodySection, error) { // section-msgtext = "HEADER" / "HEADER.FIELDS" [".NOT"] SP header-list / // "TEXT" // ; top-level or MESSAGE/RFC822 part switch text.Value { case "header": if ok, err := p.Matches(rfcparser.TokenTypePeriod); err != nil { return nil, err } else if !ok { return &BodySectionHeader{}, nil } return parseHeaderFieldsSectionMessageText(p) case "text": return &BodySectionText{}, nil default: return nil, p.MakeErrorAtOffset(fmt.Sprintf("unknown section msg text value '%v'", text.Value), text.Offset) } } func parseHeaderFieldsSectionMessageText(p *rfcparser.Parser) (BodySection, error) { // Read fields bit { text, err := collectBodySectionText(p) if err != nil { return nil, err } if text != "fields" { return nil, p.MakeError("expected 'FIELDS' after 'HEADER.'") } } var negate bool if ok, err := p.Matches(rfcparser.TokenTypePeriod); err != nil { return nil, err } else if ok { text, err := collectBodySectionText(p) if err != nil { return nil, err } if text != "not" { return nil, p.MakeError("expected 'NOT'") } negate = true } if err := p.Consume(rfcparser.TokenTypeSP, "expected space"); err != nil { return nil, err } headerList, err := parseHeaderList(p) if err != nil { return nil, err } return &BodySectionHeaderFields{ Negate: negate, Fields: headerList, }, nil } func collectBodySectionText(p *rfcparser.Parser) (string, error) { text, err := p.CollectBytesWhileMatches(rfcparser.TokenTypeChar) if err != nil { return "", err } return strings.ToLower(string(text.Value)), nil } func parseHeaderList(p *rfcparser.Parser) ([]string, error) { var result []string if err := p.Consume(rfcparser.TokenTypeLParen, "expected ( for header list start"); err != nil { return nil, err } { header, err := p.ParseAString() if err != nil { return nil, err } result = append(result, header.Value) } for { if ok, err := p.Matches(rfcparser.TokenTypeSP); err != nil { return nil, err } else if !ok { break } header, err := p.ParseAString() if err != nil { return nil, err } result = append(result, header.Value) } if err := p.Consume(rfcparser.TokenTypeRParen, "expected ) for header list end"); err != nil { return nil, err } return result, nil } gluon-0.17.0/imap/command/fetch_attributes.go000066400000000000000000000054121445200213000211460ustar00rootroot00000000000000package command import ( "fmt" "strconv" "strings" "github.com/bradenaw/juniper/xslices" ) type FetchAttributeAll struct{} func (f FetchAttributeAll) String() string { return "ALL" } type FetchAttributeFull struct{} func (f FetchAttributeFull) String() string { return "FULL" } type FetchAttributeFast struct{} func (f FetchAttributeFast) String() string { return "FAST" } type FetchAttributeEnvelope struct{} func (f FetchAttributeEnvelope) String() string { return "ENVELOPE" } type FetchAttributeFlags struct{} func (f FetchAttributeFlags) String() string { return "FLAGS" } type FetchAttributeInternalDate struct{} func (f FetchAttributeInternalDate) String() string { return "INTERNALDATE" } type FetchAttributeRFC822Header struct{} func (f FetchAttributeRFC822Header) String() string { return "RFC822.Header" } type FetchAttributeRFC822Size struct{} func (f FetchAttributeRFC822Size) String() string { return "RFC822.Size" } type FetchAttributeRFC822 struct{} func (f FetchAttributeRFC822) String() string { return "RFC822" } type FetchAttributeRFC822Text struct{} func (f FetchAttributeRFC822Text) String() string { return "RFC822.Text" } type FetchAttributeBodyStructure struct{} func (f FetchAttributeBodyStructure) String() string { return "BODYSTRUCTURE" } type FetchAttributeBody struct{} func (f FetchAttributeBody) String() string { return "BODY" } type FetchAttributeUID struct{} func (f FetchAttributeUID) String() string { return "UID" } type BodySection interface { String() string } type BodySectionPartial struct { Offset int64 Count int64 } type FetchAttributeBodySection struct { Section BodySection Peek bool Partial *BodySectionPartial } func (f FetchAttributeBodySection) String() string { var firstPart = "BODY" if f.Peek { firstPart += ".PEEK" } if f.Section == nil { return fmt.Sprintf("%v[]", firstPart) } return fmt.Sprintf("%v[%v]", firstPart, f.Section) } type BodySectionHeader struct{} func (b BodySectionHeader) String() string { return "HEADER" } type BodySectionHeaderFields struct { Negate bool Fields []string } func (b BodySectionHeaderFields) String() string { negateStr := " " if b.Negate { negateStr = " NOT " } return fmt.Sprintf("HEADER.FIELDS%v%v", negateStr, b.Fields) } type BodySectionText struct{} func (b BodySectionText) String() string { return "TEXT" } type BodySectionMIME struct{} func (b BodySectionMIME) String() string { return "MIME" } type BodySectionPart struct { Part []int Section BodySection } func (b BodySectionPart) String() string { partText := strings.Join(xslices.Map(b.Part, func(v int) string { return strconv.FormatInt(int64(v), 10) }), `.`) if b.Section == nil { return partText } return fmt.Sprintf("%v.%v", partText, b.Section.String()) } gluon-0.17.0/imap/command/fetch_test.go000066400000000000000000000247441445200213000177500ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_FetchCommandAll(t *testing.T) { input := toIMAPLine(`tag FETCH 1 ALL`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeAll{}, }, }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "fetch", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_FetchCommandFull(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeFull{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 Full`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandFast(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeFast{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 Fast`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandEnvelope(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeEnvelope{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 ENVELOPE`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandFlags(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeFlags{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 FLAGS`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandInternalDate(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeInternalDate{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 INTERNALDATE`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandRFC822(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeRFC822{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 RFC822`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandRFC822Header(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeRFC822Header{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 RFC822.HEADER`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandRFC822Size(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeRFC822Size{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 RFC822.SIZE`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandRFC822Text(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeRFC822Text{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 RFC822.TEXT`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodyStructure(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodyStructure{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODYSTRUCTURE`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBody(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBody{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandUID(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeUID{}, }, }} cmd, err := testParseCommand(`tag FETCH 1 UID`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySection_Empty(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: nil, Peek: false, Partial: nil, }, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY[]`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySection_Header(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: &BodySectionHeader{}, Peek: false, Partial: nil, }, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY[HEADER]`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySection_Text(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: &BodySectionText{}, Peek: false, Partial: nil, }, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY[TEXT]`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySection_HeaderFieldsSingular(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: &BodySectionHeaderFields{ Negate: false, Fields: []string{"FROM"}, }, Peek: false, Partial: nil, }, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY[HEADER.FIELDS (FROM)]`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySection_HeaderFieldsMultiple(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: &BodySectionHeaderFields{ Negate: false, Fields: []string{"FROM", "TO", "SUBJECT"}, }, Peek: false, Partial: nil, }, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY[HEADER.FIELDS (FROM TO SUBJECT)]`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySection_HeaderFieldsNot(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: &BodySectionHeaderFields{ Negate: true, Fields: []string{"FROM", "TO", "SUBJECT"}, }, Peek: false, Partial: nil, }, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY[HEADER.FIELDS.NOT (FROM TO SUBJECT)]`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySection_MIMEIsErrorWithoutPart(t *testing.T) { _, err := testParseCommand(`tag FETCH 1 BODY[MIME]`) require.Error(t, err) } func TestParser_FetchCommandBodySection_MIME(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: &BodySectionPart{ Part: []int{4, 2, 1}, Section: &BodySectionMIME{}, }, Peek: false, Partial: nil, }, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY[4.2.1.MIME]`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySection_PartWithSectionMsgText(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: &BodySectionPart{ Part: []int{4, 2, 1}, Section: &BodySectionHeader{}, }, Peek: false, Partial: nil, }, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY[4.2.1.HEADER]`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySection_Partial(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: &BodySectionText{}, Peek: false, Partial: &BodySectionPartial{ Offset: 100, Count: 50, }, }, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY[TEXT]<100.50>`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySection_Peek(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: &BodySectionText{}, Peek: true, Partial: nil, }, }, }} cmd, err := testParseCommand(`tag FETCH 1 BODY.PEEK[TEXT]`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandMultiple(t *testing.T) { expected := Command{Tag: "tag", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 2, End: 4}}, Attributes: []FetchAttribute{ &FetchAttributeFlags{}, &FetchAttributeInternalDate{}, &FetchAttributeRFC822Size{}, &FetchAttributeEnvelope{}, &FetchAttributeBodySection{ Section: &BodySectionPart{ Part: []int{1, 3}, Section: &BodySectionText{}, }, Peek: true, Partial: &BodySectionPartial{ Offset: 50, Count: 100, }, }, }, }} cmd, err := testParseCommand(`tag FETCH 2:4 (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE BODY.PEEK[1.3.TEXT]<50.100>)`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_FetchCommandBodySectionPartOnly(t *testing.T) { expected := Command{Tag: "A005", Payload: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeBodySection{ Section: &BodySectionPart{ Part: []int{1, 1}, Section: nil, }, Peek: false, Partial: nil, }, }, }} cmd, err := testParseCommand(`A005 FETCH 1 (BODY[1.1])`) require.NoError(t, err) require.Equal(t, expected, cmd) } gluon-0.17.0/imap/command/flags.go000066400000000000000000000041271445200213000167050ustar00rootroot00000000000000package command import ( "fmt" "strings" "github.com/ProtonMail/gluon/rfcparser" ) func TryParseFlagList(p *rfcparser.Parser) ([]string, bool, error) { if !p.Check(rfcparser.TokenTypeLParen) { return nil, false, nil } flags, err := ParseFlagList(p) return flags, true, err } func ParseFlagList(p *rfcparser.Parser) ([]string, error) { // flag-list = "(" [flag *(SP flag)] ")" var flags []string if err := p.Consume(rfcparser.TokenTypeLParen, "Expected '(' at start of flag list"); err != nil { return nil, err } if !p.Check(rfcparser.TokenTypeRParen) { { firstFlag, err := ParseFlag(p) if err != nil { return nil, err } flags = append(flags, firstFlag) } for { if ok, err := p.Matches(rfcparser.TokenTypeSP); err != nil { return nil, err } else if !ok { break } flag, err := ParseFlag(p) if err != nil { return nil, err } flags = append(flags, flag) } } if err := p.Consume(rfcparser.TokenTypeRParen, "Expected ')' at end of flag list"); err != nil { return nil, err } return flags, nil } func ParseFlag(p *rfcparser.Parser) (string, error) { /* flag = "\Answered" / "\Flagged" / "\Deleted" / "\Seen" / "\Draft" / flag-keyword / flag-extension ; Does not include "\Recent" flag-extension = "\" atom ; Future expansion. Client implementations ; MUST accept flag-extension flags. Server ; implementations MUST NOT generate ; flag-extension flags except as defined by ; future standard or standards-track ; revisions of this specification. flag-keyword = atom */ hasBackslash, err := p.Matches(rfcparser.TokenTypeBackslash) if err != nil { return "", err } if hasBackslash { flag, err := p.ParseAtom() if err != nil { return "", err } if strings.EqualFold(flag, "recent") { return "", p.MakeError("Recent Flag is not allowed in this context") } return fmt.Sprintf("\\%v", flag), nil } return p.ParseAtom() } gluon-0.17.0/imap/command/flags_test.go000066400000000000000000000017161445200213000177450ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_ParseFlagList(t *testing.T) { values := map[string][]string{ `(\Answered)`: {`\Answered`}, `(\Answered Foo \Something)`: {`\Answered`, `Foo`, `\Something`}, `()`: nil, } for input, expected := range values { p := rfcparser.NewParser(rfcparser.NewScanner(bytes.NewReader([]byte(input)))) require.NoError(t, p.Advance()) v, err := ParseFlagList(p) require.NoError(t, err) require.Equal(t, expected, v) } } func TestParser_ParseFlagListInvalid(t *testing.T) { inputs := [][]byte{ []byte(`(\Foo\Bar)`), []byte(`"(\Recent)`), []byte(`(\Foo )`), []byte(`(\Foo`), } for _, i := range inputs { p := rfcparser.NewParser(rfcparser.NewScanner(bytes.NewReader([]byte(i)))) require.NoError(t, p.Advance()) _, err := ParseFlagList(p) require.Error(t, err) } } gluon-0.17.0/imap/command/id.go000066400000000000000000000035131445200213000162030ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type IDGet struct{} func (l IDGet) String() string { return fmt.Sprintf("ID") } func (l IDGet) SanitizedString() string { return l.String() } type IDSet struct { Values map[string]string } func (l IDSet) String() string { if len(l.Values) == 0 { return "ID" } return fmt.Sprintf("ID %v", l.Values) } func (l IDSet) SanitizedString() string { return l.String() } type IDCommandParser struct{} func (IDCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // nolint:dupword // id ::= "ID" SPACE id_params_list // id_params_list ::= "(" #(string SPACE nstring) ")" / nil // ;; list of field value pairs if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } if p.Check(rfcparser.TokenTypeChar) { if err := p.ConsumeBytesFold('N', 'I', 'L'); err != nil { return nil, err } return &IDGet{}, nil } values := make(map[string]string) if err := p.Consume(rfcparser.TokenTypeLParen, "expected ( for id values start"); err != nil { return nil, err } for { key, ok, err := p.TryParseString() if err != nil { return nil, err } else if !ok { break } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after ID key"); err != nil { return nil, err } value, isNil, err := ParseNString(p) if err != nil { return nil, err } if !isNil { values[key.Value] = value.Value } else { values[key.Value] = "" } if !p.Check(rfcparser.TokenTypeRParen) { if err := p.Consume(rfcparser.TokenTypeSP, "expected space after ID value"); err != nil { return nil, err } } } if err := p.Consume(rfcparser.TokenTypeRParen, "expected ) for id values end"); err != nil { return nil, err } return &IDSet{ Values: values, }, nil } gluon-0.17.0/imap/command/id_test.go000066400000000000000000000034771445200213000172530ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_IDCommandGet(t *testing.T) { input := toIMAPLine(`tag ID NIL`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &IDGet{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "id", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_IDCommandSetOne(t *testing.T) { input := toIMAPLine(`tag ID ("foo" "bar")`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &IDSet{Values: map[string]string{"foo": "bar"}}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "id", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_IDCommandSetEmpty(t *testing.T) { expected := Command{Tag: "tag", Payload: &IDSet{ Values: map[string]string{}, }} cmd, err := testParseCommand(`tag ID ()`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_IDCommandSetMany(t *testing.T) { expected := Command{Tag: "tag", Payload: &IDSet{ Values: map[string]string{ "foo": "bar", "a": "", "c": "d", }, }} cmd, err := testParseCommand(`tag ID ("foo" "bar" "a" NIL "c" "d")`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_IDCommandFailures(t *testing.T) { inputs := []string{ "tag ID", "tag ID ", "tag ID N", "tag ID (", `tag ID ("foo")`, `tag ID ("foo" )`, `tag ID ("foo""bar")`, `tag ID (nil nil)`, `tag ID ("foo" "bar"`, `tag ID ("foo" "bar" "z")`, } for _, i := range inputs { _, err := testParseCommand(i) require.Error(t, err) } } gluon-0.17.0/imap/command/idle.go000066400000000000000000000005441445200213000165250ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Idle struct{} func (l Idle) String() string { return fmt.Sprintf("IDLE") } func (l Idle) SanitizedString() string { return l.String() } type IdleCommandParser struct{} func (IdleCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { return &Idle{}, nil } gluon-0.17.0/imap/command/idle_test.go000066400000000000000000000007721445200213000175670ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_IdleCommand(t *testing.T) { input := toIMAPLine(`tag IDLE`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Idle{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "idle", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/input_collector.go000066400000000000000000000017351445200213000210200ustar00rootroot00000000000000package command import ( "github.com/ProtonMail/gluon/rfcparser" ) type InputCollector struct { source rfcparser.Reader bytes []byte } func NewInputCollector(source rfcparser.Reader) *InputCollector { return &InputCollector{ source: source, bytes: make([]byte, 0, 128), } } func (i *InputCollector) Bytes() []byte { return i.bytes } func (i *InputCollector) Read(dst []byte) (int, error) { n, err := i.source.Read(dst) if err == nil { i.bytes = append(i.bytes, dst[0:n]...) } return n, err } func (i *InputCollector) ReadByte() (byte, error) { b, err := i.source.ReadByte() if err == nil { i.bytes = append(i.bytes, b) } return b, err } func (i *InputCollector) ReadBytes(delim byte) ([]byte, error) { b, err := i.source.ReadBytes(delim) if err == nil { i.bytes = append(i.bytes, b...) } return b, err } func (i *InputCollector) Reset() { i.bytes = i.bytes[:0] } func (i *InputCollector) SetSource(source rfcparser.Reader) { i.source = source } gluon-0.17.0/imap/command/input_collector_test.go000066400000000000000000000016531445200213000220560ustar00rootroot00000000000000package command import ( "bufio" "bytes" "testing" "time" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestInputCollector(t *testing.T) { input := toIMAPLine(`A003 APPEND saved-messages (\Seen) "15-Nov-1984 13:37:01 +0730" {23}`, `My message body is here`) source := bufio.NewReader(bytes.NewReader(input)) collector := NewInputCollector(source) s := rfcparser.NewScannerWithReader(collector) p := NewParser(s) expected := Command{Tag: "A003", Payload: &Append{ Mailbox: "saved-messages", Flags: []string{`\Seen`}, Literal: []byte("My message body is here"), DateTime: buildAppendDateTime(1984, time.November, 15, 13, 37, 1, 07, 30, false), }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "append", p.LastParsedCommand()) require.Equal(t, "A003", p.LastParsedTag()) require.Equal(t, input, collector.Bytes()) } gluon-0.17.0/imap/command/list.go000066400000000000000000000031541445200213000165630ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type List struct { Mailbox string ListMailbox string } func (l List) String() string { return fmt.Sprintf("LIST '%v' '%v'", l.Mailbox, l.ListMailbox) } func (l List) SanitizedString() string { return l.String() } type ListCommandParser struct{} func (ListCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // list = "LIST" SP mailbox SP list-mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after mailbox"); err != nil { return nil, err } listMailbox, err := parseListMailbox(p) if err != nil { return nil, err } return &List{ Mailbox: mailbox.Value, ListMailbox: listMailbox.Value, }, nil } func parseListMailbox(p *rfcparser.Parser) (rfcparser.String, error) { /* list-mailbox = 1*list-char / string list-char = ATOM-CHAR / list-wildcards / resp-specials list-wildcards = "%" / "*" */ isListChar := func(tt rfcparser.TokenType) bool { return rfcparser.IsAtomChar(tt) || rfcparser.IsRespSpecial(tt) || tt == rfcparser.TokenTypePercent || tt == rfcparser.TokenTypeAsterisk } if ok, err := p.MatchesWith(isListChar); err != nil { return rfcparser.String{}, err } else if !ok { return p.ParseString() } listMailbox, err := p.CollectBytesWhileMatchesWithPrevWith(isListChar) if err != nil { return rfcparser.String{}, err } return listMailbox.IntoString(), nil } gluon-0.17.0/imap/command/list_test.go000066400000000000000000000037751445200213000176330ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_ListCommandQuoted(t *testing.T) { input := toIMAPLine(`tag LIST "" "*"`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &List{ Mailbox: "", ListMailbox: "*", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "list", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_ListCommandSpecialAsterisk(t *testing.T) { input := toIMAPLine(`tag LIST "foo" *`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &List{ Mailbox: "foo", ListMailbox: "*", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "list", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_ListCommandSpecialPercentage(t *testing.T) { input := toIMAPLine(`tag LIST "bar" %`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &List{ Mailbox: "bar", ListMailbox: "%", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "list", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_ListCommandLiteral(t *testing.T) { input := toIMAPLine(`tag LIST {5}`, `"bar" %`) s := rfcparser.NewScanner(bytes.NewReader(input)) continuationCalled := false p := NewParserWithLiteralContinuationCb(s, func() error { continuationCalled = true return nil }) expected := Command{Tag: "tag", Payload: &List{ Mailbox: `"bar"`, ListMailbox: "%", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.True(t, continuationCalled) require.Equal(t, "list", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/login.go000066400000000000000000000017701445200213000167220ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Login struct { UserID string Password string } func (l Login) String() string { return fmt.Sprintf("LOGIN '%v' '%v'", l.UserID, l.Password) } func (l Login) SanitizedString() string { return fmt.Sprintf("LOGIN '%v' ", sanitizeString(l.UserID)) } type LoginCommandParser struct{} func (LoginCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // login = "LOGIN" SP userid SP password // userid = astring // password = astring if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } user, err := p.ParseAString() if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after userid"); err != nil { return nil, err } password, err := p.ParseAString() if err != nil { return nil, err } return &Login{ UserID: user.Value, Password: password.Value, }, nil } gluon-0.17.0/imap/command/login_test.go000066400000000000000000000010701445200213000177520ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_LoginCommandQuoted(t *testing.T) { input := toIMAPLine(`tag LOGIN "foo" "bar"`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Login{ UserID: "foo", Password: "bar", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "login", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/logout.go000066400000000000000000000005621445200213000171210ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Logout struct{} func (l Logout) String() string { return fmt.Sprintf("LOGOUT") } func (l Logout) SanitizedString() string { return l.String() } type LogoutCommandParser struct{} func (LogoutCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { return &Logout{}, nil } gluon-0.17.0/imap/command/logout_test.go000066400000000000000000000010021445200213000201460ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_LogoutCommand(t *testing.T) { input := toIMAPLine(`tag LOGOUT`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Logout{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "logout", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/lsub.go000066400000000000000000000016441445200213000165570ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type LSub struct { Mailbox string LSubMailbox string } func (l LSub) String() string { return fmt.Sprintf("LSUB '%v' '%v'", l.Mailbox, l.LSubMailbox) } func (l LSub) SanitizedString() string { return l.String() } type LSubCommandParser struct{} func (LSubCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // lsub = "LSUB" SP mailbox SP list-mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after mailbox"); err != nil { return nil, err } listMailbox, err := parseListMailbox(p) if err != nil { return nil, err } return &LSub{ Mailbox: mailbox.Value, LSubMailbox: listMailbox.Value, }, nil } gluon-0.17.0/imap/command/lsub_test.go000066400000000000000000000026441445200213000176170ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_LSubCommand(t *testing.T) { input := toIMAPLine(`tag LSUB "" "*"`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &LSub{ Mailbox: "", LSubMailbox: "*", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "lsub", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_LSubCommandSpecialAsterisk(t *testing.T) { input := toIMAPLine(`tag LSUB "foo" *`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &LSub{ Mailbox: "foo", LSubMailbox: "*", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "lsub", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_LSubCommandSpecialPercentage(t *testing.T) { input := toIMAPLine(`tag LSUB "bar" %`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &LSub{ Mailbox: "bar", LSubMailbox: "%", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "lsub", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/mailbox.go000066400000000000000000000006601445200213000172420ustar00rootroot00000000000000package command import ( "strings" "github.com/ProtonMail/gluon/rfcparser" ) // ParseMailbox parses a mailbox name as defined in RFC 3501. func ParseMailbox(p *rfcparser.Parser) (rfcparser.String, error) { // mailbox = "INBOX" / astring astring, err := p.ParseAString() if err != nil { return rfcparser.String{}, err } if strings.EqualFold(astring.Value, "INBOX") { astring.Value = "INBOX" } return astring, nil } gluon-0.17.0/imap/command/move.go000066400000000000000000000016611445200213000165570ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Move struct { SeqSet []SeqRange Mailbox string } func (l Move) String() string { return fmt.Sprintf("MOVE %v '%v'", l.SeqSet, l.Mailbox) } func (l Move) SanitizedString() string { return fmt.Sprintf("MOVE %v '%v'", l.SeqSet, sanitizeString(l.Mailbox)) } type MoveCommandParser struct{} func (MoveCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // move = "MOVE" SP sequence-set SP mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } seqSet, err := ParseSeqSet(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after seqset"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } return &Move{ SeqSet: seqSet, Mailbox: mailbox.Value, }, nil } gluon-0.17.0/imap/command/move_test.go000066400000000000000000000011271445200213000176130ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_MoveCommand(t *testing.T) { input := toIMAPLine(`tag MOVE 1:* INBOX`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Move{ Mailbox: "INBOX", SeqSet: []SeqRange{{Begin: 1, End: SeqNumValueAsterisk}}, }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "move", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/noop.go000066400000000000000000000005441445200213000165630ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Noop struct{} func (l Noop) String() string { return fmt.Sprintf("NOOP") } func (l Noop) SanitizedString() string { return l.String() } type NoopCommandParser struct{} func (NoopCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { return &Noop{}, nil } gluon-0.17.0/imap/command/noop_test.go000066400000000000000000000007721445200213000176250ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_NoopCommand(t *testing.T) { input := toIMAPLine(`tag NOOP`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Noop{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "noop", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/nstring.go000066400000000000000000000010311445200213000172640ustar00rootroot00000000000000package command import "github.com/ProtonMail/gluon/rfcparser" // ParseNString pareses a string or NIL. If NIL was parsed the boolean return is set to false. func ParseNString(p *rfcparser.Parser) (rfcparser.String, bool, error) { // nstring = string / nil if s, ok, err := p.TryParseString(); err != nil { return rfcparser.String{}, false, err } else if ok { return s, false, nil } if err := p.ConsumeBytesFold('N', 'I', 'L'); err != nil { return rfcparser.String{}, false, err } return rfcparser.String{}, true, nil } gluon-0.17.0/imap/command/nstring_test.go000066400000000000000000000014511445200213000203310ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParseNStringString(t *testing.T) { input := []byte(`"foo"`) p := rfcparser.NewParser(rfcparser.NewScanner(bytes.NewReader(input))) // Advance at least once to prepare first token. err := p.Advance() require.NoError(t, err) v, isNil, err := ParseNString(p) require.NoError(t, err) require.Equal(t, "foo", v.Value) require.False(t, isNil) } func TestParseNStringNIL(t *testing.T) { input := []byte(`NIL`) p := rfcparser.NewParser(rfcparser.NewScanner(bytes.NewReader(input))) // Advance at least once to prepare first token. err := p.Advance() require.NoError(t, err) _, isNil, err := ParseNString(p) require.NoError(t, err) require.True(t, isNil) } gluon-0.17.0/imap/command/parser.go000066400000000000000000000105451445200213000171060ustar00rootroot00000000000000package command import ( "fmt" "strings" "github.com/ProtonMail/gluon/rfcparser" ) type Builder interface { FromParser(p *rfcparser.Parser) (Payload, error) } // Parser parses IMAP Commands. type Parser struct { parser *rfcparser.Parser scanner *rfcparser.Scanner commands map[string]Builder lastTag string lastCmd string } func NewParser(s *rfcparser.Scanner) *Parser { return NewParserWithLiteralContinuationCb(s, nil) } func NewParserWithLiteralContinuationCb(s *rfcparser.Scanner, cb func() error) *Parser { return &Parser{ scanner: s, parser: rfcparser.NewParserWithLiteralContinuationCb(s, cb), commands: map[string]Builder{ "list": &ListCommandParser{}, "append": &AppendCommandParser{}, "search": &SearchCommandParser{}, "fetch": &FetchCommandParser{}, "capability": &CapabilityCommandParser{}, "idle": &IdleCommandParser{}, "noop": &NoopCommandParser{}, "logout": &LogoutCommandParser{}, "check": &CheckCommandParser{}, "close": &CloseCommandParser{}, "expunge": &ExpungeCommandParser{}, "unselect": &UnselectCommandParser{}, "starttls": &StartTLSCommandParser{}, "status": &StatusCommandParser{}, "select": &SelectCommandParser{}, "examine": &ExamineCommandParser{}, "create": &CreateCommandParser{}, "delete": &DeleteCommandParser{}, "subscribe": &SubscribeCommandParser{}, "unsubscribe": &UnsubscribeCommandParser{}, "rename": &RenameCommandParser{}, "lsub": &LSubCommandParser{}, "login": &LoginCommandParser{}, "store": &StoreCommandParser{}, "copy": &CopyCommandParser{}, "move": &MoveCommandParser{}, "uid": NewUIDCommandParser(), "id": &IDCommandParser{}, }, } } func (p *Parser) LastParsedTag() string { return p.lastTag } func (p *Parser) LastParsedCommand() string { return p.lastCmd } // ConsumeInvalidInput will consume all remaining scanner input until a new line has been reached. func (p *Parser) ConsumeInvalidInput() error { _, err := p.scanner.ConsumeUntilNewLine() return err } func (p *Parser) Parse() (Command, error) { result := Command{} p.lastTag = "" p.lastCmd = "" p.parser.ResetOffsetCounter() if err := p.parser.Advance(); err != nil { return result, err } tag, err := p.parseTag() if err != nil { return result, err } // Done command does not have a tag. if strings.ToLower(tag.Value) == "done" { p.lastCmd = "done" result.Tag = "" result.Payload = &Done{} } else { result.Tag = tag.Value p.lastTag = tag.Value if err := p.parser.Consume(rfcparser.TokenTypeSP, "Expected space after tag"); err != nil { return result, err } payload, err := p.parseCommand() if err != nil { return result, err } result.Payload = payload } if err := p.parser.Consume(rfcparser.TokenTypeCR, "expected CR"); err != nil { return Command{}, err } // Can't fully consume the last new line here or we will hang forever as the clients don't send the next token. // In the next loop, the call to advance will ensure the next token in the stream gets loaded properly. if !p.parser.Check(rfcparser.TokenTypeLF) { return Command{}, p.parser.MakeError("expected LF after CR") } return result, nil } func (p *Parser) parseCommand() (Payload, error) { var commandBytes []byte commandOffset := p.parser.CurrentToken().Offset for { if ok, err := p.parser.Matches(rfcparser.TokenTypeChar); err != nil { return nil, err } else if ok { commandBytes = append(commandBytes, rfcparser.ByteToLower(p.parser.PreviousToken().Value)) } else { break } } p.lastCmd = string(commandBytes) builder, ok := p.commands[p.lastCmd] if !ok { return nil, p.parser.MakeErrorAtOffset(fmt.Sprintf("unknown command '%v'", p.lastCmd), commandOffset) } return builder.FromParser(p.parser) } func (p *Parser) parseTag() (rfcparser.String, error) { // tag = 1* isTagChar := func(tt rfcparser.TokenType) bool { return rfcparser.IsAStringChar(tt) && tt != rfcparser.TokenTypePlus } if err := p.parser.ConsumeWith(isTagChar, "Invalid tag char detected"); err != nil { return rfcparser.String{}, err } tag, err := p.parser.CollectBytesWhileMatchesWithPrevWith(isTagChar) if err != nil { return rfcparser.String{}, err } return tag.IntoString(), err } gluon-0.17.0/imap/command/parser_test.go000066400000000000000000000101011445200213000201310ustar00rootroot00000000000000package command import ( "bytes" "fmt" "io" "testing" "time" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func toIMAPLine(string ...string) []byte { var result []byte for _, v := range string { result = append(result, []byte(v)...) result = append(result, '\r', '\n') } return result } func testParseCommand(lines ...string) (Command, error) { input := toIMAPLine(lines...) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) return p.Parse() } func TestParser_InvalidTag(t *testing.T) { input := []byte(`+tag LIST "" "*"`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) _, err := p.Parse() require.Error(t, err) require.Empty(t, p.LastParsedCommand()) require.Empty(t, p.LastParsedTag()) } func TestParser_TestEof(t *testing.T) { var input []byte s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) _, err := p.Parse() require.Error(t, err) require.True(t, rfcparser.IsError(err)) parserError, ok := err.(*rfcparser.Error) //nolint:errorlint require.True(t, ok) require.True(t, parserError.IsEOF()) } func TestParser_InvalidFollowedByValidCommand(t *testing.T) { input := toIMAPLine(`+tag LIST "" "*"`, `foo list "bar" "*"`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) // First command fails. _, err := p.Parse() require.Error(t, err) require.True(t, rfcparser.IsError(err)) // Clear any other input until new line has been reached err = p.ConsumeInvalidInput() require.NoError(t, err) // Second command should succeed. expected := Command{Tag: "foo", Payload: &List{ Mailbox: "bar", ListMailbox: "*", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_LiteralWithContinuationSubmission(t *testing.T) { // Run one go routine that submits bytes until the continuation call has been received continueCh := make(chan struct{}) reader, writer := io.Pipe() go func() { defer writer.Close() firstLine := toIMAPLine(`A003 APPEND saved-messages (\Seen) "15-Nov-1984 13:37:01 +0730" {23}`) secondLine := toIMAPLine(`My message body is here`) if l, err := writer.Write(firstLine); err != nil || l != len(firstLine) { writer.CloseWithError(fmt.Errorf("failed to write first line: %w", err)) return } <-continueCh if l, err := writer.Write(secondLine); err != nil || l != len(secondLine) { writer.CloseWithError(fmt.Errorf("failed to write second line: %w", err)) return } }() s := rfcparser.NewScanner(reader) p := NewParserWithLiteralContinuationCb(s, func() error { close(continueCh) return nil }) expected := Command{Tag: "A003", Payload: &Append{ Mailbox: "saved-messages", Flags: []string{`\Seen`}, Literal: []byte("My message body is here"), DateTime: buildAppendDateTime(1984, time.November, 15, 13, 37, 1, 07, 30, false), }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_TwoCommandsInSuccession(t *testing.T) { // Run one go routine that submits bytes until the continuation call has been received continueCh := make(chan struct{}) reader, writer := io.Pipe() go func() { defer writer.Close() firstLine := toIMAPLine(`A003 CAPABILITY`) secondLine := toIMAPLine(`B002 LIST "" %`) if l, err := writer.Write(firstLine); err != nil || l != len(firstLine) { writer.CloseWithError(fmt.Errorf("failed to write first line: %w", err)) return } <-continueCh if l, err := writer.Write(secondLine); err != nil || l != len(secondLine) { writer.CloseWithError(fmt.Errorf("failed to write second line: %w", err)) return } }() s := rfcparser.NewScanner(reader) p := NewParser(s) // First command { expected := Command{Tag: "A003", Payload: &Capability{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) } // Submit next command. close(continueCh) { expected := Command{Tag: "B002", Payload: &List{ Mailbox: "", ListMailbox: "%", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) } } gluon-0.17.0/imap/command/rename.go000066400000000000000000000017121445200213000170550ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Rename struct { From string To string } func (l Rename) String() string { return fmt.Sprintf("RENAME '%v' '%v'", l.From, l.To) } func (l Rename) SanitizedString() string { return fmt.Sprintf("RENAME '%v' '%v'", sanitizeString(l.From), sanitizeString(l.To)) } type RenameCommandParser struct{} func (RenameCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // rename = "RENAME" SP mailbox SP mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailboxFrom, err := ParseMailbox(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after mailbox"); err != nil { return nil, err } mailboxTo, err := ParseMailbox(p) if err != nil { return nil, err } return &Rename{ From: mailboxFrom.Value, To: mailboxTo.Value, }, nil } gluon-0.17.0/imap/command/rename_test.go000066400000000000000000000010521445200213000201110ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_RenameCommand(t *testing.T) { input := toIMAPLine(`tag RENAME Foo Bar`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Rename{ From: "Foo", To: "Bar", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "rename", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/search.go000066400000000000000000000254241445200213000170610ustar00rootroot00000000000000package command import ( "fmt" "strings" "time" "github.com/ProtonMail/gluon/rfcparser" "github.com/bradenaw/juniper/xslices" ) type Search struct { Charset string Keys []SearchKey } type SearchKey interface { String() string SanitizedString() string } func (s Search) String() string { charsetStr := "NONE" if len(s.Charset) != 0 { charsetStr = s.Charset } return fmt.Sprintf("SEARCH CHARSET=%v %v", charsetStr, s.Keys) } func (s Search) SanitizedString() string { charsetStr := "NONE" if len(s.Charset) != 0 { charsetStr = s.Charset } return fmt.Sprintf("SEARCH CHARSET=%v %v", charsetStr, xslices.Map(s.Keys, func(v SearchKey) string { return v.SanitizedString() })) } type SearchCommandParser struct{} func (scp *SearchCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { //search = "SEARCH" [SP "CHARSET" SP astring] 1*(SP search-key) // ; CHARSET argument to MUST be registered with IANA var keys []SearchKey var charset string if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } // Check for optional charset. if ok, err := p.Matches(rfcparser.TokenTypeChar); err != nil { return nil, err } else if ok { // Check if the character is C. if rfcparser.ByteToLower(p.PreviousToken().Value) == 'c' { offset := p.PreviousToken().Offset // Check if the next character is also C. If true, it's the CC keyword. if rfcparser.ByteToLower(p.CurrentToken().Value) == 'c' { if err := p.Consume(rfcparser.TokenTypeChar, "expected char"); err != nil { return nil, err } key, err := handleSearchKey(rfcparser.String{Value: "cc", Offset: offset}, p) if err != nil { return nil, err } keys = append(keys, key) } else { // Is the charset modifier. if err := p.ConsumeBytesFold('H', 'A', 'R', 'S', 'E', 'T'); err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after charset"); err != nil { return nil, err } encoding, err := p.ParseAString() if err != nil { return nil, err } charset = encoding.Value } } else { // Another keyword entirely firstChar := p.PreviousToken() keyword, err := p.CollectBytesWhileMatches(rfcparser.TokenTypeChar) if err != nil { return nil, err } keywordStr := rfcparser.String{ Value: strings.ToLower(string(firstChar.Value) + keyword.IntoString().Value), Offset: firstChar.Offset, } key, err := handleSearchKey(keywordStr, p) if err != nil { return nil, err } keys = append(keys, key) } } else { key, err := parseSearchKey(p) if err != nil { return nil, err } keys = append(keys, key) } for { if ok, err := p.Matches(rfcparser.TokenTypeSP); err != nil { return nil, err } else if !ok { break } key, err := parseSearchKey(p) if err != nil { return nil, err } keys = append(keys, key) } if len(keys) == 0 { return nil, p.MakeError("no search keys specified") } return &Search{ Charset: charset, Keys: keys, }, nil } func parseSearchKey(p *rfcparser.Parser) (SearchKey, error) { if ok, err := p.Matches(rfcparser.TokenTypeLParen); err != nil { return nil, err } else if ok { return parseSearchKeyList(p) } if p.Check(rfcparser.TokenTypeDigit) || p.Check(rfcparser.TokenTypeAsterisk) { seqSet, err := ParseSeqSet(p) if err != nil { return nil, err } return &SearchKeySeqSet{SeqSet: seqSet}, nil } keyword, err := readSearchKeyword(p) if err != nil { return nil, err } return handleSearchKey(keyword, p) } func parseSearchKeyList(p *rfcparser.Parser) (SearchKey, error) { // "(" search-key *(SP search-key) ")" var searchKeys []SearchKey { firstKey, err := parseSearchKey(p) if err != nil { return nil, err } searchKeys = append(searchKeys, firstKey) } for { if ok, err := p.Matches(rfcparser.TokenTypeSP); err != nil { return nil, err } else if !ok { break } firstKey, err := parseSearchKey(p) if err != nil { return nil, err } searchKeys = append(searchKeys, firstKey) } if err := p.Consume(rfcparser.TokenTypeRParen, "expected ) for search key list end"); err != nil { return nil, err } return &SearchKeyList{ Keys: searchKeys, }, nil } func readSearchKeyword(p *rfcparser.Parser) (rfcparser.String, error) { keyword, err := p.CollectBytesWhileMatches(rfcparser.TokenTypeChar) if err != nil { return rfcparser.String{}, err } return keyword.IntoString().ToLower(), nil } func handleSearchKey(keyword rfcparser.String, p *rfcparser.Parser) (SearchKey, error) { /* search-key = "ALL" / "ANSWERED" / "BCC" SP astring / "BEFORE" SP date / "BODY" SP astring / "CC" SP astring / "DELETED" / "FLAGGED" / "FROM" SP astring / "KEYWORD" SP flag-keyword / "NEW" / "OLD" / "ON" SP date / "RECENT" / "SEEN" / "SINCE" SP date / "SUBJECT" SP astring / "TEXT" SP astring / "TO" SP astring / "UNANSWERED" / "UNDELETED" / "UNFLAGGED" / "UNKEYWORD" SP flag-keyword / "UNSEEN" / ; Above this line were in [IMAP2] "DRAFT" / "HEADER" SP header-fld-name SP astring / "LARGER" SP number / "NOT" SP search-key / "OR" SP search-key SP search-key / "SENTBEFORE" SP date / "SENTON" SP date / "SENTSINCE" SP date / "SMALLER" SP number / "UID" SP sequence-set / "UNDRAFT" / sequence-set / "(" search-key *(SP search-key) ")" */ switch keyword.Value { case "all": return &SearchKeyAll{}, nil case "answered": return &SearchKeyAnswered{}, nil case "bcc": value, err := parseStringKeyAString(p) if err != nil { return nil, err } return &SearchKeyBCC{Value: value}, nil case "before": value, err := parseStringKeyDate(p) if err != nil { return nil, err } return &SearchKeyBefore{Value: value}, nil case "on": value, err := parseStringKeyDate(p) if err != nil { return nil, err } return &SearchKeyOn{Value: value}, nil case "body": value, err := parseStringKeyAString(p) if err != nil { return nil, err } return &SearchKeyBody{Value: value}, nil case "cc": value, err := parseStringKeyAString(p) if err != nil { return nil, err } return &SearchKeyCC{Value: value}, nil case "deleted": return &SearchKeyDeleted{}, nil case "flagged": return &SearchKeyFlagged{}, nil case "from": value, err := parseStringKeyAString(p) if err != nil { return nil, err } return &SearchKeyFrom{Value: value}, nil case "keyword": value, err := parseStringKeyAtom(p) if err != nil { return nil, err } return &SearchKeyKeyword{Value: value}, nil case "new": return &SearchKeyNew{}, nil case "old": return &SearchKeyOld{}, nil case "recent": return &SearchKeyRecent{}, nil case "seen": return &SearchKeySeen{}, nil case "since": value, err := parseStringKeyDate(p) if err != nil { return nil, err } return &SearchKeySince{Value: value}, nil case "subject": value, err := parseStringKeyAString(p) if err != nil { return nil, err } return &SearchKeySubject{Value: value}, nil case "text": value, err := parseStringKeyAString(p) if err != nil { return nil, err } return &SearchKeyText{Value: value}, nil case "to": value, err := parseStringKeyAString(p) if err != nil { return nil, err } return &SearchKeyTo{Value: value}, nil case "unanswered": return &SearchKeyUnanswered{}, nil case "undeleted": return &SearchKeyUndeleted{}, nil case "unflagged": return &SearchKeyUnflagged{}, nil case "unkeyword": value, err := parseStringKeyAtom(p) if err != nil { return nil, err } return &SearchKeyUnkeyword{Value: value}, nil case "unseen": return &SearchKeyUnseen{}, nil case "draft": return &SearchKeyDraft{}, nil case "header": field, err := parseStringKeyAString(p) if err != nil { return nil, err } value, err := parseStringKeyAString(p) if err != nil { return nil, err } return &SearchKeyHeader{Field: field, Value: value}, nil case "larger": value, err := parseStringKeyNumber(p) if err != nil { return nil, err } return &SearchKeyLarger{Value: value}, nil case "not": if err := p.Consume(rfcparser.TokenTypeSP, "expected space after NOT"); err != nil { return nil, err } key, err := parseSearchKey(p) if err != nil { return nil, err } return &SearchKeyNot{Key: key}, nil case "or": if err := p.Consume(rfcparser.TokenTypeSP, "expected space after OR"); err != nil { return nil, err } key1, err := parseSearchKey(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after first OR key"); err != nil { return nil, err } key2, err := parseSearchKey(p) if err != nil { return nil, err } return &SearchKeyOr{Key1: key1, Key2: key2}, nil case "sentbefore": value, err := parseStringKeyDate(p) if err != nil { return nil, err } return &SearchKeySentBefore{Value: value}, nil case "senton": value, err := parseStringKeyDate(p) if err != nil { return nil, err } return &SearchKeySentOn{Value: value}, nil case "sentsince": value, err := parseStringKeyDate(p) if err != nil { return nil, err } return &SearchKeySentSince{Value: value}, nil case "smaller": value, err := parseStringKeyNumber(p) if err != nil { return nil, err } return &SearchKeySmaller{Value: value}, nil case "uid": if err := p.Consume(rfcparser.TokenTypeSP, "expected space"); err != nil { return nil, err } value, err := ParseSeqSet(p) if err != nil { return nil, err } return &SearchKeyUID{SeqSet: value}, nil case "undraft": return &SearchKeyUndraft{}, nil default: return nil, p.MakeErrorAtOffset(fmt.Sprintf("unknown search key '%v'", keyword.Value), keyword.Offset) } } func parseStringKeyAString(p *rfcparser.Parser) (string, error) { if err := p.Consume(rfcparser.TokenTypeSP, "expected space"); err != nil { return "", err } astring, err := p.ParseAString() if err != nil { return "", err } return astring.Value, nil } func parseStringKeyNumber(p *rfcparser.Parser) (int, error) { if err := p.Consume(rfcparser.TokenTypeSP, "expected space"); err != nil { return 0, err } return p.ParseNumber() } func parseStringKeyDate(p *rfcparser.Parser) (time.Time, error) { if err := p.Consume(rfcparser.TokenTypeSP, "expected space"); err != nil { return time.Time{}, err } return ParseDate(p) } func parseStringKeyAtom(p *rfcparser.Parser) (string, error) { if err := p.Consume(rfcparser.TokenTypeSP, "expected space"); err != nil { return "", err } return p.ParseAtom() } gluon-0.17.0/imap/command/search_keys.go000066400000000000000000000176271445200213000201220ustar00rootroot00000000000000package command import ( "fmt" "strings" "time" "github.com/bradenaw/juniper/xslices" ) type SearchKeyAll struct{} func (s SearchKeyAll) String() string { return "ALL" } func (s SearchKeyAll) SanitizedString() string { return s.String() } type SearchKeyAnswered struct{} func (s SearchKeyAnswered) String() string { return "ANSWERED" } func (s SearchKeyAnswered) SanitizedString() string { return s.String() } type SearchKeyBCC struct { Value string } func (s SearchKeyBCC) String() string { return fmt.Sprintf("BCC %v", s.Value) } func (s SearchKeyBCC) SanitizedString() string { return fmt.Sprintf("BCC %v", sanitizeString(s.Value)) } type SearchKeyBefore struct { Value time.Time } func (s SearchKeyBefore) String() string { return fmt.Sprintf("BEFORE %v", s.Value) } func (s SearchKeyBefore) SanitizedString() string { return fmt.Sprintf("BEFORE ") } type SearchKeyBody struct { Value string } func (s SearchKeyBody) String() string { return fmt.Sprintf("BODY %v", s.Value) } func (s SearchKeyBody) SanitizedString() string { return fmt.Sprintf("BODY %v", sanitizeString(s.Value)) } type SearchKeyCC struct { Value string } func (s SearchKeyCC) String() string { return fmt.Sprintf("CC %v", s.Value) } func (s SearchKeyCC) SanitizedString() string { return fmt.Sprintf("CC %v", sanitizeString(s.Value)) } type SearchKeyDeleted struct{} func (s SearchKeyDeleted) String() string { return "DELETED" } func (s SearchKeyDeleted) SanitizedString() string { return s.String() } type SearchKeyFlagged struct{} func (s SearchKeyFlagged) String() string { return "Flagged" } func (s SearchKeyFlagged) SanitizedString() string { return s.String() } type SearchKeyFrom struct { Value string } func (s SearchKeyFrom) String() string { return fmt.Sprintf("FROM %v", s.Value) } func (s SearchKeyFrom) SanitizedString() string { return fmt.Sprintf("FROM %v", sanitizeString(s.Value)) } type SearchKeyKeyword struct { Value string } func (s SearchKeyKeyword) String() string { return fmt.Sprintf("KEYWORD %v", s.Value) } func (s SearchKeyKeyword) SanitizedString() string { return fmt.Sprintf("KEYWORD %v", sanitizeString(s.Value)) } type SearchKeyNew struct{} func (s SearchKeyNew) String() string { return "NEW" } func (s SearchKeyNew) SanitizedString() string { return s.String() } type SearchKeyOld struct{} func (s SearchKeyOld) String() string { return "NEW" } func (s SearchKeyOld) SanitizedString() string { return s.String() } type SearchKeyOn struct { Value time.Time } func (s SearchKeyOn) String() string { return fmt.Sprintf("On %v", s.Value) } func (s SearchKeyOn) SanitizedString() string { return fmt.Sprintf("ON ") } type SearchKeyRecent struct{} func (s SearchKeyRecent) String() string { return "RECENT" } func (s SearchKeyRecent) SanitizedString() string { return s.String() } type SearchKeySeen struct{} func (s SearchKeySeen) String() string { return "SEEN" } func (s SearchKeySeen) SanitizedString() string { return s.String() } type SearchKeySince struct { Value time.Time } func (s SearchKeySince) String() string { return fmt.Sprintf("SINCE %v", s.Value) } func (s SearchKeySince) SanitizedString() string { return fmt.Sprintf("SINCE ") } type SearchKeySubject struct { Value string } func (s SearchKeySubject) String() string { return fmt.Sprintf("SUBJECT %v", s.Value) } func (s SearchKeySubject) SanitizedString() string { return fmt.Sprintf("SUBJECT %v", sanitizeString(s.Value)) } type SearchKeyText struct { Value string } func (s SearchKeyText) String() string { return fmt.Sprintf("TEXT %v", s.Value) } func (s SearchKeyText) SanitizedString() string { return fmt.Sprintf("TEXT %v", sanitizeString(s.Value)) } type SearchKeyTo struct { Value string } func (s SearchKeyTo) String() string { return fmt.Sprintf("TO %v", s.Value) } func (s SearchKeyTo) SanitizedString() string { return fmt.Sprintf("TO %v", sanitizeString(s.Value)) } type SearchKeyUnanswered struct{} func (s SearchKeyUnanswered) String() string { return "UNANSWERED" } func (s SearchKeyUnanswered) SanitizedString() string { return s.String() } type SearchKeyUndeleted struct{} func (s SearchKeyUndeleted) String() string { return "UNDELETED" } func (s SearchKeyUndeleted) SanitizedString() string { return s.String() } type SearchKeyUnflagged struct{} func (s SearchKeyUnflagged) String() string { return "UNFLAGGED" } func (s SearchKeyUnflagged) SanitizedString() string { return s.String() } type SearchKeyUnkeyword struct { Value string } func (s SearchKeyUnkeyword) String() string { return fmt.Sprintf("UNKEYWORD %v", s.Value) } func (s SearchKeyUnkeyword) SanitizedString() string { return fmt.Sprintf("UNKEYWORD %v", sanitizeString(s.Value)) } type SearchKeyUnseen struct{} func (s SearchKeyUnseen) String() string { return "UNSEEN" } func (s SearchKeyUnseen) SanitizedString() string { return s.String() } type SearchKeyDraft struct{} func (s SearchKeyDraft) String() string { return "DRAFT" } func (s SearchKeyDraft) SanitizedString() string { return s.String() } type SearchKeyHeader struct { Field string Value string } func (s SearchKeyHeader) String() string { return fmt.Sprintf("HEADER %v %v", s.Field, s.Value) } func (s SearchKeyHeader) SanitizedString() string { return fmt.Sprintf("HEADER %v %v", s.Field, sanitizeString(s.Value)) } type SearchKeyLarger struct { Value int } func (s SearchKeyLarger) String() string { return fmt.Sprintf("LARGER %v", s.Value) } func (s SearchKeyLarger) SanitizedString() string { return s.String() } type SearchKeyNot struct { Key SearchKey } func (s SearchKeyNot) String() string { return fmt.Sprintf("NOT (%v)", s.Key.String()) } func (s SearchKeyNot) SanitizedString() string { return fmt.Sprintf("NOT (%v)", s.Key.SanitizedString()) } type SearchKeyOr struct { Key1 SearchKey Key2 SearchKey } func (s SearchKeyOr) String() string { return fmt.Sprintf("NOT ((%v) (%v))", s.Key1.String(), s.Key2.String()) } func (s SearchKeyOr) SanitizedString() string { return fmt.Sprintf("NOT ((%v) (%v))", s.Key1.SanitizedString(), s.Key2.SanitizedString()) } type SearchKeySentBefore struct { Value time.Time } func (s SearchKeySentBefore) String() string { return fmt.Sprintf("SENTBEFORE %v", s.Value) } func (s SearchKeySentBefore) SanitizedString() string { return fmt.Sprintf("SENTBEFORE ") } type SearchKeySentOn struct { Value time.Time } func (s SearchKeySentOn) String() string { return fmt.Sprintf("SENTON %v", s.Value) } func (s SearchKeySentOn) SanitizedString() string { return fmt.Sprintf("SENTON ") } type SearchKeySentSince struct { Value time.Time } func (s SearchKeySentSince) String() string { return fmt.Sprintf("SENTSINCE %v", s.Value) } func (s SearchKeySentSince) SanitizedString() string { return fmt.Sprintf("SENTSINCE ") } type SearchKeySmaller struct { Value int } func (s SearchKeySmaller) String() string { return fmt.Sprintf("SMALLER %v", s.Value) } func (s SearchKeySmaller) SanitizedString() string { return s.String() } type SearchKeyUID struct { SeqSet []SeqRange } func (s SearchKeyUID) String() string { return fmt.Sprintf("UID %v", s.SeqSet) } func (s SearchKeyUID) SanitizedString() string { return s.String() } type SearchKeyUndraft struct{} func (s SearchKeyUndraft) String() string { return "UNDRAFT" } func (s SearchKeyUndraft) SanitizedString() string { return s.String() } type SearchKeyList struct { Keys []SearchKey } func (s SearchKeyList) String() string { return fmt.Sprintf("(%v)", strings.Join(xslices.Map(s.Keys, func(t SearchKey) string { return t.String() }), "")) } func (s SearchKeyList) SanitizedString() string { return fmt.Sprintf("(%v)", strings.Join(xslices.Map(s.Keys, func(t SearchKey) string { return t.SanitizedString() }), "")) } type SearchKeySeqSet struct { SeqSet []SeqRange } func (s SearchKeySeqSet) String() string { return fmt.Sprintf("%v", s.SeqSet) } func (s SearchKeySeqSet) SanitizedString() string { return s.String() } gluon-0.17.0/imap/command/search_test.go000066400000000000000000000361411445200213000201160ustar00rootroot00000000000000package command import ( "bytes" "testing" "time" "unicode/utf8" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" "golang.org/x/text/encoding/htmlindex" ) func buildSearchTestDate(year int, month time.Month, day int) time.Time { return time.Date(year, month, day, 0, 0, 0, 0, time.UTC) } func TestParser_SearchCommandAll(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyAll{}, }, }} input := toIMAPLine(`tag SEARCH ALL`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "search", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_SearchCommandWithCharset(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "UTF-8", Keys: []SearchKey{ &SearchKeyAll{}, }, }} cmd, err := testParseCommand(`tag SEARCH CHARSET UTF-8 ALL`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandWithCharsetInWrongLocation(t *testing.T) { _, err := testParseCommand(`tag SEARCH ALL CHARSET UTF-8`) require.Error(t, err) } func TestParser_SearchCommandAnswered(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyAnswered{}, }, }} cmd, err := testParseCommand(`tag SEARCH ANSWERED`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandBCC(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyBCC{Value: "foobar"}, }, }} cmd, err := testParseCommand(`tag SEARCH BCC foobar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandBefore(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyBefore{Value: buildSearchTestDate(2009, time.January, 01)}, }, }} cmd, err := testParseCommand(`tag SEARCH BEFORE 01-Jan-2009`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandBody(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyBody{Value: "foobar"}, }, }} cmd, err := testParseCommand(`tag SEARCH BODY foobar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandCC(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyCC{Value: "foobar"}, }, }} cmd, err := testParseCommand(`tag SEARCH CC foobar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandDeleted(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyDeleted{}, }, }} cmd, err := testParseCommand(`tag SEARCH DELETED`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandFlagged(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyFlagged{}, }, }} cmd, err := testParseCommand(`tag SEARCH FLAGGED`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandFrom(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyFrom{Value: "foobar"}, }, }} cmd, err := testParseCommand(`tag SEARCH From foobar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandKeyword(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyKeyword{Value: "foobar"}, }, }} cmd, err := testParseCommand(`tag SEARCH KEYWORD foobar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandNew(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyNew{}, }, }} cmd, err := testParseCommand(`tag SEARCH NEW`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandOld(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyOld{}, }, }} cmd, err := testParseCommand(`tag SEARCH OLD`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandRecent(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyRecent{}, }, }} cmd, err := testParseCommand(`tag SEARCH RECENT`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandOn(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyOn{Value: buildSearchTestDate(2009, time.January, 01)}, }, }} cmd, err := testParseCommand(`tag SEARCH ON 01-Jan-2009`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandSince(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeySince{Value: buildSearchTestDate(2009, time.January, 01)}, }, }} cmd, err := testParseCommand(`tag SEARCH SINCE 01-Jan-2009`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandSubject(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeySubject{Value: "foobar"}, }, }} cmd, err := testParseCommand(`tag SEARCH SUBJECT foobar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandText(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyText{Value: "foobar"}, }, }} cmd, err := testParseCommand(`tag SEARCH TEXT foobar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandTo(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyTo{Value: "foobar"}, }, }} cmd, err := testParseCommand(`tag SEARCH TO foobar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandUnanswered(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyUnanswered{}, }, }} cmd, err := testParseCommand(`tag SEARCH UNANSWERED`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandUndeleted(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyUndeleted{}, }, }} cmd, err := testParseCommand(`tag SEARCH UNDELETED`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandUnflagged(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyUnflagged{}, }, }} cmd, err := testParseCommand(`tag SEARCH UNFLAGGED`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandUnseen(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyUnseen{}, }, }} cmd, err := testParseCommand(`tag SEARCH UNSEEN`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandUnkeyword(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyUnkeyword{Value: "foobar"}, }, }} cmd, err := testParseCommand(`tag SEARCH UNKEYWORD foobar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandDraft(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyDraft{}, }, }} cmd, err := testParseCommand(`tag SEARCH DRAFT`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchCommandHeader(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyHeader{Field: "field", Value: "foobar"}, }, }} cmd, err := testParseCommand(`tag SEARCH HEADER field foobar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchLarger(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyLarger{Value: 1024}, }, }} cmd, err := testParseCommand(`tag SEARCH LARGER 1024`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchNot(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyNot{ Key: &SearchKeyLarger{Value: 1024}, }, }, }} cmd, err := testParseCommand(`tag SEARCH NOT LARGER 1024`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchOr(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyOr{ Key1: &SearchKeyLarger{Value: 1024}, Key2: &SearchKeySmaller{Value: 4096}, }, }, }} cmd, err := testParseCommand(`tag SEARCH OR LARGER 1024 SMALLER 4096`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchSentBefore(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeySentBefore{Value: buildSearchTestDate(2009, time.January, 1)}, }, }} cmd, err := testParseCommand(`tag SEARCH SENTBEFORE 01-Jan-2009`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchSentOn(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeySentOn{Value: buildSearchTestDate(2009, time.January, 1)}, }, }} cmd, err := testParseCommand(`tag SEARCH SENTON 01-Jan-2009`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchSentSince(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeySentSince{Value: buildSearchTestDate(2009, time.January, 1)}, }, }} cmd, err := testParseCommand(`tag SEARCH SENTSINCE 01-Jan-2009`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchSmaller(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeySmaller{Value: 512}, }, }} cmd, err := testParseCommand(`tag SEARCH SMALLER 512`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchUID(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyUID{SeqSet: []SeqRange{{Begin: 512, End: 512}}}, }, }} cmd, err := testParseCommand(`tag SEARCH UID 512`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchUndraft(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyUndraft{}, }, }} cmd, err := testParseCommand(`tag SEARCH UNDRAFT`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchMultipleKeys(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyUndraft{}, &SearchKeySubject{Value: "foo"}, &SearchKeySentSince{Value: buildSearchTestDate(2009, time.January, 1)}, }, }} cmd, err := testParseCommand(`tag SEARCH UNDRAFT SUBJECT foo SENTSINCE 01-Jan-2009`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchSeqSet(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeySeqSet{ SeqSet: []SeqRange{ { Begin: 1, End: 2, }, { Begin: SeqNumValueAsterisk, End: SeqNumValueAsterisk, }, }, }, }, }} cmd, err := testParseCommand(`tag SEARCH 1:2,*`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchSeqSetAsteriskFirst(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeySeqSet{ SeqSet: []SeqRange{ { Begin: SeqNumValueAsterisk, End: 1, }, }, }, }, }} cmd, err := testParseCommand(`tag SEARCH *:1`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchList(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyList{ Keys: []SearchKey{ &SearchKeyUndraft{}, &SearchKeySubject{Value: "foo"}, &SearchKeySentSince{Value: buildSearchTestDate(2009, time.January, 1)}, }, }, }, }} cmd, err := testParseCommand(`tag SEARCH (UNDRAFT SUBJECT foo SENTSINCE 01-Jan-2009)`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchListWithCharset(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "UTF-8", Keys: []SearchKey{ &SearchKeyList{ Keys: []SearchKey{ &SearchKeyUndraft{}, &SearchKeySubject{Value: "foo"}, &SearchKeySentSince{Value: buildSearchTestDate(2009, time.January, 1)}, }, }, }, }} cmd, err := testParseCommand(`tag SEARCH CHARSET UTF-8 (UNDRAFT SUBJECT foo SENTSINCE 01-Jan-2009)`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchNestedList(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyList{ Keys: []SearchKey{ &SearchKeyUndraft{}, &SearchKeyList{ Keys: []SearchKey{ &SearchKeySubject{Value: "foo"}, &SearchKeyList{ Keys: []SearchKey{ &SearchKeySeqSet{SeqSet: []SeqRange{{Begin: 1, End: 2}}}, }, }, }, }, }, }, }, }} cmd, err := testParseCommand(`tag SEARCH (UNDRAFT (SUBJECT foo (1:2)))`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_SearchUtf8String(t *testing.T) { expected := Command{Tag: "tag", Payload: &Search{ Charset: "UTF-8", Keys: []SearchKey{ &SearchKeySubject{Value: "割ゃã¡ã¨ãŸç´€åˆ¥ãƒãƒŽãƒ›ã‚³éš é¢ãƒŽ"}, }, }} cmd, err := testParseCommand(`tag SEARCH CHARSET UTF-8 SUBJECT "割ゃã¡ã¨ãŸç´€åˆ¥ãƒãƒŽãƒ›ã‚³éš é¢ãƒŽ"`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_Search_ISO_8859_1_String(t *testing.T) { // Encode "ééé" as ISO-8859-1. text := enc("ééé", "ISO-8859-1") textWithQuotes := enc(`"ééé"`, "ISO-8859-1") // Assert that text is no longer valid UTF-8. require.False(t, utf8.Valid(text)) require.False(t, utf8.Valid(textWithQuotes)) expected := Command{Tag: "tag", Payload: &Search{ Charset: "ISO-8859-1", Keys: []SearchKey{ &SearchKeySubject{Value: string(text)}, }, }} cmd, err := testParseCommand(`tag SEARCH CHARSET ISO-8859-1 SUBJECT ` + string(textWithQuotes)) require.NoError(t, err) require.Equal(t, expected, cmd) } func enc(text, encoding string) []byte { enc, err := htmlindex.Get(encoding) if err != nil { panic(err) } b, err := enc.NewEncoder().Bytes([]byte(text)) if err != nil { panic(err) } return b } gluon-0.17.0/imap/command/select.go000066400000000000000000000012751445200213000170710ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Select struct { Mailbox string } func (l Select) String() string { return fmt.Sprintf("SELECT '%v'", l.Mailbox) } func (l Select) SanitizedString() string { return fmt.Sprintf("SELECT '%v'", sanitizeString(l.Mailbox)) } type SelectCommandParser struct{} func (SelectCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // select = "SELECT" SP mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } return &Select{ Mailbox: mailbox.Value, }, nil } gluon-0.17.0/imap/command/select_test.go000066400000000000000000000010361445200213000201230ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_SelectCommand(t *testing.T) { input := toIMAPLine(`tag SELECT INBOX`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Select{ Mailbox: "INBOX", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "select", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/seq_set.go000066400000000000000000000036671445200213000172640ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) const SeqNumValueAsterisk = SeqNum(0) type SeqNum int func (s SeqNum) IsAsterisk() bool { return s == SeqNumValueAsterisk } func (s SeqNum) String() string { if s.IsAsterisk() { return "*" } return fmt.Sprintf("%v", int(s)) } type SeqRange struct { Begin SeqNum End SeqNum } func (s SeqRange) String() string { return fmt.Sprintf("%v:%v", s.Begin.String(), s.End.String()) } func ParseNZNumber(p *rfcparser.Parser) (int, error) { num, err := p.ParseNumber() if err != nil { return 0, err } if num <= 0 { return 0, p.MakeError("expected non zero number") } return num, nil } func ParseSeqNumber(p *rfcparser.Parser) (SeqNum, error) { if ok, err := p.Matches(rfcparser.TokenTypeAsterisk); err != nil { return -1, err } else if ok { return SeqNumValueAsterisk, nil } num, err := ParseNZNumber(p) if err != nil { return -1, err } return SeqNum(num), nil } func ParseSeqRange(p *rfcparser.Parser) (SeqRange, error) { seqBegin, err := ParseSeqNumber(p) if err != nil { return SeqRange{}, err } if ok, err := p.Matches(rfcparser.TokenTypeColon); err != nil { return SeqRange{}, err } else if !ok { return SeqRange{ Begin: seqBegin, End: seqBegin, }, nil } seqEnd, err := ParseSeqNumber(p) if err != nil { return SeqRange{}, err } return SeqRange{ Begin: seqBegin, End: seqEnd, }, nil } func ParseSeqSet(p *rfcparser.Parser) ([]SeqRange, error) { // sequence-set = (seq-number / seq-range) *("," sequence-set) var result []SeqRange { firstRange, err := ParseSeqRange(p) if err != nil { return nil, err } result = append(result, firstRange) } for { if ok, err := p.Matches(rfcparser.TokenTypeComma); err != nil { return nil, err } else if !ok { break } next, err := ParseSeqRange(p) if err != nil { return nil, err } result = append(result, next) } return result, nil } gluon-0.17.0/imap/command/seq_set_test.go000066400000000000000000000013231445200213000203060ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParseSeqSet(t *testing.T) { input := []byte(`1:*,*,20,40:30`) expected := []SeqRange{ { Begin: SeqNum(1), End: SeqNumValueAsterisk, }, { Begin: SeqNumValueAsterisk, End: SeqNumValueAsterisk, }, { Begin: SeqNum(20), End: SeqNum(20), }, { Begin: SeqNum(40), End: SeqNum(30), }, } p := rfcparser.NewParser(rfcparser.NewScanner(bytes.NewReader(input))) // Advance at least once to prepare first token. err := p.Advance() require.NoError(t, err) dt, err := ParseSeqSet(p) require.NoError(t, err) require.Equal(t, expected, dt) } gluon-0.17.0/imap/command/starttls.go000066400000000000000000000006001445200213000174610ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type StartTLS struct{} func (l StartTLS) String() string { return fmt.Sprintf("STARTTLS") } func (l StartTLS) SanitizedString() string { return l.String() } type StartTLSCommandParser struct{} func (StartTLSCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { return &StartTLS{}, nil } gluon-0.17.0/imap/command/starttls_test.go000066400000000000000000000010121445200213000205160ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_StartTLSCommand(t *testing.T) { input := toIMAPLine(`tag STARTTLS`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &StartTLS{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "starttls", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/status.go000066400000000000000000000057001445200213000171320ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" "github.com/bradenaw/juniper/xslices" ) type StatusAttribute int const ( StatusAttributeMessages StatusAttribute = iota StatusAttributeRecent StatusAttributeUIDNext StatusAttributeUIDValidity StatusAttributeUnseen ) func (s StatusAttribute) String() string { switch s { case StatusAttributeRecent: return "RECENT" case StatusAttributeMessages: return "MESSAGES" case StatusAttributeUIDNext: return "UIDNEXT" case StatusAttributeUIDValidity: return "UIDVALIDITY" case StatusAttributeUnseen: return "UNSEEN" default: return "UNKNOWN" } } type Status struct { Mailbox string Attributes []StatusAttribute } func (s Status) String() string { return fmt.Sprintf("Status '%v' '%v'", s.Mailbox, xslices.Map(s.Attributes, func(s StatusAttribute) string { return s.String() })) } func (s Status) SanitizedString() string { return s.String() } type StatusCommandParser struct{} func (StatusCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { //status = "STATUS" SP mailbox SP // "(" status-att *(SP status-att) ")" if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after mailbox"); err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeLParen, "expected ( for status attributes start"); err != nil { return nil, err } var attributes []StatusAttribute // First attribute. { attr, err := parseStatusAttribute(p) if err != nil { return nil, err } attributes = append(attributes, attr) } // Remaining. for { if ok, err := p.Matches(rfcparser.TokenTypeSP); err != nil { return nil, err } else if !ok { break } attr, err := parseStatusAttribute(p) if err != nil { return nil, err } attributes = append(attributes, attr) } if err := p.Consume(rfcparser.TokenTypeRParen, "expected ) for status attributes end"); err != nil { return nil, err } return &Status{ Mailbox: mailbox.Value, Attributes: attributes, }, nil } func parseStatusAttribute(p *rfcparser.Parser) (StatusAttribute, error) { //status-att = "MESSAGES" / "RECENT" / "UIDNEXT" / "UIDVALIDITY" / // "UNSEEN" attribute, err := p.CollectBytesWhileMatches(rfcparser.TokenTypeChar) if err != nil { return 0, err } attributeStr := attribute.IntoString().ToLower() switch attributeStr.Value { case "messages": return StatusAttributeMessages, nil case "recent": return StatusAttributeRecent, nil case "uidnext": return StatusAttributeUIDNext, nil case "uidvalidity": return StatusAttributeUIDValidity, nil case "unseen": return StatusAttributeUnseen, nil default: return 0, p.MakeErrorAtOffset(fmt.Sprintf("unknown status attribute '%v'", attributeStr), attributeStr.Offset) } } gluon-0.17.0/imap/command/status_test.go000066400000000000000000000042071445200213000201720ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_StatusCommandRecent(t *testing.T) { expected := Command{Tag: "tag", Payload: &Status{ Mailbox: "INBOX", Attributes: []StatusAttribute{StatusAttributeRecent}, }} input := toIMAPLine(`tag STATUS INBOX (RECENT)`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "status", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_StatusCommandMessages(t *testing.T) { expected := Command{Tag: "tag", Payload: &Status{ Mailbox: "Foo", Attributes: []StatusAttribute{StatusAttributeRecent}, }} cmd, err := testParseCommand(`tag STATUS Foo (RECENT)`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_StatusCommandUIDNext(t *testing.T) { expected := Command{Tag: "tag", Payload: &Status{ Mailbox: "Foo", Attributes: []StatusAttribute{StatusAttributeUIDNext}, }} cmd, err := testParseCommand(`tag STATUS Foo (UIDNEXT)`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_StatusCommandUIDValidity(t *testing.T) { expected := Command{Tag: "tag", Payload: &Status{ Mailbox: "Foo", Attributes: []StatusAttribute{StatusAttributeUIDValidity}, }} cmd, err := testParseCommand(`tag STATUS Foo (UIDVALIDITY)`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_StatusCommandUnseen(t *testing.T) { expected := Command{Tag: "tag", Payload: &Status{ Mailbox: "Foo", Attributes: []StatusAttribute{StatusAttributeUnseen}, }} cmd, err := testParseCommand(`tag STATUS Foo (UNSEEN)`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_StatusCommandMultiple(t *testing.T) { expected := Command{Tag: "tag", Payload: &Status{ Mailbox: "Foo", Attributes: []StatusAttribute{StatusAttributeUnseen, StatusAttributeRecent}, }} cmd, err := testParseCommand(`tag STATUS Foo (UNSEEN RECENT)`) require.NoError(t, err) require.Equal(t, expected, cmd) } gluon-0.17.0/imap/command/store.go000066400000000000000000000055511445200213000167470ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type StoreAction int const ( StoreActionAddFlags StoreAction = iota StoreActionRemFlags StoreActionSetFlags ) func (s StoreAction) String() string { switch s { case StoreActionAddFlags: return "+FLAGS" case StoreActionRemFlags: return "+FLAGS" case StoreActionSetFlags: return "FLAGS" default: return "UNKNOWN" } } type Store struct { SeqSet []SeqRange Action StoreAction Flags []string Silent bool } func (s Store) String() string { silentStr := "" if s.Silent { silentStr = ".SILENT" } return fmt.Sprintf("STORE %v%v %v", s.Action.String(), silentStr, s.Flags) } func (s Store) SanitizedString() string { return s.String() } type StoreCommandParser struct{} func (StoreCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { //nolint:dupword // store = "STORE" SP sequence-set SP store-att-flags // store-att-flags = (["+" / "-"] "FLAGS" [".SILENT"]) SP // (flag-list / (flag *(SP flag))) if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } seqSet, err := ParseSeqSet(p) if err != nil { return nil, err } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after sequence set"); err != nil { return nil, err } var action StoreAction if ok, err := p.Matches(rfcparser.TokenTypePlus); err != nil { return nil, err } else if !ok { if ok, err := p.Matches(rfcparser.TokenTypeMinus); err != nil { return nil, err } else if ok { action = StoreActionRemFlags } else { action = StoreActionSetFlags } } else { action = StoreActionAddFlags } if err := p.ConsumeBytesFold('F', 'L', 'A', 'G', 'S'); err != nil { return nil, err } var silent bool if ok, err := p.Matches(rfcparser.TokenTypePeriod); err != nil { return nil, err } else if ok { if err := p.ConsumeBytesFold('S', 'I', 'L', 'E', 'N', 'T'); err != nil { return nil, err } silent = true } if err := p.Consume(rfcparser.TokenTypeSP, "expected space after FLAGS"); err != nil { return nil, err } flags, err := parseStoreFlags(p) if err != nil { return nil, err } return &Store{ SeqSet: seqSet, Action: action, Flags: flags, Silent: silent, }, nil } func parseStoreFlags(p *rfcparser.Parser) ([]string, error) { // (flag-list / (flag *(SP flag))) fl, ok, err := TryParseFlagList(p) if err != nil { return nil, err } else if ok { return fl, nil } var flags []string // first flag. { f, err := ParseFlag(p) if err != nil { return nil, err } flags = append(flags, f) } // remaining. for { if ok, err := p.Matches(rfcparser.TokenTypeSP); err != nil { return nil, err } else if !ok { break } f, err := ParseFlag(p) if err != nil { return nil, err } flags = append(flags, f) } return flags, nil } gluon-0.17.0/imap/command/store_test.go000066400000000000000000000047031445200213000200040ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_StoreCommandSetFlags(t *testing.T) { input := toIMAPLine(`tag STORE 1 FLAGS Foo`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Store{ SeqSet: []SeqRange{{ Begin: 1, End: 1, }}, Action: StoreActionSetFlags, Flags: []string{"Foo"}, Silent: false, }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "store", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_StoreCommandAddFlags(t *testing.T) { expected := Command{Tag: "tag", Payload: &Store{ SeqSet: []SeqRange{{ Begin: 1, End: 1, }}, Action: StoreActionAddFlags, Flags: []string{"Foo"}, Silent: false, }} cmd, err := testParseCommand(`tag STORE 1 +FLAGS Foo`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_StoreCommandRemoveFlags(t *testing.T) { expected := Command{Tag: "tag", Payload: &Store{ SeqSet: []SeqRange{{ Begin: 1, End: 1, }}, Action: StoreActionRemFlags, Flags: []string{"Foo"}, Silent: false, }} cmd, err := testParseCommand(`tag STORE 1 -FLAGS Foo`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_StoreCommandSilent(t *testing.T) { expected := Command{Tag: "tag", Payload: &Store{ SeqSet: []SeqRange{{ Begin: 1, End: 1, }}, Action: StoreActionAddFlags, Flags: []string{"Foo"}, Silent: true, }} cmd, err := testParseCommand(`tag STORE 1 +FLAGS.SILENT Foo`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_StoreCommandMultipleFlags(t *testing.T) { expected := Command{Tag: "tag", Payload: &Store{ SeqSet: []SeqRange{{ Begin: 1, End: 1, }}, Action: StoreActionAddFlags, Flags: []string{"Foo", "Bar"}, Silent: true, }} cmd, err := testParseCommand(`tag STORE 1 +FLAGS.SILENT Foo Bar`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_StoreCommandMultipleFlagsWithParen(t *testing.T) { expected := Command{Tag: "tag", Payload: &Store{ SeqSet: []SeqRange{{ Begin: 1, End: 1, }}, Action: StoreActionAddFlags, Flags: []string{"Foo", "Bar"}, Silent: true, }} cmd, err := testParseCommand(`tag STORE 1 +FLAGS.SILENT (Foo Bar)`) require.NoError(t, err) require.Equal(t, expected, cmd) } gluon-0.17.0/imap/command/subscribe.go000066400000000000000000000013331445200213000175660ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Subscribe struct { Mailbox string } func (l Subscribe) String() string { return fmt.Sprintf("SUBSCRIBE '%v'", l.Mailbox) } func (l Subscribe) SanitizedString() string { return fmt.Sprintf("SUBSCRIBE '%v'", sanitizeString(l.Mailbox)) } type SubscribeCommandParser struct{} func (SubscribeCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // subscribe = "SUBSCRIBE" SP mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } return &Subscribe{ Mailbox: mailbox.Value, }, nil } gluon-0.17.0/imap/command/subscribte_test.go000066400000000000000000000010521445200213000210070ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_SubscribeCommand(t *testing.T) { input := toIMAPLine(`tag SUBSCRIBE INBOX`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Subscribe{ Mailbox: "INBOX", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "subscribe", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/uid.go000066400000000000000000000042511445200213000163700ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type UID struct { Command Payload } func (l UID) String() string { return fmt.Sprintf("UID %v", l.Command.String()) } func (l UID) SanitizedString() string { return fmt.Sprintf("UID %v", l.Command.SanitizedString()) } type UIDCommandParser struct { commands map[string]Builder } func NewUIDCommandParser() *UIDCommandParser { return &UIDCommandParser{ commands: map[string]Builder{ "copy": &CopyCommandParser{}, "fetch": &FetchCommandParser{}, "search": &SearchCommandParser{}, "move": &MoveCommandParser{}, "store": &StoreCommandParser{}, }} } func (u *UIDCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // uid = "UID" SP (copy / fetch / search / store) // uidExpunge = "UID" SP "EXPUNGE" if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } var commandBytes []byte offset := p.PreviousToken().Offset for { if ok, err := p.Matches(rfcparser.TokenTypeChar); err != nil { return nil, err } else if ok { commandBytes = append(commandBytes, rfcparser.ByteToLower(p.PreviousToken().Value)) } else { break } } command := string(commandBytes) // Special case to handle uid expunge extension if command == "expunge" { return UIDExpungeCommandParser{}.FromParser(p) } builder, ok := u.commands[command] if !ok { return nil, p.MakeErrorAtOffset(fmt.Sprintf("unknown uid command '%v'", command), offset) } payload, err := builder.FromParser(p) if err != nil { return nil, err } return &UID{ Command: payload, }, nil } type UIDExpunge struct { SeqSet []SeqRange } func (l UIDExpunge) String() string { return fmt.Sprintf("UID EXPUNGE %v", l.SeqSet) } func (l UIDExpunge) SanitizedString() string { return l.String() } type UIDExpungeCommandParser struct{} func (UIDExpungeCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } seqSet, err := ParseSeqSet(p) if err != nil { return nil, err } return &UIDExpunge{SeqSet: seqSet}, nil } gluon-0.17.0/imap/command/uid_test.go000066400000000000000000000047121445200213000174310ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_UIDCommandCopy(t *testing.T) { input := toIMAPLine(`tag UID COPY 1:* INBOX`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{ Tag: "tag", Payload: &UID{ Command: &Copy{ Mailbox: "INBOX", SeqSet: []SeqRange{{Begin: 1, End: SeqNumValueAsterisk}}, }, }, } cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "uid", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } func TestParser_UIDCommandMove(t *testing.T) { expected := Command{ Tag: "tag", Payload: &UID{ Command: &Move{ Mailbox: "INBOX", SeqSet: []SeqRange{{Begin: 1, End: SeqNumValueAsterisk}}, }, }, } cmd, err := testParseCommand(`tag UID MOVE 1:* INBOX`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_UIDCommandStore(t *testing.T) { expected := Command{ Tag: "tag", Payload: &UID{ Command: &Store{ SeqSet: []SeqRange{{ Begin: 1, End: 1, }}, Action: StoreActionAddFlags, Flags: []string{"Foo", "Bar"}, Silent: true, }, }, } cmd, err := testParseCommand(`tag UID STORE 1 +FLAGS.SILENT (Foo Bar)`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_UIDCommandExpunge(t *testing.T) { expected := Command{ Tag: "tag", Payload: &UIDExpunge{ SeqSet: []SeqRange{{Begin: 1, End: SeqNumValueAsterisk}}, }, } cmd, err := testParseCommand(`tag UID EXPUNGE 1:*`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_UIDCommandFetch(t *testing.T) { expected := Command{ Tag: "tag", Payload: &UID{ Command: &Fetch{ SeqSet: []SeqRange{{Begin: 1, End: 1}}, Attributes: []FetchAttribute{ &FetchAttributeFast{}, }, }, }, } cmd, err := testParseCommand(`tag UID FETCH 1 FAST`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_UIDCommandSearch(t *testing.T) { expected := Command{ Tag: "tag", Payload: &UID{ Command: &Search{ Charset: "", Keys: []SearchKey{ &SearchKeyAnswered{}, }, }, }, } cmd, err := testParseCommand(`tag UID SEARCH ANSWERED`) require.NoError(t, err) require.Equal(t, expected, cmd) } func TestParser_UIDCommandInvalid(t *testing.T) { _, err := testParseCommand(`tag UID LIST`) require.Error(t, err) } gluon-0.17.0/imap/command/unselect.go000066400000000000000000000006001445200213000174230ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Unselect struct{} func (l Unselect) String() string { return fmt.Sprintf("UNSELECT") } func (l Unselect) SanitizedString() string { return l.String() } type UnselectCommandParser struct{} func (UnselectCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { return &Unselect{}, nil } gluon-0.17.0/imap/command/unselect_test.go000066400000000000000000000010121445200213000204600ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_UnselectCommand(t *testing.T) { input := toIMAPLine(`tag UNSELECT`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Unselect{}} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "unselect", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/command/unsubscribe.go000066400000000000000000000013571445200213000201370ustar00rootroot00000000000000package command import ( "fmt" "github.com/ProtonMail/gluon/rfcparser" ) type Unsubscribe struct { Mailbox string } func (l Unsubscribe) String() string { return fmt.Sprintf("UNSUBSCRIBE '%v'", l.Mailbox) } func (l Unsubscribe) SanitizedString() string { return fmt.Sprintf("UNSUBSCRIBE '%v'", sanitizeString(l.Mailbox)) } type UnsubscribeCommandParser struct{} func (UnsubscribeCommandParser) FromParser(p *rfcparser.Parser) (Payload, error) { // unsubscribe = "UNSUBSCRIBE" SP mailbox if err := p.Consume(rfcparser.TokenTypeSP, "expected space after command"); err != nil { return nil, err } mailbox, err := ParseMailbox(p) if err != nil { return nil, err } return &Unsubscribe{ Mailbox: mailbox.Value, }, nil } gluon-0.17.0/imap/command/unsubscribe_test.go000066400000000000000000000010621445200213000211670ustar00rootroot00000000000000package command import ( "bytes" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/require" ) func TestParser_UnsubscribeCommand(t *testing.T) { input := toIMAPLine(`tag UNSUBSCRIBE INBOX`) s := rfcparser.NewScanner(bytes.NewReader(input)) p := NewParser(s) expected := Command{Tag: "tag", Payload: &Unsubscribe{ Mailbox: "INBOX", }} cmd, err := p.Parse() require.NoError(t, err) require.Equal(t, expected, cmd) require.Equal(t, "unsubscribe", p.LastParsedCommand()) require.Equal(t, "tag", p.LastParsedTag()) } gluon-0.17.0/imap/envelope.go000066400000000000000000000041051445200213000160040ustar00rootroot00000000000000package imap import ( "net/mail" "strings" "github.com/ProtonMail/gluon/rfc5322" "github.com/ProtonMail/gluon/rfc822" "github.com/sirupsen/logrus" ) func Envelope(header *rfc822.Header) (string, error) { builder := strings.Builder{} writer := singleParListWriter{b: &builder} paramList := newParamListWithoutGroup() if err := envelope(header, ¶mList, &writer); err != nil { return "", err } return builder.String(), nil } func envelope(header *rfc822.Header, c *paramList, writer parListWriter) error { fields := c.newChildList(writer) defer fields.finish(writer) fields. addString(writer, header.Get("Date")). addString(writer, header.Get("Subject")) if v, ok := header.GetChecked("From"); !ok { fields.addString(writer, "") } else { fields.addAddresses(writer, tryParseAddressList(v)) } if v, ok := header.GetChecked("Sender"); ok { fields.addAddresses(writer, tryParseAddressList(v)) } else if v, ok := header.GetChecked("From"); ok { fields.addAddresses(writer, tryParseAddressList(v)) } else { fields.addString(writer, "") } if v, ok := header.GetChecked("Reply-To"); ok { fields.addAddresses(writer, tryParseAddressList(v)) } else if v, ok := header.GetChecked("From"); ok { fields.addAddresses(writer, tryParseAddressList(v)) } else { fields.addString(writer, "") } if v, ok := header.GetChecked("To"); !ok { fields.addString(writer, "") } else { fields.addAddresses(writer, tryParseAddressList(v)) } if v, ok := header.GetChecked("Cc"); !ok { fields.addString(writer, "") } else { fields.addAddresses(writer, tryParseAddressList(v)) } if v, ok := header.GetChecked("Bcc"); !ok { fields.addString(writer, "") } else { fields.addAddresses(writer, tryParseAddressList(v)) } fields.addString(writer, header.Get("In-Reply-To")) fields.addString(writer, header.Get("Message-Id")) return nil } func tryParseAddressList(val string) []*mail.Address { addr, err := rfc5322.ParseAddressList(val) if err != nil { logrus.WithError(err).Error("Failed to parse address") return []*mail.Address{{Name: val}} } return addr } gluon-0.17.0/imap/envelope_test.go000066400000000000000000000015131445200213000170430ustar00rootroot00000000000000package imap_test import ( "os" "testing" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/rfc822" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestEnvelope(t *testing.T) { b, err := os.ReadFile("testdata/envelope.eml") require.NoError(t, err) root := rfc822.Parse(b) header, err := root.ParseHeader() require.NoError(t, err) envelope, err := imap.Envelope(header) require.NoError(t, err) assert.Equal(t, "(\"Sat, 03 Apr 2021 15:13:53 +0000\" \"this is currently a draft\" ((NIL NIL \"somebody\" \"pm.me\")) ((NIL NIL \"somebody\" \"pm.me\")) ((NIL NIL \"somebody\" \"pm.me\")) ((\"Somebody\" NIL \"somebody\" \"pm.me\")) NIL NIL NIL \"\")", envelope) } gluon-0.17.0/imap/flags.go000066400000000000000000000112351445200213000152650ustar00rootroot00000000000000package imap import ( "strings" "github.com/bradenaw/juniper/xslices" "golang.org/x/exp/maps" "golang.org/x/exp/slices" ) const ( FlagSeen = `\Seen` FlagAnswered = `\Answered` FlagFlagged = `\Flagged` FlagDeleted = `\Deleted` FlagDraft = `\Draft` FlagRecent = `\Recent` // Read-only!. ) const ( FlagSeenLowerCase = `\seen` FlagAnsweredLowerCase = `\answered` FlagFlaggedLowerCase = `\flagged` FlagDeletedLowerCase = `\deleted` FlagDraftLowerCase = `\draft` FlagRecentLowerCase = `\recent` // Read-only!. ) // FlagSet represents a set of IMAP flags. Flags are case-insensitive and no duplicates are allowed. type FlagSet map[string]string // NewFlagSet creates a flag set containing the specified flags. func NewFlagSet(flags ...string) FlagSet { fs := NewFlagSetWithCapacity(len(flags)) for _, item := range flags { fs.add(item) } return fs } func NewFlagSetWithCapacity(capacity int) FlagSet { return make(FlagSet, capacity) } // NewFlagSetFromSlice creates a flag set containing the flags from a slice. func NewFlagSetFromSlice(flags []string) FlagSet { return NewFlagSet(flags...) } // Len returns the number of flags in the flag set. func (fs FlagSet) Len() int { return len(fs) } // ToSlice Returns the list of flags in the set as a sorted string slice. The returned list is a hard copy of the internal // slice to avoid direct modifications of the FlagSet value that would break the uniqueness and case insensitivity rules. func (fs FlagSet) ToSlice() []string { flags := maps.Values(fs) slices.Sort(flags) return flags } // ToSliceUnsorted is the same as ToSlice, but does not sort the returned value. func (fs FlagSet) ToSliceUnsorted() []string { return maps.Values(fs) } // Contains returns true if and only if the flag is in the set. func (fs FlagSet) Contains(flag string) bool { _, ok := fs[strings.ToLower(flag)] return ok } // ContainsUnchecked returns true if and only if the flag is in the set. The flag is not converted to lower case. This // is useful for cases where we need to check flags in bulk. func (fs FlagSet) ContainsUnchecked(flag string) bool { _, ok := fs[flag] return ok } // ContainsAny returns true if and only if any of the flags are in the set. func (fs FlagSet) ContainsAny(flags ...string) bool { return xslices.IndexFunc(flags, func(f string) bool { return fs.Contains(f) }) >= 0 } // ContainsAll returns true if and only if all of the flags are in the set. func (fs FlagSet) ContainsAll(flags ...string) bool { return xslices.IndexFunc(flags, func(f string) bool { return !fs.Contains(f) }) < 0 } // Equals returns true if and only if the two sets are equal (same number of elements and each element of fs is also in otherFs). func (fs FlagSet) Equals(otherFs FlagSet) bool { if fs.Len() != otherFs.Len() { return false } for key := range fs { if _, ok := otherFs[key]; !ok { return false } } return true } // Add adds new flags to the flag set. The function returns false iff no flags was actually added because they're already in the set. // The case of existing elements is preserved. func (fs FlagSet) Add(flags ...string) FlagSet { f := fs.Clone() f.add(flags...) return f } func (fs FlagSet) AddToSelf(flags ...string) { fs.add(flags...) } func (fs FlagSet) AddFlagSet(set FlagSet) FlagSet { return fs.Add(maps.Values(set)...) } func (fs FlagSet) AddFlagSetToSelf(set FlagSet) { fs.add(maps.Values(set)...) } func (fs FlagSet) add(flags ...string) { for _, flag := range flags { flagLower := strings.ToLower(flag) if fs.ContainsUnchecked(flagLower) { continue } fs[flagLower] = flag } } // Set ensures the flagset either contains or does not contain the given flag. func (fs FlagSet) Set(flag string, on bool) FlagSet { if on { return fs.Add(flag) } else { return fs.Remove(flag) } } // SetOnSelf ensures the flagset either contains or does not contain the given flag. func (fs FlagSet) SetOnSelf(flag string, on bool) { if on { fs.AddToSelf(flag) } else { fs.RemoveFromSelf(flag) } } func (fs FlagSet) Remove(flags ...string) FlagSet { f := fs.Clone() f.remove(flags...) return f } func (fs FlagSet) RemoveFlagSet(set FlagSet) FlagSet { return fs.Remove(maps.Values(set)...) } func (fs FlagSet) RemoveFromSelf(flags ...string) { fs.remove(flags...) } func (fs FlagSet) RemoveFlagSetFromSelf(set FlagSet) { fs.Remove(maps.Values(set)...) } func (fs FlagSet) remove(flags ...string) { for _, flag := range flags { flagLower := strings.ToLower(flag) if !fs.ContainsUnchecked(flagLower) { continue } delete(fs, flagLower) } } // Clone creates a hard copy of the flag set. func (fs FlagSet) Clone() FlagSet { return NewFlagSetFromSlice(fs.ToSlice()) } gluon-0.17.0/imap/flags_test.go000066400000000000000000000073511445200213000163300ustar00rootroot00000000000000package imap import ( "testing" "github.com/stretchr/testify/require" ) func TestNewFlagSet(t *testing.T) { fs := NewFlagSet() require.Equal(t, 0, fs.Len()) fs = NewFlagSet("flag1") require.Equal(t, 1, fs.Len()) require.ElementsMatch(t, fs.ToSlice(), []string{"flag1"}) fs = NewFlagSet("flag1", "flag1", "FLAG1") require.Equal(t, 1, fs.Len()) require.ElementsMatch(t, fs.ToSlice(), []string{"flag1"}) fs = NewFlagSet("flag1", "FLAG2", "flag2", "FLAG1") require.Equal(t, 2, fs.Len()) require.ElementsMatch(t, fs.ToSlice(), []string{"flag1", "FLAG2"}) } func TestFlagSet_Contains(t *testing.T) { fs := NewFlagSet("flag1", "flag2", "flag3", "flag4") require.Equal(t, 4, fs.Len()) require.False(t, NewFlagSet().Contains("flag1")) require.True(t, fs.Contains("flag1")) require.True(t, fs.Contains("FLAG1")) require.True(t, fs.Contains("flAg2")) require.True(t, fs.Contains("flag3")) require.True(t, fs.Contains("flag4")) require.False(t, fs.Contains("flag5")) require.False(t, fs.Contains("flag4 ")) require.False(t, fs.Contains("")) } func TestFlagSet_Len(t *testing.T) { require.Equal(t, 0, NewFlagSet().Len()) fs := NewFlagSet("flag1", "flag2") require.Equal(t, 2, fs.Len()) fs = NewFlagSet("flag1", "flag2", "flag3", "FLAG2") require.Equal(t, 3, fs.Len()) } func TestFlagSet_ToSlice(t *testing.T) { require.True(t, len(NewFlagSet().ToSlice()) == 0) fs := NewFlagSet("flag1", "flag2", "FLAG2", "flag3") require.True(t, len(fs.ToSlice()) == 3) // Check that we return a hard copy. fs = NewFlagSet("flag1", "flag2", "flag3") sl := fs.ToSlice() require.Equal(t, 3, len(sl)) // Modify something in the returned slice. sl[0] = "flag2" // It should not be modified in the original flag set. require.Equal(t, "flag1", fs.ToSlice()[0]) } func TestFlagSet_Equals(t *testing.T) { // Empty sets are equal. require.True(t, NewFlagSet().Equals(NewFlagSet())) // Empty set is not equal to nonempty set. require.False(t, NewFlagSet().Equals(NewFlagSet("flag1"))) fs := NewFlagSet("flag1", "flag2", "flag3") require.True(t, fs.Equals(fs)) require.True(t, fs.Equals(NewFlagSet("flag3", "flag2", "flag1"))) require.True(t, fs.Equals(NewFlagSet("FLAG3", "FLAG2", "FLAG1"))) require.False(t, fs.Equals(NewFlagSet("flag3", "flag2"))) } func TestFlagSet_Add(t *testing.T) { var ( fs = NewFlagSet() fs1 = NewFlagSet("flag1") ) fs = fs.Add("flag1") require.True(t, fs.Equals(fs1)) fs = fs.Add() require.True(t, fs.Equals(NewFlagSet("flag1"))) fs = fs.Add("flag1") require.True(t, fs.Equals(NewFlagSet("flag1"))) fs = fs.Add("FLAG1") require.ElementsMatch(t, fs.ToSlice(), []string{"flag1"}) fs = fs.Add("flag2", "flag3") require.ElementsMatch(t, fs.ToSlice(), []string{"flag3", "flag2", "flag1"}) fs = fs.AddFlagSet(NewFlagSet("flag4", "FLAG3")) require.ElementsMatch(t, fs.ToSlice(), []string{"flag1", "flag2", "flag3", "flag4"}) } func TestFlagSet_Toggle(t *testing.T) { fs := NewFlagSet("flag1", "flag2") fs = fs.Set("flag1", true) require.True(t, fs.Equals(NewFlagSet("flag1", "flag2"))) fs = fs.Set("flag1", false) require.True(t, fs.Equals(NewFlagSet("flag2"))) fs = fs.Set("flag3", false) require.True(t, fs.Equals(NewFlagSet("flag2"))) fs = fs.Set("flag3", true) require.True(t, fs.Equals(NewFlagSet("flag2", "flag3"))) fs = fs.Set("flag3", false) require.True(t, fs.Equals(NewFlagSet("flag2"))) } func TestFlagSet_Remove(t *testing.T) { fs := NewFlagSet("flag1", "flag2", "flag3", "flag4") fs = fs.Remove() require.ElementsMatch(t, fs.ToSlice(), []string{"flag1", "flag2", "flag3", "flag4"}) fs = fs.Remove("flag4") require.ElementsMatch(t, fs.ToSlice(), []string{"flag3", "flag2", "flag1"}) fs = fs.RemoveFlagSet(NewFlagSet("FLAG3", "flag4")) require.ElementsMatch(t, fs.ToSlice(), []string{"flag1", "flag2"}) } gluon-0.17.0/imap/id.go000066400000000000000000000064771445200213000146010ustar00rootroot00000000000000package imap import ( "context" "encoding/gob" "fmt" "runtime" "strings" "github.com/ProtonMail/gluon/version" ) const ( IDKeyName = "name" IDKeyVersion = "version" IDKeyOS = "os" IdKeyOSVersion = "os-version" IDKeyVendor = "vendor" IDKeySupportURL = "support-url" IDKeyAddress = "address" IDKeyDate = "date" IDKeyCommand = "command" IDKeyArguments = "arguments" IDKeyEnvironment = "environment" IMAPIDConnMetadataKey = "rfc2971-id" ) // IMAPID represents the RFC 2971 IMAP IMAPID Extension. This information can be retrieved by the connector at the context // level. To do so please use the provided GetIMAPIDFromContext() function. type IMAPID struct { Name string Version string OS string OSVersion string Vendor string SupportURL string Address string Date string Command string Arguments string Environment string Other map[string]string } func NewIMAPID() IMAPID { return IMAPID{ Name: "Unknown", Version: "Unknown", OS: "Unknown", OSVersion: "Unknown", Vendor: "Unknown", SupportURL: "", Address: "", Date: "", Command: "", Arguments: "", Environment: "", Other: make(map[string]string), } } func (id *IMAPID) String() string { var values []string writeIfNotEmpty := func(key string, value string) { if len(value) != 0 { values = append(values, fmt.Sprintf(`"%v" "%v"`, key, value)) } } writeIfNotEmpty(IDKeyName, id.Name) writeIfNotEmpty(IDKeyVersion, id.Version) writeIfNotEmpty(IDKeyOS, id.OS) writeIfNotEmpty(IdKeyOSVersion, id.OSVersion) writeIfNotEmpty(IDKeyVendor, id.Vendor) writeIfNotEmpty(IDKeySupportURL, id.SupportURL) writeIfNotEmpty(IDKeyAddress, id.Address) writeIfNotEmpty(IDKeyDate, id.Date) writeIfNotEmpty(IDKeyCommand, id.Command) writeIfNotEmpty(IDKeyArguments, id.Arguments) writeIfNotEmpty(IDKeyEnvironment, id.Environment) for k, v := range id.Other { writeIfNotEmpty(k, v) } return fmt.Sprintf("(%v)", strings.Join(values, " ")) } func NewIMAPIDFromKeyMap(m map[string]string) IMAPID { id := NewIMAPID() paramMap := map[string]*string{ IDKeyName: &id.Name, IDKeyVersion: &id.Version, IDKeyOS: &id.OS, IDKeyVendor: &id.Vendor, IDKeySupportURL: &id.SupportURL, IDKeyAddress: &id.Address, IDKeyDate: &id.Date, IDKeyCommand: &id.Command, IDKeyArguments: &id.Arguments, IDKeyEnvironment: &id.Environment, } for k, v := range m { if idv, ok := paramMap[k]; ok { *idv = v } else { id.Other[k] = v } } return id } func NewIMAPIDFromVersionInfo(info version.Info) IMAPID { return IMAPID{ Name: info.Name, Version: info.Version.String(), Vendor: info.Vendor, SupportURL: info.SupportURL, OS: runtime.GOOS, } } func GetIMAPIDFromContext(ctx context.Context) (IMAPID, bool) { if v := ctx.Value(imapIDContextKey); v != nil { if id, ok := v.(IMAPID); ok { return id, true } } return IMAPID{}, false } func NewContextWithIMAPID(ctx context.Context, id IMAPID) context.Context { return context.WithValue(ctx, imapIDContextKey, id) } type imapIDContextType struct{} var imapIDContextKey imapIDContextType func init() { gob.Register(&IMAPID{}) } gluon-0.17.0/imap/mailbox.go000066400000000000000000000003471445200213000156260ustar00rootroot00000000000000package imap type Mailbox struct { ID MailboxID Name []string Flags, PermanentFlags, Attributes FlagSet } const Inbox = "INBOX" type MailboxVisibility int const ( Hidden MailboxVisibility = iota Visible HiddenIfEmpty ) gluon-0.17.0/imap/message.go000066400000000000000000000004021445200213000156070ustar00rootroot00000000000000package imap import ( "time" ) type Message struct { ID MessageID Flags FlagSet Date time.Time } type Header []Field type Field struct { Key, Value string } func (m *Message) HasFlag(wantFlag string) bool { return m.Flags.Contains(wantFlag) } gluon-0.17.0/imap/params.go000066400000000000000000000051631445200213000154570ustar00rootroot00000000000000package imap import ( "net/mail" "strconv" "strings" "golang.org/x/exp/maps" "golang.org/x/exp/slices" ) type parListWriter interface { writeString(string) writeByte(byte) } type singleParListWriter struct { b *strings.Builder } func (s *singleParListWriter) writeString(v string) { s.b.WriteString(v) } func (s *singleParListWriter) writeByte(v byte) { s.b.WriteByte(v) } type dualParListWriter struct { b1 *strings.Builder b2 *strings.Builder } func (d *dualParListWriter) writeString(v string) { d.b1.WriteString(v) d.b2.WriteString(v) } func (d *dualParListWriter) writeByte(v byte) { d.b1.WriteByte(v) d.b2.WriteByte(v) } func (d *dualParListWriter) toSingleWriterFrom1st() parListWriter { return &singleParListWriter{b: d.b1} } func (d *dualParListWriter) toSingleWriterFrom2nd() parListWriter { return &singleParListWriter{b: d.b2} } type paramList struct { firstItem bool } func newParamListWithGroup(writer parListWriter) paramList { writer.writeByte('(') return paramList{ firstItem: true, } } func newParamListWithoutGroup() paramList { return paramList{ firstItem: true, } } func (c *paramList) newChildList(writer parListWriter) paramList { c.firstItem = false return newParamListWithGroup(writer) } func (c *paramList) finish(writer parListWriter) { writer.writeByte(')') } func (c *paramList) onWrite(writer parListWriter) { if !c.firstItem { writer.writeByte(' ') } c.firstItem = false } func (c *paramList) addString(writer parListWriter, v string) *paramList { c.onWrite(writer) var str string if len(v) == 0 { str = "NIL" } else { str = strconv.Quote(v) } writer.writeString(str) return c } func (c *paramList) addNumber(writer parListWriter, v int) *paramList { c.onWrite(writer) str := strconv.Itoa(v) writer.writeString(str) return c } func (c *paramList) addMap(writer parListWriter, v map[string]string) *paramList { c.onWrite(writer) keys := maps.Keys(v) slices.Sort(keys) child := c.newChildList(writer) for _, key := range keys { child.addString(writer, key).addString(writer, v[key]) } child.finish(writer) return c } func (c *paramList) addAddresses(writer parListWriter, v []*mail.Address) *paramList { c.onWrite(writer) child := c.newChildList(writer) for _, addr := range v { var user, domain string if split := strings.Split(addr.Address, "@"); len(split) == 2 { user, domain = split[0], split[1] } fields := child.newChildList(writer) fields. addString(writer, addr.Name). addString(writer, ""). addString(writer, user). addString(writer, domain) fields.finish(writer) } child.finish(writer) return c } gluon-0.17.0/imap/seqset.go000066400000000000000000000020711445200213000154730ustar00rootroot00000000000000package imap import ( "fmt" "strconv" "strings" "github.com/bradenaw/juniper/xslices" "golang.org/x/exp/slices" ) type SeqVal struct { Begin, End SeqID } func (seqval SeqVal) canCombine(val SeqID) bool { return val == SeqID(uint32(seqval.End)+1) } func (seqval SeqVal) String() string { if seqval.End > seqval.Begin { return fmt.Sprintf("%v:%v", seqval.Begin, seqval.End) } return strconv.FormatUint(uint64(seqval.End), 10) } type SeqSet []SeqVal func NewSeqSetFromUID(set []UID) SeqSet { return NewSeqSet(xslices.Map(set, func(t UID) SeqID { return SeqID(t) })) } func NewSeqSet(set []SeqID) SeqSet { slices.Sort(set) var res SeqSet for _, val := range set { if n := len(res); n > 0 { if res[n-1].canCombine(val) { res[n-1].End = val } else { res = append(res, SeqVal{Begin: val, End: val}) } } else { res = append(res, SeqVal{Begin: val, End: val}) } } return res } func (set SeqSet) String() string { var res []string for _, val := range set { res = append(res, val.String()) } return strings.Join(res, ",") } gluon-0.17.0/imap/seqset_test.go000066400000000000000000000012141445200213000165300ustar00rootroot00000000000000package imap import ( "testing" "github.com/stretchr/testify/assert" ) func TestSeqSet(t *testing.T) { tests := []struct { have []SeqID want string }{ {have: []SeqID{}, want: ""}, {have: []SeqID{1}, want: "1"}, {have: []SeqID{1, 3}, want: "1,3"}, {have: []SeqID{1, 3, 5}, want: "1,3,5"}, {have: []SeqID{1, 2, 3, 5}, want: "1:3,5"}, {have: []SeqID{1, 2, 3, 5, 6}, want: "1:3,5:6"}, {have: []SeqID{1, 2, 3, 4, 5, 6}, want: "1:6"}, {have: []SeqID{1, 3, 4, 5, 6}, want: "1,3:6"}, } for _, tc := range tests { tc := tc t.Run(tc.want, func(t *testing.T) { assert.Equal(t, tc.want, NewSeqSet(tc.have).String()) }) } } gluon-0.17.0/imap/status.go000066400000000000000000000002661445200213000155160ustar00rootroot00000000000000package imap const ( StatusMessages = `MESSAGES` StatusRecent = `RECENT` StatusUIDNext = `UIDNEXT` StatusUIDValidity = `UIDVALIDITY` StatusUnseen = `UNSEEN` ) gluon-0.17.0/imap/strong_types.go000066400000000000000000000021031445200213000167230ustar00rootroot00000000000000package imap import ( "fmt" "strconv" "github.com/google/uuid" ) type MailboxID string type MessageID string func (l MailboxID) ShortID() string { return ShortID(string(l)) } func (m MessageID) ShortID() string { return ShortID(string(m)) } type InternalMessageID struct { uuid.UUID } type InternalMailboxID uint64 func (i InternalMailboxID) ShortID() string { return strconv.FormatUint(uint64(i), 10) } func (i InternalMessageID) ShortID() string { return ShortID(i.String()) } func (i InternalMailboxID) String() string { return strconv.FormatUint(uint64(i), 10) } func (i InternalMessageID) String() string { return i.UUID.String() } func NewInternalMessageID() InternalMessageID { return InternalMessageID{UUID: uuid.New()} } func InternalMessageIDFromString(id string) (InternalMessageID, error) { num, err := uuid.Parse(id) if err != nil { return InternalMessageID{}, fmt.Errorf("invalid message id:%w", err) } return InternalMessageID{UUID: num}, nil } type UID uint32 func (u UID) Add(v uint32) UID { return UID(uint32(u) + v) } type SeqID uint32 gluon-0.17.0/imap/structure.go000066400000000000000000000076431445200213000162410ustar00rootroot00000000000000package imap import ( "bytes" "strings" "github.com/ProtonMail/gluon/rfc822" ) func Structure(section *rfc822.Section) (string, string, error) { bodyBuilder := strings.Builder{} structureBuilder := strings.Builder{} writer := dualParListWriter{b1: &bodyBuilder, b2: &structureBuilder} c := newParamListWithGroup(&writer) if err := structure(section, &c, &writer); err != nil { return "", "", err } c.finish(&writer) body := bodyBuilder.String() structure := structureBuilder.String() return body, structure, nil } func structure(section *rfc822.Section, fields *paramList, writer *dualParListWriter) error { children, err := section.Children() if err != nil { return err } if len(children) == 0 { return singlePartStructure(section, fields, writer) } if err := childStructures(section, fields, writer); err != nil { return err } header, err := section.ParseHeader() if err != nil { return err } _, mimeSubType, mimeParams, err := getMIMEInfo(section) if err != nil { return err } fields.addString(writer, mimeSubType) extWriter := writer.toSingleWriterFrom2nd() fields.addMap(extWriter, mimeParams) addDispInfo(fields, extWriter, header) fields.addString(extWriter, header.Get("Content-Language")). addString(extWriter, header.Get("Content-Location")) return nil } func singlePartStructure(section *rfc822.Section, fields *paramList, writer *dualParListWriter) error { header, err := section.ParseHeader() if err != nil { return err } mimeType, mimeSubType, mimeParams, err := getMIMEInfo(section) if err != nil { return err } fields. addString(writer, mimeType). addString(writer, mimeSubType). addMap(writer, mimeParams). addString(writer, header.Get("Content-Id")). addString(writer, header.Get("Content-Description")). addString(writer, header.Get("Content-Transfer-Encoding")). addNumber(writer, len(section.Body())) if mimeType == "message" && mimeSubType == "rfc822" { child := rfc822.Parse(section.Body()) header, err := child.ParseHeader() if err != nil { return err } writer.writeByte(' ') if err := envelope(header, fields, writer); err != nil { return err } cstruct := fields.newChildList(writer) if err := structure(child, &cstruct, writer); err != nil { return err } cstruct.finish(writer) } if mimeType == "text" || (mimeType == "message" && mimeSubType == "rfc822") { fields.addNumber(writer, countLines(section.Body())) } extWriter := writer.toSingleWriterFrom2nd() fields.addString(extWriter, header.Get("Content-MD5")) addDispInfo(fields, extWriter, header) fields.addString(extWriter, header.Get("Content-Language")). addString(extWriter, header.Get("Content-Location")) return nil } func childStructures(section *rfc822.Section, c *paramList, writer *dualParListWriter) error { children, err := section.Children() if err != nil { return err } for _, child := range children { cl := c.newChildList(writer) if err := structure(child, &cl, writer); err != nil { return err } cl.finish(writer) } return nil } func getMIMEInfo(section *rfc822.Section) (string, string, map[string]string, error) { mimeType, mimeParams, err := section.ContentType() if err != nil { return "", "", nil, err } return mimeType.Type(), mimeType.SubType(), mimeParams, nil } func addDispInfo(c *paramList, writer parListWriter, header *rfc822.Header) { if contentDisp, contentDispParams, err := rfc822.ParseMediaType(header.Get("Content-Disposition")); err == nil { writer.writeByte(' ') fields := c.newChildList(writer) fields.addString(writer, contentDisp).addMap(writer, contentDispParams) fields.finish(writer) } else { c.addString(writer, "") } } func countLines(b []byte) int { lines := 0 remaining := b separator := []byte{'\n'} for len(remaining) != 0 { index := bytes.Index(remaining, separator) if index < 0 { lines++ break } lines++ remaining = remaining[index+1:] } return lines } gluon-0.17.0/imap/structure_test.go000066400000000000000000000123331445200213000172700ustar00rootroot00000000000000package imap import ( "os" "path/filepath" "testing" "github.com/stretchr/testify/require" ) func TestEmbeddedRFC822WithoutHeader(t *testing.T) { b, err := os.ReadFile(filepath.Join("testdata", "rfc822.eml")) require.NoError(t, err) parsed, err := NewParsedMessage(b) require.NoError(t, err) require.NotNil(t, parsed) } func TestHeaderOutOfBounds(t *testing.T) { b, err := os.ReadFile(filepath.Join("testdata", "bounds.eml")) require.NoError(t, err) parsed, err := NewParsedMessage(b) require.NoError(t, err) require.NotNil(t, parsed) } func TestStructureWithRFC822Embedded(t *testing.T) { const message = `Content-Type: multipart/mixed; boundary=dcd8fbdd2e8a8f95ac2024a5a57b37e2c24da4f0a0006ae059da17cb0e5b Return-Path: X-Original-To: random-mail@pm.me Delivered-To: random-mail@pm.me References: <> Subject: Fwd: ISO-8859-1 To: random-mail@pm.me From: BQA X-Forwarded-Message-Id: <> Message-Id: <0f57877e-0003-b600-9e62-8ad2736ec325@gmail.com> Date: Wed, 2 Jun 2021 14:18:56 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 Mime-Version: 1.0 In-Reply-To: <> Content-Language: en-US --dcd8fbdd2e8a8f95ac2024a5a57b37e2c24da4f0a0006ae059da17cb0e5b Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 what --dcd8fbdd2e8a8f95ac2024a5a57b37e2c24da4f0a0006ae059da17cb0e5b Content-Disposition: attachment; filename=ISO-8859-1.eml Content-Type: message/rfc822; name=ISO-8859-1.eml From: random-mail@pm.me To: random-mail2@pm.me Content-Type: text/plain; charset=iso-8859-1 Subject: ISO-8859-1 hey there bro --dcd8fbdd2e8a8f95ac2024a5a57b37e2c24da4f0a0006ae059da17cb0e5b-- ` parsed, err := NewParsedMessage([]byte(message)) require.NoError(t, err) require.NotNil(t, parsed) expected := "((\"text\" \"plain\" (\"charset\" \"utf-8\") NIL NIL \"quoted-printable\" 6 2)(\"message\" \"rfc822\" (\"name\" \"ISO-8859-1.eml\") NIL NIL NIL 127 (NIL \"ISO-8859-1\" ((NIL NIL \"random-mail\" \"pm.me\")) ((NIL NIL \"random-mail\" \"pm.me\")) ((NIL NIL \"random-mail\" \"pm.me\")) ((NIL NIL \"random-mail2\" \"pm.me\")) NIL NIL NIL NIL)(\"text\" \"plain\" (\"charset\" \"iso-8859-1\") NIL NIL NIL 14 1) 6) \"mixed\")" require.Equal(t, expected, parsed.Body) } func TestParseInvalidCharsInContenType(t *testing.T) { const literal = `From: Nathaniel Borenstein To: Ned Freed Subject: Sample message MIME-Version: 1.0 Content-type: multipart/mixed; boundary="simple boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --simple boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --simple boundary Content-Disposition: attachment; filename=test.eml Content-Type: message/rfc822; name=test.eml X-Pm-Content-Encryption: on-import To: someone Subject: Fwd: embedded Content-type: multipart/mixed; boundary="embedded-boundary" --embedded-boundary Content-Type: GIF �ɮ�; Content-Transfer-Encoding: base64 Content-Location: file:///C:/ABWhiz41/images/itinlogo1.gif Ym9keQ== --embedded-boundary Content-type: text/plain; charset=us-ascii This part is also embedded --embedded-boundary-- --simple boundary-- This is the epilogue. It is also to be ignored. ` parsed, err := NewParsedMessage([]byte(literal)) require.NoError(t, err) require.NotNil(t, parsed) } func TestParseInvalidMimeType(t *testing.T) { const literal = `From: Nathaniel Borenstein To: Ned Freed Subject: Sample message MIME-Version: 1.0 Content-type: multipart/mixed; boundary="simple boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --simple boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --simple boundary Content-Disposition: attachment; filename=test.eml Content-Type: message/rfc822; name=test.eml X-Pm-Content-Encryption: on-import To: someone Subject: Fwd: embedded Content-type: multipart/mixed; boundary="embedded-boundary" --embedded-boundary Content-Type: application/; Content-Transfer-Encoding: base64 Content-Location: file:///C:/ABWhiz41/images/itinlogo1.gif Ym9keQ== --embedded-boundary Content-type: text/plain; charset=us-ascii This part is also embedded --embedded-boundary-- --simple boundary-- This is the epilogue. It is also to be ignored. ` parsed, err := NewParsedMessage([]byte(literal)) require.NoError(t, err) require.NotNil(t, parsed) } func TestParseMessage_GODT_2513(t *testing.T) { // This sequence could cause a crash. parsed, err := NewParsedMessage([]byte("Content-tYpe: multipArt/0;BoundArY=\"simple boundary\"\n\n--simple boundary\r")) require.NoError(t, err) require.NotNil(t, parsed) } func FuzzNewParsedMessage(f *testing.F) { inSeed1, err1 := os.ReadFile(filepath.Join("testdata", "rfc822.eml")) inSeed2, err2 := os.ReadFile(filepath.Join("testdata", "bounds.eml")) require.NoError(f, err1) require.NoError(f, err2) f.Add(inSeed1) f.Add(inSeed2) f.Fuzz(func(t *testing.T, inputData []byte) { _, _ = NewParsedMessage(inputData) }) } gluon-0.17.0/imap/testdata/000077500000000000000000000000001445200213000154515ustar00rootroot00000000000000gluon-0.17.0/imap/testdata/bounds.eml000066400000000000000000000020441445200213000174420ustar00rootroot00000000000000Content-Type: multipart/mixed; boundary=eccb619eb8cb1994c1375b3b013a7c995dcc7ab05f9cfec486ffeb18d6f8ca65 To: From: Subject: empty header test Date: Tue, 17 Aug 2021 07:33:19 -0700 (PDT) Mime-Version: 1.0 --eccb619eb8cb1994c1375b3b013a7c995dcc7ab05f9cfec486ffeb18d6f8ca65 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 No valid message body or attachments were found in this email. Please check= with the sender to ensure that they are sending valid emails. The raw mess= age is attached.\n\n --eccb619eb8cb1994c1375b3b013a7c995dcc7ab05f9cfec486ffeb18d6f8ca65 Content-Disposition: attachment; filename=message.eml Content-Type: message/rfc822; name=message.eml Return-Path: X-Original-To: someone@pm.me Date: Tue, 17 Aug 2021 07:33:19 -0700 (PDT) To: someone@pm.me From: someone@gmail.com Subject: empty header test Content-type: multipart/mixed; boundary=whatever --whatever Body --whatever --eccb619eb8cb1994c1375b3b013a7c995dcc7ab05f9cfec486ffeb18d6f8ca65-- gluon-0.17.0/imap/testdata/envelope.eml000066400000000000000000000073641445200213000177770ustar00rootroot00000000000000Content-Type: multipart/mixed; boundary=bdb743b2047fed4fb99679919aec55f19530428b8310b3e6ac428ccbb5dc Mime-Version: 1.0 X-Pm-Origin: internal X-Pm-Content-Encryption: end-to-end Subject: this is currently a draft To: Somebody From: somebody@pm.me Date: Sat, 03 Apr 2021 15:13:53 +0000 X-Attached: publickey - somebody@pm.me - 0x1C0D94BB.asc Message-Id: X-Pm-Scheduled-Sent-Original-Time: 1617462815 X-Pm-Recipient-Authentication: somebody%40pm.me=pgp-pm X-Pm-Recipient-Encryption: somebody%40pm.me=pgp-pm-pinned X-Original-To: somebody@pm.me Return-Path: Delivered-To: somebody@pm.me Received: from mail.protonmail.ch by mail.protonmail.ch; Sat, 03 Apr 2021 15:13:53 +0000 --bdb743b2047fed4fb99679919aec55f19530428b8310b3e6ac428ccbb5dc Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Sent with ProtonMail Secure Email. --bdb743b2047fed4fb99679919aec55f19530428b8310b3e6ac428ccbb5dc Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="publickey - somebody@pm.me - 0x1C0D94BB.asc" Content-Type: application/pgp-keys; name="publickey - somebody@pm.me - 0x1C0D94BB.asc" LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQpWZXJzaW9uOiBPcGVuUEdQLmpz IHY0LjEwLjEwDQpDb21tZW50OiBodHRwczovL29wZW5wZ3Bqcy5vcmcNCg0KeHNCTkJGNHlFQ1VC Q0FDbXQ5SThSMStpYmUwcEhhL1BNQzFaczA3QkZTalRCNGsyQjhFWkpoYzNkbGdVDQpXb05qMDZI S0FLVG5GMHRDSmZvamI5SGhobnM5RTNkYSsvcHIybVRlR0xHQ214VmxIbVM3dnQ1TUtlemgNCnJH bXFUOVFNSkFnamdEbEw4K2VjV2FhcFJ5SVE0TlhCWDdIM0RQdVVEU1ZCeElTU2JYTHhmT1JpWVA1 RQ0KRHVlRjZhTExNckpGZ0ZhbUZxNWtncEZ2WFlabVB2K2gvVm9MUCtaTHhuUGZTOTJXM2pKM1k2 QnlaY0M5DQpic0hpcUJGQW5HRG5oMG5JVzEwOXJFWlJhOHZLZVNKTC80OGhVU3h1Y3ZkQUdXUXlW cEEydmhpV1h6YmENCjNPMWdtamNwaFZyUUNDZ1N5dnlEdllGL3VTM21SMUY4ZC8vQnBLdVlLSW5x NitZNU1QZUtSSkdWQUJFQg0KQUFITkozTmphR2w2YjJaeVpXNXBZMEJ3YlM1dFpTQThjMk5vYVhw dlpuSmxibWxqUUhCdExtMWxQc0xBDQpkZ1FRQVFnQUlBVUNYaklRSlFZTENRY0lBd0lFRlFnS0Fn UVdBZ0VBQWhrQkFoc0RBaDRCQUFvSkVPeXkNCmJhTTNyMUFmVEQ0SC8xMm5DaDltZ0F5N3Q1NVZM a0cyUzh1SUpZbXBhMmdFaFRaTjhIV2NETWhzNGtEbA0KeFo2Q2hzcXdTMEZVai85QUJBSEJ5T0Q0 R09OZVlZd3FTWTdxeTRNQkV5c0JPMXkzNGJhUlNYc1dsRU1UDQpqdWlTclN6N1lvbHZ0c0JvOUNn RTdIbkhBVkF6ZE9NbVFQMEw3WEZJa2l0d2lDbVRWR3pYYjF3MWxjcGMNCjF6VFcvVGJGT3V6Tmlk c3VxK2Q1Z1ZqaEMzVUJSTTlzSDI2emR6cWZIUjBPclNtRVluQkZ0UTZtMDFsdA0KQ3VzbmNYZk9a VXJBWmt1TzdRdlFhYkw4WDhBNHlUaExlR0g4czVOeVpJblRLMWsrMU9TdE5RcVlLb09RDQpTeWxN N2h6WHZMVjk5TC9ndC9OMmM4VWtrUmVPOWhRTkEyMm1FVitDeHRCNEdhN01YYkpCUElMT3dFMEUN ClhqSVFKUUVJQU5NLytUS2F0VDhNdHNZcnFTQ0pRQUZSVGpNZnRHcnE3VTFXb3JCMW9FbzY2VXdx eTNoQg0KS1ZWK0xFallnT01iWW1CUWxzSU9PR3FhQkRjQnNQTm52RTdGU3F4eTh6M0d4VUZ0a3pr cGI2VGx3NTRBDQo4WTI3OFlUUHJhRFAreFJORGxrWXN5TmY0TGZYL2R1aVVvMWE2UjdqcVlHWTho eS9TaC92K0xOcWRsSkcNCnBSNG5qNHF4WkNPaXMrYWE2dXEzZE1KR3JXSGQyV2FLMGRCT1ZBdWYw UlpHKzlNaEJxRE9IbHVacnVkLw0KQWgyZE10OUZCYmdsZjlicTNUMDdmQ1A2RG0zOWZoSjFOdGRN ZWVPUXRocUZlSVVNZ2o3WW9SeGdaWTZ1DQp6Y2Q0bEZ2d1lTRzQ0alNEbklyWjdOZnRFdW5OS09P ZXFYaWlKQzl6TTg3dmQ4TGczemNBRVFFQUFjTEENClh3UVlBUWdBQ1FVQ1hqSVFKUUliREFBS0NS RHNzbTJqTjY5UUg0TXNCLzlOWkRvb1FPZjBQSGFESXFUWg0KR1dzOS91R1hBSnozcXB5TWVtMnZN VUV5eTkvR2VzY3UwcTAwTWdpNzlOWFRDVlcwYW9udE1xWk9HWHNzDQpjQWl1NWpLaVFLdWJ6TG8v NzZDZ294V1oxdDhMTThVVmQ2ZmxQZjBwVDUvVVlxNE5nMVJjSTBuRVdLNk8NCkQ5MDVwZEtESmhR OW93KzBKQUU4Rm5ZV0kweXNCRS9IZ3JiK3duSWludlJEbW5lbStMeXdvbDZVK2s0cg0Ka2pEeDB1 SWxJRlRDaStJNFZRRUtLbVF6akREZnFIYmU4aXM0YlZHaGZGVUNpOE1CNGZ5UXZBVTdzSGpTDQpU ZVhhSTluR1JvM2c3dkIwTTF2NUEwbFJrQU5PYXpuMlFWK0laUEFxWnZOZ29iSXlRTzcyOXdFQllx OXcNCmc2aGU5SElxenc1ZVd6WWNtSkNadWdMTQ0KPW9LbngNCi0tLS0tRU5EIFBHUCBQVUJMSUMg S0VZIEJMT0NLLS0tLS0NCg== --bdb743b2047fed4fb99679919aec55f19530428b8310b3e6ac428ccbb5dc-- gluon-0.17.0/imap/testdata/rfc822.eml000066400000000000000000000013211445200213000171530ustar00rootroot00000000000000Content-Type: multipart/mixed; boundary=b55536263d91d87d90bcd1f3249becaa7fc9105ddfbd96d7c058e1589725 Date: Thu, 21 Nov 2013 16:33:01 +0100 From: "Some Body" Subject: Empty header again To: "Some Body Else" Mime-Version: 1.0 --b55536263d91d87d90bcd1f3249becaa7fc9105ddfbd96d7c058e1589725 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8

Test

--b55536263d91d87d90bcd1f3249becaa7fc9105ddfbd96d7c058e1589725 Content-Disposition: attachment; filename=filename.mail Content-Type: message/rfc822; name=filename.mail # The command is: rm -rf / --b55536263d91d87d90bcd1f3249becaa7fc9105ddfbd96d7c058e1589725-- gluon-0.17.0/imap/uid_validity_generator.go000066400000000000000000000043021445200213000207220ustar00rootroot00000000000000package imap import ( "fmt" "sync/atomic" "time" ) type UIDValidityGenerator interface { Generate() (UID, error) } type EpochUIDValidityGenerator struct { epochStart time.Time lastUID uint32 } func NewEpochUIDValidityGenerator(epochStart time.Time) *EpochUIDValidityGenerator { return &EpochUIDValidityGenerator{ epochStart: epochStart, } } func DefaultEpochUIDValidityGenerator() *EpochUIDValidityGenerator { return NewEpochUIDValidityGenerator(time.Date(2023, 2, 1, 0, 0, 0, 0, time.UTC)) } func (e *EpochUIDValidityGenerator) Generate() (UID, error) { timeStamp := uint64(time.Now().Sub(e.epochStart).Seconds()) if timeStamp > uint64(0xFFFFFFFF) { return 0, fmt.Errorf("failed to generate uid validity, interval exceeded maximum capacity") } timeStampU32 := uint32(timeStamp) // This loops is here to ensure that two successive calls to Generate that happen during the same second // can still generate unique values. To avoid waiting another second until the values are different, // we keep bumping the last generated value until it is greater than the last generated value. for { lastGenerated := atomic.LoadUint32(&e.lastUID) // Not enough time elapsed between the last time if lastGenerated >= timeStampU32 { if timeStampU32 == 0xFFFFFFFF { return 0, fmt.Errorf("failed to generate uid validity, interval exceeded maximum capacity") } timeStampU32 += 1 continue } if !atomic.CompareAndSwapUint32(&e.lastUID, lastGenerated, timeStampU32) { continue } return UID(timeStampU32), nil } } type IncrementalUIDValidityGenerator struct { counter uint32 } func (i *IncrementalUIDValidityGenerator) Generate() (UID, error) { return UID(atomic.AddUint32(&i.counter, 1)), nil } func (i *IncrementalUIDValidityGenerator) GetValue() UID { return UID(atomic.LoadUint32(&i.counter)) } func NewIncrementalUIDValidityGenerator() *IncrementalUIDValidityGenerator { return &IncrementalUIDValidityGenerator{} } type FixedUIDValidityGenerator struct { Value UID } func (f FixedUIDValidityGenerator) Generate() (UID, error) { return f.Value, nil } func NewFixedUIDValidityGenerator(value UID) *FixedUIDValidityGenerator { return &FixedUIDValidityGenerator{Value: value} } gluon-0.17.0/imap/uid_validity_generator_test.go000066400000000000000000000020701445200213000217610ustar00rootroot00000000000000package imap import ( "testing" "time" "github.com/bradenaw/juniper/parallel" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "golang.org/x/exp/slices" ) func TestEpochUIDValidityGenerator_Generate(t *testing.T) { generator := DefaultEpochUIDValidityGenerator() const UIDCount = 10 var uids = make([]UID, UIDCount) for i := 0; i < UIDCount; i++ { uid, err := generator.Generate() require.NoError(t, err) uids[i] = uid } time.Sleep(10 * time.Second) uid, err := generator.Generate() require.NoError(t, err) for i := 0; i < UIDCount-1; i++ { assert.Less(t, uids[i], uids[i+1]) } assert.Greater(t, uid, uids[UIDCount-1]) } func TestEpochUIDValidityGenerator_GenerateParallel(t *testing.T) { generator := DefaultEpochUIDValidityGenerator() const UIDCount = 1000 var uids = make([]UID, UIDCount) parallel.Do(0, UIDCount, func(i int) { uid, err := generator.Generate() require.NoError(t, err) uids[i] = uid }) slices.Sort(uids) for i := 0; i < UIDCount-1; i++ { assert.Less(t, uids[i], uids[i+1]) } } gluon-0.17.0/imap/update.go000066400000000000000000000002141445200213000154460ustar00rootroot00000000000000package imap type Update interface { Waiter String() string _isUpdate() } type updateBase struct{} func (updateBase) _isUpdate() {} gluon-0.17.0/imap/update_mailbox_created.go000066400000000000000000000007241445200213000206560ustar00rootroot00000000000000package imap import ( "fmt" "strings" ) type MailboxCreated struct { updateBase *updateWaiter Mailbox Mailbox } func NewMailboxCreated(mailbox Mailbox) *MailboxCreated { return &MailboxCreated{ updateWaiter: newUpdateWaiter(), Mailbox: mailbox, } } func (u *MailboxCreated) String() string { return fmt.Sprintf( "MailboxCreated: Mailbox.ID = %v, Mailbox.Name = %v", u.Mailbox.ID.ShortID(), ShortID(strings.Join(u.Mailbox.Name, "/")), ) } gluon-0.17.0/imap/update_mailbox_deleted.go000066400000000000000000000006101445200213000206470ustar00rootroot00000000000000package imap import ( "fmt" ) type MailboxDeleted struct { updateBase *updateWaiter MailboxID MailboxID } func NewMailboxDeleted(mailboxID MailboxID) *MailboxDeleted { return &MailboxDeleted{ updateWaiter: newUpdateWaiter(), MailboxID: mailboxID, } } func (u *MailboxDeleted) String() string { return fmt.Sprintf("MailboxDeleted: MailboxID = %v", u.MailboxID.ShortID()) } gluon-0.17.0/imap/update_mailbox_id_changed.go000066400000000000000000000010221445200213000213040ustar00rootroot00000000000000package imap import ( "fmt" ) type MailboxIDChanged struct { updateBase *updateWaiter InternalID InternalMailboxID RemoteID MailboxID } func NewMailboxIDChanged(internalID InternalMailboxID, remoteID MailboxID) *MailboxIDChanged { return &MailboxIDChanged{ updateWaiter: newUpdateWaiter(), InternalID: internalID, RemoteID: remoteID, } } func (u *MailboxIDChanged) String() string { return fmt.Sprintf("MailboxIDChanged: InternalID = %v, RemoteID = %v", u.InternalID.ShortID(), u.RemoteID.ShortID()) } gluon-0.17.0/imap/update_mailbox_updated.go000066400000000000000000000010451445200213000206720ustar00rootroot00000000000000package imap import ( "fmt" "strings" ) type MailboxUpdated struct { updateBase *updateWaiter MailboxID MailboxID MailboxName []string } func NewMailboxUpdated(mailboxID MailboxID, mailboxName []string) *MailboxUpdated { return &MailboxUpdated{ updateWaiter: newUpdateWaiter(), MailboxID: mailboxID, MailboxName: mailboxName, } } func (u *MailboxUpdated) String() string { return fmt.Sprintf( "MailboxUpdated: MailboxID = %v, MailboxName = %v", u.MailboxID.ShortID(), ShortID(strings.Join(u.MailboxName, "/")), ) } gluon-0.17.0/imap/update_message_created.go000066400000000000000000000034651445200213000206540ustar00rootroot00000000000000package imap import ( "fmt" "github.com/ProtonMail/gluon/rfc822" "github.com/bradenaw/juniper/xslices" ) type ParsedMessage struct { Body string Structure string Envelope string } func NewParsedMessage(literal []byte) (*ParsedMessage, error) { root := rfc822.Parse(literal) body, structure, err := Structure(root) if err != nil { return nil, fmt.Errorf("failed to build message body and structure: %w", err) } header, err := root.ParseHeader() if err != nil { return nil, fmt.Errorf("failed to parser message header: %w", err) } envelope, err := Envelope(header) if err != nil { return nil, fmt.Errorf("failed to build message envelope: %w", err) } return &ParsedMessage{ Body: body, Structure: structure, Envelope: envelope, }, nil } type MessagesCreated struct { updateBase *updateWaiter Messages []*MessageCreated // IgnoreUnknownMailboxIDs will allow message creation when one or more MailboxIDs are not yet known when set to true. IgnoreUnknownMailboxIDs bool } type MessageCreated struct { Message Message Literal []byte MailboxIDs []MailboxID ParsedMessage *ParsedMessage } func NewMessagesCreated(ignoreUnknownMailboxIDs bool, updates ...*MessageCreated) *MessagesCreated { return &MessagesCreated{ updateWaiter: newUpdateWaiter(), Messages: updates, IgnoreUnknownMailboxIDs: ignoreUnknownMailboxIDs, } } func (u *MessagesCreated) String() string { return fmt.Sprintf("MessagesCreated: MessageCount=%v Messages=%v", len(u.Messages), xslices.Map(u.Messages, func(m *MessageCreated) string { return fmt.Sprintf("ID:%v Mailboxes:%v Flags:%s", m.Message.ID.ShortID(), xslices.Map(m.MailboxIDs, func(mboxID MailboxID) string { return mboxID.ShortID() }), m.Message.Flags.ToSlice(), ) }), ) } gluon-0.17.0/imap/update_message_deleted.go000066400000000000000000000005771445200213000206540ustar00rootroot00000000000000package imap import ( "fmt" ) type MessageDeleted struct { updateBase *updateWaiter MessageID MessageID } func NewMessagesDeleted(messageID MessageID) *MessageDeleted { return &MessageDeleted{ updateWaiter: newUpdateWaiter(), MessageID: messageID, } } func (u *MessageDeleted) String() string { return fmt.Sprintf("MessageDeleted ID=%v", u.MessageID.ShortID()) } gluon-0.17.0/imap/update_message_flags_updated.go000066400000000000000000000010101445200213000220270ustar00rootroot00000000000000package imap import ( "fmt" ) type MessageFlagsUpdated struct { updateBase *updateWaiter MessageID MessageID Flags FlagSet } func NewMessageFlagsUpdated(messageID MessageID, flags FlagSet) *MessageFlagsUpdated { return &MessageFlagsUpdated{ updateWaiter: newUpdateWaiter(), MessageID: messageID, Flags: flags, } } func (u *MessageFlagsUpdated) String() string { return fmt.Sprintf( "MessageFlagsUpdated: MessageID = %v, Flags = %v", u.MessageID.ShortID(), u.Flags.ToSlice(), ) } gluon-0.17.0/imap/update_message_id_changed.go000066400000000000000000000010231445200213000212760ustar00rootroot00000000000000package imap import ( "fmt" ) type MessageIDChanged struct { updateBase *updateWaiter InternalID InternalMessageID RemoteID MessageID } func NewMessageIDChanged(internalID InternalMessageID, remoteID MessageID) *MessageIDChanged { return &MessageIDChanged{ updateWaiter: newUpdateWaiter(), InternalID: internalID, RemoteID: remoteID, } } func (u *MessageIDChanged) String() string { return fmt.Sprintf("MessageID changed: InternalID = %v, RemoteID = %v", u.InternalID.ShortID(), u.RemoteID.ShortID()) } gluon-0.17.0/imap/update_message_labels_updated.go000066400000000000000000000013671445200213000222140ustar00rootroot00000000000000package imap import ( "fmt" "github.com/bradenaw/juniper/xslices" ) type MessageMailboxesUpdated struct { updateBase *updateWaiter MessageID MessageID MailboxIDs []MailboxID Flags FlagSet } func NewMessageMailboxesUpdated(messageID MessageID, mailboxIDs []MailboxID, flags FlagSet) *MessageMailboxesUpdated { return &MessageMailboxesUpdated{ updateWaiter: newUpdateWaiter(), MessageID: messageID, MailboxIDs: mailboxIDs, Flags: flags, } } func (u *MessageMailboxesUpdated) String() string { return fmt.Sprintf( "MessageMailboxesUpdated: MessageID = %v, MailboxIDs = %v, Flags = %v", u.MessageID.ShortID(), xslices.Map(u.MailboxIDs, func(id MailboxID) string { return id.ShortID() }), u.Flags.ToSlice(), ) } gluon-0.17.0/imap/update_message_updated.go000066400000000000000000000022451445200213000206660ustar00rootroot00000000000000package imap import ( "fmt" "github.com/bradenaw/juniper/xslices" ) // MessageUpdated replaces the previous behavior of MessageDelete followed by MessageCreate. // If the message does exist, it is updated. // If the message does not exist, it can optionally be created. // Furthermore, it guarantees that the operation is executed atomically. type MessageUpdated struct { updateBase *updateWaiter Message Message Literal []byte MailboxIDs []MailboxID ParsedMessage *ParsedMessage AllowCreate bool } func NewMessageUpdated( message Message, literal []byte, mailboxIDs []MailboxID, parsedMessage *ParsedMessage, allowCreate bool, ) *MessageUpdated { return &MessageUpdated{ updateWaiter: newUpdateWaiter(), Message: message, Literal: literal, MailboxIDs: mailboxIDs, ParsedMessage: parsedMessage, AllowCreate: allowCreate, } } func (u *MessageUpdated) String() string { return fmt.Sprintf("MessageUpdated: ID:%v Mailboxes:%v Flags:%s AllowCreate:%v", u.Message.ID.ShortID(), xslices.Map(u.MailboxIDs, func(mboxID MailboxID) string { return mboxID.ShortID() }), u.Message.Flags.ToSlice(), u.AllowCreate, ) } gluon-0.17.0/imap/update_noop.go000066400000000000000000000003011445200213000164760ustar00rootroot00000000000000package imap type Noop struct { updateBase *updateWaiter } func NewNoop() *Noop { return &Noop{ updateWaiter: newUpdateWaiter(), } } func (u *Noop) String() string { return "Noop" } gluon-0.17.0/imap/update_uid_validity_bumped.go000066400000000000000000000004521445200213000215540ustar00rootroot00000000000000package imap import "fmt" type UIDValidityBumped struct { updateBase *updateWaiter } func NewUIDValidityBumped() *UIDValidityBumped { return &UIDValidityBumped{ updateWaiter: newUpdateWaiter(), } } func (u *UIDValidityBumped) String() string { return fmt.Sprintf("UIDValidityBumped") } gluon-0.17.0/imap/update_waiter.go000066400000000000000000000015431445200213000170270ustar00rootroot00000000000000package imap import ( "context" ) type Waiter interface { // Wait waits until the update has been marked as done. Wait() (error, bool) // WaitContext waits until the update has been marked as done or the context is cancelled. WaitContext(context.Context) (error, bool) // Done marks the update as done and report an error (if any). Done(error) } type updateWaiter struct { waitCh chan error } func newUpdateWaiter() *updateWaiter { return &updateWaiter{ waitCh: make(chan error, 1), } } func (w *updateWaiter) Wait() (error, bool) { err, ok := <-w.waitCh return err, ok } func (w *updateWaiter) WaitContext(ctx context.Context) (error, bool) { select { case <-ctx.Done(): return nil, false case err, ok := <-w.waitCh: return err, ok } } func (w *updateWaiter) Done(err error) { if err != nil { w.waitCh <- err } close(w.waitCh) } gluon-0.17.0/imap/utils.go000066400000000000000000000003351445200213000153300ustar00rootroot00000000000000package imap // ShortID return a string containing a short version of the given ID. Use only for debug display. func ShortID(id string) string { const l = 12 if len(id) < l { return id } return id[0:l] + "..." } gluon-0.17.0/internal/000077500000000000000000000000001445200213000145265ustar00rootroot00000000000000gluon-0.17.0/internal/backend/000077500000000000000000000000001445200213000161155ustar00rootroot00000000000000gluon-0.17.0/internal/backend/backend.go000066400000000000000000000173021445200213000200360ustar00rootroot00000000000000package backend import ( "context" "errors" "fmt" "sync" "sync/atomic" "time" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/limits" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/store" "github.com/google/uuid" "github.com/sirupsen/logrus" ) // maxLoginAttempts is the maximum number of permitted login attempts before the user is jailed. const maxLoginAttempts = 3 type Backend struct { // dataDir is the directory in which backend files should be stored. dataDir string // databaseDir is the directory in which database files should be stored. databaseDir string // delim is the server's path delim. delim string // users holds all registered backend users. users map[string]*user usersLock sync.Mutex // storeBuilder builds stores for the backend users. storeBuilder store.Builder // loginJailTime is the time a user is jailed after too many failed login attempts. loginJailTime time.Duration // loginErrorCount holds the number of failed login attempts for each user. loginErrorCount int32 loginLock sync.Mutex loginWG sync.WaitGroup imapLimits limits.IMAP database db.ClientInterface panicHandler async.PanicHandler } func New(dataDir, databaseDir string, storeBuilder store.Builder, delim string, loginJailTime time.Duration, imapLimits limits.IMAP, panicHandler async.PanicHandler, database db.ClientInterface, ) (*Backend, error) { return &Backend{ dataDir: dataDir, databaseDir: databaseDir, delim: delim, users: make(map[string]*user), storeBuilder: storeBuilder, loginJailTime: loginJailTime, imapLimits: imapLimits, panicHandler: panicHandler, database: database, }, nil } func (b *Backend) NewUserID() string { return uuid.NewString() } func (b *Backend) GetDelimiter() string { return b.delim } // AddUser adds a new user to the backend. // It returns true if the user's database was created, false if it already existed. func (b *Backend) AddUser(ctx context.Context, userID string, conn connector.Connector, passphrase []byte, uidValidityGenerator imap.UIDValidityGenerator) (bool, error) { b.usersLock.Lock() defer b.usersLock.Unlock() storeBuilder, err := b.storeBuilder.New(b.getStoreDir(), userID, passphrase) if err != nil { return false, err } onErrorExit := func() { if err := storeBuilder.Close(); err != nil { logrus.WithError(err).Error("Failed to close store builder") } } database, isNew, err := b.database.New(b.getDBDir(), userID) if err != nil { onErrorExit() return false, err } if err := database.Init(ctx, uidValidityGenerator); err != nil { if err := database.Close(); err != nil { logrus.WithError(err).Errorf("Failed to close db after migration failure") } if !errors.Is(err, db.ErrMigrationFailed) && !errors.Is(err, db.ErrInvalidDatabaseVersion) { onErrorExit() return false, err } logrus.WithError(err).Errorf("First database migration failed") reporter.ExceptionWithContext(ctx, "database migration failed", reporter.Context{ "error": err, }) logrus.Debugf("First migration failed, recreating database") if err := b.database.Delete(b.getDBDir(), userID); err != nil { logrus.WithError(err).Errorf("Failed to delete old database") onErrorExit() return false, fmt.Errorf("failed to remove database after migration: %w", err) } database, isNew, err = b.database.New(b.getDBDir(), userID) if err != nil { logrus.WithError(err).Errorf("Failed to create new database") onErrorExit() return false, err } if !isNew { logrus.Errorf("Expected new database to not exist") if err := database.Close(); err != nil { logrus.WithError(err).Errorf("failed to closed db") } return false, fmt.Errorf("expected database to be new after failed migration cleanup") } if err := database.Init(ctx, uidValidityGenerator); err != nil { logrus.WithError(err).Errorf("Second database migration failed") onErrorExit() return false, err } } user, err := newUser(ctx, userID, database, conn, storeBuilder, b.delim, b.imapLimits, uidValidityGenerator, b.panicHandler) if err != nil { return false, err } b.users[userID] = user return isNew, nil } func (b *Backend) RemoveUser(ctx context.Context, userID string, removeFiles bool) error { b.usersLock.Lock() defer b.usersLock.Unlock() user, ok := b.users[userID] if !ok { return ErrNoSuchUser } if err := user.close(ctx); err != nil { reporter.MessageWithContext(ctx, "Failed to close user from Backend.RemoveUser()", reporter.Context{"error": err}, ) return fmt.Errorf("failed to close backend user: %w", err) } delete(b.users, userID) if removeFiles { if err := b.storeBuilder.Delete(b.getStoreDir(), userID); err != nil { return err } if err := b.database.Delete(b.getDBDir(), userID); err != nil { return err } } return nil } func (b *Backend) GetMailboxMessageCounts(ctx context.Context, userID string) (map[imap.MailboxID]int, error) { b.usersLock.Lock() defer b.usersLock.Unlock() user, ok := b.users[userID] if !ok { return nil, ErrNoSuchUser } return db.ClientReadType(ctx, user.db, func(ctx context.Context, c db.ReadOnly) (map[imap.MailboxID]int, error) { counts := make(map[imap.MailboxID]int) mailboxes, err := c.GetAllMailboxesAsRemoteIDs(ctx) if err != nil { return nil, err } for _, mailboxID := range mailboxes { messageCount, err := c.GetMailboxMessageCountWithRemoteID(ctx, mailboxID) if err != nil { return nil, err } counts[mailboxID] = messageCount } return counts, nil }) } func (b *Backend) GetState(ctx context.Context, username string, password []byte, sessionID int) (*state.State, error) { b.usersLock.Lock() defer b.usersLock.Unlock() userID, err := b.getUserID(ctx, username, password) if err != nil { // todo filter on error and track ErrLoginBlocked to notify the connector return nil, err } state, err := b.users[userID].newState() if err != nil { return nil, err } logrus. WithField("userID", userID). WithField("username", username). WithField("stateID", state.StateID). Debug("Created new IMAP state") return state, nil } func (b *Backend) ReleaseState(ctx context.Context, st *state.State) error { b.usersLock.Lock() defer b.usersLock.Unlock() userID := st.UserID() user, ok := b.users[userID] if !ok { return ErrNoSuchUser } return user.removeState(ctx, st) } func (b *Backend) Close(ctx context.Context) error { b.usersLock.Lock() defer b.usersLock.Unlock() for userID, user := range b.users { if err := user.close(ctx); err != nil { reporter.MessageWithContext(ctx, "Failed to close user from Backend.Close()", reporter.Context{"error": err}, ) return fmt.Errorf("failed to close backend user (%v): %w", userID, err) } delete(b.users, userID) } logrus.Debug("Backend was closed") return nil } func (b *Backend) getUserID(ctx context.Context, username string, password []byte) (string, error) { b.loginLock.Lock() defer b.loginLock.Unlock() b.loginWG.Wait() for _, user := range b.users { if user.connector.Authorize(ctx, username, password) { atomic.StoreInt32(&b.loginErrorCount, 0) return user.userID, nil } } if count := atomic.AddInt32(&b.loginErrorCount, 1); count == maxLoginAttempts { b.loginWG.Add(1) time.AfterFunc(b.loginJailTime, func() { defer b.loginWG.Done() atomic.StoreInt32(&b.loginErrorCount, 0) }) return "", ErrLoginBlocked } return "", ErrNoSuchUser } func (b *Backend) getStoreDir() string { return b.dataDir } func (b *Backend) getDBDir() string { return b.databaseDir } gluon-0.17.0/internal/backend/connector_updates.go000066400000000000000000000563441445200213000221770ustar00rootroot00000000000000package backend import ( "bytes" "context" "fmt" "io" "os" "runtime" "strings" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/ids" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/rfc822" "github.com/bradenaw/juniper/parallel" "github.com/bradenaw/juniper/xslices" "github.com/sirupsen/logrus" "golang.org/x/exp/slices" ) // apply an incoming update originating from the connector. func (user *user) apply(ctx context.Context, update imap.Update) error { logrus.WithField("update", update).WithField("user-id", user.userID).Debug("Applying update") err := func() error { switch update := update.(type) { case *imap.MailboxCreated: return user.applyMailboxCreated(ctx, update) case *imap.MailboxDeleted: return user.applyMailboxDeleted(ctx, update) case *imap.MailboxUpdated: return user.applyMailboxUpdated(ctx, update) case *imap.MailboxIDChanged: return user.applyMailboxIDChanged(ctx, update) case *imap.MessagesCreated: return user.applyMessagesCreated(ctx, update) case *imap.MessageMailboxesUpdated: return user.applyMessageMailboxesUpdated(ctx, update) case *imap.MessageFlagsUpdated: return user.applyMessageFlagsUpdated(ctx, update) case *imap.MessageIDChanged: return user.applyMessageIDChanged(ctx, update) case *imap.MessageDeleted: return user.applyMessageDeleted(ctx, update) case *imap.MessageUpdated: return user.applyMessageUpdated(ctx, update) case *imap.UIDValidityBumped: return user.applyUIDValidityBumped(ctx, update) case *imap.Noop: return nil default: return fmt.Errorf("bad update") } }() update.Done(err) return err } // applyMailboxCreated applies a MailboxCreated update. func (user *user) applyMailboxCreated(ctx context.Context, update *imap.MailboxCreated) error { if update.Mailbox.ID == ids.GluonInternalRecoveryMailboxRemoteID { return fmt.Errorf("attempting to create protected mailbox (recovery)") } if exists, err := db.ClientReadType(ctx, user.db, func(ctx context.Context, client db.ReadOnly) (bool, error) { return client.MailboxExistsWithRemoteID(ctx, update.Mailbox.ID) }); err != nil { return err } else if exists { return nil } uidValidity, err := user.uidValidityGenerator.Generate() if err != nil { return err } if err := user.imapLimits.CheckUIDValidity(uidValidity); err != nil { return err } return user.db.Write(ctx, func(ctx context.Context, tx db.Transaction) error { if mailboxCount, err := tx.GetMailboxCount(ctx); err != nil { return err } else if err := user.imapLimits.CheckMailBoxCount(mailboxCount); err != nil { return err } if _, err := tx.CreateMailbox( ctx, update.Mailbox.ID, strings.Join(update.Mailbox.Name, user.delimiter), update.Mailbox.Flags, update.Mailbox.PermanentFlags, update.Mailbox.Attributes, uidValidity, ); err != nil { return err } return nil }) } // applyMailboxDeleted applies a MailboxDeleted update. func (user *user) applyMailboxDeleted(ctx context.Context, update *imap.MailboxDeleted) error { if update.MailboxID == ids.GluonInternalRecoveryMailboxRemoteID { return fmt.Errorf("attempting to delete protected mailbox (recovery)") } return userDBWrite(ctx, user, func(ctx context.Context, tx db.Transaction) ([]state.Update, error) { mailbox, err := tx.GetMailboxByRemoteID(ctx, update.MailboxID) if err != nil { if db.IsErrNotFound(err) { return nil, nil } return nil, err } if err := tx.DeleteMailboxWithRemoteID(ctx, update.MailboxID); err != nil { return nil, err } if _, err := tx.RemoveDeletedSubscriptionWithName(ctx, mailbox.Name); err != nil { return nil, err } return []state.Update{state.NewMailboxDeletedStateUpdate(mailbox.ID)}, nil }) } // applyMailboxUpdated applies a MailboxUpdated update. func (user *user) applyMailboxUpdated(ctx context.Context, update *imap.MailboxUpdated) error { if update.MailboxID == ids.GluonInternalRecoveryMailboxRemoteID { return fmt.Errorf("attempting to rename protected mailbox (recovery)") } return user.db.Write(ctx, func(ctx context.Context, tx db.Transaction) error { if exists, err := tx.MailboxExistsWithRemoteID(ctx, update.MailboxID); err != nil { return err } else if !exists { return nil } currentName, err := tx.GetMailboxNameWithRemoteID(ctx, update.MailboxID) if err != nil { return err } if currentName == strings.Join(update.MailboxName, user.delimiter) { return nil } return tx.RenameMailboxWithRemoteID(ctx, update.MailboxID, strings.Join(update.MailboxName, user.delimiter)) }) } // applyMailboxIDChanged applies a MailboxIDChanged update. func (user *user) applyMailboxIDChanged(ctx context.Context, update *imap.MailboxIDChanged) error { if update.InternalID == user.recoveryMailboxID { return fmt.Errorf("attempting to change protected mailbox (recovery) remote ID") } return userDBWrite(ctx, user, func(ctx context.Context, tx db.Transaction) ([]state.Update, error) { if err := tx.UpdateRemoteMailboxID(ctx, update.InternalID, update.RemoteID); err != nil { return nil, err } return []state.Update{state.NewMailboxRemoteIDUpdateStateUpdate(update.InternalID, update.RemoteID)}, nil }) } // applyMessagesCreated applies a MessagesCreated update. func (user *user) applyMessagesCreated(ctx context.Context, update *imap.MessagesCreated) error { type DBRequestWithLiteral struct { db.CreateMessageReq reader io.Reader } // collect all unique messages to create messagesToCreate := make([]*DBRequestWithLiteral, 0, len(update.Messages)) messagesToCreateFilter := make(map[imap.MessageID]imap.InternalMessageID, len(update.Messages)/2) messageForMBox := make(map[imap.InternalMailboxID][]db.MessageIDPair) mboxInternalIDMap := make(map[imap.MailboxID]imap.InternalMailboxID) err := userDBWrite(ctx, user, func(ctx context.Context, tx db.Transaction) ([]state.Update, error) { for _, message := range update.Messages { if slices.Contains(message.MailboxIDs, ids.GluonInternalRecoveryMailboxRemoteID) { logrus.Errorf("attempting to import messages into protected mailbox (recovery), skipping") continue } internalID, ok := messagesToCreateFilter[message.Message.ID] if !ok { messageID, err := tx.GetMessageIDFromRemoteID(ctx, message.Message.ID) if db.IsErrNotFound(err) { internalID = imap.NewInternalMessageID() literalReader, literalSize, err := rfc822.SetHeaderValueNoMemCopy(message.Literal, ids.InternalIDKey, internalID.String()) if err != nil { return nil, fmt.Errorf("failed to set internal ID: %w", err) } request := &DBRequestWithLiteral{ CreateMessageReq: db.CreateMessageReq{ Message: message.Message, LiteralSize: literalSize, Body: message.ParsedMessage.Body, Structure: message.ParsedMessage.Structure, Envelope: message.ParsedMessage.Envelope, InternalID: internalID, }, reader: literalReader, } messagesToCreate = append(messagesToCreate, request) messagesToCreateFilter[message.Message.ID] = internalID } else if err == nil { internalID = messageID } else { return nil, err } } for _, mboxID := range message.MailboxIDs { v, ok := mboxInternalIDMap[mboxID] if !ok { internalMBoxID, err := tx.GetMailboxIDFromRemoteID(ctx, mboxID) if err != nil { // If a mailbox doesn't exist and we are allowed to skip move to next mailbox. if update.IgnoreUnknownMailboxIDs { logrus.WithField("MailboxID", mboxID.ShortID()). WithField("MessageID", message.Message.ID.ShortID()). Warn("Unknown Mailbox ID, skipping add to mailbox") continue } return nil, err } v = internalMBoxID mboxInternalIDMap[mboxID] = v } messageList, ok := messageForMBox[v] if !ok { messageList = []db.MessageIDPair{} messageForMBox[v] = messageList } if !slices.ContainsFunc(messageList, func(id db.MessageIDPair) bool { return id.InternalID == internalID }) { messageList = append(messageList, db.MessageIDPair{InternalID: internalID, RemoteID: message.Message.ID}) messageForMBox[v] = messageList } } } if len(messagesToCreate) == 0 && len(messageForMBox) == 0 { return nil, nil } for _, chunk := range xslices.Chunk(messagesToCreate, db.ChunkLimit) { // Create messages in the store in parallel numStoreRoutines := runtime.NumCPU() / 4 if numStoreRoutines < len(chunk) { numStoreRoutines = len(chunk) } if err := parallel.DoContext(ctx, numStoreRoutines, len(chunk), func(ctx context.Context, i int) error { msg := chunk[i] if err := user.store.SetUnchecked(msg.InternalID, msg.reader); err != nil { return fmt.Errorf("failed to store message literal: %w", err) } return nil }); err != nil { return nil, err } // Create message in the database if err := tx.CreateMessages(ctx, xslices.Map(chunk, func(req *DBRequestWithLiteral) *db.CreateMessageReq { return &req.CreateMessageReq })...); err != nil { return nil, err } } var stateUpdates []state.Update // Assign all the messages to the mailbox for mboxID, msgList := range messageForMBox { inMailbox, err := tx.MailboxFilterContains(ctx, mboxID, msgList) if err != nil { return nil, err } toAdd := xslices.Filter(msgList, func(id db.MessageIDPair) bool { return !slices.Contains(inMailbox, id.InternalID) }) if len(toAdd) != 0 { _, update, err := user.applyMessagesAddedToMailbox(ctx, tx, mboxID, toAdd) if err != nil { return nil, err } stateUpdates = append(stateUpdates, update) } } return stateUpdates, nil }) // Clean up cache messages that were created if the transaction failed. if err != nil { for _, message := range messagesToCreate { if err := user.store.DeleteUnchecked(message.InternalID); err != nil { if !os.IsNotExist(err) { logrus.WithError(err).Errorf("Failed to delete cache message %v after failed transaction", message.InternalID) } } } } return err } // applyMessageMailboxesUpdated applies a MessageMailboxesUpdated update. func (user *user) applyMessageMailboxesUpdated(ctx context.Context, update *imap.MessageMailboxesUpdated) error { if slices.Contains(update.MailboxIDs, ids.GluonInternalRecoveryMailboxRemoteID) { return fmt.Errorf("attempting to move messages into protected mailbox (recovery)") } if exists, err := db.ClientReadType(ctx, user.db, func(ctx context.Context, client db.ReadOnly) (bool, error) { return client.MessageExistsWithRemoteID(ctx, update.MessageID) }); err != nil { return err } else if !exists { return state.ErrNoSuchMessage } return userDBWrite(ctx, user, func(ctx context.Context, tx db.Transaction) ([]state.Update, error) { internalMsgID, err := tx.GetMessageIDFromRemoteID(ctx, update.MessageID) if err != nil { if db.IsErrNotFound(err) { return nil, state.ErrNoSuchMessage } return nil, err } internalMBoxIDs, err := tx.MailboxTranslateRemoteIDs(ctx, update.MailboxIDs) if err != nil { return nil, err } var stateUpdates []state.Update mboxUpdates, err := user.setMessageMailboxes(ctx, tx, db.MessageIDPair{ InternalID: internalMsgID, RemoteID: update.MessageID, }, internalMBoxIDs) if err != nil { return nil, err } stateUpdates = append(stateUpdates, mboxUpdates...) flagUpdates, err := user.setMessageFlags(ctx, tx, internalMsgID, update.Flags) if err != nil { return nil, err } return append(stateUpdates, flagUpdates...), nil }) } // applyMessageFlagsUpdated applies a MessageFlagsUpdated update. func (user *user) applyMessageFlagsUpdated(ctx context.Context, update *imap.MessageFlagsUpdated) error { if exists, err := db.ClientReadType(ctx, user.db, func(ctx context.Context, client db.ReadOnly) (bool, error) { return client.MessageExistsWithRemoteID(ctx, update.MessageID) }); err != nil { return err } else if !exists { return state.ErrNoSuchMessage } return userDBWrite(ctx, user, func(ctx context.Context, tx db.Transaction) ([]state.Update, error) { internalMsgID, err := tx.GetMessageIDFromRemoteID(ctx, update.MessageID) if err != nil { if db.IsErrNotFound(err) { return nil, state.ErrNoSuchMessage } return nil, err } return user.setMessageFlags(ctx, tx, internalMsgID, update.Flags) }) } // applyMessageIDChanged applies a MessageIDChanged update. func (user *user) applyMessageIDChanged(ctx context.Context, update *imap.MessageIDChanged) error { if err := user.db.Write(ctx, func(ctx context.Context, tx db.Transaction) error { return tx.UpdateRemoteMessageID(ctx, update.InternalID, update.RemoteID) }); err != nil { return err } if err := user.forState(func(state *state.State) error { return state.UpdateMessageRemoteID(update.InternalID, update.RemoteID) }); err != nil { return err } return nil } func (user *user) setMessageMailboxes(ctx context.Context, tx db.Transaction, messageID db.MessageIDPair, mboxIDs []imap.InternalMailboxID) ([]state.Update, error) { curMailboxIDs, err := tx.GetMessageMailboxIDs(ctx, messageID.InternalID) if err != nil { return nil, err } var updates []state.Update for _, mboxID := range xslices.Filter(mboxIDs, func(mboxID imap.InternalMailboxID) bool { return !slices.Contains(curMailboxIDs, mboxID) }) { _, update, err := user.applyMessagesAddedToMailbox(ctx, tx, mboxID, []db.MessageIDPair{messageID}) if err != nil { return nil, err } updates = append(updates, update) } for _, mboxID := range xslices.Filter(curMailboxIDs, func(mboxID imap.InternalMailboxID) bool { return !slices.Contains(mboxIDs, mboxID) }) { update, err := user.applyMessagesRemovedFromMailbox(ctx, tx, mboxID, []imap.InternalMessageID{messageID.InternalID}) if err != nil { return nil, err } updates = append(updates, update...) } return updates, nil } // applyMessagesAddedToMailbox adds the messages to the given mailbox. func (user *user) applyMessagesAddedToMailbox(ctx context.Context, tx db.Transaction, mboxID imap.InternalMailboxID, messageIDs []db.MessageIDPair) ([]db.UIDWithFlags, state.Update, error) { return state.AddMessagesToMailbox(ctx, tx, mboxID, messageIDs, nil, user.imapLimits) } // applyMessagesRemovedFromMailbox removes the messages from the given mailbox. func (user *user) applyMessagesRemovedFromMailbox(ctx context.Context, tx db.Transaction, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID) ([]state.Update, error) { return state.RemoveMessagesFromMailbox(ctx, tx, mboxID, messageIDs) } func (user *user) setMessageFlags(ctx context.Context, tx db.Transaction, messageID imap.InternalMessageID, flags imap.FlagSet) ([]state.Update, error) { var stateUpdates []state.Update curFlags, err := tx.GetMessagesFlags(ctx, []imap.InternalMessageID{messageID}) if err != nil { return nil, err } flagSet := curFlags[0].FlagSet for _, v := range flagSet.ToSliceUnsorted() { if !flags.Contains(v) { update, err := user.removeMessageFlags(ctx, tx, messageID, v) if err != nil { return nil, err } stateUpdates = append(stateUpdates, update) } } for _, v := range flags.ToSliceUnsorted() { if !flagSet.Contains(v) { update, err := user.addMessageFlags(ctx, tx, messageID, v) if err != nil { return nil, err } stateUpdates = append(stateUpdates, update) } } return stateUpdates, nil } func (user *user) addMessageFlags(ctx context.Context, tx db.Transaction, messageID imap.InternalMessageID, flag string) (state.Update, error) { if err := tx.AddFlagToMessages(ctx, []imap.InternalMessageID{messageID}, flag); err != nil { return nil, err } return state.NewRemoteAddMessageFlagsStateUpdate(messageID, flag), nil } func (user *user) removeMessageFlags(ctx context.Context, tx db.Transaction, messageID imap.InternalMessageID, flag string) (state.Update, error) { if err := tx.RemoveFlagFromMessages(ctx, []imap.InternalMessageID{messageID}, flag); err != nil { return nil, err } return state.NewRemoteRemoveMessageFlagsStateUpdate(messageID, flag), nil } func (user *user) applyMessageDeleted(ctx context.Context, update *imap.MessageDeleted) error { if err := userDBWrite(ctx, user, func(ctx context.Context, tx db.Transaction) ([]state.Update, error) { if err := tx.MarkMessageAsDeletedWithRemoteID(ctx, update.MessageID); err != nil { if db.IsErrNotFound(err) { return nil, nil } return nil, err } internalMessageID, err := tx.GetMessageIDFromRemoteID(ctx, update.MessageID) if err != nil { if db.IsErrNotFound(err) { return nil, nil } return nil, err } mailboxes, err := tx.GetMessageMailboxIDs(ctx, internalMessageID) if err != nil { return nil, err } messageIDs := []imap.InternalMessageID{internalMessageID} var stateUpdates []state.Update for _, mailbox := range mailboxes { updates, err := state.RemoveMessagesFromMailbox(ctx, tx, mailbox, messageIDs) if err != nil { return nil, err } stateUpdates = append(stateUpdates, updates...) } return stateUpdates, nil }); err != nil { return err } return nil } func (user *user) applyMessageUpdated(ctx context.Context, update *imap.MessageUpdated) error { log := logrus.WithField("message updated", update.Message.ID.ShortID()) internalMessageID, err := db.ClientReadType(ctx, user.db, func(ctx context.Context, client db.ReadOnly) (imap.InternalMessageID, error) { return client.GetMessageIDFromRemoteID(ctx, update.Message.ID) }) if db.IsErrNotFound(err) { if update.AllowCreate { log.Warn("Message not found, creating it instead") return user.applyMessagesCreated(ctx, imap.NewMessagesCreated(true, &imap.MessageCreated{ Message: update.Message, Literal: update.Literal, MailboxIDs: update.MailboxIDs, ParsedMessage: update.ParsedMessage, })) } else { log.Warn("Message not found, skipping update") return nil } } else if err != nil { return err } return userDBWrite(ctx, user, func(ctx context.Context, tx db.Transaction) ([]state.Update, error) { // compare and see if the literal has changed. onDiskLiteral, err := user.store.Get(internalMessageID) if err != nil { logrus.Debugf("failed to retrieve literal from cache: %v", err) } updateLiteral := update.Literal if id, err := rfc822.GetHeaderValue(updateLiteral, ids.InternalIDKey); err == nil { if len(id) == 0 { l, err := rfc822.SetHeaderValue(updateLiteral, ids.InternalIDKey, internalMessageID.String()) if err != nil { log.WithError(err).Debug("failed to set header key, using update literal") } else { updateLiteral = l } } } else { log.Debug("Failed to get header value from literal, using update literal") } var stateUpdates []state.Update if bytes.Equal(onDiskLiteral, updateLiteral) { log.Debug("Message not updated as there are no changes to literals, assigning mailboxes only") targetMailboxes := make([]imap.InternalMailboxID, 0, len(update.MailboxIDs)) for _, mbox := range update.MailboxIDs { internalMBoxID, err := tx.GetMailboxIDFromRemoteID(ctx, mbox) if err != nil { return nil, err } targetMailboxes = append(targetMailboxes, internalMBoxID) } flagUpdates, err := user.setMessageFlags(ctx, tx, internalMessageID, update.Message.Flags) if err != nil { return nil, err } stateUpdates = append(stateUpdates, flagUpdates...) mboxUpdates, err := user.setMessageMailboxes(ctx, tx, db.MessageIDPair{ InternalID: internalMessageID, RemoteID: update.Message.ID, }, targetMailboxes) if err != nil { return nil, err } return append(stateUpdates, mboxUpdates...), nil } else { log.Debug("Message has new literal, applying update") { // delete the message and remove from the mailboxes. mailboxes, err := tx.GetMessageMailboxIDs(ctx, internalMessageID) if err != nil { return nil, err } messageIDs := []imap.InternalMessageID{internalMessageID} for _, mailbox := range mailboxes { updates, err := state.RemoveMessagesFromMailbox(ctx, tx, mailbox, messageIDs) if err != nil { return nil, err } stateUpdates = append(stateUpdates, updates...) } // We need change the old remote id as it will break our table constraint otherwise and everything // will silently fail. if err := tx.MarkMessageAsDeletedAndAssignRandomRemoteID(ctx, internalMessageID); err != nil { return nil, err } } // create new entry { newInternalID := imap.NewInternalMessageID() literalReader, literalSize, err := rfc822.SetHeaderValueNoMemCopy(update.Literal, ids.InternalIDKey, newInternalID.String()) if err != nil { return nil, fmt.Errorf("failed to set internal ID: %w", err) } request := &db.CreateMessageReq{ Message: update.Message, LiteralSize: literalSize, Body: update.ParsedMessage.Body, Structure: update.ParsedMessage.Structure, Envelope: update.ParsedMessage.Envelope, InternalID: newInternalID, } if err := tx.CreateMessages(ctx, request); err != nil { return nil, err } if err := user.store.Set(newInternalID, literalReader); err != nil { return nil, err } for _, mbox := range update.MailboxIDs { internalMBoxID, err := tx.GetMailboxIDFromRemoteID(ctx, mbox) if err != nil { return nil, err } _, update, err := state.AddMessagesToMailbox( ctx, tx, internalMBoxID, []db.MessageIDPair{{InternalID: newInternalID, RemoteID: update.Message.ID}}, nil, user.imapLimits, ) if err != nil { return nil, err } stateUpdates = append(stateUpdates, update) } } } return stateUpdates, nil }) } // applyUIDValidityBumped applies a UIDValidityBumped event to the user. func (user *user) applyUIDValidityBumped(ctx context.Context, update *imap.UIDValidityBumped) error { if err := user.db.Write(ctx, func(ctx context.Context, tx db.Transaction) error { mailboxes, err := tx.GetAllMailboxesWithAttr(ctx) if err != nil { return err } for _, mailbox := range mailboxes { uidValidity, err := user.uidValidityGenerator.Generate() if err != nil { return err } if err := tx.SetMailboxUIDValidity(ctx, mailbox.ID, uidValidity); err != nil { return err } } return nil }); err != nil { return err } user.queueStateUpdate(state.NewUIDValidityBumpedStateUpdate()) return nil } func userDBWrite(ctx context.Context, user *user, fn func(context.Context, db.Transaction) ([]state.Update, error)) error { var updates []state.Update if err := user.db.Write(ctx, func(ctx context.Context, tx db.Transaction) error { up, err := fn(ctx, tx) updates = up return err }); err != nil { return err } if len(updates) != 0 { user.queueStateUpdate(updates...) } return nil } func userDBWriteResult[T any](ctx context.Context, user *user, fn func(context.Context, db.Transaction) ([]state.Update, T, error)) (T, error) { var updates []state.Update result, err := db.ClientWriteType(ctx, user.db, func(ctx context.Context, tx db.Transaction) (T, error) { up, val, err := fn(ctx, tx) updates = up return val, err }) if err != nil { var t T return t, err } // need to create a separate transaction for the state updates so that import changes get written first. if len(updates) != 0 { user.queueStateUpdate(updates...) } return result, nil } gluon-0.17.0/internal/backend/errors.go000066400000000000000000000002211445200213000177530ustar00rootroot00000000000000package backend import "errors" var ( ErrNoSuchUser = errors.New("no such user") ErrLoginBlocked = errors.New("too many login attempts") ) gluon-0.17.0/internal/backend/state_connector_impl.go000066400000000000000000000074731445200213000226720ustar00rootroot00000000000000package backend import ( "context" "time" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/state" ) type stateConnectorImpl struct { connector connector.Connector metadata map[string]any user *user } func newStateConnectorImpl(u *user) state.Connector { return &stateConnectorImpl{ connector: u.connector, metadata: make(map[string]any), user: u, } } func (sc *stateConnectorImpl) SetConnMetadataValue(key string, value any) { sc.metadata[key] = value } func (sc *stateConnectorImpl) ClearConnMetadataValue(key string) { delete(sc.metadata, key) } func (sc *stateConnectorImpl) ClearAllConnMetadata() { sc.metadata = make(map[string]any) } func (sc *stateConnectorImpl) CreateMailbox(ctx context.Context, name []string) (imap.Mailbox, error) { ctx = sc.newContextWithMetadata(ctx) mbox, err := sc.connector.CreateMailbox(ctx, name) if err != nil { return imap.Mailbox{}, err } return mbox, nil } func (sc *stateConnectorImpl) UpdateMailbox(ctx context.Context, mboxID imap.MailboxID, newName []string) error { ctx = sc.newContextWithMetadata(ctx) return sc.connector.UpdateMailboxName(ctx, mboxID, newName) } func (sc *stateConnectorImpl) DeleteMailbox(ctx context.Context, mboxID imap.MailboxID) error { ctx = sc.newContextWithMetadata(ctx) return sc.connector.DeleteMailbox(ctx, mboxID) } func (sc *stateConnectorImpl) CreateMessage( ctx context.Context, mboxID imap.MailboxID, literal []byte, flags imap.FlagSet, date time.Time, ) (imap.InternalMessageID, imap.Message, []byte, error) { ctx = sc.newContextWithMetadata(ctx) msg, newLiteral, err := sc.connector.CreateMessage(ctx, mboxID, literal, flags, date) if err != nil { return imap.InternalMessageID{}, imap.Message{}, nil, err } return imap.NewInternalMessageID(), msg, newLiteral, nil } func (sc *stateConnectorImpl) GetMessageLiteral(ctx context.Context, id imap.MessageID) ([]byte, error) { ctx = sc.newContextWithMetadata(ctx) return sc.connector.GetMessageLiteral(ctx, id) } func (sc *stateConnectorImpl) AddMessagesToMailbox( ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID, ) error { ctx = sc.newContextWithMetadata(ctx) return sc.connector.AddMessagesToMailbox(ctx, messageIDs, mboxID) } func (sc *stateConnectorImpl) RemoveMessagesFromMailbox( ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID, ) error { ctx = sc.newContextWithMetadata(ctx) return sc.connector.RemoveMessagesFromMailbox(ctx, messageIDs, mboxID) } func (sc *stateConnectorImpl) MoveMessagesFromMailbox( ctx context.Context, messageIDs []imap.MessageID, mboxFromID imap.MailboxID, mboxToID imap.MailboxID, ) (bool, error) { ctx = sc.newContextWithMetadata(ctx) return sc.connector.MoveMessages(ctx, messageIDs, mboxFromID, mboxToID) } func (sc *stateConnectorImpl) SetMessagesSeen(ctx context.Context, messageIDs []imap.MessageID, seen bool) error { ctx = sc.newContextWithMetadata(ctx) return sc.connector.MarkMessagesSeen(ctx, messageIDs, seen) } func (sc *stateConnectorImpl) SetMessagesFlagged(ctx context.Context, messageIDs []imap.MessageID, flagged bool) error { ctx = sc.newContextWithMetadata(ctx) return sc.connector.MarkMessagesFlagged(ctx, messageIDs, flagged) } func (sc *stateConnectorImpl) GetMailboxVisibility(ctx context.Context, id imap.MailboxID) imap.MailboxVisibility { return sc.connector.GetMailboxVisibility(ctx, id) } func (sc *stateConnectorImpl) getMetadataValue(key string) any { v, ok := sc.metadata[key] if !ok { return nil } return v } func (sc *stateConnectorImpl) newContextWithMetadata(ctx context.Context) context.Context { if v := sc.getMetadataValue(imap.IMAPIDConnMetadataKey); v != nil { switch x := v.(type) { case imap.IMAPID: ctx = imap.NewContextWithIMAPID(ctx, x) } } return ctx } gluon-0.17.0/internal/backend/state_user_interface_impl.go000066400000000000000000000050721445200213000236670ustar00rootroot00000000000000package backend import ( "context" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/ids" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/internal/utils" "github.com/ProtonMail/gluon/store" ) // StateUserInterfaceImpl should be used to interface with the user type from a State type. This is meant to control // the API boundary layer. type StateUserInterfaceImpl struct { u *user c state.Connector } func newStateUserInterfaceImpl(u *user, connector state.Connector) *StateUserInterfaceImpl { return &StateUserInterfaceImpl{u: u, c: connector} } func (s *StateUserInterfaceImpl) GetUserID() string { return s.u.userID } func (s *StateUserInterfaceImpl) GetDelimiter() string { return s.u.delimiter } func (s *StateUserInterfaceImpl) GetDB() db.Client { return s.u.db } func (s *StateUserInterfaceImpl) GetRemote() state.Connector { return s.c } func (s *StateUserInterfaceImpl) GetStore() *store.WriteControlledStore { return s.u.store } func (s *StateUserInterfaceImpl) QueueOrApplyStateUpdate(ctx context.Context, tx db.Transaction, updates ...state.Update) error { // If we detect a state id in the context, it means this function call is a result of a User interaction. // When that happens the update needs to be applied to the state matching the state ID immediately. If no such // stateID exists or the context information is not present, all updates are queued for later execution. stateID, ok := state.GetStateIDFromContext(ctx) if !ok { return s.u.forState(func(state *state.State) error { state.QueueUpdates(updates...) return nil }) } else { return s.u.forState(func(state *state.State) error { if state.StateID != stateID { state.QueueUpdates(updates...) return nil } else { for _, update := range updates { if !update.Filter(state) { continue } if err := update.Apply(ctx, tx, state); err != nil { return err } } return nil } }) } } func (s *StateUserInterfaceImpl) ReleaseState(ctx context.Context, st *state.State) error { return s.u.removeState(ctx, st) } func (s *StateUserInterfaceImpl) GenerateUIDValidity() (imap.UID, error) { return s.u.uidValidityGenerator.Generate() } func (s *StateUserInterfaceImpl) GetRecoveryMailboxID() db.MailboxIDPair { return db.MailboxIDPair{ InternalID: s.u.recoveryMailboxID, RemoteID: ids.GluonInternalRecoveryMailboxRemoteID, } } func (s *StateUserInterfaceImpl) GetRecoveredMessageHashesMap() *utils.MessageHashesMap { return s.u.recoveredMessageHashes } gluon-0.17.0/internal/backend/update_injector.go000066400000000000000000000041541445200213000216270ustar00rootroot00000000000000package backend import ( "context" "sync" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/logging" ) // updateInjector allows anyone to publish custom imap updates alongside the updates that are generated from the // Connector. type updateInjector struct { // updatesCh is the channel that delivers API updates to the mailserver. updatesCh chan imap.Update // forwardWG is used to ensure we wait until the forward() goroutine has finished executing. forwardWG sync.WaitGroup forwardQuitCh chan struct{} } // newUpdateInjector creates a new updateInjector. // // nolint:contextcheck func newUpdateInjector(connector connector.Connector, userID string, panicHandler async.PanicHandler) *updateInjector { injector := &updateInjector{ updatesCh: make(chan imap.Update), forwardQuitCh: make(chan struct{}), } injector.forwardWG.Add(1) async.GoAnnotated(context.Background(), panicHandler, func(ctx context.Context) { injector.forward(ctx, connector.GetUpdates()) }, logging.Labels{ "Action": "Forwarding updates", "UserID": userID, }) return injector } // GetUpdates returns a channel on which updates from the server are sent. func (u *updateInjector) GetUpdates() <-chan imap.Update { return u.updatesCh } func (u *updateInjector) Close(ctx context.Context) error { close(u.forwardQuitCh) u.forwardWG.Wait() return nil } // forward pulls updates off the stream and forwards them to the outgoing update channel. func (u *updateInjector) forward(ctx context.Context, updateCh <-chan imap.Update) { defer func() { close(u.updatesCh) u.forwardWG.Done() }() for { select { case <-ctx.Done(): return case update, ok := <-updateCh: if !ok { return } u.send(ctx, update) case <-u.forwardQuitCh: return } } } // send the update on the updates channel, optionally blocking until it has been processed. func (u *updateInjector) send(ctx context.Context, update imap.Update) { select { case <-u.forwardQuitCh: return case u.updatesCh <- update: case <-ctx.Done(): return } } gluon-0.17.0/internal/backend/user.go000066400000000000000000000220061445200213000174220ustar00rootroot00000000000000package backend import ( "context" "fmt" "sync" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/ids" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/internal/utils" "github.com/ProtonMail/gluon/limits" "github.com/ProtonMail/gluon/logging" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/store" "github.com/bradenaw/juniper/xslices" "github.com/sirupsen/logrus" "golang.org/x/exp/maps" ) type user struct { userID string connector connector.Connector updateInjector *updateInjector store *store.WriteControlledStore delimiter string db db.Client states map[state.StateID]*state.State statesLock sync.RWMutex statesWG sync.WaitGroup updateWG sync.WaitGroup updateQuitCh chan struct{} recoveryMailboxID imap.InternalMailboxID imapLimits limits.IMAP uidValidityGenerator imap.UIDValidityGenerator panicHandler async.PanicHandler recoveredMessageHashes *utils.MessageHashesMap } func newUser( ctx context.Context, userID string, database db.Client, conn connector.Connector, st store.Store, delimiter string, imapLimits limits.IMAP, uidValidityGenerator imap.UIDValidityGenerator, panicHandler async.PanicHandler, ) (*user, error) { recoveredMessageHashes := utils.NewMessageHashesMap() // Create recovery mailbox if it does not exist recoveryMBox, err := db.ClientWriteType(ctx, database, func(ctx context.Context, tx db.Transaction) (*db.Mailbox, error) { uidValidity, err := uidValidityGenerator.Generate() if err != nil { return nil, err } mboxFlags := imap.NewFlagSet(imap.FlagSeen, imap.FlagFlagged, imap.FlagDeleted) mbox := imap.Mailbox{ ID: ids.GluonInternalRecoveryMailboxRemoteID, Name: []string{ids.GluonRecoveryMailboxName}, Flags: mboxFlags, PermanentFlags: mboxFlags, Attributes: imap.NewFlagSet(imap.AttrNoInferiors), } recoveryMBox, err := tx.GetOrCreateMailboxAlt(ctx, mbox, delimiter, uidValidity) if err != nil { return nil, err } // Pre-fill the message hashes map messages, err := tx.GetMailboxMessageIDPairs(ctx, recoveryMBox.ID) if err != nil { return nil, err } for _, m := range messages { literal, err := st.Get(m.InternalID) if err != nil { logrus.WithError(err).Errorf("Failed to load %v for store for recovered message hashes map", m.InternalID) continue } if _, err := recoveredMessageHashes.Insert(m.InternalID, literal); err != nil { logrus.WithError(err).Errorf("Failed insert literal for %v into recovered message hashes map", m.InternalID) } } return recoveryMBox, nil }) if err != nil { return nil, err } user := &user{ userID: userID, connector: conn, updateInjector: newUpdateInjector(conn, userID, panicHandler), store: store.NewWriteControlledStore(st), delimiter: delimiter, db: database, states: make(map[state.StateID]*state.State), updateQuitCh: make(chan struct{}), recoveryMailboxID: recoveryMBox.ID, imapLimits: imapLimits, uidValidityGenerator: uidValidityGenerator, panicHandler: panicHandler, recoveredMessageHashes: recoveredMessageHashes, } if err := user.deleteAllMessagesMarkedDeleted(ctx); err != nil { logrus.WithError(err).Error("Failed to remove deleted messages") reporter.MessageWithContext(ctx, "Failed to remove deleted messages", reporter.Context{"error": err}, ) } if err := user.cleanupStaleStoreData(ctx); err != nil { logrus.WithError(err).Error("Failed to cleanup stale store data") } user.updateWG.Add(1) // nolint:contextcheck async.GoAnnotated(context.Background(), panicHandler, func(ctx context.Context) { defer user.updateWG.Done() updateCh := user.updateInjector.GetUpdates() for { select { case update, ok := <-updateCh: if !ok { return } if err := user.apply(ctx, update); err != nil { reporter.MessageWithContext(ctx, "Failed to apply connector update", reporter.Context{"error": err, "update": update.String()}, ) logrus.WithError(err).Errorf("Failed to apply update: %v", err) } case <-user.updateQuitCh: return } } }, logging.Labels{ "Action": "Applying connector updates", "UserID": userID, }) return user, nil } // close closes the backend user. func (user *user) close(ctx context.Context) error { close(user.updateQuitCh) // Wait until the connector update go routine has finished. user.updateWG.Wait() if err := user.updateInjector.Close(ctx); err != nil { return err } if err := user.connector.Close(ctx); err != nil { return err } user.closeStates() // Ensure we wait until all states have been removed/closed by any active sessions otherwise we run into issues // since we close the database in this function. user.statesWG.Wait() if err := user.store.Close(); err != nil { return fmt.Errorf("failed to close user client storage: %w", err) } if err := user.db.Close(); err != nil { return fmt.Errorf("failed to close user db: %w", err) } return nil } func (user *user) deleteAllMessagesMarkedDeleted(ctx context.Context) error { // Delete messages in database first before deleting from the storage to avoid data loss. ids, err := db.ClientWriteType(ctx, user.db, func(ctx context.Context, tx db.Transaction) ([]imap.InternalMessageID, error) { ids, err := tx.GetMessageIDsMarkedAsDelete(ctx) if err != nil { return nil, err } if err := tx.DeleteMessages(ctx, ids); err != nil { return nil, err } return ids, nil }) if err != nil { return err } return user.store.Delete(ids...) } func (user *user) queueStateUpdate(updates ...state.Update) { if err := user.forState(func(state *state.State) error { for _, update := range updates { if !state.QueueUpdates(update) { logrus.Errorf("Failed to push update to state %v", state.StateID) } } return nil }); err != nil { panic("unexpected, should not happen") } } func (user *user) newState() (*state.State, error) { user.statesLock.Lock() defer user.statesLock.Unlock() newState := state.NewState( newStateUserInterfaceImpl(user, newStateConnectorImpl(user)), user.delimiter, user.imapLimits, user.panicHandler, ) user.states[newState.StateID] = newState user.statesWG.Add(1) return newState, nil } func (user *user) removeState(ctx context.Context, st *state.State) error { messageIDs, err := db.ClientReadType(ctx, user.db, func(ctx context.Context, client db.ReadOnly) ([]imap.InternalMessageID, error) { return client.GetMessageIDsMarkedAsDelete(ctx) }) if err != nil { return err } // We need to reduce the scope of this lock as it can deadlock when there's an IMAP update running // at the same time as we remove a state. When the IMAP update propagates the info the order of the locks // is inverse to the order we have here. fn := func() (*state.State, error) { user.statesLock.Lock() defer user.statesLock.Unlock() st, ok := user.states[st.StateID] if !ok { return nil, fmt.Errorf("no such state") } messageIDs = xslices.Filter(messageIDs, func(messageID imap.InternalMessageID) bool { return xslices.CountFunc(maps.Values(user.states), func(other *state.State) bool { return st != other && other.HasMessage(messageID) }) == 0 }) delete(user.states, st.StateID) return st, nil } state, err := fn() if err != nil { return err } // After this point we need to notify the WaitGroup or we risk deadlocks. defer user.statesWG.Done() // Delete messages in database first before deleting from the storage to avoid data loss. if err := user.db.Write(ctx, func(ctx context.Context, tx db.Transaction) error { if err := tx.DeleteMessages(ctx, messageIDs); err != nil { return err } return nil }); err != nil { return err } // If we fail to delete messages on disk, it shouldn't count as an error at this point. if err := user.store.Delete(messageIDs...); err != nil { logrus.WithError(err).Error("Failed to delete messages during removeState") } return state.Close(ctx) } // forState iterates through all states. func (user *user) forState(fn func(*state.State) error) error { user.statesLock.RLock() defer user.statesLock.RUnlock() for _, state := range user.states { if err := fn(state); err != nil { return err } } return nil } func (user *user) closeStates() { user.statesLock.RLock() defer user.statesLock.RUnlock() for _, state := range user.states { state.SignalClose() } } func (user *user) cleanupStaleStoreData(ctx context.Context) error { storeIds, err := user.store.List() if err != nil { return err } dbIdMap, err := db.ClientReadType(ctx, user.db, func(ctx context.Context, client db.ReadOnly) (map[imap.InternalMessageID]struct{}, error) { return client.GetAllMessagesIDsAsMap(ctx) }) if err != nil { return err } idsToDelete := xslices.Filter(storeIds, func(id imap.InternalMessageID) bool { _, ok := dbIdMap[id] return !ok }) return user.store.Delete(idsToDelete...) } gluon-0.17.0/internal/contexts/000077500000000000000000000000001445200213000163755ustar00rootroot00000000000000gluon-0.17.0/internal/contexts/context.go000066400000000000000000000032221445200213000204070ustar00rootroot00000000000000package contexts import ( "context" ) type handleUIDType struct{} var handleUIDKey handleUIDType // AsUID marks this context as handling a UID command. // This modifies some backend behaviour (such as returning UID within FETCH responses). func AsUID(parent context.Context) context.Context { return context.WithValue(parent, handleUIDKey, struct{}{}) } func IsUID(ctx context.Context) bool { return ctx.Value(handleUIDKey) != nil } type handleCloseType struct{} var handleCloseKey handleCloseType // AsClose marks this context as handling a CLOSE command. // This modifies some backend behaviour (such as not returning EXPUNGE responses). func AsClose(parent context.Context) context.Context { return context.WithValue(parent, handleCloseKey, struct{}{}) } func IsClose(ctx context.Context) bool { return ctx.Value(handleCloseKey) != nil } type handleSilentType struct{} var handleSilentKey handleSilentType // AsSilent marks this context as handling a silent STORE command. // This modifies some backend behaviour (such as not returning EXPUNGE responses). func AsSilent(parent context.Context) context.Context { return context.WithValue(parent, handleSilentKey, struct{}{}) } func IsSilent(ctx context.Context) bool { return ctx.Value(handleSilentKey) != nil } type disableParallelismCtxType struct{} var disableParallelismCtxKey disableParallelismCtxType func IsParallelismDisabledCtx(ctx context.Context) bool { return ctx.Value(disableParallelismCtxKey) != nil } func NewDisableParallelismCtx(ctx context.Context, disabled bool) context.Context { if !disabled { return ctx } return context.WithValue(ctx, disableParallelismCtxKey, struct{}{}) } gluon-0.17.0/internal/data/000077500000000000000000000000001445200213000154375ustar00rootroot00000000000000gluon-0.17.0/internal/data/db.go000066400000000000000000000004531445200213000163550ustar00rootroot00000000000000package data import ( "errors" "io/fs" "os" ) // pathExists returns whether the given file exists. func pathExists(path string) (bool, error) { if _, err := os.Stat(path); errors.Is(err, fs.ErrNotExist) { return false, nil } else if err != nil { return false, err } return true, nil } gluon-0.17.0/internal/db_impl/000077500000000000000000000000001445200213000161345ustar00rootroot00000000000000gluon-0.17.0/internal/db_impl/db_impl.go000066400000000000000000000006131445200213000200710ustar00rootroot00000000000000package db_impl import ( "context" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3" ) func NewSQLiteDB(options ...sqlite3.Option) db.ClientInterface { return sqlite3.NewBuilder(options...) } func TestUpdateDBVersion(ctx context.Context, dbPath, userID string, version int) error { return sqlite3.TestUpdateDBVersion(ctx, dbPath, userID, version) } gluon-0.17.0/internal/db_impl/sqlite3/000077500000000000000000000000001445200213000175205ustar00rootroot00000000000000gluon-0.17.0/internal/db_impl/sqlite3/client.go000066400000000000000000000143551445200213000213350ustar00rootroot00000000000000package sqlite3 import ( "context" "database/sql" "errors" "fmt" "io/fs" "os" "path/filepath" "sync" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/utils" gluon_utils "github.com/ProtonMail/gluon/internal/utils" "github.com/ProtonMail/gluon/reporter" "github.com/google/uuid" _ "github.com/mattn/go-sqlite3" "github.com/sirupsen/logrus" ) type Client struct { db *sql.DB lock sync.RWMutex debug bool trace bool } func NewClient(dir string, userID string, debug, trace bool) (*Client, bool, error) { if err := os.MkdirAll(dir, 0o700); err != nil { return nil, false, err } path := getDatabasePath(dir, userID) // Check if the database already exists. exists, err := pathExists(path) if err != nil { return nil, false, err } client, err := sql.Open("sqlite3", getDatabaseConn(dir, userID, path)) if err != nil { return nil, false, err } return &Client{db: client, debug: debug, trace: trace}, !exists, nil } func (c *Client) Init(ctx context.Context, generator imap.UIDValidityGenerator) error { if _, err := c.db.ExecContext(ctx, "PRAGMA foreign_keys = ON"); err != nil { return fmt.Errorf("failed to enable db pragma: %w", err) } if _, err := c.db.ExecContext(ctx, "PRAGMA journal_mode = WAL"); err != nil { return fmt.Errorf("failed to enable db pragma: %w", err) } return c.wrapTx(ctx, func(ctx context.Context, tx *sql.Tx, entry *logrus.Entry) error { entry.Debugf("Running database migrations") var qw utils.QueryWrapper = &utils.TXWrapper{ TX: tx, } if c.debug { qw = &utils.DebugQueryWrapper{ QW: qw, Entry: entry, } } if err := RunMigrations(ctx, qw, generator); err != nil { return err } return nil }) } func (c *Client) Read(ctx context.Context, op func(context.Context, db.ReadOnly) error) error { c.lock.RLock() defer c.lock.RUnlock() rdID := uuid.NewString() if c.debug { logrus.Debugf("Begin Read %v", rdID) defer logrus.Debugf("End Read %v", rdID) } entry := logrus.WithField("rd", rdID) var qw utils.QueryWrapper = &utils.DBWrapper{ DB: c.db, } if c.debug { qw = &utils.DebugQueryWrapper{ Entry: entry, QW: qw, } } var ops db.ReadOnly = &readOps{qw: qw} if c.trace { ops = &utils.ReadTracer{RD: ops, Entry: entry} } if err := op(ctx, ops); err != nil { return err } return nil } func (c *Client) Write(ctx context.Context, op func(context.Context, db.Transaction) error) error { return c.wrapTx(ctx, func(ctx context.Context, tx *sql.Tx, entry *logrus.Entry) error { var qw utils.QueryWrapper = &utils.TXWrapper{ TX: tx, } if c.debug { qw = &utils.DebugQueryWrapper{ QW: qw, Entry: entry, } } var transaction db.Transaction = &writeOps{ readOps: readOps{ qw: qw, }, qw: qw, } if c.trace { transaction = &utils.WriteTracer{TX: transaction, ReadTracer: utils.ReadTracer{RD: transaction, Entry: entry}} } return op(ctx, transaction) }) } func (c *Client) wrapTx(ctx context.Context, op func(context.Context, *sql.Tx, *logrus.Entry) error) error { c.lock.Lock() defer c.lock.Unlock() var entry *logrus.Entry if c.debug { entry = logrus.WithField("tx", uuid.NewString()) } else { entry = logrus.WithField("tx", "tx") } tx, err := c.db.BeginTx(ctx, nil) if err != nil { return err } if c.debug { entry.Debugf("Begin Transaction") } defer func() { if v := recover(); v != nil { if c.debug { entry.Debugf("Panic during Transaction") } if err := tx.Rollback(); err != nil { panic(fmt.Errorf("rolling back while recovering (%v): %w", v, err)) } panic(v) } }() if err := op(ctx, tx, entry); err != nil { if c.debug { entry.Debugf("Rolling back Transaction") } if rerr := tx.Rollback(); rerr != nil { return fmt.Errorf("rolling back transaction: %w", rerr) } return err } if err := tx.Commit(); err != nil { if !errors.Is(err, context.Canceled) { reporter.MessageWithContext(ctx, "Failed to commit database transaction", reporter.Context{"error": err, "type": gluon_utils.ErrCause(err)}, ) } if c.debug { entry.Debugf("Failed to commit Transaction") } return fmt.Errorf("%v: %w", err, db.ErrTransactionFailed) } if c.debug { entry.Debugf("Transaction Committed") } return nil } func (c *Client) Close() error { c.lock.Lock() defer c.lock.Unlock() return c.db.Close() } type Builder struct { debug bool trace bool } type Option interface { apply(builder *Builder) } type dbDebugOption struct{} func (dbDebugOption) apply(builder *Builder) { builder.debug = true } type dbTraceOption struct{} func (dbTraceOption) apply(builder *Builder) { builder.trace = true } // Trace enables db interface call tracing. Name of the called functions will be written to trace log. func Trace() Option { return &dbTraceOption{} } // Debug enables logging of the SQL queries and their values. Written to debug log. func Debug() Option { return &dbDebugOption{} } func NewBuilder(options ...Option) db.ClientInterface { builder := &Builder{ debug: false, trace: false, } for _, opt := range options { opt.apply(builder) } return builder } func (b Builder) New(dir string, userID string) (db.Client, bool, error) { return NewClient(dir, userID, b.debug, b.trace) } func (Builder) Delete(dir string, userID string) error { return db.DeleteDB(dir, userID) } func getDatabasePath(dir, userID string) string { return filepath.Join(dir, fmt.Sprintf("%v.db", userID)) } func pathExists(path string) (bool, error) { if _, err := os.Stat(path); errors.Is(err, fs.ErrNotExist) { return false, nil } else if err != nil { return false, err } return true, nil } func getDatabaseConn(dir, userID, path string) string { return fmt.Sprintf("file:%v?cache=shared&_fk=1&_journal=WAL", path) } func TestUpdateDBVersion(ctx context.Context, dbPath, userID string, version int) error { client, _, err := NewClient(dbPath, userID, false, false) if err != nil { return err } defer func() { if err := client.Close(); err != nil { logrus.Panic("failed to close db") } }() return client.wrapTx(ctx, func(ctx context.Context, tx *sql.Tx, entry *logrus.Entry) error { qw := utils.TXWrapper{TX: tx} return updateDBVersion(ctx, qw, version) }) } gluon-0.17.0/internal/db_impl/sqlite3/migration_test.go000066400000000000000000000333201445200213000231000ustar00rootroot00000000000000package sqlite3 import ( "context" "database/sql" "errors" "fmt" "strings" "testing" "time" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/utils" v0 "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/v0" "github.com/bradenaw/juniper/xslices" "github.com/sirupsen/logrus" "github.com/stretchr/testify/require" "golang.org/x/exp/slices" ) func TestMigration_VersionTooHigh(t *testing.T) { testDir := t.TempDir() setup := func() { client, _, err := NewClient(testDir, "foo", false, false) require.NoError(t, err) ctx := context.Background() require.NoError(t, client.Init(ctx, &imap.IncrementalUIDValidityGenerator{})) defer func() { require.NoError(t, client.Close()) }() // For version to very high value require.NoError(t, client.wrapTx(ctx, func(ctx context.Context, tx *sql.Tx, entry *logrus.Entry) error { qw := utils.TXWrapper{TX: tx} return updateDBVersion(ctx, qw, 999999) })) } setup() client, _, err := NewClient(testDir, "foo", false, false) require.NoError(t, err) defer func() { require.NoError(t, client.Close()) }() err = client.Init(context.Background(), imap.DefaultEpochUIDValidityGenerator()) require.Error(t, err) require.True(t, errors.Is(err, db.ErrInvalidDatabaseVersion)) } func TestRunMigrations(t *testing.T) { logrus.SetLevel(logrus.DebugLevel) testDir := t.TempDir() uidGenerator := &imap.IncrementalUIDValidityGenerator{} testData := newTestData(uidGenerator) // Fill v0 database. prepareV0Database(t, testDir, "foo", testData, uidGenerator) // First run, incurs migration. runAndValidateDB(t, testDir, "foo", testData, uidGenerator) // Second run, no migration. runAndValidateDB(t, testDir, "foo", testData, uidGenerator) } func runAndValidateDB(t *testing.T, testDir, user string, testData *testData, uidGenerator imap.UIDValidityGenerator) { // create client and run all migrations. client, _, err := NewClient(testDir, "foo", false, false) require.NoError(t, err) ctx := context.Background() defer func() { require.NoError(t, client.Close()) }() require.NoError(t, client.Init(ctx, uidGenerator)) require.NoError(t, client.Read(ctx, func(ctx context.Context, rd db.ReadOnly) error { // Check if mailboxes contain all data. for _, m := range testData.mailboxes { dbMBox, err := rd.GetMailboxByRemoteID(ctx, m.RemoteID) require.NoError(t, err) require.Equal(t, m.RemoteID, dbMBox.RemoteID) require.Equal(t, m.Name, dbMBox.Name) require.Equal(t, m.Subscribed, dbMBox.Subscribed) require.NotEqual(t, m.UIDValidity, dbMBox.UIDValidity) // Check Flags. { flags, err := rd.GetMailboxFlags(ctx, dbMBox.ID) require.NoError(t, err) require.True(t, flags.Equals(m.Flags)) } // Check Perm Flags. { flags, err := rd.GetMailboxPermanentFlags(ctx, dbMBox.ID) require.NoError(t, err) require.True(t, flags.Equals(m.PermanentFlags)) } // Check Attributes { attr, err := rd.GetMailboxAttributes(ctx, dbMBox.ID) require.NoError(t, err) require.True(t, attr.Equals(m.Attributes)) } } // Check if messages contain all data. for _, m := range testData.messages { dbMsg, err := rd.GetMessageNoEdges(ctx, m.ID) require.NoError(t, err) require.Equal(t, m.ID, dbMsg.ID) require.Equal(t, m.RemoteID, dbMsg.RemoteID) require.Equal(t, m.Deleted, dbMsg.Deleted) require.Equal(t, m.Body, dbMsg.Body) require.Equal(t, m.BodyStructure, dbMsg.BodyStructure) require.Equal(t, m.Envelope, dbMsg.Envelope) require.Equal(t, m.Size, dbMsg.Size) require.Equal(t, m.Date, dbMsg.Date) // Check flags { flags, err := rd.GetMessagesFlags(ctx, []imap.InternalMessageID{m.ID}) require.Len(t, flags, 1) require.NoError(t, err) require.True(t, flags[0].FlagSet.Equals(m.Flags)) } } // Check messages in mailboxes. for _, m := range testData.messagesToMBox { msg, err := rd.GetMailboxMessageForNewSnapshot(ctx, m.mboxID) require.NoError(t, err) idx := slices.IndexFunc(msg, func(result db.SnapshotMessageResult) bool { return result.InternalID == m.messageID }) require.True(t, idx >= 0) require.Equal(t, m.recent, msg[idx].Recent) require.Equal(t, m.deleted, msg[idx].Deleted) require.Equal(t, m.uid, msg[idx].UID) } return nil })) } type messageToMBox struct { messageID imap.InternalMessageID mboxID imap.InternalMailboxID uid imap.UID deleted bool recent bool } type mailbox struct { ID imap.InternalMailboxID RemoteID imap.MailboxID Name string UIDValidity imap.UID Subscribed bool Flags imap.FlagSet PermanentFlags imap.FlagSet Attributes imap.FlagSet } type message struct { ID imap.InternalMessageID RemoteID imap.MessageID Date time.Time Size int Body string BodyStructure string Envelope string Deleted bool Flags imap.FlagSet } type testData struct { mailboxes []mailbox messages []message messagesToMBox []messageToMBox } func newTestData(generator imap.UIDValidityGenerator) *testData { newUID := func() imap.UID { uid, err := generator.Generate() if err != nil { panic(err) } return uid } mailboxes := []mailbox{ { ID: 1, RemoteID: "RemoteID1", Name: "Foobar", UIDValidity: newUID(), Subscribed: true, Flags: imap.NewFlagSet("Flag1", "Flag2"), PermanentFlags: imap.NewFlagSet("PermFlag1", "PermFlag2"), Attributes: imap.NewFlagSet("Attr1"), }, { ID: 2, RemoteID: "RemoteID2", Name: "Abracadabra", UIDValidity: newUID(), Subscribed: true, Flags: imap.NewFlagSet("Flag3", "Flag4"), PermanentFlags: imap.NewFlagSet("PermFlag3"), Attributes: imap.NewFlagSet("Attr2", "Attr3"), }, { ID: 3, RemoteID: "RemoteID3", Name: "Mips", UIDValidity: newUID(), Subscribed: false, Flags: imap.NewFlagSet(), PermanentFlags: imap.NewFlagSet(), Attributes: imap.NewFlagSet(), }, } messages := []message{ { ID: imap.NewInternalMessageID(), RemoteID: "MessageID2", Date: time.Now().UTC(), Size: 512, Body: "Message Body 2", BodyStructure: "Message Structure 2", Envelope: "Message Envelope 2", Deleted: false, Flags: imap.NewFlagSet("\\Seen"), }, { ID: imap.NewInternalMessageID(), RemoteID: "MessageID1", Date: time.Now().UTC(), Size: 1024, Body: "Message Body 1", BodyStructure: "Message Structure 1", Envelope: "Message Envelope 1", Deleted: false, Flags: imap.NewFlagSet("\\Seen", "\\Flagged"), }, { ID: imap.NewInternalMessageID(), RemoteID: "MessageID3", Date: time.Now().UTC(), Size: 64, Body: "Message Body 3", BodyStructure: "Message Structure 3", Envelope: "Message Envelope 3", Deleted: true, Flags: imap.NewFlagSet(), }, } messagesToMbox := []messageToMBox{ { messageID: messages[0].ID, mboxID: mailboxes[0].ID, uid: 1, deleted: false, recent: true, }, { messageID: messages[1].ID, mboxID: mailboxes[0].ID, uid: 2, deleted: true, recent: false, }, { messageID: messages[2].ID, mboxID: mailboxes[1].ID, uid: 1, deleted: false, recent: false, }, } return &testData{mailboxes: mailboxes, messages: messages, messagesToMBox: messagesToMbox} } func prepareV0Database(t *testing.T, dir, user string, testData *testData, uidGenerator imap.UIDValidityGenerator) { client, _, err := NewClient(dir, "foo", false, false) require.NoError(t, err) defer func() { require.NoError(t, client.Close()) }() ctx := context.Background() // Run Migration 0. require.NoError(t, client.wrapTx(ctx, func(ctx context.Context, tx *sql.Tx, entry *logrus.Entry) error { qw := utils.TXWrapper{TX: tx} v0Migration := v0.Migration{} require.NoError(t, v0Migration.Run(ctx, qw, uidGenerator)) // Fill in base data. // Mailboxes & Mbox Flags { // Mailboxes. { query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`, `%v`, `%v`) VALUES %v", v0.MailboxesTableName, v0.MailboxesFieldRemoteID, v0.MailboxesFieldName, v0.MailboxesFieldUIDValidity, v0.MailboxesFieldSubscribed, strings.Join(xslices.Repeat("(?, ?, ?, ?)", len(testData.mailboxes)), ","), ) args := make([]any, 0, len(testData.mailboxes)*4) for _, mbox := range testData.mailboxes { args = append(args, mbox.RemoteID, mbox.Name, mbox.UIDValidity, mbox.Subscribed) } require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query, args...)) } // Flags. for _, m := range testData.mailboxes { if len(m.Flags) == 0 { continue } query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES %v", v0.MailboxFlagsTableName, v0.MailboxFlagsFieldMailboxID, v0.MailboxFlagsFieldValue, strings.Join(xslices.Repeat("(?, ?)", len(m.Flags)), ","), ) args := make([]any, 0, len(m.Flags)*2) for _, f := range m.Flags.ToSliceUnsorted() { args = append(args, m.ID, f) } require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query, args...)) // Insert some flags that reference no mailbox. { query := fmt.Sprintf("INSERT INTO %v (`%v`) VALUES ('\\Unrer2'), ('\\Unref1')", v0.MailboxFlagsTableName, v0.MailboxFlagsFieldValue, ) require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query)) } } // Perm flags. for _, m := range testData.mailboxes { if len(m.PermanentFlags) == 0 { continue } query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES %v", v0.MailboxPermFlagsTableName, v0.MailboxPermFlagsFieldMailboxID, v0.MailboxPermFlagsFieldValue, strings.Join(xslices.Repeat("(?, ?)", len(m.PermanentFlags)), ","), ) args := make([]any, 0, len(m.PermanentFlags)*2) for _, f := range m.PermanentFlags.ToSliceUnsorted() { args = append(args, m.ID, f) } require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query, args...)) // Insert some permanent flags that reference no mailbox. { query := fmt.Sprintf("INSERT INTO %v (`%v`) VALUES ('\\Unrer2'), ('\\Unref1')", v0.MailboxPermFlagsTableName, v0.MailboxPermFlagsFieldValue, ) require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query)) } } // Attributes for _, m := range testData.mailboxes { if len(m.Attributes) == 0 { continue } query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES %v", v0.MailboxAttrsTableName, v0.MailboxAttrsFieldMailboxID, v0.MailboxAttrsFieldValue, strings.Join(xslices.Repeat("(?, ?)", len(m.Attributes)), ","), ) args := make([]any, 0, len(m.Attributes)*2) for _, f := range m.Attributes.ToSliceUnsorted() { args = append(args, m.ID, f) } require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query, args...)) // Insert some attributes that reference no mailbox. { query := fmt.Sprintf("INSERT INTO %v (`%v`) VALUES ('\\Unref2'), ('\\Unref1')", v0.MailboxAttrsTableName, v0.MailboxAttrsFieldValue, ) require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query)) } } } // Messages & Message Flags. { // Messages { query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`, `%v`, `%v`, `%v`, `%v`, `%v`, `%v`) VALUES %v", v0.MessagesTableName, v0.MessagesFieldID, v0.MessagesFieldRemoteID, v0.MessagesFieldDate, v0.MessagesFieldSize, v0.MessagesFieldBody, v0.MessagesFieldBodyStructure, v0.MessagesFieldEnvelope, v0.MessagesFieldDeleted, strings.Join(xslices.Repeat("(?, ?, ?, ?, ?, ?, ?, ?)", len(testData.mailboxes)), ","), ) args := make([]any, 0, len(testData.messages)*8) for _, m := range testData.messages { args = append(args, m.ID, m.RemoteID, m.Date, m.Size, m.Body, m.BodyStructure, m.Envelope, m.Deleted) } require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query, args...)) } // Message flags { query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES %v", v0.MessageFlagsTableName, v0.MessageFlagsFieldMessageID, v0.MessageFlagsFieldValue, strings.Join(xslices.Repeat("(?, ?)", len(testData.mailboxes)), ","), ) args := make([]any, 0, len(testData.messages)*2) for _, m := range testData.messages { for _, f := range m.Flags.ToSliceUnsorted() { args = append(args, m.ID, f) } } require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query, args...)) } // Insert some flags that reference no message. { query := fmt.Sprintf("INSERT INTO %v (`%v`) VALUES ('\\Seen'), ('\\Foo')", v0.MessageFlagsTableName, v0.MessageFlagsFieldValue, ) require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query)) } } // UIDs { query := fmt.Sprintf("INSERT INTO %v (`%v`,`%v`,`%v`, `%v`, `%v`) VALUES %v", v0.UIDsTableName, v0.UIDsFieldMessageID, v0.UIDsFieldMailboxID, v0.UIDsFieldUID, v0.UIDsFieldDeleted, v0.UIDsFieldRecent, strings.Join(xslices.Repeat("(?, ?, ?, ?, ?)", len(testData.mailboxes)), ","), ) args := make([]any, 0, len(testData.messagesToMBox)) for _, m := range testData.messagesToMBox { args = append(args, m.messageID, m.mboxID, m.uid, m.deleted, m.recent) } require.NoError(t, utils.ExecQueryAndCheckUpdatedNotZero(ctx, qw, query, args...)) } return nil })) } gluon-0.17.0/internal/db_impl/sqlite3/migrations.go000066400000000000000000000056431445200213000222330ustar00rootroot00000000000000package sqlite3 import ( "context" "errors" "fmt" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/utils" v0 "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/v0" v1 "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/v1" "github.com/sirupsen/logrus" ) type Migration interface { Run(ctx context.Context, tx utils.QueryWrapper, generator imap.UIDValidityGenerator) error } var migrationList = []Migration{ &v0.Migration{}, &v1.Migration{}, } func RunMigrations(ctx context.Context, tx utils.QueryWrapper, generator imap.UIDValidityGenerator) error { dbVersion, err := getDatabaseVersion(ctx, tx) if err != nil { return fmt.Errorf("failed to get db version: %w", err) } if dbVersion < 0 { logrus.Debug("Version table does not exist, running all migrations") for idx, m := range migrationList { logrus.Debugf("Running migration for version %v", idx) if err := m.Run(ctx, tx, generator); err != nil { return fmt.Errorf("%w %v: %v", db.ErrMigrationFailed, idx, err) } } if err := updateDBVersion(ctx, tx, len(migrationList)-1); err != nil { return fmt.Errorf("%w: failed to update db version: %v", db.ErrMigrationFailed, err) } logrus.Debug("Migrations completed") return nil } logrus.Debugf("DB Version is %v", dbVersion) dbVersion = dbVersion + 1 if dbVersion == len(migrationList) { logrus.Debugf("No migrations to run") return nil } if dbVersion > len(migrationList) { return fmt.Errorf( "%w: database version is %v, but we only support up to %v", db.ErrInvalidDatabaseVersion, dbVersion, len(migrationList), ) } for i := dbVersion; i < len(migrationList); i++ { logrus.Debugf("Running migration for version %v", i) if err := migrationList[i].Run(ctx, tx, generator); err != nil { return fmt.Errorf("%w %v: %v", db.ErrMigrationFailed, i, err) } } if err := updateDBVersion(ctx, tx, len(migrationList)-1); err != nil { return fmt.Errorf("%w: failed to update db version: %v", db.ErrMigrationFailed, err) } logrus.Debug("Migrations completed") return nil } // getDatabaseVersion returns -1 if the version table does not exist or the version information contained within. func getDatabaseVersion(ctx context.Context, tx utils.QueryWrapper) (int, error) { query := "SELECT `name` FROM sqlite_master WHERE `type` = 'table' AND `name` NOT LIKE 'sqlite_%' AND `name` = 'gluon_version'" _, err := utils.MapQueryRow[string](ctx, tx, query) if err != nil { if errors.Is(err, db.ErrNotFound) { return -1, nil } return 0, err } versionQuery := "SELECT `version` FROM gluon_version WHERE `id` = 0" return utils.MapQueryRow[int](ctx, tx, versionQuery) } func updateDBVersion(ctx context.Context, tx utils.QueryWrapper, version int) error { query := "UPDATE gluon_version SET `version` = ? WHERE `id` = 0" return utils.ExecQueryAndCheckUpdatedNotZero(ctx, tx, query, version) } gluon-0.17.0/internal/db_impl/sqlite3/read_ops.go000066400000000000000000000441711445200213000216520ustar00rootroot00000000000000package sqlite3 import ( "context" "database/sql" "errors" "fmt" "strings" "time" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/utils" v1 "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/v1" "github.com/bradenaw/juniper/xmaps" "github.com/bradenaw/juniper/xslices" ) type readOps struct { qw utils.QueryWrapper } func (r readOps) MailboxExistsWithID(ctx context.Context, mboxID imap.InternalMailboxID) (bool, error) { query := fmt.Sprintf("SELEC 1 FROM %[1]v WHERE `%[2]v` = ? LIMIT 1", v1.MailboxesTableName, v1.MailboxesFieldID, ) return utils.QueryExists(ctx, r.qw, query, mboxID) } func (r readOps) MailboxExistsWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (bool, error) { query := fmt.Sprintf("SELECT 1 FROM %[1]v WHERE `%[2]v` = ? LIMIT 1", v1.MailboxesTableName, v1.MailboxesFieldRemoteID, v1.MessagesFieldID, ) return utils.QueryExists(ctx, r.qw, query, mboxID) } func (r readOps) MailboxExistsWithName(ctx context.Context, name string) (bool, error) { query := fmt.Sprintf("SELECT 1 FROM %[1]v WHERE `%[2]v` = ? LIMIT 1", v1.MailboxesTableName, v1.MailboxesFieldName, ) return utils.QueryExists(ctx, r.qw, query, name) } func (r readOps) GetMailboxIDFromRemoteID(ctx context.Context, mboxID imap.MailboxID) (imap.InternalMailboxID, error) { query := fmt.Sprintf("SELECT `%[2]v` FROM %[1]v WHERE `%[3]v` = ?", v1.MailboxesTableName, v1.MailboxesFieldID, v1.MailboxesFieldRemoteID, ) return utils.MapQueryRow[imap.InternalMailboxID](ctx, r.qw, query, mboxID) } func (r readOps) GetMailboxName(ctx context.Context, mboxID imap.InternalMailboxID) (string, error) { query := fmt.Sprintf("SELECT `%[2]v` FROM %[1]v WHERE `%[3]v` = ?", v1.MailboxesTableName, v1.MailboxesFieldName, v1.MailboxesFieldID, ) return utils.MapQueryRow[string](ctx, r.qw, query, mboxID) } func (r readOps) GetMailboxNameWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (string, error) { query := fmt.Sprintf("SELECT `%[2]v` FROM %[1]v WHERE `%[3]v` = ?", v1.MailboxesTableName, v1.MailboxesFieldName, v1.MailboxesFieldRemoteID, ) return utils.MapQueryRow[string](ctx, r.qw, query, mboxID) } func (r readOps) GetMailboxMessageIDPairs(ctx context.Context, mboxID imap.InternalMailboxID) ([]db.MessageIDPair, error) { query := fmt.Sprintf("SELECT `%[2]v`, `%[3]v` FROM %[1]v", v1.MailboxMessageTableName(mboxID), v1.MailboxMessagesFieldMessageID, v1.MailboxMessagesFieldMessageRemoteID, ) return utils.MapQueryRowsFn(ctx, r.qw, query, func(scanner utils.RowScanner) (db.MessageIDPair, error) { var id db.MessageIDPair if err := scanner.Scan(&id.InternalID, &id.RemoteID); err != nil { return db.MessageIDPair{}, err } return id, nil }) } func (r readOps) GetAllMailboxesWithAttr(ctx context.Context) ([]*db.MailboxWithAttr, error) { query := fmt.Sprintf("SELECT * FROM %v", v1.MailboxesTableName) mailboxes, err := utils.MapQueryRowsFn(ctx, r.qw, query, ScanMailboxWithAttr) if err != nil { return nil, err } attrQuery := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` = ?", v1.MailboxAttrsFieldValue, v1.MailboxAttrsTableName, v1.MailboxAttrsFieldMailboxID, ) stmt, err := r.qw.PrepareStatement(ctx, attrQuery) if err != nil { return nil, err } defer utils.WrapStmtClose(stmt) for _, mbox := range mailboxes { attrs, err := utils.MapStmtRows[string](ctx, stmt, mbox.ID) if err != nil { return nil, err } mbox.Attributes = imap.NewFlagSet(attrs...) } return mailboxes, nil } func (r readOps) GetAllMailboxesAsRemoteIDs(ctx context.Context) ([]imap.MailboxID, error) { query := fmt.Sprintf("SELECT `%v` FROM %v", v1.MessagesFieldRemoteID, v1.MailboxesTableName) return utils.MapQueryRows[imap.MailboxID](ctx, r.qw, query) } func (r readOps) GetMailboxByName(ctx context.Context, name string) (*db.Mailbox, error) { query := fmt.Sprintf("SELECT * FROM %v WHERE `%v` = ?", v1.MailboxesTableName, v1.MailboxesFieldName) return utils.MapQueryRowFn(ctx, r.qw, query, ScanMailbox, name) } func (r readOps) GetMailboxByID(ctx context.Context, mboxID imap.InternalMailboxID) (*db.Mailbox, error) { query := fmt.Sprintf("SELECT * FROM %v WHERE `%v` = ?", v1.MailboxesTableName, v1.MailboxesFieldID) return utils.MapQueryRowFn(ctx, r.qw, query, ScanMailbox, mboxID) } func (r readOps) GetMailboxByRemoteID(ctx context.Context, mboxID imap.MailboxID) (*db.Mailbox, error) { query := fmt.Sprintf("SELECT * FROM %v WHERE `%v` = ?", v1.MailboxesTableName, v1.MailboxesFieldRemoteID) return utils.MapQueryRowFn(ctx, r.qw, query, ScanMailbox, mboxID) } func (r readOps) GetMailboxRecentCount(ctx context.Context, mboxID imap.InternalMailboxID) (int, error) { query := fmt.Sprintf("SELECT COUNT(*) FROM %v WHERE `%v` = TRUE", v1.MailboxMessageTableName(mboxID), v1.MailboxMessagesFieldRecent, ) return utils.MapQueryRow[int](ctx, r.qw, query) } func (r readOps) GetMailboxMessageCount(ctx context.Context, mboxID imap.InternalMailboxID) (int, error) { query := fmt.Sprintf("SELECT COUNT(*) FROM %v", v1.MailboxMessageTableName(mboxID), ) return utils.MapQueryRow[int](ctx, r.qw, query) } func (r readOps) GetMailboxMessageCountWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (int, error) { internalID, err := r.GetMailboxIDFromRemoteID(ctx, mboxID) if err != nil { return 0, err } query := fmt.Sprintf("SELECT COUNT(*) FROM %v", v1.MailboxMessageTableName(internalID), ) return utils.MapQueryRow[int](ctx, r.qw, query) } func (r readOps) GetMailboxFlags(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) { query := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` = ?", v1.MailboxFlagsFieldValue, v1.MailboxFlagsTableName, v1.MailboxFlagsFieldMailboxID, ) flags, err := utils.MapQueryRows[string](ctx, r.qw, query, mboxID) if err != nil { return imap.FlagSet{}, err } return imap.NewFlagSetFromSlice(flags), nil } func (r readOps) GetMailboxPermanentFlags(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) { query := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` = ?", v1.MailboxPermFlagsFieldValue, v1.MailboxPermFlagsTableName, v1.MailboxPermFlagsFieldMailboxID, ) flags, err := utils.MapQueryRows[string](ctx, r.qw, query, mboxID) if err != nil { return imap.FlagSet{}, err } return imap.NewFlagSetFromSlice(flags), nil } func (r readOps) GetMailboxAttributes(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) { query := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` = ?", v1.MailboxAttrsFieldValue, v1.MailboxAttrsTableName, v1.MailboxAttrsFieldMailboxID, ) flags, err := utils.MapQueryRows[string](ctx, r.qw, query, mboxID) if err != nil { return imap.FlagSet{}, err } return imap.NewFlagSetFromSlice(flags), nil } func (r readOps) GetMailboxUID(ctx context.Context, mboxID imap.InternalMailboxID) (imap.UID, error) { query := "SELECT `seq` FROM sqlite_sequence WHERE `name` = ?" // Until a value is inserted in to mailbox the sequence table will not yet be initialized. uid, err := utils.MapQueryRow[imap.UID](ctx, r.qw, query, v1.MailboxMessageTableName(mboxID)) if err != nil { if errors.Is(err, db.ErrNotFound) { return imap.UID(1), nil } return 0, err } return uid.Add(1), nil } func (r readOps) GetMailboxMessageCountAndUID(ctx context.Context, mboxID imap.InternalMailboxID) (int, imap.UID, error) { count, err := r.GetMailboxMessageCount(ctx, mboxID) if err != nil { return 0, 0, err } uid, err := r.GetMailboxUID(ctx, mboxID) if err != nil { return 0, 0, err } return count, uid, nil } func (r readOps) GetMailboxMessageForNewSnapshot(ctx context.Context, mboxID imap.InternalMailboxID) ([]db.SnapshotMessageResult, error) { query := fmt.Sprintf("SELECT `m`.`%[1]v`, GROUP_CONCAT(`f`.`%[2]v`) AS `flags`, `m`.`%[3]v`, `m`.`%[4]v`, "+ "`m`.`%[5]v`, `m`.`%[6]v` FROM %[9]v AS m "+ "LEFT JOIN `%[7]v` AS f ON `f`.`%[8]v` = `m`.`%[6]v` "+ "GROUP BY `m`.`%[6]v` ORDER BY `m`.`%[5]v`", v1.MailboxMessagesFieldMessageRemoteID, v1.MessageFlagsFieldValue, v1.MailboxMessagesFieldRecent, v1.MailboxMessagesFieldDeleted, v1.MailboxMessagesFieldUID, v1.MailboxMessagesFieldMessageID, v1.MessageFlagsTableName, v1.MessageFlagsFieldMessageID, v1.MailboxMessageTableName(mboxID), ) return utils.MapQueryRowsFn(ctx, r.qw, query, func(scanner utils.RowScanner) (db.SnapshotMessageResult, error) { var r db.SnapshotMessageResult var flags sql.NullString if err := scanner.Scan(&r.RemoteID, &flags, &r.Recent, &r.Deleted, &r.UID, &r.InternalID); err != nil { return db.SnapshotMessageResult{}, err } r.Flags = flags.String return r, nil }) } func (r readOps) MailboxTranslateRemoteIDs(ctx context.Context, mboxIDs []imap.MailboxID) ([]imap.InternalMailboxID, error) { result := make([]imap.InternalMailboxID, 0, len(mboxIDs)) for _, chunk := range xslices.Chunk(mboxIDs, db.ChunkLimit) { query := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` IN (%v)", v1.MailboxesFieldID, v1.MailboxesTableName, v1.MailboxesFieldRemoteID, utils.GenSQLIn(len(chunk)), ) r, err := utils.MapQueryRows[imap.InternalMailboxID](ctx, r.qw, query, utils.MapSliceToAny(chunk)...) if err != nil { return nil, err } result = append(result, r...) } return result, nil } func (r readOps) MailboxFilterContains(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []db.MessageIDPair) ([]imap.InternalMessageID, error) { return r.MailboxFilterContainsInternalID(ctx, mboxID, xslices.Map(messageIDs, func(t db.MessageIDPair) imap.InternalMessageID { return t.InternalID })) } func (r readOps) MailboxFilterContainsInternalID(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID) ([]imap.InternalMessageID, error) { result := make([]imap.InternalMessageID, 0, len(messageIDs)) for _, chunk := range xslices.Chunk(messageIDs, db.ChunkLimit) { query := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` IN (%v)", v1.MailboxMessagesFieldMessageID, v1.MailboxMessageTableName(mboxID), v1.MailboxMessagesFieldMessageID, utils.GenSQLIn(len(chunk)), ) r, err := utils.MapQueryRows[imap.InternalMessageID](ctx, r.qw, query, utils.MapSliceToAny(chunk)...) if err != nil { return nil, err } result = append(result, r...) } return result, nil } func (r readOps) GetMailboxCount(ctx context.Context) (int, error) { query := fmt.Sprintf("SELECT COUNT(*) FROM %v", v1.MailboxesTableName) return utils.MapQueryRow[int](ctx, r.qw, query) } func (r readOps) GetMailboxMessageUIDsWithFlagsAfterAddOrUIDBump(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID) ([]db.UIDWithFlags, error) { result := make([]db.UIDWithFlags, 0, len(messageIDs)) for _, chunk := range xslices.Chunk(messageIDs, db.ChunkLimit) { query := fmt.Sprintf("SELECT `m`.`%[1]v`, GROUP_CONCAT(`f`.`%[2]v`) AS `flags`, `m`.`%[3]v`, `m`.`%[4]v`, "+ "`m`.`%[5]v`, `m`.`%[6]v` FROM %[9]v AS m "+ "LEFT JOIN `%[7]v` AS f ON `f`.`%[8]v` = `m`.`%[6]v` "+ "WHERE `m`.`%[6]v` IN (%[10]v) "+ "GROUP BY `m`.`%[6]v` ORDER BY `m`.`%[5]v`", v1.MailboxMessagesFieldMessageRemoteID, v1.MessageFlagsFieldValue, v1.MailboxMessagesFieldRecent, v1.MailboxMessagesFieldDeleted, v1.MailboxMessagesFieldUID, v1.MailboxMessagesFieldMessageID, v1.MessageFlagsTableName, v1.MessageFlagsFieldMessageID, v1.MailboxMessageTableName(mboxID), utils.GenSQLIn(len(chunk)), ) args := utils.MapSliceToAny(chunk) r, err := utils.MapQueryRowsFn(ctx, r.qw, query, func(scanner utils.RowScanner) (db.UIDWithFlags, error) { var r db.UIDWithFlags var flags sql.NullString if err := scanner.Scan(&r.RemoteID, &flags, &r.Recent, &r.Deleted, &r.UID, &r.InternalID); err != nil { return db.UIDWithFlags{}, err } r.Flags = flags.String return r, nil }, args...) if err != nil { return nil, err } result = append(result, r...) } return result, nil } func (r readOps) MessageExists(ctx context.Context, id imap.InternalMessageID) (bool, error) { query := fmt.Sprintf("SELECT 1 FROM %v WHERE `%v` = ? LIMIT 1", v1.MessagesTableName, v1.MessagesFieldID) return utils.QueryExists(ctx, r.qw, query, id) } func (r readOps) MessageExistsWithRemoteID(ctx context.Context, id imap.MessageID) (bool, error) { query := fmt.Sprintf("SELECT 1 FROM %v WHERE `%v` = ? LIMIT 1", v1.MessagesTableName, v1.MessagesFieldRemoteID) return utils.QueryExists(ctx, r.qw, query, id) } func (r readOps) GetMessageNoEdges(ctx context.Context, id imap.InternalMessageID) (*db.Message, error) { query := fmt.Sprintf("SELECT * FROM %v WHERE `%v` = ?", v1.MessagesTableName, v1.MessagesFieldID) return utils.MapQueryRowFn(ctx, r.qw, query, ScanMessage, id) } func (r readOps) GetTotalMessageCount(ctx context.Context) (int, error) { query := fmt.Sprintf("SELECT COUNT(*) FROM %v", v1.MessagesTableName) return utils.MapQueryRow[int](ctx, r.qw, query) } func (r readOps) GetMessageRemoteID(ctx context.Context, id imap.InternalMessageID) (imap.MessageID, error) { query := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` = ?", v1.MessagesFieldRemoteID, v1.MessagesTableName, v1.MessagesFieldID) return utils.MapQueryRow[imap.MessageID](ctx, r.qw, query, id) } func (r readOps) GetImportedMessageData(ctx context.Context, id imap.InternalMessageID) (*db.MessageWithFlags, error) { flagsQuery := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` = ?", v1.MessageFlagsFieldValue, v1.MessageFlagsTableName, v1.MessageFlagsFieldMessageID, ) messageQuery := fmt.Sprintf("SELECT * FROM %v WHERE `%v` = ?", v1.MessagesTableName, v1.MessagesFieldID, ) msg, err := utils.MapQueryRowFn(ctx, r.qw, messageQuery, ScanMessageWithFlags, id) if err != nil { return nil, err } flags, err := utils.MapQueryRows[string](ctx, r.qw, flagsQuery, id) if err != nil { return nil, err } msg.Flags = imap.NewFlagSet(flags...) return msg, nil } func (r readOps) GetMessageDateAndSize(ctx context.Context, id imap.InternalMessageID) (time.Time, int, error) { query := fmt.Sprintf("SELECT `%v`, `%v` FROM %v WHERE `%v` =?", v1.MessagesFieldDate, v1.MessagesFieldSize, v1.MessagesTableName, v1.MessagesFieldID, ) type DateSize struct { Date time.Time Size int } dt, err := utils.MapQueryRowFn(ctx, r.qw, query, func(scanner utils.RowScanner) (DateSize, error) { var dt DateSize if err := scanner.Scan(&dt.Date, &dt.Size); err != nil { return DateSize{}, err } return dt, nil }, id) if err != nil { return time.Time{}, 0, err } return dt.Date, dt.Size, nil } func (r readOps) GetMessageMailboxIDs(ctx context.Context, id imap.InternalMessageID) ([]imap.InternalMailboxID, error) { query := fmt.Sprintf("SELECT `%[3]v` FROM %[1]v WHERE `%[2]v` = ?", v1.MessageToMailboxTableName, v1.MessageToMailboxFieldMessageID, v1.MessageToMailboxFieldMailboxID, ) return utils.MapQueryRows[imap.InternalMailboxID](ctx, r.qw, query, id) } func (r readOps) GetMessagesFlags(ctx context.Context, ids []imap.InternalMessageID) ([]db.MessageFlagSet, error) { var result = make([]db.MessageFlagSet, 0, len(ids)) for _, chunk := range xslices.Chunk(ids, db.ChunkLimit) { flagQuery := fmt.Sprintf("SELECT GROUP_CONCAT(f.`%v`, ','), m.`%v`, m.`%v` FROM %v AS m "+ "LEFT JOIN %v AS f ON f.`%v` = m.`%v` "+ "WHERE m.`%v` IN (%v) "+ "GROUP BY m.`%v`", v1.MessageFlagsFieldValue, v1.MessagesFieldID, v1.MessagesFieldRemoteID, v1.MessagesTableName, v1.MessageFlagsTableName, v1.MessageFlagsFieldMessageID, v1.MessagesFieldID, v1.MessagesFieldID, utils.GenSQLIn(len(chunk)), v1.MessagesFieldID, ) args := utils.MapSliceToAny(chunk) type DBFlag struct { MessageID imap.InternalMessageID RemoteID imap.MessageID Value string } r, err := utils.MapQueryRowsFn(ctx, r.qw, flagQuery, func(scanner utils.RowScanner) (db.MessageFlagSet, error) { var f db.MessageFlagSet var flags sql.NullString if err := scanner.Scan(&flags, &f.ID, &f.RemoteID); err != nil { return db.MessageFlagSet{}, err } if flags.Valid { f.FlagSet = imap.NewFlagSetFromSlice(strings.Split(flags.String, ",")) } return f, nil }, args...) if err != nil { return nil, err } result = append(result, r...) } return result, nil } func (r readOps) GetMessageIDsMarkedAsDelete(ctx context.Context) ([]imap.InternalMessageID, error) { query := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` = TRUE", v1.MessagesFieldID, v1.MessagesTableName, v1.MessagesFieldDeleted, ) return utils.MapQueryRows[imap.InternalMessageID](ctx, r.qw, query) } func (r readOps) GetMessageIDFromRemoteID(ctx context.Context, id imap.MessageID) (imap.InternalMessageID, error) { query := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` = ?", v1.MessagesFieldID, v1.MessagesTableName, v1.MessagesFieldRemoteID, ) return utils.MapQueryRow[imap.InternalMessageID](ctx, r.qw, query, id) } func (r readOps) GetMessageDeletedFlag(ctx context.Context, id imap.InternalMessageID) (bool, error) { query := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` = ?", v1.MessagesFieldDeleted, v1.MessagesTableName, v1.MessagesFieldID, ) return utils.MapQueryRow[bool](ctx, r.qw, query, id) } func (r readOps) GetAllMessagesIDsAsMap(ctx context.Context) (map[imap.InternalMessageID]struct{}, error) { query := fmt.Sprintf("SELECT `%v` FROM %v", v1.MessagesFieldID, v1.MessagesTableName) ids, err := utils.MapQueryRows[imap.InternalMessageID](ctx, r.qw, query) if err != nil { return nil, err } return xmaps.SetFromSlice(ids), nil } func (r readOps) GetDeletedSubscriptionSet(ctx context.Context) (map[imap.MailboxID]*db.DeletedSubscription, error) { query := fmt.Sprintf("SELECT `%v`, `%v` FROM %v", v1.DeletedSubscriptionsFieldName, v1.DeletedSubscriptionsFieldRemoteID, v1.DeletedSubscriptionsTableName, ) deletedSubscriptions, err := utils.MapQueryRowsFn(ctx, r.qw, query, func(scanner utils.RowScanner) (*db.DeletedSubscription, error) { ds := new(db.DeletedSubscription) if err := scanner.Scan(&ds.Name, &ds.RemoteID); err != nil { return nil, err } return ds, nil }) if err != nil { return nil, err } result := make(map[imap.MailboxID]*db.DeletedSubscription, len(deletedSubscriptions)) for _, v := range deletedSubscriptions { result[v.RemoteID] = v } return result, nil } gluon-0.17.0/internal/db_impl/sqlite3/types.go000066400000000000000000000023111445200213000212100ustar00rootroot00000000000000package sqlite3 import ( "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/utils" ) func ScanMailbox(scanner utils.RowScanner) (*db.Mailbox, error) { mbox := new(db.Mailbox) if err := scanner.Scan(&mbox.ID, &mbox.RemoteID, &mbox.Name, &mbox.UIDValidity, &mbox.Subscribed); err != nil { return nil, err } return mbox, nil } func ScanMailboxWithAttr(scanner utils.RowScanner) (*db.MailboxWithAttr, error) { mbox := new(db.MailboxWithAttr) if err := scanner.Scan(&mbox.ID, &mbox.RemoteID, &mbox.Name, &mbox.UIDValidity, &mbox.Subscribed); err != nil { return nil, err } return mbox, nil } func ScanMessage(scanner utils.RowScanner) (*db.Message, error) { msg := new(db.Message) if err := scanner.Scan(&msg.ID, &msg.RemoteID, &msg.Date, &msg.Size, &msg.Body, &msg.BodyStructure, &msg.Envelope, &msg.Deleted); err != nil { return nil, err } return msg, nil } func ScanMessageWithFlags(scanner utils.RowScanner) (*db.MessageWithFlags, error) { msg := new(db.MessageWithFlags) if err := scanner.Scan(&msg.ID, &msg.RemoteID, &msg.Date, &msg.Size, &msg.Body, &msg.BodyStructure, &msg.Envelope, &msg.Deleted); err != nil { return nil, err } return msg, nil } gluon-0.17.0/internal/db_impl/sqlite3/utils/000077500000000000000000000000001445200213000206605ustar00rootroot00000000000000gluon-0.17.0/internal/db_impl/sqlite3/utils/query_utils.go000066400000000000000000000117501445200213000236000ustar00rootroot00000000000000package utils import ( "context" "database/sql" "errors" "fmt" "strings" "github.com/ProtonMail/gluon/db" "github.com/bradenaw/juniper/xslices" "github.com/sirupsen/logrus" ) // Collection of SQL utilities to process SQL Rows and to convert SQL errors to DB.Errors. type RowScanner interface { Scan(args ...any) error } func MapStmtRowsFn[T any](ctx context.Context, qw StmtWrapper, m func(RowScanner) (T, error), args ...any) ([]T, error) { rows, err := qw.QueryContext(ctx, args...) if err != nil { return nil, mapSQLError(err) } return mapSQLRowsFn(rows, m) } func MapStmtRows[T any](ctx context.Context, qw StmtWrapper, args ...any) ([]T, error) { return MapStmtRowsFn(ctx, qw, func(scanner RowScanner) (T, error) { var v T err := scanner.Scan(&v) return v, err }, args...) } func MapStmtRowFn[T any](ctx context.Context, qw StmtWrapper, m func(RowScanner) (T, error), args ...any) (T, error) { rows := qw.QueryRowContext(ctx, args...) return mapSQLRowFn(rows, m) } func MapStmtRow[T any](ctx context.Context, qw StmtWrapper, args ...any) (T, error) { return MapStmtRowFn(ctx, qw, func(scanner RowScanner) (T, error) { var v T err := scanner.Scan(&v) return v, err }, args...) } func MapQueryRowsFn[T any](ctx context.Context, qw QueryWrapper, query string, m func(RowScanner) (T, error), args ...any) ([]T, error) { rows, err := qw.QueryContext(ctx, query, args...) if err != nil { return nil, mapSQLError(err) } return mapSQLRowsFn(rows, m) } func QueryForEachRow(ctx context.Context, qw QueryWrapper, query string, m func(RowScanner) error, args ...any) error { rows, err := qw.QueryContext(ctx, query, args...) if err != nil { return mapSQLError(err) } return mapSQLRowsForEach(rows, m) } func MapQueryRows[T any](ctx context.Context, qw QueryWrapper, query string, args ...any) ([]T, error) { return MapQueryRowsFn(ctx, qw, query, func(scanner RowScanner) (T, error) { var v T err := scanner.Scan(&v) return v, err }, args...) } func MapQueryRowFn[T any](ctx context.Context, qw QueryWrapper, query string, m func(RowScanner) (T, error), args ...any) (T, error) { row := qw.QueryRowContext(ctx, query, args...) return mapSQLRowFn(row, m) } func MapQueryRow[T any](ctx context.Context, qw QueryWrapper, query string, args ...any) (T, error) { return MapQueryRowFn(ctx, qw, query, func(scanner RowScanner) (T, error) { var v T err := scanner.Scan(&v) return v, err }, args...) } func ExecQueryAndCheckUpdatedNotZero(ctx context.Context, wrapper QueryWrapper, query string, args ...any) error { updated, err := ExecQuery(ctx, wrapper, query, args...) if err != nil { return err } if updated == 0 { return fmt.Errorf("no values changed") } return nil } func ExecStmtAndCheckUpdatedNotZero(ctx context.Context, wrapper StmtWrapper, args ...any) error { updated, err := ExecStmt(ctx, wrapper, args...) if err != nil { return err } if updated == 0 { return fmt.Errorf("no values changed") } return nil } func ExecQuery(ctx context.Context, wrapper QueryWrapper, query string, args ...any) (int, error) { r, err := wrapper.ExecContext(ctx, query, args...) if err != nil { return 0, err } affected, err := r.RowsAffected() if err != nil { panic("affected rows is unsupported") } return int(affected), nil } func ExecStmt(ctx context.Context, wrapper StmtWrapper, args ...any) (int, error) { r, err := wrapper.ExecContext(ctx, args...) if err != nil { return 0, err } affected, err := r.RowsAffected() if err != nil { panic("affected rows is unsupported") } return int(affected), nil } func GenSQLIn(count int) string { if count <= 0 { panic("count can't be less or equal to 0") } if count == 1 { return "?" } return strings.Repeat("?,", count-1) + "?" } func MapSliceToAny[T any](v []T) []any { return xslices.Map(v, func(t T) any { return t }) } func QueryExists(ctx context.Context, qw QueryWrapper, query string, args ...any) (bool, error) { v, err := MapQueryRow[int](ctx, qw, query, args...) if err != nil { if errors.Is(err, db.ErrNotFound) { return false, nil } return false, err } return v > 0, nil } func WrapStmtClose(st StmtWrapper) { if err := st.Close(); err != nil { logrus.WithError(err).Error("Failed to close statement") } } func mapSQLError(err error) error { if err == nil { return nil } if errors.Is(err, sql.ErrNoRows) { return db.ErrNotFound } return err } func mapSQLRowsFn[T any](rows *sql.Rows, m func(RowScanner) (T, error)) ([]T, error) { defer func() { _ = rows.Close() }() var result []T for rows.Next() { val, err := m(rows) if err != nil { return nil, err } result = append(result, val) } return result, nil } func mapSQLRowsForEach(rows *sql.Rows, m func(RowScanner) error) error { defer func() { _ = rows.Close() }() for rows.Next() { if err := m(rows); err != nil { return err } } return nil } func mapSQLRowFn[T any](row *sql.Row, m func(scanner RowScanner) (T, error)) (T, error) { v, err := m(row) return v, mapSQLError(err) } gluon-0.17.0/internal/db_impl/sqlite3/utils/tracer.go000066400000000000000000000336441445200213000225010ustar00rootroot00000000000000package utils import ( "context" "time" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/sirupsen/logrus" ) // ReadTracer prints all method names to a trace log. type ReadTracer struct { RD db.ReadOnly Entry *logrus.Entry } func (r ReadTracer) MailboxExistsWithID(ctx context.Context, mboxID imap.InternalMailboxID) (bool, error) { r.Entry.Tracef("MailboxExistsWithID") return r.RD.MailboxExistsWithID(ctx, mboxID) } func (r ReadTracer) MailboxExistsWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (bool, error) { r.Entry.Tracef("MailboxExistsWithRemoteID") return r.RD.MailboxExistsWithRemoteID(ctx, mboxID) } func (r ReadTracer) MailboxExistsWithName(ctx context.Context, name string) (bool, error) { r.Entry.Tracef("MailboxExistsWithName") return r.RD.MailboxExistsWithName(ctx, name) } func (r ReadTracer) GetMailboxIDFromRemoteID(ctx context.Context, mboxID imap.MailboxID) (imap.InternalMailboxID, error) { r.Entry.Tracef("GetMailboxIDFromRemoteID") return r.RD.GetMailboxIDFromRemoteID(ctx, mboxID) } func (r ReadTracer) GetMailboxName(ctx context.Context, mboxID imap.InternalMailboxID) (string, error) { r.Entry.Tracef("GetMailboxName") return r.RD.GetMailboxName(ctx, mboxID) } func (r ReadTracer) GetMailboxNameWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (string, error) { r.Entry.Tracef("GetMailboxNameWithRemoteID") return r.RD.GetMailboxNameWithRemoteID(ctx, mboxID) } func (r ReadTracer) GetMailboxMessageIDPairs(ctx context.Context, mboxID imap.InternalMailboxID) ([]db.MessageIDPair, error) { r.Entry.Tracef("GetMailboxMessageIDPairs") return r.RD.GetMailboxMessageIDPairs(ctx, mboxID) } func (r ReadTracer) GetAllMailboxesWithAttr(ctx context.Context) ([]*db.MailboxWithAttr, error) { r.Entry.Tracef("GetAllMailboxesWithAttr") return r.RD.GetAllMailboxesWithAttr(ctx) } func (r ReadTracer) GetAllMailboxesAsRemoteIDs(ctx context.Context) ([]imap.MailboxID, error) { r.Entry.Tracef("GetAllMailboxesAsRemoteIDs") return r.RD.GetAllMailboxesAsRemoteIDs(ctx) } func (r ReadTracer) GetMailboxByName(ctx context.Context, name string) (*db.Mailbox, error) { r.Entry.Tracef("GetMailboxByName") return r.RD.GetMailboxByName(ctx, name) } func (r ReadTracer) GetMailboxByID(ctx context.Context, mboxID imap.InternalMailboxID) (*db.Mailbox, error) { r.Entry.Tracef("GetMailboxByID") return r.RD.GetMailboxByID(ctx, mboxID) } func (r ReadTracer) GetMailboxByRemoteID(ctx context.Context, mboxID imap.MailboxID) (*db.Mailbox, error) { r.Entry.Tracef("GetMailboxByRemoteID") return r.RD.GetMailboxByRemoteID(ctx, mboxID) } func (r ReadTracer) GetMailboxRecentCount(ctx context.Context, mboxID imap.InternalMailboxID) (int, error) { r.Entry.Tracef("GetMailboxRecentCount") return r.RD.GetMailboxRecentCount(ctx, mboxID) } func (r ReadTracer) GetMailboxMessageCount(ctx context.Context, mboxID imap.InternalMailboxID) (int, error) { r.Entry.Tracef("GetMailboxMessageCount") return r.RD.GetMailboxMessageCount(ctx, mboxID) } func (r ReadTracer) GetMailboxMessageCountWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (int, error) { r.Entry.Tracef("GetMailboxMessageCountWithRemoteID") return r.RD.GetMailboxMessageCountWithRemoteID(ctx, mboxID) } func (r ReadTracer) GetMailboxFlags(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) { r.Entry.Tracef("GetMailboxFlags") return r.RD.GetMailboxFlags(ctx, mboxID) } func (r ReadTracer) GetMailboxPermanentFlags(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) { r.Entry.Tracef("GetMailboxPermanentFlags") return r.RD.GetMailboxPermanentFlags(ctx, mboxID) } func (r ReadTracer) GetMailboxAttributes(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) { r.Entry.Tracef("GetMailboxAttributes") return r.RD.GetMailboxAttributes(ctx, mboxID) } func (r ReadTracer) GetMailboxUID(ctx context.Context, mboxID imap.InternalMailboxID) (imap.UID, error) { r.Entry.Tracef("GetMailboxUID") return r.RD.GetMailboxUID(ctx, mboxID) } func (r ReadTracer) GetMailboxMessageCountAndUID(ctx context.Context, mboxID imap.InternalMailboxID) (int, imap.UID, error) { r.Entry.Tracef("GetMailboxMessageCountAndUID") return r.RD.GetMailboxMessageCountAndUID(ctx, mboxID) } func (r ReadTracer) GetMailboxMessageForNewSnapshot(ctx context.Context, mboxID imap.InternalMailboxID) ([]db.SnapshotMessageResult, error) { r.Entry.Tracef("GetMailboxMessagesForNewSnapshot") return r.RD.GetMailboxMessageForNewSnapshot(ctx, mboxID) } func (r ReadTracer) MailboxTranslateRemoteIDs(ctx context.Context, mboxIDs []imap.MailboxID) ([]imap.InternalMailboxID, error) { r.Entry.Tracef("MailboxTranslateRemoteIDs") return r.RD.MailboxTranslateRemoteIDs(ctx, mboxIDs) } func (r ReadTracer) MailboxFilterContains(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []db.MessageIDPair) ([]imap.InternalMessageID, error) { r.Entry.Tracef("MailboxFilterContains") return r.RD.MailboxFilterContains(ctx, mboxID, messageIDs) } func (r ReadTracer) GetMailboxCount(ctx context.Context) (int, error) { r.Entry.Tracef("GetMailboxCount") return r.RD.GetMailboxCount(ctx) } func (r ReadTracer) MessageExists(ctx context.Context, id imap.InternalMessageID) (bool, error) { r.Entry.Tracef("MessageExists") return r.RD.MessageExists(ctx, id) } func (r ReadTracer) MessageExistsWithRemoteID(ctx context.Context, id imap.MessageID) (bool, error) { r.Entry.Tracef("MessageExistsWithRemoteID") return r.RD.MessageExistsWithRemoteID(ctx, id) } func (r ReadTracer) GetMessageNoEdges(ctx context.Context, id imap.InternalMessageID) (*db.Message, error) { r.Entry.Tracef("GetMessagesNoEdges") return r.RD.GetMessageNoEdges(ctx, id) } func (r ReadTracer) GetTotalMessageCount(ctx context.Context) (int, error) { r.Entry.Tracef("GetTotalMessagecount") return r.RD.GetTotalMessageCount(ctx) } func (r ReadTracer) GetMessageRemoteID(ctx context.Context, id imap.InternalMessageID) (imap.MessageID, error) { r.Entry.Tracef("GetMessageRemoteID") return r.RD.GetMessageRemoteID(ctx, id) } func (r ReadTracer) GetImportedMessageData(ctx context.Context, id imap.InternalMessageID) (*db.MessageWithFlags, error) { r.Entry.Tracef("GetImportedMessageData") return r.RD.GetImportedMessageData(ctx, id) } func (r ReadTracer) GetMessageDateAndSize(ctx context.Context, id imap.InternalMessageID) (time.Time, int, error) { r.Entry.Tracef("GetMessageDateAndSize") return r.RD.GetMessageDateAndSize(ctx, id) } func (r ReadTracer) GetMessageMailboxIDs(ctx context.Context, id imap.InternalMessageID) ([]imap.InternalMailboxID, error) { r.Entry.Tracef("GetMessageMailboxIDs") return r.RD.GetMessageMailboxIDs(ctx, id) } func (r ReadTracer) GetMessagesFlags(ctx context.Context, ids []imap.InternalMessageID) ([]db.MessageFlagSet, error) { r.Entry.Tracef("GetMessageFlags") return r.RD.GetMessagesFlags(ctx, ids) } func (r ReadTracer) GetMessageIDsMarkedAsDelete(ctx context.Context) ([]imap.InternalMessageID, error) { r.Entry.Tracef("GetMessageIDsMarkedAsDelete") return r.RD.GetMessageIDsMarkedAsDelete(ctx) } func (r ReadTracer) GetMessageIDFromRemoteID(ctx context.Context, id imap.MessageID) (imap.InternalMessageID, error) { r.Entry.Tracef("GetMessageIDFromRemoteID") return r.RD.GetMessageIDFromRemoteID(ctx, id) } func (r ReadTracer) GetMessageDeletedFlag(ctx context.Context, id imap.InternalMessageID) (bool, error) { r.Entry.Tracef("GetMessageDeletedFlag") return r.RD.GetMessageDeletedFlag(ctx, id) } func (r ReadTracer) GetAllMessagesIDsAsMap(ctx context.Context) (map[imap.InternalMessageID]struct{}, error) { r.Entry.Tracef("GetAllMessagesIDsAsMap") return r.RD.GetAllMessagesIDsAsMap(ctx) } func (r ReadTracer) GetDeletedSubscriptionSet(ctx context.Context) (map[imap.MailboxID]*db.DeletedSubscription, error) { r.Entry.Tracef("GetDeletedSubscriptionSet") return r.RD.GetDeletedSubscriptionSet(ctx) } // WriteTracer prints all method names to a trace log. type WriteTracer struct { ReadTracer TX db.Transaction } func (w WriteTracer) CreateMailbox( ctx context.Context, mboxID imap.MailboxID, name string, flags, permFlags, attrs imap.FlagSet, uidValidity imap.UID, ) (*db.Mailbox, error) { w.Entry.Tracef("CreateMailbox") return w.TX.CreateMailbox(ctx, mboxID, name, flags, permFlags, attrs, uidValidity) } func (w WriteTracer) GetOrCreateMailbox( ctx context.Context, mboxID imap.MailboxID, name string, flags, permFlags, attrs imap.FlagSet, uidValidity imap.UID, ) (*db.Mailbox, error) { w.Entry.Tracef("GetOrCreateMailbox") return w.TX.GetOrCreateMailbox(ctx, mboxID, name, flags, permFlags, attrs, uidValidity) } func (w WriteTracer) GetOrCreateMailboxAlt( ctx context.Context, mbox imap.Mailbox, delimiter string, uidValidity imap.UID, ) (*db.Mailbox, error) { w.Entry.Tracef("GetOrCreateMailboxAlt") return w.TX.GetOrCreateMailboxAlt(ctx, mbox, delimiter, uidValidity) } func (w WriteTracer) RenameMailboxWithRemoteID(ctx context.Context, mboxID imap.MailboxID, name string) error { w.Entry.Tracef("RenameMailboxWithRemoteID") return w.TX.RenameMailboxWithRemoteID(ctx, mboxID, name) } func (w WriteTracer) DeleteMailboxWithRemoteID(ctx context.Context, mboxID imap.MailboxID) error { w.Entry.Tracef("DeleteMailboxWithRemoteID") return w.TX.DeleteMailboxWithRemoteID(ctx, mboxID) } func (w WriteTracer) AddMessagesToMailbox( ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []db.MessageIDPair, ) ([]db.UIDWithFlags, error) { w.Entry.Tracef("AddMessagesToMailbox") return w.TX.AddMessagesToMailbox(ctx, mboxID, messageIDs) } func (w WriteTracer) RemoveMessagesFromMailbox( ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID, ) error { w.Entry.Tracef("RemoveMessagesFromMailbox") return w.TX.RemoveMessagesFromMailbox(ctx, mboxID, messageIDs) } func (w WriteTracer) ClearRecentFlagInMailboxOnMessage( ctx context.Context, mboxID imap.InternalMailboxID, messageID imap.InternalMessageID, ) error { w.Entry.Tracef("ClearRecentFlagInMailboxOnMessage") return w.TX.ClearRecentFlagInMailboxOnMessage(ctx, mboxID, messageID) } func (w WriteTracer) ClearRecentFlagsInMailbox(ctx context.Context, mboxID imap.InternalMailboxID) error { w.Entry.Tracef("ClearRecentFlagsInMailbox") return w.TX.ClearRecentFlagsInMailbox(ctx, mboxID) } func (w WriteTracer) CreateMailboxIfNotExists(ctx context.Context, mbox imap.Mailbox, delimiter string, uidValidity imap.UID) error { w.Entry.Tracef("ClearMailboxIfNotExists") return w.TX.CreateMailboxIfNotExists(ctx, mbox, delimiter, uidValidity) } func (w WriteTracer) SetMailboxMessagesDeletedFlag( ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID, deleted bool, ) error { w.Entry.Tracef("SetMailboxMessagesDeleteFlag") return w.TX.SetMailboxMessagesDeletedFlag(ctx, mboxID, messageIDs, deleted) } func (w WriteTracer) SetMailboxSubscribed(ctx context.Context, mboxID imap.InternalMailboxID, subscribed bool) error { w.Entry.Tracef("SetMailboxSubscribed") return w.TX.SetMailboxSubscribed(ctx, mboxID, subscribed) } func (w WriteTracer) UpdateRemoteMailboxID(ctx context.Context, mobxID imap.InternalMailboxID, remoteID imap.MailboxID) error { w.Entry.Tracef("UpdateRemoteMailboxID") return w.TX.UpdateRemoteMailboxID(ctx, mobxID, remoteID) } func (w WriteTracer) SetMailboxUIDValidity(ctx context.Context, mboxID imap.InternalMailboxID, uidValidity imap.UID) error { w.Entry.Tracef("SetMailboxUIDValidity") return w.TX.SetMailboxUIDValidity(ctx, mboxID, uidValidity) } func (w WriteTracer) CreateMessages(ctx context.Context, reqs ...*db.CreateMessageReq) error { w.Entry.Tracef("CreateMessages") return w.TX.CreateMessages(ctx, reqs...) } func (w WriteTracer) CreateMessageAndAddToMailbox( ctx context.Context, mbox imap.InternalMailboxID, req *db.CreateMessageReq, ) (imap.UID, imap.FlagSet, error) { w.Entry.Tracef("CreateMessageAndAddToMailbox") return w.TX.CreateMessageAndAddToMailbox(ctx, mbox, req) } func (w WriteTracer) MarkMessageAsDeleted(ctx context.Context, id imap.InternalMessageID) error { w.Entry.Tracef("MarkMessageAsDeleted") return w.TX.MarkMessageAsDeleted(ctx, id) } func (w WriteTracer) MarkMessageAsDeletedAndAssignRandomRemoteID(ctx context.Context, id imap.InternalMessageID) error { w.Entry.Tracef("MarkMessageAsDeletedAndAssignRandomRemoteID") return w.TX.MarkMessageAsDeletedAndAssignRandomRemoteID(ctx, id) } func (w WriteTracer) MarkMessageAsDeletedWithRemoteID(ctx context.Context, id imap.MessageID) error { w.Entry.Tracef("MarkMessageAsDeletedWithRemoteID") return w.TX.MarkMessageAsDeletedWithRemoteID(ctx, id) } func (w WriteTracer) DeleteMessages(ctx context.Context, ids []imap.InternalMessageID) error { w.Entry.Tracef("DeleteMessages") return w.TX.DeleteMessages(ctx, ids) } func (w WriteTracer) UpdateRemoteMessageID(ctx context.Context, internalID imap.InternalMessageID, remoteID imap.MessageID) error { w.Entry.Tracef("UpdateRemoteMessageID") return w.TX.UpdateRemoteMessageID(ctx, internalID, remoteID) } func (w WriteTracer) AddFlagToMessages(ctx context.Context, ids []imap.InternalMessageID, flag string) error { w.Entry.Tracef("AddFlagsToMessage") return w.TX.AddFlagToMessages(ctx, ids, flag) } func (w WriteTracer) RemoveFlagFromMessages(ctx context.Context, ids []imap.InternalMessageID, flag string) error { w.Entry.Tracef("RemoveFlagsFromMessages") return w.TX.RemoveFlagFromMessages(ctx, ids, flag) } func (w WriteTracer) SetFlagsOnMessages(ctx context.Context, ids []imap.InternalMessageID, flags imap.FlagSet) error { w.Entry.Tracef("SetFlagsOnMessages") return w.TX.SetFlagsOnMessages(ctx, ids, flags) } func (w WriteTracer) AddDeletedSubscription(ctx context.Context, mboxName string, mboxID imap.MailboxID) error { w.Entry.Tracef("AddDeletedSubscription") return w.TX.AddDeletedSubscription(ctx, mboxName, mboxID) } func (w WriteTracer) RemoveDeletedSubscriptionWithName(ctx context.Context, mboxName string) (int, error) { w.Entry.Tracef("RemoveDeletedSubscriptionWithName") return w.TX.RemoveDeletedSubscriptionWithName(ctx, mboxName) } gluon-0.17.0/internal/db_impl/sqlite3/utils/wrappers.go000066400000000000000000000076531445200213000230650ustar00rootroot00000000000000package utils import ( "context" "database/sql" "github.com/sirupsen/logrus" ) // Collection of wrappers to help with tracing and debugging of SQL queries and statements. // QueryWrapper is a wrapper around go's sql.DB and sql.Tx types so we can override the calls with trackers (e.g.: // DebugQueryWrapper). type QueryWrapper interface { QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error) QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error) PrepareStatement(ctx context.Context, query string) (StmtWrapper, error) } // StmtWrapper is a wrapper around go's sql.Stmt type so we can override the calls with trackers (e.g.: // DebugStmtWrapper). type StmtWrapper interface { QueryContext(ctx context.Context, args ...any) (*sql.Rows, error) QueryRowContext(ctx context.Context, args ...any) *sql.Row ExecContext(ctx context.Context, args ...any) (sql.Result, error) Close() error } type DBWrapper struct { DB *sql.DB } func (d DBWrapper) QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error) { return d.DB.QueryContext(ctx, query, args...) } func (d DBWrapper) QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row { return d.DB.QueryRowContext(ctx, query, args...) } func (d DBWrapper) ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error) { return d.DB.ExecContext(ctx, query, args...) } func (d DBWrapper) PrepareStatement(ctx context.Context, query string) (StmtWrapper, error) { return d.DB.PrepareContext(ctx, query) } type TXWrapper struct { TX *sql.Tx } func (t TXWrapper) QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error) { return t.TX.QueryContext(ctx, query, args...) } func (t TXWrapper) QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row { return t.TX.QueryRowContext(ctx, query, args...) } func (t TXWrapper) ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error) { return t.TX.ExecContext(ctx, query, args...) } func (t TXWrapper) PrepareStatement(ctx context.Context, query string) (StmtWrapper, error) { return t.TX.PrepareContext(ctx, query) } type DebugQueryWrapper struct { QW QueryWrapper Entry *logrus.Entry } func (d DebugQueryWrapper) QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error) { d.Entry.Debugf("query=%v args=%v", query, args) return d.QW.QueryContext(ctx, query, args...) } func (d DebugQueryWrapper) QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row { d.Entry.Debugf("query=%v args=%v", query, args) return d.QW.QueryRowContext(ctx, query, args...) } func (d DebugQueryWrapper) ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error) { d.Entry.Debugf("Exec=%v args=%v", query, args) return d.QW.ExecContext(ctx, query, args...) } func (d DebugQueryWrapper) PrepareStatement(ctx context.Context, query string) (StmtWrapper, error) { d.Entry.Debugf("Prepare Statement=%v ", query) stmt, err := d.QW.PrepareStatement(ctx, query) if err != nil { return nil, err } return &DebugStmtWrapper{ sw: stmt, entry: d.Entry, query: query, }, nil } type DebugStmtWrapper struct { sw StmtWrapper entry *logrus.Entry query string } func (d DebugStmtWrapper) QueryContext(ctx context.Context, args ...any) (*sql.Rows, error) { d.entry.Debugf("query=%v args=%v", d.query, args) return d.sw.QueryContext(ctx, args...) } func (d DebugStmtWrapper) QueryRowContext(ctx context.Context, args ...any) *sql.Row { d.entry.Debugf("query=%v args=%v", d.query, args) return d.sw.QueryRowContext(ctx, args...) } func (d DebugStmtWrapper) ExecContext(ctx context.Context, args ...any) (sql.Result, error) { d.entry.Debugf("query=%v args=%v", d.query, args) return d.sw.ExecContext(ctx, args...) } func (d DebugStmtWrapper) Close() error { return d.sw.Close() } gluon-0.17.0/internal/db_impl/sqlite3/v0/000077500000000000000000000000001445200213000200455ustar00rootroot00000000000000gluon-0.17.0/internal/db_impl/sqlite3/v0/constants.go000066400000000000000000000030621445200213000224110ustar00rootroot00000000000000package v0 const DeletedSubscriptionsTableName = "deleted_subscriptions" const DeletedSubscriptionsFieldName = "name" const DeletedSubscriptionsFieldRemoteID = "remote_id" const MailboxAttrsTableName = "mailbox_attrs" const MailboxAttrsFieldValue = "value" const MailboxAttrsFieldMailboxID = "mailbox_attributes" const MailboxFlagsTableName = "mailbox_flags" const MailboxFlagsFieldValue = "value" const MailboxFlagsFieldMailboxID = "mailbox_flags" const MailboxPermFlagsTableName = "mailbox_perm_flags" const MailboxPermFlagsFieldValue = "value" const MailboxPermFlagsFieldMailboxID = "mailbox_permanent_flags" const MailboxesTableName = "mailboxes" const MailboxesFieldID = "id" const MailboxesFieldRemoteID = "remote_id" const MailboxesFieldName = "name" const MailboxesFieldUIDNext = "uid_next" const MailboxesFieldUIDValidity = "uid_validity" const MailboxesFieldSubscribed = "subscribed" const MessageFlagsTableName = "message_flags" const MessageFlagsFieldValue = "value" const MessageFlagsFieldMessageID = "message_flags" const MessagesTableName = "messages" const MessagesFieldID = "id" const MessagesFieldRemoteID = "remote_id" const MessagesFieldDate = "date" const MessagesFieldSize = "size" const MessagesFieldBody = "body" const MessagesFieldBodyStructure = "body_structure" const MessagesFieldEnvelope = "envelope" const MessagesFieldDeleted = "deleted" const UIDsTableName = "ui_ds" const UIDsFieldUID = "uid" const UIDsFieldDeleted = "deleted" const UIDsFieldRecent = "recent" const UIDsFieldMailboxID = "mailbox_ui_ds" const UIDsFieldMessageID = "uid_message" gluon-0.17.0/internal/db_impl/sqlite3/v0/migration.go000066400000000000000000000024061445200213000223670ustar00rootroot00000000000000package v0 import ( "context" "fmt" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/utils" "github.com/bradenaw/juniper/xmaps" "github.com/bradenaw/juniper/xslices" "github.com/sirupsen/logrus" ) type Migration struct{} func (m Migration) Run(ctx context.Context, tx utils.QueryWrapper, _ imap.UIDValidityGenerator) error { tables := []Table{ &DeletedSubscriptionsTable{}, &MailboxesTable{}, &MailboxFlagsTable{}, &MailboxAttrTable{}, &MailboxPermFlagsTable{}, &MessagesTable{}, &MessageFlagsTable{}, &UIDsTable{}, &GluonVersionTable{}, } tablesNames := xslices.Map(tables, func(t Table) string { return t.Name() }) query := fmt.Sprintf("SELECT `name` FROM sqlite_master WHERE `type` = 'table' AND `name` NOT LIKE 'sqlite_%%' AND `name` IN (%v)", utils.GenSQLIn(len(tables))) args := utils.MapSliceToAny(tablesNames) sqlTables, err := utils.MapQueryRows[string](ctx, tx, query, args...) if err != nil { return err } tablesSet := xmaps.SetFromSlice(sqlTables) for _, table := range tables { if !tablesSet.Contains(table.Name()) { logrus.Debugf("Table '%v' does not exist, creating", table.Name()) if err := table.Create(ctx, tx); err != nil { return err } } } return nil } gluon-0.17.0/internal/db_impl/sqlite3/v0/tables.go000066400000000000000000000136171445200213000216560ustar00rootroot00000000000000package v0 import ( "context" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/utils" ) type Table interface { Name() string Create(ctx context.Context, tx utils.QueryWrapper) error } func execQueries(ctx context.Context, tx utils.QueryWrapper, queries []string) error { for _, q := range queries { if _, err := utils.ExecQuery(ctx, tx, q); err != nil { return err } } return nil } type DeletedSubscriptionsTable struct{} func (d DeletedSubscriptionsTable) Name() string { return "deleted_subscriptions" } func (d DeletedSubscriptionsTable) Create(ctx context.Context, tx utils.QueryWrapper) error { queries := []string{ "CREATE TABLE `deleted_subscriptions` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `name` text NOT NULL, `remote_id` text NOT NULL)", "CREATE UNIQUE INDEX `deleted_subscriptions_name_key` ON `deleted_subscriptions` (`name`)", "CREATE UNIQUE INDEX `deleted_subscriptions_remote_id_key` ON `deleted_subscriptions` (`remote_id`)", "CREATE INDEX `deletedsubscription_remote_id` ON `deleted_subscriptions` (`remote_id`)", "CREATE INDEX `deletedsubscription_name` ON `deleted_subscriptions` (`name`)", } return execQueries(ctx, tx, queries) } type MailboxesTable struct{} func (m MailboxesTable) Name() string { return "mailboxes" } func (m MailboxesTable) Create(ctx context.Context, tx utils.QueryWrapper) error { queries := []string{ "CREATE TABLE `mailboxes` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `remote_id` text NULL, `name` text NOT NULL, `uid_next` integer NOT NULL DEFAULT 1, `uid_validity` integer NOT NULL DEFAULT 1, `subscribed` bool NOT NULL DEFAULT true)", "CREATE UNIQUE INDEX `mailboxes_remote_id_key` ON `mailboxes` (`remote_id`)", "CREATE UNIQUE INDEX `mailboxes_name_key` ON `mailboxes` (`name`)", "CREATE INDEX `mailbox_id` ON `mailboxes` (`id`)", "CREATE INDEX `mailbox_remote_id` ON `mailboxes` (`remote_id`)", "CREATE INDEX `mailbox_name` ON `mailboxes` (`name`)", } return execQueries(ctx, tx, queries) } type MailboxAttrTable struct{} func (m MailboxAttrTable) Name() string { return "mailbox_attrs" } func (m MailboxAttrTable) Create(ctx context.Context, tx utils.QueryWrapper) error { queries := []string{ "CREATE TABLE `mailbox_attrs` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `value` text NOT NULL, `mailbox_attributes` integer NULL, CONSTRAINT `mailbox_attrs_mailboxes_attributes` FOREIGN KEY (`mailbox_attributes`) REFERENCES `mailboxes` (`id`) ON DELETE CASCADE)", } return execQueries(ctx, tx, queries) } type MailboxFlagsTable struct{} func (m MailboxFlagsTable) Name() string { return "mailbox_flags" } func (m MailboxFlagsTable) Create(ctx context.Context, tx utils.QueryWrapper) error { queries := []string{ "CREATE TABLE `mailbox_flags` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `value` text NOT NULL, `mailbox_flags` integer NULL, CONSTRAINT `mailbox_flags_mailboxes_flags` FOREIGN KEY (`mailbox_flags`) REFERENCES `mailboxes` (`id`) ON DELETE CASCADE)", } return execQueries(ctx, tx, queries) } type MailboxPermFlagsTable struct{} func (m MailboxPermFlagsTable) Name() string { return "mailbox_perm_flags" } func (m MailboxPermFlagsTable) Create(ctx context.Context, tx utils.QueryWrapper) error { queries := []string{ "CREATE TABLE `mailbox_perm_flags` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `value` text NOT NULL, `mailbox_permanent_flags` integer NULL, CONSTRAINT `mailbox_perm_flags_mailboxes_permanent_flags` FOREIGN KEY (`mailbox_permanent_flags`) REFERENCES `mailboxes` (`id`) ON DELETE CASCADE)", } return execQueries(ctx, tx, queries) } type MessagesTable struct{} func (m MessagesTable) Name() string { return "messages" } func (m MessagesTable) Create(ctx context.Context, tx utils.QueryWrapper) error { queries := []string{ "CREATE TABLE `messages` (`id` uuid NOT NULL, `remote_id` text NULL, `date` datetime NOT NULL, `size` integer NOT NULL, `body` text NOT NULL, `body_structure` text NOT NULL, `envelope` text NOT NULL, `deleted` bool NOT NULL DEFAULT false, PRIMARY KEY (`id`))", "CREATE UNIQUE INDEX `messages_remote_id_key` ON `messages` (`remote_id`)", "CREATE INDEX `message_id` ON `messages` (`id`)", "CREATE INDEX `message_remote_id` ON `messages` (`remote_id`)", } return execQueries(ctx, tx, queries) } type MessageFlagsTable struct{} func (m MessageFlagsTable) Name() string { return "message_flags" } func (m MessageFlagsTable) Create(ctx context.Context, tx utils.QueryWrapper) error { queries := []string{ "CREATE TABLE `message_flags` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `value` text NOT NULL, `message_flags` uuid NULL, CONSTRAINT `message_flags_messages_flags` FOREIGN KEY (`message_flags`) REFERENCES `messages` (`id`) ON DELETE CASCADE)", } return execQueries(ctx, tx, queries) } type UIDsTable struct{} func (U UIDsTable) Name() string { return "ui_ds" } func (U UIDsTable) Create(ctx context.Context, tx utils.QueryWrapper) error { queries := []string{ "CREATE TABLE `ui_ds` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `uid` integer NOT NULL, `deleted` bool NOT NULL DEFAULT false, `recent` bool NOT NULL DEFAULT true, `mailbox_ui_ds` integer NULL, `uid_message` uuid NULL, CONSTRAINT `ui_ds_mailboxes_UIDs` FOREIGN KEY (`mailbox_ui_ds`) REFERENCES `mailboxes` (`id`) ON DELETE CASCADE, CONSTRAINT `ui_ds_messages_message` FOREIGN KEY (`uid_message`) REFERENCES `messages` (`id`) ON DELETE SET NULL)", "CREATE INDEX `uid_uid_uid_message` ON `ui_ds` (`uid`, `uid_message`)", } return execQueries(ctx, tx, queries) } type GluonVersionTable struct{} func (g GluonVersionTable) Name() string { return "gluon_version" } func (g GluonVersionTable) Create(ctx context.Context, tx utils.QueryWrapper) error { queries := []string{ "CREATE TABLE `gluon_version` (`id` integer NOT NULL PRIMARY KEY CHECK(`id` =0), `version` integer NOT NULL)", "INSERT INTO gluon_version (`id`, `version`) VALUES (0,0)", } return execQueries(ctx, tx, queries) } gluon-0.17.0/internal/db_impl/sqlite3/v1/000077500000000000000000000000001445200213000200465ustar00rootroot00000000000000gluon-0.17.0/internal/db_impl/sqlite3/v1/constants.go000066400000000000000000000033021445200213000224070ustar00rootroot00000000000000package v1 const DeletedSubscriptionsTableName = "deleted_subscriptions" const DeletedSubscriptionsFieldName = "name" const DeletedSubscriptionsFieldRemoteID = "remote_id" const MailboxAttrsTableName = "mailbox_attrs_v2" const MailboxAttrsFieldValue = "value" const MailboxAttrsFieldMailboxID = "mailbox_id" const MailboxFlagsTableName = "mailbox_flags_v2" const MailboxFlagsFieldValue = "value" const MailboxFlagsFieldMailboxID = "mailbox_id" const MailboxPermFlagsTableName = "mailbox_perm_flags_v2" const MailboxPermFlagsFieldValue = "value" const MailboxPermFlagsFieldMailboxID = "mailbox_id" const MailboxesTableName = "mailboxes_v2" const MailboxesFieldID = "id" const MailboxesFieldRemoteID = "remote_id" const MailboxesFieldName = "name" const MailboxesFieldUIDValidity = "uid_validity" const MailboxesFieldSubscribed = "subscribed" const MessageFlagsTableName = "message_flags_v2" const MessageFlagsFieldValue = "value" const MessageFlagsFieldMessageID = "message_id" const MessagesTableName = "messages_v2" const MessagesFieldID = "id" const MessagesFieldRemoteID = "remote_id" const MessagesFieldDate = "date" const MessagesFieldSize = "size" const MessagesFieldBody = "body" const MessagesFieldBodyStructure = "body_structure" const MessagesFieldEnvelope = "envelope" const MessagesFieldDeleted = "deleted" const MailboxMessagesFieldUID = "uid" const MailboxMessagesFieldDeleted = "deleted" const MailboxMessagesFieldRecent = "recent" const MailboxMessagesFieldMessageID = "message_id" const MailboxMessagesFieldMessageRemoteID = "message_remote_id" const MessageToMailboxTableName = "message_to_mailbox" const MessageToMailboxFieldMessageID = "message_id" const MessageToMailboxFieldMailboxID = "mailbox_id" gluon-0.17.0/internal/db_impl/sqlite3/v1/mailbox.go000066400000000000000000000125301445200213000220310ustar00rootroot00000000000000package v1 import ( "context" "fmt" "strings" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/utils" v0 "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/v0" "github.com/bradenaw/juniper/xslices" ) type mailboxV0 struct { ID imap.InternalMailboxID RemoteID imap.MailboxID Name string UIDNext imap.UID UIDValidity imap.UID Subscribed bool } func scanMailboxV0(scanner utils.RowScanner) (mailboxV0, error) { var mbox mailboxV0 if err := scanner.Scan(&mbox.ID, &mbox.RemoteID, &mbox.Name, &mbox.UIDNext, &mbox.UIDValidity, &mbox.Subscribed); err != nil { return mailboxV0{}, err } return mbox, nil } func MailboxMessageTableName(id imap.InternalMailboxID) string { return fmt.Sprintf("mailbox_message_%v", id) } func CreateMailboxMessageTableQuery(id imap.InternalMailboxID) string { tableName := MailboxMessageTableName(id) return fmt.Sprintf("CREATE TABLE `%[1]v` ("+ "`%[2]v` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `%[3]v` bool NOT NULL DEFAULT false, `%[4]v` bool NOT NULL DEFAULT true, "+ "`%[5]v` uuid NOT NULL UNIQUE, "+ "`%[6]v` string NOT NULL UNIQUE, "+ "CONSTRAINT `%[1]v_message_id` FOREIGN KEY (`%[5]v`) REFERENCES `%[7]v` (`%[8]v`) ON DELETE SET NULL)", tableName, MailboxMessagesFieldUID, MailboxMessagesFieldDeleted, MailboxMessagesFieldRecent, MailboxMessagesFieldMessageID, MailboxMessagesFieldMessageRemoteID, MessagesTableName, MessagesFieldID, ) } type mailboxFlag struct { ID imap.InternalMailboxID Value string } func scanMailboxFlag(scanner utils.RowScanner) (mailboxFlag, error) { var mf mailboxFlag if err := scanner.Scan(&mf.ID, &mf.Value); err != nil { return mailboxFlag{}, err } return mf, nil } func copyMailboxFlags(ctx context.Context, tx utils.QueryWrapper, oldToNewIDMap map[imap.InternalMailboxID]imap.InternalMailboxID, fromTableName string, fromFieldID string, fromFieldValue string, toTableName string, toFieldID string, toFieldValue string, ) error { loadQuery := fmt.Sprintf( "SELECT `%v`, `%v` FROM %v WHERE `%v` IS NOT NULL", fromFieldID, fromFieldValue, fromTableName, fromFieldID, ) flags, err := utils.MapQueryRowsFn(ctx, tx, loadQuery, scanMailboxFlag) if err != nil { return err } for _, chunk := range xslices.Chunk(flags, db.ChunkLimit) { insertQuery := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES %v", toTableName, toFieldID, toFieldValue, strings.Join(xslices.Repeat("(?,?)", len(chunk)), ","), ) args := make([]any, 0, len(chunk)*2) for _, f := range chunk { newId, ok := oldToNewIDMap[f.ID] if !ok { return fmt.Errorf("failed to map old mailbox id %v to new", f.ID) } args = append(args, newId, f.Value) } if _, err := utils.ExecQuery(ctx, tx, insertQuery, args...); err != nil { return err } } return nil } type uidMessageV0 struct { UID imap.UID Deleted bool Recent bool MessageID imap.InternalMessageID RemoteID imap.MessageID } func scanUIDMessageV0(scanner utils.RowScanner) (uidMessageV0, error) { var m uidMessageV0 if err := scanner.Scan(&m.UID, &m.MessageID, &m.RemoteID, &m.Recent, &m.Deleted); err != nil { return uidMessageV0{}, err } return m, nil } func migrateMailboxMessages( ctx context.Context, tx utils.QueryWrapper, oldToNewIDMap map[imap.InternalMailboxID]imap.InternalMailboxID, ) error { // nolint:dupword loadMessagesQuery := fmt.Sprintf("SELECT u.`%v`, u.`%v`, m.`%v`, u.`%v`, u.`%v` FROM %v AS u "+ "JOIN %v AS m ON m.`%v` = u.`%v` "+ "WHERE u.`%v` = ? ORDER BY u.`%v`", v0.UIDsFieldUID, v0.UIDsFieldMessageID, v0.MessagesFieldRemoteID, v0.UIDsFieldRecent, v0.UIDsFieldDeleted, v0.UIDsTableName, v0.MessagesTableName, v0.MessagesFieldID, v0.UIDsFieldMessageID, v0.UIDsFieldMailboxID, v0.UIDsFieldUID, ) loadMessagesStmt, err := tx.PrepareStatement(ctx, loadMessagesQuery) if err != nil { return err } defer utils.WrapStmtClose(loadMessagesStmt) for oldMboxID, newMBoxId := range oldToNewIDMap { messages, err := utils.MapStmtRowsFn(ctx, loadMessagesStmt, scanUIDMessageV0, oldMboxID) if err != nil { return err } for _, chunk := range xslices.Chunk(messages, db.ChunkLimit) { // Mailbox messages table. { query := fmt.Sprintf("INSERT OR IGNORE INTO %v (`%v`, `%v`, `%v`, `%v`) VALUES %v", MailboxMessageTableName(newMBoxId), MailboxMessagesFieldMessageID, MailboxMessagesFieldMessageRemoteID, MailboxMessagesFieldRecent, MailboxMessagesFieldDeleted, strings.Join(xslices.Repeat("(?,?,?,?)", len(chunk)), ","), ) args := make([]any, 0, len(chunk)*4) for _, m := range chunk { args = append(args, m.MessageID, m.RemoteID, m.Recent, m.Deleted) } if _, err := utils.ExecQuery(ctx, tx, query, args...); err != nil { return err } } // Message to Mailbox table. { query := fmt.Sprintf("INSERT OR IGNORE INTO %v (`%v`, `%v`) VALUES %v", MessageToMailboxTableName, MessageToMailboxFieldMessageID, MessageToMailboxFieldMailboxID, strings.Join(xslices.Repeat("(?,?)", len(chunk)), ","), ) args := make([]any, 0, len(chunk)*2) for _, m := range chunk { args = append(args, m.MessageID, newMBoxId) } if _, err := utils.ExecQuery(ctx, tx, query, args...); err != nil { return err } } } } return nil } gluon-0.17.0/internal/db_impl/sqlite3/v1/migration.go000066400000000000000000000274021445200213000223730ustar00rootroot00000000000000package v1 import ( "context" "fmt" "strings" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/utils" v0 "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/v0" "github.com/bradenaw/juniper/xslices" ) type Migration struct{} func (m Migration) Run(ctx context.Context, tx utils.QueryWrapper, generator imap.UIDValidityGenerator) error { // Migrate Messages And Flags. if err := migrateMessagesAndFlags(ctx, tx); err != nil { return err } // Migrate Mailboxes. if err := migrateMailboxes(ctx, tx, generator); err != nil { return err } // Migrate Mailbox Messages. if err := deleteOldTables(ctx, tx); err != nil { return fmt.Errorf("failed to remove old tables: %w", err) } return nil } func migrateMailboxes(ctx context.Context, tx utils.QueryWrapper, generator imap.UIDValidityGenerator) error { // Create mailboxes table { query := fmt.Sprintf("CREATE TABLE `%[1]v` (`%[2]v` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `%[3]v` text NOT NULL UNIQUE, "+ "`%[4]v` text NOT NULL UNIQUE, `%[5]v` integer NOT NULL , "+ "`%[6]v` bool NOT NULL DEFAULT true)", MailboxesTableName, MailboxesFieldID, MailboxesFieldRemoteID, MailboxesFieldName, MailboxesFieldUIDValidity, MailboxesFieldSubscribed, ) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return fmt.Errorf("failed to create mailboxes table: %w", err) } } // Create mailboxes flags table. { query := fmt.Sprintf("CREATE TABLE `%[1]v` (`%[2]v` text NOT NULL, `%[3]v` uuid NOT NULL, "+ "CONSTRAINT `mailbox_flags_mailbox_id` FOREIGN KEY (`%[3]v`) REFERENCES `%[4]v` (`%[5]v`) ON DELETE CASCADE, "+ "PRIMARY KEY (%[2]v, %[3]v)"+ ")", MailboxFlagsTableName, MailboxFlagsFieldValue, MailboxFlagsFieldMailboxID, MailboxesTableName, MailboxesFieldID, ) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return fmt.Errorf("failed to create mailboxes flags table: %w", err) } } // Create perm mailboxes flags table. { query := fmt.Sprintf("CREATE TABLE `%[1]v` (`%[2]v` text NOT NULL, `%[3]v` uuid NOT NULL, "+ "CONSTRAINT `perm_mailbox_flags_mailbox_id` FOREIGN KEY (`%[3]v`) REFERENCES `%[4]v` (`%[5]v`) ON DELETE CASCADE, "+ "PRIMARY KEY (%[2]v, %[3]v)"+ ")", MailboxPermFlagsTableName, MailboxPermFlagsFieldValue, MailboxPermFlagsFieldMailboxID, MailboxesTableName, MailboxesFieldID, ) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return fmt.Errorf("failed to create mailboxes perm flags table: %w", err) } } // Create Mailbox Attributes table. { query := fmt.Sprintf("CREATE TABLE `%[1]v` (`%[2]v` text NOT NULL, `%[3]v` uuid NOT NULL, "+ "CONSTRAINT `perm_attrs_flags_mailbox_id` FOREIGN KEY (`%[3]v`) REFERENCES `%[4]v` (`%[5]v`) ON DELETE CASCADE, "+ "PRIMARY KEY (%[2]v, %[3]v)"+ ")", MailboxAttrsTableName, MailboxAttrsFieldValue, MailboxAttrsFieldMailboxID, MailboxesTableName, MailboxesFieldID, ) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return fmt.Errorf("failed to create mailboxes attr table: %w", err) } } // Create Message To Mailbox table. { query := fmt.Sprintf("CREATE TABLE `%[1]v` (`%[2]v` uuid NOT NULL, `%[3]v` integer NOT NULL, "+ "CONSTRAINT `message_to_mailbox_message_id` FOREIGN KEY (`%[2]v`) REFERENCES `%[4]v` (`%[5]v`) ON DELETE CASCADE, "+ "CONSTRAINT `message_to_mailbox_message_id` FOREIGN KEY (`%[3]v`) REFERENCES `%[6]v` (`%[7]v`) ON DELETE CASCADE, "+ "PRIMARY KEY (%[2]v, %[3]v)"+ ")", MessageToMailboxTableName, MessageToMailboxFieldMessageID, MessageToMailboxFieldMailboxID, MessagesTableName, MessagesFieldID, MailboxesTableName, MailboxesFieldID, ) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return fmt.Errorf("failed to create messages to mailboxes table: %w", err) } } // Migrate mailboxes and assign new UID validity. loadExistingQuery := fmt.Sprintf("SELECT * FROM %v", v0.MailboxesTableName) mailboxes, err := utils.MapQueryRowsFn(ctx, tx, loadExistingQuery, scanMailboxV0) if err != nil { return fmt.Errorf("failed to read existing mailboxes: %w", err) } for _, chunk := range xslices.Chunk(mailboxes, db.ChunkLimit) { query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`, `%v`, `%v`) VALUES %v RETURNING `%v`", MailboxesTableName, MailboxesFieldRemoteID, MailboxesFieldName, MailboxesFieldUIDValidity, MailboxesFieldSubscribed, strings.Join(xslices.Repeat("(?,?,?,?)", len(chunk)), ","), MailboxesFieldID, ) args := make([]any, 0, len(chunk)*5) for _, m := range chunk { newUIDValidity, err := generator.Generate() if err != nil { return err } args = append(args, m.RemoteID, m.Name, newUIDValidity, m.Subscribed) } newMailboxIDs, err := utils.MapQueryRows[imap.InternalMailboxID](ctx, tx, query, args...) if err != nil { return err } for _, mboxID := range newMailboxIDs { query := CreateMailboxMessageTableQuery(mboxID) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return fmt.Errorf("failed to create mailbox messages table (%v): %w", mboxID, err) } } } // Copy Messages data oldToNewIDMap := make(map[imap.InternalMailboxID]imap.InternalMailboxID, len(mailboxes)) for _, m := range mailboxes { query := fmt.Sprintf("SELECT `%v` FROM %v WHERE `%v` = ? LIMIT 1", MailboxesFieldID, MailboxesTableName, MailboxesFieldName, ) newID, err := utils.MapQueryRow[imap.InternalMailboxID](ctx, tx, query, m.Name) if err != nil { return err } oldToNewIDMap[m.ID] = newID } // Copy mailbox flags. if err := copyMailboxFlags( ctx, tx, oldToNewIDMap, v0.MailboxFlagsTableName, v0.MailboxFlagsFieldMailboxID, v0.MailboxFlagsFieldValue, MailboxFlagsTableName, MailboxFlagsFieldMailboxID, MailboxFlagsFieldValue, ); err != nil { return fmt.Errorf("failed to copy mailbox flags: %w", err) } // Copy mailbox perm flags. if err := copyMailboxFlags( ctx, tx, oldToNewIDMap, v0.MailboxPermFlagsTableName, v0.MailboxPermFlagsFieldMailboxID, v0.MailboxPermFlagsFieldValue, MailboxPermFlagsTableName, MailboxPermFlagsFieldMailboxID, MailboxPermFlagsFieldValue, ); err != nil { return fmt.Errorf("failed to copy mailbox perm flags: %w", err) } // Copy mailbox attributes. if err := copyMailboxFlags( ctx, tx, oldToNewIDMap, v0.MailboxAttrsTableName, v0.MailboxAttrsFieldMailboxID, v0.MailboxAttrsFieldValue, MailboxAttrsTableName, MailboxAttrsFieldMailboxID, MailboxAttrsFieldValue, ); err != nil { return fmt.Errorf("failed to copy mailbox attr: %w", err) } if err := migrateMailboxMessages(ctx, tx, oldToNewIDMap); err != nil { return fmt.Errorf("failed to migrate mailbox messages: %w", err) } return nil } func migrateMessagesAndFlags(ctx context.Context, tx utils.QueryWrapper) error { if err := migrateMessages(ctx, tx); err != nil { return fmt.Errorf("failed to migrate messages: %w", err) } if err := migrateMessageFlags(ctx, tx); err != nil { return fmt.Errorf("failed to migrate message flags: %w", err) } return nil } func migrateMessages(ctx context.Context, tx utils.QueryWrapper) error { // Create new messages table. { query := fmt.Sprintf("CREATE TABLE `%[9]v` (`%[1]v` uuid NOT NULL, `%[2]v` text NOT NULL UNIQUE, "+ "`%[3]v` datetime NOT NULL, `%[4]v` integer NOT NULL, `%[5]v` text NOT NULL, `%[6]v` text NOT NULL, "+ "`%[7]v` text NOT NULL, `%[8]v` bool NOT NULL DEFAULT false, PRIMARY KEY (`%[1]v`))", MessagesFieldID, MessagesFieldRemoteID, MessagesFieldDate, MessagesFieldSize, MessagesFieldBody, MessagesFieldBodyStructure, MessagesFieldEnvelope, MessagesFieldDeleted, MessagesTableName, ) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return err } } // Copy messages. { query := fmt.Sprintf("INSERT INTO %v SELECT * FROM %v", MessagesTableName, v0.MessagesTableName) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return err } } return nil } func migrateMessageFlags(ctx context.Context, tx utils.QueryWrapper) error { // Create new table. { query := fmt.Sprintf("CREATE TABLE `%[1]v` (`%[2]v` text NOT NULL, `%[3]v` uuid NOT NULL, "+ "CONSTRAINT `message_flags_message_id` FOREIGN KEY (`%[3]v`) REFERENCES `%[4]v` (`%[5]v`) ON DELETE CASCADE, "+ "PRIMARY KEY (%[2]v, %[3]v)"+ ")", MessageFlagsTableName, MessageFlagsFieldValue, MessageFlagsFieldMessageID, MessagesTableName, MessagesFieldID, ) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return err } } // Migrate existing values to new table. { // Due to an issue in Ent's original generate layout it is possible to end up with flag entries that do // not reference any message. This would cause migration failure, but we can easily skip these. type V0MessageFlags struct { ID imap.InternalMessageID Value string } selectQuery := fmt.Sprintf("SELECT `%v`, `%v` FROM %v WHERE `%v` IS NOT NULL", v0.MessageFlagsFieldMessageID, v0.MessageFlagsFieldValue, v0.MessageFlagsTableName, v0.MessageFlagsFieldMessageID, ) flags, err := utils.MapQueryRowsFn(ctx, tx, selectQuery, func(scanner utils.RowScanner) (V0MessageFlags, error) { var mf V0MessageFlags if err := scanner.Scan(&mf.ID, &mf.Value); err != nil { return V0MessageFlags{}, err } return mf, nil }) if err != nil { return err } if len(flags) != 0 { remoteMessageIDsQuery := fmt.Sprintf("SELECT `%v`, `%v` FROM %v", v0.MessagesFieldID, v0.MessagesFieldRemoteID, v0.MessagesTableName) remoteMessagesIDs := make(map[imap.InternalMessageID]imap.MessageID) if err := utils.QueryForEachRow(ctx, tx, remoteMessageIDsQuery, func(scanner utils.RowScanner) error { var id imap.InternalMessageID var remoteID imap.MessageID if err := scanner.Scan(&id, &remoteID); err != nil { return err } remoteMessagesIDs[id] = remoteID return nil }); err != nil { return err } for _, chunk := range xslices.Chunk(flags, db.ChunkLimit) { insertQuery := fmt.Sprintf("INSERT OR IGNORE INTO %v (`%v`, `%v`) VALUES %v", MessageFlagsTableName, MessageFlagsFieldMessageID, MessageFlagsFieldValue, strings.Join(xslices.Repeat("(?,?)", len(chunk)), ","), ) args := make([]any, 0, len(chunk)*2) for _, flag := range flags { args = append(args, flag.ID, flag.Value) } if _, err := utils.ExecQuery(ctx, tx, insertQuery, args...); err != nil { return err } } } } return nil } func deleteOldTables(ctx context.Context, tx utils.QueryWrapper) error { // Drop Messages Flags table. { query := fmt.Sprintf("DROP TABLE `%v`", v0.MessageFlagsTableName) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return err } } // Drop mailbox flags table. { query := fmt.Sprintf("DROP TABLE `%v`", v0.MailboxFlagsTableName) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return err } } // Drop mailbox perm flags table. { query := fmt.Sprintf("DROP TABLE `%v`", v0.MailboxPermFlagsTableName) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return err } } // Drop mailbox attr table. { query := fmt.Sprintf("DROP TABLE `%v`", v0.MailboxAttrsTableName) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return err } } // Drop ui_ds table { query := fmt.Sprintf("DROP TABLE `%v`", v0.UIDsTableName) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return err } } // Drop Mailboxes table. { query := fmt.Sprintf("DROP TABLE `%v`", v0.MailboxesTableName) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return err } } // Drop messages table. { query := fmt.Sprintf("DROP TABLE `%v`", v0.MessagesTableName) if _, err := utils.ExecQuery(ctx, tx, query); err != nil { return err } } return nil } gluon-0.17.0/internal/db_impl/sqlite3/write_ops.go000066400000000000000000000434351445200213000220730ustar00rootroot00000000000000package sqlite3 import ( "context" "errors" "fmt" "strings" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/utils" v1 "github.com/ProtonMail/gluon/internal/db_impl/sqlite3/v1" "github.com/bradenaw/juniper/xslices" ) type writeOps struct { readOps qw utils.QueryWrapper } func (w writeOps) CreateMailbox( ctx context.Context, mboxID imap.MailboxID, name string, flags, permFlags, attrs imap.FlagSet, uidValidity imap.UID, ) (*db.Mailbox, error) { createMBoxQuery := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`, `%v`, `%v`) VALUES (?,?,?,?) RETURNING `%v`", v1.MailboxesTableName, v1.MailboxesFieldRemoteID, v1.MailboxesFieldName, v1.MailboxesFieldUIDValidity, v1.MailboxesFieldSubscribed, v1.MailboxesFieldID, ) internalID, err := utils.MapQueryRow[imap.InternalMailboxID](ctx, w.qw, createMBoxQuery, mboxID, name, uidValidity, true, ) if err != nil { return nil, err } { query := v1.CreateMailboxMessageTableQuery(internalID) if _, err := utils.ExecQuery(ctx, w.qw, query); err != nil { return nil, err } } createFlags := func(tableName, fieldID, fieldValue string, flags imap.FlagSet) error { query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES (?, ?)", tableName, fieldID, fieldValue, ) stmt, err := w.qw.PrepareStatement(ctx, query) if err != nil { return err } defer utils.WrapStmtClose(stmt) for _, f := range flags.ToSliceUnsorted() { if _, err := utils.ExecStmt(ctx, stmt, internalID, f); err != nil { return err } } return nil } if err := createFlags(v1.MailboxFlagsTableName, v1.MailboxFlagsFieldMailboxID, v1.MailboxFlagsFieldValue, flags); err != nil { return nil, err } if err := createFlags(v1.MailboxPermFlagsTableName, v1.MailboxPermFlagsFieldMailboxID, v1.MailboxPermFlagsFieldValue, permFlags); err != nil { return nil, err } if err := createFlags(v1.MailboxAttrsTableName, v1.MailboxAttrsFieldMailboxID, v1.MailboxAttrsFieldValue, attrs); err != nil { return nil, err } return &db.Mailbox{ ID: internalID, RemoteID: mboxID, Name: name, UIDValidity: uidValidity, Subscribed: true, }, nil } func (w writeOps) GetOrCreateMailbox( ctx context.Context, mboxID imap.MailboxID, name string, flags, permFlags, attrs imap.FlagSet, uidValidity imap.UID, ) (*db.Mailbox, error) { mbox, err := w.GetMailboxByRemoteID(ctx, mboxID) if err != nil { if !errors.Is(err, db.ErrNotFound) { return nil, err } } else { return mbox, nil } return w.CreateMailbox(ctx, mboxID, name, flags, permFlags, attrs, uidValidity) } func (w writeOps) GetOrCreateMailboxAlt(ctx context.Context, mbox imap.Mailbox, delimiter string, uidValidity imap.UID) (*db.Mailbox, error) { return w.GetOrCreateMailbox( ctx, mbox.ID, strings.Join(mbox.Name, delimiter), mbox.Flags, mbox.PermanentFlags, mbox.Attributes, uidValidity, ) } func (w writeOps) RenameMailboxWithRemoteID(ctx context.Context, mboxID imap.MailboxID, name string) error { query := fmt.Sprintf("UPDATE %v SET `%v` = ? WHERE `%v` = ?", v1.MailboxesTableName, v1.MailboxesFieldName, v1.MailboxesFieldRemoteID, ) return utils.ExecQueryAndCheckUpdatedNotZero(ctx, w.qw, query, name, mboxID) } func (w writeOps) DeleteMailboxWithRemoteID(ctx context.Context, mboxID imap.MailboxID) error { mbox, err := w.GetMailboxByRemoteID(ctx, mboxID) if err != nil { if errors.Is(err, db.ErrNotFound) { return nil } return err } if mbox.Subscribed { if err := w.AddDeletedSubscription(ctx, mbox.Name, mboxID); err != nil { return err } } { query := fmt.Sprintf("DROP TABLE `%v`", v1.MailboxMessageTableName(mbox.ID)) if _, err = utils.ExecQuery(ctx, w.qw, query); err != nil { return err } } { query := fmt.Sprintf("DELETE FROM %v WHERE `%v` = ?", v1.MailboxesTableName, v1.MailboxesFieldRemoteID) if _, err = utils.ExecQuery(ctx, w.qw, query, mboxID); err != nil { return err } } return nil } func (w writeOps) AddMessagesToMailbox( ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []db.MessageIDPair, ) ([]db.UIDWithFlags, error) { if len(messageIDs) == 0 { return nil, nil } for _, chunk := range xslices.Chunk(messageIDs, db.ChunkLimit/2) { // Insert into Mailbox table. { query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES %v", v1.MailboxMessageTableName(mboxID), v1.MailboxMessagesFieldMessageID, v1.MailboxMessagesFieldMessageRemoteID, strings.Join(xslices.Repeat("(?,?)", len(chunk)), ","), ) args := make([]any, 0, 2*len(chunk)) for _, id := range chunk { args = append(args, id.InternalID, id.RemoteID) } if _, err := utils.ExecQuery(ctx, w.qw, query, args...); err != nil { return nil, err } } // Insert into Message To Mailbox table. { query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES %v", v1.MessageToMailboxTableName, v1.MessageToMailboxFieldMessageID, v1.MessageToMailboxFieldMailboxID, strings.Join(xslices.Repeat("(?,?)", len(chunk)), ","), ) args := make([]any, 0, 2*len(chunk)) for _, id := range chunk { args = append(args, id.InternalID, mboxID) } if _, err := utils.ExecQuery(ctx, w.qw, query, args...); err != nil { return nil, err } } } return w.GetMailboxMessageUIDsWithFlagsAfterAddOrUIDBump(ctx, mboxID, xslices.Map(messageIDs, func(t db.MessageIDPair) imap.InternalMessageID { return t.InternalID })) } func (w writeOps) RemoveMessagesFromMailbox(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID) error { for _, chunk := range xslices.Chunk(messageIDs, db.ChunkLimit) { // Delete from mailbox table. { query := fmt.Sprintf("DELETE FROM %v WHERE `%v` IN (%v)", v1.MailboxMessageTableName(mboxID), v1.MailboxMessagesFieldMessageID, utils.GenSQLIn(len(chunk)), ) if _, err := utils.ExecQuery(ctx, w.qw, query, utils.MapSliceToAny(messageIDs)...); err != nil { return err } } // Delete from message to mailbox table. { query := fmt.Sprintf("DELETE FROM %v WHERE `%v` IN (%v) AND `%v` =?", v1.MessageToMailboxTableName, v1.MailboxMessagesFieldMessageID, utils.GenSQLIn(len(chunk)), v1.MessageToMailboxFieldMailboxID, ) if _, err := utils.ExecQuery(ctx, w.qw, query, append(utils.MapSliceToAny(messageIDs), mboxID)...); err != nil { return err } } } return nil } func (w writeOps) ClearRecentFlagInMailboxOnMessage(ctx context.Context, mboxID imap.InternalMailboxID, messageID imap.InternalMessageID) error { query := fmt.Sprintf("UPDATE %v SET `%v` = FALSE WHERE `%v` = ?", v1.MailboxMessageTableName(mboxID), v1.MailboxMessagesFieldRecent, v1.MailboxMessagesFieldMessageID, ) return utils.ExecQueryAndCheckUpdatedNotZero(ctx, w.qw, query, messageID) } func (w writeOps) ClearRecentFlagsInMailbox(ctx context.Context, mboxID imap.InternalMailboxID) error { query := fmt.Sprintf("UPDATE %v SET `%v` = FALSE WHERE `%v` = TRUE", v1.MailboxMessageTableName(mboxID), v1.MailboxMessagesFieldRecent, v1.MailboxMessagesFieldRecent, ) _, err := utils.ExecQuery(ctx, w.qw, query) return err } func (w writeOps) CreateMailboxIfNotExists(ctx context.Context, mbox imap.Mailbox, delimiter string, uidValidity imap.UID) error { _, err := w.GetOrCreateMailboxAlt(ctx, mbox, delimiter, uidValidity) return err } func (w writeOps) SetMailboxMessagesDeletedFlag(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID, deleted bool) error { for _, chunk := range xslices.Chunk(messageIDs, db.ChunkLimit) { query := fmt.Sprintf("UPDATE %v SET `%v` =? WHERE `%v` IN (%v)", v1.MailboxMessageTableName(mboxID), v1.MailboxMessagesFieldDeleted, v1.MailboxMessagesFieldMessageID, utils.GenSQLIn(len(chunk)), ) args := make([]any, 0, len(chunk)+2) args = append(args, deleted) args = append(args, utils.MapSliceToAny(chunk)...) if _, err := utils.ExecQuery(ctx, w.qw, query, args...); err != nil { return err } } return nil } func (w writeOps) SetMailboxSubscribed(ctx context.Context, mboxID imap.InternalMailboxID, subscribed bool) error { query := fmt.Sprintf("UPDATE %v SET `%v` = ? WHERE `%v` = ?", v1.MailboxesTableName, v1.MailboxesFieldSubscribed, v1.MailboxesFieldID, ) _, err := utils.ExecQuery(ctx, w.qw, query, subscribed, mboxID) return err } func (w writeOps) UpdateRemoteMailboxID(ctx context.Context, mboxID imap.InternalMailboxID, remoteID imap.MailboxID) error { query := fmt.Sprintf("UPDATE %v SET `%v` = ? WHERE `%v` = ?", v1.MailboxesTableName, v1.MailboxesFieldRemoteID, v1.MailboxesFieldID, ) return utils.ExecQueryAndCheckUpdatedNotZero(ctx, w.qw, query, remoteID, mboxID) } func (w writeOps) SetMailboxUIDValidity(ctx context.Context, mboxID imap.InternalMailboxID, uidValidity imap.UID) error { query := fmt.Sprintf("UPDATE %v SET `%v` = ? WHERE `%v` = ?", v1.MailboxesTableName, v1.MailboxesFieldUIDValidity, v1.MailboxesFieldID, ) return utils.ExecQueryAndCheckUpdatedNotZero(ctx, w.qw, query, uidValidity, mboxID) } func (w writeOps) CreateMessages(ctx context.Context, reqs ...*db.CreateMessageReq) error { for _, chunk := range xslices.Chunk(reqs, db.ChunkLimit) { createMessageQuery := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`, `%v`, `%v`, `%v`, `%v`, `%v`) VALUES %v", v1.MessagesTableName, v1.MessagesFieldID, v1.MessagesFieldRemoteID, v1.MessagesFieldDate, v1.MessagesFieldSize, v1.MessagesFieldBody, v1.MessagesFieldBodyStructure, v1.MessagesFieldEnvelope, strings.Join(xslices.Repeat("(?,?,?,?,?,?,?)", len(chunk)), ","), ) args := make([]any, 0, len(chunk)*6) flagArgs := make([]any, 0, len(chunk)*2) for _, req := range chunk { args = append(args, req.InternalID, req.Message.ID, req.Message.Date, req.LiteralSize, req.Body, req.Structure, req.Envelope) for _, f := range req.Message.Flags.ToSliceUnsorted() { flagArgs = append(flagArgs, req.InternalID, f) } } if _, err := utils.ExecQuery(ctx, w.qw, createMessageQuery, args...); err != nil { return err } for _, chunk := range xslices.Chunk(flagArgs, db.ChunkLimit) { createFlagsQuery := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES %v", v1.MessageFlagsTableName, v1.MessageFlagsFieldMessageID, v1.MessageFlagsFieldValue, strings.Join(xslices.Repeat("(?,?)", len(chunk)/2), ","), ) if _, err := utils.ExecQuery(ctx, w.qw, createFlagsQuery, chunk...); err != nil { return err } } } return nil } func (w writeOps) CreateMessageAndAddToMailbox(ctx context.Context, mbox imap.InternalMailboxID, req *db.CreateMessageReq) (imap.UID, imap.FlagSet, error) { createMessageQuery := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`, `%v`, `%v`, `%v`, `%v`, `%v`) VALUES (?,?,?,?,?,?,?)", v1.MessagesTableName, v1.MessagesFieldID, v1.MessagesFieldRemoteID, v1.MessagesFieldDate, v1.MessagesFieldSize, v1.MessagesFieldBody, v1.MessagesFieldBodyStructure, v1.MessagesFieldEnvelope, ) if _, err := utils.ExecQuery(ctx, w.qw, createMessageQuery, req.InternalID, req.Message.ID, req.Message.Date, req.LiteralSize, req.Body, req.Structure, req.Envelope, ); err != nil { return 0, imap.FlagSet{}, err } if req.Message.Flags.Len() != 0 { createFlagsQuery := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES %v", v1.MessageFlagsTableName, v1.MessageFlagsFieldMessageID, v1.MessageFlagsFieldValue, strings.Join(xslices.Repeat("(?, ?)", req.Message.Flags.Len()), ","), ) args := make([]any, 0, req.Message.Flags.Len()*2) for _, f := range req.Message.Flags.ToSliceUnsorted() { args = append(args, req.InternalID, f) } if _, err := utils.ExecQuery(ctx, w.qw, createFlagsQuery, args...); err != nil { return 0, imap.FlagSet{}, err } } { query := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES (?,?)", v1.MessageToMailboxTableName, v1.MessageToMailboxFieldMessageID, v1.MessageToMailboxFieldMailboxID, ) if _, err := utils.ExecQuery(ctx, w.qw, query, req.InternalID, mbox); err != nil { return 0, imap.FlagSet{}, err } } addToMboxQuery := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES (?,?) RETURNING `%v`", v1.MailboxMessageTableName(mbox), v1.MailboxMessagesFieldMessageID, v1.MailboxMessagesFieldMessageRemoteID, v1.MailboxMessagesFieldUID, ) mboxUID, err := utils.MapQueryRow[imap.UID](ctx, w.qw, addToMboxQuery, req.InternalID, req.Message.ID) if err != nil { return 0, imap.FlagSet{}, err } flags := req.Message.Flags.Add(imap.FlagRecent) return mboxUID, flags, nil } func (w writeOps) MarkMessageAsDeleted(ctx context.Context, id imap.InternalMessageID) error { query := fmt.Sprintf("UPDATE %v SET `%v` = TRUE WHERE `%v` = ?", v1.MessagesTableName, v1.MessagesFieldDeleted, v1.MessagesFieldID, ) _, err := utils.ExecQuery(ctx, w.qw, query, id) return err } func (w writeOps) MarkMessageAsDeletedAndAssignRandomRemoteID(ctx context.Context, id imap.InternalMessageID) error { query := fmt.Sprintf("UPDATE %v SET `%v` = TRUE, `%v` = ? WHERE `%v` = ?", v1.MessagesTableName, v1.MessagesFieldDeleted, v1.MessagesFieldRemoteID, v1.MessagesFieldID, ) randomID := imap.MessageID(fmt.Sprintf("DELETED-%v", imap.NewInternalMessageID())) _, err := utils.ExecQuery(ctx, w.qw, query, randomID, id) return err } func (w writeOps) MarkMessageAsDeletedWithRemoteID(ctx context.Context, id imap.MessageID) error { query := fmt.Sprintf("UPDATE %v SET `%v` = TRUE WHERE `%v` = ?", v1.MessagesTableName, v1.MessagesFieldDeleted, v1.MessagesFieldRemoteID, ) _, err := utils.ExecQuery(ctx, w.qw, query, id) return err } func (w writeOps) DeleteMessages(ctx context.Context, ids []imap.InternalMessageID) error { for _, chunk := range xslices.Chunk(ids, db.ChunkLimit) { query := fmt.Sprintf("DELETE FROM %v WHERE `%v` IN (%v)", v1.MessagesTableName, v1.MessagesFieldID, utils.GenSQLIn(len(chunk)), ) if _, err := utils.ExecQuery(ctx, w.qw, query, utils.MapSliceToAny(chunk)...); err != nil { return err } } return nil } func (w writeOps) UpdateRemoteMessageID(ctx context.Context, internalID imap.InternalMessageID, remoteID imap.MessageID) error { query := fmt.Sprintf("UPDATE %v SET `%v` = ? WHERE `%v` = ?", v1.MessagesFieldID, v1.MessagesFieldRemoteID, v1.MessagesFieldID, ) return utils.ExecQueryAndCheckUpdatedNotZero(ctx, w.qw, query, remoteID, internalID) } func (w writeOps) AddFlagToMessages(ctx context.Context, ids []imap.InternalMessageID, flag string) error { for _, chunk := range xslices.Chunk(ids, db.ChunkLimit) { query := fmt.Sprintf("INSERT OR IGNORE INTO %v (`%v`, `%v`) VALUES %v", v1.MessageFlagsTableName, v1.MessageFlagsFieldMessageID, v1.MessageFlagsFieldValue, strings.Join(xslices.Repeat("(?, ?)", len(chunk)), ","), ) args := make([]any, 0, len(chunk)*2) for _, id := range chunk { args = append(args, id, flag) } if _, err := utils.ExecQuery(ctx, w.qw, query, args...); err != nil { return err } } return nil } func (w writeOps) RemoveFlagFromMessages(ctx context.Context, ids []imap.InternalMessageID, flag string) error { for _, chunk := range xslices.Chunk(ids, db.ChunkLimit) { query := fmt.Sprintf("DELETE FROM %v WHERE `%v` IN (%v) AND `%v` = ?", v1.MessageFlagsTableName, v1.MessageFlagsFieldMessageID, utils.GenSQLIn(len(chunk)), v1.MessageFlagsFieldValue, ) if _, err := utils.ExecQuery(ctx, w.qw, query, append(utils.MapSliceToAny(chunk), flag)...); err != nil { return err } } return nil } func (w writeOps) SetFlagsOnMessages(ctx context.Context, ids []imap.InternalMessageID, flags imap.FlagSet) error { // GODT-2522: can silently ignore duplicates with INSERT OR IGNORE INTO ... if constraint exists. flagSlice := flags.ToSliceUnsorted() flagsSQLIn := utils.GenSQLIn(len(flagSlice)) for _, chunk := range xslices.Chunk(ids, db.ChunkLimit/2) { deleteQuery := fmt.Sprintf("DELETE FROM %v WHERE `%v` IN (%v) AND `%v` NOT IN(%v)", v1.MessageFlagsTableName, v1.MessageFlagsFieldMessageID, utils.GenSQLIn(len(chunk)), v1.MessageFlagsFieldValue, flagsSQLIn, ) insertQuery := fmt.Sprintf("INSERT OR IGNORE INTO %v (`%v`, `%v`) VALUES %v", v1.MessageFlagsTableName, v1.MessageFlagsFieldMessageID, v1.MessageFlagsFieldValue, strings.Join(xslices.Repeat("(?,?)", len(flagSlice)), ","), ) deleteArgs := make([]any, 0, len(ids)+len(flagSlice)) deleteArgs = append(deleteArgs, utils.MapSliceToAny(chunk)...) deleteArgs = append(deleteArgs, utils.MapSliceToAny(flagSlice)...) if _, err := utils.ExecQuery(ctx, w.qw, deleteQuery, deleteArgs...); err != nil { return err } insertArgs := make([]any, 0, len(flagSlice)*2*len(chunk)) for _, id := range chunk { for _, flag := range flagSlice { insertArgs = append(insertArgs, id, flag) } } if _, err := utils.ExecQuery(ctx, w.qw, insertQuery, insertArgs...); err != nil { return err } } return nil } func (w writeOps) AddDeletedSubscription(ctx context.Context, mboxName string, mboxID imap.MailboxID) error { updateQuery := fmt.Sprintf("UPDATE %v SET `%v` = ? WHERE `%v` = ?", v1.DeletedSubscriptionsTableName, v1.DeletedSubscriptionsFieldRemoteID, v1.DeletedSubscriptionsFieldName, ) count, err := utils.ExecQuery(ctx, w.qw, updateQuery, mboxID, mboxName) if err != nil { return err } if count == 0 { createQuery := fmt.Sprintf("INSERT INTO %v (`%v`, `%v`) VALUES (?, ?)", v1.DeletedSubscriptionsTableName, v1.DeletedSubscriptionsFieldName, v1.DeletedSubscriptionsFieldRemoteID, ) if _, err := utils.ExecQuery(ctx, w.qw, createQuery, mboxName, mboxID); err != nil { return err } } return nil } func (w writeOps) RemoveDeletedSubscriptionWithName(ctx context.Context, mboxName string) (int, error) { query := fmt.Sprintf("DELETE FROM %v WHERE `%v` = ?", v1.DeletedSubscriptionsTableName, v1.DeletedSubscriptionsFieldName, ) return utils.ExecQuery(ctx, w.qw, query, mboxName) } gluon-0.17.0/internal/hash/000077500000000000000000000000001445200213000154515ustar00rootroot00000000000000gluon-0.17.0/internal/hash/hash.go000066400000000000000000000001661445200213000167260ustar00rootroot00000000000000package hash import "crypto/sha256" func SHA256(key []byte) []byte { hash := sha256.Sum256(key) return hash[:] } gluon-0.17.0/internal/ids/000077500000000000000000000000001445200213000153055ustar00rootroot00000000000000gluon-0.17.0/internal/ids/header.go000066400000000000000000000004031445200213000170610ustar00rootroot00000000000000package ids // InternalIDKey is the key of the header entry we add to messages in the mailserver system. // This allows us to detect when clients try to create a duplicate of a message, which we treat instead as a copy. const InternalIDKey = `X-Pm-Gluon-Id` gluon-0.17.0/internal/ids/ids.go000066400000000000000000000012751445200213000164200ustar00rootroot00000000000000package ids import ( "fmt" "strings" "github.com/ProtonMail/gluon/imap" ) const GluonRecoveryMailboxName = "Recovered Messages" const GluonRecoveryMailboxNameLowerCase = "recovered messages" const GluonInternalRecoveryMailboxRemoteID = imap.MailboxID("GLUON-INTERNAL-RECOVERY-MBOX") const gluonInternalRecoveredMessageRemoteIDPrefix = "GLUON-RECOVERED-MESSAGE" func NewRecoveredRemoteMessageID(internalID imap.InternalMessageID) imap.MessageID { return imap.MessageID(fmt.Sprintf("%v-%v", gluonInternalRecoveredMessageRemoteIDPrefix, internalID)) } func IsRecoveredRemoteMessageID(id imap.MessageID) bool { return strings.HasPrefix(string(id), gluonInternalRecoveredMessageRemoteIDPrefix) } gluon-0.17.0/internal/response/000077500000000000000000000000001445200213000163645ustar00rootroot00000000000000gluon-0.17.0/internal/response/bad.go000066400000000000000000000010651445200213000174430ustar00rootroot00000000000000package response type bad struct { tag string err error } func Bad(withTag ...string) *bad { var tag string if len(withTag) > 0 { tag = withTag[0] } else { tag = "*" } return &bad{ tag: tag, } } func (r *bad) WithError(err error) *bad { r.err = err return r } func (r *bad) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *bad) String() string { parts := []string{r.tag, "BAD"} if r.err != nil { parts = append(parts, r.err.Error()) } return join(parts) } func (r *bad) Error() string { return r.err.Error() } gluon-0.17.0/internal/response/bad_test.go000066400000000000000000000006071445200213000205030ustar00rootroot00000000000000package response import ( "errors" "testing" "github.com/stretchr/testify/assert" ) func TestBadUntagged(t *testing.T) { assert.Equal(t, "* BAD", Bad().String()) } func TestBadTagged(t *testing.T) { assert.Equal(t, "tag BAD", Bad("tag").String()) } func TestBadError(t *testing.T) { assert.Equal(t, "tag BAD erroooooor", Bad("tag").WithError(errors.New("erroooooor")).String()) } gluon-0.17.0/internal/response/bye.go000066400000000000000000000011351445200213000174720ustar00rootroot00000000000000package response type bye struct { msg string } func Bye() *bye { return &bye{} } func (r *bye) WithMessage(msg string) *bye { r.msg = msg return r } func (r *bye) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *bye) String() string { parts := []string{"*", "BYE"} if r.msg != "" { parts = append(parts, r.msg) } return join(parts) } func (r *bye) WithMailboxDeleted() *bye { r.msg = "Mailbox was deleted, have to disconnect." return r } func (r *bye) WithInconsistentState() *bye { r.msg = "IMAP session state is inconsistent, please re-login." return r } gluon-0.17.0/internal/response/bye_test.go000066400000000000000000000004111445200213000205250ustar00rootroot00000000000000package response import ( "testing" "github.com/stretchr/testify/assert" ) func TestBye(t *testing.T) { assert.Equal(t, "* BYE", Bye().String()) } func TestByeMessage(t *testing.T) { assert.Equal(t, "* BYE message", Bye().WithMessage("message").String()) } gluon-0.17.0/internal/response/capability.go000066400000000000000000000011711445200213000210340ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" "golang.org/x/exp/slices" ) type capability struct { caps []imap.Capability } func Capability() *capability { return &capability{} } func (r *capability) WithCapabilities(caps ...imap.Capability) *capability { r.caps = append(r.caps, caps...) return r } func (r *capability) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *capability) String() string { var caps []string for _, capability := range r.caps { caps = append(caps, string(capability)) } slices.Sort(caps) return fmt.Sprintf("* CAPABILITY %v", join(caps)) } gluon-0.17.0/internal/response/capability_test.go000066400000000000000000000006451445200213000221000ustar00rootroot00000000000000package response import ( "testing" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/assert" ) func TestCapabilityUntagged(t *testing.T) { assert.Equal(t, "* CAPABILITY IMAP4rev1", Capability().WithCapabilities(imap.IMAP4rev1).String()) } func TestCapabilityExtras(t *testing.T) { assert.Equal(t, "* CAPABILITY IDLE IMAP4rev1", Capability().WithCapabilities(imap.IMAP4rev1, imap.IDLE).String()) } gluon-0.17.0/internal/response/continuation.go000066400000000000000000000005201445200213000214220ustar00rootroot00000000000000package response import "strings" type continuation struct { tag string } func Continuation() *continuation { return &continuation{ tag: "+", } } func (r *continuation) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *continuation) String() string { return strings.Join([]string{r.tag, "Ready"}, " ") } gluon-0.17.0/internal/response/continuation_test.go000066400000000000000000000002551445200213000224660ustar00rootroot00000000000000package response import ( "testing" "github.com/stretchr/testify/assert" ) func TestContinuation(t *testing.T) { assert.Equal(t, "+ Ready", Continuation().String()) } gluon-0.17.0/internal/response/error.go000066400000000000000000000003431445200213000200440ustar00rootroot00000000000000package response import "errors" func FromError(err error) (Response, bool) { var no *no if errors.As(err, &no) { return no, true } var bad *bad if errors.As(err, &bad) { return bad, true } return nil, false } gluon-0.17.0/internal/response/exists.go000066400000000000000000000015641445200213000202400ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type exists struct { count imap.SeqID } func Exists() *exists { return &exists{} } func (r *exists) WithCount(n imap.SeqID) *exists { r.count = n return r } func (r *exists) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *exists) String() string { return fmt.Sprintf("* %v EXISTS", r.count) } func (r *exists) canSkip(other Response) bool { if _, isRecent := other.(*recent); isRecent { return true } if _, isFetch := other.(*fetch); isFetch { return true } return false } func (r *exists) mergeWith(other Response) Response { otherExist, ok := other.(*exists) if !ok { return nil } if otherExist.count > r.count { panic(fmt.Sprintf( "consecutive exists must be non-decreasing, but had %d and new %d", otherExist.count, r.count, )) } return r } gluon-0.17.0/internal/response/exists_test.go000066400000000000000000000002631445200213000212720ustar00rootroot00000000000000package response import ( "testing" "github.com/stretchr/testify/assert" ) func TestExists(t *testing.T) { assert.Equal(t, `* 23 EXISTS`, Exists().WithCount(23).String()) } gluon-0.17.0/internal/response/expunge.go000066400000000000000000000005411445200213000203660ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type expunge struct { seq imap.SeqID } func Expunge(seq imap.SeqID) *expunge { return &expunge{ seq: seq, } } func (r *expunge) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *expunge) String() string { return fmt.Sprintf("* %v EXPUNGE", r.seq) } gluon-0.17.0/internal/response/expunge_test.go000066400000000000000000000002521445200213000214240ustar00rootroot00000000000000package response import ( "testing" "github.com/stretchr/testify/assert" ) func TestExpunge(t *testing.T) { assert.Equal(t, `* 23 EXPUNGE`, Expunge(23).String()) } gluon-0.17.0/internal/response/fetch.go000066400000000000000000000022121445200213000200010ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type fetch struct { seq imap.SeqID items []Item } func Fetch(seq imap.SeqID) *fetch { return &fetch{ seq: seq, } } func (r *fetch) WithItems(items ...Item) *fetch { r.items = append(r.items, items...) return r } func (r *fetch) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *fetch) String() string { var items []string for _, item := range r.items { items = append(items, item.String()) } return fmt.Sprintf(`* %v FETCH (%v)`, r.seq, join(items)) } func (r *fetch) canSkip(other Response) bool { otherExists, isExists := other.(*exists) if isExists && r.seq < otherExists.count { return true } _, isRecent := other.(*recent) if isRecent { return true } otherFetch, isFetch := other.(*fetch) if isFetch && otherFetch.seq != r.seq { return true } return false } func (r *fetch) mergeWith(other Response) Response { otherFetch, ok := other.(*fetch) if !ok || otherFetch.seq != r.seq { return nil } for _, item := range r.items { otherFetch.items = appendOrMergeItem(otherFetch.items, item) } return otherFetch } gluon-0.17.0/internal/response/fetch_test.go000066400000000000000000000005021445200213000210400ustar00rootroot00000000000000package response import ( "testing" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/assert" ) func TestFetch(t *testing.T) { assert.Equal( t, `* 23 FETCH (FLAGS (\Seen) RFC822.SIZE 44827)`, Fetch(23). WithItems(ItemFlags(imap.NewFlagSet(`\Seen`)), ItemRFC822Size(44827)). String(), ) } gluon-0.17.0/internal/response/flags.go000066400000000000000000000007061445200213000200120ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type flags struct { flags imap.FlagSet } func Flags() *flags { return &flags{flags: imap.NewFlagSet()} } func (r *flags) WithFlags(fs imap.FlagSet) *flags { r.flags.AddFlagSetToSelf(fs) return r } func (r *flags) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *flags) String() string { return fmt.Sprintf("* FLAGS (%v)", join(r.flags.ToSlice())) } gluon-0.17.0/internal/response/flags_test.go000066400000000000000000000005131445200213000210450ustar00rootroot00000000000000package response import ( "testing" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/assert" ) func TestFlags(t *testing.T) { assert.Equal( t, `* FLAGS (\Answered \Deleted \Draft \Flagged \Seen)`, Flags().WithFlags(imap.NewFlagSet(`\Answered`, `\Flagged`, `\Deleted`, `\Seen`, `\Draft`)).String(), ) } gluon-0.17.0/internal/response/format.go000066400000000000000000000003221445200213000202000ustar00rootroot00000000000000package response import "strings" func join(items []string, withDel ...string) string { var del string if len(withDel) > 0 { del = withDel[0] } else { del = " " } return strings.Join(items, del) } gluon-0.17.0/internal/response/id.go000066400000000000000000000005511445200213000173100ustar00rootroot00000000000000package response import ( "github.com/ProtonMail/gluon/imap" ) type idResponse struct { imap.IMAPID } func ID(id imap.IMAPID) *idResponse { return &idResponse{ IMAPID: id, } } func (id *idResponse) String() string { return "* ID " + id.IMAPID.String() } func (r *idResponse) Send(session Session) error { return session.WriteResponse(r.String()) } gluon-0.17.0/internal/response/item.go000066400000000000000000000001711445200213000176500ustar00rootroot00000000000000package response type Item interface { String() string } type mergeableItem interface { mergeWith(other Item) Item } gluon-0.17.0/internal/response/item_appenduid.go000066400000000000000000000006261445200213000217060ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type itemAppendUID struct { uidValidity, messageUID imap.UID } func ItemAppendUID(uidValidity, messageUID imap.UID) *itemAppendUID { return &itemAppendUID{ uidValidity: uidValidity, messageUID: messageUID, } } func (c *itemAppendUID) String() string { return fmt.Sprintf("APPENDUID %v %v", c.uidValidity, c.messageUID) } gluon-0.17.0/internal/response/item_badcharset.go000066400000000000000000000002671445200213000220360ustar00rootroot00000000000000package response type itemBadCharset struct{} func ItemBadCharset() *itemBadCharset { return &itemBadCharset{} } func (c *itemBadCharset) String() string { return "BADCHARSET" } gluon-0.17.0/internal/response/item_body.go000066400000000000000000000003741445200213000206720ustar00rootroot00000000000000package response import "fmt" type itemBody struct { structure string } func ItemBody(structure string) *itemBody { return &itemBody{ structure: structure, } } func (r *itemBody) String() string { return fmt.Sprintf("BODY %v", r.structure) } gluon-0.17.0/internal/response/item_body_literal.go000066400000000000000000000014471445200213000224100ustar00rootroot00000000000000package response import "fmt" type itemBodyLiteral struct { section string literal []byte partial int } func ItemBodyLiteral(section string, literal []byte) *itemBodyLiteral { return &itemBodyLiteral{ section: section, literal: literal, partial: -1, } } func (r *itemBodyLiteral) WithPartial(begin, count int) *itemBodyLiteral { r.partial = begin if literalLen := len(r.literal); begin >= literalLen { r.literal = nil } else if begin+count > literalLen { r.literal = r.literal[begin:] } else { r.literal = r.literal[begin : begin+count] } return r } func (r *itemBodyLiteral) String() string { var partial string if r.partial >= 0 { partial = fmt.Sprintf("<%v>", r.partial) } return fmt.Sprintf("BODY[%v]%v {%v}\r\n%s", r.section, partial, len(r.literal), r.literal) } gluon-0.17.0/internal/response/item_body_literal_test.go000066400000000000000000000005121445200213000234370ustar00rootroot00000000000000package response import ( "testing" "github.com/stretchr/testify/assert" ) func TestItemBodyText(t *testing.T) { assert.Equal( t, "BODY[TEXT] {55}\r\nHello Joe, do you think we can meet at 3:30 tomorrow?\r\n", ItemBodyLiteral("TEXT", []byte("Hello Joe, do you think we can meet at 3:30 tomorrow?\r\n")).String(), ) } gluon-0.17.0/internal/response/item_bodystructure.go000066400000000000000000000004621445200213000226510ustar00rootroot00000000000000package response import "fmt" type itemBodyStructure struct { structure string } func ItemBodyStructure(structure string) *itemBodyStructure { return &itemBodyStructure{ structure: structure, } } func (r *itemBodyStructure) String() string { return fmt.Sprintf("BODYSTRUCTURE %v", r.structure) } gluon-0.17.0/internal/response/item_capability.go000066400000000000000000000007421445200213000220550ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" "golang.org/x/exp/slices" ) type itemCapability struct { caps []imap.Capability } func ItemCapability(caps ...imap.Capability) *itemCapability { return &itemCapability{ caps: caps, } } func (r *itemCapability) String() string { var caps []string for _, capability := range r.caps { caps = append(caps, string(capability)) } slices.Sort(caps) return fmt.Sprintf("CAPABILITY %v", join(caps)) } gluon-0.17.0/internal/response/item_copyuid.go000066400000000000000000000010121445200213000213770ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type itemCopyUID struct { uidValidity imap.UID sourceSet, destSet imap.SeqSet } func ItemCopyUID(uidValidity imap.UID, sourceSet, destSet []imap.UID) *itemCopyUID { return &itemCopyUID{ uidValidity: uidValidity, sourceSet: imap.NewSeqSetFromUID(sourceSet), destSet: imap.NewSeqSetFromUID(destSet), } } func (c *itemCopyUID) String() string { return fmt.Sprintf("COPYUID %v %v %v", c.uidValidity, c.sourceSet, c.destSet) } gluon-0.17.0/internal/response/item_envelope.go000066400000000000000000000004171445200213000215500ustar00rootroot00000000000000package response import "fmt" type itemEnvelope struct { envelope string } func ItemEnvelope(envelope string) *itemEnvelope { return &itemEnvelope{ envelope: envelope, } } func (r *itemEnvelope) String() string { return fmt.Sprintf("ENVELOPE %v", r.envelope) } gluon-0.17.0/internal/response/item_expungeissued.go000066400000000000000000000003111445200213000226140ustar00rootroot00000000000000package response type itemExpungeIssued struct{} func ItemExpungeIssued() *itemExpungeIssued { return &itemExpungeIssued{} } func (c *itemExpungeIssued) String() string { return "EXPUNGEISSUED" } gluon-0.17.0/internal/response/item_flags.go000066400000000000000000000006771445200213000210370ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type itemFlags struct { flags imap.FlagSet } func ItemFlags(flags imap.FlagSet) *itemFlags { return &itemFlags{flags: flags} } func (c *itemFlags) String() string { return fmt.Sprintf("FLAGS (%v)", join(c.flags.ToSlice())) } func (c *itemFlags) mergeWith(other Item) Item { _, ok := other.(*itemFlags) if !ok { return nil } return ItemFlags(c.flags.Clone()) } gluon-0.17.0/internal/response/item_internal_date.go000066400000000000000000000005761445200213000225520ustar00rootroot00000000000000package response import ( "fmt" "time" ) type itemInternalDate struct { date time.Time } const internalDateFormat = "02-Jan-2006 15:04:05 -0700" func ItemInternalDate(date time.Time) *itemInternalDate { return &itemInternalDate{date: date} } func (c *itemInternalDate) String() string { return fmt.Sprintf("INTERNALDATE \"%v\"", c.date.UTC().Format(internalDateFormat)) } gluon-0.17.0/internal/response/item_messages.go000066400000000000000000000003461445200213000215430ustar00rootroot00000000000000package response import "fmt" type itemMessages struct { n int } func ItemMessages(n int) *itemMessages { return &itemMessages{ n: n, } } func (s *itemMessages) String() string { return fmt.Sprintf("MESSAGES %v", s.n) } gluon-0.17.0/internal/response/item_permanent_flags.go000066400000000000000000000005461445200213000231030ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type itemPermanentFlags struct { flags imap.FlagSet } func ItemPermanentFlags(flags imap.FlagSet) *itemPermanentFlags { return &itemPermanentFlags{flags: flags} } func (c *itemPermanentFlags) String() string { return fmt.Sprintf("PERMANENTFLAGS (%v)", join(c.flags.ToSlice())) } gluon-0.17.0/internal/response/item_read_only.go000066400000000000000000000002541445200213000217060ustar00rootroot00000000000000package response type itemReadOnly struct{} func ItemReadOnly() *itemReadOnly { return &itemReadOnly{} } func (c *itemReadOnly) String() string { return "READ-ONLY" } gluon-0.17.0/internal/response/item_read_write.go000066400000000000000000000002621445200213000220560ustar00rootroot00000000000000package response type itemReadWrite struct{} func ItemReadWrite() *itemReadWrite { return &itemReadWrite{} } func (c *itemReadWrite) String() string { return "READ-WRITE" } gluon-0.17.0/internal/response/item_recent.go000066400000000000000000000003321445200213000212070ustar00rootroot00000000000000package response import "fmt" type itemRecent struct { n int } func ItemRecent(n int) *itemRecent { return &itemRecent{ n: n, } } func (s *itemRecent) String() string { return fmt.Sprintf("RECENT %v", s.n) } gluon-0.17.0/internal/response/item_rfc822_header.go000066400000000000000000000004651445200213000222540ustar00rootroot00000000000000package response import "fmt" type itemRFC822Header struct { header []byte } func ItemRFC822Header(header []byte) *itemRFC822Header { return &itemRFC822Header{ header: header, } } func (r *itemRFC822Header) String() string { return fmt.Sprintf("RFC822.HEADER {%v}\r\n%s", len(r.header), r.header) } gluon-0.17.0/internal/response/item_rfc822_literal.go000066400000000000000000000004711445200213000224550ustar00rootroot00000000000000package response import "fmt" type itemRFC822Literal struct { literal []byte } func ItemRFC822Literal(literal []byte) *itemRFC822Literal { return &itemRFC822Literal{ literal: literal, } } func (r *itemRFC822Literal) String() string { return fmt.Sprintf("RFC822 {%v}\r\n%s", len(r.literal), r.literal) } gluon-0.17.0/internal/response/item_rfc822_size.go000066400000000000000000000004021445200213000217650ustar00rootroot00000000000000package response import "fmt" type itemRFC822Size struct { size int } func ItemRFC822Size(size int) *itemRFC822Size { return &itemRFC822Size{ size: size, } } func (s *itemRFC822Size) String() string { return fmt.Sprintf("RFC822.SIZE %v", s.size) } gluon-0.17.0/internal/response/item_rfc822_text.go000066400000000000000000000004351445200213000220050ustar00rootroot00000000000000package response import "fmt" type itemRFC822Text struct { text []byte } func ItemRFC822Text(text []byte) *itemRFC822Text { return &itemRFC822Text{ text: text, } } func (r *itemRFC822Text) String() string { return fmt.Sprintf("RFC822.TEXT {%v}\r\n%s", len(r.text), r.text) } gluon-0.17.0/internal/response/item_trycreate.go000066400000000000000000000002611445200213000217320ustar00rootroot00000000000000package response type itemTryCreate struct{} func ItemTryCreate() *itemTryCreate { return &itemTryCreate{} } func (c *itemTryCreate) String() string { return "TRYCREATE" } gluon-0.17.0/internal/response/item_uid.go000066400000000000000000000005731445200213000205170ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type itemUID struct { uid imap.UID } func ItemUID(n imap.UID) *itemUID { return &itemUID{uid: n} } func (c *itemUID) String() string { return fmt.Sprintf("UID %v", c.uid) } func (c *itemUID) mergeWith(other Item) Item { _, ok := other.(*itemUID) if !ok { return nil } return ItemUID(c.uid) } gluon-0.17.0/internal/response/item_uid_next.go000066400000000000000000000004241445200213000215500ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type itemUIDNext struct { uid imap.UID } func ItemUIDNext(n imap.UID) *itemUIDNext { return &itemUIDNext{uid: n} } func (c *itemUIDNext) String() string { return fmt.Sprintf("UIDNEXT %v", c.uid) } gluon-0.17.0/internal/response/item_uid_validity.go000066400000000000000000000004541445200213000224220ustar00rootroot00000000000000package response import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type itemUIDValidity struct { val imap.UID } func ItemUIDValidity(n imap.UID) *itemUIDValidity { return &itemUIDValidity{val: n} } func (c *itemUIDValidity) String() string { return fmt.Sprintf("UIDVALIDITY %v", c.val) } gluon-0.17.0/internal/response/item_unseen.go000066400000000000000000000003461445200213000212310ustar00rootroot00000000000000package response import "fmt" type itemUnseen struct { count uint32 } func ItemUnseen(n uint32) *itemUnseen { return &itemUnseen{count: n} } func (c *itemUnseen) String() string { return fmt.Sprintf("UNSEEN %v", c.count) } gluon-0.17.0/internal/response/list.go000066400000000000000000000013271445200213000176710ustar00rootroot00000000000000package response import ( "fmt" "strconv" "github.com/ProtonMail/gluon/imap" ) type list struct { name, del string att imap.FlagSet } func List() *list { return &list{att: imap.NewFlagSet()} } func (r *list) WithName(name string) *list { r.name = name return r } func (r *list) WithDelimiter(del string) *list { r.del = del return r } func (r *list) WithAttributes(att imap.FlagSet) *list { r.att.AddFlagSetToSelf(att) return r } func (r *list) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *list) String() string { del := "NIL" if r.del != "" { del = strconv.Quote(r.del) } return fmt.Sprintf(`* LIST (%v) %v %v`, join(r.att.ToSlice()), del, strconv.Quote(r.name)) } gluon-0.17.0/internal/response/list_test.go000066400000000000000000000007661445200213000207360ustar00rootroot00000000000000package response import ( "testing" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/assert" ) func TestList(t *testing.T) { assert.Equal( t, `* LIST (\Noselect) "/" "~/Mail/foo"`, List().WithAttributes(imap.NewFlagSet(`\Noselect`)).WithDelimiter("/").WithName(`~/Mail/foo`).String(), ) } func TestListNilDelimiter(t *testing.T) { assert.Equal( t, `* LIST (\Noselect) NIL "Mail"`, List().WithAttributes(imap.NewFlagSet(`\Noselect`)).WithName(`Mail`).String(), ) } gluon-0.17.0/internal/response/lsub.go000066400000000000000000000013271445200213000176630ustar00rootroot00000000000000package response import ( "fmt" "strconv" "github.com/ProtonMail/gluon/imap" ) type lsub struct { name, del string att imap.FlagSet } func Lsub() *lsub { return &lsub{att: imap.NewFlagSet()} } func (r *lsub) WithName(name string) *lsub { r.name = name return r } func (r *lsub) WithDelimiter(del string) *lsub { r.del = del return r } func (r *lsub) WithAttributes(att imap.FlagSet) *lsub { r.att.AddFlagSetToSelf(att) return r } func (r *lsub) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *lsub) String() string { del := "NIL" if r.del != "" { del = strconv.Quote(r.del) } return fmt.Sprintf(`* LSUB (%v) %v %v`, join(r.att.ToSlice()), del, strconv.Quote(r.name)) } gluon-0.17.0/internal/response/lsub_test.go000066400000000000000000000007661445200213000207300ustar00rootroot00000000000000package response import ( "testing" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/assert" ) func TestLsub(t *testing.T) { assert.Equal( t, `* LSUB (\Noselect) "/" "~/Mail/foo"`, Lsub().WithAttributes(imap.NewFlagSet(`\Noselect`)).WithDelimiter("/").WithName(`~/Mail/foo`).String(), ) } func TestLsubNilDelimiter(t *testing.T) { assert.Equal( t, `* LSUB (\Noselect) NIL "Mail"`, Lsub().WithAttributes(imap.NewFlagSet(`\Noselect`)).WithName(`Mail`).String(), ) } gluon-0.17.0/internal/response/merge.go000066400000000000000000000027621445200213000200210ustar00rootroot00000000000000package response func Merge(input []Response) []Response { if len(input) < 2 { return input } merged := make([]Response, 0, len(input)) for _, resp := range input { merged = appendOrMergeResponse(merged, resp) } return merged } // appendOrMergeResponse will find out if `unmerged` can be merged with some // element of `input`. It starts last thing first (i.e. the newest update). // // There are certain response types which cannot be merged together (e.g. recent and // exist) but one response can ignore (canSkip == true) the other and try to // merge with older responses (e.g. exists.canSkip(other) return true for // recent and fetch). func appendOrMergeResponse(input []Response, unmerged Response) []Response { mergeable, ok := unmerged.(mergeableResponse) if !ok { return append(input, unmerged) } wasMerged := false for i := len(input) - 1; i >= 0; i-- { merged := mergeable.mergeWith(input[i]) if merged != nil { wasMerged = true input[i] = merged break } if !mergeable.canSkip(input[i]) { break } } if !wasMerged { input = append(input, unmerged) } return input } func appendOrMergeItem(input []Item, unmerged Item) []Item { mergeable, ok := unmerged.(mergeableItem) if !ok { return append(input, unmerged) } wasMerged := false for i := range input { merged := mergeable.mergeWith(input[i]) if merged != nil { wasMerged = true input[i] = merged break } } if !wasMerged { input = append(input, unmerged) } return input } gluon-0.17.0/internal/response/merge_test.go000066400000000000000000000144761445200213000210650ustar00rootroot00000000000000package response import ( "testing" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/require" ) func TestMergeResponses(t *testing.T) { for testCase, testData := range map[string]struct { given, want []Response }{ "nil": {}, "zero length": { given: []Response{}, want: []Response{}, }, "consecutive exists": { given: []Response{ Exists().WithCount(1), Exists().WithCount(2), Exists().WithCount(3), Exists().WithCount(4), }, want: []Response{ Exists().WithCount(4), }, }, "interrupted exists": { given: []Response{ Exists().WithCount(1), Exists().WithCount(2), Expunge(1), Exists().WithCount(1), Exists().WithCount(2), Exists().WithCount(3), }, want: []Response{ Exists().WithCount(2), Expunge(1), Exists().WithCount(3), }, }, "consecutive recent": { given: []Response{ Recent().WithCount(1), Recent().WithCount(2), Recent().WithCount(3), Recent().WithCount(4), }, want: []Response{ Recent().WithCount(4), }, }, "interrupted recent": { given: []Response{ Recent().WithCount(1), Recent().WithCount(2), Expunge(1), Recent().WithCount(1), Recent().WithCount(2), Recent().WithCount(3), }, want: []Response{ Recent().WithCount(2), Expunge(1), Recent().WithCount(3), }, }, "combining exists and recent": { given: []Response{ Exists().WithCount(1), Recent().WithCount(1), Exists().WithCount(2), Recent().WithCount(2), Exists().WithCount(3), Exists().WithCount(4), Recent().WithCount(3), Recent().WithCount(4), Recent().WithCount(5), Recent().WithCount(6), Recent().WithCount(7), Recent().WithCount(8), Exists().WithCount(5), Exists().WithCount(6), }, want: []Response{ Exists().WithCount(6), Recent().WithCount(8), }, }, "interrupting exists and recent": { given: []Response{ Exists().WithCount(1), Recent().WithCount(1), Exists().WithCount(2), Recent().WithCount(2), Expunge(1), Exists().WithCount(2), Recent().WithCount(2), }, want: []Response{ Exists().WithCount(2), Recent().WithCount(2), Expunge(1), Exists().WithCount(2), Recent().WithCount(2), }, }, } { t.Run(testCase, func(t *testing.T) { require.Equal(t, testData.want, Merge(testData.given)) }) } } func TestMergeFetchResponses(t *testing.T) { noFlags := ItemFlags(imap.NewFlagSet()) seen := ItemFlags(imap.NewFlagSet(imap.FlagSeen)) seenDeleted := ItemFlags(imap.NewFlagSet(imap.FlagSeen, imap.FlagDeleted)) for testCase, testData := range map[string]struct { given, want []Response }{ "different fetch ids": { given: []Response{ Fetch(1).WithItems(seen), Fetch(2).WithItems(seen), Fetch(3).WithItems(seen), Fetch(4).WithItems(seen), }, want: []Response{ Fetch(1).WithItems(seen), Fetch(2).WithItems(seen), Fetch(3).WithItems(seen), Fetch(4).WithItems(seen), }, }, "same fetch ids": { given: []Response{ Fetch(1).WithItems(seen), Fetch(1).WithItems(noFlags), Fetch(1).WithItems(seenDeleted), }, want: []Response{ Fetch(1).WithItems(seenDeleted), }, }, "alter fetch ids": { given: []Response{ Fetch(1).WithItems(seen), Fetch(2).WithItems(seen), Fetch(2).WithItems(seenDeleted), Fetch(1).WithItems(noFlags), Fetch(3).WithItems(seen), Fetch(3).WithItems(noFlags), Fetch(3).WithItems(seen), }, want: []Response{ Fetch(1).WithItems(noFlags), Fetch(2).WithItems(seenDeleted), Fetch(3).WithItems(seen), }, }, "interrupt fetch merge": { given: []Response{ Fetch(1).WithItems(seen), Expunge(2), Fetch(1).WithItems(noFlags), Fetch(1).WithItems(seenDeleted), }, want: []Response{ Fetch(1).WithItems(seen), Expunge(2), Fetch(1).WithItems(seenDeleted), }, }, "don't interrupt fetch merge": { given: []Response{ Fetch(1).WithItems(seen), Exists().WithCount(2), Fetch(1).WithItems(noFlags), Fetch(1).WithItems(seenDeleted), }, want: []Response{ Fetch(1).WithItems(seenDeleted), Exists().WithCount(2), }, }, "combination of all": { given: []Response{ Fetch(1).WithItems(seen), Exists().WithCount(10), Fetch(1).WithItems(noFlags), Expunge(2), Exists().WithCount(9), Recent().WithCount(2), Fetch(1).WithItems(seenDeleted), Fetch(3).WithItems(seenDeleted), Exists().WithCount(10), Recent().WithCount(3), Fetch(3).WithItems(noFlags), Fetch(3).WithItems(seen), }, want: []Response{ Fetch(1).WithItems(noFlags), Exists().WithCount(10), Expunge(2), Exists().WithCount(10), Recent().WithCount(3), Fetch(1).WithItems(seenDeleted), Fetch(3).WithItems(seen), }, }, } { t.Run(testCase, func(t *testing.T) { require.Equal(t, testData.want, Merge(testData.given)) }) } } func TestMergeResponsesPanics(t *testing.T) { for testCase, testData := range map[string]struct { given []Response wantPanic string }{ "exists decreased": { given: []Response{ Exists().WithCount(1), Exists().WithCount(2), Exists().WithCount(1), Exists().WithCount(2), Exists().WithCount(3), Exists().WithCount(4), }, wantPanic: "consecutive exists must be non-decreasing, but had 2 and new 1", }, "recent decreased": { given: []Response{ Recent().WithCount(1), Recent().WithCount(2), Recent().WithCount(1), Recent().WithCount(2), Recent().WithCount(3), Recent().WithCount(4), }, wantPanic: "consecutive recents must be non-decreasing, but had 2 and new 1", }, "decreasing exists while having recent": { given: []Response{ Exists().WithCount(1), Recent().WithCount(1), Exists().WithCount(2), Recent().WithCount(2), Exists().WithCount(1), }, wantPanic: "consecutive exists must be non-decreasing, but had 2 and new 1", }, "decreasing recent while having exists": { given: []Response{ Recent().WithCount(1), Exists().WithCount(1), Recent().WithCount(2), Exists().WithCount(2), Recent().WithCount(1), }, wantPanic: "consecutive recents must be non-decreasing, but had 2 and new 1", }, } { t.Run(testCase, func(t *testing.T) { require.PanicsWithValue(t, testData.wantPanic, func() { Merge(testData.given) }) }) } } gluon-0.17.0/internal/response/no.go000066400000000000000000000015501445200213000173300ustar00rootroot00000000000000package response import "fmt" type no struct { tag string err error items []Item } func No(withTag ...string) *no { var tag string if len(withTag) > 0 { tag = withTag[0] } else { tag = "*" } return &no{ tag: tag, } } func (r *no) WithItems(items ...Item) *no { r.items = append(r.items, items...) return r } func (r *no) WithError(err error) *no { r.err = err return r } func (r *no) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *no) String() (res string) { parts := []string{r.tag, "NO"} if len(r.items) > 0 { var items []string for _, item := range r.items { items = append(items, item.String()) } parts = append(parts, fmt.Sprintf("[%v]", join(items))) } if r.err != nil { parts = append(parts, r.err.Error()) } return join(parts) } func (r *no) Error() string { return r.err.Error() } gluon-0.17.0/internal/response/no_test.go000066400000000000000000000010531445200213000203650ustar00rootroot00000000000000package response import ( "errors" "testing" "github.com/stretchr/testify/assert" ) func TestNoUntagged(t *testing.T) { assert.Equal(t, "* NO", No().String()) } func TestNoTagged(t *testing.T) { assert.Equal(t, "tag NO", No("tag").String()) } func TestNoError(t *testing.T) { assert.Equal(t, "tag NO erroooooor", No("tag").WithError(errors.New("erroooooor")).String()) } func TestNoTryCreate(t *testing.T) { assert.Equal(t, "tag NO [TRYCREATE] erroooooor", No("tag").WithItems(ItemTryCreate()).WithError(errors.New("erroooooor")).String()) } gluon-0.17.0/internal/response/ok.go000066400000000000000000000014531445200213000173270ustar00rootroot00000000000000package response import ( "fmt" ) type ok struct { tag string msg string items []Item } func Ok(withTag ...string) *ok { var tag string if len(withTag) > 0 { tag = withTag[0] } else { tag = "*" } return &ok{ tag: tag, } } func (r *ok) WithMessage(msg string) *ok { r.msg = msg return r } func (r *ok) WithItems(items ...Item) *ok { r.items = append(r.items, items...) return r } func (r *ok) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *ok) String() string { parts := []string{r.tag, "OK"} if len(r.items) > 0 { var items []string for _, item := range r.items { items = append(items, item.String()) } parts = append(parts, fmt.Sprintf("[%v]", join(items))) } if r.msg != "" { parts = append(parts, r.msg) } return join(parts) } gluon-0.17.0/internal/response/ok_test.go000066400000000000000000000016661445200213000203740ustar00rootroot00000000000000package response import ( "testing" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/assert" ) func TestOkUntagged(t *testing.T) { assert.Equal(t, `* OK`, Ok().String()) } func TestOkTagged(t *testing.T) { assert.Equal(t, `tag OK`, Ok("tag").String()) } func TestOkUnseen(t *testing.T) { assert.Equal(t, `* OK [UNSEEN 17]`, Ok().WithItems(ItemUnseen(17)).String()) } func TestOkPermanentFlags(t *testing.T) { assert.Equal(t, `* OK [PERMANENTFLAGS (\Deleted)]`, Ok().WithItems(ItemPermanentFlags(imap.NewFlagSet(`\Deleted`))).String()) } func TestOkUIDNext(t *testing.T) { assert.Equal(t, `* OK [UIDNEXT 4392]`, Ok().WithItems(ItemUIDNext(4392)).String()) } func TestOkUIDValidity(t *testing.T) { assert.Equal(t, `* OK [UIDVALIDITY 3857529045]`, Ok().WithItems(ItemUIDValidity(3857529045)).String()) } func TestOkReadOnly(t *testing.T) { assert.Equal(t, `* OK [READ-ONLY]`, Ok().WithItems(ItemReadOnly()).String()) } gluon-0.17.0/internal/response/recent.go000066400000000000000000000015131445200213000201730ustar00rootroot00000000000000package response import ( "fmt" ) type recent struct { count uint32 } func Recent() *recent { return &recent{} } func (r *recent) WithCount(n uint32) *recent { r.count = n return r } func (r *recent) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *recent) String() string { return fmt.Sprintf("* %v RECENT", r.count) } func (r *recent) canSkip(other Response) bool { if _, isExists := other.(*exists); isExists { return true } if _, isFetch := other.(*fetch); isFetch { return true } return false } func (r *recent) mergeWith(other Response) Response { otherRecent, ok := other.(*recent) if !ok { return nil } if otherRecent.count > r.count { panic(fmt.Sprintf( "consecutive recents must be non-decreasing, but had %d and new %d", otherRecent.count, r.count, )) } return r } gluon-0.17.0/internal/response/recent_test.go000066400000000000000000000002611445200213000212310ustar00rootroot00000000000000package response import ( "testing" "github.com/stretchr/testify/assert" ) func TestRecent(t *testing.T) { assert.Equal(t, `* 5 RECENT`, Recent().WithCount(5).String()) } gluon-0.17.0/internal/response/search.go000066400000000000000000000010351445200213000201570ustar00rootroot00000000000000package response import ( "strconv" "golang.org/x/exp/slices" ) type search struct { seqs []uint32 } func Search(seqs ...uint32) *search { slices.Sort(seqs) return &search{ seqs: seqs, } } func (r *search) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *search) String() string { parts := []string{"*", "SEARCH"} if len(r.seqs) > 0 { var seqs []string for _, seq := range r.seqs { seqs = append(seqs, strconv.Itoa(int(seq))) } parts = append(parts, join(seqs)) } return join(parts) } gluon-0.17.0/internal/response/search_test.go000066400000000000000000000004331445200213000212170ustar00rootroot00000000000000package response import ( "testing" "github.com/stretchr/testify/assert" ) func TestSearch(t *testing.T) { assert.Equal( t, `* SEARCH 2 3 6`, Search(2, 3, 6).String(), ) } func TestSearchEmpty(t *testing.T) { assert.Equal( t, `* SEARCH`, Search().String(), ) } gluon-0.17.0/internal/response/status.go000066400000000000000000000011461445200213000202400ustar00rootroot00000000000000package response import ( "fmt" "strconv" ) type status struct { name string items []Item } func Status() *status { return &status{} } func (r *status) WithMailbox(name string) *status { r.name = name return r } func (r *status) WithItems(item ...Item) *status { r.items = append(r.items, item...) return r } func (r *status) Send(s Session) error { return s.WriteResponse(r.String()) } func (r *status) String() string { var items []string for _, item := range r.items { items = append(items, item.String()) } return fmt.Sprintf(`* STATUS %v (%v)`, strconv.Quote(r.name), join(items)) } gluon-0.17.0/internal/response/status_test.go000066400000000000000000000004751445200213000213030ustar00rootroot00000000000000package response import ( "testing" "github.com/stretchr/testify/assert" ) func TestStatus(t *testing.T) { assert.Equal( t, `* STATUS "blurdybloop" (MESSAGES 231 UIDNEXT 44292)`, Status(). WithMailbox(`blurdybloop`). WithItems(ItemMessages(231)). WithItems(ItemUIDNext(44292)). String(), ) } gluon-0.17.0/internal/response/types.go000066400000000000000000000005001445200213000200520ustar00rootroot00000000000000// Package response implements types used when sending IMAP responses back to clients. package response type Response interface { Send(Session) error String() string } type Session interface { WriteResponse(string) error } type mergeableResponse interface { mergeWith(Response) Response canSkip(Response) bool } gluon-0.17.0/internal/session/000077500000000000000000000000001445200213000162115ustar00rootroot00000000000000gluon-0.17.0/internal/session/command.go000066400000000000000000000046271445200213000201670ustar00rootroot00000000000000package session import ( "bytes" "context" "errors" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/logging" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/rfcparser" "github.com/sirupsen/logrus" ) type commandResult struct { command command.Command err error } func (s *Session) startCommandReader(ctx context.Context) <-chan commandResult { cmdCh := make(chan commandResult) async.GoAnnotated(ctx, s.panicHandler, func(ctx context.Context) { defer close(cmdCh) tlsHeaders := [][]byte{ {0x16, 0x03, 0x01}, // 1.0 {0x16, 0x03, 0x02}, // 1.1 {0x16, 0x03, 0x03}, // 1.2 {0x16, 0x03, 0x04}, // 1.3 {0x16, 0x00, 0x00}, // 0.0 } parser := command.NewParserWithLiteralContinuationCb(s.scanner, func() error { return response.Continuation().Send(s) }) for { s.inputCollector.Reset() cmd, err := parser.Parse() s.logIncoming(string(s.inputCollector.Bytes())) if err != nil { var parserError *rfcparser.Error if !errors.As(err, &parserError) { return } if parserError.IsEOF() { return } if err := parser.ConsumeInvalidInput(); err != nil { return } bytesRead := s.inputCollector.Bytes() // check if we are receiving raw TLS requests, if so skip. for _, tlsHeader := range tlsHeaders { if bytes.HasPrefix(bytesRead, tlsHeader) { logrus.Errorf("TLS Handshake detected while not running with TLS/SSL") return } } logrus.WithError(err).WithField("type", parser.LastParsedCommand()).Error("Failed to parse IMAP command") reporter.MessageWithContext(ctx, "Failed to parse IMAP command", reporter.Context{"error": err, "cmd": parser.LastParsedCommand()}, ) } else { logrus.Debug(cmd.SanitizedString()) } switch c := cmd.Payload.(type) { case *command.StartTLS: // TLS needs to be handled here to ensure that next command read is over the TLS connection. if err = s.handleStartTLS(cmd.Tag, c); err != nil { logrus.WithError(err).Error("Cannot upgrade connection") return } else { continue } } select { case cmdCh <- commandResult{command: cmd, err: err}: // ... case <-ctx.Done(): return } } }, logging.Labels{ "Action": "Reading commands", "SessionID": s.sessionID, }) return cmdCh } gluon-0.17.0/internal/session/context.go000066400000000000000000000012261445200213000202250ustar00rootroot00000000000000package session import ( "context" "fmt" "time" ) type startTimeType struct{} var startTimeKey startTimeType func withStartTime(parent context.Context, startTime time.Time) context.Context { return context.WithValue(parent, startTimeKey, startTime) } func startTimeFromContext(ctx context.Context) (time.Time, bool) { startTime, ok := ctx.Value(startTimeKey).(time.Time) return startTime, ok } func okMessage(ctx context.Context) string { if startTime, ok := startTimeFromContext(ctx); ok { elapsed := time.Since(startTime) microSec := elapsed.Microseconds() return fmt.Sprintf("command completed in %v microsec.", microSec) } return "" } gluon-0.17.0/internal/session/errors.go000066400000000000000000000022351445200213000200560ustar00rootroot00000000000000package session import ( "context" "errors" "net" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/rfc822" ) var ( ErrCreateInbox = errors.New("cannot create INBOX") ErrDeleteInbox = errors.New("cannot delete INBOX") ErrReadOnly = errors.New("the mailbox is read-only") ErrTLSUnavailable = errors.New("TLS is unavailable") ErrNotAuthenticated = errors.New("session is not authenticated") ErrAlreadyAuthenticated = errors.New("session is already authenticated") ErrNotImplemented = errors.New("not implemented") ) func shouldReportIMAPCommandError(err error) bool { var netErr *net.OpError switch { case errors.Is(err, ErrCreateInbox) || errors.Is(err, ErrDeleteInbox) || errors.Is(err, ErrReadOnly): return false case state.IsStateError(err): return false case errors.Is(err, connector.ErrOperationNotAllowed): return false case errors.Is(err, context.Canceled): return false case errors.As(err, &netErr): return false case errors.Is(err, rfc822.ErrNoSuchPart): return false case errors.Is(err, state.ErrKnownRecoveredMessage): return false } return true } gluon-0.17.0/internal/session/flags.go000066400000000000000000000010601445200213000176310ustar00rootroot00000000000000package session import ( "errors" "github.com/ProtonMail/gluon/imap" ) var ErrFlagRecentIsReserved = errors.New(`system flag \Recent is reserved`) // validateStoreFlags ensures that the given flags are valid for a STORE command and return them as an imap.FlagSet. func validateStoreFlags(flags []string) (imap.FlagSet, error) { flagSet := imap.NewFlagSetFromSlice(flags) // As per RFC 3501, section 2.3.2, changing the \Recent flag is forbidden. if flagSet.Contains(imap.FlagRecent) { return nil, ErrFlagRecentIsReserved } return flagSet, nil } gluon-0.17.0/internal/session/handle.go000066400000000000000000000141511445200213000177750ustar00rootroot00000000000000package session import ( "context" "fmt" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/logging" ) func (s *Session) handleOther( ctx context.Context, tag string, cmd command.Payload, ) <-chan response.Response { resCh := make(chan response.Response, 8) s.handleWG.Go(func() { logging.DoAnnotated(state.NewStateContext(ctx, s.state), func(ctx context.Context) { defer close(resCh) if err := s.handleCommand(ctx, tag, cmd, resCh); err != nil { if res, ok := response.FromError(err); ok { resCh <- res } else { resCh <- response.No(tag).WithError(err) } } }, logging.Labels{ "Action": "Handling IMAP command", "SessionID": s.sessionID, }) }) return resCh } // handleCommand returns a response instance if a command needs to force an exit of the client. func (s *Session) handleCommand( ctx context.Context, tag string, cmd command.Payload, ch chan response.Response, ) error { switch cmd.(type) { case *command.Capability, *command.IDGet, *command.IDSet, *command.Noop: return s.handleAnyCommand(ctx, tag, cmd, ch) case *command.Login: return s.handleNotAuthenticatedCommand(ctx, tag, cmd, ch) case *command.Select, *command.Examine, *command.Create, *command.Delete, *command.Rename, *command.Subscribe, *command.Unsubscribe, *command.List, *command.LSub, *command.Status, *command.Append: return s.handleAuthenticatedCommand(ctx, tag, cmd, ch) case *command.Check, *command.Close, *command.Expunge, *command.UIDExpunge, *command.Unselect, *command.Search, *command.Fetch, *command.Store, *command.Copy, *command.Move, *command.UID: return s.handleSelectedCommand(ctx, tag, cmd, ch) default: return fmt.Errorf("bad command") } } func (s *Session) handleAnyCommand( ctx context.Context, tag string, cmd command.Payload, ch chan response.Response, ) error { switch cmd := cmd.(type) { case *command.Capability: // 6.1.1 CAPABILITY Command return s.handleCapability(ctx, tag, cmd, ch) case *command.Noop: // 6.1.2 NOOP Command return s.handleNoop(ctx, tag, cmd, ch) case *command.IDSet: // RFC 2971 ID return s.handleIDSet(ctx, tag, cmd, ch) case *command.IDGet: // RFC 2971 ID return s.handleIDGet(ctx, tag, ch) default: return fmt.Errorf("bad command") } } func (s *Session) handleNotAuthenticatedCommand( ctx context.Context, tag string, cmd command.Payload, ch chan response.Response, ) error { switch cmd := cmd.(type) { case *command.Login: // 6.2.3. LOGIN Command return s.handleLogin(ctx, tag, cmd, ch) default: return fmt.Errorf("bad command") } } func (s *Session) handleAuthenticatedCommand( ctx context.Context, tag string, cmd command.Payload, ch chan response.Response, ) error { s.userLock.Lock() defer s.userLock.Unlock() if s.state == nil { return ErrNotAuthenticated } switch cmd := cmd.(type) { case *command.Select: // 6.3.1. SELECT Command return s.handleSelect(ctx, tag, cmd, ch) case *command.Examine: // 6.3.2. EXAMINE Command return s.handleExamine(ctx, tag, cmd, ch) case *command.Create: // 6.3.3. CREATE Command return s.handleCreate(ctx, tag, cmd, ch) case *command.Delete: // 6.3.4. DELETE Command return s.handleDelete(ctx, tag, cmd, ch) case *command.Rename: // 6.3.5. RENAME Command return s.handleRename(ctx, tag, cmd, ch) case *command.Subscribe: // 6.3.6. SUBSCRIBE Command return s.handleSub(ctx, tag, cmd, ch) case *command.Unsubscribe: // 6.3.7. UNSUBSCRIBE Command return s.handleUnsub(ctx, tag, cmd, ch) case *command.List: // 6.3.8. LIST Command return s.handleList(ctx, tag, cmd, ch) case *command.LSub: // 6.3.9. Lsub Command return s.handleLsub(ctx, tag, cmd, ch) case *command.Status: // 6.3.10. STATUS Command return s.handleStatus(ctx, tag, cmd, ch) case *command.Append: // 6.3.11. APPEND Command return s.handleAppend(ctx, tag, cmd, ch) default: return fmt.Errorf("bad command") } } func (s *Session) handleSelectedCommand( ctx context.Context, tag string, cmd command.Payload, ch chan response.Response, ) error { s.userLock.Lock() defer s.userLock.Unlock() if s.state == nil { return ErrNotAuthenticated } return s.state.Selected(ctx, func(mailbox *state.Mailbox) error { okResponse, err := s.handleWithMailbox(ctx, tag, cmd, mailbox, ch) // Allow state updates to be applied if the command failed. It might resolve // some invalid state problem. if flushErr := flush(ctx, mailbox, false, ch); flushErr != nil { if err != nil { return fmt.Errorf("%w (flush err:%v)", err, flushErr) } return flushErr } if err != nil { return err } ch <- okResponse return nil }) } func (s *Session) handleWithMailbox( ctx context.Context, tag string, cmd command.Payload, mailbox *state.Mailbox, ch chan response.Response, ) (response.Response, error) { switch cmd := cmd.(type) { case *command.Check: // 6.4.1. CHECK Command return s.handleCheck(ctx, tag, cmd, mailbox, ch) case *command.Close: // 6.4.2. CLOSE Command return s.handleClose(ctx, tag, cmd, mailbox, ch) case *command.Expunge: // 6.4.3. EXPUNGE Command return s.handleExpunge(ctx, tag, cmd, mailbox, ch) case *command.UIDExpunge: // RFC4315 UIDPLUS Extension return s.handleUIDExpunge(ctx, tag, cmd, mailbox, ch) case *command.Unselect: // RFC3691 UNSELECT Extension return s.handleUnselect(ctx, tag, cmd, mailbox, ch) case *command.Search: // 6.4.4. SEARCH Command return s.handleSearch(ctx, tag, cmd, mailbox, ch) case *command.Fetch: // 6.4.5. FETCH Command return s.handleFetch(ctx, tag, cmd, mailbox, ch) case *command.Store: // 6.4.6. STORE Command return s.handleStore(ctx, tag, cmd, mailbox, ch) case *command.Copy: // 6.4.7. COPY Command return s.handleCopy(ctx, tag, cmd, mailbox, ch) case *command.UID: // 6.4.8. UID Command return s.handleUID(ctx, tag, cmd, mailbox, ch) case *command.Move: // RFC6851 MOVE Command return s.handleMove(ctx, tag, cmd, mailbox, ch) default: return nil, fmt.Errorf("bad command") } } gluon-0.17.0/internal/session/handle_append.go000066400000000000000000000033731445200213000213300ustar00rootroot00000000000000package session import ( "context" "errors" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/rfc5322" ) func (s *Session) handleAppend(ctx context.Context, tag string, cmd *command.Append, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeAppend) defer profiling.Stop(ctx, profiling.CmdTypeAppend) nameUTF8, err := s.decodeMailboxName(cmd.Mailbox) if err != nil { return err } flags, err := validateStoreFlags(cmd.Flags) if err != nil { return response.Bad(tag).WithError(err) } if err := s.state.AppendOnlyMailbox(ctx, nameUTF8, func(mailbox state.AppendOnlyMailbox, isSameMBox bool) error { isDrafts, err := mailbox.IsDrafts(ctx) if err != nil { return err } if !isDrafts { if err := rfc5322.ValidateMessageHeaderFields(cmd.Literal); err != nil { return response.Bad(tag).WithError(err) } } messageUID, err := mailbox.Append(ctx, cmd.Literal, flags, cmd.DateTime) if err != nil { if shouldReportIMAPCommandError(err) { reporter.MessageWithContext(ctx, "Failed to append message to mailbox from state", reporter.Context{"error": err, "mailbox": nameUTF8}, ) } return err } if isSameMBox { if err := flush(ctx, mailbox, true, ch); err != nil { return err } } ch <- response.Ok(tag).WithItems(response.ItemAppendUID(mailbox.UIDValidity(), messageUID)).WithMessage("APPEND") return nil }); errors.Is(err, state.ErrNoSuchMailbox) { return response.No(tag).WithError(err).WithItems(response.ItemTryCreate()) } else if err != nil { return err } return nil } gluon-0.17.0/internal/session/handle_capability.go000066400000000000000000000013661445200213000222020ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" ) func (s *Session) getCaps() []imap.Capability { s.userLock.Lock() defer s.userLock.Unlock() if s.state != nil { return s.caps } var caps []imap.Capability for _, c := range s.caps { if imap.IsCapabilityAvailableBeforeAuth(c) { caps = append(caps, c) } } return caps } func (s *Session) handleCapability(_ context.Context, tag string, _ *command.Capability, ch chan response.Response) error { s.capsLock.Lock() defer s.capsLock.Unlock() ch <- response.Capability().WithCapabilities(s.getCaps()...) ch <- response.Ok(tag).WithMessage("CAPABILITY") return nil } gluon-0.17.0/internal/session/handle_check.go000066400000000000000000000011421445200213000211260ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleCheck(ctx context.Context, tag string, _ *command.Check, mailbox *state.Mailbox, ch chan response.Response) (response.Response, error) { profiling.Start(ctx, profiling.CmdTypeCheck) defer profiling.Stop(ctx, profiling.CmdTypeCheck) if err := flush(ctx, mailbox, true, ch); err != nil { return nil, err } return response.Ok(tag).WithMessage("CHECK"), nil } gluon-0.17.0/internal/session/handle_close.go000066400000000000000000000015341445200213000211630ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleClose(ctx context.Context, tag string, _ *command.Close, mailbox *state.Mailbox, ch chan response.Response) (response.Response, error) { profiling.Start(ctx, profiling.CmdTypeClose) defer profiling.Stop(ctx, profiling.CmdTypeClose) ctx = contexts.AsClose(ctx) if !mailbox.ReadOnly() { if err := mailbox.Expunge(ctx, nil); err != nil { return nil, err } } if err := flush(ctx, mailbox, true, ch); err != nil { return nil, err } if err := mailbox.Close(ctx); err != nil { return nil, err } return response.Ok(tag).WithMessage("CLOSE"), nil } gluon-0.17.0/internal/session/handle_copy.go000066400000000000000000000027221445200213000210300ustar00rootroot00000000000000package session import ( "context" "errors" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" ) func (s *Session) handleCopy(ctx context.Context, tag string, cmd *command.Copy, mailbox *state.Mailbox, ch chan response.Response) (response.Response, error) { if contexts.IsUID(ctx) { profiling.Start(ctx, profiling.CmdTypeUIDCopy) defer profiling.Stop(ctx, profiling.CmdTypeUIDCopy) } else { profiling.Start(ctx, profiling.CmdTypeCopy) defer profiling.Stop(ctx, profiling.CmdTypeCopy) } nameUTF8, err := s.decodeMailboxName(cmd.Mailbox) if err != nil { return nil, err } item, err := mailbox.Copy(ctx, cmd.SeqSet, nameUTF8) if errors.Is(err, state.ErrNoSuchMessage) { return response.Bad(tag).WithError(err), nil } else if errors.Is(err, state.ErrNoSuchMailbox) { return response.No(tag).WithError(err).WithItems(response.ItemTryCreate()), nil } else if err != nil { if shouldReportIMAPCommandError(err) { reporter.MessageWithContext(ctx, "Failed to copy messages", reporter.Context{"error": err, "mailbox_to": nameUTF8, "mailbox_from": mailbox.Name()}, ) } return nil, err } response := response.Ok(tag) if item != nil { response = response.WithItems(item) } return response.WithMessage(okMessage(ctx)), nil } gluon-0.17.0/internal/session/handle_create.go000066400000000000000000000016661445200213000213270ustar00rootroot00000000000000package session import ( "context" "strings" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" ) func (s *Session) handleCreate(ctx context.Context, tag string, cmd *command.Create, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeCreate) defer profiling.Stop(ctx, profiling.CmdTypeCreate) nameUTF8, err := s.decodeMailboxName(cmd.Mailbox) if err != nil { return err } if strings.EqualFold(nameUTF8, imap.Inbox) { return ErrCreateInbox } if err := s.state.Create(ctx, nameUTF8); err != nil { if shouldReportIMAPCommandError(err) { reporter.MessageWithContext(ctx, "Failed to create mailbox", reporter.Context{"error": err, "mailbox": nameUTF8}, ) } return err } ch <- response.Ok(tag).WithMessage("CREATE") return nil } gluon-0.17.0/internal/session/handle_delete.go000066400000000000000000000020151445200213000213130ustar00rootroot00000000000000package session import ( "context" "strings" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" ) func (s *Session) handleDelete(ctx context.Context, tag string, cmd *command.Delete, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeDelete) defer profiling.Stop(ctx, profiling.CmdTypeDelete) nameUTF8, err := s.decodeMailboxName(cmd.Mailbox) if err != nil { return err } if strings.EqualFold(nameUTF8, imap.Inbox) { return ErrDeleteInbox } selectedDeleted, err := s.state.Delete(ctx, nameUTF8) if err != nil { if shouldReportIMAPCommandError(err) { reporter.MessageWithContext(ctx, "Failed to delete mailbox", reporter.Context{"error": err, "mailbox": nameUTF8}, ) } return err } ch <- response.Ok(tag).WithMessage("DELETE") if selectedDeleted { ch <- response.Bye().WithMailboxDeleted() } return nil } gluon-0.17.0/internal/session/handle_examine.go000066400000000000000000000030741445200213000215050ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleExamine(ctx context.Context, tag string, cmd *command.Examine, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeExamine) defer profiling.Stop(ctx, profiling.CmdTypeExamine) nameUTF8, err := s.decodeMailboxName(cmd.Mailbox) if err != nil { return err } if err := s.state.Examine(ctx, nameUTF8, func(mailbox *state.Mailbox) error { flags, err := mailbox.Flags(ctx) if err != nil { return err } permFlags, err := mailbox.PermanentFlags(ctx) if err != nil { return err } uidNext, err := mailbox.UIDNext(ctx) if err != nil { return err } ch <- response.Flags().WithFlags(flags) ch <- response.Exists().WithCount(imap.SeqID(mailbox.Count())) ch <- response.Recent().WithCount(uint32(mailbox.GetMessagesWithFlagCount(imap.FlagRecent))) ch <- response.Ok().WithItems(response.ItemPermanentFlags(permFlags)) ch <- response.Ok().WithItems(response.ItemUIDNext(uidNext)) ch <- response.Ok().WithItems(response.ItemUIDValidity(mailbox.UIDValidity())) if unseen, ok := mailbox.GetFirstMessageWithoutFlag(imap.FlagSeen); ok { ch <- response.Ok().WithItems(response.ItemUnseen(uint32(unseen.Seq))) } return nil }); err != nil { return err } ch <- response.Ok(tag).WithItems(response.ItemReadOnly()).WithMessage("EXAMINE") return nil } gluon-0.17.0/internal/session/handle_expunge.go000066400000000000000000000025321445200213000215300ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleExpunge(ctx context.Context, tag string, cmd *command.Expunge, mailbox *state.Mailbox, ch chan response.Response) (response.Response, error) { profiling.Start(ctx, profiling.CmdTypeExpunge) defer profiling.Stop(ctx, profiling.CmdTypeExpunge) if mailbox.ReadOnly() { return nil, ErrReadOnly } if err := mailbox.Expunge(ctx, nil); err != nil { return nil, err } if err := flush(ctx, mailbox, true, ch); err != nil { return nil, err } return response.Ok(tag).WithMessage("EXPUNGE"), nil } func (s *Session) handleUIDExpunge(ctx context.Context, tag string, cmd *command.UIDExpunge, mailbox *state.Mailbox, ch chan response.Response) (response.Response, error) { profiling.Start(ctx, profiling.CmdTypeExpunge) defer profiling.Stop(ctx, profiling.CmdTypeExpunge) ctx = contexts.AsUID(ctx) if mailbox.ReadOnly() { return nil, ErrReadOnly } if err := mailbox.Expunge(ctx, cmd.SeqSet); err != nil { return nil, err } if err := flush(ctx, mailbox, true, ch); err != nil { return nil, err } return response.Ok(tag).WithMessage("EXPUNGE"), nil } gluon-0.17.0/internal/session/handle_fetch.go000066400000000000000000000023521445200213000211460ustar00rootroot00000000000000package session import ( "context" "errors" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" ) func (s *Session) handleFetch(ctx context.Context, tag string, cmd *command.Fetch, mailbox *state.Mailbox, ch chan response.Response) (response.Response, error) { if contexts.IsUID(ctx) { profiling.Start(ctx, profiling.CmdTypeUIDFetch) defer profiling.Stop(ctx, profiling.CmdTypeUIDFetch) } else { profiling.Start(ctx, profiling.CmdTypeFetch) defer profiling.Stop(ctx, profiling.CmdTypeFetch) } if err := mailbox.Fetch(ctx, cmd, ch); errors.Is(err, state.ErrNoSuchMessage) { return response.Bad(tag).WithError(err), nil } else if err != nil { if shouldReportIMAPCommandError(err) { reporter.MessageWithContext(ctx, "Failed to fetch messages", reporter.Context{"error": err}, ) } return nil, err } var items []response.Item if mailbox.ExpungeIssued() { items = append(items, response.ItemExpungeIssued()) } return response.Ok(tag). WithItems(items...). WithMessage(okMessage(ctx)), nil } gluon-0.17.0/internal/session/handle_id.go000066400000000000000000000023241445200213000204500ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/events" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleIDGet(ctx context.Context, tag string, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeID) defer profiling.Stop(ctx, profiling.CmdTypeID) ch <- response.ID(imap.NewIMAPIDFromVersionInfo(s.version)) ch <- response.Ok(tag).WithMessage("ID") return nil } func (s *Session) handleIDSet(ctx context.Context, tag string, cmd *command.IDSet, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeID) defer profiling.Stop(ctx, profiling.CmdTypeID) // Update session IMAP ID. s.imapID = imap.NewIMAPIDFromKeyMap(cmd.Values) // If logged in and a mailbox has been selected, set the IMAP ID in the state's metadata. if s.state != nil { s.state.SetConnMetadataKeyValue(imap.IMAPIDConnMetadataKey, s.imapID) } ch <- response.ID(imap.NewIMAPIDFromVersionInfo(s.version)) ch <- response.Ok(tag).WithMessage("ID") s.eventCh <- events.IMAPID{ SessionID: s.sessionID, IMAPID: s.imapID, } return nil } gluon-0.17.0/internal/session/handle_idle.go000066400000000000000000000053401445200213000207720ustar00rootroot00000000000000package session import ( "context" "time" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/logging" "github.com/ProtonMail/gluon/profiling" "github.com/sirupsen/logrus" ) // GOMSRV-86: What does it mean to do IDLE when you're not selected? // GOMSRV-87: Should IDLE be stopped automatically when the context is cancelled? func (s *Session) handleIdle(ctx context.Context, tag string, _ *command.Idle, cmdCh <-chan commandResult) error { profiling.Start(ctx, profiling.CmdTypeIdle) defer profiling.Stop(ctx, profiling.CmdTypeIdle) if s.state == nil { return ErrNotAuthenticated } return s.state.Idle(ctx, func(pending []response.Response, resCh chan response.Response) error { async.GoAnnotated(ctx, s.panicHandler, func(ctx context.Context) { if s.idleBulkTime != 0 { sendResponsesInBulks(s, resCh, s.idleBulkTime) } else { for res := range resCh { if err := res.Send(s); err != nil { logrus.WithError(err).Error("Failed to send IDLE update") } } } }, logging.Labels{ "Action": "Sending IDLE updates", "SessionID": s.sessionID, }) if err := response.Continuation().Send(s); err != nil { return err } for _, res := range pending { if err := res.Send(s); err != nil { return err } } var cmd commandResult for { select { case res, ok := <-cmdCh: if !ok { return nil } if res.err != nil { return res.err } cmd = res case <-s.state.Done(): return nil case stateUpdate := <-s.state.GetStateUpdatesCh(): if err := s.state.ApplyUpdate(ctx, stateUpdate); err != nil { logrus.WithError(err).Error("Failed to apply state update during idle") } continue case <-ctx.Done(): return ctx.Err() } switch cmd.command.Payload.(type) { case *command.Done: return response.Ok(tag).WithMessage("IDLE").Send(s) default: return response.Bad(tag).Send(s) } } }) } func sendMergedResponses(s *Session, buffer []response.Response) { for _, res := range response.Merge(buffer) { if err := res.Send(s); err != nil { logrus.WithError(err).Error("Failed to send IDLE update") } } } func sendResponsesInBulks(s *Session, resCh chan response.Response, idleBulkTime time.Duration) { buffer := []response.Response{} ticker := time.NewTicker(idleBulkTime) defer ticker.Stop() for { select { case res, ok := <-resCh: if !ok { sendMergedResponses(s, buffer) return } if res != nil { buffer = append(buffer, res) logrus.WithField("response", res).Trace("Buffered") } case <-ticker.C: sendMergedResponses(s, buffer) buffer = []response.Response{} } } } gluon-0.17.0/internal/session/handle_list.go000066400000000000000000000021141445200213000210240ustar00rootroot00000000000000package session import ( "context" "fmt" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" "github.com/emersion/go-imap/utf7" ) func (s *Session) handleList(ctx context.Context, tag string, cmd *command.List, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeList) defer profiling.Stop(ctx, profiling.CmdTypeList) nameUTF8, err := s.decodeMailboxName(cmd.ListMailbox) if err != nil { return err } return s.state.List(ctx, cmd.Mailbox, nameUTF8, false, func(matches map[string]state.Match) error { for _, match := range matches { nameUtf7, err := utf7.Encoding.NewEncoder().String(match.Name) if err != nil { return fmt.Errorf("failed to convert name to utf7") } select { case ch <- response.List(). WithName(nameUtf7). WithDelimiter(match.Delimiter). WithAttributes(match.Atts): case <-ctx.Done(): return ctx.Err() } } ch <- response.Ok(tag).WithMessage("LIST") return nil }) } gluon-0.17.0/internal/session/handle_login.go000066400000000000000000000026741445200213000211740ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/events" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleLogin(ctx context.Context, tag string, cmd *command.Login, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeLogin) defer profiling.Stop(ctx, profiling.CmdTypeLogin) s.userLock.Lock() defer s.userLock.Unlock() s.capsLock.Lock() defer s.capsLock.Unlock() // If already authenticated, return BAD (it seems that NO is reserved for login failures). // This matches the behaviour of dovecot and gmail. if s.state != nil { return response.Bad(tag).WithError(ErrAlreadyAuthenticated) } state, err := s.backend.GetState(ctx, cmd.UserID, []byte(cmd.Password), s.sessionID) if err != nil { s.eventCh <- events.LoginFailed{ SessionID: s.sessionID, Username: cmd.UserID, } return err } s.state = state ch <- response.Ok(tag).WithItems(response.ItemCapability(s.caps...)).WithMessage("Logged in") s.eventCh <- events.Login{ SessionID: s.sessionID, UserID: state.UserID(), } // We set the IMAP ID extension value after login, since it's possible that the client may have sent it before. // This ensures that the ID is correctly set for the connection. state.SetConnMetadataKeyValue(imap.IMAPIDConnMetadataKey, s.imapID) return nil } gluon-0.17.0/internal/session/handle_logout.go000066400000000000000000000011641445200213000213660ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleLogout(ctx context.Context, tag string, _ *command.Logout) error { profiling.Start(ctx, profiling.CmdTypeLogout) defer profiling.Stop(ctx, profiling.CmdTypeLogout) s.userLock.Lock() defer s.userLock.Unlock() s.capsLock.Lock() defer s.capsLock.Unlock() if err := response.Bye().Send(s); err != nil { return err } if err := response.Ok(tag).WithMessage("LOGOUT").Send(s); err != nil { return err } return nil } gluon-0.17.0/internal/session/handle_lsub.go000066400000000000000000000020331445200213000210160ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" "github.com/emersion/go-imap/utf7" ) func (s *Session) handleLsub(ctx context.Context, tag string, cmd *command.LSub, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeLSub) defer profiling.Stop(ctx, profiling.CmdTypeLSub) nameUTF8, err := s.decodeMailboxName(cmd.LSubMailbox) if err != nil { return err } return s.state.List(ctx, cmd.Mailbox, nameUTF8, true, func(matches map[string]state.Match) error { for _, match := range matches { nameUtf7, err := utf7.Encoding.NewEncoder().String(match.Name) if err != nil { panic(err) } select { case ch <- response.Lsub(). WithName(nameUtf7). WithDelimiter(match.Delimiter). WithAttributes(match.Atts): case <-ctx.Done(): return ctx.Err() } } ch <- response.Ok(tag).WithMessage("LSUB") return nil }) } gluon-0.17.0/internal/session/handle_move.go000066400000000000000000000030251445200213000210210ustar00rootroot00000000000000package session import ( "context" "errors" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" ) func (s *Session) handleMove(ctx context.Context, tag string, cmd *command.Move, mailbox *state.Mailbox, ch chan response.Response) (response.Response, error) { if contexts.IsUID(ctx) { profiling.Start(ctx, profiling.CmdTypeUIDMove) defer profiling.Stop(ctx, profiling.CmdTypeUIDMove) } else { profiling.Start(ctx, profiling.CmdTypeMove) defer profiling.Stop(ctx, profiling.CmdTypeMove) } nameUTF8, err := s.decodeMailboxName(cmd.Mailbox) if err != nil { return nil, err } item, err := mailbox.Move(ctx, cmd.SeqSet, nameUTF8) if errors.Is(err, state.ErrNoSuchMessage) { return response.Bad(tag).WithError(err), nil } else if errors.Is(err, state.ErrNoSuchMailbox) { return response.No(tag).WithError(err).WithItems(response.ItemTryCreate()), nil } else if err != nil { if shouldReportIMAPCommandError(err) { reporter.MessageWithContext(ctx, "Failed to move messages from mailbox", reporter.Context{"error": err, "mailbox_to": nameUTF8, "mailbox_from": mailbox.Name()}, ) } return nil, err } if item != nil { ch <- response.Ok().WithItems(item) } if err := flush(ctx, mailbox, true, ch); err != nil { return nil, err } return response.Ok(tag).WithMessage(okMessage(ctx)), nil } gluon-0.17.0/internal/session/handle_noop.go000066400000000000000000000012711445200213000210270ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleNoop(ctx context.Context, tag string, _ *command.Noop, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeNoop) defer profiling.Stop(ctx, profiling.CmdTypeNoop) if (s.state != nil) && s.state.IsSelected() { if err := s.state.Selected(ctx, func(mailbox *state.Mailbox) error { return flush(ctx, mailbox, true, ch) }); err != nil { return err } } ch <- response.Ok(tag).WithMessage(okMessage(ctx)) return nil } gluon-0.17.0/internal/session/handle_rename.go000066400000000000000000000013101445200213000213150ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleRename(ctx context.Context, tag string, cmd *command.Rename, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeRename) defer profiling.Stop(ctx, profiling.CmdTypeRename) oldNameUTF8, err := s.decodeMailboxName(cmd.From) if err != nil { return err } newNameUTF8, err := s.decodeMailboxName(cmd.To) if err != nil { return err } if err := s.state.Rename(ctx, oldNameUTF8, newNameUTF8); err != nil { return err } ch <- response.Ok(tag).WithMessage("RENAME") return nil } gluon-0.17.0/internal/session/handle_search.go000066400000000000000000000026341445200213000213250ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" "golang.org/x/text/encoding" "golang.org/x/text/encoding/ianaindex" ) func (s *Session) handleSearch(ctx context.Context, tag string, cmd *command.Search, mailbox *state.Mailbox, ch chan response.Response) (response.Response, error) { if contexts.IsUID(ctx) { profiling.Start(ctx, profiling.CmdTypeUIDSearch) defer profiling.Stop(ctx, profiling.CmdTypeUIDSearch) } else { profiling.Start(ctx, profiling.CmdTypeSearch) defer profiling.Stop(ctx, profiling.CmdTypeSearch) } var decoder *encoding.Decoder if len(cmd.Charset) != 0 { encoding, err := ianaindex.IANA.Encoding(cmd.Charset) if err != nil { return nil, response.No(tag).WithItems(response.ItemBadCharset()) } decoder = encoding.NewDecoder() } else { decoder = encoding.Nop.NewDecoder() } seq, err := mailbox.Search(ctx, cmd.Keys, decoder) if err != nil { return nil, err } select { case ch <- response.Search(seq...): case <-ctx.Done(): return nil, ctx.Err() } var items []response.Item if mailbox.ExpungeIssued() { items = append(items, response.ItemExpungeIssued()) } return response.Ok(tag). WithItems(items...). WithMessage(okMessage(ctx)), nil } gluon-0.17.0/internal/session/handle_select.go000066400000000000000000000034511445200213000213350ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/events" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleSelect(ctx context.Context, tag string, cmd *command.Select, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeSelect) defer profiling.Stop(ctx, profiling.CmdTypeSelect) nameUTF8, err := s.decodeMailboxName(cmd.Mailbox) if err != nil { return err } if err := s.state.Select(ctx, nameUTF8, func(mailbox *state.Mailbox) error { flags, err := mailbox.Flags(ctx) if err != nil { return err } permFlags, err := mailbox.PermanentFlags(ctx) if err != nil { return err } uidNext, err := mailbox.UIDNext(ctx) if err != nil { return err } ch <- response.Flags().WithFlags(flags) ch <- response.Exists().WithCount(imap.SeqID(mailbox.Count())) ch <- response.Recent().WithCount(uint32(mailbox.GetMessagesWithFlagCount(imap.FlagRecent))) ch <- response.Ok().WithItems(response.ItemPermanentFlags(permFlags)).WithMessage("Flags permitted") ch <- response.Ok().WithItems(response.ItemUIDNext(uidNext)).WithMessage("Predicted next UID") ch <- response.Ok().WithItems(response.ItemUIDValidity(mailbox.UIDValidity())).WithMessage("UIDs valid") if unseen, ok := mailbox.GetFirstMessageWithoutFlag(imap.FlagSeen); ok { ch <- response.Ok().WithItems(response.ItemUnseen(uint32(unseen.Seq))).WithMessage("Unseen messages") } return nil }); err != nil { return err } ch <- response.Ok(tag).WithItems(response.ItemReadWrite()).WithMessage("SELECT") s.eventCh <- events.Select{ SessionID: s.sessionID, Mailbox: nameUTF8, } return nil } gluon-0.17.0/internal/session/handle_starttls.go000066400000000000000000000011571445200213000217370ustar00rootroot00000000000000package session import ( "bufio" "crypto/tls" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" ) func (s *Session) handleStartTLS(tag string, _ *command.StartTLS) error { if s.tlsConfig == nil { return response.No(tag).WithError(ErrTLSUnavailable) } if err := response.Ok(tag).WithMessage("Begin TLS negotiation now").Send(s); err != nil { return err } conn := tls.Server(s.conn, s.tlsConfig) if err := conn.Handshake(); err != nil { return err } s.conn = conn s.inputCollector.Reset() s.inputCollector.SetSource(bufio.NewReader(s.conn)) return nil } gluon-0.17.0/internal/session/handle_status.go000066400000000000000000000032661445200213000214050ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleStatus(ctx context.Context, tag string, cmd *command.Status, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeStatus) defer profiling.Stop(ctx, profiling.CmdTypeStatus) nameUTF8, err := s.decodeMailboxName(cmd.Mailbox) if err != nil { return err } if err := s.state.Mailbox(ctx, nameUTF8, func(mailbox *state.Mailbox) error { if mailbox.Selected() { if err := flush(ctx, mailbox, true, ch); err != nil { return err } } var items []response.Item for _, att := range cmd.Attributes { switch att { case command.StatusAttributeMessages: items = append(items, response.ItemMessages(mailbox.Count())) case command.StatusAttributeRecent: items = append(items, response.ItemRecent(mailbox.GetMessagesWithFlagCount(imap.FlagRecent))) case command.StatusAttributeUIDNext: uidNext, err := mailbox.UIDNext(ctx) if err != nil { return err } items = append(items, response.ItemUIDNext(uidNext)) case command.StatusAttributeUIDValidity: items = append(items, response.ItemUIDValidity(mailbox.UIDValidity())) case command.StatusAttributeUnseen: items = append(items, response.ItemUnseen(uint32(mailbox.GetMessagesWithoutFlagCount(imap.FlagSeen)))) } } ch <- response.Status().WithMailbox(cmd.Mailbox).WithItems(items...) return nil }); err != nil { return err } ch <- response.Ok(tag).WithMessage("STATUS") return nil } gluon-0.17.0/internal/session/handle_store.go000066400000000000000000000030661445200213000212140ustar00rootroot00000000000000package session import ( "context" "errors" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" ) func (s *Session) handleStore(ctx context.Context, tag string, cmd *command.Store, mailbox *state.Mailbox, ch chan response.Response) (response.Response, error) { if contexts.IsUID(ctx) { profiling.Start(ctx, profiling.CmdTypeUIDStore) defer profiling.Stop(ctx, profiling.CmdTypeUIDStore) } else { profiling.Start(ctx, profiling.CmdTypeStore) defer profiling.Stop(ctx, profiling.CmdTypeStore) } if cmd.Silent { ctx = contexts.AsSilent(ctx) } flags, err := validateStoreFlags(cmd.Flags) if err != nil { return response.Bad(tag).WithError(err), nil } if err := mailbox.Store(ctx, cmd.SeqSet, cmd.Action, flags); errors.Is(err, state.ErrNoSuchMessage) { return response.Bad(tag).WithError(err), nil } else if err != nil { if shouldReportIMAPCommandError(err) { reporter.MessageWithContext(ctx, "Failed to store flags on messages", reporter.Context{"error": err, "mailbox": mailbox.Name(), "action": cmd.Action.String()}, ) } return nil, err } if err := flush(ctx, mailbox, false, ch); err != nil { return nil, err } var items []response.Item if mailbox.ExpungeIssued() { items = append(items, response.ItemExpungeIssued()) } return response.Ok(tag). WithItems(items...). WithMessage(okMessage(ctx)), nil } gluon-0.17.0/internal/session/handle_sub.go000066400000000000000000000011531445200213000206440ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleSub(ctx context.Context, tag string, cmd *command.Subscribe, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeSubscribe) defer profiling.Stop(ctx, profiling.CmdTypeSubscribe) nameUTF8, err := s.decodeMailboxName(cmd.Mailbox) if err != nil { return err } if err := s.state.Subscribe(ctx, nameUTF8); err != nil { return err } ch <- response.Ok(tag).WithMessage("SUB") return nil } gluon-0.17.0/internal/session/handle_uid.go000066400000000000000000000016161445200213000206400ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" ) func (s *Session) handleUID(ctx context.Context, tag string, cmd *command.UID, mailbox *state.Mailbox, ch chan response.Response) (response.Response, error) { switch cmd := cmd.Command.(type) { case *command.Copy: return s.handleCopy(contexts.AsUID(ctx), tag, cmd, mailbox, ch) case *command.Move: return s.handleMove(contexts.AsUID(ctx), tag, cmd, mailbox, ch) case *command.Fetch: return s.handleFetch(contexts.AsUID(ctx), tag, cmd, mailbox, ch) case *command.Search: return s.handleSearch(contexts.AsUID(ctx), tag, cmd, mailbox, ch) case *command.Store: return s.handleStore(contexts.AsUID(ctx), tag, cmd, mailbox, ch) default: panic("bad command") } } gluon-0.17.0/internal/session/handle_unselect.go000066400000000000000000000011451445200213000216760ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleUnselect(ctx context.Context, tag string, _ *command.Unselect, mailbox *state.Mailbox, _ chan response.Response) (response.Response, error) { profiling.Start(ctx, profiling.CmdTypeUnselect) defer profiling.Stop(ctx, profiling.CmdTypeUnselect) if err := mailbox.Close(ctx); err != nil { return nil, err } return response.Ok(tag).WithMessage("UNSELECT"), nil } gluon-0.17.0/internal/session/handle_unsub.go000066400000000000000000000011751445200213000212130ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/profiling" ) func (s *Session) handleUnsub(ctx context.Context, tag string, cmd *command.Unsubscribe, ch chan response.Response) error { profiling.Start(ctx, profiling.CmdTypeUnsubscribe) defer profiling.Stop(ctx, profiling.CmdTypeUnsubscribe) nameUTF8, err := s.decodeMailboxName(cmd.Mailbox) if err != nil { return err } if err := s.state.Unsubscribe(ctx, nameUTF8); err != nil { return err } ch <- response.Ok(tag).WithMessage("UNSUBSCRIBE") return nil } gluon-0.17.0/internal/session/init.go000066400000000000000000000005701445200213000175050ustar00rootroot00000000000000package session import ( "os" "strconv" ) const ( logIMAPLineLimit = "GLUON_LOG_IMAP_LINE_LIMIT" responseChannelBufferCount = "GLUON_RESPONSE_CHANNEL_BUFFER_COUNT" ) var maxLineLength = 120 func init() { if val, ok := os.LookupEnv(logIMAPLineLimit); ok { valNum, err := strconv.Atoi(val) if err != nil { panic(err) } maxLineLength = valNum } } gluon-0.17.0/internal/session/logger.go000066400000000000000000000007211445200213000200170ustar00rootroot00000000000000package session import ( "fmt" "io" "log" "strings" ) func writeLog(w io.Writer, leader, sessionID, line string) { line = strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.TrimSpace(line), "\r", `\r`), "\n", `\n`), "\t", `\t`) if len(line) > maxLineLength { line = line[:maxLineLength] + "..." } if _, err := fmt.Fprintf(w, "%v[%v]: %v\n", leader, sessionID, line); err != nil { log.Printf("gluon: failed to write log: %v", err) } } gluon-0.17.0/internal/session/responses.go000066400000000000000000000006201445200213000205570ustar00rootroot00000000000000package session import ( "context" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" ) func flush(ctx context.Context, mailbox state.AppendOnlyMailbox, permitExpunge bool, resCh chan response.Response) error { res, err := mailbox.Flush(ctx, permitExpunge) if err != nil { return err } for _, res := range res { resCh <- res } return nil } gluon-0.17.0/internal/session/session.go000066400000000000000000000175461445200213000202400ustar00rootroot00000000000000// Package session handles IMAP commands received from clients // within a single IMAP session (one client connection). package session import ( "bufio" "context" "crypto/tls" "fmt" "io" "net" "strconv" "strings" "sync" "time" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/events" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/backend" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/internal/state" "github.com/ProtonMail/gluon/limits" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/rfcparser" "github.com/ProtonMail/gluon/version" "github.com/emersion/go-imap/utf7" "github.com/sirupsen/logrus" "golang.org/x/exp/slices" ) const maxSessionError = 20 type Session struct { // conn is the underlying TCP connection to the client. It is wrapped by a buffered liner. conn net.Conn scanner *rfcparser.Scanner inputCollector *command.InputCollector // backend provides access to the IMAP backend (including the database). backend *backend.Backend // state manages state of the authorized backend for this session. state *state.State // userLock protects the session's user object. userLock sync.Mutex // caps is the server's IMAP caps. caps []imap.Capability // capsLock protects the session's capabilities object. capsLock sync.Mutex // sessionID is this session's unique ID. sessionID int // eventCh is a channel on which the session should publish any events that occur. eventCh chan<- events.Event // loggers which can be set to log incoming and outgoing IMAP communications. inLogger, outLogger io.Writer // tlsConfig holds TLS information (used, for example, for STARTTLS). tlsConfig *tls.Config // idleBulkTime to control how often IDLE responses are sent. 0 means // immediate response with no response merging. idleBulkTime time.Duration // imapID holds the IMAP ID extension data for this client. This is necessary, since this information may arrive // before the client logs in or selects a mailbox. imapID imap.IMAPID // version is the version info of the Gluon server. version version.Info // cmdProfilerBuilder is used in profiling command execution. cmdProfilerBuilder profiling.CmdProfilerBuilder // handleWG is used to wait for all commands to finish before closing the session. handleWG async.WaitGroup /// errorCount error counter errorCount int imapLimits limits.IMAP panicHandler async.PanicHandler } func New( conn net.Conn, backend *backend.Backend, sessionID int, version version.Info, profiler profiling.CmdProfilerBuilder, eventCh chan<- events.Event, idleBulkTime time.Duration, panicHandler async.PanicHandler, ) *Session { inputCollector := command.NewInputCollector(bufio.NewReader(conn)) scanner := rfcparser.NewScannerWithReader(inputCollector) return &Session{ conn: conn, inputCollector: inputCollector, scanner: scanner, backend: backend, caps: []imap.Capability{imap.IMAP4rev1, imap.IDLE, imap.UNSELECT, imap.UIDPLUS, imap.MOVE, imap.ID}, sessionID: sessionID, eventCh: eventCh, idleBulkTime: idleBulkTime, version: version, cmdProfilerBuilder: profiler, handleWG: async.MakeWaitGroup(panicHandler), panicHandler: panicHandler, } } func (s *Session) SetIncomingLogger(w io.Writer) { if w == nil { panic("setting a nil writer") } s.inLogger = w } func (s *Session) SetOutgoingLogger(w io.Writer) { if w == nil { panic("setting a nil writer") } s.outLogger = w } func (s *Session) SetTLSConfig(cfg *tls.Config) { if cfg == nil { panic("setting a nil TLS config") } s.tlsConfig = cfg s.addCapability(imap.StartTLS) } func (s *Session) Serve(ctx context.Context) error { defer s.done(ctx) defer s.handleWG.Wait() if err := s.greet(); err != nil { return err } profiler := s.cmdProfilerBuilder.New() defer s.cmdProfilerBuilder.Collect(profiler) return s.serve(profiling.WithProfiler(ctx, profiler)) } func (s *Session) serve(ctx context.Context) error { ctx, cancel := context.WithCancel(ctx) defer cancel() cmdCh := s.startCommandReader(ctx) for { select { case update := <-s.state.GetStateUpdatesCh(): if err := s.state.ApplyUpdate(ctx, update); err != nil { logrus.WithError(err).Error("Failed to apply state update") } continue case res, ok := <-cmdCh: if !ok { return nil } if res.err != nil { if err := response.Bad(res.command.Tag).WithError(res.err).Send(s); err != nil { return err } if s.errorCount += 1; s.errorCount >= maxSessionError { reporter.MessageWithContext(ctx, "Too many errors in session, closing connection", reporter.Context{"ID": s.imapID.String()}, ) return nil } continue } else { s.errorCount = 0 } // Before proceeding with command execution, check whether we still have a valid state. // State can become invalid at any time, e.g.: deletion of a selected mailbox by another client. if s.state != nil && !s.state.IsValid() { return response.Bye().WithInconsistentState().Send(s) } switch cmd := res.command.Payload.(type) { case *command.Logout: return s.handleLogout(ctx, res.command.Tag, cmd) case *command.Idle: if err := s.handleIdle(ctx, res.command.Tag, cmd, cmdCh); err != nil { if err := response.No(res.command.Tag).WithError(err).Send(s); err != nil { return fmt.Errorf("failed to send response to client: %w", err) } } default: respCh := s.handleOther(withStartTime(ctx, time.Now()), res.command.Tag, cmd) for res := range respCh { if err := res.Send(s); err != nil { go func() { defer async.HandlePanic(s.panicHandler) for range respCh { // Consume all invalid input on error that is still being produced by the ongoing // command. } }() return fmt.Errorf("failed to send response to client: %w", err) } } } case <-s.state.Done(): return nil case <-ctx.Done(): return ctx.Err() } } } func (s *Session) WriteResponse(res string) error { s.logOutgoing(res) if _, err := s.conn.Write([]byte(res + "\r\n")); err != nil { return err } return nil } func (s *Session) logIncoming(line string) { if s.inLogger == nil { return } writeLog(s.inLogger, "C", strconv.Itoa(s.sessionID), line) } func (s *Session) logOutgoing(line string) { if s.outLogger == nil { return } writeLog(s.outLogger, "S", strconv.Itoa(s.sessionID), line) } func (s *Session) done(ctx context.Context) { close(s.eventCh) if s.state != nil { if err := s.state.ReleaseState(ctx); err != nil { logrus.WithError(err).Error("Failed to close state") } } _ = s.conn.Close() } func (s *Session) addCapability(capability imap.Capability) { s.capsLock.Lock() defer s.capsLock.Unlock() if !slices.Contains(s.caps, capability) { s.caps = append(s.caps, capability) } } func (s *Session) remCapability(capability imap.Capability) { s.capsLock.Lock() defer s.capsLock.Unlock() if idx := slices.Index(s.caps, capability); idx >= 0 { s.caps = slices.Delete(s.caps, idx, idx+1) } } func (s *Session) greet() error { s.capsLock.Lock() defer s.capsLock.Unlock() return response.Ok(). WithItems(response.ItemCapability(s.caps...)). WithMessage(fmt.Sprintf("%v %v - gluon session ID %v", s.version.Name, s.version.Version.String(), s.sessionID)). Send(s) } func (s *Session) decodeMailboxName(name string) (string, error) { delimiter := s.backend.GetDelimiter() split := strings.SplitAfterN(name, delimiter, 2) if !strings.EqualFold(split[0], fmt.Sprintf("INBOX%v", delimiter)) || len(split) != 2 { return utf7.Encoding.NewDecoder().String(name) } return utf7.Encoding.NewDecoder().String(fmt.Sprintf("INBOX%v%v", delimiter, split[1])) } gluon-0.17.0/internal/state/000077500000000000000000000000001445200213000156465ustar00rootroot00000000000000gluon-0.17.0/internal/state/actions.go000066400000000000000000000420341445200213000176400ustar00rootroot00000000000000package state import ( "bytes" "context" "fmt" "strings" "time" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/ids" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/rfc822" "github.com/bradenaw/juniper/xslices" "github.com/sirupsen/logrus" "golang.org/x/exp/slices" ) func (state *State) actionCreateAndGetMailbox(ctx context.Context, tx db.Transaction, name string, uidValidity imap.UID) (*db.Mailbox, error) { res, err := state.user.GetRemote().CreateMailbox(ctx, strings.Split(name, state.delimiter)) if err != nil { return nil, err } exists, err := tx.MailboxExistsWithRemoteID(ctx, res.ID) if err != nil { return nil, err } if !exists { mbox, err := tx.CreateMailbox( ctx, res.ID, strings.Join(res.Name, state.user.GetDelimiter()), res.Flags, res.PermanentFlags, res.Attributes, uidValidity, ) if err != nil { return nil, err } return mbox, nil } return tx.GetMailboxByRemoteID(ctx, res.ID) } func (state *State) actionCreateMailbox(ctx context.Context, tx db.Transaction, name string, uidValidity imap.UID) error { res, err := state.user.GetRemote().CreateMailbox(ctx, strings.Split(name, state.delimiter)) if err != nil { return err } return tx.CreateMailboxIfNotExists(ctx, res, state.delimiter, uidValidity) } func (state *State) actionDeleteMailbox(ctx context.Context, tx db.Transaction, mboxID db.MailboxIDPair) ([]Update, error) { if err := state.user.GetRemote().DeleteMailbox(ctx, mboxID.RemoteID); err != nil { return nil, err } if err := tx.DeleteMailboxWithRemoteID(ctx, mboxID.RemoteID); err != nil { return nil, err } return []Update{NewMailboxDeletedStateUpdate(mboxID.InternalID)}, nil } func (state *State) actionUpdateMailbox(ctx context.Context, tx db.Transaction, mboxID imap.MailboxID, newName string) error { if err := state.user.GetRemote().UpdateMailbox( ctx, mboxID, strings.Split(newName, state.delimiter), ); err != nil { return err } return tx.RenameMailboxWithRemoteID(ctx, mboxID, newName) } func (state *State) actionCreateMessage( ctx context.Context, tx db.Transaction, mboxID db.MailboxIDPair, literal []byte, flags imap.FlagSet, date time.Time, isSelectedMailbox bool, cameFromDrafts bool, ) ([]Update, imap.UID, error) { internalID, res, newLiteral, err := state.user.GetRemote().CreateMessage(ctx, mboxID.RemoteID, literal, flags, date) if err != nil { return nil, 0, err } { // Handle the case where duplicate messages can return the same remote ID. knownInternalID, knownErr := tx.GetMessageIDFromRemoteID(ctx, res.ID) if knownErr != nil && !db.IsErrNotFound(knownErr) { return nil, 0, knownErr } if knownErr == nil { // Try to collect the original message date. var existingMessageDate time.Time if existingMessage, msgErr := tx.GetMessageNoEdges(ctx, internalID); msgErr == nil { existingMessageDate = existingMessage.Date } if cameFromDrafts { reporter.ExceptionWithContext(ctx, "Append to drafts must not return an existing RemoteID", reporter.Context{ "remote-id": res.ID, "new-date": res.Date, "original-date": existingMessageDate, "mailbox": mboxID.RemoteID, }) logrus.Errorf("Append to drafts must not return an existing RemoteID (Remote=%v, Internal=%v)", res.ID, knownInternalID) return nil, 0, fmt.Errorf("append to drafts returned an existing remote ID") } logrus.Debugf("Deduped message detected, adding existing %v message to mailbox instead.", knownInternalID.ShortID()) updates, result, err := state.actionAddMessagesToMailbox(ctx, tx, []db.MessageIDPair{{InternalID: knownInternalID, RemoteID: res.ID}}, mboxID, isSelectedMailbox, ) if err != nil { return nil, 0, err } return updates, result[0].UID, nil } } parsedMessage, err := imap.NewParsedMessage(newLiteral) if err != nil { return nil, 0, err } literalWithHeader, literalSize, err := rfc822.SetHeaderValueNoMemCopy(newLiteral, ids.InternalIDKey, internalID.String()) if err != nil { return nil, 0, fmt.Errorf("failed to set internal ID: %w", err) } if err := state.user.GetStore().SetUnchecked(internalID, literalWithHeader); err != nil { return nil, 0, fmt.Errorf("failed to store message literal: %w", err) } req := db.CreateMessageReq{ Message: res, LiteralSize: literalSize, Body: parsedMessage.Body, Structure: parsedMessage.Structure, Envelope: parsedMessage.Envelope, InternalID: internalID, } messageUID, flagSet, err := tx.CreateMessageAndAddToMailbox(ctx, mboxID.InternalID, &req) if err != nil { return nil, 0, err } // We can append to non-selected mailboxes. var st *State if isSelectedMailbox { st = state } updates := []Update{newExistsStateUpdateWithExists( mboxID.InternalID, []*exists{newExists(db.MessageIDPair{InternalID: internalID, RemoteID: res.ID}, messageUID, flagSet)}, st, ), } return updates, messageUID, nil } func (state *State) actionCreateRecoveredMessage( ctx context.Context, tx db.Transaction, literal []byte, flags imap.FlagSet, date time.Time, ) ([]Update, bool, error) { internalID := imap.NewInternalMessageID() remoteID := ids.NewRecoveredRemoteMessageID(internalID) parsedMessage, err := imap.NewParsedMessage(literal) if err != nil { return nil, false, err } alreadyKnown, err := state.user.GetRecoveredMessageHashesMap().Insert(internalID, literal) if err == nil && alreadyKnown { // Message is already known to us, so we ignore it. return nil, true, nil } if err := state.user.GetStore().SetUnchecked(internalID, bytes.NewReader(literal)); err != nil { return nil, false, fmt.Errorf("failed to store message literal: %w", err) } req := db.CreateMessageReq{ Message: imap.Message{ ID: remoteID, Flags: flags, Date: date, }, LiteralSize: len(literal), Body: parsedMessage.Body, Structure: parsedMessage.Structure, Envelope: parsedMessage.Envelope, InternalID: internalID, } recoveryMBoxID := state.user.GetRecoveryMailboxID() messageUID, flagSet, err := tx.CreateMessageAndAddToMailbox(ctx, recoveryMBoxID.InternalID, &req) if err != nil { return nil, false, err } var updates = []Update{newExistsStateUpdateWithExists( recoveryMBoxID.InternalID, []*exists{newExists(db.MessageIDPair{InternalID: internalID, RemoteID: remoteID}, messageUID, flagSet)}, nil, ), } return updates, false, nil } func (state *State) actionAddMessagesToMailbox( ctx context.Context, tx db.Transaction, messageIDs []db.MessageIDPair, mboxID db.MailboxIDPair, isMailboxSelected bool, ) ([]Update, []db.UIDWithFlags, error) { var allUpdates []Update { haveMessageIDs, err := tx.MailboxFilterContains(ctx, mboxID.InternalID, messageIDs) if err != nil { return nil, nil, err } if remMessageIDs := xslices.Filter(messageIDs, func(messageID db.MessageIDPair) bool { return slices.Contains(haveMessageIDs, messageID.InternalID) }); len(remMessageIDs) > 0 { updates, err := state.actionRemoveMessagesFromMailboxUnchecked(ctx, tx, remMessageIDs, mboxID) if err != nil { return nil, nil, err } allUpdates = append(allUpdates, updates...) } } remoteIDs := xslices.Map(messageIDs, func(id db.MessageIDPair) imap.MessageID { return id.RemoteID }) if err := state.user.GetRemote().AddMessagesToMailbox(ctx, remoteIDs, mboxID.RemoteID); err != nil { return nil, nil, err } // Messages can be added to a mailbox that is not selected. var st *State if isMailboxSelected { st = state } messageUIDs, update, err := AddMessagesToMailbox(ctx, tx, mboxID.InternalID, messageIDs, st, state.imapLimits) if err != nil { return nil, nil, err } allUpdates = append(allUpdates, update) return allUpdates, messageUIDs, nil } func (state *State) actionAddRecoveredMessagesToMailbox( ctx context.Context, tx db.Transaction, messageIDs []db.MessageIDPair, mboxID db.MailboxIDPair, ) ([]db.UIDWithFlags, Update, error) { filter, err := tx.MailboxFilterContains(ctx, mboxID.InternalID, messageIDs) if err != nil { return nil, nil, err } toAdd := xslices.Filter(messageIDs, func(t db.MessageIDPair) bool { return !slices.Contains(filter, t.InternalID) }) remoteIDs := xslices.Map(toAdd, func(id db.MessageIDPair) imap.MessageID { return id.RemoteID }) if err := state.user.GetRemote().AddMessagesToMailbox(ctx, remoteIDs, mboxID.RemoteID); err != nil { return nil, nil, err } return AddMessagesToMailbox(ctx, tx, mboxID.InternalID, toAdd, state, state.imapLimits) } func (state *State) actionImportRecoveredMessage( ctx context.Context, tx db.Transaction, id imap.InternalMessageID, mboxID imap.MailboxID, ) (db.MessageIDPair, bool, error) { message, err := tx.GetImportedMessageData(ctx, id) if err != nil { return db.MessageIDPair{}, false, err } literal, err := state.user.GetStore().Get(id) if err != nil { return db.MessageIDPair{}, false, err } internalID, res, newLiteral, err := state.user.GetRemote().CreateMessage(ctx, mboxID, literal, message.Flags, message.Date) if err != nil { return db.MessageIDPair{}, false, err } { // Handle the unlikely case where duplicate messages can return the same remote ID. internalID, err := tx.GetMessageIDFromRemoteID(ctx, res.ID) if err != nil && !db.IsErrNotFound(err) { return db.MessageIDPair{}, false, err } if err == nil { return db.MessageIDPair{ InternalID: internalID, RemoteID: res.ID, }, true, nil } } parsedMessage, err := imap.NewParsedMessage(newLiteral) if err != nil { return db.MessageIDPair{}, false, err } literalReader, literalSize, err := rfc822.SetHeaderValueNoMemCopy(newLiteral, ids.InternalIDKey, internalID.String()) if err != nil { return db.MessageIDPair{}, false, fmt.Errorf("failed to set internal ID: %w", err) } if err := state.user.GetStore().SetUnchecked(internalID, literalReader); err != nil { return db.MessageIDPair{}, false, fmt.Errorf("failed to store message literal: %w", err) } req := db.CreateMessageReq{ Message: res, LiteralSize: literalSize, Body: parsedMessage.Body, Structure: parsedMessage.Structure, Envelope: parsedMessage.Envelope, InternalID: internalID, } if err := tx.CreateMessages(ctx, &req); err != nil { return db.MessageIDPair{}, false, err } return db.MessageIDPair{ InternalID: internalID, RemoteID: res.ID, }, false, nil } func (state *State) actionCopyMessagesOutOfRecoveryMailbox( ctx context.Context, tx db.Transaction, messageIDs []db.MessageIDPair, mboxID db.MailboxIDPair, ) ([]Update, []db.UIDWithFlags, error) { ids := make([]db.MessageIDPair, 0, len(messageIDs)) // Import messages to remote. for _, id := range messageIDs { id, _, err := state.actionImportRecoveredMessage(ctx, tx, id.InternalID, mboxID.RemoteID) if err != nil { return nil, nil, err } ids = append(ids, id) } // Label messages in destination. uidWithFlags, update, err := state.actionAddRecoveredMessagesToMailbox(ctx, tx, ids, mboxID) if err != nil { return nil, nil, err } return []Update{update}, uidWithFlags, nil } func (state *State) actionMoveMessagesOutOfRecoveryMailbox( ctx context.Context, tx db.Transaction, messageIDs []db.MessageIDPair, mboxID db.MailboxIDPair, ) ([]Update, []db.UIDWithFlags, error) { ids := make([]db.MessageIDPair, 0, len(messageIDs)) oldInternalIDs := make([]imap.InternalMessageID, 0, len(messageIDs)) // Import messages to remote. for _, id := range messageIDs { newID, deduped, err := state.actionImportRecoveredMessage(ctx, tx, id.InternalID, mboxID.RemoteID) if err != nil { return nil, nil, err } if !deduped { if err := tx.MarkMessageAsDeleted(ctx, id.InternalID); err != nil { return nil, nil, err } } ids = append(ids, newID) oldInternalIDs = append(oldInternalIDs, id.InternalID) } // Expunge messages var updates []Update { removeUpdates, err := RemoveMessagesFromMailbox(ctx, tx, state.user.GetRecoveryMailboxID().InternalID, oldInternalIDs) if err != nil { return nil, nil, err } state.user.GetRecoveredMessageHashesMap().Erase(oldInternalIDs...) updates = append(updates, removeUpdates...) } // Label messages in destination. uidWithFlags, update, err := state.actionAddRecoveredMessagesToMailbox(ctx, tx, ids, mboxID) if err != nil { return nil, nil, err } updates = append(updates, update) return updates, uidWithFlags, nil } // actionRemoveMessagesFromMailboxUnchecked is similar to actionRemoveMessagesFromMailbox, but it does not validate // the input for whether messages actually exist in the database or if the message set is empty. use this when you // have already validated the input beforehand (e.g.: actionAddMessagesToMailbox and actionRemoveMessagesFromMailbox). func (state *State) actionRemoveMessagesFromMailboxUnchecked( ctx context.Context, tx db.Transaction, messageIDs []db.MessageIDPair, mboxID db.MailboxIDPair, ) ([]Update, error) { internalIDs, remoteIDs := db.SplitMessageIDPairSlice(messageIDs) if mboxID.InternalID != state.user.GetRecoveryMailboxID().InternalID { if err := state.user.GetRemote().RemoveMessagesFromMailbox(ctx, remoteIDs, mboxID.RemoteID); err != nil { return nil, err } } else { state.user.GetRecoveredMessageHashesMap().Erase(internalIDs...) } return RemoveMessagesFromMailbox(ctx, tx, mboxID.InternalID, internalIDs) } func (state *State) actionRemoveMessagesFromMailbox( ctx context.Context, tx db.Transaction, messageIDs []db.MessageIDPair, mboxID db.MailboxIDPair, ) ([]Update, error) { haveMessageIDs, err := tx.MailboxFilterContains(ctx, mboxID.InternalID, messageIDs) if err != nil { return nil, err } messageIDs = xslices.Filter(messageIDs, func(messageID db.MessageIDPair) bool { return slices.Contains(haveMessageIDs, messageID.InternalID) }) if len(messageIDs) == 0 { return nil, nil } return state.actionRemoveMessagesFromMailboxUnchecked(ctx, tx, messageIDs, mboxID) } func (state *State) actionMoveMessages( ctx context.Context, tx db.Transaction, messageIDs []db.MessageIDPair, mboxFromID, mboxToID db.MailboxIDPair, ) ([]Update, []db.UIDWithFlags, error) { var allUpdates []Update if mboxFromID.InternalID == mboxToID.InternalID { updates, err := state.actionRemoveMessagesFromMailboxUnchecked(ctx, tx, messageIDs, mboxToID) if err != nil { return nil, nil, err } allUpdates = append(allUpdates, updates...) updates, uid, err := state.actionAddMessagesToMailbox(ctx, tx, messageIDs, mboxToID, false) if err != nil { return nil, nil, err } allUpdates = append(allUpdates, updates...) return allUpdates, uid, err } { messageIDsToAdd, err := tx.MailboxFilterContains(ctx, mboxToID.InternalID, messageIDs) if err != nil { return nil, nil, err } if remMessageIDs := xslices.Filter(messageIDs, func(messageID db.MessageIDPair) bool { return slices.Contains(messageIDsToAdd, messageID.InternalID) }); len(remMessageIDs) > 0 { updates, err := state.actionRemoveMessagesFromMailboxUnchecked(ctx, tx, remMessageIDs, mboxToID) if err != nil { return nil, nil, err } allUpdates = append(allUpdates, updates...) } } messageInFromMBox, err := tx.MailboxFilterContains(ctx, mboxFromID.InternalID, messageIDs) if err != nil { return nil, nil, err } messagesIDsToMove := xslices.Filter(messageIDs, func(messageID db.MessageIDPair) bool { return slices.Contains(messageInFromMBox, messageID.InternalID) }) internalIDs, remoteIDs := db.SplitMessageIDPairSlice(messagesIDsToMove) shouldRemoveOldMessages, err := state.user.GetRemote().MoveMessagesFromMailbox(ctx, remoteIDs, mboxFromID.RemoteID, mboxToID.RemoteID) if err != nil { return nil, nil, err } messageUIDs, updates, err := MoveMessagesFromMailbox( ctx, tx, mboxFromID.InternalID, mboxToID.InternalID, messagesIDsToMove, internalIDs, state, state.imapLimits, shouldRemoveOldMessages, ) if err != nil { return nil, nil, err } allUpdates = append(allUpdates, updates...) return allUpdates, messageUIDs, nil } func (state *State) actionAddMessageFlags( ctx context.Context, tx db.Transaction, messages []snapMsgWithSeq, addFlags imap.FlagSet, ) ([]Update, error) { internalMessageIDs := xslices.Map(messages, func(sm snapMsgWithSeq) imap.InternalMessageID { return sm.ID.InternalID }) return state.applyMessageFlagsAdded(ctx, tx, internalMessageIDs, addFlags) } func (state *State) actionRemoveMessageFlags( ctx context.Context, tx db.Transaction, messages []snapMsgWithSeq, remFlags imap.FlagSet, ) ([]Update, error) { internalMessageIDs := xslices.Map(messages, func(sm snapMsgWithSeq) imap.InternalMessageID { return sm.ID.InternalID }) return state.applyMessageFlagsRemoved(ctx, tx, internalMessageIDs, remFlags) } func (state *State) actionSetMessageFlags(ctx context.Context, tx db.Transaction, messages []snapMsgWithSeq, setFlags imap.FlagSet) ([]Update, error) { if setFlags.ContainsUnchecked(imap.FlagRecentLowerCase) { return nil, fmt.Errorf("recent flag is read-only") } internalMessageIDs := xslices.Map(messages, func(sm snapMsgWithSeq) imap.InternalMessageID { return sm.ID.InternalID }) return state.applyMessageFlagsSet(ctx, tx, internalMessageIDs, setFlags) } gluon-0.17.0/internal/state/connector.go000066400000000000000000000060511445200213000201710ustar00rootroot00000000000000package state import ( "context" "time" "github.com/ProtonMail/gluon/imap" ) // Connector interface for State differs slightly from the connector.Connector interface as it needs the ability // to generate internal IDs for each request as well as track local metadata associated with each state. The local // metadata (e.g.: IMAP ID extension info) should be injected into the context before each call to ensure the // connector.Connector can receive this information. // Sadly, due to Go's cyclic dependencies, this needs to be an interface. The implementation of this interface // is available in the backend package. type Connector interface { // SetConnMetadataValue sets a metadata value associated with the current connector. SetConnMetadataValue(key string, value any) // ClearConnMetadataValue clears a metadata value associated with the current connector. ClearConnMetadataValue(key string) // ClearAllConnMetadata clears all metadata values associated with the current connector. ClearAllConnMetadata() // CreateMailbox creates a new mailbox with the given name. CreateMailbox(ctx context.Context, name []string) (imap.Mailbox, error) // UpdateMailbox sets the name of the mailbox with the given ID to the given new name. UpdateMailbox(ctx context.Context, mboxID imap.MailboxID, newName []string) error // DeleteMailbox deletes the mailbox with the given ID and name. DeleteMailbox(ctx context.Context, mboxID imap.MailboxID) error // CreateMessage appends a message literal to the mailbox with the given ID. CreateMessage( ctx context.Context, mboxID imap.MailboxID, literal []byte, flags imap.FlagSet, date time.Time, ) (imap.InternalMessageID, imap.Message, []byte, error) // GetMessageLiteral retrieves the message literal from the connector. // Note: this can get called from different go routines. GetMessageLiteral(ctx context.Context, id imap.MessageID) ([]byte, error) // AddMessagesToMailbox adds the message with the given ID to the mailbox with the given ID. AddMessagesToMailbox( ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID, ) error // RemoveMessagesFromMailbox removes the message with the given ID from the mailbox with the given ID. RemoveMessagesFromMailbox( ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID, ) error // MoveMessagesFromMailbox removes the message with the given ID from the mailbox with the given ID. MoveMessagesFromMailbox( ctx context.Context, messageIDs []imap.MessageID, mboxFromID imap.MailboxID, mboxToID imap.MailboxID, ) (bool, error) // SetMessagesSeen marks the message with the given ID as seen or unseen. SetMessagesSeen(ctx context.Context, messageIDs []imap.MessageID, seen bool) error // SetMessagesFlagged marks the message with the given ID as seen or unseen. SetMessagesFlagged(ctx context.Context, messageIDs []imap.MessageID, flagged bool) error // GetMailboxVisibility retrieves the visibility status of a mailbox for a client. GetMailboxVisibility(ctx context.Context, id imap.MailboxID) imap.MailboxVisibility } gluon-0.17.0/internal/state/context.go000066400000000000000000000011761445200213000176660ustar00rootroot00000000000000package state import "context" type stateContextType struct{} var stateContextKey stateContextType // NewStateContext will annotate a context object with the state's assigned ID. This can later be used // to determine whether the current active call came from a state and which one. func NewStateContext(ctx context.Context, s *State) context.Context { if s == nil { return ctx } return context.WithValue(ctx, stateContextKey, s.StateID) } func GetStateIDFromContext(ctx context.Context) (StateID, bool) { v := ctx.Value(stateContextKey) if v == nil { return 0, false } stateID, ok := v.(StateID) return stateID, ok } gluon-0.17.0/internal/state/errors.go000066400000000000000000000022041445200213000175070ustar00rootroot00000000000000package state import "errors" var ( ErrNoSuchMessage = errors.New("no such message") ErrNoSuchMailbox = errors.New("no such mailbox") ErrExistingMailbox = errors.New("a mailbox with that name already exists") ErrAlreadySubscribed = errors.New("already subscribed to this mailbox") ErrAlreadyUnsubscribed = errors.New("not subscribed to this mailbox") ErrSessionNotSelected = errors.New("session is not selected") ErrOperationNotAllowed = errors.New("operation not allowed") ErrMailboxNameBeginsWithSeparator = errors.New("invalid mailbox name: begins with hierarchy separator") ErrMailboxNameAdjacentSeparator = errors.New("invalid mailbox name: has adjacent hierarchy separators") ) func IsStateError(err error) bool { return errors.Is(err, ErrNoSuchMailbox) || errors.Is(err, ErrNoSuchMessage) || errors.Is(err, ErrExistingMailbox) || errors.Is(err, ErrAlreadySubscribed) || errors.Is(err, ErrAlreadyUnsubscribed) || errors.Is(err, ErrSessionNotSelected) || errors.Is(err, ErrOperationNotAllowed) || errors.Is(err, ErrMailboxNameBeginsWithSeparator) || errors.Is(err, ErrMailboxNameAdjacentSeparator) } gluon-0.17.0/internal/state/filters.go000066400000000000000000000040461445200213000176510ustar00rootroot00000000000000package state import ( "fmt" "github.com/ProtonMail/gluon/imap" ) type SnapFilter interface { Filter(s *State) bool String() string } type AllStateFilter struct{} func (*AllStateFilter) Filter(s *State) bool { return s.snap != nil } func (*AllStateFilter) String() string { return "AllStates" } func NewAllStateFilter() SnapFilter { return &AllStateFilter{} } type MBoxIDStateFilter struct { MboxID imap.InternalMailboxID } func NewMBoxIDStateFilter(mboxID imap.InternalMailboxID) SnapFilter { return &MBoxIDStateFilter{MboxID: mboxID} } func (f *MBoxIDStateFilter) String() string { return fmt.Sprintf("mbox = %v", f.MboxID.ShortID()) } func (f *MBoxIDStateFilter) Filter(s *State) bool { return s.snap != nil && s.snap.mboxID.InternalID == f.MboxID } type MessageIDStateFilter struct { MessageID imap.InternalMessageID } func NewMessageIDStateFilter(msgID imap.InternalMessageID) SnapFilter { return &MessageIDStateFilter{MessageID: msgID} } func (f *MessageIDStateFilter) Filter(s *State) bool { return s.snap != nil && s.snap.hasMessage(f.MessageID) } func (f *MessageIDStateFilter) String() string { return fmt.Sprintf("message = %v", f.MessageID.ShortID()) } type MessageAndMBoxIDStateFilter struct { MessageID imap.InternalMessageID MBoxID imap.InternalMailboxID } func NewMessageAndMBoxIDStateFilter(msgID imap.InternalMessageID, mboxID imap.InternalMailboxID) SnapFilter { return &MessageAndMBoxIDStateFilter{MessageID: msgID, MBoxID: mboxID} } func (f *MessageAndMBoxIDStateFilter) Filter(s *State) bool { return s.snap != nil && s.snap.mboxID.InternalID == f.MBoxID && s.snap.hasMessage(f.MessageID) } func (f *MessageAndMBoxIDStateFilter) String() string { return fmt.Sprintf("mbox = %v message = %v", f.MBoxID.ShortID(), f.MessageID.ShortID()) } type AnyMessageIDStateFilter struct { MessageIDs []imap.InternalMessageID } func (f *AnyMessageIDStateFilter) Filter(s *State) bool { if s.snap == nil { return false } for _, msgID := range f.MessageIDs { if s.snap.hasMessage(msgID) { return true } } return false } gluon-0.17.0/internal/state/mailbox.go000066400000000000000000000304241445200213000176330ustar00rootroot00000000000000package state import ( "context" "errors" "fmt" "strings" "time" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/ids" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/rfc822" "github.com/bradenaw/juniper/xslices" "github.com/sirupsen/logrus" ) type Mailbox struct { id db.MailboxIDPair name string subscribed bool uidValidity imap.UID state *State snap *snapshot selected bool readOnly bool } type AppendOnlyMailbox interface { Append(ctx context.Context, literal []byte, flags imap.FlagSet, date time.Time) (imap.UID, error) Flush(ctx context.Context, permitExpunge bool) ([]response.Response, error) UIDValidity() imap.UID IsDrafts(ctx context.Context) (bool, error) } func newMailbox(mbox *db.Mailbox, state *State, snap *snapshot) *Mailbox { return &Mailbox{ id: db.NewMailboxIDPair(mbox), name: mbox.Name, uidValidity: mbox.UIDValidity, state: state, selected: snap != nil, readOnly: state.ro, snap: snap, } } func (m *Mailbox) Name() string { return m.name } func (m *Mailbox) Selected() bool { return m.selected } func (m *Mailbox) ReadOnly() bool { return m.readOnly } func (m *Mailbox) ExpungeIssued() bool { var issued bool for _, res := range m.state.res { switch res.(type) { case *expunge: issued = true } } return issued } func (m *Mailbox) Count() int { return m.snap.len() } func (m *Mailbox) Flags(ctx context.Context) (imap.FlagSet, error) { return stateDBReadResult(ctx, m.state, func(ctx context.Context, client db.ReadOnly) (imap.FlagSet, error) { return client.GetMailboxFlags(ctx, m.id.InternalID) }) } func (m *Mailbox) PermanentFlags(ctx context.Context) (imap.FlagSet, error) { return stateDBReadResult(ctx, m.state, func(ctx context.Context, client db.ReadOnly) (imap.FlagSet, error) { return client.GetMailboxPermanentFlags(ctx, m.id.InternalID) }) } func (m *Mailbox) Attributes(ctx context.Context) (imap.FlagSet, error) { return stateDBReadResult(ctx, m.state, func(ctx context.Context, client db.ReadOnly) (imap.FlagSet, error) { return client.GetMailboxAttributes(ctx, m.id.InternalID) }) } func (m *Mailbox) UIDNext(ctx context.Context) (imap.UID, error) { return stateDBReadResult(ctx, m.state, func(ctx context.Context, client db.ReadOnly) (imap.UID, error) { return client.GetMailboxUID(ctx, m.id.InternalID) }) } func (m *Mailbox) UIDValidity() imap.UID { return m.uidValidity } func (m *Mailbox) Subscribed() bool { return m.subscribed } func (m *Mailbox) GetMessagesWithFlag(flag string) []imap.SeqID { return xslices.Map(m.snap.getMessagesWithFlag(flag), func(msg snapMsgWithSeq) imap.SeqID { return msg.Seq }) } func (m *Mailbox) GetFirstMessageWithFlag(flag string) (snapMsgWithSeq, bool) { msg, ok := m.snap.firstMessageWithFlag(flag) return msg, ok } func (m *Mailbox) GetFirstMessageWithoutFlag(flag string) (snapMsgWithSeq, bool) { msg, ok := m.snap.firstMessageWithoutFlag(flag) return msg, ok } func (m *Mailbox) GetMessagesWithFlagCount(flag string) int { return m.snap.getMessagesWithFlagCount(flag) } func (m *Mailbox) GetMessagesWithoutFlag(flag string) []imap.SeqID { return xslices.Map(m.snap.getMessagesWithoutFlag(flag), func(msg snapMsgWithSeq) imap.SeqID { return msg.Seq }) } func (m *Mailbox) GetMessagesWithoutFlagCount(flag string) int { return m.snap.getMessagesWithoutFlagCount(flag) } func (m *Mailbox) AppendRegular(ctx context.Context, literal []byte, flags imap.FlagSet, date time.Time) (imap.UID, error) { if err := stateDBRead(ctx, m.state, func(ctx context.Context, client db.ReadOnly) error { if messageCount, uid, err := client.GetMailboxMessageCountAndUID(ctx, m.snap.mboxID.InternalID); err != nil { return err } else { if err := m.state.imapLimits.CheckMailBoxMessageCount(messageCount, 1); err != nil { return err } if err := m.state.imapLimits.CheckUIDCount(uid, 1); err != nil { return err } } return nil }); err != nil { return 0, err } var appendIntoDrafts bool attr, err := m.Attributes(ctx) if err != nil { return 0, err } // Force create message when appending to drafts so that IMAP clients can create new draft messages. if !attr.Contains(imap.AttrDrafts) { internalIDString, err := rfc822.GetHeaderValue(literal, ids.InternalIDKey) if err != nil { return 0, err } if len(internalIDString) > 0 { msgID, err := imap.InternalMessageIDFromString(internalIDString) if err != nil { return 0, err } if messageDeleted, err := stateDBReadResult(ctx, m.state, func(ctx context.Context, client db.ReadOnly) (bool, error) { return client.GetMessageDeletedFlag(ctx, msgID) }); err != nil { if !errors.Is(err, db.ErrNotFound) { return 0, err } logrus.WithError(err).Warn("The message has an unknown internal ID") } else if !messageDeleted { logrus.Debugf("Appending duplicate message with Internal ID:%v", msgID.ShortID()) // Only shuffle around messages that haven't been marked for deletion. if res, err := stateDBWriteResult(ctx, m.state, func(ctx context.Context, tx db.Transaction) ([]Update, []db.UIDWithFlags, error) { remoteID, err := tx.GetMessageRemoteID(ctx, msgID) if err != nil { return nil, nil, err } return m.state.actionAddMessagesToMailbox(ctx, tx, []db.MessageIDPair{{InternalID: msgID, RemoteID: remoteID}}, m.id, m.snap == m.state.snap, ) }); err != nil { return 0, err } else { return res[0].UID, nil } } } } else { appendIntoDrafts = true newLiteral, err := rfc822.EraseHeaderValue(literal, ids.InternalIDKey) if err != nil { logrus.WithError(err).Error("Failed to erase Gluon internal id from draft") } else { literal = newLiteral } } return stateDBWriteResult(ctx, m.state, func(ctx context.Context, tx db.Transaction) ([]Update, imap.UID, error) { return m.state.actionCreateMessage(ctx, tx, m.snap.mboxID, literal, flags, date, m.snap == m.state.snap, appendIntoDrafts) }) } var ErrKnownRecoveredMessage = errors.New("known recovered message, possible duplication") func (m *Mailbox) Append(ctx context.Context, literal []byte, flags imap.FlagSet, date time.Time) (imap.UID, error) { uid, err := m.AppendRegular(ctx, literal, flags, date) if err != nil { // Can't store messages that exceed size limits if errors.Is(err, connector.ErrMessageSizeExceedsLimits) { return uid, err } // Failed to append to mailbox attempt to insert into recovery mailbox. knownMessage, recoverErr := stateDBWriteResult(ctx, m.state, func(ctx context.Context, tx db.Transaction) ([]Update, bool, error) { return m.state.actionCreateRecoveredMessage(ctx, tx, literal, flags, date) }) if recoverErr != nil && !knownMessage { logrus.WithError(recoverErr).Error("Failed to insert message into recovery mailbox") reporter.ExceptionWithContext(ctx, "Failed to insert message into recovery mailbox", reporter.Context{"error": recoverErr}) } if knownMessage { err = fmt.Errorf("%v: %w", err, ErrKnownRecoveredMessage) } } return uid, err } func (m *Mailbox) IsDrafts(ctx context.Context) (bool, error) { attrs, err := m.Attributes(ctx) if err != nil { return false, err } return attrs.Contains(imap.AttrDrafts), nil } // Copy copies the messages represented by the given sequence set into the mailbox with the given name. // If the context is a UID context, the sequence set refers to message UIDs. // If no items are copied the response object will be nil. func (m *Mailbox) Copy(ctx context.Context, seq []command.SeqRange, name string) (response.Item, error) { if strings.EqualFold(name, ids.GluonRecoveryMailboxName) { return nil, ErrOperationNotAllowed } mbox, err := stateDBReadResult(ctx, m.state, func(ctx context.Context, client db.ReadOnly) (*db.Mailbox, error) { return client.GetMailboxByName(ctx, name) }) if err != nil { if errors.Is(err, db.ErrNotFound) { return nil, ErrNoSuchMailbox } return nil, err } messages, err := m.snap.getMessagesInRange(ctx, seq) if err != nil { return nil, err } msgIDs := make([]db.MessageIDPair, len(messages)) msgUIDs := make([]imap.UID, len(messages)) for i := 0; i < len(messages); i++ { snapMsg := messages[i] msgUIDs[i] = snapMsg.UID msgIDs[i] = snapMsg.ID } destUIDs, err := stateDBWriteResult(ctx, m.state, func(ctx context.Context, tx db.Transaction) ([]Update, []db.UIDWithFlags, error) { if m.state.user.GetRecoveryMailboxID().InternalID == m.snap.mboxID.InternalID { return m.state.actionCopyMessagesOutOfRecoveryMailbox(ctx, tx, msgIDs, db.NewMailboxIDPair(mbox)) } else { return m.state.actionAddMessagesToMailbox(ctx, tx, msgIDs, db.NewMailboxIDPair(mbox), m.snap == m.state.snap) } }) if err != nil { return nil, err } var res response.Item if len(destUIDs) > 0 { res = response.ItemCopyUID(mbox.UIDValidity, msgUIDs, xslices.Map(destUIDs, func(uid db.UIDWithFlags) imap.UID { return uid.UID })) } return res, nil } // Move moves the messages represented by the given sequence set into the mailbox with the given name. // If the context is a UID context, the sequence set refers to message UIDs. // If no items are moved the response object will be nil. func (m *Mailbox) Move(ctx context.Context, seq []command.SeqRange, name string) (response.Item, error) { if strings.EqualFold(name, ids.GluonRecoveryMailboxName) { return nil, ErrOperationNotAllowed } mbox, err := stateDBReadResult(ctx, m.state, func(ctx context.Context, client db.ReadOnly) (*db.Mailbox, error) { return client.GetMailboxByName(ctx, name) }) if err != nil { if errors.Is(err, db.ErrNotFound) { return nil, ErrNoSuchMailbox } return nil, err } messages, err := m.snap.getMessagesInRange(ctx, seq) if err != nil { return nil, err } msgIDs := make([]db.MessageIDPair, len(messages)) msgUIDs := make([]imap.UID, len(messages)) for i := 0; i < len(messages); i++ { snapMsg := messages[i] msgUIDs[i] = snapMsg.UID msgIDs[i] = snapMsg.ID } destUIDs, err := stateDBWriteResult(ctx, m.state, func(ctx context.Context, tx db.Transaction) ([]Update, []db.UIDWithFlags, error) { if m.state.user.GetRecoveryMailboxID().InternalID == m.snap.mboxID.InternalID { return m.state.actionMoveMessagesOutOfRecoveryMailbox(ctx, tx, msgIDs, db.NewMailboxIDPair(mbox)) } else { return m.state.actionMoveMessages(ctx, tx, msgIDs, m.snap.mboxID, db.NewMailboxIDPair(mbox)) } }) if err != nil { return nil, err } var res response.Item if len(destUIDs) > 0 { res = response.ItemCopyUID(mbox.UIDValidity, msgUIDs, xslices.Map(destUIDs, func(uid db.UIDWithFlags) imap.UID { return uid.UID })) } return res, nil } func (m *Mailbox) Store(ctx context.Context, seqSet []command.SeqRange, action command.StoreAction, flags imap.FlagSet) error { messages, err := m.snap.getMessagesInRange(ctx, seqSet) if err != nil { return err } return stateDBWrite(ctx, m.state, func(ctx context.Context, tx db.Transaction) ([]Update, error) { switch action { case command.StoreActionAddFlags: return m.state.actionAddMessageFlags(ctx, tx, messages, flags) case command.StoreActionRemFlags: return m.state.actionRemoveMessageFlags(ctx, tx, messages, flags) case command.StoreActionSetFlags: return m.state.actionSetMessageFlags(ctx, tx, messages, flags) } return nil, fmt.Errorf("unknown flag action") }) } func (m *Mailbox) Expunge(ctx context.Context, seq []command.SeqRange) error { var msgIDs []db.MessageIDPair if seq != nil { snapMsgs, err := m.snap.getMessagesInRange(ctx, seq) if err != nil { return err } msgIDs = make([]db.MessageIDPair, 0, len(snapMsgs)) for _, v := range snapMsgs { if v.toExpunge { msgIDs = append(msgIDs, v.ID) } } } else { msgIDs = m.snap.getAllMessagesIDsMarkedDelete() } return stateDBWrite(ctx, m.state, func(ctx context.Context, tx db.Transaction) ([]Update, error) { return m.state.actionRemoveMessagesFromMailbox(ctx, tx, msgIDs, m.snap.mboxID) }) } func (m *Mailbox) Flush(ctx context.Context, permitExpunge bool) ([]response.Response, error) { return m.state.flushResponses(ctx, permitExpunge) } func (m *Mailbox) Close(ctx context.Context) error { m.state.deleteConnMetadata() return m.state.close() } gluon-0.17.0/internal/state/mailbox_fetch.go000066400000000000000000000241471445200213000210110ustar00rootroot00000000000000package state import ( "context" "fmt" "runtime" "strconv" "strings" "sync/atomic" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/rfc822" "github.com/bradenaw/juniper/parallel" "github.com/bradenaw/juniper/xslices" ) var totalActiveFetchRequest int32 func (m *Mailbox) Fetch(ctx context.Context, cmd *command.Fetch, ch chan response.Response) error { snapMessages, err := m.snap.getMessagesInRange(ctx, cmd.SeqSet) if err != nil { return err } operations := make([]func(snapMsgWithSeq, *db.Message, []byte) (response.Item, error), 0, len(cmd.Attributes)) var ( needsLiteral bool wantUID bool setSeen bool ) for _, attribute := range cmd.Attributes { switch attribute := attribute.(type) { case *command.FetchAttributeAll: // Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE). operations = append(operations, fetchFlags, fetchInternalDate, fetchRFC822Size, fetchEnvelope) case *command.FetchAttributeFast: // Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE). operations = append(operations, fetchFlags, fetchInternalDate, fetchRFC822Size) case *command.FetchAttributeFull: // Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE BODY). operations = append(operations, fetchFlags, fetchInternalDate, fetchRFC822Size, fetchEnvelope, fetchBody) case *command.FetchAttributeUID: wantUID = true operations = append(operations, fetchUID) case *command.FetchAttributeRFC822: setSeen = true needsLiteral = true operations = append(operations, fetchRFC822) case *command.FetchAttributeRFC822Text: setSeen = true needsLiteral = true operations = append(operations, fetchRFC822Text) case *command.FetchAttributeRFC822Header: needsLiteral = true operations = append(operations, fetchRFC822Header) case *command.FetchAttributeRFC822Size: operations = append(operations, fetchRFC822Size) case *command.FetchAttributeFlags: operations = append(operations, fetchFlags) case *command.FetchAttributeEnvelope: operations = append(operations, fetchEnvelope) case *command.FetchAttributeInternalDate: operations = append(operations, fetchInternalDate) case *command.FetchAttributeBody: operations = append(operations, fetchBody) case *command.FetchAttributeBodyStructure: operations = append(operations, fetchBodyStructure) case *command.FetchAttributeBodySection: needsLiteral = true if !attribute.Peek { setSeen = true } op := func(_ snapMsgWithSeq, _ *db.Message, literal []byte) (response.Item, error) { return fetchAttributeBodySection(attribute, literal) } operations = append(operations, op) } } const minCountForParallelism = 4 var parallelism int activeFetchRequests := atomic.AddInt32(&totalActiveFetchRequest, 1) defer atomic.AddInt32(&totalActiveFetchRequest, -1) // Only run in parallel if we have to fetch more than minCountForParallelism messages or if we have more than one // message and we need to access the literal. if !contexts.IsParallelismDisabledCtx(ctx) && (len(snapMessages) > minCountForParallelism || (len(snapMessages) > 1 && needsLiteral)) { // If multiple fetch request are happening in parallel, reduce the number of goroutines in proportion to that // to avoid overloading the user's machine. parallelism = runtime.NumCPU() / int(activeFetchRequests) // make sure that if division hits 0, we run single threaded rather than use MAXGOPROCS if parallelism < 1 { parallelism = 1 } } else { parallelism = 1 } if err := parallel.DoContext(ctx, parallelism, len(snapMessages), func(ctx context.Context, i int) error { defer async.HandlePanic(m.state.panicHandler) msg := snapMessages[i] message, err := stateDBReadResult(ctx, m.state, func(ctx context.Context, client db.ReadOnly) (*db.Message, error) { return client.GetMessageNoEdges(ctx, msg.ID.InternalID) }) if err != nil { return err } var literal []byte if needsLiteral { l, err := m.state.getLiteral(ctx, msg.ID) if err != nil { return err } literal = l } items := make([]response.Item, 0, len(operations)) for _, op := range operations { item, err := op(msg, message, literal) if err != nil { return err } items = append(items, item) } if contexts.IsUID(ctx) && !wantUID { items = append(items, response.ItemUID(msg.UID)) } if setSeen { if !msg.flags.ContainsUnchecked(imap.FlagSeenLowerCase) { msg.flags.AddToSelf(imap.FlagSeen) items = append(items, response.ItemFlags(msg.flags)) } } else { // remove message from the list to avoid being processed for seen flag changes later. snapMessages[i].snapMsg = nil } ch <- response.Fetch(msg.Seq).WithItems(items...) return nil }); err != nil { return err } msgsToBeMarkedSeen := xslices.Filter(snapMessages, func(s snapMsgWithSeq) bool { return s.snapMsg != nil }) if len(msgsToBeMarkedSeen) != 0 { if err := stateDBWrite(ctx, m.state, func(ctx context.Context, tx db.Transaction) ([]Update, error) { return m.state.actionAddMessageFlags(ctx, tx, msgsToBeMarkedSeen, imap.NewFlagSet(imap.FlagSeen)) }); err != nil { return err } } return nil } func fetchEnvelope(_ snapMsgWithSeq, message *db.Message, _ []byte) (response.Item, error) { return response.ItemEnvelope(message.Envelope), nil } func fetchFlags(msg snapMsgWithSeq, message *db.Message, _ []byte) (response.Item, error) { return response.ItemFlags(msg.flags), nil } func fetchInternalDate(_ snapMsgWithSeq, message *db.Message, _ []byte) (response.Item, error) { return response.ItemInternalDate(message.Date), nil } func fetchRFC822(_ snapMsgWithSeq, _ *db.Message, literal []byte) (response.Item, error) { return response.ItemRFC822Literal(literal), nil } func fetchRFC822Header(_ snapMsgWithSeq, _ *db.Message, literal []byte) (response.Item, error) { section := rfc822.Parse(literal) return response.ItemRFC822Header(section.Header()), nil } func fetchRFC822Size(_ snapMsgWithSeq, message *db.Message, _ []byte) (response.Item, error) { return response.ItemRFC822Size(message.Size), nil } func fetchRFC822Text(_ snapMsgWithSeq, _ *db.Message, literal []byte) (response.Item, error) { section := rfc822.Parse(literal) return response.ItemRFC822Text(section.Body()), nil } func fetchBody(_ snapMsgWithSeq, message *db.Message, _ []byte) (response.Item, error) { return response.ItemBody(message.Body), nil } func fetchBodyStructure(_ snapMsgWithSeq, message *db.Message, _ []byte) (response.Item, error) { return response.ItemBodyStructure(message.BodyStructure), nil } func fetchUID(msg snapMsgWithSeq, _ *db.Message, _ []byte) (response.Item, error) { return response.ItemUID(msg.UID), nil } func fetchAttributeBodySection(attribute *command.FetchAttributeBodySection, literal []byte) (response.Item, error) { b, section, err := fetchBodyLiteral(attribute.Section, literal) if err != nil { return nil, err } item := response.ItemBodyLiteral(section, b) if attribute.Partial != nil { item.WithPartial(int(attribute.Partial.Offset), int(attribute.Partial.Count)) } return item, nil } func fetchBodyLiteral(section command.BodySection, literal []byte) ([]byte, string, error) { if section == nil { return literal, "", nil } b, err := fetchBodySection(section, literal) if err != nil { return nil, "", err } renderedSection, err := renderSection(section) if err != nil { return nil, "", err } return b, renderedSection, nil } func fetchBodySection(section command.BodySection, literal []byte) ([]byte, error) { root := rfc822.Parse(literal) switch v := section.(type) { case *command.BodySectionPart: if len(v.Part) > 0 { p, err := root.Part(v.Part...) if err != nil { return nil, err } root = p section = v.Section } default: } if root == nil { return nil, fmt.Errorf("invalid section part") } // HEADER and TEXT keywords should handle embedded message/rfc822 parts! handleEmbeddedParts := func(root *rfc822.Section) (*rfc822.Section, error) { contentType, _, err := root.ContentType() if err != nil { return nil, err } if rfc822.MIMEType(contentType) == rfc822.MessageRFC822 { root = rfc822.Parse(root.Body()) } return root, nil } if section == nil { return root.Body(), nil } switch section := section.(type) { case *command.BodySectionMIME: return root.Header(), nil case *command.BodySectionHeader: r, err := handleEmbeddedParts(root) if err != nil { return nil, err } return r.Header(), nil case *command.BodySectionText: r, err := handleEmbeddedParts(root) if err != nil { return nil, err } return r.Body(), nil case *command.BodySectionHeaderFields: r, err := handleEmbeddedParts(root) if err != nil { return nil, err } header, err := r.ParseHeader() if err != nil { return nil, err } if section.Negate { return header.FieldsNot(section.Fields), nil } return header.Fields(section.Fields), nil default: return nil, fmt.Errorf("unknown section") } } func renderSection(section command.BodySection) (string, error) { var res []string switch v := section.(type) { case *command.BodySectionPart: res = append(res, renderParts(v.Part)) section = v.Section default: } if section != nil { switch section := section.(type) { case *command.BodySectionMIME: res = append(res, "MIME") case *command.BodySectionHeader: res = append(res, "HEADER") case *command.BodySectionText: res = append(res, "TEXT") case *command.BodySectionHeaderFields: if section.Negate { res = append(res, fmt.Sprintf("HEADER.FIELDS.NOT (%v)", strings.Join(section.Fields, " "))) } else { res = append(res, fmt.Sprintf("HEADER.FIELDS (%v)", strings.Join(section.Fields, " "))) } default: return "", fmt.Errorf("bad body section keyword") } } return strings.ToUpper(strings.Join(res, ".")), nil } func renderParts(sectionParts []int) string { return strings.Join(xslices.Map(sectionParts, func(part int) string { return strconv.Itoa(part) }), ".") } gluon-0.17.0/internal/state/mailbox_search.go000066400000000000000000000473351445200213000211710ustar00rootroot00000000000000package state import ( "bytes" "context" "fmt" "runtime" "strings" "sync/atomic" "time" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/rfc5322" "github.com/ProtonMail/gluon/rfc822" "github.com/bradenaw/juniper/parallel" "github.com/bradenaw/juniper/xslices" "golang.org/x/text/encoding" ) var totalActiveSearchRequests int32 func (m *Mailbox) Search(ctx context.Context, keys []command.SearchKey, decoder *encoding.Decoder) ([]uint32, error) { var mapFn func(snapMsgWithSeq) uint32 if contexts.IsUID(ctx) { mapFn = func(s snapMsgWithSeq) uint32 { return uint32(s.UID) } } else { mapFn = func(s snapMsgWithSeq) uint32 { return uint32(s.Seq) } } op, err := buildSearchOpListWithKeys(m, keys, decoder) if err != nil { return nil, err } msgCount := m.snap.len() result := make([]uint32, msgCount) activeSearchRequests := atomic.AddInt32(&totalActiveSearchRequests, 1) defer atomic.AddInt32(&totalActiveSearchRequests, -1) var parallelism int if contexts.IsParallelismDisabledCtx(ctx) { parallelism = 1 } else { parallelism = runtime.NumCPU() / int(activeSearchRequests) } if err := parallel.DoContext(ctx, parallelism, msgCount, func(ctx context.Context, i int) error { defer async.HandlePanic(m.state.panicHandler) msg, ok := m.snap.messages.getWithSeqID(imap.SeqID(i + 1)) if !ok { return nil } matches, err := applySearch(ctx, m, msg, op) if err != nil { return err } if matches { result[i] = mapFn(msg) } return nil }); err != nil { return nil, err } return xslices.Filter(result, func(v uint32) bool { return v != 0 }), nil } func buildSearchData(ctx context.Context, m *Mailbox, op *buildSearchOpResult, message snapMsgWithSeq) (searchData, error) { data := searchData{message: message} if op.needsMessage { if err := stateDBRead(ctx, m.state, func(ctx context.Context, client db.ReadOnly) error { date, size, err := client.GetMessageDateAndSize(ctx, message.ID.InternalID) data.dbMessage.size = size data.dbMessage.date = date return err }); err != nil { return searchData{}, err } } if op.needsLiteral { l, err := m.state.getLiteral(ctx, message.ID) if err != nil { return searchData{}, err } data.literal = l } if op.needsHeader { headerBytes, _ := rfc822.Split(data.literal) h, err := rfc822.NewHeader(headerBytes) if err != nil { return searchData{}, err } data.header = h } return data, nil } func applySearch(ctx context.Context, m *Mailbox, msg snapMsgWithSeq, searchOp *buildSearchOpResult) (bool, error) { data, err := buildSearchData(ctx, m, searchOp, msg) if err != nil { return false, err } ok, err := searchOp.op(&data) if err != nil { return false, err } return ok, nil } type searchData struct { message snapMsgWithSeq literal []byte dbMessage struct { date time.Time size int } header *rfc822.Header } type searchOp = func(*searchData) (bool, error) type buildSearchOpResult struct { op searchOp needsLiteral bool needsMessage bool needsHeader bool } func (b *buildSearchOpResult) merge(other *buildSearchOpResult) { b.needsLiteral = b.needsLiteral || other.needsLiteral b.needsMessage = b.needsMessage || other.needsMessage b.needsHeader = b.needsHeader || other.needsHeader } type searchOpResultOption interface { apply(*buildSearchOpResult) } type withHeaderSearchOpResultOption struct{} func (withHeaderSearchOpResultOption) apply(s *buildSearchOpResult) { s.needsHeader = true s.needsLiteral = true } func needsHeader() searchOpResultOption { return &withHeaderSearchOpResultOption{} } type withLiteralSearchOpResultOption struct{} func (withLiteralSearchOpResultOption) apply(s *buildSearchOpResult) { s.needsLiteral = true } func needsLiteral() searchOpResultOption { return &withLiteralSearchOpResultOption{} } type withDBMessageSearchOpResultOption struct{} func (withDBMessageSearchOpResultOption) apply(s *buildSearchOpResult) { s.needsMessage = true } func needsDBMessage() searchOpResultOption { return &withDBMessageSearchOpResultOption{} } func newBuildSearchOpResult(op searchOp, needs ...searchOpResultOption) *buildSearchOpResult { r := &buildSearchOpResult{op: op} for _, v := range needs { v.apply(r) } return r } func buildSearchOp(m *Mailbox, key command.SearchKey, decoder *encoding.Decoder) (*buildSearchOpResult, error) { switch key := key.(type) { case *command.SearchKeyAll: return buildSearchOpAll() case *command.SearchKeyAnswered: return buildSearchOpAnswered() case *command.SearchKeyBCC: return buildSearchOpBcc(key, decoder) case *command.SearchKeyBefore: return buildSearchOpBefore(key) case *command.SearchKeyBody: return buildSearchOpBody(key, decoder) case *command.SearchKeyCC: return buildSearchOpCc(key, decoder) case *command.SearchKeyDeleted: return buildSearchOpDeleted() case *command.SearchKeyDraft: return buildSearchOpDraft() case *command.SearchKeyFlagged: return buildSearchOpFlagged() case *command.SearchKeyFrom: return buildSearchOpFrom(key, decoder) case *command.SearchKeyHeader: return buildSearchOpHeader(key, decoder) case *command.SearchKeyKeyword: return buildSearchOpKeyword(key) case *command.SearchKeyLarger: return buildSearchOpLarger(key) case *command.SearchKeyNew: return buildSearchOpNew() case *command.SearchKeyNot: return buildSearchOpNot(m, key, decoder) case *command.SearchKeyOld: return buildSearchOpOld() case *command.SearchKeyOn: return buildSearchOpOn(key) case *command.SearchKeyOr: return buildSearchOpOr(m, key, decoder) case *command.SearchKeyRecent: return buildSearchOpRecent() case *command.SearchKeySeen: return buildSearchOpSeen() case *command.SearchKeySentBefore: return buildSearchOpSentBefore(key) case *command.SearchKeySentOn: return buildSearchOpSentOn(key) case *command.SearchKeySentSince: return buildSearchOpSentSince(key) case *command.SearchKeySince: return buildSearchOpSince(key) case *command.SearchKeySmaller: return buildSearchOpSmaller(key) case *command.SearchKeySubject: return buildSearchOpSubject(key, decoder) case *command.SearchKeyText: return buildSearchOpText(key, decoder) case *command.SearchKeyTo: return buildSearchOpTo(key, decoder) case *command.SearchKeyUID: return buildSearchOpUID(m, key) case *command.SearchKeyUnanswered: return buildSearchOpUnanswered() case *command.SearchKeyUndeleted: return buildSearchOpUndeleted() case *command.SearchKeyUndraft: return buildSearchOpUndraft() case *command.SearchKeyUnflagged: return buildSearchOpUnflagged() case *command.SearchKeyUnkeyword: return buildSearchOpUnkeyword(key) case *command.SearchKeyUnseen: return buildSearchOpUnseen() case *command.SearchKeySeqSet: return buildSearchOpSeqSet(m, key) case *command.SearchKeyList: return buildSearchOpList(m, key.Keys, decoder) default: return nil, fmt.Errorf("bad search keyword") } } func buildSearchOpAll() (*buildSearchOpResult, error) { op := func(data *searchData) (bool, error) { return true, nil } return newBuildSearchOpResult(op), nil } func buildSearchOpAnswered() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return s.message.flags.ContainsUnchecked(imap.FlagAnsweredLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpBcc(key *command.SearchKeyBCC, decoder *encoding.Decoder) (*buildSearchOpResult, error) { decodedKey, err := decoder.Bytes([]byte(key.Value)) if err != nil { return nil, err } decodedKeyStr := strings.ToLower(string(decodedKey)) op := func(s *searchData) (bool, error) { value := s.header.Get("Bcc") return strings.Contains(strings.ToLower(value), decodedKeyStr), nil } return newBuildSearchOpResult(op, needsHeader()), nil } func buildSearchOpBefore(key *command.SearchKeyBefore) (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return s.dbMessage.date.Before(key.Value), nil } return newBuildSearchOpResult(op, needsDBMessage()), nil } func buildSearchOpBody(key *command.SearchKeyBody, decoder *encoding.Decoder) (*buildSearchOpResult, error) { keyBytes, err := decoder.Bytes([]byte(key.Value)) if err != nil { return nil, err } keyBytesLower := bytes.ToLower(keyBytes) op := func(s *searchData) (bool, error) { section := rfc822.Parse(s.literal) return bytes.Contains(bytes.ToLower(section.Body()), keyBytesLower), nil } return newBuildSearchOpResult(op, needsLiteral()), nil } func buildSearchOpCc(key *command.SearchKeyCC, decoder *encoding.Decoder) (*buildSearchOpResult, error) { decodedKey, err := decoder.Bytes([]byte(key.Value)) if err != nil { return nil, err } decodedKeyStr := strings.ToLower(string(decodedKey)) op := func(s *searchData) (bool, error) { value := s.header.Get("Cc") return strings.Contains(strings.ToLower(value), decodedKeyStr), nil } return newBuildSearchOpResult(op, needsHeader()), nil } func buildSearchOpDeleted() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return s.message.flags.ContainsUnchecked(imap.FlagDeletedLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpDraft() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return s.message.flags.ContainsUnchecked(imap.FlagDraftLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpFlagged() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return s.message.flags.ContainsUnchecked(imap.FlagFlaggedLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpFrom(key *command.SearchKeyFrom, decoder *encoding.Decoder) (*buildSearchOpResult, error) { decodedKey, err := decoder.Bytes([]byte(key.Value)) if err != nil { return nil, err } decodedKeyStr := strings.ToLower(string(decodedKey)) op := func(s *searchData) (bool, error) { value := s.header.Get("From") return strings.Contains(strings.ToLower(value), decodedKeyStr), nil } return newBuildSearchOpResult(op, needsHeader()), nil } func buildSearchOpHeader(key *command.SearchKeyHeader, decoder *encoding.Decoder) (*buildSearchOpResult, error) { decodedKey, err := decoder.Bytes([]byte(key.Value)) if err != nil { return nil, err } decodedKeyStr := strings.ToLower(string(decodedKey)) op := func(s *searchData) (bool, error) { value := s.header.Get(key.Field) return strings.Contains(strings.ToLower(value), decodedKeyStr), nil } return newBuildSearchOpResult(op, needsHeader()), nil } func buildSearchOpKeyword(key *command.SearchKeyKeyword) (*buildSearchOpResult, error) { flagLowerCase := strings.ToLower(key.Value) op := func(s *searchData) (bool, error) { return s.message.flags.ContainsUnchecked(flagLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpLarger(key *command.SearchKeyLarger) (*buildSearchOpResult, error) { size := key.Value op := func(s *searchData) (bool, error) { return s.dbMessage.size > size, nil } return newBuildSearchOpResult(op, needsDBMessage()), nil } func buildSearchOpNew() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return s.message.flags.ContainsUnchecked(imap.FlagRecentLowerCase) && !s.message.flags.ContainsUnchecked(imap.FlagSeenLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpNot(m *Mailbox, key *command.SearchKeyNot, decoder *encoding.Decoder) (*buildSearchOpResult, error) { toNegateOpResult, err := buildSearchOp(m, key.Key, decoder) if err != nil { return nil, err } op := func(s *searchData) (bool, error) { result, err := toNegateOpResult.op(s) if err != nil { return false, err } return !result, nil } result := newBuildSearchOpResult(op) result.merge(toNegateOpResult) return result, nil } func buildSearchOpOld() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return !s.message.flags.ContainsUnchecked(imap.FlagRecentLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpOn(key *command.SearchKeyOn) (*buildSearchOpResult, error) { onDate := key.Value op := func(s *searchData) (bool, error) { return onDate.Truncate(24 * time.Hour).Equal(s.dbMessage.date.Truncate(24 * time.Hour)), nil } return newBuildSearchOpResult(op, needsDBMessage()), nil } func buildSearchOpOr(m *Mailbox, key *command.SearchKeyOr, decoder *encoding.Decoder) (*buildSearchOpResult, error) { leftOp, err := buildSearchOp(m, key.Key1, decoder) if err != nil { return nil, err } rightOp, err := buildSearchOp(m, key.Key2, decoder) if err != nil { return nil, err } op := func(s *searchData) (bool, error) { leftResult, err := leftOp.op(s) if err != nil { return false, err } rightResult, err := rightOp.op(s) if err != nil { return false, err } return leftResult || rightResult, nil } result := newBuildSearchOpResult(op) result.merge(leftOp) result.merge(rightOp) return result, nil } func buildSearchOpRecent() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return s.message.flags.ContainsUnchecked(imap.FlagRecentLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpSeen() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return s.message.flags.ContainsUnchecked(imap.FlagSeenLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpSentBefore(key *command.SearchKeySentBefore) (*buildSearchOpResult, error) { beforeDate := key.Value op := func(s *searchData) (bool, error) { value := s.header.Get("Date") date, err := rfc5322.ParseDateTime(value) if err != nil { return false, err } date = convertToDateWithoutTZ(date) return date.Before(beforeDate), nil } return newBuildSearchOpResult(op, needsHeader()), nil } func buildSearchOpSentOn(key *command.SearchKeySentOn) (*buildSearchOpResult, error) { onDate := key.Value op := func(s *searchData) (bool, error) { value := s.header.Get("Date") date, err := rfc5322.ParseDateTime(value) if err != nil { return false, err } // GODT-1598: Is this correct? date = convertToDateWithoutTZ(date) return date.Equal(onDate), nil } return newBuildSearchOpResult(op, needsHeader()), nil } func buildSearchOpSentSince(key *command.SearchKeySentSince) (*buildSearchOpResult, error) { sinceDate := key.Value op := func(s *searchData) (bool, error) { value := s.header.Get("Date") date, err := rfc5322.ParseDateTime(value) if err != nil { return false, err } date = convertToDateWithoutTZ(date) return date.Equal(sinceDate) || date.After(sinceDate), nil } return newBuildSearchOpResult(op, needsHeader()), nil } func buildSearchOpSince(key *command.SearchKeySince) (*buildSearchOpResult, error) { sinceDate := key.Value op := func(s *searchData) (bool, error) { date := convertToDateWithoutTZ(s.dbMessage.date) return date.Equal(sinceDate) || date.After(sinceDate), nil } return newBuildSearchOpResult(op, needsDBMessage()), nil } func buildSearchOpSmaller(key *command.SearchKeySmaller) (*buildSearchOpResult, error) { size := key.Value op := func(s *searchData) (bool, error) { return s.dbMessage.size < size, nil } return newBuildSearchOpResult(op, needsDBMessage()), nil } func buildSearchOpSubject(key *command.SearchKeySubject, decoder *encoding.Decoder) (*buildSearchOpResult, error) { decodedKey, err := decoder.Bytes([]byte(key.Value)) if err != nil { return nil, err } decodedKeyStr := strings.ToLower(string(decodedKey)) op := func(s *searchData) (bool, error) { value := s.header.Get("Subject") return strings.Contains(strings.ToLower(value), decodedKeyStr), nil } return newBuildSearchOpResult(op, needsHeader()), nil } func buildSearchOpText(key *command.SearchKeyText, decoder *encoding.Decoder) (*buildSearchOpResult, error) { decodedKey, err := decoder.Bytes([]byte(key.Value)) if err != nil { return nil, err } decodedKeyLower := bytes.ToLower(decodedKey) op := func(s *searchData) (bool, error) { return bytes.Contains(bytes.ToLower(s.literal), decodedKeyLower), nil } return newBuildSearchOpResult(op, needsLiteral()), nil } func buildSearchOpTo(key *command.SearchKeyTo, decoder *encoding.Decoder) (*buildSearchOpResult, error) { decodedKey, err := decoder.Bytes([]byte(key.Value)) if err != nil { return nil, err } decodedKeyStr := strings.ToLower(string(decodedKey)) op := func(s *searchData) (bool, error) { value := s.header.Get("To") return strings.Contains(strings.ToLower(value), decodedKeyStr), nil } return newBuildSearchOpResult(op, needsHeader()), nil } func buildSearchOpUID(m *Mailbox, key *command.SearchKeyUID) (*buildSearchOpResult, error) { intervals, err := m.snap.resolveUIDInterval(key.SeqSet) if err != nil { return nil, err } op := func(s *searchData) (bool, error) { for _, v := range intervals { if v.contains(s.message.UID) { return true, nil } } return false, nil } return newBuildSearchOpResult(op), nil } func buildSearchOpUnanswered() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return !s.message.flags.ContainsUnchecked(imap.FlagAnsweredLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpUndeleted() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return !s.message.flags.ContainsUnchecked(imap.FlagDeletedLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpUndraft() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return !s.message.flags.ContainsUnchecked(imap.FlagDraftLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpUnflagged() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return !s.message.flags.ContainsUnchecked(imap.FlagFlaggedLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpUnkeyword(key *command.SearchKeyUnkeyword) (*buildSearchOpResult, error) { flagLowerCase := strings.ToLower(key.Value) op := func(s *searchData) (bool, error) { return !s.message.flags.ContainsUnchecked(flagLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpUnseen() (*buildSearchOpResult, error) { op := func(s *searchData) (bool, error) { return !s.message.flags.ContainsUnchecked(imap.FlagSeenLowerCase), nil } return newBuildSearchOpResult(op), nil } func buildSearchOpSeqSet(m *Mailbox, key *command.SearchKeySeqSet) (*buildSearchOpResult, error) { intervals, err := m.snap.resolveSeqInterval(key.SeqSet) if err != nil { return nil, err } op := func(s *searchData) (bool, error) { for _, v := range intervals { if v.contains(s.message.Seq) { return true, nil } } return false, nil } return newBuildSearchOpResult(op), nil } func buildSearchOpList(m *Mailbox, keys []command.SearchKey, decoder *encoding.Decoder) (*buildSearchOpResult, error) { return buildSearchOpListWithKeys(m, keys, decoder) } func buildSearchOpListWithKeys(m *Mailbox, opKeys []command.SearchKey, decoder *encoding.Decoder) (*buildSearchOpResult, error) { ops := make([]searchOp, 0, len(opKeys)) opResult := newBuildSearchOpResult(nil) for _, opKey := range opKeys { result, err := buildSearchOp(m, opKey, decoder) if err != nil { return nil, err } opResult.merge(result) ops = append(ops, result.op) } opResult.op = func(s *searchData) (bool, error) { result := true for _, v := range ops { ok, err := v(s) if err != nil { return false, err } result = result && ok if !result { break } } return result, nil } return opResult, nil } func convertToDateWithoutTZ(t time.Time) time.Time { return time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, time.UTC) } gluon-0.17.0/internal/state/match.go000066400000000000000000000104641445200213000172760ustar00rootroot00000000000000package state import ( "context" "fmt" "regexp" "strings" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/bradenaw/juniper/xslices" ) type Match struct { Name string Delimiter string Atts imap.FlagSet } type matchMailbox struct { Name string Subscribed bool // EntMBox should be set to nil if there is no such value. EntMBox *db.MailboxWithAttr } func getMatches( ctx context.Context, client db.ReadOnly, allMailboxes []matchMailbox, ref, pattern, delimiter string, subscribed bool, ) (map[string]Match, error) { matches := make(map[string]Match) mailboxes := make(map[string]matchMailbox) for _, mbox := range allMailboxes { mailboxes[mbox.Name] = mbox } for mboxName := range mailboxes { select { case <-ctx.Done(): return nil, ctx.Err() default: // fallthrough } for _, superior := range append(listSuperiors(mboxName, delimiter), mboxName) { matchedName, isMatched := match(ref, pattern, delimiter, superior) if !isMatched { continue } if _, alreadyMatched := matches[matchedName]; alreadyMatched { continue } mbox, mailboxExists := mailboxes[matchedName] match, isMatch, err := prepareMatch( ctx, client, matchedName, &mbox, pattern, delimiter, mboxName == matchedName, mailboxExists, subscribed, ) if err != nil { return nil, err } if isMatch { matches[match.Name] = match } } } return matches, nil } func prepareMatch( ctx context.Context, client db.ReadOnly, matchedName string, mbox *matchMailbox, pattern, delimiter string, isNotSuperior, mailboxExists, onlySubscribed bool, ) (Match, bool, error) { // not match when: if onlySubscribed && (mbox == nil || !mbox.Subscribed) && // should be subscribed and it's not (isNotSuperior || !strings.HasSuffix(pattern, "%")) { // is not superior or percent wildcard not used return Match{}, false, nil } // add match as NoSelect when: if !mailboxExists || // is deleted superior matchedName == "" || // is empty request for delimiter response onlySubscribed && !mbox.Subscribed { // is unsubscribed superior return Match{ Name: matchedName, Delimiter: delimiter, Atts: imap.NewFlagSet(imap.AttrNoSelect), }, true, nil } var ( atts imap.FlagSet ) if mbox.EntMBox != nil { atts = mbox.EntMBox.Attributes.Clone() recent, err := client.GetMailboxRecentCount(ctx, mbox.EntMBox.ID) if err != nil { return Match{}, false, err } if recent > 0 { atts.AddToSelf(imap.AttrMarked) } else { atts.AddToSelf(imap.AttrUnmarked) } } else { atts = imap.NewFlagSet(imap.AttrNoSelect) } return Match{ Name: mbox.Name, Delimiter: delimiter, Atts: atts, }, true, nil } // GOMSRV-100: validate this implementation. func match(ref, pattern, del, mailboxName string) (string, bool) { if pattern == "" { return matchRoot(ref, del) } rx := fmt.Sprintf("^%v", regexp.QuoteMeta(canon(ref+pattern, del))) // If the "%" wildcard is the last character of a mailbox name argument, // matching levels of hierarchy are also returned. if !strings.HasSuffix(pattern, "%") { rx += "$" } // The character "*" is a wildcard, and matches zero or more characters at this position. rx = strings.ReplaceAll(rx, `\*`, ".*") // The character "%" is similar to "*", but it does not match a hierarchy delimiter. rx = strings.ReplaceAll(rx, "%", fmt.Sprintf("[^%v]*", del)) if res := regexp.MustCompile(rx).FindAllString(mailboxName, 1); len(res) > 0 { return res[0], true } return "", false } // An empty ("" string) mailbox name argument is a special request to // return the hierarchy delimiter and the root name of the name given // in the reference. The value returned as the root MAY be the empty // string if the reference is non-rooted or is an empty string. func matchRoot(ref, del string) (string, bool) { if !strings.Contains(ref, del) { return "", true } var res string if strings.HasPrefix(ref, del) { res += del } split := strings.Split(ref, del) if len(split) > 0 { res += split[0] } if res != "" && res != del { res += del } return res, true } func canon(name, del string) string { return strings.Join(xslices.Map(strings.Split(name, del), func(name string) string { if strings.EqualFold(name, imap.Inbox) { return imap.Inbox } return name }), del) } gluon-0.17.0/internal/state/match_test.go000066400000000000000000000030571445200213000203350ustar00rootroot00000000000000package state import ( "fmt" "testing" ) func TestMatch(t *testing.T) { tests := []struct { ref, pattern, delimiter, name string want string }{ { ref: "", pattern: "", delimiter: "/", want: "", }, { ref: "#news.comp.mail.misc", pattern: "", delimiter: ".", want: "#news.", }, { ref: "/usr/staff/jones", pattern: "", delimiter: "/", want: "/", }, { ref: "some.", pattern: "", delimiter: ".", want: "some.", }, { ref: "some", pattern: "", delimiter: ".", want: "", }, { ref: "", pattern: "*", delimiter: "/", name: "INBOX", want: "INBOX", }, { ref: "", pattern: "%", delimiter: "/", name: "INBOX", want: "INBOX", }, { ref: "~/Mail/", pattern: "%", delimiter: "/", name: "~/Mail/meetings", want: "~/Mail/meetings", }, { ref: "~/Mail/", pattern: "%", delimiter: "/", name: "~/Mail/foo/bar", want: "~/Mail/foo", }, { ref: "some.", pattern: "thing", delimiter: ".", name: "some.thing", want: "some.thing", }, } for _, tt := range tests { tt := tt t.Run(fmt.Sprintf("%#v", tt), func(t *testing.T) { res, match := match(tt.ref, tt.pattern, tt.delimiter, tt.name) if !match { t.Errorf("expected match to be true but it wasn't") } if res != tt.want { t.Errorf("expected match of %v but got %v", tt.want, res) } }) } } gluon-0.17.0/internal/state/paths.go000066400000000000000000000015171445200213000173200ustar00rootroot00000000000000package state import ( "strings" "github.com/bradenaw/juniper/xslices" "golang.org/x/exp/slices" ) // listSuperiors returns all names superior to the given name, if hierarchies are indicated with the given delimiter. func listSuperiors(name, delimiter string) []string { if delimiter == "" { return nil } split := strings.Split(name, delimiter) if len(split) == 0 { return nil } var inferiors []string for i := range split { if i == 0 { continue } inferiors = append(inferiors, strings.Join(split[0:i], delimiter)) } return inferiors } func listInferiors(parent, delimiter string, names []string) []string { inferiors := xslices.Filter(names, func(name string) bool { return slices.Contains(listSuperiors(name, delimiter), parent) }) slices.Sort(inferiors) xslices.Reverse(inferiors) return inferiors } gluon-0.17.0/internal/state/paths_test.go000066400000000000000000000031471445200213000203600ustar00rootroot00000000000000package state import ( "testing" "github.com/stretchr/testify/require" ) func TestListSuperiorNames(t *testing.T) { for name, data := range map[string]struct { name, delimiter string want []string }{ "no parents": { name: "this", delimiter: "/", want: nil, }, "has parents": { name: "this/is/a/test", delimiter: "/", want: []string{"this", "this/is", "this/is/a"}, }, "wrong delimiter": { name: "this.is.a.test", delimiter: "/", want: nil, }, "nil delimiter": { name: "/nil/delimiter.used", delimiter: "", want: nil, }, } { t.Run(name, func(t *testing.T) { require.Equal(t, data.want, listSuperiors(data.name, data.delimiter)) }) } } func TestListInferiorNames(t *testing.T) { for name, data := range map[string]struct { parent string delimiter string names []string want []string }{ "no children": { parent: "this", delimiter: "/", names: []string{"one", "two", "three", "this", "a/b", "c/d"}, want: []string{}, }, "has children": { parent: "this", delimiter: "/", names: []string{"a/b", "this/one", "this", "this/two", "this/one/two/three", "c/d"}, want: []string{"this/two", "this/one/two/three", "this/one"}, }, "nil delimiter": { parent: "this", delimiter: "", names: []string{"a/b", "this/one", "this", "this/two", "this/one/two/three", "c/d"}, want: []string{}, }, } { t.Run(name, func(t *testing.T) { require.Equal(t, data.want, listInferiors(data.parent, data.delimiter, data.names)) }) } } gluon-0.17.0/internal/state/responders.go000066400000000000000000000256551445200213000203760ustar00rootroot00000000000000package state import ( "context" "fmt" "sync" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/reporter" "github.com/bradenaw/juniper/xslices" ) type responderStateUpdate struct { SnapFilter responders []Responder } func (r *responderStateUpdate) Apply(ctx context.Context, tx db.Transaction, s *State) error { return s.PushResponder(ctx, tx, r.responders...) } func (r *responderStateUpdate) String() string { return fmt.Sprintf("ResponderStateUpdate: %v Responders=%v", r.SnapFilter.String(), xslices.Map(r.responders, func(rsp Responder) string { return rsp.String() }), ) } // responderDBUpdate may be returned by a responder in order to avoid locking the database writer for each update. // Seeing as this is only used right now to clear the recent flags, we can avoid a lot of necessary database locking // and transaction overhead. type responderDBUpdate interface { apply(ctx context.Context, tx db.Transaction) error } func NewMailboxIDResponderStateUpdate(id imap.InternalMailboxID, responders ...Responder) Update { return &responderStateUpdate{SnapFilter: NewMBoxIDStateFilter(id), responders: responders} } func NewMessageIDResponderStateUpdate(id imap.InternalMessageID, responders ...Responder) Update { return &responderStateUpdate{SnapFilter: NewMessageIDStateFilter(id), responders: responders} } func NewMessageIDAndMailboxIDResponderStateUpdate(messageID imap.InternalMessageID, mboxID imap.InternalMailboxID, responders ...Responder) Update { return &responderStateUpdate{SnapFilter: NewMessageAndMBoxIDStateFilter(messageID, mboxID), responders: responders} } type Responder interface { // handle generates responses in the context of the given snapshot. handle(ctx context.Context, snap *snapshot, stateID StateID) ([]response.Response, responderDBUpdate, error) // getMessageID returns the message ID that this Responder targets. getMessageID() imap.InternalMessageID String() string } type exists struct { messageID db.MessageIDPair messageUID imap.UID flags imap.FlagSet } func newExists(messageID db.MessageIDPair, messageUID imap.UID, flags imap.FlagSet) *exists { return &exists{messageID: messageID, messageUID: messageUID, flags: flags} } func (u *exists) String() string { return fmt.Sprintf("Exists: message=%v remote=%v", u.messageID.InternalID.ShortID(), u.messageID.RemoteID) } type clearRecentFlagRespUpdate struct { messageID imap.InternalMessageID mboxID imap.InternalMailboxID } func (u *clearRecentFlagRespUpdate) apply(ctx context.Context, tx db.Transaction) error { return tx.ClearRecentFlagInMailboxOnMessage(ctx, u.mboxID, u.messageID) } // targetedExists needs to be separate so that we update the targetStateID safely when doing concurrent updates // in different states. This way we also avoid the extra step of copying the `exists` data. type targetedExists struct { resp *exists targetStateID StateID originStateID StateID originStateSet bool } func (u *targetedExists) handle(ctx context.Context, snap *snapshot, stateID StateID) ([]response.Response, responderDBUpdate, error) { if snap.hasMessage(u.resp.messageID.InternalID) { return nil, nil, nil } var flags imap.FlagSet if u.targetStateID != stateID { flags = u.resp.flags.Remove(imap.FlagRecent) } else { flags = u.resp.flags } if u.originStateSet && u.originStateID == stateID { if err := snap.appendMessage(u.resp.messageID, u.resp.messageUID, flags); err != nil { reporter.ExceptionWithContext(ctx, "Failed to append message to snap via targetedExists", reporter.Context{"error": err}) return nil, nil, err } } else { if err := snap.appendMessageFromOtherState(u.resp.messageID, u.resp.messageUID, flags); err != nil { return nil, nil, err } } res := []response.Response{response.Exists().WithCount(imap.SeqID(snap.messages.len()))} var dbUpdate responderDBUpdate if recent := snap.getMessagesWithFlagCount(imap.FlagRecent); recent > 0 { if flags.ContainsUnchecked(imap.FlagRecentLowerCase) { dbUpdate = &clearRecentFlagRespUpdate{ mboxID: snap.mboxID.InternalID, messageID: u.resp.messageID.InternalID, } } res = append(res, response.Recent().WithCount(uint32(recent))) } return res, dbUpdate, nil } func (u *targetedExists) getMessageID() imap.InternalMessageID { return u.resp.messageID.InternalID } func (u *targetedExists) String() string { var originState string if u.originStateSet { originState = fmt.Sprintf("%v", u.originStateID) } else { originState = "None" } return fmt.Sprintf( "TargetedExists: message = %v uid = %v remote = %v targetStateID = %v originStateID = %v", u.resp.messageID.InternalID.ShortID(), u.resp.messageUID, u.resp.messageID.RemoteID, u.targetStateID, originState, ) } // ExistsStateUpdate needs to be a separate update since it has to deal with a Recent flag propagation. If a session // with a selected state appends a message, only that state should see the recent flag. If a message is appended to a // non-selected mailbox or arrives from remote, the first state with the selected mailbox should get the flag. // See ExistsStateUpdate.Apply() for more info. type ExistsStateUpdate struct { lock sync.Mutex MBoxIDStateFilter responders []*exists targetStateID StateID targetStateSet bool originStateID StateID originStateSet bool } func newExistsStateUpdateWithExists(mailboxID imap.InternalMailboxID, responders []*exists, s *State) Update { var ( stateID StateID originStateID StateID targetStateSet bool originStateSet bool ) if s != nil { stateID = s.StateID targetStateSet = true originStateID = s.StateID originStateSet = true } return &ExistsStateUpdate{ MBoxIDStateFilter: MBoxIDStateFilter{MboxID: mailboxID}, responders: responders, targetStateID: stateID, targetStateSet: targetStateSet, originStateSet: originStateSet, originStateID: originStateID, } } func (e *ExistsStateUpdate) Apply(ctx context.Context, tx db.Transaction, s *State) error { // This check needs to be thread safe since we don't know when a state update // will be executed. Before each of these updates run we check whether at state // target ID has been set and update for the first state that manages to run this code // otherwise. To avoid race conditions on the contents of the exists update we // create a new responder which has the correct data and avoid race conditions all together targetStateID := func() StateID { e.lock.Lock() defer e.lock.Unlock() if !e.targetStateSet { e.targetStateID = s.StateID e.targetStateSet = true } return e.targetStateID }() return s.PushResponder(ctx, tx, xslices.Map(e.responders, func(ex *exists) Responder { return &targetedExists{ resp: ex, targetStateID: targetStateID, originStateID: e.originStateID, originStateSet: e.originStateSet, } })...) } func (e *ExistsStateUpdate) String() string { var originState string if e.originStateSet { originState = fmt.Sprintf("%v", e.originStateID) } else { originState = "None" } return fmt.Sprintf("ExistsStateUpdate: %v Responders = %v targetStateID = %v originStateID = %v", e.MBoxIDStateFilter.String(), xslices.Map(e.responders, func(rsp *exists) string { return rsp.String() }), e.targetStateID, originState, ) } type expunge struct { messageID imap.InternalMessageID } func NewExpunge(messageID imap.InternalMessageID) *expunge { return &expunge{ messageID: messageID, } } func (u *expunge) handle(ctx context.Context, snap *snapshot, _ StateID) ([]response.Response, responderDBUpdate, error) { if !snap.hasMessage(u.messageID) { return nil, nil, nil } seq, err := snap.getMessageSeq(u.messageID) if err != nil { return nil, nil, err } if err := snap.expungeMessage(u.messageID); err != nil { return nil, nil, err } // When handling a CLOSE command, EXPUNGE responses are not sent. if contexts.IsClose(ctx) { return nil, nil, nil } return []response.Response{response.Expunge(seq)}, nil, nil } func (u *expunge) getMessageID() imap.InternalMessageID { return u.messageID } func (u *expunge) String() string { return fmt.Sprintf("Expunge: message = %v", u.messageID.ShortID(), ) } const ( FetchFlagOpAdd = iota FetchFlagOpRem FetchFlagOpSet ) type fetch struct { messageID imap.InternalMessageID flags imap.FlagSet fetchFlagOp int asUID bool asSilent bool cameFromDifferentMailbox bool } func NewFetch(messageID imap.InternalMessageID, flags imap.FlagSet, asUID, asSilent, cameFromDifferentMailbox bool, fetchFlagOp int) *fetch { return &fetch{ messageID: messageID, flags: flags, asUID: asUID, asSilent: asSilent, fetchFlagOp: fetchFlagOp, cameFromDifferentMailbox: cameFromDifferentMailbox, } } func (u *fetch) handle(_ context.Context, snap *snapshot, _ StateID) ([]response.Response, responderDBUpdate, error) { if !snap.hasMessage(u.messageID) { return nil, nil, nil } // Get the flags in this particular snapshot (might contain Recent flag). curFlags, err := snap.getMessageFlags(u.messageID) if err != nil { return nil, nil, err } // Set the new flags as per the fetch response (recent flag is preserved). var newMessageFlags imap.FlagSet switch u.fetchFlagOp { case FetchFlagOpAdd: newMessageFlags = curFlags.AddFlagSet(u.flags) case FetchFlagOpRem: newMessageFlags = curFlags.RemoveFlagSet(u.flags) case FetchFlagOpSet: newMessageFlags = u.flags.Clone() } if u.cameFromDifferentMailbox { newMessageFlags.SetOnSelf(imap.FlagDeleted, curFlags.ContainsUnchecked(imap.FlagDeletedLowerCase)) } if err := snap.setMessageFlags(u.messageID, newMessageFlags); err != nil { return nil, nil, err } // Get the updated newFlags in this particular snapshot (might contain Recent flag). newFlags, err := snap.getMessageFlags(u.messageID) if err != nil { return nil, nil, err } // If the flags are unchanged, we don't send a FETCH response. if curFlags.Equals(newFlags) { return nil, nil, nil } // When handling a SILENT STORE command, the FETCH response is not sent. if u.asSilent { return nil, nil, nil } items := []response.Item{response.ItemFlags(newFlags)} // When handling any UID command, we should always include the message's UID. if u.asUID { uid, err := snap.getMessageUID(u.messageID) if err != nil { return nil, nil, err } items = append(items, response.ItemUID(uid)) } seq, err := snap.getMessageSeq(u.messageID) if err != nil { return nil, nil, err } return []response.Response{response.Fetch(seq).WithItems(items...)}, nil, nil } func (u *fetch) getMessageID() imap.InternalMessageID { return u.messageID } func (u *fetch) String() string { return fmt.Sprintf("Fetch: message = %v flags = %v uid = %v silent = %v", u.messageID.ShortID(), u.flags, u.asUID, u.asSilent, ) } gluon-0.17.0/internal/state/snapshot.go000066400000000000000000000150721445200213000200410ustar00rootroot00000000000000package state import ( "context" "strings" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/ProtonMail/gluon/internal/contexts" "github.com/bradenaw/juniper/xslices" ) type snapshot struct { mboxID db.MailboxIDPair state *State messages *snapMsgList } func newSnapshot(ctx context.Context, state *State, client db.ReadOnly, mbox *db.Mailbox) (*snapshot, error) { snapshotMessages, err := client.GetMailboxMessageForNewSnapshot(ctx, mbox.ID) if err != nil { return nil, err } snap := &snapshot{ mboxID: db.NewMailboxIDPair(mbox), state: state, messages: newMsgList(len(snapshotMessages)), } for _, snapshotMessage := range snapshotMessages { if err := snap.messages.insert( db.MessageIDPair{InternalID: snapshotMessage.InternalID, RemoteID: snapshotMessage.RemoteID}, snapshotMessage.UID, snapshotMessage.GetFlagSet(), ); err != nil { return nil, err } } return snap, nil } func newEmptySnapshot(state *State, mbox *db.Mailbox) *snapshot { return &snapshot{ mboxID: db.NewMailboxIDPair(mbox), state: state, messages: newMsgList(0), } } func (snap *snapshot) len() int { return snap.messages.len() } func (snap *snapshot) hasMessage(messageID imap.InternalMessageID) bool { return snap.messages.has(messageID) } func (snap *snapshot) getMessageSeq(messageID imap.InternalMessageID) (imap.SeqID, error) { msg, ok := snap.messages.get(messageID) if !ok { return 0, ErrNoSuchMessage } return msg.Seq, nil } func (snap *snapshot) getMessageUID(messageID imap.InternalMessageID) (imap.UID, error) { msg, ok := snap.messages.get(messageID) if !ok { return 0, ErrNoSuchMessage } return msg.UID, nil } func (snap *snapshot) getMessageFlags(messageID imap.InternalMessageID) (imap.FlagSet, error) { msg, ok := snap.messages.get(messageID) if !ok { return nil, ErrNoSuchMessage } return msg.flags, nil } func (snap *snapshot) setMessageFlags(messageID imap.InternalMessageID, flags imap.FlagSet) error { msg, ok := snap.messages.get(messageID) if !ok { return ErrNoSuchMessage } if recent := msg.flags.ContainsUnchecked(imap.FlagRecentLowerCase); recent { flags = flags.Add(imap.FlagRecent) } msg.toExpunge = flags.ContainsUnchecked(imap.FlagDeletedLowerCase) msg.flags = flags return nil } func (snap *snapshot) getAllMessages() []snapMsgWithSeq { allMessages := snap.messages.all() result := make([]snapMsgWithSeq, len(allMessages)) for i, v := range allMessages { result[i] = snapMsgWithSeq{ Seq: imap.SeqID(i + 1), snapMsg: v, } } return result } func (snap *snapshot) getAllMessageIDs() []db.MessageIDPair { return xslices.Map(snap.messages.all(), func(msg *snapMsg) db.MessageIDPair { return msg.ID }) } func (snap *snapshot) getAllMessagesIDsMarkedDelete() []db.MessageIDPair { var msgs []db.MessageIDPair for _, v := range snap.messages.all() { if v.toExpunge { msgs = append(msgs, v.ID) } } return msgs } func (snap *snapshot) getMessagesInRange(ctx context.Context, seq []command.SeqRange) ([]snapMsgWithSeq, error) { switch { case contexts.IsUID(ctx): return snap.getMessagesInUIDRange(seq) default: return snap.getMessagesInSeqRange(seq) } } type SeqInterval struct { begin imap.SeqID end imap.SeqID } func (s SeqInterval) contains(seq imap.SeqID) bool { return seq >= s.begin && seq <= s.end } type UIDInterval struct { begin imap.UID end imap.UID } func (u UIDInterval) contains(uid imap.UID) bool { return uid >= u.begin && uid <= u.end } func (snap *snapshot) resolveSeqInterval(seq []command.SeqRange) ([]SeqInterval, error) { return snap.messages.resolveSeqInterval(seq) } func (snap *snapshot) resolveUIDInterval(seq []command.SeqRange) ([]UIDInterval, error) { return snap.messages.resolveUIDInterval(seq) } func (snap *snapshot) getMessagesInSeqRange(seq []command.SeqRange) ([]snapMsgWithSeq, error) { return snap.messages.getMessagesInSeqRange(seq) } func (snap *snapshot) getMessagesInUIDRange(seq []command.SeqRange) ([]snapMsgWithSeq, error) { return snap.messages.getMessagesInUIDRange(seq) } func (snap *snapshot) firstMessageWithFlag(flag string) (snapMsgWithSeq, bool) { flagLower := strings.ToLower(flag) for i, msg := range snap.messages.msg { if msg.flags.ContainsUnchecked(flagLower) { return snapMsgWithSeq{Seq: imap.SeqID(i + 1), snapMsg: msg}, true } } return snapMsgWithSeq{}, false } func (snap *snapshot) firstMessageWithoutFlag(flag string) (snapMsgWithSeq, bool) { flagLower := strings.ToLower(flag) for i, msg := range snap.messages.msg { if !msg.flags.ContainsUnchecked(flagLower) { return snapMsgWithSeq{Seq: imap.SeqID(i + 1), snapMsg: msg}, true } } return snapMsgWithSeq{}, false } func (snap *snapshot) getMessagesWithFlag(flag string) []snapMsgWithSeq { flagLower := strings.ToLower(flag) return snap.messages.where(func(msg snapMsgWithSeq) bool { return msg.flags.ContainsUnchecked(flagLower) }) } func (snap *snapshot) getMessagesWithFlagCount(flag string) int { flagLower := strings.ToLower(flag) return snap.messages.whereCount(func(msg snapMsgWithSeq) bool { return msg.flags.ContainsUnchecked(flagLower) }) } func (snap *snapshot) getMessagesWithoutFlag(flag string) []snapMsgWithSeq { flagLower := strings.ToLower(flag) return snap.messages.where(func(msg snapMsgWithSeq) bool { return !msg.flags.ContainsUnchecked(flagLower) }) } func (snap *snapshot) getMessagesWithoutFlagCount(flag string) int { flagLower := strings.ToLower(flag) return snap.messages.whereCount(func(msg snapMsgWithSeq) bool { return !msg.flags.ContainsUnchecked(flagLower) }) } func (snap *snapshot) appendMessage(messageID db.MessageIDPair, uid imap.UID, flags imap.FlagSet) error { return snap.messages.insert( messageID, uid, flags, ) } func (snap *snapshot) appendMessageFromOtherState(messageID db.MessageIDPair, uid imap.UID, flags imap.FlagSet) error { snap.messages.insertOutOfOrder( messageID, uid, flags, ) return nil } func (snap *snapshot) expungeMessage(messageID imap.InternalMessageID) error { if ok := snap.messages.remove(messageID); !ok { return ErrNoSuchMessage } return nil } func (snap *snapshot) updateMailboxRemoteID(internalID imap.InternalMailboxID, remoteID imap.MailboxID) error { if snap.mboxID.InternalID != internalID { return ErrNoSuchMailbox } snap.mboxID.RemoteID = remoteID return nil } func (snap *snapshot) updateMessageRemoteID(internalID imap.InternalMessageID, remoteID imap.MessageID) error { if ok := snap.messages.update(internalID, remoteID); !ok { return ErrNoSuchMessage } return nil } gluon-0.17.0/internal/state/snapshot_messages.go000066400000000000000000000227721445200213000217350ustar00rootroot00000000000000package state import ( "fmt" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/bradenaw/juniper/xslices" "golang.org/x/exp/slices" ) var ErrOutOfOrderUIDInsertion = fmt.Errorf("UIDs must be strictly ascending") // snapMsg is a single message inside a snapshot. type snapMsg struct { ID db.MessageIDPair UID imap.UID flags imap.FlagSet toExpunge bool } type snapMsgWithSeq struct { Seq imap.SeqID *snapMsg } // snapMsgList is an ordered list of messages inside a snapshot. type snapMsgList struct { msg []*snapMsg idx map[imap.InternalMessageID]*snapMsg } func newMsgList(capacity int) *snapMsgList { return &snapMsgList{ msg: make([]*snapMsg, 0, capacity), idx: make(map[imap.InternalMessageID]*snapMsg, capacity), } } func (list *snapMsgList) binarySearchByUID(uid imap.UID) (int, bool) { msg := snapMsg{UID: uid} index, ok := slices.BinarySearchFunc(list.msg, &msg, func(s1 *snapMsg, s2 *snapMsg) int { return int(s1.UID) - int(s2.UID) }) return index, ok } func (list *snapMsgList) insert(msgID db.MessageIDPair, msgUID imap.UID, flags imap.FlagSet) error { if len(list.msg) > 0 && list.msg[len(list.msg)-1].UID >= msgUID { return fmt.Errorf("UID-Last=%v UID-Msg=%v: %w", list.msg[len(list.msg)-1].UID, msgUID, ErrOutOfOrderUIDInsertion) } snapMsg := &snapMsg{ ID: msgID, UID: msgUID, flags: flags, toExpunge: flags.ContainsUnchecked(imap.FlagDeletedLowerCase), } list.msg = append(list.msg, snapMsg) list.idx[msgID.InternalID] = snapMsg return nil } func (list *snapMsgList) insertOutOfOrder(msgID db.MessageIDPair, msgUID imap.UID, flags imap.FlagSet) { index, ok := list.binarySearchByUID(msgUID) if ok { panic("Duplicate UID added") } snapMsg := &snapMsg{ ID: msgID, UID: msgUID, flags: flags, toExpunge: flags.ContainsUnchecked(imap.FlagDeletedLowerCase), } list.msg = xslices.Insert(list.msg, index, snapMsg) list.idx[msgID.InternalID] = snapMsg } func (list *snapMsgList) remove(msgID imap.InternalMessageID) bool { snapshotMsg, ok := list.idx[msgID] if !ok { return false } index, ok := list.binarySearchByUID(snapshotMsg.UID) if !ok { return false } delete(list.idx, msgID) list.msg = append( list.msg[:index], list.msg[index+1:]..., ) return true } func (list *snapMsgList) update(internalID imap.InternalMessageID, remoteID imap.MessageID) bool { snapMsg, ok := list.idx[internalID] if !ok { return false } snapMsg.ID.RemoteID = remoteID return true } func (list *snapMsgList) all() []*snapMsg { return list.msg } func (list *snapMsgList) len() int { return len(list.msg) } func (list *snapMsgList) where(fn func(seq snapMsgWithSeq) bool) []snapMsgWithSeq { var result []snapMsgWithSeq for idx, i := range list.msg { snapWithSeq := snapMsgWithSeq{ snapMsg: i, Seq: imap.SeqID(idx + 1), } if fn(snapWithSeq) { result = append(result, snapWithSeq) } } return result } func (list *snapMsgList) whereCount(fn func(seq snapMsgWithSeq) bool) int { result := 0 for idx, i := range list.msg { snapWithSeq := snapMsgWithSeq{ snapMsg: i, Seq: imap.SeqID(idx + 1), } if fn(snapWithSeq) { result++ } } return result } func (list *snapMsgList) has(msgID imap.InternalMessageID) bool { _, ok := list.idx[msgID] return ok } func (list *snapMsgList) get(msgID imap.InternalMessageID) (snapMsgWithSeq, bool) { snapshotMsg, ok := list.idx[msgID] if !ok { return snapMsgWithSeq{}, false } index, ok := list.binarySearchByUID(snapshotMsg.UID) if !ok { return snapMsgWithSeq{}, false } return snapMsgWithSeq{ Seq: imap.SeqID(index + 1), snapMsg: list.msg[index], }, ok } func (list *snapMsgList) seq(seq imap.SeqID) (snapMsgWithSeq, bool) { if imap.SeqID(len(list.msg)) < seq { return snapMsgWithSeq{}, false } return snapMsgWithSeq{ Seq: seq, snapMsg: list.msg[seq-1], }, true } func (list *snapMsgList) last() snapMsgWithSeq { return snapMsgWithSeq{ Seq: imap.SeqID(len(list.msg)), snapMsg: list.msg[len(list.msg)-1], } } func (list *snapMsgList) seqRange(seqLo, seqHi imap.SeqID) []snapMsgWithSeq { interval := list.msg[seqLo-1 : seqHi] result := make([]snapMsgWithSeq, len(interval)) for i, v := range interval { result[i].Seq = imap.SeqID(int(seqLo) + i) result[i].snapMsg = v } return result } func (list *snapMsgList) uidRange(uidLo, uidHi imap.UID) []snapMsgWithSeq { listLen := len(list.msg) indexLo, _ := list.binarySearchByUID(uidLo) if indexLo >= listLen { return nil } indexHi, ok := list.binarySearchByUID(uidHi) if ok { indexHi++ } if indexHi >= listLen { indexHi = listLen } interval := list.msg[indexLo:indexHi] result := make([]snapMsgWithSeq, len(interval)) for i, v := range interval { result[i].Seq = imap.SeqID(indexLo + i + 1) result[i].snapMsg = v } return result } func (list *snapMsgList) getWithUID(uid imap.UID) (snapMsgWithSeq, bool) { index, ok := list.binarySearchByUID(uid) if !ok { return snapMsgWithSeq{}, false } return snapMsgWithSeq{ Seq: imap.SeqID(index + 1), snapMsg: list.msg[index], }, ok } func (list *snapMsgList) getWithSeqID(id imap.SeqID) (snapMsgWithSeq, bool) { index := int(id) - 1 listLen := len(list.msg) if listLen == 0 || index >= listLen { return snapMsgWithSeq{}, false } return snapMsgWithSeq{ Seq: id, snapMsg: list.msg[index], }, true } func (list *snapMsgList) existsWithSeqID(id imap.SeqID) bool { index := int(id) - 1 listLen := len(list.msg) if index >= listLen { return false } return true } func (list *snapMsgList) resolveSeqInterval(seqSet []command.SeqRange) ([]SeqInterval, error) { res := make([]SeqInterval, 0, len(seqSet)) for _, seqRange := range seqSet { if seqRange.Begin == seqRange.End { seq, err := list.resolveSeq(seqRange.Begin) if err != nil { return nil, err } res = append(res, SeqInterval{ begin: seq, end: seq, }) } else { if seqRange.Begin == command.SeqNumValueAsterisk { seqRange.Begin, seqRange.End = seqRange.End, seqRange.Begin } begin, err := list.resolveSeq(seqRange.Begin) if err != nil { return nil, err } end, err := list.resolveSeq(seqRange.End) if err != nil { return nil, err } if begin > end { if seqRange.End != command.SeqNumValueAsterisk { begin, end = end, begin } else { end = begin } } res = append(res, SeqInterval{ begin: begin, end: end, }) } } return res, nil } func (list *snapMsgList) resolveUIDInterval(seqSet []command.SeqRange) ([]UIDInterval, error) { res := make([]UIDInterval, 0, len(seqSet)) for _, uidRange := range seqSet { if uidRange.Begin == uidRange.End { uid, err := list.resolveUID(uidRange.Begin) if err != nil { return nil, err } res = append(res, UIDInterval{ begin: uid, end: uid, }) } else { if uidRange.Begin == command.SeqNumValueAsterisk { uidRange.Begin, uidRange.End = uidRange.End, uidRange.Begin } begin, err := list.resolveUID(uidRange.Begin) if err != nil { return nil, err } end, err := list.resolveUID(uidRange.End) if err != nil { return nil, err } if begin > end { if uidRange.End != command.SeqNumValueAsterisk { begin, end = end, begin } else { end = begin } } res = append(res, UIDInterval{ begin: begin, end: end, }) } } return res, nil } // resolveSeq converts a textual sequence number into an integer. // According to RFC 3501, the definition of seq-number, page 89, for message sequence numbers // - No sequence number is valid if mailbox is empty, not even "*" // - "*" is converted to the number of messages in the mailbox // - when used in a range, the order of the indexes in irrelevant. func (list *snapMsgList) resolveSeq(number command.SeqNum) (imap.SeqID, error) { if number == command.SeqNumValueAsterisk { return imap.SeqID(list.len()), nil } return imap.SeqID(number), nil } // resolveUID converts a textual message UID into an integer. func (list *snapMsgList) resolveUID(number command.SeqNum) (imap.UID, error) { if list.len() == 0 { return 0, ErrNoSuchMessage } if number == command.SeqNumValueAsterisk { return list.last().UID, nil } return imap.UID(number), nil } func (list *snapMsgList) getMessagesInSeqRange(seqSet []command.SeqRange) ([]snapMsgWithSeq, error) { var res []snapMsgWithSeq intervals, err := list.resolveSeqInterval(seqSet) if err != nil { return nil, err } for _, seqRange := range intervals { if seqRange.begin == seqRange.end { msg, ok := list.getWithSeqID(seqRange.begin) if !ok { return nil, ErrNoSuchMessage } res = append(res, msg) } else { if !list.existsWithSeqID(seqRange.begin) || !list.existsWithSeqID(seqRange.end) { return nil, ErrNoSuchMessage } res = append(res, list.seqRange(seqRange.begin, seqRange.end)...) } } return res, nil } func (list *snapMsgList) getMessagesInUIDRange(seqSet []command.SeqRange) ([]snapMsgWithSeq, error) { var res []snapMsgWithSeq // If there are no messages in the mailbox, we still resolve without error. if list.len() == 0 { return nil, nil } intervals, err := list.resolveUIDInterval(seqSet) if err != nil { return nil, err } for _, uidRange := range intervals { if uidRange.begin == uidRange.end { msg, ok := list.getWithUID(uidRange.begin) if !ok { continue } res = append(res, msg) } else { res = append(res, list.uidRange(uidRange.begin, uidRange.end)...) } } return res, nil } gluon-0.17.0/internal/state/snapshot_messages_test.go000066400000000000000000000154711445200213000227720ustar00rootroot00000000000000package state import ( "testing" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/imap/command" "github.com/stretchr/testify/require" ) // nolint:govet func TestMessages(t *testing.T) { msg := newMsgList(8) id1 := imap.NewInternalMessageID() id2 := imap.NewInternalMessageID() id3 := imap.NewInternalMessageID() id4 := imap.NewInternalMessageID() id5 := imap.NewInternalMessageID() id6 := imap.NewInternalMessageID() require.NoError(t, msg.insert(messageIDPair(id1, "1"), 10, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id2, "2"), 20, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id3, "3"), 30, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id4, "4"), 40, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id5, "5"), 50, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id6, "6"), 60, imap.NewFlagSet(imap.FlagSeen))) msg.remove(id2) msg.remove(id4) msg.remove(id6) { require.Equal(t, 3, msg.len()) } { require.True(t, msg.has(id1)) require.True(t, msg.has(id3)) require.True(t, msg.has(id5)) require.False(t, msg.has(id2)) require.False(t, msg.has(id4)) require.False(t, msg.has(id6)) } { msg1, ok := msg.get(id1) require.True(t, ok) require.Equal(t, imap.SeqID(1), msg1.Seq) require.Equal(t, imap.UID(10), msg1.UID) _, ok = msg.get(id2) require.False(t, ok) msg3, ok := msg.get(id3) require.True(t, ok) require.Equal(t, imap.SeqID(2), msg3.Seq) require.Equal(t, imap.UID(30), msg3.UID) _, ok = msg.get(id4) require.False(t, ok) msg5, ok := msg.get(id5) require.True(t, ok) require.Equal(t, imap.SeqID(3), msg5.Seq) require.Equal(t, imap.UID(50), msg5.UID) } { require.Equal(t, must(msg.get(id1)), must(msg.seq(1))) require.Equal(t, must(msg.get(id3)), must(msg.seq(2))) require.Equal(t, must(msg.get(id5)), must(msg.seq(3))) } } // nolint:govet func TestMessageUIDRange(t *testing.T) { msg := newMsgList(8) id1 := imap.NewInternalMessageID() id2 := imap.NewInternalMessageID() id3 := imap.NewInternalMessageID() id4 := imap.NewInternalMessageID() id5 := imap.NewInternalMessageID() id6 := imap.NewInternalMessageID() require.NoError(t, msg.insert(messageIDPair(id1, "1"), 10, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id2, "2"), 20, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id3, "3"), 30, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id4, "4"), 40, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id5, "5"), 50, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id6, "6"), 60, imap.NewFlagSet(imap.FlagSeen))) // UIDRange Higher than maximum { result := msg.uidRange(imap.UID(40), imap.UID(80)) require.Equal(t, 3, len(result)) require.Equal(t, result[0].UID, imap.UID(40)) require.Equal(t, result[1].UID, imap.UID(50)) require.Equal(t, result[2].UID, imap.UID(60)) } // UIDRange Lower than minimum { result := msg.uidRange(imap.UID(1), imap.UID(10)) require.Equal(t, 1, len(result)) require.Equal(t, result[0].UID, imap.UID(10)) } // UIDRange lower than all values { result := msg.uidRange(imap.UID(1), imap.UID(5)) require.Empty(t, result) } // UIDRange higher than all values { result := msg.uidRange(imap.UID(100), imap.UID(120)) require.Empty(t, result) } // UIDRange higher that doesn't exist in between { result := msg.uidRange(imap.UID(21), imap.UID(29)) require.Empty(t, result) } // UIDRange for interval that is valid, but not all values exist { result := msg.uidRange(imap.UID(25), imap.UID(42)) require.Equal(t, 2, len(result)) require.Equal(t, result[0].UID, imap.UID(30)) require.Equal(t, result[1].UID, imap.UID(40)) } } func TestMessageRange1HigherThanMax(t *testing.T) { msg := newMsgList(8) id1 := imap.NewInternalMessageID() id2 := imap.NewInternalMessageID() require.NoError(t, msg.insert(messageIDPair(id1, "1"), 1, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id2, "2"), 2, imap.NewFlagSet(imap.FlagSeen))) seqSetInterval := []command.SeqRange{{Begin: 3, End: command.SeqNumValueAsterisk}} { uidInterval, err := msg.resolveUIDInterval(seqSetInterval) require.NoError(t, err) seqInterval, err := msg.resolveSeqInterval(seqSetInterval) require.NoError(t, err) require.Equal(t, uidInterval, []UIDInterval{{begin: imap.UID(3), end: imap.UID(3)}}) require.Equal(t, seqInterval, []SeqInterval{{begin: imap.SeqID(3), end: imap.SeqID(3)}}) } { _, err := msg.getMessagesInSeqRange(seqSetInterval) require.Error(t, err) } { messages, err := msg.getMessagesInUIDRange(seqSetInterval) require.NoError(t, err) require.Empty(t, messages) } } func TestSnapListGetMessages(t *testing.T) { msg := newMsgList(8) id1 := imap.NewInternalMessageID() id2 := imap.NewInternalMessageID() require.NoError(t, msg.insert(messageIDPair(id1, "1"), 1, imap.NewFlagSet(imap.FlagSeen))) require.NoError(t, msg.insert(messageIDPair(id2, "2"), 2, imap.NewFlagSet(imap.FlagSeen))) { seqSetInterval := []command.SeqRange{{Begin: 3, End: command.SeqNumValueAsterisk}} _, err := msg.getMessagesInSeqRange(seqSetInterval) require.Error(t, err) uidInterval, err := msg.getMessagesInUIDRange(seqSetInterval) require.NoError(t, err) require.Empty(t, uidInterval) } { seqSetInterval := []command.SeqRange{{Begin: command.SeqNumValueAsterisk, End: 3}} _, err := msg.getMessagesInSeqRange(seqSetInterval) require.Error(t, err) uidInterval, err := msg.getMessagesInUIDRange(seqSetInterval) require.NoError(t, err) require.Empty(t, uidInterval) } { seqSetInterval := []command.SeqRange{{Begin: 1, End: command.SeqNumValueAsterisk}} seqList, err := msg.getMessagesInSeqRange(seqSetInterval) require.NoError(t, err) require.Equal(t, 2, len(seqList)) require.Equal(t, seqList[0].Seq, imap.SeqID(1)) require.Equal(t, seqList[1].Seq, imap.SeqID(2)) uidList, err := msg.getMessagesInUIDRange(seqSetInterval) require.NoError(t, err) require.Equal(t, 2, len(uidList)) require.Equal(t, uidList[0].UID, imap.UID(1)) require.Equal(t, uidList[1].UID, imap.UID(2)) } { seqSetInterval := []command.SeqRange{{Begin: 2, End: 3}} _, err := msg.getMessagesInSeqRange(seqSetInterval) require.Error(t, err) uidList, err := msg.getMessagesInUIDRange(seqSetInterval) require.NoError(t, err) require.Equal(t, 1, len(uidList)) require.Equal(t, uidList[0].UID, imap.UID(2)) } } func messageIDPair(internalID imap.InternalMessageID, remoteID imap.MessageID) db.MessageIDPair { return db.MessageIDPair{InternalID: internalID, RemoteID: remoteID} } func must[T any](val T, ok bool) T { if !ok { panic("not ok") } return val } gluon-0.17.0/internal/state/state.go000066400000000000000000000602161445200213000173220ustar00rootroot00000000000000package state import ( "bytes" "context" "errors" "fmt" "strings" "sync/atomic" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/ids" "github.com/ProtonMail/gluon/internal/response" "github.com/ProtonMail/gluon/limits" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/rfc822" "github.com/bradenaw/juniper/xmaps" "github.com/bradenaw/juniper/xslices" "github.com/sirupsen/logrus" ) type StateID int64 // State represents the active session's state after a user has been authenticated. This code is expected to run on // one single goroutine/thread and should some interaction be required with other states from other session, they shall // happen through updates (state.Update) which are queued via the UserInterface. // Similarly, the state also accepts incoming updates via the ApplyUpdate method. type State struct { user UserInterface StateID StateID idleCh chan response.Response res []Responder snap *snapshot ro bool doneCh chan struct{} updatesQueue *async.QueuedChannel[Update] delimiter string // invalid indicates whether this state became invalid and a clients needs to disconnect. invalid bool imapLimits limits.IMAP panicHandler async.PanicHandler } var stateIDGenerator int64 func nextStateID() StateID { return StateID(atomic.AddInt64(&stateIDGenerator, 1)) } func NewState(user UserInterface, delimiter string, imapLimits limits.IMAP, panicHandler async.PanicHandler) *State { return &State{ user: user, StateID: nextStateID(), doneCh: make(chan struct{}), snap: nil, delimiter: delimiter, updatesQueue: async.NewQueuedChannel[Update](32, 128, panicHandler), imapLimits: imapLimits, panicHandler: panicHandler, } } func (state *State) UserID() string { return state.user.GetUserID() } func (state *State) List(ctx context.Context, ref, pattern string, lsub bool, fn func(map[string]Match) error) error { return stateDBRead(ctx, state, func(ctx context.Context, client db.ReadOnly) error { mailboxes, err := client.GetAllMailboxesWithAttr(ctx) if err != nil { return err } recoveryMailboxID := state.user.GetRecoveryMailboxID().InternalID recoveryMBoxMessageCount, err := client.GetMailboxMessageCount(ctx, recoveryMailboxID) if err != nil { logrus.WithError(err).Error("Failed to get recovery mailbox message count, assuming empty") recoveryMBoxMessageCount = 0 } mailboxes = xslices.Filter(mailboxes, func(mailbox *db.MailboxWithAttr) bool { if mailbox.ID == recoveryMailboxID && recoveryMBoxMessageCount == 0 { return false } switch visibility := state.user.GetRemote().GetMailboxVisibility(ctx, mailbox.RemoteID); visibility { case imap.Hidden: return false case imap.Visible: return true case imap.HiddenIfEmpty: count, err := client.GetMailboxMessageCount(ctx, mailbox.ID) if err != nil { logrus.WithError(err).Error("Failed to get recovery mailbox message count, assuming not empty") return true } return count > 0 default: logrus.Errorf("Unknown IMAP Mailbox visibility %v", visibility) return true } }) var deletedSubscriptions map[imap.MailboxID]*db.DeletedSubscription if lsub { deletedSubscriptions, err = client.GetDeletedSubscriptionSet(ctx) if err != nil { return err } } // Convert existing mailboxes over to match format. matchMailboxes := make([]matchMailbox, 0, len(mailboxes)) for _, mbox := range mailboxes { delete(deletedSubscriptions, mbox.RemoteID) // Only include subscribed mailboxes when LSUB is used. if lsub && !mbox.Subscribed { continue } matchMailboxes = append(matchMailboxes, matchMailbox{ Name: mbox.Name, Subscribed: lsub, EntMBox: mbox, }) } if lsub { // Insert any remaining mailboxes that have been deleted but are still subscribed. for _, s := range deletedSubscriptions { if state.user.GetRemote().GetMailboxVisibility(ctx, s.RemoteID) != imap.Visible { continue } matchMailboxes = append(matchMailboxes, matchMailbox{ Name: s.Name, Subscribed: true, EntMBox: nil, }) } } matches, err := getMatches(ctx, client, matchMailboxes, ref, pattern, state.delimiter, lsub) if err != nil { return err } return fn(matches) }) } func (state *State) Select(ctx context.Context, name string, fn func(*Mailbox) error) error { mbox, err := stateDBReadResult(ctx, state, func(ctx context.Context, client db.ReadOnly) (*db.Mailbox, error) { return client.GetMailboxByName(ctx, name) }) if err != nil { if errors.Is(err, db.ErrNotFound) { return ErrNoSuchMailbox } return err } if state.snap != nil { if err := state.close(); err != nil { return err } } snap, err := stateDBReadResult(ctx, state, func(ctx context.Context, client db.ReadOnly) (*snapshot, error) { return newSnapshot(ctx, state, client, mbox) }) if err != nil { return err } if err := stateDBWrite(ctx, state, func(ctx context.Context, tx db.Transaction) ([]Update, error) { return nil, tx.ClearRecentFlagsInMailbox(ctx, mbox.ID) }); err != nil { return err } state.snap = snap state.ro = false return fn(newMailbox(mbox, state, state.snap)) } func (state *State) Examine(ctx context.Context, name string, fn func(*Mailbox) error) error { mbox, err := stateDBReadResult(ctx, state, func(ctx context.Context, client db.ReadOnly) (*db.Mailbox, error) { return client.GetMailboxByName(ctx, name) }) if err != nil { if errors.Is(err, db.ErrNotFound) { return ErrNoSuchMailbox } return err } if state.snap != nil { if err := state.close(); err != nil { return err } } snap, err := stateDBReadResult(ctx, state, func(ctx context.Context, client db.ReadOnly) (*snapshot, error) { return newSnapshot(ctx, state, client, mbox) }) if err != nil { return err } state.snap = snap state.ro = true return fn(newMailbox(mbox, state, state.snap)) } func (state *State) Create(ctx context.Context, name string) error { uidValidity, err := state.user.GenerateUIDValidity() if err != nil { return err } if err := state.imapLimits.CheckUIDValidity(uidValidity); err != nil { return err } if strings.HasPrefix(strings.ToLower(name), ids.GluonRecoveryMailboxNameLowerCase) { return ErrOperationNotAllowed } if state.delimiter != "" { if strings.HasPrefix(name, state.delimiter) { return ErrMailboxNameBeginsWithSeparator } if strings.Contains(name, state.delimiter+state.delimiter) { return ErrMailboxNameAdjacentSeparator } } return stateDBWrite(ctx, state, func(ctx context.Context, tx db.Transaction) ([]Update, error) { if mailboxCount, err := tx.GetMailboxCount(ctx); err != nil { return nil, err } else if err := state.imapLimits.CheckMailBoxCount(mailboxCount); err != nil { return nil, err } var mboxesToCreate []string // If the mailbox name is suffixed with the server's hierarchy separator, remove the separator and still create // the mailbox if strings.HasSuffix(name, state.delimiter) { name = strings.TrimRight(name, state.delimiter) } if exists, err := tx.MailboxExistsWithName(ctx, name); err != nil { return nil, err } else if exists { return nil, ErrExistingMailbox } for _, superior := range listSuperiors(name, state.delimiter) { if exists, err := tx.MailboxExistsWithName(ctx, superior); err != nil { return nil, err } else if exists { continue } mboxesToCreate = append(mboxesToCreate, superior) } mboxesToCreate = append(mboxesToCreate, name) for _, mboxName := range mboxesToCreate { if err := state.actionCreateMailbox(ctx, tx, mboxName, uidValidity); err != nil { return nil, err } } return nil, nil }) } // Delete returns true if the mailbox that was deleted was the same as the one that was currently selected. func (state *State) Delete(ctx context.Context, name string) (bool, error) { if strings.EqualFold(name, ids.GluonRecoveryMailboxName) { return false, ErrOperationNotAllowed } mboxID, err := stateDBWriteResult(ctx, state, func(ctx context.Context, tx db.Transaction) ([]Update, imap.InternalMailboxID, error) { mbox, err := tx.GetMailboxByName(ctx, name) if err != nil { if errors.Is(err, db.ErrNotFound) { return nil, 0, ErrNoSuchMailbox } return nil, 0, err } update, err := state.actionDeleteMailbox(ctx, tx, db.NewMailboxIDPair(mbox)) if err != nil { return nil, 0, err } return update, mbox.ID, nil }) if err != nil { return false, err } return state.snap != nil && state.snap.mboxID.InternalID == mboxID, nil } func (state *State) Rename(ctx context.Context, oldName, newName string) error { type Result struct { MBox *db.Mailbox MBoxesToCreate []string } if strings.EqualFold(oldName, ids.GluonRecoveryMailboxName) || strings.EqualFold(newName, ids.GluonRecoveryMailboxName) { return ErrOperationNotAllowed } return stateDBWrite(ctx, state, func(ctx context.Context, tx db.Transaction) ([]Update, error) { mbox, err := tx.GetMailboxByName(ctx, oldName) if err != nil { if errors.Is(err, db.ErrNotFound) { return nil, ErrNoSuchMailbox } return nil, err } if exists, err := tx.MailboxExistsWithName(ctx, newName); err != nil { return nil, err } else if exists { return nil, ErrExistingMailbox } var mboxesToCreate []string for _, superior := range listSuperiors(newName, state.delimiter) { if exists, err := tx.MailboxExistsWithName(ctx, superior); err != nil { return nil, err } else if exists { if superior == oldName { return nil, ErrExistingMailbox } continue } mboxesToCreate = append(mboxesToCreate, superior) } for _, m := range mboxesToCreate { uidValidity, err := state.user.GenerateUIDValidity() if err != nil { return nil, err } res, err := state.user.GetRemote().CreateMailbox(ctx, strings.Split(m, state.delimiter)) if err != nil { return nil, err } if err := tx.CreateMailboxIfNotExists(ctx, res, state.delimiter, uidValidity); err != nil { return nil, err } } if oldName == imap.Inbox { return state.renameInbox(ctx, tx, mbox, newName) } if err := state.actionUpdateMailbox(ctx, tx, mbox.RemoteID, newName); err != nil { return nil, err } // Locally update all inferiors so we don't wait for update mailboxes, err := tx.GetAllMailboxesWithAttr(ctx) if err != nil { return nil, err } inferiors := listInferiors(oldName, state.delimiter, xslices.Map(mailboxes, func(mailbox *db.MailboxWithAttr) string { return mailbox.Name })) for _, inferior := range inferiors { mbox, err := tx.GetMailboxByName(ctx, inferior) if err != nil { if errors.Is(err, db.ErrNotFound) { return nil, ErrNoSuchMailbox } return nil, err } newInferior := newName + strings.TrimPrefix(inferior, oldName) if err := tx.RenameMailboxWithRemoteID(ctx, mbox.RemoteID, newInferior); err != nil { return nil, err } } return nil, nil }) } func (state *State) Subscribe(ctx context.Context, name string) error { return stateDBWrite(ctx, state, func(ctx context.Context, tx db.Transaction) ([]Update, error) { mbox, err := tx.GetMailboxByName(ctx, name) if err != nil { if errors.Is(err, db.ErrNotFound) { return nil, ErrNoSuchMailbox } return nil, err } if mbox.Subscribed { return nil, ErrAlreadySubscribed } return nil, tx.SetMailboxSubscribed(ctx, mbox.ID, true) }) } func (state *State) Unsubscribe(ctx context.Context, name string) error { return stateDBWrite(ctx, state, func(ctx context.Context, tx db.Transaction) ([]Update, error) { mbox, err := tx.GetMailboxByName(ctx, name) if err != nil { // If mailbox does not exist, check that if it is present in the deleted subscription table if count, err := tx.RemoveDeletedSubscriptionWithName(ctx, name); err != nil { return nil, err } else if count == 0 { return nil, ErrNoSuchMailbox } else { return nil, nil } } if !mbox.Subscribed { return nil, ErrAlreadyUnsubscribed } return nil, tx.SetMailboxSubscribed(ctx, mbox.ID, false) }) } func (state *State) Idle(ctx context.Context, fn func([]response.Response, chan response.Response) error) error { res, err := state.beginIdle(ctx) if err != nil { return err } defer state.endIdle() return fn(res, state.idleCh) } func (state *State) Mailbox(ctx context.Context, name string, fn func(*Mailbox) error) error { mbox, err := stateDBReadResult(ctx, state, func(ctx context.Context, client db.ReadOnly) (*db.Mailbox, error) { return client.GetMailboxByName(ctx, name) }) if err != nil { if errors.Is(err, db.ErrNotFound) { return ErrNoSuchMailbox } return err } if state.snap != nil && state.snap.mboxID.InternalID == mbox.ID { return fn(newMailbox(mbox, state, state.snap)) } snap, err := stateDBReadResult(ctx, state, func(ctx context.Context, client db.ReadOnly) (*snapshot, error) { return newSnapshot(ctx, state, client, mbox) }) if err != nil { return err } return fn(newMailbox(mbox, state, snap)) } // AppendOnlyMailbox does not guarantee that the mailbox snapshot is loaded data from the database // and passes true into the function if the currently selected mailbox matches the requested mailbox. // It can only be used for appending. func (state *State) AppendOnlyMailbox(ctx context.Context, name string, fn func(AppendOnlyMailbox, bool) error) error { if strings.EqualFold(name, ids.GluonRecoveryMailboxName) { return ErrOperationNotAllowed } mbox, err := stateDBReadResult(ctx, state, func(ctx context.Context, client db.ReadOnly) (*db.Mailbox, error) { return client.GetMailboxByName(ctx, name) }) if err != nil { if errors.Is(err, db.ErrNotFound) { return ErrNoSuchMailbox } return err } if state.snap != nil && state.snap.mboxID.InternalID == mbox.ID { return fn(newMailbox(mbox, state, state.snap), true) } snap := newEmptySnapshot(state, mbox) return fn(newMailbox(mbox, state, snap), false) } func (state *State) Selected(ctx context.Context, fn func(*Mailbox) error) error { if !state.IsSelected() { return ErrSessionNotSelected } mbox, err := stateDBReadResult(ctx, state, func(ctx context.Context, client db.ReadOnly) (*db.Mailbox, error) { return client.GetMailboxByID(ctx, state.snap.mboxID.InternalID) }) if err != nil { if errors.Is(err, db.ErrNotFound) { return ErrNoSuchMailbox } return err } return fn(newMailbox(mbox, state, state.snap)) } func (state *State) IsSelected() bool { return state.snap != nil } func (state *State) SetConnMetadataKeyValue(key string, value any) { state.user.GetRemote().SetConnMetadataValue(key, value) } func (state *State) Done() <-chan struct{} { if state == nil { return nil } return state.doneCh } func (state *State) Close(ctx context.Context) error { state.deleteConnMetadata() state.closeUpdateQueue() if err := state.close(); err != nil { return fmt.Errorf("failed to close state: %w", err) } return nil } func (state *State) SignalClose() { close(state.doneCh) } func (state *State) ReleaseState(ctx context.Context) error { // Regrettably we can't have the session release the state during `Session.done` since it causes a deadlock when // removing a User. return state.user.ReleaseState(ctx, state) } func (state *State) GetStateUpdatesCh() <-chan Update { if state == nil { return nil } return state.updatesQueue.GetChannel() } func (state *State) QueueUpdates(updates ...Update) bool { return state.updatesQueue.Enqueue(updates...) } func (state *State) ApplyUpdate(ctx context.Context, update Update) error { logrus.WithField("Update", update).Debugf("Applying state update on state %v", state.StateID) if !update.Filter(state) { return nil } if err := state.user.GetDB().Write(ctx, func(ctx context.Context, tx db.Transaction) error { return update.Apply(ctx, tx, state) }); err != nil { reporter.MessageWithContext(ctx, "Failed to apply state update", reporter.Context{"error": err, "update": update.String()}, ) return err } return nil } func (state *State) HasMessage(id imap.InternalMessageID) bool { return state.snap != nil && state.snap.hasMessage(id) } func (state *State) IsValid() bool { return !state.invalid } func (state *State) markInvalid() { state.invalid = true } // renameInbox creates a new mailbox and moves everything there. func (state *State) renameInbox(ctx context.Context, tx db.Transaction, inbox *db.Mailbox, newName string) ([]Update, error) { uidValidity, err := state.user.GenerateUIDValidity() if err != nil { return nil, err } mbox, err := state.actionCreateAndGetMailbox(ctx, tx, newName, uidValidity) if err != nil { return nil, err } messageIDs, err := tx.GetMailboxMessageIDPairs(ctx, inbox.ID) if err != nil { return nil, err } mboxIDPair := db.NewMailboxIDPair(mbox) updates, _, err := state.actionMoveMessages(ctx, tx, messageIDs, db.NewMailboxIDPair(inbox), mboxIDPair) if err != nil { return nil, err } return updates, nil } func (state *State) beginIdle(ctx context.Context) ([]response.Response, error) { var res []response.Response res, err := state.flushResponses(ctx, true) if err != nil { return nil, err } state.idleCh = make(chan response.Response) return res, nil } func (state *State) endIdle() { close(state.idleCh) state.idleCh = nil } func (state *State) getLiteral(ctx context.Context, messageID db.MessageIDPair) ([]byte, error) { var literal []byte storeLiteral, firstErr := state.user.GetStore().Get(messageID.InternalID) if firstErr != nil { // Do not attempt to recovered messages from the connector. if ids.IsRecoveredRemoteMessageID(messageID.RemoteID) { logrus.Debugf("Failed load %v from store, but it is a recovered message.", messageID.InternalID) return nil, firstErr } logrus.Debugf("Failed load %v from store, attempting to download from connector", messageID.InternalID.ShortID()) connectorLiteral, err := state.user.GetRemote().GetMessageLiteral(ctx, messageID.RemoteID) if err != nil { logrus.Errorf("Failed to download message from connector: %v", err) return nil, fmt.Errorf("message failed to load from cache (%v), failed to download from connector: %w", firstErr, err) } literalWithHeader, err := rfc822.SetHeaderValue(connectorLiteral, ids.InternalIDKey, messageID.InternalID.String()) if err != nil { return nil, fmt.Errorf("failed to set internal ID on downloaded message: %w", err) } if err := state.user.GetStore().Set(messageID.InternalID, bytes.NewReader(literalWithHeader)); err != nil { logrus.Errorf("Failed to store download message from connector: %v", err) return nil, fmt.Errorf("message failed to load from cache (%v), failed to store new downloaded message: %w", firstErr, err) } logrus.Debugf("Message %v downloaded and stored ", messageID.InternalID.ShortID()) literal = literalWithHeader } else { literal = storeLiteral } return literal, nil } func (state *State) flushResponses(ctx context.Context, permitExpunge bool) ([]response.Response, error) { var responses []response.Response select { case <-ctx.Done(): return nil, ctx.Err() default: // fallthrough } var dbUpdates []responderDBUpdate for _, responder := range state.popResponders(permitExpunge) { logrus.WithField("state", state.StateID).WithField("Origin", "Flush").Debugf("Applying responder: %v", responder.String()) res, dbUpdate, err := responder.handle(ctx, state.snap, state.StateID) if err != nil { return nil, err } responses = append(responses, res...) if dbUpdate != nil { dbUpdates = append(dbUpdates, dbUpdate) } } if err := state.user.GetDB().Write(ctx, func(ctx context.Context, tx db.Transaction) error { for _, update := range dbUpdates { if err := update.apply(ctx, tx); err != nil { return err } } return nil }); err != nil { return nil, err } return response.Merge(responses), nil } func (state *State) PushResponder(ctx context.Context, tx db.Transaction, responder ...Responder) error { if state.idleCh == nil { return state.queueResponder(responder...) } for _, responder := range responder { logrus.WithField("state", state.StateID).WithField("Origin", "Push").Debugf("Applying responder: %v", responder.String()) res, dbUpdate, err := responder.handle(ctx, state.snap, state.StateID) if err != nil { return err } if dbUpdate != nil { if err := dbUpdate.apply(ctx, tx); err != nil { return err } } for _, res := range res { state.idleCh <- res } } return nil } func (state *State) queueResponder(responder ...Responder) error { state.res = append(state.res, responder...) return nil } // popResponders pops responders from the state. // If permitExpunge is false, it stops when it encounters the first expunge Responder. // This is important: suppose someone first expunges a message (generating an EXPUNGE) // then puts it back (generating an EXISTS). If we didn't stop at the first expunge, // we would send the EXISTS to the client, followed by an expunge afterwards (wrong). func (state *State) popResponders(permitExpunge bool) []Responder { if len(state.res) == 0 { return nil } var pop, rem []Responder skipIDs := make(xmaps.Set[imap.InternalMessageID]) for _, res := range state.res { if permitExpunge { pop = append(pop, res) } else if _, ok := res.(*expunge); ok { rem = append(rem, res) skipIDs.Add(res.getMessageID()) } else if _, ok := res.(*targetedExists); ok { if skipIDs.Contains(res.getMessageID()) { rem = append(rem, res) skipIDs.Remove(res.getMessageID()) } else { pop = append(pop, res) } } else { pop = append(pop, res) } } state.res = rem return pop } func (state *State) UpdateMailboxRemoteID(internalID imap.InternalMailboxID, remoteID imap.MailboxID) error { if state.snap != nil { if err := state.snap.updateMailboxRemoteID(internalID, remoteID); err != nil { return err } } return nil } func (state *State) UpdateMessageRemoteID(internalID imap.InternalMessageID, remoteID imap.MessageID) error { if state.snap != nil && state.snap.hasMessage(internalID) { if err := state.snap.updateMessageRemoteID(internalID, remoteID); err != nil { return err } } return nil } // We don't want the queue closed to be reported as an error. // User will clean up existing metadata entries by itself when closed. func (state *State) deleteConnMetadata() { state.user.GetRemote().ClearAllConnMetadata() } func (state *State) closeUpdateQueue() { state.updatesQueue.Close() } func (state *State) close() error { state.snap = nil state.res = nil return nil } func stateDBRead(ctx context.Context, state *State, fn func(context.Context, db.ReadOnly) error) error { return state.user.GetDB().Read(ctx, fn) } func stateDBReadResult[T any](ctx context.Context, state *State, fn func(context.Context, db.ReadOnly) (T, error)) (T, error) { return db.ClientReadType(ctx, state.user.GetDB(), fn) } func stateDBWrite(ctx context.Context, state *State, fn func(context.Context, db.Transaction) ([]Update, error)) error { var updates []Update if err := state.user.GetDB().Write(ctx, func(ctx context.Context, tx db.Transaction) error { up, err := fn(ctx, tx) updates = up return err }); err != nil { return err } // need to create a separate transaction for the state updates so that import changes get written first. if len(updates) != 0 { if err := state.user.GetDB().Write(ctx, func(ctx context.Context, tx db.Transaction) error { return state.user.QueueOrApplyStateUpdate(ctx, tx, updates...) }); err != nil { return err } } return nil } func stateDBWriteResult[T any](ctx context.Context, state *State, fn func(context.Context, db.Transaction) ([]Update, T, error)) (T, error) { var updates []Update result, err := db.ClientWriteType(ctx, state.user.GetDB(), func(ctx context.Context, tx db.Transaction) (T, error) { up, val, err := fn(ctx, tx) updates = up return val, err }) if err != nil { var t T return t, err } // need to create a separate transaction for the state updates so that import changes get written first. if len(updates) != 0 { if err := state.user.GetDB().Write(ctx, func(ctx context.Context, tx db.Transaction) error { return state.user.QueueOrApplyStateUpdate(ctx, tx, updates...) }); err != nil { return result, err } } return result, nil } gluon-0.17.0/internal/state/updates.go000066400000000000000000000326151445200213000176510ustar00rootroot00000000000000package state import ( "context" "fmt" "strings" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/ids" "github.com/bradenaw/juniper/xslices" ) type Update interface { // Filter returns true when the state can be passed into A. Filter(s *State) bool // Apply the update to a given state. Apply(cxt context.Context, tx db.Transaction, s *State) error String() string } type messageFlagsComboStateUpdate struct { AllStateFilter updates []Update } func newMessageFlagsComboStateUpdate() *messageFlagsComboStateUpdate { return &messageFlagsComboStateUpdate{} } func (u *messageFlagsComboStateUpdate) Apply(ctx context.Context, tx db.Transaction, s *State) error { for _, v := range u.updates { if err := v.Apply(ctx, tx, s); err != nil { return err } } return nil } func (u *messageFlagsComboStateUpdate) addUpdate(update Update) { u.updates = append(u.updates, update) } func (u *messageFlagsComboStateUpdate) String() string { return fmt.Sprintf("messageFlagsComboStateUpdate: %v", u.updates) } type messageFlagsAddedStateUpdate struct { AllStateFilter messageIDs []imap.InternalMessageID flags imap.FlagSet mboxID db.MailboxIDPair stateID StateID } func newMessageFlagsAddedStateUpdate(flags imap.FlagSet, mboxID db.MailboxIDPair, messageIDs []imap.InternalMessageID, stateID StateID) Update { return &messageFlagsAddedStateUpdate{ flags: flags, mboxID: mboxID, messageIDs: messageIDs, stateID: stateID, } } func (u *messageFlagsAddedStateUpdate) Apply(ctx context.Context, tx db.Transaction, s *State) error { for _, messageID := range u.messageIDs { newFlags := u.flags if err := s.PushResponder(ctx, tx, NewFetch( messageID, newFlags, contexts.IsUID(ctx), s.StateID == u.stateID && contexts.IsSilent(ctx), s.snap.mboxID != u.mboxID, FetchFlagOpAdd, )); err != nil { return err } } return nil } func (u *messageFlagsAddedStateUpdate) String() string { return fmt.Sprintf("MessagFlagsAddedStateUpdate: mbox = %v messages = %v flags = %v", u.mboxID.InternalID.ShortID(), xslices.Map(u.messageIDs, func(id imap.InternalMessageID) string { return id.ShortID() }), u.flags) } // applyMessageFlagsAdded adds the flags to the given messages. func (state *State) applyMessageFlagsAdded(ctx context.Context, tx db.Transaction, messageIDs []imap.InternalMessageID, addFlags imap.FlagSet) ([]Update, error) { if addFlags.ContainsUnchecked(imap.FlagRecentLowerCase) { return nil, fmt.Errorf("the recent flag is read-only") } // Since DB state can be more up to date then the flag state we should only emit add flag updates for values // that actually changed. curFlags, err := tx.GetMessagesFlags(ctx, messageIDs) if err != nil { return nil, err } // If setting messages as seen, only set those messages that aren't currently seen. if addFlags.ContainsUnchecked(imap.FlagSeenLowerCase) { var messagesToApply []imap.MessageID for _, msg := range curFlags { if !msg.FlagSet.ContainsUnchecked(imap.FlagSeenLowerCase) && !ids.IsRecoveredRemoteMessageID(msg.RemoteID) { messagesToApply = append(messagesToApply, msg.RemoteID) } } if len(messagesToApply) != 0 { if err := state.user.GetRemote().SetMessagesSeen(ctx, messagesToApply, true); err != nil { return nil, err } } } // If setting messages as flagged, only set those messages that aren't currently flagged. if addFlags.ContainsUnchecked(imap.FlagFlaggedLowerCase) { var messagesToApply []imap.MessageID for _, msg := range curFlags { if !msg.FlagSet.ContainsUnchecked(imap.FlagFlaggedLowerCase) && !ids.IsRecoveredRemoteMessageID(msg.RemoteID) { messagesToApply = append(messagesToApply, msg.RemoteID) } } if len(messagesToApply) != 0 { if err := state.user.GetRemote().SetMessagesFlagged(ctx, messagesToApply, true); err != nil { return nil, err } } } flagStateUpdate := newMessageFlagsComboStateUpdate() if addFlags.ContainsUnchecked(imap.FlagDeletedLowerCase) { if err := tx.SetMailboxMessagesDeletedFlag(ctx, state.snap.mboxID.InternalID, messageIDs, true); err != nil { return nil, err } flagStateUpdate.addUpdate(newMessageFlagsAddedStateUpdate(imap.NewFlagSet(imap.FlagDeleted), state.snap.mboxID, messageIDs, state.StateID)) } remainingFlags := addFlags.Remove(imap.FlagDeleted) for _, flag := range remainingFlags { flagLowerCase := strings.ToLower(flag) messagesToFlag := make([]imap.InternalMessageID, 0, len(messageIDs)/2) for _, v := range curFlags { if !v.FlagSet.ContainsUnchecked(flagLowerCase) { messagesToFlag = append(messagesToFlag, v.ID) } } if err := tx.AddFlagToMessages(ctx, messagesToFlag, flag); err != nil { return nil, err } flagStateUpdate.addUpdate(newMessageFlagsAddedStateUpdate(remainingFlags, state.snap.mboxID, messagesToFlag, state.StateID)) } return []Update{flagStateUpdate}, nil } type messageFlagsRemovedStateUpdate struct { AllStateFilter messageIDs []imap.InternalMessageID flags imap.FlagSet mboxID db.MailboxIDPair stateID StateID } func NewMessageFlagsRemovedStateUpdate(flags imap.FlagSet, mboxID db.MailboxIDPair, messageIDs []imap.InternalMessageID, stateID StateID) Update { return &messageFlagsRemovedStateUpdate{ flags: flags, mboxID: mboxID, messageIDs: messageIDs, stateID: stateID, } } func (u *messageFlagsRemovedStateUpdate) Apply(ctx context.Context, tx db.Transaction, s *State) error { for _, messageID := range u.messageIDs { newFlags := u.flags if err := s.PushResponder(ctx, tx, NewFetch( messageID, newFlags, contexts.IsUID(ctx), s.StateID == u.stateID && contexts.IsSilent(ctx), s.snap.mboxID != u.mboxID, FetchFlagOpRem, )); err != nil { return err } } return nil } func (u *messageFlagsRemovedStateUpdate) String() string { return fmt.Sprintf("MessagFlagsRemovedStateUpdate: mbox = %v messages = %v flags = %v", u.mboxID.InternalID, xslices.Map(u.messageIDs, func(id imap.InternalMessageID) string { return id.ShortID() }), u.flags) } // applyMessageFlagsRemoved removes the flags from the given messages. func (state *State) applyMessageFlagsRemoved(ctx context.Context, tx db.Transaction, messageIDs []imap.InternalMessageID, remFlags imap.FlagSet) ([]Update, error) { if remFlags.ContainsUnchecked(imap.FlagRecentLowerCase) { return nil, fmt.Errorf("the recent flag is read-only") } curFlags, err := tx.GetMessagesFlags(ctx, messageIDs) if err != nil { return nil, err } // If setting messages as unseen, only set those messages that are currently seen. if remFlags.ContainsUnchecked(imap.FlagSeenLowerCase) { var messagesToApply []imap.MessageID for _, msg := range curFlags { if msg.FlagSet.ContainsUnchecked(imap.FlagSeenLowerCase) && !ids.IsRecoveredRemoteMessageID(msg.RemoteID) { messagesToApply = append(messagesToApply, msg.RemoteID) } } if len(messagesToApply) != 0 { if err := state.user.GetRemote().SetMessagesSeen(ctx, messagesToApply, false); err != nil { return nil, err } } } // If setting messages as unflagged, only set those messages that are currently flagged. if remFlags.ContainsUnchecked(imap.FlagFlaggedLowerCase) { var messagesToApply []imap.MessageID for _, msg := range curFlags { if msg.FlagSet.ContainsUnchecked(imap.FlagFlaggedLowerCase) && !ids.IsRecoveredRemoteMessageID(msg.RemoteID) { messagesToApply = append(messagesToApply, msg.RemoteID) } } if len(messagesToApply) != 0 { if err := state.user.GetRemote().SetMessagesFlagged(ctx, messagesToApply, false); err != nil { return nil, err } } } flagStateUpdate := newMessageFlagsComboStateUpdate() if remFlags.ContainsUnchecked(imap.FlagDeletedLowerCase) { if err := tx.SetMailboxMessagesDeletedFlag(ctx, state.snap.mboxID.InternalID, messageIDs, false); err != nil { return nil, err } flagStateUpdate.addUpdate(NewMessageFlagsRemovedStateUpdate(imap.NewFlagSet(imap.FlagDeleted), state.snap.mboxID, messageIDs, state.StateID)) } remainingFlags := remFlags.Remove(imap.FlagDeleted) for _, flag := range remainingFlags { flagLowerCase := strings.ToLower(flag) messagesToFlag := make([]imap.InternalMessageID, 0, len(messageIDs)/2) for _, v := range curFlags { if v.FlagSet.ContainsUnchecked(flagLowerCase) { messagesToFlag = append(messagesToFlag, v.ID) } } if err := tx.RemoveFlagFromMessages(ctx, messagesToFlag, flag); err != nil { return nil, err } flagStateUpdate.addUpdate(NewMessageFlagsRemovedStateUpdate(remainingFlags, state.snap.mboxID, messagesToFlag, state.StateID)) } return []Update{flagStateUpdate}, nil } type messageFlagsSetStateUpdate struct { AllStateFilter messageIDs []imap.InternalMessageID flags imap.FlagSet mboxID db.MailboxIDPair stateID StateID } func NewMessageFlagsSetStateUpdate(flags imap.FlagSet, mboxID db.MailboxIDPair, messageIDs []imap.InternalMessageID, stateID StateID) Update { return &messageFlagsSetStateUpdate{ flags: flags, mboxID: mboxID, messageIDs: messageIDs, stateID: stateID, } } func (u *messageFlagsSetStateUpdate) Apply(ctx context.Context, tx db.Transaction, state *State) error { for _, messageID := range u.messageIDs { newFlags := u.flags if err := state.PushResponder(ctx, tx, NewFetch( messageID, newFlags, contexts.IsUID(ctx), state.StateID == u.stateID && contexts.IsSilent(ctx), state.snap.mboxID != u.mboxID, FetchFlagOpSet, )); err != nil { return err } } return nil } func (u *messageFlagsSetStateUpdate) String() string { return fmt.Sprintf("MessageFlagsSetStateUpdate: mbox = %v messages = %v flags=%v", u.mboxID.InternalID.ShortID(), xslices.Map(u.messageIDs, func(id imap.InternalMessageID) string { return id.ShortID() }), u.flags) } // applyMessageFlagsSet sets the flags of the given messages. func (state *State) applyMessageFlagsSet(ctx context.Context, tx db.Transaction, messageIDs []imap.InternalMessageID, setFlags imap.FlagSet) ([]Update, error) { if setFlags.ContainsUnchecked(imap.FlagRecentLowerCase) { return nil, fmt.Errorf("the recent flag is read-only") } if state.snap == nil { return nil, nil } curFlags, err := tx.GetMessagesFlags(ctx, messageIDs) if err != nil { return nil, err } // If setting messages as seen, only set those messages that aren't currently seen, and vice versa. setSeen := map[bool][]imap.MessageID{true: {}, false: {}} for _, msg := range curFlags { if seen := setFlags.ContainsUnchecked(imap.FlagSeenLowerCase); seen != msg.FlagSet.ContainsUnchecked(imap.FlagSeenLowerCase) && !ids.IsRecoveredRemoteMessageID(msg.RemoteID) { setSeen[seen] = append(setSeen[seen], msg.RemoteID) } } for seen, messageIDs := range setSeen { if err := state.user.GetRemote().SetMessagesSeen(ctx, messageIDs, seen); err != nil { return nil, err } } // If setting messages as flagged, only set those messages that aren't currently flagged, and vice versa. setFlagged := map[bool][]imap.MessageID{true: {}, false: {}} for _, msg := range curFlags { if flagged := setFlags.ContainsUnchecked(imap.FlagFlaggedLowerCase); flagged != msg.FlagSet.ContainsUnchecked(imap.FlagFlaggedLowerCase) && !ids.IsRecoveredRemoteMessageID(msg.RemoteID) { setFlagged[flagged] = append(setFlagged[flagged], msg.RemoteID) } } for flagged, messageIDs := range setFlagged { if err := state.user.GetRemote().SetMessagesFlagged(ctx, messageIDs, flagged); err != nil { return nil, err } } if err := tx.SetMailboxMessagesDeletedFlag(ctx, state.snap.mboxID.InternalID, messageIDs, setFlags.Contains(imap.FlagDeleted)); err != nil { return nil, err } remainingFlags := setFlags.Remove(imap.FlagDeleted) if remainingFlags.Len() != 0 { if err := tx.SetFlagsOnMessages(ctx, messageIDs, remainingFlags); err != nil { return nil, err } } return []Update{NewMessageFlagsSetStateUpdate(setFlags, state.snap.mboxID, messageIDs, state.StateID)}, nil } type mailboxRemoteIDUpdateStateUpdate struct { SnapFilter remoteID imap.MailboxID } func NewMailboxRemoteIDUpdateStateUpdate(internalID imap.InternalMailboxID, remoteID imap.MailboxID) Update { return &mailboxRemoteIDUpdateStateUpdate{ SnapFilter: NewMBoxIDStateFilter(internalID), remoteID: remoteID, } } func (u *mailboxRemoteIDUpdateStateUpdate) Apply(ctx context.Context, tx db.Transaction, s *State) error { s.snap.mboxID.RemoteID = u.remoteID return nil } func (u *mailboxRemoteIDUpdateStateUpdate) String() string { return fmt.Sprintf("MailboxRemoteIDUpdateStateUpdate: %v remote = %v", u.SnapFilter.String(), u.remoteID.ShortID()) } type mailboxDeletedStateUpdate struct { MBoxIDStateFilter } func NewMailboxDeletedStateUpdate(mboxID imap.InternalMailboxID) Update { return &mailboxDeletedStateUpdate{MBoxIDStateFilter: MBoxIDStateFilter{MboxID: mboxID}} } func (u *mailboxDeletedStateUpdate) Apply(ctx context.Context, tx db.Transaction, s *State) error { s.markInvalid() return nil } func (u *mailboxDeletedStateUpdate) String() string { return fmt.Sprintf("MailboxDeletedStateUpdate: %v", u.MBoxIDStateFilter.String()) } type uidValidityBumpedStateUpdate struct { AllStateFilter } func NewUIDValidityBumpedStateUpdate() Update { return &uidValidityBumpedStateUpdate{} } func (u *uidValidityBumpedStateUpdate) Apply(ctx context.Context, tx db.Transaction, s *State) error { s.markInvalid() return nil } func (u *uidValidityBumpedStateUpdate) String() string { return "UIDValidityBumpedStateUpdate" } gluon-0.17.0/internal/state/updates_mailbox.go000066400000000000000000000066361445200213000213700ustar00rootroot00000000000000package state import ( "context" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/limits" "github.com/bradenaw/juniper/xslices" ) // Shared code for state and connector updates related to mailbox message operations // MoveMessagesFromMailbox moves messages from one mailbox to the other. func MoveMessagesFromMailbox( ctx context.Context, tx db.Transaction, mboxFromID, mboxToID imap.InternalMailboxID, messageIDPairs []db.MessageIDPair, messageIDsInternal []imap.InternalMessageID, s *State, imapLimits limits.IMAP, removeOldMessages bool, ) ([]db.UIDWithFlags, []Update, error) { messageCount, uid, err := tx.GetMailboxMessageCountAndUID(ctx, mboxToID) if err != nil { return nil, nil, err } if err := imapLimits.CheckMailBoxMessageCount(messageCount, len(messageIDPairs)); err != nil { return nil, nil, err } if err := imapLimits.CheckUIDCount(uid, len(messageIDPairs)); err != nil { return nil, nil, err } if mboxFromID != mboxToID && removeOldMessages { if err := tx.RemoveMessagesFromMailbox(ctx, mboxFromID, messageIDsInternal); err != nil { return nil, nil, err } } messageUIDs, err := tx.AddMessagesToMailbox(ctx, mboxToID, messageIDPairs) if err != nil { return nil, nil, err } stateUpdates := make([]Update, 0, len(messageIDPairs)+1) { responders := xslices.Map(messageUIDs, func(uid db.UIDWithFlags) *exists { return newExists(db.MessageIDPair{ InternalID: uid.InternalID, RemoteID: uid.RemoteID, }, uid.UID, uid.GetFlagSet()) }) stateUpdates = append(stateUpdates, newExistsStateUpdateWithExists(mboxToID, responders, s)) } if removeOldMessages { for _, messageID := range messageIDsInternal { stateUpdates = append(stateUpdates, NewMessageIDAndMailboxIDResponderStateUpdate(messageID, mboxFromID, NewExpunge(messageID))) } } return messageUIDs, stateUpdates, nil } // AddMessagesToMailbox adds the messages to the given mailbox. func AddMessagesToMailbox(ctx context.Context, tx db.Transaction, mboxID imap.InternalMailboxID, messageIDs []db.MessageIDPair, s *State, imapLimits limits.IMAP) ([]db.UIDWithFlags, Update, error) { messageCount, uid, err := tx.GetMailboxMessageCountAndUID(ctx, mboxID) if err != nil { return nil, nil, err } if err := imapLimits.CheckMailBoxMessageCount(messageCount, len(messageIDs)); err != nil { return nil, nil, err } if err := imapLimits.CheckUIDCount(uid, len(messageIDs)); err != nil { return nil, nil, err } messageUIDs, err := tx.AddMessagesToMailbox(ctx, mboxID, messageIDs) if err != nil { return nil, nil, err } responders := xslices.Map(messageUIDs, func(uid db.UIDWithFlags) *exists { return newExists(db.MessageIDPair{ InternalID: uid.InternalID, RemoteID: uid.RemoteID, }, uid.UID, uid.GetFlagSet()) }) return messageUIDs, newExistsStateUpdateWithExists(mboxID, responders, s), nil } // RemoveMessagesFromMailbox removes the messages from the given mailbox. func RemoveMessagesFromMailbox(ctx context.Context, tx db.Transaction, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID) ([]Update, error) { if len(messageIDs) > 0 { if err := tx.RemoveMessagesFromMailbox(ctx, mboxID, messageIDs); err != nil { return nil, err } } stateUpdates := xslices.Map(messageIDs, func(id imap.InternalMessageID) Update { return NewMessageIDAndMailboxIDResponderStateUpdate(id, mboxID, NewExpunge(id)) }) return stateUpdates, nil } gluon-0.17.0/internal/state/updates_remote.go000066400000000000000000000034121445200213000212150ustar00rootroot00000000000000package state import ( "context" "fmt" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/contexts" ) type RemoteAddMessageFlagsStateUpdate struct { MessageIDStateFilter flag string } func NewRemoteAddMessageFlagsStateUpdate(messageID imap.InternalMessageID, flag string) Update { return &RemoteAddMessageFlagsStateUpdate{ MessageIDStateFilter: MessageIDStateFilter{MessageID: messageID}, flag: flag, } } func (u *RemoteAddMessageFlagsStateUpdate) Apply(ctx context.Context, tx db.Transaction, s *State) error { return s.PushResponder(ctx, tx, NewFetch(u.MessageID, imap.NewFlagSet(u.flag), contexts.IsUID(ctx), contexts.IsSilent(ctx), false, FetchFlagOpAdd)) } func (u *RemoteAddMessageFlagsStateUpdate) String() string { return fmt.Sprintf("RemoteAddMessageFlagsStateUpdate %v flag = %v", u.MessageIDStateFilter.String(), u.flag) } type RemoteRemoveMessageFlagsStateUpdate struct { MessageIDStateFilter flag string } func NewRemoteRemoveMessageFlagsStateUpdate(messageID imap.InternalMessageID, flag string) Update { return &RemoteRemoveMessageFlagsStateUpdate{ MessageIDStateFilter: MessageIDStateFilter{MessageID: messageID}, flag: flag, } } func (u *RemoteRemoveMessageFlagsStateUpdate) Apply(ctx context.Context, tx db.Transaction, s *State) error { return s.PushResponder(ctx, tx, NewFetch(u.MessageID, imap.NewFlagSet(u.flag), contexts.IsUID(ctx), contexts.IsSilent(ctx), false, FetchFlagOpRem)) } func (u *RemoteRemoveMessageFlagsStateUpdate) String() string { return fmt.Sprintf("RemoteRemoveMessageFlagsStateUpdate %v flag = %v", u.MessageIDStateFilter.String(), u.flag) } type RemoteMessageDeletedStateUpdate struct { MessageIDStateFilter remoteID imap.MessageID } gluon-0.17.0/internal/state/user_interface.go000066400000000000000000000015541445200213000212000ustar00rootroot00000000000000package state import ( "context" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/utils" "github.com/ProtonMail/gluon/store" ) // UserInterface represents the expected behaviour for interacting with a remote user. // Sadly, due to Go's cyclic dependencies, this needs to be an interface. The implementation of this interface // is available in the backend package. type UserInterface interface { GetUserID() string GetDelimiter() string GetDB() db.Client GetRemote() Connector GetStore() *store.WriteControlledStore QueueOrApplyStateUpdate(ctx context.Context, tx db.Transaction, update ...Update) error ReleaseState(ctx context.Context, st *State) error GetRecoveryMailboxID() db.MailboxIDPair GenerateUIDValidity() (imap.UID, error) GetRecoveredMessageHashesMap() *utils.MessageHashesMap } gluon-0.17.0/internal/ticker/000077500000000000000000000000001445200213000160075ustar00rootroot00000000000000gluon-0.17.0/internal/ticker/ticker.go000066400000000000000000000020701445200213000176160ustar00rootroot00000000000000package ticker import "time" type Ticker struct { ticker *time.Ticker period time.Duration pollCh chan chan struct{} stopCh chan struct{} } func New(period time.Duration) *Ticker { return &Ticker{ ticker: time.NewTicker(period), period: period, pollCh: make(chan chan struct{}), stopCh: make(chan struct{}), } } // Pause pauses the ticker. func (ticker *Ticker) Pause() { ticker.ticker.Stop() } // Resume resumes the ticker. func (ticker *Ticker) Resume() { ticker.ticker.Reset(ticker.period) } // Poll polls the ticker. It blocks until the tick has been executed. func (ticker *Ticker) Poll() { doneCh := make(chan struct{}) ticker.pollCh <- doneCh <-doneCh } // Stop stops the ticker. func (ticker *Ticker) Stop() { close(ticker.stopCh) } // Tick calls the given callback at regular intervals or when the ticker is polled. func (ticker *Ticker) Tick(fn func(time.Time)) { for { select { case tick := <-ticker.ticker.C: fn(tick) case doneCh := <-ticker.pollCh: fn(time.Now()) close(doneCh) case <-ticker.stopCh: return } } } gluon-0.17.0/internal/utils/000077500000000000000000000000001445200213000156665ustar00rootroot00000000000000gluon-0.17.0/internal/utils/message_hashmap.go000066400000000000000000000024251445200213000213450ustar00rootroot00000000000000package utils import ( "sync" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/rfc822" ) // MessageHashesMap tracks the hashes for a literal and it's associated internal IMAP ID. type MessageHashesMap struct { lock sync.Mutex idToHash map[imap.InternalMessageID]string hashes map[string]struct{} } func NewMessageHashesMap() *MessageHashesMap { return &MessageHashesMap{ idToHash: make(map[imap.InternalMessageID]string), hashes: make(map[string]struct{}), } } // Insert inserts the hash of the current message literal into the map and return true if an existing value was already // present. func (m *MessageHashesMap) Insert(id imap.InternalMessageID, literal []byte) (bool, error) { literalHashStr, err := rfc822.GetMessageHash(literal) if err != nil { return false, err } m.lock.Lock() defer m.lock.Unlock() if _, ok := m.hashes[literalHashStr]; ok { return true, nil } m.idToHash[id] = literalHashStr m.hashes[literalHashStr] = struct{}{} return false, nil } // Erase removes the info associated with a given id. func (m *MessageHashesMap) Erase(ids ...imap.InternalMessageID) { m.lock.Lock() defer m.lock.Unlock() for _, id := range ids { if v, ok := m.idToHash[id]; ok { delete(m.hashes, v) } delete(m.idToHash, id) } } gluon-0.17.0/internal/utils/utils.go000066400000000000000000000015151445200213000173570ustar00rootroot00000000000000package utils import ( "errors" "github.com/google/uuid" ) // NewRandomUserID return a new random user ID. For debugging purposes, the ID starts with the 'user-' prefix. func NewRandomUserID() string { return "usr-" + uuid.NewString() } // NewRandomMailboxID return a new random mailbox ID. For debugging purposes, the ID starts with the 'lbl-' prefix. func NewRandomMailboxID() string { return "lbl-" + uuid.NewString() } // NewRandomMessageID return a new random message ID. For debugging purposes, the ID starts with the 'message-' prefix. func NewRandomMessageID() string { return "msg-" + uuid.NewString() } // ErrCause returns the cause of the error, the inner-most error in the wrapped chain. func ErrCause(err error) error { cause := err for errors.Unwrap(cause) != nil { cause = errors.Unwrap(cause) } return cause } gluon-0.17.0/limits/000077500000000000000000000000001445200213000142135ustar00rootroot00000000000000gluon-0.17.0/limits/imap.go000066400000000000000000000042271445200213000154750ustar00rootroot00000000000000package limits import ( "errors" "fmt" "math" "github.com/ProtonMail/gluon/imap" ) // IMAP contains configurable upper limits that can be enforced by the Gluon server. type IMAP struct { maxMailboxCount int maxMessageCountPerMailbox int maxUIDValidity int maxUID int } func (i IMAP) CheckMailBoxCount(mailboxCount int) error { if mailboxCount >= i.maxMailboxCount { return ErrMaxMailboxCountReached } return nil } func (i IMAP) CheckMailBoxMessageCount(existingCount int, newCount int) error { nextMessageCount := existingCount + newCount if nextMessageCount > i.maxMessageCountPerMailbox || nextMessageCount < existingCount { return ErrMaxMailboxMessageCountReached } return nil } func (i IMAP) CheckUIDCount(existingUID imap.UID, newCount int) error { nextUIDCount := int(existingUID) + newCount if nextUIDCount > i.maxUID || nextUIDCount < int(existingUID) { return ErrMaxUIDReached } return nil } func (i IMAP) CheckUIDValidity(uid imap.UID) error { if int(uid) >= i.maxUIDValidity { return ErrMaxUIDValidityReached } return nil } func DefaultLimits() IMAP { return IMAP{ maxMailboxCount: math.MaxUint32, maxMessageCountPerMailbox: math.MaxUint32, maxUIDValidity: math.MaxUint32, maxUID: math.MaxUint32, } } func NewIMAPLimits(maxMailboxCount uint32, maxMessageCount uint32, maxUID imap.UID, maxUIDValidity imap.UID) IMAP { return IMAP{ maxMailboxCount: int(maxMailboxCount), maxMessageCountPerMailbox: int(maxMessageCount), maxUIDValidity: int(maxUIDValidity), maxUID: int(maxUID), } } var ErrMaxMailboxCountReached = fmt.Errorf("max mailbox count reached") var ErrMaxMailboxMessageCountReached = fmt.Errorf("max mailbox message count reached") var ErrMaxUIDReached = fmt.Errorf("max UID value reached") var ErrMaxUIDValidityReached = fmt.Errorf("max UIDValidity value reached") func IsIMAPLimitErr(err error) bool { return errors.Is(err, ErrMaxUIDValidityReached) || errors.Is(err, ErrMaxMailboxCountReached) || errors.Is(err, ErrMaxUIDReached) || errors.Is(err, ErrMaxMailboxMessageCountReached) } gluon-0.17.0/liner/000077500000000000000000000000001445200213000140235ustar00rootroot00000000000000gluon-0.17.0/liner/liner.go000066400000000000000000000041441445200213000154660ustar00rootroot00000000000000// Package liner handles reading lines from clients that may or may not require continuation. package liner import ( "bufio" "io" "regexp" "strconv" "sync" "github.com/google/uuid" ) // rxLiteral matches a line that ends in a literal length indicator. var rxLiteral = regexp.MustCompile(`\{(\d+)\}\r\n$`) type Liner struct { br *bufio.Reader mu sync.RWMutex } type Line struct { Line []byte Literals map[string][]byte } func New(r io.Reader) *Liner { return &Liner{br: bufio.NewReader(r)} } // Reset resets the liner to read from a new reader. func (l *Liner) Reset(r io.Reader) { l.mu.Lock() defer l.mu.Unlock() l.br.Reset(r) } // Lines returns a channel that will receive lines as they are read. func (l *Liner) Lines(doContinuation func() error) <-chan Line { ch := make(chan Line) go func() { defer close(ch) for { line, lits, err := l.Read(doContinuation) if err != nil { return } ch <- Line{line, lits} } }() return ch } // Read reads a full line, automatically reading again if the line was not complete. // Each time an additional read is performed, doContinuation is called. // If the callback returns an error, the operation is aborted. func (l *Liner) Read(doContinuation func() error) ([]byte, map[string][]byte, error) { l.mu.RLock() defer l.mu.RUnlock() line, err := l.br.ReadBytes('\n') if err != nil { return nil, nil, err } lits := make(map[string][]byte) for { length := shouldReadLiteral(line) if length == 0 { break } if err := doContinuation(); err != nil { return nil, nil, err } uuid := uuid.New().String() lits[uuid] = make([]byte, length) if _, err := io.ReadFull(l.br, lits[uuid]); err != nil { return nil, nil, err } line = append(line, uuid...) rest, err := l.br.ReadBytes('\n') if err != nil { return nil, nil, err } line = append(line, rest...) } return line, lits, nil } func shouldReadLiteral(line []byte) int { match := rxLiteral.FindSubmatch(line) if match != nil { length, err := strconv.Atoi(string(match[1])) if err != nil { panic("bad line") } return length } return 0 } gluon-0.17.0/liner/liner_test.go000066400000000000000000000042671445200213000165330ustar00rootroot00000000000000package liner import ( "strings" "testing" "github.com/google/uuid" "github.com/stretchr/testify/assert" ) func TestLinerRead(t *testing.T) { uuid.SetRand(new(rander)) l := New(strings.NewReader(("tag1 login abcde pass\r\n"))) called := 0 line, literals, err := l.Read(func() error { called++; return nil }) assert.NoError(t, err) assert.Equal(t, 0, called) assert.Equal(t, "tag1 login abcde pass\r\n", string(line)) assert.Len(t, literals, 0) } func TestLinerReadOneLiteral(t *testing.T) { uuid.SetRand(new(rander)) l := New(strings.NewReader(("tag1 login {5}\r\nabcde pass\r\n"))) called := 0 line, literals, err := l.Read(func() error { called++; return nil }) assert.NoError(t, err) assert.Equal(t, 1, called) assert.Equal(t, "tag1 login {5}\r\n00010203-0405-4607-8809-0a0b0c0d0e0f pass\r\n", string(line)) assert.Equal(t, "abcde", string(literals["00010203-0405-4607-8809-0a0b0c0d0e0f"])) assert.Len(t, literals, 1) } func TestLinerReadTwoLiterals(t *testing.T) { uuid.SetRand(new(rander)) l := New(strings.NewReader(("tag1 login {5}\r\nabcde {4}\r\npass\r\n"))) called := 0 line, literals, err := l.Read(func() error { called++; return nil }) assert.NoError(t, err) assert.Equal(t, 2, called) assert.Equal(t, "tag1 login {5}\r\n00010203-0405-4607-8809-0a0b0c0d0e0f {4}\r\n10111213-1415-4617-9819-1a1b1c1d1e1f\r\n", string(line)) assert.Equal(t, "abcde", string(literals["00010203-0405-4607-8809-0a0b0c0d0e0f"])) assert.Equal(t, "pass", string(literals["10111213-1415-4617-9819-1a1b1c1d1e1f"])) assert.Len(t, literals, 2) } func TestLinerReadMultilineLiteral(t *testing.T) { uuid.SetRand(new(rander)) l := New(strings.NewReader(("tag1 login {15}\r\nabcde\r\nabcdefgh pass\r\n"))) called := 0 line, literals, err := l.Read(func() error { called++; return nil }) assert.NoError(t, err) assert.Equal(t, 1, called) assert.Equal(t, "tag1 login {15}\r\n00010203-0405-4607-8809-0a0b0c0d0e0f pass\r\n", string(line)) assert.Equal(t, "abcde\r\nabcdefgh", string(literals["00010203-0405-4607-8809-0a0b0c0d0e0f"])) assert.Len(t, literals, 1) } type rander byte func (r *rander) Read(p []byte) (int, error) { for i := range p { p[i] = byte(*r) (*r)++ } return len(p), nil } gluon-0.17.0/logging/000077500000000000000000000000001445200213000143405ustar00rootroot00000000000000gluon-0.17.0/logging/flags_debug.go000066400000000000000000000005241445200213000171320ustar00rootroot00000000000000//go:build debug package logging import ( "runtime" "runtime/debug" ) // StackKey refers to the stack trace. const StackKey = "stack" func getDefaultLabels(pc uintptr, file string, line int) Labels { return Labels{ FnKey: runtime.FuncForPC(pc).Name(), FileKey: file, LineKey: line, StackKey: string(debug.Stack()), } } gluon-0.17.0/logging/flags_default.go000066400000000000000000000003301445200213000174630ustar00rootroot00000000000000//go:build !debug package logging import "runtime" func getDefaultLabels(pc uintptr, file string, line int) Labels { return Labels{ FnKey: runtime.FuncForPC(pc).Name(), FileKey: file, LineKey: line, } } gluon-0.17.0/logging/logging.go000066400000000000000000000014411445200213000163150ustar00rootroot00000000000000package logging import ( "context" "fmt" "runtime" "runtime/pprof" ) type Labels map[string]any const ( // FnKey refers to the function name. FnKey = "fn" // FileKey refers to the file name. FileKey = "file" // LineKey refers to the line number. LineKey = "line" ) func DoAnnotated(ctx context.Context, fn func(context.Context), labelMap ...Labels) { pprofDo(ctx, toLabelSet(labelMap...), fn) } func toLabelSet(labelMap ...Labels) pprof.LabelSet { pc, file, line, ok := runtime.Caller(2) if !ok { panic("failed to get caller's stack frame") } var labels []string for _, labelMap := range append(labelMap, getDefaultLabels(pc, file, line)) { for key, val := range labelMap { labels = append(labels, key, fmt.Sprintf("%v", val)) } } return pprof.Labels(labels...) } gluon-0.17.0/logging/pprof_default.go000066400000000000000000000003151445200213000175200ustar00rootroot00000000000000//go:build !gluon_pprof_disabled package logging import ( "context" "runtime/pprof" ) func pprofDo(ctx context.Context, labels pprof.LabelSet, fn func(context.Context)) { pprof.Do(ctx, labels, fn) } gluon-0.17.0/logging/pprof_disabled.go000066400000000000000000000002721445200213000176450ustar00rootroot00000000000000//go:build gluon_pprof_disabled package logging import ( "context" "runtime/pprof" ) func pprofDo(ctx context.Context, labels pprof.LabelSet, fn func(context.Context)) { fn(ctx) } gluon-0.17.0/option.go000066400000000000000000000122261445200213000145540ustar00rootroot00000000000000package gluon import ( "crypto/tls" "io" "time" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" limits2 "github.com/ProtonMail/gluon/limits" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/store" "github.com/ProtonMail/gluon/version" ) // Option represents a type that can be used to configure the server. type Option interface { config(*serverBuilder) } // WithDelimiter instructs the server to use the given path delimiter instead of the default ('/'). func WithDelimiter(delimiter string) Option { return &withDelimiter{ delimiter: delimiter, } } type withDelimiter struct { delimiter string } func (opt withDelimiter) config(builder *serverBuilder) { builder.delim = opt.delimiter } // WithLoginJailTime instructs the server to use the given login jail time. func WithLoginJailTime(loginJailTime time.Duration) Option { return &withLoginJailTime{ loginJailTime: loginJailTime, } } func (opt withLoginJailTime) config(builder *serverBuilder) { builder.loginJailTime = opt.loginJailTime } type withLoginJailTime struct { loginJailTime time.Duration } // WithTLS instructs the server to use the given TLS config. func WithTLS(cfg *tls.Config) Option { return &withTLS{ cfg: cfg, } } type withTLS struct { cfg *tls.Config } func (opt withTLS) config(builder *serverBuilder) { builder.tlsConfig = opt.cfg } // WithIdleBulkTime instructs the server to use the given IDLE bulk time. func WithIdleBulkTime(idleBulkTime time.Duration) Option { return &withIdleBulkTime{ idleBulkTime: idleBulkTime, } } type withIdleBulkTime struct { idleBulkTime time.Duration } func (opt withIdleBulkTime) config(builder *serverBuilder) { builder.idleBulkTime = opt.idleBulkTime } // WithLogger instructs the server to write incoming and outgoing IMAP communication to the given io.Writers. func WithLogger(in, out io.Writer) Option { return &withLogger{ in: in, out: out, } } type withLogger struct { in, out io.Writer } func (opt withLogger) config(builder *serverBuilder) { builder.inLogger = opt.in builder.outLogger = opt.out } type withVersionInfo struct { versionInfo version.Info } func (vi *withVersionInfo) config(builder *serverBuilder) { builder.versionInfo = vi.versionInfo } func WithVersionInfo( vmajor, vminor, vpatch int, name, vendor, supportURL string, ) Option { return &withVersionInfo{ versionInfo: version.Info{ Name: name, Version: version.Version{ Major: vmajor, Minor: vminor, Patch: vpatch, }, Vendor: vendor, SupportURL: supportURL, }, } } type withCmdExecProfiler struct { builder profiling.CmdProfilerBuilder } func (c *withCmdExecProfiler) config(builder *serverBuilder) { builder.cmdExecProfBuilder = c.builder } // WithCmdProfiler allows a specific CmdProfilerBuilder to be set for the server's execution. func WithCmdProfiler(builder profiling.CmdProfilerBuilder) Option { return &withCmdExecProfiler{builder: builder} } type withStoreBuilder struct { builder store.Builder } func (w *withStoreBuilder) config(builder *serverBuilder) { builder.storeBuilder = w.builder } func WithStoreBuilder(builder store.Builder) Option { return &withStoreBuilder{builder: builder} } type withDataDir struct { path string } func (w *withDataDir) config(builder *serverBuilder) { builder.dataDir = w.path } func WithDataDir(path string) Option { return &withDataDir{path: path} } type withDatabaseDir struct { path string } func (w *withDatabaseDir) config(builder *serverBuilder) { builder.databaseDir = w.path } func WithDatabaseDir(path string) Option { return &withDatabaseDir{path: path} } type withReporter struct { reporter reporter.Reporter } func (w *withReporter) config(builder *serverBuilder) { builder.reporter = w.reporter } func WithReporter(reporter reporter.Reporter) Option { return &withReporter{reporter: reporter} } type withDisableParallelism struct{} func (withDisableParallelism) config(builder *serverBuilder) { builder.disableParallelism = true } func WithDisableParallelism() Option { return &withDisableParallelism{} } type withPanicHandler struct { panicHandler async.PanicHandler } func (opt *withPanicHandler) config(builder *serverBuilder) { builder.panicHandler = opt.panicHandler } func WithPanicHandler(panicHandler async.PanicHandler) Option { return &withPanicHandler{panicHandler} } type withIMAPLimits struct { limits limits2.IMAP } func (w withIMAPLimits) config(builder *serverBuilder) { builder.imapLimits = w.limits } func WithIMAPLimits(limits limits2.IMAP) Option { return &withIMAPLimits{ limits: limits, } } type withUIDValidityGenerator struct { generator imap.UIDValidityGenerator } func (w withUIDValidityGenerator) config(builder *serverBuilder) { builder.uidValidityGenerator = w.generator } func WithUIDValidityGenerator(generator imap.UIDValidityGenerator) Option { return &withUIDValidityGenerator{generator: generator} } type withDBClient struct { ci db.ClientInterface } func (w withDBClient) config(builder *serverBuilder) { builder.dbCI = w.ci } func WithDBClient(ci db.ClientInterface) Option { return &withDBClient{ci: ci} } gluon-0.17.0/profiling/000077500000000000000000000000001445200213000147035ustar00rootroot00000000000000gluon-0.17.0/profiling/cmd_profiler.go000066400000000000000000000055501445200213000177040ustar00rootroot00000000000000package profiling const ( CmdTypeSelect = iota CmdTypeCreate CmdTypeDelete CmdTypeRename CmdTypeSubscribe CmdTypeUnsubscribe CmdTypeList CmdTypeLSub CmdTypeStatus CmdTypeAppend CmdTypeCheck CmdTypeClose CmdTypeExpunge CmdTypeSearch CmdTypeFetch CmdTypeStore CmdTypeCopy CmdTypeNoop CmdTypeIdle CmdTypeMove CmdTypeID CmdTypeLogout CmdTypeUnselect CmdTypeLogin CmdTypeExamine CmdTypeUIDMove CmdTypeUIDCopy CmdTypeUIDStore CmdTypeUIDFetch CmdTypeUIDSearch CmdTypeTotal ) func CmdTypeToString(cmdType int) string { switch cmdType { case CmdTypeSelect: return "SELECT " case CmdTypeCreate: return "CREATE " case CmdTypeDelete: return "DELETE " case CmdTypeRename: return "RENAME " case CmdTypeSubscribe: return "SUB " case CmdTypeUnsubscribe: return "USUB " case CmdTypeList: return "LIST " case CmdTypeLSub: return "LSUB " case CmdTypeStatus: return "STATUS " case CmdTypeAppend: return "APPEND " case CmdTypeCheck: return "CHECK " case CmdTypeClose: return "CLOSE " case CmdTypeExpunge: return "EXPUNGE" case CmdTypeSearch: return "SEARCH " case CmdTypeFetch: return "FETCH " case CmdTypeStore: return "STORE " case CmdTypeCopy: return "COPY " case CmdTypeNoop: return "NOOP " case CmdTypeIdle: return "IDLE " case CmdTypeMove: return "MOVE " case CmdTypeID: return "ID " case CmdTypeLogout: return "LOGOUT " case CmdTypeUnselect: return "USELECT" case CmdTypeLogin: return "LOGIN " case CmdTypeExamine: return "EXAMINE" case CmdTypeUIDFetch: return "UFETCH " case CmdTypeUIDCopy: return "UCOPY " case CmdTypeUIDMove: return "UMOVE " case CmdTypeUIDStore: return "USTORE " case CmdTypeUIDSearch: return "USEARCH" default: return "Unknown" } } // CmdProfiler is the interface that can be used to perform measurements related to the execution // scope of incoming IMAP commands. type CmdProfiler interface { // Start will be called once the command has been received and interpreted. Start(cmdType int) // Stop will be called once the command has finished executing and all the replies sent to the client. Stop(cmdType int) } // CmdProfilerBuilder is the interface through which an instance of the CmdProfiler gets created. One of these will be // created for each connecting IMAP client. type CmdProfilerBuilder interface { // New creates a new CmdProfiler instance. New() CmdProfiler // Collect will be called when the IMAP client has disconnected/logged out. Collect(profiler CmdProfiler) } // NullCmdProfiler represents a null implementation of CmdProfiler. type NullCmdProfiler struct{} func (*NullCmdProfiler) Start(int) {} func (*NullCmdProfiler) Stop(int) {} type NullCmdExecProfilerBuilder struct{} func (*NullCmdExecProfilerBuilder) New() CmdProfiler { return &NullCmdProfiler{} } func (*NullCmdExecProfilerBuilder) Collect(CmdProfiler) {} gluon-0.17.0/profiling/context.go000066400000000000000000000010301445200213000167100ustar00rootroot00000000000000package profiling import "context" type withProfilerType struct{} var withProfilerKey withProfilerType func Start(ctx context.Context, cmdType int) { if profiler, ok := ctx.Value(withProfilerKey).(CmdProfiler); ok { profiler.Start(cmdType) } } func Stop(ctx context.Context, cmdType int) { if profiler, ok := ctx.Value(withProfilerKey).(CmdProfiler); ok { profiler.Stop(cmdType) } } func WithProfiler(ctx context.Context, profiler CmdProfiler) context.Context { return context.WithValue(ctx, withProfilerKey, profiler) } gluon-0.17.0/reporter/000077500000000000000000000000001445200213000145545ustar00rootroot00000000000000gluon-0.17.0/reporter/context.go000066400000000000000000000006601445200213000165710ustar00rootroot00000000000000package reporter import "context" type reporterKeyType struct{} var reporterKeyVal reporterKeyType func NewContextWithReporter(ctx context.Context, reporter Reporter) context.Context { return context.WithValue(ctx, reporterKeyVal, reporter) } func GetReporterFromContext(ctx context.Context) (Reporter, bool) { v := ctx.Value(reporterKeyVal) if v == nil { return nil, false } rep, ok := v.(Reporter) return rep, ok } gluon-0.17.0/reporter/mock_reporter/000077500000000000000000000000001445200213000174275ustar00rootroot00000000000000gluon-0.17.0/reporter/mock_reporter/mock_reporter.go000066400000000000000000000062171445200213000226370ustar00rootroot00000000000000// Code generated by MockGen. DO NOT EDIT. // Source: ../reporter.go // Package mock_reporter is a generated GoMock package. package mock_reporter import ( reflect "reflect" reporter "github.com/ProtonMail/gluon/reporter" gomock "github.com/golang/mock/gomock" ) // MockReporter is a mock of Reporter interface. type MockReporter struct { ctrl *gomock.Controller recorder *MockReporterMockRecorder } // MockReporterMockRecorder is the mock recorder for MockReporter. type MockReporterMockRecorder struct { mock *MockReporter } // NewMockReporter creates a new mock instance. func NewMockReporter(ctrl *gomock.Controller) *MockReporter { mock := &MockReporter{ctrl: ctrl} mock.recorder = &MockReporterMockRecorder{mock} return mock } // EXPECT returns an object that allows the caller to indicate expected use. func (m *MockReporter) EXPECT() *MockReporterMockRecorder { return m.recorder } // ReportException mocks base method. func (m *MockReporter) ReportException(arg0 any) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ReportException", arg0) ret0, _ := ret[0].(error) return ret0 } // ReportException indicates an expected call of ReportException. func (mr *MockReporterMockRecorder) ReportException(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReportException", reflect.TypeOf((*MockReporter)(nil).ReportException), arg0) } // ReportExceptionWithContext mocks base method. func (m *MockReporter) ReportExceptionWithContext(arg0 any, arg1 reporter.Context) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ReportExceptionWithContext", arg0, arg1) ret0, _ := ret[0].(error) return ret0 } // ReportExceptionWithContext indicates an expected call of ReportExceptionWithContext. func (mr *MockReporterMockRecorder) ReportExceptionWithContext(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReportExceptionWithContext", reflect.TypeOf((*MockReporter)(nil).ReportExceptionWithContext), arg0, arg1) } // ReportMessage mocks base method. func (m *MockReporter) ReportMessage(arg0 string) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ReportMessage", arg0) ret0, _ := ret[0].(error) return ret0 } // ReportMessage indicates an expected call of ReportMessage. func (mr *MockReporterMockRecorder) ReportMessage(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReportMessage", reflect.TypeOf((*MockReporter)(nil).ReportMessage), arg0) } // ReportMessageWithContext mocks base method. func (m *MockReporter) ReportMessageWithContext(arg0 string, arg1 reporter.Context) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ReportMessageWithContext", arg0, arg1) ret0, _ := ret[0].(error) return ret0 } // ReportMessageWithContext indicates an expected call of ReportMessageWithContext. func (mr *MockReporterMockRecorder) ReportMessageWithContext(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReportMessageWithContext", reflect.TypeOf((*MockReporter)(nil).ReportMessageWithContext), arg0, arg1) } gluon-0.17.0/reporter/null_reporter.go000066400000000000000000000005331445200213000200000ustar00rootroot00000000000000package reporter type NullReporter struct{} func (*NullReporter) ReportException(any) error { return nil } func (*NullReporter) ReportMessage(string) error { return nil } func (*NullReporter) ReportMessageWithContext(string, Context) error { return nil } func (*NullReporter) ReportExceptionWithContext(any, Context) error { return nil } gluon-0.17.0/reporter/reporter.go000066400000000000000000000005621445200213000167500ustar00rootroot00000000000000package reporter type Context = map[string]any // Reporter represents an external reporting tool which can be hooked into gluon to report key information and/or // unexpected behaviors. type Reporter interface { ReportException(any) error ReportMessage(string) error ReportMessageWithContext(string, Context) error ReportExceptionWithContext(any, Context) error } gluon-0.17.0/reporter/utils.go000066400000000000000000000021521445200213000162430ustar00rootroot00000000000000package reporter import ( "context" "github.com/sirupsen/logrus" ) func MessageWithContext(ctx context.Context, message string, context Context) { reporter, ok := GetReporterFromContext(ctx) if !ok { return } if err := reporter.ReportMessageWithContext(message, context); err != nil { logrus.WithError(err).Error("Failed to report message") } } func ExceptionWithContext(ctx context.Context, message string, context Context) { reporter, ok := GetReporterFromContext(ctx) if !ok { return } if err := reporter.ReportExceptionWithContext(message, context); err != nil { logrus.WithError(err).Error("Failed to report message") } } func Exception(ctx context.Context, info any) { reporter, ok := GetReporterFromContext(ctx) if !ok { return } if err := reporter.ReportException(info); err != nil { logrus.WithError(err).Error("Failed to report message") } } func Message(ctx context.Context, message string) { reporter, ok := GetReporterFromContext(ctx) if !ok { return } if err := reporter.ReportMessage(message); err != nil { logrus.WithError(err).Error("Failed to report message") } } gluon-0.17.0/rfc5322/000077500000000000000000000000001445200213000140005ustar00rootroot00000000000000gluon-0.17.0/rfc5322/address.go000066400000000000000000000316071445200213000157630ustar00rootroot00000000000000package rfc5322 import ( "net/mail" "github.com/ProtonMail/gluon/rfcparser" ) // 3.4. Address Specification func parseAddressList(p *Parser) ([]*mail.Address, error) { // address-list = (address *("," address)) / obs-addr-list // *([CFWS] ",") address *("," [address / CFWS]) // We extended this rule to allow ';' as separator var result []*mail.Address isSep := func(tokenType rfcparser.TokenType) bool { return tokenType == rfcparser.TokenTypeComma || tokenType == rfcparser.TokenTypeSemicolon } // *([CFWS] ",") for { if _, err := tryParseCFWS(p.parser); err != nil { return nil, err } if ok, err := p.parser.MatchesWith(isSep); err != nil { return nil, err } else if !ok { break } } var groupConsumedSemiColon bool // Address { addr, gConsumedSemiColon, err := parseAddress(p) if err != nil { return nil, err } groupConsumedSemiColon = gConsumedSemiColon result = append(result, addr...) } // *("," [address / CFWS]) for { if ok, err := p.parser.MatchesWith(isSep); err != nil { return nil, err } else if !ok { // see `parseAddress` comment about why this is necessary. if !groupConsumedSemiColon || p.parser.CurrentToken().TType == rfcparser.TokenTypeEOF { break } } if ok, err := tryParseCFWS(p.parser); err != nil { return nil, err } else if ok { // Only continue if the next input is EOF or comma or we can run into issues with parsing // the `',' address` rules. if p.parser.Check(rfcparser.TokenTypeEOF) || p.parser.CheckWith(isSep) { continue } } // Check there is still input to be processed before continuing. if p.parser.Check(rfcparser.TokenTypeEOF) { break } // address addr, consumedSemiColon, err := parseAddress(p) if err != nil { return nil, err } groupConsumedSemiColon = consumedSemiColon result = append(result, addr...) } return result, nil } // The boolean parameter represents whether a group consumed a ';' separator. This is necessary to disambiguate // an address list where we have the sequence ` g:
;
` since we also allow groups to have optional // `;` terminators. func parseAddress(p *Parser) ([]*mail.Address, bool, error) { // address = mailbox / group // name-addr = [display-name] angle-addr // group = display-name ":" [group-list] ";" [CFWS] // if _, err := tryParseCFWS(p.parser); err != nil { return nil, false, err } // check addr-spec standalone if p.parser.Check(rfcparser.TokenTypeLess) { addr, err := parseAngleAddr(p.parser) if err != nil { return nil, false, err } return []*mail.Address{{ Name: "", Address: addr, }}, false, nil } parserState := p.SaveState() if address, err := parseMailbox(p); err == nil { return []*mail.Address{ address, }, false, nil } p.RestoreState(parserState) group, didConsumeSemicolon, err := parseGroup(p) if err != nil { return nil, false, err } return group, didConsumeSemicolon, nil } func parseGroup(p *Parser) ([]*mail.Address, bool, error) { // nolint:dupword // group = display-name ":" [group-list] ";" [CFWS] // group-list = mailbox-list / CFWS / obs-group-list // obs-group-list = 1*([CFWS] ",") [CFWS] // // nolint:dupword // mailbox-list = (mailbox *("," mailbox)) / obs-mbox-list // obs-mbox-list = *([CFWS] ",") mailbox *("," [mailbox / CFWS]) // // This version has been relaxed so that the ';' is optional. and that a group can be wrapped in `"` hasQuotes, err := p.parser.Matches(rfcparser.TokenTypeDQuote) if err != nil { return nil, false, err } if _, err := parseDisplayName(p.parser); err != nil { return nil, false, err } if err := p.parser.Consume(rfcparser.TokenTypeColon, "expected ':' for group start"); err != nil { return nil, false, err } var didConsumeSemicolon bool var result []*mail.Address if ok, err := p.parser.Matches(rfcparser.TokenTypeSemicolon); err != nil { return nil, false, err } else if !ok { // *([CFWS] ",") for { if _, err := tryParseCFWS(p.parser); err != nil { return nil, false, err } if ok, err := p.parser.Matches(rfcparser.TokenTypeComma); err != nil { return nil, false, err } else if !ok { break } } // This section can optionally be one of the following: mailbox-list / CFWS / obs-group-list. So if // we run out of input, we see semicolon or a double quote we should skip trying to parse this bit. if !(p.parser.Check(rfcparser.TokenTypeEOF) || p.parser.Check(rfcparser.TokenTypeSemicolon) || p.parser.Check(rfcparser.TokenTypeDQuote)) { // Mailbox var parsedFirstMailbox bool { parserState := p.SaveState() mailbox, err := parseMailbox(p) if err != nil { p.RestoreState(parserState) } else { parsedFirstMailbox = true result = append(result, mailbox) } } // *("," [mailbox / CFWS]) if parsedFirstMailbox { for { if ok, err := p.parser.Matches(rfcparser.TokenTypeComma); err != nil { return nil, false, err } else if !ok { break } if ok, err := tryParseCFWS(p.parser); err != nil { return nil, false, err } else if ok { continue } // Mailbox mailbox, err := parseMailbox(p) if err != nil { return nil, false, err } result = append(result, mailbox) } } else { // If we did not parse a mailbox then we must parse CWFS if err := parseCFWS(p.parser); err != nil { return nil, false, err } } } consumedSemicolon, err := p.parser.Matches(rfcparser.TokenTypeSemicolon) if err != nil { return nil, false, err } didConsumeSemicolon = consumedSemicolon } else { didConsumeSemicolon = true } if _, err := tryParseCFWS(p.parser); err != nil { return nil, false, err } if hasQuotes { if err := p.parser.Consume(rfcparser.TokenTypeDQuote, `expected '"' for group end`); err != nil { return nil, false, err } } return result, didConsumeSemicolon, nil } func parseMailbox(p *Parser) (*mail.Address, error) { // mailbox = name-addr / addr-spec parserState := p.SaveState() if addr, err := parseNameAddr(p.parser); err == nil { return addr, nil } p.RestoreState(parserState) addr, err := parseAddrSpec(p.parser) if err != nil { return nil, err } return &mail.Address{ Address: addr, }, nil } func parseNameAddr(p *rfcparser.Parser) (*mail.Address, error) { // name-addr = [display-name] angle-addr if _, err := tryParseCFWS(p); err != nil { return nil, err } // Only has angle-addr component. if p.Check(rfcparser.TokenTypeLess) { address, err := parseAngleAddr(p) if err != nil { return nil, err } return &mail.Address{Address: address}, nil } displayName, err := parseDisplayName(p) if err != nil { return nil, err } address, err := parseAngleAddr(p) if err != nil { return nil, err } return &mail.Address{Address: address, Name: displayName}, nil } func parseAngleAddr(p *rfcparser.Parser) (string, error) { // angle-addr = [CFWS] "<" addr-spec ">" [CFWS] / // obs-angle-addr // // obs-angle-addr = [CFWS] "<" obs-route addr-spec ">" [CFWS] // // obs-route = obs-domain-list ":" // // obs-domain-list = *(CFWS / ",") "@" domain // *("," [CFWS] ["@" domain]) // // This version has been extended so that add-rspec is optional if _, err := tryParseCFWS(p); err != nil { return "", err } if err := p.Consume(rfcparser.TokenTypeLess, "expected < for angle-addr start"); err != nil { return "", err } if ok, err := p.Matches(rfcparser.TokenTypeGreater); err != nil { return "", err } else if ok { return "", nil } for { if ok, err := tryParseCFWS(p); err != nil { return "", err } else if !ok { if ok, err := p.Matches(rfcparser.TokenTypeComma); err != nil { return "", err } else if !ok { break } } } if ok, err := p.Matches(rfcparser.TokenTypeAt); err != nil { return "", err } else if ok { if _, err := parseDomain(p); err != nil { return "", err } for { if ok, err := p.Matches(rfcparser.TokenTypeComma); err != nil { return "", err } else if !ok { break } if _, err := tryParseCFWS(p); err != nil { return "", err } if ok, err := p.Matches(rfcparser.TokenTypeAt); err != nil { return "", err } else if ok { if _, err := parseDomain(p); err != nil { return "", err } } } if err := p.Consume(rfcparser.TokenTypeColon, "expected ':' for obs-route end"); err != nil { return "", err } } addr, err := parseAddrSpec(p) if err != nil { return "", err } if err := p.Consume(rfcparser.TokenTypeGreater, "expected > for angle-addr end"); err != nil { return "", err } if _, err := tryParseCFWS(p); err != nil { return "", err } return addr, nil } func parseDisplayName(p *rfcparser.Parser) (string, error) { // display-name = phrase phrase, err := parsePhrase(p) if err != nil { return "", err } return joinWithSpacingRules(phrase), nil } func parseAddrSpec(p *rfcparser.Parser) (string, error) { // addr-spec = local-part "@" domain // This version adds an option port extension : COLON ATOM localPart, err := parseLocalPart(p) if err != nil { return "", err } if err := p.Consume(rfcparser.TokenTypeAt, "expected @ after local-part"); err != nil { return "", err } domain, err := parseDomain(p) if err != nil { return "", err } if ok, err := p.Matches(rfcparser.TokenTypeColon); err != nil { return "", err } else if ok { port, err := parseAtom(p) if err != nil { return "", err } return localPart + "@" + domain + ":" + port.String.Value, nil } return localPart + "@" + domain, nil } func parseLocalPart(p *rfcparser.Parser) (string, error) { // nolint:dupword // local-part = dot-atom / quoted-string / obs-local-part // obs-local-part = word *("." word) // word = atom / quoted-string // ^ above rule can be relaxed into just the last part, dot-atom just // Local part extended var words []parserString { word, err := parseWord(p) if err != nil { return "", err } words = append(words, word) } for { if ok, err := p.Matches(rfcparser.TokenTypePeriod); err != nil { return "", err } else if !ok { break } words = append(words, parserString{ String: rfcparser.String{ Value: ".", Offset: p.PreviousToken().Offset, }, Type: parserStringTypeUnspaced, }) word, err := parseWord(p) if err != nil { return "", err } words = append(words, word) } return joinWithSpacingRules(words), nil } func parseDomain(p *rfcparser.Parser) (string, error) { // domain = dot-atom / domain-literal / obs-domain // // obs-domain = atom *("." atom) // if _, err := tryParseCFWS(p); err != nil { return "", err } if ok, err := p.Matches(rfcparser.TokenTypeLBracket); err != nil { return "", err } else if ok { return parseDomainLiteral(p) } // obs-domain can be seen as a more restrictive dot-atom so we just use that rule instead. dotAtom, err := parseDotAtom(p) if err != nil { return "", err } return dotAtom.Value, nil } func parseDomainLiteral(p *rfcparser.Parser) (string, error) { // domain-literal = [CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS] // // [CFWS] and "[" consumed before entry // result := []byte{'['} for { if _, err := tryParseFWS(p); err != nil { return "", err } if ok, err := p.MatchesWith(isDText); err != nil { return "", err } else if !ok { break } result = append(result, p.PreviousToken().Value) } if _, err := tryParseFWS(p); err != nil { return "", err } if err := p.Consume(rfcparser.TokenTypeRBracket, "expecetd ] for domain-literal end"); err != nil { return "", err } result = append(result, ']') if _, err := tryParseCFWS(p); err != nil { return "", err } return string(result), nil } func isDText(tokenType rfcparser.TokenType) bool { // dtext = %d33-90 / ; Printable US-ASCII // %d94-126 / ; characters not including // obs-dtext ; "[", "]", or "\" // // obs-dtext = obs-NO-WS-CTL / quoted-pair // <- we have not included this // if rfcparser.IsCTL(tokenType) || tokenType == rfcparser.TokenTypeLBracket || tokenType == rfcparser.TokenTypeRBracket || tokenType == rfcparser.TokenTypeBackslash || tokenType == rfcparser.TokenTypeEOF { return false } return true } func joinWithSpacingRules(v []parserString) string { result := v[0].String.Value prevStrType := v[0].Type for i := 1; i < len(v); i++ { curStrType := v[i].Type if prevStrType == parserStringTypeEncoded { if curStrType == parserStringTypeOther { result += " " } } else if prevStrType != parserStringTypeUnspaced { if curStrType != parserStringTypeUnspaced { result += " " } } prevStrType = curStrType result += v[i].String.Value } return result } gluon-0.17.0/rfc5322/address_test.go000066400000000000000000000032541445200213000170170ustar00rootroot00000000000000package rfc5322 import ( "testing" "github.com/stretchr/testify/require" ) func TestParseAddrSpec(t *testing.T) { inputs := map[string]string{ `pete(his account)@silly.test(his host)`: `pete@silly.test`, `jdoe@machine.example`: `jdoe@machine.example`, `john.q.public@example.com`: `john.q.public@example.com`, `user@example.com`: `user@example.com`, `user@[10.0.0.1]`: `user@[10.0.0.1]`, `hoÅ™ejÅ¡ek@mail.com `: `hoÅ™ejÅ¡ek@mail.com`, } for i, e := range inputs { t.Run(i, func(t *testing.T) { p := newTestRFCParser(i) v, err := parseAddrSpec(p) require.NoError(t, err) require.Equal(t, e, v) }) } } func TestParseAngleAddr(t *testing.T) { inputs := map[string]string{ ``: `pete@silly.test`, ``: `jdoe@machine.example`, ``: `john.q.public@example.com`, ``: `user@example.com`, ``: `user@[10.0.0.1]`, ``: `hoÅ™ejÅ¡ek@mail.com`, `<@foo.com:foo@bar.com>`: `foo@bar.com`, `<,@foo.com:foo@bar.com>`: `foo@bar.com`, `< @foo.com:foo@bar.com>`: `foo@bar.com`, `<@foo.com,@bar.bar:foo@bar.com>`: `foo@bar.com`, "<@foo.com,\r\n @bar.bar:foo@bar.com>": `foo@bar.com`, } for i, e := range inputs { t.Run(i, func(t *testing.T) { p := newTestRFCParser(i) v, err := parseAngleAddr(p) require.NoError(t, err) require.Equal(t, e, v) }) } } gluon-0.17.0/rfc5322/atom.go000066400000000000000000000171751445200213000153020ustar00rootroot00000000000000package rfc5322 // 3.2.4. Quoted Strings import ( "fmt" "io" "mime" "github.com/ProtonMail/gluon/rfcparser" ) func parseDotAtom(p *rfcparser.Parser) (rfcparser.String, error) { // dot-atom = [CFWS] dot-atom-text [CFWS] if _, err := tryParseCFWS(p); err != nil { return rfcparser.String{}, err } atom, err := parseDotAtomText(p) if err != nil { return rfcparser.String{}, err } if _, err := tryParseCFWS(p); err != nil { return rfcparser.String{}, err } return atom, nil } func parseDotAtomText(p *rfcparser.Parser) (rfcparser.String, error) { // dot-atom-text = 1*atext *("." 1*atext) // This version has been extended to allow for trailing '.' files. if err := p.ConsumeWith(isAText, "expected atext char for dot-atom-text"); err != nil { return rfcparser.String{}, err } atom, err := p.CollectBytesWhileMatchesWithPrevWith(isAText) if err != nil { return rfcparser.String{}, err } for { if ok, err := p.Matches(rfcparser.TokenTypePeriod); err != nil { return rfcparser.String{}, err } else if !ok { break } atom.Value = append(atom.Value, '.') if p.Check(rfcparser.TokenTypePeriod) { return rfcparser.String{}, p.MakeError("invalid token after '.'") } // Early exit to allow trailing '.' if !p.CheckWith(isAText) { break } if err := p.ConsumeWith(isAText, "expected atext char for dot-atom-text"); err != nil { return rfcparser.String{}, err } atomNext, err := p.CollectBytesWhileMatchesWithPrevWith(isAText) if err != nil { return rfcparser.String{}, err } atom.Value = append(atom.Value, atomNext.Value...) } return atom.IntoString(), nil } func parseAtom(p *rfcparser.Parser) (parserString, error) { // atom = [CFWS] 1*atext [CFWS] if _, err := tryParseCFWS(p); err != nil { return parserString{}, err } if err := p.ConsumeWith(isAText, "expected atext char for atom"); err != nil { return parserString{}, err } atom, err := p.CollectBytesWhileMatchesWithPrevWith(isAText) if err != nil { return parserString{}, err } if _, err := tryParseCFWS(p); err != nil { return parserString{}, err } return parserString{ String: atom.IntoString(), Type: parserStringTypeOther, }, nil } var CharsetReader func(charset string, input io.Reader) (io.Reader, error) func parseEncodedAtom(p *rfcparser.Parser) (parserString, error) { // encoded-word = "=?" charset "?" encoding "?" encoded-text "?=" // // charset = token ; see section 3 // // encoding = token ; see section 4 // // if _, err := tryParseCFWS(p); err != nil { return parserString{}, err } var fullWord string startOffset := p.CurrentToken().Offset if err := p.ConsumeBytesFold('=', '?'); err != nil { return parserString{}, err } fullWord += "=?" charset, err := p.CollectBytesWhileMatchesWith(isEncodedAtomToken) if err != nil { return parserString{}, err } fullWord += charset.IntoString().Value if err := p.Consume(rfcparser.TokenTypeQuestion, "expected '?' after encoding charset"); err != nil { return parserString{}, err } fullWord += "?" if err := p.Consume(rfcparser.TokenTypeChar, "expected char after '?'"); err != nil { return parserString{}, err } encoding := rfcparser.ByteToLower(p.PreviousToken().Value) if encoding != 'q' && encoding != 'b' { return parserString{}, p.MakeError("encoding should either be 'Q' or 'B'") } if err := p.Consume(rfcparser.TokenTypeQuestion, "expected '?' after encoding byte"); err != nil { return parserString{}, err } if encoding == 'b' { fullWord += "B" } else { fullWord += "Q" } fullWord += "?" encodedText, err := p.CollectBytesWhileMatchesWith(isEncodedText) if err != nil { return parserString{}, err } fullWord += encodedText.IntoString().Value if err := p.ConsumeBytesFold('?', '='); err != nil { return parserString{}, err } fullWord += "?=" if _, err := tryParseCFWS(p); err != nil { return parserString{}, err } decoder := mime.WordDecoder{CharsetReader: CharsetReader} decoded, err := decoder.Decode(fullWord) if err != nil { return parserString{}, p.MakeErrorAtOffset(fmt.Sprintf("failed to decode encoded atom: %v", err), startOffset) } return parserString{ String: rfcparser.String{Value: decoded, Offset: startOffset}, Type: parserStringTypeEncoded, }, nil } func isEncodedAtomToken(tokenType rfcparser.TokenType) bool { // token = 1* // // specials = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / " // <"> / "/" / "[" / "]" / "?" / "." / "=" if rfcparser.IsCTL(tokenType) { return false } switch tokenType { //nolint:exhaustive case rfcparser.TokenTypeEOF: fallthrough case rfcparser.TokenTypeError: fallthrough case rfcparser.TokenTypeSP: fallthrough case rfcparser.TokenTypeLParen: fallthrough case rfcparser.TokenTypeRParen: fallthrough case rfcparser.TokenTypeLess: fallthrough case rfcparser.TokenTypeGreater: fallthrough case rfcparser.TokenTypeAt: fallthrough case rfcparser.TokenTypeComma: fallthrough case rfcparser.TokenTypeSemicolon: fallthrough case rfcparser.TokenTypeColon: fallthrough case rfcparser.TokenTypeDQuote: fallthrough case rfcparser.TokenTypeSlash: fallthrough case rfcparser.TokenTypeLBracket: fallthrough case rfcparser.TokenTypeRBracket: fallthrough case rfcparser.TokenTypeQuestion: fallthrough case rfcparser.TokenTypePeriod: fallthrough case rfcparser.TokenTypeEqual: return false default: return true } } func isEncodedText(tokenType rfcparser.TokenType) bool { // encoded-text = 1* // ; (but see "Use of encoded-words in message // ; headers", section 5) // if rfcparser.IsCTL(tokenType) || tokenType == rfcparser.TokenTypeSP || tokenType == rfcparser.TokenTypeQuestion || tokenType == rfcparser.TokenTypeEOF || tokenType == rfcparser.TokenTypeError || tokenType == rfcparser.TokenTypeExtendedChar { return false } return true } func isAText(tokenType rfcparser.TokenType) bool { // atext = ALPHA / DIGIT / ; Printable US-ASCII // "!" / "#" / ; characters not including // "$" / "%" / ; specials. Used for atoms. // "&" / "'" / // "*" / "+" / // "-" / "/" / // "=" / "?" / // "^" / "_" / // "`" / "{" / // "|" / "}" / // "~" switch tokenType { //nolint:exhaustive case rfcparser.TokenTypeDigit: fallthrough case rfcparser.TokenTypeChar: fallthrough case rfcparser.TokenTypeExclamation: fallthrough case rfcparser.TokenTypeHash: fallthrough case rfcparser.TokenTypeDollar: fallthrough case rfcparser.TokenTypePercent: fallthrough case rfcparser.TokenTypeAmpersand: fallthrough case rfcparser.TokenTypeSQuote: fallthrough case rfcparser.TokenTypeAsterisk: fallthrough case rfcparser.TokenTypePlus: fallthrough case rfcparser.TokenTypeMinus: fallthrough case rfcparser.TokenTypeSlash: fallthrough case rfcparser.TokenTypeEqual: fallthrough case rfcparser.TokenTypeQuestion: fallthrough case rfcparser.TokenTypeCaret: fallthrough case rfcparser.TokenTypeUnderscore: fallthrough case rfcparser.TokenTyeBacktick: fallthrough case rfcparser.TokenTypeLCurly: fallthrough case rfcparser.TokenTypeRCurly: fallthrough case rfcparser.TokenTypePipe: fallthrough case rfcparser.TokenTypeExtendedChar: // RFC6532 fallthrough case rfcparser.TokenTypeTilde: return true default: return false } } gluon-0.17.0/rfc5322/atom_test.go000066400000000000000000000015241445200213000163300ustar00rootroot00000000000000package rfc5322 import ( "testing" "github.com/stretchr/testify/require" ) func TestParseDotAtom(t *testing.T) { inputs := map[string]string{ "foobar.!#$%'*+-=?^~_{}`|/": "foobar.!#$%'*+-=?^~_{}`|/", " f.b ": "f.b", " \r\n f.b": "f.b", " \r\n f.b \r\n ": "f.b", } for i, e := range inputs { p := newTestRFCParser(i) v, err := parseDotAtom(p) require.NoError(t, err) require.Equal(t, e, v.Value) } } func TestParseAtom(t *testing.T) { inputs := map[string]string{ "foobar!#$%'*+-=?^~_{}`|/": "foobar!#$%'*+-=?^~_{}`|/", " fb ": "fb", " \r\n fb": "fb", " \r\n fb \r\n ": "fb", } for i, e := range inputs { p := newTestRFCParser(i) v, err := parseDotAtom(p) require.NoError(t, err) require.Equal(t, e, v.Value) } } gluon-0.17.0/rfc5322/backtracing_scanner.go000066400000000000000000000032401445200213000203070ustar00rootroot00000000000000package rfc5322 import ( "bytes" "io" ) type BacktrackingByteScanner struct { data []byte offset int } func NewBacktrackingByteScanner(data []byte) *BacktrackingByteScanner { return &BacktrackingByteScanner{ data: data, } } type BacktrackingByteScannerScope struct { offset int } func (bs *BacktrackingByteScanner) Read(dst []byte) (int, error) { thisLen := len(bs.data) if bs.offset >= thisLen { return 0, io.EOF } dstLen := len(dst) if bs.offset+dstLen >= thisLen { bytesRead := thisLen - bs.offset copy(dst, bs.data[bs.offset:]) return bytesRead, nil } nextOffset := bs.offset + dstLen copy(dst, bs.data[bs.offset:nextOffset]) bs.offset = nextOffset return dstLen, nil } func (bs *BacktrackingByteScanner) ReadByte() (byte, error) { if bs.offset >= len(bs.data) { return 0, io.EOF } b := bs.data[bs.offset] bs.offset++ return b, nil } func (bs *BacktrackingByteScanner) ReadBytes(delim byte) ([]byte, error) { if bs.offset >= len(bs.data) { return nil, io.EOF } var result []byte index := bytes.IndexByte(bs.data[bs.offset:], delim) if index < 0 { copy(result, bs.data[bs.offset:]) bs.offset = len(bs.data) return result, nil } nextOffset := bs.offset + index + 1 if nextOffset >= len(bs.data) { copy(result, bs.data[bs.offset:]) bs.offset = len(bs.data) } else { copy(result, bs.data[bs.offset:nextOffset]) bs.offset = nextOffset } return result, nil } func (bs *BacktrackingByteScanner) SaveState() BacktrackingByteScannerScope { return BacktrackingByteScannerScope{offset: bs.offset} } func (bs *BacktrackingByteScanner) RestoreState(scope BacktrackingByteScannerScope) { bs.offset = scope.offset } gluon-0.17.0/rfc5322/cfws.go000066400000000000000000000156321445200213000153000ustar00rootroot00000000000000package rfc5322 import "github.com/ProtonMail/gluon/rfcparser" // Section 3.2.2 White space and Comments func tryParseCFWS(p *rfcparser.Parser) (bool, error) { if !p.CheckWith(func(tokenType rfcparser.TokenType) bool { return isWSP(tokenType) || tokenType == rfcparser.TokenTypeCR || tokenType == rfcparser.TokenTypeLParen }) { return false, nil } return true, parseCFWS(p) } func parseCFWS(p *rfcparser.Parser) error { // CFWS = (1*([FWS] comment) [FWS]) / FWS parsedFirstFWS, err := tryParseFWS(p) if err != nil { return err } // Handle case where it can just be FWS without comment if !p.Check(rfcparser.TokenTypeLParen) { if !parsedFirstFWS { return p.MakeError("expected FWS or comment for CFWS") } return nil } if err := parseComment(p); err != nil { return err } // Read remaining [FWS] comment for { if _, err := tryParseFWS(p); err != nil { return err } if !p.Check(rfcparser.TokenTypeLParen) { break } if err := parseComment(p); err != nil { return err } } if _, err := tryParseFWS(p); err != nil { return err } return nil } func tryParseFWS(p *rfcparser.Parser) (bool, error) { if !p.CheckWith(func(tokenType rfcparser.TokenType) bool { return isWSP(tokenType) || tokenType == rfcparser.TokenTypeCR }) { return false, nil } return true, parseFWS(p) } func parseFWS(p *rfcparser.Parser) error { // FWS = ([*WSP CRLF] 1*WSP) / obs-FWS // ; Folding white space // obs-FWS = 1*WSP *(CRLF 1*WSP) // // Parse 0 or more WSP for { if ok, err := p.MatchesWith(isWSP); err != nil { return err } else if !ok { break } } if !p.Check(rfcparser.TokenTypeCR) { // Early exit. return nil } if err := p.ConsumeNewLine(); err != nil { return err } // Parse one or many WSP. if err := p.ConsumeWith(isWSP, "expected WSP after CRLF"); err != nil { return err } for { if ok, err := p.MatchesWith(isWSP); err != nil { return err } else if !ok { break } } // Handle obs-FWS case where there can be multiple repeating loops for { if !p.Check(rfcparser.TokenTypeCR) { break } if err := p.ConsumeNewLine(); err != nil { return err } // Parse one or many WSP. if err := p.ConsumeWith(isWSP, "expected WSP after CRLF"); err != nil { return err } for { if ok, err := p.MatchesWith(isWSP); err != nil { return err } else if !ok { break } } } return nil } func parseCContent(p *rfcparser.Parser) error { if ok, err := p.MatchesWith(isCText); err != nil { return err } else if ok { return nil } if _, ok, err := tryParseQuotedPair(p); err != nil { return err } else if ok { return nil } if p.Check(rfcparser.TokenTypeLParen) { return parseComment(p) } return p.MakeError("unexpected ccontent token") } func parseComment(p *rfcparser.Parser) error { if err := p.Consume(rfcparser.TokenTypeLParen, "expected ( for comment start"); err != nil { return err } for { if _, err := tryParseFWS(p); err != nil { return err } if !p.CheckWith(func(tokenType rfcparser.TokenType) bool { return isCText(tokenType) || tokenType == rfcparser.TokenTypeBackslash || tokenType == rfcparser.TokenTypeLParen }) { break } if err := parseCContent(p); err != nil { return err } } if _, err := tryParseFWS(p); err != nil { return err } if err := p.Consume(rfcparser.TokenTypeRParen, "expected ) for comment end"); err != nil { return err } return nil } func tryParseQuotedPair(p *rfcparser.Parser) (byte, bool, error) { if !p.Check(rfcparser.TokenTypeBackslash) { return 0, false, nil } b, err := parseQuotedPair(p) if err != nil { return 0, false, err } return b, true, nil } func parseQuotedPair(p *rfcparser.Parser) (byte, error) { // quoted-pair = ("\" (VCHAR / WSP)) / obs-qp // // obs-qp = "\" (%d0 / obs-NO-WS-CTL / LF / CR) // if err := p.Consume(rfcparser.TokenTypeBackslash, "expected \\ for quoted pair start"); err != nil { return 0, err } if ok, err := p.MatchesWith(isVChar); err != nil { return 0, err } else if ok { return p.PreviousToken().Value, nil } if ok, err := p.MatchesWith(isWSP); err != nil { return 0, err } else if ok { return p.PreviousToken().Value, nil } if ok, err := p.MatchesWith(func(tokenType rfcparser.TokenType) bool { return isObsNoWSCTL(tokenType) || tokenType == rfcparser.TokenTypeCR || tokenType == rfcparser.TokenTypeLF || tokenType == rfcparser.TokenTypeZero }); err != nil { return 0, err } else if ok { return p.PreviousToken().Value, nil } return 0, p.MakeError("unexpected character for quoted pair") } func isWSP(tokenType rfcparser.TokenType) bool { return tokenType == rfcparser.TokenTypeSP || tokenType == rfcparser.TokenTypeTab } func isCText(tokenType rfcparser.TokenType) bool { // ctext = %d33-39 / ; Printable US-ASCII // %d42-91 / ; characters not including // %d93-126 / ; "(", ")", or "\" // obs-ctext // // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control // %d11 / ; characters that do not // %d12 / ; include the carriage // %d14-31 / ; return, line feed, and // %d127 ; white space characters // // obs-ctext = obs-NO-WS-CTL switch tokenType { // nolint:exhaustive case rfcparser.TokenTypeEOF: fallthrough case rfcparser.TokenTypeError: fallthrough case rfcparser.TokenTypeLParen: fallthrough case rfcparser.TokenTypeRParen: fallthrough case rfcparser.TokenTypeCR: fallthrough case rfcparser.TokenTypeTab: fallthrough case rfcparser.TokenTypeLF: fallthrough case rfcparser.TokenTypeSP: fallthrough case rfcparser.TokenTypeBackslash: return false default: return true } } func isObsNoWSCTL(tokenType rfcparser.TokenType) bool { // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control // %d11 / ; characters that do not // %d12 / ; include the carriage // %d14-31 / ; return, line feed, and // %d127 ; white space characters switch tokenType { // nolint:exhaustive case rfcparser.TokenTypeEOF: fallthrough case rfcparser.TokenTypeError: fallthrough case rfcparser.TokenTypeCR: fallthrough case rfcparser.TokenTypeTab: fallthrough case rfcparser.TokenTypeLF: fallthrough case rfcparser.TokenTypeSP: return false default: return rfcparser.IsCTL(tokenType) || tokenType == rfcparser.TokenTypeDelete } } func isVChar(tokenType rfcparser.TokenType) bool { // VChar %x21-7E if rfcparser.IsCTL(tokenType) || tokenType == rfcparser.TokenTypeDelete || tokenType == rfcparser.TokenTypeError || tokenType == rfcparser.TokenTypeEOF { return false } return true } gluon-0.17.0/rfc5322/cfws_test.go000066400000000000000000000017741445200213000163410ustar00rootroot00000000000000package rfc5322 import ( "testing" "github.com/stretchr/testify/require" ) func TestParseFWS(t *testing.T) { inputs := []string{ " \t ", "\r\n\t", " \r\n\t", " \r\n \r\n \r\n\t", " \t\r\n ", } for _, i := range inputs { p := newTestRFCParser(i) err := parseFWS(p) require.NoError(t, err) } } func TestParserComment(t *testing.T) { inputs := []string{ "(my comment here)", "(my comment here )", "( my comment here)", "( my comment here )", "(my\r\n comment here)", "(my\r\n (comment) here)", "(\\my\r\n (comment) here)", "(" + string([]byte{0x7F, 0x8}) + ")", } for _, i := range inputs { p := newTestRFCParser(i) err := parseComment(p) require.NoError(t, err) } } func TestParserCFWS(t *testing.T) { inputs := []string{ " ", "(my comment here)", " (my comment here) ", " \r\n (my comment here) ", " \r\n \r\n (my comment here) \r\n ", } for _, i := range inputs { p := newTestRFCParser(i) err := parseCFWS(p) require.NoError(t, err) } } gluon-0.17.0/rfc5322/date_time.go000066400000000000000000000177721445200213000163000ustar00rootroot00000000000000package rfc5322 import ( "fmt" "time" "github.com/ProtonMail/gluon/rfcparser" ) func parseDTDateTime(p *rfcparser.Parser) (time.Time, error) { // date-time = [ day-of-week "," ] date time [CFWS] if _, err := tryParseCFWS(p); err != nil { return time.Time{}, err } if p.Check(rfcparser.TokenTypeChar) { if err := parseDTDayOfWeek(p); err != nil { return time.Time{}, err } if err := p.Consume(rfcparser.TokenTypeComma, "expected ',' after day of the week"); err != nil { return time.Time{}, err } } year, month, day, err := parseDTDate(p) if err != nil { return time.Time{}, err } hour, min, sec, zone, err := parseDTTime(p) if err != nil { return time.Time{}, err } if _, err := tryParseCFWS(p); err != nil { return time.Time{}, err } return time.Date(year, month, day, hour, min, sec, 0, zone), nil } func parseDTDayOfWeek(p *rfcparser.Parser) error { // nolint:dupword // day-of-week = ([FWS] day-name) / obs-day-of-week // obs-day-of-week = [CFWS] day-name [CFWS] // if _, err := tryParseCFWS(p); err != nil { return err } dayBytes, err := p.CollectBytesWhileMatches(rfcparser.TokenTypeChar) if err != nil { return err } dayStr := dayBytes.IntoString().ToLower() _, ok := dateDaySet[dayStr.Value] if !ok { return p.MakeErrorAtOffset(fmt.Sprintf("invalid day name '%v'", dayStr.Value), dayBytes.Offset) } if _, err := tryParseCFWS(p); err != nil { return err } return nil } // Return (year, month, day). func parseDTDate(p *rfcparser.Parser) (int, time.Month, int, error) { day, err := parseDTDay(p) if err != nil { return 0, 0, 0, err } month, err := parseDTMonth(p) if err != nil { return 0, 0, 0, err } year, err := parseDTYear(p) if err != nil { return 0, 0, 0, err } return year, month, day, nil } func parseDTDay(p *rfcparser.Parser) (int, error) { // day = ([FWS] 1*2DIGIT FWS) / obs-day // // obs-day = [CFWS] 1*2DIGIT [CFWS] // if _, err := tryParseCFWS(p); err != nil { return 0, err } if err := p.Consume(rfcparser.TokenTypeDigit, "expected digit for day value"); err != nil { return 0, err } day := rfcparser.ByteToInt(p.PreviousToken().Value) if ok, err := p.Matches(rfcparser.TokenTypeDigit); err != nil { return 0, err } else if ok { day *= 10 day += rfcparser.ByteToInt(p.PreviousToken().Value) } if _, err := tryParseCFWS(p); err != nil { return 0, err } return day, nil } func parseDTMonth(p *rfcparser.Parser) (time.Month, error) { // month = "Jan" / "Feb" / "Mar" / "Apr" / // "May" / "Jun" / "Jul" / "Aug" / // "Sep" / "Oct" / "Nov" / "Dec" // month := make([]byte, 3) for i := 0; i < 3; i++ { if err := p.Consume(rfcparser.TokenTypeChar, "unexpected character for date month"); err != nil { return 0, err } month[i] = p.PreviousToken().Value } v, ok := dateMonthToTimeMonth[string(month)] if !ok { return 0, p.MakeError(fmt.Sprintf("invalid date month '%v'", string(month))) } return v, nil } func parseDTYear(p *rfcparser.Parser) (int, error) { // year = (FWS 4*DIGIT FWS) / obs-year // // obs-year = [CFWS] 2*DIGIT [CFWS] // if _, err := tryParseCFWS(p); err != nil { return 0, err } year, err := p.ParseNumberN(2) if err != nil { return 0, err } if p.Check(rfcparser.TokenTypeDigit) { yearPart2, err := p.ParseNumberN(2) if err != nil { return 0, err } year *= 100 year += yearPart2 } else { if year > time.Now().Year()%100 { year += 1900 } else { year += 2000 } } if _, err := tryParseCFWS(p); err != nil { return 0, err } return year, nil } func parseDTTime(p *rfcparser.Parser) (int, int, int, *time.Location, error) { // time = time-of-day zone // hour, min, sec, err := parseDTTimeOfDay(p) if err != nil { return 0, 0, 0, nil, err } loc, err := parseDTZone(p) if err != nil { return 0, 0, 0, nil, err } return hour, min, sec, loc, nil } func parseDTTimeOfDay(p *rfcparser.Parser) (int, int, int, error) { // time-of-day = hour ":" minute [ ":" second ] hour, err := parseDTHour(p) if err != nil { return 0, 0, 0, err } if err := p.Consume(rfcparser.TokenTypeColon, "expected ':' after hour"); err != nil { return 0, 0, 0, err } min, err := parseDTMin(p) if err != nil { return 0, 0, 0, err } var sec int if ok, err := p.Matches(rfcparser.TokenTypeColon); err != nil { return 0, 0, 0, err } else if ok { s, err := parseDTSecond(p) if err != nil { return 0, 0, 0, err } sec = s } return hour, min, sec, nil } func parseDTHour(p *rfcparser.Parser) (int, error) { return parseDT2Digit(p) } func parseDTMin(p *rfcparser.Parser) (int, error) { return parseDT2Digit(p) } func parseDTSecond(p *rfcparser.Parser) (int, error) { return parseDT2Digit(p) } func parseDT2Digit(p *rfcparser.Parser) (int, error) { // 2digit = 2DIGIT / obs-second // // obs-2digit = [CFWS] 2DIGIT [CFWS] // if _, err := tryParseCFWS(p); err != nil { return 0, err } num, err := p.ParseNumberN(2) if err != nil { return 0, err } if _, err := tryParseCFWS(p); err != nil { return 0, err } return num, nil } func parseDTZone(p *rfcparser.Parser) (*time.Location, error) { // zone = (FWS ( "+" / "-" ) 4DIGIT) / obs-zone // // obs-zone = "UT" / "GMT" / ; Universal Time // ; North American UT // ; offsets // "EST" / "EDT" / ; Eastern: - 5/ - 4 // "CST" / "CDT" / ; Central: - 6/ - 5 // "MST" / "MDT" / ; Mountain: - 7/ - 6 // "PST" / "PDT" / ; Pacific: - 8/ - 7 // ; if _, err := tryParseCFWS(p); err != nil { return nil, err } if !(p.Check(rfcparser.TokenTypeDigit) || p.Check(rfcparser.TokenTypeMinus) || p.Check(rfcparser.TokenTypePlus) || p.Check(rfcparser.TokenTypeChar)) { return time.UTC, nil } multiplier := 1 if ok, err := p.Matches(rfcparser.TokenTypePlus); err != nil { return nil, err } else if !ok { if ok, err := p.Matches(rfcparser.TokenTypeMinus); err != nil { return nil, err } else if ok { multiplier = -1 } else if !(p.Check(rfcparser.TokenTypeDigit) || p.Check(rfcparser.TokenTypeChar)) { return nil, p.MakeError("expected either '+' or '-' on time zone start") } } // New format. if p.Check(rfcparser.TokenTypeDigit) { zoneHour, err := p.ParseNumberN(2) if err != nil { return nil, err } zoneMinute, err := p.ParseNumberN(2) if err != nil { return nil, err } zone := (zoneHour*3600 + zoneMinute*60) * multiplier return time.FixedZone("zone", zone), nil } // Old Format value, err := p.CollectBytesWhileMatches(rfcparser.TokenTypeChar) if err != nil { return nil, err } valueStr := value.IntoString().ToLower() loc, ok := obsZoneToLocation[valueStr.Value] if !ok { return nil, p.MakeErrorAtOffset(fmt.Sprintf("unknown time zone '%v'", valueStr), value.Offset) } if _, err := tryParseCFWS(p); err != nil { return nil, err } return loc, nil } var obsZoneToLocation = map[string]*time.Location{ "ut": time.FixedZone("ut", 0), "gmt": time.FixedZone("gmt", 0), "utc": time.FixedZone("utc", 0), "est": time.FixedZone("est", -5*60*60), "edt": time.FixedZone("edt", -4*60*60), "cst": time.FixedZone("cst", -6*60*60), "cdt": time.FixedZone("cdt", -5*60*60), "mst": time.FixedZone("mst", -7*60*60), "mdt": time.FixedZone("mdt", -6*60*60), "pst": time.FixedZone("pst", -8*60*60), "pdt": time.FixedZone("pdt", -7*60*60), } var dateMonthToTimeMonth = map[string]time.Month{ "Jan": time.January, "Feb": time.February, "Mar": time.March, "Apr": time.April, "May": time.May, "Jun": time.June, "Jul": time.July, "Aug": time.August, "Sep": time.September, "Oct": time.October, "Nov": time.November, "Dec": time.December, } var dateDaySet = map[string]struct{}{ "mon": {}, "tue": {}, "wed": {}, "thu": {}, "fri": {}, "sat": {}, "sun": {}, } gluon-0.17.0/rfc5322/date_time_test.go000066400000000000000000000117061445200213000173260ustar00rootroot00000000000000package rfc5322 import ( "testing" "time" "github.com/stretchr/testify/assert" ) func TestParseDateTime(t *testing.T) { tests := []struct { input string want string }{ { input: `Fri, 21 Nov 1997 09:55:06`, want: `1997-11-21T09:55:06Z`, }, { input: `Fri, 21 Nov 1997 09:55:06 -0600`, want: `1997-11-21T09:55:06-06:00`, }, { input: `Tue, 1 Jul 2003 10:52:37 +0200`, want: `2003-07-01T10:52:37+02:00`, }, { input: `Thu, 13 Feb 1969 23:32:54 -0330`, want: `1969-02-13T23:32:54-03:30`, }, { input: "Thu, 13 Feb 1969 23:32 -0330 (Newfoundland Time)", want: `1969-02-13T23:32:00-03:30`, }, { input: `2 Jan 2006 15:04:05 -0700`, want: `2006-01-02T15:04:05-07:00`, }, { input: `2 Jan 2006 15:04:05 MST`, want: `2006-01-02T15:04:05-07:00`, }, { input: `2 Jan 2006 15:04 -0700`, want: `2006-01-02T15:04:00-07:00`, }, { input: `2 Jan 2006 15:04 MST`, want: `2006-01-02T15:04:00-07:00`, }, { input: `2 Jan 06 15:04:05 -0700`, want: `2006-01-02T15:04:05-07:00`, }, { input: `2 Jan 06 15:04:05 MST`, want: `2006-01-02T15:04:05-07:00`, }, { input: `2 Jan 06 15:04 -0700`, want: `2006-01-02T15:04:00-07:00`, }, { input: `2 Jan 06 15:04 MST`, want: `2006-01-02T15:04:00-07:00`, }, { input: `02 Jan 2006 15:04:05 -0700`, want: `2006-01-02T15:04:05-07:00`, }, { input: `02 Jan 2006 15:04:05 MST`, want: `2006-01-02T15:04:05-07:00`, }, { input: `02 Jan 2006 15:04 -0700`, want: `2006-01-02T15:04:00-07:00`, }, { input: `02 Jan 2006 15:04 MST`, want: `2006-01-02T15:04:00-07:00`, }, { input: `02 Jan 06 15:04:05 -0700`, want: `2006-01-02T15:04:05-07:00`, }, { input: `02 Jan 06 15:04:05 MST`, want: `2006-01-02T15:04:05-07:00`, }, { input: `02 Jan 06 15:04 -0700`, want: `2006-01-02T15:04:00-07:00`, }, { input: `02 Jan 06 15:04 MST`, want: `2006-01-02T15:04:00-07:00`, }, { input: `Mon, 2 Jan 2006 15:04:05 -0700`, want: `2006-01-02T15:04:05-07:00`, }, { input: `Mon, 2 Jan 2006 15:04:05 MST`, want: `2006-01-02T15:04:05-07:00`, }, { input: `Mon, 2 Jan 2006 15:04 -0700`, want: `2006-01-02T15:04:00-07:00`, }, { input: `Mon, 2 Jan 2006 15:04 MST`, want: `2006-01-02T15:04:00-07:00`, }, { input: `Mon, 2 Jan 06 15:04:05 -0700`, want: `2006-01-02T15:04:05-07:00`, }, { input: `Mon, 2 Jan 06 15:04:05 MST`, want: `2006-01-02T15:04:05-07:00`, }, { input: `Mon, 2 Jan 06 15:04 -0700`, want: `2006-01-02T15:04:00-07:00`, }, { input: `Mon, 2 Jan 06 15:04 MST`, want: `2006-01-02T15:04:00-07:00`, }, { input: `Mon, 02 Jan 2006 15:04:05 -0700`, want: `2006-01-02T15:04:05-07:00`, }, { input: `Mon, 02 Jan 2006 15:04:05 MST`, want: `2006-01-02T15:04:05-07:00`, }, { input: `Mon, 02 Jan 2006 15:04 -0700`, want: `2006-01-02T15:04:00-07:00`, }, { input: `Mon, 02 Jan 2006 15:04 MST`, want: `2006-01-02T15:04:00-07:00`, }, { input: `Mon, 02 Jan 06 15:04:05 -0700`, want: `2006-01-02T15:04:05-07:00`, }, { input: `Mon, 02 Jan 06 15:04:05 MST`, want: `2006-01-02T15:04:05-07:00`, }, { input: `Mon, 02 Jan 06 15:04 -0700`, want: `2006-01-02T15:04:00-07:00`, }, { input: `Mon, 02 Jan 06 15:04 MST`, want: `2006-01-02T15:04:00-07:00`, }, } for _, test := range tests { test := test t.Run(test.input, func(t *testing.T) { got, err := ParseDateTime(test.input) assert.NoError(t, err) assert.Equal(t, test.want, got.Format(time.RFC3339)) }) } } func TestParseDateTimeObsolete(t *testing.T) { tests := []struct { input string want string }{ { input: `21 Nov 97 09:55:06 GMT`, want: `1997-11-21T09:55:06Z`, }, { input: `Wed, 01 Jan 2020 12:00:00 UTC`, want: `2020-01-01T12:00:00Z`, }, { input: `Wed, 01 Jan 2020 13:00:00 UTC`, want: `2020-01-01T13:00:00Z`, }, { input: `Wed, 01 Jan 2020 12:30:00 UTC`, want: `2020-01-01T12:30:00Z`, }, } for _, test := range tests { test := test t.Run(test.input, func(t *testing.T) { got, err := ParseDateTime(test.input) assert.NoError(t, err) assert.Equal(t, test.want, got.Format(time.RFC3339)) }) } } func TestParseDateTimeRelaxed(t *testing.T) { tests := []struct { input string want string }{ { input: `Mon, 28 Jan 2019 20:59:01 0000`, want: `2019-01-28T20:59:01Z`, }, { input: `Mon, 25 Sep 2017 5:25:40 +0200`, want: `2017-09-25T05:25:40+02:00`, }, } for _, test := range tests { test := test t.Run(test.input, func(t *testing.T) { got, err := ParseDateTime(test.input) assert.NoError(t, err) assert.Equal(t, test.want, got.Format(time.RFC3339)) }) } } func TestParseDateTimeRejected(t *testing.T) { tests := []string{ `Mon, 25 Sep 2017 5:25:40 +02`, } for _, test := range tests { test := test t.Run(test, func(t *testing.T) { _, err := ParseDateTime(test) assert.Error(t, err) }) } } gluon-0.17.0/rfc5322/miscelleaneous.go000066400000000000000000000032121445200213000173350ustar00rootroot00000000000000package rfc5322 import ( "github.com/ProtonMail/gluon/rfcparser" ) // 3.2.5. Miscellaneous Tokens func parseWord(p *rfcparser.Parser) (parserString, error) { // word = atom / quoted-string if _, err := tryParseCFWS(p); err != nil { return parserString{}, err } if p.Check(rfcparser.TokenTypeEqual) { return parseEncodedAtom(p) } if p.Check(rfcparser.TokenTypeDQuote) { return parseQuotedString(p) } result, err := parseAtom(p) if err != nil { return parserString{}, err } return result, nil } func parsePhrase(p *rfcparser.Parser) ([]parserString, error) { // nolint:dupword // phrase = 1*word / obs-phrase // obs-phrase = word *(word / "." / CFWS) // This version has been extended to allow '@' to appear in obs-phrase word, err := parseWord(p) if err != nil { return nil, err } var result = []parserString{word} isSep := func(tokenType rfcparser.TokenType) bool { return tokenType == rfcparser.TokenTypePeriod || tokenType == rfcparser.TokenTypeAt } for { // check period case if ok, err := p.MatchesWith(isSep); err != nil { return nil, err } else if ok { prevToken := p.PreviousToken() result = append(result, parserString{ String: rfcparser.String{ Value: string(prevToken.Value), Offset: prevToken.Offset, }, Type: parserStringTypeUnspaced, }) continue } if _, err := tryParseCFWS(p); err != nil { return nil, err } if !(p.CheckWith(isAText) || p.Check(rfcparser.TokenTypeDQuote)) { break } nextWord, err := parseWord(p) if err != nil { return nil, err } result = append(result, nextWord) } return result, nil } gluon-0.17.0/rfc5322/miscelleaneous_test.go000066400000000000000000000017271445200213000204050ustar00rootroot00000000000000package rfc5322 import ( "testing" "github.com/bradenaw/juniper/xslices" "github.com/stretchr/testify/require" ) func TestParseWord(t *testing.T) { inputs := map[string]string{ `"f\".c"`: "f\".c", "\" \r\n f\\\".c\r\n \"": " f\".c ", ` " foo bar derer " `: " foo bar derer ", `foo`: "foo", } for i, e := range inputs { p := newTestRFCParser(i) v, err := parseWord(p) require.NoError(t, err) require.Equal(t, e, v.String.Value) } } func TestParsePhrase(t *testing.T) { inputs := map[string][]string{ `foo "quoted"`: {"foo", "quoted"}, `"f\".c" "quoted"`: {"f\".c", "quoted"}, `foo bar`: {"foo", "bar"}, `foo.bar`: {"foo", ".", "bar"}, `foo . bar`: {"foo", ".", "bar"}, } for i, e := range inputs { p := newTestRFCParser(i) v, err := parsePhrase(p) require.NoError(t, err) require.Equal(t, e, xslices.Map(v, func(v parserString) string { return v.String.Value })) } } gluon-0.17.0/rfc5322/parser.go000066400000000000000000000040131445200213000156210ustar00rootroot00000000000000package rfc5322 import ( "net/mail" "time" "github.com/ProtonMail/gluon/rfcparser" ) type Parser struct { source *BacktrackingByteScanner scanner *rfcparser.Scanner parser *rfcparser.Parser } type parserStringType int const ( parserStringTypeOther parserStringType = iota parserStringTypeUnspaced parserStringTypeEncoded ) type parserString struct { String rfcparser.String Type parserStringType } func ParseAddress(input string) ([]*mail.Address, error) { if len(input) == 0 { return nil, nil } source := NewBacktrackingByteScanner([]byte(input)) scanner := rfcparser.NewScannerWithReader(source) parser := rfcparser.NewParser(scanner) p := Parser{ source: source, scanner: scanner, parser: parser, } if err := p.parser.Advance(); err != nil { return nil, err } addr, _, err := parseAddress(&p) return addr, err } func ParseAddressList(input string) ([]*mail.Address, error) { if len(input) == 0 { return nil, nil } source := NewBacktrackingByteScanner([]byte(input)) scanner := rfcparser.NewScannerWithReader(source) parser := rfcparser.NewParser(scanner) p := Parser{ source: source, scanner: scanner, parser: parser, } if err := p.parser.Advance(); err != nil { return nil, err } return parseAddressList(&p) } func ParseDateTime(input string) (time.Time, error) { source := NewBacktrackingByteScanner([]byte(input)) scanner := rfcparser.NewScannerWithReader(source) parser := rfcparser.NewParser(scanner) p := Parser{ source: source, scanner: scanner, parser: parser, } if err := p.parser.Advance(); err != nil { return time.Time{}, err } return parseDTDateTime(p.parser) } type ParserState struct { scanner BacktrackingByteScannerScope parser rfcparser.ParserState } func (p *Parser) SaveState() ParserState { scannerScope := p.source.SaveState() return ParserState{ scanner: scannerScope, parser: p.parser.SaveState(), } } func (p *Parser) RestoreState(s ParserState) { p.source.RestoreState(s.scanner) p.parser.RestoreState(s.parser) } gluon-0.17.0/rfc5322/parser_test.go000066400000000000000000000456141445200213000166740ustar00rootroot00000000000000package rfc5322 import ( "bytes" "net/mail" "testing" "github.com/ProtonMail/gluon/rfcparser" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func newTestRFCParser(s string) *rfcparser.Parser { p := rfcparser.NewParser(rfcparser.NewScanner(bytes.NewReader([]byte(s)))) if p.Advance() != nil { panic("failed to advance parser") } return p } func TestParseAddress(t *testing.T) { tests := []struct { input string addrs []*mail.Address }{ { input: `user@example.com`, addrs: []*mail.Address{{ Address: `user@example.com`, }}, }, { input: `John Doe `, addrs: []*mail.Address{{ Name: `John Doe`, Address: `jdoe@machine.example`, }}, }, { input: `Mary Smith `, addrs: []*mail.Address{{ Name: `Mary Smith`, Address: `mary@example.net`, }}, }, { input: `"Joe Q. Public" `, addrs: []*mail.Address{{ Name: `Joe Q. Public`, Address: `john.q.public@example.com`, }}, }, { input: `Mary Smith `, addrs: []*mail.Address{{ Name: `Mary Smith`, Address: `mary@x.test`, }}, }, { input: `jdoe@example.org`, addrs: []*mail.Address{{ Address: `jdoe@example.org`, }}, }, { input: `Who? `, addrs: []*mail.Address{{ Name: `Who?`, Address: `one@y.test`, }}, }, { input: ``, addrs: []*mail.Address{{ Address: `boss@nil.test`, }}, }, { input: `"Giant; \"Big\" Box" `, addrs: []*mail.Address{{ Name: `Giant; "Big" Box`, Address: `sysservices@example.net`, }}, }, { input: `Pete `, addrs: []*mail.Address{{ Name: `Pete`, Address: `pete@silly.example`, }}, }, { input: `"Mary Smith: Personal Account" `, addrs: []*mail.Address{{ Name: `Mary Smith: Personal Account`, Address: `smith@home.example`, }}, }, { input: `Pete(A nice \) chap) `, addrs: []*mail.Address{{ Name: `Pete`, Address: `pete@silly.test`, }}, }, { input: `Gogh Fir `, addrs: []*mail.Address{{ Name: `Gogh Fir`, Address: `gf@example.com`, }}, }, { input: `normal name `, addrs: []*mail.Address{{ Name: `normal name`, Address: `username@server.com`, }}, }, { input: `"comma, name" `, addrs: []*mail.Address{{ Name: `comma, name`, Address: `username@server.com`, }}, }, { input: `name (ignore comment)`, addrs: []*mail.Address{{ Name: `name`, Address: `username@server.com`, }}, }, { input: `"Mail Robot" <>`, addrs: []*mail.Address{{ Name: `Mail Robot`, }}, }, { input: `Michal HoÅ™ejÅ¡ek `, addrs: []*mail.Address{{ Name: `Michal HoÅ™ejÅ¡ek`, Address: `hoÅ™ejÅ¡ek@mail.com`, // Not his real address. }}, }, { input: `First Last `, addrs: []*mail.Address{{ Name: `First Last`, Address: `user@domain.com`, }}, }, { input: `First Last `, addrs: []*mail.Address{{ Name: `First Last`, Address: `user@domain.com.`, }}, }, { input: `First Last `, addrs: []*mail.Address{{ Name: `First Last`, Address: `user@domain.com.`, }}, }, { input: `First Last `, addrs: []*mail.Address{{ Name: `First Last`, Address: `user@domain.com:25`, }}, }, { input: `First Last `, addrs: []*mail.Address{{ Name: `First Last`, Address: `user@[10.0.0.1]`, }}, }, { input: ``, addrs: []*mail.Address{{ Address: `postmaster@[10.10.10.10]`, }}, }, { input: `First Last < user@domain.com>`, addrs: []*mail.Address{{ Name: `First Last`, Address: `user@domain.com`, }}, }, { input: `user@domain.com,`, addrs: []*mail.Address{{ Address: `user@domain.com`, }}, }, { input: `First Middle "Last" `, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `First Middle Last `, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `First Middle"Last" `, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `First Middle "Last"`, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `First "Middle" "Last" `, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `First "Middle""Last" `, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `first.last `, addrs: []*mail.Address{{ Name: `first.last`, Address: `user@domain.com`, }}, }, { input: `first . last `, addrs: []*mail.Address{{ Name: `first.last`, Address: `user@domain.com`, }}, }, } for _, test := range tests { test := test t.Run(test.input, func(t *testing.T) { addrs, err := ParseAddress(test.input) assert.NoError(t, err) assert.ElementsMatch(t, test.addrs, addrs) }) } } func TestParseAddressList(t *testing.T) { tests := []struct { input string addrs []*mail.Address }{ { input: `Alice , Bob , Eve `, addrs: []*mail.Address{ { Name: `Alice`, Address: `alice@example.com`, }, { Name: `Bob`, Address: `bob@example.com`, }, { Name: `Eve`, Address: `eve@example.com`, }, }, }, { input: `Alice ; Bob ; Eve `, addrs: []*mail.Address{ { Name: `Alice`, Address: `alice@example.com`, }, { Name: `Bob`, Address: `bob@example.com`, }, { Name: `Eve`, Address: `eve@example.com`, }, }, }, { input: `Ed Jones ,joe@where.test,John `, addrs: []*mail.Address{ { Name: `Ed Jones`, Address: `c@a.test`, }, { Address: `joe@where.test`, }, { Name: `John`, Address: `jdoe@one.test`, }, }, }, { input: `name (ignore comment) , (Comment as name) username2@server.com`, addrs: []*mail.Address{ { Name: `name`, Address: `username@server.com`, }, { Address: `username2@server.com`, }, }, }, { input: `"normal name" , "comma, name" `, addrs: []*mail.Address{ { Name: `normal name`, Address: `username@server.com`, }, { Name: `comma, name`, Address: `address@server.com`, }, }, }, { input: `"comma, one" , "comma, two" `, addrs: []*mail.Address{ { Name: `comma, one`, Address: `username@server.com`, }, { Name: `comma, two`, Address: `address@server.com`, }, }, }, { input: `normal name , (comment)All.(around)address@(the)server.com`, addrs: []*mail.Address{ { Name: `normal name`, Address: `username@server.com`, }, { Address: `All.address@server.com`, }, }, }, { input: `normal name , All.("comma, in comment")address@(the)server.com`, addrs: []*mail.Address{ { Name: `normal name`, Address: `username@server.com`, }, { Address: `All.address@server.com`, }, }, }, { input: `Alice , Group:foo@bar;, bar@bar`, addrs: []*mail.Address{ { Name: `Alice`, Address: `alice@example.com`, }, { Name: ``, Address: `foo@bar`, }, { Name: ``, Address: `bar@bar`, }, }, }, { input: `user@domain `, addrs: []*mail.Address{{ Name: `user@domain`, Address: `user@domain.com`, }}, }, { input: `user @ domain `, addrs: []*mail.Address{{ Name: `user@domain`, Address: `user@domain.com`, }}, }, } for _, test := range tests { test := test t.Run(test.input, func(t *testing.T) { addrs, err := ParseAddressList(test.input) assert.NoError(t, err) assert.ElementsMatch(t, test.addrs, addrs) }) } } func TestParseGroup(t *testing.T) { tests := []struct { input string addrs []*mail.Address }{ { input: `A Group:Ed Jones ,joe@where.test,John ;`, addrs: []*mail.Address{ { Name: `Ed Jones`, Address: `c@a.test`, }, { Address: `joe@where.test`, }, { Name: `John`, Address: `jdoe@one.test`, }, }, }, { input: `undisclosed recipients:;`, addrs: []*mail.Address{}, }, { // We permit the group to not end in a semicolon, although as per RFC5322 it really should. input: `undisclosed recipients:`, addrs: []*mail.Address{}, }, { // We permit the group to be surrounded with quotes, although as per RFC5322 it really shouldn't be. input: `"undisclosed recipients:"`, addrs: []*mail.Address{}, }, { // We permit the group to be surrounded with quotes, although as per RFC5322 it really shouldn't be. input: `"undisclosed recipients:;"`, addrs: []*mail.Address{}, }, { input: `undisclosed recipients:, foo@bar`, addrs: []*mail.Address{ { Address: `foo@bar`, }, }, }, { input: `undisclosed recipients:;, foo@bar`, addrs: []*mail.Address{ { Address: `foo@bar`, }, }, }, { input: `undisclosed recipients:bar@bar;, foo@bar`, addrs: []*mail.Address{ { Address: `bar@bar`, }, { Address: `foo@bar`, }, }, }, { input: `"undisclosed recipients:", foo@bar`, addrs: []*mail.Address{ { Address: `foo@bar`, }, }, }, { input: `(Empty list)(start)Hidden recipients :(nobody(that I know)) ;`, addrs: []*mail.Address{}, }, { input: `foo@bar, g:bar@bar; z@z`, addrs: []*mail.Address{ { Address: `foo@bar`, }, { Address: `bar@bar`, }, { Address: `z@z`, }, }, }, { input: `foo@bar, g:bar@bar;; z@z`, addrs: []*mail.Address{ { Address: `foo@bar`, }, { Address: `bar@bar`, }, { Address: `z@z`, }, }, }, { input: `foo@bar, g:bar@bar;, z@z`, addrs: []*mail.Address{ { Address: `foo@bar`, }, { Address: `bar@bar`, }, { Address: `z@z`, }, }, }, { input: `foo@bar, g:; z@z`, addrs: []*mail.Address{ { Address: `foo@bar`, }, { Address: `z@z`, }, }, }, { input: `foo@bar, g:;; z@z`, addrs: []*mail.Address{ { Address: `foo@bar`, }, { Address: `z@z`, }, }, }, { input: `foo@bar, g:;, z@z`, addrs: []*mail.Address{ { Address: `foo@bar`, }, { Address: `z@z`, }, }, }, { input: `foo@bar, "g:;", z@z`, addrs: []*mail.Address{ { Address: `foo@bar`, }, { Address: `z@z`, }, }, }, } for _, test := range tests { test := test t.Run(test.input, func(t *testing.T) { addrs, err := ParseAddressList(test.input) assert.NoError(t, err) assert.ElementsMatch(t, test.addrs, addrs) }) } } func TestParseSingleAddressEncodedWord(t *testing.T) { tests := []struct { input string addrs []*mail.Address }{ { input: `=?US-ASCII?Q?Keith_Moore?= `, addrs: []*mail.Address{{ Name: `Keith Moore`, Address: `moore@cs.utk.edu`, }}, }, { input: `=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= `, addrs: []*mail.Address{{ Name: `Keld Jørn Simonsen`, Address: `keld@dkuug.dk`, }}, }, { input: `=?ISO-8859-1?Q?Andr=E9?= Pirard `, addrs: []*mail.Address{{ Name: `André Pirard`, Address: `PIRARD@vm1.ulg.ac.be`, }}, }, { input: `=?ISO-8859-1?Q?Olle_J=E4rnefors?= `, addrs: []*mail.Address{{ Name: `Olle Järnefors`, Address: `ojarnef@admin.kth.se`, }}, }, { input: `=?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= `, addrs: []*mail.Address{{ Name: `Patrik Fältström`, Address: `paf@nada.kth.se`, }}, }, { input: `Nathaniel Borenstein (=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)`, addrs: []*mail.Address{{ Name: `Nathaniel Borenstein`, Address: `nsb@thumper.bellcore.com`, }}, }, { input: `=?UTF-8?B?PEJlemUgam3DqW5hPg==?= `, addrs: []*mail.Address{{ Name: ``, Address: `user@domain.com`, }}, }, { input: `First Middle =?utf-8?Q?Last?= `, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `First Middle=?utf-8?Q?Last?= `, addrs: []*mail.Address{{ Name: `First Middle=?utf-8?Q?Last?=`, Address: `user@domain.com`, }}, }, { input: `First Middle =?utf-8?Q?Last?=`, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `First =?utf-8?Q?Middle?= =?utf-8?Q?Last?= `, addrs: []*mail.Address{{ Name: `First MiddleLast`, Address: `user@domain.com`, }}, }, { input: `First =?utf-8?Q?Middle?==?utf-8?Q?Last?= `, addrs: []*mail.Address{{ Name: `First MiddleLast`, Address: `user@domain.com`, }}, }, { input: `First "Middle"=?utf-8?Q?Last?= `, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `First "Middle" =?utf-8?Q?Last?= `, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `First "Middle" =?utf-8?Q?Last?=`, addrs: []*mail.Address{{ Name: `First Middle Last`, Address: `user@domain.com`, }}, }, { input: `=?UTF-8?B?PEJlemUgam3DqW5hPg==?= `, addrs: []*mail.Address{{ Name: ``, Address: `user@domain.com`, }}, }, } for _, test := range tests { test := test t.Run(test.input, func(t *testing.T) { addrs, err := ParseAddressList(test.input) assert.NoError(t, err) assert.ElementsMatch(t, test.addrs, addrs) }) } } func TestParseAddressInvalid(t *testing.T) { inputs := []string{ `user@domain...com`, `"comma, name" , another, name `, `username`, `=?ISO-8859-2?Q?First_Last?= , `, `=?windows-1250?Q?Spr=E1vce_syst=E9mu?=`, `"'user@domain.com.'"`, ``, `"Mail Delivery System <>" <@>`, } for _, test := range inputs { test := test t.Run(test, func(t *testing.T) { _, err := ParseAddressList(test) assert.Error(t, err) assert.True(t, rfcparser.IsError(err)) }) } } func TestParseDisplayNameOnlyShouldBeError(t *testing.T) { const input = "FooBar" _, err := ParseAddressList(input) require.Error(t, err) } func TestParseInvalidHeaderValueShouldBeError(t *testing.T) { // E.g: Incorrect header format causes headers fields to be combined into one, this should be invalid. const input = "FooBar From:Too Subjects:x" _, err := ParseAddressList(input) require.Error(t, err) } func TestParseEmptyStringIsNotError(t *testing.T) { _, err := ParseAddressList("") require.NoError(t, err) _, err = ParseAddress("") require.NoError(t, err) } func TestParseAddressListEmoji(t *testing.T) { input := `=?utf-8?q?Goce_Test_=F0=9F=A4=A6=F0=9F=8F=BB=E2=99=82=F0=9F=99=88?= =?utf-8?q?=F0=9F=8C=B2=E2=98=98=F0=9F=8C=B4?= , "Proton GMX Edit" , "beta@bar.com" , "testios12" , "random@bar.com" , =?utf-8?q?=C3=9C=C3=A4=C3=B6_Jakdij?= , =?utf-8?q?Q=C3=A4_T=C3=B6=C3=BCst_12_Edit?= , =?utf-8?q?=E2=98=98=EF=B8=8F=F0=9F=8C=B2=F0=9F=8C=B4=F0=9F=99=82=E2=98=BA?= =?utf-8?q?=EF=B8=8F=F0=9F=98=83?= , "Somebody Outlook" ` expected := []*mail.Address{ { Name: "Goce Test 🤦ðŸ»â™‚🙈🌲☘🌴", Address: "foo@bar.com", }, { Name: "Proton GMX Edit", Address: "z@bar.com", }, { Name: "beta@bar.com", Address: "beta@bar.com", }, { Name: "testios12", Address: "random@bar.com", }, { Name: "random@bar.com", Address: "random@bar.com", }, { Name: "Üäö Jakdij", Address: "another@bar.com", }, { Name: "Qä Töüst 12 Edit", Address: "random2@bar.com", }, { Name: "☘ï¸ðŸŒ²ðŸŒ´ðŸ™‚☺ï¸ðŸ˜ƒ", Address: "dust@bar.com", }, { Name: "Somebody Outlook", Address: "hotmal@bar.com", }, } addrs, err := ParseAddressList(input) assert.NoError(t, err) assert.ElementsMatch(t, expected, addrs) } func TestParserAddressEmailValidation(t *testing.T) { inputs := []string{ "test@io", "test@iana.org", "test@nominet.org.uk", "test@about.museum", "a@iana.org", "test.test@iana.org", "!#$%&`*+/=?^`{|}~@iana.org", "123@iana.org", "test@123.com", "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@iana.org", "test@mason-dixon.com", "test@c--n.com", "test@xn--hxajbheg2az3al.xn--jxalpdlp", "xn--test@iana.org", "1@pm.me", } for _, test := range inputs { test := test t.Run(test, func(t *testing.T) { _, err := ParseAddressList(test) assert.NoError(t, err) }) } } func TestParse_GODT_2587_infinite_loop(t *testing.T) { _, err := ParseAddressList("00@[000000000000000") assert.Error(t, err) } func FuzzParseAddress(f *testing.F) { f.Add("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@iana.org") f.Add("!#$%&`*+/=?^`{|}~@iana.org") f.Fuzz(func(t *testing.T, inputData string) { _, _ = ParseAddress(inputData) _, _ = ParseAddressList(inputData) }) } func FuzzRFC5322(f *testing.F) { f.Add(`pete(his account)@silly.test(his host)`) f.Add(` " foo bar derer " `) f.Add("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@iana.org") f.Fuzz(func(t *testing.T, inputData string) { p := newTestRFCParser(inputData) _, _ = parseNameAddr(p) }) } func TestParse_AddressAngleAddrOnlyWithSeparator(t *testing.T) { // EOF was not properly handled after separator. addrList, err := ParseAddressList(",") assert.NoError(t, err) require.Equal(t, addrList[0].Address, "test@user.com") } gluon-0.17.0/rfc5322/quoted.go000066400000000000000000000043761445200213000156420ustar00rootroot00000000000000package rfc5322 // 3.2.4. Quoted Strings import "github.com/ProtonMail/gluon/rfcparser" func parseQuotedString(p *rfcparser.Parser) (parserString, error) { var result rfcparser.Bytes result.Offset = p.CurrentToken().Offset if _, err := tryParseCFWS(p); err != nil { return parserString{}, err } if err := p.Consume(rfcparser.TokenTypeDQuote, "expected \" for quoted string start"); err != nil { return parserString{}, err } for { if ok, err := tryParseFWS(p); err != nil { return parserString{}, err } else if ok { result.Value = append(result.Value, ' ') } if !(p.CheckWith(isQText) || p.Check(rfcparser.TokenTypeBackslash)) { break } if p.CheckWith(isQText) { b, err := parseQContent(p) if err != nil { return parserString{}, err } result.Value = append(result.Value, b) } else { b, err := parseQuotedPair(p) if err != nil { return parserString{}, err } result.Value = append(result.Value, b) } } if ok, err := tryParseFWS(p); err != nil { return parserString{}, err } else if ok { result.Value = append(result.Value, ' ') } if err := p.Consume(rfcparser.TokenTypeDQuote, "expected \" for quoted string end"); err != nil { return parserString{}, err } if _, err := tryParseCFWS(p); err != nil { return parserString{}, err } return parserString{ String: result.IntoString(), Type: parserStringTypeOther, }, nil } func parseQContent(p *rfcparser.Parser) (byte, error) { if ok, err := p.MatchesWith(isQText); err != nil { return 0, err } else if ok { return p.PreviousToken().Value, nil } return parseQuotedPair(p) } func isQText(tokenType rfcparser.TokenType) bool { // qtext = %d33 / ; Printable US-ASCII // %d35-91 / ; characters not including // %d93-126 / ; "\" or the quote character // obs-qtext // // obs-qtext = obs-NO-WS-CTL // if (rfcparser.IsCTL(tokenType) && !isObsNoWSCTL(tokenType)) || tokenType == rfcparser.TokenTypeDQuote || tokenType == rfcparser.TokenTypeBackslash || tokenType == rfcparser.TokenTypeSP || tokenType == rfcparser.TokenTypeEOF || tokenType == rfcparser.TokenTypeError { return false } return true } gluon-0.17.0/rfc5322/quoted_test.go000066400000000000000000000006601445200213000166710ustar00rootroot00000000000000package rfc5322 import ( "testing" "github.com/stretchr/testify/require" ) func TestQuotedString(t *testing.T) { inputs := map[string]string{ `"f\".c"`: "f\".c", "\" \r\n f\\\".c\r\n \"": " f\".c ", ` " foo bar derer " `: " foo bar derer ", } for i, e := range inputs { p := newTestRFCParser(i) v, err := parseQuotedString(p) require.NoError(t, err) require.Equal(t, e, v.String.Value) } } gluon-0.17.0/rfc5322/validation.go000066400000000000000000000036211445200213000164630ustar00rootroot00000000000000package rfc5322 import ( "errors" "fmt" "github.com/ProtonMail/gluon/rfc822" ) var ErrInvalidMessage = errors.New("invalid rfc5322 message") // ValidateMessageHeaderFields checks the headers of message to verify that: // * From and Date are present. // * If From has multiple addresses, a Sender field must be present. // * If Both From and Sender are present and they contain one address, they must not be equal. func ValidateMessageHeaderFields(literal []byte) error { headerBytes, _ := rfc822.Split(literal) header, err := rfc822.NewHeader(headerBytes) if err != nil { return err } // Check for date. { value := header.Get("Date") if len(value) == 0 { return fmt.Errorf("%w: Required header field 'Date' not found or empty", ErrInvalidMessage) } } // Check for from. { value := header.Get("From") if len(value) == 0 { return fmt.Errorf("%w: Required header field 'From' not found or empty", ErrInvalidMessage) } // Check if From is a multi address. If so, a sender filed must be present and non-empty. addresses, err := ParseAddressList(value) if err != nil { return fmt.Errorf("%w: failed to parse From header: %v", ErrInvalidMessage, err) } if len(addresses) > 1 { senderValue := header.Get("Sender") if len(senderValue) == 0 { return fmt.Errorf("%w: Required header field 'Sender' not found or empty", ErrInvalidMessage) } _, err := ParseAddress(senderValue) if err != nil { return fmt.Errorf("%w: failed to parse Sender header: %v", ErrInvalidMessage, err) } } else { senderValue, ok := header.GetChecked("Sender") if ok { if len(senderValue) == 0 { return fmt.Errorf("%w: Required header field 'Sender' should not be empty", ErrInvalidMessage) } _, err := ParseAddress(senderValue) if err != nil { return fmt.Errorf("%w: failed to parse Sender header: %v", ErrInvalidMessage, err) } } } } return nil } gluon-0.17.0/rfc5322/validation_test.go000066400000000000000000000022361445200213000175230ustar00rootroot00000000000000package rfc5322 import ( "testing" "github.com/stretchr/testify/require" ) func TestValidateMessageHeaderFields_RequiredFieldsPass(t *testing.T) { const literal = `From: Foo@bar.com Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) ` require.NoError(t, ValidateMessageHeaderFields([]byte(literal))) } func TestValidateMessageHeaderFields_ErrOnMissingFrom(t *testing.T) { const literal = `Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) ` require.Error(t, ValidateMessageHeaderFields([]byte(literal))) } func TestValidateMessageHeaderFields_ErrOnMissingDate(t *testing.T) { const literal = `From: Foo@bar.com ` require.Error(t, ValidateMessageHeaderFields([]byte(literal))) } func TestValidateMessageHeaderFields_AllowSingleFromWithDifferentSender(t *testing.T) { const literal = `From: Foo@bar.com Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) Sender: Bar@bar.com ` require.NoError(t, ValidateMessageHeaderFields([]byte(literal))) } func TestValidateMessageHeaderFields_ErrOnMultipleFromAndNoSender(t *testing.T) { const literal = `From: Foo@bar.com, Bar@bar.com Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) ` require.Error(t, ValidateMessageHeaderFields([]byte(literal))) } gluon-0.17.0/rfc822/000077500000000000000000000000001445200213000137205ustar00rootroot00000000000000gluon-0.17.0/rfc822/hash.go000066400000000000000000000043011445200213000151700ustar00rootroot00000000000000package rfc822 import ( "bytes" "crypto/sha256" "encoding/base64" "strings" "github.com/sirupsen/logrus" ) // GetMessageHash returns the hash of the given message. // This takes into account: // - the Subject header, // - the From/To/Cc headers, // - the Content-Type header of each (leaf) part, // - the Content-Disposition header of each (leaf) part, // - the (decoded) body of each part. func GetMessageHash(b []byte) (string, error) { section := Parse(b) header, err := section.ParseHeader() if err != nil { return "", err } h := sha256.New() if _, err := h.Write([]byte(header.Get("Subject"))); err != nil { return "", err } if _, err := h.Write([]byte(header.Get("From"))); err != nil { return "", err } if _, err := h.Write([]byte(header.Get("To"))); err != nil { return "", err } if _, err := h.Write([]byte(header.Get("Cc"))); err != nil { return "", err } if _, err := h.Write([]byte(header.Get("Reply-To"))); err != nil { return "", err } if _, err := h.Write([]byte(header.Get("In-Reply-To"))); err != nil { return "", err } if err := section.Walk(func(section *Section) error { children, err := section.Children() if err != nil { return err } else if len(children) > 0 { return nil } header, err := section.ParseHeader() if err != nil { return err } contentType := header.Get("Content-Type") mimeType, values, err := ParseMIMEType(contentType) if err != nil { logrus.Warnf("Message contains invalid mime type: %v", contentType) } else { if _, err := h.Write([]byte(mimeType)); err != nil { return err } for k, v := range values { if strings.EqualFold(k, "boundary") { continue } if _, err := h.Write([]byte(k)); err != nil { return err } if _, err := h.Write([]byte(v)); err != nil { return err } } } if _, err := h.Write([]byte(header.Get("Content-Disposition"))); err != nil { return err } body := section.Body() body = bytes.ReplaceAll(body, []byte{'\r'}, nil) body = bytes.TrimSpace(body) if _, err := h.Write(body); err != nil { return err } return nil }); err != nil { return "", err } return base64.StdEncoding.EncodeToString(h.Sum(nil)), nil } gluon-0.17.0/rfc822/header.go000066400000000000000000000234251445200213000155050ustar00rootroot00000000000000package rfc822 import ( "bytes" "errors" "fmt" "io" "net/textproto" "strings" ) type headerEntry struct { parsedHeaderEntry mapKey string merged string prev *headerEntry next *headerEntry } func (he *headerEntry) getMerged(data []byte) string { if len(he.merged) == 0 { he.merged = mergeMultiline(he.getValue(data)) } return he.merged } type Header struct { keys map[string][]*headerEntry firstEntry *headerEntry lastEntry *headerEntry data []byte } // NewEmptyHeader returns an empty header that can be filled with values. func NewEmptyHeader() *Header { h, err := NewHeader([]byte{'\r', '\n'}) // The above code should never fail, but just in case. if err != nil { panic(err) } return h } func NewHeader(data []byte) (*Header, error) { h := &Header{ keys: make(map[string][]*headerEntry), data: data, } parser := newHeaderParser(data) for { entry, err := parser.next() if err != nil { if errors.Is(err, io.EOF) { break } else { return nil, err } } hentry := &headerEntry{ parsedHeaderEntry: entry, merged: "", next: nil, } if entry.hasKey() { hashKey := strings.ToLower(string(entry.getKey(data))) hentry.mapKey = hashKey if v, ok := h.keys[hashKey]; !ok { h.keys[hashKey] = []*headerEntry{hentry} } else { h.keys[hashKey] = append(v, hentry) } } if h.firstEntry == nil { h.firstEntry = hentry h.lastEntry = hentry } else { h.lastEntry.next = hentry hentry.prev = h.lastEntry h.lastEntry = hentry } } return h, nil } func (h *Header) Raw() []byte { return h.data } func (h *Header) Has(key string) bool { _, ok := h.keys[strings.ToLower(key)] return ok } func (h *Header) GetChecked(key string) (string, bool) { v, ok := h.keys[strings.ToLower(key)] if !ok { return "", false } return v[0].getMerged(h.data), true } func (h *Header) Get(key string) string { v, ok := h.keys[strings.ToLower(key)] if !ok { return "" } return v[0].getMerged(h.data) } func (h *Header) GetLine(key string) []byte { v, ok := h.keys[strings.ToLower(key)] if !ok { return nil } return v[0].getAll(h.data) } func (h *Header) getLines() [][]byte { var res [][]byte for e := h.firstEntry; e != nil; e = e.next { res = append(res, h.data[e.keyStart:e.valueEnd]) } return res } func (h *Header) GetRaw(key string) []byte { v, ok := h.keys[strings.ToLower(key)] if !ok { return nil } return v[0].getValue(h.data) } func (h *Header) Set(key, val string) { // We can only add entries to the front of the header. key = textproto.CanonicalMIMEHeaderKey(key) mapKey := strings.ToLower(key) keyBytes := []byte(key) entryBytes := joinLine([]byte(key), []byte(val)) newHeaderEntry := &headerEntry{ parsedHeaderEntry: parsedHeaderEntry{ keyStart: 0, keyEnd: len(keyBytes), valueStart: len(keyBytes) + 2, valueEnd: len(entryBytes), }, mapKey: mapKey, } if v, ok := h.keys[mapKey]; !ok { h.keys[mapKey] = []*headerEntry{newHeaderEntry} } else { h.keys[mapKey] = append([]*headerEntry{newHeaderEntry}, v...) } if h.firstEntry == nil { h.data = entryBytes h.firstEntry = newHeaderEntry } else { insertOffset := h.firstEntry.keyStart newHeaderEntry.next = h.firstEntry h.firstEntry.prev = newHeaderEntry h.firstEntry = newHeaderEntry var buffer bytes.Buffer if insertOffset != 0 { if _, err := buffer.Write(h.data[0:insertOffset]); err != nil { panic("failed to write to byte buffer") } } if _, err := buffer.Write(entryBytes); err != nil { panic("failed to write to byte buffer") } if _, err := buffer.Write(h.data[insertOffset:]); err != nil { panic("failed to write to byte buffer") } h.data = buffer.Bytes() h.applyOffset(newHeaderEntry.next, len(entryBytes)) } } func (h *Header) Del(key string) { mapKey := strings.ToLower(key) v, ok := h.keys[mapKey] if !ok { return } he := v[0] if len(v) == 1 { delete(h.keys, mapKey) } else { h.keys[mapKey] = v[1:] } if he.prev != nil { he.prev.next = he.next } if he.next != nil { he.next.prev = he.prev } dataLen := he.valueEnd - he.keyStart h.data = append(h.data[0:he.keyStart], h.data[he.valueEnd:]...) h.applyOffset(he.next, -dataLen) } func (h *Header) Fields(fields []string) []byte { wantFields := make(map[string]struct{}) for _, field := range fields { wantFields[strings.ToLower(field)] = struct{}{} } var res []byte for e := h.firstEntry; e != nil; e = e.next { if len(bytes.TrimSpace(e.getAll(h.data))) == 0 { res = append(res, e.getAll(h.data)...) continue } if !e.hasKey() { continue } _, ok := wantFields[e.mapKey] if !ok { continue } res = append(res, e.getAll(h.data)...) } return res } func (h *Header) FieldsNot(fields []string) []byte { wantFieldsNot := make(map[string]struct{}) for _, field := range fields { wantFieldsNot[strings.ToLower(field)] = struct{}{} } var res []byte for e := h.firstEntry; e != nil; e = e.next { if len(bytes.TrimSpace(e.getAll(h.data))) == 0 { res = append(res, e.getAll(h.data)...) continue } if !e.hasKey() { continue } _, ok := wantFieldsNot[e.mapKey] if ok { continue } res = append(res, e.getAll(h.data)...) } return res } func (h *Header) Entries(fn func(key, val string)) { for e := h.firstEntry; e != nil; e = e.next { if !e.hasKey() { continue } fn(string(e.getKey(h.data)), e.getMerged(h.data)) } } func (h *Header) applyOffset(start *headerEntry, offset int) { for e := start; e != nil; e = e.next { e.applyOffset(offset) } } // SetHeaderValue is a helper method that sets a header value in a message literal. // It does not check whether the existing value already exists. func SetHeaderValue(literal []byte, key, val string) ([]byte, error) { reader, size, err := SetHeaderValueNoMemCopy(literal, key, val) if err != nil { return nil, err } var b bytes.Buffer b.Grow(size) if _, err := b.ReadFrom(reader); err != nil { return nil, err } return b.Bytes(), nil } // SetHeaderValueNoMemCopy is the same as SetHeaderValue, except it does not allocate memory to modify the input literal. // Instead, it returns an io.MultiReader that combines the sub-slices in the correct order. This enables us to only // allocate memory for the new header field while re-using the old literal. func SetHeaderValueNoMemCopy(literal []byte, key, val string) (io.Reader, int, error) { rawHeader, body := Split(literal) parser := newHeaderParser(rawHeader) var ( foundFirstEntry bool parsedHeaderEntry parsedHeaderEntry ) // find first header entry. for { entry, err := parser.next() if err != nil { if errors.Is(err, io.EOF) { break } else { return nil, 0, err } } if entry.hasKey() { foundFirstEntry = true parsedHeaderEntry = entry break } } key = textproto.CanonicalMIMEHeaderKey(key) data := joinLine([]byte(key), []byte(val)) if !foundFirstEntry { return io.MultiReader(bytes.NewReader(rawHeader), bytes.NewReader(data), bytes.NewReader(body)), len(rawHeader) + len(data) + len(body), nil } part1 := literal[0:parsedHeaderEntry.keyStart] part2 := literal[parsedHeaderEntry.keyStart:] return io.MultiReader( bytes.NewReader(part1), bytes.NewReader(data), bytes.NewReader(part2), ), len(part1) + len(part2) + len(data), nil } // GetHeaderValue is a helper method that queries a header value in a message literal. func GetHeaderValue(literal []byte, key string) (string, error) { rawHeader, _ := Split(literal) parser := newHeaderParser(rawHeader) for { entry, err := parser.next() if err != nil { if errors.Is(err, io.EOF) { break } else { return "", err } } if !entry.hasKey() { continue } if !strings.EqualFold(key, string(entry.getKey(rawHeader))) { continue } return mergeMultiline(entry.getValue(rawHeader)), nil } return "", nil } // EraseHeaderValue removes the header from a literal. func EraseHeaderValue(literal []byte, key string) ([]byte, error) { rawHeader, _ := Split(literal) parser := newHeaderParser(rawHeader) var ( foundEntry bool parsedHeaderEntry parsedHeaderEntry ) for { entry, err := parser.next() if err != nil { if errors.Is(err, io.EOF) { break } else { return nil, err } } if !entry.hasKey() { continue } if !strings.EqualFold(key, string(entry.getKey(rawHeader))) { continue } foundEntry = true parsedHeaderEntry = entry break } result := make([]byte, 0, len(literal)) if !foundEntry { result = append(result, literal...) } else { result = append(result, literal[0:parsedHeaderEntry.keyStart]...) result = append(result, literal[parsedHeaderEntry.valueEnd:]...) } return result, nil } var ( ErrNonASCIIHeaderKey = fmt.Errorf("header key contains invalid characters") ErrKeyNotFound = fmt.Errorf("invalid header key") ErrParseHeader = fmt.Errorf("failed to parse header") ) func mergeMultiline(line []byte) string { remaining := line var builder strings.Builder for len(remaining) != 0 { index := bytes.Index(remaining, []byte{'\n'}) if index < 0 { builder.Write(bytes.TrimSpace(remaining)) break } var section []byte if index >= 1 && remaining[index-1] == '\r' { section = remaining[0 : index-1] } else { section = remaining[0:index] } remaining = remaining[index+1:] if len(section) != 0 { builder.Write(bytes.TrimSpace(section)) if len(remaining) != 0 { builder.WriteRune(' ') } } } return builder.String() } func splitLine(line []byte) [][]byte { result := bytes.SplitN(line, []byte(`:`), 2) if len(result) > 1 && len(result[1]) > 0 && result[1][0] == ' ' { result[1] = result[1][1:] } return result } // TODO: Don't assume line ending is \r\n. Bad. func joinLine(key, val []byte) []byte { return []byte(string(key) + ": " + string(val) + "\r\n") } gluon-0.17.0/rfc822/header_parser.go000066400000000000000000000106651445200213000170630ustar00rootroot00000000000000package rfc822 import ( "fmt" "io" ) type headerParser struct { header []byte offset int } func newHeaderParser(header []byte) headerParser { return headerParser{header: header} } // next will keep parsing until it collects a new entry. io.EOF is returned when there is nothing left to parse. func (hp *headerParser) next() (parsedHeaderEntry, error) { headerLen := len(hp.header) if hp.offset >= headerLen { return parsedHeaderEntry{}, io.EOF } result := parsedHeaderEntry{ keyStart: hp.offset, keyEnd: -1, valueStart: -1, valueEnd: -1, } // Detect key, have to handle prelude case where there is no header information or last empty new line. { for hp.offset < headerLen { if hp.header[hp.offset] == ':' { prevOffset := hp.offset hp.offset++ if hp.offset < headerLen { result.keyEnd = prevOffset validateHeaderField := func(h parsedHeaderEntry) error { for i := h.keyStart; i < h.keyEnd; i++ { if v := hp.header[i]; v < 33 || v > 126 { return ErrNonASCIIHeaderKey } } return nil } switch { case hp.header[hp.offset] == ' ': if err := validateHeaderField(result); err != nil { return parsedHeaderEntry{}, err } case hp.header[hp.offset] == '\r': // ensure next char is '\n' hp.offset++ if hp.offset < headerLen && hp.header[hp.offset] != '\n' { return parsedHeaderEntry{}, fmt.Errorf("expected \\n after \\r: %w", ErrParseHeader) } fallthrough case hp.header[hp.offset] == '\n': hp.offset++ if err := validateHeaderField(result); err != nil { return parsedHeaderEntry{}, err } // If the next char it's not a space, it's an empty header field. if hp.offset < headerLen && !isWSP(hp.header[hp.offset]) { result.valueStart = result.keyEnd result.valueEnd = result.keyEnd return result, nil } case hp.header[hp.offset] == ':': return parsedHeaderEntry{}, fmt.Errorf("unexpected char '%v', for header field value: %w", string(hp.header[hp.offset]), ErrParseHeader) default: if err := validateHeaderField(result); err != nil { return parsedHeaderEntry{}, err } } break } } else if hp.header[hp.offset] == '\n' { hp.offset++ result.keyEnd = result.keyStart result.valueStart = result.keyStart result.valueEnd = hp.offset return result, nil } else { hp.offset++ } } if result.keyEnd == -1 { return parsedHeaderEntry{}, ErrKeyNotFound } } // collect value. searchOffset := hp.offset for searchOffset < headerLen && isWSP(hp.header[searchOffset]) { searchOffset++ } if searchOffset < headerLen { result.valueStart = searchOffset } else { result.valueStart = headerLen } for searchOffset < headerLen { b := hp.header[searchOffset] if b == '\r' { searchOffset++ if searchOffset >= headerLen { return parsedHeaderEntry{}, io.ErrUnexpectedEOF } if hp.header[searchOffset] != '\n' { return parsedHeaderEntry{}, fmt.Errorf(`expected \n after \n`) } searchOffset++ // If the next character after new line is a space, it's a fold if searchOffset < headerLen && isWSP(hp.header[searchOffset]) { continue } result.valueEnd = searchOffset break } else if b == '\n' { searchOffset++ // If the next character after new line is a space, it's a fold if searchOffset < headerLen && isWSP(hp.header[searchOffset]) { continue } result.valueEnd = searchOffset break } else { searchOffset++ } } hp.offset = searchOffset // handle case where we may have reached EOF without concluding any previous processing. if result.valueEnd == -1 && searchOffset >= headerLen { result.valueEnd = headerLen } return result, nil } func isWSP(b byte) bool { return b == ' ' || b == '\t' } type parsedHeaderEntry struct { keyStart int keyEnd int valueStart int valueEnd int } func (p parsedHeaderEntry) hasKey() bool { return p.keyStart != p.keyEnd } func (p parsedHeaderEntry) getKey(header []byte) []byte { return header[p.keyStart:p.keyEnd] } func (p parsedHeaderEntry) getValue(header []byte) []byte { return header[p.valueStart:p.valueEnd] } func (p parsedHeaderEntry) getAll(header []byte) []byte { return header[p.keyStart:p.valueEnd] } func (p *parsedHeaderEntry) applyOffset(offset int) { p.keyStart += offset p.keyEnd += offset p.valueStart += offset p.valueEnd += offset } gluon-0.17.0/rfc822/header_test.go000066400000000000000000000331201445200213000165350ustar00rootroot00000000000000package rfc822 import ( "strings" "testing" "github.com/bradenaw/juniper/xslices" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) const literal = "To: somebody\r\nFrom: somebody else\r\nSubject: this is\r\n\ta multiline field\r\nFrom: duplicate entry\r\n\r\n" func TestHeader_New(t *testing.T) { // Empty headers are empty. header, err := NewHeader(nil) require.NoError(t, err) assert.Equal(t, "", string(header.Raw())) // But empty headers can be added to. header.Set("To", "someone@pm.me") assert.Equal(t, "To: someone@pm.me\r\n", string(header.Raw())) } func TestHeader_Raw(t *testing.T) { header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, literal, string(header.Raw())) } func TestHeader_Has(t *testing.T) { const literal = "To: somebody\r\nFrom: somebody else\r\nSubject: this is\r\n\ta multiline field\r\nFrom: duplicate entry\r\nReferences:\r\n\t \r\n\r\n" header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, true, header.Has("To")) assert.Equal(t, true, header.Has("to")) assert.Equal(t, false, header.Has("Too")) assert.Equal(t, true, header.Has("From")) assert.Equal(t, true, header.Has("from")) assert.Equal(t, false, header.Has("fromm")) assert.Equal(t, true, header.Has("Subject")) assert.Equal(t, true, header.Has("subject")) assert.Equal(t, false, header.Has("subjectt")) assert.Equal(t, true, header.Has("References")) } func TestHeader_Get(t *testing.T) { const literal = "To: somebody\r\nFrom: somebody else\r\nSubject: this is\r\n\ta multiline field\r\nFrom: duplicate entry\r\nReferences:\r\n\t \r\n\r\n" header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, "somebody", header.Get("To")) assert.Equal(t, "somebody", header.Get("to")) assert.Equal(t, "somebody else", header.Get("From")) assert.Equal(t, "somebody else", header.Get("from")) assert.Equal(t, "this is a multiline field", header.Get("Subject")) assert.Equal(t, "this is a multiline field", header.Get("subject")) assert.Equal(t, "", header.Get("References")) } func TestHeader_GetRaw(t *testing.T) { header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, []byte("somebody\r\n"), header.GetRaw("To")) assert.Equal(t, []byte("somebody else\r\n"), header.GetRaw("From")) assert.Equal(t, []byte("this is\r\n\ta multiline field\r\n"), header.GetRaw("Subject")) } func TestHeader_GetLine(t *testing.T) { header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, []byte("To: somebody\r\n"), header.GetLine("To")) assert.Equal(t, []byte("From: somebody else\r\n"), header.GetLine("From")) assert.Equal(t, []byte("Subject: this is\r\n\ta multiline field\r\n"), header.GetLine("Subject")) } func TestHeader_Set(t *testing.T) { header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, "somebody", header.Get("To")) header.Set("To", "who is this?") assert.Equal(t, "who is this?", header.Get("To")) assert.Equal(t, "somebody else", header.Get("From")) header.Set("From", "who else is this?") assert.Equal(t, "who else is this?", header.Get("From")) } func TestHeader_SetNew(t *testing.T) { header, err := NewHeader([]byte(literal)) require.NoError(t, err) header.Set("Something", "something new...") assert.Equal(t, "something new...", header.Get("Something")) assert.Equal(t, "Something: something new...\r\nTo: somebody\r\nFrom: somebody else\r\nSubject: this is\r\n\ta multiline field\r\nFrom: duplicate entry\r\n\r\n", string(header.Raw())) header.Set("Else", "another...") assert.Equal(t, "another...", header.Get("Else")) assert.Equal(t, "Else: another...\r\nSomething: something new...\r\nTo: somebody\r\nFrom: somebody else\r\nSubject: this is\r\n\ta multiline field\r\nFrom: duplicate entry\r\n\r\n", string(header.Raw())) } func TestHeader_Del(t *testing.T) { header, err := NewHeader([]byte(literal)) require.NoError(t, err) header.Del("From") assert.Equal(t, "To: somebody\r\nSubject: this is\r\n\ta multiline field\r\nFrom: duplicate entry\r\n\r\n", string(header.Raw())) header.Del("To") assert.Equal(t, "Subject: this is\r\n\ta multiline field\r\nFrom: duplicate entry\r\n\r\n", string(header.Raw())) header.Del("Subject") assert.Equal(t, "From: duplicate entry\r\n\r\n", string(header.Raw())) header.Del("From") assert.Equal(t, "\r\n", string(header.Raw())) } func TestHeader_Fields(t *testing.T) { header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, "To: somebody\r\n\r\n", string(header.Fields([]string{"To"}))) assert.Equal(t, "From: somebody else\r\nFrom: duplicate entry\r\n\r\n", string(header.Fields([]string{"From"}))) assert.Equal(t, "To: somebody\r\nFrom: somebody else\r\nFrom: duplicate entry\r\n\r\n", string(header.Fields([]string{"To", "From"}))) assert.Equal(t, "To: somebody\r\nSubject: this is\r\n\ta multiline field\r\n\r\n", string(header.Fields([]string{"To", "Subject"}))) } func TestHeader_FieldsNot(t *testing.T) { header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, "To: somebody\r\n\r\n", string(header.FieldsNot([]string{"From", "Subject"}))) assert.Equal(t, "From: somebody else\r\nFrom: duplicate entry\r\n\r\n", string(header.FieldsNot([]string{"To", "Subject"}))) assert.Equal(t, "To: somebody\r\nFrom: somebody else\r\nFrom: duplicate entry\r\n\r\n", string(header.FieldsNot([]string{"Subject"}))) assert.Equal(t, "To: somebody\r\nSubject: this is\r\n\ta multiline field\r\n\r\n", string(header.FieldsNot([]string{"From"}))) } func TestHeader_Entries(t *testing.T) { var lines [][]string header, err := NewHeader([]byte(literal)) require.NoError(t, err) header.Entries(func(key, val string) { lines = append(lines, []string{key, val}) }) assert.Equal(t, [][]string{ {"To", "somebody"}, {"From", "somebody else"}, {"Subject", "this is a multiline field"}, {"From", "duplicate entry"}, }, lines) } func TestParseHeader(t *testing.T) { header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, [][]byte{ []byte("To: somebody\r\n"), []byte("From: somebody else\r\n"), []byte("Subject: this is\r\n\ta multiline field\r\n"), []byte("From: duplicate entry\r\n"), []byte("\r\n"), }, header.getLines()) } func TestParseHeaderFoldedLine(t *testing.T) { const literal = "To:\r\n\tsomebody\r\nFrom: \r\n someone\r\n\r\n" header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, [][]byte{ []byte("To:\r\n\tsomebody\r\n"), []byte("From: \r\n someone\r\n"), []byte("\r\n"), }, header.getLines()) } func TestParseHeaderMultilineFilename(t *testing.T) { const literal = "Content-Type: application/msword; name=\"this is a very long\n filename.doc\"" header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, [][]byte{ []byte("Content-Type: application/msword; name=\"this is a very long\n filename.doc\""), }, header.getLines()) } func TestParseHeaderMultilineFilenameWithColon(t *testing.T) { const literal = "Content-Type: application/msword; name=\"this is a very long\n filename: too long.doc\"" header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, [][]byte{ []byte("Content-Type: application/msword; name=\"this is a very long\n filename: too long.doc\""), }, header.getLines()) } func TestParseHeaderMultilineFilenameWithColonAndNewline(t *testing.T) { const literal = "Content-Type: application/msword; name=\"this is a very long\n filename: too long.doc\"\n" header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, [][]byte{ []byte("Content-Type: application/msword; name=\"this is a very long\n filename: too long.doc\"\n"), }, header.getLines()) } func TestParseHeaderMultilineIndent(t *testing.T) { const literal = "Subject: a very\r\n\tlong: line with a colon and indent\r\n \r\n and space line\r\nFrom: sender\r\n" header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, [][]byte{ []byte("Subject: a very\r\n\tlong: line with a colon and indent\r\n \r\n and space line\r\n"), []byte("From: sender\r\n"), }, header.getLines()) } func TestParseHeaderMultipleMultilineFilenames(t *testing.T) { const literal = `Content-Type: application/msword; name="=E5=B8=B6=E6=9C=89=E5=A4=96=E5=9C=8B=E5=AD=97=E7=AC=A6=E7=9A=84=E9=99=84=E4= =BB=B6.DOC" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="=E5=B8=B6=E6=9C=89=E5=A4=96=E5=9C=8B=E5=AD=97=E7=AC=A6=E7=9A=84=E9=99=84=E4= =BB=B6.DOC" Content-ID: <> ` header, err := NewHeader([]byte(literal)) require.NoError(t, err) assert.Equal(t, [][]byte{ []byte("Content-Type: application/msword; name=\"=E5=B8=B6=E6=9C=89=E5=A4=96=E5=9C=8B=E5=AD=97=E7=AC=A6=E7=9A=84=E9=99=84=E4=\n =BB=B6.DOC\"\n"), []byte("Content-Transfer-Encoding: base64\n"), []byte("Content-Disposition: attachment; filename=\"=E5=B8=B6=E6=9C=89=E5=A4=96=E5=9C=8B=E5=AD=97=E7=AC=A6=E7=9A=84=E9=99=84=E4=\n =BB=B6.DOC\"\n"), []byte("Content-ID: <>\n"), }, header.getLines()) } func TestSplitHeaderBody(t *testing.T) { const literal = "To: user@pm.me\r\n\r\nhi\r\n" header, body := Split([]byte(literal)) assert.Equal(t, []byte("To: user@pm.me\r\n\r\n"), header) assert.Equal(t, []byte("hi\r\n"), body) } func TestSplitHeaderBodyNoBody(t *testing.T) { const literal = "To: user@pm.me\r\n\r\n" header, body := Split([]byte(literal)) assert.Equal(t, []byte("To: user@pm.me\r\n\r\n"), header) assert.Equal(t, []byte(""), body) } func TestSplitHeaderBodyOnlyHeader(t *testing.T) { const literal = "To: user@pm.me\r\n" header, body := Split([]byte(literal)) assert.Equal(t, []byte("To: user@pm.me\r\n"), header) assert.Equal(t, []byte(""), body) } func TestSplitHeaderBodyOnlyHeaderNoNewline(t *testing.T) { const literal = "To: user@pm.me" header, body := Split([]byte(literal)) assert.Equal(t, []byte("To: user@pm.me"), header) assert.Equal(t, []byte(""), body) } func TestSetHeaderValue(t *testing.T) { const literal = "To: user@pm.me" // Create a clone so we can test this with mutable memory. literalBytes := xslices.Clone([]byte(literal)) newHeader, err := SetHeaderValue(literalBytes, "foo", "bar") require.NoError(t, err) assert.Equal(t, newHeader, []byte("Foo: bar\r\nTo: user@pm.me")) // Ensure the original data wasn't modified. assert.Equal(t, literalBytes, []byte(literal)) } func TestHeader_Erase(t *testing.T) { literal := []byte("Subject: this is\r\n\ta multiline field\r\nFrom: duplicate entry\r\nReferences:\r\n\t \r\n\r\n") literalWithoutSubject := []byte("From: duplicate entry\r\nReferences:\r\n\t \r\n\r\n") literalWithoutFrom := []byte("Subject: this is\r\n\ta multiline field\r\nReferences:\r\n\t \r\n\r\n") literalWithoutReferences := []byte("Subject: this is\r\n\ta multiline field\r\nFrom: duplicate entry\r\n\r\n") { newLiteral, err := EraseHeaderValue(literal, "Subject") require.NoError(t, err) assert.Equal(t, literalWithoutSubject, newLiteral) } { newLiteral, err := EraseHeaderValue(literal, "From") require.NoError(t, err) assert.Equal(t, literalWithoutFrom, newLiteral) } { newLiteral, err := EraseHeaderValue(literal, "References") require.NoError(t, err) assert.Equal(t, literalWithoutReferences, newLiteral) } { newLiteral, err := EraseHeaderValue(literal, "ThisKeyDoesNotExist") require.NoError(t, err) assert.Equal(t, literal, newLiteral) } } func TestHeader_SubjectWithRandomQuote(t *testing.T) { raw := lines(`Subject: All " your " random " brackets " ' ' : belong to us () {}`, `Date: Sun, 30 Jan 2000 11:49:30 +0700`, `Content-Type: multipart/alternative; boundary="----=_BOUNDARY_"`) header, err := NewHeader(raw) require.NoError(t, err) require.Equal( t, `All " your " random " brackets " ' ' : belong to us () {}`, header.Get("Subject"), ) } func lines(s ...string) []byte { return append([]byte(strings.Join(s, "\r\n")), '\r', '\n') } func TestHeader_WithTrailingSpaces(t *testing.T) { const literal = `From: Nathaniel Borenstein To: Ned Freed Subject: Sample message MIME-Version: 1.0 Content-type: multipart/mixed; boundary="simple boundary" ` header, err := NewHeader([]byte(literal)) require.NoError(t, err) require.Equal(t, "Nathaniel Borenstein ", header.Get("From")) require.Equal(t, "Ned Freed ", header.Get("To")) require.Equal(t, "Sample message", header.Get("Subject")) require.Equal(t, "1.0", header.Get("MIME-Version")) require.Equal(t, `multipart/mixed; boundary="simple boundary"`, header.Get("Content-type")) } func TestHeader_MBoxFormatCausesError(t *testing.T) { const literal = `X-Mozilla-Keys: >From 1637354717149124322@xxx Tue Jun 25 22:52:20 +0000 2019 X-GM-THIRD: 12345 ` _, err := NewHeader([]byte(literal)) require.Error(t, err) } func TestHeader_EmptyField(t *testing.T) { const literal = "X-Mozilla-Keys:\r\nX-GM-THIRD: 12345\r\n" header, err := NewHeader([]byte(literal)) require.NoError(t, err) require.Empty(t, header.Get("X-Mozilla-Key")) require.Equal(t, "12345", header.Get("X-GM-THIRD")) } func TestHeader_MissingLFAfterCRIsError(t *testing.T) { const literal = "X-Mozilla-Keys:\rX-GM-THIRD: 12345\r\n" _, err := NewHeader([]byte(literal)) require.Error(t, err) } func TestHeader_SingleEmptyField(t *testing.T) { header, err := NewHeader([]byte("Content-tYpe:\r")) //Panic require.NoError(t, err) require.Empty(t, header.Get("Content-Type")) } func TestHeader_NoSpaceAfterColonIsValid(t *testing.T) { header, err := NewHeader([]byte("Content-tYpe:Foobar\r\n")) //Panic require.NoError(t, err) require.Equal(t, "Foobar", header.Get("Content-Type")) } gluon-0.17.0/rfc822/mime.go000066400000000000000000000022411445200213000151750ustar00rootroot00000000000000package rfc822 import ( "mime" "strings" "unicode" ) // ParseMediaType parses a MIME media type. var ParseMediaType = mime.ParseMediaType type MIMEType string const ( TextPlain MIMEType = "text/plain" TextHTML MIMEType = "text/html" MultipartMixed MIMEType = "multipart/mixed" MultipartRelated MIMEType = "multipart/related" MessageRFC822 MIMEType = "message/rfc822" ) func (mimeType MIMEType) IsMultiPart() bool { return strings.HasPrefix(string(mimeType), "multipart/") } func (mimeType MIMEType) Type() string { if split := strings.SplitN(string(mimeType), "/", 2); len(split) == 2 { return split[0] } return "" } func (mimeType MIMEType) SubType() string { if split := strings.SplitN(string(mimeType), "/", 2); len(split) == 2 { return split[1] } return "" } func ParseMIMEType(val string) (MIMEType, map[string]string, error) { if val == "" { val = string(TextPlain) } sanitized := strings.Map(func(r rune) rune { if r > unicode.MaxASCII { return -1 } return r }, val) mimeType, mimeParams, err := ParseMediaType(sanitized) if err != nil { return "", nil, err } return MIMEType(mimeType), mimeParams, nil } gluon-0.17.0/rfc822/package.go000066400000000000000000000001221445200213000156350ustar00rootroot00000000000000// Package rfc822 implements methods for handling RFC822 messages. package rfc822 gluon-0.17.0/rfc822/parser.go000066400000000000000000000114311445200213000155430ustar00rootroot00000000000000package rfc822 import ( "bytes" "encoding/base64" "errors" "fmt" "io" "mime/quotedprintable" "github.com/sirupsen/logrus" ) var ErrNoSuchPart = errors.New("no such parts exists") type Section struct { identifier []int literal []byte parsedHeader *Header header int body int end int children []*Section } func Parse(literal []byte) *Section { return parse(literal, []int{}, 0, len(literal)) } func (section *Section) Identifier() []int { return section.identifier } func (section *Section) ContentType() (MIMEType, map[string]string, error) { header, err := section.ParseHeader() if err != nil { return "", nil, err } contentType := header.Get("Content-Type") mimeType, values, err := ParseMIMEType(contentType) if err != nil { logrus.Warnf("Message contains invalid mime type: %v", contentType) return "", nil, nil //nolint:nilerr } return mimeType, values, nil } func (section *Section) Header() []byte { return section.literal[section.header:section.body] } func (section *Section) ParseHeader() (*Header, error) { if section.parsedHeader == nil { h, err := NewHeader(section.Header()) if err != nil { return nil, err } section.parsedHeader = h } return section.parsedHeader, nil } func (section *Section) Body() []byte { return section.literal[section.body:section.end] } func (section *Section) DecodedBody() ([]byte, error) { header, err := section.ParseHeader() if err != nil { return nil, err } switch header.Get("Content-Transfer-Encoding") { case "base64": return base64Decode(section.Body()) case "quoted-printable": return quotedPrintableDecode(section.Body()) default: return section.Body(), nil } } func (section *Section) Literal() []byte { return section.literal[section.header:section.end] } func (section *Section) Children() ([]*Section, error) { if len(section.children) == 0 { if err := section.load(); err != nil { return nil, err } } return section.children, nil } func (section *Section) Part(identifier ...int) (*Section, error) { if len(identifier) > 0 { children, err := section.Children() if err != nil { return nil, err } if identifier[0] <= 0 || identifier[0]-1 > len(children) { return nil, ErrNoSuchPart } if len(children) != 0 { childIndex := identifier[0] - 1 if childIndex >= len(children) { return nil, fmt.Errorf("invalid part index") } return children[identifier[0]-1].Part(identifier[1:]...) } } return section, nil } func (section *Section) Walk(f func(*Section) error) error { if err := f(section); err != nil { return err } children, err := section.Children() if err != nil { return err } for _, child := range children { if err := child.Walk(f); err != nil { return err } } return nil } func (section *Section) load() error { contentType, contentParams, err := section.ContentType() if err != nil { return err } if MIMEType(contentType) == MessageRFC822 { child := parse( section.literal[section.body:section.end], section.identifier, 0, section.end-section.body, ) if err := child.load(); err != nil { return err } section.children = append(section.children, child.children...) } else if contentType.IsMultiPart() { scanner, err := NewByteScanner(section.literal[section.body:section.end], []byte(contentParams["boundary"])) if err != nil { return err } res := scanner.ScanAll() for idx, res := range res { child := parse( section.literal, append(section.identifier, idx+1), section.body+res.Offset, section.body+res.Offset+len(res.Data), ) section.children = append(section.children, child) } } return nil } func Split(b []byte) ([]byte, []byte) { remaining := b splitIndex := int(0) separator := []byte{'\n'} for len(remaining) != 0 { index := bytes.Index(remaining, separator) if index < 0 { splitIndex += len(remaining) break } splitIndex += index + 1 if len(bytes.Trim(remaining[0:index], "\r\n")) == 0 { break } remaining = remaining[index+1:] } return b[0:splitIndex], b[splitIndex:] } func parse(literal []byte, identifier []int, begin, end int) *Section { header, _ := Split(literal[begin:end]) parsedHeader, err := NewHeader(header) if err != nil { header = nil parsedHeader = nil } return &Section{ identifier: identifier, literal: literal, parsedHeader: parsedHeader, header: begin, body: begin + len(header), end: end, } } func base64Decode(b []byte) ([]byte, error) { res := make([]byte, base64.StdEncoding.DecodedLen(len(b))) n, err := base64.StdEncoding.Decode(res, b) if err != nil { return nil, err } return res[0:n], nil } func quotedPrintableDecode(b []byte) ([]byte, error) { return io.ReadAll(quotedprintable.NewReader(bytes.NewReader(b))) } gluon-0.17.0/rfc822/parser_test.go000066400000000000000000000220021445200213000165760ustar00rootroot00000000000000package rfc822 import ( "testing" "github.com/stretchr/testify/require" "github.com/stretchr/testify/assert" ) func TestParseNestedMultipartMixed(t *testing.T) { const literal = `From: Nathaniel Borenstein To: Ned Freed Subject: Sample message MIME-Version: 1.0 Content-type: multipart/mixed; boundary="simple boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --simple boundary Content-type: multipart/mixed; boundary="nested boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --nested boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --nested boundary Content-type: text/plain; charset=us-ascii This part does end with a linebreak. --nested boundary-- --simple boundary Content-type: text/plain; charset=us-ascii This part does end with a linebreak. --simple boundary-- This is the epilogue. It is also to be ignored. ` section := Parse([]byte(literal)) assert.Equal(t, literal, string(section.Literal())) { part, err := section.Part(1) require.NoError(t, err) assert.Equal(t, `Content-type: multipart/mixed; boundary="nested boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --nested boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --nested boundary Content-type: text/plain; charset=us-ascii This part does end with a linebreak. --nested boundary--`, string(part.Literal())) } { part, err := section.Part(2) require.NoError(t, err) assert.Equal(t, `Content-type: text/plain; charset=us-ascii This part does end with a linebreak. `, string(part.Literal())) } { part, err := section.Part(1, 1) require.NoError(t, err) assert.Equal(t, `Content-type: text/plain; charset=us-ascii This part does not end with a linebreak.`, string(part.Literal())) } { part, err := section.Part(1, 2) require.NoError(t, err) assert.Equal(t, `Content-type: text/plain; charset=us-ascii This part does end with a linebreak. `, string(part.Literal())) } } const embeddedLiteral = `From: Nathaniel Borenstein To: Ned Freed Subject: Sample message MIME-Version: 1.0 Content-type: multipart/mixed; boundary="simple boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --simple boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --simple boundary Content-Disposition: attachment; filename=test.eml Content-Type: message/rfc822; name=test.eml X-Pm-Content-Encryption: on-import To: someone Subject: Fwd: embedded Content-type: multipart/mixed; boundary="embedded-boundary" --embedded-boundary Content-type: text/plain; charset=us-ascii This part is embedded -- From me --embedded-boundary Content-type: text/plain; charset=us-ascii This part is also embedded --embedded-boundary-- --simple boundary-- This is the epilogue. It is also to be ignored. ` func TestParseEmbeddedMessage(t *testing.T) { section := Parse([]byte(embeddedLiteral)) assert.Equal(t, embeddedLiteral, string(section.Literal())) { part, err := section.Part(1) require.NoError(t, err) assert.Equal(t, `Content-type: text/plain; charset=us-ascii This part does not end with a linebreak.`, string(part.Literal())) } { part, err := section.Part(2) require.NoError(t, err) assert.Equal(t, `Content-Disposition: attachment; filename=test.eml Content-Type: message/rfc822; name=test.eml X-Pm-Content-Encryption: on-import To: someone Subject: Fwd: embedded Content-type: multipart/mixed; boundary="embedded-boundary" --embedded-boundary Content-type: text/plain; charset=us-ascii This part is embedded -- From me --embedded-boundary Content-type: text/plain; charset=us-ascii This part is also embedded --embedded-boundary--`, string(part.Literal())) } { part, err := section.Part(2, 1) require.NoError(t, err) assert.Equal(t, `Content-type: text/plain; charset=us-ascii This part is embedded -- From me`, string(part.Literal())) } { part, err := section.Part(2, 2) require.NoError(t, err) assert.Equal(t, `Content-type: text/plain; charset=us-ascii This part is also embedded`, string(part.Literal())) } } func TestParseSpaceLineHeaderMessage(t *testing.T) { const literal = `Content-Type: text/plain Date: Thu, 03 Sep 2020 16:47:43 +0000 (UTC) Subject: Sometimes header fields can be long and contain space line :shrug: From: Dad To: Ships Why does the Norway navy have bar codes on the side of their ships? So when they com back to port they can Scandinavian ` section := Parse([]byte(literal)) assert.Equal(t, literal, string(section.Literal())) assert.Equal(t, `Content-Type: text/plain Date: Thu, 03 Sep 2020 16:47:43 +0000 (UTC) Subject: Sometimes header fields can be long and contain space line :shrug: From: Dad To: Ships `, string(section.Header()), ) assert.Equal(t, `Why does the Norway navy have bar codes on the side of their ships? So when they com back to port they can Scandinavian `, string(section.Body()), ) } func TestCarriageReturnHandling(t *testing.T) { const literal = "Content-Type: multipart/alternative; boundary=\"------------62DCF50B21CF279F489F0184\"\r\n\r\n\r\n" + "--------------62DCF50B21CF279F489F0184\r\nContent-Type: text/plain; charset=utf-8; format=flowed\r\n" + "Content-Transfer-Encoding: 7bit\r\n\r\n*this */is**/_html_\r\n**\r\n\r\n--------------62DCF50B21CF279F489F0184\r\n" + "Content-Type: text/html; charset=utf-8\r\nContent-Transfer-Encoding: 7bit\r\n\r\n--------------62DCF50B21CF279F489F0184--\r\n" section := Parse([]byte(literal)) assert.Equal(t, literal, string(section.Literal())) { part, err := section.Part(1) require.NoError(t, err) assert.Equal(t, "Content-Type: text/plain; charset=utf-8; format=flowed\r\nContent-Transfer-Encoding: 7bit\r\n\r\n*this */is**/_html_\r\n**\r\n", string(part.Literal())) } } func TestSectionWalk(t *testing.T) { const literal = `From: Nathaniel Borenstein To: Ned Freed Subject: Sample message MIME-Version: 1.0 Content-type: multipart/mixed; boundary="simple boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --simple boundary Content-type: multipart/mixed; boundary="nested boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --nested boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --nested boundary Content-type: text/plain; charset=us-ascii This part does end with a linebreak. --nested boundary-- --simple boundary Content-type: text/plain; charset=us-ascii This part does end with a linebreak. --simple boundary-- This is the epilogue. It is also to be ignored. ` section := Parse([]byte(literal)) var parts [][]byte require.NoError(t, section.Walk(func(part *Section) error { children, err := part.Children() if err != nil { return err } if len(children) == 0 { parts = append(parts, part.Body()) } return nil })) assert.Equal(t, [][]byte{ []byte("This part does not end with a linebreak."), []byte("This part does end with a linebreak.\n"), []byte("This part does end with a linebreak.\n"), }, parts) } func TestSectionDecodedBody(t *testing.T) { const literal = `From: Sender To: Receiver Content-Transfer-Encoding: base64 Ym9keQ== ` body, err := Parse([]byte(literal)).DecodedBody() require.NoError(t, err) assert.Equal(t, []byte("body"), body) } func FuzzParseDec(f *testing.F) { f.Add([]byte(`From: Sender To: Receiver Content-Transfer-Encoding: base64 Ym9keQ== `)) f.Add([]byte("Content-Type: multipart/alternative; boundary=\"------------62DCF50B21CF279F489F0184\"\r\n\r\n\r\n" + "--------------62DCF50B21CF279F489F0184\r\nContent-Type: text/plain; charset=utf-8; format=flowed\r\n" + "Content-Transfer-Encoding: 7bit\r\n\r\n*this */is**/_html_\r\n**\r\n\r\n--------------62DCF50B21CF279F489F0184\r\n" + "Content-Type: text/html; charset=utf-8\r\nContent-Transfer-Encoding: 7bit\r\n\r\n--------------62DCF50B21CF279F489F0184--\r\n")) f.Fuzz(func(t *testing.T, inputData []byte) { _, _ = Parse(inputData).DecodedBody() }) } func TestParserAccessingInvalidPartDoesNotCrash(t *testing.T) { section := Parse([]byte(embeddedLiteral)) assert.Equal(t, embeddedLiteral, string(section.Literal())) _, err := section.Part(2, 3) require.Error(t, err) } gluon-0.17.0/rfc822/scanner.go000066400000000000000000000073331445200213000157060ustar00rootroot00000000000000package rfc822 import ( "bytes" ) type Part struct { Data []byte Offset int } type ByteScanner struct { data []byte startBoundary []byte progress int } func NewByteScanner(data []byte, boundary []byte) (*ByteScanner, error) { scanner := &ByteScanner{ data: data, startBoundary: append([]byte{'-', '-'}, boundary...), } scanner.readToBoundary() return scanner, nil } func (s *ByteScanner) ScanAll() []Part { var parts []Part for { offset := s.progress data, more := s.readToBoundary() if data != nil { parts = append(parts, Part{Data: data, Offset: offset}) } if !more { return parts } } } func indexOfNewLineAfterBoundary(data []byte) int { dataLen := len(data) if dataLen == 0 { return -1 } if dataLen == 1 && data[0] == '\n' { return 0 } // consume extra '\r's index := 0 for ; index < dataLen && data[index] == '\r'; index++ { } if index < dataLen && data[index] == '\n' { return index } return -1 } func (s *ByteScanner) getPreviousLineBreakIndex(offset int) int { if s.progress == offset { return 0 } else if s.data[offset-1] == '\n' { if offset-s.progress >= 2 && s.data[offset-2] == '\r' { return 2 } return 1 } return -1 } // readToBoundary returns the slice matching to the boundary and whether this is the start or the end of said boundary. func (s *ByteScanner) readToBoundary() ([]byte, bool) { boundarySuffix := []byte{'-', '-'} boundarySuffixLen := len(boundarySuffix) boundaryLen := len(s.startBoundary) dataLen := len(s.data) searchStart := s.progress for s.progress < dataLen { remaining := s.data[s.progress:] index := bytes.Index(remaining, s.startBoundary) if index < 0 { s.progress = len(s.data) return remaining, false } // Matched the pattern, now we need to check if the previous line break is available or not. It can also not be // available if the pattern just happens to match exactly at the offset search. prevNewLineOffset := s.getPreviousLineBreakIndex(s.progress + index) if prevNewLineOffset != -1 { // Since we matched the pattern we can check whether this is a starting or terminating pattern. if s.progress+index+boundaryLen+boundarySuffixLen <= dataLen && bytes.Equal(remaining[index+boundaryLen:index+boundaryLen+boundarySuffixLen], boundarySuffix) { lineEndIndex := index + boundaryLen + boundarySuffixLen afterBoundary := remaining[lineEndIndex:] var newLineStartIndex int // It can happen that this boundary is at the end of the file/message with no new line. if len(afterBoundary) != 0 { newLineStartIndex = indexOfNewLineAfterBoundary(afterBoundary) // If there is no new line this can't be a boundary pattern. RFC 1341 states that tey are // immediately followed by either \r\n or \n. if newLineStartIndex < 0 { s.progress += index + boundaryLen + boundarySuffixLen continue } } else { newLineStartIndex = 0 } result := s.data[searchStart : s.progress+index-prevNewLineOffset] s.progress += index + boundaryLen + boundarySuffixLen + newLineStartIndex + 1 return result, false } else { // Check for new line. lineEndIndex := index + boundaryLen afterBoundary := remaining[lineEndIndex:] newLineStart := indexOfNewLineAfterBoundary(afterBoundary) // If there is no new line this can't be a boundary pattern. RFC 1341 states that tey are // immediately followed by either \r\n or \n. if newLineStart < 0 { s.progress += index + boundaryLen continue } result := s.data[searchStart : s.progress+index-prevNewLineOffset] s.progress += index + boundaryLen + newLineStart + 1 return result, true } } s.progress += index + boundaryLen } return nil, false } gluon-0.17.0/rfc822/scanner_test.go000066400000000000000000000074121445200213000167430ustar00rootroot00000000000000package rfc822 import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestScanner(t *testing.T) { const literal = `this part of the text should be ignored --longrandomstring body1 --longrandomstring body2 --longrandomstring-- ` { scanner, err := NewByteScanner([]byte(literal), []byte("longrandomstring")) require.NoError(t, err) parts := scanner.ScanAll() require.Equal(t, len(parts), 2) assert.Equal(t, "\nbody1\n", string(parts[0].Data)) assert.Equal(t, "\nbody2\n", string(parts[1].Data)) assert.Equal(t, "\nbody1\n", literal[parts[0].Offset:parts[0].Offset+len(parts[0].Data)]) assert.Equal(t, "\nbody2\n", literal[parts[1].Offset:parts[1].Offset+len(parts[1].Data)]) } } func TestScannerMalformedLineEnding(t *testing.T) { // contains an extra \r before new line after boundary const literal = "this part of the text should be ignored\r\n--longrandomstring\r\r\n\r\nbody1\r\n\r\n--longrandomstring\r\r\n\r\nbody2\r\n\r\n--longrandomstring--\r\r\n" { scanner, err := NewByteScanner([]byte(literal), []byte("longrandomstring")) require.NoError(t, err) parts := scanner.ScanAll() require.Equal(t, len(parts), 2) assert.Equal(t, "\r\nbody1\r\n", string(parts[0].Data)) assert.Equal(t, "\r\nbody2\r\n", string(parts[1].Data)) assert.Equal(t, "\r\nbody1\r\n", literal[parts[0].Offset:parts[0].Offset+len(parts[0].Data)]) assert.Equal(t, "\r\nbody2\r\n", literal[parts[1].Offset:parts[1].Offset+len(parts[1].Data)]) } } func TestScannerNested(t *testing.T) { const literal = `This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --simple boundary Content-type: multipart/mixed; boundary="nested boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --nested boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --nested boundary Content-type: text/plain; charset=us-ascii This part does end with a linebreak. --nested boundary-- --simple boundary Content-type: text/plain; charset=us-ascii This part does end with a linebreak. --simple boundary-- This is the epilogue. It is also to be ignored. ` scanner, err := NewByteScanner([]byte(literal), []byte("simple boundary")) require.NoError(t, err) parts := scanner.ScanAll() require.Equal(t, 2, len(parts)) assert.Equal(t, `Content-type: multipart/mixed; boundary="nested boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --nested boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --nested boundary Content-type: text/plain; charset=us-ascii This part does end with a linebreak. --nested boundary--`, string(parts[0].Data)) assert.Equal(t, `Content-type: text/plain; charset=us-ascii This part does end with a linebreak. `, string(parts[1].Data)) } func TestScannerNoFinalLinebreak(t *testing.T) { const literal = ` --nested boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --nested boundary Content-type: text/plain; charset=us-ascii This part does end with a linebreak. --nested boundary--` scanner, err := NewByteScanner([]byte(literal), []byte("nested boundary")) require.NoError(t, err) parts := scanner.ScanAll() require.Equal(t, 2, len(parts)) assert.Equal(t, `Content-type: text/plain; charset=us-ascii This part does not end with a linebreak.`, string(parts[0].Data)) assert.Equal(t, `Content-type: text/plain; charset=us-ascii This part does end with a linebreak. `, string(parts[1].Data)) } gluon-0.17.0/rfc822/writer.go000066400000000000000000000012201445200213000155560ustar00rootroot00000000000000package rfc822 import ( "bytes" "fmt" "io" ) type MultipartWriter struct { w io.Writer boundary string } func NewMultipartWriter(w io.Writer, boundary string) *MultipartWriter { return &MultipartWriter{w: w, boundary: boundary} } func (w *MultipartWriter) AddPart(fn func(io.Writer) error) error { buf := new(bytes.Buffer) if err := fn(buf); err != nil { return err } if _, err := fmt.Fprintf(w.w, "--%v\r\n%v\r\n", w.boundary, buf.String()); err != nil { return err } return nil } func (w *MultipartWriter) Done() error { if _, err := fmt.Fprintf(w.w, "--%v--\r\n", w.boundary); err != nil { return err } return nil } gluon-0.17.0/rfc822/writer_test.go000066400000000000000000000014561445200213000166300ustar00rootroot00000000000000package rfc822 import ( "bytes" "fmt" "io" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestMultipartWriter(t *testing.T) { b := new(bytes.Buffer) w := NewMultipartWriter(b, "boundary") require.NoError(t, w.AddPart(func(w io.Writer) error { if _, err := fmt.Fprintf(w, "1"); err != nil { return err } return nil })) require.NoError(t, w.AddPart(func(w io.Writer) error { if _, err := fmt.Fprintf(w, "2"); err != nil { return err } return nil })) require.NoError(t, w.AddPart(func(w io.Writer) error { if _, err := fmt.Fprintf(w, "3"); err != nil { return err } return nil })) require.NoError(t, w.Done()) assert.Equal(t, "--boundary\r\n1\r\n--boundary\r\n2\r\n--boundary\r\n3\r\n--boundary--\r\n", b.String()) } gluon-0.17.0/rfcparser/000077500000000000000000000000001445200213000147015ustar00rootroot00000000000000gluon-0.17.0/rfcparser/parser.go000066400000000000000000000325101445200213000165250ustar00rootroot00000000000000package rfcparser import ( "errors" "fmt" "strings" ) // Parser provide facilities to consumes tokens from a given scanner. Advance should be called at least once before // any checks in order to initialize the previousToken. type Parser struct { scanner *Scanner literalContinuationCb func() error previousToken Token currentToken Token } type Error struct { Token Token Message string } type Bytes struct { Value []byte Offset int } func (c Bytes) IntoString() String { return String{ Value: string(c.Value), Offset: c.Offset, } } type String struct { Value string Offset int } func (c String) ToLower() String { return String{ Value: strings.ToLower(c.Value), Offset: c.Offset, } } func (p *Error) Error() string { return fmt.Sprintf("[Error offset=%v]: %v", p.Token.Offset, p.Message) } func (p *Error) IsEOF() bool { return p.Token.TType == TokenTypeEOF } func IsError(err error) bool { var perr *Error return errors.As(err, &perr) } type ParserState struct { prevToken Token curToken Token } func NewParser(s *Scanner) *Parser { return &Parser{scanner: s} } func NewParserWithLiteralContinuationCb(s *Scanner, f func() error) *Parser { return &Parser{scanner: s, literalContinuationCb: f, previousToken: Token{ TType: TokenTypeEOF, Value: 0, Offset: 0, }, currentToken: Token{ TType: TokenTypeEOF, Value: 0, Offset: 0, }} } // ParseAString parses an astring according to RFC3501. func (p *Parser) ParseAString() (String, error) { /* astring = 1*ASTRING-CHAR / string */ if p.Check(TokenTypeDQuote) || p.Check(TokenTypeLCurly) { return p.ParseString() } astring, err := p.CollectBytesWhileMatchesWith(IsAStringChar) if err != nil { return String{}, err } return astring.IntoString(), nil } func (p *Parser) TryParseString() (String, bool, error) { if !p.Check(TokenTypeDQuote) && !p.Check(TokenTypeLCurly) { return String{}, false, nil } v, err := p.ParseString() return v, true, err } // ParseString parses a string according to RFC3501. func (p *Parser) ParseString() (String, error) { /* string = quoted / literal */ if p.Check(TokenTypeDQuote) { return p.ParseQuoted() } else if p.Check(TokenTypeLCurly) { startOffset := p.currentToken.Offset l, err := p.ParseLiteral() if err != nil { return String{}, err } return String{Value: string(l), Offset: startOffset}, err } return String{}, p.MakeError("unexpected character, expected start of quote or literal") } // ParseQuoted parses a quoted string. func (p *Parser) ParseQuoted() (String, error) { /* quoted = DQUOTE *QUOTED-CHAR DQUOTE QUOTED-CHAR = / "\" quoted-specials */ if err := p.Consume(TokenTypeDQuote, `Expected '"' for quoted start`); err != nil { return String{}, err } var quoted []byte startOffset := p.currentToken.Offset for { if ok, err := p.MatchesWith(IsQuotedChar); err != nil { return String{}, err } else if ok { quoted = append(quoted, p.previousToken.Value) } else { if ok, err := p.Matches(TokenTypeBackslash); err != nil { return String{}, err } else if ok { if err := p.ConsumeWith(IsQuotedSpecial, `Expected '\' or '"' after '\' in quoted`); err != nil { return String{}, err } quoted = append(quoted, p.previousToken.Value) } else { break } } } if err := p.Consume(TokenTypeDQuote, `Expected '"' for quoted end`); err != nil { return String{}, err } return String{Value: string(quoted), Offset: startOffset}, nil } // ParseLiteral parses a literal as defined in RFC3501. func (p *Parser) ParseLiteral() ([]byte, error) { /* literal = "{" number "}" CRLF *CHAR8 */ if err := p.Consume(TokenTypeLCurly, "expected '{' for literal start"); err != nil { return nil, err } literalSize, err := p.ParseNumber() if err != nil { return nil, err } if literalSize <= 0 { return nil, fmt.Errorf("invalid literal size") } if literalSize >= 30*1024*1024 { return nil, fmt.Errorf("literal size exceeds maximum size of 30MB") } if err := p.Consume(TokenTypeRCurly, "expected '}' for literal end"); err != nil { return nil, err } if err := p.Consume(TokenTypeCR, "expected CR"); err != nil { return nil, err } // Call literal continuation callback here or we risk getting stuck forever trying to read the next token // in the scanner due to the byte buffers implementation as there will be no more new input until the we signal // for more input. if p.Check(TokenTypeLF) && p.literalContinuationCb != nil { if err := p.literalContinuationCb(); err != nil { return nil, fmt.Errorf("error occurred during literal continuation callback:%w", err) } } if err := p.Consume(TokenTypeLF, "expected LF after CR"); err != nil { return nil, err } literal := make([]byte, literalSize) if err := p.scanner.ConsumeBytes(literal); err != nil { return nil, err } // Need to advance parser after scanning literal so that next token is loaded if err := p.Advance(); err != nil { return nil, err } return literal, nil } // ParseNumber parses a non decimal number without any signs. func (p *Parser) ParseNumber() (int, error) { if err := p.Consume(TokenTypeDigit, "expected valid digit for number"); err != nil { return 0, err } number := ByteToInt(p.previousToken.Value) for { if ok, err := p.Matches(TokenTypeDigit); err != nil { return 0, err } else if ok { number *= 10 number += ByteToInt(p.previousToken.Value) } else { break } } return number, nil } // ParseNumberN parses a non decimal with N digits. func (p *Parser) ParseNumberN(n int) (int, error) { if n == 0 { return 0, p.MakeError("requested ParserNumberN with 0 length number") } if err := p.Consume(TokenTypeDigit, "expected valid digit for number"); err != nil { return 0, err } number := ByteToInt(p.previousToken.Value) for i := 0; i < n-1; i++ { if ok, err := p.Matches(TokenTypeDigit); err != nil { return 0, err } else if ok { number *= 10 number += ByteToInt(p.previousToken.Value) } else { break } } return number, nil } func (p *Parser) ParseAtom() (string, error) { if err := p.ConsumeWith(IsAtomChar, "Invalid character detected in atom"); err != nil { return "", err } atom, err := p.CollectBytesWhileMatchesWithPrevWith(IsAtomChar) if err != nil { return "", err } return string(atom.Value), nil } // Check if the next token matches the given input. func (p *Parser) Check(tokenType TokenType) bool { return p.currentToken.TType == tokenType } // CheckWith checks if the next token matches the given condition. func (p *Parser) CheckWith(f func(tokenType TokenType) bool) bool { return f(p.currentToken.TType) } // ConsumeNewLine issues two Consume calls for the `CRLF` token sequence. func (p *Parser) ConsumeNewLine() error { if err := p.Consume(TokenTypeCR, "expected CR"); err != nil { return err } if err := p.Consume(TokenTypeLF, "expected LF after CR"); err != nil { return err } return nil } // Consume will advance the scanner to the next token if the current token matches the given token. If current // token does not match, an error with given message will be returned. func (p *Parser) Consume(tokenType TokenType, message string) error { return p.ConsumeWith(func(token TokenType) bool { return token == tokenType }, message) } // ConsumeWith will advance the scanner to the next token if the current token matches the given condition. If current // token does not match, an error with given message will be returned. func (p *Parser) ConsumeWith(f func(token TokenType) bool, message string) error { if f(p.currentToken.TType) { return p.Advance() } return p.MakeError(message) } // ConsumeBytes will advance if the next token value matches the given sequence. func (p *Parser) ConsumeBytes(chars ...byte) error { for _, c := range chars { if p.currentToken.Value != c { return p.MakeError(fmt.Sprintf("expected byte value %x", c)) } if err := p.Advance(); err != nil { return err } } return nil } // ConsumeBytesFold behaves the same as ConsumeBytes, but case insensitive for characters. func (p *Parser) ConsumeBytesFold(chars ...byte) error { for _, c := range chars { if ByteToLower(p.currentToken.Value) != ByteToLower(c) { return p.MakeError(fmt.Sprintf("expected byte value %x", c)) } if err := p.Advance(); err != nil { return err } } return nil } // MatchesWith will advance the scanner to the next token and return true if the current token matches the given // condition. func (p *Parser) MatchesWith(f func(tokenType TokenType) bool) (bool, error) { if !p.CheckWith(f) { return false, nil } err := p.Advance() return true, err } // Matches will advance the scanner to the next token and return true if the current token matches the given tokenType. func (p *Parser) Matches(tokenType TokenType) (bool, error) { if !p.Check(tokenType) { return false, nil } err := p.Advance() return true, err } // Advance advances the scanner to the next token. func (p *Parser) Advance() error { p.previousToken = p.currentToken nextToken, err := p.scanner.ScanToken() if err != nil { return err } p.currentToken = nextToken return nil } // CollectBytesWhileMatchesWithPrev collects bytes from the token scanner while tokens match the given token type. // This function INCLUDES the previous token consumed before this call. func (p *Parser) CollectBytesWhileMatchesWithPrev(tokenType TokenType) (Bytes, error) { return p.CollectBytesWhileMatchesWithPrevWith(func(tt TokenType) bool { return tt == tokenType }) } // CollectBytesWhileMatchesWithPrevWith collects bytes from the token scanner while tokens match the given condition. // This function INCLUDES the previous token consumed before this call. func (p *Parser) CollectBytesWhileMatchesWithPrevWith(f func(tokenType TokenType) bool) (Bytes, error) { value := []byte{p.previousToken.Value} startOffset := p.previousToken.Offset for { if ok, err := p.MatchesWith(f); err != nil { return Bytes{}, err } else if ok { value = append(value, p.previousToken.Value) } else { break } } return Bytes{Value: value, Offset: startOffset}, nil } // CollectBytesWhileMatches collects bytes from the token scanner while tokens match the given token type. This function // DOES NOT INCLUDE the previous token consumed before this call. func (p *Parser) CollectBytesWhileMatches(tokenType TokenType) (Bytes, error) { return p.CollectBytesWhileMatchesWith(func(tt TokenType) bool { return tt == tokenType }) } // CollectBytesWhileMatchesWith collects bytes from the token scanner while tokens match the given condition. This // function DOES NOT INCLUDE the previous token consumed before this call. func (p *Parser) CollectBytesWhileMatchesWith(f func(tokenType TokenType) bool) (Bytes, error) { var value []byte startOffset := p.currentToken.Offset for { if ok, err := p.MatchesWith(f); err != nil { return Bytes{}, err } else if ok { value = append(value, p.previousToken.Value) } else { break } } return Bytes{Value: value, Offset: startOffset}, nil } // ResetOffsetCounter resets the token offset back to 0. func (p *Parser) ResetOffsetCounter() { p.scanner.ResetOffsetCounter() } func (p *Parser) PreviousToken() Token { return p.previousToken } func (p *Parser) CurrentToken() Token { return p.currentToken } func (p *Parser) MakeError(err string) error { return &Error{ Token: p.previousToken, Message: err, } } func (p *Parser) MakeErrorAtOffset(err string, offset int) error { return &Error{ Token: Token{ TType: TokenTypeError, Offset: offset, }, Message: err, } } // SaveState saves the current and previous token state so it can potentially be restored later with RestoreState. func (p *Parser) SaveState() ParserState { return ParserState{ prevToken: p.previousToken, curToken: p.currentToken, } } // RestoreState restores the previous and current tokens from the given state. // NOTE: If this is called without adjusting the scanner input to the location where these were recorded // you can break your parsing. func (p *Parser) RestoreState(state ParserState) { p.previousToken = state.prevToken p.currentToken = state.curToken } func IsAStringChar(tokenType TokenType) bool { /* ASTRING-CHAR = ATOM-CHAR / resp-specials */ return IsAtomChar(tokenType) || IsRespSpecial(tokenType) } func IsAtomChar(tokenType TokenType) bool { /* ATOM-CHAR = atom-specials = "(" / ")" / "{" / SP / CTL / list-wildcards / quoted-specials / resp-specials */ switch tokenType { //nolint:exhaustive case TokenTypeLParen: fallthrough case TokenTypeRParen: fallthrough case TokenTypeLBracket: fallthrough case TokenTypeEOF: fallthrough case TokenTypeSP: return false } return !IsQuotedSpecial(tokenType) && !IsRespSpecial(tokenType) && !IsCTL(tokenType) } func IsQuotedSpecial(tokenType TokenType) bool { return tokenType == TokenTypeDQuote || tokenType == TokenTypeBackslash } func IsRespSpecial(tokenType TokenType) bool { return tokenType == TokenTypeRBracket } func IsQuotedChar(tokenType TokenType) bool { return !IsQuotedSpecial(tokenType) } func IsCTL(tokenType TokenType) bool { return tokenType == TokenTypeCTL || tokenType == TokenTypeCR || tokenType == TokenTypeLF || tokenType == TokenTypeTab } func ByteToInt(b byte) int { return int(b) - int(byte('0')) } gluon-0.17.0/rfcparser/parser_test.go000066400000000000000000000051041445200213000175630ustar00rootroot00000000000000package rfcparser import ( "bytes" "testing" "github.com/stretchr/testify/require" ) func newTestParser(input []byte) *Parser { p := NewParser(NewScanner(bytes.NewReader(input))) if err := p.Advance(); err != nil { panic("Could not advance parser to first token") } return p } func TestParser_ParseNumber(t *testing.T) { input := []byte(`1024`) p := newTestParser(input) v, err := p.ParseNumber() require.NoError(t, err) require.Equal(t, 1024, v) } func TestParser_ParseNumberInvalid(t *testing.T) { inputs := [][]byte{ []byte(`-1`), []byte(`.1`), []byte(`a`), []byte(`+1`), } for _, i := range inputs { p := newTestParser(i) _, err := p.ParseNumber() require.Error(t, err) } } func TestParser_ParseQuoted(t *testing.T) { values := map[string]string{ `"hello world 10234"`: `hello world 10234`, `"h\"b\"c"`: `h"b"c`, `"\\{}@foo&^*(#$!<>="`: `\{}@foo&^*(#$!<>=`, } for input, expected := range values { p := newTestParser([]byte(input)) v, err := p.ParseQuoted() require.NoError(t, err) require.Equal(t, expected, v.Value) } } func TestParser_ParseQuotedInvalid(t *testing.T) { inputs := [][]byte{ []byte(`"foo`), []byte(`"x\f"`), []byte(`"\/"'`), []byte(`foo"'`), } for _, i := range inputs { p := newTestParser(i) _, err := p.ParseNumber() require.Error(t, err) } } func TestParser_ParseString(t *testing.T) { // Strings are either quoted or literals. values := map[string]string{ `"hello world 10234"`: `hello world 10234`, "{5}\r\n01234": `01234`, } for input, expected := range values { p := newTestParser([]byte(input)) v, err := p.ParseString() require.NoError(t, err) require.Equal(t, expected, v.Value) } } func TestParser_ParseLiteral(t *testing.T) { // Strings are either quoted or literals. values := map[string]string{ "{5}\r\n h123": ` h123`, "{6}\r\n你好": `你好`, } for input, expected := range values { p := newTestParser([]byte(input)) v, err := p.ParseLiteral() require.NoError(t, err) require.Equal(t, []byte(expected), v) } } func TestParser_ParseAString(t *testing.T) { values := map[string]string{ "{5}\r\n h123": ` h123`, "{6}\r\n你好": `你好`, `"hello world 10234"`: `hello world 10234`, `"h\"b\"c"`: `h"b"c`, `"\\{}@foo&^*(#$!<>="`: `\{}@foo&^*(#$!<>=`, `hello_world`: `hello_world`, `hello-1234`: `hello-1234`, } for input, expected := range values { p := newTestParser([]byte(input)) v, err := p.ParseAString() require.NoError(t, err) require.Equal(t, expected, v.Value) } } gluon-0.17.0/rfcparser/scanner.go000066400000000000000000000120731445200213000166640ustar00rootroot00000000000000package rfcparser import ( "bufio" "errors" "fmt" "io" ) type TokenType int const ( TokenTypeEOF TokenType = iota TokenTypeError TokenTypeSP TokenTypeExclamation TokenTypeDQuote TokenTypeHash TokenTypeDollar TokenTypePercent TokenTypeAmpersand TokenTypeSQuote TokenTypeLParen TokenTypeRParen TokenTypeAsterisk TokenTypePlus TokenTypeComma TokenTypeMinus TokenTypePeriod TokenTypeSlash TokenTypeSemicolon TokenTypeColon TokenTypeLess TokenTypeEqual TokenTypeGreater TokenTypeQuestion TokenTypeAt TokenTypeLBracket TokenTypeRBracket TokenTypeCaret TokenTypeUnderscore TokenTyeBacktick TokenTypeLCurly TokenTypePipe TokenTypeRCurly TokenTypeTilde TokenTypeBackslash TokenTypeDigit TokenTypeChar TokenTypeExtendedChar TokenTypeCR TokenTypeLF TokenTypeCTL TokenTypeTab TokenTypeDelete TokenTypeZero ) type Token struct { TType TokenType Value byte Offset int } type Scanner struct { source Reader currentByte byte offset int } type Reader interface { io.Reader ReadByte() (byte, error) ReadBytes(byte) ([]byte, error) } func NewScanner(source io.Reader) *Scanner { return &Scanner{ source: bufio.NewReader(source), } } func NewScannerWithReader(source Reader) *Scanner { return &Scanner{ source: source, } } func (s *Scanner) ConsumeBytes(dst []byte) error { // We have already read a byte at this point, so we need to // skip this one. dst[0] = s.currentByte if _, err := io.ReadFull(s.source, dst[1:]); err != nil { if errors.Is(err, io.ErrUnexpectedEOF) { return io.EOF } return err } s.offset += len(dst) - 1 return nil } func (s *Scanner) ConsumeUntilNewLine() ([]byte, error) { return s.source.ReadBytes('\n') } func (s *Scanner) ScanToken() (Token, error) { b, err := s.advance() if err != nil { if errors.Is(err, io.EOF) { return s.makeEOF(), nil } return Token{}, nil } if isByteDigit(b) { return s.makeToken(TokenTypeDigit), nil } if isByteAlpha(b) { return s.makeToken(TokenTypeChar), nil } if isByteExtendedChar(b) { return s.makeToken(TokenTypeExtendedChar), nil } if isByteCTL(b) { switch b { case 0x0: return s.makeToken(TokenTypeZero), nil case '\r': return s.makeToken(TokenTypeCR), nil case '\n': return s.makeToken(TokenTypeLF), nil case '\t': return s.makeToken(TokenTypeTab), nil default: return s.makeToken(TokenTypeCTL), nil } } switch b { case ' ': return s.makeToken(TokenTypeSP), nil case '!': return s.makeToken(TokenTypeExclamation), nil case '"': return s.makeToken(TokenTypeDQuote), nil case '#': return s.makeToken(TokenTypeHash), nil case '$': return s.makeToken(TokenTypeDollar), nil case '%': return s.makeToken(TokenTypePercent), nil case '&': return s.makeToken(TokenTypeAmpersand), nil case '\'': return s.makeToken(TokenTypeSQuote), nil case '\\': return s.makeToken(TokenTypeBackslash), nil case '(': return s.makeToken(TokenTypeLParen), nil case ')': return s.makeToken(TokenTypeRParen), nil case '*': return s.makeToken(TokenTypeAsterisk), nil case '+': return s.makeToken(TokenTypePlus), nil case ',': return s.makeToken(TokenTypeComma), nil case '-': return s.makeToken(TokenTypeMinus), nil case '.': return s.makeToken(TokenTypePeriod), nil case '/': return s.makeToken(TokenTypeSlash), nil case ':': return s.makeToken(TokenTypeColon), nil case ';': return s.makeToken(TokenTypeSemicolon), nil case '<': return s.makeToken(TokenTypeLess), nil case '=': return s.makeToken(TokenTypeEqual), nil case '>': return s.makeToken(TokenTypeGreater), nil case '?': return s.makeToken(TokenTypeQuestion), nil case '@': return s.makeToken(TokenTypeAt), nil case '[': return s.makeToken(TokenTypeLBracket), nil case ']': return s.makeToken(TokenTypeRBracket), nil case '^': return s.makeToken(TokenTypeCaret), nil case '_': return s.makeToken(TokenTypeUnderscore), nil case '`': return s.makeToken(TokenTyeBacktick), nil case '{': return s.makeToken(TokenTypeLCurly), nil case '|': return s.makeToken(TokenTypePipe), nil case '}': return s.makeToken(TokenTypeRCurly), nil case '~': return s.makeToken(TokenTypeTilde), nil case 0x7F: return s.makeToken(TokenTypeDelete), nil } return Token{}, fmt.Errorf("unexpected character %v", b) } func (s *Scanner) ResetOffsetCounter() { s.offset = 0 } func (s *Scanner) advance() (byte, error) { b, err := s.source.ReadByte() if err != nil { return 0, err } s.currentByte = b s.offset += 1 return b, nil } func (s *Scanner) makeToken(t TokenType) Token { return Token{ TType: t, Value: s.currentByte, Offset: s.offset, } } func (s *Scanner) makeEOF() Token { return Token{ TType: TokenTypeEOF, Value: 0, Offset: s.offset, } } func isByteAlpha(b byte) bool { return (b >= 65 && b <= 90) || (b >= 97 && b <= 122) } func isByteDigit(b byte) bool { return b >= byte('0') && b <= byte('9') } func isByteExtendedChar(b byte) bool { return b >= 128 } func isByteCTL(b byte) bool { return b <= 31 } func ByteToLower(b byte) byte { if b >= 65 && b <= 90 { return 97 + (b - byte(65)) } return b } gluon-0.17.0/server.go000066400000000000000000000224461445200213000145570ustar00rootroot00000000000000// Package gluon implements an IMAP4rev1 (+ extensions) mailserver. package gluon import ( "context" "crypto/tls" "errors" "fmt" "io" "net" "sync" "time" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/events" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/backend" "github.com/ProtonMail/gluon/internal/contexts" "github.com/ProtonMail/gluon/internal/session" "github.com/ProtonMail/gluon/logging" "github.com/ProtonMail/gluon/profiling" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/store" "github.com/ProtonMail/gluon/version" "github.com/ProtonMail/gluon/watcher" _ "github.com/mattn/go-sqlite3" "github.com/sirupsen/logrus" ) // Server is the gluon IMAP server. type Server struct { // dataDir is the directory in which backend files should be stored. dataDir string // databaseDir is the directory in which database files should be stored. databaseDir string // backend provides the server with access to the IMAP backend. backend *backend.Backend // sessions holds all active IMAP sessions. sessions map[int]*session.Session sessionsLock sync.RWMutex // serveErrCh collects errors encountered while serving. serveErrCh *async.QueuedChannel[error] // serveDoneCh is used to stop the server. serveDoneCh chan struct{} // serveWG keeps track of serving goroutines. serveWG async.WaitGroup // nextID holds the ID that will be given to the next session. nextID int nextIDLock sync.Mutex // inLogger and outLogger are used to log incoming and outgoing IMAP communications. inLogger, outLogger io.Writer // tlsConfig is used to serve over TLS. tlsConfig *tls.Config // watchers holds streams of events. watchers []*watcher.Watcher[events.Event] watchersLock sync.RWMutex // storeBuilder builds message stores. storeBuilder store.Builder // cmdExecProfBuilder builds command profiling collectors. cmdExecProfBuilder profiling.CmdProfilerBuilder // versionInfo holds info about the Gluon version. versionInfo version.Info // reporter is used to report errors to things like Sentry. reporter reporter.Reporter // idleBulkTime to control how often IDLE responses are sent. 0 means // immediate response with no response merging. idleBulkTime time.Duration // disableParallelism indicates whether the server is allowed to parallelize certain IMAP commands. disableParallelism bool uidValidityGenerator imap.UIDValidityGenerator panicHandler async.PanicHandler } // New creates a new server with the given options. func New(withOpt ...Option) (*Server, error) { builder, err := newBuilder() if err != nil { return nil, err } for _, opt := range withOpt { opt.config(builder) } return builder.build() } // AddUser creates a new user and generates new unique ID for this user. // If the user already exists, an error is returned (use LoadUser instead). func (s *Server) AddUser(ctx context.Context, conn connector.Connector, passphrase []byte) (string, error) { userID := s.backend.NewUserID() if isNew, err := s.LoadUser(ctx, conn, userID, passphrase); err != nil { return "", err } else if !isNew { return "", errors.New("user already exists") } return userID, nil } // LoadUser adds an existing user using a previously crated unique user ID. // It returns true if the user was newly created, false if it already existed. func (s *Server) LoadUser(ctx context.Context, conn connector.Connector, userID string, passphrase []byte) (bool, error) { ctx = reporter.NewContextWithReporter(ctx, s.reporter) isNew, err := s.backend.AddUser(ctx, userID, conn, passphrase, s.uidValidityGenerator) if err != nil { return false, fmt.Errorf("failed to add user: %w", err) } counts, err := s.backend.GetMailboxMessageCounts(ctx, userID) if err != nil { return false, fmt.Errorf("failed to get counts: %w", err) } s.publish(events.UserAdded{ UserID: userID, Counts: counts, }) return isNew, nil } // RemoveUser removes a user from gluon. func (s *Server) RemoveUser(ctx context.Context, userID string, removeFiles bool) error { ctx = reporter.NewContextWithReporter(ctx, s.reporter) if err := s.backend.RemoveUser(ctx, userID, removeFiles); err != nil { return err } s.publish(events.UserRemoved{ UserID: userID, }) return nil } // AddWatcher adds a new watcher which watches events of the given types. // If no types are specified, the watcher watches all events. func (s *Server) AddWatcher(ofType ...events.Event) <-chan events.Event { s.watchersLock.Lock() defer s.watchersLock.Unlock() watcher := watcher.New(s.panicHandler, ofType...) s.watchers = append(s.watchers, watcher) return watcher.GetChannel() } // Serve serves connections accepted from the given listener. // It stops serving when the context is canceled, the listener is closed, or the server is closed. func (s *Server) Serve(ctx context.Context, l net.Listener) error { ctx = reporter.NewContextWithReporter(ctx, s.reporter) ctx = contexts.NewDisableParallelismCtx(ctx, s.disableParallelism) s.publish(events.ListenerAdded{ Addr: l.Addr(), }) s.serveWG.Go(func() { defer s.publish(events.ListenerRemoved{ Addr: l.Addr(), }) s.serve(ctx, newConnCh(l, s.panicHandler)) }) return nil } // serve handles incoming connections and starts a new goroutine for each. func (s *Server) serve(ctx context.Context, connCh <-chan net.Conn) { connWG := async.MakeWaitGroup(s.panicHandler) for { select { case <-ctx.Done(): logrus.Debug("Stopping serve, context canceled") return case <-s.serveDoneCh: logrus.Debug("Stopping serve, server stopped") return case conn, ok := <-connCh: if !ok { logrus.Debug("Stopping serve, listener closed") return } defer conn.Close() connWG.Go(func() { session, sessionID := s.addSession(ctx, conn) defer s.removeSession(sessionID) logging.DoAnnotated(ctx, func(ctx context.Context) { if err := session.Serve(ctx); err != nil { if !errors.Is(err, net.ErrClosed) { s.serveErrCh.Enqueue(err) } } }, logging.Labels{ "Action": "Serve", "SessionID": sessionID, }) }) } } } // GetErrorCh returns the error channel. func (s *Server) GetErrorCh() <-chan error { return s.serveErrCh.GetChannel() } // GetVersionInfo returns the version info. func (s *Server) GetVersionInfo() version.Info { return s.versionInfo } // GetDataPath returns the path in which gluon stores its data. func (s *Server) GetDataPath() string { return s.dataDir } // GetDatabasePath returns the path in which gluon stores its data. func (s *Server) GetDatabasePath() string { return s.databaseDir } // Close closes the server. func (s *Server) Close(ctx context.Context) error { ctx = reporter.NewContextWithReporter(ctx, s.reporter) // Tell the server to stop serving. close(s.serveDoneCh) // Wait until all goroutines currently handling connections are done. s.serveWG.Wait() // Close the backend. if err := s.backend.Close(ctx); err != nil { return fmt.Errorf("failed to close backend: %w", err) } // Close the server error channel. s.serveErrCh.Close() // Close any watchers. s.watchersLock.Lock() defer s.watchersLock.Unlock() for _, watcher := range s.watchers { watcher.Close() } s.watchers = nil return nil } func (s *Server) addSession(ctx context.Context, conn net.Conn) (*session.Session, int) { s.sessionsLock.Lock() defer s.sessionsLock.Unlock() nextID := s.getNextID() s.sessions[nextID] = session.New(conn, s.backend, nextID, s.versionInfo, s.cmdExecProfBuilder, s.newEventCh(ctx), s.idleBulkTime, s.panicHandler) if s.tlsConfig != nil { s.sessions[nextID].SetTLSConfig(s.tlsConfig) } if s.inLogger != nil { s.sessions[nextID].SetIncomingLogger(s.inLogger) } if s.outLogger != nil { s.sessions[nextID].SetOutgoingLogger(s.outLogger) } s.publish(events.SessionAdded{ SessionID: nextID, LocalAddr: conn.LocalAddr(), RemoteAddr: conn.RemoteAddr(), }) return s.sessions[nextID], nextID } func (s *Server) removeSession(sessionID int) { s.sessionsLock.Lock() defer s.sessionsLock.Unlock() delete(s.sessions, sessionID) s.publish(events.SessionRemoved{ SessionID: sessionID, }) } func (s *Server) getNextID() int { s.nextIDLock.Lock() defer s.nextIDLock.Unlock() s.nextID++ return s.nextID } func (s *Server) newEventCh(ctx context.Context) chan events.Event { eventCh := make(chan events.Event) async.GoAnnotated(ctx, s.panicHandler, func(ctx context.Context) { for event := range eventCh { s.publish(event) } }, logging.Labels{ "Action": "Publishing events", }) return eventCh } func (s *Server) publish(event events.Event) { s.watchersLock.RLock() defer s.watchersLock.RUnlock() for _, watcher := range s.watchers { if watcher.IsWatching(event) { if ok := watcher.Send(event); !ok { logrus.WithField("event", event).Warn("Failed to send event to watcher") } } } } // newConnCh accepts connections from the given listener. // It returns a channel of all accepted connections which is closed when the listener is closed. func newConnCh(l net.Listener, panicHandler async.PanicHandler) <-chan net.Conn { connCh := make(chan net.Conn) go func() { defer async.HandlePanic(panicHandler) defer close(connCh) for { conn, err := l.Accept() if err != nil { return } connCh <- conn } }() return connCh } gluon-0.17.0/server_test.go000066400000000000000000000014421445200213000156070ustar00rootroot00000000000000package gluon import ( "context" "net" "testing" "github.com/ProtonMail/gluon/events" "github.com/stretchr/testify/require" ) func _TestServer(t *testing.T) { server, err := New() require.NoError(t, err) ctx, cancel := context.WithCancel(context.Background()) defer cancel() // Get an event channel. eventCh := server.AddWatcher(events.ListenerAdded{}, events.ListenerRemoved{}) // Create a listener. l, err := net.Listen("tcp", net.JoinHostPort("localhost", "0")) require.NoError(t, err) // The first listen is successful. require.NoError(t, server.Serve(ctx, l)) require.Equal(t, events.ListenerAdded{Addr: l.Addr()}, <-eventCh) // The server closes successfully. require.NoError(t, server.Close(ctx)) require.Equal(t, events.ListenerRemoved{Addr: l.Addr()}, <-eventCh) } gluon-0.17.0/store/000077500000000000000000000000001445200213000140465ustar00rootroot00000000000000gluon-0.17.0/store/disk.go000066400000000000000000000167431445200213000153420ustar00rootroot00000000000000package store import ( "bytes" "crypto/aes" "crypto/cipher" "crypto/rand" "encoding/binary" "errors" "fmt" "io" "io/fs" "os" "path/filepath" "github.com/ProtonMail/gluon/imap" "github.com/pierrec/lz4/v4" "github.com/sirupsen/logrus" ) type onDiskStore struct { path string gcm cipher.AEAD sem *Semaphore fallback Fallback } func NewCipher(pass []byte) (cipher.AEAD, error) { aes, err := aes.NewCipher(hash(pass)) if err != nil { return nil, err } gcm, err := cipher.NewGCM(aes) if err != nil { return nil, err } return gcm, nil } func NewOnDiskStore(path string, pass []byte, opt ...Option) (Store, error) { if err := os.MkdirAll(path, 0o700); err != nil { return nil, err } gcm, err := NewCipher(pass) if err != nil { return nil, err } store := &onDiskStore{ path: path, gcm: gcm, } for _, opt := range opt { opt.config(store) } return store, nil } const blockSize = 64 * 4096 const storeVersion = uint32(1) func (c *onDiskStore) Set(messageID imap.InternalMessageID, in io.Reader) error { if err := os.MkdirAll(c.path, 0o700); err != nil { return err } if c.sem != nil { c.sem.Lock() defer c.sem.Unlock() } nonce := make([]byte, c.gcm.NonceSize()) if _, err := rand.Read(nonce); err != nil { return err } fullPath := filepath.Join(c.path, messageID.String()) file, err := os.OpenFile(fullPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0o600) if err != nil { return err } defer file.Close() if written, err := file.Write(storeHeaderBytes); err != nil { return err } else if written != len(storeHeaderBytes) { return fmt.Errorf("failed to write store header to file") } reader, writer := io.Pipe() defer writer.Close() compressor := lz4.NewWriter(writer) if err := compressor.Apply(lz4.BlockSizeOption(lz4.Block64Kb), lz4.ChecksumOption(false)); err != nil { return fmt.Errorf("failed to set compressor options: %w", err) } go func() { _, err := compressor.ReadFrom(in) compressor.Close() writer.CloseWithError(err) }() encryptionOverhead := c.gcm.Overhead() encryptedBlockSized := getEncryptedBlockSize(c.gcm, blockSize) compressedBlock := make([]byte, blockSize) encryptedBlock := make([]byte, encryptedBlockSized) // Write nonce to file. if bytesWritten, err := file.Write(nonce); err != nil || bytesWritten != len(nonce) { return fmt.Errorf("failed to write nonce to file: %w", err) } // Write encrypted blocks. for { // Read at least blockSize from the compressor. bytesRead, err := io.ReadAtLeast(reader, compressedBlock, blockSize) if err != nil { if errors.Is(err, io.EOF) { break } // If there less bytes than expected we reached the end of the file. if !errors.Is(err, io.ErrUnexpectedEOF) { return err } } // Encrypt the compressed block. encryptedBlock = encryptedBlock[:0] // Reset slice. encrypted := c.gcm.Seal(encryptedBlock, nonce, compressedBlock[0:bytesRead], nil) encryptedLen := bytesRead + encryptionOverhead // Write to disk. if bytesWritten, err := file.Write(encrypted[0:encryptedLen]); err != nil || bytesWritten != encryptedLen { return fmt.Errorf("failed to write block to disk: %w", err) } } return nil } func (c *onDiskStore) Get(messageID imap.InternalMessageID) ([]byte, error) { if c.sem != nil { c.sem.Lock() defer c.sem.Unlock() } file, err := os.Open(filepath.Join(c.path, messageID.String())) if err != nil { return nil, err } defer file.Close() var fileSize int64 header := make([]byte, len(storeHeaderBytes)) if _, err := io.ReadFull(file, header); err != nil { if errors.Is(err, io.ErrUnexpectedEOF) && c.fallback != nil { result, err := c.readFromFallback(file) if err != nil { return nil, fmt.Errorf("failed to read from fallback: %w", err) } return result, nil } return nil, err } if !bytes.Equal(header, storeHeaderBytes) { if c.fallback != nil { result, err := c.readFromFallback(file) if err != nil { return nil, fmt.Errorf("failed to read from fallback: %w", err) } return result, nil } return nil, fmt.Errorf("file is not a valid store file") } if stat, err := file.Stat(); err == nil { fileSize = stat.Size() - int64(len(storeHeaderBytes)) } nonce := make([]byte, c.gcm.NonceSize()) // Read nonce from file. if _, err := io.ReadFull(file, nonce); err != nil { return nil, fmt.Errorf("failed to read nonce: %w", err) } reader, writer := io.Pipe() encryptionOverhead := c.gcm.Overhead() encryptedBlockSize := getEncryptedBlockSize(c.gcm, blockSize) go func() { defer writer.Close() readBuffer := make([]byte, encryptedBlockSize) decryptBuffer := make([]byte, blockSize) totalBytesRead := 0 for { // Read up to encryptedBlockSize bytes from disk. bytesRead, err := file.Read(readBuffer) if err != nil { if !(errors.Is(err, io.EOF) || bytesRead == 0) { writer.CloseWithError(err) } return } // Decrypt read bytes. decryptBuffer = decryptBuffer[:0] // Reset slice. decrypted, err := c.gcm.Open(decryptBuffer, nonce, readBuffer[0:bytesRead], nil) if err != nil { writer.CloseWithError(fmt.Errorf("failed to decrypt block (offset:%v): %w", totalBytesRead, err)) return } decryptedLen := bytesRead - encryptionOverhead // Write to pipe so they can be decompressed. if _, err := writer.Write(decrypted[0:decryptedLen]); err != nil { writer.CloseWithError(err) return } totalBytesRead += bytesRead } }() decompressor := lz4.NewReader(reader) var b bytes.Buffer b.Grow(int(fileSize)) if _, err := decompressor.WriteTo(&b); err != nil { if !errors.Is(err, io.EOF) { return nil, err } } return b.Bytes(), nil } func (c *onDiskStore) Delete(messageIDs ...imap.InternalMessageID) error { if c.sem != nil { c.sem.Lock() defer c.sem.Unlock() } for _, messageID := range messageIDs { if err := os.Remove(filepath.Join(c.path, messageID.String())); err != nil { return err } } return nil } func (c *onDiskStore) List() ([]imap.InternalMessageID, error) { if c.sem != nil { c.sem.Lock() defer c.sem.Unlock() } var ids []imap.InternalMessageID if err := filepath.Walk(c.path, func(path string, info fs.FileInfo, err error) error { if err != nil { return err } if info.IsDir() { return nil } id, err := imap.InternalMessageIDFromString(info.Name()) if err != nil { logrus.WithError(err).Errorf("Invalid id file in cache: %v", info.Name()) } ids = append(ids, id) return nil }); err != nil { return nil, err } return ids, nil } func (c *onDiskStore) Close() error { return nil } type OnDiskStoreBuilder struct{} func (*OnDiskStoreBuilder) New(path, userID string, passphrase []byte) (Store, error) { storePath := filepath.Join(path, userID) return NewOnDiskStore(storePath, passphrase) } func (*OnDiskStoreBuilder) Delete(path, userID string) error { storePath := filepath.Join(path, userID) return os.RemoveAll(storePath) } func (c *onDiskStore) readFromFallback(file *os.File) ([]byte, error) { if pos, err := file.Seek(0, 0); err != nil { return nil, err } else if pos != 0 { return nil, fmt.Errorf("failed to rewind file to start") } return c.fallback.Read(c.gcm, file) } func getEncryptedBlockSize(aead cipher.AEAD, blockSize int) int { return blockSize + aead.Overhead() } func makeGluonHeaderBytes() []byte { const StoreHeaderID = "GLUON-CACHE" version := make([]byte, 4) binary.LittleEndian.PutUint32(version, storeVersion) return append([]byte(StoreHeaderID), version...) } var storeHeaderBytes = makeGluonHeaderBytes() gluon-0.17.0/store/fallback.go000066400000000000000000000007741445200213000161440ustar00rootroot00000000000000package store import ( "crypto/cipher" "io" ) // Fallback provides an interface to supply an alternative way to read a store file should the main route fail. // This is mainly intended to allow users of the library to read old store formats they may have kept on disk. // This is a stop-gap until a complete data migration cycle can be implemented in gluon. type Fallback interface { Read(gcm cipher.AEAD, reader io.Reader) ([]byte, error) Write(gcm cipher.AEAD, filepath string, data []byte) error } gluon-0.17.0/store/fallback_v0/000077500000000000000000000000001445200213000162125ustar00rootroot00000000000000gluon-0.17.0/store/fallback_v0/compressor.go000066400000000000000000000001711445200213000207340ustar00rootroot00000000000000package fallback_v0 type Compressor interface { Compress([]byte) ([]byte, error) Decompress([]byte) ([]byte, error) } gluon-0.17.0/store/fallback_v0/compressor_gzip.go000066400000000000000000000012551445200213000217710ustar00rootroot00000000000000package fallback_v0 import ( "bytes" "compress/gzip" ) type GZipCompressor struct{} func (GZipCompressor) Compress(dec []byte) ([]byte, error) { buf := new(bytes.Buffer) zw := gzip.NewWriter(buf) if _, err := zw.Write(dec); err != nil { return nil, err } if err := zw.Close(); err != nil { return nil, err } return buf.Bytes(), nil } func (GZipCompressor) Decompress(cmp []byte) ([]byte, error) { zr, err := gzip.NewReader(bytes.NewReader(cmp)) if err != nil { return nil, err } buf := new(bytes.Buffer) if _, err := buf.ReadFrom(zr); err != nil { return nil, err } if err := zr.Close(); err != nil { return nil, err } return buf.Bytes(), nil } gluon-0.17.0/store/fallback_v0/compressor_zlib.go000066400000000000000000000012551445200213000217600ustar00rootroot00000000000000package fallback_v0 import ( "bytes" "compress/zlib" ) type ZLibCompressor struct{} func (ZLibCompressor) Compress(dec []byte) ([]byte, error) { buf := new(bytes.Buffer) zw := zlib.NewWriter(buf) if _, err := zw.Write(dec); err != nil { return nil, err } if err := zw.Close(); err != nil { return nil, err } return buf.Bytes(), nil } func (ZLibCompressor) Decompress(cmp []byte) ([]byte, error) { zr, err := zlib.NewReader(bytes.NewReader(cmp)) if err != nil { return nil, err } buf := new(bytes.Buffer) if _, err := buf.ReadFrom(zr); err != nil { return nil, err } if err := zr.Close(); err != nil { return nil, err } return buf.Bytes(), nil } gluon-0.17.0/store/fallback_v0/disk.go000066400000000000000000000022151445200213000174730ustar00rootroot00000000000000package fallback_v0 import ( "crypto/cipher" "crypto/rand" "io" "os" "github.com/ProtonMail/gluon/store" ) type onDiskStoreV0 struct { compressor Compressor } func NewOnDiskStoreV0() store.Fallback { return &onDiskStoreV0{compressor: nil} } func NewOnDiskStoreV0WithCompressor(c Compressor) store.Fallback { return &onDiskStoreV0{compressor: c} } func (d *onDiskStoreV0) Read(gcm cipher.AEAD, reader io.Reader) ([]byte, error) { enc, err := io.ReadAll(reader) if err != nil { return nil, err } b, err := gcm.Open(nil, enc[:gcm.NonceSize()], enc[gcm.NonceSize():], nil) if err != nil { return nil, err } if d.compressor != nil { dec, err := d.compressor.Decompress(b) if err != nil { return nil, err } b = dec } return b, nil } func (d *onDiskStoreV0) Write(gcm cipher.AEAD, filepath string, data []byte) error { nonce := make([]byte, gcm.NonceSize()) if _, err := rand.Read(nonce); err != nil { return err } if d.compressor != nil { enc, err := d.compressor.Compress(data) if err != nil { return err } data = enc } return os.WriteFile( filepath, gcm.Seal(nonce, nonce, data, nil), 0o600, ) } gluon-0.17.0/store/hash.go000066400000000000000000000002631445200213000153210ustar00rootroot00000000000000package store import ( "crypto/sha256" ) func hash(b []byte) []byte { hash := sha256.New() if _, err := hash.Write(b); err != nil { panic(err) } return hash.Sum(nil) } gluon-0.17.0/store/mock_store/000077500000000000000000000000001445200213000162135ustar00rootroot00000000000000gluon-0.17.0/store/mock_store/store.go000066400000000000000000000062731445200213000177060ustar00rootroot00000000000000// Code generated by MockGen. DO NOT EDIT. // Source: github.com/ProtonMail/gluon/store (interfaces: Store) // Package mock_store is a generated GoMock package. package mock_store import ( io "io" reflect "reflect" imap "github.com/ProtonMail/gluon/imap" gomock "github.com/golang/mock/gomock" ) // MockStore is a mock of Store interface. type MockStore struct { ctrl *gomock.Controller recorder *MockStoreMockRecorder } // MockStoreMockRecorder is the mock recorder for MockStore. type MockStoreMockRecorder struct { mock *MockStore } // NewMockStore creates a new mock instance. func NewMockStore(ctrl *gomock.Controller) *MockStore { mock := &MockStore{ctrl: ctrl} mock.recorder = &MockStoreMockRecorder{mock} return mock } // EXPECT returns an object that allows the caller to indicate expected use. func (m *MockStore) EXPECT() *MockStoreMockRecorder { return m.recorder } // Close mocks base method. func (m *MockStore) Close() error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "Close") ret0, _ := ret[0].(error) return ret0 } // Close indicates an expected call of Close. func (mr *MockStoreMockRecorder) Close() *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockStore)(nil).Close)) } // Delete mocks base method. func (m *MockStore) Delete(arg0 ...imap.InternalMessageID) error { m.ctrl.T.Helper() varargs := []interface{}{} for _, a := range arg0 { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "Delete", varargs...) ret0, _ := ret[0].(error) return ret0 } // Delete indicates an expected call of Delete. func (mr *MockStoreMockRecorder) Delete(arg0 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockStore)(nil).Delete), arg0...) } // Get mocks base method. func (m *MockStore) Get(arg0 imap.InternalMessageID) ([]byte, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "Get", arg0) ret0, _ := ret[0].([]byte) ret1, _ := ret[1].(error) return ret0, ret1 } // Get indicates an expected call of Get. func (mr *MockStoreMockRecorder) Get(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockStore)(nil).Get), arg0) } // List mocks base method. func (m *MockStore) List() ([]imap.InternalMessageID, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "List") ret0, _ := ret[0].([]imap.InternalMessageID) ret1, _ := ret[1].(error) return ret0, ret1 } // List indicates an expected call of List. func (mr *MockStoreMockRecorder) List() *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockStore)(nil).List)) } // Set mocks base method. func (m *MockStore) Set(arg0 imap.InternalMessageID, arg1 io.Reader) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "Set", arg0, arg1) ret0, _ := ret[0].(error) return ret0 } // Set indicates an expected call of Set. func (mr *MockStoreMockRecorder) Set(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Set", reflect.TypeOf((*MockStore)(nil).Set), arg0, arg1) } gluon-0.17.0/store/option.go000066400000000000000000000007001445200213000157020ustar00rootroot00000000000000package store type Option interface { config(*onDiskStore) } func WithSemaphore(sem *Semaphore) Option { return &withSem{ sem: sem, } } type withSem struct { sem *Semaphore } func (opt withSem) config(store *onDiskStore) { store.sem = opt.sem } type withFallback struct { f Fallback } func WithFallback(f Fallback) Option { return &withFallback{f: f} } func (opt withFallback) config(store *onDiskStore) { store.fallback = opt.f } gluon-0.17.0/store/package.go000066400000000000000000000004241445200213000157700ustar00rootroot00000000000000// package store implements types that store message literals. // // Messages may be stored either in-memory or on-disk. // When stored on disk, they are stored encrypted and optionally compressed. package store //go:generate mockgen -destination mock_store/store.go . Store gluon-0.17.0/store/semaphore.go000066400000000000000000000026431445200213000163650ustar00rootroot00000000000000package store import ( "sync" "github.com/ProtonMail/gluon/async" ) // Semaphore implements a type used to limit concurrent operations. type Semaphore struct { ch chan struct{} wg sync.WaitGroup rw sync.RWMutex panicHandler async.PanicHandler } // NewSemaphore constructs a new semaphore with the given limit. func NewSemaphore(max int, panicHandler async.PanicHandler) *Semaphore { return &Semaphore{ch: make(chan struct{}, max), panicHandler: panicHandler} } // Lock locks the semaphore, waiting first until it is possible. func (sem *Semaphore) Lock() { sem.rw.RLock() sem.ch <- struct{}{} } // Unlock unlocks the semaphore. func (sem *Semaphore) Unlock() { sem.rw.RUnlock() <-sem.ch } // Block prevents the semaphore from being locked. func (sem *Semaphore) Block() { sem.rw.Lock() sem.wg.Wait() } // Unblock allows the semaphore to be locked again. func (sem *Semaphore) Unblock() { sem.rw.Unlock() } // Do executes the given function synchronously. func (sem *Semaphore) Do(fn func()) { sem.Lock() sem.wg.Add(1) defer sem.Unlock() defer sem.wg.Done() fn() } // Go executes the given function asynchronously. func (sem *Semaphore) Go(fn func()) { defer async.HandlePanic(sem.panicHandler) sem.Lock() sem.wg.Add(1) go func() { defer sem.Unlock() defer sem.wg.Done() fn() }() } // Wait waits for all functions started by Go to finish executing. func (sem *Semaphore) Wait() { sem.wg.Wait() } gluon-0.17.0/store/semaphore_test.go000066400000000000000000000025761445200213000174310ustar00rootroot00000000000000package store import ( "sync" "testing" "github.com/ProtonMail/gluon/async" "github.com/stretchr/testify/assert" ) func TestSemaphore(t *testing.T) { sem := NewSemaphore(4, async.NoopPanicHandler{}) // Block the semaphore so that tasks wait until we unblock it. sem.Block() // Collect results in a list. var res list[int] // Start some jobs; they won't execute yet because the semaphore is blocked. wait := wait(func() { sem.Go(func() { res.insert(1) }) sem.Go(func() { res.insert(2) }) sem.Go(func() { res.insert(3) }) sem.Go(func() { res.insert(4) }) }) // The semaphore is blocked so none of the tasks should have executed yet. assert.Equal(t, []int{}, res.items()) // Unblock the semaphore so that blocked tasks can execute. sem.Unblock() // Wait for the jobs to be given to the semaphore. wait() // Tell the semaphore to wait for its tasks to finish. sem.Wait() // The jobs should have executed now. assert.ElementsMatch(t, []int{1, 2, 3, 4}, res.items()) } func wait(fn func()) func() { var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done(); fn() }() return wg.Wait } type list[T any] struct { val []T mut sync.Mutex } func (l *list[T]) insert(val T) { l.mut.Lock() defer l.mut.Unlock() l.val = append(l.val, val) } func (l *list[T]) items() []T { l.mut.Lock() defer l.mut.Unlock() items := append([]T{}, l.val...) return items } gluon-0.17.0/store/store.go000066400000000000000000000006721445200213000155360ustar00rootroot00000000000000package store import ( "io" "github.com/ProtonMail/gluon/imap" ) type Store interface { Get(messageID imap.InternalMessageID) ([]byte, error) Set(messageID imap.InternalMessageID, reader io.Reader) error Delete(messageID ...imap.InternalMessageID) error Close() error List() ([]imap.InternalMessageID, error) } type Builder interface { New(dir, userID string, passphrase []byte) (Store, error) Delete(dir, userID string) error } gluon-0.17.0/store/store_test.go000066400000000000000000000112651445200213000165750ustar00rootroot00000000000000package store_test import ( "bytes" "crypto/rand" "os" "path/filepath" "runtime" "testing" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/store" "github.com/ProtonMail/gluon/store/fallback_v0" "github.com/stretchr/testify/require" ) func TestStore_DecryptFailedOnFilesBiggerThanBlockSize(t *testing.T) { store, err := store.NewOnDiskStore( t.TempDir(), []byte("pass"), store.WithSemaphore(store.NewSemaphore(runtime.NumCPU(), async.NoopPanicHandler{})), ) require.NoError(t, err) data := make([]byte, 1024*1204) { _, err := rand.Read(data) //nolint:gosec require.NoError(t, err) } id := imap.NewInternalMessageID() require.NoError(t, store.Set(id, bytes.NewReader(data))) read, err := store.Get(id) require.NoError(t, err) require.True(t, bytes.Equal(read, data)) require.NoError(t, store.Delete(id)) } func BenchmarkStoreRead(t *testing.B) { store, err := store.NewOnDiskStore( t.TempDir(), []byte("pass"), store.WithSemaphore(store.NewSemaphore(runtime.NumCPU(), async.NoopPanicHandler{})), ) require.NoError(t, err) data := make([]byte, 15*1024*1204) { _, err := rand.Read(data) //nolint:gosec require.NoError(t, err) } id := imap.NewInternalMessageID() require.NoError(t, store.Set(id, bytes.NewReader(data))) t.ResetTimer() for i := 0; i < t.N; i++ { _, err := store.Get(id) require.NoError(t, err) } } func TestStoreReadFailsIfHeaderDoesNotMatch(t *testing.T) { storeDir := t.TempDir() store, err := store.NewOnDiskStore( storeDir, []byte("pass"), store.WithSemaphore(store.NewSemaphore(runtime.NumCPU(), async.NoopPanicHandler{})), ) require.NoError(t, err) id := imap.NewInternalMessageID() // Generate dummy file { data := make([]byte, 15*1024) _, err := rand.Read(data) //nolint:gosec require.NoError(t, err) require.NoError(t, os.WriteFile(filepath.Join(storeDir, id.String()), data, 0o600)) } _, err = store.Get(id) require.Error(t, err) } func TestStoreFallbackRead(t *testing.T) { fallbackStore := fallback_v0.NewOnDiskStoreV0WithCompressor(&fallback_v0.GZipCompressor{}) storeDir := t.TempDir() password := []byte("pass") fileContents := []byte("Hello world from gluon store") id := imap.NewInternalMessageID() { // create old store file on disk gcm, err := store.NewCipher(password) require.NoError(t, err) filepath := filepath.Join(storeDir, id.String()) require.NoError(t, fallbackStore.Write(gcm, filepath, fileContents)) } // Reading file without fallback should fail. { store, err := store.NewOnDiskStore( storeDir, []byte("pass"), store.WithSemaphore(store.NewSemaphore(runtime.NumCPU(), async.NoopPanicHandler{})), ) require.NoError(t, err) defer func() { require.NoError(t, store.Close()) }() _, err = store.Get(id) require.Error(t, err) } // { store, err := store.NewOnDiskStore( storeDir, []byte("pass"), store.WithSemaphore(store.NewSemaphore(runtime.NumCPU(), async.NoopPanicHandler{})), store.WithFallback(fallbackStore), ) require.NoError(t, err) defer func() { require.NoError(t, store.Close()) }() b, err := store.Get(id) require.NoError(t, err) require.Equal(t, fileContents, b) } } func TestOnDiskStore(t *testing.T) { store, err := store.NewOnDiskStore( t.TempDir(), []byte("pass"), store.WithSemaphore(store.NewSemaphore(runtime.NumCPU(), async.NoopPanicHandler{})), ) require.NoError(t, err) testStore(t, store) testStoreList(t, store) } func testStore(t *testing.T, store store.Store) { id1 := imap.NewInternalMessageID() id2 := imap.NewInternalMessageID() id3 := imap.NewInternalMessageID() require.NoError(t, store.Set(id1, bytes.NewReader([]byte("literal1")))) require.NoError(t, store.Set(id2, bytes.NewReader([]byte("literal2")))) require.NoError(t, store.Set(id3, bytes.NewReader([]byte("literal3")))) require.Equal(t, []byte("literal1"), must(store.Get(id1))) require.Equal(t, []byte("literal2"), must(store.Get(id2))) require.Equal(t, []byte("literal3"), must(store.Get(id3))) require.NoError(t, store.Delete(id1, id2, id3)) } func testStoreList(t *testing.T, store store.Store) { id1 := imap.NewInternalMessageID() id2 := imap.NewInternalMessageID() id3 := imap.NewInternalMessageID() require.NoError(t, store.Set(id1, bytes.NewReader([]byte("literal1")))) require.NoError(t, store.Set(id2, bytes.NewReader([]byte("literal2")))) require.NoError(t, store.Set(id3, bytes.NewReader([]byte("literal3")))) list, err := store.List() require.NoError(t, err) require.ElementsMatch(t, list, []imap.InternalMessageID{id1, id2, id3}) require.NoError(t, store.Delete(id1, id2, id3)) } func must[T any](val T, err error) T { if err != nil { panic(err) } return val } gluon-0.17.0/store/write_controlled_store.go000066400000000000000000000070031445200213000211700ustar00rootroot00000000000000package store import ( "io" "sync" "sync/atomic" "github.com/ProtonMail/gluon/imap" ) type syncRef struct { lock sync.RWMutex counter int32 } // WriteControlledStore ensures that a given file on disk can safely be accessed by multiple readers and only // one writer. Internally we maintain a list of RWLocks per message ID. type WriteControlledStore struct { impl Store lock sync.Mutex entryTable map[imap.InternalMessageID]*syncRef lockPool sync.Pool } func NewWriteControlledStore(impl Store) *WriteControlledStore { return &WriteControlledStore{ impl: impl, entryTable: make(map[imap.InternalMessageID]*syncRef), lockPool: sync.Pool{ New: func() any { return &syncRef{counter: 1} }, }, } } func (w *WriteControlledStore) acquireSyncRef(id imap.InternalMessageID) *syncRef { w.lock.Lock() defer w.lock.Unlock() v, ok := w.entryTable[id] if !ok { v, ok := w.lockPool.Get().(*syncRef) if !ok { panic("invalid Type Cast") } v.counter = 1 w.entryTable[id] = v return v } atomic.AddInt32(&v.counter, 1) return v } func (w *WriteControlledStore) releaseSyncRef(id imap.InternalMessageID, ref *syncRef) { if atomic.AddInt32(&ref.counter, -1) <= 0 { w.lock.Lock() defer w.lock.Unlock() if atomic.LoadInt32(&ref.counter) <= 0 { delete(w.entryTable, id) w.lockPool.Put(ref) } } } func (w *WriteControlledStore) Get(messageID imap.InternalMessageID) ([]byte, error) { syncRef := w.acquireSyncRef(messageID) defer w.releaseSyncRef(messageID, syncRef) syncRef.lock.RLock() defer syncRef.lock.RUnlock() return w.impl.Get(messageID) } func (w *WriteControlledStore) Set(messageID imap.InternalMessageID, reader io.Reader) error { syncRef := w.acquireSyncRef(messageID) defer w.releaseSyncRef(messageID, syncRef) syncRef.lock.Lock() defer syncRef.lock.Unlock() return w.impl.Set(messageID, reader) } // SetUnchecked allows the user to bypass lock access. This will only work if you can guarantee that the data being // set does not previously exit (e.g: New message). func (w *WriteControlledStore) SetUnchecked(messageID imap.InternalMessageID, reader io.Reader) error { return w.impl.Set(messageID, reader) } // DeleteUnchecked allows the user to bypass lock access. This will only work if you can guarantee that the data being // delete is not being used anywhere. func (w *WriteControlledStore) DeleteUnchecked(messageIDs ...imap.InternalMessageID) error { return w.impl.Delete(messageIDs...) } func (w *WriteControlledStore) Delete(messageID ...imap.InternalMessageID) error { for _, id := range messageID { if err := func() error { syncRef := w.acquireSyncRef(id) defer w.releaseSyncRef(id, syncRef) syncRef.lock.Lock() defer syncRef.lock.Unlock() return w.impl.Delete(id) }(); err != nil { return err } } return nil } func (w *WriteControlledStore) Close() error { return w.impl.Close() } func (w *WriteControlledStore) List() ([]imap.InternalMessageID, error) { return w.impl.List() } type WriteControlledStoreBuilder struct { builder Builder } func NewWriteControlledStoreBuilder(builder Builder) *WriteControlledStoreBuilder { return &WriteControlledStoreBuilder{builder: builder} } func (w *WriteControlledStoreBuilder) New(dir, userID string, passphrase []byte) (Store, error) { impl, err := w.builder.New(dir, userID, passphrase) if err != nil { return nil, err } return NewWriteControlledStore(impl), nil } func (w *WriteControlledStoreBuilder) Delete(dir, userID string) error { return w.builder.Delete(dir, userID) } gluon-0.17.0/store/write_controlled_store_test.go000066400000000000000000000024411445200213000222300ustar00rootroot00000000000000package store import ( "bytes" "sync" "testing" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/require" ) func TestWriteControlledStore(t *testing.T) { id1 := imap.NewInternalMessageID() id2 := imap.NewInternalMessageID() id3 := imap.NewInternalMessageID() st, err := NewOnDiskStore( t.TempDir(), []byte("pass"), ) require.NoError(t, err) st = NewWriteControlledStore(st) wg := sync.WaitGroup{} for i := 0; i < 256; i++ { wg.Add(1) go func(i int) { defer wg.Done() var id imap.InternalMessageID switch i % 3 { case 0: require.NoError(t, st.Set(id1, bytes.NewReader([]byte("literal1")))) id = id1 case 1: require.NoError(t, st.Set(id2, bytes.NewReader([]byte("literal2")))) id = id2 case 2: require.NoError(t, st.Set(id3, bytes.NewReader([]byte("literal3")))) id = id3 } require.NotEmpty(t, id, imap.InternalMessageID{}) // It's not guaranteed which version of the literal will be available on disk, but it should be // match one of the following literal, err := st.Get(id) require.NoError(t, err) isEqual := bytes.Equal([]byte("literal1"), literal) || bytes.Equal([]byte("literal2"), literal) || bytes.Equal([]byte("literal3"), literal) require.True(t, isEqual) }(i) } wg.Wait() } gluon-0.17.0/tests/000077500000000000000000000000001445200213000140545ustar00rootroot00000000000000gluon-0.17.0/tests/account_test.go000066400000000000000000000027031445200213000171000ustar00rootroot00000000000000package tests import ( "errors" "os" "path/filepath" "testing" "github.com/ProtonMail/gluon/db" "github.com/stretchr/testify/require" ) func TestAccountRemovalMovesDBToDeferredDeleteFolder(t *testing.T) { dataDir := t.TempDir() dbDir := t.TempDir() dbDeleteDirPath := db.GetDeferredDeleteDBPath(dbDir) // Deferred delete folder does not exist. empty, err := isEmptyFolder(dbDeleteDirPath) require.NoError(t, err) require.True(t, empty) runServer(t, defaultServerOptions(t, withDataDir(dataDir), withDatabaseDir(dbDir)), func(session *testSession) { userID := session.removeAccount(t, "user") // Remove account's DB was moved to this folder. empty, err := isEmptyFolder(dbDeleteDirPath) require.NoError(t, err) require.False(t, empty) // DB dir should not have user id files anymore. matchingFiles, err := filepath.Glob(filepath.Join(dbDir, userID+"*")) require.NoError(t, err) require.Empty(t, matchingFiles) }) // Database will be deleted on server startup. runServer(t, defaultServerOptions(t, withDataDir(dataDir), withDatabaseDir(dbDir)), func(session *testSession) { empty, err := isEmptyFolder(dbDeleteDirPath) require.NoError(t, err) require.True(t, empty) }) } func isEmptyFolder(path string) (bool, error) { matchingFiles, err := filepath.Glob(filepath.Join(path, "*")) if err != nil { if errors.Is(err, os.ErrNotExist) { return true, nil } return false, err } return len(matchingFiles) == 0, nil } gluon-0.17.0/tests/append_test.go000066400000000000000000000430061445200213000167140ustar00rootroot00000000000000package tests import ( "bytes" "context" "fmt" "os" "sync" "testing" "time" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/imap" goimap "github.com/emersion/go-imap" uidplus "github.com/emersion/go-imap-uidplus" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestAppend(t *testing.T) { const ( mailboxName = "saved-messages" messagePath = "testdata/afternoon-meeting.eml" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create(mailboxName)) { // first check, empty mailbox status, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages, "Expected message count does not match") } { require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) require.Error(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.RecentFlag)) } { // second check, there should be 3 messages status, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(3), status.Messages, "Expected message count does not match") } }) } func TestAppendWithUidPlus(t *testing.T) { const ( mailboxName = "saved-messages" messagePath = "testdata/afternoon-meeting.eml" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withUIDValidityGenerator(imap.NewFixedUIDValidityGenerator(imap.UID(1)))), func(client *client.Client, _ *testSession) { const validityUid = uint32(1) require.NoError(t, client.Create(mailboxName)) { // first check, empty mailbox status, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages, "Expected message count does not match") } { // Insert some messages clientUidPlus := uidplus.NewClient(client) { validity, uid, err := doAppendWithClientPlusFromFile(t, clientUidPlus, mailboxName, messagePath, goimap.SeenFlag) require.NoError(t, err) require.Equal(t, validityUid, validity) require.Equal(t, uint32(1), uid) } { validity, uid, err := doAppendWithClientPlusFromFile(t, clientUidPlus, mailboxName, messagePath, goimap.SeenFlag) require.NoError(t, err) require.Equal(t, validityUid, validity) require.Equal(t, uint32(2), uid) } { validity, uid, err := doAppendWithClientPlusFromFile(t, clientUidPlus, mailboxName, messagePath, goimap.SeenFlag) require.NoError(t, err) require.Equal(t, validityUid, validity) require.Equal(t, uint32(3), uid) } require.Error(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.RecentFlag)) } { // second check, there should be 3 messages status, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(3), status.Messages, "Expected message count does not match") } }) } func TestAppendNoSuchMailbox(t *testing.T) { const ( mailboxName = "saved-messages" messagePath = "testdata/afternoon-meeting.eml" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { err := doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag) require.Error(t, err) }) // Run the old test as well as there is no way to check for the `[TRYCREATE]` flag of the response runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.doAppendFromFile(`saved-messages`, `testdata/afternoon-meeting.eml`, `\Seen`).expect(`NO \[TRYCREATE\]`) }) } func TestAppendWhileSelected(t *testing.T) { const ( mailboxName = "saved-messages" messagePath = "testdata/afternoon-meeting.eml" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create(mailboxName)) // Mailbox should have read-write modifier mailboxStatus, err := client.Select(mailboxName, false) require.NoError(t, err) require.Equal(t, false, mailboxStatus.ReadOnly) // Add new message require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) // EXISTS response is assigned to Messages member require.Equal(t, uint32(1), client.Mailbox().Messages) // Check if added status, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") }) } func TestAppendHeaderWithSpaceLine(t *testing.T) { r := require.New(t) const ( mailboxName = "saved-messages" messagePath = "testdata/space_line_header.eml" ) // Get full header from file fullMessage, err := os.ReadFile(messagePath) r.NoError(err) endOfHeader := []byte{13, 10, 13, 10} endOfHeaderKey := bytes.Index(fullMessage, endOfHeader) r.NotEqual(-1, endOfHeaderKey) wantHeader := string(fullMessage[0 : endOfHeaderKey+len(endOfHeader)]) runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { r.NoError(client.Create(mailboxName)) // Mailbox should have read-write modifier mailboxStatus, err := client.Select(mailboxName, false) r.NoError(err) r.False(mailboxStatus.ReadOnly) // Add new message require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) // EXISTS response is assigned to Messages member require.Equal(t, uint32(1), client.Mailbox().Messages) // Check if added status, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") // Check has full header newFetchCommand(t, client). withItems(goimap.FetchRFC822Header).fetch("1"). forSeqNum(1, func(v *validatorBuilder) { v.ignoreFlags() v.wantSectionString(goimap.FetchRFC822Header, func(t testing.TB, literal string) { haveHeader := skipGLUONHeader(literal) r.Equal(wantHeader, haveHeader) }) }).check() }) } type returnSameRemoteIDConnector struct { *connector.Dummy lock sync.Mutex messageCreated bool createdMessage imap.Message messageLiteral []byte } func (r *returnSameRemoteIDConnector) CreateMessage(ctx context.Context, mboxID imap.MailboxID, literal []byte, flags imap.FlagSet, date time.Time) (imap.Message, []byte, error) { r.lock.Lock() defer r.lock.Unlock() if !r.messageCreated { msg, l, err := r.Dummy.CreateMessage(ctx, mboxID, literal, flags, date) if err != nil { return imap.Message{}, nil, err } r.createdMessage = msg r.messageLiteral = l r.messageCreated = true } return r.createdMessage, r.messageLiteral, nil } type returnSameRemoteIDConnectorBuilder struct{} func (returnSameRemoteIDConnectorBuilder) New(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) Connector { return &returnSameRemoteIDConnector{ Dummy: connector.NewDummy(usernames, password, period, flags, permFlags, attrs), } } func TestAppendConnectorReturnsSameRemoteIDSameMBox(t *testing.T) { const ( mailboxName = "INBOX" messagePath = "testdata/afternoon-meeting.eml" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&returnSameRemoteIDConnectorBuilder{})), func(client *client.Client, _ *testSession) { { require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) } { // second check, there should be 1 message status, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") } }) } func TestAppendConnectorReturnsSameRemoteIDDifferentMBox(t *testing.T) { const ( mailboxName = "INBOX" mailboxNameOther = "saved-messages" messagePath = "testdata/afternoon-meeting.eml" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&returnSameRemoteIDConnectorBuilder{})), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create(mailboxNameOther)) { require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) require.NoError(t, doAppendWithClientFromFile(t, client, mailboxNameOther, messagePath, time.Now(), goimap.SeenFlag)) } { // there should be 1 message in mailboxName status, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") } { // there should be 1 message in mailboxNameOther status, err := client.Status(mailboxNameOther, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") } }) } func TestAppendConnectorReturnsSameRemoteIDShouldRemoveDeletedFlag(t *testing.T) { const ( mailboxName = "INBOX" messagePath = "testdata/afternoon-meeting.eml" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&returnSameRemoteIDConnectorBuilder{})), func(client *client.Client, _ *testSession) { // Append message one time. require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) { status, err := client.Select(mailboxName, false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") // Mark it as deleted. require.NoError(t, client.Store(createSeqSet("1"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) // Check flag got set newFetchCommand(t, client).withItems("FLAGS").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(imap.FlagSeen, imap.FlagRecent, imap.FlagDeleted) }).checkAndRequireMessageCount(1) } // Append same message again. require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) // There should be 1 message in mailboxName and not be deleted status, err := client.Select(mailboxName, false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") // Deleted flag should not be present newFetchCommand(t, client).withItems("FLAGS").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(imap.FlagSeen) }).checkAndRequireMessageCount(1) }) } func TestAppendConnectorReturnsSameInternalIDRemoveDeletedFlag(t *testing.T) { const ( mailboxName = "INBOX" messagePath = "testdata/afternoon-meeting.eml" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&returnSameRemoteIDConnectorBuilder{})), func(client *client.Client, _ *testSession) { // Append message one time. require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now(), goimap.SeenFlag)) var messageWithInternalID string { status, err := client.Select(mailboxName, false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") // Mark it as deleted. require.NoError(t, client.Store(createSeqSet("1"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) // Check flag got set newFetchCommand(t, client).withItems("FLAGS").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(imap.FlagSeen, imap.FlagRecent, imap.FlagDeleted) }) // Retrieve message with internal id newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSectionString("BODY[]", func(t testing.TB, literal string) { messageWithInternalID = literal }) }).checkAndRequireMessageCount(1) } // Append same message again. require.NoError(t, doAppendWithClient(client, mailboxName, messageWithInternalID, time.Now(), goimap.SeenFlag)) // There should be 1 message in mailboxName and not be deleted status, err := client.Select(mailboxName, false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") // Deleted flag should not be present newFetchCommand(t, client).withItems("FLAGS").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(imap.FlagSeen) }).checkAndRequireMessageCount(1) }) } func TestAppendCanHandleOutOfOrderUIDUpdates(t *testing.T) { // Make sure we are correctly handling the case where we have to clients doing append at the same time. // Both clients append a message and get assigned UID according to whichever got there first: // // * Client A -> Append -> UID 1 // * Client B -> Append -> UID 2 // // All Clients apply their changes to their local state immediately and will receive a deferred updates for the // same mailbox if other clients make updates. // In the case of client B, it appends UID2 as the first message and then later receives an update from A with // an UID lower than the last UID which caused unnecessary panics in the past. runManyToOneTestWithAuth(t, defaultServerOptions(t, withDisableParallelism()), []int{1, 2}, func(c map[int]*testConnection, session *testSession) { const MessageCount = 20 // Select mailbox so that both clients get updates. c[1].C("A001 SELECT INBOX").OK("A001") c[2].C("A002 SELECT INBOX").OK("A002") appendFN := func(clientIndex int) { for i := 0; i < MessageCount; i++ { c[clientIndex+1].doAppend("INBOX", buildRFC5322TestLiteral("To: f3@pm.me\r\n"), "\\Seen").expect("OK") } } wg := sync.WaitGroup{} wg.Add(2) for i := 0; i < 2; i++ { go func(index int) { defer wg.Done() appendFN(index) }(i) } wg.Wait() validateUIDListFn := func(index int) { c[index].C("F001 FETCH 1:* (UID)") for i := 1; i <= MessageCount; i++ { c[index].S(fmt.Sprintf("* %v FETCH (UID %v)", i, i)) } c[index].OK("F001") } validateUIDListFn(1) validateUIDListFn(2) }) } func TestGODT2007AppendInternalIDPresentOnDeletedMessage(t *testing.T) { const ( mailboxName = "saved-messages" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, s *testSession) { // Create message and mark deleted. mboxID := s.mailboxCreated("user", []string{mailboxName}) messageID := s.messageCreated("user", mboxID, []byte(buildRFC5322TestLiteral("To: foo@bar.com\r\n")), time.Now()) s.flush("user") _, err := client.Select(mailboxName, false) require.NoError(t, err) { // Check if the header is correctly set. result := newFetchCommand(t, client).withItems("UID", "BODY[HEADER]").fetch("1") result.forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags().wantSectionAndSkipGLUONHeaderOrPanic("BODY[HEADER]", buildRFC5322TestLiteral("To: foo@bar.com\r\n")) builder.wantUID(1) }) result.checkAndRequireMessageCount(1) } appendedMessage := fetchMessageBody(t, client, 1) s.messageDeleted("user", messageID) s.flush("user") // Add the same message back with the same id require.NoError(t, doAppendWithClient(client, mailboxName, appendedMessage, time.Now())) { // The message should have been created with a new internal id result := newFetchCommand(t, client).withItems("UID", "BODY[HEADER]").fetch("1") result.forSeqNum(1, func(builder *validatorBuilder) { // The header value appears twice because we don't delete existing headers, we only add new ones. builder.ignoreFlags().wantSectionAndSkipGLUONHeaderOrPanic("BODY[HEADER]", appendedMessage) builder.wantUID(2) }) result.checkAndRequireMessageCount(1) } }) } func TestAppendIntoDraftsWithFromOnly(t *testing.T) { const ( literalWithFrom = `From: Foo@bar` literalWithoutFrom = `To: Foo@bar` literalValid = `From: Foo@bar Date: Wed, 26 Apr 2023 08:25:16 +0200 ` ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, s *testSession) { s.mailboxCreatedWithAttributes("user", []string{"Drafts"}, imap.NewFlagSet(imap.AttrDrafts)) s.flush("user") { require.NoError(t, doAppendWithClient(client, "Drafts", literalWithFrom, time.Now())) require.NoError(t, doAppendWithClient(client, "INBOX", literalValid, time.Now())) require.NoError(t, doAppendWithClient(client, "Drafts", literalWithoutFrom, time.Now())) require.Error(t, doAppendWithClient(client, "INBOX", literalWithoutFrom, time.Now())) } { status, err := client.Status("Drafts", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(2), status.Messages, "Expected message count does not match") } { status, err := client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") } }) } gluon-0.17.0/tests/benchmark_big_mailbox_test.go000066400000000000000000000041651445200213000217360ustar00rootroot00000000000000package tests import ( "fmt" "testing" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func BenchmarkBigMailboxStatus(b *testing.B) { runOneToOneTestWithAuth(b, defaultServerOptions(b), func(c *testConnection, s *testSession) { mboxID := s.mailboxCreated("user", []string{"mbox"}) ids := s.batchMessageCreated("user", mboxID, 32515, func(n int) ([]byte, []string) { return []byte(fmt.Sprintf(`To: %v@pm.me`, n)), []string{} }) b.Run("status", func(b *testing.B) { c.Cf(`A001 STATUS %v (MESSAGES)`, "mbox").Sx(fmt.Sprintf(`MESSAGES %v`, len(ids))).OK(`A001`) }) }) } func BenchmarkBigMailboxFetchSequence(b *testing.B) { runOneToOneTestClientWithAuth(b, defaultServerOptions(b), func(client *client.Client, s *testSession) { mboxID := s.mailboxCreated("user", []string{"mbox"}) ids := s.batchMessageCreated("user", mboxID, 128515, func(n int) ([]byte, []string) { return []byte(fmt.Sprintf(`To: %v@pm.me`, n)), []string{} }) _, err := client.Select("mbox", false) require.NoError(b, err) fetchResult := newFetchCommand(b, client).withItems(goimap.FetchAll).fetch("1:*") if len(fetchResult.messages) != len(ids) { panic("Fetch failed") } }) } func BenchmarkBigMailboxFetchUID(b *testing.B) { runOneToOneTestClientWithAuth(b, defaultServerOptions(b), func(client *client.Client, s *testSession) { mboxID := s.mailboxCreated("user", []string{"mbox"}) ids := s.batchMessageCreated("user", mboxID, 128515, func(n int) ([]byte, []string) { return []byte(fmt.Sprintf(`To: %v@pm.me`, n)), []string{} }) _, err := client.Select("mbox", false) require.NoError(b, err) fetchResult := newFetchCommand(b, client).withItems(goimap.FetchAll).fetchUid("1:*") if len(fetchResult.messages) != len(ids) { panic("Fetch failed") } }) } func BenchmarkListManyMailboxes(b *testing.B) { runOneToOneTestClientWithAuth(b, defaultServerOptions(b), func(client *client.Client, s *testSession) { s.batchMailboxCreated("user", 64515, func(i int) string { return fmt.Sprintf("mbox_%v", i) }) listMailboxesClient(b, client, "", "*") }) } gluon-0.17.0/tests/benchmark_fetch_test.go000066400000000000000000000052761445200213000205570ustar00rootroot00000000000000package tests import ( "strconv" "testing" ) func BenchmarkFetchDatabase(b *testing.B) { for n := 0; n < 15; n++ { mboxSize := 1 << n b.Run(strconv.Itoa(mboxSize), func(b *testing.B) { runOneToOneTestWithAuth(b, defaultServerOptions(b), func(c *testConnection, s *testSession) { benchID := s.mailboxCreated("user", []string{"BENCH"}) for i := 0; i < mboxSize; i++ { s.messageCreatedFromFile("user", benchID, `testdata/multipart-mixed.eml`) } c.C(`A SELECT BENCH`) c.Se(`A OK [READ-WRITE] (^_^)`) c.doBench(b, `FETCH * (ENVELOPE)`) c.doBench(b, `FETCH 1:* (ENVELOPE)`) c.doBench(b, `FETCH * (FLAGS)`) c.doBench(b, `FETCH 1:* (FLAGS)`) c.doBench(b, `FETCH * (INTERNALDATE)`) c.doBench(b, `FETCH 1:* (INTERNALDATE)`) c.doBench(b, `FETCH * (BODY)`) c.doBench(b, `FETCH 1:* (BODY)`) c.doBench(b, `FETCH * (BODYSTRUCTURE)`) c.doBench(b, `FETCH 1:* (BODYSTRUCTURE)`) c.doBench(b, `FETCH * (RFC822.SIZE)`) c.doBench(b, `FETCH 1:* (RFC822.SIZE)`) c.doBench(b, `FETCH * (UID)`) c.doBench(b, `FETCH 1:* (UID)`) }) }) } } func BenchmarkFetchSingleCache(b *testing.B) { for n := 0; n < 15; n++ { mboxSize := 1 << n b.Run(strconv.Itoa(mboxSize), func(b *testing.B) { runOneToOneTestWithAuth(b, defaultServerOptions(b), func(c *testConnection, s *testSession) { benchID := s.mailboxCreated("user", []string{"BENCH"}) for i := 0; i < mboxSize; i++ { s.messageCreatedFromFile("user", benchID, `testdata/multipart-mixed.eml`) } c.C(`Apply SELECT BENCH`) c.Se(`Apply OK [READ-WRITE] (^_^)`) c.doBench(b, `FETCH * (RFC822)`) c.doBench(b, `FETCH 1:* (RFC822)`) c.doBench(b, `FETCH * (RFC822.HEADER)`) c.doBench(b, `FETCH 1:* (RFC822.HEADER)`) c.doBench(b, `FETCH * (RFC822.TEXT)`) c.doBench(b, `FETCH 1:* (RFC822.TEXT)`) c.doBench(b, `FETCH * (BODY[HEADER])`) c.doBench(b, `FETCH 1:* (BODY[HEADER])`) c.doBench(b, `FETCH * (BODY[HEADER.FIELDS (To From Date)])`) c.doBench(b, `FETCH 1:* (BODY[HEADER.FIELDS (To From Date)])`) c.doBench(b, `FETCH * (BODY[HEADER.FIELDS.NOT (To From Date)])`) c.doBench(b, `FETCH 1:* (BODY[HEADER.FIELDS.NOT (To From Date)])`) c.doBench(b, `FETCH * (BODY[TEXT])`) c.doBench(b, `FETCH 1:* (BODY[TEXT])`) c.doBench(b, `FETCH * (BODY[])`) c.doBench(b, `FETCH 1:* (BODY[])`) c.doBench(b, `FETCH * (BODY[1])`) c.doBench(b, `FETCH 1:* (BODY[1])`) c.doBench(b, `FETCH * (BODY[2])`) c.doBench(b, `FETCH 1:* (BODY[2])`) c.doBench(b, `FETCH * (BODY[1.MIME])`) c.doBench(b, `FETCH 1:* (BODY[1.MIME])`) c.doBench(b, `FETCH * (BODY[2.MIME])`) c.doBench(b, `FETCH 1:* (BODY[2.MIME])`) }) }) } } gluon-0.17.0/tests/cache_reset_test.go000066400000000000000000000037501445200213000177140ustar00rootroot00000000000000package tests import ( "os" "testing" "time" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestFetchWhenFileDeletedFromCache(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, s *testSession) { // create message require.NoError(t, doAppendWithClientFromFile(t, client, "INBOX", "testdata/afternoon-meeting.eml", time.Now())) // delete message from cache require.NoError(t, os.RemoveAll(s.options.dataDir)) status, err := client.Select("INBOX", false) require.NoError(t, err) assert.Equal(t, uint32(1), status.Messages) // Load message fullMessageBytes, err := os.ReadFile("testdata/afternoon-meeting.eml") require.NoError(t, err) fullMessage := string(fullMessageBytes) newFetchCommand(t, client).withItems(goimap.FetchRFC822).fetch("1").forSeqNum(1, func(validator *validatorBuilder) { validator.ignoreFlags() validator.wantSectionString(goimap.FetchRFC822, func(t testing.TB, literal string) { messageFromSection := skipGLUONHeaderOrPanic(literal) require.Equal(t, fullMessage, messageFromSection) }) }).checkAndRequireMessageCount(1) }) } func TestSearchWhenFileDeletedFromCache(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, s *testSession) { // create message require.NoError(t, doAppendWithClientFromFile(t, client, "INBOX", "testdata/afternoon-meeting.eml", time.Now())) // delete message from cache require.NoError(t, os.RemoveAll(s.options.dataDir)) status, err := client.Select("INBOX", false) require.NoError(t, err) assert.Equal(t, uint32(1), status.Messages) searchCriteria := goimap.NewSearchCriteria() searchCriteria.Text = append(searchCriteria.Text, "3:30") seqs, err := client.Search(searchCriteria) require.NoError(t, err) require.Equal(t, 1, len(seqs)) require.Equal(t, uint32(1), seqs[0]) }) } gluon-0.17.0/tests/capability_test.go000066400000000000000000000010061445200213000175600ustar00rootroot00000000000000package tests import ( "testing" ) func TestCapability(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("A001 Capability") c.S(`* CAPABILITY ID IDLE IMAP4rev1 STARTTLS`) c.S("A001 OK CAPABILITY") c.C(`A002 login "user" "pass"`) c.S(`A002 OK [CAPABILITY ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT] Logged in`) c.C("A003 Capability") c.S(`* CAPABILITY ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT`) c.S("A003 OK CAPABILITY") }) } gluon-0.17.0/tests/case_test.go000066400000000000000000000045221445200213000163600ustar00rootroot00000000000000package tests import ( "fmt" "testing" ) // GOMSRV-39: We should be able to match INBOX in other cases! func TestMailboxCase(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C(`tag CREATE Archive`).OK(`tag`) c.C(`tag CREATE inbox/other`).OK(`tag`) // We can select INBOX in any case. c.C(`tag SELECT INBOX`).OK(`tag`) c.C(`tag SELECT inbox`).OK(`tag`) c.C(`tag SELECT iNbOx`).OK(`tag`) c.C(`tag SELECT INBOX/other`).OK(`tag`) c.C(`tag SELECT inbox/other`).OK(`tag`) c.C(`tag SELECT iNbOx/other`).OK(`tag`) // We can status INBOX in any case. c.C(`tag status INBOX (messages)`).OK(`tag`) c.C(`tag status inbox (messages)`).OK(`tag`) c.C(`tag status iNbOx (messages)`).OK(`tag`) c.C(`tag status INBOX/other (messages)`).OK(`tag`) c.C(`tag status inbox/other (messages)`).OK(`tag`) c.C(`tag status iNbOx/other (messages)`).OK(`tag`) // We can append INBOX in any case. literal := buildRFC5322TestLiteral(`To: 1@pm.me`) literalLen := len(literal) c.C(fmt.Sprintf(`tag append INBOX () {%v}`, literalLen)).Continue().C(literal).OK(`tag`) c.C(fmt.Sprintf(`tag append inbox () {%v}`, literalLen)).Continue().C(literal).OK(`tag`) c.C(fmt.Sprintf(`tag append iNbOx () {%v}`, literalLen)).Continue().C(literal).OK(`tag`) c.C(fmt.Sprintf(`tag append INBOX/other () {%v}`, literalLen)).Continue().C(literal).OK(`tag`) c.C(fmt.Sprintf(`tag append inbox/other () {%v}`, literalLen)).Continue().C(literal).OK(`tag`) c.C(fmt.Sprintf(`tag append iNbOx/other () {%v}`, literalLen)).Continue().C(literal).OK(`tag`) // We can list inbox in any case. c.C(`tag LIST "" "INBOX"`).Sx(`INBOX`).OK(`tag`) c.C(`tag LIST "" "inbox"`).Sx(`INBOX`).OK(`tag`) c.C(`tag LIST "" "iNbOx"`).Sx(`INBOX`).OK(`tag`) c.C(`tag LIST "" "INBOX/other"`).Sx(`INBOX/other`).OK(`tag`) c.C(`tag LIST "" "inbox/other"`).Sx(`INBOX/other`).OK(`tag`) c.C(`tag LIST "" "iNbOx/other"`).Sx(`INBOX/other`).OK(`tag`) // We can only select non-inbox mailboxes in the original case. c.C(`tag SELECT Archive`).OK(`tag`) c.C(`tag SELECT ARCHIVE`).NO(`tag`) c.C(`tag SELECT archive`).NO(`tag`) c.C(`tag SELECT ArChIvE`).NO(`tag`) // We can only list non-inbox mailboxes in the original case. c.C(`tag LIST "" "Archive"`).Sx(`Archive`).OK(`tag`) c.C(`tag LIST "" "ARCHIVE"`).Sx(`tag OK`) }) } gluon-0.17.0/tests/cert_test.go000066400000000000000000000057201445200213000164030ustar00rootroot00000000000000package tests import ( "crypto/tls" ) var testCert = func() tls.Certificate { cert, err := tls.X509KeyPair([]byte(testCertPEM), []byte(testKeyPEM)) if err != nil { panic(err) } return cert }() const testCertPEM = `-----BEGIN CERTIFICATE----- MIIDADCCAeigAwIBAgIQbOhMBru7sP/1uK0nDjxwIzANBgkqhkiG9w0BAQsFADAA MB4XDTIxMTIwNjIyMzMzM1oXDTQxMTIwMTIyMzMzM1owADCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAMK6TANA5RHk8xNQRz6VSlKi4WJmgTutmb5zwvTO L2PNKVQsk/KtQeQpvgbwe50jlMB8hd9ZEizZq/3JvYFcw1PwcJQ8eT2fBFS7kCxM p/tBIBuS4/bvEG8vDOTKSSk5AeQl/xijPJQrm81LJXs0gxAfGNBFaaA9j2wMz8Yg KVRwVVlI3PbsukU3TU0XHCwSInnFb+EpO2+IJevIlXb94QhxSDbmnwIU65gXHqkV wo9ZXznN8gW9ZApNyNldK2LyblZ7Ws8WBlUv2p42tMMF0Kjx15awQCumaaSax61W oDcFJq7vDj3BFtbq8FHk7DYYQZQoRap/dJUF/fYF+nNklekCAwEAAaN2MHQwDgYD VR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMB Af8wHQYDVR0OBBYEFEHJiUtI88kTv52Yxk3QZCMeLXtEMB0GA1UdEQEB/wQTMBGC CWxvY2FsaG9zdIcEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEABZoAd9DO4cs1NoA7 9pbRd9rIgikluAWDGOeUxj9jHugWYPUb1NjIlza8DPAfrdVRoDcGNoXJytxcO4zK SwaAsPvlpqFaweixAuf3Yk94SnA6cpsHbXHKtGaO6mcazKn0tmhqOm8Hvi2z1VcA MDUZIgUqQWJy4u3gHJq2q4QE4488iLt0f9NuHDnIjydMl2cY/WcnjYU7fTtzYZAP 40Fz2wbecog4BlCtXngicah+60oqNIK6I9Cht+OuY3v6v/YXTpt0WQ6xSl8sKVTZ 5Vy/FJ+hBqmlRf11gGqJ6UC3kRnhnOwwqE/MaXQx/eExTU+H3uXgPko9eJlg+yQP sd1PqA== -----END CERTIFICATE----- ` const testKeyPEM = `-----BEGIN PRIVATE KEY----- MIIEpAIBAAKCAQEAwrpMA0DlEeTzE1BHPpVKUqLhYmaBO62ZvnPC9M4vY80pVCyT 8q1B5Cm+BvB7nSOUwHyF31kSLNmr/cm9gVzDU/BwlDx5PZ8EVLuQLEyn+0EgG5Lj 9u8Qby8M5MpJKTkB5CX/GKM8lCubzUslezSDEB8Y0EVpoD2PbAzPxiApVHBVWUjc 9uy6RTdNTRccLBIiecVv4Sk7b4gl68iVdv3hCHFINuafAhTrmBceqRXCj1lfOc3y Bb1kCk3I2V0rYvJuVntazxYGVS/anja0wwXQqPHXlrBAK6ZppJrHrVagNwUmru8O PcEW1urwUeTsNhhBlChFqn90lQX99gX6c2SV6QIDAQABAoIBAHdU93Qe9sIqjhPN 5HsjvfI6QuisbJIH5unhwx2GpWABwEwHLXtQVcrfEcbq5LX9shDrvpaK3SqDEnVq himakVEFTdhp3tq2ck8Cym17ZI4C8Qw0zmLrSiT4rmwe0wriFpib+GI+1sbumoIK hSOloJPmmqw3fW1njFbo2wNNfkZxpi4c0OSM1n1uCor8+aoedWJrWbG/Ml9PxbHx NwAAYvUqcE9yrGIWIilSA12ylizvd8B1DaF7wAfo1MC4rpa/0hq4VKweQ8/r+QUt CS1bPmn9Hh4naJ1UChSyYB5O0RLzOC6fzA/pbLoF88KziwSsnwg+G949EwX0JO7P Q6gHzCkCgYEA8idOwDYZu7IH6rgRmaBsqz3plIoQ6uFeQRYNhTDUrKZ1/nFmTBc1 Zibvn8Z7KTZOCxLcVZ9oVDd6Gm3Na6uJrT/ui4TtzyS0n43zMmilHG3f43C5dAIk xjB1iT5Q44w3YO3jc65J/EIyM1a/ASlPPnMO37E8J+s3NcyNKDBgN8cCgYEAzdzC s5VNkDktoECNzHDZNuzqjhC7JhmauSkpueVnnVFCc/Gd+kk1ME/XeEIDU+KQLNLq BmysEpENc+UvP4XAbp2NcDJc118XPT+5vD2qbecjSnJXsWYLUxvY7Ux35w6Yngf6 Nen02YRMIt/lg+OFYk2Ys+2AvRJmkjErtBdEpM8CgYBQjYTj6dtLleCOUyb/rN8Z Y+IU2IziJZA+JIDg4qqMuF8eAkkeXMYVsjQaOWN1BSyXAHItRXbmNQI4Unh4LbsB 1/eZj+Gv+6zeOtFA3pC2UVKeDTyT+7aR+0LOId20pEszwk7ch4jzEm4yp9OoJj7H Lm0vOn0hZlyaV+5JBTastwKBgQC7LcAm01lcCnFO5YNI4U7PnylCFTplUSCavS/A ZDMLGqimjYmL2mavT9ll8ffenQFkkD3Tq5nlo9gsibWlN3MZ4M2Kt3AtL7wMp9W0 sAk3ttMizMapeVRQs+BRG5dmEqJ4Bl7eCKTl5mHnz9Z7TjOoh0+SQiAtSf7TbDwF mqaChwKBgQDw86PVXgIwuLv7fAjEOu40+agNOIRaxs4c+ZyLIuC2wHx2Md4hKxKU GkMYNJppiar000/ewbU8QomaKkavYc/MMrsNTsc9n1BYA88RaB3AwTiGbclzsbq2 kF81xUvDHBWjihVWWJJaL7wnWyKfaLcRtTp6p7bNuGvJ9mdUG/37kA== -----END PRIVATE KEY----- ` gluon-0.17.0/tests/check_test.go000066400000000000000000000006511445200213000165210ustar00rootroot00000000000000package tests import ( "testing" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestCheck(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { mailboxStatus, err := client.Select("INBOX", false) require.NoError(t, err) require.Equal(t, false, mailboxStatus.ReadOnly) require.NoError(t, client.Check()) }) } gluon-0.17.0/tests/close_test.go000066400000000000000000000105551445200213000165550ustar00rootroot00000000000000package tests import ( "strings" "testing" "time" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestClose(t *testing.T) { // This test is still useful as we have no way of checking the fetch responses after the store command. // Additionally, we also need to ensure that there are no unilateral EXPUNGE messages returned from the server after close. // There is currently no way to check for this with the go imap client. runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { c[1].C("b001 CREATE saved-messages") c[1].S("b001 OK CREATE") c[1].doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") c[1].doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c[1].doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 3@pm.me`), `\Seen`).expect("OK") c[1].doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 4@pm.me`)).expect("OK") c[1].doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 5@pm.me`), `\Seen`).expect("OK") c[1].C(`A002 SELECT saved-messages`) c[1].Se(`A002 OK [READ-WRITE] SELECT`) c[2].C(`B001 SELECT saved-messages`) c[2].Se(`B001 OK [READ-WRITE] SELECT`) c[2].C(`B002 FETCH 1:* (UID FLAGS)`) c[2].S( `* 1 FETCH (UID 1 FLAGS (\Seen))`, `* 2 FETCH (UID 2 FLAGS ())`, `* 3 FETCH (UID 3 FLAGS (\Seen))`, `* 4 FETCH (UID 4 FLAGS ())`, `* 5 FETCH (UID 5 FLAGS (\Seen))`, ) c[2].OK("B002") // TODO: Match flags in any order. c[1].C(`A003 STORE 1 +FLAGS (\Deleted)`) c[1].S(`* 1 FETCH (FLAGS (\Deleted \Recent \Seen))`) c[1].Sx("A003 OK.*") c[1].C(`A004 STORE 2 +FLAGS (\Deleted)`) c[1].S(`* 2 FETCH (FLAGS (\Deleted \Recent))`) c[1].Sx("A004 OK.*") c[1].C(`A005 STORE 3 +FLAGS (\Deleted)`) c[1].S(`* 3 FETCH (FLAGS (\Deleted \Recent \Seen))`) c[1].Sx("A005 OK.*") s.flush("user") c[2].C("B003 NOOP") c[2].S( `* 1 FETCH (FLAGS (\Deleted \Seen))`, `* 2 FETCH (FLAGS (\Deleted))`, `* 3 FETCH (FLAGS (\Deleted \Seen))`, ) c[2].OK("B003") c[2].C("B004 UID EXPUNGE 1") c[2].Se(`* 1 EXPUNGE`) c[2].OK("B004") c[1].C(`A202 CLOSE`) c[1].S("A202 OK CLOSE") s.flush("user") c[2].C("B003 NOOP") c[2].S( `* 1 EXPUNGE`, `* 1 EXPUNGE`, ) c[2].OK("B003") // There are 2 messages in saved-messages. c[1].C(`A006 STATUS saved-messages (MESSAGES)`) c[1].S(`* STATUS "saved-messages" (MESSAGES 2)`) c[1].S(`A006 OK STATUS`) }) } func TestCloseWithClient(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { const ( messageBoxName = "saved-messages" ) require.NoError(t, client.Create(messageBoxName)) require.NoError(t, client.Append(messageBoxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 1@pm.me")))) require.NoError(t, client.Append(messageBoxName, nil, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 2@pm.me")))) require.NoError(t, client.Append(messageBoxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 3@pm.me")))) require.NoError(t, client.Append(messageBoxName, nil, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 4@pm.me")))) require.NoError(t, client.Append(messageBoxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 5@pm.me")))) { mailboxStatus, err := client.Select(messageBoxName, false) require.NoError(t, err) require.Equal(t, false, mailboxStatus.ReadOnly) } { sequenceSet, _ := goimap.ParseSeqSet("1") require.NoError(t, client.Store(sequenceSet, goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) } { sequenceSet, _ := goimap.ParseSeqSet("2") require.NoError(t, client.Store(sequenceSet, goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) } { sequenceSet, _ := goimap.ParseSeqSet("3") require.NoError(t, client.Store(sequenceSet, goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) } require.NoError(t, client.Close()) // There are 2 messages in saved-messages. mailboxStatus, err := client.Status(messageBoxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(2), mailboxStatus.Messages, "Expected message count does not match") }) } gluon-0.17.0/tests/connection_test.go000066400000000000000000000131501445200213000176010ustar00rootroot00000000000000package tests import ( "bytes" "crypto/tls" "crypto/x509" "fmt" "io" "net" "regexp" "strconv" "strings" "testing" "github.com/ProtonMail/gluon/liner" "github.com/bradenaw/juniper/xslices" "github.com/google/uuid" "github.com/stretchr/testify/require" "golang.org/x/exp/slices" ) func withTag(fn func(string)) { fn(uuid.NewString()) } func lines(lines ...string) string { return strings.Join(lines, "\r\n") } func repeat(line string, n int) []string { var res []string for i := 0; i < n; i++ { res = append(res, line) } return res } func seq(begin, end int) string { var res string for i := begin; i < end; i++ { res += strconv.Itoa(i) + " " } return res + strconv.Itoa(end) } type testConnection struct { tb testing.TB conn net.Conn liner *liner.Liner } func newTestConnection(tb testing.TB, conn net.Conn) *testConnection { return &testConnection{ tb: tb, conn: conn, liner: liner.New(conn), } } func (s *testConnection) C(value string) *testConnection { n, err := s.conn.Write([]byte(value + "\r\n")) require.NoError(s.tb, err) require.Greater(s.tb, n, 0) return s } func (s *testConnection) Cb(b []byte) *testConnection { n, err := s.conn.Write(append(b, []byte("\r\n")...)) require.NoError(s.tb, err) require.Greater(s.tb, n, 0) return s } func (s *testConnection) Cf(format string, a ...any) *testConnection { return s.C(fmt.Sprintf(format, a...)) } // S expects that the server returns the given lines (in any order). func (s *testConnection) S(want ...string) *testConnection { return s.Sx(xslices.Map(want, func(want string) string { return "^" + regexp.QuoteMeta(want) + "\r\n" })...) } // Sx expects that the server returns lines matching the given regexps (in any order). func (s *testConnection) Sx(want ...string) *testConnection { var bad []string for _, have := range s.readN(len(want)) { if idx := xslices.IndexFunc(want, func(want string) bool { return regexp.MustCompile(want).Match(have) }); idx >= 0 { want = slices.Delete(want, idx, idx+1) } else { bad = append(bad, string(have)) } } if len(bad) > 0 { require.Failf(s.tb, "Received unexpected responses", "want: %q\nbut have:%q", want, bad, ) } return s } // Se expects that the server eventually returns the given lines (in any order). func (s *testConnection) Se(want ...string) *testConnection { return s.Sxe(xslices.Map(want, func(want string) string { return "^" + regexp.QuoteMeta(want) + "\r\n" })...) } // Sxe expects that the server eventually returns lines matching the given regexps (in any order). func (s *testConnection) Sxe(want ...string) *testConnection { for len(want) > 0 { have := s.read() if idx := xslices.IndexFunc(want, func(want string) bool { return regexp.MustCompile(want).Match(have) }); idx >= 0 { want = slices.Delete(want, idx, idx+1) } } return s } // Continue is a shortcut for a server continuation request. func (s *testConnection) Continue() *testConnection { s.Sx("\\+") return s } // OK is a shortcut that we eventually get a tagged OK response of some kind. func (s *testConnection) OK(tag string, items ...string) { want := tag + " OK" if len(items) > 0 { want += fmt.Sprintf(" [%v]", strings.Join(items, " ")) } s.Sxe(regexp.QuoteMeta(want)) } // NO is a shortcut that we eventually get a tagged NO response of some kind. func (s *testConnection) NO(tag string, items ...string) { want := tag + " NO" if len(items) > 0 { want += fmt.Sprintf(" [%v]", strings.Join(items, " ")) } s.Sxe(regexp.QuoteMeta(want)) } // BAD is a shortcut that we eventually get a tagged BAD response of some kind. func (s *testConnection) BAD(tag string) { s.Sxe(tag + " BAD") } // Login is a shortcut for a login request. func (s *testConnection) Login(username, password string) *testConnection { withTag(func(tag string) { s.Cf("%v login %v %s", tag, username, password).OK(tag) }) return s } func (s *testConnection) doCreateTempDir() (string, func()) { name := uuid.NewString() // Delete it if it exists already, ignoring the response (OK/NO). withTag(func(tag string) { s.Cf(`%v DELETE %v`, tag, name).Sx("") }) // Create it (again). withTag(func(tag string) { s.Cf(`%v CREATE %v`, tag, name).OK(tag) }) // Delete it afterwards. return name, func() { withTag(func(tag string) { s.Cf("%v UNSELECT", tag) s.Cf(`%v DELETE %v`, tag, name).OK(tag) }) } } func (s *testConnection) doBench(b *testing.B, cmd string) { b.Run(cmd, func(b *testing.B) { for i := 0; i < b.N; i++ { withTag(func(tag string) { s.Cf(`%v %v`, tag, cmd).OK(tag) }) } }) } // TODO: This is shitty because the uuid of one literal may appear within the data of another literal. func (s *testConnection) read() []byte { line, literals, err := s.liner.Read(func() error { return nil }) require.NoError(s.tb, err) for uuid, literal := range literals { line = bytes.Replace(line, []byte(uuid), literal, 1) } return line } func (s *testConnection) readN(n int) [][]byte { var res [][]byte for i := 0; i < n; i++ { res = append(res, s.read()) } return res } func (s *testConnection) disconnect() error { return s.conn.Close() } func (s *testConnection) expectClosed() { _, _, err := s.liner.Read(func() error { return nil }) require.ErrorIs(s.tb, err, io.EOF) } func (s *testConnection) upgradeConnection() { cert, err := x509.ParseCertificate(testCert.Certificate[0]) require.NoError(s.tb, err) pool := x509.NewCertPool() pool.AddCert(cert) conn := tls.Client(s.conn, &tls.Config{ServerName: cert.DNSNames[0], RootCAs: pool, MinVersion: tls.VersionTLS13}) require.NoError(s.tb, conn.Handshake()) s.conn = conn s.liner = liner.New(conn) } gluon-0.17.0/tests/copy_test.go000066400000000000000000000154421445200213000164220ustar00rootroot00000000000000package tests import ( "testing" "github.com/ProtonMail/gluon/imap" goimap "github.com/emersion/go-imap" uidplus "github.com/emersion/go-imap-uidplus" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestCopy(t *testing.T) { runOneToOneTestClientWithData(t, defaultServerOptions(t, withUIDValidityGenerator(imap.NewFixedUIDValidityGenerator(imap.UID(1)))), func(client *client.Client, s *testSession, mbox string, mboxID imap.MailboxID) { { // There are 100 messages in the origin and no messages in the destination. mailboxStatus, err := client.Status(mbox, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(100), mailboxStatus.Messages) } uidClient := uidplus.NewClient(client) { // Copy half the messages to the destination. sequenceSet, seqErr := goimap.ParseSeqSet("1:50") require.NoError(t, seqErr) validity, srcUids, dstUids, err := uidClient.UidCopy(sequenceSet, "inbox") require.NoError(t, err) require.Equal(t, uint32(1), validity) require.Equal(t, uint32(1), srcUids.Set[0].Start) require.Equal(t, uint32(50), srcUids.Set[0].Stop) require.Equal(t, uint32(1), dstUids.Set[0].Start) require.Equal(t, uint32(50), dstUids.Set[0].Stop) // Check that 500 messages are in the new mailbox mailboxStatus, err := client.Status("inbox", []goimap.StatusItem{goimap.StatusMessages, goimap.StatusRecent}) require.NoError(t, err) require.Equal(t, uint32(50), mailboxStatus.Messages) // check if recent flag was set for the copied messages require.Equal(t, uint32(50), mailboxStatus.Recent) } require.NoError(t, client.Noop()) { // Copy the other half the messages to the destination (this time using UID COPY). sequenceSet, seqErr := goimap.ParseSeqSet("51:100") require.NoError(t, seqErr) validity, srcUids, dstUids, err := uidClient.UidCopy(sequenceSet, "inbox") require.NoError(t, err) require.Equal(t, uint32(1), validity) require.Equal(t, uint32(51), srcUids.Set[0].Start) require.Equal(t, uint32(100), srcUids.Set[0].Stop) require.Equal(t, uint32(51), dstUids.Set[0].Start) require.Equal(t, uint32(100), dstUids.Set[0].Stop) // Check that 100 messages are in the new mailbox mailboxStatus, err := client.Status("inbox", []goimap.StatusItem{goimap.StatusMessages, goimap.StatusRecent}) require.NoError(t, err) require.Equal(t, uint32(100), mailboxStatus.Messages) require.Equal(t, uint32(100), mailboxStatus.Recent) } }) } func TestCopySameMBox(t *testing.T) { runOneToOneTestClientWithData(t, defaultServerOptions(t, withUIDValidityGenerator(imap.NewFixedUIDValidityGenerator(imap.UID(1)))), func(client *client.Client, s *testSession, mbox string, mboxID imap.MailboxID) { { // There are 100 messages in the origin and no messages in the destination. mailboxStatus, err := client.Status(mbox, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(100), mailboxStatus.Messages) } uidClient := uidplus.NewClient(client) { // Copy half the messages to the same mailbox. Since we don't allow duplicate, the original message must // be deleted and re-added. sequenceSet, seqErr := goimap.ParseSeqSet("1:50") require.NoError(t, seqErr) validity, srcUids, dstUids, err := uidClient.UidCopy(sequenceSet, mbox) require.NoError(t, err) require.Equal(t, uint32(1), validity) require.Equal(t, uint32(1), srcUids.Set[0].Start) require.Equal(t, uint32(50), srcUids.Set[0].Stop) require.Equal(t, uint32(101), dstUids.Set[0].Start) require.Equal(t, uint32(150), dstUids.Set[0].Stop) // Check that there are still 100 messages are in the new mailbox mailboxStatus, err := client.Status(mbox, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(100), mailboxStatus.Messages) } }) } func TestCopyTryCreate(t *testing.T) { // Test can't be remove since there is no way to check the TRYCREATE response from the server runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // There are 100 messages in the origin. c.Cf(`A001 status %v (messages)`, mbox).Sxe(`MESSAGES 100`).OK(`A001`) // Copy to a nonexistent destination. c.C(`A002 copy 1:* this-name-does-not-exist`) c.Sx(`A002 NO \[TRYCREATE\]`) // UID COPY to a nonexistent destination. c.C(`A002 uid copy 1:* this-name-does-not-exist`) c.Sx(`A002 NO \[TRYCREATE\]`) }) } func TestCopyNonExistingClient(t *testing.T) { runOneToOneTestClientWithData(t, defaultServerOptions(t), func(client *client.Client, s *testSession, mbox string, mboxID imap.MailboxID) { { // Move message intervals to inbox sequenceSet, seqErr := goimap.ParseSeqSet("1:25,76:100") require.NoError(t, seqErr) require.NoError(t, client.Move(sequenceSet, "inbox")) // Check that 50 messages are in the new mailbox mailboxStatus, err := client.Status("inbox", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(50), mailboxStatus.Messages) } { // Attempting to UID COPY nonexistent messages with UIDs lower than the smallest in the mailbox returns OK. sequenceSet, seqErr := goimap.ParseSeqSet("51:100") require.NoError(t, seqErr) require.Error(t, client.Copy(sequenceSet, "inbox")) } { // Attempting to UID COPY nonexistent messages with UIDs lower than the smallest in the mailbox returns OK. uidClient := uidplus.NewClient(client) sequenceSet, seqErr := goimap.ParseSeqSet("1:25") require.NoError(t, seqErr) _, _, _, err := uidClient.UidCopy(sequenceSet, "inbox") require.NoError(t, err) } { // Attempting to UID COPY nonexistent messages with UIDs lower than the smallest in the mailbox returns OK. uidClient := uidplus.NewClient(client) sequenceSet, seqErr := goimap.ParseSeqSet("76:100") require.NoError(t, seqErr) _, _, _, err := uidClient.UidCopy(sequenceSet, "inbox") require.NoError(t, err) } }) } func TestCopyNonExisting(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // MOVE some of the messages out of the mailbox. c.C(`A001 move 1:24,76:100 inbox`).OK(`A001`) // Attempting to MOVE nonexistent messages by sequence number returns BAD. c.C(`A002 move 51:100 inbox`).BAD(`A002`) // Attempting to UID MOVE nonexistent messages with UIDs lower than the smallest in the mailbox returns OK. c.C(`A003 uid move 1:24 inbox`) // Nothing should be returned c.Sx(`A003 OK .*`) // Attempting to UID MOVE nonexistent messages with UIDs higher than the largest in the mailbox returns OK. c.C(`A004 uid copy 76:100 inbox`) // Nothing should be returned c.Sx(`A004 OK .*`) c.C(`A005 uid copy 24:26 inbox`).OK(`A005`) }) } gluon-0.17.0/tests/counts_test.go000066400000000000000000000022571445200213000167630ustar00rootroot00000000000000package tests import ( "testing" "time" "github.com/ProtonMail/gluon/events" "github.com/ProtonMail/gluon/internal/ids" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestCounts(t *testing.T) { dir := t.TempDir() runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withDataDir(dir)), func(client *client.Client, s *testSession) { for _, count := range getEvent[events.UserAdded](s.eventCh).Counts { require.Equal(t, 0, count) } for i := 0; i < 10; i++ { require.NoError(t, doAppendWithClientFromFile(t, client, "INBOX", "testdata/afternoon-meeting.eml", time.Now(), goimap.SeenFlag)) } }) runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withDataDir(dir)), func(_ *client.Client, s *testSession) { for mbox, count := range getEvent[events.UserAdded](s.eventCh).Counts { if mbox == ids.GluonInternalRecoveryMailboxRemoteID { require.Equal(t, 0, count) } else { require.Equal(t, 10, count) } } }) } func getEvent[T any](eventCh <-chan events.Event) T { for event := range eventCh { if event, ok := event.(T); ok { return event } } panic("no event") } gluon-0.17.0/tests/create_test.go000066400000000000000000000157071445200213000167170ustar00rootroot00000000000000package tests import ( "fmt" "testing" "github.com/ProtonMail/gluon/imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestCreate(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { matchMailboxNamesClient(t, client, "", "*", []string{"INBOX"}) require.NoError(t, client.Create("owatagusiam")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "owatagusiam"}) require.NoError(t, client.Create("owatagusiam/blurdybloop")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "owatagusiam", "owatagusiam/blurdybloop"}) }) } func TestCreateEndingInSeparator(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { matchMailboxNamesClient(t, client, "", "*", []string{"INBOX"}) require.NoError(t, client.Create("owatagusiam/")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "owatagusiam"}) }) } func TestCreateCannotCreateInbox(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.Error(t, client.Create("INBOX")) }) } func TestCreateCannotCreateExistingMailbox(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("Folder")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "Folder"}) require.Error(t, client.Create("Folder")) }) } func TestCreateWithDifferentHierarchySeparator(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { matchMailboxNamesClient(t, client, "", "*", []string{"INBOX"}) require.NoError(t, client.Create("Folder")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "Folder"}) require.NoError(t, client.Create("Folder\\Bar")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "Folder", "Folder\\Bar"}) }) } func TestCreateWithNilHierarchySeparator(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withDelimiter("")), func(client *client.Client, _ *testSession) { matchMailboxNamesClient(t, client, "", "*", []string{"INBOX"}) require.NoError(t, client.Create("Folder/Bar")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "Folder/Bar"}) require.NoError(t, client.Create("Folder")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "Folder", "Folder/Bar"}) }) } func TestCreatePreviousLevelHierarchyIfNonExisting(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("Folder/Bar/ZZ")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "Folder", "Folder/Bar", "Folder/Bar/ZZ"}) }) } func TestEnsureNewMailboxWithDeletedNameHasGreaterId(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { var oldValidity uint32 var newValidity uint32 { // create Folder inbox, get id and delete require.NoError(t, client.Create("mbox1")) mailboxStatus, err := client.Select("mbox1", true) require.NoError(t, err) oldValidity = mailboxStatus.UidValidity require.NoError(t, client.Unselect()) // Destroy Folder inbox require.NoError(t, client.Delete("mbox1")) require.NoError(t, client.Create("mbox2")) } { // re-create Folder inbox require.NoError(t, client.Create("mbox1")) mailboxStatus, err := client.Select("mbox1", true) require.NoError(t, err) newValidity = mailboxStatus.UidValidity require.Greater(t, newValidity, oldValidity) oldValidity = newValidity } { require.NoError(t, client.Unselect()) require.NoError(t, client.Delete("mbox1")) require.NoError(t, client.Delete("mbox2")) require.NoError(t, client.Create("mbox2")) mailboxStatus, err := client.Select("mbox2", true) require.NoError(t, err) newValidity = mailboxStatus.UidValidity require.Greater(t, newValidity, oldValidity) } }) } func TestCreate_UIDValidity_Bumped(t *testing.T) { uidValidityGenerator := imap.NewIncrementalUIDValidityGenerator() runServer(t, defaultServerOptions(t, withUIDValidityGenerator(uidValidityGenerator)), func(s *testSession) { currentUIDValidity := uidValidityGenerator.GetValue() // Create some mailboxes; they'll have the initial UID validity of 1. s.withConnection(s.options.defaultUsername(), func(c *testConnection) { c.C("tag create a").OK("tag") c.C("tag create b").OK("tag") c.C("tag create c").OK("tag") currentUIDValidity++ c.C("tag select a").Sxe(fmt.Sprintf("UIDVALIDITY %v", currentUIDValidity)).OK("tag") currentUIDValidity++ c.C("tag select b").Sxe(fmt.Sprintf("UIDVALIDITY %v", currentUIDValidity)).OK("tag") currentUIDValidity++ c.C("tag select c").Sxe(fmt.Sprintf("UIDVALIDITY %v", currentUIDValidity)).OK("tag") }) // Delete the mailboxes. s.withConnection(s.options.defaultUsername(), func(c *testConnection) { c.C("tag delete a").OK("tag") }) s.withConnection(s.options.defaultUsername(), func(c *testConnection) { c.C("tag delete b").OK("tag") }) s.withConnection(s.options.defaultUsername(), func(c *testConnection) { c.C("tag delete c").OK("tag") }) // Recreate the mailboxes; they'll have a new UID validity. s.withConnection(s.options.defaultUsername(), func(c *testConnection) { c.C("tag create a").OK("tag") c.C("tag create b").OK("tag") c.C("tag create c").OK("tag") currentUIDValidity++ c.C("tag select a").Sxe(fmt.Sprintf("UIDVALIDITY %v", currentUIDValidity)).OK("tag") currentUIDValidity++ c.C("tag select b").Sxe(fmt.Sprintf("UIDVALIDITY %v", currentUIDValidity)).OK("tag") currentUIDValidity++ c.C("tag select c").Sxe(fmt.Sprintf("UIDVALIDITY %v", currentUIDValidity)).OK("tag") }) // Bump the global UID validity. s.uidValidityBumped(s.options.defaultUsername()) // Ensure the UID validity has been bumped. s.flush(s.options.defaultUsername()) // The mailboxes should all have a new UID validity. s.withConnection(s.options.defaultUsername(), func(c *testConnection) { currentUIDValidity = 14 c.C("tag select a").Sxe(fmt.Sprintf("UIDVALIDITY %v", currentUIDValidity)).OK("tag") currentUIDValidity++ c.C("tag select b").Sxe(fmt.Sprintf("UIDVALIDITY %v", currentUIDValidity)).OK("tag") currentUIDValidity++ c.C("tag select c").Sxe(fmt.Sprintf("UIDVALIDITY %v", currentUIDValidity)).OK("tag") }) }) } func TestCreateAdjacentSeparator(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C(`A001 create foo//bar`) c.Sx(`^A001 NO .*adjacent hierarchy separators\r\n$`) }) } func TestCreateBeginsWithSeparator(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C(`A001 create /foo`) c.Sx(`^A001 NO .*begins with hierarchy separator\r\n$`) }) } gluon-0.17.0/tests/db_test.go000066400000000000000000000010011445200213000160170ustar00rootroot00000000000000package tests import ( "context" "github.com/ProtonMail/gluon/db" "github.com/stretchr/testify/require" ) func dbCheckUserMessageCount(s *testSession, user string, expectedCount int) { err := s.withUserDB(user, func(ent db.Client, ctx context.Context) { val, err := db.ClientReadType(ctx, ent, func(ctx context.Context, only db.ReadOnly) (int, error) { return only.GetTotalMessageCount(ctx) }) require.NoError(s.tb, err) require.Equal(s.tb, expectedCount, val) }) require.NoError(s.tb, err) } gluon-0.17.0/tests/delete_test.go000066400000000000000000000122421445200213000167050ustar00rootroot00000000000000package tests import ( "testing" "github.com/ProtonMail/gluon/internal/response" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestDelete(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("blurdybloop")) require.NoError(t, client.Create("foo")) require.NoError(t, client.Create("foo.bar")) checkMailboxesMatchNamesAndAttributes( t, client, "", "*", map[string][]string{ "INBOX": {goimap.UnmarkedAttr}, "blurdybloop": {goimap.UnmarkedAttr}, "foo": {goimap.UnmarkedAttr}, "foo.bar": {goimap.UnmarkedAttr}, }, ) require.NoError(t, client.Delete("blurdybloop")) require.NoError(t, client.Delete("foo")) checkMailboxesMatchNamesAndAttributes( t, client, "", "*", map[string][]string{ "INBOX": {goimap.UnmarkedAttr}, "foo": {goimap.NoSelectAttr}, "foo.bar": {goimap.UnmarkedAttr}, }, ) checkMailboxesMatchNamesAndAttributes( t, client, "", "%", map[string][]string{ "INBOX": {goimap.UnmarkedAttr}, "foo": {goimap.NoSelectAttr}, }, ) // deleting mailboxes with \Noselect Attribute is an error require.Error(t, client.Delete("foo")) }) } func TestDeleteMailboxHasChildren(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C(`A001 CREATE "blurdybloop"`).OK(`A001`) c.C(`A002 CREATE "foo"`).OK(`A002`) c.C(`A003 CREATE "foo/bar"`).OK(`A003`) c.doAppend(`foo`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c.doAppend(`foo/bar`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c.C(`A004 SELECT "INBOX"`).OK(`A004`) c.C(`A005 LIST "" *`) c.S( `* LIST (\Unmarked) "/" "INBOX"`, `* LIST (\Unmarked) "/" "blurdybloop"`, `* LIST (\Marked) "/" "foo"`, `* LIST (\Marked) "/" "foo/bar"`, ) c.OK(`A005`) c.C(`A006 STATUS "foo/bar" (UIDNEXT MESSAGES)`) c.S(`* STATUS "foo/bar" (UIDNEXT 2 MESSAGES 1)`) c.OK(`A006`) c.C(`A007 DELETE "foo"`).OK(`A007`) c.C(`A008 STATUS "foo/bar" (UIDNEXT MESSAGES)`) c.S(`* STATUS "foo/bar" (UIDNEXT 2 MESSAGES 1)`) c.OK(`A008`) c.C(`A009 LIST "" *`) c.S( `* LIST (\Unmarked) "/" "INBOX"`, `* LIST (\Unmarked) "/" "blurdybloop"`, `* LIST (\Noselect) "/" "foo"`, `* LIST (\Marked) "/" "foo/bar"`, ) c.OK(`A009`) }) } func TestDeleteCannotDeleteInbox(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.Error(t, client.Delete("INBOX")) }) } func TestDeleteCannotDeleteMissingMailbox(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.Error(t, client.Delete("this doesn't exist")) }) } func TestDeleteSelectedMailboxCausesDisconnect(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("b001 CREATE mbox1") c.S("b001 OK CREATE") c.C("b002 SELECT mbox1").OK("b002") c.C("b003 DELETE mbox1").OK("b003") c.S(response.Bye().WithMailboxDeleted().String()) }) } func TestDeleteExaminedMailboxCausesDisconnect(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("b001 CREATE mbox1") c.S("b001 OK CREATE") c.C("b002 EXAMINE mbox1").OK("b002") c.C("b003 DELETE mbox1").OK("b003") c.S(response.Bye().WithMailboxDeleted().String()) }) } func TestDeleteSelectedMailboxCausesDisconnectOnOtherClients(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { c[1].C("b001 CREATE mbox1") c[1].S("b001 OK CREATE") s.flush("user") c[2].C("c001 SELECT mbox1").OK("c001") // Delete mailbox c[1].C("b002 SELECT mbox1").OK("b002") c[1].C("b003 DELETE mbox1").OK("b003") c[1].S(response.Bye().WithMailboxDeleted().String()) // Other client should get kicked out on next command c[2].C("c002 NOOP") c[2].S(response.Bye().WithInconsistentState().String()) }) } func TestDeleteExaminedMailboxCausesDisconnectOnOtherClients(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { c[1].C("b001 CREATE mbox1") c[1].S("b001 OK CREATE") s.flush("user") c[2].C("c001 EXAMINE mbox1").OK("c001") // Delete mailbox c[1].C("b002 EXAMINE mbox1").OK("b002") c[1].C("b003 DELETE mbox1").OK("b003") c[1].S(response.Bye().WithMailboxDeleted().String()) // Other client should get kicked out on next command c[2].C("c002 NOOP") c[2].S(response.Bye().WithInconsistentState().String()) }) } func TestDeleteSelectedMailboxWithRemoteUpdateCausesDisconnect(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox1"}) s.flush("user") c.C("b002 SELECT mbox1").OK("b002") s.mailboxDeleted("user", mailboxID) s.flush("user") c.C("b003 NOOP") c.S(response.Bye().WithInconsistentState().String()) }) } gluon-0.17.0/tests/deleted_test.go000066400000000000000000000205651445200213000170600ustar00rootroot00000000000000package tests import ( "os" "path/filepath" "testing" "time" "github.com/stretchr/testify/require" ) func TestDeleted(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { // Create two mailboxes. c.C("b001 CREATE mbox1") c.S("b001 OK CREATE") c.C("b001 CREATE mbox2") c.S("b001 OK CREATE") // Create a message in mbox1. c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 2@pm.me`), `\Seen`).expect("OK") c.C(`A002 SELECT mbox1`) c.Se(`A002 OK [READ-WRITE] SELECT`) // Copy messages 1 to mbox2 and flag it as deleted in mbox 1. c.C(`A003 COPY 1 mbox2`) c.Sx(`A003 OK .*`) c.C(`A004 STORE 1 +FLAGS (\Deleted)`) c.S(`* 1 FETCH (FLAGS (\Deleted \Recent \Seen))`) c.OK("A004") c.C(`B001 FETCH 1 (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Deleted \Recent \Seen))`) c.OK("B001") c.C(`B002 FETCH 2 (FLAGS)`) c.S(`* 2 FETCH (FLAGS (\Recent \Seen))`) c.OK("B002") // Check that the copy in mbox2 does not have the flag \Deleted. c.C(`A005 SELECT mbox2`) c.Se(`* 1 EXISTS`) c.Se(`A005 OK [READ-WRITE] SELECT`) c.C(`A006 FETCH 1 (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Recent \Seen))`) c.OK(`A006`) // Expunge the copy in mbox1. // The message no longer has the recent flag. c.C(`A007 SELECT mbox1`) c.Se(`* 2 EXISTS`) c.Se(`A007 OK [READ-WRITE] SELECT`) c.C(`A008 EXPUNGE`) c.S(`* 1 EXPUNGE`) c.OK(`A008`) c.C(`A009 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.OK(`A009`) // Check that the message is still in mbox2 // The message no longer has the recent flag. c.C(`A00A SELECT mbox2`) c.Se(`* 1 EXISTS`) c.Se(`A00A OK [READ-WRITE] SELECT`) // Flag, unflag, expunge and check the message is still there. c.C(`A00B STORE 1 +FLAGS (\Deleted)`) c.S(`* 1 FETCH (FLAGS (\Deleted \Seen))`) c.OK(`A00B`) c.C(`A00C STORE 1 -FLAGS (\Deleted)`) c.S(`* 1 FETCH (FLAGS (\Seen))`) c.OK(`A00C`) c.C(`A00D EXPUNGE`) c.S(`A00D OK EXPUNGE`) c.C(`A00E STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.S(`A00E OK STATUS`) }) } func TestUIDDeleted(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { // Create two mailboxes c.C("b001 CREATE mbox1") c.S("b001 OK CREATE") c.C("b001 CREATE mbox2") c.S("b001 OK CREATE") // Create a message in mbox1 c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 2@pm.me`), `\Seen`).expect("OK") c.C(`A002 SELECT mbox1`) c.Se(`A002 OK [READ-WRITE] SELECT`) // Copy message 2 to mbox2 and flag it as deleted in mbox 1 c.C(`A003 UID COPY 2 mbox2`) c.Sx(`A003 OK .*`) c.C(`A004 UID STORE 2 +FLAGS (\Deleted)`) c.S(`* 2 FETCH (FLAGS (\Deleted \Recent \Seen) UID 2)`) c.OK(`A004`) // Check that the copy in mbox2 is does not have the flag \Deleted c.C(`A005 SELECT mbox2`) c.Se(`* 1 EXISTS`) c.Se(`A005 OK [READ-WRITE] SELECT`) c.C(`A006 UID FETCH 1 (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Recent \Seen) UID 1)`) c.OK(`A006`) // Expunge the copy in mbox1 c.C(`A007 SELECT mbox1`) c.Se(`* 2 EXISTS`) c.Se(`A007 OK [READ-WRITE] SELECT`) c.C(`A008 EXPUNGE`) c.S(`* 2 EXPUNGE`) c.Sx(`A008 OK .*`) c.C(`A009 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.S(`A009 OK STATUS`) // Check that the message is still in mbox2 c.C(`A00A SELECT mbox2`) c.Se(`* 1 EXISTS`) c.Se(`A00A OK [READ-WRITE] SELECT`) // Flag,unflag, expunge and check the message is still there. c.C(`A00B UID STORE 1 +FLAGS (\Deleted)`) c.S(`* 1 FETCH (FLAGS (\Deleted \Seen) UID 1)`) c.OK(`A00B`) c.C(`A00C UID STORE 1 -FLAGS (\Deleted)`) c.S(`* 1 FETCH (FLAGS (\Seen) UID 1)`) c.OK(`A00C`) c.C(`A00D EXPUNGE`) c.S(`A00D OK EXPUNGE`) c.C(`A00E STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.S(`A00E OK STATUS`) }) } func TestRemoteDeleteOnSelectedMailboxRemoveMessageFromMailbox(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox1"}) messageID1 := s.messageCreated("user", mailboxID, []byte("To: 3@3.pm"), time.Now()) s.messageCreated("user", mailboxID, []byte("To: 4@4.pm"), time.Now()) s.flush("user") c.C(`A002 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 2)`) c.S(`A002 OK STATUS`) c.C("A003 SELECT mbox1").OK("A003") s.messageDeleted("user", messageID1) s.flush("user") c.C(`A002 STATUS mbox1 (MESSAGES)`) c.S(`* 1 EXPUNGE`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.S(`A002 OK STATUS`) }) } func TestRemoteDeleteOnNonSelectedMailboxRemoveMessageFromMailbox(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox1"}) messageID1 := s.messageCreated("user", mailboxID, []byte("To: 3@3.pm"), time.Now()) s.messageCreated("user", mailboxID, []byte("To: 4@4.pm"), time.Now()) s.flush("user") c.C(`A002 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 2)`) c.S(`A002 OK STATUS`) s.messageDeleted("user", messageID1) s.flush("user") c.C(`A002 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.S(`A002 OK STATUS`) }) } func TestRemoteMessageUpdate(t *testing.T) { // Test that a sequence of delete followed by create with the same message ID results in an updated message. runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox1"}) messageID := s.messageCreated("user", mailboxID, []byte("To: 3@3.pm"), time.Now()) s.flush("user") c.C(`A002 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.S(`A002 OK STATUS`) s.messageUpdatedWithID("user", messageID, mailboxID, []byte("To: 4@4.pm"), time.Now()) s.flush("user") c.C(`A002 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.S(`A002 OK STATUS`) c.C(`A00X SELECT mbox1`).OK(`A00X`) c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 4@4.pm FLAGS (\\Recent \\Seen))") c.OK("A005") }) } func TestRemoteMessageUpdateSucceedsIfLiteralIsMissing(t *testing.T) { dataDir := filepath.Join(t.TempDir(), "test_store") // Test that missing cache literal does not block an update. runOneToOneTestWithAuth(t, defaultServerOptions(t, withDataDir(dataDir)), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox1"}) messageID := s.messageCreated("user", mailboxID, []byte("To: 3@3.pm"), time.Now()) s.flush("user") c.C(`A002 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.S(`A002 OK STATUS`) // delete the literals { err := os.RemoveAll(dataDir) require.NoError(t, err) } s.messageUpdatedWithID("user", messageID, mailboxID, []byte("To: 4@4.pm"), time.Now()) s.flush("user") c.C(`A002 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.S(`A002 OK STATUS`) c.C(`A00X SELECT mbox1`).OK(`A00X`) c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 4@4.pm FLAGS (\\Recent \\Seen))") c.OK("A005") }) } func TestRemoteMessageUpdateChangesMailboxesOnly(t *testing.T) { // Test that a sequence of delete followed by create with the same message ID results in an updated message. runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID1 := s.mailboxCreated("user", []string{"mbox1"}) mailboxID2 := s.mailboxCreated("user", []string{"mbox2"}) messageID := s.messageCreated("user", mailboxID1, []byte("To: 3@3.pm"), time.Now()) s.flush("user") c.C(`A002 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 1)`) c.S(`A002 OK STATUS`) s.messageUpdatedWithID("user", messageID, mailboxID2, []byte("To: 3@3.pm"), time.Now()) s.flush("user") c.C(`A002 STATUS mbox1 (MESSAGES)`) c.S(`* STATUS "mbox1" (MESSAGES 0)`) c.S(`A002 OK STATUS`) c.C(`A002 STATUS mbox2 (MESSAGES)`) c.S(`* STATUS "mbox2" (MESSAGES 1)`) c.S(`A002 OK STATUS`) c.C(`A00X SELECT mbox2`).OK(`A00X`) c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 3@3.pm FLAGS (\\Recent \\Seen))") c.OK("A005") }) } gluon-0.17.0/tests/deletion_pool_test.go000066400000000000000000000416631445200213000203100ustar00rootroot00000000000000package tests import ( "testing" "github.com/ProtonMail/gluon/events" ) func TestDeletionPool(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2, 3, 4}, func(c map[int]*testConnection, s *testSession) { c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 3@pm.me`)).expect("OK") for _, i := range []int{1, 2, 4} { c[i].C("A006 SELECT INBOX") c[i].Se(`* 3 EXISTS`) c[i].Sxe("A006 OK") } // From session 1, we flag the 2nd message as deleted and expunge. Message is not listed anymore. c[1].C(`B001 STORE 2 +FLAGS (\Deleted)`) c[1].S(`* 2 FETCH (FLAGS (\Deleted \Recent))`) // update due to session 1 c[1].Sx(`B001 OK`) c[1].C(`B002 EXPUNGE`) c[1].S(`* 2 EXPUNGE`) c[1].Sx(`B002 OK`) c[1].C(`B003 FETCH 1:* (UID)`) c[1].S(`* 1 FETCH (UID 1)`, `* 2 FETCH (UID 3)`) c[1].Sx(`B003 OK`) // From session 2, we first FETCH, the second message should still be there, flagged as deleted // Then we send a no-op, get a notification for the EXPUNGE and the message will have been removed c[2].C(`C001 FETCH 1:* (FLAGS UID)`) c[2].S(`* 1 FETCH (FLAGS () UID 1)`, `* 2 FETCH (FLAGS () UID 2)`, `* 3 FETCH (FLAGS () UID 3)`) c[2].S(`* 2 FETCH (FLAGS (\Deleted))`) // Queued snapshot update c[2].Sx(`C001 OK \[EXPUNGEISSUED\][ \..]*`) c[2].C(`C002 NOOP`) c[2].S(`* 2 EXPUNGE`) c[2].Sx(`C002 OK`) c[2].C(`C003 FETCH 1:* (FLAGS UID)`) c[2].S(`* 1 FETCH (FLAGS () UID 1)`, `* 2 FETCH (FLAGS () UID 3)`) c[2].OK(`C003`) // We create a new snapshot of the INBOX, it only lists two messages c[3].C(`D001 SELECT INBOX`) c[3].Se(`* 2 EXISTS`) c[3].Sxe(`D001 OK`) // From session 4, we check that we still have 3 messages. Then we close the mailbox, // get the FETCH and EXPUNGE notification, and reselect the mailbox. The deleted message should not be there anymore c[4].C(`E001 FETCH 1:* (FLAGS UID)`) c[4].S(`* 1 FETCH (FLAGS () UID 1)`, `* 2 FETCH (FLAGS () UID 2)`, `* 3 FETCH (FLAGS () UID 3)`, `* 2 FETCH (FLAGS (\Deleted))`) c[4].Sxe(`E001 OK \[EXPUNGEISSUED\]`) c[4].C(`E002 CLOSE`).OK(`E002`) c[4].C(`E003 SELECT INBOX`) c[4].Sxe(`\* 2 EXISTS`) c[4].Sxe(`E003 OK`) c[4].C(`E004 FETCH 1:* (FLAGS UID)`) c[4].S(`* 1 FETCH (FLAGS () UID 1)`, `* 2 FETCH (FLAGS () UID 3)`) c[4].OK(`E004`) }) } func TestExpungeIssued(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 3@pm.me`)).expect("OK") // 2 snapshots of INBOX for i := 1; i <= 2; i++ { c[i].C("A001 SELECT INBOX") c[i].Se(`* 3 EXISTS`) c[i].Sxe("A001 OK") } // delete and expunge in snapshot 1 c[1].C(`B001 STORE 2 +FLAGS (\Deleted)`) c[1].S(`* 2 FETCH (FLAGS (\Deleted \Recent))`) // update due to session 1 c[1].Sx(`B001 OK`) c[1].C(`B002 EXPUNGE`) c[1].S(`* 2 EXPUNGE`) c[1].Sx(`B002 OK`) c[1].C(`B003 FETCH 1:* (UID)`) c[1].S(`* 1 FETCH (UID 1)`, `* 2 FETCH (UID 3)`) c[1].Sx(`B003 OK`) // FETCH, STORE and SEARCH from unnotified snapshot 2. we should get EXPUNGEISSUED even for untouched messages c[2].C(`C001 FETCH 1:* (FLAGS UID)`) c[2].S(`* 1 FETCH (FLAGS () UID 1)`, `* 2 FETCH (FLAGS () UID 2)`, `* 3 FETCH (FLAGS () UID 3)`, `* 2 FETCH (FLAGS (\Deleted))`, ) c[2].Sx(`C001 OK \[EXPUNGEISSUED\] command completed in`) c[2].C(`C002 FETCH 1 (FLAGS UID)`) c[2].S(`* 1 FETCH (FLAGS () UID 1)`) c[2].Sx(`C002 OK \[EXPUNGEISSUED\] command completed in`) c[2].C(`C003 STORE 2 +FLAGS (flag)`) c[2].S(`* 2 FETCH (FLAGS (\Deleted flag))`) c[2].Sx(`C003 OK \[EXPUNGEISSUED\] command completed in`) c[2].C(`C004 SEARCH DELETED`) c[2].S(`* SEARCH 2`) c[2].Sx(`C004 OK \[EXPUNGEISSUED\] command completed in`) c[2].C(`C005 NOOP`) c[2].S(`* 2 EXPUNGE`) c[2].Sx(`C005 OK`) }) } func TestExpungeUpdate(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") // 2 snapshots of INBOX for i := 1; i <= 2; i++ { c[i].C(`A001 SELECT INBOX`) c[i].Se(`* 2 EXISTS`) c[i].Sxe(`A001 OK`) } // session 1 delete message 1 (STORE+EXPUNGE) then flag message 2 (now 1) as sent c[1].C(`A002 STORE 1 +FLAGS (\Deleted)`) c[1].S(`* 1 FETCH (FLAGS (\Deleted \Recent))`) c[1].Sx("A002 OK command completed in") c[1].C(`A003 EXPUNGE`) c[1].S(`* 1 EXPUNGE`) c[1].Sx(`A003 OK`) c[1].C(`A004 STORE 1 +FLAGS (\Seen)`) c[1].S(`* 1 FETCH (FLAGS (\Recent \Seen))`) c[1].Sx(`A004 OK command completed in`) // session 2 get notifications for the flags, but not the EXPUNGE. c[2].C(`B001 FETCH 1:* (UID FLAGS)`) c[2].S( `* 1 FETCH (UID 1 FLAGS ())`, `* 2 FETCH (UID 2 FLAGS ())`, ) c[2].S( `* 1 FETCH (FLAGS (\Deleted))`, `* 2 FETCH (FLAGS (\Seen))`, ) // fetch results + updated from session 1 c[2].Sx(`B001 OK \[EXPUNGEISSUED\] command completed in`) // session 2 can still change flags on the deleted message (which still resides in the deletion pool c[2].C(`B002 STORE 1 +FLAGS (\Flagged)`) c[2].S(`* 1 FETCH (FLAGS (\Deleted \Flagged))`) c[2].Sx(`B002 OK \[EXPUNGEISSUED\] command completed in`) // session 1 adds a message to the box and flags it as answered c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 3@pm.me`)).expect("OK") c[1].C(`A005 STORE 2 +FLAGS (\Answered)`) c[1].S(`* 2 FETCH (FLAGS (\Answered \Recent))`) c[1].Sx("A005 OK command completed in") // session 2 sees the new message c[1].C(`AXXX FETCH 1:* (UID FLAGS)`) c[1].S( `* 1 FETCH (UID 2 FLAGS (\Recent \Seen))`, `* 2 FETCH (UID 3 FLAGS (\Answered \Recent))`, ).OK("AXXX") // session 2 sees the new message c[2].C(`B003 FETCH 1:* (UID FLAGS)`) c[2].S( `* 1 FETCH (UID 1 FLAGS (\Deleted \Flagged))`, `* 2 FETCH (UID 2 FLAGS (\Seen))`, `* 3 EXISTS`, `* 3 FETCH (FLAGS (\Answered))`, ) c[2].Sx(`B003 OK \[EXPUNGEISSUED\] command completed in`) // session 2 performs a NOOP to get notified of the EXPUNGE from session 1 c[2].C(`B004 NOOP`) c[2].S(`* 1 EXPUNGE`) c[2].Sx(`B004 OK`) c[2].C(`B005 FETCH 1:* (UID FLAGS)`) c[2].S(`* 1 FETCH (UID 2 FLAGS (\Seen))`, `* 2 FETCH (UID 3 FLAGS (\Answered))`) c[2].Sx(`B005 OK command completed in`) // close sessions for i := 1; i <= 2; i++ { c[i].C(`C001 CLOSE`) c[i].Sx(`C001 OK`) } }) } func TestStatusOnUnnotifiedSnapshot(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2, 3}, func(c map[int]*testConnection, s *testSession) { // INBOX with 4 messages c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 2@pm.me`), `\Seen`).expect("OK") c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 3@pm.me`)).expect("OK") c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 4@pm.me`)).expect("OK") // 2 sessions with INBOX selected (-> 2 snapshots), session 3 is in Authenticated state (no mailbox selected). for i := 1; i <= 2; i++ { c[i].C(`A001 SELECT INBOX`) c[i].Se(`* 4 EXISTS`) c[i].Sxe(`A001 OK`) } // snapshot 1 deletes message 1 (STORE + EXPUNGE). c[1].C(`A002 STORE 1 +FLAGS (\Deleted)`) c[1].S(`* 1 FETCH (FLAGS (\Deleted \Recent \Seen))`) c[1].Sx(`A002 OK command completed in`) c[1].C(`A003 EXPUNGE`) c[1].S(`* 1 EXPUNGE`) c[1].S(`A003 OK EXPUNGE`) // session 3 calls status. c[3].C(`C001 STATUS INBOX (MESSAGES RECENT UNSEEN)`) c[3].S(`* STATUS "INBOX" (MESSAGES 3 RECENT 0 UNSEEN 2)`) c[3].S(`C001 OK STATUS`) // session 2 (which has INBOX selected) calls status and, it gets the updates and status for the messages. c[2].C(`B001 STATUS INBOX (MESSAGES RECENT UNSEEN)`) c[2].S(`* 1 FETCH (FLAGS (\Deleted \Seen))`) c[2].S(`* 1 EXPUNGE`) c[2].S(`* STATUS "INBOX" (MESSAGES 3 RECENT 0 UNSEEN 2)`) c[2].S(`B001 OK STATUS`) }) } func TestDeletionFlagPropagation(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { origin, done := c[1].doCreateTempDir() defer done() // Create a message. c[1].doAppend(origin, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect(`OK`) destination, done := c[1].doCreateTempDir() defer done() // Client 1 is in origin, client 2 is in destination. c[1].Cf("A006 SELECT %v", origin).OK("A006") c[2].Cf("A006 SELECT %v", destination).OK("A006") // Copy the message to destination; there will be one message there. c[1].Cf(`A007 COPY 1 %v`, destination).OK("A007") c[2].Cf(`A006 STATUS %v (MESSAGES)`, destination).Sxe("MESSAGES 1").OK("A006") // Mark the message we copied as deleted. Only client 1 sees the flag. c[1].C(`A001 STORE 1 +FLAGS (\Deleted)`).OK("A001") c[1].C(`A005 FETCH 1 (FLAGS)`).Sxe(`FLAGS \(\\Deleted \\Recent\)`).OK("A005") c[2].C(`B005 FETCH 1 (FLAGS)`).Sxe(`FLAGS \(\)`).OK("B005") // Expunge the message from origin; the message is now only in destination. c[1].C(`B002 EXPUNGE`).OK("B002") c[1].Cf(`A006 STATUS %v (MESSAGES)`, origin).Sxe("MESSAGES 0").OK("A006") c[2].Cf(`B006 STATUS %v (MESSAGES)`, destination).Sxe("MESSAGES 1").OK("B006") // The message in destination still doesn't have the deleted flag. c[2].C(`B005 FETCH 1 (FLAGS)`).Sxe(`FLAGS \(\)`).OK("B005") }) } func TestDeletionFlagPropagationIDLE(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { // Create a message. c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect(`OK`) // Create a destination mailbox. c[1].C("A002 CREATE destination").OK("A002") // Client 1 is in inbox, client 2 is in destination. c[1].C("A006 SELECT INBOX").OK("A006") c[2].C("A006 SELECT destination").OK("A006") // Copy the message to destination; there will be one message there. c[1].C(`A007 COPY 1 destination`).OK("A007") c[2].C(`A006 STATUS destination (MESSAGES)`).Sxe("MESSAGES 1").OK("A006") // Begin IDLE in destination. c[2].C("A007 IDLE") c[2].S("+ Ready") // Delete the message from inbox (set \Deleted and expunge) c[1].C(`A001 STORE 1 +FLAGS (\Deleted)`) c[1].S(`* 1 FETCH (FLAGS (\Deleted \Recent))`) c[1].Sx(`A001 OK`) c[1].C(`B002 EXPUNGE`) c[1].S(`* 1 EXPUNGE`) c[1].Sx(`B002 OK`) // The client doing IDLE in destination shouldn't receive any updates as from its perspective nothing changed. c[2].C(`DONE`) c[2].Sx(`A007 OK`) }) } func TestDeletionFlagPropagationMulti(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2, 3}, func(c map[int]*testConnection, s *testSession) { // Create a message. c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect(`OK`) // Create two destination mailboxes. c[1].C("A002 CREATE mbox1").OK("A002") c[1].C("A002 CREATE mbox2").OK("A002") // Copy the message into both destination mailboxes. c[1].C("A006 SELECT INBOX").OK("A006") c[1].C("A006 COPY 1 mbox1").OK("A006") c[1].C("A006 COPY 1 mbox2").OK("A006") // Clients 1 and 2 select in mbox1/mbox2. Client 3 stays in inbox. c[1].C("A006 SELECT mbox1").OK("A006") c[2].C("A006 SELECT mbox2").OK("A006") c[3].C("A006 SELECT inbox").OK("A006") // Mark the message in mbox1 as deleted. c[1].C(`A001 STORE 1 +FLAGS (\Deleted)`).OK(`A001`) // Expect to receive no updates in mbox2/inbox. c[2].C(`A007 NOOP`) c[2].Sx(`A007 OK`) c[3].C(`A007 NOOP`) c[3].Sx(`A007 OK`) // Mark the message in mbox1 as custom1. c[1].C(`A001 STORE 1 +FLAGS (custom1)`).OK(`A001`) // Expect to receive the custom1 flag but not the deleted flag. // The recent flag should only be returned for mbox2. c[2].C(`A007 NOOP`) c[2].S(`* 1 FETCH (FLAGS (\Recent custom1))`) c[2].Sx(`A007 OK`) c[3].C(`A007 NOOP`) c[3].S(`* 1 FETCH (FLAGS (custom1))`) c[3].Sx(`A007 OK`) // Unmark the message in mbox1 as deleted. c[1].C(`A001 STORE 1 -FLAGS (\Deleted)`).OK(`A001`) // Expect to receive no updates in mbox2/inbox. c[2].C(`A007 NOOP`) c[2].Sx(`A007 OK`) c[3].C(`A007 NOOP`) c[3].Sx(`A007 OK`) }) } func TestNoopReceivesPendingDeletionUpdates(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { // Create a mailbox. mailboxID := s.mailboxCreated("user", []string{"mbox"}) // Create some messages in the mailbox. messageID1 := s.messageCreatedFromFile("user", mailboxID, "testdata/multipart-mixed.eml") messageID2 := s.messageCreatedFromFile("user", mailboxID, "testdata/afternoon-meeting.eml") s.flush("user") // Create a snapshot by selecting in the mailbox. c.C(`A001 select mbox`).OK(`A001`) // Remove the messages externally; they're now in the deletion pool. s.messageRemoved("user", messageID1, mailboxID) s.messageRemoved("user", messageID2, mailboxID) s.flush("user") // Noop should process their deletion. c.C(`A002 noop`) c.S(`* 1 EXPUNGE`, `* 1 EXPUNGE`) c.Sx(`A002 OK`) }) } func TestMessageErasedFromDB(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { // Create a mailbox. mailboxID := s.mailboxCreated("user", []string{"mbox"}) // Create some messages in the mailbox. messageID1 := s.messageCreatedFromFile("user", mailboxID, "testdata/multipart-mixed.eml") messageID2 := s.messageCreatedFromFile("user", mailboxID, "testdata/afternoon-meeting.eml") // Create a snapshot by selecting in the mailbox. c.C(`A001 select mbox`).OK(`A001`) dbCheckUserMessageCount(s, "user", 2) // Messages marked for deletion externally s.messageDeleted("user", messageID1) s.messageDeleted("user", messageID2) // Add a watcher that waits for end of session. eventCh := s.server.AddWatcher(events.SessionRemoved{}) // Noop should process their deletion. c.C(`A002 LOGOUT`) c.S(`* BYE`) c.Sx(`A002 OK`) // Wait until the session was removed. <-eventCh // The user should now have no messages. dbCheckUserMessageCount(s, "user", 0) }) } // This test checks whether any messages from a previous server that are written to the db and are cleared // on the next startup. We force the server to use the same directories and state to check for this. func TestMessageErasedFromDBOnStartup(t *testing.T) { options := defaultServerOptions(t, withDataDir(t.TempDir())) runOneToOneTest(t, options, func(c *testConnection, s *testSession) { // Create a mailbox. mailboxID := s.mailboxCreated("user", []string{"mbox"}) // Create some messages in the mailbox. messageID1 := s.messageCreatedFromFile("user", mailboxID, "testdata/multipart-mixed.eml") // Add a watcher that waits for end of session. eventCh := s.server.AddWatcher(events.SessionRemoved{}) // Noop should process their deletion. c.C(`A002 LOGOUT`) c.S(`* BYE`) c.Sx(`A002 OK LOGOUT`) // Wait until the session was removed. <-eventCh // The user should have one message. dbCheckUserMessageCount(s, "user", 1) // delete message s.messageDeleted("user", messageID1) // The user should still have one message. dbCheckUserMessageCount(s, "user", 1) }) runOneToOneTest(t, options, func(c *testConnection, s *testSession) { // Message should have been removed now. dbCheckUserMessageCount(s, "user", 0) }) } func TestMessageErasedFromDBWithMany(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { // Create a mailbox. mailboxID := s.mailboxCreated("user", []string{"mbox"}) // Create some messages in the mailbox. messageID1 := s.messageCreatedFromFile("user", mailboxID, "testdata/multipart-mixed.eml") s.messageCreatedFromFile("user", mailboxID, "testdata/afternoon-meeting.eml") // Create a snapshot by selecting in the mailbox. c[1].C("A002 SELECT mbox").OK("A002") c[2].C("A002 SELECT mbox").OK("A002") dbCheckUserMessageCount(s, "user", 2) // Message marked for deletion externally s.messageDeleted("user", messageID1) // Add a watcher that waits for end of session. eventCh := s.server.AddWatcher(events.SessionRemoved{}) // Logout client 1. c[1].C(`A002 LOGOUT`) c[1].S(`* BYE`) c[1].Sx(`A002 OK LOGOUT`) // Ensure session is properly finished its exit work to ensure the database writes take place. <-eventCh // Message should still be in the db as the other client still has an active state instance. dbCheckUserMessageCount(s, "user", 2) c[2].C(`A002 LOGOUT`) // c[2].S(`* 2 EXISTS`) // c[2].S(`* 1 RECENT`) c[2].S(`* BYE`) c[2].Sx(`A002 OK LOGOUT`) // Ensure session is properly finished its exit work to ensure the database writes take place. <-eventCh // The message should now be deleted. dbCheckUserMessageCount(s, "user", 1) }) } gluon-0.17.0/tests/draft_test.go000066400000000000000000000074131445200213000165470ustar00rootroot00000000000000package tests import ( "regexp" "testing" "time" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/require" ) func TestDraftScenario(t *testing.T) { // Simulate a draft update issued from the connector, which involves deleting the original message in drafts // and replacing it with a new one. runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"Drafts"}) c.C("A002 SELECT Drafts").OK("A002") messageID := s.messageCreated("user", mailboxID, []byte("To: 3@3.pm"), time.Now()) c.C("A002 NOOP") c.S("* 1 EXISTS") c.S("* 1 RECENT") c.OK("A002") c.C("A003 FETCH 1 (BODY.PEEK[HEADER.FIELDS (To)])") c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 3@3.pm)") c.OK("A003") s.messageDeleted("user", messageID) s.messageCreated("user", mailboxID, []byte("To: 4@4.pm"), time.Now()) s.flush("user") c.C("A004 NOOP") c.S("* 1 EXPUNGE") c.S("* 1 EXISTS") c.S("* 1 RECENT") c.OK("A004") c.C("A005 FETCH 1 (BODY.PEEK[HEADER.FIELDS (To)])") c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 4@4.pm)") c.OK("A005") }) } func TestDraftSavedAgain(t *testing.T) { // Email client can save same message i.e.: it will delete old draft // and append one with same content. runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreatedWithAttributes("user", []string{"Drafts"}, imap.NewFlagSet(imap.AttrDrafts)) c.C("A002 SELECT Drafts").OK("A002") _ = s.messageCreated("user", mailboxID, []byte(buildRFC5322TestLiteral("To: 3@3.pm")), time.Now()) s.flush("user") c.C("A002 NOOP") c.S("* 1 EXISTS") c.S("* 1 RECENT") c.OK("A002") c.C("A003 FETCH 1 (BODY.PEEK[])") raw := c.read() fetch := regexp.MustCompile( regexp.QuoteMeta("* 1 FETCH (BODY[] {134}\r\nX-Pm-Gluon-Id: ") + ".*" + regexp.QuoteMeta("\r\n"+buildRFC5322TestLiteral("To: 3@3.pm")+")\r\n"), ) require.Regexp(t, fetch, string(raw)) c.OK("A003") // Expunge+Append same message { c.C(`A004 STORE 1 +FLAGS (\Deleted)`).OK("A004") c.C(`A005 EXPUNGE`).OK("A005") c.doAppend( "Drafts", string(raw[25:len(raw)-3]), ).expect("OK") c.C("A004 FETCH 1 (BODY.PEEK[])") raw := c.read() require.Regexp(t, fetch, string(raw)) c.OK("A004") } newBody2 := string(raw[25:]) + "\r\nThis is body\r\n" fetchUpdated2 := regexp.MustCompile( regexp.QuoteMeta("* 1 FETCH (BODY[] {153}\r\nX-Pm-Gluon-Id: ") + ".*" + regexp.QuoteMeta("\r\n"+buildRFC5322TestLiteral("To: 3@3.pm)")+"\r\n\r\nThis is body\r\n)"), ) // Expunge+Append different message { c.C(`A004 STORE 1 +FLAGS (\Deleted)`).OK("A004") c.C(`A005 EXPUNGE`).OK("A005") c.doAppend( "Drafts", newBody2, ).expect("OK") c.C("A004 FETCH 1 (BODY.PEEK[])") raw := c.read() require.Regexp(t, fetchUpdated2, string(raw)) c.OK("A004") } // Append + Expunge different message newBody3 := newBody2 + "hello\r\n" fetchUpdated3 := regexp.MustCompile( regexp.QuoteMeta("* ") + "\\d" + regexp.QuoteMeta(" FETCH (BODY[] {160}\r\nX-Pm-Gluon-Id: ") + ".*" + regexp.QuoteMeta("\r\n"+buildRFC5322TestLiteral("To: 3@3.pm)")+"\r\n\r\nThis is body\r\nhello\r\n)"), ) { c.doAppend( "Drafts", newBody3, ).expect("OK") c.C("A004 FETCH 1 (BODY.PEEK[])") raw := c.read() require.Regexp(t, fetchUpdated2, string(raw)) c.OK("A004") c.C("A005 FETCH 2 (BODY.PEEK[])") raw = c.read() require.Regexp(t, fetchUpdated3, string(raw)) c.OK("A005") c.C(`A004 STORE 1 +FLAGS (\Deleted)`).OK("A004") c.C(`A005 EXPUNGE`).OK("A005") c.C("A006 FETCH 1 (BODY.PEEK[])") raw = c.read() require.Regexp(t, fetchUpdated3, string(raw)) c.OK("A006") } }) } gluon-0.17.0/tests/examine_test.go000066400000000000000000000074601445200213000170770ustar00rootroot00000000000000package tests import ( "strings" "testing" "time" "github.com/ProtonMail/gluon/imap" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestExamineWithLiteral(t *testing.T) { // This test remains here since it is not possible to send literal commands with the // IMAP client. The rest of the functionality is still tested in the IMAP client test. runOneToOneTestWithAuth(t, defaultServerOptions(t, withUIDValidityGenerator(imap.NewFixedUIDValidityGenerator(imap.UID(1)))), func(c *testConnection, _ *testSession) { c.C("A002 CREATE Archive") c.S("A002 OK CREATE") c.doAppend(`Archive`, buildRFC5322TestLiteral(`To: 3@pm.me`), `\Seen`).expect("OK") c.C("a007 examine {7}") c.S("+ Ready") c.C("Archive") c.S(`* FLAGS (\Deleted \Flagged \Seen)`, `* 1 EXISTS`, `* 1 RECENT`, `* OK [PERMANENTFLAGS (\Deleted \Flagged \Seen)]`, `* OK [UIDNEXT 2]`, `* OK [UIDVALIDITY 1]`) c.S(`a007 OK [READ-ONLY] EXAMINE`) }) } func TestExamineClient(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withUIDValidityGenerator(imap.NewFixedUIDValidityGenerator(1))), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("Archive")) require.NoError(t, client.Append("INBOX", []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 1@pm.me")))) require.NoError(t, client.Append("INBOX", []string{}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 2@pm.me")))) require.NoError(t, client.Append("Archive", []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 3@pm.me")))) // IMAP client does not have an explicit Examine call, but this a call to Select(..., readonly=true) gets // converted into an EXAMINE command. { mailboxStatus, err := client.Select("INBOX", true) require.NoError(t, err) require.Equal(t, uint32(2), mailboxStatus.Messages) require.Equal(t, uint32(2), mailboxStatus.Recent) require.Equal(t, uint32(2), mailboxStatus.UnseenSeqNum) require.ElementsMatch(t, mailboxStatus.Flags, []string{goimap.SeenFlag, goimap.DeletedFlag, goimap.FlaggedFlag}) require.ElementsMatch(t, mailboxStatus.PermanentFlags, []string{goimap.SeenFlag, goimap.DeletedFlag, goimap.FlaggedFlag}) require.Equal(t, uint32(3), mailboxStatus.UidNext) require.Equal(t, uint32(1), mailboxStatus.UidValidity) require.Equal(t, true, mailboxStatus.ReadOnly) } // Examining INBOX again DOES NOT modify the RECENT value. { mailboxStatus, err := client.Select("INBOX", true) require.NoError(t, err) require.Equal(t, uint32(2), mailboxStatus.Messages) require.Equal(t, uint32(2), mailboxStatus.Recent) require.Equal(t, uint32(2), mailboxStatus.UnseenSeqNum) require.ElementsMatch(t, mailboxStatus.Flags, []string{goimap.SeenFlag, goimap.DeletedFlag, goimap.FlaggedFlag}) require.ElementsMatch(t, mailboxStatus.PermanentFlags, []string{goimap.SeenFlag, goimap.DeletedFlag, goimap.FlaggedFlag}) require.Equal(t, uint32(3), mailboxStatus.UidNext) require.Equal(t, uint32(1), mailboxStatus.UidValidity) require.Equal(t, true, mailboxStatus.ReadOnly) } { mailboxStatus, err := client.Select("Archive", true) require.NoError(t, err) require.Equal(t, uint32(1), mailboxStatus.Messages) require.Equal(t, uint32(1), mailboxStatus.Recent) require.Equal(t, uint32(0), mailboxStatus.UnseenSeqNum) require.ElementsMatch(t, mailboxStatus.Flags, []string{goimap.SeenFlag, goimap.DeletedFlag, goimap.FlaggedFlag}) require.ElementsMatch(t, mailboxStatus.PermanentFlags, []string{goimap.SeenFlag, goimap.DeletedFlag, goimap.FlaggedFlag}) require.Equal(t, uint32(2), mailboxStatus.UidNext) require.Equal(t, uint32(1), mailboxStatus.UidValidity) require.Equal(t, true, mailboxStatus.ReadOnly) } }) } gluon-0.17.0/tests/expunge_test.go000066400000000000000000000250471445200213000171250ustar00rootroot00000000000000package tests import ( "fmt" "strings" "testing" "time" goimap "github.com/emersion/go-imap" uidplus "github.com/emersion/go-imap-uidplus" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestExpungeUnmarked(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("mbox")) _, err := client.Select("mbox", false) require.NoError(t, err) require.NoError(t, client.Append("mbox", []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 1@pm.me")))) }) } func TestExpungeSingle(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("mbox")) _, err := client.Select("mbox", false) require.NoError(t, err) require.NoError(t, client.Append("mbox", []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 1@pm.me")))) messages := storeWithRetrievalClient(t, client, createSeqSet("1"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}) require.Equal(t, 1, len(messages)) require.ElementsMatch(t, messages[0].Flags, []string{goimap.SeenFlag, goimap.DeletedFlag, goimap.RecentFlag}) expungedIds := expungeClient(t, client) require.Equal(t, 1, len(expungedIds)) require.Equal(t, uint32(1), expungedIds[0]) }) } func TestRemoveSameMessageTwice(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2, 3}, func(c map[int]*testConnection, s *testSession) { // There are three messages in the inbox. c[1].doAppend(`inbox`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c[1].doAppend(`inbox`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c[1].doAppend(`inbox`, buildRFC5322TestLiteral(`To: 3@pm.me`)).expect("OK") // There are three clients selected in the inbox. for i := range c { c[i].C("tag select inbox").OK("tag") } // First and second client both mark the first message as deleted. c[1].C(`tag store 1 +flags (\deleted)`).OK("tag") c[2].C(`tag store 1 +flags (\deleted)`).OK("tag") // Ignore the fetch responses of the third client. c[3].C("tag noop").OK("tag") // First and second client both expunge the first message. c[1].C(`tag expunge`).OK("tag") c[2].C(`tag expunge`).OK("tag") // Third client should just get one expunge response. c[3].C("tag noop") c[3].S(`* 1 EXPUNGE`) c[3].OK("tag") }) } func TestExpungeInterval(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("mbox")) _, err := client.Select("mbox", false) require.NoError(t, err) for i := 1; i <= 4; i++ { require.NoError(t, client.Append("mbox", []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral(fmt.Sprintf(`To: %d@pm.me`, i))))) } messages := storeWithRetrievalClient(t, client, createSeqSet("1,3"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}) require.Equal(t, 2, len(messages)) for _, message := range messages { require.ElementsMatch(t, message.Flags, []string{goimap.SeenFlag, goimap.DeletedFlag, goimap.RecentFlag}) } expungedIds := expungeClient(t, client) require.Equal(t, 2, len(expungedIds)) require.Equal(t, expungedIds, []uint32{1, 2}) }) } func beforeOrAfterExpungeCheck(t *testing.T, client *client.Client, mailboxName string) { // Shared code used to for checking the mailbox state after expunge for the // TestExpungeWithAppendBeforeMailboxSelect and TestExpungeWithAppendAfterMailboxSelect { messages := storeWithRetrievalClient(t, client, createSeqSet("1"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}) require.Equal(t, 1, len(messages)) require.ElementsMatch(t, messages[0].Flags, []string{goimap.SeenFlag, goimap.RecentFlag, goimap.DeletedFlag}) } { messages := storeWithRetrievalClient(t, client, createSeqSet("2"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}) require.Equal(t, 1, len(messages)) require.ElementsMatch(t, messages[0].Flags, []string{goimap.RecentFlag, goimap.DeletedFlag}) } { messages := storeWithRetrievalClient(t, client, createSeqSet("3"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}) require.Equal(t, 1, len(messages)) require.ElementsMatch(t, messages[0].Flags, []string{goimap.SeenFlag, goimap.RecentFlag, goimap.DeletedFlag}) } { expungedIds := expungeClient(t, client) require.Equal(t, []uint32{1, 1, 1}, expungedIds) } // There are 2 messages in saved-messages. mailboxStatus, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(2), mailboxStatus.Messages) } func TestExpungeWithAppendBeforeMailboxSelect(t *testing.T) { // This test exists to catch an issue where in the past messages that might be added before/after selected would // not be removed. runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { const mailboxName = "saved-messages" require.NoError(t, client.Create(mailboxName)) require.NoError(t, client.Append(mailboxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 1@pm.me")))) require.NoError(t, client.Append(mailboxName, []string{}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 2@pm.me")))) require.NoError(t, client.Append(mailboxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 3@pm.me")))) require.NoError(t, client.Append(mailboxName, []string{}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 4@pm.me")))) require.NoError(t, client.Append(mailboxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 5@pm.me")))) _, err := client.Select(mailboxName, false) require.NoError(t, err) beforeOrAfterExpungeCheck(t, client, mailboxName) }) } func TestExpungeWithAppendAfterMailBoxSelect(t *testing.T) { // This test exists to catch an issue where in the past messages that might be added before/after selected would // not be removed. runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { const mailboxName = "saved-messages" require.NoError(t, client.Create(mailboxName)) _, err := client.Select(mailboxName, false) require.NoError(t, err) require.NoError(t, client.Append(mailboxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 1@pm.me")))) require.NoError(t, client.Append(mailboxName, []string{}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 2@pm.me")))) require.NoError(t, client.Append(mailboxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 3@pm.me")))) require.NoError(t, client.Append(mailboxName, []string{}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 4@pm.me")))) require.NoError(t, client.Append(mailboxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 5@pm.me")))) beforeOrAfterExpungeCheck(t, client, mailboxName) }) } func TestExpungeUID(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { const mailboxName = "mbox" require.NoError(t, client.Create(mailboxName)) _, err := client.Select(mailboxName, false) require.NoError(t, err) require.NoError(t, client.Append(mailboxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 1@pm.me")))) uidClient := uidplus.NewClient(client) { messages := storeWithRetrievalClient(t, client, createSeqSet("1"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}) require.Equal(t, 1, len(messages)) require.ElementsMatch(t, messages[0].Flags, []string{goimap.SeenFlag, goimap.RecentFlag, goimap.DeletedFlag}) } { messages := uidFetchMessagesClient(t, client, createSeqSet("1"), []goimap.FetchItem{goimap.FetchUid, goimap.FetchFlags}) require.Equal(t, 1, len(messages)) require.ElementsMatch(t, messages[0].Flags, []string{goimap.SeenFlag, goimap.RecentFlag, goimap.DeletedFlag}) } { expungedIds := uidExpungeClient(t, uidClient, createSeqSet("1")) require.Equal(t, 1, len(expungedIds)) require.Equal(t, uint32(1), expungedIds[0]) } { mailboxStatus, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), mailboxStatus.Messages) } // Append new messages for i := 1; i <= 4; i++ { require.NoError(t, client.Append(mailboxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral(fmt.Sprintf(`To: %d@pm.me`, i))))) } { messages := uidStoreWithRetrievalClient(t, client, createSeqSet("2,4"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}) require.Equal(t, 2, len(messages)) for _, message := range messages { require.ElementsMatch(t, message.Flags, []string{goimap.SeenFlag, goimap.RecentFlag, goimap.DeletedFlag}) } } { expungedIds := uidExpungeClient(t, uidClient, createSeqSet("4,2")) require.Equal(t, 2, len(expungedIds)) require.Equal(t, []uint32{1, 2}, expungedIds) } { mailboxStatus, err := client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(2), mailboxStatus.Messages) require.Equal(t, 2, len(fetchMessagesClient(t, client, createSeqSet("1,2"), []goimap.FetchItem{goimap.FetchUid}))) } }) } func TestExpungeResponseSequence(t *testing.T) { // Test the response sequence produce by the expunge command, should match the example output of // rfc3501#section-6.4.3 runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { const mailboxName = "mbox" require.NoError(t, client.Create(mailboxName)) _, err := client.Select(mailboxName, false) require.NoError(t, err) for i := 1; i <= 11; i++ { require.NoError(t, client.Append(mailboxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral(fmt.Sprintf(`To: %d@pm.me`, i))))) } { messages := storeWithRetrievalClient(t, client, createSeqSet("3,4,7,11"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}) require.Equal(t, 4, len(messages)) for _, message := range messages { require.ElementsMatch(t, message.Flags, []string{goimap.SeenFlag, goimap.RecentFlag, goimap.DeletedFlag}) } } { expungedIds := expungeClient(t, client) require.Equal(t, 4, len(expungedIds)) require.Equal(t, []uint32{3, 3, 5, 8}, expungedIds) } }) } gluon-0.17.0/tests/fetch_body_test.go000066400000000000000000000705021445200213000175540ustar00rootroot00000000000000package tests import ( "os" "testing" "time" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestFetchBodySetsSeenFlag(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.doAppendFromFile(`INBOX`, `testdata/multipart-mixed.eml`).expect("OK") c.C(`A004 SELECT INBOX`) c.Se(`A004 OK [READ-WRITE] SELECT`) // The message initially has no flags except the recent flag. c.C(`A005 FETCH 1 (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Recent))`) c.OK("A005") // Fetch part of the body; the Seen flag should be implicitly set and included in the response. c.C(`A005 FETCH 1 (BODY[1.1])`) c.S(lines(`* 1 FETCH (BODY[1.1] {25}`, `*this */is**/_html_`, `**`, ` FLAGS (\Recent \Seen))`, )) c.OK("A005") // The message now has the seen flag. c.C(`A005 FETCH 1 (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Recent \Seen))`) c.OK("A005") }) } func TestFetchBodyPeekDoesNotSetSeenFlag(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.doAppendFromFile(`INBOX`, `testdata/multipart-mixed.eml`).expect("OK") c.C(`A004 SELECT INBOX`) c.Se(`A004 OK [READ-WRITE] SELECT`) // The message initially has no flags other than the recent flag. c.C(`A005 FETCH 1 (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Recent))`) c.Sx(`A005 OK command completed in .*`) // Fetch part of the body via BODY.PEEK; the Seen flag should NOT be implicitly set. c.C(`A005 FETCH 1 (BODY.PEEK[1.1])`) c.S(lines(`* 1 FETCH (BODY[1.1] {25}`, `*this */is**/_html_`, `**`, `)`, )) c.Sx(`A005 OK command completed in .*`) // The message still has no flags other than recent. c.C(`A005 FETCH 1 (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Recent))`) c.Sx(`A005 OK command completed in .*`) }) } func TestFetchStructure(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.doAppendFromFile(`INBOX`, `testdata/multipart-mixed.eml`, `\Seen`).expect("OK") c.C(`A004 SELECT INBOX`) c.Se(`A004 OK [READ-WRITE] SELECT`) c.C(`A005 FETCH 1 (BODY)`) c.S(`* 1 FETCH (BODY ((("text" "plain" ("charset" "utf-8" "format" "flowed") NIL NIL "7bit" 25 2)("text" "html" ("charset" "utf-8") NIL NIL "7bit" 197 10) "alternative")("text" "plain" ("charset" "UTF-8" "name" "thing.txt" "x-mac-creator" "0" "x-mac-type" "0") NIL NIL "base64" 32 1) "mixed"))`) c.Sx(`A005 OK command completed in .*`) c.C(`A005 FETCH 1 (BODYSTRUCTURE)`) c.S(`* 1 FETCH (BODYSTRUCTURE ((("text" "plain" ("charset" "utf-8" "format" "flowed") NIL NIL "7bit" 25 2 NIL NIL NIL NIL)("text" "html" ("charset" "utf-8") NIL NIL "7bit" 197 10 NIL NIL NIL NIL) "alternative" ("boundary" "------------62DCF50B21CF279F489F0184") NIL NIL NIL)("text" "plain" ("charset" "UTF-8" "name" "thing.txt" "x-mac-creator" "0" "x-mac-type" "0") NIL NIL "base64" 32 1 NIL ("attachment" ("filename" "thing.txt")) NIL NIL) "mixed" ("boundary" "------------4AC5F36D876D5EED478B5FF9") NIL "en-US" NIL))`) c.Sx(`A005 OK command completed in .*`) }) } func TestFetchStructureMultiPart(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectMultiPartMessage(t, client) newFetchCommand(t, client).withItems(goimap.FetchBodyStructure).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantBodyStructure(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("multipart") builder.wantMIMESubType("mixed") builder.wantLanguage("en-US") builder.wantParams(map[string]string{"boundary": "------------4AC5F36D876D5EED478B5FF9"}) builder.wantPart(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("multipart") builder.wantMIMESubType("alternative") builder.wantParams(map[string]string{"boundary": "------------62DCF50B21CF279F489F0184"}) builder.wantPart(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("text") builder.wantMIMESubType("plain") builder.wantSize(25) builder.wantEncoding("7bit") builder.wantParams(map[string]string{ "charset": "utf-8", "format": "flowed", }) builder.wantLines(2) }) builder.wantPart(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("text") builder.wantMIMESubType("html") builder.wantSize(197) builder.wantEncoding("7bit") builder.wantParams(map[string]string{ "charset": "utf-8", }) builder.wantLines(10) }) }) builder.wantPart(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("text") builder.wantMIMESubType("plain") builder.wantSize(32) builder.wantEncoding("base64") builder.wantParams(map[string]string{ "charset": "UTF-8", "name": "thing.txt", "x-mac-creator": "0", "x-mac-type": "0", }) builder.wantDisposition("attachment") builder.wantDispositionParams(map[string]string{ "filename": "thing.txt", }) builder.wantLines(1) }) }) }).checkAndRequireMessageCount(1) }) } func TestFetchEnvelopeMultiPart(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectMultiPartMessage(t, client) newFetchCommand(t, client).withItems(goimap.FetchEnvelope).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { address := &goimap.Address{ PersonalName: "BQA", AtDomainList: "", MailboxName: "somebody", HostName: "gmail.com", } addressTo := &goimap.Address{ PersonalName: "", AtDomainList: "", MailboxName: "somebody", HostName: "gmail.com", } builder.wantAddressTypeTo(addressTo) builder.wantAddressTypeSender(address) builder.wantAddressTypeFrom(address) builder.wantAddressTypeReplyTo(addressTo) builder.wantDateTime("26-Mar-2021 20:01:23 +0100") builder.wantSubject("Simple test mail") }) }).checkAndRequireMessageCount(1) }) } func TestFetchStructureEmbedded(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectEmbeddedMessage(t, client) newFetchCommand(t, client).withItems(goimap.FetchBodyStructure).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantBodyStructure(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("multipart") builder.wantMIMESubType("mixed") builder.wantParams(map[string]string{"boundary": "simple boundary"}) builder.wantPart(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("text") builder.wantMIMESubType("plain") builder.wantSize(40) builder.wantParams(map[string]string{ "charset": "us-ascii", }) builder.wantSize(40) builder.wantLines(1) }) builder.wantPart(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("multipart") builder.wantMIMESubType("rfc822") builder.wantParams(map[string]string{ "name": "test.eml", }) builder.wantDispositionParams(map[string]string{ "filename": "test.eml", }) builder.wantDisposition("attachment") builder.wantPart(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("text") builder.wantMIMESubType("plain") builder.wantSize(36) builder.wantParams(map[string]string{ "charset": "us-ascii", }) builder.wantLines(4) }) builder.wantPart(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("text") builder.wantMIMESubType("plain") builder.wantSize(26) builder.wantParams(map[string]string{ "charset": "us-ascii", }) builder.wantLines(1) }) }) }) }).checkAndRequireMessageCount(1) }) } func TestFetchBodyMultiPart(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectMultiPartMessage(t, client) // Get full body newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { fullMessageBytes, err := os.ReadFile("testdata/multipart-mixed.eml") require.NoError(t, err) fullMessage := string(fullMessageBytes) builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeader("BODY[]", fullMessage) }).check() // Get first message part newFetchCommand(t, client).withItems("BODY[1.TEXT]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[1.TEXT]", ``, `--------------62DCF50B21CF279F489F0184`, `Content-Type: text/plain; charset=utf-8; format=flowed`, `Content-Transfer-Encoding: 7bit`, ``, `*this */is**/_html_`, `**`, ``, `--------------62DCF50B21CF279F489F0184`, `Content-Type: text/html; charset=utf-8`, `Content-Transfer-Encoding: 7bit`, ``, ``, ` `, ``, ` `, ` `, ` `, ` this is html
`, ` `, ` `, ``, ``, `--------------62DCF50B21CF279F489F0184--`, ``, ) }).check() // Get first subpart from first part newFetchCommand(t, client).withItems("BODY[1.1.TEXT]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[1.1.TEXT]", `*this */is**/_html_`, `**`, ``, ) }).check() // Get second subpart from first part newFetchCommand(t, client).withItems("BODY[1.2.TEXT]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[1.2.TEXT]", ``, ` `, ``, ` `, ` `, ` `, ` this is html
`, ` `, ` `, ``, ``, ) }).check() // Get second message part newFetchCommand(t, client).withItems("BODY[2.TEXT]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[2.TEXT]", "dGhpcyBpcyBteSBhdHRhY2htZW50Cg==") }).check() }) } func TestFetchBodyEmbedded(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectEmbeddedMessage(t, client) // Get full body newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { fullMessageBytes, err := os.ReadFile("testdata/embedded-rfc822.eml") require.NoError(t, err) fullMessage := string(fullMessageBytes) builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeader("BODY[]", fullMessage) }).check() // Get first message part newFetchCommand(t, client).withItems("BODY[1.TEXT]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[1.TEXT]", `This part does not end with a linebreak.`, ) }).check() // Get second message part newFetchCommand(t, client).withItems("BODY[2.TEXT]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[2.TEXT]", `--embedded-boundary`, `Content-type: text/plain; charset=us-ascii`, ``, `This part is embedded`, ``, `--`, `From me`, `--embedded-boundary`, `Content-type: text/plain; charset=us-ascii`, ``, `This part is also embedded`, `--embedded-boundary--`, ``, ) }).check() // fetch first subpart of the second message newFetchCommand(t, client).withItems("BODY[2.1.TEXT]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[2.1.TEXT]", `This part is embedded`, ``, `--`, `From me`, ) }).check() // fetch second subpart of the second message newFetchCommand(t, client).withItems("BODY[2.2.TEXT]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[2.2.TEXT]", `This part is also embedded`) }).check() }) } func TestFetchBodyPlain(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectPlainMessage(t, client) // Get full body newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { fullMessageBytes, err := os.ReadFile("testdata/text-plain.eml") require.NoError(t, err) fullMessage := string(fullMessageBytes) builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeader("BODY[]", fullMessage) }).check() // Get first message part newFetchCommand(t, client).withItems("BODY[TEXT]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[TEXT]", `This is body of mail =F0=9F=91=8B`, ``, ``, ``, ) }).check() }) } func TestFetchStructurePlain(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectPlainMessage(t, client) newFetchCommand(t, client).withItems(goimap.FetchBodyStructure).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantBodyStructure(func(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("text") builder.wantMIMESubType("plain") builder.wantEncoding("quoted-printable") builder.wantSize(39) builder.wantLines(3) builder.wantParams(map[string]string{ "charset": "utf-8", }) }) }).checkAndRequireMessageCount(1) }) } func TestFetchBodyPartialMultiPart(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectMultiPartMessage(t, client) newFetchCommand(t, client).withItems("BODY[1.TEXT]<20.10>").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { messageText := "F50B21CF27" builder.ignoreFlags().wantSection("BODY[1.TEXT]<20>", messageText) }).check() // Get first subpart from first part newFetchCommand(t, client).withItems("BODY[1.1.TEXT]<8.3>").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { messageText := lines( `is*`, ) builder.ignoreFlags() builder.wantSection("BODY[1.1.TEXT]<8>", messageText) }).check() }) } func TestFetchBodyPartialReturnsEmptyWhenStartingOctetIsGreaterThanContentSize(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectMultiPartMessage(t, client) newFetchCommand(t, client).withItems("BODY[1.TEXT]<20000.10>").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSectionEmpty("BODY[1.TEXT]<20>") }).check() }) } func TestFetchHeaderMultiPart(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectMultiPartMessage(t, client) newFetchCommand(t, client).withItems("BODY[HEADER]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeader("BODY[HEADER]", `Return-Path: `, `Received: from [10.1.1.121] ([185.159.157.131])`, ` by smtp.gmail.com with ESMTPSA id t8sm14889112wrr.10.2021.03.26.12.01.23`, ` for `, ` (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);`, ` Fri, 26 Mar 2021 12:01:24 -0700 (PDT)`, `To: somebody@gmail.com`, `From: BQA `, `Subject: Simple test mail`, `Message-ID: `, `Date: Fri, 26 Mar 2021 20:01:23 +0100`, `User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)`, ` Gecko/20100101 Thunderbird/78.8.1`, `MIME-Version: 1.0`, `Content-Type: multipart/mixed;`, ` boundary="------------4AC5F36D876D5EED478B5FF9"`, `Content-Language: en-US`, ``, ``, ) }).check() newFetchCommand(t, client).withItems("BODY[1.HEADER]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[1.HEADER]", `Content-Type: multipart/alternative;`, ` boundary="------------62DCF50B21CF279F489F0184"`, ``, ``, ) }).check() newFetchCommand(t, client).withItems("BODY[1.1.HEADER]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[1.1.HEADER]", `Content-Type: text/plain; charset=utf-8; format=flowed`, `Content-Transfer-Encoding: 7bit`, ``, ``, ) }).check() newFetchCommand(t, client).withItems("BODY[1.2.HEADER]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[1.2.HEADER]", `Content-Type: text/html; charset=utf-8`, `Content-Transfer-Encoding: 7bit`, ``, ``, ) }).check() // Get second message part newFetchCommand(t, client).withItems("BODY[2.HEADER]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[2.HEADER]", `Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0";`, ` name="thing.txt"`, `Content-Transfer-Encoding: base64`, `Content-Disposition: attachment;`, ` filename="thing.txt"`, ``, ``, ) }).check() }) } func TestFetchHeaderFieldsMultiPart(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectMultiPartMessage(t, client) newFetchCommand(t, client).withItems("BODY[HEADER.FIELDS (To From Date)]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantSectionAndSkipGLUONHeader("BODY[HEADER.FIELDS (To From Date)]", `To: somebody@gmail.com`, `From: BQA `, `Date: Fri, 26 Mar 2021 20:01:23 +0100`, ``, ``, ) }).check() newFetchCommand(t, client).withItems("BODY[HEADER.FIELDS.NOT (To From Date)]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeader("BODY[HEADER.FIELDS.NOT (To From Date)]", `Return-Path: `, `Received: from [10.1.1.121] ([185.159.157.131])`, ` by smtp.gmail.com with ESMTPSA id t8sm14889112wrr.10.2021.03.26.12.01.23`, ` for `, ` (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);`, ` Fri, 26 Mar 2021 12:01:24 -0700 (PDT)`, `Subject: Simple test mail`, `Message-ID: `, `User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)`, ` Gecko/20100101 Thunderbird/78.8.1`, `MIME-Version: 1.0`, `Content-Type: multipart/mixed;`, ` boundary="------------4AC5F36D876D5EED478B5FF9"`, `Content-Language: en-US`, ``, ``, ) }).check() }) } func TestFetchHeaderFieldsEmbedded(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectEmbeddedMessage(t, client) newFetchCommand(t, client).withItems("BODY[2.HEADER.FIELDS (To)]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeader("BODY[2.HEADER.FIELDS (To)]", `To: someone`, ``, ``, ) }).check() newFetchCommand(t, client).withItems("BODY[2.HEADER.FIELDS.NOT (To)]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeader("BODY[2.HEADER.FIELDS.NOT (To)]", `Subject: Fwd: embedded`, `Content-type: multipart/mixed; boundary="embedded-boundary"`, ``, ``, ) }).check() }) } func TestFetchMIMEMultiPart(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectMultiPartMessage(t, client) newFetchCommand(t, client).withItems("BODY[MIME]").fetchFailure("1") newFetchCommand(t, client).withItems("BODY[1.MIME]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[1.MIME]", `Content-Type: multipart/alternative;`, ` boundary="------------62DCF50B21CF279F489F0184"`, ``, ``, ) }).check() newFetchCommand(t, client).withItems("BODY[1.1.MIME]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[1.1.MIME]", `Content-Type: text/plain; charset=utf-8; format=flowed`, `Content-Transfer-Encoding: 7bit`, ``, ``, ) }).check() newFetchCommand(t, client).withItems("BODY[1.2.MIME]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[1.2.MIME]", `Content-Type: text/html; charset=utf-8`, `Content-Transfer-Encoding: 7bit`, ``, ``, ) }).check() // Get second message part newFetchCommand(t, client).withItems("BODY[2.MIME]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[2.MIME]", `Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0";`, ` name="thing.txt"`, `Content-Transfer-Encoding: base64`, `Content-Disposition: attachment;`, ` filename="thing.txt"`, ``, ``, ) }).check() }) } func TestFetchBodyPeekSection1(t *testing.T) { const message = `Received: with ECARTIS (v1.0.0; list dovecot); Wed, 31 Jul 2002 22:48:41 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id F141123829 for ; Wed, 31 Jul 2002 22:48:40 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 42ED44C0A0; Wed, 31 Jul 2002 22:48:40 +0300 (EEST) Date: Wed, 31 Jul 2002 22:48:39 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] v0.95 released Message-ID: <20020731224839.H22431@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 3 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 3 Status: O v0.95 2002-07-31 Timo Sirainen + Initial SSL support using GNU TLS, tested with v0.5.1. TLS support is still missing. + Digest-MD5 authentication method + passwd-file authentication backend + Code cleanups - Found several bugs from mempool and ioloop code, now we should be stable? :) - A few corrections for long header field handling ` runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { { require.NoError(t, doAppendWithClient(client, "INBOX", message, time.Now())) _, err := client.Select("INBOX", false) require.NoError(t, err) newFetchCommand(t, client).withItems("BODY.PEEK[1]").fetchUid("1").forUid(1, func(builder *validatorBuilder) { const expectedBody = `v0.95 2002-07-31 Timo Sirainen + Initial SSL support using GNU TLS, tested with v0.5.1. TLS support is still missing. + Digest-MD5 authentication method + passwd-file authentication backend + Code cleanups - Found several bugs from mempool and ioloop code, now we should be stable? :) - A few corrections for long header field handling ` builder.ignoreFlags() builder.wantSection("BODY[1]", expectedBody) }).check() } }) } func TestFetchBodyPeekInvalidSectionNumber(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectPlainMessage(t, client) newFetchCommand(t, client).withItems("BODY.PEEK[2]").fetchFailure("1") }) } func TestFetchBody_Dovecot_InvalidMessageHeader(t *testing.T) { // This tests fails when requesting when fetch BODY.PEEK[HEADER.FIELDS (In-Reply-To In-Reply-To Cc)]. // Instead of only returning In-Reply-To and Cc, it was also returning the References header. const message = `Received: with ECARTIS (v1.0.0; list dovecot); Mon, 07 Apr 2003 01:27:38 +0300 (EEST) Return-Path: X-Original-To: dovecot@procontrol.fi Delivered-To: dovecot@procontrol.fi Received: from oma.irssi.org (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2A7282387F for ; Mon, 7 Apr 2003 01:27:38 +0300 (EEST) Received: by oma.irssi.org (Postfix, from userid 1000) id 3D1565E01F95; Mon, 7 Apr 2003 01:27:36 +0300 (EEST) Subject: [dovecot] Re: message order reversed on copying From: Timo Sirainen To: Charlie Brady Cc: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1049668055.22903.405.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.3 Date: 07 Apr 2003 01:27:36 +0300 X-archive-position: 516 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 516 Status: O On Mon, 2003-04-07 at 01:15, Charlie Brady wrote: > > > + nfiles = scandir (tmp, &names, NULL, maildir_namesort); > > scandir() isn't portable though. > No? Which OS doesn't have it? It's not in any standard -> it's not portable. Maybe it's portable enough, but I try to avoid those whenever possible. > > Which changes UIDVALIDITY and forces clients to discard their cache. > > Yes, I could have mentioned that. Still, it's the only way I know to > restore the sorting order once it's jumbled. How about making your client sort the messages by received-date? :) ` runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, doAppendWithClient(client, "INBOX", message, time.Now())) _, err := client.Select("INBOX", false) require.NoError(t, err) newFetchCommand(t, client).withItems("BODY.PEEK[HEADER.FIELDS (In-Reply-To In-Reply-To Cc)]"). fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(`BODY[HEADER.FIELDS (In-Reply-To In-Reply-To Cc)]`, `Cc: dovecot@procontrol.fi In-Reply-To: `) }).check() }) } // --- helpers ------------------------------------------------------------------------------------------------------- // NOTE: these helpers create messages with the seen flag to avoid interfering with the go imap client library. Due to // a timing issue, it is possible that a fetch update for the flag state can be received as a separate message. // The current validation mechanism can't handle that, so we try to avoid it all together here. func fillAndSelectMultiPartMessage(t *testing.T, client *client.Client) { messageTime, err := time.Parse(goimap.DateTimeLayout, "07-Feb-1994 21:52:25 -0800") require.NoError(t, err) err = doAppendWithClientFromFile(t, client, "INBOX", "testdata/multipart-mixed.eml", messageTime, goimap.SeenFlag) require.NoError(t, err) _, err = client.Select("INBOX", false) require.NoError(t, err) } func fillAndSelectEmbeddedMessage(t *testing.T, client *client.Client) { messageTime, err := time.Parse(goimap.DateTimeLayout, "07-Feb-1994 21:52:25 -0800") require.NoError(t, err) err = doAppendWithClientFromFile(t, client, "INBOX", "testdata/embedded-rfc822.eml", messageTime, goimap.SeenFlag) require.NoError(t, err) _, err = client.Select("INBOX", false) require.NoError(t, err) } func fillAndSelectPlainMessage(t *testing.T, client *client.Client) { messageTime, err := time.Parse(goimap.DateTimeLayout, "07-Feb-1994 21:52:25 -0800") require.NoError(t, err) err = doAppendWithClientFromFile(t, client, "INBOX", "testdata/text-plain.eml", messageTime, goimap.SeenFlag) require.NoError(t, err) _, err = client.Select("INBOX", false) require.NoError(t, err) } gluon-0.17.0/tests/fetch_test.go000066400000000000000000000526341445200213000165450ustar00rootroot00000000000000package tests import ( "os" "strings" "testing" "time" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/ids" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/google/uuid" "github.com/stretchr/testify/require" ) func TestFetchAllMacro(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) newFetchCommand(t, client).withItems(goimap.FetchAll).fetch("1").forSeqNum(1, func(validator *validatorBuilder) { validator.wantFlags(goimap.RecentFlag) validator.wantEnvelope(newAfternoonMeetingMessageEnvelopeValidator) validator.wantSize(afternoonMeetingMessageDataSizeWithExtraHeader()) // TODO: GOMSRV-175 - Timezone preservation. validator.wantInternalDate("08-Feb-1994 05:52:25 +0000") }).checkAndRequireMessageCount(1) }) } func TestFetchFastMacro(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) newFetchCommand(t, client).withItems(goimap.FetchFast).fetch("1").forSeqNum(1, func(validator *validatorBuilder) { validator.wantFlags(goimap.RecentFlag) validator.wantSize(afternoonMeetingMessageDataSizeWithExtraHeader()) // TODO: GOMSRV-175 - Timezone preservation. validator.wantInternalDate("08-Feb-1994 05:52:25 +0000") }).checkAndRequireMessageCount(1) }) } func TestFetchFullMacro(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) newFetchCommand(t, client).withItems(goimap.FetchFull).fetch("1").forSeqNum(1, func(validator *validatorBuilder) { validator.wantFlags(goimap.RecentFlag) validator.wantEnvelope(newAfternoonMeetingMessageEnvelopeValidator) validator.wantSize(afternoonMeetingMessageDataSizeWithExtraHeader()) validator.wantBodyStructure(validateAfternoonMeetingBodyStructure) // TODO: GOMSRV-175 - Timezone preservation. validator.wantInternalDate("08-Feb-1994 05:52:25 +0000") }).checkAndRequireMessageCount(1) }) } func TestFetchRFC822(t *testing.T) { // This test does all checks for RFC822 at the same time so we can compare the retrieved data runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) // Load message fullMessageBytes, err := os.ReadFile("testdata/afternoon-meeting.eml") require.NoError(t, err) fullMessage := string(fullMessageBytes) newFetchCommand(t, client).withItems(goimap.FetchRFC822).fetch("1").forSeqNum(1, func(validator *validatorBuilder) { validator.ignoreFlags() validator.wantSectionString(goimap.FetchRFC822, func(t testing.TB, literal string) { messageFromSection := skipGLUONHeader(literal) require.Equal(t, fullMessage, messageFromSection) }) }).checkAndRequireMessageCount(1) }) } func TestFetchRFC822Header(t *testing.T) { // This test does all checks for RFC822 at the same time so we can compare the retrieved data runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) // Load message fullMessageBytes, err := os.ReadFile("testdata/afternoon-meeting.eml") require.NoError(t, err) fullMessage := string(fullMessageBytes) newFetchCommand(t, client).withItems(goimap.FetchRFC822Header).fetch("1").forSeqNum(1, func(validator *validatorBuilder) { validator.ignoreFlags() validator.wantSectionString(goimap.FetchRFC822Header, func(t testing.TB, literal string) { messageFromSection := skipGLUONHeader(literal) require.True(t, strings.HasPrefix(fullMessage, messageFromSection)) }) }).checkAndRequireMessageCount(1) }) } func TestFetchRFC822Size(t *testing.T) { // This test does all checks for RFC822 at the same time so we can compare the retrieved data runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) newFetchCommand(t, client).withItems(goimap.FetchRFC822Size).fetch("1").forSeqNum(1, func(validator *validatorBuilder) { validator.ignoreFlags() validator.wantSize(afternoonMeetingMessageDataSizeWithExtraHeader()) }).checkAndRequireMessageCount(1) }) } func TestFetchRFC822Text(t *testing.T) { // This test does all checks for RFC822 at the same time so we can compare the retrieved data runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) // Load message fullMessageBytes, err := os.ReadFile("testdata/afternoon-meeting.eml") require.NoError(t, err) fullMessage := string(fullMessageBytes) newFetchCommand(t, client).withItems(goimap.FetchRFC822Text).fetch("1").forSeqNum(1, func(validator *validatorBuilder) { validator.ignoreFlags() validator.wantSectionString(goimap.FetchRFC822Text, func(t testing.TB, literal string) { messageFromSection := skipGLUONHeader(literal) require.True(t, strings.HasSuffix(fullMessage, messageFromSection)) }) }).checkAndRequireMessageCount(1) }) } func TestFetchEnvelopeOnly(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) newFetchCommand(t, client).withItems(goimap.FetchEnvelope).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantEnvelope(newAfternoonMeetingMessageEnvelopeValidator) }).checkAndRequireMessageCount(1) }) } func TestFetchFlagsOnly(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.RecentFlag) }).checkAndRequireMessageCount(1) }) } func TestFetchInternalDateOnly(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) newFetchCommand(t, client).withItems(goimap.FetchInternalDate).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { // TODO: GOMSRV-175 - Timezone preservation. builder.wantInternalDate("08-Feb-1994 05:52:25 +0000") }).checkAndRequireMessageCount(1) }) } func TestFetchUIDOnly(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) newFetchCommand(t, client).withItems(goimap.FetchUid).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantUID(1) }).checkAndRequireMessageCount(1) }) } func TestFetchRFC822AddsSeenFlag(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) // Fetch the message flags and check the seen flag is not set newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.RecentFlag) }).check() // After Reading the body the seen flag should be set newFetchCommand(t, client).withItems(goimap.FetchRFC822).fetch("1").checkAndRequireMessageCount(1) // Fetch the message flags and check the seen flag is set newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.RecentFlag, goimap.SeenFlag) }).check() }) } func TestFetchRFC822TextAddsSeenFlag(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) // Fetch the message flags and check the seen flag is not set newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.RecentFlag) }).check() // After Reading the body the Seen flag should be reported newFetchCommand(t, client).withItems(goimap.FetchRFC822Text).fetch("1").checkAndRequireMessageCount(1) // Fetch the message flags and check the seen flag is set newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.RecentFlag, goimap.SeenFlag) }).check() }) } func TestFetchRFC822HeaderDoesNotAddSeenFlag(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) // Fetch the message flags and check the seen flag is not set newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.RecentFlag) }).check() // No flags should be reported when performing this fetch newFetchCommand(t, client).withItems(goimap.FetchRFC822Header).fetch("1").checkAndRequireMessageCount(1) // Fetch the message flags and check the seen flag is not set newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.RecentFlag) }).check() }) } func TestFetchBodyPeekDoesNotAddSeenFlag(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectAfternoonMeetingMailbox(t, client) // Fetch the message flags and check the seen flag is not set newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.RecentFlag) }).check() // No flags should be reported when performing this fetch newFetchCommand(t, client).withItems("BODY.PEEK[TEXT]").fetch("1").checkAndRequireMessageCount(1) // Fetch the message flags and check the seen flag is not set newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.RecentFlag) }).check() }) } func TestFetchSequence(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectMailboxWithMultipleEntries(t, client) // delete message number 4 require.NoError(t, client.Store(createSeqSet("4"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) require.NoError(t, client.Expunge(nil)) fetchResult := newFetchCommand(t, client).withItems(goimap.FetchEnvelope, goimap.FetchUid).fetch("4,1:2") fetchResult.forSeqNum(1, func(builder *validatorBuilder) { builder.wantUID(1) builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.skipDateTime() builder.skipFromAndSender() builder.wantTo("1@pm.me") }) }). forSeqNum(2, func(builder *validatorBuilder) { builder.wantUID(2) builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.skipDateTime() builder.skipFromAndSender() builder.wantTo("2@pm.me") }) }). forSeqNum(4, func(builder *validatorBuilder) { builder.wantUID(5) builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.skipDateTime() builder.skipFromAndSender() builder.wantTo("5@pm.me") }) }).checkAndRequireMessageCount(3) // Results should be returned in ascending order require.Equal(t, uint32(1), fetchResult.messages[0].SeqNum) require.Equal(t, uint32(2), fetchResult.messages[1].SeqNum) require.Equal(t, uint32(4), fetchResult.messages[2].SeqNum) }) } func TestFetchUID(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { fillAndSelectMailboxWithMultipleEntries(t, client) // delete message number 4 require.NoError(t, client.Store(createSeqSet("4"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) require.NoError(t, client.Expunge(nil)) messages := uidFetchMessagesClient(t, client, createSeqSet("2:5"), []goimap.FetchItem{goimap.FetchEnvelope, goimap.FetchUid}) require.Equal(t, 3, len(messages)) fetchResult := newFetchCommand(t, client).withItems(goimap.FetchEnvelope, goimap.FetchUid).fetchUid("5,2:4") fetchResult.forSeqNum(2, func(builder *validatorBuilder) { builder.wantUID(2) builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.skipDateTime() builder.skipFromAndSender() builder.wantTo("2@pm.me") }) }). forSeqNum(3, func(builder *validatorBuilder) { builder.wantUID(3) builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.skipDateTime() builder.skipFromAndSender() builder.wantTo("3@pm.me") }) }). forSeqNum(4, func(builder *validatorBuilder) { builder.wantUID(5) builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.skipDateTime() builder.skipFromAndSender() builder.wantTo("5@pm.me") }) }).checkAndRequireMessageCount(3) // Results should be returned in ascending order // Results should be returned in ascending order require.Equal(t, uint32(2), fetchResult.messages[0].Uid) require.Equal(t, uint32(3), fetchResult.messages[1].Uid) require.Equal(t, uint32(5), fetchResult.messages[2].Uid) }) } func TestFetchFromDataSequences(t *testing.T) { runOneToOneTestClientWithData(t, defaultServerOptions(t), func(client *client.Client, _ *testSession, _ string, _ imap.MailboxID) { const sectionStr = "BODY[HEADER.FIELDS (To Subject)]" fetchResult := newFetchCommand(t, client).withItems(sectionStr).fetch("1:4,30:31,81") fetchResult.forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `To: dovecot@procontrol.fi`, `Subject: [dovecot] first test mail`, ``, ``, ) }) fetchResult.forSeqNum(2, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `To: dovecot@procontrol.fi`, `Subject: [dovecot] Dovecot 0.93 released`, ``, ``, ) }) fetchResult.forSeqNum(3, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `To: dovecot@procontrol.fi`, `Subject: [dovecot] v0.95 released`, ``, ``, ) }) fetchResult.forSeqNum(4, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `To: "dovecot@procontrol.fi" `, `Subject: [dovecot] DOVECOT.PROCONTROL.FI`, ``, ``, ) }) fetchResult.forSeqNum(30, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `Subject: [dovecot] 0.98 released`, `To: dovecot@procontrol.fi`, ``, ``, ) }) fetchResult.forSeqNum(31, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `Subject: [dovecot] 0.98.1 released`, `To: dovecot@procontrol.fi`, ``, ``, ) }) fetchResult.forSeqNum(81, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `Subject: [dovecot] Re: Architectural questions`, `To: dovecot@procontrol.fi`, ``, ``, ) }) fetchResult.checkAndRequireMessageCount(7) }) } func TestFetchFromDataUids(t *testing.T) { runOneToOneTestClientWithData(t, defaultServerOptions(t), func(client *client.Client, _ *testSession, _ string, _ imap.MailboxID) { // Remove a couple of messages require.NoError(t, client.Store(createSeqSet("20:29,50:60,90"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) require.NoError(t, client.Expunge(nil)) const sectionStr = "BODY[HEADER.FIELDS (To Subject)]" fetchResult := newFetchCommand(t, client).withItems(sectionStr).fetchUid("1:4,30:31,81") fetchResult.forUid(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `To: dovecot@procontrol.fi`, `Subject: [dovecot] first test mail`, ``, ``, ) }) fetchResult.forUid(2, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `To: dovecot@procontrol.fi`, `Subject: [dovecot] Dovecot 0.93 released`, ``, ``, ) }) fetchResult.forUid(3, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `To: dovecot@procontrol.fi`, `Subject: [dovecot] v0.95 released`, ``, ``, ) }) fetchResult.forUid(4, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `To: "dovecot@procontrol.fi" `, `Subject: [dovecot] DOVECOT.PROCONTROL.FI`, ``, ``, ) }) fetchResult.forUid(30, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `Subject: [dovecot] 0.98 released`, `To: dovecot@procontrol.fi`, ``, ``, ) }) fetchResult.forUid(31, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `Subject: [dovecot] 0.98.1 released`, `To: dovecot@procontrol.fi`, ``, ``, ) }) fetchResult.forUid(81, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection(sectionStr, `Subject: [dovecot] Re: Architectural questions`, `To: dovecot@procontrol.fi`, ``, ``, ) }) fetchResult.checkAndRequireMessageCount(7) }) } func TestFetchInReplyTo(t *testing.T) { const message = `Received: with ECARTIS (v1.0.0; list dovecot); Tue, 23 Jul 2002 19:39:23 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Date: Tue, 23 Jul 2002 19:39:23 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] first test mail Message-ID: <20020723193923.J22431@irccrew.org> User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii Sender: dovecot-bounce@procontrol.fi In-Reply-To: lets see if it works ` runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, doAppendWithClient(client, "INBOX", message, time.Now())) _, err := client.Select("INBOX", false) require.NoError(t, err) newFetchCommand(t, client).withItems("ENVELOPE"). fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.wantDateTime("23-Jul-2002 19:39:23 +0300") builder.wantSender("dovecot-bounce@procontrol.fi") builder.wantTo("dovecot@procontrol.fi") builder.wantFrom("tss@iki.fi") builder.wantSubject("[dovecot] first test mail") builder.wantMessageId("<20020723193923.J22431@irccrew.org>") builder.wantInReplyTo("") }) }).check() }) } // --- helpers ------------------------------------------------------------------------------------------------------- func fillAndSelectAfternoonMeetingMailbox(t *testing.T, client *client.Client) { messageTime, err := time.Parse(goimap.DateTimeLayout, "07-Feb-1994 21:52:25 -0800") require.NoError(t, err) err = doAppendWithClientFromFile(t, client, "INBOX", "testdata/afternoon-meeting.eml", messageTime) require.NoError(t, err) _, err = client.Select("INBOX", false) require.NoError(t, err) } func newAfternoonMeetingMessageEnvelopeValidator(builder *envelopeValidatorBuilder) { fromAddress := &goimap.Address{ PersonalName: "Fred Foobar", AtDomainList: "", MailboxName: "foobar", HostName: "Blurdybloop.COM", } toAddress := &goimap.Address{ PersonalName: "", AtDomainList: "", MailboxName: "mooch", HostName: "owatagu.siam.edu", } builder.wantSubject("afternoon meeting") builder.wantAddressTypeFrom(fromAddress) builder.wantAddressTypeSender(fromAddress) builder.wantAddressTypeTo(toAddress) builder.wantDateTime("07-Feb-1994 21:52:25 -0800") } func validateAfternoonMeetingBodyStructure(builder *bodyStructureValidatorBuilder) { builder.wantMIMEType("text") builder.wantMIMESubType("plain") builder.wantLines(2) builder.wantSize(57) builder.wantParams(map[string]string{ "charset": "US-ASCII", }) builder.wantExtended(false) } func afternoonMeetingMessageDataSize() uint32 { fi, err := os.Stat("testdata/afternoon-meeting.eml") if err != nil { panic(err) } return uint32(fi.Size()) } func afternoonMeetingMessageDataSizeWithExtraHeader() uint32 { return afternoonMeetingMessageDataSize() + uint32(len(ids.InternalIDKey)) + uint32(len(uuid.NewString())+4) } func fillAndSelectMailboxWithMultipleEntries(t *testing.T, client *client.Client) { const messageBoxName = "INBOX" require.NoError(t, client.Append(messageBoxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 1@pm.me")))) require.NoError(t, client.Append(messageBoxName, nil, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 2@pm.me")))) require.NoError(t, client.Append(messageBoxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 3@pm.me")))) require.NoError(t, client.Append(messageBoxName, nil, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 4@pm.me")))) require.NoError(t, client.Append(messageBoxName, []string{goimap.SeenFlag}, time.Now(), strings.NewReader(buildRFC5322TestLiteral("To: 5@pm.me")))) _, err := client.Select(messageBoxName, false) require.NoError(t, err) } gluon-0.17.0/tests/full_state_test.go000066400000000000000000000226131445200213000176100ustar00rootroot00000000000000package tests import ( "context" "fmt" "sync" "testing" "time" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/logging" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) /* * 1 user 2 mailboxes * ---------------- * Login * list Mailboxes and get their status * select Archive * Receive a new message on Archive and read it * copy the message to INBOX and close Archive * check on the INBOX mailbox, that the mail exists * check back on Archive that it's still there. */ func TestSimpleMailCopy(t *testing.T) { const ( mailboxName = "Archive" messagePath = "testdata/afternoon-meeting.eml" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("Archive")) // list mailbox checkMailboxesMatchNamesAndAttributes( t, client, "", "*", map[string][]string{ "INBOX": {goimap.UnmarkedAttr}, mailboxName: {goimap.UnmarkedAttr}, }, ) // select Archive status, err := client.Select(mailboxName, false) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages, "Expected message count does not match") // receive a new mail require.NoError(t, doAppendWithClientFromFile(t, client, mailboxName, messagePath, time.Now())) // status status, err = client.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") // read the mail uidFetchAndCheckMailHeader(t, client, 1, 1, true) uidFetchAndCheckMailContent(t, client, 1, 1, true) // copy it to INBOX require.NoError(t, client.Copy(createSeqSet("1"), "INBOX")) // select INBOX status, err = client.Select("INBOX", false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages, "Expected message count does not match") // read the same mail uidFetchAndCheckMailHeader(t, client, 1, 1, true) uidFetchAndCheckMailContent(t, client, 1, 1, true) }) } /* * 1 user 1 mailbox * ---------------- * Login * list Mailbox and get their status * select INBOX * IDLE * Receive 3 messages * Done IDLING (Being notified of the 3 new mails) * Noop + Fetch flags (as in thunderbird)). */ func TestReceptionOnIdle(t *testing.T) { const ( mailboxName = "INBOX" messagePath = "testdata/afternoon-meeting.eml" ) runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(c *client.Client, sess *testSession) { // list mailbox checkMailboxesMatchNamesAndAttributes( t, c, "", "*", map[string][]string{ mailboxName: {goimap.UnmarkedAttr}, }, ) status, err := c.Select(mailboxName, false) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages, "Expected message count does not match") // prepare to stop idling. stop := make(chan struct{}) done := make(chan error, 1) // Create a channel to receive mailbox updates. updates := make(chan client.Update, 100) c.Updates = updates wg := sync.WaitGroup{} wg.Add(2) // idling. async.GoAnnotated(context.Background(), async.NoopPanicHandler{}, func(ctx context.Context) { defer wg.Done() done <- c.Idle(stop, nil) }, logging.Labels{ "test": "client", "idling": "idle", }) // receiving messages from another client. async.GoAnnotated(context.Background(), async.NoopPanicHandler{}, func(ctx context.Context) { defer wg.Done() cli := sess.newClient() defer func() { require.NoError(t, cli.Logout()) time.Sleep(time.Second) // sending responses in bulks close(stop) }() require.NoError(t, cli.Login("user", "pass")) for i := 0; i < 3; i++ { require.NoError(t, doAppendWithClientFromFile(t, cli, mailboxName, messagePath, time.Now())) } }, logging.Labels{ "test": "client", "sending": "idle", }) // Listen for updates var existsUpdate uint32 = 0 var recentUpdate uint32 = 0 wg.Wait() c.Updates = nil close(updates) close(done) for update := range updates { boxUpdate, ok := update.(*client.MailboxUpdate) if ok { recentUpdate = boxUpdate.Mailbox.Recent existsUpdate = boxUpdate.Mailbox.Messages } } select { case err := <-done: require.NoError(t, err) } require.Equal(t, existsUpdate, uint32(3), "Not received the good amount of exists update") require.Equal(t, recentUpdate, uint32(3), "Not received the good amount of recent update") { expectedFlags := []string{ goimap.RecentFlag, } uidFetchAndCheckFlags(t, c, 1, 3, expectedFlags) } // status status, err = c.Status(mailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(3), status.Messages, "Expected message count does not match") }) } /* * 1 User with a daily routine to filter mails * ---------------- * Login * Read Mails * Either delete it, Archive it or put it as unseen. */ func TestMorningFiltering(t *testing.T) { runOneToOneTestClientWithData(t, defaultServerOptions(t), func(client *client.Client, s *testSession, mbox string, mboxID imap.MailboxID) { require.NoError(t, client.Create("ReadLater")) require.NoError(t, client.Create("Archive")) // list mailbox checkMailboxesMatchNamesAndAttributes( t, client, "", "*", map[string][]string{ "INBOX": {goimap.UnmarkedAttr}, "Archive": {goimap.UnmarkedAttr}, "ReadLater": {goimap.UnmarkedAttr}, mbox: {goimap.UnmarkedAttr}, }, ) { // There are 100 messages in the origin and no messages in the destination. mailboxStatus, err := client.Status(mbox, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(100), mailboxStatus.Messages) } { expectedFlags := []string{ goimap.RecentFlag, } uidFetchAndCheckFlags(t, client, 1, 100, expectedFlags) } nbUnseen := 0 nbArchived := 0 for i := 1; i <= 100; i++ { strId := fmt.Sprint(i) // read the content uidFetchAndCheckMailHeader(t, client, i, i, false) uidFetchAndCheckMailContent(t, client, i, i, false) switch i % 3 { case 0: // either Delete uidStoreWithRetrievalClient(t, client, createSeqSet(strId), goimap.AddFlags, []interface{}{goimap.DeletedFlag}) expungedIds := expungeClient(t, client) require.Equal(t, 1, len(expungedIds)) case 1: // or unseen uidStoreWithRetrievalClient(t, client, createSeqSet(strId), goimap.RemoveFlags, []interface{}{goimap.SeenFlag}) require.NoError(t, client.UidMove(createSeqSet(strId), "ReadLater")) nbUnseen++ case 2: // or Archive require.NoError(t, client.UidMove(createSeqSet(strId), "Archive")) nbArchived++ } } { mailboxStatus, err := client.Status(mbox, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), mailboxStatus.Messages) } { mailboxStatus, err := client.Status("Archive", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(nbArchived), mailboxStatus.Messages) } { mailboxStatus, err := client.Status("ReadLater", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(nbUnseen), mailboxStatus.Messages) } }) } func uidFetchAndCheckFlags(t *testing.T, client *client.Client, first int, last int, flags []string) { const sectionStr = "FLAGS" nbRes := (last - first) + 1 seqSet := fmt.Sprint(first) if first != last { seqSet += ":" + fmt.Sprint(last) } fetchResult := newFetchCommand(t, client).withItems(sectionStr).fetchUid(seqSet) for i := first; i <= last; i++ { fetchResult.forUid(uint32(i), func(builder *validatorBuilder) { for _, flag := range flags { builder.wantFlags(flag) } }) } fetchResult.checkAndRequireMessageCount(nbRes) } func uidFetchAndCheckMailHeader(t *testing.T, client *client.Client, first int, last int, expectAfternoon bool) { const sectionStr = "BODY.PEEK[HEADER.FIELDS (Date From Subject)]" const sectionNotPeekStr = "BODY[HEADER.FIELDS (Date From Subject)]" nbRes := (last - first) + 1 seqSet := fmt.Sprint(first) if first != last { seqSet += ":" + fmt.Sprint(last) } fetchResult := newFetchCommand(t, client).withItems(sectionStr).fetchUid(seqSet) for i := first; i <= last; i++ { fetchResult.forUid(uint32(i), func(builder *validatorBuilder) { builder.ignoreFlags() if expectAfternoon { builder.wantSection(sectionNotPeekStr, `Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)`, `From: Fred Foobar `, `Subject: afternoon meeting`, ``, ``, ) } else { builder.wantSectionNotEmpty(sectionNotPeekStr) } }) } fetchResult.checkAndRequireMessageCount(nbRes) } func uidFetchAndCheckMailContent(t *testing.T, client *client.Client, first int, last int, expectAfternoon bool) { const sectionStr = "BODY[TEXT]" nbRes := (last - first) + 1 seqSet := fmt.Sprint(first) if first != last { seqSet += ":" + fmt.Sprint(last) } fetchResult := newFetchCommand(t, client).withItems(sectionStr).fetchUid(seqSet) for i := first; i <= last; i++ { fetchResult.forUid(uint32(i), func(builder *validatorBuilder) { builder.ignoreFlags() if expectAfternoon { builder.wantSection(sectionStr, `Hello Joe, do you think we can meet at 3:30 tomorrow?`, ``, ``, ) } else { builder.wantSectionNotEmpty(sectionStr) } }) } fetchResult.checkAndRequireMessageCount(nbRes) } gluon-0.17.0/tests/helper_test.go000066400000000000000000000753431445200213000167350ustar00rootroot00000000000000package tests import ( "bytes" "fmt" "io" "os" "strconv" "strings" "testing" "time" "github.com/ProtonMail/gluon/internal/ids" "github.com/bradenaw/juniper/iterator" "github.com/bradenaw/juniper/xslices" goimap "github.com/emersion/go-imap" uidplus "github.com/emersion/go-imap-uidplus" "github.com/emersion/go-imap/client" "github.com/google/uuid" "github.com/stretchr/testify/require" ) type testHelper struct { s *testConnection tag string } func (h *testHelper) expect(res ...string) { res[len(res)-1] = fmt.Sprintf(`%v %v`, h.tag, res[len(res)-1]) h.s.Sxe(res...) } const DefaultTestDateStr = "23 Feb 2020 02:52:25 -0800 (PST)" func buildRFC5322TestLiteral(literal string) string { if !strings.Contains(literal, "Date: ") { literal = "Date: " + DefaultTestDateStr + "\r\n" + literal } if !strings.Contains(literal, "From: ") { literal = "From: NoAddress@void.universe" + "\r\n" + literal } return literal } func (s *testConnection) doAppend(mailboxName, literal string, flags ...string) *testHelper { tag := uuid.NewString() s.Cf(`%v APPEND %v (%v) {%v}`, tag, mailboxName, strings.Join(flags, " "), len(literal)) s.Sx(`\+.*`) s.C(literal) return &testHelper{s: s, tag: tag} } func (s *testConnection) doAppendFromFile(mailboxName, path string, flags ...string) *testHelper { literal, err := os.ReadFile(path) require.NoError(s.tb, err) return s.doAppend(mailboxName, string(literal), flags...) } func doAppendWithClient(client *client.Client, mailboxName string, literal string, time time.Time, flags ...string) error { return client.Append(mailboxName, flags, time, strings.NewReader(literal)) } func doAppendWithClientFromFile(t testing.TB, client *client.Client, mailboxName string, filePath string, time time.Time, flags ...string) error { literal, err := os.ReadFile(filePath) require.NoError(t, err) return doAppendWithClient(client, mailboxName, string(literal), time, flags...) } func doAppendWithClientPlus(client *uidplus.Client, mailboxName string, literal string, flags ...string) (uint32, uint32, error) { return client.Append(mailboxName, flags, time.Now(), strings.NewReader(literal)) } func doAppendWithClientPlusFromFile(t testing.TB, client *uidplus.Client, mailboxName string, filePath string, flags ...string) (uint32, uint32, error) { literal, err := os.ReadFile(filePath) require.NoError(t, err) return doAppendWithClientPlus(client, mailboxName, string(literal), flags...) } func listMailboxesClient(t testing.TB, client *client.Client, reference string, expression string) []*goimap.MailboxInfo { mailboxesChannel := make(chan *goimap.MailboxInfo) done := make(chan error, 1) go func() { done <- client.List(reference, expression, mailboxesChannel) require.NoError(t, <-done) }() return iterator.Collect(iterator.Chan(mailboxesChannel)) } func checkMailboxesMatchNamesAndAttributes(t *testing.T, client *client.Client, reference string, expression string, expectedNamesAndAttributes map[string][]string) { haveNames := []string{} for _, mbox := range listMailboxesClient(t, client, reference, expression) { haveNames = append(haveNames, mbox.Name) wantAttributes, ok := expectedNamesAndAttributes[mbox.Name] require.True(t, ok, "not expected to have mailbox %q", mbox.Name) require.ElementsMatch(t, wantAttributes, mbox.Attributes, "for mailbox %q", mbox.Name) } wantNames := []string{} for name := range expectedNamesAndAttributes { wantNames = append(wantNames, name) } require.ElementsMatch(t, haveNames, wantNames) } func getMailboxNamesClient(t testing.TB, client *client.Client, reference string, expression string) []string { mailboxes := listMailboxesClient(t, client, reference, expression) return xslices.Map(mailboxes, func(mbox *goimap.MailboxInfo) string { return mbox.Name }) } func matchMailboxNamesClient(t testing.TB, client *client.Client, reference string, expression string, expectedNames []string) { mailboxes := getMailboxNamesClient(t, client, reference, expression) require.ElementsMatch(t, expectedNames, mailboxes) } func storeWithRetrievalClient(t testing.TB, client *client.Client, seqset *goimap.SeqSet, item goimap.StoreItem, value interface{}) []*goimap.Message { ch := make(chan *goimap.Message) go func() { require.NoError(t, client.Store(seqset, item, value, ch)) }() return iterator.Collect(iterator.Chan(ch)) } func uidStoreWithRetrievalClient(t testing.TB, client *client.Client, seqset *goimap.SeqSet, item goimap.StoreItem, value interface{}) []*goimap.Message { ch := make(chan *goimap.Message) go func() { require.NoError(t, client.UidStore(seqset, item, value, ch)) }() return iterator.Collect(iterator.Chan(ch)) } type macroFetchCommand struct { SeqSet *goimap.SeqSet Item goimap.FetchItem } func (cmd *macroFetchCommand) Command() *goimap.Command { return &goimap.Command{ Name: "FETCH", Arguments: []interface{}{cmd.SeqSet, goimap.RawString(cmd.Item)}, } } func fetchMessagesClient(t testing.TB, client *client.Client, seqset *goimap.SeqSet, items []goimap.FetchItem) []*goimap.Message { ch := make(chan *goimap.Message) go func() { require.NoError(t, client.Fetch(seqset, items, ch)) }() return iterator.Collect(iterator.Chan(ch)) } func uidFetchMessagesClient(t testing.TB, client *client.Client, seqset *goimap.SeqSet, items []goimap.FetchItem) []*goimap.Message { ch := make(chan *goimap.Message) go func() { require.NoError(t, client.UidFetch(seqset, items, ch)) }() return iterator.Collect(iterator.Chan(ch)) } func expungeClient(t testing.TB, client *client.Client) []uint32 { expungeCh := make(chan uint32) go func() { require.NoError(t, client.Expunge(expungeCh)) }() return iterator.Collect(iterator.Chan(expungeCh)) } func uidExpungeClient(t testing.TB, client *uidplus.Client, sequenceSet *goimap.SeqSet) []uint32 { expungeCh := make(chan uint32) go func() { require.NoError(t, client.UidExpunge(sequenceSet, expungeCh)) }() return iterator.Collect(iterator.Chan(expungeCh)) } func createSeqSet(sequence string) *goimap.SeqSet { sequenceSet, err := goimap.ParseSeqSet(sequence) if err != nil { panic(err) } return sequenceSet } func fetchMessageBody(tb testing.TB, cl *client.Client, seq uint32) string { result := newFetchCommand(tb, cl).withItems("BODY[]").fetch(strconv.FormatUint(uint64(seq), 10)) section, err := goimap.ParseBodySectionName("BODY[]") require.NoError(tb, err) literal := getBodySection(result.messages[0], section) bytes, err := io.ReadAll(literal) require.NoError(tb, err) return string(bytes) } // Helper to validate go-imap-client's message Envelope. type envelopeValidator struct { validateDateTime func(testing.TB, time.Time) validateSubject func(testing.TB, string) validateFrom func(testing.TB, []*goimap.Address) validateSender func(testing.TB, []*goimap.Address) validateTo func(testing.TB, []*goimap.Address) validateReplyTo func(testing.TB, []*goimap.Address) validateCc func(testing.TB, []*goimap.Address) validateBcc func(testing.TB, []*goimap.Address) validateMessageId func(testing.TB, string) validateInReplyTo func(testing.TB, string) } // newEmptyEnvelopValidator returns a validator that ensures all fields in the envelope are empty and have not // been populated by a response. // Note: MessageId is not checked by default. func newEmptyEnvelopValidator() *envelopeValidator { return &envelopeValidator{ validateDateTime: func(t testing.TB, t2 time.Time) { require.Zero(t, t2) }, validateSubject: func(t testing.TB, s string) { require.Empty(t, s) }, validateFrom: func(t testing.TB, addresses []*goimap.Address) { require.Empty(t, addresses) }, validateTo: func(t testing.TB, addresses []*goimap.Address) { require.Empty(t, addresses) }, validateSender: func(t testing.TB, addresses []*goimap.Address) { require.Empty(t, addresses) }, validateReplyTo: func(t testing.TB, addresses []*goimap.Address) { require.Empty(t, addresses) }, validateCc: func(t testing.TB, addresses []*goimap.Address) { require.Empty(t, addresses) }, validateBcc: func(t testing.TB, addresses []*goimap.Address) { require.Empty(t, addresses) }, validateMessageId: nil, validateInReplyTo: func(t testing.TB, s string) { require.Empty(t, s) }, } } func (validator *envelopeValidator) check(t testing.TB, envelope *goimap.Envelope) { validator.validateDateTime(t, envelope.Date) validator.validateSubject(t, envelope.Subject) validator.validateFrom(t, envelope.From) validator.validateTo(t, envelope.To) validator.validateCc(t, envelope.Cc) validator.validateBcc(t, envelope.Bcc) validator.validateSender(t, envelope.Sender) if validator.validateMessageId != nil { validator.validateMessageId(t, envelope.MessageId) } validator.validateInReplyTo(t, envelope.InReplyTo) } // Helper to validate go-imap-client's message. When the fields `validateEnvelope`, `validateBodyStructure`, // `validateInternalDate`, `validateBody` are nil, it implies that those fields were never set in the Message. type messageValidator struct { validateSeqNum func(testing.TB, uint32) validateUid func(testing.TB, uint32) validateEnvelope *envelopeValidator validateBodyStructure *bodyStructureValidator validateFlags func(testing.TB, []string) validateInternalDate func(testing.TB, time.Time) validateSize func(testing.TB, uint32) validateBody []func(testing.TB, *goimap.Message) } // newEmptyIMAPMessageValidator returns a validator that performs default checks for when the message has no data that // was parsed as part of a response. // Note: The fields `validateInternalDate`, `validateEnvelope`, `validateBodyStructure` and `validateBody` are always // set to nil. func newEmptyIMAPMessageValidator() *messageValidator { return &messageValidator{ validateSeqNum: func(t testing.TB, u uint32) { require.Greater(t, u, uint32(0)) }, validateUid: func(t testing.TB, u uint32) { require.Zero(t, u) }, validateEnvelope: nil, validateBodyStructure: nil, validateFlags: func(t testing.TB, flags []string) { require.Empty(t, flags) }, validateInternalDate: nil, validateSize: func(t testing.TB, u uint32) { require.Zero(t, u) }, validateBody: nil, } } func (validator *messageValidator) check(t testing.TB, message *goimap.Message) { validator.validateSeqNum(t, message.SeqNum) validator.validateUid(t, message.Uid) if validator.validateEnvelope != nil { require.NotNil(t, message.Envelope) validator.validateEnvelope.check(t, message.Envelope) } else { require.Nil(t, message.Envelope) } validator.validateFlags(t, message.Flags) if validator.validateInternalDate != nil { validator.validateInternalDate(t, message.InternalDate) } if validator.validateBodyStructure != nil { require.NotNil(t, message.BodyStructure) validator.validateBodyStructure.check(t, message.BodyStructure) } else { require.Nil(t, message.BodyStructure) } validator.validateSize(t, message.Size) for _, fn := range validator.validateBody { fn(t, message) } } type fetchCommand struct { t testing.TB client *client.Client items []goimap.FetchItem } func newFetchCommand(t testing.TB, client *client.Client) *fetchCommand { return &fetchCommand{ t: t, client: client, items: nil, } } func (fc *fetchCommand) withItems(items ...goimap.FetchItem) *fetchCommand { fc.items = xslices.Join(items) return fc } func (fc *fetchCommand) fetch(seqSet string) *fetchResult { return newFetchResult(fc.t, fetchMessagesClient(fc.t, fc.client, createSeqSet(seqSet), fc.items)) } func (fc *fetchCommand) fetchFailure(seqSet string) { // we have to create the channel because the client code doesn't properly handle nil channels require.Error(fc.t, fc.client.Fetch(createSeqSet(seqSet), fc.items, make(chan *goimap.Message))) } func (fc *fetchCommand) fetchUid(seqSet string) *fetchResult { return newFetchResult(fc.t, uidFetchMessagesClient(fc.t, fc.client, createSeqSet(seqSet), fc.items)) } type fetchResult struct { t testing.TB messages []*goimap.Message validators []*messageValidator } func newFetchResult(t testing.TB, messages []*goimap.Message) *fetchResult { return &fetchResult{ t: t, messages: messages, validators: xslices.Map(messages, func(_ *goimap.Message) *messageValidator { return nil }), } } type validatorBuilder messageValidator func (fr *fetchResult) forSeqNum(number uint32, builderCallback func(*validatorBuilder)) *fetchResult { for index, message := range fr.messages { if message.SeqNum == number { validator := newEmptyIMAPMessageValidator() builderCallback((*validatorBuilder)(validator)) fr.validators[index] = validator return fr } } panic("Could not locate message with given sequence number") } func (fr *fetchResult) forUid(id uint32, builderCallback func(*validatorBuilder)) *fetchResult { for index, message := range fr.messages { if message.Uid == id { validator := newEmptyIMAPMessageValidator() // No need to validate UID, we already verified this at this point validator.validateUid = func(_ testing.TB, _ uint32) {} builderCallback((*validatorBuilder)(validator)) fr.validators[index] = validator return fr } } panic("Could not locate message with given sequence number") } func (fr *fetchResult) check() { for index, validator := range fr.validators { if validator != nil { validator.check(fr.t, fr.messages[index]) } } } func (fr *fetchResult) checkAndRequireMessageCount(messageCount int) { require.Equal(fr.t, len(fr.messages), messageCount) fr.check() } func (vb *validatorBuilder) wantSequenceId(sequenceId uint32) *validatorBuilder { vb.validateSeqNum = func(t testing.TB, u uint32) { require.Equal(t, u, sequenceId) } return vb } func (vb *validatorBuilder) wantUID(uid uint32) *validatorBuilder { vb.validateUid = func(t testing.TB, u uint32) { require.Equal(t, u, uid) } return vb } func (vb *validatorBuilder) wantFlags(flags ...string) *validatorBuilder { vb.validateFlags = func(t testing.TB, f []string) { require.ElementsMatch(t, xslices.Map(flags, strings.ToLower), xslices.Map(f, strings.ToLower)) } return vb } func (vb *validatorBuilder) ignoreFlags() *validatorBuilder { vb.validateFlags = func(_ testing.TB, _ []string) {} return vb } func (vb *validatorBuilder) wantInternalDate(dateTime string) *validatorBuilder { vb.validateInternalDate = func(t testing.TB, t2 time.Time) { expectedTime, err := time.Parse(goimap.DateTimeLayout, dateTime) require.NoError(t, err) require.Equal(t, expectedTime, t2) } return vb } func (vb *validatorBuilder) wantSize(size uint32) *validatorBuilder { vb.validateSize = func(t testing.TB, u uint32) { require.Equal(t, u, size) } return vb } func (vb *validatorBuilder) wantBodyStructure(fn func(builder *bodyStructureValidatorBuilder)) *validatorBuilder { validator := newEmptyBodyStructureValidator() fn((*bodyStructureValidatorBuilder)(validator)) vb.validateBodyStructure = validator return vb } // There is a bug in the goimage library where the call to `section.resp()` always sets Peek member variable // of the section to false, this causes issues with Peek requests, as the section will not be found. This // implementation is equal to GetBody(), except we don't call `section.resp()`. func getBodySection(message *goimap.Message, section *goimap.BodySectionName) goimap.Literal { for s, body := range message.Body { if section.Equal(s) { if body == nil { // Server can return nil, we need to treat as empty string per RFC 3501 body = bytes.NewReader(nil) } return body } } return nil } func skipGLUONHeader(message string) string { if keyIndex := strings.Index(message, ids.InternalIDKey); keyIndex != -1 { newLineIndex := strings.Index(message[keyIndex:], "\n") if newLineIndex < 0 { panic("Could not find terminating new line") } message = message[0:keyIndex] + message[keyIndex+newLineIndex+1:] } return message } func skipGLUONHeaderOrPanic(message string) string { if keyIndex := strings.Index(message, ids.InternalIDKey); keyIndex != -1 { newLineIndex := strings.Index(message[keyIndex:], "\n") if newLineIndex < 0 { panic("Could not find terminating new line") } message = message[0:keyIndex] + message[keyIndex+newLineIndex+1:] } else { panic("Could not find Gluon header") } return message } func (vb *validatorBuilder) wantSection(sectionStr goimap.FetchItem, lines ...string) *validatorBuilder { section, err := goimap.ParseBodySectionName(sectionStr) if err != nil { panic("Failed to parse section string") } vb.validateBody = append(vb.validateBody, func(t testing.TB, message *goimap.Message) { literal := getBodySection(message, section) require.NotNil(t, literal) bytes, err := io.ReadAll(literal) require.NoError(t, err) require.Equal(t, string(bytes), strings.Join(lines, "\r\n")) }) return vb } func (vb *validatorBuilder) wantSectionEmpty(sectionStr goimap.FetchItem) *validatorBuilder { section, err := goimap.ParseBodySectionName(sectionStr) if err != nil { panic("Failed to parse section string") } vb.validateBody = append(vb.validateBody, func(t testing.TB, message *goimap.Message) { literal := getBodySection(message, section) require.Nil(t, literal) }) return vb } func (vb *validatorBuilder) wantSectionNotEmpty(sectionStr goimap.FetchItem) *validatorBuilder { section, err := goimap.ParseBodySectionName(sectionStr) if err != nil { panic("Failed to parse section string") } vb.validateBody = append(vb.validateBody, func(t testing.TB, message *goimap.Message) { literal := getBodySection(message, section) require.NotEmpty(t, literal) }) return vb } func (vb *validatorBuilder) wantSectionAndSkipGLUONHeader(sectionStr goimap.FetchItem, expected ...string) *validatorBuilder { section, err := goimap.ParseBodySectionName(sectionStr) if err != nil { panic("Failed to parse section string") } vb.validateBody = append(vb.validateBody, func(t testing.TB, message *goimap.Message) { literal := getBodySection(message, section) require.NotNil(t, literal) bytes, err := io.ReadAll(literal) require.NoError(t, err) require.Equal(t, skipGLUONHeader(string(bytes)), strings.Join(expected, "\r\n")) }) return vb } func (vb *validatorBuilder) wantSectionAndSkipGLUONHeaderOrPanic(sectionStr goimap.FetchItem, expected ...string) *validatorBuilder { section, err := goimap.ParseBodySectionName(sectionStr) if err != nil { panic("Failed to parse section string") } vb.validateBody = append(vb.validateBody, func(t testing.TB, message *goimap.Message) { literal := getBodySection(message, section) require.NotNil(t, literal) bytes, err := io.ReadAll(literal) require.NoError(t, err) require.Equal(t, skipGLUONHeaderOrPanic(string(bytes)), strings.Join(expected, "\r\n")) }) return vb } func (vb *validatorBuilder) wantSectionBytes(sectionStr goimap.FetchItem, fn func(testing.TB, []byte)) *validatorBuilder { section, err := goimap.ParseBodySectionName(sectionStr) if err != nil { panic("Failed to parse section string") } vb.validateBody = append(vb.validateBody, func(t testing.TB, message *goimap.Message) { literal := getBodySection(message, section) require.NotNil(t, literal, "Failed to get literal for section: %v", sectionStr) bytes, err := io.ReadAll(literal) require.NoError(t, err) fn(t, bytes) }) return vb } func (vb *validatorBuilder) wantSectionString(sectionStr goimap.FetchItem, fn func(testing.TB, string)) *validatorBuilder { return vb.wantSectionBytes(sectionStr, func(t testing.TB, bytes []byte) { fn(t, string(bytes)) }) } type envelopeValidatorBuilder struct { validator *envelopeValidator } func (v *envelopeValidatorBuilder) wantDateTime(dateTime string) *envelopeValidatorBuilder { v.validator.validateDateTime = func(t testing.TB, t2 time.Time) { expectedTime, err := time.Parse(goimap.DateTimeLayout, dateTime) require.NoError(t, err) require.Equal(t, expectedTime, t2) } return v } func (v *envelopeValidatorBuilder) skipDateTime() { v.validator.validateDateTime = func(_ testing.TB, _ time.Time) { } } func (v *envelopeValidatorBuilder) skipFromAndSender() { v.validator.validateFrom = func(_ testing.TB, _ []*goimap.Address) { } v.validator.validateSender = func(_ testing.TB, _ []*goimap.Address) { } } func (v *envelopeValidatorBuilder) wantSubject(subject string) *envelopeValidatorBuilder { v.validator.validateSubject = func(t testing.TB, s string) { require.Equal(t, s, subject) } return v } func (v *envelopeValidatorBuilder) wantFrom(imapAddresses ...string) *envelopeValidatorBuilder { v.validator.validateFrom = func(t testing.TB, addresses []*goimap.Address) { messageAddresses := xslices.Map(addresses, (*goimap.Address).Address) require.ElementsMatch(t, imapAddresses, messageAddresses) } return v } func (v *envelopeValidatorBuilder) wantAddressTypeFrom(imapAddresses ...*goimap.Address) *envelopeValidatorBuilder { v.validator.validateFrom = func(t testing.TB, addresses []*goimap.Address) { require.ElementsMatch(t, imapAddresses, addresses) } return v } func (v *envelopeValidatorBuilder) wantAddressTypeSender(imapAddresses ...*goimap.Address) *envelopeValidatorBuilder { v.validator.validateSender = func(t testing.TB, addresses []*goimap.Address) { require.ElementsMatch(t, imapAddresses, addresses) } return v } func (v *envelopeValidatorBuilder) wantSender(imapAddresses ...string) *envelopeValidatorBuilder { v.validator.validateSender = func(t testing.TB, addresses []*goimap.Address) { messageAddresses := xslices.Map(addresses, (*goimap.Address).Address) require.ElementsMatch(t, imapAddresses, messageAddresses) } return v } func (v *envelopeValidatorBuilder) wantAddressTypeReplyTo(imapAddresses ...*goimap.Address) *envelopeValidatorBuilder { v.validator.validateReplyTo = func(t testing.TB, addresses []*goimap.Address) { require.ElementsMatch(t, imapAddresses, addresses) } return v } func (v *envelopeValidatorBuilder) wantReplyTo(imapAddresses ...string) *envelopeValidatorBuilder { v.validator.validateReplyTo = func(t testing.TB, addresses []*goimap.Address) { messageAddresses := xslices.Map(addresses, (*goimap.Address).Address) require.ElementsMatch(t, imapAddresses, messageAddresses) } return v } func (v *envelopeValidatorBuilder) wantTo(imapAddresses ...string) *envelopeValidatorBuilder { v.validator.validateTo = func(t testing.TB, addresses []*goimap.Address) { messageAddresses := xslices.Map(addresses, (*goimap.Address).Address) require.ElementsMatch(t, imapAddresses, messageAddresses) } return v } func (v *envelopeValidatorBuilder) wantAddressTypeTo(imapAddresses ...*goimap.Address) *envelopeValidatorBuilder { v.validator.validateTo = func(t testing.TB, addresses []*goimap.Address) { require.ElementsMatch(t, imapAddresses, addresses) } return v } func (v *envelopeValidatorBuilder) wantBcc(imapAddresses ...string) *envelopeValidatorBuilder { v.validator.validateBcc = func(t testing.TB, addresses []*goimap.Address) { messageAddresses := xslices.Map(addresses, (*goimap.Address).Address) require.ElementsMatch(t, imapAddresses, messageAddresses) } return v } func (v *envelopeValidatorBuilder) wantAddressTypeBcc(imapAddresses ...*goimap.Address) *envelopeValidatorBuilder { v.validator.validateBcc = func(t testing.TB, addresses []*goimap.Address) { require.ElementsMatch(t, imapAddresses, addresses) } return v } func (v *envelopeValidatorBuilder) wantCc(imapAddresses ...string) *envelopeValidatorBuilder { v.validator.validateCc = func(t testing.TB, addresses []*goimap.Address) { messageAddresses := xslices.Map(addresses, (*goimap.Address).Address) require.ElementsMatch(t, imapAddresses, messageAddresses) } return v } func (v *envelopeValidatorBuilder) wantAddressTypeCc(imapAddresses ...*goimap.Address) *envelopeValidatorBuilder { v.validator.validateCc = func(t testing.TB, addresses []*goimap.Address) { require.ElementsMatch(t, imapAddresses, addresses) } return v } func (v *envelopeValidatorBuilder) wantMessageId(id string) *envelopeValidatorBuilder { v.validator.validateMessageId = func(t testing.TB, msgId string) { require.Equal(t, msgId, id) } return v } func (v *envelopeValidatorBuilder) wantInReplyTo(value string) *envelopeValidatorBuilder { v.validator.validateInReplyTo = func(t testing.TB, s string) { require.Equal(t, value, s) } return v } func (vb *validatorBuilder) wantEnvelope(fn func(*envelopeValidatorBuilder)) *validatorBuilder { builder := &envelopeValidatorBuilder{ validator: newEmptyEnvelopValidator(), } fn(builder) vb.validateEnvelope = builder.validator return vb } type bodyStructureValidator struct { validateMIMEType func(testing.TB, string) validateMimeSubType func(testing.TB, string) validateParams func(testing.TB, map[string]string) validateID func(testing.TB, string) validateDescription func(testing.TB, string) validateEncoding func(testing.TB, string) validateSize func(testing.TB, uint32) validateParts []*bodyStructureValidator validateRFCEnvelope *envelopeValidator validateRFCBodyStructure *bodyStructureValidator validateLines func(testing.TB, uint32) validateExtended func(testing.TB, bool) validateDisposition func(testing.TB, string) validateDispositionParams func(testing.TB, map[string]string) validateLanguage func(testing.TB, []string) validateLocation func(testing.TB, []string) validateMD5 func(testing.TB, string) } func (bsv *bodyStructureValidator) check(tb testing.TB, structure *goimap.BodyStructure) { bsv.validateMIMEType(tb, structure.MIMEType) bsv.validateMimeSubType(tb, structure.MIMESubType) bsv.validateParams(tb, structure.Params) bsv.validateID(tb, structure.Id) bsv.validateDescription(tb, structure.Description) bsv.validateEncoding(tb, structure.Encoding) bsv.validateSize(tb, structure.Size) if bsv.validateRFCEnvelope != nil { require.NotNil(tb, structure.Envelope) bsv.validateRFCEnvelope.check(tb, structure.Envelope) } else { require.Nil(tb, structure.Envelope) } require.Equal(tb, len(structure.Parts), len(bsv.validateParts)) for i := 0; i < len(bsv.validateParts); i++ { bsv.validateParts[i].check(tb, structure.Parts[i]) } if bsv.validateRFCBodyStructure != nil { require.NotNil(tb, structure.BodyStructure) bsv.validateRFCBodyStructure.check(tb, structure.BodyStructure) } else { require.Nil(tb, structure.BodyStructure) } bsv.validateLines(tb, structure.Lines) bsv.validateExtended(tb, structure.Extended) bsv.validateDisposition(tb, structure.Disposition) bsv.validateDispositionParams(tb, structure.DispositionParams) bsv.validateLanguage(tb, structure.Language) bsv.validateLocation(tb, structure.Location) bsv.validateMD5(tb, structure.MD5) } func newEmptyBodyStructureValidator() *bodyStructureValidator { emptyString := func(tb testing.TB, s string) { require.Empty(tb, s) } return &bodyStructureValidator{ validateMIMEType: emptyString, validateMimeSubType: emptyString, validateParams: func(tb testing.TB, m map[string]string) { require.Empty(tb, m) }, validateID: emptyString, validateDescription: emptyString, validateEncoding: emptyString, validateSize: func(tb testing.TB, u uint32) { require.Zero(tb, u) }, validateParts: nil, validateRFCEnvelope: nil, validateRFCBodyStructure: nil, validateLines: func(tb testing.TB, u uint32) { require.Zero(tb, 0) }, validateExtended: func(tb testing.TB, b bool) { require.True(tb, b) }, validateDisposition: emptyString, validateDispositionParams: func(tb testing.TB, m map[string]string) { require.Empty(tb, m) }, validateLanguage: func(tb testing.TB, i []string) { require.Empty(tb, i) }, validateLocation: func(tb testing.TB, i []string) { require.Empty(tb, i) }, validateMD5: emptyString, } } type bodyStructureValidatorBuilder bodyStructureValidator func (b *bodyStructureValidatorBuilder) wantMIMEType(mimeType string) { b.validateMIMEType = func(tb testing.TB, s string) { require.Equal(tb, mimeType, s) } } func (b *bodyStructureValidatorBuilder) wantMIMESubType(mimeSubType string) { b.validateMimeSubType = func(tb testing.TB, s string) { require.Equal(tb, mimeSubType, s) } } func (b *bodyStructureValidatorBuilder) wantParams(params map[string]string) { b.validateParams = func(tb testing.TB, m map[string]string) { require.Equal(tb, params, m) } } func (b *bodyStructureValidatorBuilder) wantId(id string) { b.validateID = func(tb testing.TB, s string) { require.Equal(tb, id, s) } } func (b *bodyStructureValidatorBuilder) wantDescription(description string) { b.validateDescription = func(tb testing.TB, s string) { require.Equal(tb, description, s) } } func (b *bodyStructureValidatorBuilder) wantEncoding(encoding string) { b.validateEncoding = func(tb testing.TB, s string) { require.Equal(tb, encoding, s) } } func (b *bodyStructureValidatorBuilder) wantSize(size uint32) { b.validateSize = func(tb testing.TB, u uint32) { require.Equal(tb, size, u) } } func (b *bodyStructureValidatorBuilder) wantPart(fn func(builder *bodyStructureValidatorBuilder)) { builder := newEmptyBodyStructureValidator() fn((*bodyStructureValidatorBuilder)(builder)) b.validateParts = append(b.validateParts, builder) } func (b *bodyStructureValidatorBuilder) wantRFCEnvelope(fn func(builder *envelopeValidatorBuilder)) { validator := newEmptyEnvelopValidator() builder := &envelopeValidatorBuilder{ validator: validator, } fn(builder) b.validateRFCEnvelope = validator } func (b *bodyStructureValidatorBuilder) wantRFCBodyStructure(fn func(builder *bodyStructureValidatorBuilder)) { builder := newEmptyBodyStructureValidator() fn((*bodyStructureValidatorBuilder)(builder)) b.validateRFCBodyStructure = builder } func (b *bodyStructureValidatorBuilder) wantLines(size uint32) { b.validateLines = func(tb testing.TB, u uint32) { require.Equal(tb, size, u) } } func (b *bodyStructureValidatorBuilder) wantExtended(value bool) { b.validateExtended = func(tb testing.TB, b bool) { require.Equal(tb, value, b) } } func (b *bodyStructureValidatorBuilder) wantDisposition(disposition string) { b.validateDisposition = func(tb testing.TB, s string) { require.Equal(tb, disposition, s) } } func (b *bodyStructureValidatorBuilder) wantDispositionParams(dispositionParams map[string]string) { b.validateDispositionParams = func(tb testing.TB, m map[string]string) { require.Equal(tb, dispositionParams, m) } } func (b *bodyStructureValidatorBuilder) wantLanguage(language ...string) { b.validateLanguage = func(tb testing.TB, i []string) { require.ElementsMatch(tb, language, i) } } func (b *bodyStructureValidatorBuilder) wantLocation(location ...string) { b.validateLocation = func(tb testing.TB, i []string) { require.ElementsMatch(tb, location, i) } } func (b *bodyStructureValidatorBuilder) wantMD5(md5 string) { b.validateMD5 = func(tb testing.TB, s string) { require.Equal(tb, md5, s) } } gluon-0.17.0/tests/id_test.go000066400000000000000000000033401445200213000160360ustar00rootroot00000000000000package tests import ( "fmt" "testing" "github.com/ProtonMail/gluon/events" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/response" "github.com/stretchr/testify/require" ) func TestIdNilNoData(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { wantResponse := response.ID(imap.NewIMAPIDFromVersionInfo(testServerVersionInfo)) c.C(`A001 ID NIL`) c.S(wantResponse.String()) c.OK(`A001`) }) } func TestIdContextLookup(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { wantResponse := response.ID(imap.NewIMAPIDFromVersionInfo(testServerVersionInfo)) // Store new ID c.C(`A001 ID ("foo" "bar")`) c.S(wantResponse.String()) c.OK(`A001`) c.C("A003 LOGIN user pass").OK("A003") // NOTE: We are only recording this with APPEND since it was the easiest command to verify the data has been // record properly in the context, as APPEND will always require a communication with the remote connector. literal := buildRFC5322TestLiteral("To: 00010203-0405-4607-880") literalLen := len(literal) c.C(fmt.Sprintf("A004 APPEND INBOX (\\Seen) {%v}", literalLen)) c.S("+ Ready") c.C(literal).OK("A004") s.flush("user") wantID := imap.NewIMAPIDFromKeyMap(map[string]string{"foo": "bar"}) require.Equal(t, wantID, s.conns[s.userIDs["user"]].GetLastRecordedIMAPID()) }) } func TestIdEvent(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { c.C(`A001 ID ("name" "foo" "version" "bar")`).OK(`A001`) imapID := getEvent[events.IMAPID](s.eventCh).IMAPID require.Equal(t, "foo", imapID.Name) require.Equal(t, "bar", imapID.Version) }) } gluon-0.17.0/tests/idle_test.go000066400000000000000000000057471445200213000163740ustar00rootroot00000000000000package tests import ( "testing" "time" "github.com/ProtonMail/gluon/imap" ) func TestIDLEExistsUpdates(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { // First client selects in INBOX to receive EXISTS update. c[1].C("A006 select INBOX") c[1].Se("A006 OK [READ-WRITE] SELECT") // First client starts to IDLE. c[1].C("A007 IDLE") c[1].S("+ Ready") // Second client appends to INBOX to generate EXISTS updates. // The client is not selected and thus doesn't itself receive responses. c[2].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") c[2].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 2@pm.me`), `\Seen`).expect("OK") s.flush("user") // First client receives the EXISTS and RECENT updates while idling. c[1].S(`* 2 EXISTS`, `* 2 RECENT`) // First client stops idling. c[1].C("DONE") c[1].OK(`A007`) // Further stuff doesn't trigger any issues. c[2].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 3@pm.me`), `\Seen`).expect("OK") }) } func TestIDLEPendingUpdates(t *testing.T) { runManyToOneTestWithData(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession, _ string, _ imap.MailboxID) { c[1].C("A001 select INBOX").OK("A001") // Generate some pending updates. c[2].C("B001 UID MOVE 1,2,3 INBOX").OK("B001") // Begin IDLE. c[1].C("A002 IDLE").S("+ Ready") // Generate some additional updates. c[2].C("B002 UID MOVE 4,5,6 INBOX").OK("B002") // Pending updates are first flushed. c[1].Se(`* 3 EXISTS`) // IDLE updates are first second. c[1].Se(`* 6 EXISTS`) // Stop IDLE. c[1].C("DONE").OK("A002") }) } func TestIDLERecentReceivedOnSelectedClient(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { c[1].C("A001 select INBOX").OK("A001") // Generate some pending updates. c[2].doAppend("INBOX", buildRFC5322TestLiteral("To: foo.foo")).s.OK("") c[2].doAppend("INBOX", buildRFC5322TestLiteral("To: bar.bar")).s.OK("") // Begin IDLE. c[1].C("A002 IDLE").S("+ Ready") // Pending updates are first flushed. And merged. c[1].S(`* 2 EXISTS`, `* 2 RECENT`) // And bulked after 500 ms c[2].doAppend("INBOX", buildRFC5322TestLiteral("To: biz.biz")).s.OK("") c[2].doAppend("INBOX", buildRFC5322TestLiteral("To: gardy.loo")).s.OK("") // Testing splitting the updates in at least two bulks. time.Sleep(510 * time.Millisecond) c[2].doAppend("INBOX", buildRFC5322TestLiteral("To: wolo.lo")).s.OK("") c[2].doAppend("INBOX", buildRFC5322TestLiteral("To: huga.chaga")).s.OK("") c[2].C("C2 LOGOUT").OK("C2") // First bulk update should have 4 exists and recent. c[1].S(`* 4 EXISTS`, `* 4 RECENT`) // Depneds on append performance the 6 exist and recent in // second or third bulk. c[1].Se(`* 6 EXISTS`, `* 6 RECENT`) // Stop IDLE. c[1].C("DONE").OK("A002") c[1].C("A2 LOGOUT").OK("A2") }) } gluon-0.17.0/tests/imap_limits_test.go000066400000000000000000000141631445200213000177560ustar00rootroot00000000000000package tests import ( "testing" "time" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/limits" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func testIMAPLimits() limits.IMAP { return limits.NewIMAPLimits( 3, // Needs to be at least 3 due to INBOX and Recovered Messages. 1, 2, // Set to 2 so we can create a least on mailbox, delete it and then create a second to trigger the UID check. 4, // Set to 4 o we can add at least one message, delete it and then add a second message to trigger the UID check. ) } func TestMaxMailboxLimitRespected(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withIMAPLimits(testIMAPLimits()), withUIDValidityGenerator(imap.NewIncrementalUIDValidityGenerator())), func(client *client.Client, session *testSession) { require.NoError(t, client.Create("mbox1")) require.Error(t, client.Create("mbox2")) }) } func TestMaxMessageLimitRespected_Append(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withIMAPLimits(testIMAPLimits()), withUIDValidityGenerator(imap.NewIncrementalUIDValidityGenerator())), func(client *client.Client, session *testSession) { require.NoError(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Foo@bar.com"), time.Now())) require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Bar@bar.com"), time.Now())) }) } func TestMaxUIDLimitRespected_Append(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withIMAPLimits(testIMAPLimits()), withUIDValidityGenerator(imap.NewIncrementalUIDValidityGenerator())), func(client *client.Client, session *testSession) { require.NoError(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Foo@bar.com"), time.Now())) _, err := client.Select("INBOX", false) require.NoError(t, err) require.NoError(t, client.Store(createSeqSet("1"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) require.NoError(t, client.Expunge(nil)) // Append should fail now as we triggered max UID validity error. require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Bar@bar.com"), time.Now())) }) } func TestMaxMessageLimitRespected_Copy(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withIMAPLimits(testIMAPLimits()), withUIDValidityGenerator(imap.NewIncrementalUIDValidityGenerator())), func(client *client.Client, session *testSession) { session.setUpdatesAllowedToFail("user", true) require.NoError(t, client.Create("mbox1")) require.NoError(t, doAppendWithClient(client, "mbox1", buildRFC5322TestLiteral("To: Foo@bar.com"), time.Now())) require.NoError(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Bar@bar.com"), time.Now())) _, err := client.Select("INBOX", false) require.NoError(t, err) require.Error(t, client.Copy(createSeqSet("1"), "mbox1")) }) } func TestMaxUIDLimitRespected_Copy(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withIMAPLimits(testIMAPLimits()), withUIDValidityGenerator(imap.NewIncrementalUIDValidityGenerator())), func(client *client.Client, session *testSession) { session.setUpdatesAllowedToFail("user", true) require.NoError(t, client.Create("mbox1")) require.NoError(t, doAppendWithClient(client, "mbox1", buildRFC5322TestLiteral("To: Foo@bar.com"), time.Now())) require.NoError(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Bar@bar.com"), time.Now())) // Delete existing message in mbox1 to trigget UID validity check _, err := client.Select("mbox1", false) require.NoError(t, err) require.NoError(t, client.Store(createSeqSet("1"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) require.NoError(t, client.Expunge(nil)) // Try to copy message to mbox _, err = client.Select("INBOX", false) require.NoError(t, err) require.Error(t, client.Copy(createSeqSet("1"), "mbox1")) }) } func TestMaxMessageLimitRespected_Move(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withIMAPLimits(testIMAPLimits()), withUIDValidityGenerator(imap.NewIncrementalUIDValidityGenerator())), func(client *client.Client, session *testSession) { session.setUpdatesAllowedToFail("user", true) require.NoError(t, client.Create("mbox1")) require.NoError(t, doAppendWithClient(client, "mbox1", buildRFC5322TestLiteral("To: Foo@bar.com"), time.Now())) require.NoError(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Bar@bar.com"), time.Now())) _, err := client.Select("INBOX", false) require.NoError(t, err) require.Error(t, client.Move(createSeqSet("1"), "mbox1")) }) } func TestMaxUIDLimitRespected_Move(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withIMAPLimits(testIMAPLimits()), withUIDValidityGenerator(imap.NewIncrementalUIDValidityGenerator())), func(client *client.Client, session *testSession) { session.setUpdatesAllowedToFail("user", true) require.NoError(t, client.Create("mbox1")) require.NoError(t, doAppendWithClient(client, "mbox1", buildRFC5322TestLiteral("To: Foo@bar.com"), time.Now())) require.NoError(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Bar@bar.com"), time.Now())) // Delete existing message in mbox1 to trigget UID validity check _, err := client.Select("mbox1", false) require.NoError(t, err) require.NoError(t, client.Store(createSeqSet("1"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) require.NoError(t, client.Expunge(nil)) // Try to copy message to mbox _, err = client.Select("INBOX", false) require.NoError(t, err) require.Error(t, client.Move(createSeqSet("1"), "mbox1")) }) } func TestMaxUIDValidityLimitRespected(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withIMAPLimits(testIMAPLimits()), withUIDValidityGenerator(imap.NewIncrementalUIDValidityGenerator())), func(client *client.Client, session *testSession) { session.setUpdatesAllowedToFail("user", true) require.NoError(t, client.Create("mbox1")) require.NoError(t, client.Delete("mbox1")) require.Error(t, client.Create("mbox2")) }) } gluon-0.17.0/tests/init_test.go000066400000000000000000000002741445200213000164100ustar00rootroot00000000000000package tests import ( "os" "github.com/sirupsen/logrus" ) func init() { if level, err := logrus.ParseLevel(os.Getenv("GLUON_LOG_LEVEL")); err == nil { logrus.SetLevel(level) } } gluon-0.17.0/tests/invalid_test.go000066400000000000000000000004071445200213000170710ustar00rootroot00000000000000package tests import ( "testing" ) func TestInvalidIMAPCommandBadTag(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { c.C("A006 RANDOMGIBBERISHTHATDOESNOTMAKEAVALIDIMAPCOMMAND").BAD("A006") }) } gluon-0.17.0/tests/list_test.go000066400000000000000000000271551445200213000164270ustar00rootroot00000000000000package tests import ( "testing" "time" "github.com/ProtonMail/gluon/imap" ) func TestList(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("A002 CREATE #news/comp/mail/mime") c.OK("A002") c.C("A003 CREATE usr/staff/jones") c.OK("A003") c.C("A004 CREATE ~/Mail/meetings") c.OK("A004") c.C("A005 CREATE ~/Mail/foo/bar") c.OK("A005") // Delete the parent, leaving the child behind. // The deleted parent will be reported with \Noselect. c.C("A005 DELETE ~/Mail/foo") c.OK("A005") // Test c.C(`A101 LIST "" ""`) c.S(`* LIST (\Noselect) "/" ""`) c.OK("A101") c.C(`A102 LIST #news/comp/mail/misc ""`) c.S(`* LIST (\Noselect) "/" "#news/"`) c.OK("A102") c.C(`A103 LIST usr/staff/jones ""`) c.S(`* LIST (\Noselect) "/" "usr/"`) c.OK("A103") c.C(`A202 LIST ~/Mail/ %`) c.S( `* LIST (\Noselect) "/" "~/Mail/foo"`, `* LIST (\Unmarked) "/" "~/Mail/meetings"`) c.OK("A202") }) } func TestListFlagsAndAttributes(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreatedCustom( "user", []string{"custom-attributes"}, defaultFlags, defaultPermanentFlags, imap.NewFlagSet(imap.AttrNoInferiors), ) c.C(`A103 LIST "" *`) c.S(`* LIST (\Unmarked) "/" "INBOX"`, `* LIST (\Noinferiors \Unmarked) "/" "custom-attributes"`) c.OK(`A103`) s.messageCreatedFromFile("user", mailboxID, "testdata/multipart-mixed.eml") c.C(`A103 LIST "" *`) c.S(`* LIST (\Unmarked) "/" "INBOX"`, `* LIST (\Marked \Noinferiors) "/" "custom-attributes"`) c.OK(`A103`) }) } func TestListRef(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { c.C(`tag create some.thing.else.entirely`).OK(`tag`) // No ref - names interpreted like SELECT c.C(`tag list "" some`).S(`* LIST (\Unmarked) "." "some"`).OK(`tag`) c.C(`tag list "" some.thing`).S(`* LIST (\Unmarked) "." "some.thing"`).OK(`tag`) c.C(`tag list "" some.thing.else`).S(`* LIST (\Unmarked) "." "some.thing.else"`).OK(`tag`) c.C(`tag list "" some.thing.else.entirely`).S(`* LIST (\Unmarked) "." "some.thing.else.entirely"`).OK(`tag`) // Level 1 ref c.C(`tag list "some." thing`).S(`* LIST (\Unmarked) "." "some.thing"`).OK(`tag`) c.C(`tag list "some." thing.else`).S(`* LIST (\Unmarked) "." "some.thing.else"`).OK(`tag`) c.C(`tag list "some." thing.else.entirely`).S(`* LIST (\Unmarked) "." "some.thing.else.entirely"`).OK(`tag`) // Level 2 ref c.C(`tag list "some.thing." else`).S(`* LIST (\Unmarked) "." "some.thing.else"`).OK(`tag`) c.C(`tag list "some.thing." else.entirely`).S(`* LIST (\Unmarked) "." "some.thing.else.entirely"`).OK(`tag`) // Level 3 ref c.C(`tag list "some.thing.else." entirely`).S(`* LIST (\Unmarked) "." "some.thing.else.entirely"`).OK(`tag`) // Empty ref c.C(`tag list "" ""`).S(`* LIST (\Noselect) "." ""`).OK(`tag`) c.C(`tag list "some" ""`).S(`* LIST (\Noselect) "." ""`).OK(`tag`) c.C(`tag list "some." ""`).S(`* LIST (\Noselect) "." "some."`).OK(`tag`) c.C(`tag list "some.thing" ""`).S(`* LIST (\Noselect) "." "some."`).OK(`tag`) c.C(`tag list "some.thing." ""`).S(`* LIST (\Noselect) "." "some."`).OK(`tag`) c.C(`tag list "some.thing.else" ""`).S(`* LIST (\Noselect) "." "some."`).OK(`tag`) c.C(`tag list "some.thing.else." ""`).S(`* LIST (\Noselect) "." "some."`).OK(`tag`) c.C(`tag list "some.thing.else.entirely" ""`).S(`* LIST (\Noselect) "." "some."`).OK(`tag`) c.C(`tag list "some.thing.else.entirely." ""`).S(`* LIST (\Noselect) "." "some."`).OK(`tag`) }) } func TestListInbox(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { c.C(`tag create other`).OK(`tag`) c.C(`tag create inboxx`).OK(`tag`) c.C(`tag create inbox.child`).OK(`tag`) // Inbox is matched case-insensitively. c.C(`tag list "" "inbox"`).S(`* LIST (\Unmarked) "." "INBOX"`).OK(`tag`) c.C(`tag list "" "INBOX"`).S(`* LIST (\Unmarked) "." "INBOX"`).OK(`tag`) c.C(`tag list "" "iNbOx"`).S(`* LIST (\Unmarked) "." "INBOX"`).OK(`tag`) // Inbox is matched case-insensitively even when it's just part of a path. c.C(`tag list "" "inbox.child"`).S(`* LIST (\Unmarked) "." "INBOX.child"`).OK(`tag`) c.C(`tag list "" "INBOX.child"`).S(`* LIST (\Unmarked) "." "INBOX.child"`).OK(`tag`) c.C(`tag list "" "iNbOx.child"`).S(`* LIST (\Unmarked) "." "INBOX.child"`).OK(`tag`) // Inbox is matched case-insensitively when it's split over ref and pattern. c.C(`tag list "inb" "ox"`).S(`* LIST (\Unmarked) "." "INBOX"`).OK(`tag`) c.C(`tag list "INB" "ox"`).S(`* LIST (\Unmarked) "." "INBOX"`).OK(`tag`) c.C(`tag list "inb" "OX"`).S(`* LIST (\Unmarked) "." "INBOX"`).OK(`tag`) c.C(`tag list "INB" "OX"`).S(`* LIST (\Unmarked) "." "INBOX"`).OK(`tag`) // Other mailboxes are matched case-sensitively. c.C(`tag list "" "other"`).S(`* LIST (\Unmarked) "." "other"`).OK(`tag`) c.C(`tag list "" "OTHER"`).Sx(`OK`) c.C(`tag list "" "oThEr"`).Sx(`OK`) // Other mailboxes are matched case-sensitively. c.C(`tag list "" "inboxx"`).S(`* LIST (\Unmarked) "." "inboxx"`).OK(`tag`) c.C(`tag list "" "INBOXX"`).Sx(`OK`) c.C(`tag list "" "iNbOxX"`).Sx(`OK`) }) } func TestListRemoved(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { c.C(`tag create blurdybloop`).OK(`tag`) c.C(`tag create foo.bar`).OK(`tag`) c.C(`tag list "" "*"`).S( `* LIST (\Unmarked) "." "foo"`, `* LIST (\Unmarked) "." "foo.bar"`, `* LIST (\Unmarked) "." "blurdybloop"`, `* LIST (\Unmarked) "." "INBOX"`, ).OK(`tag`) c.C(`tag delete blurdybloop`).OK(`tag`) c.C(`tag delete foo`).OK(`tag`) c.C(`tag list "" "*"`).S( `* LIST (\Noselect) "." "foo"`, `* LIST (\Unmarked) "." "foo.bar"`, `* LIST (\Unmarked) "." "INBOX"`, ).OK(`tag`) c.C(`tag list "" "%"`).S( `* LIST (\Noselect) "." "foo"`, `* LIST (\Unmarked) "." "INBOX"`, ).OK(`tag`) }) } func TestListPanic(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { s.mailboxCreated("user", []string{"no-parent", "just-child"}) c.C(`S001 list "" "*"`) c.S( `* LIST (\Unmarked) "." "INBOX"`, `* LIST (\Noselect) "." "no-parent"`, `* LIST (\Unmarked) "." "no-parent.just-child"`, ) c.OK(`S001`) c.C(`P001 list "" "%"`) c.S( `* LIST (\Unmarked) "." "INBOX"`, `* LIST (\Noselect) "." "no-parent"`, ) c.OK(`P001`) }) } func TestListWildcards(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { c.C(`tag create some.thing.else.entirely`).OK(`tag`) c.C(`tag delete some`).OK(`tag`) c.C(`tag list "" "*"`) c.S( `* LIST (\Unmarked) "." "INBOX"`, `* LIST (\Noselect) "." "some"`, `* LIST (\Unmarked) "." "some.thing"`, `* LIST (\Unmarked) "." "some.thing.else"`, `* LIST (\Unmarked) "." "some.thing.else.entirely"`, ) c.OK(`tag`) c.C(`tag list "" "%"`) c.S( `* LIST (\Unmarked) "." "INBOX"`, `* LIST (\Noselect) "." "some"`, ) c.OK(`tag`) c.C(`tag list "some.thing" "*"`) c.S( `* LIST (\Unmarked) "." "some.thing"`, `* LIST (\Unmarked) "." "some.thing.else"`, `* LIST (\Unmarked) "." "some.thing.else.entirely"`, ) c.OK(`tag`) c.C(`tag list "some.thing" "%"`) c.S(`* LIST (\Unmarked) "." "some.thing"`) c.OK(`tag`) c.C(`tag list "some.thing." "*"`) c.S( `* LIST (\Unmarked) "." "some.thing.else"`, `* LIST (\Unmarked) "." "some.thing.else.entirely"`, ) c.OK(`tag`) c.C(`tag list "some.thing." "%"`) c.S(`* LIST (\Unmarked) "." "some.thing.else"`) c.OK(`tag`) }) } func TestListSpecialUseAttributes(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { s.mailboxCreatedWithAttributes("user", []string{"Koncepty"}, imap.NewFlagSet(imap.AttrDrafts)) s.mailboxCreatedWithAttributes("user", []string{"Odeslane"}, imap.NewFlagSet(imap.AttrSent)) s.mailboxCreatedWithAttributes("user", []string{"S hvezdickou"}, imap.NewFlagSet(imap.AttrFlagged)) s.mailboxCreatedWithAttributes("user", []string{"Archiv"}, imap.NewFlagSet(imap.AttrArchive)) s.mailboxCreatedWithAttributes("user", []string{"Spam"}, imap.NewFlagSet(imap.AttrJunk)) s.mailboxCreatedWithAttributes("user", []string{"Kos"}, imap.NewFlagSet(imap.AttrTrash)) s.mailboxCreatedWithAttributes("user", []string{"Vsechny zpravy"}, imap.NewFlagSet(imap.AttrAll)) c.C(`a list "" "*"`) c.S( `* LIST (\Unmarked) "." "INBOX"`, `* LIST (\Drafts \Unmarked) "." "Koncepty"`, `* LIST (\Sent \Unmarked) "." "Odeslane"`, `* LIST (\Flagged \Unmarked) "." "S hvezdickou"`, `* LIST (\Archive \Unmarked) "." "Archiv"`, `* LIST (\Junk \Unmarked) "." "Spam"`, `* LIST (\Trash \Unmarked) "." "Kos"`, `* LIST (\All \Unmarked) "." "Vsechny zpravy"`, ) c.OK(`a`) }) } func TestListNilDelimiter(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter("")), func(c *testConnection, s *testSession) { s.mailboxCreated("user", []string{"Folders/Custom"}) c.C(`a list "" "*"`) c.S( `* LIST (\Unmarked) NIL "INBOX"`, `* LIST (\Unmarked) NIL "Folders/Custom"`, ) c.OK(`a`) }) } func TestListHiddenMailbox(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { m1 := s.mailboxCreatedWithAttributes("user", []string{"Koncepty"}, imap.NewFlagSet()) s.mailboxCreatedWithAttributes("user", []string{"Odeslane"}, imap.NewFlagSet()) m2 := s.mailboxCreatedWithAttributes("user", []string{"S hvezdickou"}, imap.NewFlagSet()) s.mailboxCreatedWithAttributes("user", []string{"Archiv"}, imap.NewFlagSet()) m3 := s.mailboxCreatedWithAttributes("user", []string{"Spam"}, imap.NewFlagSet()) s.mailboxCreatedWithAttributes("user", []string{"Kos"}, imap.NewFlagSet()) m4 := s.mailboxCreatedWithAttributes("user", []string{"Vsechny zpravy"}, imap.NewFlagSet()) m5 := s.mailboxCreatedWithAttributes("user", []string{"HiddenIfEmpty1"}, imap.NewFlagSet()) m6 := s.mailboxCreatedWithAttributes("user", []string{"HiddenIfEmpty2"}, imap.NewFlagSet()) msg1 := s.messageCreatedWithMailboxes("user", []imap.MailboxID{m5}, []byte("To: no-reply@pm.me"), time.Now()) { connector := s.conns[s.userIDs["user"]] connector.SetMailboxVisibility(m1, imap.Hidden) connector.SetMailboxVisibility(m2, imap.Hidden) connector.SetMailboxVisibility(m3, imap.Hidden) connector.SetMailboxVisibility(m4, imap.Hidden) connector.SetMailboxVisibility(m5, imap.HiddenIfEmpty) connector.SetMailboxVisibility(m6, imap.HiddenIfEmpty) } c.C(`a list "" "*"`) c.S( `* LIST (\Unmarked) "." "INBOX"`, `* LIST (\Unmarked) "." "Odeslane"`, `* LIST (\Unmarked) "." "Archiv"`, `* LIST (\Unmarked) "." "Kos"`, `* LIST (\Marked) "." "HiddenIfEmpty1"`, ) c.OK(`a`) s.messageRemoved("user", msg1, m5) s.messageAdded("user", msg1, m6) c.C(`a list "" "*"`) c.S( `* LIST (\Unmarked) "." "INBOX"`, `* LIST (\Unmarked) "." "Odeslane"`, `* LIST (\Unmarked) "." "Archiv"`, `* LIST (\Unmarked) "." "Kos"`, `* LIST (\Marked) "." "HiddenIfEmpty2"`, ) c.OK(`a`) }) } func TestListWithUtf8MailboxNames(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { s.mailboxCreated("user", []string{"mbox-öüäëæøå"}) s.flush("user") c.C(`a list "" "*"`) c.S( `* LIST (\Unmarked) "." "INBOX"`, `* LIST (\Unmarked) "." "mbox-&APYA,ADkAOsA5gD4AOU-"`, ) c.OK(`a`) }) } gluon-0.17.0/tests/login_test.go000066400000000000000000000113771445200213000165630ustar00rootroot00000000000000package tests import ( "fmt" "testing" "time" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/events" "github.com/stretchr/testify/require" ) func TestLoginSuccess(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("A001 login user pass").OK("A001") }) } func TestLoginQuoted(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C(`A001 login "user" "pass"`).OK("A001") }) } func TestLoginLiteral(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C(`A001 login {4}`) c.S(`+ Ready`) c.C(`user {4}`) c.S(`+ Ready`) c.C(`pass`) c.OK(`A001`) }) } func TestLoginMultiple(t *testing.T) { runTest(t, defaultServerOptions(t, withCredentials([]credentials{ {usernames: []string{"user1"}, password: "pass1"}, {usernames: []string{"user2"}, password: "pass2"}, })), []int{1, 2}, func(c map[int]*testConnection, _ *testSession) { // Login as the first user. c[1].C("A001 login user1 pass1").OK("A001") // Logout the first user. c[1].C("A002 logout").OK("A002") // Login as the second user. c[2].C("B001 login user2 pass2").OK("B001") // Logout the second user. c[2].C("B002 logout").OK("B002") }) } func TestLoginAlias(t *testing.T) { runTest(t, defaultServerOptions(t, withCredentials([]credentials{{ usernames: []string{"alias1", "alias2"}, password: "pass", }})), []int{1, 2}, func(c map[int]*testConnection, _ *testSession) { // Login as each alias. c[1].C("tag1 login alias1 pass").OK("tag1") c[2].C("tag2 login alias2 pass").OK("tag2") // Create a message with each alias. literal1 := buildRFC5322TestLiteral("To: 1@pm.me") literal2 := buildRFC5322TestLiteral("To: 2@pm.me") literalLen := len(literal2) c[1].C(fmt.Sprintf("tag3 append inbox {%v}\r\n%v", literalLen, literal1)).OK("tag3") c[1].C(fmt.Sprintf("tag4 append inbox {%v}\r\n%v", literalLen, literal1)).OK("tag4") // Both messages should be visible to both clients. c[1].C("tag5 status inbox (messages)").Sx("MESSAGES 2").OK("tag5") c[2].C("tag6 status inbox (messages)").Sx("MESSAGES 2").OK("tag6") }) } func TestLoginFailure(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("A001 login baduser badpass").NO("A001") }) } func TestLoginLiteralFailure(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C(`A001 login {7}`) c.S(`+ Ready`) c.C(`baduser {7}`) c.S(`+ Ready`) c.C(`badpass`) c.NO(`A001`) }) } func TestLoginCapabilities(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("A001 login user pass") c.S(`A001 OK [CAPABILITY ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT] Logged in`) }) } func TestLoginTooManyAttemps(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { // 3 attempts. c.C("A001 login user badpass").NO("A001") c.C("A001 login user badpass").NO("A001") c.C("A001 login user badpass").NO("A001") // The client should be jailed for 1 sec. require.Greater(t, timeFunc(func() { c.C("A001 login user badpass").NO("A001") }), time.Second) // After unjailed, get direct answer. require.Less(t, timeFunc(func() { c.C("A001 login user pass").OK("A001") }), time.Second) }) } func TestLoginTooManyAttemptsMany(t *testing.T) { runManyToOneTest(t, defaultServerOptions(t), []int{1, 2, 3}, func(c map[int]*testConnection, s *testSession) { // 3 attempts. c[1].C("A001 login user badpass").NO("A001") c[2].C("A002 login user badpass").NO("A002") c[3].C("A003 login user badpass").NO("A003") wg := async.MakeWaitGroup(async.NoopPanicHandler{}) // All clients should be jailed for 1 sec. for _, i := range []int{1, 2, 3} { i := i wg.Go(func() { require.Greater(t, timeFunc(func() { c[i].C("A001 login user badpass").NO("A001") }), time.Second) }) } wg.Wait() }) } func TestLoginEvents(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { require.IsType(t, events.UserAdded{}, <-s.eventCh) require.IsType(t, events.ListenerAdded{}, <-s.eventCh) require.IsType(t, events.SessionAdded{}, <-s.eventCh) c.C("A001 login baduser badpass").NO("A001") failedEvent, ok := (<-s.eventCh).(events.LoginFailed) require.True(t, ok) require.Equal(t, failedEvent.Username, "baduser") c.C("A002 login user pass").OK("A002") loginEvent, ok := (<-s.eventCh).(events.Login) require.True(t, ok) require.Equal(t, loginEvent.UserID, s.userIDs["user"]) }) } func timeFunc(fn func()) time.Duration { start := time.Now() fn() return time.Since(start) } gluon-0.17.0/tests/logout_test.go000066400000000000000000000003511445200213000167520ustar00rootroot00000000000000package tests import ( "testing" ) func TestLogout(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("a001 logout") c.S("* BYE") c.OK("a001") c.expectClosed() }) } gluon-0.17.0/tests/lsub_test.go000066400000000000000000000114301445200213000164060ustar00rootroot00000000000000package tests import ( "testing" "github.com/ProtonMail/gluon/imap" ) func TestLsub(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, _ *testSession) { c.C("tag CREATE foo.bar").OK(`tag`) c.C(`tag UNSUBSCRIBE foo`).OK(`tag`) c.C(`S001 LSUB "" "*"`) c.S( `* LSUB (\Unmarked) "." "INBOX"`, `* LSUB (\Unmarked) "." "foo.bar"`, ) c.S("S001 OK LSUB") c.C(`P001 LSUB "" "%"`) c.S( `* LSUB (\Unmarked) "." "INBOX"`, `* LSUB (\Noselect) "." "foo"`, ) c.S("P001 OK LSUB") c.C(`tag DELETE foo`).OK(`tag`) c.C(`S101 LSUB "" "*"`) c.S( `* LSUB (\Unmarked) "." "INBOX"`, `* LSUB (\Unmarked) "." "foo.bar"`, ) c.S("S101 OK LSUB") c.C(`P101 LSUB "" "%"`) c.S( `* LSUB (\Unmarked) "." "INBOX"`, `* LSUB (\Noselect) "." "foo"`, ) c.S("P101 OK LSUB") c.C("tag CREATE #news.comp.mail.mime").OK("tag") c.C(`tag UNSUBSCRIBE "#news.comp.mail.mime"`).OK("tag") c.C("tag CREATE #news.comp.mail.misc").OK("tag") c.C(`tag UNSUBSCRIBE "#news.comp.mail.misc"`).OK("tag") c.C(`S002 LSUB "#news." "comp.mail.*"`) c.S("S002 OK LSUB") c.C(`P002 LSUB "#news." "comp.mail.%"`) c.S("P002 OK LSUB") c.C(`tag SUBSCRIBE "#news.comp.mail.mime"`).OK("tag") c.C(`S003 LSUB "#news." "comp.mail.*"`) c.S(`* LSUB (\Unmarked) "." "#news.comp.mail.mime"`) c.S("S003 OK LSUB") c.C(`P003 LSUB "#news." "comp.mail.%"`) c.S(`* LSUB (\Unmarked) "." "#news.comp.mail.mime"`) c.S("P003 OK LSUB") c.C(`tag SUBSCRIBE "#news.comp.mail.misc"`).OK("tag") c.C(`S004 LSUB "#news." "comp.mail.*"`) c.S( `* LSUB (\Unmarked) "." "#news.comp.mail.mime"`, `* LSUB (\Unmarked) "." "#news.comp.mail.misc"`, ) c.OK(`S004`) c.C(`P004 LSUB "#news." "comp.mail.%"`) c.S( `* LSUB (\Unmarked) "." "#news.comp.mail.mime"`, `* LSUB (\Unmarked) "." "#news.comp.mail.misc"`, ) c.OK(`P004`) c.C(`S005 LSUB "#news." "comp.*"`) c.S( `* LSUB (\Unmarked) "." "#news.comp.mail"`, `* LSUB (\Unmarked) "." "#news.comp.mail.mime"`, `* LSUB (\Unmarked) "." "#news.comp.mail.misc"`, ) c.OK(`S005`) c.C(`P005 LSUB "#news." "comp.%"`) c.S(`* LSUB (\Unmarked) "." "#news.comp.mail"`) c.OK(`P005`) }) } func TestLsubPanic(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { s.mailboxCreated("user", []string{"no-parent", "just-child"}) c.C(`S001 LSUB "" "*"`) c.S( `* LSUB (\Unmarked) "." "INBOX"`, `* LSUB (\Unmarked) "." "no-parent.just-child"`, ) c.OK(`S001`) c.C(`P001 LSUB "" "%"`) c.S( `* LSUB (\Unmarked) "." "INBOX"`, `* LSUB (\Noselect) "." "no-parent"`, ) c.OK(`P001`) }) } func TestLsubSubscribedNotExisting(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, _ *testSession) { c.C("tag CREATE foo").OK(`tag`) c.C(`A001 LSUB "" "foo"`) c.S(`* LSUB (\Unmarked) "." "foo"`) c.OK(`A001`) c.C(`tag DELETE foo`).OK(`tag`) c.C(`A002 LSUB "" "foo"`) c.S(`* LSUB (\Noselect) "." "foo"`) c.OK(`A002`) }) } func TestLsubWithHiddenMailbox(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { m1 := s.mailboxCreatedWithAttributes("user", []string{"Koncepty"}, imap.NewFlagSet()) s.mailboxCreatedWithAttributes("user", []string{"Odeslane"}, imap.NewFlagSet()) m2 := s.mailboxCreatedWithAttributes("user", []string{"S hvezdickou"}, imap.NewFlagSet()) s.mailboxCreatedWithAttributes("user", []string{"Archiv"}, imap.NewFlagSet()) m3 := s.mailboxCreatedWithAttributes("user", []string{"Spam"}, imap.NewFlagSet()) s.mailboxCreatedWithAttributes("user", []string{"Kos"}, imap.NewFlagSet()) m4 := s.mailboxCreatedWithAttributes("user", []string{"Vsechny zpravy"}, imap.NewFlagSet()) { connector := s.conns[s.userIDs["user"]] connector.SetMailboxVisibility(m1, imap.Hidden) connector.SetMailboxVisibility(m2, imap.Hidden) connector.SetMailboxVisibility(m3, imap.Hidden) connector.SetMailboxVisibility(m4, imap.HiddenIfEmpty) } { c.C("A001 UNSUBSCRIBE Koncepty").OK("A001") c.C("A001 UNSUBSCRIBE \"Vsechny zpravy\"").OK("A001") c.C("A001 UNSUBSCRIBE Archiv").OK("A001") c.C("A001 UNSUBSCRIBE Kos").OK("A001") } c.C(`a LSUB "" "*"`) c.S( `* LSUB (\Unmarked) "." "INBOX"`, `* LSUB (\Unmarked) "." "Odeslane"`, ) c.OK(`a`) }) } func TestLSubWithUtf8MailboxNames(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { s.mailboxCreated("user", []string{"mbox-öüäëæøå"}) s.flush("user") c.C(`a LSUB "" "*"`) c.S( `* LSUB (\Unmarked) "." "INBOX"`, `* LSUB (\Unmarked) "." "mbox-&APYA,ADkAOsA5gD4AOU-"`, ) c.OK(`a`) }) } gluon-0.17.0/tests/main_test.go000066400000000000000000000002171445200213000163660ustar00rootroot00000000000000package tests import ( "testing" "go.uber.org/goleak" ) func TestMain(m *testing.M) { goleak.VerifyTestMain(m, goleak.IgnoreCurrent()) } gluon-0.17.0/tests/migration_test.go000066400000000000000000000010511445200213000174300ustar00rootroot00000000000000package tests import ( "context" "github.com/ProtonMail/gluon/internal/db_impl" "github.com/stretchr/testify/require" "testing" ) func TestFailedMigrationRestsDatabase(t *testing.T) { dbDir := t.TempDir() serverOptions := defaultServerOptions(t, withDatabaseDir(dbDir)) var userID string runServer(t, serverOptions, func(session *testSession) { userID = session.userIDs["user"] }) require.NoError(t, db_impl.TestUpdateDBVersion(context.Background(), dbDir, userID, 99999)) runServer(t, serverOptions, func(session *testSession) {}) } gluon-0.17.0/tests/move_test.go000066400000000000000000000320151445200213000164110ustar00rootroot00000000000000package tests import ( "context" "fmt" "testing" "time" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/imap" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestMove(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t, withUIDValidityGenerator(imap.NewFixedUIDValidityGenerator(imap.UID(1)))), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // There are 100 messages in the origin and no messages in the destination. c.Cf(`A001 status %v (messages)`, mbox).Sxe(`MESSAGES 100`).OK(`A001`) c.C(`A002 status inbox (messages)`).Sxe(`MESSAGES 0`).OK(`A002`) // Move half the messages to the destination. c.C(`A003 move 1:50 inbox`) c.Sx(`OK \[COPYUID 1 1:50 1:50\]`) c.Sx(repeat(`\d EXPUNGE`, 50)...) c.OK(`A003`) // There are now 50 messages in the origin and 50 messages in the destination. c.Cf(`A004 status %v (messages)`, mbox).Sxe(`MESSAGES 50`).OK(`A004`) c.C(`A005 status inbox (messages)`).Sxe(`MESSAGES 50`).OK(`A005`) // Move the other half the messages to the destination (this time using UID MOVE). c.C(`A006 uid move 51:100 inbox`) c.Sx(`OK \[COPYUID 1 51:100 51:100\]`) c.Sx(repeat(`\d EXPUNGE`, 50)...) c.OK(`A006`) // There are now no messages in the origin and 100 messages in the destination. c.Cf(`A007 status %v (messages)`, mbox).Sxe(`MESSAGES 0`).OK(`A007`) c.C(`A008 status inbox (messages)`).Sxe(`MESSAGES 100`).OK(`A008`) }) } func TestMoveTryCreate(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // There are 100 messages in the origin. c.Cf(`A001 status %v (messages)`, mbox).Sxe(`MESSAGES 100`).OK(`A001`) // MOVE to a nonexistent destination. c.C(`A002 move 1:* this-name-does-not-exist`) c.Sx(`A002 NO \[TRYCREATE\]`) // UID MOVE to a nonexistent destination. c.C(`A002 uid move 1:* this-name-does-not-exist`) c.Sx(`A002 NO \[TRYCREATE\]`) }) } func TestMoveNonExistent(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t, withUIDValidityGenerator(imap.NewFixedUIDValidityGenerator(imap.UID(1)))), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // MOVE some of the messages out of the mailbox. c.C(`A001 move 1:24,76:100 inbox`).OK(`A001`) // Attempting to MOVE nonexistent messages by sequence number returns BAD. c.C(`A002 move 51:100 inbox`).BAD(`A002`) // Attempting to UID MOVE nonexistent messages with UIDs lower than the smallest in the mailbox returns OK. c.C(`A003 uid move 1:24 inbox`) // Nothing should be returned c.Sx(`A003 OK .*`) // Attempting to UID MOVE nonexistent messages with UIDs higher than the largest in the mailbox returns OK. c.C(`A004 uid move 76:100 inbox`) // Nothing should be returned c.Sx(`A004 OK .*`) c.C(`A005 uid move 24:26 inbox`) c.S("* OK [COPYUID 1 25:26 50:51]") c.OK(`A005`) }) } func TestMoveBackAndForth(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // There are 100 messages in the origin and no messages in the destination. c.Cf(`A001 status %v (messages)`, mbox).Sxe(`MESSAGES 100`).OK(`A001`) c.C(`A002 status inbox (messages)`).Sxe(`MESSAGES 0`).OK(`A002`) // Move the messages to the destination. c.C(`A003 move 1:* inbox`).OK(`A003`) s.flush("user") // There are now 100 messages in the destination, none in the origin. c.Cf(`A004 status %v (messages)`, mbox).Sxe(`MESSAGES 0`).OK(`A004`) c.C(`A005 status inbox (messages)`).Sxe(`MESSAGES 100`).OK(`A005`) // Move the messages back to the origin. c.C(`A006 select inbox`).OK(`A006`) c.Cf(`A007 uid move 1:* %v`, mbox).OK(`A007`) s.flush("user") // There are 100 messages in the origin and no messages in the destination. c.Cf(`A008 status %v (messages)`, mbox).Sxe(`MESSAGES 100`).OK(`A008`) c.C(`A009 status inbox (messages)`).Sxe(`MESSAGES 0`).OK(`A009`) }) } func TestMoveCopyDuplicates(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { // 4 messages in inbox. c.doAppend("inbox", buildRFC5322TestLiteral("To: 1@pm.me")).expect("OK") c.doAppend("inbox", buildRFC5322TestLiteral("To: 2@pm.me")).expect("OK") c.doAppend("inbox", buildRFC5322TestLiteral("To: 3@pm.me")).expect("OK") c.doAppend("inbox", buildRFC5322TestLiteral("To: 4@pm.me")).expect("OK") // Create other mailbox. c.C("tag create other").OK("tag") // Move all from inbox to other (inbox: 0, other: 4) c.C("tag select inbox").OK("tag") c.C("tag move 1:* other").OK("tag") c.C("tag status inbox (messages)").Sxe("MESSAGES 0").OK("tag") c.C("tag status other (messages)").Sxe("MESSAGES 4").OK("tag") // Move all from other to other (inbox: 0, other: 4) c.C("tag select other").OK("tag") c.C("tag move 1:* other").OK("tag") c.C("tag status inbox (messages)").Sxe("MESSAGES 0").OK("tag") c.C("tag status other (messages)").Sxe("MESSAGES 4").OK("tag") // Copy all from other to other (inbox: 0, other: 4) c.C("tag copy 1:* other").OK("tag") c.C("tag status inbox (messages)").Sxe("MESSAGES 0").OK("tag") c.C("tag status other (messages)").Sxe("MESSAGES 4").OK("tag") // Copy first half from other to inbox (inbox: 2, other: 4) c.C("tag copy 1:2 inbox").OK("tag") c.C("tag status inbox (messages)").Sxe("MESSAGES 2").OK("tag") c.C("tag status other (messages)").Sxe("MESSAGES 4").OK("tag") // Move second half from other to inbox (inbox: 4, other: 2) c.C("tag move 3:4 inbox").OK("tag") c.C("tag status inbox (messages)").Sx("MESSAGES 4").OK("tag") c.C("tag status other (messages)").Sx("MESSAGES 2").OK("tag") // Move first half from other to inbox (inbox: 4, other: 0) c.C("tag move 1:2 inbox").OK("tag") c.C("tag status inbox (messages)").Sx("MESSAGES 4").OK("tag") c.C("tag status other (messages)").Sx("MESSAGES 0").OK("tag") }) } func TestMoveDuplicate(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t, withIdleBulkTime(0), withUIDValidityGenerator(imap.NewFixedUIDValidityGenerator(imap.UID(1)))), []int{1, 2, 3}, func(c map[int]*testConnection, s *testSession) { origID := s.mailboxCreated("user", []string{"orig"}) destID := s.mailboxCreated("user", []string{"dest"}) // Put three messages in the origin. for idx := 1; idx <= 3; idx++ { s.messageCreatedFromFile("user", origID, "testdata/text-plain.eml", imap.FlagSeen) } // Put three messages in the destination. for idx := 1; idx <= 3; idx++ { s.messageCreatedFromFile("user", destID, "testdata/text-plain.eml", imap.FlagSeen) } // Initially there are three messages in the origin. c[1].C(`A001 select orig`).OK(`A001`) c[3].C(`C001 status orig (messages)`).Sxe(`MESSAGES 3`).OK(`C001`) // Initially there are three messages in the destination. c[2].C(`B001 select dest`).OK(`B001`) c[3].C(`C002 status dest (messages)`).Sxe(`MESSAGES 3`).OK(`C002`) c[2].C(`B002 idle`).S("+ Ready") // Copy three messages into the destination. // They receive UIDs 4:6 in the destination. // Expect to receive exists updates for them. // The destination should then contain 6 messages. c[1].C(`A002 copy 1:3 dest`).OK(`A002`, `COPYUID 1 1:3 4:6`) c[2].Se(`* 6 EXISTS`) c[3].C(`C003 status dest (messages)`).Sxe(`MESSAGES 6`).OK(`C003`) // The origin still has three messages. c[3].C(`C004 status orig (messages)`).Sxe(`MESSAGES 3`).OK(`C004`) // Copy the same three messages into the destination. // The existing messages are removed and the new ones are added afterwards. // They receive UIDs 7:9 in the destination. // The destination should still contains six messages. c[1].C(`A002 copy 1:3 dest`).OK(`A002`, `COPYUID 1 1:3 7:9`) c[3].C(`C003 status dest (messages)`).Sxe(`MESSAGES 6`).OK(`C003`) // The origin still has three messages. c[3].C(`C004 status orig (messages)`).Sxe(`MESSAGES 3`).OK(`C004`) // Move the same three messages to the destination. // The existing messages are removed and the new ones are added afterwards. // They receive UIDs 10:12 in the destination. // The destination should still contains six messages. c[1].C(`A003 move 1:3 dest`).Sxe(`COPYUID 1 1:3 10:12`).OK(`A003`) c[3].C(`C003 status dest (messages)`).Sxe(`MESSAGES 6`).OK(`C003`) // The origin now is now empty. c[3].C(`C004 status orig (messages)`).Sxe(`MESSAGES 0`).OK(`C004`) // Finish idle. c[2].C(`DONE`).OK(`B002`) }) } func TestConcurrency(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`tag create archive`).OK(`tag`) for i := 0; i < 100; i++ { c.Cf(`tag status %v (messages)`, mbox).Sx(fmt.Sprintf(`MESSAGES %v`, 100-i)).OK(`tag`) c.Cf(`tag uid move %v archive`, 1+i).Sxe(`1 EXPUNGE`).OK(`tag`) } }) } // disableRemoveFromMailboxConnector fails the first append and panics if move or remove takes place on the // connector. type simulateLabelConnector struct { *connector.Dummy mboxID imap.MailboxID } func (r *simulateLabelConnector) CreateMailbox(ctx context.Context, name []string) (imap.Mailbox, error) { mbox, err := r.Dummy.CreateMailbox(ctx, name) if err != nil { return mbox, err } if len(r.mboxID) == 0 { r.mboxID = mbox.ID } return mbox, nil } func (r *simulateLabelConnector) MoveMessages( ctx context.Context, ids []imap.MessageID, from imap.MailboxID, to imap.MailboxID, ) (bool, error) { if _, err := r.Dummy.MoveMessages(ctx, ids, from, to); err != nil { return false, err } return to != r.mboxID, nil } type simulateLabelConnectorBuilder struct{} func (simulateLabelConnectorBuilder) New(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) Connector { return &simulateLabelConnector{ Dummy: connector.NewDummy(usernames, password, period, flags, permFlags, attrs), } } func TestMoveLabelBehavior(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&simulateLabelConnectorBuilder{})), func(client *client.Client, _ *testSession) { require.NoError(t, doAppendWithClient(client, "inbox", buildRFC5322TestLiteral("To: Foo@foo.com"), time.Now())) require.NoError(t, doAppendWithClient(client, "inbox", buildRFC5322TestLiteral("To: Bar@foo.com"), time.Now())) require.NoError(t, doAppendWithClient(client, "inbox", buildRFC5322TestLiteral("To: Z@foo.com"), time.Now())) require.NoError(t, client.Create("mylabel")) // Move message to label { status, err := client.Select("INBOX", false) require.NoError(t, err) require.Equal(t, uint32(3), status.Messages) // Move one message to label require.NoError(t, client.Move(createSeqSet("1"), "mylabel")) // Inbox should have 3 messages status, err = client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(3), status.Messages) // Check all messages are still present newFetchCommand(t, client).withItems("ENVELOPE").fetch("1:3"). forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.skipDateTime() builder.skipFromAndSender() builder.wantTo("Foo@foo.com") }) }). forSeqNum(2, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.skipDateTime() builder.skipFromAndSender() builder.wantTo("Bar@foo.com") }) }). forSeqNum(3, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.skipDateTime() builder.skipFromAndSender() builder.wantTo("Z@foo.com") }) }). checkAndRequireMessageCount(3) // Label should have 1 message status, err = client.Status("mylabel", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) } // Move message to inbox from label { status, err := client.Select("mylabel", false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) // Check it has the right message newFetchCommand(t, client).withItems("ENVELOPE").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantEnvelope(func(builder *envelopeValidatorBuilder) { builder.skipDateTime() builder.skipFromAndSender() builder.wantTo("Foo@foo.com") }) }).checkAndRequireMessageCount(1) // Move one message to label require.NoError(t, client.Move(createSeqSet("1"), "INBOX")) // Inbox should have 3 messages status, err = client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(3), status.Messages) // Label should have 1 message status, err = client.Status("mylabel", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) } }) } gluon-0.17.0/tests/multi_test.go000066400000000000000000000170031445200213000165750ustar00rootroot00000000000000package tests import ( "testing" ) func TestCreateMulti(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, _ *testSession) { c[1].C("A003 CREATE owatagusiam") c[1].OK("A003") c[2].C("A003 CREATE owatagusiam") c[2].S("A003 NO a mailbox with that name already exists") }) } func TestExistsUpdates(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, _ *testSession) { // First client selects in INBOX to receive EXISTS update. c[1].C("A006 select INBOX") c[1].Se("A006 OK [READ-WRITE] SELECT") // Second client appends to INBOX to generate EXISTS update. c[2].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") // First client receives the EXISTS update. Apply RECENT update is also received. c[1].C("b001 noop") c[1].S(`* 1 EXISTS`) c[1].S(`* 1 RECENT`) c[1].OK("b001") }) } func TestExistsUpdatesInSeparateMailboxes(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, _ *testSession) { c[1].C("A003 CREATE owatagusiam") c[1].S("A003 OK CREATE") // First client selects in owatagusiam to ignore EXISTS updates from INBOX. c[1].C("A006 select owatagusiam") c[1].Se("A006 OK [READ-WRITE] SELECT") // Second client appends to INBOX to generate EXISTS update. c[2].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") // First client does not receive the EXISTS update from INBOX. c[1].C("b001 noop") c[1].OK("b001") }) } func TestFetchUpdates(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") // First client selects in INBOX to receive FETCH update. c[1].C("A006 select INBOX") c[1].Se("A006 OK [READ-WRITE] SELECT") s.flush("user") // Second client selects in INBOX and then sets some flags to generate a FETCH update. c[2].C("b006 select INBOX") c[2].Se("b006 OK [READ-WRITE] SELECT") c[2].C(`B007 STORE 1 +FLAGS (\Deleted)`) c[2].S(`* 1 FETCH (FLAGS (\Deleted \Seen))`) c[2].Sx("B007 OK .*") s.flush("user") // First client receives the FETCH update. c[1].C("c001 noop") c[1].S(`* 1 FETCH (FLAGS (\Deleted \Recent \Seen))`) c[1].OK("c001") }) } func TestExpungeUpdates(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, _ *testSession) { // Generate three messages, the first two unseen, the third seen. c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") // Both clients select in inbox. c[1].C("A006 select INBOX") c[1].Se("A006 OK [READ-WRITE] SELECT") c[2].C("A007 select INBOX") c[2].Se("A007 OK [READ-WRITE] SELECT") // For both clients, the message with sequence number 3 is seen. c[1].C(`A005 FETCH 3 (FLAGS UID)`) c[1].S(`* 3 FETCH (FLAGS (\Recent \Seen) UID 3)`) c[1].OK(`A005`) c[2].C(`B005 FETCH 3 (FLAGS UID)`) c[2].S(`* 3 FETCH (FLAGS (\Seen) UID 3)`) c[2].OK(`B005`) // First client marks the first message as deleted. c[1].C(`B003 STORE 1 +FLAGS (\Deleted)`) c[1].S(`* 1 FETCH (FLAGS (\Deleted \Recent))`) c[1].OK("B003") // Second client sees the flag has been changed. c[2].C("c001 noop") c[2].S(`* 1 FETCH (FLAGS (\Deleted))`) c[2].OK("c001") // First client expunges the first message (seq numbers are shifted down by 1). c[1].C(`B202 EXPUNGE`) c[1].S(`* 1 EXPUNGE`) c[1].OK("B202") // Second client doesn't yet know that the messages were expunged // and it still thinks the seen message has seq 3 / uid 2 // (actually, it was decremented, so it should now have seq 2 / uid 2) c[2].C(`B006 FETCH 3 (FLAGS UID)`) c[2].S(`* 3 FETCH (FLAGS (\Seen) UID 3)`) c[2].OK(`B006`) // Second client then does noop and gets the expunge update. // Its seqs are then decremented; the seen message should now have seq 2 / uid 2. c[2].C("c002 noop") c[2].S(`* 1 EXPUNGE`) c[2].OK("c002") c[2].C(`B007 FETCH 2 (FLAGS UID)`) c[2].S(`* 2 FETCH (FLAGS (\Seen) UID 3)`) c[2].OK(`B007`) }) } func TestSequenceNumbersPerSession(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { // Generate five messages. c[1].doAppend(`inbox`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c[1].doAppend(`inbox`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c[1].doAppend(`inbox`, buildRFC5322TestLiteral(`To: 3@pm.me`)).expect("OK") c[1].doAppend(`inbox`, buildRFC5322TestLiteral(`To: 4@pm.me`)).expect("OK") c[1].doAppend(`inbox`, buildRFC5322TestLiteral(`To: 5@pm.me`)).expect("OK") // Both clients select in inbox. c[1].C("tag select inbox").OK("tag") c[2].C("tag select inbox").OK("tag") // Both clients initially see the same sequence numbers. c[1].C(`tag fetch 1:* (uid)`).Se( `* 1 FETCH (UID 1)`, `* 2 FETCH (UID 2)`, `* 3 FETCH (UID 3)`, `* 4 FETCH (UID 4)`, `* 5 FETCH (UID 5)`, ).OK(`tag`) c[2].C(`tag fetch 1:* (uid)`).Se( `* 1 FETCH (UID 1)`, `* 2 FETCH (UID 2)`, `* 3 FETCH (UID 3)`, `* 4 FETCH (UID 4)`, `* 5 FETCH (UID 5)`, ).OK(`tag`) // Expunge the first three messages with client 1. c[1].C(`tag store 1:3 +flags (\deleted)`).OK(`tag`) c[1].C(`tag expunge`).OK(`tag`) // Client 1 now only sees the last two messages; they now have sequence numbers 1 and 2. c[1].C(`tag fetch 1:* (uid)`).Se( `* 1 FETCH (UID 4)`, `* 2 FETCH (UID 5)`, ).OK(`tag`) // However, client 2 doesn't know these messages have been deleted; it still sees all messages. c[2].C(`tag fetch 1:* (uid)`).Se( `* 1 FETCH (UID 1)`, `* 2 FETCH (UID 2)`, `* 3 FETCH (UID 3)`, `* 4 FETCH (UID 4)`, `* 5 FETCH (UID 5)`, ).OK(`tag`) // Client 2 then becomes aware that these messages have been deleted. // (EXPUNGE can be performed in any order hence the regex here) c[2].C("tag noop").Sxe( `\* \d+ EXPUNGE`, `\* \d+ EXPUNGE`, `\* \d+ EXPUNGE`, ).OK("tag") // Now that client 2 is aware of these messages having been expunged, it also only sees the last two messages. c[2].C(`tag fetch 1:* (uid)`).Se( `* 1 FETCH (UID 4)`, `* 2 FETCH (UID 5)`, ).OK(`tag`) }) } func TestAddFlagsToExpungedMessage(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { c[1].doAppend(`inbox`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") // Both clients select in inbox. c[1].C("tag select inbox").OK("tag") c[2].C("tag select inbox").OK("tag") // Both clients see one message in inbox. c[1].C(`tag status inbox (messages)`).Sxe(`MESSAGES 1`).OK(`tag`) c[2].C(`tag status inbox (messages)`).Sxe(`MESSAGES 1`).OK(`tag`) // Expunge the first message with client 1. c[1].C(`tag store 1 +flags (\deleted)`).OK(`tag`) c[1].C(`tag expunge`).OK(`tag`) c[1].C(`tag status inbox (messages)`).Sxe(`MESSAGES 0`).OK(`tag`) // Client 2 has not been notified of the expunge; setting flags must succeed. c[2].C(`tag store 1 +flags (\seen)`).OK(`tag`) // When client 2 performs noop, it finally receives the expunge response. c[2].C(`tag noop`).S(`* 1 EXPUNGE`).OK("tag") c[2].C(`tag status inbox (messages)`).Sxe(`MESSAGES 0`).OK(`tag`) }) } gluon-0.17.0/tests/multi_user_test.go000066400000000000000000000007541445200213000176400ustar00rootroot00000000000000package tests import ( "testing" ) func TestMultiUser(t *testing.T) { runTest(t, defaultServerOptions(t, withCredentials([]credentials{ {usernames: []string{"user1"}, password: "pass"}, {usernames: []string{"user2"}, password: "pass"}, })), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { c[1].C(`A001 login user1 pass`).OK(`A001`) c[2].C(`B001 login user2 pass`).OK(`B001`) c[1].C(`A002 select inbox`).OK(`A002`) c[2].C(`B002 select inbox`).OK(`B002`) }) } gluon-0.17.0/tests/non_utf8_test.go000066400000000000000000000012561445200213000172060ustar00rootroot00000000000000package tests import ( "testing" "github.com/ProtonMail/gluon/reporter/mock_reporter" "github.com/emersion/go-imap/client" "github.com/golang/mock/gomock" "github.com/stretchr/testify/require" ) func TestSSLConnectionOverStartTLS(t *testing.T) { ctrl := gomock.NewController(t) reporter := mock_reporter.NewMockReporter(ctrl) defer ctrl.Finish() // Ensure the nothing is reported when connecting via TLS connection if we are not running with TLS runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withReporter(reporter)), func(_ *client.Client, session *testSession) { _, err := client.DialTLS(session.listener.Addr().String(), nil) require.Error(t, err) }) } gluon-0.17.0/tests/noop_test.go000066400000000000000000000003031445200213000164110ustar00rootroot00000000000000package tests import ( "testing" ) func TestNoop(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("a001 noop") c.OK("a001") }) } gluon-0.17.0/tests/parallel_test.go000066400000000000000000000046301445200213000172410ustar00rootroot00000000000000package tests import ( "math/rand" "testing" "github.com/ProtonMail/gluon/imap" "github.com/bradenaw/juniper/xslices" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestSelectWhileSyncing(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, s *testSession) { // Define some mailbox names. mailboxNames := []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"} // Collect the mailbox IDs as they're created. mailboxIDs := xslices.Map(mailboxNames, func(name string) imap.MailboxID { return s.mailboxCreated("user", []string{name}) }) stopCh := make(chan struct{}) doneCh := make(chan struct{}) // Append a bunch of messages. go func() { defer close(doneCh) for { select { case <-stopCh: return default: s.messageCreatedFromFile("user", mailboxIDs[0], `testdata/multipart-mixed.eml`) } } }() // Select a bunch of mailboxes. for i := 0; i < 100; i++ { mboxName := mailboxNames[rand.Int()%len(mailboxNames)] //nolint:gosec _, err := client.Select(mboxName, false) require.NoError(t, err) _, err = client.Select("INBOX", false) require.NoError(t, err) } // Stop appending. close(stopCh) // Wait for appending to finish. <-doneCh }) } func TestTwoFetchesAtOnce(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mboxID := s.mailboxCreated("user", []string{"mbox"}) for i := 0; i < 1000; i++ { s.messageCreatedFromFile("user", mboxID, `testdata/multipart-mixed.eml`, `\Seen`) } c.C("A006 select mbox") c.Se("A006 OK [READ-WRITE] SELECT") // Do some fetches in parallel. c.C(`A005 FETCH 1:200 (BODY[TEXT])`) c.C(`A006 FETCH 201:400 (BODY[TEXT])`) c.C(`A007 FETCH 401:600 (BODY[TEXT])`) c.C(`A008 FETCH 601:800 (BODY[TEXT])`) c.C(`A009 FETCH 801:1000 (BODY[TEXT])`) // The fetch commands will complete eventually; who knows which will be processed first. // TODO: Also check the untagged FETCH responses. c.Sxe( `A005 OK command completed in .*`, `A006 OK command completed in .*`, `A007 OK command completed in .*`, `A008 OK command completed in .*`, `A009 OK command completed in .*`, ) // We should then be able to logout fine. c.C("A010 logout") c.S("* BYE") c.OK("A010") // Logging out should close the connection. c.expectClosed() }) } gluon-0.17.0/tests/parsed_message_test.go000066400000000000000000000011601445200213000204220ustar00rootroot00000000000000package tests import ( "os" "testing" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/require" ) func BenchmarkParsedMessage(b *testing.B) { literal, err := os.ReadFile("testdata/multipart-mixed.eml") require.NoError(b, err) b.ResetTimer() for i := 0; i < b.N; i++ { _, err := imap.NewParsedMessage(literal) require.NoError(b, err) } } func BenchmarkParsedMessageLarge(b *testing.B) { literal, err := os.ReadFile("testdata/large_message.eml") require.NoError(b, err) b.ResetTimer() for i := 0; i < b.N; i++ { _, err := imap.NewParsedMessage(literal) require.NoError(b, err) } } gluon-0.17.0/tests/path_config_test.go000066400000000000000000000052671445200213000177350ustar00rootroot00000000000000package tests import "testing" func TestPathConfig_ProtonPathConfig(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { s.setFolderPrefix("user", "Folders") s.setLabelsPrefix("user", "Labels") c.C(`A001 CREATE Folders/TestFolder`) c.Sx(`A001 OK`) c.C(`B001 LIST "" *`) c.Sx( `\* LIST .* "Folders"`, `\* LIST .* "Labels"`, `\* LIST .* "INBOX"`, `\* LIST .* "Folders/TestFolder"`, ) c.Sx(`B001 OK`) c.C(`A002 CREATE Labels/TestLabel`) c.Sx(`A002 OK`) c.C(`B002 LIST "" *`) c.Sx( `\* LIST .* "Folders"`, `\* LIST .* "Labels"`, `\* LIST .* "INBOX"`, `\* LIST .* "Folders/TestFolder"`, `"Labels/TestLabel"`, ) c.Sx(`B002 OK`) c.C(`A003 CREATE Invalid/TestFolder`) c.Sx(`A003 NO invalid prefix`) c.C(`A004 CREATE Folders`) c.Sx(`A004 NO a mailbox with that name already exists`) c.C(`A005 RENAME Folders/TestFolder NewName`) c.Sx(`A005 NO invalid prefix`) c.C(`A006 RENAME Folders/TestFolder Labels/TestFolder`) c.Sx(`A006 NO rename operation is not allowed`) c.C(`A007 RENAME Folders/TestFolder Folders/NewName`) c.Sx(`A007 OK`) c.C(`A008 SELECT Folders/NewName`) c.Sxe(`A008 OK`) c.C(`A009 CLOSE`) c.Sx(`A009 OK`) c.C(`A010 DELETE Folders/NewName`) c.Sx(`A010 OK`) c.C(`A011 DELETE Folders/Apply`) c.Sx(`A011 NO no such mailbox`) }) } func TestPathConfig_DotDelimiter(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { s.setFolderPrefix("user", "Folders") s.setLabelsPrefix("user", "Labels") c.C(`A001 CREATE Folders.TestFolder`) c.Sx(`A001 OK`) c.C(`B001 LIST "" *`) c.Sx(`\* LIST .* "Folders"`, `\* LIST .* "Labels"`, `\* LIST .* "INBOX"`, `\* LIST .* "Folders.TestFolder"`) c.Sx(`B001 OK`) c.C(`A002 CREATE Labels.TestLabel`) c.Sx(`A002 OK`) c.C(`B002 LIST "" *`) c.Sx(`\* LIST .* "Folders"`, `\* LIST .* "Labels"`, `\* LIST .* "INBOX"`, `\* LIST .* "Folders\.TestFolder"`, `"Labels\.TestLabel"`) c.Sx(`B002 OK`) c.C(`A003 CREATE Invalid.TestFolder`) c.Sx(`A003 NO invalid prefix`) c.C(`A004 CREATE Folders`) c.Sx(`A004 NO a mailbox with that name already exists`) c.C(`A005 RENAME Folders.TestFolder NewName`) c.Sx(`A005 NO invalid prefix`) c.C(`A006 RENAME Folders.TestFolder Labels.TestFolder`) c.Sx(`A006 NO rename operation is not allowed`) c.C(`A007 RENAME Folders.TestFolder Folders.NewName`) c.Sx(`A007 OK`) c.C(`A008 SELECT Folders.NewName`) c.Sxe(`A008 OK`) c.C(`A009 CLOSE`) c.Sx(`A009 OK`) c.C(`A010 DELETE Folders.NewName`) c.Sx(`A010 OK`) c.C(`A011 DELETE Folders.Apply`) c.Sx(`A011 NO no such mailbox`) }) } gluon-0.17.0/tests/recent_test.go000066400000000000000000000156651445200213000167370ustar00rootroot00000000000000package tests import ( "testing" ) func TestRecentSelect(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2, 3}, func(c map[int]*testConnection, _ *testSession) { // Client 1 appends a new message to INBOX. c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") // Client 2 is the first to be notified of the new message; it appears as recent to client 2. c[2].C("A006 select INBOX") c[2].Se(`* 1 EXISTS`, `* 1 RECENT`).OK("A006") // Client 3 is the second to be notified of the new message; it does not appear as recent to client 3. c[3].C("A006 select INBOX") c[3].Se(`* 1 EXISTS`, `* 0 RECENT`).OK("A006") }) } func TestRecentStatus(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2, 3}, func(c map[int]*testConnection, _ *testSession) { // Client 1 appends a new message to INBOX. c[1].doAppend("INBOX", buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") // Client 2 is the first to be notified of the new message; it appears as recent to client 2. // Calling STATUS must not change the value of RECENT. c[2].C("A006 STATUS INBOX (RECENT)") c[2].S(`* STATUS "INBOX" (RECENT 1)`).OK("A006") // Client 3 is the second to be notified of the new message; it still appears as recent to client 3. c[3].C("A006 STATUS INBOX (RECENT)") c[3].S(`* STATUS "INBOX" (RECENT 1)`).OK("A006") }) } func TestRecentFetch(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2, 3}, func(c map[int]*testConnection, _ *testSession) { // Client 1 appends a new message to INBOX. c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") // Client 2 is the first to be notified of the new message; it appears as recent to client 2. c[2].C("A006 select INBOX") c[2].Se(`* 1 EXISTS`, `* 1 RECENT`).OK("A006") // Client 2 fetches the message; it is still recent to client 2. c[2].C("A006 fetch 1 (UID FLAGS)") c[2].Se(`* 1 FETCH (UID 1 FLAGS (\Recent))`).OK("A006") // Client 2 fetches the message again; it is still recent to client 2. c[2].C("A006 fetch 1 (UID FLAGS)") c[2].Se(`* 1 FETCH (UID 1 FLAGS (\Recent))`).OK("A006") // Client 3 is the second to be notified of the new message; it no longer appears as recent to client 3. c[3].C("A006 select INBOX") c[3].Se(`* 1 EXISTS`, `* 0 RECENT`).OK("A006") // Client 3 fetches the message; it is not recent to client 3. c[3].C("A006 fetch 1 (UID FLAGS)") c[3].Se(`* 1 FETCH (UID 1 FLAGS ())`).OK("A006") }) } func TestRecentAppend(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2, 3}, func(c map[int]*testConnection, _ *testSession) { // Client 1 appends a new message to INBOX. c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") // Client 2 is the first to be notified of the new message; it appears as recent to client 2. c[2].C("A006 select INBOX") c[2].Se(`* 1 EXISTS`, `* 1 RECENT`).OK("A006") // Client 2 then appends a second message to the mailbox while selected. // As it was the first client to perform the operation, it sees the message as recent. c[2].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c[2].C("A006 fetch 2 (UID FLAGS)") c[2].Se(`* 2 FETCH (UID 2 FLAGS (\Recent))`).OK("A006") }) } func TestRecentStore(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { mbox, done := c[1].doCreateTempDir() defer func() { s.flush("user") done() }() // Create a message in mbox. c[1].doAppend(mbox, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect(`OK`) // Select in the mailbox. c[1].Cf(`A002 SELECT %v`, mbox).OK(`A002`) // Set the message as deleted. c[1].C(`A004 STORE 1 +FLAGS (\Deleted)`) c[1].S(`* 1 FETCH (FLAGS (\Deleted \Recent))`) c[1].OK(`A004`) // The message still has the recent flag when fetching. c[1].C("A006 FETCH 1 (UID FLAGS)") c[1].Se(`* 1 FETCH (UID 1 FLAGS (\Deleted \Recent))`) c[1].OK("A006") // Select in the mailbox. c[2].Cf(`A002 SELECT %v`, mbox).OK(`A002`) // The message does not have the recent flag when fetching because this client wasn't first notified. c[2].C("A006 FETCH 1 (UID FLAGS)") c[2].Se(`* 1 FETCH (UID 1 FLAGS (\Deleted))`) c[2].OK("A006") }) } func TestRecentExists(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2, 3}, func(c map[int]*testConnection, _ *testSession) { // Client 1 and B both select INBOX. c[1].C("A006 select INBOX").OK("A006") c[2].C("A006 select INBOX").OK("A006") // Client 3 appends a new message to INBOX. c[3].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") // Client 1 is notified of the new message. No recent is sent as client 2 still has the mailbox selected. c[1].C("A007 NOOP") c[1].S("* 1 EXISTS").OK("A007") // Client 2 is notified of the new message second; it does not appear as recent to client 2. c[2].C("A007 NOOP") c[2].S("* 1 EXISTS").OK("A007") }) } func TestRecentIDLEExists(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, _ *testSession) { // Client 1 selects INBOX and IDLEs. c[1].C("A006 select INBOX").OK("A006") c[1].C("A007 IDLE") c[1].S("+ Ready") // Client 2 appends two new messages to INBOX. c[2].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c[2].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") // Client 1 receives EXISTS and RECENT updates. c[1].S(`* 2 EXISTS`, `* 2 RECENT`) c[1].C("DONE") c[1].OK(`A007`) }) } func TestRecentIDLEExpunge(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, _ *testSession) { // Client 1 creates a second mailbox and begins to IDLE inside it. c[1].C("A002 CREATE folder").OK("A002") c[1].C("A006 select folder").OK("A006") c[1].C("A007 IDLE") c[1].S("+ Ready") // Client 2 appends two new messages to INBOX. c[2].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c[2].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") // Client 2 moves those two messages to the other folder. c[2].C("A006 select INBOX").OK("A006") c[2].C("A006 move 1:* folder").OK("A006") // Client 1 receives EXISTS. Since Client 2 still has the mailbox selected, recent updates are not sent. c[1].S(`* 2 EXISTS`) // Client 2 moves those two messages back to INBOX. // In doing so, it sees the messages in the folder; they are no longer recent. c[2].C("A006 select folder").OK("A006") c[2].C("A006 move 1:* INBOX").OK("A006") // Client 1 receives EXPUNGE updates for those messages. // It receives no RECENT updates because client 2 already saw them. // The order of expunge results cannot be guaranteed (MOVE is handled in random order). c[1].Sx(`\* \d EXPUNGE`, `\* \d EXPUNGE`) c[1].C("DONE") c[1].OK(`A007`) }) } gluon-0.17.0/tests/recovery_mailbox_test.go000066400000000000000000000531661445200213000210260ustar00rootroot00000000000000package tests import ( "bytes" "context" "fmt" "testing" "time" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/ids" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestRecoveryMBoxNotVisibleWhenEmpty(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { c.C(`A103 LIST "" *`) c.S(`* LIST (\Unmarked) "/" "INBOX"`) c.OK(`A103`) }) } func TestRecoveryMBoxVisibleWhenNotEmpty(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&failAppendLabelConnectorBuilder{})), func(c *testConnection, s *testSession) { c.doAppend("INBOX", buildRFC5322TestLiteral("To: Test@test.com")).expect("NO") c.C(`A103 LIST "" *`) c.S(`* LIST (\Unmarked) "/" "INBOX"`, fmt.Sprintf(`* LIST (\Marked \Noinferiors) "/" "%v"`, ids.GluonRecoveryMailboxName), ) c.OK(`A103`) }) } func TestRecoveryMBoxCanNotBeCreated(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.Error(t, client.Create(ids.GluonRecoveryMailboxNameLowerCase)) require.Error(t, client.Create(ids.GluonRecoveryMailboxName)) require.Error(t, client.Create(fmt.Sprintf("%v/sub", ids.GluonRecoveryMailboxName))) }) } func TestRecoveryMBoxCanNotBeRenamed(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.Error(t, client.Rename(ids.GluonRecoveryMailboxName, "SomethingElse")) require.Error(t, client.Rename("INBOX", ids.GluonRecoveryMailboxName)) }) } func TestRecoveryMBoxCanNotBeAppended(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.Error(t, client.Append(ids.GluonRecoveryMailboxName, nil, time.Now(), bytes.NewReader([]byte("RandomGibberish")))) }) } func TestRecoveryMBoxCanNotBeMovedOrCopiedInto(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, s *testSession) { const mboxName = "Foo" mboxID := s.mailboxCreated("user", []string{mboxName}) s.messageCreated("user", mboxID, []byte("To: Test@test.com"), time.Now()) s.flush("user") status, err := client.Select(mboxName, false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) require.Error(t, client.Move(createSeqSet("1"), ids.GluonRecoveryMailboxName)) require.Error(t, client.Copy(createSeqSet("1"), ids.GluonRecoveryMailboxName)) }) } func TestRecoveryMBoxCanBeMovedOutOf(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&disableRemoveFromMailboxBuilder{})), func(client *client.Client, s *testSession) { // Insert first message, fails. require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Test@test.com"), time.Now())) status, err := client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) { _, err := client.Select(ids.GluonRecoveryMailboxName, false) require.NoError(t, err) newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[]", buildRFC5322TestLiteral("To: Test@test.com")) }).checkAndRequireMessageCount(1) } // Move message. require.NoError(t, client.Move(createSeqSet("1"), "INBOX")) // Check state. status, err = client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) status, err = client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) { _, err := client.Select("INBOX", false) require.NoError(t, err) // Check that message has the new internal ID header. newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeaderOrPanic("BODY[]", buildRFC5322TestLiteral("To: Test@test.com")) }).checkAndRequireMessageCount(1) } }) } func TestRecoveryMBoxCanBeCopiedOutOf(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&disableRemoveFromMailboxBuilder{})), func(client *client.Client, s *testSession) { // Insert first message, fails. require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Test@test.com"), time.Now())) status, err := client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) { _, err := client.Select(ids.GluonRecoveryMailboxName, false) require.NoError(t, err) newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[]", buildRFC5322TestLiteral("To: Test@test.com")) }).checkAndRequireMessageCount(1) } // Copy message. require.NoError(t, client.Copy(createSeqSet("1"), "INBOX")) // Validate state. status, err = client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) status, err = client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) { _, err := client.Select("INBOX", false) require.NoError(t, err) // Check that message has the new internal ID header. newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeaderOrPanic("BODY[]", buildRFC5322TestLiteral("To: Test@test.com")) }).checkAndRequireMessageCount(1) } }) } func TestRecoveryMBoxCanBeExpunged(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&disableRemoveFromMailboxBuilder{})), func(client *client.Client, s *testSession) { // Insert first message, fails. require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Test@test.com"), time.Now())) // Execute expunge status, err := client.Select(ids.GluonRecoveryMailboxName, false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) require.NoError(t, client.Store(createSeqSet("1"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) require.NoError(t, client.Expunge(nil)) status, err = client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) }) } func TestFailedAppendEndsInRecovery(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&failAppendLabelConnectorBuilder{})), func(client *client.Client, s *testSession) { { status, err := client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) } status, err := client.Select("INBOX", false) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Foo@bar.com"), time.Now())) { status, err := client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) } { status, err := client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) } { _, err := client.Select(ids.GluonRecoveryMailboxName, false) require.NoError(t, err) // Check that no custom headers are appended to the message. newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[]", buildRFC5322TestLiteral("To: Foo@bar.com")) }).checkAndRequireMessageCount(1) } }) } func TestFailedAppendAreDedupedInRecoveryMailbox(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&failAppendLabelConnectorBuilder{})), func(client *client.Client, s *testSession) { { status, err := client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) } status, err := client.Select("INBOX", false) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Foo@bar.com"), time.Now())) require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Foo@bar.com"), time.Now())) require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Bar@bar.com"), time.Now())) { status, err := client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(2), status.Messages) } { status, err := client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) } { _, err := client.Select(ids.GluonRecoveryMailboxName, false) require.NoError(t, err) // Check that no custom headers are appended to the message. newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[]", buildRFC5322TestLiteral("To: Foo@bar.com")) }).checkAndRequireMessageCount(1) } }) } func TestRecoveryMailboxOnlyReportsOnFirstDedupedMessage(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&failAppendLabelConnectorBuilder{})), func(client *client.Client, s *testSession) { { status, err := client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) } status, err := client.Select("INBOX", false) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) require.Error(t, doAppendWithClientFromFile(t, client, "INBOX", "testdata/original.eml", time.Now())) require.Error(t, doAppendWithClientFromFile(t, client, "INBOX", "testdata/duplicate.eml", time.Now())) { status, err := client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) } { status, err := client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) } { reports := s.reporter.getReports() require.Equal(t, 1, len(reports)) } }) } func TestRecoveryMailboxDoesNotStoreMessageWhichExceedLimit(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&sizeExceededAppendConnectorBuilder{})), func(client *client.Client, s *testSession) { { status, err := client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) } status, err := client.Select("INBOX", false) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) require.Error(t, doAppendWithClientFromFile(t, client, "INBOX", "testdata/original.eml", time.Now())) require.Error(t, doAppendWithClientFromFile(t, client, "INBOX", "testdata/duplicate.eml", time.Now())) { status, err := client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) } { status, err := client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) } }) } func TestRecoveryMBoxCanBeCopiedOutOfDedup(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&recoveryDedupConnectorConnectorBuilder{})), func(client *client.Client, s *testSession) { // Insert first message, fails. require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Test@test.com"), time.Now())) { _, err := client.Select(ids.GluonRecoveryMailboxName, false) require.NoError(t, err) newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[]", buildRFC5322TestLiteral("To: Test@test.com")) }).checkAndRequireMessageCount(1) } // Insert same message, succeeds. require.NoError(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Test@test.com"), time.Now())) { _, err := client.Select("INBOX", false) require.NoError(t, err) newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeaderOrPanic("BODY[]", buildRFC5322TestLiteral("To: Test@test.com")) }).checkAndRequireMessageCount(1) } msgInInbox := fetchMessageBody(t, client, 1) // Copy message out of recovery, triggers insert will return the same ID. status, err := client.Select(ids.GluonRecoveryMailboxName, false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) require.NoError(t, client.Copy(createSeqSet("1"), "INBOX")) status, err = client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) status, err = client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) // Check that no new message was created in INBOX as we already have this message available there. { _, err := client.Select("INBOX", false) require.NoError(t, err) // Check that message has the new internal ID header. newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[]", msgInInbox) }).checkAndRequireMessageCount(1) } }) } func TestRecoveryMBoxCanBeMovedOutOfDedup(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withConnectorBuilder(&recoveryDedupConnectorConnectorBuilder{})), func(client *client.Client, s *testSession) { // Insert first message, fails. require.Error(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Test@test.com"), time.Now())) { _, err := client.Select(ids.GluonRecoveryMailboxName, false) require.NoError(t, err) newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[]", buildRFC5322TestLiteral("To: Test@test.com")) }).checkAndRequireMessageCount(1) } // Insert same message, succeeds. require.NoError(t, doAppendWithClient(client, "INBOX", buildRFC5322TestLiteral("To: Test@test.com"), time.Now())) { _, err := client.Select("INBOX", false) require.NoError(t, err) newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSectionAndSkipGLUONHeaderOrPanic("BODY[]", buildRFC5322TestLiteral("To: Test@test.com")) }).checkAndRequireMessageCount(1) } msgInInbox := fetchMessageBody(t, client, 1) // Copy message out of recovery, triggers insert will return the same ID. status, err := client.Select(ids.GluonRecoveryMailboxName, false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) require.NoError(t, client.Move(createSeqSet("1"), "INBOX")) status, err = client.Status("INBOX", []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) status, err = client.Status(ids.GluonRecoveryMailboxName, []goimap.StatusItem{goimap.StatusMessages}) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) // Check that no new message was created in INBOX as we already have this message available there. { _, err := client.Select("INBOX", false) require.NoError(t, err) // Check that message has the new internal ID header. newFetchCommand(t, client).withItems("BODY[]").fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.ignoreFlags() builder.wantSection("BODY[]", msgInInbox) }).checkAndRequireMessageCount(1) } }) } // disableRemoveFromMailboxConnector fails the first append and panics if move or remove takes place on the // connector. type disableRemoveFromMailboxConnector struct { *connector.Dummy createFailed bool } func (r *disableRemoveFromMailboxConnector) CreateMessage( ctx context.Context, mboxID imap.MailboxID, literal []byte, flags imap.FlagSet, date time.Time) (imap.Message, []byte, error) { if !r.createFailed { r.createFailed = true return imap.Message{}, nil, fmt.Errorf("failed") } return r.Dummy.CreateMessage(ctx, mboxID, literal, flags, date) } func (r *disableRemoveFromMailboxConnector) RemoveMessagesFromMailbox( _ context.Context, _ []imap.MessageID, _ imap.MailboxID, ) error { panic("Should not be called") } func (r *disableRemoveFromMailboxConnector) MoveMessages( _ context.Context, _ []imap.MessageID, _ imap.MailboxID, _ imap.MailboxID, ) (bool, error) { panic("Should not be called") } type disableRemoveFromMailboxBuilder struct{} func (disableRemoveFromMailboxBuilder) New(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) Connector { return &disableRemoveFromMailboxConnector{ Dummy: connector.NewDummy(usernames, password, period, flags, permFlags, attrs), } } // recoveryDedupConnector fails the first CreateMessage call and then returns the same remote id for all // the next messages which are created to simulated de-duplication. type recoveryDedupConnector struct { *connector.Dummy firstMessage bool messageCreated bool createdMessage imap.Message messageLiteral []byte } func (r *recoveryDedupConnector) CreateMessage( ctx context.Context, mboxID imap.MailboxID, literal []byte, flags imap.FlagSet, date time.Time) (imap.Message, []byte, error) { if r.firstMessage { r.firstMessage = false return imap.Message{}, nil, fmt.Errorf("failed") } if !r.messageCreated { msg, l, err := r.Dummy.CreateMessage(ctx, mboxID, literal, flags, date) if err != nil { return imap.Message{}, nil, err } r.createdMessage = msg r.messageLiteral = l r.messageCreated = true } return r.createdMessage, r.messageLiteral, nil } func (r *recoveryDedupConnector) AddMessagesToMailbox( ctx context.Context, ids []imap.MessageID, mboxID imap.MailboxID, ) error { if r.firstMessage { return fmt.Errorf("failed") } return r.Dummy.AddMessagesToMailbox(ctx, ids, mboxID) } func (r *recoveryDedupConnector) MoveMessagesFromMailbox( _ context.Context, _ []imap.MessageID, _ imap.MailboxID, _ imap.MailboxID, ) error { return fmt.Errorf("failed") } type recoveryDedupConnectorConnectorBuilder struct{} func (recoveryDedupConnectorConnectorBuilder) New(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) Connector { return &recoveryDedupConnector{ Dummy: connector.NewDummy(usernames, password, period, flags, permFlags, attrs), firstMessage: true, } } // failAppendLabelConnector simulate Create Message failures and also ensures that no calls to Add or Move can take place. type failAppendLabelConnector struct { *connector.Dummy } func (r *failAppendLabelConnector) CreateMessage( _ context.Context, _ imap.MailboxID, _ []byte, _ imap.FlagSet, _ time.Time) (imap.Message, []byte, error) { return imap.Message{}, nil, fmt.Errorf("failed") } func (r *failAppendLabelConnector) AddMessagesToMailbox( _ context.Context, _ []imap.MessageID, _ imap.MailboxID, ) error { return fmt.Errorf("failed") } func (r *failAppendLabelConnector) MoveMessagesFromMailbox( _ context.Context, _ []imap.MessageID, _ imap.MailboxID, _ imap.MailboxID, ) error { return fmt.Errorf("failed") } type failAppendLabelConnectorBuilder struct{} func (failAppendLabelConnectorBuilder) New(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) Connector { return &failAppendLabelConnector{ Dummy: connector.NewDummy(usernames, password, period, flags, permFlags, attrs), } } // failAppendLabelConnector simulate Create Message failures and also ensures that no calls to Add or Move can take place. type sizeExceededAppendConnector struct { *connector.Dummy } func (r *sizeExceededAppendConnector) CreateMessage( _ context.Context, _ imap.MailboxID, _ []byte, _ imap.FlagSet, _ time.Time) (imap.Message, []byte, error) { return imap.Message{}, nil, fmt.Errorf("messsage to large: %w", connector.ErrMessageSizeExceedsLimits) } func (r *sizeExceededAppendConnector) AddMessagesToMailbox( _ context.Context, _ []imap.MessageID, _ imap.MailboxID, ) error { return fmt.Errorf("messsage to large: %w", connector.ErrMessageSizeExceedsLimits) } type sizeExceededAppendConnectorBuilder struct{} func (sizeExceededAppendConnectorBuilder) New(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) Connector { return &sizeExceededAppendConnector{ Dummy: connector.NewDummy(usernames, password, period, flags, permFlags, attrs), } } gluon-0.17.0/tests/remote_test.go000066400000000000000000000115151445200213000167400ustar00rootroot00000000000000package tests import ( "io" "strconv" "testing" "time" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestRemoteCopy(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { s.setFolderPrefix("user", "Folders") s.setLabelsPrefix("user", "Labels") // Create two exclusive mailboxes, one with 100 messages. s.mailboxCreated("user", []string{"Folders", "mbox1"}, "testdata/dovecot-crlf") s.mailboxCreated("user", []string{"Folders", "mbox2"}) // Create two non-exclusive mailboxes, one with 100 messages. s.mailboxCreated("user", []string{"Labels", "mbox1"}, "testdata/dovecot-crlf") s.mailboxCreated("user", []string{"Labels", "mbox2"}) // Copy everything from Folders/mbox1 to Folders/mbox2. c.C(`A001 select Folders/mbox1`).Sxe(`100 EXISTS`).OK(`A001`) c.C(`A002 copy 1:* Folders/mbox2`).OK(`A002`) // Copy everything from Labels/mbox1 to Labels/mbox2. c.C(`A001 select Labels/mbox1`).Sxe(`100 EXISTS`).OK(`A001`) c.C(`A002 copy 1:* Labels/mbox2`).OK(`A002`) // The folders are exclusive and so the remote will remove them automatically from the origin. // The labels are non-exclusive and so they will not be modified by the remote. s.flush("user") // Check that the message counts are expected. c.C(`A003 noop`).OK(`A003`) c.C(`A004 status Folders/mbox1 (messages)`).Sx(`MESSAGES 0`).OK(`A004`) c.C(`A005 status Folders/mbox2 (messages)`).Sx(`MESSAGES 100`).OK(`A005`) c.C(`A004 status Labels/mbox1 (messages)`).Sx(`MESSAGES 100`).OK(`A004`) c.C(`A005 status Labels/mbox2 (messages)`).Sx(`MESSAGES 100`).OK(`A005`) }) } func TestAppendDuplicate(t *testing.T) { const messagePath = "testdata/afternoon-meeting.eml" runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, s *testSession) { s.setFolderPrefix("user", "Folders") s.setLabelsPrefix("user", "Labels") // Create exclusive mailboxes to be the origin and destination. s.mailboxCreated("user", []string{"Folders", "origin"}) s.mailboxCreated("user", []string{"Folders", "destination"}) // Put the message in origin. require.NoError(t, doAppendWithClientFromFile(t, client, "Folders/origin", messagePath, time.Now(), goimap.SeenFlag)) // Copy the message to destination. status, err := client.Select("Folders/origin", false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) section, err := goimap.ParseBodySectionName("BODY[]") require.NoError(t, err) messages := newFetchCommand(t, client).withItems(section.FetchItem()).fetch(strconv.Itoa(1)).messages require.Len(t, messages, 1) body, err := io.ReadAll(messages[0].GetBody(section)) require.NoError(t, err) require.NoError(t, doAppendWithClient(client, "Folders/destination", string(body), time.Now(), goimap.SeenFlag)) // Check that the message is in destination. status, err = client.Select("Folders/destination", false) require.NoError(t, err) require.Equal(t, uint32(1), status.Messages) // The folders are exclusive and so the remote will remove them automatically from the origin. s.flush("user") // Check that the message is no longer in origin. status, err = client.Select("Folders/origin", false) require.NoError(t, err) require.Equal(t, uint32(0), status.Messages) }) } func TestRemoteDeletionPool(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { // Create a mailbox for the test to run in. mboxID1 := s.mailboxCreated("user", []string{"mbox1"}) mboxID2 := s.mailboxCreated("user", []string{"mbox2"}) // Create some messages externally. messageID1 := s.messageCreatedFromFile("user", mboxID1, "testdata/afternoon-meeting.eml") messageID2 := s.messageCreatedFromFile("user", mboxID1, "testdata/afternoon-meeting.eml") // Add the messages to a second mailbox. s.messageAdded("user", messageID1, mboxID2) s.messageAdded("user", messageID2, mboxID2) // Select in the mailbox. c[1].C("tag select mbox1").OK("tag") c[2].C("tag select mbox1").OK("tag") // First client expunges the messages. c[1].C(`tag store 1:* +flags (\deleted)`).OK("tag") c[1].C(`tag expunge`).OK("tag") // Second client has not been notified of the expunge. // The messages are in the deletion pool. c[2].C(`tag fetch 1:* (uid)`) c[2].Se(`* 1 FETCH (UID 1)`, `* 2 FETCH (UID 2)`) c[2].OK("tag") // Put the messages back in the mailbox. // They'll get new UIDs. s.messageAdded("user", messageID1, mboxID1) s.messageAdded("user", messageID2, mboxID1) // Flush the updates. s.flush("user") // Receive updates. c[2].C(`tag noop`).OK(`tag`) // Second client sees the messages have new UIDs. c[2].C(`tag fetch 1:* (uid)`) c[2].Se(`* 1 FETCH (UID 3)`, `* 2 FETCH (UID 4)`) c[2].OK("tag") }) } gluon-0.17.0/tests/rename_test.go000066400000000000000000000135241445200213000167160ustar00rootroot00000000000000package tests import ( "testing" "time" imap2 "github.com/ProtonMail/gluon/imap" "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/sirupsen/logrus" "github.com/stretchr/testify/require" ) func TestRename(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("blurdybloop")) require.NoError(t, client.Create("foo")) require.NoError(t, client.Create("foo/bar")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "foo", "foo/bar", "blurdybloop"}) require.NoError(t, client.Rename("blurdybloop", "sarasoop")) require.NoError(t, client.Rename("foo", "zowie")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "zowie", "zowie/bar", "sarasoop"}) }) } func TestRenameHierarchy(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("foo/bar/zap")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "foo", "foo/bar", "foo/bar/zap"}) require.NoError(t, client.Rename("foo/bar/zap", "baz/rag/zowie")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "foo", "foo/bar", "baz", "baz/rag", "baz/rag/zowie"}) }) } func TestRenameHierarchyRoot(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("foo/bar/zap")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "foo", "foo/bar", "foo/bar/zap"}) require.NoError(t, client.Rename("foo", "baz")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "baz", "baz/bar", "baz/bar/zap"}) }) } func TestRenameAddHierarchy(t *testing.T) { type renameTC struct { src string dest string result []string newFolder string } testCases := []renameTC{ // 0 - rename the first level. { "foo", "bar.foo", []string{"INBOX", "bar", "bar.foo", "bar.foo.bar"}, "bar", }, // 1 - rename the last level. { "foo.bar", "foo.rag.bar", []string{"INBOX", "foo", "foo.rag", "foo.rag.bar"}, "foo.rag", }, } initialMailbox := []string{"INBOX", "foo", "foo.bar"} const messagePath = "testdata/afternoon-meeting.eml" for i, tc := range testCases { logrus.Trace(" --- test case ", i, " ---") runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("foo.bar")) matchMailboxNamesClient(t, client, "", "*", initialMailbox) // add a mail to every existing mailbox. for _, box := range initialMailbox { require.NoError(t, doAppendWithClientFromFile(t, client, box, messagePath, time.Now())) } // rename. require.NoError(t, client.Rename(tc.src, tc.dest)) matchMailboxNamesClient(t, client, "", "*", tc.result) // all box except new one should have a mail for _, name := range tc.result { currStatus, err := client.Status(name, []imap.StatusItem{imap.StatusMessages}) require.NoError(t, err) if name == tc.newFolder { require.Equal(t, uint32(0), currStatus.Messages, "Expected no message in the new folder %v", name) } else { require.Equal(t, uint32(1), currStatus.Messages, "Expected message to be kept in %v", name) } } }) } } func TestRenameBadHierarchy(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("foo.bar")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "foo", "foo.bar"}) require.Error(t, client.Rename("foo", "foo.foo")) require.Error(t, client.Rename("foo", "foo.foo.foo")) require.Error(t, client.Rename("foo", "foo.bar")) require.NoError(t, client.Rename("foo", "bar.foo")) }) } func TestRenameInbox(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap2.MailboxID) { // Put all the 100 messages into the inbox. c.C("tag move 1:* inbox").OK("tag") // Check there are 100 messages in inbox. s.flush("user") c.C("tag status inbox (messages)").Sxe("MESSAGES 100").OK("tag") // Renaming the inbox will create a new mailbox and put all the messages in there. c.C("tag rename inbox some/other/mailbox").OK("tag") // There are now 0 messages in the inbox; they've all been moved to this new mailbox. s.flush("user") c.C("tag status inbox (messages)").Sxe("MESSAGES 0").OK("tag") c.C("tag status some/other/mailbox (messages)").Sxe("MESSAGES 100").OK("tag") // Put all the 100 messages back into the inbox. c.C("tag select some/other/mailbox").OK("tag") c.C("tag move 1:* inbox").OK("tag") // Check there are 100 messages in inbox and none in the other mailbox. s.flush("user") c.C("tag status inbox (messages)").Sxe("MESSAGES 100").OK("tag") c.C("tag status some/other/mailbox (messages)").Sxe("MESSAGES 0").OK("tag") // Renaming the inbox again will do the same as before. c.C("tag rename inbox yet/another/mailbox").OK("tag") // Check there are no messages in inbox and 100 in the other mailbox. s.flush("user") c.C("tag status inbox (messages)").Sxe("MESSAGES 0").OK("tag") c.C("tag status some/other/mailbox (messages)").Sxe("MESSAGES 0").OK("tag") c.C("tag status yet/another/mailbox (messages)").Sxe("MESSAGES 100").OK("tag") }) runOneToOneTestClientWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(client *client.Client, _ *testSession) { require.NoError(t, client.Create("INBOX.foo.bar")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "INBOX.foo", "INBOX.foo.bar"}) // rename. require.NoError(t, client.Rename("INBOX", "bar")) matchMailboxNamesClient(t, client, "", "*", []string{"INBOX", "bar", "INBOX.foo", "INBOX.foo.bar"}) }) } gluon-0.17.0/tests/reporter_test.go000066400000000000000000000020151445200213000173020ustar00rootroot00000000000000package tests import ( "sync" "github.com/ProtonMail/gluon/reporter" ) type testReporter struct { reports []report lock sync.RWMutex } type report struct { val any ctx reporter.Context } func (r *testReporter) getReports() []report { r.lock.RLock() defer r.lock.RUnlock() return r.reports } func (r *testReporter) ReportException(val any) error { r.lock.Lock() defer r.lock.Unlock() r.reports = append(r.reports, report{val: val}) return nil } func (r *testReporter) ReportMessage(val string) error { r.lock.Lock() defer r.lock.Unlock() r.reports = append(r.reports, report{val: val}) return nil } func (r *testReporter) ReportMessageWithContext(val string, ctx reporter.Context) error { r.lock.Lock() defer r.lock.Unlock() r.reports = append(r.reports, report{val: val, ctx: ctx}) return nil } func (r *testReporter) ReportExceptionWithContext(val any, ctx reporter.Context) error { r.lock.Lock() defer r.lock.Unlock() r.reports = append(r.reports, report{val: val, ctx: ctx}) return nil } gluon-0.17.0/tests/run_test.go000066400000000000000000000115211445200213000162460ustar00rootroot00000000000000// Package tests defines "integration" tests of the library that run on top of a dummy remote. package tests import ( "testing" "github.com/ProtonMail/gluon/imap" "github.com/emersion/go-imap/client" _ "github.com/mattn/go-sqlite3" "github.com/stretchr/testify/require" ) // runOneToOneTest runs a test with one account and one connection. func runOneToOneTest(tb testing.TB, options *serverOptions, tests func(*testConnection, *testSession)) { runTest(tb, options, []int{1}, func(c map[int]*testConnection, s *testSession) { tests(c[1], s) }) } // runOneToOneTestWithAuth runs a test with one account and one connection. The connection is logged in. func runOneToOneTestWithAuth(tb testing.TB, options *serverOptions, tests func(*testConnection, *testSession)) { runOneToOneTest(tb, options, func(c *testConnection, s *testSession) { tests(c.Login(options.defaultUsername(), options.defaultPassword()), s) }) } // runOneToOneTestWithData runs a test with one account and one connection. A mailbox is created with test data. func runOneToOneTestWithData( tb testing.TB, options *serverOptions, tests func(*testConnection, *testSession, string, imap.MailboxID), ) { runOneToOneTestWithAuth(tb, options, func(c *testConnection, s *testSession) { withData(s, options.defaultUsername(), func(mbox string, mboxID imap.MailboxID) { withTag(func(tag string) { c.Cf("%v select %v", tag, mbox).OK(tag) }) tests(c, s, mbox, mboxID) }) }) } // runManyToOneTest runs a test with one account and multiple connections. func runManyToOneTest( tb testing.TB, options *serverOptions, connIDs []int, tests func(map[int]*testConnection, *testSession), ) { runTest(tb, options, connIDs, func(c map[int]*testConnection, s *testSession) { tests(c, s) }) } // runManyToOneTestWithAuth runs a test with one account and multiple connections. Each connection is logged in. func runManyToOneTestWithAuth( tb testing.TB, options *serverOptions, connIDs []int, tests func(map[int]*testConnection, *testSession), ) { runManyToOneTest(tb, options, connIDs, func(c map[int]*testConnection, s *testSession) { for _, c := range c { c.Login(options.defaultUsername(), options.defaultPassword()) } tests(c, s) }) } // runManyToOneTestWithData runs a test with one account and multiple connections. Apply mailbox is created with test data. func runManyToOneTestWithData( tb testing.TB, options *serverOptions, connIDs []int, tests func(map[int]*testConnection, *testSession, string, imap.MailboxID), ) { runManyToOneTestWithAuth(tb, options, connIDs, func(c map[int]*testConnection, s *testSession) { withData(s, options.defaultUsername(), func(mbox string, mboxID imap.MailboxID) { for _, c := range c { withTag(func(tag string) { c.Cf("%v select %v", tag, mbox).OK(tag) }) } tests(c, s, mbox, mboxID) }) }) } // runTest runs the mailserver and creates test connections to it. func runTest(tb testing.TB, options *serverOptions, connIDs []int, tests func(map[int]*testConnection, *testSession)) { runServer(tb, options, func(s *testSession) { withConnections(tb, s, connIDs, func(c map[int]*testConnection) { tests(c, s) }) }) } // -- IMAP client test helpers // runTestClient runs the mailserver and creates test connections to it using an imap client. func runTestClient( tb testing.TB, options *serverOptions, connIDs []int, tests func(map[int]*client.Client, *testSession), ) { runServer(tb, options, func(s *testSession) { withClients(tb, s, connIDs, func(clientMap map[int]*client.Client) { tests(clientMap, s) }) }) } // runOneToOneTestClient runs a test with one account and one connection using an imap client. func runOneToOneTestClient(tb testing.TB, options *serverOptions, test func(*client.Client, *testSession)) { runTestClient(tb, options, []int{1}, func(c map[int]*client.Client, s *testSession) { test(c[1], s) }) } // runOneToOneTestClientWithAuth runs a test with one account and one connection using an imap client. The connection is logged in. func runOneToOneTestClientWithAuth(tb testing.TB, options *serverOptions, test func(*client.Client, *testSession)) { runOneToOneTestClient(tb, options, func(client *client.Client, s *testSession) { require.NoError(tb, client.Login(options.defaultUsername(), string(options.defaultPassword()))) test(client, s) }) } // runOneToOneTestClientWithData runs a test with one account and one connection using an imap client. Apply mailbox is created with test data. func runOneToOneTestClientWithData( tb testing.TB, options *serverOptions, test func(*client.Client, *testSession, string, imap.MailboxID), ) { runOneToOneTestClientWithAuth(tb, options, func(client *client.Client, s *testSession) { withData(s, options.defaultUsername(), func(mbox string, mboxID imap.MailboxID) { _, err := client.Select(mbox, false) require.NoError(s.tb, err) test(client, s, mbox, mboxID) }) }) } gluon-0.17.0/tests/search_test.go000066400000000000000000000560301445200213000167130ustar00rootroot00000000000000package tests import ( "fmt" "testing" "time" "unicode/utf8" "github.com/ProtonMail/gluon/imap" "github.com/stretchr/testify/require" "golang.org/x/text/encoding/htmlindex" ) func TestSearchCharSetUTF8(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { c.C(`tag select inbox`).OK("tag") // Encode "ééé" as UTF-8. b := enc("ééé", "UTF-8") // Append a message with that as the body. c.doAppend("inbox", buildRFC5322TestLiteral("To: 1@pm.me\r\n\r\nééé")).expect("OK") // Search for it with UTF-8 encoding. c.Cf(`TAG SEARCH CHARSET UTF-8 BODY {%v}`, len(b)).Continue().Cb(b).S("* SEARCH 1").OK("TAG") }) } func TestSearchCharSetISO88591(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { c.C(`tag select inbox`).OK("tag") // Encode "ééé" as ISO-8859-1. b := enc("ééé", "ISO-8859-1") // Assert that b is no longer valid UTF-8. require.False(t, utf8.Valid(b)) // Append a message with that as the body. c.doAppend("inbox", buildRFC5322TestLiteral("To: 1@pm.me\r\n\r\nééé")).expect("OK") // Search for it with ISO-8859-1 encoding (literal). c.Cf(`TAG SEARCH CHARSET ISO-8859-1 BODY {%v}`, len(b)).Continue().Cb(b).S("* SEARCH 1").OK("TAG") // Search for it with ISO-8859-1 encoding (direct). c.Cf(`TAG SEARCH CHARSET ISO-8859-1 BODY ` + string(b)).S("* SEARCH 1").OK("TAG") }) } func TestSearchCharSetASCII(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C("A001 search CHARSET US-ASCII TEXT foo") c.S("* SEARCH 75") c.OK("A001") }) } func TestSearchCharSetInvalid(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C("A001 search CHARSET invalid-charset TEXT foo").NO("A001", "BADCHARSET") }) } func TestSearchAll(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C("A001 search all") c.S("* SEARCH " + seq(1, 100)) c.OK("A001") }) } func TestSearchAnswered(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Set some messages as answered. c.C(`A001 STORE 10,20,30,40,50 +FLAGS (\Answered)`).OK("A001") // They should show up in search. c.C("A002 search answered") c.S("* SEARCH 10 20 30 40 50") c.OK("A002") }) } func TestSearchBcc(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search bcc "dovecot@procontrol.fi"`) c.S("* SEARCH 49 50") c.OK("A001") // Search is also case-insensitive. c.C(`A001 search bcc "dovecot@PROcontrol.FI"`) c.S("* SEARCH 49 50") c.OK("A001") }) } func TestSearchBefore(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // None c.C(`A001 search before 13-Aug-1982`) c.S("* SEARCH") c.OK("A001") // All c.C(`A001 search before 13-Aug-2200`) c.S("* SEARCH " + seq(1, 100)) c.OK("A001") // Earliest messages c.C(`A001 search before 30-Jul-2002`) c.S("* SEARCH 1 2") c.OK("A001") }) } func TestSearchBody(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search body "Content-Length saves just the size of mail body"`) c.S("* SEARCH 50") c.OK("A001") // Search is also case-insensitive. c.C(`A001 search body "Content-LenGTH sAvEs just the size of MaiL body"`) c.S("* SEARCH 50") c.OK("A001") }) } func TestSearchCc(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search cc "Dovecot Mailinglist "`) c.S("* SEARCH 53 55 60") c.OK("A001") // Search is also case-insensitive. c.C(`A001 search cc "DoVeCot Mailinglist "`) c.S("* SEARCH 53 55 60") c.OK("A001") }) } func TestSearchDeleted(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Set some messages as deleted. c.C(`A001 STORE 10,20,30,40,50 +FLAGS (\Deleted)`).OK("A001") // They should show up in search. c.C("A002 search deleted") c.S("* SEARCH 10 20 30 40 50") c.OK("A002") }) } func TestSearchDraft(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Set some messages as draft. c.C(`A001 STORE 10,20,30,40,50 +FLAGS (\Draft)`).OK("A001") // They should show up in search. c.C("A002 search draft") c.S("* SEARCH 10 20 30 40 50") c.OK("A002") }) } func TestSearchFlagged(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Set some messages as flagged. c.C(`A001 STORE 10,20,30,40,50 +FLAGS (\Flagged)`).OK("A001") // They should show up in search. c.C("A002 search flagged") c.S("* SEARCH 10 20 30 40 50") c.OK("A002") }) } func TestSearchFrom(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search from "\"Vanessa Lintner\" "`) c.S("* SEARCH 5") c.OK("A001") c.C(`A001 search from "reply@seekercenter.net"`) c.S("* SEARCH 5") c.OK("A001") c.C(`A001 search from "reply@seeKERcenTER.net"`) c.S("* SEARCH 5") c.OK("A001") }) } func TestSearchHeader(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search header Message-ID "<20020723193923.J22431@irccrew.org>"`) c.S("* SEARCH 1") c.OK("A001") c.C(`A002 search header Message-ID "<20020807065824.C16470@irccrew.org>"`) c.S("* SEARCH 10") c.OK("A002") c.C(`A003 search header Message-ID "<006701c24183$c7f10d60$0200a8c0@eero>"`) c.S("* SEARCH 20") c.OK("A003") }) } func TestSearchKeyword(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Set some messages as with a custom flag. c.C(`A001 STORE 10,20,30,40,50 +FLAGS (my-special-flag)`).OK("A001") // They should show up in search. c.C("A002 search keyword my-special-flag") c.S("* SEARCH 10 20 30 40 50") c.OK("A002") }) } func TestSearchLarger(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C("A001 search larger 9500") c.S("* SEARCH 47 48") c.OK("A001") }) } func TestSearchNew(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Initially all messages are recent and none are seen. Thus they are all new. c.C("A001 search new") c.S("* SEARCH " + seq(1, 100)) c.OK("A001") // Mark most as seen. c.C(`A002 STORE 11:* +FLAGS (\Seen)`).OK("A002") // Only the unseen ones are still new. c.C("A003 search new") c.S("* SEARCH " + seq(1, 10)) c.OK("A003") }) } func TestSearchNot(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Set some messages as deleted. c.C(`A001 STORE 50:* +FLAGS (\Deleted)`).OK("A001") // The first half are deleted. c.C("A002 search deleted") c.S("* SEARCH " + seq(50, 100)) c.OK("A002") // The second half are not deleted. c.C("A003 search not deleted") c.S("* SEARCH " + seq(1, 49)) c.OK("A003") }) } func TestSearchOld(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Initially all messages are recent so none are old. c.C("A001 search old") c.S("* SEARCH") c.OK("A001") // Re-select the mailbox. c.Cf("A002 select %v", mbox).OK("A002") // Now no messages are recent; all of them are old. c.C("A003 search old") c.S("* SEARCH " + seq(1, 100)) c.OK("A003") // Create a new message; it will be recent and thus not old. c.doAppend(mbox, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") // It will be returned in the search result. c.C("A004 search old") c.S("* SEARCH " + seq(1, 100)) c.OK("A004") c.C("A005 search not recent") c.S("* SEARCH " + seq(1, 100)) c.OK("A005") }) } func TestSearchOn(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // None c.C(`A001 search on 13-Aug-1982`) c.S("* SEARCH") c.OK("A001") // One c.C(`A001 search on 23-Jul-2002`) c.S("* SEARCH 1") c.OK("A001") // More c.C(`A001 search on 26-Nov-2002`) c.S("* SEARCH 99 100") c.OK("A001") }) } func TestSearchSentOnAndOn(t *testing.T) { // Test search senton/on when internal date (e.g. 11-Aug-2002) and // header date (10-Aug-2002) are different. runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search on 10-Aug-2002`) c.S("* SEARCH") c.OK("A001") c.C(`A001 search senton 10-Aug-2002`) c.S("* SEARCH 19") c.OK("A001") c.C(`A001 search on 11-Aug-2002`) c.S("* SEARCH 19") c.OK("A001") c.C(`A001 search senton 11-Aug-2002`) c.S("* SEARCH") c.OK("A001") }) } func TestSearchOr(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Set some messages as deleted. c.C(`A001 STORE 1:30 +FLAGS (\Deleted)`).OK("A001") // Set some messages as seen. c.C(`A002 STORE 10:40 +FLAGS (\Seen)`).OK("A002") // Set some messages as draft. c.C(`A003 STORE 20:50 +FLAGS (\Draft)`).OK("A003") // 1:40 are deleted or seen. c.C("A004 search or deleted seen") c.S("* SEARCH " + seq(1, 40)) c.OK("A004") // 10:50 are seen or draft. c.C("A004 search or seen draft") c.S("* SEARCH " + seq(10, 50)) c.OK("A004") // 1:50 are deleted, seen or draft. c.C("A004 search or or deleted seen draft") c.S("* SEARCH " + seq(1, 50)) c.OK("A004") // Alternative way of writing deleted, seen or draft. c.C("A004 search or deleted or seen draft") c.S("* SEARCH " + seq(1, 50)) c.OK("A004") // 1:9,41:50 are not seen but either deleted or draft. c.C("A004 search not seen or deleted draft") c.S("* SEARCH " + seq(1, 9) + " " + seq(41, 50)) c.OK("A004") }) } func TestSearchRecent(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Initially all messages are recent. c.C("A001 search recent") c.S("* SEARCH " + seq(1, 100)) c.OK("A001") // Re-select the mailbox. c.Cf("A002 select %v", mbox).OK("A002") // Now no messages are recent. c.C("A003 search recent") c.S("* SEARCH") c.OK("A003") // Create a new message; it will be recent. c.doAppend(mbox, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") // It will be returned in the search result. c.C("A004 search recent") c.S("* SEARCH 101") c.OK("A004") }) } func TestSearchSeen(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Initially no messages are seen. c.C("A001 search seen") c.S("* SEARCH") c.OK("A001") // Set some messages as seen. c.C(`A002 STORE 10,20,30,40,50 +FLAGS (\Seen)`).OK("A002") // They should show up in search. c.C("A003 search seen") c.S("* SEARCH 10 20 30 40 50") c.OK("A003") }) } func TestSearchSentBefore(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search sentbefore 10-Aug-2002`) c.S("* SEARCH " + seq(1, 18)) c.OK("A001") }) } func TestSearchSentSinceAndSentBefore(t *testing.T) { // The result of this test should be no messages in the search result. Due to timezone adjustments, by // mail.ParseDate the date was being converted to 17 Feb 2003 22:29:37 +000, causing the search to pass // rather than fail. runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.doAppend("INBOX", buildRFC5322TestLiteral("Date: 18 Feb 2003 00:29:37 +0200\n\nTo: foo@foo.com\r\n")) c.C(`A002 SELECT INBOX`) c.Se(`A002 OK [READ-WRITE] SELECT`) t := time.Now() c.C(fmt.Sprintf(`A001 search since %s sentbefore 18-Feb-2003`, t.Format("02-Jan-2006"))) c.S("* SEARCH") c.OK("A001") }) } func TestSearchSentOn(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search senton 22-Aug-2002`) c.S("* SEARCH 21") c.OK("A001") }) } func TestSearchSentSince(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search sentsince 13-Nov-2002`) c.S("* SEARCH " + seq(93, 100)) c.OK("A001") }) } func TestSearchSince(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // None c.C(`A001 search since 13-Aug-2200`) c.S("* SEARCH") c.OK("A001") // All c.C(`A001 search since 13-Aug-1982`) c.S("* SEARCH " + seq(1, 100)) c.OK("A001") // Latest messages c.C(`A001 search since 26-Nov-2002`) c.S("* SEARCH 99 100") c.OK("A001") }) } func TestSearchSmaller(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C("A001 search smaller 1250") c.S("* SEARCH 1 8 83") c.OK("A001") }) } func TestSearchSubject(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search subject "first test mail"`) c.S("* SEARCH 1") c.OK("A001") c.C(`A002 search subject "v0.96 released"`) c.S("* SEARCH 16") c.OK("A002") c.C(`A003 search subject "mbox problems"`) c.S("* SEARCH 100") c.OK("A003") // Subject search is case-insensitive. c.C(`A003 search subject "MBOX PROBLEMS"`) c.S("* SEARCH 100") c.OK("A003") }) } func TestSearchText(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Search something from the header. c.C(`A001 search text "Message-ID: <006701c24183$c7f10d60$0200a8c0@eero>"`) c.S("* SEARCH 20") c.OK("A001") // Search something from the body. c.C(`A002 search text "Content-Length saves just the size of mail body"`) c.S("* SEARCH 50") c.OK("A002") // Text search is case-insensitive. c.C(`A002 search text "ContenT-LeNgTh saveS jUst the Size of mail body"`) c.S("* SEARCH 50") c.OK("A002") }) } func TestSearchTo(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search to "Timo Sirainen "`) c.S("* SEARCH 49") c.OK("A001") c.C(`A001 search to "Timo SirAINEN "`) c.S("* SEARCH 49") c.OK("A001") }) } func TestUIDSearchTo(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Remove some messages to ensure sequence doesn't match uid c.C(`A002 STORE 10,20,30,40,50 +FLAGS (\DELETED)`).OK("A002") c.C(`A003 EXPUNGE`).OK("A003") c.C(`A001 UID search to "Timo Sirainen "`) c.S("* SEARCH 49") c.OK("A001") }) } func TestSearchUID(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search uid 1`) c.S("* SEARCH 1") c.OK("A001") c.C(`A002 search uid 1:10`) c.S("* SEARCH " + seq(1, 10)) c.OK("A002") c.C(`A003 search uid 1:10,2:20,3:30,4:40,5:50`) c.S("* SEARCH " + seq(1, 50)) c.OK("A003") c.C(`A003 search uid *:1`) c.S("* SEARCH " + seq(1, 100)) c.OK("A003") }) } func TestSearchUIDAfterDelete(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Remove some messages to ensure sequence doesn't match uid c.C(`A002 STORE 5,6,7 +FLAGS (\DELETED)`).OK("A002") c.C(`A003 EXPUNGE`).OK("A003") c.C(`A002 search uid 1:10`) c.S("* SEARCH " + seq(1, 7)) c.OK("A002") }) } func TestSearchUnanswered(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Initially, nothing is answered; everything is unanswered. c.C("A001 search unanswered") c.S("* SEARCH " + seq(1, 100)) c.OK("A001") // Set some messages as answered. c.C(`A002 STORE 50:* +FLAGS (\Answered)`).OK("A002") // The rest should now show up in the search. c.C("A003 search unanswered") c.S("* SEARCH " + seq(1, 49)) c.OK("A003") // Negated query should return the same results. c.C("A004 search not answered") c.S("* SEARCH " + seq(1, 49)) c.OK("A004") }) } func TestSearchUndeleted(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Initially, nothing is deleted; everything is undeleted. c.C("A001 search undeleted") c.S("* SEARCH " + seq(1, 100)) c.OK("A001") // Set some messages as deleted. c.C(`A002 STORE 50:* +FLAGS (\Deleted)`).OK("A002") // The rest should now show up in the search. c.C("A003 search undeleted") c.S("* SEARCH " + seq(1, 49)) c.OK("A003") // Negated query should return the same results. c.C("A004 search not deleted") c.S("* SEARCH " + seq(1, 49)) c.OK("A004") }) } func TestSearchUndraft(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Initially, nothing is draft; everything is undraft. c.C("A001 search undraft") c.S("* SEARCH " + seq(1, 100)) c.OK("A001") // Set some messages as draft. c.C(`A002 STORE 50:* +FLAGS (\Draft)`).OK("A002") // The rest should now show up in the search. c.C("A003 search undraft") c.S("* SEARCH " + seq(1, 49)) c.OK("A003") // Negated query should return the same results. c.C("A004 search not draft") c.S("* SEARCH " + seq(1, 49)) c.OK("A004") }) } func TestSearchUnflagged(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Initially, nothing is flagged; everything is unflagged. c.C("A001 search unflagged") c.S("* SEARCH " + seq(1, 100)) c.OK("A001") // Set some messages as flagged. c.C(`A002 STORE 50:* +FLAGS (\Flagged)`).OK("A002") // The rest should now show up in the search. c.C("A003 search unflagged") c.S("* SEARCH " + seq(1, 49)) c.OK("A003") // Negated query should return the same results. c.C("A004 search not flagged") c.S("* SEARCH " + seq(1, 49)) c.OK("A004") }) } func TestSearchUnkeyword(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Initially, nothing has a custom flag; everything is "unkeyword". c.C("A001 search unkeyword my-special-flag") c.S("* SEARCH " + seq(1, 100)) c.OK("A001") // Set some messages with the custom flag. c.C(`A002 STORE 50:* +FLAGS (my-special-flag)`).OK("A002") // The rest should now show up in the search. c.C("A003 search unkeyword my-special-flag") c.S("* SEARCH " + seq(1, 49)) c.OK("A003") // Negated query should return the same results. c.C("A004 search not keyword my-special-flag") c.S("* SEARCH " + seq(1, 49)) c.OK("A004") }) } func TestSearchUnseen(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Initially, nothing is seen; everything is unseen. c.C("A001 search unseen") c.S("* SEARCH " + seq(1, 100)) c.OK("A001") // Set some messages as seen. c.C(`A002 STORE 50:* +FLAGS (\Seen)`).OK("A002") // The rest should now show up in the search. c.C("A003 search unseen") c.S("* SEARCH " + seq(1, 49)) c.OK("A003") // Negated query should return the same results. c.C("A004 search not seen") c.S("* SEARCH " + seq(1, 49)) c.OK("A004") }) } func TestSearchSeqSet(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search 1`) c.S("* SEARCH 1") c.OK("A001") c.C(`A002 search 1:10`) c.S("* SEARCH " + seq(1, 10)) c.OK("A002") c.C(`A003 search 1:10,2:20,3:30,4:40,5:50`) c.S("* SEARCH " + seq(1, 50)) c.OK("A003") c.C(`A003 search *:1`) c.S("* SEARCH " + seq(1, 100)) c.OK("A003") }) } func TestSearchSeqSetFrom(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A001 search 1:2,4:6,30:31 from "\"Vanessa Lintner\" "`) c.S("* SEARCH 5") c.OK("A001") }) } func TestUIDSearchSeqSetFrom(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { c.C(`A002 STORE 1:4,10:80 +FLAGS (\DELETED)`).OK("A002") c.C(`A003 EXPUNGE`).OK("A003") c.C(`A001 UID search 1:* UID 1:10 from "\"Vanessa Lintner\" "`) c.S("* SEARCH 5") c.OK("A001") }) } func TestSearchList(t *testing.T) { runOneToOneTestWithData(t, defaultServerOptions(t), func(c *testConnection, s *testSession, mbox string, mboxID imap.MailboxID) { // Set some messages as deleted. c.C(`A001 STORE 1:30 +FLAGS (\Deleted)`).OK("A001") // Set some messages as seen. c.C(`A002 STORE 10:40 +FLAGS (\Seen)`).OK("A002") // Set some messages as seen. c.C(`A003 STORE 20:50 +FLAGS (\Draft)`).OK("A003") // 10:30 are deleted and seen. c.C("A004 search (deleted seen)") c.S("* SEARCH " + seq(10, 30)) c.OK("A004") // 20:40 are seen and draft. c.C("A004 search (seen draft)") c.S("* SEARCH " + seq(20, 40)) c.OK("A004") // 20:30 are deleted, seen and draft. c.C("A004 search (deleted seen draft)") c.S("* SEARCH " + seq(20, 30)) c.OK("A004") }) } func enc(text, encoding string) []byte { enc, err := htmlindex.Get(encoding) if err != nil { panic(err) } b, err := enc.NewEncoder().Bytes([]byte(text)) if err != nil { panic(err) } return b } gluon-0.17.0/tests/select_test.go000066400000000000000000000051641445200213000167270ustar00rootroot00000000000000package tests import ( "testing" "github.com/ProtonMail/gluon/imap" ) func TestSelect(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withUIDValidityGenerator(imap.NewFixedUIDValidityGenerator(imap.UID(1)))), func(c *testConnection, _ *testSession) { c.C("A002 CREATE Archive") c.OK("A002") c.doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") c.doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c.doAppend(`Archive`, buildRFC5322TestLiteral(`To: 3@pm.me`), `\Seen`).expect("OK") c.C("A006 select INBOX") c.S(`* FLAGS (\Deleted \Flagged \Seen)`, `* 2 EXISTS`, `* 2 RECENT`, `* OK [UNSEEN 2] Unseen messages`, `* OK [PERMANENTFLAGS (\Deleted \Flagged \Seen)] Flags permitted`, `* OK [UIDNEXT 3] Predicted next UID`, `* OK [UIDVALIDITY 1] UIDs valid`) c.S("A006 OK [READ-WRITE] SELECT") // Selecting again modifies the RECENT value. c.C("A006 select INBOX") c.S(`* FLAGS (\Deleted \Flagged \Seen)`, `* 2 EXISTS`, `* 0 RECENT`, `* OK [UNSEEN 2] Unseen messages`, `* OK [PERMANENTFLAGS (\Deleted \Flagged \Seen)] Flags permitted`, `* OK [UIDNEXT 3] Predicted next UID`, `* OK [UIDVALIDITY 1] UIDs valid`) c.S("A006 OK [READ-WRITE] SELECT") c.C("A007 select Archive") c.S(`* FLAGS (\Deleted \Flagged \Seen)`, `* 1 EXISTS`, `* 1 RECENT`, `* OK [PERMANENTFLAGS (\Deleted \Flagged \Seen)] Flags permitted`, `* OK [UIDNEXT 2] Predicted next UID`, `* OK [UIDVALIDITY 1] UIDs valid`) c.S(`A007 OK [READ-WRITE] SELECT`) }) } func TestSelectNoSuchMailbox(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("a003 select What") c.Sx("a003 NO .*") }) } func TestSelectUTF7(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { // Test we can create a mailbox with a UTF-7 name. c.C("A003 CREATE &ZeVnLIqe-").OK("A003") // Test we can select the mailbox. c.C("A004 SELECT &ZeVnLIqe-").OK("A004") // The mailbox should appear in LIST responses with the same UTF-7 encoding. c.C(`A005 LIST "" "*"`).Sxe(`&ZeVnLIqe-`).OK(`A005`) }) } func TestSelectWithNilDelimiter(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter("")), func(c *testConnection, _ *testSession) { // Test we can create a mailbox with a UTF-7 name. c.C("a CREATE A").OK("a") c.C("a CREATE A/B").OK("a") c.C("a CREATE A/B/C").OK("a") // Test we can select the mailbox. c.C("A001 SELECT A").OK("A001") c.C("A002 SELECT A/B").OK("A002") c.C("A003 SELECT A/B/C").OK("A003") }) } gluon-0.17.0/tests/sequence_range_test.go000066400000000000000000000111641445200213000204310ustar00rootroot00000000000000package tests import ( "testing" ) func TestSequenceRange(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("a001 CREATE mbox1") c.S("a001 OK CREATE") c.C("a002 CREATE mbox2") c.S("a002 OK CREATE") c.C(`A003 SELECT mbox1`) c.Se(`A003 OK [READ-WRITE] SELECT`) // return BAD for any sequence range in an empty mailbox c.C(`A004 FETCH 1 (FLAGS)`).BAD(`A004`) c.C(`A005 FETCH * (FLAGS)`).BAD(`A005`) c.C(`A006 FETCH 1:* (FLAGS)`).BAD(`A006`) c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 3@pm.me`)).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 4@pm.me`)).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 5@pm.me`)).expect("OK") // test various set of ranges with STORE, FETCH, MOVE & COPY c.C(`A007 FETCH 1 (FLAGS)`) c.Sx(`\* 1 FETCH`) c.OK(`A007`) c.C(`A008 FETCH 6 (FLAGS)`).BAD(`A008`) c.C(`A009 FETCH 1,3:4 (FLAGS)`) for i := 0; i < 3; i++ { c.Sx(`\* \d FETCH`) } c.OK(`A009`) c.C(`A010 STORE 1,2,3,4 +FLAGS (flag)`) for i := 0; i < 4; i++ { c.Sx(`\* \d FETCH \(FLAGS \(\\Recent flag\)\)`) } c.OK(`A010`) c.C(`A011 COPY 1,3:* mbox2`) c.OK(`A011`) c.C(`A012 COPY 6:* mbox2`).BAD(`A012`) c.C(`A012 COPY 6:* mbox2`).BAD(`A012`) c.C(`A013 MOVE 1,5,3 mbox2`) c.Sx(`\* OK \[COPYUID`) for i := 0; i < 3; i++ { c.Sx(`\* \d EXPUNGE`) } c.OK(`A013`) // test ranges given in reverse order c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 6@pm.me`)).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 7@pm.me`)).expect("OK") c.C(`A014 STORE 4:2 -FLAGS (flag)`) c.Sx(`\* 2 FETCH `) // 2 was the only message in 4:2 to have flag set c.OK(`A014`) c.C(`A015 COPY *:1 mbox2`) c.OK(`A015`) c.C(`A016 COPY 7:5 mbox2`).BAD(`A016`) c.C(`A017 COPY 4:3,2:1 mbox2`) c.OK(`A017`) }) } func TestUIDSequenceRange(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { // UID based operation will send an OK response for any grammatically valid UID sequence set // if no message match the UID sequence set, the operations simply return OK with no untagged response before. c.C("a001 CREATE mbox1") c.S("a001 OK CREATE") c.C("a002 CREATE mbox2") c.S("a002 OK CREATE") c.C(`A003 SELECT mbox1`) c.Se(`A003 OK [READ-WRITE] SELECT`) // return OK for any UID sequence range in an empty mailbox c.C(`A004 UID FETCH 1 (FLAGS)`) c.OK(`A004`) c.C(`A005 UID FETCH * (FLAGS)`) c.OK(`A005`) c.C(`A006 UID FETCH 1:* (FLAGS)`) c.OK(`A006`) c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 3@pm.me`)).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 4@pm.me`)).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 5@pm.me`)).expect("OK") //// test various set of ranges with STORE, FETCH, MOVE & COPY c.C(`A007 UID FETCH 1 (FLAGS)`) c.Sx(`\* 1 FETCH`) c.OK(`A007`) c.C(`A008 UID FETCH 6 (FLAGS)`) c.OK(`A008`) c.C(`A009 UID FETCH 1,3:4 (FLAGS)`) for i := 0; i < 3; i++ { c.Sx(`\* \d FETCH .*`) } c.OK(`A009`) c.C(`A010 UID STORE 1,2,3,4 +FLAGS (flag)`) for i := 0; i < 4; i++ { c.Sx(`\* \d FETCH \(FLAGS \(\\Recent flag\) UID \d\)`) } c.OK(`A010`) c.C(`A011 UID COPY 1,3:* mbox2`) c.OK(`A011`) c.C(`A012 UID COPY 6:* mbox2`) c.OK(`A012`) c.C(`A012 UID COPY 1:* mbox2`) c.Sx(`A012 OK \[COPYUID`) c.C(`A013 UID MOVE 1,5,3 mbox2`) c.Sx(`\* OK \[COPYUID`) for i := 0; i < 3; i++ { c.Sx(`\* \d EXPUNGE`) } c.OK(`A013`) // test ranges given in reverse order c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 6@pm.me`)).expect("OK") c.doAppend(`mbox1`, buildRFC5322TestLiteral(`To: 7@pm.me`)).expect("OK") c.C(`A014 UID STORE 4:2 -FLAGS (flag)`) for i := 0; i < 2; i++ { c.Sx(`\* \d FETCH`) } c.OK(`A014`) c.C(`A015 UID COPY *:1 mbox2`) c.OK(`A015`) c.C(`A016 UID COPY 7:5 mbox2`) c.OK(`A016`) c.C(`A017 UID COPY 4:3,1,2:1 mbox2`) c.OK(`A017`) }) } func TestWildcard(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { // Create an empty mailbox. c.C("tag create mbox").OK("tag") c.C("tag select mbox").OK("tag") // FETCH with wildcard returns BAD. c.C("tag fetch * (flags)").BAD("tag") // UID FETCH with wildcard returns OK. c.C("tag uid fetch * (flags)").OK("tag") }) } gluon-0.17.0/tests/server_test.go000066400000000000000000000252501445200213000167540ustar00rootroot00000000000000package tests import ( "context" "crypto/tls" "encoding/hex" "fmt" "net" "path/filepath" "testing" "time" "github.com/ProtonMail/gluon" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/db_impl" "github.com/ProtonMail/gluon/internal/hash" "github.com/ProtonMail/gluon/limits" "github.com/ProtonMail/gluon/logging" "github.com/ProtonMail/gluon/reporter" "github.com/ProtonMail/gluon/store" "github.com/ProtonMail/gluon/version" "github.com/bradenaw/juniper/xslices" "github.com/emersion/go-imap/client" "github.com/google/uuid" "github.com/sirupsen/logrus" "github.com/stretchr/testify/require" "golang.org/x/exp/slices" ) const defaultPeriod = time.Second var ( defaultFlags = imap.NewFlagSet(imap.FlagSeen, imap.FlagFlagged, imap.FlagDeleted) defaultPermanentFlags = imap.NewFlagSet(imap.FlagSeen, imap.FlagFlagged, imap.FlagDeleted) defaultAttributes = imap.NewFlagSet() ) type credentials struct { usernames []string password string } var testServerVersionInfo = version.Info{ Name: "gluon-test-server", Version: version.Version{Major: 1, Minor: 1, Patch: 1}, Vendor: "Proton", SupportURL: "", } type connectorBuilder interface { New(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) Connector } type dummyConnectorBuilder struct{} func (*dummyConnectorBuilder) New(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) Connector { return connector.NewDummy( usernames, password, period, flags, permFlags, attrs, ) } type serverOptions struct { credentials []credentials delimiter string loginJailTime time.Duration dataDir string databaseDir string idleBulkTime time.Duration storeBuilder store.Builder connectorBuilder connectorBuilder disableParallelism bool imapLimits limits.IMAP reporter reporter.Reporter uidValidityGenerator imap.UIDValidityGenerator database db.ClientInterface } func (s *serverOptions) defaultUsername() string { return s.credentials[0].usernames[0] } func (s *serverOptions) defaultPassword() string { return s.credentials[0].password } func (s *serverOptions) password(username string) string { return s.credentials[xslices.IndexFunc(s.credentials, func(cred credentials) bool { return slices.Contains(cred.usernames, username) })].password } type serverOption interface { apply(options *serverOptions) } type delimiterServerOption struct { delimiter string } func (d *delimiterServerOption) apply(options *serverOptions) { options.delimiter = d.delimiter } type idleBulkTimeOption struct { idleBulkTime time.Duration } func (d *idleBulkTimeOption) apply(options *serverOptions) { options.idleBulkTime = d.idleBulkTime } type dataDirOption struct { dir string } func (opt *dataDirOption) apply(options *serverOptions) { options.dataDir = opt.dir } type databaseDirOption struct { dir string } func (opt *databaseDirOption) apply(options *serverOptions) { options.databaseDir = opt.dir } type credentialsSeverOption struct { credentials []credentials } func (c *credentialsSeverOption) apply(options *serverOptions) { options.credentials = c.credentials } type storeBuilderOption struct { builder store.Builder } func (s *storeBuilderOption) apply(options *serverOptions) { options.storeBuilder = s.builder } type connectorBuilderOption struct { builder connectorBuilder } func (c *connectorBuilderOption) apply(options *serverOptions) { options.connectorBuilder = c.builder } type disableParallelism struct{} func (disableParallelism) apply(options *serverOptions) { options.disableParallelism = true } type imapLimits struct { limits limits.IMAP } func (m imapLimits) apply(options *serverOptions) { options.imapLimits = m.limits } type reporterOption struct { reporter reporter.Reporter } func (r reporterOption) apply(options *serverOptions) { options.reporter = r.reporter } type uidValidityGeneratorOption struct { generator imap.UIDValidityGenerator } type withDatabaseOption struct { database db.ClientInterface } func (w withDatabaseOption) apply(options *serverOptions) { options.database = w.database } func (u uidValidityGeneratorOption) apply(options *serverOptions) { options.uidValidityGenerator = u.generator } func withIdleBulkTime(idleBulkTime time.Duration) serverOption { return &idleBulkTimeOption{idleBulkTime: idleBulkTime} } func withDelimiter(delimiter string) serverOption { return &delimiterServerOption{delimiter: delimiter} } func withDataDir(dir string) serverOption { return &dataDirOption{dir: dir} } func withCredentials(credentials []credentials) serverOption { return &credentialsSeverOption{credentials: credentials} } func withStoreBuilder(builder store.Builder) serverOption { return &storeBuilderOption{builder: builder} } func withConnectorBuilder(builder connectorBuilder) serverOption { return &connectorBuilderOption{builder: builder} } func withDisableParallelism() serverOption { return &disableParallelism{} } func withIMAPLimits(limits limits.IMAP) serverOption { return &imapLimits{limits: limits} } func withReporter(reporter reporter.Reporter) serverOption { return &reporterOption{reporter: reporter} } func withUIDValidityGenerator(generator imap.UIDValidityGenerator) serverOption { return &uidValidityGeneratorOption{generator: generator} } func withDatabaseDir(dir string) serverOption { return &databaseDirOption{dir: dir} } func withDatabase(ci db.ClientInterface) serverOption { return &withDatabaseOption{database: ci} } func defaultServerOptions(tb testing.TB, modifiers ...serverOption) *serverOptions { options := &serverOptions{ credentials: []credentials{{ usernames: []string{"user"}, password: "pass", }}, delimiter: "/", loginJailTime: time.Second, dataDir: filepath.Join(tb.TempDir(), "backend", "store"), databaseDir: filepath.Join(tb.TempDir(), "backend", "db"), idleBulkTime: time.Duration(500 * time.Millisecond), storeBuilder: &store.OnDiskStoreBuilder{}, connectorBuilder: &dummyConnectorBuilder{}, imapLimits: limits.DefaultLimits(), database: db_impl.NewSQLiteDB(), } for _, op := range modifiers { op.apply(options) } return options } // runServer initializes and starts the mailserver. func runServer(tb testing.TB, options *serverOptions, tests func(session *testSession)) { loggerIn := logrus.StandardLogger().WriterLevel(logrus.TraceLevel) defer loggerIn.Close() loggerOut := logrus.StandardLogger().WriterLevel(logrus.TraceLevel) defer loggerOut.Close() // Create a test reporter to capture reported messages. reporter := new(testReporter) // Log the (temporary?) directory to store gluon data. logrus.Tracef("Gluon Data Dir: %v", options.dataDir) gluonOptions := []gluon.Option{ gluon.WithDataDir(options.dataDir), gluon.WithDatabaseDir(options.databaseDir), gluon.WithDelimiter(options.delimiter), gluon.WithLoginJailTime(options.loginJailTime), gluon.WithTLS(&tls.Config{ Certificates: []tls.Certificate{testCert}, MinVersion: tls.VersionTLS13, }), gluon.WithLogger( loggerIn, loggerOut, ), gluon.WithVersionInfo( testServerVersionInfo.Version.Major, testServerVersionInfo.Version.Minor, testServerVersionInfo.Version.Patch, testServerVersionInfo.Name, testServerVersionInfo.Vendor, testServerVersionInfo.SupportURL, ), gluon.WithIdleBulkTime(options.idleBulkTime), gluon.WithStoreBuilder(options.storeBuilder), gluon.WithReporter(reporter), gluon.WithIMAPLimits(options.imapLimits), gluon.WithDBClient(options.database), } if options.disableParallelism { gluonOptions = append(gluonOptions, gluon.WithDisableParallelism()) } if options.reporter != nil { gluonOptions = append(gluonOptions, gluon.WithReporter(options.reporter)) } if options.uidValidityGenerator != nil { gluonOptions = append(gluonOptions, gluon.WithUIDValidityGenerator(options.uidValidityGenerator)) } // Create a new gluon server. server, err := gluon.New(gluonOptions...) require.NoError(tb, err) // Watch server events. eventCh := server.AddWatcher() ctx, cancel := context.WithCancel(context.Background()) defer cancel() userIDs := make(map[string]string) conns := make(map[string]Connector) dbPaths := make(map[string]string) for _, creds := range options.credentials { conn := options.connectorBuilder.New( creds.usernames, []byte(creds.password), defaultPeriod, defaultFlags, defaultPermanentFlags, defaultAttributes, ) // Force USER ID to be consistent. userID := hex.EncodeToString(hash.SHA256([]byte(creds.usernames[0]))) // Load the user. _, err := server.LoadUser(ctx, conn, userID, []byte(creds.password)) require.NoError(tb, err) // Trigger a sync of the user's data. require.NoError(tb, conn.Sync(ctx)) for _, username := range creds.usernames { userIDs[username] = userID } conns[userID] = conn dbPaths[userID] = filepath.Join(server.GetDatabasePath(), fmt.Sprintf("%v.db", userID)) } listener, err := net.Listen("tcp", net.JoinHostPort("localhost", "0")) require.NoError(tb, err) // Start the server. require.NoError(tb, server.Serve(ctx, listener)) // Run the test against the server. logging.DoAnnotated(ctx, func(context.Context) { tests(newTestSession(tb, listener, server, eventCh, reporter, userIDs, conns, dbPaths, options)) }, logging.Labels{ "Action": "Running gluon tests", }) // Flush and remove user before shutdown. for userID, conn := range conns { conn.Flush() require.NoError(tb, server.RemoveUser(ctx, userID, false)) } // Expect the server to shut down successfully when closed. require.NoError(tb, server.Close(ctx)) require.NoError(tb, <-server.GetErrorCh()) require.NoError(tb, listener.Close()) } func withConnections(tb testing.TB, s *testSession, connIDs []int, tests func(map[int]*testConnection)) { conns := make(map[int]*testConnection) for _, connID := range connIDs { conns[connID] = s.newConnection() } tests(conns) for _, connection := range conns { require.NoError(tb, connection.disconnect()) } } func withClients(tb testing.TB, s *testSession, connIDs []int, tests func(map[int]*client.Client)) { clients := make(map[int]*client.Client) for _, connID := range connIDs { clients[connID] = s.newClient() } tests(clients) for _, client := range clients { require.NoError(tb, client.Logout()) } } func withData(s *testSession, username string, tests func(string, imap.MailboxID)) { mbox := uuid.NewString() mboxID := s.mailboxCreated(username, []string{mbox}, "testdata/dovecot-crlf") tests(mbox, mboxID) } gluon-0.17.0/tests/session_test.go000066400000000000000000000305101445200213000171240ustar00rootroot00000000000000package tests import ( "context" "errors" "fmt" "io" "net" "os" "strings" "testing" "time" "github.com/ProtonMail/gluon" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/db" "github.com/ProtonMail/gluon/events" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/utils" "github.com/ProtonMail/go-mbox" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) type Connector interface { connector.Connector SetFolderPrefix(string) SetLabelsPrefix(string) MailboxCreated(imap.Mailbox) error MailboxDeleted(imap.MailboxID) error SetMailboxVisibility(imap.MailboxID, imap.MailboxVisibility) SetAllowMessageCreateWithUnknownMailboxID(value bool) MessageCreated(imap.Message, []byte, []imap.MailboxID) error MessagesCreated([]imap.Message, [][]byte, [][]imap.MailboxID) error MessageUpdated(imap.Message, []byte, []imap.MailboxID) error MessageAdded(imap.MessageID, imap.MailboxID) error MessageRemoved(imap.MessageID, imap.MailboxID) error MessageSeen(imap.MessageID, bool) error MessageFlagged(imap.MessageID, bool) error MessageDeleted(imap.MessageID) error UIDValidityBumped() GetLastRecordedIMAPID() imap.IMAPID Sync(context.Context) error Flush() SetUpdatesAllowedToFail(bool) } type testSession struct { tb testing.TB listener net.Listener server *gluon.Server eventCh <-chan events.Event reporter *testReporter userIDs map[string]string conns map[string]Connector userDBPaths map[string]string options *serverOptions } func newTestSession( tb testing.TB, listener net.Listener, server *gluon.Server, eventCh <-chan events.Event, reporter *testReporter, userIDs map[string]string, conns map[string]Connector, userDBPaths map[string]string, options *serverOptions, ) *testSession { return &testSession{ tb: tb, listener: listener, server: server, eventCh: eventCh, reporter: reporter, userIDs: userIDs, conns: conns, userDBPaths: userDBPaths, options: options, } } func (s *testSession) newConnection() *testConnection { conn, err := net.Dial(s.listener.Addr().Network(), s.listener.Addr().String()) require.NoError(s.tb, err) return newTestConnection(s.tb, conn).Sx(`\* OK.*`) } func (s *testSession) withConnection(user string, fn func(*testConnection)) { conn := s.newConnection() defer func() { require.NoError(s.tb, conn.disconnect()) }() fn(conn.Login(user, s.options.password(user))) } func (s *testSession) newClient() *client.Client { client, err := client.Dial(s.listener.Addr().String()) require.NoError(s.tb, err) return client } func (s *testSession) withUserDB(user string, fn func(client db.Client, ctx context.Context)) error { userID, ok := s.userIDs[user] if !ok { return fmt.Errorf("User not found") } client, _, err := s.options.database.New(s.server.GetDatabasePath(), userID) if err != nil { return err } fn(client, context.Background()) return client.Close() } func (s *testSession) setFolderPrefix(user, prefix string) { s.conns[s.userIDs[user]].SetFolderPrefix(prefix) } func (s *testSession) setLabelsPrefix(user, prefix string) { s.conns[s.userIDs[user]].SetLabelsPrefix(prefix) } func (s *testSession) mailboxCreated(user string, name []string, withData ...string) imap.MailboxID { return s.mailboxCreatedWithAttributes(user, name, defaultAttributes, withData...) } func (s *testSession) setAllowMessageCreateWithUnknownMailboxID(user string, value bool) { s.conns[s.userIDs[user]].SetAllowMessageCreateWithUnknownMailboxID(value) } func (s *testSession) mailboxDeleted(user string, id imap.MailboxID) { require.NoError(s.tb, s.conns[s.userIDs[user]].MailboxDeleted(id)) } func (s *testSession) mailboxCreatedWithAttributes(user string, name []string, attributes imap.FlagSet, withData ...string) imap.MailboxID { mboxID := imap.MailboxID(utils.NewRandomMailboxID()) require.NoError(s.tb, s.conns[s.userIDs[user]].MailboxCreated(imap.Mailbox{ ID: mboxID, Name: name, Flags: defaultFlags, PermanentFlags: defaultPermanentFlags, Attributes: attributes, })) for _, data := range withData { s.messagesCreatedFromMBox(user, mboxID, data) } s.conns[s.userIDs[user]].Flush() return mboxID } func (s *testSession) batchMailboxCreated(user string, count int, mailboxNameGen func(number int) string) []imap.MailboxID { var mboxIDs []imap.MailboxID for i := 0; i < count; i++ { mboxID := imap.MailboxID(utils.NewRandomMailboxID()) require.NoError(s.tb, s.conns[s.userIDs[user]].MailboxCreated(imap.Mailbox{ ID: mboxID, Name: []string{mailboxNameGen(i)}, Flags: defaultFlags, PermanentFlags: defaultPermanentFlags, Attributes: defaultAttributes, })) mboxIDs = append(mboxIDs, mboxID) } s.conns[s.userIDs[user]].Flush() return mboxIDs } func (s *testSession) mailboxCreatedCustom(user string, name []string, flags, permFlags, attrs imap.FlagSet) imap.MailboxID { mboxID := imap.MailboxID(utils.NewRandomMailboxID()) require.NoError(s.tb, s.conns[s.userIDs[user]].MailboxCreated(imap.Mailbox{ ID: mboxID, Name: name, Flags: flags, PermanentFlags: permFlags, Attributes: attrs, })) s.conns[s.userIDs[user]].Flush() return mboxID } func (s *testSession) messageCreatedWithMailboxes(user string, mailboxIDs []imap.MailboxID, literal []byte, internalDate time.Time, flags ...string) imap.MessageID { messageID := imap.MessageID(utils.NewRandomMessageID()) require.NoError(s.tb, s.conns[s.userIDs[user]].MessageCreated( imap.Message{ ID: messageID, Flags: imap.NewFlagSetFromSlice(flags), Date: internalDate, }, literal, mailboxIDs, )) s.conns[s.userIDs[user]].Flush() return messageID } func (s *testSession) messageCreated(user string, mailboxID imap.MailboxID, literal []byte, internalDate time.Time, flags ...string) imap.MessageID { messageID := imap.MessageID(utils.NewRandomMessageID()) s.messageCreatedWithID(user, messageID, mailboxID, literal, internalDate, flags...) return messageID } func (s *testSession) messageCreatedWithID(user string, messageID imap.MessageID, mailboxID imap.MailboxID, literal []byte, internalDate time.Time, flags ...string) { require.NoError(s.tb, s.conns[s.userIDs[user]].MessageCreated( imap.Message{ ID: messageID, Flags: imap.NewFlagSetFromSlice(flags), Date: internalDate, }, literal, []imap.MailboxID{mailboxID}, )) s.conns[s.userIDs[user]].Flush() } func (s *testSession) messageUpdatedWithID(user string, messageID imap.MessageID, mailboxID imap.MailboxID, literal []byte, internalDate time.Time, flags ...string) { require.NoError(s.tb, s.conns[s.userIDs[user]].MessageUpdated( imap.Message{ ID: messageID, Flags: imap.NewFlagSetFromSlice(flags), Date: internalDate, }, literal, []imap.MailboxID{mailboxID}, )) s.conns[s.userIDs[user]].Flush() } func (s *testSession) batchMessageCreated(user string, mailboxID imap.MailboxID, count int, createMessage func(int) ([]byte, []string)) []imap.MessageID { return s.batchMessageCreatedWithID(user, mailboxID, count, func(i int) (imap.MessageID, []byte, []string) { messageID := imap.MessageID(utils.NewRandomMessageID()) literal, flags := createMessage(i) return messageID, literal, flags }) } func (s *testSession) batchMessageCreatedWithID(user string, mailboxID imap.MailboxID, count int, createMessage func(int) (imap.MessageID, []byte, []string)) []imap.MessageID { var messageIDs []imap.MessageID messages := make([]imap.Message, 0, count) literals := make([][]byte, 0, count) mailboxes := make([][]imap.MailboxID, 0, count) for i := 0; i < count; i++ { messageID, literal, flags := createMessage(i) messages = append(messages, imap.Message{ ID: messageID, Flags: imap.NewFlagSetFromSlice(flags), Date: time.Now(), }) literals = append(literals, literal) mailboxes = append(mailboxes, []imap.MailboxID{mailboxID}) messageIDs = append(messageIDs, messageID) } require.NoError(s.tb, s.conns[s.userIDs[user]].MessagesCreated(messages, literals, mailboxes)) s.conns[s.userIDs[user]].Flush() return messageIDs } func (s *testSession) messageCreatedFromFile(user string, mailboxID imap.MailboxID, path string, flags ...string) imap.MessageID { literal, err := os.ReadFile(path) require.NoError(s.tb, err) return s.messageCreated(user, mailboxID, literal, time.Now(), flags...) } func (s *testSession) messagesCreatedFromMBox(user string, mailboxID imap.MailboxID, path string, flags ...string) { f, err := os.Open(path) require.NoError(s.tb, err) require.NoError(s.tb, forMessageInMBox(f, func(messageDelimiter, literal []byte) { // If possible use mbox delimiter time as internal date to able to // test cases where header and internal date are different. internalDate, err := parseDateFromDelimiter(string(messageDelimiter)) if err != nil { internalDate = time.Now() } s.messageCreated(user, mailboxID, literal, internalDate, flags...) })) require.NoError(s.tb, f.Close()) } func (s *testSession) messageAdded(user string, messageID imap.MessageID, mailboxID imap.MailboxID) { require.NoError(s.tb, s.conns[s.userIDs[user]].MessageAdded(messageID, mailboxID)) s.conns[s.userIDs[user]].Flush() } func (s *testSession) messageRemoved(user string, messageID imap.MessageID, mailboxID imap.MailboxID) { require.NoError(s.tb, s.conns[s.userIDs[user]].MessageRemoved(messageID, mailboxID)) s.conns[s.userIDs[user]].Flush() } func (s *testSession) messageDeleted(user string, messageID imap.MessageID) { require.NoError(s.tb, s.conns[s.userIDs[user]].MessageDeleted(messageID)) s.conns[s.userIDs[user]].Flush() } func (s *testSession) messageSeen(user string, messageID imap.MessageID, seen bool) { require.NoError(s.tb, s.conns[s.userIDs[user]].MessageSeen(messageID, seen)) s.conns[s.userIDs[user]].Flush() } func (s *testSession) messageFlagged(user string, messageID imap.MessageID, flagged bool) { require.NoError(s.tb, s.conns[s.userIDs[user]].MessageFlagged(messageID, flagged)) s.conns[s.userIDs[user]].Flush() } func (s *testSession) uidValidityBumped(user string) { s.conns[s.userIDs[user]].UIDValidityBumped() } func (s *testSession) flush(user string) { s.conns[s.userIDs[user]].Flush() } func (s *testSession) setUpdatesAllowedToFail(user string, value bool) { s.conns[s.userIDs[user]].SetUpdatesAllowedToFail(value) } func (s *testSession) removeAccount(t testing.TB, user string) string { userID := s.userIDs[user] s.conns[userID].Flush() require.NoError(t, s.server.RemoveUser(context.Background(), userID, true)) delete(s.conns, userID) delete(s.userIDs, user) return userID } func forMessageInMBox(rr io.Reader, fn func(messageDelimiter, literal []byte)) error { mr := mbox.NewReader(rr) var ( r io.Reader err error ) for r, err = mr.NextMessage(); err == nil; r, err = mr.NextMessage() { literal, err := io.ReadAll(r) if err != nil { return err } fn(mr.GetMessageDelimiter(), literal) } if !errors.Is(err, io.EOF) { return err } return nil } func parseDateFromDelimiter(messageDelimiter string) (t time.Time, err error) { split := strings.Split(messageDelimiter, " ") if len(split) <= 3 { return t, errors.New("not enough arguments in delimiter") } return time.Parse("Mon Jan _2 15:04:05 2006", strings.TrimSpace(strings.Join(split[2:], " "))) } func TestTooManyInvalidCommands(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { for i := 1; i <= 19; i++ { c.Cf("%d FOO", i).BAD(fmt.Sprintf("%d", i)) } // The next command should fail; the server should disconnect the client. c.Cf("100 FOO").BAD("100") // The client should be disconnected. _, err := c.conn.Read(make([]byte, 1)) require.Error(t, err) }) } func TestResetTooManyInvalidCommands(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { for i := 1; i <= 19; i++ { c.Cf("%d FOO", i).BAD(fmt.Sprintf("%d", i)) } // The next command should succeed; the counter should be reset. c.C("100 NOOP").OK("100") for i := 1; i <= 19; i++ { c.Cf("%d FOO", i).BAD(fmt.Sprintf("%d", i)) } // The next command should fail; the server should disconnect the client. c.Cf("100 FOO").BAD("100") // The client should be disconnected. _, err := c.conn.Read(make([]byte, 1)) require.Error(t, err) }) } gluon-0.17.0/tests/starttls_test.go000066400000000000000000000004361445200213000173250ustar00rootroot00000000000000package tests import "testing" func TestStartTLS(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { c.C("A001 starttls") c.S("A001 OK Begin TLS negotiation now") c.upgradeConnection() c.C("A002 noop") c.OK("A002") }) } gluon-0.17.0/tests/state_test.go000066400000000000000000000064431445200213000165710ustar00rootroot00000000000000package tests import ( "fmt" "testing" "time" "github.com/ProtonMail/gluon" "github.com/ProtonMail/gluon/connector" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/session" "github.com/ProtonMail/gluon/internal/state" "github.com/stretchr/testify/require" ) var ( notAuthenticatedCommands = []string{ `LOGIN user pass`, // `STARTTLS`, we allow upgrade to TLS after login. //`AUTHENTICATE GSSAPI`, not yet supported. } authenticatedCommands = []string{ `SELECT INBOX`, `EXAMINE INBOX`, `CREATE mbox`, `DELETE mbox`, `RENAME mbox mbox2`, `SUBSCRIBE mbox`, `UNSUBSCRIBE mbox`, `LIST "" *`, `LSUB "#news." "comp.mail.*"`, `STATUS INBOX (messages)`, `IDLE`, } selectedCommands = []string{ `CHECK`, `CLOSE`, `EXPUNGE`, `UID EXPUNGE 1`, `UNSELECT`, `SEARCH FLAGGED`, `FETCH 1 (UID)`, `STORE 1 +FLAGS (\Deleted)`, `COPY 1 INBOX`, `MOVE 1 INBOX`, `UID COPY 1 INBOX`, `UID MOVE 1 INBOX`, } ) func TestErrorsWhenAuthenticated(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { for i, command := range notAuthenticatedCommands { c.C(fmt.Sprintf("%d %v", i, command)) c.Sx(fmt.Sprintf("%d BAD %v", i, session.ErrAlreadyAuthenticated)) } }) } func TestErrorsWhenNotAuthenticated(t *testing.T) { runOneToOneTest(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { for i, command := range append(authenticatedCommands, selectedCommands...) { c.C(fmt.Sprintf("%d %v", i, command)) c.Sx(fmt.Sprintf("%d NO %v", i, session.ErrNotAuthenticated)) } // Currently, the parser requires to read the message content before the error can be reported. c.C(`A001 APPEND INBOX {2}`) c.Sx(`\+ `) c.C(`12`) c.Sx(fmt.Sprintf("NO %v", session.ErrNotAuthenticated)) }) } func TestErrorsWhenNotSelected(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { for i, command := range selectedCommands { c.C(fmt.Sprintf("%d %v", i, command)) c.Sx(fmt.Sprintf("%d NO %v", i, state.ErrSessionNotSelected)) } }) } func TestErrNoSuchMessage(t *testing.T) { connBuilder := &updateInjectorConnectorBuilder{ updateCh: make(chan imap.Update), } runOneToOneTestWithAuth(t, defaultServerOptions(t, withConnectorBuilder(connBuilder)), func(c *testConnection, s *testSession) { update := imap.NewMessageMailboxesUpdated("this is not the message you are looking for", []imap.MailboxID{}, imap.NewFlagSet()) connBuilder.updateCh <- update err, ok := update.Wait() require.True(t, ok) require.True(t, gluon.IsNoSuchMessage(err)) }) } type updateInjectorConnector struct { *connector.Dummy updateCh chan imap.Update } func (conn *updateInjectorConnector) GetUpdates() <-chan imap.Update { return conn.updateCh } type updateInjectorConnectorBuilder struct { updateCh chan imap.Update } func (builder updateInjectorConnectorBuilder) New(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) Connector { dummy := connector.NewDummy(usernames, password, period, flags, permFlags, attrs) go func() { for event := range dummy.GetUpdates() { builder.updateCh <- event } }() return &updateInjectorConnector{ Dummy: dummy, updateCh: builder.updateCh, } } gluon-0.17.0/tests/status_test.go000066400000000000000000000021231445200213000167630ustar00rootroot00000000000000package tests import ( "testing" ) func TestStatus(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, _ *testSession) { c.C("B001 CREATE blurdybloop") c.S("B001 OK CREATE") c.doAppend(`blurdybloop`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") c.doAppend(`blurdybloop`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c.doAppend(`blurdybloop`, buildRFC5322TestLiteral(`To: 3@pm.me`)).expect("OK") c.C("A042 STATUS blurdybloop (MESSAGES UNSEEN)") c.S(`* STATUS "blurdybloop" (MESSAGES 3 UNSEEN 2)`) c.S("A042 OK STATUS") }) } func TestStatusWithUtf8MailboxNames(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, s *testSession) { s.mailboxCreated("user", []string{"mbox-öüäëæøå"}) s.flush("user") c.doAppend(`mbox-&APYA,ADkAOsA5gD4AOU-`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c.C(`a STATUS mbox-&APYA,ADkAOsA5gD4AOU- (MESSAGES)`) c.S(`* STATUS "mbox-&APYA,ADkAOsA5gD4AOU-" (MESSAGES 1)`) c.OK(`a`) }) } gluon-0.17.0/tests/store_cleanup_test.go000066400000000000000000000027361445200213000203150ustar00rootroot00000000000000package tests import ( "bytes" "testing" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/store" "github.com/stretchr/testify/require" ) type TestStoreBuilder struct { builder store.Builder store store.Store } func newTestStoreBuilder() *TestStoreBuilder { return &TestStoreBuilder{builder: &store.OnDiskStoreBuilder{}} } func (t *TestStoreBuilder) New(dir, userID string, passphrase []byte) (store.Store, error) { st, err := t.builder.New(dir, userID, passphrase) if err != nil { return nil, err } testStoreBuilderTestIDs := []imap.InternalMessageID{ imap.NewInternalMessageID(), imap.NewInternalMessageID(), imap.NewInternalMessageID(), imap.NewInternalMessageID(), } for _, id := range testStoreBuilderTestIDs { if err := st.Set(id, bytes.NewReader([]byte{0xD, 0xE, 0xA, 0xD, 0xB, 0xE, 0xE, 0xF})); err != nil { panic("failed to store test data in store") } } t.store = st return st, nil } func (t *TestStoreBuilder) Delete(dir, userID string) error { return t.builder.Delete(dir, userID) } func TestStoreCleanupOnStartup(t *testing.T) { // Add a bunch of random ids to the store and see if they are cleaned up on startup as they are not in // the database. testStore := newTestStoreBuilder() runOneToOneTestWithAuth(t, defaultServerOptions(t, withStoreBuilder(testStore)), func(connection *testConnection, session *testSession) { idsInStore, err := testStore.store.List() require.NoError(t, err) require.Empty(t, idsInStore) }) } gluon-0.17.0/tests/store_test.go000066400000000000000000000231251445200213000166010ustar00rootroot00000000000000package tests import ( "fmt" "testing" goimap "github.com/emersion/go-imap" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestStore(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("b001 CREATE saved-messages") c.S("b001 OK CREATE") c.doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") c.doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c.doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 3@pm.me`), `\Seen`).expect("OK") c.C(`A002 SELECT saved-messages`) c.Se(`A002 OK [READ-WRITE] SELECT`) // TODO: Match flags in any order. c.C(`A005 FETCH 1:* (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Recent \Seen))`, `* 2 FETCH (FLAGS (\Recent))`, `* 3 FETCH (FLAGS (\Recent \Seen))`) c.OK(`A005`) // Add \Deleted and \Draft to the first message. c.C(`A003 STORE 1 +FLAGS (\Deleted \Draft)`) c.S(`* 1 FETCH (FLAGS (\Deleted \Draft \Recent \Seen))`) c.OK(`A003`) c.C(`A005 FETCH 1 (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Deleted \Draft \Recent \Seen))`) c.OK(`A005`) // Remove \Seen from the second message (which does not have it) c.C(`A003 STORE 2 -FLAGS (\Seen)`) c.OK(`A003`) c.C(`A005 FETCH 2 (FLAGS)`) c.S(`* 2 FETCH (FLAGS (\Recent))`) c.Sx(`A005`) // Replace the third message's flags with \Flagged and \Answered. c.C(`A003 STORE 3 FLAGS (\Flagged \Answered)`) c.S(`* 3 FETCH (FLAGS (\Answered \Flagged \Recent))`) c.OK(`A003`) c.C(`A005 FETCH 3 (FLAGS)`) c.S(`* 3 FETCH (FLAGS (\Answered \Flagged \Recent))`) c.OK(`A005`) // Any attempt to alter the \Recent flags will fail c.C(`A003 STORE 3 FLAGS (\Recent Test)`).BAD(`A003`) c.C(`A003 STORE 3 +FLAGS (\RECENT Test)`).BAD(`A003`) c.C(`A003 STORE 3 -FLAGS (\RECent)`).BAD(`A003`) }) } func TestSetStoreDeletedDoesNotCrash(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("b001 CREATE saved-messages") c.S("b001 OK CREATE") c.doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c.C(`A002 SELECT saved-messages`) c.Se(`A002 OK [READ-WRITE] SELECT`) c.C(`A002 STORE 1 FLAGS (\Deleted)`) c.S(`* 1 FETCH (FLAGS (\Deleted \Recent))`) c.OK(`A002`) }) } func TestStoreSilent(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, s *testSession) { // one message in INBOX c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") // 2 sessions with INBOX selected // Message is only recent in the first. for i := 1; i <= 2; i++ { c[i].C(`A001 SELECT INBOX`) c[i].OK(`A001`) } // FLAGS. Both sessions get the untagged FETCH response c[1].C(`A002 STORE 1 FLAGS (flag1 flag2)`) c[1].S(`* 1 FETCH (FLAGS (\Recent flag1 flag2))`) c[1].OK(`A002`) c[2].C(`B002 NOOP`) c[2].S(`* 1 FETCH (FLAGS (flag1 flag2))`) c[2].OK(`B002`) // +FLAGS. Both sessions get the untagged FETCH response c[1].C(`A003 STORE 1 +FLAGS (flag3)`) c[1].S(`* 1 FETCH (FLAGS (\Recent flag1 flag2 flag3))`) c[1].OK(`A003`) c[2].C(`B003 NOOP`) c[2].S(`* 1 FETCH (FLAGS (flag1 flag2 flag3))`) c[2].OK(`B003`) // -FLAGS. Both sessions get the untagged FETCH response c[1].C(`A004 STORE 1 -FLAGS (flag3 flag2)`) c[1].S(`* 1 FETCH (FLAGS (\Recent flag1))`) c[1].OK(`A004`) c[2].C(`B004 NOOP`) c[2].S(`* 1 FETCH (FLAGS (flag1))`) c[2].OK(`B004`) // FLAGS.SILENT Only session 2 gets the untagged FETCH response c[1].C(`A005 STORE 1 FLAGS.SILENT (flag1 flag2)`) c[1].OK(`A005`) c[2].C(`B005 NOOP`) c[2].S(`* 1 FETCH (FLAGS (flag1 flag2))`) c[2].OK(`B005`) // +FLAGS.SILENT Only session 2 gets the untagged FETCH response c[1].C(`A006 STORE 1 +FLAGS.SILENT (flag3)`) c[1].OK(`A006`) c[2].C(`B006 NOOP`) c[2].S(`* 1 FETCH (FLAGS (flag1 flag2 flag3))`) c[2].OK(`B006`) // -FLAGS.SILENT Only session 2 gets the untagged FETCH response c[1].C(`A007 STORE 1 -FLAGS.SILENT (flag3 flag2)`) c[1].OK(`A007`) c[2].C(`B007 NOOP`) c[2].S(`* 1 FETCH (FLAGS (flag1))`) c[2].OK(`B007`) }) } func TestStoreReadUnread(t *testing.T) { runManyToOneTestWithAuth(t, defaultServerOptions(t), []int{1, 2}, func(c map[int]*testConnection, _ *testSession) { c[1].C(`tag select inbox`).OK(`tag`) c[2].C(`tag select inbox`).OK(`tag`) for i := 1; i <= 10; i++ { c[1].doAppend(`INBOX`, buildRFC5322TestLiteral(fmt.Sprintf(`To: %v@pm.me`, i))).expect("OK") c[1].C(`tag noop`).OK(`tag`) c[2].C(`tag noop`).OK(`tag`) } for i := 1; i <= 10; i++ { // Begin IDLEing on session 2. c[2].C(`tag idle`).Continue() // Mark the message as read with session 1. c[1].Cf(`tag UID STORE %v +FLAGS.SILENT (\Seen)`, i).OK(`tag`) // Mark the message as read with session 1. c[1].Cf(`tag UID STORE %v FLAGS.SILENT (\Seen)`, i).OK(`tag`) // Wait for the untagged FETCH response on session 2. c[2].S(fmt.Sprintf(`* %v FETCH (FLAGS (\Seen))`, i)) // End IDLEing on session 2. c[2].C(`DONE`).OK(`tag`) // Both sessions should see the message as read. c[1].Cf(`tag UID FETCH %v (FLAGS)`, i).Sxe(`\Seen`).OK(`tag`) c[2].Cf(`tag UID FETCH %v (FLAGS)`, i).Sxe(`\Seen`).OK(`tag`) } }) } func TestUIDStore(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("b001 CREATE saved-messages") c.S("b001 OK CREATE") c.doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 1@pm.me`), `\Seen`).expect("OK") c.doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") c.doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 3@pm.me`), `\Seen`).expect("OK") c.C(`A002 SELECT saved-messages`) c.Se(`A002 OK [READ-WRITE] SELECT`) // TODO: Match flags in any order. c.C(`A005 FETCH 1:* (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Recent \Seen))`, `* 2 FETCH (FLAGS (\Recent))`, `* 3 FETCH (FLAGS (\Recent \Seen))`) c.OK(`A005`) // Add \Deleted and \Draft to the first message. c.C(`A003 UID STORE 1 +FLAGS (\Deleted \Draft)`) c.S(`* 1 FETCH (FLAGS (\Deleted \Draft \Recent \Seen) UID 1)`) c.OK(`A003`) c.C(`A005 UID FETCH 1 (FLAGS)`) c.S(`* 1 FETCH (FLAGS (\Deleted \Draft \Recent \Seen) UID 1)`) c.OK(`A005`) // Remove \Seen from the second message. c.C(`A003 UID STORE 2 -FLAGS (\Seen)`) c.OK(`A003`) c.C(`A005 UID FETCH 2 (FLAGS)`) c.S(`* 2 FETCH (FLAGS (\Recent) UID 2)`) c.OK(`A005`) // Replace the third message's flags with \Flagged and \Answered. c.C(`A003 UID STORE 3 FLAGS (\Flagged \Answered)`) c.S(`* 3 FETCH (FLAGS (\Answered \Flagged \Recent) UID 3)`) c.OK(`A003`) c.C(`A005 UID FETCH 3 (FLAGS)`) c.S(`* 3 FETCH (FLAGS (\Answered \Flagged \Recent) UID 3)`) c.OK(`A005`) // Any attempt to alter the \Recent flags will fail c.C(`A003 UID STORE 3 FLAGS (\Recent Test)`).BAD(`A003`) c.C(`A003 UID STORE 3 +FLAGS (\RECENT Test)`).BAD(`A003`) c.C(`A003 UID STORE 3 -FLAGS (\RECent)`).BAD(`A003`) }) } func TestFlagsDuplicateAndCaseInsensitive(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.doAppend(`INBOX`, buildRFC5322TestLiteral(`To: 1@pm.me`)).expect("OK") c.C(`A001 SELECT INBOX`) c.Se(`A001 OK [READ-WRITE] SELECT`) // no duplicates c.C(`A002 STORE 1 FLAGS (flag1 flag1)`) c.S(`* 1 FETCH (FLAGS (\Recent flag1))`) c.OK(`A002`) // no duplicates and case-insensitive c.C(`A003 STORE 1 FLAGS (FLAG1 flag2 FLAG2)`) c.S(`* 1 FETCH (FLAGS (FLAG1 \Recent flag2))`) c.OK(`A003`) // unchanged, no untagged response c.C(`A004 STORE 1 FLAGS (FLAG1 flag2 FLAG2)`) c.OK(`A004`) c.C(`A005 FETCH 1 (FLAGS)`) c.S(`* 1 FETCH (FLAGS (FLAG1 \Recent flag2))`) c.OK(`A005`) // +FLAGS with no changes, no untagged response c.C(`A006 STORE 1 +FLAGS (flag1 flag2)`) c.OK(`A006`) // +FLAGS with a new flag c.C(`A007 STORE 1 +FLAGS (FLAG1 FLAG3)`) c.S(`* 1 FETCH (FLAGS (FLAG1 FLAG3 \Recent flag2))`) c.OK(`A007`) // +FLAGS with a empty flag list, no untagged response c.C(`A008 STORE 1 +FLAGS ()`) c.OK(`A008`) // -FLAGS with difference case c.C(`A009 STORE 1 -FLAGS (flag3)`) c.S(`* 1 FETCH (FLAGS (FLAG1 \Recent flag2))`) c.OK(`A009`) // -FLAGS -with non-existing flag, no untagged c.C(`A00A STORE 1 -FLAGS (flag3)`) c.OK(`A00A`) // -FLAGS with empty list c.C(`A00B STORE 1 -FLAGS ()`) c.OK(`A00B`) }) } func TestStoreFlagsPersistBetweenRuns(t *testing.T) { options := defaultServerOptions(t, withDataDir(t.TempDir())) runOneToOneTestWithAuth(t, options, func(c *testConnection, _ *testSession) { c.C("b001 CREATE saved-messages") c.S("b001 OK CREATE") c.doAppend(`saved-messages`, buildRFC5322TestLiteral(`To: 2@pm.me`)).expect("OK") }) // Check if recent flag was persisted and then mark the message as deleted. runOneToOneTestClientWithAuth(t, options, func(client *client.Client, _ *testSession) { _, err := client.Select("saved-messages", false) require.NoError(t, err) newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.RecentFlag) }).check() require.NoError(t, client.Store(createSeqSet("1"), goimap.AddFlags, []interface{}{goimap.DeletedFlag}, nil)) }) // Check if delete flag was persisted. runOneToOneTestClientWithAuth(t, options, func(client *client.Client, _ *testSession) { _, err := client.Select("saved-messages", false) require.NoError(t, err) newFetchCommand(t, client).withItems(goimap.FetchFlags).fetch("1").forSeqNum(1, func(builder *validatorBuilder) { builder.wantFlags(goimap.DeletedFlag) }).check() }) } gluon-0.17.0/tests/subscribe_test.go000066400000000000000000000011401445200213000174170ustar00rootroot00000000000000package tests import ( "testing" ) func TestSubscribe(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, _ *testSession) { c.C("A002 CREATE #news.comp.mail.mime") c.S("A002 OK CREATE") c.C("A003 SUBSCRIBE #this.name.does.not.exist") c.S("A003 NO no such mailbox") // Mailboxes are subscribed by default. c.C("A004 UNSUBSCRIBE #news.comp.mail.mime") c.OK("A004") c.C("A004 SUBSCRIBE #news.comp.mail.mime") c.OK("A004") c.C("A005 SUBSCRIBE #news.comp.mail.mime") c.S("A005 NO already subscribed to this mailbox") }) } gluon-0.17.0/tests/testdata/000077500000000000000000000000001445200213000156655ustar00rootroot00000000000000gluon-0.17.0/tests/testdata/afternoon-meeting.eml000066400000000000000000000004701445200213000220060ustar00rootroot00000000000000Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: mooch@owatagu.siam.edu Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Hello Joe, do you think we can meet at 3:30 tomorrow? gluon-0.17.0/tests/testdata/dovecot-crlf000066400000000000000000007675331445200213000202240ustar00rootroot00000000000000From cras@irccrew.org Tue Jul 23 19:39:23 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 23 Jul 2002 19:39:23 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 434B423848 for ; Tue, 23 Jul 2002 19:39:23 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 175FA4C0A0; Tue, 23 Jul 2002 19:39:23 +0300 (EEST) Date: Tue, 23 Jul 2002 19:39:23 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] first test mail Message-ID: <20020723193923.J22431@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 1 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-IMAPbase: 1096038620 0000010517 X-UID: 1 Status: O lets see if it works From cras@irccrew.org Mon Jul 29 02:17:12 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 29 Jul 2002 02:17:12 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 8D21723848 for ; Mon, 29 Jul 2002 02:17:12 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 8BAD24C0A0; Mon, 29 Jul 2002 02:17:11 +0300 (EEST) Date: Mon, 29 Jul 2002 02:17:11 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Dovecot 0.93 released Message-ID: <20020729021711.W22431@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 2 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 2 Status: O First alpha quality release, everything critical is now implemented. From now on it's mostly stabilization and optimization. Features that can't break existing code could still be added, especially SSL and authentication stuff. From cras@irccrew.org Wed Jul 31 22:48:41 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 31 Jul 2002 22:48:41 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id F141123829 for ; Wed, 31 Jul 2002 22:48:40 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 42ED44C0A0; Wed, 31 Jul 2002 22:48:40 +0300 (EEST) Date: Wed, 31 Jul 2002 22:48:39 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] v0.95 released Message-ID: <20020731224839.H22431@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 3 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 3 Status: O v0.95 2002-07-31 Timo Sirainen + Initial SSL support using GNU TLS, tested with v0.5.1. TLS support is still missing. + Digest-MD5 authentication method + passwd-file authentication backend + Code cleanups - Found several bugs from mempool and ioloop code, now we should be stable? :) - A few corrections for long header field handling From return@trafficmagnet.com Mon Aug 5 19:26:52 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 05 Aug 2002 19:26:52 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from ns5.trafficmagnet.net (unknown [211.157.101.52]) by danu.procontrol.fi (Postfix) with ESMTP id 48C2C23831 for ; Mon, 5 Aug 2002 19:26:51 +0300 (EEST) Received: from 181-Dispatcher ([211.101.236.181]) by ns5.trafficmagnet.net (8.11.6/8.11.6) with SMTP id g765MXt31378 for ; Tue, 6 Aug 2002 00:22:34 -0500 Message-Id: <200208060522.g765MXt31378@ns5.trafficmagnet.net> From: Sarah Williams To: "dovecot@procontrol.fi" Subject: [dovecot] DOVECOT.PROCONTROL.FI Date: Tue, 6 Aug 2002 0:29:18 +0800 X-Mailer: CSMTPConnection v2.17 MIME-Version: 1.0 Content-Type: multipart/related; boundary="956bff02-8aec-485e-a58c-40fda617ecbe" Content-Transfer-Encoding: quoted-printable Reply-To: Sarah Williams X-archive-position: 4 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: return@trafficmagnet.com Precedence: bulk X-list: dovecot X-UID: 4 Status: O Content-Length: 2421 This is a multi-part message in MIME format --956bff02-8aec-485e-a58c-40fda617ecbe Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable
Hi

I visited DOVECOT.PROCONTROL.FI, = and noticed that you're not listed on some search engines! I think we can offer = you a service which can help you increase traffic and the number of visitors = to your website.

I would like to introduce you to TrafficMagnet.com. We = offer a unique technology that will submit your website to over 300,000 search engines and directories = every month.

 

You'll be surprised by the low cost, and by how effective this website = promotion method can be.

To find out more about TrafficMagnet and the cost for submitting your = website to over 300,000 search engines and directories, visit www.TrafficMagnet.com.

I would love to hear from you.


Best Regards,

Sarah Williams
Sales and Marketing
E-mail: sarah_williams@trafficmagnet.com
http://www.TrafficMagnet.com=
--956bff02-8aec-485e-a58c-40fda617ecbe-- From reply@seekercenter.net Tue Aug 6 13:01:17 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 06 Aug 2002 13:01:17 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from XXXXXX (unknown [211.101.236.162]) by danu.procontrol.fi (Postfix) with ESMTP id C6D0823832 for ; Tue, 6 Aug 2002 13:01:15 +0300 (EEST) From: "Vanessa Lintner" Subject: [dovecot] I have visited DOVECOT.PROCONTROL.FI and noticed that ... To: dovecot@procontrol.fi Content-Type: text/html; Reply-To: "Vanessa Lintner" Date: Tue, 6 Aug 2002 18:05:01 +0800 X-Priority: 3 X-Library: Business Promotion Message-Id: <20020806100115.C6D0823832@danu.procontrol.fi> X-archive-position: 5 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: reply@seekercenter.net Precedence: bulk X-list: dovecot X-UID: 5 Status: O Content-Length: 5137
 

Hello,

I have visited dovecot.procontrol.fi and noticed that your website is not listed on some search engines. I am sure that through our service the number of people who visit your website will definitely increase. SeekerCenter is a unique technology that instantly submits your website to over 500,000 search engines and directories -- a really low-cost and effective way to advertise your site. For more details please go to SeekerCenter.net.

Give your website maximum exposure today!
Looking forward to hearing from you.

Best Regards,
Vanessa Lintner
Sales & Marketing
www.SeekerCenter.net

     
     
From cras@irccrew.org Tue Aug 6 13:34:34 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 06 Aug 2002 13:34:34 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 1EC3C23831 for ; Tue, 6 Aug 2002 13:34:34 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id E37C74C0A0; Tue, 6 Aug 2002 13:34:33 +0300 (EEST) Date: Tue, 6 Aug 2002 13:34:33 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] spam / updates Message-ID: <20020806133433.T22431@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 6 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 6 Status: O I guess I underestimated the spammers :) This list is subscribers-only now. As for dovecot, I've been cleaning the code and probably will continue with that some time. I was also thinking about moving the authentication code into separate (SASL) library which could then be plugged into other software, such as postfix. From darix@linux.taugt.net Tue Aug 6 20:54:39 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 06 Aug 2002 20:54:39 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from linux.taugt.net (wh5035.stw.uni-rostock.de [139.30.105.35]) by danu.procontrol.fi (Postfix) with ESMTP id 99FC923829 for ; Tue, 6 Aug 2002 20:54:39 +0300 (EEST) Received: by linux.taugt.net (none of your biz, from userid 500) id 28A8D29F49; Tue, 6 Aug 2002 19:54:41 +0200 (CEST) Date: Tue, 6 Aug 2002 19:54:41 +0200 From: Marcus Rueckert To: dovecot mailing list Subject: [dovecot] mbox support Message-ID: <20020806175441.GA7148@linux.taugt.net> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.4i X-archive-position: 7 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: rueckert@informatik.uni-rostock.de Precedence: bulk X-list: dovecot X-UID: 7 Status: O hi could you explain the following sentence from the readme.txt: "mbox support is available but currently it relies a little bit on good luck, ..." what kind of luck do i need? why do you think the mbox support isnt this reliable? Marcus Rückert -- irssi - the client of the smart and beautiful people From marcelo@carpa.ciagri.usp.br Wed Aug 7 02:39:26 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 Aug 2002 02:39:26 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from carpa.ciagri.usp.br (carpa.ciagri.usp.br [143.107.209.25]) by danu.procontrol.fi (Postfix) with SMTP id 42D5323829 for ; Wed, 7 Aug 2002 02:39:25 +0300 (EEST) Received: (qmail 32442 invoked by uid 1000); 6 Aug 2002 23:40:54 -0000 From: marcelo@carpa.ciagri.usp.br Date: Tue, 6 Aug 2002 20:40:54 -0300 To: dovecot@procontrol.fi Subject: [dovecot] starting Message-ID: <20020806234054.GA30820@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-archive-position: 8 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: marcelo@carpa.ciagri.usp.br Precedence: bulk X-list: dovecot X-UID: 8 Status: O Hi. Sorry for the basic question but... how do I start the server? From inetd or in standalone mode (which binary)? Thanks From cras@irccrew.org Wed Aug 7 06:54:12 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 Aug 2002 06:54:12 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id EA9D623829 for ; Wed, 7 Aug 2002 06:54:11 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id D125E4C0A0; Wed, 7 Aug 2002 06:54:11 +0300 (EEST) Date: Wed, 7 Aug 2002 06:54:11 +0300 From: Timo Sirainen To: dovecot mailing list Subject: [dovecot] Re: mbox support Message-ID: <20020807065411.A16470@irccrew.org> References: <20020806175441.GA7148@linux.taugt.net> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020806175441.GA7148@linux.taugt.net>; from rueckert@informatik.uni-rostock.de on Tue, Aug 06, 2002 at 07:54:41PM +0200 Content-Type: text/plain; charset=us-ascii X-archive-position: 9 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 9 Status: O On Tue, Aug 06, 2002 at 07:54:41PM +0200, Marcus Rueckert wrote: > could you explain the following sentence from the readme.txt: > "mbox support is available but currently it relies a little bit on good > luck, ..." > > what kind of luck do i need? > why do you think the mbox support isnt this reliable? mbox files are locked only while they're being modified. If only dovecot was accessing the mailbox I guess there wouldn't be any problem since it properly locks the index files as well. But if any other MUA was just modifying the mbox file (deleting messages) while dovecot was reading it, it's possible that you end up having data from some random message. Storing MD5 sum of all messages and making sure they match would fix this. From cras@irccrew.org Wed Aug 7 06:58:27 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 Aug 2002 06:58:27 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id B90D723829 for ; Wed, 7 Aug 2002 06:58:27 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 443C64C0A0; Wed, 7 Aug 2002 06:58:24 +0300 (EEST) Date: Wed, 7 Aug 2002 06:58:24 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: starting Message-ID: <20020807065824.C16470@irccrew.org> References: <20020806234054.GA30820@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020806234054.GA30820@carpa.ciagri.usp.br>; from marcelo@carpa.ciagri.usp.br on Tue, Aug 06, 2002 at 08:40:54PM -0300 Content-Type: text/plain; charset=us-ascii X-archive-position: 10 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 10 Status: O On Tue, Aug 06, 2002 at 08:40:54PM -0300, marcelo@carpa.ciagri.usp.br wrote: > Hi. Sorry for the basic question but... how do I > start the server? From inetd or in standalone mode > (which binary)? Run imap-master From cras@irccrew.org Wed Aug 7 06:59:01 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 07 Aug 2002 06:59:01 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 05B9423829 for ; Wed, 7 Aug 2002 06:59:01 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id E84874C0A0; Wed, 7 Aug 2002 06:59:00 +0300 (EEST) Date: Wed, 7 Aug 2002 06:59:00 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: starting Message-ID: <20020807065900.D16470@irccrew.org> References: <20020806234054.GA30820@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020806234054.GA30820@carpa.ciagri.usp.br>; from marcelo@carpa.ciagri.usp.br on Tue, Aug 06, 2002 at 08:40:54PM -0300 Content-Type: text/plain; charset=us-ascii X-archive-position: 11 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 11 Status: O On Tue, Aug 06, 2002 at 08:40:54PM -0300, marcelo@carpa.ciagri.usp.br wrote: > Hi. Sorry for the basic question but... how do I > start the server? From inetd or in standalone mode > (which binary)? Oh, and standalone :) Maybe I should support inetd too later. From marcelo@carpa.ciagri.usp.br Thu Aug 8 02:18:19 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 02:18:19 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from carpa.ciagri.usp.br (carpa.ciagri.usp.br [143.107.209.25]) by danu.procontrol.fi (Postfix) with SMTP id 348EE23829 for ; Thu, 8 Aug 2002 02:18:18 +0300 (EEST) Received: (qmail 18910 invoked by uid 1000); 7 Aug 2002 23:19:56 -0000 From: marcelo@carpa.ciagri.usp.br Date: Wed, 7 Aug 2002 20:19:56 -0300 To: dovecot@procontrol.fi Subject: [dovecot] SELECT Message-ID: <20020807231956.GA11240@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-archive-position: 12 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: marcelo@carpa.ciagri.usp.br Precedence: bulk X-list: dovecot X-UID: 12 Status: O Content-Length: 1024 Hi, all. Thanks Timo for answering my previous post. It's starting fine now :) I must be doing something wrong again but I can't connect from any imap client. If I telnet to the server I get: $ telnet carpa 11143 Trying 143.107.209.25... Connected to carpa.ciagri.usp.br. Escape character is '^]'. * OK dovecot ready. a001 login marcelo ##### a001 OK Logged in. a002 select INBOX a002 NO Broken INBOX: Permission denied a003 select "" * FLAGS (\Answered \Flagged \Deleted \Seen \Draft \Recent) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft)] Flags permitted. * 246 EXISTS * 246 RECENT * OK [UNSEEN 1] First unseen. * OK [UIDVALIDITY 1028760751] UIDs valid a003 OK [READ-WRITE] Select completed. a004 close a004 OK Close completed. a005 logout * BYE Logging out a005 OK Logout completed. Connection closed by foreign host. "INBOX" seems not be a valid mailbox name to Dovecot but it works with others servers (courier, at least). The server uses Maildirs and runs qmail and courier (by now). Thanks. From cras@irccrew.org Thu Aug 8 07:13:04 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 07:13:04 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 65BF823831 for ; Thu, 8 Aug 2002 07:13:04 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 3BB134C0A0; Thu, 8 Aug 2002 07:13:03 +0300 (EEST) Date: Thu, 8 Aug 2002 07:13:03 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: SELECT Message-ID: <20020808071303.F16470@irccrew.org> References: <20020807231956.GA11240@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020807231956.GA11240@carpa.ciagri.usp.br>; from marcelo@carpa.ciagri.usp.br on Wed, Aug 07, 2002 at 08:19:56PM -0300 Content-Type: text/plain; charset=us-ascii X-archive-position: 13 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 13 Status: O On Wed, Aug 07, 2002 at 08:19:56PM -0300, marcelo@carpa.ciagri.usp.br wrote: > a002 NO Broken INBOX: Permission denied You use normal passwd/shadow/pam authentication? Where does the home directory point to, to your real home dir under which Maildir/ is? Anyway, one of the following failed (under Maildir/): mkdir .INBOX ln -s ../cur .INBOX/cur ln -s ../new .INBOX/new ln -s ../tmp .INBOX/tmp Next release will tell exactly which of them failed :) > a003 select "" I don't think this should be allowed :) From marcelo@carpa.ciagri.usp.br Thu Aug 8 16:11:45 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 16:11:45 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from carpa.ciagri.usp.br (carpa.ciagri.usp.br [143.107.209.25]) by danu.procontrol.fi (Postfix) with SMTP id 88CF423831 for ; Thu, 8 Aug 2002 16:11:44 +0300 (EEST) Received: (qmail 9606 invoked by uid 1000); 8 Aug 2002 13:13:30 -0000 From: marcelo@carpa.ciagri.usp.br Date: Thu, 8 Aug 2002 10:13:30 -0300 To: dovecot@procontrol.fi Subject: [dovecot] Re: SELECT Message-ID: <20020808131329.GA30775@carpa.ciagri.usp.br> References: <20020807231956.GA11240@carpa.ciagri.usp.br> <20020808071303.F16470@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020808071303.F16470@irccrew.org> User-Agent: Mutt/1.3.28i X-archive-position: 14 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: marcelo@carpa.ciagri.usp.br Precedence: bulk X-list: dovecot X-UID: 14 Status: O On Thu, Aug 08, 2002 at 07:13:03AM +0300, Timo Sirainen wrote: > On Wed, Aug 07, 2002 at 08:19:56PM -0300, marcelo@carpa.ciagri.usp.br wrote: > > > a002 NO Broken INBOX: Permission denied > > You use normal passwd/shadow/pam authentication? Well, in dovecot.conf I have: auth = default auth_methods = plain auth_userinfo = shadow auth_user = root > Where does the home > directory point to, to your real home dir under which Maildir/ is? Maildir is in the real users' home (/home/user/Maildir) > Anyway, > one of the following failed (under Maildir/): > > mkdir .INBOX > ln -s ../cur .INBOX/cur > ln -s ../new .INBOX/new > ln -s ../tmp .INBOX/tmp > > Next release will tell exactly which of them failed :) > Shouldn't it be: mkdir .INBOX ln -s cur .INBOX/ ln -s new .INBOX/ ln -s tmp .INBOX/ ? Anyway, "mkdir .INBOX" succeeds but it is created with perms 070 and trying to create the links inside it causes the permission errors. From cras@irccrew.org Thu Aug 8 18:04:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 18:04:54 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id C053623831 for ; Thu, 8 Aug 2002 18:04:54 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 6E2674C0A0; Thu, 8 Aug 2002 18:04:53 +0300 (EEST) Date: Thu, 8 Aug 2002 18:04:53 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: SELECT Message-ID: <20020808180453.J16470@irccrew.org> References: <20020807231956.GA11240@carpa.ciagri.usp.br> <20020808071303.F16470@irccrew.org> <20020808131329.GA30775@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020808131329.GA30775@carpa.ciagri.usp.br>; from marcelo@carpa.ciagri.usp.br on Thu, Aug 08, 2002 at 10:13:30AM -0300 Content-Type: text/plain; charset=us-ascii X-archive-position: 15 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 15 Status: O On Thu, Aug 08, 2002 at 10:13:30AM -0300, marcelo@carpa.ciagri.usp.br wrote: > Shouldn't it be: > > mkdir .INBOX > ln -s cur .INBOX/ > ln -s new .INBOX/ > ln -s tmp .INBOX/ > ? No, if that was done the symlinks would point to themselves. ln -s behaviour looks a bit weird if you're not doing it from the destination directory :) > Anyway, "mkdir .INBOX" succeeds but it is created with > perms 070 and trying to create the links inside it > causes the permission errors. Ah, and this was because I was stupid and set the default umask to 0700 instead of 0077 :) You could fix this by uncommenting the umask-line in dovecot.conf. btw. 0.95 also has problems with bad network connections or large mailboxes, I'll probably release 0.96 soon which fixes it. From cras@irccrew.org Thu Aug 8 19:00:00 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 19:00:00 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 5A8E723829 for ; Thu, 8 Aug 2002 19:00:00 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 36C274C0A0; Thu, 8 Aug 2002 19:00:00 +0300 (EEST) Date: Thu, 8 Aug 2002 19:00:00 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] v0.96 released Message-ID: <20020808190000.K16470@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i Content-Type: text/plain; charset=us-ascii X-archive-position: 16 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 16 Status: O Content-Length: 1072 This release was actually tested with reading my inbox (500+ messages, mbox, Solaris 8) using Outlook and Evolution v0.96 2002-08-08 Timo Sirainen * Changed to LGPL v2.1 license + STARTTLS support and optional disabling of plaintext authentication (LOGINDISABLED capability) + Support for custom message flags, each folder can have 26 different. + New configuration file options: imap_listen, max_logging_users, max_imap_processes + You can specify config file location to imap-master with -c + All IMAP processes can now write to specified log file instead of syslog. Either do this by setting IMAP_LOGFILE environment, or give -l parameter to imap-master. + Some cleanups to remove warnings with BSDs + Changed all %s .. strerror(errno) -> %m + Rewritten memory pool code - imap-master didn't close all the fds for executed processes - iobuffer code was buggy and caused the connection to terminate sometimes - make install overwrote the existing dovecot.conf file, so it's now named as dovecot-example.conf From marcelo@carpa.ciagri.usp.br Thu Aug 8 22:33:47 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 08 Aug 2002 22:33:47 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from carpa.ciagri.usp.br (carpa.ciagri.usp.br [143.107.209.25]) by danu.procontrol.fi (Postfix) with SMTP id 18B9C23829 for ; Thu, 8 Aug 2002 22:33:45 +0300 (EEST) Received: (qmail 23496 invoked by uid 1000); 8 Aug 2002 19:35:33 -0000 From: marcelo@carpa.ciagri.usp.br Date: Thu, 8 Aug 2002 16:35:33 -0300 To: dovecot@procontrol.fi Subject: [dovecot] Disk quotas (was: SELECT) Message-ID: <20020808193533.GA28619@carpa.ciagri.usp.br> References: <20020807231956.GA11240@carpa.ciagri.usp.br> <20020808071303.F16470@irccrew.org> <20020808131329.GA30775@carpa.ciagri.usp.br> <20020808180453.J16470@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020808180453.J16470@irccrew.org> User-Agent: Mutt/1.3.28i X-archive-position: 17 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: marcelo@carpa.ciagri.usp.br Precedence: bulk X-list: dovecot X-UID: 17 Status: O Content-Length: 1136 On Thu, Aug 08, 2002 at 06:04:53PM +0300, Timo Sirainen wrote: > > Anyway, "mkdir .INBOX" succeeds but it is created with > > perms 070 and trying to create the links inside it > > causes the permission errors. > > Ah, and this was because I was stupid and set the default umask to 0700 > instead of 0077 :) You could fix this by uncommenting the umask-line in > dovecot.conf. Hey, it works! :) > > btw. 0.95 also has problems with bad network connections or large mailboxes, > I'll probably release 0.96 soon which fixes it. > Yes, confirmed. Using 0.96 my inbox shows up with all my ~200 messages now. Now, one last question (for a while): would be possible/desirable make Dovecot work when an user is with her disk quota completely full (hard quota)? The main reason I'm looking for an alternative imap server is that neither WU-Imapd nor Courier work "properly" (from an user point of view) in that situation (the user can not login or delete her messages to clean up the mailbox). If Dovecot could handle this problem (creating its scratch files in /tmp, perhaps) it'd be big plus, IMHO. Thanks for the great support :) From cras@irccrew.org Fri Aug 9 07:03:02 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 09 Aug 2002 07:03:02 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id A2CE123829 for ; Fri, 9 Aug 2002 07:03:02 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 30A774C0A0; Fri, 9 Aug 2002 07:03:01 +0300 (EEST) Date: Fri, 9 Aug 2002 07:03:01 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Disk quotas (was: SELECT) Message-ID: <20020809070301.L16470@irccrew.org> References: <20020807231956.GA11240@carpa.ciagri.usp.br> <20020808071303.F16470@irccrew.org> <20020808131329.GA30775@carpa.ciagri.usp.br> <20020808180453.J16470@irccrew.org> <20020808193533.GA28619@carpa.ciagri.usp.br> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020808193533.GA28619@carpa.ciagri.usp.br>; from marcelo@carpa.ciagri.usp.br on Thu, Aug 08, 2002 at 04:35:33PM -0300 Content-Type: text/plain; charset=us-ascii X-archive-position: 18 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 18 Status: O Content-Length: 1031 On Thu, Aug 08, 2002 at 04:35:33PM -0300, marcelo@carpa.ciagri.usp.br wrote: > Now, one last question (for a while): would be possible/desirable make > Dovecot work when an user is with her disk quota completely full (hard > quota)? The main reason I'm looking for an alternative imap server is that > neither WU-Imapd nor Courier work "properly" (from an user point of view) in > that situation (the user can not login or delete her messages to clean up > the mailbox). If Dovecot could handle this problem (creating its scratch > files in /tmp, perhaps) it'd be big plus, IMHO. Well, that is a bit difficult to handle.. It's mostly the index files that dovecot has to create/grow. I think I should support keeping them only in memory when disk quota is exceeded. But what about clients, I think some of them just copy the mail to trash folder instead of deleting the mail? But maybe with maildir_copy_with_hardlinks=yes that'd be possible even with quota full. I guess I'll have to install quota support and start fixing. From marcelo@carpa.ciagri.usp.br Sun Aug 11 22:05:26 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 09 Aug 2002 22:05:26 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from carpa.ciagri.usp.br (carpa.ciagri.usp.br [143.107.209.25]) by danu.procontrol.fi (Postfix) with SMTP id 41E5B23831 for ; Fri, 9 Aug 2002 22:03:46 +0300 (EEST) Received: (qmail 27100 invoked by uid 1000); 9 Aug 2002 19:03:39 -0000 From: marcelo@carpa.ciagri.usp.br Date: Sat, 10 Aug 2002 16:03:39 -0300 To: dovecot@procontrol.fi Subject: [dovecot] Re: Disk quotas Message-ID: <20020809190339.GA2063@carpa.ciagri.usp.br> References: <20020807231956.GA11240@carpa.ciagri.usp.br> <20020808071303.F16470@irccrew.org> <20020808131329.GA30775@carpa.ciagri.usp.br> <20020808180453.J16470@irccrew.org> <20020808193533.GA28619@carpa.ciagri.usp.br> <20020809070301.L16470@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020809070301.L16470@irccrew.org> User-Agent: Mutt/1.3.28i X-archive-position: 19 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: marcelo@carpa.ciagri.usp.br Precedence: bulk X-list: dovecot X-UID: 19 Status: O On Fri, Aug 09, 2002 at 07:03:01AM +0300, Timo Sirainen wrote: > > Well, that is a bit difficult to handle.. It's mostly the index files that > dovecot has to create/grow. I think I should support keeping them only in > memory when disk quota is exceeded. > I see... > But what about clients, I think some of them just copy the mail to trash > folder instead of deleting the mail? But maybe with > maildir_copy_with_hardlinks=yes that'd be possible even with quota full. > When a user or his imap client asks for a "write" operation (like saving in Trash) I think it's fair for an imap server just fail the operation and return an error (he's overquota :). But using "good" clients that offer the option to just delete the messages (not copy/move them) it would be nice if they could have the chance to at least login and delete the spam. > I guess I'll have to install quota support and start fixing. > I'm by no means a decent C programmer but if I could help somehow, just ask. Thanks, Marcelo. From ev@kernel.ping-viini.org Mon Aug 12 01:09:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 12 Aug 2002 01:09:37 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from ping-viini.at.home.telekarelia.fi (ping-viini.at.home.telekarelia.fi [195.197.199.46]) by danu.procontrol.fi (Postfix) with SMTP id C8B3423833 for ; Mon, 12 Aug 2002 01:09:37 +0300 (EEST) Received: (qmail 17429 invoked from network); 11 Aug 2002 21:32:33 -0000 Received: from unknown (HELO eero) (192.168.0.2) by 0 with SMTP; 11 Aug 2002 21:32:33 -0000 Message-ID: <006701c24183$c7f10d60$0200a8c0@eero> From: "Eero Volotinen" To: Subject: [dovecot] vpopmail authentication support Date: Mon, 12 Aug 2002 01:09:37 +0300 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 20 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ev@kernel.ping-viini.org Precedence: bulk X-list: dovecot X-UID: 20 Status: O is nice feature to get soon if possible? -- Eero From cras@irccrew.org Thu Aug 22 16:25:52 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 22 Aug 2002 16:25:52 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 926902386D for ; Thu, 22 Aug 2002 16:25:52 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id C96234C0A0; Thu, 22 Aug 2002 16:25:51 +0300 (EEST) Date: Thu, 22 Aug 2002 16:25:51 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] status update / cvs repository Message-ID: <20020822132551.GD12341@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 21 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 21 Status: O Past few weeks went mostly while rewriting small part of code. It really wouldn't have needed to take that long, but I always got really tired after just looking at that code for a few seconds :) Anyway, now messages are parsed in 256kB blocks (maybe I should make it configurable), so large messages don't eat all memory anymore. Maildir support seems to work with the new code, though I haven't tested it too well yet. mbox is currently broken. If you want to test it, dovecot's CVS is available with rsync. I don't think I'll bother setting up pserver since that CVS has also other sources that aren't public. With rsync you'd do it something like: # initialize new cvs repository (do it just once) cvs -d ~/cvs init # update cvs repository rsync -avz --delete dovecot.procontrol.fi::dovecotcvs ~/cvs/dovecot # checkout the sources from your cvs repository cd ~/src cvs -d ~/cvs checkout dovecot From cras@irccrew.org Mon Aug 26 18:23:16 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 26 Aug 2002 18:23:16 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id AB6572386D for ; Mon, 26 Aug 2002 18:23:16 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id ADE354C0A0; Mon, 26 Aug 2002 18:23:12 +0300 (EEST) Date: Mon, 26 Aug 2002 18:23:12 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: vpopmail authentication support Message-ID: <20020826152312.GI7103@irccrew.org> References: <006701c24183$c7f10d60$0200a8c0@eero> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <006701c24183$c7f10d60$0200a8c0@eero> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 22 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 22 Status: O On Mon, Aug 12, 2002 at 01:09:37AM +0300, Eero Volotinen wrote: > is nice feature to get soon if possible? OK, I finally remembered to put this in TODO :) I also looked at vpopmail before but it had at least one very weird thing which I thought about asking about it's authors (gid field actually contains just flags). From cras@irccrew.org Thu Aug 29 03:17:57 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 29 Aug 2002 03:17:57 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 56E0223831 for ; Thu, 29 Aug 2002 03:17:57 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id A9A3B4C0A0; Thu, 29 Aug 2002 03:17:56 +0300 (EEST) Date: Thu, 29 Aug 2002 03:17:56 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] v0.97 released Message-ID: <20020829001756.GU7103@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 23 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 23 Status: O Content-Length: 2242 This is a major cleanup release. My near future goal is to make it impossible to crash Dovecot no matter what you did. This release also adds support for files larger than 2GB with Linux and Solaris. Also mbox support seems to work quite well now, except EXPUNGE and STORE are still not implemented. The "impossible to crash" should already be quite true, at least when it comes to index files. You can try to corrupt indexes in any way you want, and Dovecot should not crash. There's one exception to this: modifying the files while dovecot is reading them may crash it, this is too difficult to fix as long as shared memory maps are used, and I don't see much point in it anyway. I mostly want dovecot to survive corrupted files, not intentional crashing :) This release is the first I'd almost like to call beta-quality. But not quite. It still lacks testing and several features, but it's very close :) Changelog: v0.97 2002-08-29 Timo Sirainen + Large mails are handled in 256kB blocks, so mail size no longer has hardly any effect on memory usage + 64bit file offsets are used if supported by system. This means Dovecot is fully capable of handling >2G mails in those systems. With 32bit offsets >2G mails may not behave too well, but should not crash either. + I fixed lots of potential integer overflows. This should make us fully crash-free no matter what happens (index file corruption mostly). I didn't verify everything too carefully yet, so more auditing is still needed before we fully reach that goal. + Implemented several missing tasks / optimizations to index handling. It should now stay fast after longer usage periods. + New configuration file options: log_path, log_timestamp, imaps_listen + "Critical errors" are now hidden from users, ie. any error message that is not a direct reply to user error is written into log file and user gets only "Internal error [timestamp]". + Nonblocking SSL handshaking + Lots of code cleanups - Lots of mbox fixes, it seems to be somewhat reliable now - Year in Date-field was parsed wrong - Appending mail to mbox didn't work right - Always verify that mailbox names are valid (especially they shouldn't contain "../") From svrmarty@gmx.net Sat Sep 14 23:50:41 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 14 Sep 2002 23:50:41 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from svrmarty.gnome.at (unknown [213.225.45.83]) by danu.procontrol.fi (Postfix) with ESMTP id 0964B23831 for ; Sat, 14 Sep 2002 23:50:40 +0300 (EEST) Received: from silent (silent.svrmarty.gnome.at [192.168.1.8]) by svrmarty.gnome.at (8.12.3/8.12.3/Debian -4) with SMTP id g8EM00he027169 for ; Sun, 15 Sep 2002 00:00:01 +0200 Message-ID: <059101c25c30$da8c2b40$0801a8c0@svrmarty.gnome.at> From: "SvR Marty" To: Subject: [dovecot] Problems with it Date: Sat, 14 Sep 2002 22:54:00 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700 X-archive-position: 24 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: svrmarty@gmx.net Precedence: bulk X-list: dovecot X-UID: 24 Status: O i've install it, used the example config and started tryed to access my mailbox via Outlook Express here's the syslog: Sep 14 22:42:17 p133 imap-login: Logged in. [192.168.1.8] Sep 15 00:42:17 p133 imap(svrmarty): MAIL environment missing and autodetection failed (home /home/svrmarty) Sep 15 00:42:17 p133 imap-master: child 20960 (imap) returned error 98 Sep 14 22:42:19 p133 imap-login: Logged in. [192.168.1.8] Sep 15 00:42:19 p133 imap(svrmarty): MAIL environment missing and autodetection failed (home /home/svrmarty) Sep 15 00:42:19 p133 imap-master: child 20961 (imap) returned error 98 it fails and i don't see any message From cras@irccrew.org Sun Sep 15 00:50:10 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 15 Sep 2002 00:50:10 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 75F9423837 for ; Sun, 15 Sep 2002 00:50:10 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 4AA2C4C0A5; Sun, 15 Sep 2002 00:50:09 +0300 (EEST) Date: Sun, 15 Sep 2002 00:50:08 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Problems with it Message-ID: <20020914215008.GU9842@irccrew.org> References: <059101c25c30$da8c2b40$0801a8c0@svrmarty.gnome.at> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <059101c25c30$da8c2b40$0801a8c0@svrmarty.gnome.at> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 25 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 25 Status: O On Sat, Sep 14, 2002 at 10:54:00PM +0200, SvR Marty wrote: > Sep 15 00:42:17 p133 imap(svrmarty): MAIL environment missing and > autodetection failed (home /home/svrmarty) Are you using mbox or maildir? It looks only for ~/Maildir with maildir. With mbox it looks for ~/Mail and ~/mail directories, and they must contain either "inbox" or "mbox" file. If your mail is in /var/mail, that's not supported yet, and I'm not sure if it will be. You could create symlink from it to ~/mail though. From svrmarty@gmx.net Sun Sep 15 15:46:31 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 15 Sep 2002 15:46:31 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from svrmarty.gnome.at (unknown [213.225.45.83]) by danu.procontrol.fi (Postfix) with ESMTP id B6BA023831 for ; Sun, 15 Sep 2002 15:46:28 +0300 (EEST) Received: from silent (silent.svrmarty.gnome.at [192.168.1.8]) by svrmarty.gnome.at (8.12.3/8.12.3/Debian -4) with SMTP id g8FDuEhe013158 for ; Sun, 15 Sep 2002 15:56:15 +0200 Message-ID: <009601c25cb6$b1e567c0$0801a8c0@svrmarty.gnome.at> From: "SvR Marty" To: References: <059101c25c30$da8c2b40$0801a8c0@svrmarty.gnome.at> <20020914215008.GU9842@irccrew.org> Subject: [dovecot] Re: Problems with it Date: Sun, 15 Sep 2002 14:52:03 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700 X-archive-position: 26 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: svrmarty@gmx.net Precedence: bulk X-list: dovecot X-UID: 26 Status: O Content-Length: 1045 i can't find a good howto doc. can you put ls -laR of the special folders into a mail an send it ? i don't know how this should work seems i'm using maildir Internal error [2002-09-15 16:42:35] Sep 15 16:42:35 p133 imap(svrmarty): Can't open index data /home/svrmarty/Maildir/.INBOX/.imap.index.data: No such file or directory dunno what to do ----- Original Message ----- From: "Timo Sirainen" To: Sent: Saturday, September 14, 2002 11:50 PM Subject: [dovecot] Re: Problems with it > On Sat, Sep 14, 2002 at 10:54:00PM +0200, SvR Marty wrote: > > > Sep 15 00:42:17 p133 imap(svrmarty): MAIL environment missing and > > autodetection failed (home /home/svrmarty) > > Are you using mbox or maildir? It looks only for ~/Maildir with maildir. > With mbox it looks for ~/Mail and ~/mail directories, and they must contain > either "inbox" or "mbox" file. > > If your mail is in /var/mail, that's not supported yet, and I'm not sure if > it will be. You could create symlink from it to ~/mail though. > > From cras@irccrew.org Mon Sep 16 07:41:59 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 16 Sep 2002 07:41:59 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id A05B423831 for ; Mon, 16 Sep 2002 07:41:59 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 4D5EF4C0A5; Mon, 16 Sep 2002 07:41:56 +0300 (EEST) Date: Mon, 16 Sep 2002 07:41:56 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Problems with it Message-ID: <20020916044155.GY9842@irccrew.org> References: <059101c25c30$da8c2b40$0801a8c0@svrmarty.gnome.at> <20020914215008.GU9842@irccrew.org> <009601c25cb6$b1e567c0$0801a8c0@svrmarty.gnome.at> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <009601c25cb6$b1e567c0$0801a8c0@svrmarty.gnome.at> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 27 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 27 Status: O On Sun, Sep 15, 2002 at 02:52:03PM +0200, SvR Marty wrote: > seems i'm using maildir > Internal error [2002-09-15 16:42:35] > Sep 15 16:42:35 p133 imap(svrmarty): Can't open index data > /home/svrmarty/Maildir/.INBOX/.imap.index.data: No such file or directory Looks like some bug .. rm -f /home/svrmarty/Maildir/.INBOX/.imap.index* might help. Anyway, the 0.97 version isn't very usable. I think I'll release new version today or tomorrow, which has had quite a lot of testing. I'll just have to see if all those changes I did last weekend broke everything or fixed the last few problems :) From cras@irccrew.org Fri Sep 20 14:30:45 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 20 Sep 2002 14:30:45 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 8FDD82383F for ; Fri, 20 Sep 2002 14:30:45 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 63BF44C0A5; Fri, 20 Sep 2002 14:30:45 +0300 (EEST) Date: Fri, 20 Sep 2002 14:30:45 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] vpopmail authentication Message-ID: <20020920113045.GC8225@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 28 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 28 Status: O CVS has now support for vpopmail authentication. .c file compiles, but I'm not sure if I did the other checks properly and if it actually works :) If someone here is using it, could you test it? At least to see if configure detects it and if it compiles/links. BTW. I think maildir support is now working quite well, 0.98 isn't far away. From cras@irccrew.org Fri Sep 20 15:19:11 2002 Received: with ECARTIS (v1.0.0; list dovecot); Fri, 20 Sep 2002 15:19:11 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 202B223831 for ; Fri, 20 Sep 2002 15:19:11 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id F03784C0A5; Fri, 20 Sep 2002 15:19:10 +0300 (EEST) Date: Fri, 20 Sep 2002 15:19:10 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: vpopmail authentication Message-ID: <20020920121910.GA27866@irccrew.org> References: <20020920113045.GC8225@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20020920113045.GC8225@irccrew.org> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 29 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 29 Status: O On Fri, Sep 20, 2002 at 02:30:45PM +0300, Timo Sirainen wrote: > CVS has now support for vpopmail authentication. .c file compiles, but I'm > not sure if I did the other checks properly and if it actually works :) Yes, it works. From tss@iki.fi Mon Sep 23 20:42:43 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 23 Sep 2002 20:42:44 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D7B9D2383F for ; Mon, 23 Sep 2002 20:42:43 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 9D32C5E01F4F; Mon, 23 Sep 2002 20:42:43 +0300 (EEST) Subject: [dovecot] 0.98 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 23 Sep 2002 20:42:43 +0300 Message-Id: <1032802963.15743.2.camel@hurina> Mime-Version: 1.0 X-archive-position: 30 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 30 Status: O Content-Length: 1061 0.98 released. This release includes LOTS of bugfixes after almost 4 weeks of actual use. We've mostly tested with Outlook 2000, Outlook Express 6 and Evolution 1.0.8. I haven't heard of a single bug in maildir for several days, and mbox worked quite well first time today :) New features include vpopmail authentication, ability to run properly when there's no disk space left to allow user to delete mail, and full support for mbox. v0.98 2002-09-23 Timo Sirainen + mbox support is finally working. There's still some reliability fixes left but overall it should be quite usable. + vpopmail authentication support + We should be able to deal with "out of diskspace/quota" conditions properly, by keeping the indexes in memory and allowing user to delete mails to get more space. + Several speed enhancements + New configuration file option: overwrite_incompatible_index to force using ".imap.index" file, overwriting it if it isn't compatible - Handle invalid message headers reliably - Tons of bugfixes and code cleanups everywhere From tss@iki.fi Tue Sep 24 20:04:30 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 24 Sep 2002 20:04:30 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6B45C23831 for ; Tue, 24 Sep 2002 20:04:30 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 2AD7C5E01F42; Tue, 24 Sep 2002 20:04:30 +0300 (EEST) Subject: [dovecot] 0.98.1 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 24 Sep 2002 20:04:30 +0300 Message-Id: <1032887070.27868.0.camel@hurina> Mime-Version: 1.0 X-archive-position: 31 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 31 Status: O Guess I should have waited one more day before releasing 0.98 :) This fixes a few mbox problems and should finally make it safe to use. Also fixes a bug of not allowing to save mail larger than 8kB. From tss@iki.fi Mon Sep 30 23:53:10 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 30 Sep 2002 23:53:10 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6FE262383F for ; Mon, 30 Sep 2002 23:53:10 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 69C545E03E5C; Mon, 30 Sep 2002 23:53:09 +0300 (EEST) Subject: [dovecot] 0.98.2 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1033419189.14835.2.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 30 Sep 2002 23:53:09 +0300 X-archive-position: 32 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 32 Status: O Content-Length: 1080 Lets see if I fixed all the nasty bugs now. v0.98.2 2002-09-30 Timo Sirainen + --with-file-offset-size=32 can now be used to select 32bit file offsets. Using them should be a bit faster and take a bit less disk and memory (also needed to compile Dovecot successfully with TinyCC). + maildir_copy_with_hardlinks option works now + Check new mail and notify about it to client also after commands which don't allow full syncing (FETCH, STORE, SEARCH). Also always send RECENT after EXISTS notify. + If we're out of disk space while opening mailbox, notify about it with ALERT. - STORE and SEARCH didn't handle properly message sequence numbers when some in the middle were externally deleted - SEARCH: Only first search condition was checked. - mbox: Message flags given to APPEND were ignored. - mbox: index was corrupted when changing flags for multipart MIME messages - Out of disk space-handling wasn't working properly with .customflags file - if auth processes were killed, login processes weren't reconnecting to them From tss@iki.fi Tue Oct 1 00:28:31 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 01 Oct 2002 00:28:31 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 3D1E123831 for ; Tue, 1 Oct 2002 00:28:31 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id D03AB5E03E5C; Tue, 1 Oct 2002 00:28:30 +0300 (EEST) Subject: [dovecot] 0.98.3 released. From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1033421310.19032.0.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 01 Oct 2002 00:28:30 +0300 X-archive-position: 33 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 33 Status: O v0.98.3 2002-10-01 Timo Sirainen * Sorry, just noticed a very stupid bug which caused evolution 1.2 beta to crash. I always thought it was just evolution's fault :) - Several fields in BODY / BODYSTRUCTURE replies weren't quoted From tss@iki.fi Sun Oct 6 00:39:51 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 06 Oct 2002 00:39:51 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 14CF32382D for ; Sun, 6 Oct 2002 00:39:51 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id BDD015E03E5C; Sun, 6 Oct 2002 00:39:50 +0300 (EEST) Subject: [dovecot] 0.98.4 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1033853990.9860.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 06 Oct 2002 00:39:50 +0300 X-archive-position: 34 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 34 Status: O v0.99 will be next, having the new great binary tree code which should make huge mailboxes possible. With smaller mailboxes I think it still makes it better than the old code, even while it is slower in some cases (hash lookups are faster than btree search in optimal cases). v0.98.4 2002-10-06 Timo Sirainen * Just a final release before replacing hash file with a binary tree. - When fetching messages larger than 256k, sometimes Dovecot missed to send CR causing corrupted data at end of message and possibly complete failure depending on IMAP client. - Fetching BODY or BODYSTRUCTURE for message having content-type of message/rfc822 didn't correctly add () around the envelope data. - Several fixes to make it compile with HP/UX ANSI C compiler. Also fixed several warnings it showed up. From tss@iki.fi Tue Oct 8 00:43:16 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Oct 2002 00:43:16 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 786252382B for ; Tue, 8 Oct 2002 00:43:16 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id E5EDA5E015A0; Tue, 8 Oct 2002 00:43:15 +0300 (EEST) Subject: [dovecot] Benchmarks From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034026995.782.15.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 08 Oct 2002 00:43:15 +0300 X-archive-position: 35 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 35 Status: O Just tried Dovecot with 85k mails from Linux kernel mailing list, total of 357MB. I mostly wanted to see if the new binary tree file works well. And it does :) Nothing gets slowed down after deleting messages all around the mailbox. I tried several things with Dovecot, UW-IMAPd and Courier. You'll see that Dovecot is faster in everything else except raw I/O which is a bit strange, have to look why. I think the most important thing anyway is the time spent opening mailbox. Clients are doing "STATUS mailbox (UNSEEN)" very often and that has to be fast. With Dovecot it's so small that I didn't even bother adding it to the benchmarks, with UW-IMAPd it's 16 seconds, with courier 2 seconds. Full results can be found at http://dovecot.procontrol.fi/dovecot-benchmark.txt From tss@iki.fi Tue Oct 8 03:33:27 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Oct 2002 03:33:27 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 1C9832382D for ; Tue, 8 Oct 2002 03:33:27 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 469EE5E015A0; Tue, 8 Oct 2002 03:33:26 +0300 (EEST) Subject: [dovecot] Re: Benchmarks - updated for Cyrus From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1034026995.782.15.camel@hurina> References: <1034026995.782.15.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034037205.770.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 08 Oct 2002 03:33:26 +0300 X-archive-position: 36 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 36 Status: O On Tue, 2002-10-08 at 00:43, Timo Sirainen wrote: > Full results can be found at > http://dovecot.procontrol.fi/dovecot-benchmark.txt Updated to contain Cyrus benchmarks as well. Cyrus' BODY and ENVELOPE fetches are equilevant to Dovecot's "BODY and ENVELOPE cached" benchmarks. So, we slightly beat Cyrus in many things, EXPUNGE most notably. BODY[] fetching is slower probably because of our I/O problems, and possibly also because we didn't store messages with CR+LFs (in which case we would use sendfile(), and that should be _fast_). We're also slow with message flag changes because maildir requires rename()ing the mail files, we could later add optimization not to do it but rely on flags specified in index file. From tss@iki.fi Tue Oct 8 06:23:31 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 08 Oct 2002 06:23:31 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6DFF12382B for ; Tue, 8 Oct 2002 06:23:31 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 466A25E015A0; Tue, 8 Oct 2002 06:23:31 +0300 (EEST) Subject: [dovecot] Re: Benchmarks - updated for Cyrus From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1034037205.770.6.camel@hurina> References: <1034026995.782.15.camel@hurina> <1034037205.770.6.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034047411.780.5.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 08 Oct 2002 06:23:31 +0300 X-archive-position: 37 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 37 Status: O On Tue, 2002-10-08 at 03:33, Timo Sirainen wrote: > So, we slightly beat Cyrus in many things, EXPUNGE most notably. BODY[] > fetching is slower probably because of our I/O problems, and possibly > also because we didn't store messages with CR+LFs (in which case we > would use sendfile(), and that should be _fast_). Actually, after trying again a few more times (rebooting between), Cyrus' BODY[] got much slower. Updated the benchmark once more, now added Dovecot with CR+LF and Dovecot with 32bit file offsets (default is 64bit). From tss@iki.fi Thu Oct 10 04:40:09 2002 Received: with ECARTIS (v1.0.0; list dovecot); Thu, 10 Oct 2002 04:40:09 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 745FB2382B for ; Thu, 10 Oct 2002 04:40:09 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id F269E5E03E5C; Thu, 10 Oct 2002 04:40:08 +0300 (EEST) Subject: [dovecot] Re: Benchmarks - updated for Cyrus From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1034047411.780.5.camel@hurina> References: <1034026995.782.15.camel@hurina> <1034037205.770.6.camel@hurina> <1034047411.780.5.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034214008.770.7.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 10 Oct 2002 04:40:08 +0300 X-archive-position: 38 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 38 Status: O On Tue, 2002-10-08 at 06:23, Timo Sirainen wrote: > Actually, after trying again a few more times (rebooting between), > Cyrus' BODY[] got much slower. Updated the benchmark once more, now > added Dovecot with CR+LF and Dovecot with 32bit file offsets (default is > 64bit). After 3 hours of tweaking which didn't make much difference, I finally tried if filesystem had any effect on the speed. It had. A lot. Using the same mail files as Cyrus, I got the time going from 2:32 down to 1:41. Cyrus used 2:25 to do the same, meaning we easily beat Cyrus. Now, uw-imapd is still faster with mbox handling.. From faulerhund@faulerhund.net Sat Oct 12 18:26:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 12 Oct 2002 18:26:55 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.200]) by danu.procontrol.fi (Postfix) with ESMTP id D6D972382D for ; Sat, 12 Oct 2002 18:26:54 +0300 (EEST) Received: from [195.20.224.206] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 180OAI-0001FX-00 for dovecot@procontrol.fi; Sat, 12 Oct 2002 17:26:54 +0200 Received: from [217.84.28.114] (helo=mobilo) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 180OAH-0002wH-00 for dovecot@procontrol.fi; Sat, 12 Oct 2002 17:26:53 +0200 Message-ID: <000e01c27203$e947a450$1964a8c0@mobilo> From: "Korbinian Riedhammer" To: Subject: [dovecot] auth problem Date: Sat, 12 Oct 2002 17:27:43 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 39 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 39 Status: O hi, im facing this problem: Fatal: can't listen in UNIX socket /var/rin/dovecot/login/ /usr/lib/dovecot/imap-login: No such file or directory Errror: child xxxxx (auth) returned error 98 any idea? - bini From sean@tcob1.net Sat Oct 12 19:18:50 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 12 Oct 2002 19:18:50 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from s2.uklinux.net (smtp2.uklinux.net [80.84.64.30]) by danu.procontrol.fi (Postfix) with ESMTP id 17E9D2382B for ; Sat, 12 Oct 2002 19:18:50 +0300 (EEST) Received: from tcob1.net (y-airlock008.esatclear.ie [213.202.165.8]) (authenticated) by s2.uklinux.net (8.11.6/8.11.6) with ESMTP id g9CGIm916110 for ; Sat, 12 Oct 2002 17:18:48 +0100 Envelope-To: Received: from [192.168.0.1] (helo=tcob1.net.tcob1.net ident=sean) by tcob1.net with asmtp (Exim 4.10) id 180OyZ-00020q-00 for dovecot@procontrol.fi; Sat, 12 Oct 2002 17:18:51 +0100 Date: Sat, 12 Oct 2002 17:18:38 +0100 Message-ID: From: Sean Rima To: dovecot@procontrol.fi Subject: [dovecot] replacing Courier imapd User-Agent: Wanderlust/2.9.15 (Unchained Melody) SEMI/1.14.3 (Ushinoya) FLIM/1.14.3 (=?ISO-8859-4?Q?Unebigory=F2mae?=) APEL/10.3 Emacs/21.2 (i586-pc-linux-gnu) MULE/5.0 (SAKAKI) Organization: There Can Only Be 1 X-Home-Page: http://www.tcob1.net X-GPG-Key-FingerPrint: AB0A 3748 9565 1BFD 4E77 D9D5 1CC9 D25A 7DA7 0294 X-GPG-Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x7DA70294 X-OS: Linux 2.4.19 MIME-Version: 1.0 (generated by SEMI 1.14.3 - "Ushinoya") Content-Type: text/plain; charset=US-ASCII X-archive-position: 40 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: sean@tcob1.net Precedence: bulk X-list: dovecot X-UID: 40 Status: O -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi folks, I currently use courier imapd, exim and ldap on my mail box. There are no users on this box, all info is taken from the ldap server. I note that dovecot does not use ldap as a backend, but curious if this in on the cards, or even mysql backend. Sean - -- Sean Rima http://www.tcob1.net Linux User: 231986 Jabber: tcobone@jabber.org THE VIEWS EXPRESSED HERE ARE NOT NECESSARILY THOSE OF MY WIFE. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux) Comment: Use GPG for Secure Mail iD8DBQE9qEs4HMnSWn2nApQRAn22AJ4xdGWfpxAuY8dLDuHM/XUAXms0mwCfZJzk ZD8cTK98j7f7CGcu1OENJXI= =BS5M -----END PGP SIGNATURE----- From tss@iki.fi Sat Oct 12 20:42:41 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 12 Oct 2002 20:42:41 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B9BC12382D for ; Sat, 12 Oct 2002 20:42:41 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 7E8C95E03E5C; Sat, 12 Oct 2002 20:42:41 +0300 (EEST) Subject: [dovecot] Re: auth problem From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <000e01c27203$e947a450$1964a8c0@mobilo> References: <000e01c27203$e947a450$1964a8c0@mobilo> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034444559.30856.52.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 12 Oct 2002 20:42:41 +0300 X-archive-position: 41 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 41 Status: O On Sat, 2002-10-12 at 18:27, Korbinian Riedhammer wrote: > hi, im facing this problem: > Fatal: can't listen in UNIX socket /var/rin/dovecot/login/ > /usr/lib/dovecot/imap-login: No such file or directory > Errror: child xxxxx (auth) returned error 98 Well, that error message at least looks a bit strange. Is that one or two error messages? The first one should continue but it instead shows two paths .. plus typo in /var/rin. Anyway, probably something wrong in your config file, maybe you've tried to add some path to "auth = xxx"? If not, send the whole file to me and I'll see what's wrong. Does /var/run/dovecot/login exist? And /usr/lib/dovecot/imap-login? You did do make install, right? From tss@iki.fi Sat Oct 12 20:46:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 12 Oct 2002 20:46:54 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 770472382D for ; Sat, 12 Oct 2002 20:46:54 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 42A2D5E03E5C; Sat, 12 Oct 2002 20:46:54 +0300 (EEST) Subject: [dovecot] Re: replacing Courier imapd From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034444814.30856.58.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 12 Oct 2002 20:46:54 +0300 X-archive-position: 42 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 42 Status: O On Sat, 2002-10-12 at 19:18, Sean Rima wrote: > I currently use courier imapd, exim and ldap on my mail box. There are > no users on this box, all info is taken from the ldap server. I note > that dovecot does not use ldap as a backend, but curious if this in on > the cards, or even mysql backend. It wouldn't be hard to implement them, but they're not high on my TODO-list yet. If anyone else doesn't write them, I eventually will. They would be possible through vpopmail though, since it supports them and Dovecot supports vpopmail. I wouldn't really encourage using vpopmail though, doesn't look very secure. From tss@iki.fi Tue Oct 15 04:16:57 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Oct 2002 04:16:57 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 13D9A2382D for ; Tue, 15 Oct 2002 04:16:57 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id D9E845E015A0; Tue, 15 Oct 2002 04:16:56 +0300 (EEST) Subject: [dovecot] More documentation From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034644616.24679.4.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 15 Oct 2002 04:16:56 +0300 X-archive-position: 43 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 43 Status: O I just wrote a bit of documentation. Probably not very well organized, improvement suggestions welcome :) http://dovecot.procontrol.fi/doc/INSTALL http://dovecot.procontrol.fi/doc/configuration.txt http://dovecot.procontrol.fi/doc/mail-storages.txt Those are also in the main dovecot.procontrol.fi web page. They also talk about a few features not yet in CVS.. From faulerhund@faulerhund.net Tue Oct 15 22:47:16 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Oct 2002 22:47:16 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.131]) by danu.procontrol.fi (Postfix) with ESMTP id 76DA02382D for ; Tue, 15 Oct 2002 22:47:16 +0300 (EEST) Received: from [195.20.224.206] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 181Xes-0007dC-00 for dovecot@procontrol.fi; Tue, 15 Oct 2002 21:47:14 +0200 Received: from [217.235.92.239] (helo=Bini) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 181Xer-0001oK-00 for dovecot@procontrol.fi; Tue, 15 Oct 2002 21:47:13 +0200 Message-ID: <000b01c27484$608af620$0164a8c0@Bini> From: "Korbinian Riedhammer" To: Subject: [dovecot] still problems getting it to work Date: Tue, 15 Oct 2002 21:52:21 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 44 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 44 Status: O Content-Length: 1645 hi all, after havong some other trouble with my server i finally managed to recompile and install dovecot. installed it in /usr/local (the dafault). below u see a dump of my config file. i want to use "normal" shadow passwords for authentification. i adjustet the pathes from /usr/ to /usr/local/. when i login with outlook express 4 example i get the error: unsupported authentification method. (my system isn't configured for shadow md5). in the error log i get the the /dev/urandom is needed but not found, well but i have it :) maybe a chroot setting? thx bini imap_port = 143 #imaps_port = 993 imap_listen = #imaps_listen = #ssl_cert_file = /etc/ssl/certs/imapd.pem #ssl_key_file = /etc/ssl/private/imapd.pem disable_plaintext_auth = no log_path = /var/log/imapd.log log_timestamp = %d %H:%M:%S login_executable = /usr/local/lib/dovecot/imap-login login_user = imapd login_dir = /var/run/dovecot/login login_chroot = yes login_processes_count = 1 max_logging_users = 256 imap_executable = /usr/local/lib/dovecot/imap max_imap_processes = 1024 first_valid_uid = 1000 #last_valid_uid = 0 first_valid_gid = 101 last_valid_gid = 101 valid_chroot_dirs = /var/run/dovecot maildir_copy_with_hardlinks = no maildir_check_content_changes = no overwrite_incompatible_index = yes umask = 0077 auth = default auth_methods = plain #auth_realms = auth_userinfo = shadow auth_executable = /usr/local/lib/dovecot/imap-auth auth_user = root auth_chroot = /var/run/dovecot auth_count = 1 #auth = digest_md5 #auth_methods = digest-md5 #auth_realms = #auth_userinfo = passwd-file /etc/passwd.imap #auth_user = imapauth #auth_chroot = /var/run/dovecot/auth From tss@iki.fi Tue Oct 15 23:38:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Oct 2002 23:38:37 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D3448238A3 for ; Tue, 15 Oct 2002 23:38:37 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 4EC045E107F9; Tue, 15 Oct 2002 23:38:34 +0300 (EEST) Subject: [dovecot] Re: still problems getting it to work From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <000b01c27484$608af620$0164a8c0@Bini> References: <000b01c27484$608af620$0164a8c0@Bini> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034714314.24679.17.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 15 Oct 2002 23:38:34 +0300 X-archive-position: 45 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 45 Status: O On Tue, 2002-10-15 at 22:52, Korbinian Riedhammer wrote: > hi all, > after havong some other trouble with my server i finally managed to > recompile and install dovecot. installed it in /usr/local (the dafault). > below u see a dump of my config file. i want to use "normal" shadow > passwords for authentification. i adjustet the pathes from /usr/ to > /usr/local/. when i login with outlook express 4 example i get the error: > unsupported authentification method. (my system isn't configured for shadow > md5). in the error log i get the the /dev/urandom is needed but not found, > well but i have it :) > maybe a chroot setting? You're right, it's the auth_chroot which breaks it. I fixed it in CVS now. But your auth process is still running as root, which makes chrooting pretty useless, so just disable it. From tss@iki.fi Tue Oct 15 23:57:35 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 15 Oct 2002 23:57:35 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BD343238A3 for ; Tue, 15 Oct 2002 23:57:35 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 801965E107F9; Tue, 15 Oct 2002 23:57:35 +0300 (EEST) Subject: [dovecot] Re: still problems getting it to work From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <000b01c27484$608af620$0164a8c0@Bini> References: <000b01c27484$608af620$0164a8c0@Bini> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1034715455.24679.22.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 15 Oct 2002 23:57:35 +0300 X-archive-position: 46 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 46 Status: O On Tue, 2002-10-15 at 22:52, Korbinian Riedhammer wrote: > hi all, > after havong some other trouble with my server i finally managed to > recompile and install dovecot. installed it in /usr/local (the dafault). > below u see a dump of my config file. i want to use "normal" shadow > passwords for authentification. i adjustet the pathes from /usr/ to > /usr/local/. Path changing isn't needed btw. Dovecot uses automatically the paths given with --prefix if they're not set in config file. > when i login with outlook express 4 example i get the error: > unsupported authentification method. (my system isn't configured for shadow > md5). in the error log i get the the /dev/urandom is needed but not found, > well but i have it :) > maybe a chroot setting? Also chrooting wouldn't work anyway with shadow authentication since it can't open /etc/shadow. I also just tried to see if opening shadow database before chrooting would work, but it doesn't, probably because it wants to reopen the file if it has changed. From thomas@xs4all.net Sat Oct 19 15:39:57 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 15:39:57 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id 163C1238A7 for ; Sat, 19 Oct 2002 15:39:57 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9JCdus7052057 for ; Sat, 19 Oct 2002 14:39:56 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id D6EDC2268; Sat, 19 Oct 2002 14:38:46 +0200 (CEST) Date: Sat, 19 Oct 2002 14:38:46 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Architectural questions Message-ID: <20021019123846.GK543@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 47 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 47 Status: O Content-Length: 8111 Greetings, I have some architectural questions regarding dovecot, and though I've half answered them by looking at the source, I'm also interested in hearing whether my (our) wishes and suggestions are already being considered (or can be considered, once built) for inclusion in dovecot itself. Let me first explain why I'm doing this. I work for XS4ALL, a fairly large ISP in the Netherlands. We provide a wide variety of services, including shell access, pop3, webmail, et cetera. We use Sendmail on several clusters of FreeBSD machines (loadbalanced using layer-4 ethernet switches) and several NetApp Filers (dedicated NFS servers with fail-safe disk-arrays and such) for backend. Several years ago (when we were a lot smaller) we noticed the typical use of the mailboxes included leaving much old email on the server, at least for a while, and that this is a bothersome thing when using mbox mailboxes. (The mboxes basically have to be copied over whenever the status of an email changes, leading to a lot of I/O.) We briefly played with modifying sendmail and the pop server to avoid the full copy in the common case (only status changes) by doing in-place edits of a pre-generated Status line, as well as avoid full scanning of the mbox file by creating special headers to mark the 'real' length of an email. It worked, for a while, but it wasn't going to scale very well. So we switched to maildir mailboxes for the mail spool. A modified mail.local (which we need for other reasons as well) delivers in /var/spool/mail/u/s/username, and mutt, uqwk, a modified pine and qmail's pop3 daemon read it from there. Until last week our clients could choose to have mbox inboxes, to use with 'elm' or 'mail', but we decided to discontinue that support. Our new shell servers, which are in test, don't have elm installed anymore anyway. We still have support for mbox mailboxes in a user's homedirectory though, by using procmail and such. So when we needed an IMAP server for use with our webmail (based on SquirrelMail), we were forced to go with the UW-IMAP server, with the maildir patch that's been scattered around the 'net. This worked, for a while; we also use the maildir patch with pine after all. However, the maildir patch is not very good. Not at all, even, and it only seems to work by pure chance. Pine works for the average user who does not get a lot of new mail while his pine is open or does not use procmail, and fortunately a lot of the people that do get a lot of email use mutt, which does work properly. The UW-IMAP server worked fine because SquirrelMail only uses (used) a small subset of the available functionality. But that's changing, as SquirrelMail gets actively developed, and we're also considering other IMAP-based services. But we can't switch to Courier or Cyrus because we need mbox support. And while looking for mbox patches for either of those two, I ran across dovecot. Yay! :) Dovecot is not everything we'd want, but it comes very close, and contrary to UW-IMAP both the design and the actual source code are clean, readable and logical, which means we can add the features we need and support them. What we need and want to add is fairly simple, but I've only been looking at dovecot since yesterday so I'd be happy to hear if any of it is possible, feasible, unwise or unacceptable. - First off, we need the maildir support to be 'correct' in that it does not rely on the naming of the files in the mailbox, other than the very loose specification DJB gives (doesn't contain a colon or slash and doesn't start with a dot.) The pine/UW-imap patch breaks here because it depends on the first part of the filename being time() or something else that, when sorted alphanumerically, puts new mail at the end. Our LDA does this, but procmail does not, and it shouldn't have to. - Second, we need the maildir support to be 'correct' in that it does not rely on the directory order being persistant. The NetApp Filers use btree-indexed directories, so the order of readdir() can change completely whenever a file is added or removed. The pine/uw-imap patch relies on the '.uidvalidity' file being modified whenever the maildir sort order changed, and this isn't happening. I *think*, from reading the sources, both of those are correct already. If they aren't, I'd strongly urge you to fix it, as #1 is a problem for anyone using procmail and #2 is a problem for anyone with 'indexed' directories (including such new filesystems as reiserfs, and I assume FreeBSD's new hashed directories.) - We need to avoid using fcntl(). The Netapps support it, but file-locking over NFS is very, very poorly designed and we've had too much problems of various kinds before, with fcntl. We also don't like the idea of having thousands of fcntl locks at the same time ;P Instead, we've switched to the locking method described in the Linux open(2) manpage under O_EXCL. (We call it 'dot-locking', I'm not sure where the name came from.) The actual implementation of that method is pretty simple, and I have a C version and a Python version hanging around here somewhere (the Python version is being used by GNU Mailman, last I looked.) If we're going to use dovecot, we will replace most, if not all, fcntl()s with dot-locking, the question is whether you want it contributed to dovecot :) - Every user's incoming mailbox is /var/spool/u/s/username. Other mailboxes are in /home/u/username/mail or /home/u/username/Mail (the second if the first does not exist.) We are not yet certain whether we want the inbox to be able to have subdir-mailboxes, as /var/spool and /home have different quotas and we urge people not to store their mail on /var/spool. (for one thing, it doesn't get backed-up.) We want these things to work without magical symlinks or empty files, because people _will_ delete them and cause unnecessary helpdesk calls :) Again, the question is mostly whether this is desirable in dovecot (or something enough like it to reduce local changes.) - We have over 300k mailboxes at the moment. We expect that number to keep growing. The indexer process (as described by design.txt) does not sound as a good idea in our case :) How necessary is it, really ? Especially since we do not expect more than 10% of those mailboxes to be actually used by IMAP, not even once. If disabling the indexer completely just means longer startup times for IMAP sessions, we can live with that. - The UW-IMAP maildir patch stores UID's in the indiviual filenames, using a 'U' flag. Will this interfere with dovecot ? We don't really need dovecot and UW-IMAP to share UIDs, but we would like to have an as painless transition as possible, without having to rename millions of files to remove the U flag and other flags :P It would also be nice to keep pine using the existing maildir patch, even though very few IMAP-users would use pine. - Would dovecot scale, architecturally speaking, to 500k+ active mailboxes ? The amount of hardware is not really an issue, we can add a lot of machines (off-the-shelve intel hadware) to each cluster, but if each dovecot process has to load in an index of all possible mailboxes... that would be a problem. Doing an inordinate number of file-accesses over NFS would also be a problem, but I haven't seen any indication of that in the source, yet. In case it wasn't clear yet, I'm very happy to have found dovecot. The lack of a decent mbox IMAP server has always dismayed me, let alone an mbox+maildir one :) I should also point out that even though XS4ALL is a commercial company, we would contribute our changes even if the licence didn't require it, and we want to contribute them back the way you want them, not necessarily the way it's easiest for us. We have a lot of experience with opensource software, as a simple google on my name should indicate ;P Regards, -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Sat Oct 19 17:01:56 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 17:01:56 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B8F982382D for ; Sat, 19 Oct 2002 17:01:55 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 822415E03E5C; Sat, 19 Oct 2002 17:01:55 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021019123846.GK543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035036115.1674.81.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 17:01:55 +0300 X-archive-position: 48 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 48 Status: O Content-Length: 8886 On Sat, 2002-10-19 at 15:38, Thomas Wouters wrote: > We briefly played with modifying sendmail and the pop server to avoid the > full copy in the common case (only status changes) by doing in-place edits > of a pre-generated Status line, UW-imapd does this as well, creating "X-Keywords: " line for each mail. I had thought about this first with dovecot too, but since mutt rewrote the whole mailbox always I figured I might as well. But with larger mailboxes this is really slow, so I think I'll support the X-keywords trick myself too. > as well as avoid full scanning of the mbox > file by creating special headers to mark the 'real' length of an email. For each mail? Content-Length? With my tests that didn't seem to help much, rather made it just slower.. Could be that I just did something badly, have to look into it more when I begin optimizing mbox handling more. Have to get it at least as fast as UW-imapd :) > We still have support for mbox mailboxes in a user's homedirectory though, > by using procmail and such. So when we needed an IMAP server for use with > our webmail (based on SquirrelMail), we were forced to go with the UW-IMAP > server, with the maildir patch that's been scattered around the 'net. This Hm. Squirrelmail requires SORT extension which Dovecot doesn't support yet. Notes about SORT from CVS's TODO: - sort (draft-ietf-imapext-sort) - basically sorted SEARCH, requiring CHARSET support for UTF-8 and ASCII - we could create alternative binary tree file(s) for different sort conditions, ".tree-sort" or something. or if we decide to just keep it in memory, btree could still be best choice. - required by squirrelmail (webmail) > - First off, we need the maildir support to be 'correct' in that it does > not rely on the naming of the files in the mailbox, other than the very > loose specification DJB gives (doesn't contain a colon or slash and > doesn't start with a dot.) The pine/UW-imap patch breaks here because it > depends on the first part of the filename being time() or something else > that, when sorted alphanumerically, puts new mail at the end. Our > LDA does this, but procmail does not, and it shouldn't have to. Dovecot doesn't care as long as the file name stays same before the ':' character. > - Second, we need the maildir support to be 'correct' in that it does not > rely on the directory order being persistant. The NetApp Filers use > btree-indexed directories, so the order of readdir() can change > completely whenever a file is added or removed. The pine/uw-imap patch > relies on the '.uidvalidity' file being modified whenever the maildir sort > order changed, and this isn't happening. Dovecot reads them into hash so it doesn't depend on readdir() behaviour. > - We need to avoid using fcntl(). The Netapps support it, but file-locking > over NFS is very, very poorly designed and we've had too much problems of > various kinds before, with fcntl. We also don't like the idea of having > thousands of fcntl locks at the same time ;P Instead, we've switched to > the locking method described in the Linux open(2) manpage under O_EXCL. > (We call it 'dot-locking', I'm not sure where the name came from.) Hmm. The dot-lock means the "mbox.lock" file which gets created when someone wants it exclusively locked. Dovecot supports it, and maildir itself doesn't need locking at all. Dovecot's index files currently use fcntl()-locking, but it would be possible to replace them with lock files. Then there's modify log file. Dovecot uses fcntl() locking for it as a way to figure out if it's the only one using the log file. Like make everyone read-lock the file, then if someone wants to know if it's the only one using it it tries to set write-lock on, if it fails it knows someone else it using it as well. I'm not sure if there's any good way to replace that by using files, I had pretty complicated (desperate) plans before figuring out fcntl() could be used to do it easily. It would be possible to just assume that there's always someone else using the modify log, but each flag change or expunge would always write a few bytes to it then, and when log file is switched (there's .log and .log.2) it wouldn't be truncated after last process is finished with it which is not too bad since after the next switch it will be truncated. Also it would be possible not to use index files at all but just keep them in memory. I've been fixing code to make this possible and somewhat fast. > If we're going to > use dovecot, we will replace most, if not all, fcntl()s with dot-locking, > the question is whether you want it contributed to dovecot :) All locking goes through file_*_lock() or mbox_lock_*() functions. mbox locking supports it already, and file_*_lock() could be made to support it. It doesn't get currently file name but that could be done. > - Every user's incoming mailbox is /var/spool/u/s/username. Other mailboxes > are in /home/u/username/mail or /home/u/username/Mail (the second if the > first does not exist.) We are not yet certain whether we want the inbox > to be able to have subdir-mailboxes, as /var/spool and /home have > different quotas and we urge people not to store their mail on > /var/spool. (for one thing, it doesn't get backed-up.) We want these > things to work without magical symlinks or empty files, because people > _will_ delete them and cause unnecessary helpdesk calls :) Again, the > question is mostly whether this is desirable in dovecot (or something > enough like it to reduce local changes.) Are maildir inboxes also in /var/spool? With mbox sub-inboxes wouldn't be even possible because dir structure == mailbox structure, and since inbox file exists there can't be inbox-dir (except maybe with different case but that's kludgy). I've also thought I might as well make it possible to read the mbox inbox from /var/mail or whereever it is. Pretty easy to do, but .lock file is problematic if new files can't be added to the /var/mail directory. > - We have over 300k mailboxes at the moment. We expect that number to keep > growing. The indexer process (as described by design.txt) does not sound > as a good idea in our case :) How necessary is it, really ? Especially > since we do not expect more than 10% of those mailboxes to be actually > used by IMAP, not even once. If disabling the indexer completely just > means longer startup times for IMAP sessions, we can live with that. Indexer doesn't exist yet, and wouldn't be really needed even. I still think it could be somewhat nice idea, the system load is probably less during night so we could use the extra time to make mailboxes perform faster next day. It'd be difficult to know when exactly there is "extra time" which is why I haven't yet done the indexer. Probably needs some external program (script) which tells it by maybe looking at some I/O statistics from /proc or doing a few file operations and checking the latency. Am I right in that CPU usage still isn't any problem but rather the I/O? > - The UW-IMAP maildir patch stores UID's in the indiviual filenames, using > a 'U' flag. Will this interfere with dovecot ? We don't really need > dovecot and UW-IMAP to share UIDs, but we would like to have an as > painless transition as possible, without having to rename millions of > files to remove the U flag and other flags :P It would also be nice to > keep pine using the existing maildir patch, even though very few > IMAP-users would use pine. How exactly does the U flag work? I hope it's before the ':' character like Courier's S=filesize? Otherwise U=1234 would be thought of as 6 different flags which isn't very good since Dovecot reorders them as 1234=U. > - Would dovecot scale, architecturally speaking, to 500k+ active mailboxes ? > The amount of hardware is not really an issue, we can add a lot of > machines (off-the-shelve intel hadware) to each cluster, but if each > dovecot process has to load in an index of all possible mailboxes... that > would be a problem. Doing an inordinate number of file-accesses over NFS > would also be a problem, but I haven't seen any indication of that in the > source, yet. Dovecot opens the index when opening mailbox. It doesn't open other mailboxes indexes. Also the indexes should make the file accesses less than otherwise, especially with mbox since it wouldn't need to read and parse the whole mbox file. In general I've tried to keep the file I/O as little as possible. If your clusters access the files through NFS, there should be no problem. Except I've never tried Dovecot through NFS, and I'm not sure how well mmap()ing works through NFS. I know there's been problems before but hopefully they've been fixed already. From thomas@xs4all.net Sat Oct 19 18:11:38 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 18:11:38 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id F2204238A7 for ; Sat, 19 Oct 2002 18:11:37 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9JFBbW0074539; Sat, 19 Oct 2002 17:11:37 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 9191F2268; Sat, 19 Oct 2002 17:10:26 +0200 (CEST) Date: Sat, 19 Oct 2002 17:10:26 +0200 From: Thomas Wouters To: Timo Sirainen Cc: dovecot@procontrol.fi Bcc: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021019151026.GM543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035036115.1674.81.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 49 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 49 Status: O Content-Length: 7406 On Sat, Oct 19, 2002 at 05:01:55PM +0300, Timo Sirainen wrote: > On Sat, 2002-10-19 at 15:38, Thomas Wouters wrote: > > We briefly played with modifying sendmail and the pop server to avoid the > > full copy in the common case (only status changes) by doing in-place edits > > of a pre-generated Status line, > UW-imapd does this as well, creating "X-Keywords: " line for > each mail. I had thought about this first with dovecot too, but since > mutt rewrote the whole mailbox always I figured I might as well. But > with larger mailboxes this is really slow, so I think I'll support the > X-keywords trick myself too. Well, for POP3 servers the story is a bit different than IMAP. The typical use we were seeing was "user", "pass", "list", "retr ", "quit". Sometimes (for some users) every few minutes. In that case, having to write a 'RO' at a specific location in a large mbox is oodles more efficient than copying the whole thing to local disk and back again (which is what the popserver would do.) I'm not sure if it matters much with typical IMAP usage. > > as well as avoid full scanning of the mbox file by creating special > > headers to mark the 'real' length of an email. > For each mail? Content-Length? With my tests that didn't seem to help > much, rather made it just slower.. Could be that I just did something > badly, have to look into it more when I begin optimizing mbox handling > more. Have to get it at least as fast as UW-imapd :) Well, if I recall correctly, we added an 'X-Offset' header which pointed to the exact (relative) byte offset for the next 'From ' line. It made our pop3d (a modified qpopper 2.3 by the way) a much happier puppy. I'm not sure what the difference with Content-Length was. I could find the sources, I suppose; since we disabled mbox-inbox support we aren't using that code anymore. > > We still have support for mbox mailboxes in a user's homedirectory though, > > by using procmail and such. So when we needed an IMAP server for use with > > our webmail (based on SquirrelMail), we were forced to go with the UW-IMAP > > server, with the maildir patch that's been scattered around the 'net. This > Hm. Squirrelmail requires SORT extension which Dovecot doesn't support > yet. Ah, that's a shame. It means we can't use dovecot for our internal SquirrelMail+IMAP testing yet :) We likely wouldn't start using dovecot for production SquirrelMail anytime soon anyway, so it's not a big issue right now... We'll have to see if our other uses of IMAP require it or not. > Dovecot doesn't care [about maildir-message filenames] as long as the file > name stays same before the ':' character. They do. > It would be possible to just assume that there's always someone else > using the modify log, but each flag change or expunge would always write > a few bytes to it then, and when log file is switched (there's .log and > .log.2) it wouldn't be truncated after last process is finished with it > which is not too bad since after the next switch it will be truncated. > Also it would be possible not to use index files at all but just keep > them in memory. I've been fixing code to make this possible and somewhat > fast. Hmm. I'd have to look at the code to say for sure, but I think we could live with keeping them in memory. Accessing the same mailbox from two different clients at the same time is not something we're too worried about, at the moment. > > - Every user's incoming mailbox is /var/spool/u/s/username. > Are maildir inboxes also in /var/spool? Yes. We don't use the ~/Maildir structure at all. We've always simply used maildir mailboxes as a directly replacement of mbox mailboxes; a directory instead of a file, and no sub-boxes :) I guess it's a philosphical difference. To me, and to my colleagues, everything can be a mailbox, not just something stored in an arbitrary directory somewhere. I guess we could change that position, if necessary, but so far it hasn't proven to be. > With mbox sub-inboxes wouldn't be even possible because dir structure == > mailbox structure, and since inbox file exists there can't be inbox-dir > (except maybe with different case but that's kludgy). Yes... don't worry, we don't even want to consider mbox-subboxes :) > I've also thought I might as well make it possible to read the mbox > inbox from /var/mail or whereever it is. Pretty easy to do, but .lock > file is problematic if new files can't be added to the /var/mail > directory. Our /var/spool/mail subdirectories are mode 01733 (drwx-wx-wt) owned by root, so creating files and removing them is not an issue, but reading the directory is. You can of course still check for existance of specific filenames. > Am I right in that CPU usage still isn't any problem but rather the I/O? Yes. As I said, we use several netapp filers (currently two for /home and two for /var/spool/mail, with several hundred gigabytes filespace each) and though they're great boxes, their performance does tend to drop off when it gets flooded with I/O requests :) And they're used by a lot of machines, so if they are slow to respond, a lot of our services do too. > > - The UW-IMAP maildir patch stores UID's in the indiviual filenames, using > > a 'U' flag. Will this interfere with dovecot ? We don't really need > > dovecot and UW-IMAP to share UIDs, but we would like to have an as > > painless transition as possible, without having to rename millions of > > files to remove the U flag and other flags :P It would also be nice to > > keep pine using the existing maildir patch, even though very few > > IMAP-users would use pine. > How exactly does the U flag work? I hope it's before the ':' character > like Courier's S=filesize? Otherwise U=1234 would be thought of as 6 > different flags which isn't very good since Dovecot reorders them as > 1234=U. No, it can't be before the :, because the UID is generated by UW-IMAP, and the maildir spec says you can't change the uniqe part of the name, just the info :) Here are some examples. The ',U*' is the UID. _k2,6NtZ9.maildrop4.xs4all.nl:2,S,U1030712092 _fmT,O63l8.maildrop8.xs4all.nl:2,RS,U1026644784 990612135.16312.000000002.maildrop2.xs4all.nl:2,S,U991994304 993058841.maildrop7.49267:2,S,U993058888 (In case you're wondering, the first two files were created by standard procmail, the third by our modified procmail which tries to allow for the pine/uw-imap maildir patch, and the last is our mail.local's format.) As long as dovecot doesn't read a different meaning into those flags (ignoring them is just fine) we should be fine. I don't think we'll have many customers switching back and forth between dovecot and UW-IMAP, just people switching from UW-IMAP to dovecot. > If your clusters access the files through NFS, there should be no > problem. Except I've never tried Dovecot through NFS, and I'm not sure > how well mmap()ing works through NFS. I know there's been problems > before but hopefully they've been fixed already. I'm not too worried about bugs. I've yet to see a piece of software that we don't find oodles of small and large bugs in just by installing and trying to run on our clientbase. That's what testing is for :) But I wouldn't mind being happily suprised by dovecot, we'll see :) -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Sat Oct 19 18:53:44 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 18:53:44 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C511F2382D for ; Sat, 19 Oct 2002 18:53:43 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 941B65E03E5C; Sat, 19 Oct 2002 18:53:43 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi Bcc: dovecot@procontrol.fi In-Reply-To: <20021019151026.GM543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021019151026.GM543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035042823.1679.127.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 18:53:43 +0300 X-archive-position: 50 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 50 Status: O Content-Length: 4750 On Sat, 2002-10-19 at 18:10, Thomas Wouters wrote: > Well, if I recall correctly, we added an 'X-Offset' header which pointed to > the exact (relative) byte offset for the next 'From ' line. It made our > pop3d (a modified qpopper 2.3 by the way) a much happier puppy. I'm not sure > what the difference with Content-Length was. I could find the sources, I > suppose; since we disabled mbox-inbox support we aren't using that code > anymore. Content-Length saves just the size of mail body, so it can be skipped over. I implemented it mostly because mutt doesn't escape the "From " lines when saving mails so it was a bit difficult sometimes to figure out if the From-line means a new mail or if it was just written into the mail body. I'm not sure what I should do with Dovecot, both From-line escaping and Content-Length writing makes it annoyingly slower then now with more code.. > > Also it would be possible not to use index files at all but just keep > > them in memory. I've been fixing code to make this possible and somewhat > > fast. > > Hmm. I'd have to look at the code to say for sure, but I think we could live > with keeping them in memory. Accessing the same mailbox from two different > clients at the same time is not something we're too worried about, at the > moment. Well, Outlook (and OE I think) opens two simultaneous connections sometimes to fetch mails. Not having index files doesn't affect the possibility to have multiple connections, but it affects the overall performance because it needs to do more I/O, especially with mbox. > > I've also thought I might as well make it possible to read the mbox > > inbox from /var/mail or whereever it is. Pretty easy to do, but .lock > > file is problematic if new files can't be added to the /var/mail > > directory. > > Our /var/spool/mail subdirectories are mode 01733 (drwx-wx-wt) owned by > root, so creating files and removing them is not an issue, but reading the > directory is. You can of course still check for existance of specific > filenames. OK, no problem then. > > How exactly does the U flag work? I hope it's before the ':' character > > like Courier's S=filesize? Otherwise U=1234 would be thought of as 6 > > different flags which isn't very good since Dovecot reorders them as > > 1234=U. > > No, it can't be before the :, because the UID is generated by UW-IMAP, and > the maildir spec says you can't change the uniqe part of the name, just the > info :) Here are some examples. The ',U*' is the UID. > > _k2,6NtZ9.maildrop4.xs4all.nl:2,S,U1030712092 > _fmT,O63l8.maildrop8.xs4all.nl:2,RS,U1026644784 > 990612135.16312.000000002.maildrop2.xs4all.nl:2,S,U991994304 > 993058841.maildrop7.49267:2,S,U993058888 Well, maildir spec also doesn't say you can add flags with parameters using comma separators :) But I think that's good enough extension that Dovecot could support as well. Programs supporting Courier's Maildir++ quota writes the mails immediately like "something,S=size". Something like that could have been done by UID-capable mailers too, since UID won't change. > As long as dovecot doesn't read a different meaning into those flags > (ignoring them is just fine) we should be fine. I don't think we'll have > many customers switching back and forth between dovecot and UW-IMAP, just > people switching from UW-IMAP to dovecot. Keeping the UIDs untouched when changing could be important to some people whose mail clients can save some extra information related to specific messages and use UID to identify the mails. I think Evolution does this with it's labels and Follow-Up marks, but I'm not sure. Dovecot currently doesn't try to keep the UIDs too heavily itself either, if it notices some corruption it just recreates the index files with new UIDs. Supporting in-memory indexes requires still saving the UIDs somewhere in disk so this should get fixed while doing it. > I'm not too worried about bugs. I've yet to see a piece of software that we > don't find oodles of small and large bugs in just by installing and trying > to run on our clientbase. That's what testing is for :) But I wouldn't mind > being happily suprised by dovecot, we'll see :) We've had 3 people using it for a few months now, one of them still gets sometimes "message not found" error from Outlook Express, I've yet to figure out when exactly that happens. The mail isn't lost and restarting OE helps, so it's probably something to do with having those two simultaneous connections (and I'm just now making bigger changes there). Other than that it's worked quite fine :) Then of course CVS has a lot large changes which haven't been tested much yet. Hopefully I'll get them fixed well enough this weekend to be able to start using it myself. From tss@iki.fi Sat Oct 19 19:11:49 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 19:11:49 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D02AC2382D for ; Sat, 19 Oct 2002 19:11:49 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 9813D5E03E5C; Sat, 19 Oct 2002 19:11:49 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021019151026.GM543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021019151026.GM543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035043909.31051.140.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 19:11:49 +0300 X-archive-position: 51 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 51 Status: O Content-Length: 1060 On Sat, 2002-10-19 at 18:10, Thomas Wouters wrote: > > Am I right in that CPU usage still isn't any problem but rather the I/O? > > Yes. As I said, we use several netapp filers (currently two for /home and > two for /var/spool/mail, with several hundred gigabytes filespace each) and > though they're great boxes, their performance does tend to drop off when it > gets flooded with I/O requests :) And they're used by a lot of machines, so > if they are slow to respond, a lot of our services do too. I was mostly wondering with this if the reason to add more computers to cluster is because the imap processes are taking too much memory, too much CPU or if neither of them is any problem and the cluster is just for redundancy or because of other running programs. I'd be interested to know how many dovecot processes could actually run in a single computer especially with fast NFS file access :) I'd guess it could run a lot, but when memory gets low the I/O usage raises since it needs to read again the parts of indexes which got dropped from memory. From faulerhund@faulerhund.net Sat Oct 19 19:24:01 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 19:24:02 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.130]) by danu.procontrol.fi (Postfix) with ESMTP id D51E6238A7 for ; Sat, 19 Oct 2002 19:24:01 +0300 (EEST) Received: from [212.227.126.220] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 182wON-00080b-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 18:23:59 +0200 Received: from [217.229.166.89] (helo=Bini) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 182wON-0001BG-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 18:23:59 +0200 Message-ID: <003b01c2778c$a6884370$0164a8c0@Bini> From: "Korbinian Riedhammer" To: "Dovecot Mailinglist" Subject: [dovecot] still problems gettin it to work Date: Sat, 19 Oct 2002 18:29:08 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 52 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 52 Status: O i checked all my options again. could it be, that it is a problem with my compiler? does dovecot support gcc3.2 with glibc 2.2.5? korbinian From tss@iki.fi Sat Oct 19 19:27:45 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 19:27:45 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4F2F5238A7 for ; Sat, 19 Oct 2002 19:27:45 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 0ECE55E03E5C; Sat, 19 Oct 2002 19:27:45 +0300 (EEST) Subject: [dovecot] Re: still problems gettin it to work From: Timo Sirainen To: Korbinian Riedhammer Cc: Dovecot Mailinglist In-Reply-To: <003b01c2778c$a6884370$0164a8c0@Bini> References: <003b01c2778c$a6884370$0164a8c0@Bini> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035044864.1674.143.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 19:27:44 +0300 X-archive-position: 53 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 53 Status: O On Sat, 2002-10-19 at 19:29, Korbinian Riedhammer wrote: > i checked all my options again. could it be, that it is a problem with my > compiler? does dovecot support gcc3.2 with glibc 2.2.5? Well, what's the problem with it now? Didn't that /dev/urandom problem go away with unsetting auth_chroot setting? From faulerhund@faulerhund.net Sat Oct 19 19:56:55 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 19:56:55 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.149]) by danu.procontrol.fi (Postfix) with ESMTP id 699AF238A7 for ; Sat, 19 Oct 2002 19:56:55 +0300 (EEST) Received: from [212.227.126.220] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 182wuE-0005AD-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 18:56:54 +0200 Received: from [217.229.166.89] (helo=Bini) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 182wuE-0002u1-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 18:56:54 +0200 Message-ID: <005d01c27791$4011d930$0164a8c0@Bini> From: "Korbinian Riedhammer" To: "Dovecot Mailinglist" Subject: [dovecot] Re: still problems gettin it to work Date: Sat, 19 Oct 2002 19:02:03 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 54 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 54 Status: O well i didn't know what to change, cause u wrote that this change u did is pretty useless rinning the prog as root, what i do. next thing that i dont have any idea about cvs (beside knowing its meaning) and dont hav it installed yet. From tss@iki.fi Sat Oct 19 19:59:22 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 19:59:22 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id C7B16238A7 for ; Sat, 19 Oct 2002 19:59:22 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 99EA15E03E5C; Sat, 19 Oct 2002 19:59:22 +0300 (EEST) Subject: [dovecot] Re: still problems gettin it to work From: Timo Sirainen To: Korbinian Riedhammer Cc: Dovecot Mailinglist In-Reply-To: <005d01c27791$4011d930$0164a8c0@Bini> References: <005d01c27791$4011d930$0164a8c0@Bini> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035046762.1674.148.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 19:59:22 +0300 X-archive-position: 55 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 55 Status: O On Sat, 2002-10-19 at 20:02, Korbinian Riedhammer wrote: > well i didn't know what to change, cause u wrote that this change u did is > pretty useless rinning the prog as root, what i do. next thing that i dont > have any idea about cvs (beside knowing its meaning) and dont hav it > installed yet. Well, just don't set the auth_chroot and ignores the rest of what I said. That should get it working. From faulerhund@faulerhund.net Sat Oct 19 20:04:30 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 20:04:30 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.200]) by danu.procontrol.fi (Postfix) with ESMTP id 969F2238A7 for ; Sat, 19 Oct 2002 20:04:30 +0300 (EEST) Received: from [195.20.224.206] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 182x1a-0002pK-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 19:04:30 +0200 Received: from [217.229.166.89] (helo=Bini) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 182x1Z-0003C1-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 19:04:30 +0200 Message-ID: <006701c27792$4f863040$0164a8c0@Bini> From: "Korbinian Riedhammer" To: "Dovecot Mailinglist" Subject: [dovecot] Re: still problems gettin it to work Date: Sat, 19 Oct 2002 19:09:39 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 56 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 56 Status: O yeah, the nasty error msgs are gone :) well next question. where looks the dovcot imapd for the mail dir? /var/mail or the homedir? 'cause i saved my Maildir in /home/user From tss@iki.fi Sat Oct 19 20:08:34 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 20:08:34 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4C086238A7 for ; Sat, 19 Oct 2002 20:08:34 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 0FC605E03E5C; Sat, 19 Oct 2002 20:08:31 +0300 (EEST) Subject: [dovecot] Re: still problems gettin it to work From: Timo Sirainen To: Dovecot Mailinglist In-Reply-To: <006701c27792$4f863040$0164a8c0@Bini> References: <006701c27792$4f863040$0164a8c0@Bini> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035047310.1674.152.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 19 Oct 2002 20:08:30 +0300 X-archive-position: 57 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 57 Status: O On Sat, 2002-10-19 at 20:09, Korbinian Riedhammer wrote: > yeah, the nasty error msgs are gone :) > well next question. where looks the dovcot imapd for the mail dir? /var/mail > or the homedir? 'cause i saved my Maildir in /home/user It uses ~/Maildir always. From faulerhund@faulerhund.net Sat Oct 19 20:17:48 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sat, 19 Oct 2002 20:17:48 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from moutvdom.kundenserver.de (moutvdom.kundenserver.de [195.20.224.131]) by danu.procontrol.fi (Postfix) with ESMTP id 555172382D for ; Sat, 19 Oct 2002 20:17:48 +0300 (EEST) Received: from [212.227.126.220] (helo=mrvdomng.kundenserver.de) by moutvdom.kundenserver.de with esmtp (Exim 3.35 #1) id 182xES-0000X5-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 19:17:48 +0200 Received: from [217.229.166.89] (helo=Bini) by mrvdomng.kundenserver.de with smtp (Exim 3.35 #1) id 182xER-0003ij-00 for dovecot@procontrol.fi; Sat, 19 Oct 2002 19:17:47 +0200 Message-ID: <008901c27794$2b0de030$0164a8c0@Bini> From: "Korbinian Riedhammer" To: "Dovecot Mailinglist" Subject: [dovecot] Re: still problems gettin it to work Date: Sat, 19 Oct 2002 19:22:57 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-archive-position: 58 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: faulerhund@faulerhund.net Precedence: bulk X-list: dovecot X-UID: 58 Status: O well finally it was my own stupidness! i just forgot to set some correct permissions, now everythings fine! thx anyway korbinian From ianj@ian-justman.com Sun Oct 20 09:38:35 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 20 Oct 2002 09:38:35 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from narshe.chocobo.org (dsl-207-126-72-242.dsl.netasset.net [207.126.72.242]) by danu.procontrol.fi (Postfix) with ESMTP id C321D238A7 for ; Sun, 20 Oct 2002 09:38:34 +0300 (EEST) Received: from zozo.intrn.chocobo.org (zozo.chocobo.org [207.126.72.244]) by narshe.chocobo.org (Postfix) with ESMTP id 18975311609 for ; Sat, 19 Oct 2002 23:38:31 -0700 (PDT) Received: by zozo.intrn.chocobo.org (Postfix, from userid 501) id 5C94C870704; Sat, 19 Oct 2002 23:38:30 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zozo.intrn.chocobo.org (Postfix) with ESMTP id 10A40449AD4 for ; Sat, 19 Oct 2002 23:38:29 -0700 (PDT) Date: Sat, 19 Oct 2002 23:38:29 -0700 (PDT) From: "Ian R. Justman" X-X-Sender: ianj@zozo.chocobo.org To: Dovecot Mailinglist Subject: [dovecot] observations/qestions of mbox concurrency ability (Yay!) on current CVS Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 59 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: ianj@ian-justman.com Precedence: bulk X-list: dovecot X-UID: 59 Status: O Hi, all. Just been testing out the latest "CVS" (in quotes because I'm rsyncing the source tree) versions of Dovecot lately. Tested having Pine on the machine on which Dovecot was running, talking IMAP, as well as another Pine instance, this time from my Windows machine over the wire. Things seem to be working wonderfully. Deleted a message using one instance, then refreshed the list on the other. *poof* Gone. Though I'm seeing periodic "IMAP protocol error" messages in Pine, but they don't seem to be affecting the software's operation that I can see. Anything in particular I should be on the lookout for? Otherwise, you just made my day. Correction; week. :D --Ian. From tss@iki.fi Sun Oct 20 16:47:50 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 20 Oct 2002 16:47:50 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 84B752382D for ; Sun, 20 Oct 2002 16:47:50 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 6AC945E03E5C; Sun, 20 Oct 2002 16:47:49 +0300 (EEST) Subject: [dovecot] Re: observations/qestions of mbox concurrency ability (Yay!) on current CVS From: Timo Sirainen To: "Ian R. Justman" Cc: Dovecot Mailinglist In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035121669.24867.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 20 Oct 2002 16:47:49 +0300 X-archive-position: 60 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 60 Status: O Content-Length: 1458 On Sun, 2002-10-20 at 09:38, Ian R. Justman wrote: > Tested having Pine on the machine on which Dovecot was running, talking > IMAP, as well as another Pine instance, this time from my Windows machine > over the wire. Things seem to be working wonderfully. Deleted a message > using one instance, then refreshed the list on the other. *poof* Gone. > > Though I'm seeing periodic "IMAP protocol error" messages in Pine, but > they don't seem to be affecting the software's operation that I can see. > > Anything in particular I should be on the lookout for? By default Dovecot uses .lock file and flock() locking. Some programs may use fcntl() which doesn't work with flock(), but most use .lock file as well so it doesn't really matter. I'm going to make the locking style configurable later. Anyway, I don't know of any reasons for mailbox corruption, but we don't lock the mailbox when reading from it, so it is possible that someone else might modify (expunge) the mailbox while Dovecot is reading it and the IMAP client gets corrupted message. I was thinking about fixing this using read-locking fcntl() / flock(). Maybe it could optionally create the .lock file as well, but that'd slow down simultaneous reads. Oh, and the mbox parsing code could use better checking, if there's any bugs it will corrupt the mailbox at expunge/flag rewrite. I haven't seen those though for the month or two that I've been using Dovecot+mbox to read my mail. From thomas@xs4all.net Mon Oct 21 14:53:07 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 14:53:07 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla1.xs4all.nl (smtpzilla1.xs4all.nl [194.109.127.137]) by danu.procontrol.fi (Postfix) with ESMTP id 4333B2382D for ; Mon, 21 Oct 2002 14:53:07 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla1.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9LBr6ni040943 for ; Mon, 21 Oct 2002 13:53:06 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id DC6BB224C; Mon, 21 Oct 2002 13:51:43 +0200 (CEST) Date: Mon, 21 Oct 2002 13:51:43 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021021115143.GS543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035036115.1674.81.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 61 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 61 Status: O Content-Length: 1279 On Sat, Oct 19, 2002 at 05:01:55PM +0300, Timo Sirainen wrote: > If your clusters access the files through NFS, there should be no > problem. Except I've never tried Dovecot through NFS, and I'm not sure > how well mmap()ing works through NFS. I know there's been problems > before but hopefully they've been fixed already. Hmm. I'm not sure what kind of behaviour you're looking for, but here's what I see, using a little Python script on our FreeBSD servers with a netapp-mounted filesystem. Mapping MAP_SHARED and PROT_READ|PROT_WRITE, two different machines mounting the same directory, two processes on each machine mmap()ing the same file. When one process alters the data, the other process on the same machine sees it instantly. The processes on the other machine do not see it at all, not even when re-opening the mmap or being restarted. After doing an msync() in the process that altered the data, the processes on the other machine still don't see the change; they have to re-open the mmap or be restarted before they see the change -- but when one of the processes re-opens or restarts, the other does see the change without doing anything. -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From thomas@xs4all.net Mon Oct 21 15:40:02 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 15:40:02 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id 868CD23837 for ; Mon, 21 Oct 2002 15:40:02 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9LCe2wC017139 for ; Mon, 21 Oct 2002 14:40:02 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 19E90224C; Mon, 21 Oct 2002 14:38:39 +0200 (CEST) Date: Mon, 21 Oct 2002 14:38:39 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021021123839.GW543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021019151026.GM543@xs4all.nl> <1035042823.1679.127.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035042823.1679.127.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 62 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 62 Status: O On Sat, Oct 19, 2002 at 06:53:43PM +0300, Timo Sirainen wrote: > > As long as dovecot doesn't read a different meaning into those flags > > (ignoring them is just fine) we should be fine. I don't think we'll have > > many customers switching back and forth between dovecot and UW-IMAP, just > > people switching from UW-IMAP to dovecot. > Keeping the UIDs untouched when changing could be important to some > people whose mail clients can save some extra information related to > specific messages and use UID to identify the mails. I think Evolution > does this with it's labels and Follow-Up marks, but I'm not sure. Well, what I meant was that currently, IMAP is being used only by SquirrelMail, and I'm fairly sure SquirrelMail doesn't store UIDs anywhere. Other IMAP clients would be an issue only if we allowed other IMAP clients to connect, which we don't (except in internal tests :). -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From thomas@xs4all.net Mon Oct 21 16:04:50 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 16:04:50 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla5.xs4all.nl (smtpzilla5.xs4all.nl [194.109.127.141]) by danu.procontrol.fi (Postfix) with ESMTP id 3F98523837 for ; Mon, 21 Oct 2002 16:04:50 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla5.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9LD4gEH017726; Mon, 21 Oct 2002 15:04:47 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 4840D224C; Mon, 21 Oct 2002 15:03:19 +0200 (CEST) Date: Mon, 21 Oct 2002 15:03:19 +0200 From: Thomas Wouters To: Charlie Brady Cc: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021021130319.GX543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 63 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 63 Status: O Content-Length: 2995 On Sat, Oct 19, 2002 at 12:42:25PM -0400, Charlie Brady wrote: > > So when we needed an IMAP server for use with our webmail (based on > > SquirrelMail), we were forced to go with the UW-IMAP server, with the > > maildir patch that's been scattered around the 'net. This worked, for a > > while; we also use the maildir patch with pine after all. However, the > > maildir patch is not very good. Not at all, even, and it only seems to > > work by pure chance. > The best one I've found is the patch last modified AFAICT by Miquel van > Smoorenburg, which has maildir filenames like: > time.pid.host,U=xxx,W=yyy:2,flags We use two different patches, both of which have a bit of Mike in them. One is for the IMAP server, which is an old version ('uw-imap-2000' or something like that comes to mind, but it came from the pine 4.10 source) from before the mailbox->append prototype changed (but with Mike's bilennium-patch.) A big problem with later patches was that the append method changed in the pine source, but not in the maildir patch. We considered using a newer uw-imap but decided that the current one works good enough ;P For pine we currently use the patch that comes with Debian's 'pine-tracker' package (which is an installer for pine with patches, since you aren't allowed to distributed modified binaries.) This patch also has some Mike in it, but I'm not sure howmuch, as at least parts of it seem to be backed out later. This patch works okay except for the two problems I noted in my original mail: it depends on directory order not to change except when '.uidvalidity' gets touched, and it depends on alphanumerical sort order of files matching chronological (or at least uid-based, which should be the same) sort order. The latter breaks with (standard) procmail, the former occasionally with btree and (presumably) hashed directory indices. > The storage of RFC822.SIZE, aka the on-the-wire size, in the filename > makes a very big difference to performance. That's interesting. I'll keep that in mind for when we begin to see performance issues with UW-IMAP. (I'm hoping I never have to look at the pine source again, though.) > But even this patch (from, e.g. > http://www.star.le.ac.uk/~tjg/misc/uw_imap-2001a_maildir-02.patch) has a > number of bugs. I've fixed a few of them. You can find a source RPM at > ftp://ftp.e-smith.org/pub/e-smith/dev/5.6dev/SRPMS/. The fixes are: I couldn't find the source RPM for pine or (uw-)imap in that directory, but it doesn't sound like your changes solve our fundamental problems. It's not that big a deal, I think we've decided internally (I know _I_ have :) that we can't offer real IMAP services based on UW-IMAP; we'd sooner go for Cyrus or Courier, even if it does mean disallowing mboxes with IMAP. But dovecot is an even better alternative, once it has all the features we need :) -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Mon Oct 21 16:15:30 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 16:15:30 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6091723837 for ; Mon, 21 Oct 2002 16:15:30 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id B84CA5E03E5C; Mon, 21 Oct 2002 16:15:28 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021021115143.GS543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035206128.613.8.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 21 Oct 2002 16:15:28 +0300 X-archive-position: 64 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 64 Status: O Content-Length: 1114 On Mon, 2002-10-21 at 14:51, Thomas Wouters wrote: > Hmm. I'm not sure what kind of behaviour you're looking for, but here's what > I see, using a little Python script on our FreeBSD servers with a > netapp-mounted filesystem. Mapping MAP_SHARED and PROT_READ|PROT_WRITE, two > different machines mounting the same directory, two processes on each > machine mmap()ing the same file. > > When one process alters the data, the other process on the same machine sees > it instantly. The processes on the other machine do not see it at all, not > even when re-opening the mmap or being restarted. After doing an msync() in > the process that altered the data, the processes on the other machine still > don't see the change; they have to re-open the mmap or be restarted before > they see the change -- but when one of the processes re-opens or restarts, > the other does see the change without doing anything. Requiring msync() is fine, that's done after each change, but there should be better solution than re-mmap()ing to notice the changes. I think FreeBSD checked the changes after fcntl() locking changes :) From thomas@xs4all.net Mon Oct 21 17:20:52 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 17:20:52 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id BA14223837 for ; Mon, 21 Oct 2002 17:20:52 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9LEKqkc068326 for ; Mon, 21 Oct 2002 16:20:52 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 1D65A4ACB; Mon, 21 Oct 2002 16:19:29 +0200 (CEST) Date: Mon, 21 Oct 2002 16:19:29 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021021141929.GY543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035206128.613.8.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 65 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 65 Status: O Content-Length: 1435 On Mon, Oct 21, 2002 at 04:15:28PM +0300, Timo Sirainen wrote: > Requiring msync() is fine, that's done after each change, but there > should be better solution than re-mmap()ing to notice the changes. I > think FreeBSD checked the changes after fcntl() locking changes :) Hmm. More bad news; flock() doesn't work over NFS. That is, local processes see and honor the lock even on NFS filesystems, but other machines don't see the lock at all. fcntl() doesn't work at all (but that's probably because we're not running lockd.) I've tried various ways of forcing other machines to update their filesystem cache without doing something on those machines (so you can optionally do that after the msync()) by changing atime, mtime, nlinks, but so far, nothing. I should point out that the file-metadata (mtime/ctime/nlinks) returned by fstat() sometimes do get updated, and sometimes they don't. Same for stat(). That aside, this issue isn't that big an issue for us. The same-client-connecting-twice case we can solve by configuring the layer-4 ethernet switch to connect the same ipaddress to the same real server, so that mmaps() are properly shared and all. We might want per-mailbox locks so that only one real server can open a specific mailbox (but do so multiple times) but I'll figure that one out later. -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Mon Oct 21 17:49:30 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 21 Oct 2002 17:49:30 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 4035223837 for ; Mon, 21 Oct 2002 17:49:30 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 115105E03E5C; Mon, 21 Oct 2002 17:49:30 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021021141929.GY543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035211769.613.48.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 21 Oct 2002 17:49:29 +0300 X-archive-position: 66 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 66 Status: O Content-Length: 1820 On Mon, 2002-10-21 at 17:19, Thomas Wouters wrote: > > Requiring msync() is fine, that's done after each change, but there > > should be better solution than re-mmap()ing to notice the changes. I > > think FreeBSD checked the changes after fcntl() locking changes :) > > Hmm. More bad news; flock() doesn't work over NFS. That is, local processes > see and honor the lock even on NFS filesystems, but other machines don't see > the lock at all. fcntl() doesn't work at all (but that's probably because > we're not running lockd.) flock() doesn't matter, it's used only for mbox locking where .lock file would work instead just as well. > That aside, this issue isn't that big an issue for us. The > same-client-connecting-twice case we can solve by configuring the layer-4 > ethernet switch to connect the same ipaddress to the same real server, so > that mmaps() are properly shared and all. We might want > per-mailbox locks so that only one real server can open a specific mailbox > (but do so multiple times) but I'll figure that one out later. OK. I think this could be fixed internally too. Or this is mostly a problem with index files, mbox/maildir files are currently re-mmap()ed every time they're accessed (but I'll change mbox not to do that later). Indexes currently have "sync_id" in their header, it's changed whenever the file size is changed so other processes then know to re-mmap() it. This could be optionally changed to be updated every time the file itself has changed to force others to mmap() again. The sync_id change itself could be checked using lseek() + read(). If fstat() or stat() doesn't show mtime changes, that could be a bit worse problem. I think I'm relying on that with some things.. At least new mail is checked by seeing if Maildir/cur's mtime matches .imap.index's mtime. From tss@iki.fi Tue Oct 22 04:24:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 04:24:55 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id D2C9F2382D for ; Tue, 22 Oct 2002 04:24:54 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 8C06D5E03E5C; Tue, 22 Oct 2002 04:24:54 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021021141929.GY543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035249894.5044.28.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 22 Oct 2002 04:24:54 +0300 X-archive-position: 67 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 67 Status: O Content-Length: 1572 On Mon, 2002-10-21 at 17:19, Thomas Wouters wrote: > That aside, this issue isn't that big an issue for us. The > same-client-connecting-twice case we can solve by configuring the layer-4 > ethernet switch to connect the same ipaddress to the same real server, so > that mmaps() are properly shared and all. We might want > per-mailbox locks so that only one real server can open a specific mailbox > (but do so multiple times) but I'll figure that one out later. Just had a thought. Would it be feasible to _try_ to permanently assign users to one or few specific servers (via ip or maybe login proxy)? If those servers were down, it could fallback to any random one. I was thinking Dovecot's indexes could just as well be stored in local hard disk - they're not required to exist and they're not required to be in sync when opening, so it's possible to keep multiple indexes lying around in different servers. That would take care of most of the mmap() and locking problems and should make it perform a _lot_ better than through NFS. I don't know how NFS works internally, but I doubt it has any way for remote OS to determine what parts of file has changed, so re-mmap()ing would most likely always reread the whole file (or the parts that it accesses) which is quite inefficient. I really like this idea, keeping indexes in local disk where they may be considered as fast non-permanent data and then reading the actual mail data via backed up NFS server. This gets me thinking of a lot more possible optimizations to reduce NFS I/O at the cost of more local.. :) From tss@iki.fi Tue Oct 22 05:31:22 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 05:31:22 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A8EB723837 for ; Tue, 22 Oct 2002 05:31:22 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 6BF085E03E5C; Tue, 22 Oct 2002 05:31:22 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <1035249894.5044.28.camel@hurina> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035253882.5041.34.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 22 Oct 2002 05:31:22 +0300 X-archive-position: 68 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 68 Status: O On Tue, 2002-10-22 at 04:24, Timo Sirainen wrote: > Just had a thought. Would it be feasible to _try_ to permanently assign > users to one or few specific servers (via ip or maybe login proxy)? If > those servers were down, it could fallback to any random one. Dovecot could actually do that itself too, authenticate user and then either locally handle it or transfer it to another node based on some configuration. > I really like this idea, keeping indexes in local disk where they may be > considered as fast non-permanent data and then reading the actual mail > data via backed up NFS server. This gets me thinking of a lot more > possible optimizations to reduce NFS I/O at the cost of more local.. :) This again makes the indexer process possible and useful, since it would be accessing only local disks. It could also delete some of the older indexes if disk space is getting full. From thomas@xs4all.net Tue Oct 22 14:50:52 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 14:50:52 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla1.xs4all.nl (smtpzilla1.xs4all.nl [194.109.127.137]) by danu.procontrol.fi (Postfix) with ESMTP id 631112382D for ; Tue, 22 Oct 2002 14:50:52 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla1.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MBoqol023592 for ; Tue, 22 Oct 2002 13:50:52 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 939694BC7; Tue, 22 Oct 2002 13:49:22 +0200 (CEST) Date: Tue, 22 Oct 2002 13:49:22 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022114922.GF543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035253882.5041.34.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 69 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 69 Status: O Content-Length: 2956 On Tue, Oct 22, 2002 at 05:31:22AM +0300, Timo Sirainen wrote: > On Tue, 2002-10-22 at 04:24, Timo Sirainen wrote: > > Just had a thought. Would it be feasible to _try_ to permanently assign > > users to one or few specific servers (via ip or maybe login proxy)? If > > those servers were down, it could fallback to any random one. Yes, the Alteons we use can be configured quite flexibly. We can easily configure, e.g., two servers as 'primary' and two fallback servers, or do load-balancing based on the output of a script, or any number of things. We only use the general load-balancing (actually just active-connection-balancing) while keeping sessions on the same server (based on remote IP) but we could look into the more intricate methods. A single IMAP server with a backup is a good start though. > Dovecot could actually do that itself too, authenticate user and then > either locally handle it or transfer it to another node based on some > configuration. You mean if you have a frontend with several backends, and the frontend proxies for the backends (with several frontends possible, for redundancy,) hmm, that might work. Diablo (the news server software) works like this, somewhat, too, and we also use it behind Alteon switches :) > > I really like this idea, keeping indexes in local disk where they may be > > considered as fast non-permanent data and then reading the actual mail > > data via backed up NFS server. This gets me thinking of a lot more > > possible optimizations to reduce NFS I/O at the cost of more local.. :) > This again makes the indexer process possible and useful, since it would > be accessing only local disks. It could also delete some of the older > indexes if disk space is getting full. Yes. Keeping things on local disk sounds good. As long as opening the same mailbox on another server doesn't break anything (or breaks 'cleanly', doesn't delete the wrong mails etc) we can definately live with much worse performance for those cases. My professional estimate is that they will be very, very rare ;P But for the time being we're more concerned with the SORT extention :) I've read the spec, and besides the natural "ugh" at having to parse the subject that way, it seems doable... except that charset support for UTF-8, as well as US-ASCII, is mandatory. I don't know any libraries that convert to/from UTF-8 (though ASCII<->UTF-8 is obviously simple :) and though it's probably easy to roll your own for iso8859-1 I'm not sure if you had a solution in mind yet. Also, supporting the other character sets (like UW-IMAP does) is probably a lot trickier. Other than the charset issues I could probably whip up a working SORT implementation given enough time... but it probably wouldn't be super-efficient, as quicksort is so much easier to start with than, say, a mergesort ;P -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From rueckert@informatik.uni-rostock.de Tue Oct 22 15:47:21 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 15:47:21 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from linux.taugt.net (wh5035.stw.uni-rostock.de [139.30.105.35]) by danu.procontrol.fi (Postfix) with ESMTP id D3C8D23837 for ; Tue, 22 Oct 2002 15:47:21 +0300 (EEST) Received: by linux.taugt.net (postwixer on board, from userid 500) id 827F82A150; Tue, 22 Oct 2002 14:47:22 +0200 (CEST) Date: Tue, 22 Oct 2002 14:47:22 +0200 From: Marcus Rueckert To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022124722.GA942@linux.taugt.net> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035253882.5041.34.camel@hurina> User-Agent: Mutt/1.4i X-archive-position: 70 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: rueckert@informatik.uni-rostock.de Precedence: bulk X-list: dovecot X-UID: 70 Status: O On 2002-10-22 05:31:22 +0000, Timo Sirainen wrote: > Subject: [dovecot] Re: Architectural questions > From: Timo Sirainen > To: dovecot@procontrol.fi > X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) > Date: 22 Oct 2002 05:31:22 +0300 > > On Tue, 2002-10-22 at 04:24, Timo Sirainen wrote: > > Just had a thought. Would it be feasible to _try_ to permanently assign > > users to one or few specific servers (via ip or maybe login proxy)? If > > those servers were down, it could fallback to any random one. > > Dovecot could actually do that itself too, authenticate user and then > either locally handle it or transfer it to another node based on some > configuration. hmm i just wanted to suggest http://www.vergenet.net/linux/perdition/ for proxying. but if dovecot could do something similar by it self this is not needed :) bow before god aehm cras ^^ marcus -- irssi - the client of the smart and beautiful people http://www.irssi.de/ From cras@irccrew.org Tue Oct 22 16:01:46 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 16:01:46 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id B564623837 for ; Tue, 22 Oct 2002 16:01:46 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 172F74C0A0; Tue, 22 Oct 2002 16:01:46 +0300 (EEST) Date: Tue, 22 Oct 2002 16:01:46 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022130146.GB8122@irccrew.org> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20021022114922.GF543@xs4all.nl> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 71 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 71 Status: O Content-Length: 3419 On Tue, Oct 22, 2002 at 01:49:22PM +0200, Thomas Wouters wrote: > Yes, the Alteons we use can be configured quite flexibly. We can easily > configure, e.g., two servers as 'primary' and two fallback servers, or do > load-balancing based on the output of a script, or any number of things. We > only use the general load-balancing (actually just > active-connection-balancing) while keeping sessions on the same server > (based on remote IP) but we could look into the more intricate methods. A > single IMAP server with a backup is a good start though. OK, they'd probably be better than any Dovecot proxies I think. > > Dovecot could actually do that itself too, authenticate user and then > > either locally handle it or transfer it to another node based on some > > configuration. > > You mean if you have a frontend with several backends, and the frontend > proxies for the backends (with several frontends possible, for redundancy,) > hmm, that might work. Diablo (the news server software) works like this, > somewhat, too, and we also use it behind Alteon switches :) Not necessarily split to frontend/backend.. Well, that's possible too but I was thinking that every running dovecot could handle authentication and transferring connection elsewhere (via another TCP connection, login using some internal password, maybe use TLS too). > Yes. Keeping things on local disk sounds good. As long as opening the same > mailbox on another server doesn't break anything (or breaks 'cleanly', > doesn't delete the wrong mails etc) we can definately live with much worse > performance for those cases. My professional estimate is that they will be > very, very rare ;P Nothing breaks if same mailbox is opened from different computers with different indexes (or no indexes). > But for the time being we're more concerned with the SORT extention :) I've > read the spec, and besides the natural "ugh" at having to parse the subject > that way, it seems doable... The subject sorting looked very "ugh" to me too :) > except that charset support for UTF-8, as well > as US-ASCII, is mandatory. I don't know any libraries that convert to/from > UTF-8 (though ASCII<->UTF-8 is obviously simple :) and though it's probably > easy to roll your own for iso8859-1 I'm not sure if you had a solution in > mind yet. Also, supporting the other character sets (like UW-IMAP does) is > probably a lot trickier. iconv() does it all, comes with glibc. Only bigger thing to do is to parse the headers and convert the =?xxx?yyy?= things. I think everything should go either through UTF8 or without any conversion if both header and search charsets are same. > Other than the charset issues I could probably whip up a working SORT > implementation given enough time... but it probably wouldn't be > super-efficient, as quicksort is so much easier to start with than, say, > a mergesort ;P I can think of two ways to do it: 1) save search results to array, sort the array, send it to clients, delete the array. 2) sort all mails writing results into btree file, keep the file updated whenever new mails are added or deleted. then do the search in that order so we can just write out the results without any sorting. I like the 2) more, but that works only if the sort condition isn't changed. Or if it is changed, then we'd need to have multiple btree files.. And in general it slows down things if sorting isn't done often. From cras@irccrew.org Tue Oct 22 16:06:50 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 16:06:50 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id D7F1023837 for ; Tue, 22 Oct 2002 16:06:50 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id A49264C0A0; Tue, 22 Oct 2002 16:06:50 +0300 (EEST) Date: Tue, 22 Oct 2002 16:06:50 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022130650.GC8122@irccrew.org> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20021022130146.GB8122@irccrew.org> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 72 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 72 Status: O On Tue, Oct 22, 2002 at 04:01:46PM +0300, Timo Sirainen wrote: > > except that charset support for UTF-8, as well > > as US-ASCII, is mandatory. I don't know any libraries that convert to/from > > UTF-8 (though ASCII<->UTF-8 is obviously simple :) and though it's probably > > easy to roll your own for iso8859-1 I'm not sure if you had a solution in > > mind yet. Also, supporting the other character sets (like UW-IMAP does) is > > probably a lot trickier. > > iconv() does it all, comes with glibc. Um. Of course FreeBSD didn't have glibc, but iconv() is anyway pretty standard, man page says "Conforming to UNIX98". It comes as a separate library as well. BTW. does SquirrelMail also require THREAD extension? It's not much more different from SORT luckily. From thomas@xs4all.net Tue Oct 22 16:23:59 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 16:23:59 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla2.xs4all.nl (smtpzilla2.xs4all.nl [194.109.127.138]) by danu.procontrol.fi (Postfix) with ESMTP id E953E2382D for ; Tue, 22 Oct 2002 16:23:58 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla2.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MDNwHg059572 for ; Tue, 22 Oct 2002 15:23:58 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id A25BF2D43; Tue, 22 Oct 2002 15:22:28 +0200 (CEST) Date: Tue, 22 Oct 2002 15:22:28 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022132228.GG543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021022130650.GC8122@irccrew.org> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 73 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 73 Status: O Content-Length: 1288 On Tue, Oct 22, 2002 at 04:06:50PM +0300, Timo Sirainen wrote: > On Tue, Oct 22, 2002 at 04:01:46PM +0300, Timo Sirainen wrote: > > > except that charset support for UTF-8, as well > > > as US-ASCII, is mandatory. I don't know any libraries that convert to/from > > > UTF-8 (though ASCII<->UTF-8 is obviously simple :) and though it's probably > > > easy to roll your own for iso8859-1 I'm not sure if you had a solution in > > > mind yet. Also, supporting the other character sets (like UW-IMAP does) is > > > probably a lot trickier. > > iconv() does it all, comes with glibc. > Um. Of course FreeBSD didn't have glibc, but iconv() is anyway pretty > standard, man page says "Conforming to UNIX98". It comes as a separate > library as well. Yeah, I noticed the same thing :) But it still has to be a concious decision, as not all platforms come with libiconv and I wasn't sure what your target audience is, and might become. > BTW. does SquirrelMail also require THREAD extension? It's not much more > different from SORT luckily. It looks like it's optional. As a matter of fact, so is SORT :) But both would be very nice to have, not just for SquirrelMail. -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From thomas@xs4all.net Tue Oct 22 16:41:38 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 16:41:38 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id 5975F2382D for ; Tue, 22 Oct 2002 16:41:38 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MDfbcj029432 for ; Tue, 22 Oct 2002 15:41:38 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id DF54A2D43; Tue, 22 Oct 2002 15:40:07 +0200 (CEST) Date: Tue, 22 Oct 2002 15:40:07 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022134007.GH543@xs4all.nl> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021022130146.GB8122@irccrew.org> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 74 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 74 Status: O Content-Length: 1983 On Tue, Oct 22, 2002 at 04:01:46PM +0300, Timo Sirainen wrote: > Only bigger thing to do is to parse the headers and convert the > =?xxx?yyy?= things. I think everything should go either through UTF8 or > without any conversion if both header and search charsets are same. I assume you only want to convert to UTF-8 or the other character sets when it's really necessary, not store all data internally as UTF-8 or wchar_t ? > I can think of two ways to do it: > 1) save search results to array, sort the array, send it to clients, delete > the array. > 2) sort all mails writing results into btree file, keep the file updated > whenever new mails are added or deleted. then do the search in that order so > we can just write out the results without any sorting. > I like the 2) more, but that works only if the sort condition isn't changed. > Or if it is changed, then we'd need to have multiple btree files.. And in > general it slows down things if sorting isn't done often. I think 2) might be an option if you're dealing with very specific SORTs. SquirrelMail, for instance, allows sorting on date, from, subject, arrival and to (but the last one only in 'sent-mail' mailbox, oddly enough) and all reverses, and in various order as well, by little buttony things on the mailbox-index page... easy to play with. (Don't forget, you can . SORT (SUBJECT REVERSE FROM REVERSE TO REVERSE DATE ARRIVAL) UTF-8 ALL and which btrees would you use how, in that case ? :) Anyway, in SquirrelMail at least, I don't think there is a system-wide 'default' for the criterium that's most often SORTed on. Simply storing the last SORT might be the optimal solution, as I think (after the initial toying with the mailbox sort order, and the occasional switch to search faster) most people won't touch their sort order once they like or are used with what they have. -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From cras@irccrew.org Tue Oct 22 17:00:13 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 17:00:13 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id C9D3B2382D for ; Tue, 22 Oct 2002 17:00:13 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 93B514C0A0; Tue, 22 Oct 2002 17:00:13 +0300 (EEST) Date: Tue, 22 Oct 2002 17:00:13 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022140013.GD8122@irccrew.org> References: <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> <20021022132228.GG543@xs4all.nl> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20021022132228.GG543@xs4all.nl> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 75 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 75 Status: O Content-Length: 1066 On Tue, Oct 22, 2002 at 03:22:28PM +0200, Thomas Wouters wrote: > > Um. Of course FreeBSD didn't have glibc, but iconv() is anyway pretty > > standard, man page says "Conforming to UNIX98". It comes as a separate > > library as well. > > Yeah, I noticed the same thing :) But it still has to be a concious > decision, as not all platforms come with libiconv and I wasn't sure what > your target audience is, and might become. Well, target audience should be as large as possible :) But I think it'd be good enough to make iconv() required for charset-support, without iconv() it would support only charsets which don't need any conversion (ascii and "search charset foo" with "=?foo?..?=") > > BTW. does SquirrelMail also require THREAD extension? It's not much more > > different from SORT luckily. > > It looks like it's optional. As a matter of fact, so is SORT :) But both > would be very nice to have, not just for SquirrelMail. Yeah. I'll add support for both later, currently there's a bit more important things to do which you'll want fixed as well :) From cras@irccrew.org Tue Oct 22 17:12:23 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 17:12:23 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from shodan.irccrew.org (shodan.irccrew.org [80.83.4.2]) by danu.procontrol.fi (Postfix) with ESMTP id 1E2272382D for ; Tue, 22 Oct 2002 17:12:23 +0300 (EEST) Received: by shodan.irccrew.org (Postfix, from userid 6976) id 2C1CE4C0A0; Tue, 22 Oct 2002 17:12:20 +0300 (EEST) Date: Tue, 22 Oct 2002 17:12:20 +0300 From: Timo Sirainen To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022141220.GE8122@irccrew.org> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022134007.GH543@xs4all.nl> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20021022134007.GH543@xs4all.nl> User-Agent: Mutt/1.4i Content-Type: text/plain; charset=us-ascii X-archive-position: 76 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 76 Status: O Content-Length: 1875 On Tue, Oct 22, 2002 at 03:40:07PM +0200, Thomas Wouters wrote: > > Only bigger thing to do is to parse the headers and convert the > > =?xxx?yyy?= things. I think everything should go either through UTF8 or > > without any conversion if both header and search charsets are same. > > I assume you only want to convert to UTF-8 or the other character sets when > it's really necessary, not store all data internally as UTF-8 or wchar_t ? Well, there's not much stored in memory, and index files store mostly just FETCH ENVELOPE. The envelope is better to be in format where it's suitable for directly sending to IMAP client and those few things that are stored in memory aren't used by search at all. I think it'll be easier if everything was just converted when needed and it's just more CPU (and maybe memory) usage - there should be plenty of that left :) > I think 2) might be an option if you're dealing with very specific SORTs. > SquirrelMail, for instance, allows sorting on date, from, subject, arrival > and to (but the last one only in 'sent-mail' mailbox, oddly enough) and all > reverses, and in various order as well, by little buttony things on the > mailbox-index page... easy to play with. (Don't forget, you can > > . SORT (SUBJECT REVERSE FROM REVERSE TO REVERSE DATE ARRIVAL) UTF-8 ALL > > and which btrees would you use how, in that case ? :) Anyway, in Primary condition could be enough to store in the btree, the other conditions are used only when primary compares equal between mails, so we can just read those into memory and then apply the rest of the sorting. Still faster and takes less memory than reading everything into memory and then sorting. Or the btree could be fully sorted with some condition, but if it's not exactly the same we want we could just use the primary condition. (uh, a bit badly said, hope it makes some sense :) From thomas@xs4all.net Tue Oct 22 21:19:54 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 21:19:54 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla1.xs4all.nl (smtpzilla1.xs4all.nl [194.109.127.137]) by danu.procontrol.fi (Postfix) with ESMTP id 08BA423837 for ; Tue, 22 Oct 2002 21:19:54 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla1.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MIJoWS075157 for ; Tue, 22 Oct 2002 20:19:50 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 761CB2D43; Tue, 22 Oct 2002 20:18:19 +0200 (CEST) Date: Tue, 22 Oct 2002 20:18:19 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022181819.GI543@xs4all.nl> References: <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> <20021022132228.GG543@xs4all.nl> <20021022140013.GD8122@irccrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021022140013.GD8122@irccrew.org> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 77 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 77 Status: O On Tue, Oct 22, 2002 at 05:00:13PM +0300, Timo Sirainen wrote: > Yeah. I'll add support for both later, currently there's a bit more > important things to do which you'll want fixed as well :) Heh. That reminds me... Have you considered using, for instance, SourceForge to host dovecot ? Or at least use something like syncmail, which mails out CVS diffs on each checkin ? I use syncmail on every CVS project, both internal and external, and I find I've grown very attached to it, and am too used to seeing what goes on in an project just by looking at the checkins :) (Not that I'm actively pushing you to use SourceForge or anything... it definately has its downsides too, if you're capable of running your own CVS server anyway.) -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From thomas@xs4all.net Tue Oct 22 21:51:09 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 21:51:09 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla5.xs4all.nl (smtpzilla5.xs4all.nl [194.109.127.141]) by danu.procontrol.fi (Postfix) with ESMTP id DA74523837 for ; Tue, 22 Oct 2002 21:51:08 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla5.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MIp8pE020363 for ; Tue, 22 Oct 2002 20:51:08 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id 1F1D22D43; Tue, 22 Oct 2002 20:49:37 +0200 (CEST) Date: Tue, 22 Oct 2002 20:49:37 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022184937.GJ543@xs4all.nl> References: <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> <20021022132228.GG543@xs4all.nl> <20021022140013.GD8122@irccrew.org> <20021022181819.GI543@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021022181819.GI543@xs4all.nl> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 78 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 78 Status: O Content-Length: 1919 On Tue, Oct 22, 2002 at 08:18:19PM +0200, Thomas Wouters wrote: > Heh. That reminds me... Have you considered using, for instance, > SourceForge to host dovecot ? And while on *that* subject, the current CVS tree needs a patch like this to compile. (And the usual Makefile rebuilds.) But I'm sure you already noticed :-) Index: src/login/Makefile.am =================================================================== RCS file: /home/thomas/cvs-root/dovecot/src/login/Makefile.am,v retrieving revision 1.1.1.1 diff -c -r1.1.1.1 Makefile.am *** src/login/Makefile.am 9 Aug 2002 09:15:53 -0000 1.1.1.1 --- src/login/Makefile.am 22 Oct 2002 18:48:32 -0000 *************** *** 1,7 **** pkglib_PROGRAMS = imap-login INCLUDES = \ ! -I$(top_srcdir)/src/lib imap_login_LDADD = \ ../lib/liblib.a \ --- 1,8 ---- pkglib_PROGRAMS = imap-login INCLUDES = \ ! -I$(top_srcdir)/src/lib \ ! -DPACKAGE=\""$(PACKAGE)"\" imap_login_LDADD = \ ../lib/liblib.a \ Index: src/master/Makefile.am =================================================================== RCS file: /home/thomas/cvs-root/dovecot/src/master/Makefile.am,v retrieving revision 1.1.1.1 diff -c -r1.1.1.1 Makefile.am *** src/master/Makefile.am 9 Aug 2002 09:15:55 -0000 1.1.1.1 --- src/master/Makefile.am 22 Oct 2002 18:48:12 -0000 *************** *** 4,10 **** -I$(top_srcdir)/src/lib \ -DSYSCONFDIR=\""$(sysconfdir)"\" \ -DPKG_RUNDIR=\""$(localstatedir)/run/$(PACKAGE)"\" \ ! -DPKG_LIBDIR=\""$(pkglibdir)"\" imap_master_LDADD = \ ../lib/liblib.a --- 4,11 ---- -I$(top_srcdir)/src/lib \ -DSYSCONFDIR=\""$(sysconfdir)"\" \ -DPKG_RUNDIR=\""$(localstatedir)/run/$(PACKAGE)"\" \ ! -DPKG_LIBDIR=\""$(pkglibdir)"\" \ ! -DPACKAGE=\""$(PACKAGE)"\" imap_master_LDADD = \ ../lib/liblib.a -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Tue Oct 22 23:50:41 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 22 Oct 2002 23:50:41 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id BF23A23837 for ; Tue, 22 Oct 2002 23:50:41 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 408425E01F42; Tue, 22 Oct 2002 23:50:40 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021022184937.GJ543@xs4all.nl> References: <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> <20021022132228.GG543@xs4all.nl> <20021022140013.GD8122@irccrew.org> <20021022181819.GI543@xs4all.nl> <20021022184937.GJ543@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035319840.1665.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 22 Oct 2002 23:50:40 +0300 X-archive-position: 79 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 79 Status: O On Tue, 2002-10-22 at 21:49, Thomas Wouters wrote: > And while on *that* subject, the current CVS tree needs a patch like this to > compile. (And the usual Makefile rebuilds.) But I'm sure you already noticed > :-) config.h should define the PACKAGE, and it does for me with both autoconf 2.13 and 2.5. Did you use GNU make? automake doesn't work very well without. > Index: src/login/Makefile.am > =================================================================== > RCS file: /home/thomas/cvs-root/dovecot/src/login/Makefile.am,v > retrieving revision 1.1.1.1 > diff -c -r1.1.1.1 Makefile.am and diff -u in future please :) From thomas@xs4all.net Wed Oct 23 00:21:33 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 00:21:33 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla5.xs4all.nl (smtpzilla5.xs4all.nl [194.109.127.141]) by danu.procontrol.fi (Postfix) with ESMTP id 151F02382D for ; Wed, 23 Oct 2002 00:21:33 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla5.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9MLLWBC050470 for ; Tue, 22 Oct 2002 23:21:32 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id D36752D43; Tue, 22 Oct 2002 23:20:00 +0200 (CEST) Date: Tue, 22 Oct 2002 23:20:00 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: Architectural questions Message-ID: <20021022212000.GK543@xs4all.nl> References: <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022114922.GF543@xs4all.nl> <20021022130146.GB8122@irccrew.org> <20021022130650.GC8122@irccrew.org> <20021022132228.GG543@xs4all.nl> <20021022140013.GD8122@irccrew.org> <20021022181819.GI543@xs4all.nl> <20021022184937.GJ543@xs4all.nl> <1035319840.1665.6.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035319840.1665.6.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 80 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 80 Status: O On Tue, Oct 22, 2002 at 11:50:40PM +0300, Timo Sirainen wrote: > On Tue, 2002-10-22 at 21:49, Thomas Wouters wrote: > > And while on *that* subject, the current CVS tree needs a patch like this to > > compile. (And the usual Makefile rebuilds.) But I'm sure you already noticed > > :-) > config.h should define the PACKAGE, and it does for me with both > autoconf 2.13 and 2.5. Did you use GNU make? automake doesn't work very > well without. Ah, hm, I must have done something wrong with the aclocal/autoheader/automake/autoconf dance. It wasn't in my config.h or config.h.in, but I reran aclocal and now it's in config.h.in. I'm not used to using automake, just autoconf/autoheader :) > > diff -c -r1.1.1.1 Makefile.am > and diff -u in future please :) But, but, diff -c is so much more readable! :P Sigh :) -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Wed Oct 23 00:46:21 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 00:46:21 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 17B3F2382D for ; Wed, 23 Oct 2002 00:46:21 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id ADF1E5E01F42; Wed, 23 Oct 2002 00:46:15 +0300 (EEST) Subject: [dovecot] Re: Architectural questions From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021022124722.GA942@linux.taugt.net> References: <20021019123846.GK543@xs4all.nl> <1035036115.1674.81.camel@hurina> <20021021115143.GS543@xs4all.nl> <1035206128.613.8.camel@hurina> <20021021141929.GY543@xs4all.nl> <1035249894.5044.28.camel@hurina> <1035253882.5041.34.camel@hurina> <20021022124722.GA942@linux.taugt.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035323175.1665.31.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 23 Oct 2002 00:46:15 +0300 X-archive-position: 81 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 81 Status: O On Tue, 2002-10-22 at 15:47, Marcus Rueckert wrote: > i just wanted to suggest http://www.vergenet.net/linux/perdition/ > for proxying. but if dovecot could do something similar by it self this > is not needed :) It wouldn't be difficult to add proxying for dovecot, since it already does authentication and can SSL connections are pretty much proxied already through separate process. Anyway I looked at Perdition. It doesn't support AUTHENTICATE, plus I just found buffer overflow from it without even trying much. From tss@iki.fi Wed Oct 23 02:52:25 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 02:52:25 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CBF5A2382D for ; Wed, 23 Oct 2002 02:52:25 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 4A2335E01F42; Wed, 23 Oct 2002 02:52:25 +0300 (EEST) Subject: [dovecot] New mailing list: dovecot-cvs From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035330745.1664.71.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 23 Oct 2002 02:52:25 +0300 X-archive-position: 82 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 82 Status: O Installed syncmail program what Thomas was wanting. It sends a mail of each cvs commit, including the actual changes in source. Otherwise the mailing list is read-only. Subscribing happens the same way as to dovecot list, ie. dovecot-cvs-request@procontrol.fi with subscribe in subject. Hmm. I think I should also separate the private/public cvs repositories running in that computer and provide anonymous pserver access.. From tss@iki.fi Wed Oct 23 04:20:15 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 04:20:15 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 7FDEB2382C for ; Wed, 23 Oct 2002 04:20:15 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id E1A4A5E01F42; Wed, 23 Oct 2002 04:20:14 +0300 (EEST) Subject: [dovecot] anonymous CVS access From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035336014.21702.41.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 23 Oct 2002 04:20:14 +0300 X-archive-position: 83 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 83 Status: O OK, added anon-pserver: cvs -d :pserver:anonymous@dovecot.procontrol.fi:/home/cvs co dovecot From thomas@xs4all.net Wed Oct 23 14:20:20 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 14:20:20 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla3.xs4all.nl (smtpzilla3.xs4all.nl [194.109.127.139]) by danu.procontrol.fi (Postfix) with ESMTP id 06A182382C for ; Wed, 23 Oct 2002 14:20:20 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla3.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9NBKJFY030421 for ; Wed, 23 Oct 2002 13:20:19 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id BA1222E31; Wed, 23 Oct 2002 13:18:43 +0200 (CEST) Date: Wed, 23 Oct 2002 13:18:43 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] vsnprintf() Message-ID: <20021023111843.GA3563@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 84 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 84 Status: O I think I stumbled upon a bug in the i_snprintf() function. In the case of vnsprintf() being available, it depends on vnsprintf() returning -1 when the string was longer than the passed-in limit (or it won't terminate the string.). But this isn't the C99-standardized behaviour, and newer glibc's don't do that anymore either, so you can end up with a non-terminated string. This patch should fix it, I think. Index: strfuncs.c =================================================================== RCS file: /home/cvs/dovecot/src/lib/strfuncs.c,v retrieving revision 1.14 diff -c -u -r1.14 strfuncs.c --- strfuncs.c 20 Oct 2002 03:19:10 -0000 1.14 +++ strfuncs.c 23 Oct 2002 11:19:39 -0000 @@ -401,7 +401,7 @@ va_end(args); t_pop(); - if (ret < 0) { + if (ret < 0 || ret >= max_chars) { str[max_chars-1] = '\0'; ret = strlen(str); } -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From tss@iki.fi Wed Oct 23 16:16:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 16:16:37 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 2E1882382C for ; Wed, 23 Oct 2002 16:16:37 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id 934505E01F42; Wed, 23 Oct 2002 16:16:36 +0300 (EEST) Subject: [dovecot] Re: vsnprintf() From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021023111843.GA3563@xs4all.nl> References: <20021023111843.GA3563@xs4all.nl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035378996.28683.11.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 23 Oct 2002 16:16:36 +0300 X-archive-position: 85 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 85 Status: O On Wed, 2002-10-23 at 14:18, Thomas Wouters wrote: > I think I stumbled upon a bug in the i_snprintf() function. In the case of > vnsprintf() being available, it depends on vnsprintf() returning -1 when the > string was longer than the passed-in limit (or it won't terminate the > string.). But this isn't the C99-standardized behaviour, and newer glibc's > don't do that anymore either, so you can end up with a non-terminated > string. This patch should fix it, I think. Hm. vsnprintf() does terminate the string with \0 always, unless it returns -1. But I'll apply the patch anyway just to be sure :) Also my_vsyslog() didn't check the vsnprintf() return value at all. Have to go through that lib code more carefully some day.. From thomas@xs4all.net Wed Oct 23 16:38:07 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 16:38:07 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from smtpzilla1.xs4all.nl (smtpzilla1.xs4all.nl [194.109.127.137]) by danu.procontrol.fi (Postfix) with ESMTP id 07B272382C for ; Wed, 23 Oct 2002 16:38:07 +0300 (EEST) Received: from centurion.xs4all.nl (centurion.xs4all.nl [194.109.0.100]) by smtpzilla1.xs4all.nl (8.12.0/8.12.0) with ESMTP id g9NDc6YL048557 for ; Wed, 23 Oct 2002 15:38:06 +0200 (CEST) Received: by centurion.xs4all.nl (Postfix, from userid 1000) id E44094CF0; Wed, 23 Oct 2002 15:36:29 +0200 (CEST) Date: Wed, 23 Oct 2002 15:36:29 +0200 From: Thomas Wouters To: dovecot@procontrol.fi Subject: [dovecot] Re: vsnprintf() Message-ID: <20021023133629.GM543@xs4all.nl> References: <20021023111843.GA3563@xs4all.nl> <1035378996.28683.11.camel@hurina> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1035378996.28683.11.camel@hurina> User-Agent: Mutt/1.4i X-message-flag: Danger Will Robinson! X-archive-position: 86 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: thomas@xs4all.net Precedence: bulk X-list: dovecot X-UID: 86 Status: O Content-Length: 1204 On Wed, Oct 23, 2002 at 04:16:36PM +0300, Timo Sirainen wrote: > On Wed, 2002-10-23 at 14:18, Thomas Wouters wrote: > > I think I stumbled upon a bug in the i_snprintf() function. In the case of > > vnsprintf() being available, it depends on vnsprintf() returning -1 when the > > string was longer than the passed-in limit (or it won't terminate the > > string.). But this isn't the C99-standardized behaviour, and newer glibc's > > don't do that anymore either, so you can end up with a non-terminated > > string. This patch should fix it, I think. > Hm. vsnprintf() does terminate the string with \0 always, unless it > returns -1. But I'll apply the patch anyway just to be sure :) Hmm. Yeah, testing confirms you are right, I was just confused by the Linux manpage on the printf-functions. The FreeBSD manpage states it unambigiously: Snprintf() and vsnprintf() will write at most size-1 of the characters printed into the output string (the size'th character then gets the terminating `\0') Hey, that means I can go back and clean up some of my old code :-P -- Thomas Wouters Hi! I'm a .signature virus! copy me into your .signature file to help me spread! From dgc@uchicago.edu Wed Oct 23 20:13:44 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 20:13:45 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from dust.uchicago.edu (dust.uchicago.edu [128.135.0.35]) by danu.procontrol.fi (Postfix) with ESMTP id 4AEA12382D for ; Wed, 23 Oct 2002 20:13:44 +0300 (EEST) Received: (from dgc@localhost) by dust.uchicago.edu (8.11.6/8.11.6) id g9NHDd720129; Wed, 23 Oct 2002 12:13:39 -0500 (CDT) X-Authentication-Warning: dust.uchicago.edu: dgc set sender to dgc@uchicago.edu using -f Date: Wed, 23 Oct 2002 12:13:39 -0500 From: David Champion To: Thomas Wouters Cc: dovecot@procontrol.fi Subject: [dovecot] Re: vsnprintf() Message-ID: <20021023171339.GO4662@dust.uchicago.edu> References: <20021023111843.GA3563@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20021023111843.GA3563@xs4all.nl> User-Agent: Mutt/1.5.1i X-archive-position: 87 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: dgc@uchicago.edu Precedence: bulk X-list: dovecot X-UID: 87 Status: O Content-Length: 2444 * On 2002.10.23, in <20021023111843.GA3563@xs4all.nl>, * "Thomas Wouters" wrote: > > I think I stumbled upon a bug in the i_snprintf() function. In the case of > vnsprintf() being available, it depends on vnsprintf() returning -1 when the > string was longer than the passed-in limit (or it won't terminate the > string.). But this isn't the C99-standardized behaviour, and newer glibc's > don't do that anymore either, so you can end up with a non-terminated > string. This patch should fix it, I think. Ah, I'm glad glibc has fixed this. (Have they fixed snprintf(), too?) This patch looks correct for Solaris, as well. There's an alternative approach that depends on the newer vsnprintf() behavior. You can use { char c, *buf; length = vsnprintf(&c, 1, fmt, vp); buf = malloc(length+1); vsnprintf(buf, length, fmt, vp); } to dynamically size the buffer as large as it needs to be. For general formatting routines, I sometimes use this idiom (not totally valid C, and no error-checking): format(...) { static char *buf = NULL; /* workspace */ static int buf_len = 0; /* usable area in buf (size - '\0') */ int fmt_len; /* length of formatted string */ ... if (buf == NULL) { /* init to minimum size */ buf = malloc(128+1); buf_len = 128; } /* Format once, and find out how long the formatted data was */ fmt_len = vsnprintf(buf, buf_len+1, fmt, vp); /* If longer than buf, resize buf amnd try again */ if (fmt_len > buf_len) { realloc(buf, (buf_len = fmt_len) + 1); vsnprintf(buf, buf_len+1, fmt, vp); } ... } This makes sure I always have a big-enough buffer, without lots of unneeded mallocing and freeing. The down-side is that it only works on modern systems, because of the issue with [v]snprintf()'s return value. And it sometimes formats the string twice, which is perhaps not good, but perhaps alright. And I guess it's not re-entrant, which could be a problem, though it could be made re-entrant with some work. :) Anyway, this is perhaps a little much for a first post to a list from someone who hasn't found time to look at or compile the code yet, but off it goes.... -- -D. We establised a fine coffee. What everybody can say Sun Project, APC/UCCO TASTY! It's fresh, so-mild, with some special coffee's University of Chicago bitter and sourtaste. "LET'S HAVE SUCH A COFFEE! NOW!" dgc@uchicago.edu Please love CAFE MIAMI. Many thanks. From tss@iki.fi Wed Oct 23 20:21:57 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 23 Oct 2002 20:21:57 +0300 (EEST) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A6D332382C for ; Wed, 23 Oct 2002 20:21:56 +0300 (EEST) Received: by hurina (Postfix, from userid 1000) id C67185E01F42; Wed, 23 Oct 2002 20:21:55 +0300 (EEST) Subject: [dovecot] Re: vsnprintf() From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021023171339.GO4662@dust.uchicago.edu> References: <20021023111843.GA3563@xs4all.nl> <20021023171339.GO4662@dust.uchicago.edu> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035393715.29469.5.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 23 Oct 2002 20:21:55 +0300 X-archive-position: 88 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 88 Status: O On Wed, 2002-10-23 at 20:13, David Champion wrote: > There's an alternative approach that depends on the newer vsnprintf() > behavior. You can use > > { > char c, *buf; > length = vsnprintf(&c, 1, fmt, vp); > buf = malloc(length+1); > vsnprintf(buf, length, fmt, vp); > } > > to dynamically size the buffer as large as it needs to be. For general > formatting routines, I sometimes use this idiom (not totally valid C, > and no error-checking): Not too bad idea :) Dovecot currently uses a bit modified GLIB's g_printf_string_upper_bound() and then allocates enough memory based on it. Maybe using vsnprintf() could be optional (detected by configure if it works), if it's better/faster than my upper_bound() function. From tss@iki.fi Tue Oct 29 05:26:31 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 29 Oct 2002 05:26:31 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 6C4712382C for ; Tue, 29 Oct 2002 05:26:31 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id CB8525E01F42; Tue, 29 Oct 2002 05:26:30 +0200 (EET) Subject: [dovecot] Re: pam + radius From: Timo Sirainen To: dovecot@procontrol.fi In-Reply-To: <20021028190110.D22448@misato.nikojet.com> References: <20021028190110.D22448@misato.nikojet.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035861990.781.23.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 29 Oct 2002 05:26:30 +0200 X-archive-position: 89 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 89 Status: O On Tue, 2002-10-29 at 05:01, Hielke Christian Braun wrote: > i am trying to use dovecot with pam and radius. My users have names > in the format joe@somedomain.com. When i have pam configured to use > the normal passwd/shadow files it works fine. With radius it does not. > I see at the radius server that the domain part of my usernames > is always replaced with the same domain @nikojet.com. I don't think > it is a problem with the pam radius, as the same library works fine > with the solid state pop3 server. Is this a fundamental problem and > dovecot/imap does not work with usernames which have a domain part or > is it a bug? You probably don't have the users in /etc/passwd file too, right? Dovecot currently wants the users to exist there too to get their UID, GID and home directory. I'll change this later so that you could give "gid=123 uid=456 homeroot=/var/mail" options to pam auth and it'd use them for all users. Or did PAM also support getting that information in some way? I'm not sure exactly.. From tss@iki.fi Tue Oct 29 07:01:47 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 29 Oct 2002 07:01:47 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 49C7F2382D for ; Tue, 29 Oct 2002 07:01:47 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 14E5B5E01F42; Tue, 29 Oct 2002 07:01:47 +0200 (EET) Subject: [dovecot] Re: pam + radius From: Timo Sirainen To: Hielke Christian Braun Cc: dovecot@procontrol.fi In-Reply-To: <20021028200037.A27315@misato.nikojet.com> References: <20021028190110.D22448@misato.nikojet.com> <1035861990.781.23.camel@hurina> <20021028200037.A27315@misato.nikojet.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1035867706.779.38.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 29 Oct 2002 07:01:46 +0200 X-archive-position: 90 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 90 Status: O Content-Length: 1099 On Tue, 2002-10-29 at 06:00, Hielke Christian Braun wrote: > > You probably don't have the users in /etc/passwd file too, right? > > I have the users in the passwd and shadow files as i need that for quotas > to work. Though in the shadow file i don't have the password and only a x. > The problem must be something else. Well .. I don't know then really. Since you did get it to work by changing PAM to use shadow auth, Dovecot is doing it at least partly right. Maybe the radius PAM module requires something that Dovecot didn't do.. Looking at Courier's PAM handling, it does pam_setcred() which dovecot doesn't. You could try if doing that helps: src/auth/userinfo-pam.c, around line 169, insert between pam_authenticate() and pam_acct_mgmt(): if ((status = pam_setcred(pamh, PAM_ESTABLISH_CRED)) != PAM_SUCCESS) { if (status == PAM_ABORT) i_fatal("pam_setcred_mgmt() requested abort"); return FALSE; } > Maybe it dovecot sets a realm, which is then mistakenly used by > the pam radius module, but not by the passwd/shadow module? PAM doesn't have any support for realms AFAIK. From tss@iki.fi Sun Nov 3 02:11:15 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 03 Nov 2002 02:11:15 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id A5E602382D for ; Sun, 3 Nov 2002 02:11:15 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 5B5EF5E01F55; Sun, 3 Nov 2002 02:11:15 +0200 (EET) Subject: [dovecot] Re: pam + radius From: Timo Sirainen To: Hielke Christian Braun Cc: dovecot@procontrol.fi In-Reply-To: <20021031113245.W22448@misato.nikojet.com> References: <20021028190110.D22448@misato.nikojet.com> <1035861990.781.23.camel@hurina> <20021028200037.A27315@misato.nikojet.com> <1035867706.779.38.camel@hurina> <20021031113245.W22448@misato.nikojet.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1036282275.263.1.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 03 Nov 2002 02:11:15 +0200 X-archive-position: 91 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 91 Status: O On Thu, 2002-10-31 at 21:32, Hielke Christian Braun wrote: > It helped a bit. Now the first login to dovecot works fine. The domainpart > of my username is not changed. But after the first login, dovecot > always sents the username from the first login to the radius server even when > i login from a different client with a complete different username. OK, fixed now in CVS. I implemented PAM support pretty wrong. From simon@lindgren.no Tue Nov 12 15:27:35 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 12 Nov 2002 15:27:35 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail46.fg.online.no (mail46-s.fg.online.no [148.122.161.46]) by danu.procontrol.fi (Postfix) with ESMTP id 5629F2382D for ; Tue, 12 Nov 2002 15:27:35 +0200 (EET) Received: from ti211310a080-1828.bb.online.no (ti211310a080-1828.bb.online.no [80.212.71.36]) by mail46.fg.online.no (8.9.3/8.9.3) with ESMTP id OAA04851 for ; Tue, 12 Nov 2002 14:27:34 +0100 (MET) From: Simon Lindgren To: dovecot@procontrol.fi Subject: [dovecot] Seen bug? Date: Tue, 12 Nov 2002 14:27:33 +0100 User-Agent: KMail/1.5 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200211121427.33943.simon@lindgren.no> X-archive-position: 92 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: simon@lindgren.no Precedence: bulk X-list: dovecot X-UID: 92 Status: O Content-Length: 3096 Hi, I'm using Kmail and dovecot for my IMAP pleasure, and have had some problems, which are evident from the following exchange with some kmail developers. My patch to the imap protocol in KDE fixed my problem, but should dovecot be changed instead? Thank you for any insight! I've included the discussion on kmail-devel so far: [ I wrote: ] -- I've recently switched to IMAP for email (using dovecot as the server, http://dovecot.procontrol.fi/) and have a small problem: Clicking a message brings it up, but doesn't seem to mark it read on the server. I need to select 'Message -> Mark Message -> Mark Message as Read' in order for it to "stay read" when I check for new mails on the server. Is anyone else seeing this behaviour? Is this a bug, or a feature? I've assigned a shortcut key for 'Mark Message as Read' so I get by, but with a large number of messages and folders, it quickly becomes annoying. -- [ Carsten Burghardt wrote in reply: ] -- As your imap-server is not really common you should check with ethereal the communication between kmail and your server. -- [ I wrote in reply: ] -- Thanks for the replies... snooping with ethereal, I get the following: (quoting only the data sent from kmail) When viewing a mail in kmail: UID FETCH 203 (UID RFC822) When specifically flagging it as 'read' in kmail: UID STORE 203 -FLAGS.SILENT (\SEEN \ANSWERED \FLAGGED \DRAFT) UID STORE 203 +FLAGS.SILENT (\SEEN) It would seem that my problem would be solved if kmail also sent the +FLAGS stuff when viewing a message... but I don't know if this would be according to the IMAP specification - or if the server should flag the message as 'seen' when the client does the 'fetch' ? I do have 'Mark selected message as read after 0 sec' checked - and the message is flagged in kmail as read, but without specifically marking it as read in kmail, it's still 'unread' after the next 'check mail' run. I hope I'm being clear. If you still think this is a bug with my (non standard, I agree!) IMAP server I'll try another one. -- [ I wrote another reply: ] -- I made a change to imap4.cc, and it magically works for me - I've not tested this one very much, but it seems to do the trick so far. I would be very interested if someone knowledgeable would tell me just how wrong this piece of code is, as I'm working on learning these things. --- imap4.cc Tue Oct 15 21:52:43 2002 +++ imap4.cc Tue Nov 12 01:36:05 2002 @@ -289,6 +289,11 @@ } completeQueue.removeRef (cmd); + + if (aSection.find ("ENVELOPE", 0, false) == -1) { + doCommand (imapCommand:: + clientStore (aSequence, "+FLAGS.SILENT", "\\SEEN")); + } } } -- [ Carsten Burghardt wrote: ] -- No, everything is alright here, you should check a different server. -- [ Bo Thorsen wrote: ] -- It is definately a bug in the server. The IMAP RFC specifies that a server must only once serve a file flagged as new. So your server violates this principle. From tss@iki.fi Wed Nov 13 02:10:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Wed, 13 Nov 2002 02:10:37 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0CFC82382C for ; Wed, 13 Nov 2002 02:10:37 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 881095E01F42; Wed, 13 Nov 2002 02:10:36 +0200 (EET) Subject: [dovecot] Re: Seen bug? From: Timo Sirainen To: Simon Lindgren Cc: dovecot@procontrol.fi In-Reply-To: <200211121427.33943.simon@lindgren.no> References: <200211121427.33943.simon@lindgren.no> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1037146236.32041.102.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.1.1.99 (Preview Release) Date: 13 Nov 2002 02:10:36 +0200 X-archive-position: 93 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 93 Status: O On Tue, 2002-11-12 at 15:27, Simon Lindgren wrote: > My patch to the imap protocol in KDE fixed my problem, but should dovecot be > changed instead? Yes, it's a bug in Dovecot. > When viewing a mail in kmail: > UID FETCH 203 (UID RFC822) Fetching BODY[] always marks the message read, but I didn't before think of RFC822 and RFC822.TEXT which should do that too. Fixing.. From tss@iki.fi Sun Nov 24 21:01:37 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 24 Nov 2002 21:01:37 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 71F052382F for ; Sun, 24 Nov 2002 21:01:37 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id ACC765E01F27; Sun, 24 Nov 2002 21:01:36 +0200 (EET) Subject: [dovecot] 0.99.0 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038164496.787.6.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 24 Nov 2002 21:01:36 +0200 X-archive-position: 94 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 94 Status: O Content-Length: 1571 I figured now would be a good time for new release. All the major changes are pretty much done now. v0.99.0 2002-11-24 Timo Sirainen + Replaced hash file with binary tree file which makes Dovecot stay fast with large mailboxes after expunging multiple mails. + Several speed improvements with SEARCH + SEARCH CHARSET support using iconv(), although case-insensitive searching is currently supported only for ASCII characters. + OpenSSL support. + Support for regenerating Diffie Hellman and RSA parameters with specified intervals. NOTE: currently doesn't work with OpenSSL. + Support for each login connection being handled in it's own process. This is the default as it's more safe especially with SSL. + mbox locking is now safe, other processes can't modify the mbox file while we're reading it. + Notify clients with "EXISTS" almost immediately after new mail is received. + Rawlog: Support for saving user connections into files - useful for debugging. + Content-Language is finally parsed correctly + Lots of smaller speed optimizations - Partial BODY[] fetches weren't working properly - BODY[section] was buggy with message/rfc822 MIME parts - STARTTLS wasn't working - \* flag was missing from PERMANENTFLAGS. - Comments inside <> mail addresses crashed. - imap-login printed UTC timestamps to logfiles - passwd-file wasn't reread the the file changed - PAM authentication was implemented wrong, which caused it to break with some PAM plugins. - Lots of smaller fixes, mostly to do with reliability From me@squeakyweasel.net Sun Nov 24 22:25:42 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 24 Nov 2002 22:25:42 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.stratius.com (unknown [207.44.131.172]) by danu.procontrol.fi (Postfix) with SMTP id 6F03B2382C for ; Sun, 24 Nov 2002 22:25:41 +0200 (EET) Received: (qmail 26597 invoked from network); 24 Nov 2002 20:25:36 -0000 Received: from unknown (HELO cobalt) (4.47.73.34) by 207.44.131.176 with SMTP; 24 Nov 2002 20:25:36 -0000 Date: Sun, 24 Nov 2002 12:25:45 -0800 From: "Kyle Symonds" Reply-To: me@squeakyweasel.net To: dovecot@procontrol.fi Subject: [dovecot] vpopmail support? X-mailer: Foxmail 4.1 [eg] Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <20021124202541.6F03B2382C@danu.procontrol.fi> X-archive-position: 95 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: me@squeakyweasel.net Precedence: bulk X-list: dovecot X-UID: 95 Status: O Well, I read that back in 0.98 or so vpopmail support should work so I assumed it would be enabled in 0.99 but here's what I get. gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I/usr/local/vpopmail/include -g -O2 -Wall -W -g -O2 -Wall -W -c userinfo-vpopmail.c In file included from userinfo-vpopmail.c:12: /usr/local/vpopmail/include/vpopmail.h:133: syntax error before `*' *** Error code 1 Stop in /root/dovecot/src/auth. *** Error code 1 Stop in /root/dovecot/src. *** Error code 1 Stop in /root/dovecot. *** Error code 1 Stop in /root/dovecot. Someone want to throw a bone? =) --Weasel weasel@squeakyweasel.net http://squeakyweasel.net From me@squeakyweasel.net Sun Nov 24 22:32:44 2002 Received: with ECARTIS (v1.0.0; list dovecot); Sun, 24 Nov 2002 22:32:44 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from mail.stratius.com (unknown [207.44.131.172]) by danu.procontrol.fi (Postfix) with SMTP id C3A332382C for ; Sun, 24 Nov 2002 22:32:43 +0200 (EET) Received: (qmail 26623 invoked from network); 24 Nov 2002 20:32:42 -0000 Received: from unknown (HELO cobalt) (4.47.73.34) by 207.44.131.176 with SMTP; 24 Nov 2002 20:32:42 -0000 Date: Sun, 24 Nov 2002 12:32:51 -0800 From: "Kyle Symonds" Reply-To: me@squeakyweasel.net To: dovecot@procontrol.fi Subject: [dovecot] Re: vpopmail support? X-mailer: Foxmail 4.1 [eg] Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <20021124203243.C3A332382C@danu.procontrol.fi> X-archive-position: 96 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: me@squeakyweasel.net Precedence: bulk X-list: dovecot X-UID: 96 Status: O Oh yeah, the system's FreeBSD 4.7-RELEASE. Trying to do a qmail+vpopmail+pop3+imap setup. --Weasel weasel@squeakyweasel.net http://squeakyweasel.net ======= At 2002-11-24, 12:25:00 you wrote: ======= >Well, I read that back in 0.98 or so vpopmail support should work so I assumed it would be enabled in 0.99 but here's what I get. > >gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I/usr/local/vpopmail/include -g -O2 -Wall -W -g -O2 -Wall -W -c userinfo-vpopmail.c >In file included from userinfo-vpopmail.c:12: >/usr/local/vpopmail/include/vpopmail.h:133: syntax error before `*' >*** Error code 1 > >Stop in /root/dovecot/src/auth. >*** Error code 1 > >Stop in /root/dovecot/src. >*** Error code 1 > >Stop in /root/dovecot. >*** Error code 1 > >Stop in /root/dovecot. > >Someone want to throw a bone? =) > >--Weasel >weasel@squeakyweasel.net >http://squeakyweasel.net From tss@iki.fi Mon Nov 25 00:24:40 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 25 Nov 2002 00:24:40 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 156622382C for ; Mon, 25 Nov 2002 00:24:40 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 6FDA15E01F27; Mon, 25 Nov 2002 00:24:39 +0200 (EET) Subject: [dovecot] Re: vpopmail support? From: Timo Sirainen To: me@squeakyweasel.net Cc: "dovecot@procontrol.fi" In-Reply-To: <20021124202541.6F03B2382C@danu.procontrol.fi> References: <20021124202541.6F03B2382C@danu.procontrol.fi> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038176679.789.14.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 25 Nov 2002 00:24:39 +0200 X-archive-position: 97 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 97 Status: O On Sun, 2002-11-24 at 22:25, Kyle Symonds wrote: > Well, I read that back in 0.98 or so vpopmail support should work so I assumed it would be enabled in 0.99 but here's what I get. > > gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -I/usr/local/vpopmail/include -g -O2 -Wall -W -g -O2 -Wall -W -c userinfo-vpopmail.c > In file included from userinfo-vpopmail.c:12: > /usr/local/vpopmail/include/vpopmail.h:133: syntax error before `*' > *** Error code 1 Well, I hadn't tested it for some time, so it missed one include file. Add #include to userinfo-vpopmail.c before the vpopmail-include and it should work. Maybe it's time for 0.99.1 soon, there's quite a few build fixes/changes now in CVS :) From tss@iki.fi Mon Nov 25 12:59:34 2002 Received: with ECARTIS (v1.0.0; list dovecot); Mon, 25 Nov 2002 12:59:34 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id 0483A2382F for ; Mon, 25 Nov 2002 12:59:34 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 516875E01F27; Mon, 25 Nov 2002 12:59:33 +0200 (EET) Subject: [dovecot] 0.99.1 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038221973.787.18.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 25 Nov 2002 12:59:33 +0200 X-archive-position: 98 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 98 Status: O Nothing new, just a few compiling/configuration issues fixed. Dovecot should also be in NetBSD pkgsrc soon. Now who would want to get it into Debian? :) v0.99.1 2002-11-25 Timo Sirainen + Added doc/mkcert.sh script to easily generate yourself a self-signed certificate. Modify doc/dovecot-openssl.cnf before running it. + --with-ssldir configure option to specify default path for /etc/ssl + Added ssl_disable setting to config file - OpenSSL wasn't checked properly by configure - vpopmail authentication module didn't compile - We should install the binaries into libexec dir, not lib - doc/configuration.txt and doc/mail-storages.txt were missing From tss@iki.fi Tue Nov 26 23:16:04 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 26 Nov 2002 23:16:04 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id CADA92382F for ; Tue, 26 Nov 2002 23:16:04 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 670385E01F27; Tue, 26 Nov 2002 23:16:02 +0200 (EET) Subject: [dovecot] 0.99.2 released From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038345362.2676.31.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 26 Nov 2002 23:16:02 +0200 X-archive-position: 99 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 99 Status: O Mostly compiling cleanups but also one bugfix when index wasn't exclusively locked while it was being fsck'ed - that doesn't normally happen without crashing/whatever. v0.99.2 2002-11-26 Timo Sirainen + If we have to wait for a lock longer, the client is now notified about it every 30 seconds. - Default settings still pointed to lib directory instead of the libexec directory where the binaries were actually installed - vpopmail support had to be kludged to fix a bug in vpopmail library which sometimes left extra character after the user name. - Login process crashed if master process didn't let some user login. Normally this couldn't happen without error in configuration. - select() based I/O loop wasn't working so Dovecot didn't work in eg. OSX. Also PAM authentication wasn't detected with OSX. - Didn't compile with NetBSD-current From tss@iki.fi Tue Nov 26 23:52:42 2002 Received: with ECARTIS (v1.0.0; list dovecot); Tue, 26 Nov 2002 23:52:42 +0200 (EET) Return-Path: Delivered-To: dovecot@procontrol.fi Received: from hurina (ip213-185-36-189.laajakaista.mtv3.fi [213.185.36.189]) by danu.procontrol.fi (Postfix) with ESMTP id B3BBB2382F for ; Tue, 26 Nov 2002 23:52:42 +0200 (EET) Received: by hurina (Postfix, from userid 1000) id 6F4C65E01F27; Tue, 26 Nov 2002 23:52:37 +0200 (EET) Subject: [dovecot] mbox problems From: Timo Sirainen To: dovecot@procontrol.fi Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: Message-Id: <1038347557.6700.3.camel@hurina> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.0 Date: 26 Nov 2002 23:52:37 +0200 X-archive-position: 100 X-ecartis-version: Ecartis v1.0.0 Sender: dovecot-bounce@procontrol.fi Errors-to: dovecot-bounce@procontrol.fi X-original-sender: tss@iki.fi Precedence: bulk X-list: dovecot X-UID: 100 Status: O Strange .. I didn't think I had done anything that could break things too badly. Anyway, at least with Solaris EXPUNGE may corrupt part of the mbox file, so don't do that for now. gluon-0.17.0/tests/testdata/duplicate.eml000066400000000000000000000030321445200213000203340ustar00rootroot00000000000000From: "Testing" To: "Test 123" Subject: Small doc attachment VALID v5 Date: Wed, 26 Apr 2023 08:25:16 +0200 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0022_01D97836.53531060" X-Mailer: Microsoft Outlook 16.0 Content-Language: en-us X-OlkEid: 00000000225333D1866CB24A8049706F3452C40E0700C3B68E10F77511CEB4CD00AA00BBB6E600000000000C00003BB97E4DCE360843BCF25AA31956C0E2000000000408000048AD3E35A4DC1A47ABA5F573BB76D09A This is a multipart message in MIME format. ------=_NextPart_000_0022_01D97836.53531060 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0023_01D97836.53531060" ------=_NextPart_001_0023_01D97836.53531060 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Simple Body ------=_NextPart_001_0023_01D97836.53531060 Content-Type: text/html; boundary="----=_NextPart_000_003E_01D97831.767F38C0"; charset="utf-8" Content-Transfer-Encoding: quoted-printable
Simple Body
------=_NextPart_001_0023_01D97836.53531060-- ------=_NextPart_000_0022_01D97836.53531060 Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document; name="test.docx" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="test.docx" UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC ------=_NextPart_000_0022_01D97836.53531060-- gluon-0.17.0/tests/testdata/embedded-rfc822.eml000066400000000000000000000020101445200213000211120ustar00rootroot00000000000000From: Nathaniel Borenstein To: Ned Freed Date: 1 Jan 1970 00:00:00 +0000 Subject: Sample message MIME-Version: 1.0 Content-type: multipart/mixed; boundary="simple boundary" This is the preamble. It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non-MIME compliant readers. --simple boundary Content-type: text/plain; charset=us-ascii This part does not end with a linebreak. --simple boundary Content-Disposition: attachment; filename=test.eml Content-Type: message/rfc822; name=test.eml X-Pm-Content-Encryption: on-import To: someone Subject: Fwd: embedded Content-type: multipart/mixed; boundary="embedded-boundary" --embedded-boundary Content-type: text/plain; charset=us-ascii This part is embedded -- From me --embedded-boundary Content-type: text/plain; charset=us-ascii This part is also embedded --embedded-boundary-- --simple boundary-- This is the epilogue. It is also to be ignored. gluon-0.17.0/tests/testdata/large_message.eml000066400000000000000000111643651445200213000212030ustar00rootroot00000000000000Content-Type: multipart/mixed; boundary=8bac7bf8d0378095d184ea68c009ff8055879c0f4603c98ceefc4b1cc5a4 Date: Fri, 16 Jul 2021 23:39:24 +0000 From: Proton Newsletter Subject: Discover the new ProtonMail and our new VPN app for Linux X-Auto-Response-Suppress: OOF Precedence: bulk Message-Id: <80SCNMGR820T7B8MCM1DQ5FRS0@news.protonmail.com> X-Pm-Origin: internal X-Pm-Content-Encryption: end-to-end X-Pm-Spamscore: 0 Received: from mail.protonmail.ch by mail.protonmail.ch; Fri, 16 Jul 2021 23:39:37 +0000 List-Unsubscribe: To: random_email@protonmail.com X-Original-To: random_email@protonmail.com Return-Path: Delivered-To: random_email@protonmail.com Mime-Version: 1.0 X-Attached: 47b6d587-8690-1732-331f-5236704dd704.jpg X-Attached: cadad312-5697-41b0-8b7a-0bffea96aaf2.png X-Attached: 675d8b9a-20eb-d371-8f85-013cdf50b12a.png X-Attached: 87245558-485e-044d-c5bc-0c079dc2d931.png X-Attached: 2b7a37e5-3493-e13c-8c37-1dc923444f37.png X-Attached: ac4201c8-cf8f-7727-c615-724de8225433.png X-Attached: eea3daad-eb54-90ed-9add-ab41e1b49024.png X-Attached: 0287744d-9fb2-3585-466b-a4389601b563.png X-Attached: 404659ce-f140-ae55-2625-c538c1e3119a.png X-Attached: cd638a0a-5b89-50e7-5d55-628bb2349f85.png X-Attached: tw-f.jpg X-Attached: fb-f.jpg X-Attached: rd-f.jpg X-Attached: in-f.jpg X-Attached: ms-f.jpg X-Attached: lk-f.jpg X-Attached: yt-f.jpg X-Attached: ln-f.jpg --8bac7bf8d0378095d184ea68c009ff8055879c0f4603c98ceefc4b1cc5a4 Content-Type: multipart/related; boundary=07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8
3D""
3D""

Dear Proton community,

As many users have likely noticed, we released a new ProtonMail for web! Th= is is one of our biggest updates since ProtonMail was created seven years a= go. This update makes ProtonMail even easier to use and personalize while s= till protecting your data with end-to-end encryption.

In this newsletter we also look at:

  • T= he results of the latest independent security audit of ProtonMail

  • T= he launch of a new ProtonVPN app for Linux

  • T= he biggest new software vulnerabilities to protect yourself from

As an organization that was created by scientis= ts who met at CERN, we believe strongly in peer review and transparency. Th= at is why all our apps are open source and undergo regular independent secu= rity audits. Privacy at Proton isn't just a claim, but something that can b= e independently verified and proven.
3D""

= The new ProtonMail and Proton Calendar were recently audited by Securitum, = a leading European security auditing company. Securitum oversees more than = 300 security testing projects a year, including for a number of top Europea= n banks.

We are happy to report that the audit uncovered= no major security issues or vulnerabilities. More details, including the f= ull audit report, can be found below. 

Find out more about the security audit of the new ProtonMail


ProtonMail users automatically have access to= a secure, private, and open source VPN. Just download the ProtonVPN app an= d log in using your ProtonMail credentials.

Get Proto= nVPN

Introducing t= he new ProtonVPN Linux app

As a supporter of open source software, Proton = is keenly aware that Linux support is often viewed as an afterthought by mo= st VPN services. From the start, this open source operating system has been= a priority for us, and for many years we have supported our Linux users wi= th a command-line tool, developed together with the Proton community.

However, the growing popularity of the platform over the last couple of yea= rs has led to more and more requests for a fully featured ProtonVPN Linux a= pp with a graphical interface.
3D""

= We are therefore pleased to announce the launch of the ProtonVPN Linux app.= It features an elegant and fully featured graphical user interface, making= it easy to use on the Linux desktop. ProtonVPN is the only VPN service to = offer a full-featured, open source, audited, and free Linux VPN application= . 

Learn more ab= out the ProtonVPN Linux app

It's time = to update many popular applications due to security flaws

3D""
One of the most important things you can do to stay= secure is update the software you use. This includes e= verything from your operating system to your applications. Below is a list = of several particularly high-priority vulnerabilities discovered recently. = These should be immediately addressed by updating the relevant software.
3D""

Mozilla announced a vulnerability<= /a> in the way its Thunderbird email client implements OpenPGP. If you use = Thunderbird to manage your PGP keys, you should update to the latest versio= n of Thunderbird.
3D""

Several security vulnerabilities related to Apple software have bee= n reported this year. If you use an Apple device, please ensure both its op= erating system and the Safari app are up to date.
3D""


A zero-day vulnerability h= as been discovered in the Google Chrome browser, requiring an update to pat= ch it.

Find out about how ProtonMail can improve the s= ecurity of your business

We’r= e hiring! Help build an internet where privacy is the default

3D""

Proton is looking for talented and highly motivated people who want to = use their skills to help build a free and open internet. We are a diverse t= eam of over 40 nationalities, many hailing from the world’s top scien= tific and engineering institutions, and our offices are located in Europe a= nd Taiwan.

Our featured openings for this month:

  • <= a href=3D"https://careers.protonmail.com/o/director-of-product-marketing?ut= m_campaign=3Dww-all-2a-generic-coms_email-g_eng-newsletter&utm_source= =3Dproton_users_mail&utm_medium=3Demail&utm_content=3D2021_-_june" = target=3D"_blank" style=3D"mso-line-height-rule: exactly;-ms-text-size-adju= st: 100%;-webkit-text-size-adjust: 100%;color: #657ee4;font-weight: bold;te= xt-decoration: underline;">Director of Product Marketing

  • <= a href=3D"https://careers.protonmail.com/o/product-manager-barcelona-london= -taipei-geneva-zurich?utm_campaign=3Dww-all-2a-generic-coms_email-g_eng-new= sletter&utm_source=3Dproton_users_mail&utm_medium=3Demail&utm_c= ontent=3D2021_-_june" target=3D"_blank" style=3D"mso-line-height-rule: exac= tly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #657ee= 4;font-weight: bold;text-decoration: underline;">Product Manager

  • <= a href=3D"https://careers.protonmail.com/o/senior-android-developer?utm_cam= paign=3Dww-en-2c-generic-coms_con-g_eng-monthly_mail_newsletter&utm_sou= rce=3Dproton_users&utm_medium=3Dlink&utm_content=3D2021_june" targe= t=3D"_blank" style=3D"mso-line-height-rule: exactly;-ms-text-size-adjust: 1= 00%;-webkit-text-size-adjust: 100%;color: #657ee4;font-weight: bold;text-de= coration: underline;">Senior Android Developer

  • <= a href=3D"https://careers.protonmail.com/o/infrastructure-engineer?utm_camp= aign=3Dww-all-2a-generic-coms_email-g_eng-newsletter&utm_source=3Dproto= n_users_mail&utm_medium=3Demail&utm_content=3D2021_-_june" target= =3D"_blank" style=3D"mso-line-height-rule: exactly;-ms-text-size-adjust: 10= 0%;-webkit-text-size-adjust: 100%;color: #657ee4;font-weight: bold;text-dec= oration: underline;">Infrastructure Engineer

  • <= a href=3D"https://careers.protonmail.com/o/macos-system-developer?utm_campa= ign=3Dww-all-2a-generic-coms_email-g_eng-newsletter&utm_source=3Dproton= _users_mail&utm_medium=3Demail&utm_content=3D2021_-_june" target=3D= "_blank" style=3D"mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;= -webkit-text-size-adjust: 100%;color: #657ee4;font-weight: bold;text-decora= tion: underline;">macOS System Developer

We are hiring for many other roles as well. You can find the full list of o= penings here.

Some of you= may have noticed that the newsletter email address has changed to no-reply@news.protonmai= l.com. We will use this address going forward. Remember, all communicat= ions from Proton are starred by default.

The launch of the new ProtonMail in June marks a milestone for Proton, = as its elegant ease of use helps to bring our vision of a better, more priv= ate internet for all a big step closer. Since we do not monetize your data = with advertising, we couldn’t have done it without the support of our= passionate and highly engaged community. 

To support our mission, please consider upgrading to a paid ProtonMail or P= rotonVPN account. To do this, simply log in to your account at account.= protonmail.com or account.protonvpn.com and select the paid pl= an you would like.

Thank you for your support!

Best Regards,
The Proton Team

Connect with the Proton community


We have an active online community where users get answers to their questio= ns
and discuss issues related to Proton, security, and privacy.

Join the conversation on social media and follow our blog for news and feat= ure updates:

=
= 3D"Twitter" =
=
= 3D"Facebook" =
=
= 3D"Reddit" =
=
= 3D"Link" =
=
= 3D"Mastodon" =
=
= =
=
= 3D"YouTube" =
=
= 3D"LinkedIn" =
You can change your email communication prefere= nces
by logging in at mail.protonmail.com and going to 
Settings → Dashboard = → Email Subscriptions


© 2021 Proton Technologies AG Switzerland
--07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=47b6d587-8690-1732-331f-5236704dd704.jpg Content-Type: image/jpeg; name=47b6d587-8690-1732-331f-5236704dd704.jpg X-Pm-Content-Encryption: end-to-end Content-Id: <620bf39997d86eab53c8@news.protonmail.com> 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 2ao/+2l0PajyfAHrNttPIb5va8tse1m8b154vYrh+9Lw2mY7tt5XDaeSnyqrdaLkt9qxTes+2XRP tthwdMsVsnXbaJkUmKbJiilTIoDFATCQV6VJt14KTAlY42uasefLxw4mAjlSec/9os3pF8Dpn9Yd zc/8NFsO/FJ5WnxLW70+8foUf2kv4mnwUn1q6ovgPrDubn/hoth34pPK0+JadPvH6FH9pL+I8FJ9 auqL4D6w7m5/4aLYd+KTytPiWnT7x+hR/aS/iPBSfWrqi+A+sO5uf+Gi2Hfik8rT4lp0+8foUf2k v4jwUn1q6ovgPrDubn/hoth34pPK0+JadPvH6FH9pL+I8FJ9auqL4D6w7m5/4aLYd+KTytPiWnT7 x+hR/aS/iPBSfWrqi+A+sO5uf+Gi2Hfik8rT4lp0+8foUf2kv4jwUn1q6ovgPrDubn/hoth34pPK 0+JadPvH6FH9pL+I8FJ9auqL4D6w7m5/4aLYd+KTytPiWnT7x+hR/aS/iPBSfWrqi+A+sO5uf+Gi 2Hfik8rT4lp0+8foUf2kv4jwUn1q6ovgPrDubn/hoth34pPK0+JadPvH6FH9pL+I8FJ9auqL4D6w 7m5/4aLYd+KTytPiWnT7x+hR/aS/iPBSfWrqi+A+sO5uf+Gi2Hfik8rT4lp0+8foUf2kv4jwUn1q 6ovgPrDubn/hoth34pPK0+JadPvH6FH9pL+I8FJ9auqL4D6w7m5/4aLYd+KTytPiWnT7x+hR/aS/ iPBSfWrqi+A+sO5uf+Gi2Hfik8rT4lp0+8foUf2kv4jwUn1q6ovgPrDubn/hoth34pPK0+JadPvH 6FH9pL+I8FJ9auqL4D6w7m5/4aLYd+KTytPiWnT7x+hR/aS/iPBSfWrqi+A+sO5uf+Gi2Hfik8rT 4lp0+8foUf2kv4jwUn1q6ovgPrDubn/hoth34pPK0+JadPvH6FH9pL+I8FJ9auqL4D6w7m5/4aLY d+KTytPiWnT7x+hR/aS/iPBSfWrqi+B1g2Pc0xyNtu9o2kWbZfzvOxrFM3ZNsf2g7dseQWTkscpS wG4NmGy+7JV7Y0xTaPpgue44LZZLksU+COZIsZtV4TIYv8BZp8QMK2Z17WyRzXNska58ahXz4MYo slg3nvw3muGzy4682YsE3k8kdH/rDubn/hoth34pPK0+Ja3un3j9Cj+0l/E0eCk+tXVF8B9Ydzc/ 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 5o65fWqTPu6g/o1F+nl1D8pEP0N/a/8AjMl4kfrP4f8AMPrVJn3dQf0ai/TyflIh+hv7X/xjxI/W fw/5h9apM+7qD+jR/TyflIX0N/a/+MeJH63+H/MdZdm+x+4NnUU62yLRPve+7RJNnmXpapUEgSbP EYYo5NhskEU0WaCbFADGYo5kZZukIXB6pf3Km236lJjhUqyQuqgTrV7YosK00wS3VxMhZLBKsnzk +dMer/kjq2usHOOnd97O7BelrmW2x2uO7Zs+IzJ8sSBaLPHMiLxzIJfssiKVFGSSfdGF8gNc5ZL7 nWeWpU2FTIVgnWjp1OpxJlkgji50Lo2fw/qVRfb2H+bT+fLl+US9T/F/lNroP7Xu/EfUqi+3sP8A Np/Pk8ol6n+L/KOg/te78R9SqL7ew/zafz5PKJep/i/yjoP7Xu/EfUqi+3sP82n8+TyiXqf4v8o6 D+17vxKNlUWt+huF2n8/TyiXqf4v8o6D+17vxP3OHMLXfhyXM+dzHaLVPAhn2ucIRHFAC4lSoIfc ypXSqzkk5ksGxFuvCdbolz6Qy1kl3va/9ba8qTIgkrDGJ6n6qVMmSZkudKjilTZUcEyVMlxGCOXM giEUEcEQYwxQRAEEVBWOjghmQuCNJwNUaeTTzT3G+m06rNHXW6dut5WWyS5F7XLIvO0S4RAbZItp sEU7ohunOk/OlqlmbF9kYDBC+UIyHndt+TuyTpzmWK0RSZTfmuHn03J86F02Vq97MzKvqZDCoZsC ii2p091H/I/qfV8g+5WL+ex+iVw/ybxfTF9l/wCQ3fHa9V/F/lH1fIPuVi/nsfolPybxfTF9l/5B 47Xqv4v8o+r5B9ysX89j9Ep+TeL6Yvsv/IPHa9V/F/lH1fIPuVi/nsfolPybxfTF9l/5B47Xqv4v 8o+r5B9ysX89j9Ep+TeL6Yvsv/IPHa9V/F/lH1fIPuVi/nsfolPybxfTF9l/5B47Xqv4v8o+r5B9 ysX89j9Ep+TeL6Yvsv8AyDx2vVfxf5R9XyD7lYv57H6JT8m8X0xfZf8AkHjteq/i/wAo+r5B9ysX 89j9Ep+TeL6Yvsv/ACDx2vVfxf5R9XyD7lYv57H6JT8m8X0xfZf+QeO16r+L/KPq+QfcrF/PY/RK fk3i+mL7L/yDx2vVfxf5R9XyD7lYv57H6JT8m8X0xfZf+QeO16r+L/KeITlV7RjtM2yX5fEFlFjs 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 --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=cadad312-5697-41b0-8b7a-0bffea96aaf2.png Content-Type: image/png; name=cadad312-5697-41b0-8b7a-0bffea96aaf2.png Content-Id: <8dfc732cd0995286b089@news.protonmail.com> X-Pm-Content-Encryption: end-to-end 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 --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=675d8b9a-20eb-d371-8f85-013cdf50b12a.png Content-Type: image/png; name=675d8b9a-20eb-d371-8f85-013cdf50b12a.png X-Pm-Content-Encryption: end-to-end Content-Id: <14a54a96f58da9dc78e2@news.protonmail.com> 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 QmCC --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=87245558-485e-044d-c5bc-0c079dc2d931.png Content-Type: image/png; name=87245558-485e-044d-c5bc-0c079dc2d931.png X-Pm-Content-Encryption: end-to-end Content-Id: iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA AXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQ0SURBVHgB7d3tcdw2EMbxVSbf4w7CVBB3EKaC qANfB1EqkDuwU4GUCiJXcOcKNK6ASgVKB0+IARRLMkERfAMh/n8zGMv2UeLcCsByAfLMAAAAAAAA AAAAAAAAAAAAAAAAUCBJb9p22bZbfeW+vmpbbShXG8Df23avfi7QlaEsodcO1biebihDG6yD0v1t KEPokWPUlsF3hsFCkCob59wyIMBp3tp4v1gGBDjNj1aY7w1RIft1vfad+SF2Sjb8r2VAgJ8JQXXB dEF1wZ3rEueLZXBmcEGtzAf1t7bVtoyfzs7O7mxlu+3BISN2iU9tywX1wXWO4O6OC2rbPujlEmOf oytcJLz+VlSyliG/GHAuXxMeG9T7ENSLx4Fqv/444Njr3MHd1BDt3ox2KJuUbYY39GB+Ph2bJLlz uGnbp7adIuf0Q+TYu3DcTXvcyfZOvrZ71NMe9rDkVg38HlXoYUeN14ReWQ/8mU3H97gxeCEozYA3 /iJyvJtPL/V0LTbVsW3vlVgnDj+7y8Hwf3BT5sTLcNzUJKlzPh1x/rH5tzKMXpGZEtQr+algloRH 3aPGrW3Q6kmW/DBWWbqU4Lik6C9bINGR76Vdiw6fbINyZNHvbBmntn02n/WebDl15N9JsBxNKzI8 d5SfTytbiboz9cY2KkcPnroi43qK66k3U6+ZU4U5vO74r5PBm9iDa8tI8f1YtcFTWh33sXvLTD4b 39x59cmxo+NPG2cLSUzXvqrPtmGrBzhkuCdLl2VHxIMwDHflD2TPz8mv8jRKt9Ql1pBzvoqcU2X4 VgjytdK4BG3KzsYp59t0nM/RNi77lp3QAw72dFvpl/D3rmDete3XNXdIhF+qrlLkH+15fDSkU/8w vmrdV76Y0iXLaPJqqH/V6YOtRIVVr4oiv+Um5sIWFn7JulwZ5iG/KB9T24JE9WodimfcbgivbCHq rrxtunpVJPmkK7Y9p9FCuxfVnQNQ3FiC+vdxzX6Ttdh7tb72zX2ruEubkahe5aH4dakzWzlThVav XgXFdzbOUs7sGSkWvzRDoPhG92bqMKr4pVllWIf6y5mThlJ1Z+xUr9amBcqZilevWFjIQTOXM0X1 ans0YzlTLC5sk2YoZ8rP611YXMhN/eXMQXfaKz7cnxvyU38588VeqHj1iscwbIUmlDNF9aoMGlHO FIsLZVF/ObNKeH1l2Cb1lzPfhNe4If2g7uF5kzd2I1B/ObPRyzfDUb3aOqU/E+QxLo9KoHgC9ZJs d1MgkfrLmX0oU5ZC44fqgxVoV098V/wW0CGKnIv39kj/ysb72Qq0twDvrp68twDf2Xh3VqC9Bfhk 42X5zAUkUvpTBR5Uhu3T8McYP/beUA75xYWG4L5ioSf3DdeuIHKwwu3+c5P09TOT3J/ucxj+seWf WAsAAAAAAAAAAAAAAAAAAAAAAACU7j+/khOqsRD/DQAAAABJRU5ErkJggg== --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=2b7a37e5-3493-e13c-8c37-1dc923444f37.png Content-Type: image/png; name=2b7a37e5-3493-e13c-8c37-1dc923444f37.png Content-Id: <8923d4ba96205b13f091@news.protonmail.com> X-Pm-Content-Encryption: end-to-end iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAYAAAC+ZpjcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LmRh YmFjYmIsIDIwMjEvMDQvMTQtMDA6Mzk6NDQgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0i aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3Jp cHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4w LyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0 UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6 Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMi40IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0 YW5jZUlEPSJ4bXAuaWlkOjk3OUMzRTA3RDgwNDExRUJBOTNBODFGREZDMjk1NEY1IiB4bXBNTTpE b2N1bWVudElEPSJ4bXAuZGlkOjk3OUMzRTA4RDgwNDExRUJBOTNBODFGREZDMjk1NEY1Ij4gPHht cE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTc5QzNFMDVEODA0MTFF QkE5M0E4MUZERkMyOTU0RjUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTc5QzNFMDZEODA0 MTFFQkE5M0E4MUZERkMyOTU0RjUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94 OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7W1677AAB3RUlEQVR42uydB3gUVdfHT0hCEtII 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 --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=ac4201c8-cf8f-7727-c615-724de8225433.png Content-Type: image/png; name=ac4201c8-cf8f-7727-c615-724de8225433.png Content-Id: <9ecbf3ab286db8ef8419@news.protonmail.com> X-Pm-Content-Encryption: end-to-end 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 --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=eea3daad-eb54-90ed-9add-ab41e1b49024.png Content-Type: image/png; name=eea3daad-eb54-90ed-9add-ab41e1b49024.png X-Pm-Content-Encryption: end-to-end Content-Id: iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA AXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAGiPSURBVHgB7X0HgBzFmfWrnrg5KeecEQIhQGRs cg7GBCeCsTkb43jndD7zn+2789ln+7AxhiPb4IABY8BkECAyIiun1SqutLvaOLG766/qWN3TE1Za hdmtB6Ppru6u6Z3uef2+V19VARISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIS EhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIS EhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIS EhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIS BwwEEkMax9+6YnQoEl5IqHKCrukzCaVz0NtF9Iz6Hy9995g7ISFxEEES1hDEx+5cezi78p8ExTns NZdSCqqz185tIO2tD2qdiX96+a6rd0FC4iCDJKwhgo//34aRJEYvp8B10OlMcIJiK1TTQdtaQbds 6CRq+gdLbvvibyAhcZBCEtYgx6n3bZ7OWOkHRNcv1qleyUnKIavOdugbVgOp9DYC5cQld3x+XVAd i7/+asXpdU+nb7zxRh0SEgcQYUgMSpx218ZZJIqfUD17Bgv5KnVOUJysePiXTkPfuAa0w4j61hBN P33J3V9oFo8/5uaPFiCrXEb6OheT7vZHWNGvICFxgCEV1iDDqX9sGUN07VuMma5n/lTE9KdgEhV/ de6GtvpDQFVZGTZoUe2Ipbd8aTc/9qRfvluvhWKXU6J/C6o+hezYBNK1879e+t0134WExEEASViD BAtvfTsyrLbxMnZJf8YIaqRDUAJZ6du3sBBwjbE/K+lQqHbUkju+vO7I36xsiin4DgsVr2LmexOS CSgtK0EyyVWqFj5yTE9NYtNhh9RntFSjEtZrwzQ0mkIbTWioUddpDQs1I5wc2Uvh4aauM1+MMN2m 0azCJJ6m6d1QlHaoWislSmcmq/dpeqIjmWpo237bEQlISJQISViDAGf/qXm2Sun/ssVTXY/K9Kls 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 Z987LxwOvcxY4tgc24jksWSJSSbW/v9c0Tflir5482Gs/GvwkxPghHy0YIhI/It8rOPPn75428XL nv3ifhuyeqhBmu4SZYNF5951JSHKTdQZ2SFf7hMQMK38VijKdW8++rnHzjzzpli7Ur2CHTPFrgbe Bc9qIYOdMjA+vC+eCn9lyZKr5Oig+xjSw5I46LFw4dsRZeyKXzJ6+LKXUojlMbkjYbgiSDCZKP2j Dvqvbz96lTG9e4dS8ztWOEWsxtzPMaw85TnelmtnLWMf863Xn7x2CST2C2RIKHFQ4/Dzfj9NGb9y CSOJLwdFbwYI8flJTvlm5lede9ailk+//fg1BlktOufuf2W8dGX+lsTgEFH0ttj7Duj6P7WRxLGS rPYvZEgocZCCkoXn/+EaRg98wg9jiBlP0mZgrji1zacEUejPUqHUbz942O0Cs+jsuy5ifMTn9wuL h+TP2/J+CFNaXeztd8iEf/bmc58bMiPFHkyQhCVx0GHhRb8fTXTczRZPC8wcFwu8EVwPW/2TnqU/ XfbElevFOo889+7LGePch3z3fOERQvvY9lsQUm9747Hr1kLigEESlsRBhYUX3H8BgXoXjFm2bQSS k7ON+d5pZsbfTkOhX7z90Kc2+Os8+sy7j9XCeIwdY9aZd2z1HNJSWcn/aST7X8seky1/BwMkYUkc FDjy3Hsn6xHyG8Y/ZzmFxfvpbWSe012KQu5646FPbwmq96hz7/oMC/hu5i2LRVsSrboJ9N3M3r1H TSu/XPbs5yRRHUSQhCVxQLHggrvqlVDky4TiXxlZGONaedIIckkrwYpeZvvc9/bfPvMHngWap2py 5Pn3XMM46f9KT38g69jrD5mw/r/v/U2mKByMkIQlccBw+EV/uJAQ8iNGGnOdwjy5T4xXnieUPE9T 9M5lT32m4MB3l1xySWhT+tzbWLDo7bYjkJNvqOKndZ3eTZXsIyz0k8P7HMSQhCWx37Ho4rvn6oj8 gvHRaW6pLzGT0m5GZu+B6vcRGnnirUcu31xK3Yed+Zfh4WjyObZ4SMGWRKCdEdrtjMPuXvbYVXJI nzKBJCyJ/YZDL75/bgj4BmOMq70Kx/iHpwmsY+WvMSJ5tmb++qeW3Hijin7gCN4SqCg3sTqGCRWL b8ybwpOg2p/ffvTqRyBRdpCEJbHPcegl94wN65HrGRHdwG65SrM7C9nG3KfXQPQPFUKfJVrV6jcf vmiPcpvmX3jviKiOm9gin5DV0+OPfWZa0fGcTvTfK319z7z53PUyf6qMIQlLYp9iwSfu/xK7yY4n IKug0RZNIe+Fm6pWL7vtvAHwiig54oLfM7VGbmTqyRx1gZEhazncTnX6uEK0R3dnRj697omzhvRE tYMJkrAkyhKLL7jnyCwJ3cIY6nDotI+R1JPsZn5ZI/Tpdx7+7EpIDEpIwpIoKxx23h1jlFD8E+zG ncQE1ltQ6Bt0U+/mZcu+mIWEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhAT+P4nZEgnaTUukAAAAAElFTkSuQmCC --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=0287744d-9fb2-3585-466b-a4389601b563.png Content-Type: image/png; name=0287744d-9fb2-3585-466b-a4389601b563.png Content-Id: <7797566ba14ce9ca8a45@news.protonmail.com> X-Pm-Content-Encryption: end-to-end iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA AXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA+hSURBVHgB7d3PchtXdsfxcxqQohnHFUyNSNPK wtBiqiiKKbfsjbMStJusRO+SlagnGOkJSD6BxCeQtMtu6FUqK1EvMIIq4p9kFoZXZpmuClKxZY1E 9Jl7m7RHf0CgG+i/4PdT5TItslwFCfjpnHNv3ysCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAACiICjCjFpfDTsMkNAk+FbXQvdtbYtL233vRtN/0ut2+oFaaAswQH1KBBbc0sBUzaVn8V7Id f9P+9nPnXsXB1RXUCoGFmbC0FK5KoH9wX7pKysRs9M+f8z9HYNUOgYVaiysq0XtyHECYcQQWaqnd DlsffBismdkdwZlBYKF2rlwJV7Sp91xYtQVnCoGF2nBzqtACvefm6B0xmYqbcbFCWEMEFmrhyvLn bqAe3c9qH441CKw6IrBQaYuLYdu1fw9Uoo5k6GWTFcI6IrBQWb4FlIb+8efNnllx7WCPTaP1FAhQ QYtXP7+lDX2cdVgds2eCWqLCQuX4eZVrAe/blIP107j/75aglqiwUClLy5+t+bCSPEWyLaglAguV 4cPK1T/rkiNXtG3v73d7gloisFAJRYSVZ5E9EtQWx8ugdIWFlVsd3Nt5ellQW1RYKFVRYeUFYgzb a47AQmmOd68XE1beKxPawZqjJUQp4k2hgT6VgtAOzgYqLBTOP24T72AvkIptC2qPwELhgkawls8O 9tO9NtkU1B6BhULFRxmrrUqxun/e7fKw8wwgsFCshq5JwaLIqK5mBIGFwsTVVcGtoB+27+92Hwpm AoGF4pRQXZnZhmBmEFgoBNUVskBgoRhBcFMKZgO7IZgpBBYKYitSKNvgVIbZw0535O7kstPHUhB2 tc8uKizkLrDglhTEhxWt4OyiwkKu/GM4QVO/lmL0oyO7Ris4u6iwkKsgkI4UJIrsLmE12wgs5EoD LaQdjI8+ZgvDzOPWHOTGt4Mm+VdYJ3Or24KZR4WF3BTUDvbV7EtawbOBwEJ+NLgu+epLZDd2OYnh zKAlRG5ULczpLtRfti9QWZ0tVFjIRRiGLRdWoeTAxDZ/+pHtC2cRFRZy8eMraZ/L+K/DuKpSu73/ vLstOJMILOSiEUhLstP3x8Ts7XTzvcIelUdgIReBSlumH2D1XV21+eIHud/rdfuCM4/AQiXFc6of ZJ2gwpsILOTC/P4oSc/vWDd/NAxzKgxBYCEXRwPppRm6E1RIgsBCLj44L71XRyN+QKUnpl2z6IkN ZIstCkiC42WQG39w35v/HUTSj9w/L19Kn9kUAGCmUWFhprTbYevCBWkNAmmda0gY39RjwSf+e6bS cv/dc6XeE3st8fOHtKL1QmCh9uKQ+nsJ1YKbQWCrZhNsWnUzNb+T3s/VAom+eWWyzfX21UNg1Zz/ sP7qQ+m4+VA7kuAT9wfaMrW2/57qyT2AJn2LN2HGv9r3VYZa9Oy1SLeOH0p/zlajISsmwacSWCe3 +w79wkCk25FGj1i9rAYCq2Z+txSG51U6kQbX/WkIU39Y49U6e6Qu1AYq3Sp/MP0QX0XXVIo7dvkX /vdpYBu7nGpaKgKrBuIP6jTtThoVqyp+rqYi1ZulBNW73O9P9JpjbcpCYFXUkquk/G3Jroq6k3tI neYkvF5btFlU6+hb3F9/KCsSuQoysJXSXvs4pg+jQcRlrQUjsCqm1LZnlOONng+jI1d55fAhjS9b 9fcXqq1KnRBchSKwKqKyQTWEf4xGI3v04oVsTbsBtE6vezRd333+pw1BrgisktX5A+tWIfsW6ZZK 9GyQ4vGa46vrg+sm1ql/UL2BwXzuCKySxDciN4K12rVAI/jKKzD7yq82ypH0fn4Ex7/WeCOnm8m5 n1qRnI5OrgzaxNwQWCVYWv5srdRhOvJHtZULAqtAcVXV1D/KrFcY+IWa3v/xXLTR6/KwdxYIrIJc Wf78D4FG61RVZxB7tzJDYOXseF9RcE9sdmZVmEjf3/iz91/dLcHEGoLc+Bbw/AX9D/fl7wVn3QW3 Gvyvc/OX5PC7b58IJkJg5SSeV53Tx/5LAf6mQ2hNjsDKwS9hldcpAqi7ztzcpfbh4bdfCVIhsDJG WCERlZDQSo/AyhBhhVRcaM3PXWq50PpPQSIEVkYIK0xE5QtmWsmluDkOo2hTHxBWmIhF7XYYsj8v Ae4lzIB/1Ma96zoCpGAmXVO7u7/D8ctJsXF0SleuhCvaiB+3AVKwjd3n3XVBKgTWFJhbIS1/ooUd 2W0e05kMLeEU4uNh7PiGGmCcKHJBxekNU6HCmtDxIXTxTnZgLMIqG6wSTihQtyoIJEBYZYfAmsDS UrjK3ArJ2AZhlR0CaxINXRNgLFYCs0ZgpUR1hWQIqzwQWClpoLcEGMm2CKt8sK0hBb/vymbpWipk zkx6P/0otwW5oMJKId53BYxgA7sx7eWyOB2BlUbA84IYxbiLMGdsHE2IjaIYxbeCeztPLwtyRYWV UGABw3acyreCgtwRWEnRDuI0Zg9pBYtBYCXg20H2XuE00UA2BIUgsBJQ42p5nIZBe5HYh5VAoHrT BHibH7TbQB4KCkOFlQCbRTFMILZFdVUsAmuMeH4FDDEYyKagUATWGMyvMBQrg6UgsMZQCT4V4B0W CTc2l4DAGkOVM9vxnv7eXndLUDgCaww3cKclxFvMjFuaS0JgjeCPk3H/4kZevMVMqK5KQmCN0mR3 O943EOkKSkFgjRAogYX39P+82yWwSkJgjcLzg3iHUV2VisAawQgsvEPNeoLSEFgjqAb/IMCbVL4R lIbAGkHFWCHE2yLpCUpDYI1GYOEtUUBglYnAGsGUwAKqhMAaxQgsvG0QCVd4lYjAGo3Awluapv8r KA2BBaA2CCwAtUFgAagNAgtIwRrG7c4lIrCAFHTAQkyZCKxRlE2CeJuyN69UBBaQRsAD8WUisIA0 TD4RlIbAGkGNlhDvUOWM/xIRWCNEZhwlgne1BaUhsIB0Wr9bCqmySkJgjaCsEmKIpkpHUAoCaxQC C0OoCLeBl4TAGsGEo0QwhOqKoBQE1gj2mhtSMFRrcTnsCApHYI2wv9/tCTCEawupskpAYI3DHAtD qOgtQeEIrHFMaQsxDG1hCQissSI2j2IoV2WtCQpFYI2jDN4xnJtjdaiyikVgjRG9lm0BThFYwCyr QCoYa2n5mr8phXOQMFR0ZJdZUS4GFVYCLtV7ApxCm/pAUAgCKwETeyLAKZhlFYfASoLBO8ZgxbAY BFYCDN4xjq+yrlwN7whyxdA9IQbvSKDvBvDXGMDnhworITP7SoDRWgzg80VgJcccC2P51vDq1c/u CXLRECRy8bcLBxooMwqMp/LF3PwlOfzuW1aXM0ZgJfT99wf9ufmPfWBdEGC8DqGVPQIrhYtzC1eU a56QHKGVMQIrhfmFBbdKyPG4SKUzN3ep/cE/fvSkf3DwUjAVhu4pnG/IlgBpqa3+eqBPFxfDtmAq BFYK3W6371aBtgVIy6QdnNPHPMIzHQIrpYj9WJiUDy3Rx0vLn/EYz4TY6Z6SL+uDpn4twBRMdMuO orvsik+HoXtKfnvD/PzHHfdlW4AJuUphURu6Mndx4f8ODw/YlJwQLeEEOG4GmXAtogT6YOmfrn29 tBSuCsYisCYQMXhHlt4ILobyozHDmhCnNyA/ur77/E8bgvdQYU1MtwXIgRs5dARDEViT0ojtDciF Cyyqq1MQWBNi1zvyYCa9/efdbcFQBNaE2PWOPJhRXY1CYE3B1B4JkKWIvwRHIbCmcNIW9gXIgtlD dr6PRmBNwbeF7l1GlYVMRCq8l8YgsKYUCcN3TI9hezIE1pT8m4zhO6bFsD0ZAisDg4i2EJOLq6vd 7kPBWARWBk7ebAzfMSHbFCRCYGWGNx0mYwPmoEkRWBk535T7QpWFtNjKkAoH+GXk4ODg5dz8wq9E tCNAQtFAvvSHQgoSocLKEFUWUqG6So0KK0NUWUiD6io9KqyMUWUhEaqriVBhZcxXWRfnFv6iqr8X 4BRUV5OhwsrB3k7XV1nchIKhTGyT6moyBFZOIrG7ArzD72q3o3hsgAnQEubk++8OenPzl0L35aIA J8zs7v4eDzlPigorR9FR5Kss5hSI8czg9AisHPk5BU/h42e8F6bHvYQFuLp87bGJdARnl9nD3Z3u bcFUqLAKMDgy/0alNTzDooFQXWWAoXsB/H4b9madZbaxt9vlRIYM0BIWiNbw7PGD9r2dp5cFmaAl LBCt4dnDoD1btIQFojU8Y9yg3bWCBFaGqLAK5h/b4dKK2edbQQbt2SOwSjAQ2oRZp2Zf8rxg9mgJ S3D82M7Cb9zb+gvBDLKN3Z3uvwsyR4VVkvNNWRcG8DPHrQJv7z7vrgtyQWCVxF9zb2rsfJ4hxycx 8GeaJ1rCErnWcJ8THWYHJzHkjwqrZOebEXuzZoJtcBJD/tjpXgGLy2EnEH0sqCXXCnb3dp5eE+SO lrACTlYNldt26ieeWw3sXzifvRgEVkUcfnewffGjjy+71AoFddF3YfXP7LcqDjOsCvm7ht0RLq+o jaOB3SasikVgVYjf6nC+aTd8myGotCiy2/+zx5ExRWPoXkFLS2EogT4VVJIPK1YEy8EMq4IODw8O fntx4RtVXRFUCmFVLgKror4/POgSWpXSdzOrf/vvPZ4RLBOBVWE+tC5+tPBMJT4/64KgLH2J7Aa7 2MvHDKsGFhfDtjb0saq0pdr6YrplEj3TQPrRiMUD91pa7s3XEvOvKfjUzMIqvr6TfVY3WA2sBgKr Jo5DS9Zdi3hLKsafUGD+0ZTn01Ugxzv+/Zn31Qgwv4PdhRXnWlUIgVUzi0vhqguttZI/zH3z+8XM vrKBbOX1gfarpaZyx71Nrxf9el0Ab/70g6z3el12sFcIgVVDvtpqNPVBwTfw9C2yRxa4gHpe7CzH v14JpFNQUPfdSuBdVgKricCqsSKqLd/uqdqjF/8vW1WoNnzVFQVu/mWymnV7HLe2R+xerzICq+by mm2ZxMPzzaKrqTT8aw+a+rVMKasZHPJHYM2IjNqmrmv7nlgk9+tQZYRh2Hp1FAdWSyZAUNUPgTWD 4rbJfZ6DILipYi3zAWZDQkzdkr3fehDZszJmU1nxq4uuRXSrisF1F0Nt97pa771e91rdr/k53BNX kXar0uICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBRfwWOjyNQLS2jsAAAAABJRU5E rkJggg== --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=404659ce-f140-ae55-2625-c538c1e3119a.png Content-Type: image/png; name=404659ce-f140-ae55-2625-c538c1e3119a.png Content-Id: <3d94372c8495c81a6495@news.protonmail.com> X-Pm-Content-Encryption: end-to-end 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 --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=cd638a0a-5b89-50e7-5d55-628bb2349f85.png Content-Type: image/png; name=cd638a0a-5b89-50e7-5d55-628bb2349f85.png X-Pm-Content-Encryption: end-to-end Content-Id: <54e82b9a59697969dca5@news.protonmail.com> iVBORw0KGgoAAAANSUhEUgAABLAAAAKwCAYAAACI8Yb1AAAAAXNSR0IArs4c6QAAADhlWElmTU0A KgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAEsKADAAQAAAABAAACsAAAAAC19UNB AABAAElEQVR4Aey9W5NlR3bfl3Xqfuvqe6PRABoAZwDOjSKHJkVRDlvUgxV+cDjs0JMj/OIvoWd/ IDvscDAUQVMhh+gQKc5Qw+GMOIMZXAdAo2/V1dV1v/v3W7nXOVmnTzWaJEbGw97ddfbemStXrvXP lbkz187MPXXGUfqjR6BHoEegR6BHoEegR6BHoEegR6BHoEegR6BHoEegR6BH4GuKwOBrKlcvVo9A j0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj0Ag0DuwekPoEegR6BHoEegR6BHoEegR6BHo EegR6BHoEegR6BHoEfhaI9A7sL7WxdML1yPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQ O7B6G+gR6BHoEegR6BHoEegR6BHoEegR6BHoEegR6BHoEegR+Foj0DuwvtbF0wvXI9Aj0CPQI9Aj 0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9A7sHob6BHoEegR6BHoEegR6BHoEegR6BHoEegR6BHoEegR 6BH4WiPQO7C+1sXTC9cj0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj0DuwehvoEegR6BHo EegR6BHoEegR6BHoEegR6BHoEegR6BHoEfhaI9A7sL7WxdML1yPQI9Aj0CPQI9Aj0CPQI9Aj0CPQ I9Aj0CPQI9Aj0CPQO7B6G+gR6BHoEegR6BHoEegR6BHoEegR6BHoEegR6BHoEegR+Foj0DuwvtbF 0wvXI9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9A7sHob6BHoEegR6BHoEegR6BHoEegR 6BHoEegR6BHoEegR6BH4WiPQO7C+1sXTC9cj0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj 0DuwehvoEegR6BHoEegR6BHoEegR6BHoEegR6BHoEegR6BHoEfhaI9A7sL7WxdML1yPQI9Aj0CPQ I9Aj0CPQI9Aj0CPQI9Aj0CPQI9Aj0CPQO7B6G+gR6BHoEegR6BHoEegR6BHoEegR6BHoEegR6BHo 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 Gpg1oAZmB9ZsB7MGZg3MGpg1MGtg1sCsgVkDswZmDcwamDUwa2DWwKyBWQM/aw3MDqyfdfPMzM0a mDUwa2DWwKyBWQOzBmYNzBqYNTBrYNbArIFZA7MGZg3MDqzZBmYNzBqYNTBrYNbArIFZA7MGZg3M Gpg1MGtg1sCsgVkDswZ+1hqYHVg/6+aZmZs1MGtg1sCsgVkDswZmDcwamDUwa2DWwKyBWQOzBmYN zBqYHVizDcwamDUwa2DWwKyBWQOzBmYNzBqYNTBrYNbArIFZA7MGZg38rDUwO7B+1s0zMzdrYNbA rIFZA7MGZg3MGpg1MGtg1sCsgVkDswZmDcwamDUwO7BmG5g1MGtg1sCsgVkDswZmDcwamDUwa2DW wKyBWQOzBmYNzBr4WWtgdmD9rJtnZm7WwKyBWQOzBmYNzBqYNTBrYNbArIFZA7MGZg3MGpg1MGtg dmDNNjBrYNbArIFZA7MGZg3MGpg1MGtg1sCsgVkDswZmDcwamDXws9bA7MD6WTfPzNysgVkDswZm DcwamDUwa2DWwKyBWQOzBmYNzBqYNTBrYNbA7MCabWDWwKyBWQOzBmYNzBqYNTBrYNbArIFZA7MG Zg3MGpg1MGvgZ62B2YH1s26emblZA7MGZg3MGpg1MGtg1sCsgVkDswZmDcwamDUwa2DWwKyB2YE1 28CsgVkDswZmDcwamDUwa2DWwKyBWQOzBmYNzBqYNTBrYNbAz1oDswPrZ908M3OzBmYNzBqYNTBr YNbArIFZA7MGZg3MGpg1MGtg1sCsgVkDswNrtoFZA7MGZg3MGpg1MGtg1sCsgVkDswZmDcwamDUw a2DWwKyBn7UGFv/Wf/Zf7Jcn58PJxbNhsbkflqvFcHX5clidnAy7xWJY7PfDt3/1fwzPh/vhX/zV Hw1n5+ejQPthT1ldQ+Ltfjfc32+Gv/vtb4aP97fD9dXz4eT0bHjx4tnwxbMXw3q9HB4eHobvfvh+ ePfuzfDs1ZfDy1dfDavTk+GJuvthxTUMT5vHYdg+DpuHO+LdsNk+DcNuP+y2FC5Xw3a/4NoPi+Uy dBfwuR+Ww+riarj6+p8O5y9+OayunlEFbKv1cPHq2fDv/Ot/Pvzb/+Tl8Mvz5fB/vtkM/93/+r8M m7/8v4f9bhd5xNGXPHRI3nijrEg6LLwH3pAsY64duLy3aDmWy0PVg0fKdtReLFbADsOb12+H3/z2 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 au1La/PXiYPjkxveXi61FG2u2eHBytzwiLX+HLQ7wgTBfTamVwg/4uTZnDYE2WQ/Zj2+x/eXO6xN KMPiOnP31Udoru5TRvv6orX5GN7l9ltn3pN01rC/5k+Mp6BfW4p7XD7TwivjN9+Zruln/Ibju85v f/2tn/FvXc0v+rvbfdo17WsSt/frSrhqFreL4gkf3jXTeTZOnb8wfG9YlsNvf753Op/WtkJCi1Kb s0WnjnObb5VHXnfTr01SGS7ctCvyFVe6HSochnWiUgIAsBWB9C4JopOsQrmgG5sJoCBGYpGO4PyC ZKERY7XCZtKmk5BCzXtBNwd+/qWRkNa3+IxwQGn0i/cNcyavwBpT3OQr/GJgIRWj2dSIR9A0C4HT N7vDH70+Hnb+1/+Wo4N/hNFldtVXNoavf/sbjiK9GlYRUrnQPObIoLvoHgtSa8MJ2RUTNxlA7RXj uBA1xyUmuPOo2Vthaobs72Mkjh08bfs4KdSejovVcwRU9vLeSOXPnfqogTMp8AjEwgxGpQlX42vv 9QtsbXC8celOjm6Y3nqwvmDfogudQWvjhLrgplaSHUvVn76U3nTQSCaz0Xt2uRiq6CsV800cO72q i9tGIr1lHMks8+nEwv8Kf8I3RjLXeuTdNCE8eeqCB17mEUD6J71h/BJgvtAbOti5psHBabF/xQB7 DS3TKOXRNFzKOC70MnIyYTBfUtiy+e/ixDq04yeuOPE/ZZKbzVOvMW4k09BQ9Xg86WTgJ99tmCJJ yaWqu/s+a7jjfYJZw+eBW3nxNy6CX2nsV4LExw7ATzEe2wAe7tJGW5AOz4X8ZbZ8wdukxudPtDOC Jzn6TZ552vDhTRJVZPM0kbY4eNhCaPjxm3fRxncWi/qFJHZILlOrfkPLNCtzFxaRDJM2eLnY0qTq CjshTrzsSyBXYMgn2o3yqN22uw60j3N5nEFpBjsg0c4KERm8qds3CDOcoCrEsm1sv9ljUb6QoyqP OUwvnTVQvYb2yRbG2B0ELi7nEDA8RjDGbjDljFYpNHvB2X3r14UhxabNcdyPydhbdlYWnj7Eph3n +3l/xi0gr7b3I3Db4NY42/Y5bV4BopMIhVMeJT3me/mSHWnaq0IXb4t05zS3i1IPTx/dKw0NePAh g6xGwcXnze7B8PbN1vDhJ5+i3bHIMWVs6YHLa440is8yk+oFdlgPwcdrijfWEGBhx2vh8s2wt8TR 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 vP798j+++o1y7eWXys9/6YvlZz//1+HNY1gf4TMRZfmHN2+Vz198OXAjTmyueAIs5uDErb+VU6+c P1d++dM75as/ei+sapQtvG3y7gLWqvg5HmTSuTbbLbc+uFfuedoF4wo4CmPEOYZ5nTb80q/8SvlP /95/Xb76+/+ifPXLv4tC6yryLM7+8T/lWsqNpCHk3VGOXLZQ3r308meAp6/cZjz8n//s98uXfv5z 5frlc/B43AJQv/2qNkT8etv7CNbZv/LFXy6f+8RngLFTbt6ZK+PPXS//3t/5dSBBqc04dO25y0bX NhfUrGFRtoTycmMddwkcUx2ZeSpkk+or2fLtc4+YVj4g9UhzBnFTg2kDnohPJaopT9Kh/V3TGO+4 qL9P8sasIPNavu9qXbUM8xmX+T8KR6ZlDDAmf1pQtrvKGjqU8ChtB9jkiQtDGA89bDxlm1FEw2Pt F0PAR8OlYfPL6xzbBmGwLaYJJQ58wI09FdmW5bgPvQP8KeS3yJ/0FootlZZRRh5rHYB2HC/eRipd hgxqD1C//MM5zL7EULG8eevD8sLPXAUe3zv/iWMxTztineKYTQV58BZcXRiEq+JU2GswznYIj+6S tKqmIfV1fLsJaTCf5Zi+5ssyE1Yi/R/4UdhJ/6vJ68xvXnEnv6hzZuASvGnc41w0Dm/dZT5qs5kX c5MZHwvWmXTw2At/Un70kkiJn/nts3DXfFmGsQlvLbN+m078GfqnpxTE2VnkSILe+Q8QJrowcydc 5n4QN8CxhdytRYyhkmTWoahC4Ka/CYDlA4wGVIAoz++LEH+7qNCaSASSjkm7HOJ8l4l8YHCmHE5w fG/5fbrYxQmTNr48CotaHS/2DiO4TcxAJPgFwWKrh50HJ2DbnzsTlGkHg3xNtd3J0oGqxKO5nisH zxL3o6FQY3rx8mi5enm23Lj5AOFUQqFWhIwRBNdwKkoZNscOVNAKqwxwIppd9IaCg8VAm8WRO0ye LR/m6KAbG8Ij44qFDwB2WJgN4dB0ExPrHrbvlTkAM0zL11FkjZNvBnPDtXXeTw5inssAZRRoPq6V lXArVA3wrGA9jPB+OECdWhggAOlUFuBzUQARe8Z9p/sQJsx1rWhle7CW0wlwj0dBwL+3OGo595/8 7RfKjz/EfwqTke0Xl0EY/PJHfWYMRp/ZtQa/iCKJfzNPZPY53uZfsBbvKcj/R8G3lQBrdCyoTGFa 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 ct0jgiqYDg74muKzF7Vj0qNwVbbAam/uc8x1ol3bYyX33Pfn7gV5YV3WX1o04vM97UflD1ouUTh+ 4Eup7ow4R9bdVVR1nfZuh+sonh9Qrz1GzBc8RaWS3DvOlGU/vHPD8YIr0vQY8wanEDo58CJbdyiu t1nFVARUlDpmnt8dM7H0N1nmp/jP0U7rnu1sKSaq9ktzy1XlF7e8cbJqPN0a+a8Jv6wDO+Tfnbw1 Tp3glDUiLbtO44hBDiuJROhw5RK3PNdUmsQrmzKoVIWFJx23opXMF534Sl+1C+KGbh/j618yRduT PBRewvWf3wNXic9+zKcwwWeQODyyXPind9uXatOmuJ39FQ16C69J2jj0rHf95WXaiIIj142nw3yp nTWOgWke5bPMeH7DzkxSRwqbt1M6SU96fcQfE3f8zad+oa3yRnqGQ3FF6zDxKA/mzbw0TsM0+gen 73EbnjSdm+Xd/OrOExy+d9rNr/hrawxvGprHc9oNT1jw+q47Rnjx6/+YKbmYeBJZD1zi5j1p5F07 9KVva151WzynJTxJXoMjMCqbTj12XOXQoRf0PVXHQKryNsY4JROUl/XVRQHrtcon+6xOw2OB3deE 7ooHfvMsjP6X9J/ZMevYw93o+ts+C2O+vFpAvLW7eeKn1IgPDlR5V/6Ip5++4V3yLc656birMjes 4ppX0tBtHG3f457jSBwCJWMZf+k/Ay58kzwHV0frtihK5EQJDXlPuekfd+hN1nzXxH6QZ9q7+GsH T8piHi/h635FbyX2uCwLrzG+aSeflRdeHpZAw47fwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHB gcGBwYHBga+CA6qnhxkcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBz4ajkwFFhfbdEM wgYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYH5MBQYA05GBwYHBgcGBwYHBgcGBwYHBgc GBwYHBgcGBwYHBgcGBz4qjkwFFhfdfEM4gYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYH hgJryMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwFfNgaHA+qqLZxA3ODA4MDgwODA4 MDgwODA4MDgwODA4MDgwODA4MDgwODAUWEMGBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYH Bge+ag4MBdZXXTyDuMGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBocAaMjA4MDgwODA4 MDgwODA4MDgwODA4MDgwODA4MDgwODA48FVzYCiwvuriGcQNDgwODA4MDgwODA4MDgwODA4MDgwO DA4MDgwODA4MDgwF1pCBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYGvmgNDgfVVF88g bnBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgKLCGDAwODA4MDgwODA4MDgwODA4MDgwO DA4MDgwODA4MDgwOfNUcGAqsr7p4BnGDA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA0OB NWRgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcOCr5sBQYH3VxTOIGxwYHBgcGBwYHBgc GBwYHBgcGBwYHBgcGBwYHBgcGBwYCqwhA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MD XzUHhgLrqy6eQdzgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwFBgDRkYHBgcGBwYHBgc GBwYHBgcGBwYHBgcGBwYHBgcGBwYHPiqOfD/AHZGqVo283EKAAAAAElFTkSuQmCC --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=tw-f.jpg Content-Type: image/jpeg; name=tw-f.jpg X-Pm-Content-Encryption: end-to-end Content-Id: <94c9a348e4565f3d5f80@news.protonmail.com> /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QN/aHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwNiA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAw OjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5 OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4 bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9 Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnht cD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElE PSJ4bXAuZGlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05NmJjLWJkOGU5Njk2Y2Q4YSIgeG1wTU06RG9j dW1lbnRJRD0ieG1wLmRpZDpFREM5RUFGOEI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1wTU06 SW5zdGFuY2VJRD0ieG1wLmlpZDpFREM5RUFGN0I2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1w OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuNCAoTWFjaW50b3NoKSI+IDx4bXBNTTpE ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05 NmJjLWJkOGU5Njk2Y2Q4YSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTc0NjQ1Mi04OTNm LTRjYzUtOTZiYy1iZDhlOTY5NmNkOGEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g 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 --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=fb-f.jpg Content-Type: image/jpeg; name=fb-f.jpg Content-Id: <18a62d98c2e074b2bac2@news.protonmail.com> X-Pm-Content-Encryption: end-to-end /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QN/aHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwNiA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAw OjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5 OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4 bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9 Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnht cD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElE PSJ4bXAuZGlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05NmJjLWJkOGU5Njk2Y2Q4YSIgeG1wTU06RG9j dW1lbnRJRD0ieG1wLmRpZDpDMEEzQkJGQUI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1wTU06 SW5zdGFuY2VJRD0ieG1wLmlpZDpDMEEzQkJGOUI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1w OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuNCAoTWFjaW50b3NoKSI+IDx4bXBNTTpE ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05 NmJjLWJkOGU5Njk2Y2Q4YSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTc0NjQ1Mi04OTNm LTRjYzUtOTZiYy1iZDhlOTY5NmNkOGEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g 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 YulAh//Z --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=rd-f.jpg Content-Type: image/jpeg; name=rd-f.jpg Content-Id: <5405d10142f9bc6e0658@news.protonmail.com> X-Pm-Content-Encryption: end-to-end /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QN/aHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwNiA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAw OjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5 OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4 bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9 Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnht cD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElE PSJ4bXAuZGlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05NmJjLWJkOGU5Njk2Y2Q4YSIgeG1wTU06RG9j dW1lbnRJRD0ieG1wLmRpZDpEMjc3Q0JBRkI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1wTU06 SW5zdGFuY2VJRD0ieG1wLmlpZDpEMjc3Q0JBRUI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1w OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuNCAoTWFjaW50b3NoKSI+IDx4bXBNTTpE ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05 NmJjLWJkOGU5Njk2Y2Q4YSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTc0NjQ1Mi04OTNm LTRjYzUtOTZiYy1iZDhlOTY5NmNkOGEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g PC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQE BQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8f Hx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f Hx8fHx8fHx8fHx//wAARCAAwADADAREAAhEBAxEB/8QAeQABAAMAAwEAAAAAAAAAAAAABwACBgED BQQBAAMBAQAAAAAAAAAAAAAAAAACAwEFEAABAwMDAwEHBQEAAAAAAAABAgMEEQUGACEHMRITIkFR YTJDFAhxI3M0FcERAAICAgMBAQAAAAAAAAAAAAABEQIxAyFREhNB/9oADAMBAAIRAxEAPwAFbbW4 tLbaStxZCUISKkk7AADXQIjLYuE8fx+ys5JytdFWaK/6oliZ/uvdDRYAUpJ3HclKaivqUk6k9jbi o0dlnOX+ILRSNj3G0SZGQdpN1U246oD20cRKVU/yaPnZ5YSiN8v8QXesbIeNokOMs7ybUptt1IPt o2iKqo/k0fOywwlFb7wnj+QWV7JOKboq8xWPVLsT391nqaIBCVKOx7UqTU09KlHQtjTiwR0DTja2 1qbcSUOIJStChQgjYgg6qKMvCdisuP4/dOVskZ88WzK8NiiK+tN2AWKg7pUpKUqoaHuV1TqWxtvy hl2GWX5ffctvr96vT5elvGiUjZtpsfK00nftQmv/AE71OqVqkoRjZ4umMFSTxHh7N9i429mjcLJF iK3JhSoL3hS/JbQ52IktqUjbydvrCd9S+jiY4Gg7Mzx68cH53bJFgvQmPux/OQpHjq2XChbL7QWv ubX2bGv6UKa6Kv2uQfB9/NlisuQY/a+VsbZ8EW8q8N9iJ+jN3BWaAbqUlSVKoKntV1VrNbaflg+y 3L7n+RxBxtj0YFEaZEVdZI6BTrjaHBX3nulOaNfNmweDI8e8M5lnlvmXCyiM3Ehr8RdlOKbDjwSF ltvtQv1BKkk91Bv101tirkxKRPxP8SLoTGmZHeWYy0qQ45b4zRfqAQShTqlNgH2HtSR8dTtv6GVT 0uT/AMZsgv18uuSWm8syZk95cgW+S0WaA/K2h4KcBISAkdyUj9NZTckoB1CHkfh7N8IhQ7nf1MSI 81YZ88d1bvjd7SoNOFaUeopSaUqNuuq02K2BWoNXxC6Ltw/yVj0qqo0OILrGB6JdabW4T8PVFb0u ziyZqwTl9v8A1+IONshjErjQ4irVJPUJdbbQ2K+490VzRr4s0DwaX8QsidEm+467IAZUlE+LFIHz 1DT6wevy+MEaXev02gr4/iWdQuUbxfLjkv3eOzWlfY2TvcJbBUnt/ZUPG2G6Ed6DVVd6VOpOy8xA 0cnOQYlnM7lGzXy3ZIImOwmR9/Ze9wFwBSu79lP7bgcqB3rNU02rQaFZeYgI5Cf8vcidMmxY61IB ZSlc+VFAHz1LTCyevy+QAaroX6LczfECP8jiDknIpJKI8uIm1RVdAXnG1tmnxCpTem2c2SMWCnCd 9suQY/dOKcke8EW8q81ilq+jN2IQKkbqUlKkpqKnuT1Vo2Jp+kC6MFcrdmnGeZhtal22925fkjyW 90OINQFoJFHG1ioII94I6jTpqyMwKkf8lrBeY0dGbYoiXNjAhu4wHPG4kK2V4+7tcbr7e13fUvi1 hjeiSfyWsFnjyE4TiqYk6Ts7cp7pddV2/L5KFTjlPZ3O7aPi3lh6Cu227NOTMzLaFLuV7uK/JIku bIbQKArWQKNtoFAAB7gB0GqtqqFyb3my+2XH8ftfFONveeLZlea+y0/Wm7koNCd0qUpSk1ND2p6p 0mtNv0zX0DTbi21pcbUUOIIUhaTQgjcEEaqKMti5sx/ILKzjfK1rVeYrHpiX1n+6z0FVkFKlHYdy kqqaepKjqT1tOajT2Wd4h4fuw+6x7kqJDjKNRGuobadSPiXFxVbfx6PpZZQQiNcQ8P2kfdZDyVEm RkmpjWoNuuqHwLa5St/49H0s8IIRW+82Y/j9lexvim1qs0V/0y769/de6iqCSpSTue1SlVFfSlJ0 LW25sE9A044txanHFFbiyVLWo1JJ3JJOqin/2Q== --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=in-f.jpg Content-Type: image/jpeg; name=in-f.jpg X-Pm-Content-Encryption: end-to-end Content-Id: <5408a01eed508e7b6126@news.protonmail.com> /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QN/aHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwNiA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAw OjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5 OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4 bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9 Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnht cD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElE PSJ4bXAuZGlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05NmJjLWJkOGU5Njk2Y2Q4YSIgeG1wTU06RG9j dW1lbnRJRD0ieG1wLmRpZDpDMEEzQkJGRUI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1wTU06 SW5zdGFuY2VJRD0ieG1wLmlpZDpDMEEzQkJGREI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1w OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuNCAoTWFjaW50b3NoKSI+IDx4bXBNTTpE ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05 NmJjLWJkOGU5Njk2Y2Q4YSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTc0NjQ1Mi04OTNm LTRjYzUtOTZiYy1iZDhlOTY5NmNkOGEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g 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 Wo1JJOu6Rg//2Q== --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=ms-f.jpg Content-Type: image/jpeg; name=ms-f.jpg Content-Id: <9b14afaa5d969a314ab1@news.protonmail.com> X-Pm-Content-Encryption: end-to-end /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QN/aHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwNiA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAw OjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5 OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4 bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9 Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnht cD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElE PSJ4bXAuZGlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05NmJjLWJkOGU5Njk2Y2Q4YSIgeG1wTU06RG9j dW1lbnRJRD0ieG1wLmRpZDpEMjc3Q0JBQkI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1wTU06 SW5zdGFuY2VJRD0ieG1wLmlpZDpEMjc3Q0JBQUI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1w OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuNCAoTWFjaW50b3NoKSI+IDx4bXBNTTpE ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05 NmJjLWJkOGU5Njk2Y2Q4YSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTc0NjQ1Mi04OTNm LTRjYzUtOTZiYy1iZDhlOTY5NmNkOGEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g 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 dKBD/9k= --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=lk-f.jpg Content-Type: image/jpeg; name=lk-f.jpg X-Pm-Content-Encryption: end-to-end Content-Id: <4d0ab8344739b9c0b35d@news.protonmail.com> /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QN/aHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwNiA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAw OjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5 OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4 bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9 Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnht cD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElE PSJ4bXAuZGlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05NmJjLWJkOGU5Njk2Y2Q4YSIgeG1wTU06RG9j dW1lbnRJRD0ieG1wLmRpZDpEMjc3Q0JBN0I2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1wTU06 SW5zdGFuY2VJRD0ieG1wLmlpZDpEMjc3Q0JBNkI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1w OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuNCAoTWFjaW50b3NoKSI+IDx4bXBNTTpE ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05 NmJjLWJkOGU5Njk2Y2Q4YSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTc0NjQ1Mi04OTNm LTRjYzUtOTZiYy1iZDhlOTY5NmNkOGEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g PC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQE BQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8f Hx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f Hx8fHx8fHx8fHx//wAARCAAwADADAREAAhEBAxEB/8QAeAABAQADAAAAAAAAAAAAAAAABwQABQYB AAMBAQAAAAAAAAAAAAAAAAACAwEFEAABAwIFAgQFBQEBAAAAAAABAgMFBAYAESESBzETQVGRCHHB MnKSgSIUJBVhFhEAAgICAgMAAAAAAAAAAAAAAAERAiESMQMiMhP/2gAMAwEAAhEDEQA/AA6KipGW kaeNjaddVXVSw3T07YzUpR8B8z4Y6DcER6o+LeLeMoxiU5MqxKzjyd9PA05K0A+QbBSXMvFaylvP TXEN7W9R4S5JXfdMIz+tado0EXQIOSEL0zT9jCWUp9TjfjPLDYxr3TCT/rXZaNBKUCzktCNck/Y+ l5KvUYPjHDDYqrOLeLeTYx+U4zqxFTjKd9RA1BKEE+RbJUW8/BaCpvPTTGb2r7BCfACysVIxMjUR slTrpa6lWW6incGSkqHgfkfHF05EHri2jjOMuLavkyUYS9OSoNPA06+oQskNgeXcKStZ69tOnXEL +VtR1hSBU9PS8/L1MvL1KquQq1b3nl+gAA0SlI0SkaAYulAhr8aAqWt7buRbghmZUfw4xipAVSMy DrjbzqSM0qCG23doI1G7I/piVu1JjKrOPfYvHjq8di+5Fz8W4FJUkgggjMEEZpW2tJ+BGhw+LIzg YeUqOM5N4tpOTIthLM5FAU89To6lCCA4D59sqC0Hr21a9MRp421GeVJL7pnTGC0bSpv2UEXH70IH 0kjJhH4pZOXxxvTmWFgExcQYLO4Fp37eauS+5xu1ousKU0DT21Lzu/VKldwpCARqBkSRroOsbduY WRlUtkrXvW/eSaa3oy61XHHwCGh/6NCe21Soz3ElTZKXX9MgpKiVkddDtxWVVMBEs03uRuiHuDkb dFPCqYjKNqPdqkkFLjzbjjiylQ0IHd25+Y00w3VWEFnk6f2su/6Yu606nNdBKUG9aD9Iz3ML/JLw 9ML3Yhm1M90zX+mLRuymzXQSlBsQsfSM9r6PyS8fTB04lBY5j23WvD3ByNtlWRVMRlG7INUqgClx 5txttAUk6EDu7svMa6YbttCMqsmyprmvrkHkeona+1TcVBBIeKrbdKkMU7QBGz9wyU+cuikqKiPp 0G3IVVEhMskunndtdsuWzZEC1acbVFRkFsLCn3d2hSFJS3tzAyUo5qI00HUr15luQdgkxYUe/ay1 /mC7rsqc0UEXQbFrP0nLc+v8Usj1xDuzCHqVcW1kZybxbV8Zyj6WZyKBqIGoX1KEElsjz7ZUULHX tq06Yy/jbYFlQDzD948dXjvR3Iufi3ClSVAEEEZEEHNK21pPwI1GLYsheDsLp9yPItwQz0Uf4cYx Ugpq3o9pxt51JGSklbjju0EaHbkf0wlepJmuzCvFRTYQMDLz8vTRERTKq5CrVsZZR6kknRKUjVSj oBjG4AdeUqyM4y4tpOM4t9L05KgVE9UI6hCyC4T5dwpCEDr2069cQp5W2HeFACxUrIxMjTyUbULp a6lWHKeobOSkqHiPmPHF2pEHqj5S4t5NjGIvkykEVOMp2U89TgoQT5hwBRbz8ULCm89dMQ0tX1Hl Pkld9rIk/wCzad3UEpQLOaFr1yT97Cnkq9BjftHKDUxr2siMyqbtu6Pi6FGri0aZp/4t8spT8cjg +08INSqs5S4t4yjH4vjOkErOPJ2VE9UArQD5lwhJcy8EICW89dcZpa3sEpcALKysjLSNRJSVQuqr qpZcqKhw5qUo+J+Q8MXSgQ//2Q== --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=yt-f.jpg Content-Type: image/jpeg; name=yt-f.jpg X-Pm-Content-Encryption: end-to-end Content-Id: <51e418e7c80e4c987fea@news.protonmail.com> /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QN/aHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwNiA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAw OjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5 OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4 bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9 Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnht cD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElE PSJ4bXAuZGlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05NmJjLWJkOGU5Njk2Y2Q4YSIgeG1wTU06RG9j dW1lbnRJRD0ieG1wLmRpZDpFREM5RUFGQ0I2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1wTU06 SW5zdGFuY2VJRD0ieG1wLmlpZDpFREM5RUFGQkI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1w OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuNCAoTWFjaW50b3NoKSI+IDx4bXBNTTpE ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05 NmJjLWJkOGU5Njk2Y2Q4YSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTc0NjQ1Mi04OTNm LTRjYzUtOTZiYy1iZDhlOTY5NmNkOGEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g 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 WUg5U6UauSJDi5kRL1X3J0xdKBD/2Q== --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=ln-f.jpg Content-Type: image/jpeg; name=ln-f.jpg Content-Id: <89d3b39953c6be7c3b8c@news.protonmail.com> X-Pm-Content-Encryption: end-to-end /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QN/aHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA2LjAtYzAwNiA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAw OjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5 OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4 bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9 Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnht cD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElE PSJ4bXAuZGlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05NmJjLWJkOGU5Njk2Y2Q4YSIgeG1wTU06RG9j dW1lbnRJRD0ieG1wLmRpZDpFREM5RUIwMEI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1wTU06 SW5zdGFuY2VJRD0ieG1wLmlpZDpFREM5RUFGRkI2RjkxMUVCQjhGNUEwMTRDQUYwOEM0QiIgeG1w OkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuNCAoTWFjaW50b3NoKSI+IDx4bXBNTTpE ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg5NzQ2NDUyLTg5M2YtNGNjNS05 NmJjLWJkOGU5Njk2Y2Q4YSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTc0NjQ1Mi04OTNm LTRjYzUtOTZiYy1iZDhlOTY5NmNkOGEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g 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 rkiQ4uZES+K/cnhjdKCD/9k= --07d4a32336f7ae626877518e8fd12cc915ea81bb7696d574adfc49c07696-- --8bac7bf8d0378095d184ea68c009ff8055879c0f4603c98ceefc4b1cc5a4-- gluon-0.17.0/tests/testdata/multipart-mixed.eml000066400000000000000000000033051445200213000215120ustar00rootroot00000000000000Return-Path: Received: from [10.1.1.121] ([185.159.157.131]) by smtp.gmail.com with ESMTPSA id t8sm14889112wrr.10.2021.03.26.12.01.23 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 26 Mar 2021 12:01:24 -0700 (PDT) To: somebody@gmail.com From: BQA Subject: Simple test mail Message-ID: Date: Fri, 26 Mar 2021 20:01:23 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------4AC5F36D876D5EED478B5FF9" Content-Language: en-US This is a multi-part message in MIME format. --------------4AC5F36D876D5EED478B5FF9 Content-Type: multipart/alternative; boundary="------------62DCF50B21CF279F489F0184" --------------62DCF50B21CF279F489F0184 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit *this */is**/_html_ ** --------------62DCF50B21CF279F489F0184 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit this is html
--------------62DCF50B21CF279F489F0184-- --------------4AC5F36D876D5EED478B5FF9 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="thing.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="thing.txt" dGhpcyBpcyBteSBhdHRhY2htZW50Cg== --------------4AC5F36D876D5EED478B5FF9-- gluon-0.17.0/tests/testdata/original.eml000066400000000000000000000030371445200213000201730ustar00rootroot00000000000000From: "Testing" To: "Test 123" Subject: Small doc attachment VALID v5 Date: Wed, 26 Apr 2023 08:25:16 +0200 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_003E_01D97831.767F38C0" X-Mailer: Microsoft Outlook 16.0 Content-Language: en-us X-OlkEid: 00000000225333D1866CB24A8049706F3452C40E0700C3B68E10F77511CEB4CD00AA00BBB6E600000000000C00003BB97E4DCE360843BCF25AA31956C0E20000000004030000DD8E24308ACA7243B56646E28B20359C This is a multipart message in MIME format. ------=_NextPart_000_003E_01D97831.767F38C0 Content-Type: multipart/alternative; boundary="----=_NextPart_001_003F_01D97831.767F38C0" ------=_NextPart_001_003F_01D97831.767F38C0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Simple Body ------=_NextPart_001_003F_01D97831.767F38C0 Content-Type: text/html; boundary="b1_CZjzIg4XCgPBIDFY9EOw4CTGxwvt0c6cIuThfhnqmVc"; charset="utf-8" Content-Transfer-Encoding: quoted-printable
Simple Body
------=_NextPart_001_003F_01D97831.767F38C0-- ------=_NextPart_000_003E_01D97831.767F38C0 Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document; name="test.docx" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="test.docx" UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC ------=_NextPart_000_003E_01D97831.767F38C0-- gluon-0.17.0/tests/testdata/space_line_header.eml000066400000000000000000000005421445200213000217770ustar00rootroot00000000000000Content-Type: text/plain Date: Thu, 03 Sep 2020 16:47:43 +0000 (UTC) Subject: Sometimes header fields can be long and contain space line :shrug: From: Dad To: Ships Why does the Norway navy have bar codes on the side of their ships? So when they com back to port they can Scandinavian gluon-0.17.0/tests/testdata/text-plain.eml000066400000000000000000000074161445200213000204610ustar00rootroot00000000000000Delivered-To: somebody@gmail.com Received: by 2002:a17:906:a051:0:0:0:0 with SMTP id bg17csp4157243ejb; Mon, 22 Mar 2021 22:04:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxzW2otmOLlkb6wGjXSSToZt/8ZhH91FyDktYKtDJyxc5dhrEaA7AaB8HSIL7mvk/BA3tXW X-Received: by 2002:a17:906:af91:: with SMTP id mj17mr2997607ejb.230.1616475889558; Mon, 22 Mar 2021 22:04:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616475889; cv=none; d=google.com; s=arc-20160816; b=YfOgqoJM5DUc+uCzUf4PvWU7MsC1XsuoDDlIBiIP8KHJ1EHWu/QNN2B4osfFP6R22w PwubJSQdY6A/jQhv+Pwv/rU+u4d//WXFWkzogvGAIIaxJf0SsnbBgCbyE7AY8f44daD/ U6o8aSBgQzDMTReQ23M/cfJPyFaCLQXgU2KhHFDPaXMzD4l9Q0ZPRfSS2epC5QAYPqud 1/2jreuKcdONIonAPKzObtJUjCcC8cQbS6Xe7tWyvbXGa/Bc0qSkrznW5OfXjDev86xd +cfulaazfBwtDNcGgXTX4egdRtnWHcpcs1nUddTHkkROpGB6v0/6fZqTaalp2XJwQBti uEmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:subject:reply-to :from:to:dkim-signature:date; bh=GwFdYGHsrAWjFSXRXahPUa250WT4XNufGK0EsjHqc7A=; b=jlntHT3WYVuraWckxwheZv+qEEfKXx0QJdSauPeYAtbdUo0IZi0FYzFR74OXW4jr0l UGWMDE91Bk71qOZUaM5JFQ6dQzzxBs9X95YQqaMSbGIwbrLVm8+8QK+P+Zpyd1aLGxWl rmGng3efGhjGjYo/D9x2oOwS0MBlGFjbtYeAn6fGmU7FK/q84usmSQB7WPJIaPdaaCgI JUX8aH8ku64KEK96QDnDeP/QssdvtR30sOsV+xEnmPPbDk1wfpMrBEFquGz9tnIzIkwB 9qdbydF72/IXjHFyqeWB25Os5XIBpKqwUorbOhXMYzvzC0qS72dWwlmjLzBZdRF1xpGG dvlg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail header.b=sBjxoxD7; spf=pass (google.com: domain of somebody@protonmail.com designates 185.70.40.133 as permitted sender) smtp.mailfrom=somebody@protonmail.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Return-Path: Received: from mail-40133.protonmail.ch (mail-40133.protonmail.ch. [185.70.40.133]) by mx.google.com with ESMTPS id g16si13203420ejf.292.2021.03.22.22.04.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Mar 2021 22:04:49 -0700 (PDT) Received-SPF: pass (google.com: domain of somebody@protonmail.com designates 185.70.40.133 as permitted sender) client-ip=185.70.40.133; Authentication-Results: mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail header.b=sBjxoxD7; spf=pass (google.com: domain of somebody@protonmail.com designates 185.70.40.133 as permitted sender) smtp.mailfrom=somebody@protonmail.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Date: Tue, 23 Mar 2021 05:04:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1616475889; bh=GwFdYGHsrAWjFSXRXahPUa250WT4XNufGK0EsjHqc7A=; h=Date:To:From:Reply-To:Subject:From; b=sBjxoxD7EwFoZsw70zDzS0pNaobcWPOTCn0RPyhy7DJaVVuci+wRkhblSZAzDKdsv AalpIzmfMN0aJTUBDMHqOijL00W65+Of8qoGptbXSGc7gBSThCFICr/xAMv8lByChF X6FvGuZgH5PhJqmdL4gZsweHOB/DIQBLLCPZx+ro= To: somebody From: somebody else Reply-To: somebody else Subject: Plain text external Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch This is body of mail =F0=9F=91=8B gluon-0.17.0/tests/unselect_test.go000066400000000000000000000005351445200213000172670ustar00rootroot00000000000000package tests import ( "testing" ) func TestUnselect(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, _ *testSession) { c.C("b001 CREATE saved-messages") c.S("b001 OK CREATE") c.C(`A002 SELECT INBOX`) c.Se(`A002 OK [READ-WRITE] SELECT`) c.C(`A202 UNSELECT`) c.S("A202 OK UNSELECT") }) } gluon-0.17.0/tests/unsubscribe_test.go000066400000000000000000000037411445200213000177730ustar00rootroot00000000000000package tests import ( "testing" ) func TestUnsubscribe(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, _ *testSession) { c.C("A002 CREATE #news.comp.mail.mime") c.S("A002 OK CREATE") c.C("A003 UNSUBSCRIBE #this.name.does.not.exist") c.S("A003 NO no such mailbox") c.C("A005 UNSUBSCRIBE #news.comp.mail.mime") c.S("A005 OK UNSUBSCRIBE") c.C("A006 UNSUBSCRIBE #news.comp.mail.mime") c.S("A006 NO not subscribed to this mailbox") }) } func TestUnsubscribeAfterMailboxDeleted(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, _ *testSession) { c.C("A002 CREATE #news.comp.mail.mime") c.S("A002 OK CREATE") c.C("A006 DELETE #news.comp.mail.mime") c.S("A006 OK DELETE") c.C("A007 SUBSCRIBE #news.comp.mail.mime") c.S("A007 NO no such mailbox") c.C("A008 UNSUBSCRIBE #news.comp.mail.mime") c.S("A008 OK UNSUBSCRIBE") }) } func TestUnsubscribeAfterMailboxRenamedDeleted(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, _ *testSession) { c.C("A002 CREATE mailbox") c.S("A002 OK CREATE") c.C("A002 RENAME mailbox mailbox2") c.S("A002 OK RENAME") c.C("A006 DELETE mailbox2") c.S("A006 OK DELETE") c.C("A008 UNSUBSCRIBE mailbox2") c.S("A008 OK UNSUBSCRIBE") }) } func TestUnsubscribeList(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withDelimiter(".")), func(c *testConnection, _ *testSession) { c.C(`tag list "" "*"`) c.S(`* LIST (\Unmarked) "." "INBOX"`) c.OK(`tag`) c.C(`tag unsubscribe "INBOX"`).OK(`tag`) c.C(`tag list "" "*"`) c.S(`* LIST (\Unmarked) "." "INBOX"`) c.OK(`tag`) c.C(`tag lsub "" "*"`) c.OK(`tag`) c.C(`tag subscribe "INBOX"`).OK(`tag`) c.C(`tag lsub "" "*"`) c.S(`* LSUB (\Unmarked) "." "INBOX"`) c.OK(`tag`) c.C(`tag list "" "*"`) c.S(`* LIST (\Unmarked) "." "INBOX"`) c.OK(`tag`) }) } gluon-0.17.0/tests/updates_test.go000066400000000000000000000347021445200213000171150ustar00rootroot00000000000000package tests import ( "testing" "time" "github.com/ProtonMail/gluon/imap" "github.com/ProtonMail/gluon/internal/utils" "github.com/emersion/go-imap/client" "github.com/stretchr/testify/require" ) func TestMessageCreatedUpdate(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { // Create a mailbox for the test to run in. mboxID := s.mailboxCreated("user", []string{"mbox"}) // Select in the mailbox to receive EXISTS and RECENT updates. c.C("A006 select mbox") c.Se("A006 OK [READ-WRITE] SELECT") // Start idling in INBOX to receive the updates. c.C("A007 IDLE") c.S("+ Ready") // Create some messages externally. s.messageCreatedFromFile("user", mboxID, "testdata/multipart-mixed.eml") s.messageCreatedFromFile("user", mboxID, "testdata/afternoon-meeting.eml") // Expect to receive the updates. c.S("* 2 EXISTS", "* 2 RECENT") // Stop idling. c.C("DONE") c.OK("A007") // Create a third message externally. s.messageCreatedFromFile("user", mboxID, "testdata/text-plain.eml") // Do noop to receive the final updates. c.C("A007 NOOP") c.S("* 3 EXISTS") c.S("* 3 RECENT") c.OK("A007") }) } func TestMessageCreatedNoopUpdate(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { // Create a mailbox for the test to run in. other := s.mailboxCreated("user", []string{"other"}) // Select in the mailbox to receive EXISTS and RECENT updates. c.C(`A001 select other`).OK(`A001`) // Create two messages externally. s.messageCreatedFromFile("user", other, "testdata/multipart-mixed.eml") s.messageCreatedFromFile("user", other, "testdata/afternoon-meeting.eml") s.flush("user") // Do noop to receive the updates. c.C(`A002 NOOP`).Se(`* 2 EXISTS`, `* 2 RECENT`).OK(`A002`) // Create two more messages externally. s.messageCreatedFromFile("user", other, "testdata/multipart-mixed.eml") s.messageCreatedFromFile("user", other, "testdata/afternoon-meeting.eml") s.flush("user") // Do noop to receive the updates. c.C(`A003 NOOP`).Se(`* 4 EXISTS`, `* 4 RECENT`).OK(`A003`) // Select away and back to reset the RECENT count. c.C(`A004 select inbox`).OK(`A004`) c.C(`A005 select other`).OK(`A005`) // Create two more messages externally. s.messageCreatedFromFile("user", other, "testdata/multipart-mixed.eml") s.messageCreatedFromFile("user", other, "testdata/afternoon-meeting.eml") s.flush("user") // Do noop to receive the updates. c.C(`A006 NOOP`).Se(`* 6 EXISTS`, `* 2 RECENT`).OK(`A006`) }) } func TestMessageCreatedIDLEUpdate(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { // Create a mailbox for the test to run in. other := s.mailboxCreated("user", []string{"other"}) // Select in the mailbox to receive EXISTS and RECENT updates. c.C(`A001 select other`).OK(`A001`) // Begin IDLE. c.C(`A002 IDLE`).S(`+ Ready`) // Create two messages externally. s.messageCreatedFromFile("user", other, "testdata/multipart-mixed.eml") s.messageCreatedFromFile("user", other, "testdata/afternoon-meeting.eml") s.flush("user") // Expect that we receive IDLE updates. c.S(`* 2 EXISTS`, `* 2 RECENT`) // Create two more messages externally. s.messageCreatedFromFile("user", other, "testdata/multipart-mixed.eml") s.messageCreatedFromFile("user", other, "testdata/afternoon-meeting.eml") s.flush("user") // Expect that we receive IDLE updates. c.S(`* 4 EXISTS`, `* 4 RECENT`) // Select away and back to reset the RECENT count. c.C(`DONE`).OK(`A002`) c.C(`A003 select inbox`).OK(`A003`) c.C(`A004 select other`).OK(`A004`) c.C(`A005 IDLE`).S(`+ Ready`) // Create two more messages externally. s.messageCreatedFromFile("user", other, "testdata/multipart-mixed.eml") s.messageCreatedFromFile("user", other, "testdata/afternoon-meeting.eml") s.flush("user") // Expect that we receive IDLE updates. c.S(`* 6 EXISTS`, `* 2 RECENT`) // Stop IDLE. c.C(`DONE`).OK(`A005`) }) } func TestMessageRemovedUpdate(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { // Create a mailbox for the test to run in. mboxID := s.mailboxCreated("user", []string{"mbox"}) // Create some messages externally. messageID1 := s.messageCreatedFromFile("user", mboxID, "testdata/multipart-mixed.eml") messageID2 := s.messageCreatedFromFile("user", mboxID, "testdata/afternoon-meeting.eml") messageID3 := s.messageCreatedFromFile("user", mboxID, "testdata/text-plain.eml") messageID4 := s.messageCreatedFromFile("user", mboxID, "testdata/text-plain.eml") // Select in the mailbox to receive EXPUNGE updates. c.C("A006 select mbox") c.Se("A006 OK [READ-WRITE] SELECT") // Start idling in INBOX to receive the EXPUNGE updates. c.C("A007 IDLE") c.S("+ Ready") // Remove the first message. s.messageRemoved("user", messageID1, mboxID) // Expect to receive the EXPUNGE update of the removed message. c.S("* 1 EXPUNGE") // Remove the second message. s.messageRemoved("user", messageID2, mboxID) // Expect to receive the EXPUNGE update of the removed message. // Due to the previous EXPUNGE, this message now has sequence number 1. c.S("* 1 EXPUNGE") // Remove the third message. s.messageRemoved("user", messageID3, mboxID) // Expect to receive the EXPUNGE update of the removed message. // Due to the previous two EXPUNGEs, this message now has sequence number 1. c.S("* 1 EXPUNGE") // Stop idling. c.C("DONE") c.OK("A007") // Remove the fourth message. s.messageRemoved("user", messageID4, mboxID) // The message has been expunged, but we haven't received the EXPUNGE update for it yet. // Therefore, we still think there is one message in the mailbox! c.C("A007 FETCH 1:* (UID)") c.S("* 1 FETCH (UID 4)") c.OK("A007") // Processing the previous fetch shouldn't have led to an EXPUNGE; // a subsequent fetch will return the same result! c.C("A007 FETCH 1:* (UID)") c.S("* 1 FETCH (UID 4)") c.OK("A007") // Do NOOP to finally receive the EXPUNGE update. c.C("A007 NOOP") c.S("* 1 EXPUNGE") c.OK("A007") }) } func TestMessageRemovedUpdateRepeated(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t, withIdleBulkTime(0)), func(c *testConnection, s *testSession) { // Create a mailbox for the test to run in. mboxID := s.mailboxCreated("user", []string{"mbox"}) for i := 1; i <= 1000; i++ { messageID := s.messageCreatedFromFile("user", mboxID, "testdata/multipart-mixed.eml") c.C("A006 select mbox") c.Se("A006 OK [READ-WRITE] SELECT") c.C("A007 IDLE") c.S("+ Ready") s.messageRemoved("user", messageID, mboxID) c.S("* 1 EXPUNGE") c.C("DONE") c.OK("A007") } }) } func TestMailboxCreatedUpdate(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { c.C(`A82 LIST "" *`) c.S(`* LIST (\Unmarked) "/" "INBOX"`) c.OK("A82") s.mailboxCreated("user", []string{"some-mailbox"}) c.C(`A82 LIST "" *`) c.S(`* LIST (\Unmarked) "/" "some-mailbox"`, `* LIST (\Unmarked) "/" "INBOX"`) c.OK("A82") }) } func TestMessageSeenUpdate(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox"}) messageID := s.messageCreatedFromFile("user", mailboxID, "testdata/multipart-mixed.eml") c.C("A001 SELECT mbox").OK("A001") c.C("A002 FETCH 1 (FLAGS)") c.S(`* 1 FETCH (FLAGS (\Recent))`) c.OK("A002") s.messageSeen("user", messageID, true) c.C("A003 FETCH 1 (FLAGS)") c.S(`* 1 FETCH (FLAGS (\Recent))`) // Unilateral update arrives after fetch. c.S(`* 1 FETCH (FLAGS (\Recent \Seen))`) c.OK("A003") s.messageSeen("user", messageID, false) c.C("A004 FETCH 1 (FLAGS)") c.S(`* 1 FETCH (FLAGS (\Recent \Seen))`) // Unilateral update arrives after fetch. c.S(`* 1 FETCH (FLAGS (\Recent))`) c.OK("A004") }) } func TestMessageFlaggedUpdate(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox"}) messageID := s.messageCreatedFromFile("user", mailboxID, "testdata/multipart-mixed.eml") c.C("A001 SELECT mbox").OK("A001") s.messageFlagged("user", messageID, true) c.C("A003 FETCH 1 (FLAGS)") c.S(`* 1 FETCH (FLAGS (\Recent))`) c.OK("A003") s.messageFlagged("user", messageID, false) c.C("A004 FETCH 1 (FLAGS)") c.S(`* 1 FETCH (FLAGS (\Flagged \Recent))`) // Unilateral updates arrive afterwards. c.S(`* 1 FETCH (FLAGS (\Recent))`) c.OK("A004") }) } func TestMessageAddWithSameID(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox"}) flags := []string{imap.FlagFlagged, imap.FlagDraft, "\\foo", "\\bar", imap.AttrMarked} messageID := imap.MessageID(utils.NewRandomMessageID()) s.batchMessageCreatedWithID("user", mailboxID, 2, func(i int) (imap.MessageID, []byte, []string) { return messageID, []byte("to: 1@1.com"), flags }) s.flush("user") c.C("A001 SELECT mbox").OK("A001") c.C("A003 FETCH 1 (FLAGS)") c.S(`* 1 FETCH (FLAGS (\Draft \Flagged \Marked \Recent \bar \foo))`) c.OK("A003") }) } func TestBatchMessageAddedWithMultipleFlags(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox"}) flags := []string{imap.FlagFlagged, imap.FlagDraft, "\\foo", "\\bar", imap.AttrMarked} s.batchMessageCreated("user", mailboxID, 2, func(i int) ([]byte, []string) { return []byte("to: 1@1.com"), flags }) s.flush("user") }) } func TestMessageCreatedWithIgnoreMissingMailbox(t *testing.T) { runOneToOneTestClientWithAuth(t, defaultServerOptions(t), func(c *client.Client, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox"}) s.setUpdatesAllowedToFail("user", true) { // First round fails as a missing mailbox is not allowed. s.messageCreatedWithMailboxes("user", []imap.MailboxID{mailboxID, "THIS MAILBOX DOES NOT EXISTS"}, []byte("To: Test"), time.Now()) status, err := c.Select("mbox", false) require.NoError(t, err) require.Equal(t, status.Messages, uint32(0)) } { // Second round succeeds as we publish an update that is allowed to fail. s.setAllowMessageCreateWithUnknownMailboxID("user", true) s.messageCreatedWithMailboxes("user", []imap.MailboxID{mailboxID, "THIS MAILBOX DOES NOT EXISTS"}, []byte("To: Test"), time.Now()) status, err := c.Select("mbox", false) require.NoError(t, err) require.Equal(t, status.Messages, uint32(1)) } }) } func TestInvalidIMAPCommandDoesNotBlockStateUpdates(t *testing.T) { // Test that a sequence of delete followed by create with the same message ID results in an updated message. runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox1"}) messageID := s.messageCreated("user", mailboxID, []byte("To: 3@3.pm"), time.Now()) s.flush("user") c.C(`A002 SELECT mbox1`).OK(`A002`) // Check that the message exists. c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 3@3.pm FLAGS (\\Recent \\Seen))") c.OK("A005") // Update to the message is applied. s.messageDeleted("user", messageID) s.flush("user") // First fetch should read the old message data due to deferred deletion. c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 3@3.pm)") c.OK("A005") c.C("A006 NOOP").OK("") // Second fetch fail with c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("A005 BAD no such message") // new message gets create s.messageCreated("user", mailboxID, []byte("To: 3@3.pm"), time.Now()) s.flush("user") // Third fetch will still fail, but now we get updates to the state. c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S(`* 1 EXISTS`) c.S(`* 1 RECENT`) c.S("A005 BAD no such message") // Forth fetch succeeds. c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 3@3.pm FLAGS (\\Recent \\Seen))") c.OK("A005") }) } /* GODT-2688 - Investigate test flakiness. func TestUpdatedMessageFetchSucceedsOnSecondTry(t *testing.T) { // Test that a sequence of delete followed by create with the same message ID results in an updated message. runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox1"}) messageID := s.messageCreated("user", mailboxID, []byte("To: 3@3.pm"), time.Now()) s.flush("user") c.C(`A002 SELECT mbox1`).OK(`A002`) // Check that the message exists. c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 3@3.pm FLAGS (\\Recent \\Seen))") c.OK("A005") // Update to the message is applied. s.messageUpdatedWithID("user", messageID, mailboxID, []byte("To: 4@4.pm"), time.Now()) s.flush("user") // First fetch should read the old message data due to deferred deletion and get the updates // that the message has been removed and replaced with new version. c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 3@3.pm)") c.S("* 2 EXISTS") c.S("* 2 RECENT") c.OK("A005", "EXPUNGEISSUED") // Original message remains active until Noop/Status/Select. c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 3@3.pm)") c.OK(`A005`) // New message is now available. c.C(`A005 FETCH 2 (BODY[HEADER.FIELDS (TO)])`) c.S("* 2 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 4@4.pm FLAGS (\\Recent \\Seen))") c.OK("A005") // Noop finally allows expunges. c.C("A006 NOOP") c.OK("A006") // Old message is now gone. c.C(`A005 FETCH 1 (BODY[HEADER.FIELDS (TO)])`) c.S("* 1 FETCH (BODY[HEADER.FIELDS (TO)] {10}\r\nTo: 4@4.pm)") c.OK("A005") }) }*/ func TestDeleteMailboxFromConnectorAlsoRemoveSubscriptionStatus(t *testing.T) { runOneToOneTestWithAuth(t, defaultServerOptions(t), func(c *testConnection, s *testSession) { mailboxID := s.mailboxCreated("user", []string{"mbox1"}) s.flush("user") s.mailboxDeleted("user", mailboxID) s.flush("user") c.C(`S001 LSUB "" "*"`) c.S( `* LSUB (\Unmarked) "/" "INBOX"`, ) c.S("S001 OK LSUB") }) } gluon-0.17.0/tools/000077500000000000000000000000001445200213000140525ustar00rootroot00000000000000gluon-0.17.0/tools/imap_append/000077500000000000000000000000001445200213000163275ustar00rootroot00000000000000gluon-0.17.0/tools/imap_append/imap_append.go000066400000000000000000000024161445200213000211360ustar00rootroot00000000000000package main import ( "bytes" "flag" "fmt" "os" "time" "github.com/emersion/go-imap/client" ) var ( serverUrl = flag.String("server", "127.0.0.1:1143", "IMAP server address:port") userName = flag.String("user-name", "user", "IMAP user name") userPassword = flag.String("user-pwd", "password", "IMAP user password") mbox = flag.String("mbox", "INBOX", "IMAP mailbox to append to") ) func main() { flag.Parse() flag.Usage = func() { fmt.Printf("Usage %v [options] file0 ... fileN\n", os.Args[0]) fmt.Printf("\nOptions:\n") flag.PrintDefaults() } args := flag.Args() if len(args) == 0 { flag.Usage() return } client, err := client.Dial(*serverUrl) if err != nil { panic(fmt.Errorf("failed to connect to server: %w", err)) } defer func() { if err := client.Logout(); err != nil { panic(err) } }() if err := client.Login(*userName, *userPassword); err != nil { panic(fmt.Errorf("failed to login to server: %w", err)) } for _, v := range args { fileData, err := os.ReadFile(v) if err != nil { panic(fmt.Errorf("failed to read file:%v - %w", v, err)) } if err := client.Append(*mbox, []string{}, time.Now(), bytes.NewReader(fileData)); err != nil { panic(fmt.Errorf("failed to upload file:%v - %w", v, err)) } } } gluon-0.17.0/utils/000077500000000000000000000000001445200213000140525ustar00rootroot00000000000000gluon-0.17.0/utils/dependency_license.sh000077500000000000000000000057341445200213000202420ustar00rootroot00000000000000#!/bin/bash set -eo pipefail src=go.mod tgt=COPYING_NOTES.md STARTAUTOGEN="" ENDAUTOGEN="" RE_STARTAUTOGEN="^${STARTAUTOGEN}$" RE_ENDAUTOGEN="^${ENDAUTOGEN}$" tmpDepLicenses="" error(){ echo "Error: $*" exit 1 } generate_dep_licenses(){ [ -r $src ] || error "Cannot read file '$src'" tmpDepLicenses="$(mktemp)" # Collect all go.mod lines beginig with tab: # * which no replace # * which have replace grep -E $'^\t[^=>]*$' $src | sed -r 's/\t([^ ]*) v.*/\1/g' > "$tmpDepLicenses" # Replace each line with formated link sed -i -r '/^github.com\/therecipe\/qt\/internal\/binding\/files\/docs\//d;' "$tmpDepLicenses" sed -i -r 's|^(.*)/([[:alnum:]-]+)/(v[[:digit:]]+)$|* [\2](https://\1/\2/\3)|g' "$tmpDepLicenses" sed -i -r 's|^(.*)/([[:alnum:]-]+)$|* [\2](https://\1/\2)|g' "$tmpDepLicenses" sed -i -r 's|^(.*)/([[:alnum:]-]+).(v[[:digit:]]+)$|* [\2](https://\1/\2.\3)|g' "$tmpDepLicenses" ## add license file to github links, and others sed -i -r '/github.com/s|^(.*(https://[^)]+).*)$|\1 available under [license](\2/blob/master/LICENSE) |g' "$tmpDepLicenses" sed -i -r '/golang.org\/x/s|^(.*golang.org/x/([^)]+).*)$|\1 available under [license](https://cs.opensource.google/go/x/\2/+/master:LICENSE) |g' "$tmpDepLicenses" sed -i -r '/go.uber.org\/goleak/s|^(.*)$|\1 available under [license](https://pkg.go.dev/go.uber.org/goleak?tab=licenses) |g' "$tmpDepLicenses" sed -i -r '/gopkg.in\/yaml\.v3/s|^(.*)$|\1 available under [license](https://github.com/go-yaml/yaml/blob/v3.0.1/LICENSE) |g' "$tmpDepLicenses" sed -i -r '/ariga.io\/atlas/s|^(.*)$|\1 available under [license](https://github.com/ariga/atlas/blob/master/LICENSE) |g' "$tmpDepLicenses" sed -i -r '/entgo.io\/ent/s|^(.*)$|\1 available under [license](https://pkg.go.dev/entgo.io/ent?tab=licenses) |g' "$tmpDepLicenses" sed -i -r '/gopkg.in\/check\.v1/s|^(.*)$|\1 available under [license](https://github.com/go-check/check/blob/v1/LICENSE) |g' "$tmpDepLicenses" } check_dependecies(){ generate_dep_licenses tmpHaveLicenses=$(mktemp) sed "/${RE_STARTAUTOGEN}/,/${RE_ENDAUTOGEN}/!d;//d" $tgt > "$tmpHaveLicenses" diffOK=0 if ! diff "$tmpHaveLicenses" "$tmpDepLicenses"; then diffOK=1; fi rm "$tmpDepLicenses" || echo "Failed to clean tmp file" rm "$tmpHaveLicenses" || echo "Failed to clean tmp file" [ $diffOK -eq 0 ] || error "Dependency licenses are not up-to-date" exit 0 } update_dependecies(){ generate_dep_licenses sed -i -e "/${RE_STARTAUTOGEN}/,/${RE_ENDAUTOGEN}/!b" \ -e "/${RE_ENDAUTOGEN}/i ${STARTAUTOGEN}" \ -e "/${RE_ENDAUTOGEN}/r $tmpDepLicenses" \ -e "/${RE_ENDAUTOGEN}/a ${ENDAUTOGEN}" \ -e "d" \ $tgt rm "$tmpDepLicenses" || echo "Failed to clean tmp file" exit 0 } case $1 in "check") check_dependecies;; "update") update_dependecies;; *) error "One of actions needed: check update" ;; esac gluon-0.17.0/version/000077500000000000000000000000001445200213000143775ustar00rootroot00000000000000gluon-0.17.0/version/info.go000066400000000000000000000004331445200213000156610ustar00rootroot00000000000000package version import "fmt" type Version struct { Major, Minor, Patch int } func (v *Version) String() string { return fmt.Sprintf("%02v.%02v.%02v", v.Major, v.Minor, v.Patch) } type Info struct { Name string Version Version Vendor string SupportURL string } gluon-0.17.0/watcher/000077500000000000000000000000001445200213000143475ustar00rootroot00000000000000gluon-0.17.0/watcher/watcher.go000066400000000000000000000015301445200213000163320ustar00rootroot00000000000000package watcher import ( "reflect" "github.com/ProtonMail/gluon/async" ) type Watcher[T any] struct { types map[reflect.Type]struct{} eventCh *async.QueuedChannel[T] } func New[T any](panicHandler async.PanicHandler, ofType ...T) *Watcher[T] { types := make(map[reflect.Type]struct{}, len(ofType)) for _, t := range ofType { types[reflect.TypeOf(t)] = struct{}{} } return &Watcher[T]{ types: types, eventCh: async.NewQueuedChannel[T](1, 1, panicHandler), } } func (w *Watcher[T]) IsWatching(event T) bool { if len(w.types) == 0 { return true } _, ok := w.types[reflect.TypeOf(event)] return ok } func (w *Watcher[T]) GetChannel() <-chan T { return w.eventCh.GetChannel() } func (w *Watcher[T]) Send(event T) bool { return w.eventCh.Enqueue(event) } func (w *Watcher[T]) Close() { w.eventCh.CloseAndDiscardQueued() } gluon-0.17.0/watcher/watcher_test.go000066400000000000000000000023431445200213000173740ustar00rootroot00000000000000package watcher import ( "testing" "github.com/ProtonMail/gluon/async" "github.com/ProtonMail/gluon/events" "github.com/stretchr/testify/require" ) func TestWatcher(t *testing.T) { watcher := New[events.Event]( async.NoopPanicHandler{}, events.ListenerAdded{}, events.ListenerRemoved{}, ) // The watcher is watching the correct types. require.True(t, watcher.IsWatching(events.ListenerAdded{})) require.True(t, watcher.IsWatching(events.ListenerRemoved{})) // The watcher is not watching the incorrect types. require.False(t, watcher.IsWatching(events.Login{})) require.False(t, watcher.IsWatching(events.Select{})) // Get a channel to read from the watcher. resCh := watcher.GetChannel() // Send some events to the watcher. require.True(t, watcher.Send(events.ListenerAdded{})) require.True(t, watcher.Send(events.ListenerRemoved{})) // Check we can read the events off the channel. require.Equal(t, events.ListenerAdded{}, <-resCh) require.Equal(t, events.ListenerRemoved{}, <-resCh) // Close the watcher. watcher.Close() // Sending more events after the watcher is closed should return false. require.False(t, watcher.Send(events.ListenerAdded{})) require.False(t, watcher.Send(events.ListenerRemoved{})) }